GoldenhookCustomProduct = Class.create();
GoldenhookCustomProduct.prototype = {
	initialize: function() {
		this.siteUrl = WEBSITE_BASE_URL;
	},
	
	displayMessage: function(jsonMessage){
		goldenhookCustom.thisMovie("goldenhook").displayMessage(jsonMessage);
	},
	
	productAddedToCart: function(){
		goldenhookCustom.thisMovie("goldenhook").productAddedToCart();
	},
	
	thisMovie: function(movieName){
		return document[movieName];
	},
		
	addProductAndReturn: function(datas) {
	
		var jsondatas = datas.evalJSON();
		
		var requestUrl = '';
		
		switch(jsondatas.product_type)
		{
			case '1':
				requestUrl = 'checkout/customcart/add/';
			break;
			
			case '2':
				requestUrl = 'checkout/customcart/add/';
			break;
		}	
		
		new Ajax.Request(
			goldenhookCustom.siteUrl+requestUrl,
			{	method: 'get', 
				parameters: { JSONstring:datas }, 
				onLoaded: function() {timer = setTimeout(function(){ goldenhookCustom.displayMessage(Object.toJSON({type:"error", message:Translator.translate('Votre produit n\'a pas pu être validé.')})) },50000);}, 
				onComplete: function(result){
				
					var response = result.responseText || "error";

					var result = eval('(' + response + ')');  
					
					if(result.type == "error" || result.type == "success")
					{
						var jsonMessage = Object.toJSON({type:result.type, message:result.message});
						goldenhookCustom.displayMessage(jsonMessage);
						
						if(result.type == "success")
						{
							clearTimeout(timer);
							goldenhookCustom.updateCartQty();
							goldenhookCustom.productAddedToCart();
						}
	 				}
				},
				onFailure: function(){alert('on failure')}
			}
		);
		
	},
	
	addProductAndClose: function(datas) {
		var jsondatas = datas.evalJSON();
		
		var requestUrl = '';
		
		switch(jsondatas.product_type)
		{
			case '1':
				requestUrl = 'checkout/customcart/add/';
			break;
			
			case '2':
				requestUrl = 'checkout/customcart/add/';
			break;
		}	
		
		new Ajax.Request(
			goldenhookCustom.siteUrl+requestUrl,
			{	method: 'get', 
				parameters: { JSONstring:datas },
				onLoaded: function() {timer = setTimeout(function(){ goldenhookCustom.displayMessage(Object.toJSON({type:"error", message:Translator.translate('Votre produit n\'a pas pu être validé.')})) },50000);}, 
				onComplete: function(result){
				
					var response = result.responseText || "error";

					var result = eval('(' + response + ')');  
					
					if(result.type == "error" || result.type == "success")
					{
						var jsonMessage = Object.toJSON({type:result.type, message:result.message});
						goldenhookCustom.displayMessage(jsonMessage);
						
						if(result.type == "success")
						{
							clearTimeout(timer);
							goldenhookCustom.updateCartQty();
							goldenhookCustom.redirectToCart();
						}
	 				}
				},
				onFailure: function(){alert('on failure')}
			}
		);
	},
	
	updateCartQty:function() {
		$('cart_qty').update(parseInt($('cart_qty').innerHTML)+1);
	},
	
	redirectToCart:function() {
	
		$('custom_machine').hide();
		$('configurateur_message').show();
		setTimeout(function(){ location.href = goldenhookCustom.siteUrl+'checkout/cart/'},5000);
		
	},
	
	sendFriend: function(datas) {
	
		var jsondatas = datas.evalJSON();
		
		var requestUrl = '';
		
		switch(jsondatas.product_type)
		{
			case '1':
				requestUrl = 'goldenhookcustomproduct/hat/send/';
			break;
			
			case '2':
				requestUrl = 'goldenhookcustomproduct/scarf/send/';
			break;
		}	
		
		new Ajax.Request(
			goldenhookCustom.siteUrl+requestUrl,
			{	method: 'get', 
				parameters: { JSONstring:datas }, 
				onComplete: function(result){
				
					var response = result.responseText || "error";

					var result = eval('(' + response + ')');  
					
					if(result.type == "error" || result.type == "success")
					{
						var jsonMessage = Object.toJSON({type:result.type, message:result.message});
						
						goldenhookCustom.displayMessage(jsonMessage);
	 				}
				},
				onFailure: function(){alert('on failure')}
			}
		);
	},
	
	saveProduct: function(datas) {
		
		var jsondatas = datas.evalJSON();
		
		var requestUrl = '';
		
		switch(jsondatas.product_type)
		{
			case '1':
				requestUrl = 'goldenhookcustomproduct/hat/save/';
			break;
			
			case '2':
				requestUrl = 'goldenhookcustomproduct/scarf/save/';
			break;
		}	
		
		new Ajax.Request(
			goldenhookCustom.siteUrl+requestUrl,
			{	method: 'get', 
				parameters: { JSONstring:datas }, 
				onComplete: function(result){
				
					var response = result.responseText || "error";

					var result = eval('(' + response + ')');  
					
					if(result.type == "error" || result.type == "success")
					{
						var jsonMessage = Object.toJSON({type:result.type, message:result.message});						
						goldenhookCustom.displayMessage(jsonMessage);
	 				}
	 				else if(result.type=="redirect")
	 				{
	 					location.href=result.url+"id/"+result.id;
	 				}
				},
				onFailure: function(){alert('on failure')}
			}
		);
	},
	
	nextStep: function() {
		$('second_step').addClassName('active-step');
		$('first_step').removeClassName('active-step');
	},
	
	previousStep: function() {
		$('first_step').addClassName('active-step');
		$('second_step').removeClassName('active-step');
	},
	
	openSizeGuide: function() {
		popWin(this.siteUrl+'guide-tailles-bonnet','trackorder','width=800,height=600,resizable=yes,scrollbars=yes');
	},
	
	openGuide: function() {
		popWin(this.siteUrl+'guide-bonnet','trackorder','width=800,height=600,resizable=yes,scrollbars=yes');
	},
	
	openScarfGuide: function() {
		popWin(this.siteUrl+'guide-echarpe','trackorder','width=800,height=600,resizable=yes,scrollbars=yes');
	},
	
	openScarfSizeGuide: function() {
		popWin(this.siteUrl+'guide-tailles-echarpe','trackorder','width=800,height=600,resizable=yes,scrollbars=yes');
	},
	
	hidePopup: function() {
		$('guide_tailles').hide();
		$('guide').hide();
		$('filter').hide();
		Event.stopObserving('filter', 'click', goldenhookCustom.hidePopup);
		Event.stopObserving('guide_tailles', 'click', goldenhookCustom.hidePopup);
		Event.stopObserving('guide', 'click', goldenhookCustom.hidePopup);
	}
}

GoldenhookPressGallery = Class.create();
GoldenhookPressGallery.prototype = {
	initialize: function() {
		this.hookClickables('gallery_menu');
		
		$('gallery_menu').childElements()[0].addClassName('active');
	},
	
	displayMessage: function(jsonMessage){
		goldenhookCustom.thisMovie("goldenhook").openGallery(jsonMessage);
	},
	
	switchGallery: function(event){
		var galleryId = event.target.readAttribute('id').sub("gallery_", "");
		var linkId = event.target.readAttribute('id');
		
		$('gallery_menu').childElements().each(function(element){
			if($(element).hasClassName('active'))
				$(element).removeClassName('active');
		});
		
		$(linkId).ancestors()[0].addClassName('active');
			
		goldenhookGallery.thisMovie("goldenhook").openGallery(galleryId);
	},
	
	thisMovie: function(movieName){
		return document[movieName];
	},
	
	hookClickables: function(parent){
    	parent = $(parent);
	    if (parent)
	    {
	        parent.select('.gallery-item').invoke('observe', 'click', this.switchGallery.bind(this));
	    }
	}
}

GoldenhookShippingPrice = Class.create();
GoldenhookShippingPrice.prototype = {
	initialize: function() {
		Event.observe('country', 'change', this.shippingCountryChange);
	},
	shippingCountryChange: function() {
		if($('country').getValue() != "")
			$('shipping-zip-form').submit()
	}
}

GoldenhookDetectFlash = Class.create();
GoldenhookDetectFlash.prototype = {
	initialize: function() {
		this.playerVersion = swfobject.getFlashPlayerVersion();
	},
	
	isValidVersion: function(major, minor, release) {
			
		if(this.playerVersion.major>major)
			return true;
		
		if((this.playerVersion.major==major) && (this.playerVersion.minor>minor))
			return true;
			
		if((this.playerVersion.major==major) && (this.playerVersion.minor==minor) && (this.playerVersion.release>=release))
			return true;
		
		return false;
	}
}

GoldenhookTransform = Class.create();
GoldenhookTransform.prototype = {
	initialize: function() {		
		
	},
	
	newVertical:function(id) {
		new UI.Carousel(id, {direction: "vertical"});
	},
	
	newHorizontal:function(id) {
		new UI.Carousel(id);
	}
}

var DecorateProductList = {
	init: function() {
			
		$$('.home-products-grid li').each( function(elmt) {
			Event.observe(elmt, 'mouseover', DecorateProductList.colorIt);
			Event.observe(elmt, 'mouseout', DecorateProductList.uncolorIt);
		});
		
	},
	
	colorIt: function(event) {
		$(this).addClassName('over');
	},
	
	uncolorIt: function(event) {
		$(this).removeClassName('over');
	}
}

var DecorateInfoList = {
	init: function() {
			
		$$('.leftinfo-box li').each( function(elmt) {
			Event.observe(elmt, 'mouseover', DecorateProductList.colorIt);
			Event.observe(elmt, 'mouseout', DecorateProductList.uncolorIt);
		});
		
	},
	
	colorIt: function(event) {
		$(this).addClassName('over');
	},
	
	uncolorIt: function(event) {
		$(this).removeClassName('over');
	}
}

Event.observe(window, "load", function() {
	Cufon.replace('.cufon-themix', { hover: true, fontFamily: 'The Mix-' });
	Cufon.replace('.cufon-themix-sb', { hover: true, fontFamily: 'The Mix Semi Bold-' });
	Cufon.replace('.footer-links a', { hover: true, fontFamily: 'SignPainter' });
	Cufon.replace('.cufon-sign', { hover: true, fontFamily: 'SignPainter' });
	Cufon.replace('.cufon-myr', { hover: true, fontFamily: 'Myriad Pro' });
	Cufon.replace('.header-nav a', { hover: true, fontFamily: 'SignPainter' });
	Cufon.replace('.cms-title', { hover: true, fontFamily: 'SignPainter' });
	
	
	$$('.cufon-text').each(function(n){ $(n).removeClassName('cufon-text'); })
	
	jQuery('.upsell-products-grid').equalHeights();
	
	DecorateProductList.init();
	DecorateInfoList.init();


});
