var ShippingFirstName = "";
var ShippingLastName = "";
var ShippingStreet1 = "";
var ShippingStreet2 = "";
var ShippingCityName = "";
var ShippingStateOrProvince = "";
var ShippingStateOrProvinceIndex = 0;
var ShippingPostalCode = "";
var ShippingPhone = "";
var ShippingEmail = "";

function InitSaveVariables(form) {
	ShippingFirstName = form.ShippingFirstName.value;
	ShippingLastName = form.ShippingLastName.value;
	ShippingStreet1 = form.ShippingStreet1.value;
	ShippingStreet2 = form.ShippingStreet2.value;
	ShippingCityName = form.ShippingCityName.value;
	ShippingPostalCode = form.ShippingPostalCode.value;
	ShippingPhone = form.ShippingPhone.value;
	ShippingEmail = form.ShippingEmail.value;
	ShippingStateOrProvinceIndex = form.ShippingStateOrProvince.selectedIndex;
	ShippingStateOrProvince = form.ShippingStateOrProvince[ShippingStateOrProvinceIndex].value;
}
function ShipToBillPerson(form) {
	if (form.copy.checked) {
		InitSaveVariables(form);
		form.ShippingFirstName.value = form.BillingFirstName.value;
		form.ShippingLastName.value = form.BillingLastName.value;
		form.ShippingStreet1.value = form.BillingStreet1.value;
		form.ShippingStreet2.value = form.BillingStreet2.value;
		form.ShippingCityName.value = form.BillingCityName.value;
		form.ShippingPostalCode.value = form.BillingPostalCode.value;
		form.ShippingPhone.value = form.BillingPhone.value;
		form.ShippingEmail.value = form.member_email.value;
		form.ShippingStateOrProvince.selectedIndex = form.BillingStateOrProvince.selectedIndex;
	}
}

function popUp(URL) {
		day = new Date();
		id = day.getTime();
		eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=500,height=400,left = 440,top = 312');");
	}



function isNumeric(value)
{
	if (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)) return false;
	return true;
}

function isValidDate(dateStr)
{
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null)
	{
		alert("Date is not in a valid format.")
		return false;
	}
	month = matchArray[1];
	day = matchArray[3];
	year = matchArray[4];
	if (month < 1 || month > 12)
	{
		alert("Month must be between 1 and 12.");
		return false;
	}
	if (day < 1 || day > 31)
	{
		alert("Day must be between 1 and 31.");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31)
	{
		alert("Month "+month+" doesn't have 31 days!")
		return false
	}
	if (month == 2)
	{
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap))
		{
			alert("February " + year + " doesn't have " + day + " days!");
			return false;
		}
	}
	return true;
}

function checkEmail(d)
{
	var b=true;
	var c=true;
	if (d.length < 2)
	{
		return false;
	};
	test=d;
	for (var i=0; i<test.length;i++)
	{
		var check=test.substring(i, i+1)
		if (check == "@")
		{
			b=false;
		};
		if ((check == ".") && (b == false))
		{
			c=false;
		};
	};
	if ((b) || (c))
	{
		return false;
	};
	return true;
}
function checkSpecialChar(d)
{
	var iChars = "!@#$%^&*()+=-[]\\\';,/{}|\":<>? ";

	for (var i = 0; i < d.value.length; i++)
	{
		if (iChars.indexOf(d.value.charAt(i)) != -1)
		{
			return false;
		}
	}
	return true;
}
function trim(stringToTrim)
{
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function isUrl(s) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(s);
}
function getElementsByName_iefix(tag, name)
{
	var elem = document.getElementsByTagName(tag);
	var arr;
	for(i = 0,iarr = 0; i < elem.length; i++)
	{
		att = elem[i].getAttribute("name");
		if(att == name)
		{
			if(tag=="select") arr = elem[i][elem[i].selectedIndex].text;
			else if(tag=="span" || tag=="div") arr = elem[i];
			else arr = elem[i].value;//
			iarr++;
		}
	}
	return arr;
}
function setElementsByName_iefix(tag, name, value)
{
	var elem = document.getElementsByTagName(tag);
	var arr;
	for(i = 0,iarr = 0; i < elem.length; i++)
	{
		att = elem[i].getAttribute("name");
		if(att == name)
		{
			if(tag=="select") elem[i][elem[i].selectedIndex].text = value;
			else if(tag=="span" || tag=="div") elem[i] = value;
			else elem[i].value = value;//
			iarr++;
		}
	}
	//return arr;
}
function GetXmlHttpObject()
{
	var xmlHttpRequest=null;

	try
	{
		xmlHttpRequest = new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttpRequest;
}
function GeneratePassword() {

    if (parseInt(navigator.appVersion) <= 3) {
        alert("Sorry this only works in 4.0+ browsers");
        return true;
    }

    var length=16;
    var sPassword = "";

    var noPunction = true;
    var randomLength = false;

    if (randomLength) {
        length = Math.random();

        length = parseInt(length * 100);
        length = (length % 7) + 6
    }


    for (i=0; i < length; i++) {

        numI = getRandomNum();
        if (noPunction) { while (checkPunc(numI)) { numI = getRandomNum(); } }

        sPassword = sPassword + String.fromCharCode(numI);
    }

    return sPassword;

    //return true;
}

function getRandomNum() {

    // between 0 - 1
    var rndNum = Math.random()

    // rndNum from 0 - 1000
    rndNum = parseInt(rndNum * 1000);

    // rndNum from 33 - 127
    rndNum = (rndNum % 94) + 33;

    return rndNum;
}

function checkPunc(num) {

    if ((num >=33) && (num <=47)) { return true; }
    if ((num >=58) && (num <=64)) { return true; }
    if ((num >=91) && (num <=96)) { return true; }
    if ((num >=123) && (num <=126)) { return true; }

    return false;
}


function checkForm(formobj){
	// Enter name of mandatory fields
	var fieldRequired = Array(
	"BillingFirstName",
	"BillingLastName",
	"BillingStreet1",
	"BillingCityName",
	"BillingPostalCode",
	"BillingEmail",
	"ShippingFirstName",
	"ShippingLastName",
	"ShippingStreet1",
	"ShippingCityName",
	"ShippingPostalCode");
	// Enter field description to appear in the dialog box
	var fieldDescription = Array(
	"Billing First Name",
	"Billing Last Name",
	"Billing Address 1",
	"Billing City",
	"Billing Zip",
	"Billing Email",
	"Shipping First Name",
	"Shipping Last Name",
	"Shipping Address 1",
	"Shipping City",
	"Shipping Zip");
	// dialog message
	var alertMsg = "Please complete the following fields:\n";
	
	var l_Msg = alertMsg.length;
	var blnAlert=0;
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
					blnAlert=1;
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
					blnAlert=1;
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
					blnAlert=1;
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
					blnAlert=1;
				}
			}
		}
	}
	//alertMsg.length == l_Msg
	if (blnAlert==0){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}





















































