function postalCodeValidator(postalCode, restrictEmptyPosCode) {
		var validPostalCode = "";
		var isValid = true;
		if(postalCode != null) {
			//Getting rid of unnecessary leading and trailing whitespaces.
			postalCode = postalCode.replace(/^\s+|\s+$/g, "");

			if(restrictEmptyPosCode) {
				if(postalCode.length == 0)
					isValid = false;
			}
			
			if(postalCode.length < 6) 
				isValid = false;
			
			if(postalCode.length == 6) {
				for(var z=0; isValid && z < postalCode.length; z++) {
					if(postalCode.charAt(z) == " ") 
							isValid = false;
				}
			}

			if(isValid)
				validPostalCode = postalCode;
		}
		return validPostalCode;
	}

	function postalCodePopUp(lang, pageFrom, postalCodeId, updateDivId, homePage, triggerOrigin,code) {
		//alert(code);
		/*
		var calledFrom = document.getElementById("calledFrom");

		var from = '';
		if(calledFrom != null)
			from = calledFrom.value;
		*/
		var postalCode = "";
		//alert('1' + document.getElementById(postalCodeId));
		if(triggerOrigin == 'dyson')
			postalCode = code;
		
		else if(document.getElementById(postalCodeId)) 
			postalCode = document.getElementById(postalCodeId).value;
		
		postalCode = postalCodeValidator(postalCode,true);
		
		var message = "Please enter a valid postal code"; 
		if(lang == "fr") 
			message = "Veuillez entrer un code postal valide.";
		
		if(postalCode == "") {
			alert(message);
			return;
		}
		
		var triggerFrom = "";
		if(triggerOrigin != null)
			triggerFrom = triggerOrigin;
		
		//var maxDist = null;
		//document.getElementById(maxDistance);
		//if(document.getElementById(maxDistance)) {
		//	maxDist = document.getElementById(maxDistance).value;
		//}
		//alert("postalCodeId " + postalCodeId + "updateDivId " + updateDivId);
		//alert("maxDist " + maxDist);
		if(document.getElementById(updateDivId)) 
			searchStoreByPostalCode(lang, pageFrom, postalCode, updateDivId,homePage,triggerFrom);
	}
	
	function searchStoreByPostalCode(lang, pageFrom, postalCode, divId,homePage,triggerFrom) {
		var paramsToPass = "&postalCode=" + postalCode + "&lang=" + lang + "&pageFrom="+encodeURIComponent(getEntities(pageFrom))+"&homeIndex="+homePage+"&triggerFrom="+triggerFrom;
		//alert(paramsToPass + " div " + divId);
		//alert('height rf2 ' + jQuery(window).height());
		//alert('height ' + document.getElementById("postalCodeWindow").style.height);
		$.ajax({
			url:"/wpscontroller?command=storelocator.ServletSearchStoresByPostalCode&calledBy=mainMenu"+paramsToPass
			,success: function(content) {
			
				$("#"+divId).html(content);
				
				if(triggerFrom != "storePopUp") {
					$.blockUI({
						message: $("#"+divId)
						,css: {
							top:  (jQuery(window).height() - 500) /2 + 'px', 
							//top:  (jQuery(window).height() - 700) + 'px',
	          		 		left: (jQuery(window).width() - 800) /2 + 'px', 
	          				width: '800px',
							 //width: '473px',
	          				//height: '450px',
	          				border: '1px solid #fff'
			   			}
						//, centerX: true
						//, centerY: true
					});
				}
			}
			,error:function() {
				alert('there is an error');
			}
		});
		
	}

	function styledPopupClose() {
		$.unblockUI();
   }

	function getEntities(str){
		var s = str;
		var rval = "";
		for(i=0; i<s.length; i++){
			var character=s.charCodeAt(i);
			if(character>127){
				rval += "&#" + character + ";";
			} else {
				rval += s.charAt(i);
			}
		}
		return rval;
	}

	function getUrl(wmStoreId,lang,pageFrom) {
		//alert('wmStoreId ' + wmStoreId +  ' lang ' + lang + ' pageFrom ' + pageFrom);

		var calledFrom = getElementInfo("calledFrom");
		var deptId = getElementInfo("departmentId");
		var item = getElementInfo("sku");

		var eventId = getElementInfo("eventId");
		var page = getElementInfo("page");
		var singledept = getElementInfo("singledept");
		var tabId = getElementInfo("popUpTabId");
		
		var selection = getElementInfo("selection");
		var categoryId = getElementInfo("categoryId");
		var brandId = getElementInfo("brandId");

		var pageNum = getElementInfo("pageNum");
		
		//Added for videogames page by Filmon
		//var deptName = getElementInfo("depName");
		//var currentPage = getElementInfo("currentPage");
		//var categoryName = getElementInfo("CategoryName");
		//End of videogamess additions by Filmon
		var langParam = "";
		
		if(lang == "fr")
			langParam = "&lang="+lang;

		var moreParams = "&storeID="+wmStoreId+"&calledFrom="+calledFrom+"&departmentId="+deptId+"&sku="+item+langParam
						+"&eventId="+eventId+"&tabId="+tabId+"&selection="+selection+"&categoryId="+categoryId+"&page="+page
						+"&brandId="+brandId+"&pageFrom="+encodeURIComponent(getEntities(pageFrom))+"&pageNum="+pageNum+"&singledept="+singledept;
						//+"&depName="+deptName+"&currentPage="+currentPage+"&categoryName="+categoryName;
		//alert("pageFrom:::"+encodeURIComponent(getEntities(pageFrom)));
		var saveUrl = "/wpscontroller?command=storelocator.pricing.ServletLoadPricingForStore" + moreParams;
		//alert('saveUrl ' + saveUrl);
		//alert('calledFrom ' + calledFrom);
  	    location.href = saveUrl;
    }

    function getElementInfo(id) {

		var elementInfo = "";

		if (document.getElementById(id))
			elementInfo = document.getElementById(id).value;

		return elementInfo;
    }
    
    function showPopup(id){
		var divElement = document.getElementById(id);
		divElement.style.display = 'inline';
		
		var height_div=divElement.scrollHeight; 
		//var height_div=divElement.scrollHeight * 2;
		var height=document.documentElement.clientHeight; 
		var divHeight = ((height-height_div)/2)+10;
		//var divHeight = ((height-height_div)/2);
		if(divHeight<0){
		    divHeight=0;
		}
		var width_div=divElement.scrollWidth; 
		var width=document.documentElement.clientWidth; 
		var divWidth = (width-width_div)/2;
		if(divWidth<0){
		    divWidth=0;
		}
		
		divElement.style.top=divHeight+'px'; 
		divElement.style.left=divWidth+'px';
	}
    
    function setProvName(selectBoxObj,calledBy) {
    	
    	var selectedProvince = "";
    	if(selectBoxObj != null) 
    		selectedProvince = selectBoxObj.options[selectBoxObj.selectedIndex].value
    	
    	var params = "&provinceName=" + selectedProvince + "&calledBy="+ calledBy + "&"+Math.random()*10000;
    		
    	var urlWithParams = "/wpscontroller?command=storelocator.ServletsetProvinceParamForStoreLocator"+params; 

    	$("#cityResultsPricing").load(urlWithParams);
    }
    
    function performPricingSearchByCity(calledBy, homeIndex, lang, pageFrom){

    	var selectedCityObj = document.getElementById("cityNamePricing");
    	var selectedProvObj = document.getElementById("provinceNamePricing");
    	
    	if(selectedCityObj != null && selectedProvObj != null) {
    		
    		var errorMessage = "Please select a Province to search for your store.";
    		if(lang != null && lang == "fr")
    			errorMessage = "Veuillez sélectionner une province pour trouver une succursale.";
    		
    		if(selectedProvObj.options[selectedProvObj.selectedIndex].value == "-1") {
    			alert(errorMessage);
    			return;
    		}
    		
    		var selectedCity = selectedCityObj.options[selectedCityObj.selectedIndex].value;
	    	var params = "&cityName=" + selectedCity + "&calledBy="+ calledBy + "&homeIndex="+homeIndex+ "&pageFrom=" + pageFrom + 
	    				 "&lang=" + lang + "&"+Math.random()*10000;
	    	
			var urlWithParams = "/wpscontroller?command=storelocator.ServletsearchStoreByCity"+params; 
	
			$.ajax({
		        url:urlWithParams,
		        success: function(content) {
		      		$("#locatorResult").html(content);
		        }
		     });
    	}	
    }
    
    function postalCodeSubmitByEnterKey(event,lang, pageFrom, postalCodeId, updateDivId, homePage,pageTrigger) {
    	if(event != null && event.keyCode == 13) 
    		postalCodePopUp(lang, pageFrom, postalCodeId, updateDivId, homePage,pageTrigger);
    }
