/**
 * Template for a js project.
 * @author NOSE
 * 
 * @version 1.0.0 initial version
 *
 */
var Globus = {
	
	/**
	* Flags.
	*/
	flagPageLoaded: false,
	
	/**
	 * Initialize.
	 */
	initialize : function(){
		// develop
		//jQuery().devTools();
		
		// global
		Globus.initTemplates();
		
		// template: brand browseload
		if (jQuery("body.brandBrowseload").size() > 0) {
			Globus.initTemplateBrandBrowseload();
		}		
		// template: brand browser
		if (jQuery("body.brandBrowser").size() > 0) {
			Globus.initTemplateBrandBrowser();
		}		
		// template overview
		if (jQuery("body.overview").size() > 0) {
			Globus.initTemplateOverview();
		}		
		// template page
		if (jQuery("body.page").size() > 0) {
			Globus.initTemplatePage();
		}	
		// template modal
		if (jQuery("body.modal").size() > 0) {
			Globus.initTemplateModal();
		}
	},

	/**
	* Initializes global stuff.
	*/
	initTemplates: function() {
		// print
		jQuery("a.printLink").bind("click",function(){window.print();return false;});
		jQuery("input.changeAmount").bind("change", function (){Globus.sumAmount(this)});
		// dropdown
		if (jQuery(".dropdown").size() > 0) {
			Globus.initDropdown();
		}
		// thickbox
		tb_init('a.thickbox, area.thickbox, input.thickbox, a.galleryBlowup');//pass where to apply thickbox
                // TODO: emailLink is not implemented as thickbox yet!
		//tb_init('a.thickbox, area.thickbox, input.thickbox, a.galleryBlowup, a.emailLink');//pass where to apply thickbox
		
		// stepper
		jQuery(".stepper").each(function(i,el){
			jQuery(el).stepper();
		});
        jQuery(".cartStepper").each(function(i,el){
            jQuery(el).cartStepper();
        });
	},
	/**
	 * Init template page.
	 */
	initTemplatePage : function(){	
		// toggler
		if (jQuery("#sideBarRight .toggle").size() > 0) {
			Globus.initTogglerSidebar();
		}
		if (jQuery("#content .toggle").size() > 0) {
			Globus.initTogglerContent();
		}
		
		// gallery (carousel)
		if (jQuery("#gallery").size() > 0) {
			Globus.initGallery();
		}
		
		// tabs
		if (jQuery("div.tabbed").size() > 0) {
			Globus.initTabs();
		}

		// enabler
		if (jQuery(".enabler").size() > 0) {
			Globus.initEnabler();
		}
	},
	/**
	 * Init template page.
	 */
	initTemplateOverview : function(){
		// tabs
		if (jQuery("div.tabbed").size() > 0) {
			Globus.initTabs();
		}
	},
	/**
	* Init template brand browseload.
	*/
	initTemplateBrandBrowseload: function() {
		
	},
	/**
	* Init template brand browseload.
	*/
	initTemplateBrandBrowser: function() {		
		// stations
		jQuery("#stations").itemToggler({selectorToggler:"h3.toggler",itemMessage:false,accordion:true,catchEvent:"mouseover"});
	},
	/**
	* Init template modal.
	*/
	initTemplateModal: function() {
		// close modal
		jQuery("#modalClose, .modalClose").click(function(){self.parent.tb_remove();});
		
		// flags
		var ff3 = false;
		if (jQuery.browser.mozilla && jQuery.browser.version.substring(0,3) == "1.9") {
			ff3 = true;
		}
		
		// load on ready	
		if (!jQuery.browser.msie && !ff3 || Globus.flagPageLoaded) {
			setTimeout(function(){Globus.initTemplatePage();},1); 
		}
		// load on load
		else {		
			jQuery(window).bind("load",function(){
				setTimeout(function(){Globus.initTemplatePage();},1); 
			});
		}
	},
	/**
	* Initializes the toggler.
	*/
	initDropdown: function() {
		// superfish
		jQuery(".dropdown").superfish({animation : { opacity:"show" }})
			.find(">li:has(ul)")
			.mouseover(function(){
			jQuery("ul", this).bgIframe({opacity:false});
			})
			.find("a")
			.focus(function(){
				jQuery("ul", $(".nav>li:has(ul)")).bgIframe({opacity:false});
			});
	},
	/**
	* Initializes the toggler.
	*/
	initTogglerSidebar: function() {
		// item toggler
		if (! (jQuery.browser.msie && jQuery.browser.version > 6)) {
			jQuery("#sideBarRight").itemToggler({selectorToggler: "h4.toggler", accordion:true});
		}
		else {
			jQuery("#sideBarRight").itemToggler({selectorToggler: "h4.toggler", accordion:true, slideItem:false});
		}
	},
	/**
	* Initializes the toggler.
	*/
	initTogglerContent: function() {
		// item toggler
		var ex = ";"
		var paramExpanded = jQuery(document).getUrlParam("expanded");
		if (paramExpanded) {
			// input selected (for form)
			jQuery("input#"+paramExpanded).attr("checked",true);
			var toggleItems = jQuery("#content .toggle .toggler");
			for (var i = 0; i < toggleItems.length; i++) {
				var cId = jQuery(toggleItems[i]).attr("id");
				if (cId == paramExpanded) {
					ex = i + ";";
					break;
				}
			}
		}
		jQuery("#content .toggle").itemToggler({selectorToggler: ".toggler", selectorItem: ".item", accordion:true, expanded:ex});
	},
	/**
	* Initializes the toggler.
	*/
	initEnabler: function() {
		jQuery(".enabler").bind("click",function(){
			var id = jQuery(this).attr("id");
			if (jQuery(this).attr("checked")) {
				jQuery("."+id).slideUp("fast");
			}
			else {
				jQuery("."+id).slideDown("slow");
			}
		});
	},
	/**
	* Initializes the reflexion.
	*/
	initTabs: function() {
		// tabs
		jQuery('div.tabbed').tabs({selectedClass:"active",hideClass:"hidden"});
	},
	/**
	* Initializes the gallery.
	*/
	initGallery: function() {
			// init index
			var countTotal = jQuery("#gallery .gallerySlides > li").size();
			jQuery("#gallery .galleryIndexTotal").html(countTotal);
			jQuery("#gallery .galleryIndexCurrent").html(currentIndex);
			var currentIndex = 1;
			
			// init button
			jQuery('#gallery .galleryPrevious').css("opacity",0.6);			
			
			// init gallery
			function initGallery(carousel) {
				// gallery next
				function galleryNext() {
					// carousel
					if (currentIndex != countTotal) {
        				carousel.next();
					}
					
					// button
					jQuery('#gallery .galleryPrevious').fadeTo("slow",1);
					
					// index
					if (currentIndex < countTotal) {
						currentIndex++;
						jQuery("#gallery .galleryIndexCurrent").html(currentIndex);
					}
					if (currentIndex == countTotal) {
						jQuery('#gallery .galleryNext').fadeTo("slow",0.6);
					}
				}
				// gallery previous
				function galleryPrevious() {
					// carousel
					if (currentIndex != 1) {
        				carousel.prev();
					}
					
					// button
					jQuery('#gallery .galleryNext').fadeTo("slow",1);
					
					// index
					if (currentIndex > 1) {
						currentIndex--;
						jQuery("#gallery .galleryIndexCurrent").html(currentIndex);
					}
					if (currentIndex == 1) {
						jQuery('#gallery .galleryPrevious').fadeTo("slow",0.6);
					}
				}
				// event button next
				jQuery('#gallery .galleryNext').bind('click', function() {
					galleryNext();					
					return false;
    			});

				// event button previous
    			jQuery('#gallery .galleryPrevious').bind('click', function() {
					galleryPrevious();					
        			return false;
    			});
				
				// event gallery 
    			jQuery('#gallery .gallerySlides').bind('click', function(e) {
					// coords
					var mPosX = e.pageX;
					var gPosX = jQuery("#gallery").position().left;
					var gSize = jQuery("#gallery").width();
					
					//gallery
					if (mPosX - gPosX > gSize/2) {
						galleryNext();
					}
					else {
						galleryPrevious();
					}
					// return				
        			return false;
    			});
			
		   }
		 // carousel
		jQuery("#gallery").jcarousel({scroll: 1, initCallback: initGallery, buttonNextHTML: null, buttonPrevHTML: null});
	},
	sumAmount : function(e){
		valueOne = parseInt(jQuery("#formAmount10").val());
		valueTwo = parseInt(jQuery("#formAmount20").val());
		valueThree = parseInt(jQuery("#formAmount50").val());
		//alert(valueOne+","+valueTwo+","+valueThree);
		if (isNaN(valueOne)) valueOne = 0;
		if (isNaN(valueTwo)) valueTwo = 0;
		if (isNaN(valueThree)) valueThree = 0;
		//alert(valueOne+","+valueTwo+","+valueThree);

		varSum = (valueOne*10) + (valueTwo*20) + (valueThree*50);
		jQuery("#formTotalAmount").val(varSum);
	}
}
jQuery(window).bind("load",function() {
	Globus.flagPageLoaded = true;
});
jQuery(document).ready(function(){
	Globus.initialize();
});



