/*
	File: 			store.js
	Description:	Site store scripts
	Author:			Slava Karpenko @ FLOW~13 <info@flow13.com>
	
	This file contains JavaScripts necessary for the store form validation.
*/

function updatePrice()
{
	var product_total = 0.0;
	
	var prod1_copies = parseInt($F('prod1'), 10);				
	var prod3_copies = parseInt($F('prod3'), 10);
	var prod10_copies = parseInt($F('prod10'), 10);
	
	if (isNaN(prod1_copies) || prod1_copies < 0) prod1_copies = 0;
	if (isNaN(prod3_copies) || prod3_copies < 0) prod3_copies = 0;
	if (isNaN(prod10_copies) || prod10_copies < 0) prod10_copies = 0;
	
	if ($('check1').checked && $F('prod1'))
		product_total += (prod1_copies * $F('prod1_price'));

	if ($('check3').checked && $F('prod3'))
		product_total += (prod3_copies * $F('prod3_price'));
	
	if ($('check10').checked && $F('prod10'))
		product_total += (prod10_copies * $F('prod10_price'));
		
	// Update product prices if we have the coupon
	var prod1_price = parseFloat($F('prod1_price'));
	var prod3_price = parseFloat($F('prod3_price'));
	var prod10_price = parseFloat($F('prod10_price'));
	
	var prod1_total_caption = "$" + prod1_price.toFixed(2);
	var prod3_total_caption = "$" + prod3_price.toFixed(2);
	var prod10_total_caption = "$" + prod10_price.toFixed(2);
	
	var xsell_total = 0.0;
	
	// Cross-sell checks
	for (i=1;i<=3;i++)
	{
		var xs_tag = "xs" + i;
		
		if ($('prod'+xs_tag))
		{
			var xs_copies = parseInt($F('prod'+xs_tag), 10);
			
			if (isNaN(xs_copies) || xs_copies < 0) xs_copies = 0;
			
			if ($('check'+xs_tag).checked)
				xsell_total += (xs_copies * $F('prod'+xs_tag+"_price"));
		}
	}
	
	// Add coupon calculation
	var d_per = parseFloat($F('discount_percent')); 
	if (!isNaN(d_per) && d_per)
	{
		product_total *= (1.0 - d_per);
		
		var np1 = (prod1_price * (1.0 - d_per));
		var np3 = (prod3_price * (1.0 - d_per));
		var np10 = (prod10_price * (1.0 - d_per));
		
		prod1_total_caption = "<strike>" + prod1_total_caption + "</strike> $" + np1.toFixed(2);
		prod3_total_caption = "<strike>" + prod3_total_caption + "</strike> $" + np3.toFixed(2);
		prod10_total_caption = "<strike>" + prod10_total_caption + "</strike> $" + np10.toFixed(2);
	}
	else
	{
		var d_dol = parseFloat($F('discount_dollars'));
		
		if (!isNaN(d_dol) && d_dol)
		{
			if (product_total - d_dol > 0)
				product_total -= d_dol;
			else
				product_total = 0;
		}
	}

	var total = product_total + xsell_total;
	
	$('total').innerHTML = total.toFixed(2);
	
	$('prod1_caption').innerHTML = prod1_total_caption;
	$('prod3_caption').innerHTML = prod3_total_caption;
	$('prod10_caption').innerHTML = prod10_total_caption;
	
	updateProcessButton();
}

function toggleCheckbox(name)
{
	$('check' + name).checked = ($F('prod' + name) > 0);
}

function toggleQty(name)
{
	if ($('check'+name).checked && (!$F('prod' + name))) $('prod'+name).value = 1;
}

function checkCoupon()
{
	var couponCode = $F('coupon_code');

	new Ajax.Request('coupon.php?coupon=' + encodeURIComponent(couponCode), { method: 'get' });
}

function checkEmail()
{
	var email = $F('email_field');
	
	if (/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i.test(email))
		$('email_ok').style.visibility = "visible";
	else
		$('email_ok').style.visibility = "hidden";
	
	updateProcessButton();
}

function checkName()
{
	var name = $F('name_field');
	
	if (/^([a-z]{2,})\s([a-z]{1,})(.*)$/i.test(name))
		$('name_ok').style.visibility = "visible";
	else
		$('name_ok').style.visibility = "hidden";
	
	updateProcessButton();
}

function updateProcessButton()
{
	if (/^([a-z]{2,})\s([a-z]{1,})(.*)$/i.test($F('name_field')) &&
		/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i.test($F('email_field')))
	{
		var prod1_copies = parseInt($F('prod1'), 10);				
		var prod3_copies = parseInt($F('prod3'), 10);
		var prod10_copies = parseInt($F('prod10'), 10);

		if (isNaN(prod1_copies) || prod1_copies < 0 || !$('check1').checked) prod1_copies = 0;
		if (isNaN(prod3_copies) || prod3_copies < 0 || !$('check3').checked) prod3_copies = 0;
		if (isNaN(prod10_copies) || prod10_copies < 0 || !$('check10').checked) prod10_copies = 0;

		if (prod1_copies || prod3_copies || prod10_copies)
		{
			$('submit').disabled = false;
			return;
		}
	}
	
	$('submit').disabled = true;
}