var checkboxUseBilling;

function setupCopyAddressText(){
	
	if(document.getElementById("dropdownDeliveryAddress")){
		document.getElementById("dropdownBillingAddress").setAttribute("copycontrol", "dropdownDeliveryAddress");
		
		document.getElementById("dropdownDeliveryAddress").onchange = function(){handleDropdowns(this);}
		document.getElementById("dropdownBillingAddress").onchange = function(){handleDropdowns(this);}
	}
	
	document.getElementById("radioBillingMale").setAttribute("copycontrol", "radioDeliveryMale");
	document.getElementById("radioBillingFemale").setAttribute("copycontrol", "radioDeliveryFemale");
	
	document.getElementById("textBillingFirstName").setAttribute("copycontrol", "textDeliveryFirstName");
	document.getElementById("textBillingLastName").setAttribute("copycontrol", "textDeliveryLastName");
	document.getElementById("textBillingTelephone").setAttribute("copycontrol", "textDeliveryTelephone");
	document.getElementById("textBillingAlternateTelephone").setAttribute("copycontrol", "textDeliveryAlternateTelephone");
	document.getElementById("textBillingStreetAddress").setAttribute("copycontrol", "textDeliveryStreetAddress");
	document.getElementById("textBillingTown").setAttribute("copycontrol", "textDeliveryTown");
	document.getElementById("textBillingCity").setAttribute("copycontrol", "textDeliveryCity");
	document.getElementById("textBillingPostCode").setAttribute("copycontrol", "textDeliveryPostCode");
	
	document.getElementById("dropdownBillingCountry").setAttribute("copycontrol", "dropdownDeliveryCountry");
	
	checkboxUseBilling = document.getElementById("checkboxUseBilling");
	
	if (checkboxUseBilling.checked == true){
		useBillingAddress();
	}
	
	checkboxUseBilling.onclick = function(){
		changeDeliveryOption();
	}

}

function handleDropdowns(thisControl){

	var addressType = "";
	
	if(thisControl.id == "dropdownDeliveryAddress"){
		addressType = "Delivery";
	}
	if(thisControl.id == "dropdownBillingAddress"){
		addressType = "Billing";
	}	
	
	var addressID = thisControl.options[thisControl.selectedIndex].value;	
	
	if (thisControl.selectedIndex == document.getElementById("dropdown" + reverseAddressType(addressType) + "Address").selectedIndex && addressID != "0"){
		checkboxUseBilling.checked = true;
		useBillingAddress();
	}	
	
	if (addressID != "0"){
		
		var inputDetails = new Array();
		inputDetails = document.getElementById("address" + addressID).value.split(" | ");
		
		if(inputDetails[0] == "m"){
			document.getElementById("radio" + addressType + "Male").checked = true;
			document.getElementById("radio" + addressType + "Female").checked = false;
		}else{
			document.getElementById("radio" + addressType + "Male").checked = false;
			document.getElementById("radio" + addressType + "Female").checked = true;	
		}	
		
		document.getElementById("text" + addressType + "FirstName").value = inputDetails[1];
		document.getElementById("text" + addressType + "LastName").value = inputDetails[2];
		document.getElementById("text" + addressType + "Telephone").value = inputDetails[3];
		document.getElementById("text" + addressType + "AlternateTelephone").value = inputDetails[4];
		document.getElementById("text" + addressType + "StreetAddress").value = inputDetails[5];
		document.getElementById("text" + addressType + "Town").value = inputDetails[6];
		document.getElementById("text" + addressType + "City").value = inputDetails[7];
		document.getElementById("text" + addressType + "PostCode").value = inputDetails[8];		
		
		var valueIndex = findSelectValueIndex(document.getElementById("dropdown" + addressType + "Country"), inputDetails[9]);
		if(valueIndex != -1){
		document.getElementById("dropdown" + addressType + "Country").selectedIndex = valueIndex;		
		}else{
		document.getElementById("dropdown" + addressType + "Country").selectedIndex = 0;		
		}
		if(document.getElementById("textDeliveryComments")){
			if(addressType == "Delivery"){ document.getElementById("textDeliveryComments").value = inputDetails[10]; }		
		}
	
	}else{ 
	// if != 0
	
		document.getElementById("text" + addressType + "FirstName").value = "";
		document.getElementById("text" + addressType + "LastName").value = "";
		document.getElementById("text" + addressType + "Telephone").value = "";
		document.getElementById("text" + addressType + "AlternateTelephone").value = "";
		document.getElementById("text" + addressType + "StreetAddress").value = "";
		document.getElementById("text" + addressType + "Town").value = "";
		document.getElementById("text" + addressType + "City").value = "";
		document.getElementById("text" + addressType + "PostCode").value = "";	
		document.getElementById("dropdown" + addressType + "Country").selectedIndex = 0;
		
		if(document.getElementById("textDeliveryComments")){
			if(addressType == "Delivery"){ document.getElementById("textDeliveryComments").value = ""; }		
		}
	
	}// if != 0
	
	if(thisControl.id == "dropdownBillingAddress" && checkboxUseBilling.checked == true){
		copySelect(thisControl);
		handleDropdowns(document.getElementById(thisControl.getAttribute("copycontrol")));
	}		

}

function changeDeliveryOption(){

	if (checkboxUseBilling.checked == true){
		useBillingAddress();
	} else {
		differentBillingAddress();
	}

}

function useBillingAddress(){

	if(document.getElementById("dropdownDeliveryAddress")){
		document.getElementById("dropdownDeliveryAddress").disabled = true;
		copySelect(document.getElementById("dropdownBillingAddress"));
	}

	document.getElementById("radioDeliveryMale").disabled = true;
	document.getElementById("radioDeliveryFemale").disabled = true;

	copyCheck(document.getElementById("radioBillingMale"));
	copyCheck(document.getElementById("radioBillingFemale"));
	
	document.getElementById("radioBillingMale").onclick = function(){copyCheck(this)}
	document.getElementById("radioBillingFemale").onclick = function(){copyCheck(this)}
	
	document.getElementById("textDeliveryFirstName").disabled = true;
	document.getElementById("textDeliveryLastName").disabled = true;
	document.getElementById("textDeliveryTelephone").disabled = true;
	document.getElementById("textDeliveryAlternateTelephone").disabled = true;
	document.getElementById("textDeliveryStreetAddress").disabled = true;
	document.getElementById("textDeliveryTown").disabled = true;
	document.getElementById("textDeliveryCity").disabled = true;
	document.getElementById("textDeliveryPostCode").disabled = true;
	document.getElementById("dropdownDeliveryCountry").disabled = true;
	
	copyText(document.getElementById("textBillingFirstName"));
	copyText(document.getElementById("textBillingLastName"));
	copyText(document.getElementById("textBillingTelephone"));
	copyText(document.getElementById("textBillingAlternateTelephone"));
	copyText(document.getElementById("textBillingStreetAddress"));
	copyText(document.getElementById("textBillingTown"));
	copyText(document.getElementById("textBillingCity"));
	copyText(document.getElementById("textBillingPostCode"));
	copySelect(document.getElementById("dropdownBillingCountry"));

	document.getElementById("textBillingFirstName").onkeyup = function(){copyText(this);}
	document.getElementById("textBillingLastName").onkeyup = function(){copyText(this);}
	document.getElementById("textBillingTelephone").onkeyup = function(){copyText(this);}
	document.getElementById("textBillingAlternateTelephone").onkeyup = function(){copyText(this);}
	document.getElementById("textBillingStreetAddress").onkeyup = function(){copyText(this);}
	document.getElementById("textBillingTown").onkeyup = function(){copyText(this);}
	document.getElementById("textBillingCity").onkeyup = function(){copyText(this);}
	document.getElementById("textBillingPostCode").onkeyup = function(){copyText(this);}
	document.getElementById("dropdownBillingCountry").onchange = function(){copySelect(this);}
	
	if(document.getElementById("dropdownBillingAddress")){
		var thisAddressID = document.getElementById("dropdownBillingAddress").options[document.getElementById("dropdownBillingAddress").selectedIndex].value
		
		if (thisAddressID != "0" && document.getElementById("textDeliveryComments")){
		document.getElementById("textDeliveryComments").value 
		= document.getElementById("address" + thisAddressID).value.split(" | ")[10];	
		}else{
		document.getElementById("textDeliveryComments").value = "";
		}	
	}



}

function differentBillingAddress(){

	enableDeliveryAddressFields();
	
	if(document.getElementById("dropdownDeliveryAddress")){
		if(document.getElementById("dropdownDeliveryAddress").selectedIndex == document.getElementById("dropdownBillingAddress").selectedIndex){		
			document.getElementById("dropdownDeliveryAddress").selectedIndex = (document.getElementById("dropdownDeliveryAddress").options.length - 1);
			handleDropdowns(document.getElementById("dropdownDeliveryAddress"));
		}
	}
	
}

function enableDeliveryAddressFields(){

	
	if(document.getElementById("dropdownDeliveryAddress")){
		document.getElementById("dropdownDeliveryAddress").disabled = false;
	}	
	
	document.getElementById("radioDeliveryMale").disabled = false;
	document.getElementById("radioDeliveryFemale").disabled = false;
	
	document.getElementById("radioBillingMale").onclick = "";
	document.getElementById("radioBillingFemale").onclick = "";

	document.getElementById("textDeliveryFirstName").disabled = false;
	document.getElementById("textDeliveryLastName").disabled = false;
	document.getElementById("textDeliveryTelephone").disabled = false;
	document.getElementById("textDeliveryAlternateTelephone").disabled = false;
	document.getElementById("textDeliveryStreetAddress").disabled = false;
	document.getElementById("textDeliveryTown").disabled = false;
	document.getElementById("textDeliveryCity").disabled = false;
	document.getElementById("textDeliveryPostCode").disabled = false;
	document.getElementById("dropdownDeliveryCountry").disabled = false;

	document.getElementById("textBillingFirstName").onkeyup = "";
	document.getElementById("textBillingLastName").onkeyup = "";
	document.getElementById("textBillingTelephone").onkeyup = "";
	document.getElementById("textBillingAlternateTelephone").onkeyup = "";
	document.getElementById("textBillingStreetAddress").onkeyup = "";
	document.getElementById("textBillingTown").onkeyup = "";
	document.getElementById("textBillingCity").onkeyup = "";
	document.getElementById("textBillingPostCode").onkeyup = "";		
	document.getElementById("dropdownBillingCountry").onchange = "";

}

function copyText(thisControl){
	document.getElementById(thisControl.getAttribute("copycontrol")).value = thisControl.value;
}

function copyCheck(thisControl){
	document.getElementById(thisControl.getAttribute("copycontrol")).checked = thisControl.checked;
}

function copySelect(thisControl){
	document.getElementById(thisControl.getAttribute("copycontrol")).selectedIndex = thisControl.selectedIndex;
}

function reverseAddressType(addressType){
	
	if(addressType == "Billing"){
		return "Delivery";
	}
	if(addressType == "Delivery"){
		return "Billing";
	}	

}


addToLoader("setupCopyAddressText()");

addToOnsubmit("enableDeliveryAddressFields()");