function addToCart(skuStr) {
	btnSku = skuStr;
	sku = skuStr.split("_");
    var btn = document.getElementById('btnAdd_'+btnSku);
	if(sku.value!="") {
		btn.onAdd = function(e) { updateMiniCart(e); };
		RPC("Cart","add_to_cart",btn,"onAdd",Array(sku[0]));
	}

	window.scrollTo(0,0);
	/*fadeId = 'btnAdd_'+sku;
	fadeInOut(fadeId);*/
}

function fadeInOut(fadeId){
	currentOpac(fadeId, 50, 500);
	setTimeout("currentOpac(fadeId, 100, 500)",500);
}


function addMerchToCart(sku) {
    var btnMerch = document.getElementById('btnAdd_'+sku);
	skuVal = $('frmVariant').sku.value;
	if(skuVal!="") {
		btnMerch.onMerchAdd = function(e) { 
			updateMiniCart(e); 
			return false;
		};
		RPC("Cart","add_to_cart",btnMerch,"onMerchAdd",Array(skuVal));
	}

	window.scrollTo(0,0);
	/*fadeId = 'btnAdd_'+sku;
	fadeInOut(fadeId);*/
	return false;
}

function updateQty(sku) {
    var qty = document.getElementById('qty' + sku).value;
    if(qty < 0 || isNaN(qty)){
        qty = 1;
    }
    btn = document.getElementById('btnUpdate' + sku);
    if(sku.value!="") {
        btn.onUpdate = function(e) { updateCart(e); };
        RPC("Cart","update_cart",btn,"onUpdate",Array(sku, qty));
    }
}

function updateMCQty(sku, qty){
    if(qty < 0 || isNaN(qty)){
        qty = 1;
    }
    btn = document.getElementById('btnUpdate');
    if(sku.value!="") {
        btn.onUpdate = function(e) { updateMiniCart(e); };
        RPC("Cart","update_mc_qty",btn,"onUpdate",Array(sku, qty));
    }
}

function deleteFromCart(sku) {
    var qty = document.getElementById('qty' + sku).value;
    btn = document.getElementById('btnRemove' + sku);
	if(sku.value!="") {
		btn.onRem = function(e) { updateCart(e); };
		RPC("Cart","update_cart",btn,"onRem",Array(sku));
	}
}

function emptyCart() {
    btn = document.getElementById('btnEmpty');
    btn.onEmpty = function(e) {updateCart(e);};
    RPC("Cart","empty_cart",btn,"onEmpty",Array());
}

function updateMiniCart(html){
    var target = document.getElementById('minicart')
    if(html == null) {
        target.innerHTML = "";
    } else { 
        target.innerHTML = html;
    }
    target.style.visibility = "visible";
    target.onCount = function(e) {updateMiniCartCount(e);};
    RPC("Cart","count_cart",target,"onCount",Array());
}

function updateMiniCartCount(val){
    document.getElementById('cart_count').innerHTML = val;
}

function updateCart(html){
    var target = document.getElementById('customerpanel_back');
    target.innerHTML = html;
    target.onCount = function(e) {updateMiniCartCount(e);};
    RPC("Cart","count_cart",target,"onCount",Array());  
}

function showMC(){
    document.getElementById('topLoginBox').style.display = "none";
    btn = document.getElementById('btnShowMC');
    btn.onShow = function(e) {updateMiniCart(e);};
    RPC("Cart","display_mini_cart",btn,"onShow",Array());
}

function closeMC(){
    document.getElementById('minicart').style.visibility = "hidden";
}

function applyCode(){
    var code = document.getElementById('dcode').value;
	if(code!="") {
        var btn = document.getElementById('btnApply');
		btn.onApply = function(e) { updateCart(e); };
		RPC("Cart","apply_discount_code",btn,"onApply",Array(code));
	}
}

function frmPaymentSubmit(elm){
	
	elm.frmPaymentSubmitResponse = function(e) { frmPaymentSubmitVal(e); };

	RPC("Cart", "frmPaymentChkFields", elm, "frmPaymentSubmitResponse", Array($('billing_address_id').value, $('postcode').value, $('CardHolder').value, document.frmPayment.CardNumber.value, document.frmPayment.ExpiryDate.value, document.frmPayment.ExpiryYear.value, $('CV2').value));

	return false;
}


function frmPaymentSubmitVal(messages){
	process = true;
	if(messages == true) {
		document.getElementById('paymentValMsg').style.display = 'inline';
		process = false;
	} else {
		document.getElementById('paymentValMsg').style.display = 'none';	
	}
	
/*	if(messages.CardHolder_validation != "") {
		document.getElementById('CardHolder_validation').innerHTML = messages.CardHolder_validation;
		document.getElementById('CardHolder_validation').style.visibility = 'visible';
		process = false;
	} else {
		document.getElementById('CardHolder_validation').innerHTML = '';
		document.getElementById('CardHolder_validation').style.visibility = 'hidden';
	}

	if(messages.CardNumber_validation != "") {
		document.getElementById('CardNumber_validation').innerHTML = messages.CardNumber_validation;
		document.getElementById('CardNumber_validation').style.visibility = 'visible';
		process = false;
	} else {
		document.getElementById('CardNumber_validation').innerHTML = '';
		document.getElementById('CardNumber_validation').style.visibility = 'hidden';
	}

	if(messages.Expiry_validation != "") {
		document.getElementById('Expiry_validation').innerHTML = messages.Expiry_validation;
		document.getElementById('Expiry_validation').style.visibility = 'visible';
		process = false;
	} else {
		document.getElementById('Expiry_validation').innerHTML = '';
		document.getElementById('Expiry_validation').style.visibility = 'hidden';
	}

	if(messages.CV2_validation != "") {
		document.getElementById('CV2_validation').innerHTML = messages.CV2_validation;
		document.getElementById('CV2_validation').style.visibility = 'visible';
		process = false;
	} else {
		document.getElementById('CV2_validation').innerHTML = '';
		document.getElementById('CV2_validation').style.visibility = 'hidden';
	}
*/

	if(process == true){
		document.frmPayment.submit();
	}
}

function frmGiftVoucherPaymentSubmit(){
	elm = $('paymentValMsg');
	elm.frmGiftVoucherPaymentSubmitResponse = function(e) { 
		frmGiftVoucherPaymentSubmitVal(e); };

	RPC("Cart", "frmGiftVoucherPaymentChkFields", elm, "frmGiftVoucherPaymentSubmitResponse", Array($('to_name').value, $('to_email').value, $('from_name').value, $('from_surname').value, $('from_email').value, $('postcode').value, $('address_line1').value, $('town').value, $('county').value, $('country').value, $('telephone').value));
	return false;
}

function frmGiftVoucherPaymentSubmitVal(messages){
	
	process = true;
	if(messages == true) {
		document.getElementById('paymentValMsg').style.display = 'inline';
		process = false;
	} else {
		document.getElementById('paymentValMsg').style.display = 'none';	
	}
	if(process == true){
		document.frmGVPayment.submit();
	}
}

function shwNewPayment(){
	document.getElementById('previousPayment').style.display = 'none';
	document.getElementById('newPayment').style.display = 'block';
	return false;
}

function shwPrevPayment(){
	document.getElementById('newPayment').style.display = 'none';
	document.getElementById('previousPayment').style.display = 'block';
	return false;
}



function openOtherCardForm(){
	document.getElementById('otherCardForm').style.display='block';	
	return false;
}

function otherCardFrmSubmit(){

	for (i=$('frmOtherCard').otherCard_trans_log_id.length-1; i > -1; i--) {
		if ($('frmOtherCard').otherCard_trans_log_id[i].checked) {
			id = $('frmOtherCard').otherCard_trans_log_id[i].value;
		}
	}

	// replace details on main page with new card details
	$('trans_log_id').value = id;
	$('ExpiryDate').value = $('ExpiryDate_'+id).value;
	$('ExpiryYear').value = $('ExpiryYear_'+id).value;
	$('cardNumber').innerHTML = $('cardNumber_'+id).innerHTML;
	document.getElementById('otherCardForm').style.display='none';	
	return false;

}

function submitPostageFrm(){
	document.postageFrm.submit();
}

function frmPrevPaymentSubmit(){
	elm = $('prevPaymentMsg');
	elm.style.display = 'none';
	elm.frmPrevPaymentValResponse = function(e) { 
										if(e == false){
											elm.style.display = 'block';
											return false;
										}else{
											elm.style.display = 'none';
											document.frmPrevPayment.submit();
										}
									};
	RPC("Cart", "frmPrevPaymentVal", elm, "frmPrevPaymentValResponse", Array($('trans_log_id').value,document.frmPrevPayment.ExpiryDate.value, document.frmPrevPayment.ExpiryYear.value,$('Password').value));
	return false;
}


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// fade functions 


function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function currentOpac(id, opacEnd, millisec) {
	//standard opacity is 100
	var currentOpac = 100;
	
	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	//call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec)
}

function chkOfferBox(){
	if($('dcode').value != ''){
		var ret = confirm("You have entered a code and not clicked 'Apply Code'.\n Click 'OK' to go back and apply it, or click 'Cancel' to proceed direct to payment.");
		if(ret){
			return false;
		}else{
			return true;
		}
	}else{
		return true;
	}
}
