var deliveryFormFX;
var bolDeliveryDifferent = false;

var cvvinfoFX;


function initForm(){
	if ($('userinfosdelivery')){
		deliveryFormFX = new Fx.Slide('userinfosdelivery', {
			duration: 1000,
			transition: Fx.Transitions.Pow.easeOut
		});
		deliveryFormFX.hide();
		$('linkdeliverysame').setStyle('display','none');
	}
	
	if ($('cvvinfo')){
		cvvinfoFX = new Fx.Slide('cvvinfo', {
			duration: 1000,
			transition: Fx.Transitions.Pow.easeOut
		});
		cvvinfoFX.hide();
	}
	
	if ($('strUserDelivery_normal')){
		$('strUserDelivery_normal').addEvent('click', function(event){
			updateDeliveryFees("normal");
		});
		$('strUserDelivery_express').addEvent('click', function(event){
			updateDeliveryFees("express");
		});
	}
	
	if ($('basketpromotionvalidatelink')){
		$('basketpromotionvalidatelink').addEvent('click', function(event){
			updatePromotionalCode();
		});
	}
}

function updateDeliveryFees(deliveryMode){
	var strUrl = window.location.href;
	var codLang = (strUrl.indexOf("/fr/")>0)?"fr":"en";
	var request = new Request.JSON({
		url: "/_lib/shop/service.basket.php",
		method: 'post',
	    data: 'todo=getDeliveryFees&promotionalCode='+$('codepromotion').value+'&deliveryMode='+deliveryMode+'&lang='+codLang,
		onSuccess: function(objResult){
			
			$('tdDeliveryFees').set('html', objResult.deliveryFeesTxt);
			
			if ($('tdTotalOutsideCH')) $('tdTotalOutsideCH').set('html', objResult.priceOutsideCHTxt);
			else $('tdTotalOrder').set('html', objResult.priceTxt);
			
			$('amount').value = objResult.totalToPay;
			$('deliveryDelay').set('html', objResult.deliveryDelayTxt);
			
			if (objResult.promotionaldiscount!=null){
				$('promotionaldiscount').set('html', objResult.promotionaldiscount);
				$('promotiontext').set('html', objResult.promotiontext);
				$('tva').set('html', objResult.tva);
				$('promotioncodepaymentinput').value = objResult.promotioncode;
				$('trbasketpromotion').removeClass('trbasketpromotionhidden');
				$('basketpromotion').setStyle('display','none');
			}
			
			if (objResult.discountTextError!=null){
				if(!$('basketpromotionmessage').hasClass("error")) $('basketpromotionmessage').addClass("error");
				$('basketpromotionmessage').set('html', objResult.discountTextError);
			}
			else {
				$('basketpromotionmessage').set('html', "");
				$('basketpromotionmessage').removeClass("error");
			}
			
			
			
		}
	});
	request.get();
}

function toggleDeliveryForm(){
	deliveryFormFX.cancel();
	bolDeliveryDifferent=!bolDeliveryDifferent;
	if (bolDeliveryDifferent){
		deliveryFormFX.slideIn();
		$('linkdeliverydifferent').setStyle('display','none');
		$('linkdeliverysame').setStyle('display','inline');
	}
	else {
		resetDeliveryInfos();
		deliveryFormFX.slideOut();
		$('linkdeliverydifferent').setStyle('display','inline');
		$('linkdeliverysame').setStyle('display','none');
	}
}

function resetDeliveryInfos(){
	$('strDeliveryFirstName').value="";
	$('strDeliveryLastName').value="";
	$('strDeliveryAddress').value="";
	$('strDeliveryAddress2').value="";
	$('strDeliveryCity').value="";
	$('strDeliveryZipCode').value="";
	$('strDeliveryPhone').value="";
	$('strDeliveryCountryCode').value="";
	
	resetError('strDeliveryFirstName');
	resetError('strDeliveryLastName');
	resetError('strDeliveryAddress');
	resetError('strDeliveryCity');
	resetError('strDeliveryZipCode');
	resetError('strDeliveryCountryCode');
}

function resetError(id){
	var inputWrapper = $(id).getParent();
	var span = inputWrapper.getParent().getElement('span');
	inputWrapper.setStyle('border-color', '#969695');
	span.removeClass('error');
}

function sendUserInfos(){
	var error = false;
	var inputOK;
	
	inputOK = checkInput('strUserCountryCode'); if (!inputOK) error = true;
	inputOK = checkInput('strUserLastName'); if (!inputOK) error = true;
	inputOK = checkInput('strUserFirstName'); if (!inputOK) error = true;
	inputOK = checkInput('strUserAddress'); if (!inputOK) error = true;
	inputOK = checkInput('strUserZipCode'); if (!inputOK) error = true;
	inputOK = checkInput('strUserCity'); if (!inputOK) error = true;
	inputOK = checkInputEmail('strUserEmail'); if (!inputOK) error = true;
	inputOK = checkInput('strUserPhone'); if (!inputOK) error = true;
	
	if (bolDeliveryDifferent){
		inputOK = checkInput('strDeliveryCountryCode'); if (!inputOK) error = true;
		inputOK = checkInput('strDeliveryLastName'); if (!inputOK) error = true;
		inputOK = checkInput('strDeliveryFirstName'); if (!inputOK) error = true;
		inputOK = checkInput('strDeliveryAddress'); if (!inputOK) error = true;
		inputOK = checkInput('strDeliveryZipCode'); if (!inputOK) error = true;
		inputOK = checkInput('strDeliveryCity'); if (!inputOK) error = true;
		inputOK = checkInput('strDeliveryPhone'); if (!inputOK) error = true;
	}
	else {
		resetDeliveryInfos();
	}
	
	//if (!error) document.forms['userinfos'].submit();
	return !error;
}

function checkInput(id){
	var inputWrapper = $(id).getParent();
	var span = inputWrapper.getParent().getElement('span');
	if ($(id).value==""){
		error = true;
		inputWrapper.setStyle('border-color', '#F00');
		span.addClass('error');
		return false;
	}
	else {
		inputWrapper.setStyle('border-color', '#969695');
		span.removeClass('error');
		return true;
	}
}

function checkInputEmail(id){
	var inputWrapper = $(id).getParent();
	var span = inputWrapper.getParent().getElement('span');
	if (!checkMail($(id).value)){
		error = true;
		inputWrapper.setStyle('border-color', '#F00');
		span.addClass('error');
		return false;
	}
	else {
		inputWrapper.setStyle('border-color', '#969695');
		span.removeClass('error');
		return true;
	}
}

function checkMail(email) {
	var s = (email!=null)?email:"";
	var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	return emailPattern.test(s);
}

function sendCardInfos(){
	
	if (!$('conditionsgenerales').checked){
		$('conditionstext').setStyle('color','#f00');
		return false;
	}
	
	var error = false;
	var inputOK;
	
	inputOK = checkInput('paymentmethod'); if (!inputOK) error = true;
	inputOK = checkInput('cardno'); if (!inputOK) error = true;
	inputOK = checkInput('expm'); if (!inputOK) error = true;
	inputOK = checkInput('expy'); if (!inputOK) error = true;
	inputOK = checkInput('cvv'); if (!inputOK) error = true;
	
	if (!error) document.forms['uppform'].submit();
}

function toggleCVV(){
	cvvinfoFX.toggle();
}

function updatePromotionalCode(){
	var deliveryMode = ($('strUserDelivery_express').checked)?"express":"normal";
	updateDeliveryFees(deliveryMode);
}

function openPop(theURL, myWidth, myHeight, myScrolls) {
	myWin=window.open(theURL,'pop','toolbar=no,directories=no,menubar=no,scrollbars='+myScrolls+',resizable=no,width='+myWidth+',height='+myHeight);
	
	myWin.focus();
}
