/**
* Generic Javascripts for CMS-Contentpages
*
* @author llorenz
*/
  
if (mobile == undefined) var mobile = {};

// Utility methods for cms pages.
mobile.CmsHelper = {    

    /* write dynamic contents to page */
    writeGalleryContents: function (index) {
		$$('.row.headline h1').first().innerHTML = imageArray[index]["headline"];
		$$('.pagingCount').first().innerHTML = (index+1)+" von "+imageArray.size();
		$$('.row.image').first().innerHTML = '<a rel="nofollow" class="pagingLink next" href="#" title="'+imageArray[index]["descr"]+'"><img src="'+imageArray[index]["source"]+'" alt="'+imageArray[index]["descr"]+'"/></a>';
		$$('.row.imagedescr').first().innerHTML = imageArray[index]["descr"];
    },
	
	/* generate links and check onclick events */
	onClickLinks: function (index,newParamBuffer) {
	    var newUrl = window.location.href.split('?')[0];
	    if (newUrl.indexOf('#') != -1) {
	        newUrl = newUrl.split('#')[0];
	    }
	    var prevIndex = index-1;
	    var nextIndex = index+1;
	    $$('.prev').invoke('observe', 'click', (function(event) {
	        window.location.href = newUrl+"?index="+prevIndex+newParamBuffer;
	        event.stop();
	        return false;
	    }));
		$$('.next').invoke('observe', 'click', (function(event) {
	        window.location.href = newUrl+"?index="+nextIndex+newParamBuffer;
	        event.stop();
	        return false;
	    }));
	},
	
	/* prepare image gallery paging */
	initImageGallery: function () {
	    if (typeof imageArray != "undefined" && imageArray.size() > 0) {     
	        var index = 0;
	        var url = window.location.href;
	        var paramBuffer = url.toQueryParams();
	        var newParamBuffer = "";
	        if (paramBuffer['index']) {
	          index = parseInt(paramBuffer['index']);
	          if (index < 0) {
	            index = imageArray.size()-1;
	          }
	          if (index > imageArray.size()-1) {
	            index = 0;
	          }
	          Object.keys(paramBuffer).each(function(key) {
	             if (key != "index") {
	                newParamBuffer += "&"+key+"="+paramBuffer[key];
	             }
	          })
	        }
	        this.writeGalleryContents(index);
	        this.onClickLinks(index,newParamBuffer);
	    }	
	},
	
    /* prepare image gallery for onclick event listener */
    initImageGalleryThumbs: function () {
        $$('.thumbContainer a').invoke('observe', 'click', (function(event) {
            var link = Event.findElement(event, "a");
            mobile.PopupHelper.openPopUp(link.getAttribute("href"), 770 , 830, 50, 50, "no", "no", "no", "no", "yes", "yes");
            event.stop();
            return false;
        }));
	},

    /* rotate boxes on partner portal page */
    rotatePartnerBoxes: function() {
		var subBoxes = new Array("service","insurance","leasing");
		subBoxes.each(function(element) {
	        var partnerBoxesOrig = $$('.pp_teaser .pp_'+element);
			if (partnerBoxesOrig.length > 1) {
		        var partnerBoxesNew = new Array();
		        partnerBoxesOrig.each(function(box) {
		            partnerBoxesNew.push(box.innerHTML);
		        });
		        partnerBoxesOrig.each(function(box) {
		            var r = parseInt(Math.random()*partnerBoxesNew.length);
		            box.innerHTML = partnerBoxesNew[r];
		            partnerBoxesNew.splice(r,1);
		        }); 			
			}
	    });
    },
    /* create accordion effect for use in dealer cms module */
	accordion: function(options) {
		
			/* Extend accordion class */
			this._options = Object.extend({
				_openAccordion: Prototype.emptyFunction
			}, options);
			
			$$('#accordion .sub-level').each(Element.hide);
			
			$$('#accordion').invoke('observe', 'click', (function(event) {
				if  (event.element().descendantOf('accordion')) this._openAccordion(event);
			}).bind(this));
		},
		
		_openAccordion: function(event){
			if (event.element().hasClassName('top-level')) {
				if (event.element().next('.sub-level')) {
					event.element().next().toggle();
					event.element().toggleClassName('current');
				}
			}
		}
  
};

	

Element.observe(window, "load", function() {
    mobile.CmsHelper.initImageGallery();
	mobile.CmsHelper.initImageGalleryThumbs();
	mobile.CmsHelper.rotatePartnerBoxes();
	mobile.CmsHelper.accordion();
});

mobile.FacebookLoader = function(content){
	var wrapperId = "__facebook" + (new Date()).getTime() + '_' + Math.ceil(Math.random()*10);
	document.write('<div id="' + wrapperId + '"></div>')
	document.observe("mobile:loaded", function() {
		$(wrapperId).update(content);
	});
}	

