/*##############################################
# Signup form V2 (Account form)
# includes/js/javascript.inc.php
# Copyright 2006 steve.clarke@skymarket.co.uk
# http://www.skymarket.co.uk
##############################################*/ 

var editing = false;

function determineAddressInputMethod(edit) {
	var selectedCountry = document.getElementById('s_country').value;
	var id = 's_country';
	
	if(selectedCountry != '') {
		document.getElementById('f_intcode').value = '+'+countryCodes[selectedCountry];
	}
	
	document.getElementById('addressOptionsDiv').style.display = 'none';
	
	if(selectedCountry == 'UK' || selectedCountry == '') {
		document.getElementById('intcodeDiv').style.display = 'none';
	} else {
		document.getElementById('intcodeDiv').style.display = 'block';
	}
	
	if(selectedCountry == 'UK' && !edit) {
		enterAddressLookup();
	} else if(selectedCountry != '' || (edit && selectedCountry != '')) {
		var address1 = document.getElementById('f_address1').value
		
		enterAddressManually();
		if(edit && address1 != '') {
			showHideInactiveAddressFields(1) // Hide un-needed address fields
			document.getElementById('inputManualText').style.display = 'none';
			document.getElementById('editManualLink').style.display = 'block';
		} else if(address1 == '') {
			document.getElementById('inputManualText').style.display = 'block';
		}
	} else {
		// enterAddressManually();
		showHideAddressFields('none');
	}
	
	if(selectedCountry != 'UK') {
		document.getElementById('addressOptionsDiv').style.display = 'none';
		if(document.getElementById('address1Div').style.display == 'block') {
			if(!editing) {document.getElementById('f_address1').focus();}
		}
	} else {
		if(!editing) {document.getElementById('f_postcodeLookup').focus();}
	}
		
	switch(selectedCountry) {
		case 'UK':
			// document.getElementById('f_townLabel').innerHTML = 'Town/City';
			document.getElementById('f_countyLabel').innerHTML = 'County';
			document.getElementById('f_postcodeLabel').innerHTML = 'Postcode';
			break;
		case 'US':
			// document.getElementById('f_townLabel').innerHTML = 'Town/City';
			document.getElementById('f_countyLabel').innerHTML = 'State';
			document.getElementById('f_postcodeLabel').innerHTML = 'Zipcode';
			break;
		default:
			// document.getElementById('f_townLabel').innerHTML = 'Town/City';
			document.getElementById('f_countyLabel').innerHTML = 'County/State';
			document.getElementById('f_postcodeLabel').innerHTML = 'Postcode/Zipcode';
			break;
	}
	
}

function enterAddressLookup() {	

	if(document.getElementById('s_country')) var selectedCountry = document.getElementById('s_country').value;
	
	// Show
	document.getElementById('postcodeLookupFields').style.display = 'block';
	
	// Hide
	document.getElementById('postcodeLookupSelect').style.display = 'none';
	document.getElementById('inputManualText').style.display = 'none';
	document.getElementById('differentAddressText').style.display = 'none';
	document.getElementById('differentAddressEditText').style.display = 'none';

	
	if(selectedCountry) document.getElementById('inputAddressText').style.display = 'block';
	showHideAddressFields('none')
}

function enterAddressManually() {
	document.getElementById('editManualLink').style.display = 'none';
	if(document.getElementById('s_country')) var selectedCountry = document.getElementById('s_country').value;
	
	if(document.getElementById('postcodeLookupFields')) document.getElementById('postcodeLookupFields').style.display = 'none';
	document.getElementById('postcodeLookupSelect').style.display = 'none';
	document.getElementById('inputAddressText').style.display = 'none';
	if(selectedCountry == 'UK' || !document.getElementById('country')) document.getElementById('inputManualText').style.display = 'block';
	
	// Show
	document.getElementById('addressOptionsDiv').style.display = 'block';
	document.getElementById('inputManualText').style.display = 'block';
	
	// Hide
	document.getElementById('differentAddressText').style.display = 'none';
	
	
	showHideAddressFields('block');
}



function showHideAddressFields(displayType) {
	var addressFields = new Array('address1', 'address2', 'address3', 'town', 'county', 'postcode');
	for(var i = 0; i < addressFields.length; i++) {
		if(document.getElementById(addressFields[i]+'Div')) {
			document.getElementById(addressFields[i]+'Div').style.display = displayType;
		}
	}
}

function newPostcodeLookup() {
	enterAddressLookup();
	document.getElementById('inputAddressText').style.display = 'block';
	document.getElementById('f_postcodeLookup').value = '';
	document.getElementById('f_address1').value = '';
	document.getElementById('f_address2').value = '';
	document.getElementById('f_address3').value = '';
	document.getElementById('f_town').value = '';
	document.getElementById('f_county').value = '';
	document.getElementById('f_postcode').value = '';
	
	// Show
	
	// Hide
	document.getElementById('addressOptionsDiv').style.display = 'none';
	document.getElementById('editManualText').style.display = 'none';
	document.getElementById('editManualLink').style.display = 'none';
}

function editAddress(id) {
	showHideInactiveAddressFields(0);
	// Show
	document.getElementById('editManualText').style.display = 'block';
	
	// Hide
// 	document.getElementById('postcodeLookupSelect').style.display = 'none';
	document.getElementById('differentAddressEditText').style.display = 'none';
}

function showHideInactiveAddressFields(hide) {
	var fields = new Array('address2', 'address3');
	var field = new Object;
	
	for(var i = 0; i < fields.length; i++) {
		field = document.getElementById('f_'+fields[i]);
		fieldRow = document.getElementById(fields[i]+'Div');
		if(hide) {
			if(field.value == '') fieldRow.style.display = 'none';
		} else {
			if(field.value == '') fieldRow.style.display = 'block';
		}
	}
}

function setUsernameAndEmailFields(edit) {
	var username = document.getElementById('f_username').value
	var email = document.getElementById('f_email').value
	
	if(edit) {
		document.getElementById('usernameDiv').style.display = 'none';
		document.getElementById('emailDiv').style.display = 'block';
		document.getElementById('confirmEmailDiv').style.display = 'block';
		// document.getElementById('f_email').focus();
	} else {
		if(username.match('@')) {
			document.getElementById('emailDiv').style.display = 'none';
			document.getElementById('f_email').value = username;
			document.getElementById('confirmEmailDiv').style.display = 'block';
			//document.getElementById('f_confirmEmail').focus();
		} else if(username == '') {
			document.getElementById('emailDiv').style.display = 'none';
			document.getElementById('confirmEmailDiv').style.display = 'none';
		} else {
			document.getElementById('emailDiv').style.display = 'block';
			document.getElementById('confirmEmailDiv').style.display = 'block';
			//if(email == '') {document.getElementById('f_email').focus();}
		}
	}
}

function fold(ele,visible) {
	document.getElementById(ele).style.display = (visible?'block':'none');
	return;
}

function setInitialFields(edit) {
	// Set initial field appearance
	
	determineAddressInputMethod(true); // Set address fields
	setUsernameAndEmailFields(edit); //Set username and email fields
	hideDescription(); // Reset all descriptions

}

function onFocusDo(id, infoBox) {
	// Functions and code to run on set focus of a field
	checkError(id, infoBox);
	showDescription(id, infoBox);
}

function onBlurDo(id, infoBox) {
	// Functions and code to run on loss focus of a field
	validateField(id, infoBox);
	hideDescription();
}

function showDescription(id, infoBox) {
	if(infoBox != 'promo') {
		var validation = fieldDescriptions[infoBox][id]['validation'];
		var mandatory = fieldDescriptions[infoBox][id]['validation']['mandatory'];
		var infoBoxCap = infoBox.replace(infoBox.charAt(0), infoBox.charAt(0).toUpperCase());
		var country = document.getElementById('s_country').value;
		
		document.getElementById('infobox'+infoBoxCap+'DField').style.display = 'block';
		document.getElementById('infobox'+infoBoxCap+'DField').innerHTML = fieldDescriptions[infoBox][id]['name']+':';
		document.getElementById('infobox'+infoBoxCap+'DContent').innerHTML = fieldDescriptions[infoBox][id]['info'];
		
		if(id == 'f_town' && country != 'UK') {
	
		} else if(id == 'f_county' && country != 'UK') {
			if(country == 'US') {
				document.getElementById('infobox'+infoBoxCap+'DField').innerHTML = 'State:';
				document.getElementById('infobox'+infoBoxCap+'DContent').innerHTML = 'The state in which you are based. <br />This field will only accept letters, spaces, hyphens and apostrophes.';
			} else {
				document.getElementById('infobox'+infoBoxCap+'DField').innerHTML = 'County/State:';
				document.getElementById('infobox'+infoBoxCap+'DContent').innerHTML = 'The county or state in which you are based. <br />This field will only accept letters, spaces, hyphens and apostrophes.';
			}
		} else if(id == 'f_postcode' && country != 'UK') {
			if(country == 'US') {
				document.getElementById('infobox'+infoBoxCap+'DField').innerHTML = 'Zipcode:';
			} else {
				document.getElementById('infobox'+infoBoxCap+'DField').innerHTML = 'Postcode/Zipcode:';
			}
		}
		
		for(var i = 0; i < validation.length; i++) {
			if(validation[i] == 'mandatory') {
				mandatory = true;
				break;
			}
		}
		
		if(mandatory) {
			document.getElementById('infobox'+infoBoxCap+'DRequired').style.display = 'block';
		} else {
			document.getElementById('infobox'+infoBoxCap+'DRequired').style.display = 'none';
		}
	}		
}

function hideDescription() {
	var infoBoxPersonal = document.getElementById('infoboxPersonalDField');
	var infoBoxAccount = document.getElementById('infoboxAccountDField');
	var infoBoxPromo = document.getElementById('infoboxPromoDField');

	if(infoBoxPersonal) {
		document.getElementById('infoboxPersonalDField').style.display = 'none';
		document.getElementById('infoboxPersonalDRequired').style.display = 'none';
		document.getElementById('infoboxPersonalDContent').innerHTML = fieldDescriptions['personal']['default'];
	}
	
	if(infoBoxAccount) {
		document.getElementById('infoboxAccountDField').style.display = 'none';
		document.getElementById('infoboxAccountDRequired').style.display = 'none';
		document.getElementById('infoboxAccountDContent').innerHTML = fieldDescriptions['account']['default'];
	}
		
	if(infoBoxPromo) {
		document.getElementById('infoboxPromoDField').style.display = 'none';
		document.getElementById('infoboxPromoDRequired').style.display = 'none';
		document.getElementById('infoboxPromoDContent').innerHTML = fieldDescriptions['promo']['default'];
	}
	
}

function setConfirmPass() {
	var confirmPassId = 'f_confirmPassword'
	document.getElementById(confirmPassId).value = '';
	unsetError(confirmPassId);
}

function pclookupEnter(event) {
	var keyCode = (event.keyCode) ? event.keyCode : (event.which) ? event.which : event.charCode;
	// keyCode -- returns the uni code for all browsers other than netscape 4
	// which -- returns the uni code for Mozilla, Safari and Opera
	// charCode -- returns the uni code for netscape
	
	if(keyCode == 13) {lookupPostcode();}
}
// 21.11.08 SKH removed to link to particular part of the main terms
//function openTerms() {
//	window.open('terms.php', 'terms', 'scrollbars=1, menubar=0, height=500, width=400, resizable=1, toolbar=0, location=0, status=0');
//}