//########### Set Delivery Date #############//
function dateSet(date)
{
	var elem = document.getElementById('deliveryDate');
	elem.value = date;
}

//########## Filter User Input #############//
function filter(text)
{
	var newText = text.stripScripts().stripTags(); 
	return escape(newText);
}

//############ Add Naughty Item ############//
function evilAdd(parms)
{
	var page = "evil_add_item.php";
	new Ajax.Request(page, {   method: 'post', parameters: parms , onComplete:  function(transport) {   document.location = "evil_add_item.php"; } });
}

//########### Add Nice Item #############//
function goodAdd(parms)
{
	var page = "good_add_item.php";
	new Ajax.Request(page, {   method: 'post', parameters: parms , onComplete:  function(transport) {   document.location = "good_add_item.php"; } });
}

//########### Add Item To Cart ###########//
function add2list(item,price,date,dname,address,city,state,zip,message,cat)
{
	dname = filter(dname); address = filter(address); city = filter(city); zip = filter(zip); message = filter(message);
	
	if(date == "" || dname == "" || address == "" || city == "" || state == "" || zip == "" || message == ""){ alert("Please Fill In All Fields"); }
	else 
	{ 
		if(zipVal(zip) == false){ alert("Invalid Zip Format"); $('zip').className = "notValid"; return false; }
		else
		{
			var parms = "item=" + item + "&price=" + price + "&date=" + date + "&name=" + dname + "&address=" + address + "&city=" + city + "&state=" + state + "&zip=" + zip + "&message=" + message + "&cat=" + cat;
			var page = "list.php";
			new Ajax.Request(page, {   method: 'post', parameters: parms , onComplete:  function(transport) {   document.location = "list.php"; } });
		}
	}
}

//########### Remove Selected Item From Cart ###################//
function removeFromCart(totalEvil,totalGood)
{
	var items = "";
	for(i=0;i<totalEvil;i++)
	{
		if($('evil' + i).checked == true){ items += "e" + i + "*"; }
	}
	for(i=0;i<totalGood;i++)
	{
		if($('good' + i).checked == true){ items += "g" + i + "*"; }  
	}
	var page = "list.php"; 
	var parms = "remItems=" + items; 
	new Ajax.Request(page, {   method: 'post', parameters: parms , onComplete:  function(transport) {   document.location = "list.php"; } }); 
}

//########## Verify User Input For Credit Card Info ##################//
function DataCheck()
{
	$('process').innerHTML = "Processing... Please Wait...";
	if( $('first_name').value == "" ||
		$('last_name').value == "" ||
		$('cc_number').value == "" ||
		$('expdate_month').value == "" || $('expdate_month').value.length != 2 ||
		$('expdate_year').value == "" ||  $('expdate_year').value.length != 4 ||
		$('ccv_number').value == "" ||
		$('address1').value == "" ||
		$('city').value == "" ||
			$('country_code').value == "US" && $('state').value == "" ||
			$('country_code').value == "US" && $('zip').value == "" ||    
		$('phone').value == "" || 
		$('email').value == "") 
	{
		alert("Please Fill In All Fields");
		return false;
	}
	
			//######### CLIENT SIDE CREDIT CARD NUMBER / TYPE / CSC VALIDATION #################################################################################
			this.ccType = "";
			var parms = "ccNumber=" + $('cc_number').value;
			new Ajax.Request('credit_card_validation.php', {   method: 'post', parameters: parms , asynchronous: false ,onComplete:  function(transport) 
													{   this.ccType = transport.responseText; } }); 
	
			if(this.ccType == "INVALID CARD"){ alert("Invalid Credit Card"); $('process').innerHTML = ""; return false; }
			var cctChecked = false;
			for(var i = 0;i<4;i++)
			{
				if(document.billing.credit_card_type[i].checked)
				{
					cctChecked = true;
					if(this.ccType != document.billing.credit_card_type[i].value)
					{
						alert("Payment Type Does Not Match Credit Card Number"); $('process').innerHTML = ""; return false;
					}
				}
			}
			if(cctChecked == false){ alert("Please Select A Payment Type"); $('process').innerHTML = ""; return false; }
			var cscInvalid;
			$('ccv_number').className = "";
			if(cscVal($('ccv_number').value,this.ccType) == false){ $('ccv_number').className = "notValid"; alert("Invalid CSC Number"); $('process').innerHTML = ""; return false; }
			//####################################################################################################################################################
			
	$('zip').className = ""; $('phone').className = ""; $('email').className = "";
	
	if($('country_code').value == "US" && zipVal($('zip').value) == false)
	{
		$('zip').className = "notValid"; alert("Invalid ZipCode"); $('process').innerHTML = ""; return false; 
	}
	if(phoneVal($('phone').value) == false)
	{ 
		$('phone').className = "notValid"; alert("Invalid Phone Number"); $('process').innerHTML = ""; return false; 
	}
	if(emailVal($('email').value) == false)
	{ 
		$('email').className = "notValid"; alert("Invalid Email Address"); $('process').innerHTML = ""; return false; 
	}
	
}

//################ Verify User Input Formats (csc, zip,phone,email)##############//
function cscVal(ccv,cctype)
{
	if(cctype == 'American Express')
	{
		var re = /^\d{4}$/;
		return (re.test(ccv));
	}
	else
	{
		var re = /^\d{3}$/;   ///^\d{3}(\d{4})?$/
		return (re.test(ccv));
	}
}
function zipVal(zip)
{
	var re = /^\d{5}([\-]\d{4})?$/;
	return (re.test(zip));
}
function phoneVal(phone)
{
	var re =  /^\d{3}([\-]\d{3}[\-]\d{4})$/; 
	//var re = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/;

 	return (re.test(phone));

}
function emailVal(email)
{
	var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/;
	return (re.test(email));
}

//############## Retrieve Message From Santa #################//
function getMessage()
{
	var page = "messages.php"; 
	var parms = "code1=" + $('code1').value + "&code2=" + $('code2').value; 
	var AU = new Ajax.Updater('msg', page, {method: 'post', parameters: parms , evalScripts: true});
}

//############## Return To HomePage ####################//
function nav()
{
	document.location = "index.php";
}

//############ Submit Return Message To Santa ##################//
function recipMessage(code1,code2)
{
	var parms = "message=" + $('retMessage').value + "&c1=" + code1 + "&c2=" + code2;
	new Ajax.Updater('msg', 'messages.php', {   method: 'post', parameters: parms , evalScripts: true }); 
}

//############# Retrieve Message From Recipient ################//
function getRetMessage()
{
	var page = "messages.php"; 
	var parms = "email=" + $('email').value + "&code=" + $('code').value; 
	var AU = new Ajax.Updater('msg', page, {method: 'post', parameters: parms , evalScripts: true});
}
