/* utile ?? */ 
function SUPPRIMER_validateCheckoutConfirm(form,confirmMessage)
{
	var ret=true;
	var msg='';
	//alert(form.payment_method_id.value);
	
	if(form.payment_method_id.value==0){
		//alert('Veuillez choisir un moyen de paiement');
		//return false;
		ret =false;
		msg+='Veuillez choisir un moyen de paiement\n';

	}
	if($('cgv') && form.cgv.checked==false){
		//alert('Veuillez confirmer avoir pris connaissance des conditions générales de vente');
		//return false;
		ret =false;
		msg+='Veuillez confirmer avoir pris connaissance des conditions générales de vente.\n';
	}

	if(ret==false){
		alert(msg);
		return false;
	}
	/*
	plus de confirmation validation
	else {

		return confirm(confirmMessage);
	}
	*/
	//return ret;
}

/* espace de nom checkout */
var checkout = {

	variable:0,
	cartFormId:'checkout-cartForm',/* id of cart form */
	
	init:function(){
		if(typeof(appliBoxCartURL)!='undefined'){
		checkout.cartURL=appliBoxCartURL;		
		}

		if($(checkout.cartFormId)){
			Event.observe($(checkout.cartFormId),'submit',checkout.validCart);
		}
		// accessoires en radio
		var accessoriesRadios=document.getElementsByClassName('cartAccessoryradio');
		if(accessoriesRadios.length>0){
			accessoriesRadios.each(function(s,index) {Event.observe(s,'click',checkout.updateAccessory);});
		}
		
		
		// accessoire en checkbox
		var accessoriesCheckboxes=document.getElementsByClassName('cartAccessorycheckbox');
		if(accessoriesCheckboxes.length>0){
			accessoriesCheckboxes.each(function(s,index) {Event.observe(s,'click',checkout.updateAccessory);});
		}
		
		
		if($('checkout-takeOffOldStuffYes') && $('cartTakeOffOldStuffRow') ){
			Event.observe($('checkout-takeOffOldStuffYes'),'click',checkout.displayTakeOffRow);
			Event.observe($('checkout-takeOffOldStuffNo'),'click',checkout.displayTakeOffRow);
			//mise a jour de l'url + ou - (en get) avec les autres elements du formulaire panier (enlevement, cgv..)
			var linksPlus=document.getElementsByClassName('checkout-plus');//tous les liens "+"
			var linksMinus=document.getElementsByClassName('checkout-minus');//tous les liens "+"
			var	links=linksPlus.concat(linksMinus);
			//alert(links.inspect());
			links.each(function(s,index) {Event.observe(s,'click',checkout.updatePlusMinusHref);});
		}
		//if($('checkout-validCart') && $('checkout-cgvCheckBox')){
			//Event.observe($('checkout-validCart'),'click',checkout.validCart);
		//}

	},
	updateAccessory:function(event){
		var el=Event.element(event);
		//alert (el.name);
		//alert(el.value);
		var elementsToGet = (el.value).split("-");
		
		//alert('action'+$(checkout.cartFormId).action);
		$(checkout.cartFormId).action=checkout.cartURL+'&action=updateItem&quantity=1&cartItemId='+elementsToGet[1]+'&product_id='+elementsToGet[0];
		//if(!confirm('action'+$(checkout.cartFormId).action)){
		//	return false;
		//}
		$(checkout.cartFormId).submit();
		//alert('hello');
	},
	updatePlusMinusHref:function(event){
		var el=Event.element(event);
		if($('checkout-takeOffOldStuffNo') && $('checkout-takeOffOldStuffNo').checked==true){
			el.href=el.href+'&takeOffOldStuff=0';
		}
		if($('checkout-takeOffOldStuffYes') && $('checkout-takeOffOldStuffYes').checked==true){
			el.href=el.href+'&takeOffOldStuff=1';
		}
		var cgv=$('checkout-cgvCheckBox');
		if(cgv && cgv.checked==true){
			el.href=el.href+'&cgvOk=1';
		}
		return;//la suite pour plus tard si besoin

		if(el.hasClassName('checkout-plus')==true){
			alert('PLUS : '+el.href);
		} else if (el.hasClassName('checkout-minus')==true) {
			alert('MINUS' + el.href);
		}
	},
	displayTakeOffRow:function(event){
	//alert('in functon');return;
	//alert($('checkout-takeOffOldStuffNo').checked);
		var el=Event.element(event);
		if(el==$('checkout-takeOffOldStuffYes')){
			//var linksPlus=document.getElementsByClassName('checkout-plus');//tous les liens "+"
			//linksPlus.each(function(s,index) {s.href=s.href+'&takeOffOldStuff=1';});//on modifie le lien +/- pour permettre d'enregistrer le choix enlevement
			new Effect.Appear('cartTakeOffOldStuffRow');//on fait apparaitre la ligne "frais d'enlevement
			new Effect.Highlight('cartTakeOffOldStuffRow',{startcolor : '#FF5353', endcolor:'#FFCB2E' });
		} else {
			//var linksMinus=document.getElementsByClassName('checkout-minus');//tous les liens "-"
			//linksMinus.each(function(s,index) {s.href=s.href+'&takeOffOldStuff=-1';});//on modifie le lien +/- pour permettre d'enregistrer le choix enlevement
			new Effect.Fade('cartTakeOffOldStuffRow');
		}
	},
	hideTakeOffRowOnLoad:function(){
		if(!$('checkout-takeOffOldStuffNo') || !$('cartTakeOffOldStuffRow')){
			return;
		}
		if($('checkout-takeOffOldStuffNo').checked==true){
			$('cartTakeOffOldStuffRow').hide();
		}
	},
	validCart:function(event){
		//alert('hello from validCart');
		var res=true;
		if(	checkout.checkCgv()==false){
			Event.stop(event);
			res=false;
		}
		if(	checkout.checkTakeOffOldStuff()==false){
			Event.stop(event);
			res=false;
		}
		return res;
	},
	checkTakeOffOldStuff:function(){
		//au moins une des deux checkBox doit etre cochee (enlevement materiel ou non)
		if(!$('checkout-takeOffOldStuffNo') || !$('checkout-takeOffOldStuffYes')){
			return;
		}
		if($('checkout-takeOffOldStuffNo').checked==false && $('checkout-takeOffOldStuffYes').checked==false){
			alert('Veuillez préciser si vous souhaitez faire enlever votre appareil ou non.');
			new Effect.Highlight('checkout-takeOffOldStuffOptionContainer',{startcolor : '#FF5353', endcolor:'#FFCB2E' });
			$('checkout-takeOffOldStuffOptionContainer').setStyle({  backgroundColor: '#FFE500',border:'1px solid red',padding:'2px'});
			return false;
		}
		return true;
	},
	checkCgv:function(){
		if($('checkout-cgvCheckBox').checked==false){
			//Event.stop(event);
			alert('Veuillez confirmer avoir pris connaissance des conditions générales de vente.');
			new Effect.Highlight('checkout-cgvCheckBoxContainer',{startcolor : '#FF5353', endcolor:'#FFCB2E' });
			$('checkout-cgvCheckBoxContainer').setStyle({  backgroundColor: '#FFE500',border:'1px solid red',padding:'2px'});
			return false;
		}
		return true;
	},
	checkQuantity:function(productId, plusminus){
	/* verif des quantites maxi @todo : finir et implementer. renvoie toujours vrai pour l'instant (verif. sur le serveur) */
		return true;//pour l'instant
			form=$(formid);
			var currentQ = parseInt(form.quantity.value);
	    if ((currentQ >= 0
				&& currentQ < 3 //pas plus de 3 
				&& plusminus == '1')
				|| (currentQ >= 2 && plusminus == '-1')){
	        form.quantity.value = currentQ + parseInt(plusminus);
		} else {
			return false;
		}
	}
}
Event.observe(window, 'load', checkout.init);
Event.observe(window,'load',checkout.hideTakeOffRowOnLoad);
