
function openActionWindow(_url, _height, _width)
{
	open(_url, "_blank", "scrollbars=yes, toolbar=no, menubar=no, status=yes, resizable=yes, height=" + _height + ", width=" + _width);	
	if (window.event)
		window.event.returnValue = false;
}

function openActionWindowSetLocation(_url, _name, _height, _width, _left, _top)
{
	open(_url, _name, "scrollbars=yes, toolbar=no, menubar=no, status=yes, resizable=yes, height=" + _height + ", width=" + _width + ", left=" + _left + ", top=" + _top);	
	if (window.event)
		window.event.returnValue = false;
}

function priceStructureWindow()
{
	openActionWindowSetLocation("pricingStructure.php", "PricingStructure", '320px', '300px', 0, 0);
}
function cvvWindow()
{
	openActionWindowSetLocation("cvvCode.php", "SecurityCode", '240px', '405px', 0, 0);
}
function GetQueryVariable(variable) 
{
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++)
	{
		var pair = vars[i].split("=");
		if (pair[0] == variable) 
			return pair[1];
	} 
	
	return null;
}

function GetCookie(sName)
{
	var aCookie = document.cookie.split("; ");
	for (var i=0; i < aCookie.length; i++)
	{
		var aCrumb = aCookie[i].split("=");
		if (sName == aCrumb[0])
			return unescape(aCrumb[1]);
	}

	return null;
}

function quantityChange()
{
	document.getElementById("removeItem").value = "";
	document.getElementById("pageAction").value = "update";
	document.shoppingCart.submit();
}

function showMenu(mName)
{
	document.getElementById(mName + "Menu").className = "visible";
}

function hideMenu(mName)
{
	document.getElementById(mName + "Menu").className = "hidden";
}

function toggleBillingVisibility(visibleInfo)
{
	
	var shippingInfoTable = document.getElementById('shippingInfoTable');
	var payPalInfoTable = document.getElementById('payPalInfoTable');

	if (visibleInfo == "creditCard")
	{
		shippingInfoTable.style.display = 'inline';
		payPalInfoTable.style.display = 'none';
	}
	
	if (visibleInfo == "payPal")
	{
		shippingInfoTable.style.display = 'none';
		payPalInfoTable.style.display = 'inline';
	}
}

function removeCartItem(nProductId)
{
	document.getElementById("removeItem").value = nProductId;
	document.getElementById("pageAction").value = "remove";
	document.shoppingCart.submit();
}

function addCartItem(elementId)
{
	var element = document.getElementById(elementId);
	
	if (element.value != "")
	{
		document.getElementById("pageAction").value = "update";
		document.getElementById("addItem").value = element.value;
		document.addProduct.submit();
	}
	else
	{
		alert('Please select a product to add.');
	}
}

function editBillingInfo()
{
	document.getElementById("pageAction").value = "billingInfo";
	document.checkOut.submit();
}

function submitPayment()
{
	document.getElementById("pageAction").value = "submitPayment";
	document.checkOut.submit();
}

function submitPayPalPayment()
{
	document.getElementById("pageAction").value = "submitPayPalPayment";
	document.checkOut.submit();
}

function viewShoppingCart(newUrl)
{
	if (window.parent.opener)
	{
		window.opener.location.replace(newUrl);
		this.close();
	}
	else
	{
		window.location.replace(newUrl);
	}
}

function redirectUrl(nUrl)
{
	window.location.replace(nUrl);
}

function PopulateBillingInfo()
{

	var result = true;
	if (!document.getElementById('chkSameInformation').checked)
	{
		document.getElementById('billingFirstName').value = ''
		document.getElementById('billingLastName').value = ''
		document.getElementById('billingAddress1').value = ''
		document.getElementById('billingAddress2').value = ''
		document.getElementById('billingCity').value = ''
		document.getElementById('billingState').selectedIndex = 0
		document.getElementById('billingZip').value = ''
		document.getElementById('billingCountry').selectedIndex = 0
	}
	else
	{
		CopyBillingInfo();
	}
	return result;
}

function checkBillingVisibiltity()
{
	var result = true;
	if (document.getElementById('chkSameInformation').checked)
		return false;
	else
		return true;
}

function CopyBillingInfo()
{
	var result = true;
	if (document.getElementById('chkSameInformation').checked)
	{
		document.getElementById('billingFirstName').value = document.getElementById('contactFirstName').value;
		document.getElementById('billingLastName').value = document.getElementById('contactLastName').value;
		document.getElementById('billingAddress1').value = document.getElementById('address1').value;
		document.getElementById('billingAddress2').value = document.getElementById('address2').value;
		document.getElementById('billingCity').value = document.getElementById('city').value;
		document.getElementById('billingState').value = document.getElementById('state').value;
		document.getElementById('billingZip').value = document.getElementById('zip').value;
		document.getElementById('billingCountry').value = document.getElementById('country').value;
	}
	return result;
}

function validateBillingInformationForm()
{
	if (document.getElementById("contactFirstName").value == "")
	{
		document.getElementById("contactFirstName").focus();
		alert('Please Enter your First Name');
		return false;
	}
	else
	if (document.getElementById("contactLastName").value == "")
	{
		document.getElementById("contactLastName").focus();
		alert('Please Enter your Last Name');
		return false;
	}
	else
	if (document.getElementById("address1").value == "")
	{
		document.getElementById("address1").focus();
		alert('Please Enter your Shipping Address');
		return false;
	}
	else
	if (document.getElementById("city").value == "")
	{
		document.getElementById("city").focus();
		alert('Please Enter your Shipping City ');
		return false;
	}

	else
	if (document.getElementById("state").value == "")
	{
		document.getElementById("state").focus();
		alert('Please Enter your Shipping State or Province');
		return false;
	}
	else
	if (document.getElementById("zip").value == "")
	{
		document.getElementById("zip").focus();
		alert('Please Enter your Shipping Postal Code');
		return false;
	}
	else
	if (document.getElementById("country").value == "")
	{
		document.getElementById("country").focus();
		alert('Please Enter your Shipping Country');
		return false;
	}
	else
	if (!validEmail(document.getElementById("contactEmailAddress")))
	{
		return false;
	}
	else
	if ((document.getElementById("contactPhone").value == "") || (document.getElementById("contactPhone").value.length < 10))
	{
		document.getElementById("contactPhone").focus();
		alert('Please Enter Valid 10 Digit Phone Number');
		return false;
	}
	else
	if (document.getElementById("ccInfo").value == "")
	{
		document.getElementById("ccInfo").focus();
		alert('Please Select Your Credit Card Type');
		return false;
	}
	else
	if (!CheckCreditCardNumber(document.getElementById("ccNum")))
	{
		return false;
	}
	else
	if (document.getElementById("ccExpMo").value == "")
	{
		document.getElementById("ccExpMo").focus();
		alert('Please Select the Credit Card Expiration Month');
		return false;
	}
	else
	if (document.getElementById("ccExpYr").value == "")
	{
		document.getElementById("ccExpYr").focus();
		alert('Please Select the Credit Card Expiration Year');
		return false;
	}
	else
	if (document.getElementById("billingFirstName").value == "")
	{
		document.getElementById("billingFirstName").focus();
		alert('Please Enter Billing First Name');
		return false;
	}
	else
	if (document.getElementById("billingLastName").value == "")
	{
		document.getElementById("billingLastName").focus();
		alert('Please Enter Billing Last Name');
		return false;
	}
	else
	if (document.getElementById("billingAddress1").value == "")
	{
		document.getElementById("billingAddress1").focus();
		alert('Please Enter Billing Address');
		return false;
	}
	else
	if (document.getElementById("billingCity").value == "")
	{
		document.getElementById("billingCity").focus();
		alert('Please Enter Billing City ');
		return false;
	}
	else
	if (document.getElementById("billingState").value == "")
	{
		document.getElementById("billingState").focus();
		alert('Please Enter your Billing State or Province');
		return false;
	}
	else
	if (document.getElementById("billingZip").value == "")
	{
		document.getElementById("billingZip").focus();
		alert('Please Enter Billing Postal Code');
		return false;
	}
	else
	if (document.getElementById("billingCountry").value == "")
	{
		document.getElementById("billingCountry").focus();
		alert('Please Enter Billing Country');
		return false;
	}
	else
	
	
	document.getElementById("pageAction").value = "displayBillingSummary";
	return true;
}

function validatePayPalInfoForm()
{
	if (!validEmail(document.getElementById("payPalEmail")))
	{
		return false;
	}
	
	document.getElementById("pageAction").value = "displayPayPalSummary";
	return true;
}

function isEmailAddr(Email)
{
   var result = false;
   var theStr = new String(Email);
   var index = theStr.indexOf("@");
   if (index > 0)
   {
      var pindex = theStr.indexOf(".",index);
      if ((pindex > index+1) && (theStr.length > pindex+1))
      result = true;
   }

   return result;
}

function validEmail(email)
{
	var result = false;
	if ((email.value.length < 3) || !isEmailAddr(email.value))
	{
		alert('Please enter a complete email address in the form: yourname@yourdomain.com');
		email.focus();
			
		result = false;
	}
	else
		result = true;
   
	return result;
}

function inValidCharSet(str,charset)
{
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function validnum(str)
{
	return inValidCharSet(str,"0123456789");
}

function CheckCreditCardNumber(ccNum)
{

	if (ccNum.value == "")
	{
		alert('Please enter a valid Credit Card Number.');
		ccNum.focus();
		return false;
	}
  
	if (((ccNum.value.length > 12) && (ccNum.value.length < 17)) && (validnum(ccNum.value)))
 	{
 		return true;
 	}
 	else
 	{
 		alert('Please enter a valid Credit Card Number.');
		ccNum.focus();	
		return false;
	}
}

