﻿	var currentPanel = 0;
	var panelComplete0 = false;
	var panelComplete1 = false;
	var panelComplete2 = false;
	var panelComplete3 = false;
	var panelComplete4 = false;
	var p4_0 = false;
	var p4_1 = false;
	var p4_2 = false;
	var p4_3 = false;
	var p4_4 = false;
	var p4_5 = false;
	var p4_6 = false;
	var isLoggedIn = false;
	var itemCount = 0;
	var maxItems = 10;
	var serviceType = "";
	var orderType = "";
	var unitCost = 0;
	var userType = -1;		// 0-existing, 1-new
	var canSend = false;
	var validationOccurred = false;
	var rebookID = 0;
	var quoteBookID = "";
	var quoteRef = "";
	var bCancIns = 0;
	var isEuro = false;
	var bForceCourier = true;
	var qqCC="";
	var qqDC="";
	var qqCR="";
	var autoParcels="";
	var autoEuro=false;
	$(document).ready(function()
	{
		// visual/system init
		var uk24Cost = getUnitCost("uk","24");
		var uk48Cost = getUnitCost("uk","48");
		var ni24Cost = getUnitCost("ni","24");
		var ni48Cost = getUnitCost("ni","48");
		var sh24Cost = getUnitCost("sh","24");
		var sh48Cost = getUnitCost("sh","48");
		
		$('#stUK24 > div').html("£" + uk24Cost + "<br/>per item");
		$('#stUK48 > div').html("£" + uk48Cost + "<br/>per item");
		//$('#stNI24 > div').html("£" + ni24Cost + "<br/>per item");
		$('#stNI24 > div').html("£ N/A");
		$('#stNI48 > div').html("£" + ni48Cost + "<br/>per item");
		//$('#stSH24 > div').html("£" + sh24Cost + "<br/>per item");
		$('#stSH24 > div').html("£ N/A");
		$('#stSH48 > div').html("£" + sh48Cost + "<br/>per item");
		$('#stEU72 > div').html("From<br/>£25 per item");
		
		$('#indicator').show();
		Date.format = 'dd/mm/yyyy';
		$('div.help').cluetip({splitTitle: '|'});
	
		// key bindings and whatnot
		$('.parcelInput').numeric();
		$('#rbReg1').bind("click",function(){canSend = false;$('#lfP6').hide();$('#lfP2').hide();$('#lfUni').hide();$('#lfHH').hide();$('#loginForm').show();$('#finalForm input').val("");userType = 0;p4_1=false;p4_2=false;p4_3=false;p4_4=false;p4_5=false;p4_6=false;});
		$('#rbReg2').bind("click",function(){canSend = false;$('#lfP6').show();$('#lfP2').show();$('#lfUni').show();$('#lfHH').show();$('#loginForm').show();$('#finalForm input').val("");userType = 1;p4_1=false;p4_2=false;p4_3=false;p4_4=false;p4_5=false;p4_6=false;});		
		$('#ckCancelIns').change(function(){updateTotal();});		
		$('#tbPickUpAddress_postcode').blur(function(){$(this).val(  $(this).val().trim().toUpperCase())});
		$('#tbDeliveryAddress_postcode').blur(function(){$(this).val(  $(this).val().trim().toUpperCase())});
		BindServiceOptions("uk");
		BindServiceOptions("ni");
		BindServiceOptions("sh");
		//BindServiceOptions("eu");
		$('#stEU').click(function(){doAlert('You can currently only book online for services within the UK, to get a price or book a delivery outside the UK please <a href="contact.aspx">contact us</a>.','International ordering');});
		
		
		$('#stReset').bind("click",function(){resetServices();});		
		$('#navLeft').bind("click",function(){if(currentPanel>0){currentPanel--;showPanel(currentPanel,true);}});
		
		$('#navRight').bind("click",function(){
			if(currentPanel==2)
			{
				if($('#tbPickUpAddress_postcode').val().length > 0){if(!validPostcode("tbPickUpAddress_postcode")){return false;}}
				if($('#tbDeliveryAddress_postcode').val().length > 0){if(!isEuro && !validPostcode("tbDeliveryAddress_postcode")){return false;}}
			}
			if(currentPanel<4){currentPanel++;showPanel(currentPanel,true);}
		});
		
		$('#btnAddItem').bind("click",function(){if(validateDims()){alert("ok");}});
		$('#ddIns').change(function(){updateTotal();});
		$('#addressForm input').bind("keydown keyup",function(e){
		
			if($(this).attr('id') == "tbPickUpAddressContactPhone" || $(this).attr('id') == "tbDeliveryAddressContactPhone")
			{
				if(e.keyCode!=9 && e.keyCode!=35 && e.keyCode!=36 && e.keyCode!=37 && e.keyCode!=39 && e.keyCode!=8 && e.keyCode!=46 && e.keyCode!=32 && !(e.keyCode>=48 &&e.keyCode<=57))return false;
			}
			validateAddresses();
		});
		
		$('#finalForm #fullName').bind("keydown",function(){validateName();});
		$('#finalForm #emailAddress').bind("keydown",function(){validateEmail();}).bind("blur",function(){validateEmailNotExists();});
		$('#finalForm #password1').bind("keyup",function(){validateP1();});
		$('#finalForm #password2').bind("keyup",function(){validateP2();});
		$('#ctl00_ContentPlaceHolder1_ddUni').change(function(){
			$('#ctl00_ContentPlaceHolder1_ddUni').removeClass();
			var uniID = $('#ctl00_ContentPlaceHolder1_ddUni :selected').val();
			if(uniID == "-1"){
				p4_4 = false;$('#ctl00_ContentPlaceHolder1_ddUni').addClass("addressInputBoxError");				
			}
			else{
				p4_4 = true;$('#ctl00_ContentPlaceHolder1_ddUni').addClass("addressInputBox");
			}
			validateFinal();
		});
		$('#ctl00_ContentPlaceHolder1_ddHowHeard').change(function(){
			$('#ctl00_ContentPlaceHolder1_ddHowHeard').removeClass();
			var hhID = $('#ctl00_ContentPlaceHolder1_ddHowHeard :selected').val();
			if(hhID == "-1")
			{
				p4_5 = false;
				$('#ctl00_ContentPlaceHolder1_ddHowHeard').addClass("addressInputBoxError");				
			}
			else
			{
				p4_5 = true;
				$('#ctl00_ContentPlaceHolder1_ddHowHeard').addClass("addressInputBox");
			}
			validateFinal();
		});
		$('#cbTC').bind("click",function(){validateFinal();});
		$('#btnDone').bind("click",function(){sendOrder();});
		$('#dateDiv').datePickerMultiMonth({numMonths: 3,inline: true})
			.bind('dateSelected',
			function(event, date, $td, status) {
				var useDate = date.asString();
				$('#dateSelectedWait').show();
				$('#dateSelected').hide();
				var dtCC = "";
				var dtDC = "";
				var dtCR = "";
				if(isEuro){
					dtCC = $('#ddEUCollection').val();
					dtDC = $('#ddEUDelivery').val();
					dtCR = $('#ddCourier option:selected').val().substr(0,1);
				}
				$.ajax({url:"_nb.ashx?m=1&d="+useDate+"&st="+serviceType+"&cc="+dtCC+"&dc="+dtDC+"&dr="+dtCR,
					async:false,
					success: function(code){eval(code);},
					error: function(msg){doAlert("Sorry, a system error has occurred.  Please try again in a few moments.");}
				});
			}
		);
		
		// start up
		showPanel(0,true);updateTotal();
		setTimeout(function(){
			if((rebookID==0 || rebookID==undefined) && quoteBookID.length==0 && quoteRef.length==0){
				ShowWait(false);
			}else{
				if(rebookID>0)AddRebookData(rebookID);
				if(quoteBookID.length>0&&quoteRef.length>0)QuoteBook(quoteBookID,quoteRef);
			}
		},500);
		if(autoEuro)$('#stEU').trigger('click');
	});
	
	function BindServiceOptions(st)
	{
		var stUpper = st.toUpperCase();		
		$('#st'+stUpper).bind('click',function(){
			var curST = $(this).attr('id').replace('st','').toLowerCase();
			if(serviceType == curST)return false;
			if(st!="uk"){$('#stUK').removeClass('hot').parent().parent().css({opacity:0.4});$('#stUK24,#stUK48').removeClass('hot');UnbindServiceOptions("uk");};
			if(st!="ni"){$('#stNI').removeClass('hot').parent().parent().css({opacity:0.4});$('#stNI24,#stNI48').removeClass('hot');UnbindServiceOptions("ni");};
			if(st!="sh"){$('#stSH').removeClass('hot').parent().parent().css({opacity:0.4});$('#stSH24,#stSH48').removeClass('hot');UnbindServiceOptions("sh");};
			if(st!="eu"){$('#stEU').removeClass('hot').parent().parent().css({opacity:0.4});UnbindServiceOptions("eu");};
			$(this).addClass('active hot');
			if(curST=="ni"){$('#stNI48').addClass("active");setService("ni","48");}
			if(curST=="sh"){$('#stSH48').addClass("active");setService("sh","48");}
			if(st=="eu"){setEurope();}
			serviceType = st;
			$('#stReset').show();
		});

		if(st=="uk")
		{
			$('#st'+stUpper+'24').bind('click',function(){
				var stID = $(this).attr('id').replace('st','').replace('24','');
				$(this).addClass('active');
				$('#st'+stID).trigger('click');
				$('#st'+stID+'48').removeClass('active');
				setService(stID.toLowerCase(),'24');
			});
		}
		
		
		$('#st'+stUpper+'48').bind('click',function(){
			var stID = $(this).attr('id').replace('st','').replace('48','');
			$(this).addClass('active');
			$('#st'+stID).trigger('click');
			$('#st'+stID+'24').removeClass('active');
			setService(stID.toLowerCase(),'48');
		});
		
		$('#stEU72').bind('click',function(){$('#stEU').trigger('click');});

	}
	
	function setEurope()
	{
		isEuro=true;
		$('#stEU72').addClass('active');
		$('#tbServiceUK,#tbServiceNI,#tbServiceSH,#insCBox').hide();
		$('#tbPickUpAddress_town,#tbPickUpAddress_county,#tbDeliveryAddress_town,#tbDeliveryAddress_county').removeAttr('readonly');
		$('#tbPickupAddress_line,#tbPickupAddress_line2,#tbPickupAddress_line3,#tbPickupAddress_town,#tbPickupAddress_county').removeClass('noinp');
		$('#tbDeliveryAddress_line,#tbDeliveryAddress_line2,#tbDeliveryAddress_line3,#tbDeliveryAddress_town,#tbDeliveryAddress_county').removeClass('noinp');
		$('#divCollectTimes').hide();
		$('#stReset,#tbEUDD').show();
		$('#stInfoText').hide();
		$('#stInfoText2').show();
		$('#sType').html("Europe - 48/72 hour");
		$('#serviceType').val("eu");
		$('#orderType').val("48");
		serviceType = "EU";
		orderType = "48";
		clearAllForm();
		
		// show country table rows in address section
		$('#trEUAdd_collect_country,#tdEUAdd_collect_country').show();
		$('#trEUAdd_deliver_country,#tdEUAdd_deliver_country').show();
		
		// show collection / delivery countries
		$('#ddEUCollection,#ddEUDelivery').unbind();
		ShowWait(true);
		setTimeout(function(){
			$.ajax({url:'admin/scripts/_euroscript.ashx?m=eu-getcoll&cc='+qqCC,async:true,success:function(code){eval(code)}});
			ShowWait(false);
		});
		
		$('#ddEUCollection').change(function(){
			var colCountryName = $('#ddEUCollection option:selected').text();
			$.ajax({url:'admin/scripts/_euroscript.ashx?m=eu-getdel&cc=' + escape(colCountryName) + '&dc=' + qqDC,async:false,
				success:function(code){
					eval(code);$('#tdEUAdd_collect_country').text(colCountryName);
				}
			});
		});
		
		$('#ddEUDelivery').change(function(){
			var colCountryName = $('#ddEUCollection option:selected').text();
			var delCountryISO = $('#ddEUDelivery option:selected').val();
			var delCountryName = $('#ddEUDelivery option:selected').text();
			var courierType = $('#ddCourier option:selected').val();
			
			ShowWait(true);
			setTimeout(function(){
				$.ajax({url:'admin/scripts/_euroscript.ashx?m=eu-getcost&fc=' + bForceCourier + '&cc=' + escape(colCountryName) + '&dc=' + escape(delCountryISO) + '&ct=' + escape(courierType),async:false,
					success:function(code){
						eval(code);
						objPCA_deliver.Country = delCountryISO;
						if(rebookID == 0)
						{
							$('#tdEUAdd_deliver_country').text(delCountryName);
							$('#tbDeliveryAddressBusinessName').val('');
							$('#tbDeliveryAddressContactName').val('');
							$('#tbDeliveryAddressContactPhone').val('');
							$('#tbDeliveryAddress_postcode').val('');
							$('#tbDeliveryAddress_line1').val('');
							$('#tbDeliveryAddress_line2').val('');
							$('#tbDeliveryAddress_line3').val('');
							$('#tbDeliveryAddress_town').val('');
							$('#tbDeliveryAddress_county').val('');
						}
						bForceCourier=true;
						ShowWait(false);
						eval(autoParcels);
						adjustTotal(itemCount);
						autoParcels="";
					}
				});
			},500);
		});
		
		$('#ddCourier').change(function(){
			bForceCourier=false;
			$('#ddEUDelivery').trigger('change');
		});
		
		updateTotal();
	}
	
	function UnbindServiceOptions(st)
	{
		$('#st'+st.toUpperCase()).unbind('click');
		$('#st'+st.toUpperCase()+'24').unbind('click');
		$('#st'+st.toUpperCase()+'48').unbind('click');
	}


	function updateTotal()
	{
		var curCost = parseFloat($('#cost').val());
		var insCost = parseInt($('#ddIns option:selected').val());
		var insType = $('#ddIns option:selected').text();
		var cancInsCost = 0;
		bCancIns = 0;
		var cancInsText = "<div>No cancellation insurance</div>";
		if ($('#ckCancelIns').attr('checked')) { bCancIns=1;cancInsCost=1.50;cancInsText = "<div>Cancellation insurance included</div>"; }
		if(isEuro) { cancInsText="";bCancIns=0;cancInsCosst=0; }
		var totalAmount = curCost + insCost + cancInsCost;
		$('#sInsurance').html(insType + cancInsText);
		$('#sTotal').html("£" + totalAmount.toFixed(2));
	}
	
	
	function clearAllForm()
	{
		$('#orderListContainer').html("");
		$('input').val("");
		$('#cost').val("0");
		$('#loginForm').hide();
		itemCount = 0;
		validateAddresses();
		$('#ctl00_ContentPlaceHolder1_ddUni').val("-1");
		$('#ctl00_ContentPlaceHolder1_ddHowHeard').val("-1");		
		$('#cbTC').attr('checked', false);
		$('#barStep1').removeClass("barStep1Done");
		$('#barStep2').removeClass("barStep2Done");
		$('#barStep3').removeClass("barStep3Done");
		$('#barStep4').removeClass("barStep4Done");
		$('#barStep0').removeClass("barStep0Done");
		$('#ddIns').val('0');
		panelComplete1 = false;
		panelComplete2 = false;
		panelComplete3 = false;
		panelComplete4 = false;
	}


	function resetServices()
	{
		$('#stInfoText').show();
		$('#stInfoText2').hide();
		$('#tbServiceUK,#tbServiceNI,#tbServiceSH').show();
		$('#stUK,#stNI,#stSH,.st24,.st48,#stEU,.st72,.st48o').removeClass('active').addClass('hot');
		$('#stUK,#stNI,#stSH,#stEU').parent().parent().css({opacity:1.0});
		$('#insCBox').show();		
		$('#trEUAdd_collect_country,#tdEUAdd_collect_country').hide();
		$('#trEUAdd_deliver_country,#tdEUAdd_deliver_country').hide();
		$(',#divAddressListIP0,#divAddressListIP1').hide();
		$('#btnFindAddress0,#btnFindAddress1').show();
		$('#divCollectTimes').show();
		$('.trUK_collect_find').show();
		$('.trUK_deliver_find').show();
		$('#tdEUAdd_collect_country').text('');
		$('#tdEUAdd_deliver_country').text('');		
		BindServiceOptions("uk");
		BindServiceOptions("ni");
		BindServiceOptions("sh");
		BindServiceOptions("eu");
		$('#stReset,#tbEUDD').hide();
		$('#ddEUCollection,#ddEUDelivery').html('');
		$('#sItems').html("");
		$('#sTotal').html("£0.00");
		$('#barStep0').removeClass("barStep0Done");
		$('#sType,#sItems,#sPickup,#sDeliver,#sDate').html('<div class="noSelection">nothing selected</div>');
		isEuro=false;
		serviceType = "";
		orderType = "";
		panelComplete0 = false;
		p4_0 = false;
		$('#navRight').hide();
		updateTotal();
	}



	function setService(st,ot)
	{
		p4_0 = true;
		$('#stReset').show();
		$('#stInfoText').hide();
		$('#stInfoText2').show();
		if(st=="uk")$('#sType').html("UK Mainland - " + ot + " hour");
		if(st=="ni")$('#sType').html("Northern Ireland - " + ot + " hour");
		if(st=="sh")$('#sType').html("Highland and Islands - " + ot + " hour");
		$('#tbPickUpAddress_town,#tbPickUpAddress_county,#tbDeliveryAddress_town,#tbDeliveryAddress_county').attr('readonly',true);
		
		// update stored order information
		clearAllForm();
		$('#barStep0').addClass("barStep0Done");
		$('#serviceType').val(st);
		$('#orderType').val(ot);
		serviceType = st;
		orderType = ot;
		setUnitCost();
		$('#navRight').show();
		panelComplete0 = true;
	}
	
	function showPanel(i,wSlide)
	{
		$('#bookingForm input').attr("disabled",true);
		$('#bookingForm select').attr("disabled",true);
		$('#bookingForm a').attr("tabindex",-1);
		currentPanel = i;
		switch(currentPanel)
		{
			case 0:
				$('#navLeft').hide();
				$('#ddEUCollection,#ddEUDelivery,#ddCourier').attr("disabled",false);
				break;
			case 1:
				$('#navLeft').show();
				$('#navRight').show();
				$('#orderingForm input').attr("disabled",false);
				$('#ddIns').attr("disabled",false);
				break;
			case 2:
				$('#navLeft').show();
				$('#navRight').show();
				$('#addressForm input').attr("disabled",false);
				$('#bookingForm select').attr("disabled",false);
				validateAddresses();
				break;
			case 3:
				$('#navLeft').show();
				$('#navRight').show();
				$('.ddCollectTime').attr("disabled",false);
				break;
			case 4:
				$('#navRight').hide();
				$('#navLeft').show();
				$('#finalForm input').attr("disabled",false);
				$('#bookingForm select').attr("disabled",false);
				break;
		}		
		var destX = 0 - ((i)*576);
		if(BrowserDetect.browser == "Safari" && BrowserDetect.OS == "Mac" || !wSlide)
		{
			$('.contentsHolder').css({'left':destX});
		}else{
			$('.contentsHolder').animate({left:destX},500);
		}		
		var barX = 27+(i*128);
		if(wSlide){
			$('#indicator').animate({left:barX},250);
		}else{
			$('#indicator').css({left:barX});
		}
	}
	
	function validateDims()
	{
		var valid = true;
		var strError = "";
		var pDepth = Number($('#tbDepth').val());
		var pWidth = Number($('#tbWidth').val());
		var pHeight = Number($('#tbHeight').val());
		var pWeight = Number($('#tbWeight').val());
		var pTotal = (pDepth.value + pWidth.value + pHeight.value);
		var maxCM = 150;
		var maxKG = 30;
		var maxCM_in_metres = maxCM / 100;
		
		if(pDepth==0||pWidth==0||pHeight==0||pWeight==0)
		{
			strError += "<div class=\"dimError\">Please enter all dimensions</div>"
			valid = false;
		}
		else
		{
			if(!isEuro)
			{
				var totalLength = 0;
				if((pDepth>=pWidth)&&(pDepth>=pHeight))totalLength = pDepth + (2 * (pWidth+pHeight));
				if((pWidth>=pDepth)&&(pWidth>=pHeight))totalLength = pWidth + (2 * (pDepth+pHeight));
				if((pHeight>=pWidth)&&(pHeight>=pDepth))totalLength = pHeight + (2 * (pWidth+pDepth));
				if (totalLength > 300){strError += "<div class=\"dimError\">* Longest length + 2(breadth + width) = No More Than 300cm</div>";valid = false;}			
				if (pDepth > maxCM || pDepth <= 0){strError += "<div class=\"dimError\">* The longest length must not exceed " + String(maxCM) + "cm (" + String(maxCM_in_metres) + "m)</div>";valid = false;}		
				if (pWidth > maxCM || pWidth <= 0){strError += "<div class=\"dimError\">* The longest length must not exceed " + String(maxCM) + "cm (" + String(maxCM_in_metres) + "m) </div>";valid = false;}		
				if (pHeight > maxCM || pHeight <= 0){strError += "<div class=\"dimError\">* The longest length must not exceed " + String(maxCM) + "cm (" + String(maxCM_in_metres) + "m)</div>";valid = false;}
				if (pWeight > maxKG || pWeight <= 0){strError += "<div class=\"dimError\">* Weight must be between 1kg and " + String(maxKG) + "kg</div>";valid = false;}			
			}
			else
			{
				maxKG=25;
				if(((pDepth*pWidth*pHeight)/5000)>25)
				{
					strError += "<div class=\"dimError\">This item is too large. Measurements are in cm. The (length x width x height)/5000 cannot equal more than 25. Please reduce the size of your item or contact us for a custom quote.</div>";
					valid = false;
				}
				if(pWeight>maxKG)
				{
					strError += "<div class=\"dimError\">Weight must be between 1kg and " + String(maxKG) + "kg</div>";
					valid = false;
				}
			}
		}
		
		
		
		if(!valid)
		{
			doAlert(strError);
		}
		else
		{
			if(itemCount<maxItems)
			{
				//add to order list
				var strOrderItem = "<div id=\"orderLine_" + String(itemCount + 1) + "\" class=\"orderLine\"><div class=\"orderListCol1\">x</div>";
				strOrderItem += "<div class=\"orderListCol2 orderItem\">" + String(pDepth) + "cm</div>";
				strOrderItem += "<div class=\"orderListCol3 orderItem\">" + String(pHeight) + "cm</div>";
				strOrderItem += "<div class=\"orderListCol4 orderItem\">" + String(pWidth) + "cm</div>";
				strOrderItem += "<div class=\"orderListCol5 orderItem\">" + String(pWeight) + "kg</div>";
				strOrderItem += "<div class=\"orderListCol6\">£" + unitCost + "</div>";
				strOrderItem += "<div class=\"orderListCol7\" onclick=\"removeItemFromOrder(" + String(itemCount + 1) + ")\">X</div></div>";
				$('#orderListContainer').append(strOrderItem);
				itemCount++;
				panelComplete1 = true;
				$('#barStep1').addClass("barStep1Done");
				// reorder numbers
				var storedData = String(pDepth)+","+String(pHeight)+","+String(pWidth)+","+String(pWeight)+",;";
				$('#orderData').val($('#orderData').val() + storedData);
				reorderOrders();
				adjustTotal(itemCount);
			}
			else
			{
				doAlert("You can only have a maximum of " + String(maxItems) + " items in one order.");
			}
		}
	}
	
	function adjustTotal(itemCount)
	{
		var applyDiscount = false;
		if(serviceType=="ni"||serviceType=="sh")applyDiscount = true;
		if(itemCount==1)
		{
			$('#sItems').html(itemCount + " x item");
		}
		else
		{
			if(applyDiscount)
			{
				if(itemCount<3)
				{
					$('#sItems').html(itemCount + " x items");
				}else{
					$('#sItems').html(itemCount + " x items (<b>10% discount!</b>)");
				}
			}else{
				$('#sItems').html(itemCount + " x items");
			}
		}
		
		var totalAmount = (itemCount*unitCost);
		if(applyDiscount && itemCount>=3)totalAmount-=(totalAmount*.10);
		$('#cost').val(totalAmount);
		updateTotal();
	}
	
	function reorderOrders()
	{
		var startIndex = 1;
		$('.orderListCol1').each(function(index){
			$(this).html(String(startIndex) + ".");
			startIndex++;
		});
	}
	
	function removeItemFromOrder(i)
	{
		$("#orderLine_" + String(i)).remove();
		itemCount--;		
		var nl="";		
		$('.orderLine').each(function(){ 
			$(this).find('div.orderItem').each(function(){ 
				var thisValue = $(this).html();
				thisValue = (thisValue.replace("cm",""));
				thisValue = (thisValue.replace("kg",""));
				nl += (thisValue + ",");
			});
			nl += ";";
		}); 
		$('#orderData').val(nl);		
		reorderOrders();
		adjustTotal(itemCount);
		if(itemCount==0)
		{
			panelComplete1=false;
			$('#barStep1').removeClass("barStep1Done");
		}
	}
	
	function postCodeAllowed(st,pc)
	{
		var rv = true;
		$.ajax({url:"_nb.ashx?m=4&st="+serviceType+"&pc="+pc,async:false,
			success: function(msg){
				if(msg.length>0)
				{
					doAlert(msg);
					rv = false;
					$('#tbDeliveryAddress_postcode').val("");
				}
			}
		});
		return rv;
	}
	
	
	
	
	
	
	
	
	
	
	



	function capitalize(incomingString)
	{
		return incomingString.charAt(0).toUpperCase() + incomingString.substring(1).toLowerCase();
	}

	
	function addAddressLine(addTo,field)
	{
		var cur = $('#' + addTo).html();
		var add = "";
		if($('#' + field).val() != null)
		{
			if($('#' + field).val().length>0)
			{
				add = $('#' + field).val() + "<br/>";
			}
		}
		$('#' + addTo).html(cur + add.toUpperCase());
	}
	
	function HII(fld,min)
	{
		$('#' + fld).removeClass();
		if($('#' + fld).val() != null)
		{
			if($('#' + fld).val().length>=min)
			{
				$('#' + fld).addClass('addressInputBox');
			}
			else
			{
				$('#' + fld).addClass('addressInputBoxError');
			}
		}
		else
		{
			$('#' + fld).addClass('addressInputBoxError');
		}
	}
	
	function DisablePickupAddress(b,im)
	{
		if(b){
			$('#tbPickUpAddress_line1,#tbPickUpAddress_line2,#tbPickUpAddress_line3,#tbPickUpAddress_town,#tbPickUpAddress_county').addClass('noinp').attr('readonly',true);
		}else{
			$('#tbPickUpAddress_line1,#tbPickUpAddress_line2,#tbPickUpAddress_line3,#tbPickUpAddress_town,#tbPickUpAddress_county').removeClass('noinp').attr('readonly',false);	
			$('#tbPickUpAddress_town,#tbPickUpAddress_county').removeClass('noinp');
			if(im)
			{
				$('#tbPickUpAddress_town,#tbPickUpAddress_county').attr('readonly',false);
			}
		}
	}
	
	
	function DisableDeliveryAddress(b,im)
	{
		if(b){
			$('#tbDeliveryAddress_line1,#tbDeliveryAddress_line2,#tbDeliveryAddress_line3,#tbDeliveryAddress_town,#tbDeliveryAddress_county').addClass('noinp').attr('readonly',true);
		}else{
			$('#tbDeliveryAddress_line1,#tbDeliveryAddress_line2,#tbDeliveryAddress_line3,#tbDeliveryAddress_town,#tbDeliveryAddress_county').removeClass('noinp').attr('readonly',false);
			$('#tbDeliveryAddress_town,#tbDeliveryAddress_county').removeClass('noinp');	
			if(im)
			{
				$('#tbDeliveryAddress_town,#tbDeliveryAddress_county').attr('readonly',false);
			}
		}
	}
	
	
	function validateAddresses()
	{
		var matchAll = 0;
		if(checkFieldForError("tbPickUpAddressContactName",2))matchAll++;
		if(checkFieldForError("tbPickUpAddressContactPhone",6))matchAll++;
		if(checkFieldForError("tbPickUpAddress_line1",3))matchAll++;
		if(checkFieldForError("tbPickUpAddress_town",2))matchAll++;
		if(checkFieldForError("tbPickUpAddress_postcode",4))matchAll++;
		if(checkFieldForError("tbDeliveryAddressContactName",2))matchAll++;
		if(checkFieldForError("tbDeliveryAddressContactPhone",6))matchAll++;
		if(checkFieldForError("tbDeliveryAddress_line1",3))matchAll++;
		if(checkFieldForError("tbDeliveryAddress_town",2))matchAll++;
		if(checkFieldForError("tbDeliveryAddress_postcode",4))matchAll++;		
		// add to summary
		$('#sPickup').html("");
		addAddressLine("sPickup","tbPickUpAddressBusinessName");
		addAddressLine("sPickup","tbPickUpAddressContactName");
		addAddressLine("sPickup","tbPickUpAddress_line1");
		addAddressLine("sPickup","tbPickUpAddress_line2");
		addAddressLine("sPickup","tbPickUpAddress_line3");
		addAddressLine("sPickup","tbPickUpAddress_town");
		addAddressLine("sPickup","tbPickUpAddress_county");
		addAddressLine("sPickup","tbPickUpAddress_postcode");		
		$('#sDeliver').html("");
		addAddressLine("sDeliver","tbDeliveryAddressBusinessName");
		addAddressLine("sDeliver","tbDeliveryAddressContactName");
		addAddressLine("sDeliver","tbDeliveryAddress_line1");
		addAddressLine("sDeliver","tbDeliveryAddress_line2");
		addAddressLine("sDeliver","tbDeliveryAddress_line3");
		addAddressLine("sDeliver","tbDeliveryAddress_town");
		addAddressLine("sDeliver","tbDeliveryAddress_county");
		addAddressLine("sDeliver","tbDeliveryAddress_postcode");
		if(matchAll<10)
		{
			panelComplete2 = false;
			$('#barStep2').removeClass();
			$('#barStep2').addClass("barStep2");
		}
		else
		{
			panelComplete2 = true;
			$('#barStep2').removeClass();
			$('#barStep2').addClass("barStep2Done");
		}
		
		
		if(!isEuro)
		{
			var puIM = false;
			if($('#tbPickUpAddress_postcode').val().toUpperCase().indexOf('IM')==0)puIM=true;
			var disPU = ($('#tbPickUpAddress_postcode').val().length>=6) ? false : true;
			DisablePickupAddress(disPU,puIM);
			
			var deIM = false;
			if($('#tbDeliveryAddress_postcode').val().toUpperCase().indexOf('IM')==0)deIM=true;
			var disDE = ($('#tbDeliveryAddress_postcode').val().length>=6) ? false : true;
			DisableDeliveryAddress(disDE,deIM);
		}
	}
	
	function checkFieldForError(fld,min)
	{
		var ret = false;
		var obj = $("#" + fld);
		if(obj.val().length != null){
			ret = (obj.val().length<min) ? false:true;
		}
		return ret;
	}
	
	


	function emailValid(email)
	{	
		var res = false;
		var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
		if(pattern.test(email))res=true;
		return res;
    }


    function passwordValid(password)
    {
		var res = false;
		var pattern=/^[a-zA-Z0-9]{6,16}$/;
		if(pattern.test(password))res=true;
		return res;
    }

	
	function validateName()
	{
		var res = false;
		$('#fullName').removeClass();
		var pattern=/^[a-zA-Z0-9 -]{2,50}$/;
		if(pattern.test($('#fullName').val()))
		{
			res=true;
			$('#fullName').addClass("addressInputBox");
			$('#errorName').html("");
			p4_6 = true;
		}
		else
		{
			$('#fullName').addClass("addressInputBoxError");
			$('#errorName').html("* Minimum 2 characters");
			p4_6 = false;
		}
		return res;
	}
	
	
	function validateEmail()
	{
		var curEmail = $('#emailAddress');
		var emailError = true;
		curEmail.removeClass();
		if(!emailValid(curEmail.val()))
		{
			if(userType != 0)$('#errorEmail').html("* Invalid email address");
			curEmail.addClass("addressInputBoxError");
			p4_1 = false;
		}
		else
		{
			curEmail.addClass("addressInputBox");
			$('#errorEmail').html("");
			p4_1 = true;
		}
	}
	
	function validateP1()
	{
		var p1 = $('#password1');
		p1.removeClass();
		p4_2 = false;
		if(passwordValid(p1.val()))
		{
			$('#errorP1').html("");
			p1.addClass("addressInputBox");
			p4_2 = true;
		}
		else
		{
			$('#errorP1').html("* Minimum 6 digits, use A-Z and 0-9");
			p1.addClass("addressInputBoxError");
		}
		validateFinal();
	}
	
	
	function validateP2()
	{
		var p1 = $('#password1');
		var p2 = $('#password2');
		p2.removeClass();
		p4_3 = false;
		if(p2.val().length>0)
		{
			if(p1.val()!=p2.val())
			{
				$('#errorP2').html("* Passwords do not match");
				p2.addClass("addressInputBoxError");
			}
			else
			{
				$('#errorP2').html("");
				p2.addClass("addressInputBox");
				p4_3 = true;
			}
		}
		else
		{
			$('#errorP2').html("* Input required here");
			p2.addClass("addressInputBoxError");
		}
		validateFinal();
	}
	
	
	function validateEmailNotExists()
	{
		if(userType==1)
		{
			var em = $('#emailAddress');
			if(em.val().length>5)
			{
				$.ajax({url:"_nb.ashx?m=2&e="+em.val(),async:false,
				success: function(msg)
					{
						if(msg=="1")
						{
							$('#errorEmail').html("* Email address used");
							em.removeClass();
							em.addClass("addressInputBoxError");
						}
						else
						{
							validateEmail();
						}
					}
				});
			}
		}
		validateFinal();
	}
	
	function validateFinal()
	{
		canSend = false;
		// check other panels complete
		if(panelComplete0&&panelComplete1&&panelComplete2&&panelComplete3)
		{
			panelComplete4 = false;
			//$('#barStep4').removeClass("barStep4Done");		
			if(!isLoggedIn)
			{
				if( ((userType==0)&&(p4_1&&p4_2)) || ((userType==1)&&(p4_1&&p4_2&&p4_3&&p4_4&&p4_5&&p4_6)) )checkTC();
			}
			else
			{
				checkTC();
			}
			if(userType==2)panelComplete4=true;		// already logged in
		}
		else
		{
			canSend = false;
			//$('#barStep4').removeClass("barStep4Done");	
			//doAlert("Please complete all sections before submitting your order");
		}
	}
	
	
	function checkTC(){if ($('#cbTC').attr('checked')){panelComplete4 = true;$('#barStep4').addClass("barStep4Done");canSend=true;}}	
	function getUnitCost(nst,not){var uc = 0;$.ajax({url:"_nb.ashx?m=3&st="+nst+"&ot="+not,async:false,success: function(msg){uc = msg;}});return uc;}
	function setUnitCost(){$.ajax({url:"_nb.ashx?m=3&st="+serviceType+"&ot="+orderType,async:false,success: function(msg){unitCost=msg;}});}
	
	function validPostcode(objID)
	{
		var isValid = true;
		var pcValue = $('#'+objID).val();
		$.ajax({url:"_nb.ashx?m=8&objid="+objID+"&pc="+pcValue+"&st="+serviceType,async:false,success:function(code){eval(code);}});
		return isValid;
	}
	

	function addInputData(fldName)
	{
		var rv="";
		if($('#' + fldName) != null){if($('#' + fldName).length)rv=$('#' + fldName).val();}
		return rv;
	}
	
	
	function fieldIsValid(objID)
	{
		var rv = false;
		$('#' + objID).removeClass();
		if($('#' + objID).val().length<1)
		{
			$('#' + objID).addClass("addressInputBoxError");
		}
		else
		{
			$('#' + objID).addClass("addressInputBox");
			rv = true;
		}
		return rv;
	}
	
	
	function sendOrder()
	{
		var errors = "";
		
		// #1 (Items to send)
		$('#barStep1').removeClass();
		if(!fieldIsValid("orderData",1))
		{
			errors += "> In ITEMS TO SEND : You haven't added any items\n";
			$('#barStep1').addClass("barStep1On");
			panelComplete1 = false;
		}
		else
		{
			$('#barStep1').addClass("barStep1Done");
			panelComplete1 = true;
		}
		
		// #2 (Addresses)
		$('#barStep2').removeClass();
		var addressErrors = false;
		if(!fieldIsValid("tbPickUpAddressContactName")){addressErrors=true;errors+="> In ADDRESSES : The pickup address contact name is incomplete\n";}
		if(!fieldIsValid("tbPickUpAddressContactPhone")){addressErrors=true;errors+="> In ADDRESSES : The pickup address contact number is incomplete\n";}
		if(!fieldIsValid("tbPickUpAddress_line1")){addressErrors=true;errors+="> In ADDRESSES : The pickup address (first address line) is incomplete\n";}
		if(!fieldIsValid("tbPickUpAddress_town")){addressErrors=true;errors+="> In ADDRESSES : The pickup address (town) is incomplete\n";}

		if(!fieldIsValid("tbDeliveryAddressContactName")){addressErrors=true;errors+="> In ADDRESSES : The delivery address contact name is incomplete\n";}
		if(!fieldIsValid("tbDeliveryAddressContactPhone")){addressErrors=true;errors+="> In ADDRESSES : The delivery address contact number is incomplete\n";}
		if(!fieldIsValid("tbDeliveryAddress_line1")){addressErrors=true;errors+="> In ADDRESSES : The delivery address (first address line) is incomplete\n";}
		if(!fieldIsValid("tbDeliveryAddress_town")){addressErrors=true;errors+="> In ADDRESSES : The delivery address (town) is incomplete\n";}
		if(!fieldIsValid("tbDeliveryAddress_postcode")){addressErrors=true;errors+="> In ADDRESSES : The delivery address post code is incomplete\n";}
		
		if(addressErrors)
		{
			$('#barStep2').addClass("barStep2On");
			panelComplete2 = false;
		}
		else
		{
			$('#barStep2').addClass("barStep2Done");
			panelComplete2 = true;
		}
		
		// #3 (Date)
		$('#barStep3').removeClass();addInputData
		if(!fieldIsValid("formPickupdate"))
		{
			errors += "> In PICK UP DATE : You haven't chosen a valid pick up date\n";
			$('#barStep3').addClass("barStep3On");
			panelComplete3 = false;
		}
		else
		{
			$('#barStep3').addClass("barStep3Done");
			panelComplete3 = true;
		}
		
		// #4 (Registration section)
		var registerErrors = false;
		$('#barStep4').removeClass();
		if(userType<0)
		{
			errors += "> In CONFIRM : You haven't selected the registration type\n";
			registerErrors = true;
		}
		else if(userType==0||userType==1)
		{
			if(!fieldIsValid("emailAddress")){registerErrors = true;errors+="> In CONFIRM : You haven't given your email address\n";}
			if(!isValidEmail($('#emailAddress').val())){registerErrors = true;errors+="> In CONFIRM: Invalid email address\n";}
			if(!fieldIsValid("password1")){registerErrors = true;errors+="> In CONFIRM : You haven't given your password\n";}
			
			// new registration
			if(userType==1)
			{
				if(!fieldIsValid("fullName")){registerErrors = true;errors+="> In CONFIRM : You haven't given your name\n";}
				if(!fieldIsValid("password2")){registerErrors = true;errors+="> In CONFIRM : You haven't entered the password confirmation\n";}
				
				// University dropdown
				$('#ctl00_ContentPlaceHolder1_ddUni').removeClass();
				if($("#ctl00_ContentPlaceHolder1_ddUni :selected").val() == "-1")
				{
					$('#ctl00_ContentPlaceHolder1_ddUni').addClass("addressInputBoxError");
					errors += "> In CONFIRM : You haven't selected your university\n";
					registerErrors = true;
				}
				else
				{
					$('#ctl00_ContentPlaceHolder1_ddUni').addClass("addressInputBox");
				}
				
				// How Heard dropdown
				$('#ctl00_ContentPlaceHolder1_ddHowHeard').removeClass();
				if($("#ctl00_ContentPlaceHolder1_ddHowHeard :selected").val() == "-1")
				{
					$('#ctl00_ContentPlaceHolder1_ddHowHeard').addClass("addressInputBoxError");
					errors += "> In CONFIRM : You haven't selected how you heard about Unibaggage\n";
					registerErrors = true;
				}
				else
				{
					$('#ctl00_ContentPlaceHolder1_ddHowHeard').addClass("addressInputBox");
				}
			}
		}
		
		
		

		// # Terms and conditions
		if (!$('#cbTC').attr('checked')){registerErrors = true;errors+="> In CONFIRM : You haven't ticked the Terms and Conditions box\n";}
		
		//
		if(registerErrors)
		{
			$('#barStep4').addClass("barStep4On");
		}
		else
		{
			$('#barStep4').addClass("barStep4Done");	
		}
		panelComplete4 = !registerErrors;
		
		
		// final determination
		if(panelComplete0&&panelComplete1&&panelComplete2&&panelComplete3&&panelComplete4)canSend=true;
		
		
		if(errors.length>0)
		{
				alert("Sorry, the booking isn't complete.  Please check the following errors:-\n\n" + errors);
		}
		else
		{
			if(canSend)
			{
				// build header
				var hqs = "&ut="+userType;
				hqs += "&st="+serviceType;
				hqs += "&ot="+orderType;
				hqs += "&fn="+addInputData("fullName");
				hqs += "&em="+addInputData("emailAddress");
				hqs += "&pw="+addInputData("password1");
				hqs += "&un="+$("#ctl00_ContentPlaceHolder1_ddUni :selected").text();
				hqs += "&hh="+addInputData("ctl00_ContentPlaceHolder1_ddHowHeard :selected");
				hqs += "&c1="+encodeURI(addInputData("tbPickUpAddressBusinessName"));
				hqs += "&c2="+encodeURI(addInputData("tbPickUpAddressContactName"));
				hqs += "&c3="+encodeURI(addInputData("tbPickUpAddressContactPhone"));
				hqs += "&c4="+encodeURI(addInputData("tbPickUpAddress_line1"));
				hqs += "&c5="+encodeURI(addInputData("tbPickUpAddress_line2"));
				hqs += "&c6="+encodeURI(addInputData("tbPickUpAddress_line3"));
				hqs += "&c7="+encodeURI(addInputData("tbPickUpAddress_town"));
				hqs += "&c8="+encodeURI(addInputData("tbPickUpAddress_county"));
				hqs += "&c9="+encodeURI(addInputData("tbPickUpAddress_postcode"));
				hqs += "&d1="+encodeURI(addInputData("tbDeliveryAddressBusinessName"));
				hqs += "&d2="+encodeURI(addInputData("tbDeliveryAddressContactName"));
				hqs += "&d3="+encodeURI(addInputData("tbDeliveryAddressContactPhone"));
				hqs += "&d4="+encodeURI(addInputData("tbDeliveryAddress_line1"));
				hqs += "&d5="+encodeURI(addInputData("tbDeliveryAddress_line2"));
				hqs += "&d6="+encodeURI(addInputData("tbDeliveryAddress_line3"));
				hqs += "&d7="+encodeURI(addInputData("tbDeliveryAddress_town"));
				hqs += "&d8="+encodeURI(addInputData("tbDeliveryAddress_county"));
				hqs += "&d9="+encodeURI(addInputData("tbDeliveryAddress_postcode"));
				hqs += "&pd="+$('#formPickupdate').val();
				hqs += "&ct="+$('.ddCollectTime').val();
				hqs += "&ins="+$('#ddIns option:selected').val();
				hqs += "&cins="+bCancIns;
				hqs += "&euro="+isEuro;
				if(isEuro)
				{
					hqs += "&colcountry="+escape($('#ddEUCollection option:selected').text());
					hqs += "&delcountry="+escape($('#ddEUDelivery').val());
					hqs += "&cr="+$('#ddCourier option:selected').val().substr(0,1);
				}else{
					hqs += "&colcountry=&delcountry=&cr=";
				}
				hqs += "&qf="+quoteRef;
				hqs += "&order="+$('#orderData').val();
				
				$.ajax({url:"_nb.ashx?m=5" + hqs,async:false,
					success: function(msg){
						if(msg=="5")
						{
							window.location = "orders.aspx";						
						}
						else
						{						
							if(msg=="1")doAlert("Incorrect email and/or password");
							if(msg=="2")doAlert("Sorry, we could not sign you up.  Please wait a few moments and try again.");
							if(msg=="3")doAlert("Sorry, there was a system error.  Please wait a few moments and try again.");
						}
					},
					error: function(err){
						$('#bookingForm').show();
						doAlert("Sorry, there has been a system error.  Please wait a few moments before trying again.");
					}
				});
			}
			else
			{
				doAlert("Please check that your login details are correct.");
			}
		}
	}
	
	function isValidEmail(strEmail)
	{
		var retVal = false;
		$.ajax({url:'_nb.ashx?m=10&e='+escape(strEmail),async:false,success:function(code){retVal=code;}});
		return (retVal=="true")?true:false;
	}
	
	
	function SwapAddresses()
	{
		var cBizName = $('#tbPickUpAddressBusinessName').val();
		var cConName = $('#tbPickUpAddressContactName').val();
		var cConPhone = $('#tbPickUpAddressContactPhone').val();
		var cLine1 = $('#tbPickUpAddress_line1').val();
		var cLine2 = $('#tbPickUpAddress_line2').val();
		var cLine3 = $('#tbPickUpAddress_line3').val();
		var cTown = $('#tbPickUpAddress_town').val();
		var cCounty = $('#tbPickUpAddress_county').val();
		var cPostcode = $('#tbPickUpAddress_postcode').val();
		var cCountry = $('#tdEUAdd_collect_country').text();
		$('#tbPickUpAddressBusinessName').val($('#tbDeliveryAddressBusinessName').val());
		$('#tbPickUpAddressContactName').val($('#tbDeliveryAddressContactName').val());
		$('#tbPickUpAddressContactPhone').val($('#tbDeliveryAddressContactPhone').val());
		$('#tbPickUpAddress_line1').val($('#tbDeliveryAddress_line1').val());
		$('#tbPickUpAddress_line2').val($('#tbDeliveryAddress_line2').val());
		$('#tbPickUpAddress_line3').val($('#tbDeliveryAddress_line3').val());
		$('#tbPickUpAddress_town').val($('#tbDeliveryAddress_town').val());
		$('#tbPickUpAddress_county').val($('#tbDeliveryAddress_county').val());
		$('#tbPickUpAddress_postcode').val($('#tbDeliveryAddress_postcode').val());
		$('#tdEUAdd_collect_country').text($('#tdEUAdd_deliver_country').text());
		$('#tbDeliveryAddressBusinessName').val(cBizName);
		$('#tbDeliveryAddressContactName').val(cConName);
		$('#tbDeliveryAddressContactPhone').val(cConPhone);
		$('#tbDeliveryAddress_line1').val(cLine1);
		$('#tbDeliveryAddress_line2').val(cLine2);
		$('#tbDeliveryAddress_line3').val(cLine3);
		$('#tbDeliveryAddress_town').val(cTown);
		$('#tbDeliveryAddress_county').val(cCounty);
		$('#tbDeliveryAddress_postcode').val(cPostcode);
		$('#tdEUAdd_deliver_country').text(cCountry);
	}
	
	
	function ShowWait(b)
	{
		if(b){
			$('#bookWait').css({opacity:0.5});
			$('#bookWait').show();
		}else{
			$('#bookWait').hide();
		}
	}
