function postcodeFinder() {
	var $ = document.id;
	if (!$('findUKAddress')) {return};
	$('findUKAddress').addEvent('click', function(e) {
	
		e = new Event(e).stop();
		
		var arRequired = $$('#frame .miniRequired');
		
		for (var i=0; i<arRequired.length; i++) {
			var objInput = arRequired[i];
			var objParent = objInput.getParent('div');
			if (objInput.getProperty('value') == '' || /^[\+|\s]+$/.test(objInput.getProperty('value'))) {
				objParent.addClass('error');
				showErrorText(objInput.id, true);
				var state = 'error';
			} else {
				showErrorText(objInput.id, false);
				objParent.removeClass('error');
			}
		}
		
		var postcodeClass = 'ukpostcode';
		var housenumClass = 'ukhousenumber';
		var titleClass = 'title';
		var firstnameClass = 'firstname';
		var lastnameClass = 'lastname';
		var countryClass = 'country';
		var lineItemID = 'lineitem';
		var postcodeData = $$('input.' +postcodeClass)[0].getProperty('value');
		var housenumData = $$('input.' +housenumClass)[0].getProperty('value');
		if ($$('select.' +titleClass)[0]) {
  	   	 	var titleData = $$('select.' +titleClass)[0].getProperty('value');
  	   	} else {
  	   		var titleData = '';
  	   	}
		var firstnameData = $$('input.' +firstnameClass)[0].getProperty('value');
		var lastnameData = $$('input.' +lastnameClass)[0].getProperty('value');
  		var countryData = $$('select.' +countryClass)[0].getProperty('value');
  		var lineItemData = $$('input.' +lineItemID)[0].getProperty('value');

		//GBS-310 Added encoding of the address data
		if (state != 'error') {
			var addressData = '?' + postcodeClass  + '=' + escape(postcodeData)  + '&' + housenumClass  + '=' + escape(housenumData)  + '&' + titleClass + '=' + escape(titleData)     + '&' + firstnameClass + '=' + escape(firstnameData) + '&' +lastnameClass  + '=' + escape(lastnameData)  + '&' + countryClass   + '=' + escape(countryData) + '&' + lineItemID   + '=' + escape(lineItemData);
			TB_show('',findAddressURL+addressData+postcodeFinderDimensions,'');
		}
	});
}
function removeGoButtons() {
	if ($('selectCountry')) {
		//$$('#selectCountry input.image')[0].remove();
		$$('#selectCountry input.image')[0].addClass("hide");
	}
	if ($('ptMultipleAddress')) {
		var inputs = $$('#ptMultipleAddress input.go');
		if (inputs[0]) {
			for (var i = 0; i <	inputs.length; i++) {
				inputs[i].remove();
			}
		}
	}
	if ($('ptGifting')) {
		var inputs = $$('#ptGifting input.useThis');
		if (inputs[0]) {
			for (var i = 0; i <	inputs.length; i++) {
				inputs[i].remove();
			}
		}	
	}
	/*var ptGifting = $$("#ptGifting");
	if ($('ptGifting')) {
		for (var i = 0; i < ptGifting.length; i++){
		$$('#ptGifting input.useThis')[i].addClass("hide");
		
		}
	}*/
}
	
function initSelect() {
	var theSelect = $$("select.selector");
	for (var i = 0; i < theSelect.length; i++) {
		theSelect[i].changed = false;
		theSelect[i].onfocus = selectFocussed;
		theSelect[i].onchange = selectChanged;
		theSelect[i].onkeydown = selectKeyed;
		theSelect[i].onclick = selectClicked;
	}
	return true;
}
function selectChanged(theElement) {
	var theSelect;
	if (theElement && theElement.value) {
		theSelect = theElement;
	} else {
		theSelect = this;
	}
	if (!theSelect.changed) {
		return false;
	}
	clearForm();
	this.form.submit()
	return true;
}
function selectClicked() {
	this.changed = true;
}
function selectFocussed(){
	this.initValue = this.value;	
	return true;
}
function selectKeyed(e) {
	var theEvent;
	var keyCodeTab = "9";
	var keyCodeEnter = "13";
	var keyCodeEsc = "27";
	if (e) {
		theEvent = e;
	} else {
		theEvent = event;
	}
	if ((theEvent.keyCode == keyCodeEnter || 
		theEvent.keyCode == keyCodeTab) && 
		this.value != this.initValue) {
			this.changed = true;
			selectChanged(this);
		}
		else if (theEvent.keyCode == keyCodeEsc) {
			this.value = this.initValue;
		} else {
			this.changed = false;
	}
	return true;
}


var deleteAddressPopups = {
	ismlURL: "/on/demandware.store/Sites-USC-Site/default/LBitest-addressactionconfirm",
	init: function() {
		var deleteButtons = $$("input.deleteAddressConfirm");
		for (var i = 0; i < deleteButtons.length; i++) {
			deleteButtons[i].onclick = deleteAddressPopups.showPopup;
		}
	},
	showPopup: function() {
		TB_show('',deleteAddressPopups.ismlURL+'?height=212&width=284','');
		return false;
	}
}

window.addEvent('domready', function(){
	postcodeFinder();
	//removeGoButtons();
	initSelect();
	deleteAddressPopups.init();
});

function showErrorText(formId, display) {
	var errIdent = "err_";
	var errObj = document.getElementById(errIdent + formId);
	
	if (errObj != null) {
		if (display) {
			errObj.style.display = "block";
		}
		else {
			errObj.style.display = "none";
		}
	}
}


function clearForm(){
var arClear = $$('#container .clearFieldIE');		
		for (var i=0; i<arClear.length; i++) {
			var objInput = arClear[i];
			if (objInput.getProperty('value') == '') {
				empty=true;
			} else {
			objInput.removeProperty('value')
			}
		}
}
