// JavaScript Document

var nameFirst = "";
var nameLast = "";
var address = "";
var address2 = "";
var city = "";
var state = "";
var zip = "";
var phone = "";

function InitSaveVariables(form) {
	ShipFirst = form.nameFirst.value;
	ShipLast = form.nameLast.value;
	ShipAddress1 = form.address.value;
	ShipAddress2 = form.address2.value;
	ShipCity = form.city.value;
	ShipState = form.state.value;
	ShipZip = form.zip.value;
	ShipPhone = form.phone.value;
}

function ShipToBillPerson(form) {
	if (form.copy.checked) {
		InitSaveVariables(form);
		form.nameFirst.value = form.billNameFirst.value;
		form.nameLast.value = form.billNameLast.value;
		form.address.value = form.billAddress1.value;
		form.address2.value = form.billAddress2.value;
		form.city.value = form.billCity.value;
		form.state.value = form.billState.value;
		form.zip.value = form.billZip.value;
		form.phone.value = form.billPhone.value;
	} else {
		form.nameFirst.value = ShipFirst;
		form.nameLast.value = ShipLast;
		form.address.value = ShipAddress1;
		form.address2.value = ShipAddress2;
		form.city.value = ShipCity;
		form.state.value = ShipState;
		form.zip.value = ShipZip;
		form.phone.value = ShipPhone;
	}
}

numberoftimes = 0;

function onlyonce() {
	numberoftimes += 1;
	if (numberoftimes > 1) {
		var themessage = "Please be patient. You have already submitted this form. Pressing submit multiple times will result in your account being billed multiple times. You will receive a response momentarily.";
		if (numberoftimes == 3) {
			themessage = "DO NOT PRESS SUBMIT MULTIPLE TIMES!!! YOUR ACCOUNT WILL BE BILLED EACH TIME YOU PRESS SUBMIT!!! Processing may take up to one minute.";
         }
          alert(themessage);
          return false; 
	} else {
		return true;
	}
}

function MoveOption(objSourceElement, objTargetElement) {
	var aryTempSourceOptions = new Array();
	var aryTempTargetOptions = new Array();
	var x = 0;

	//looping through source element to find selected options
	for (var i = 0; i < objSourceElement.length; i++) {
		if (objSourceElement.options[i].selected) {
			 //need to move this option to target element
			 var intTargetLen = objTargetElement.length++;
			 objTargetElement.options[intTargetLen].text = objSourceElement.options[i].text;
			 objTargetElement.options[intTargetLen].value = objSourceElement.options[i].value;
		} else {
			 //storing options that stay to recreate select element
			 var objTempValues = new Object();
			 objTempValues.text = objSourceElement.options[i].text;
			 objTempValues.value = objSourceElement.options[i].value;
			 aryTempSourceOptions[x] = objTempValues;
			 x++;
		}
	}

	//sorting and refilling target list
	for (var i = 0; i < objTargetElement.length; i++) {
		var objTempValues = new Object();
		objTempValues.text = objTargetElement.options[i].text;
		objTempValues.value = objTargetElement.options[i].value;
		aryTempTargetOptions[i] = objTempValues;
	}

	aryTempTargetOptions.sort(sortByText);

	for (var i = 0; i < objTargetElement.length; i++) {
		objTargetElement.options[i].text = aryTempTargetOptions[i].text;
		objTargetElement.options[i].value = aryTempTargetOptions[i].value;
		objTargetElement.options[i].selected = false;
	}

	//resetting length of source
	objSourceElement.length = aryTempSourceOptions.length;
	//looping through temp array to recreate source select element
	for (var i = 0; i < aryTempSourceOptions.length; i++) {
		objSourceElement.options[i].text = aryTempSourceOptions[i].text;
		objSourceElement.options[i].value = aryTempSourceOptions[i].value;
		objSourceElement.options[i].selected = false;
	}
}