// JavaScript Document

		//Event.observe(window, 'load', loadAccordions, false);

		this.storeLocator = true;
	
		this.currentOpenPos = undefined;
		
		//load the accordion
		function loadAccordions() {	
			
			this.accAccordionBC = new accordion('vertical_containerBC');
			//this.accAccordionON = new accordion('vertical_containerON');
			//this.accAccordionQC = new accordion('vertical_containerQC');
			//this.accAccordionAB = new accordion('vertical_containerAB');
			this.accAccordionBC.currentOpenPos = undefined;
			//this.accAccordionON.currentOpenPos = undefined;
			//this.accAccordionQC.currentOpenPos = undefined;
			//this.accAccordionAB.currentOpenPos = undefined;
		}
		//loadAccordions();
		
		openStoreAccordion = function(pos,arrowID,prov,dataNum){
			if(this["accAccordionBC"].currentOpenPos == pos){
				this["accAccordionBC"].currentOpenPos = undefined;
			}else{
				if(this["accAccordionBC"].currentOpenPos != undefined){
					getElement("map_canvas"+this["accAccordionBC"].currentOpenPos).style.visibility="hidden";
				}
				this["accAccordionBC"].currentOpenPos = pos;
			}
			
			//alert(prov);
			this["accAccordionBC"].activate($$('#vertical_containerBC .accordion_toggle')[pos]);
			if(this["accAccordionBC"].arrowBut != undefined){				
				this["accAccordionBC"].arrowBut.className="arrow";	
				
			}	
			
			if(arrowID != undefined){
				
				var temp = this["accAccordionBC"].arrowBut;
				this["accAccordionBC"].arrowBut = getElement(arrowID);
				if(temp != this["accAccordionBC"].arrowBut){
					
					this["accAccordionBC"].arrowBut.className="arrow_up";	
					setTimeout('showMapVisible("map_canvas'+pos+'");',500);
					//getElement("map_canvas"+pos).style.visibility="visible";
//
				}else{
					this["accAccordionBC"].arrowBut = undefined;
					getElement("map_canvas"+pos).style.visibility="hidden";
				}
				
			}
			
			//pageData[pageData.prov+"Data"]
			if(!pageData[prov+"Data"][dataNum].mapShown){
				pageData[prov+"Data"][dataNum].mapShown = true;
				
				setTimeout('showMapLatLon("'+pageData[prov+"Data"][dataNum].lat+'","'+pageData[prov+"Data"][dataNum].lon+'","map_canvas'+pos+'");',1000);
				//alert("map_canvas"+pos);
				//showMap(pageData[prov+"Data"][dataNum].postal_code,"map_canvas"+prov+pos);
			}			
		}
		
		closeStoreAccordion = function(){
			if(this["accAccordionBC"] != undefined){
				if(this["accAccordionBC"].currentOpenPos != undefined){
					var pos = this["accAccordionBC"].currentOpenPos;				
					this["accAccordionBC"].activate($$('#vertical_containerBC .accordion_toggle')[pos]);
					this["accAccordionBC"].currentOpenPos = undefined;
					//this["accAccordionBC"].currentOpenPos = undefined;
				}
			}
		}
		
		showMapVisible = function(mapID){
			getElement(mapID).style.visibility="visible";
		}
		
		
		function loadXMLFiles(prov,lang,preload){
			var tabObj = getElement('tab'+(1));
			//var prov = tabObj.getAttribute('prov');
			var prov = prov;
			
			//xmlLocation: this can be absolute or relative
			var xmlLocation="/xml/";
			
			var pageType="storeLocator";		
			//var dataDivId = "vertical_container"+prov;	
			var dataDivId = "vertical_containerBC";		
			//don't change the function call
			
			if(pageData[prov+"Data"] == undefined){			
				pageData.setData(xmlLocation,pageType,dataDivId,prov,tabObj,lang);
				pageData.getData(preload);
			}else{
				pageData.setData(xmlLocation,pageType,dataDivId,prov,tabObj,lang);
				pageData.showCities(pageData[pageData.prov+"CityData"]);
			}
			
		}
		
		function citySort(obj){
			
			
			loader(true);
			
			
			var city = obj.value;		
			pageData.citySort(city);
			
			
		}
		
		function runSort(obj){		
			loader(true);
			pageData.runSort(obj.value);
			
		}
		
		function sortRadius(obj,sortBy){
			loader(true);
			
			mytime=setTimeout('pageData.sortRadius('+obj.value+',"'+sortBy+'")',500);
			//pageData.sortRadius(obj.value,sortBy);
			
		}
		
	
		var map = null;
		var geocoder = null;
		
		function initialize() {
		  if (GBrowserIsCompatible()) {
			geocoder = new GClientGeocoder();
		  }
		 }
		
		function showMapLatLon(lat, lon, mapHolder){
		    var point = new GLatLng(parseFloat(lat),
                                    parseFloat(lon));
            if (!point) {
		        document.getElementById(mapHolder).innerhtml = "<br/><br/><br/><br/>Map unavailable";
            } 
            else {	
                this.jMapHolder = mapHolder;
                this.jPoint= point;
                map = new GMap2(document.getElementById(mapHolder));			
                map.setCenter(point, 13);
                map.addControl(new GLargeMapControl());
                map.addControl(new GMapTypeControl());
                map.addOverlay(new GMarker(point));
			}
        }
		function showMap(address,mapHolder) {
		 		  
		   if (geocoder) {
			geocoder.getLatLng(
			  address,
			  function(point) {
				if (!point) {
					//alert(point+" -- "+dataObj['postal_code']);
					document.getElementById(mapHolder).innerhtml = "<br/><br/><br/><br/>Map unavailable";
				} else {	
					this.jMapHolder = mapHolder;
					this.jPoint= point;
					//setTimeout("loadactualMap(this.jMapHolder,this.jPoint);", 2000);
					 map = new GMap2(document.getElementById(mapHolder));			
					  map.setCenter(point, 13);
					 map.addControl(new GLargeMapControl());
					 map.addControl(new GMapTypeControl());
	
					  var marker = new GMarker(point);
					  map.addOverlay(marker);
					//  map.checkResize() 
				  //lsc = new google.maps.LocalSearch(); 
		  			//map.addControl(new google.maps.LocalSearch());
				 //marker.openInfoWindowHtml(address);
				}
			  }
			);
		  }
		  
		}
		
		
		var count = 0;
		function showAddress(objId1,objId2,radiusID,sortById) {
			getElement('Cities').value = '';
		
			 var address = 	getElement(objId1).value + getElement(objId2).value;
			 var radius = getElement(radiusID).value;
			var sortBy = sortById;
			 
			 if(validatePostalFormat(address)){
				loader(true);
				  if (geocoder) {
					geocoder.getLatLng(
					  address+" canada",
					  function(point) {
						
						//alert(point);
						if (!point) {
							
							if(pageData.lang == "fr"){
								showError("Le code postal que vous avez entré n'est pas valide.");
							}else{
								showError("The postal code you entered isn't valid");
							} 
							loader(false);
						} else {
							pageData.runMySearch(point,radius,sortBy,address);				
						}
					  }
					);
				  }
				}  
		}
		
		
		
		postalObj = {};
		postalObj.A = "nl";
		postalObj.B = "ns";
		postalObj.C = "pe";
		postalObj.E = "nb";
		postalObj.G = "qc";
		postalObj.H = "qc";
		postalObj.J = "qc";
		postalObj.K = "on";
		postalObj.L = "on";
		postalObj.M = "on";
		postalObj.N = "on";
		postalObj.P = "on";
		postalObj.R = "mb";
		postalObj.S = "sk";
		postalObj.T = "ab";
		postalObj.V = "bc";
		postalObj.X = "nt";
		postalObj.Y = "yu";
		
		
		initialize();
		
		function checkPostalValue(obj,prov,boxId1,boxId2,radiusID,sortBy,side){
		
			this.boxId1 = boxId1;
			this.boxId2 = boxId2;
			
			var newProv = getElement(prov).value;
			//alert(newProv)
			this.tabProv = newProv;
			this.radiusID = radiusID;
			this.sortBy = sortBy;
			
			
		
			pageData[pageData.prov+'point'] = undefined;
			
			
			
			getElement("errorAreaBC").style.display = 'none';
			if(side == undefined){
			/*	//alert(obj.value.toUpperCase()+" -- "+newProv)
				if(postalObj[obj.value.toUpperCase()] != newProv && obj.value.length == 1){
					obj.value = "";
					
					 if(pageData.lang == "fr"){
						showError("Le code postal entré n'est pas valide dans cette province.");
					}else{
						showError("The postal code that you entered is invalid for this province.")
					} 
					//set error
				}*/
				
				if(obj.value.length == 3){
					getElement(boxId2).focus();
				}
			}
		}
		
		
		
		document.onkeyup = function(event2){
			 //var keyCode = document.layers ? event.which : document.all ? event.keyCode : event.keyCode;
			 if(event2 == undefined){
				var keyCode = event.keyCode;	 
			}else{
				var keyCode = event2.keyCode;	 	
			}
		
			if(keyCode==13){
				
				if(boxId1 != undefined){
					showAddress(boxId1,boxId2, radiusID, sortBy);
				}
			} 
		}
		
		
function showError(txt){
	if(this.tabProv != undefined){
		getElement("errorAreaBC").innerHTML = txt;	
		getElement("errorAreaBC").style.display = 'inline';
	}
}
		
		
/*****************************************************************
*	check to see if the postal code is valid
*		
*
********************************************************************/
function validatePostalFormat(postal)
{
	var p = postal;
     //create regular expression for testing
     reg_exp_pcode = new RegExp(/(^s*([a-z](\s)?\d(\s)?){3}$)s*/i);
 	
     if(p!= "" && reg_exp_pcode.test(p))
     {
       
          return true;
     }
	 if(pageData.lang == "fr"){
		showError("Le code postal entré n'est pas valide.");
	}else{
		showError("The Postal Code format is invalid!");
	} 
	

	// setErrorClass(getElement(postal))
     return false;
}

function loader(toggle,init){
	//toggle,img){
			if(toggle){ 
				//kill last open
				if(init == undefined){
					closeStoreAccordion();
				}
				
				/*if(this["accAccordionBC"].currentOpenPos != undefined){
					openStoreAccordion(this["accAccordionBC"].currentOpenPos){
				}*/
			
				var displayObj = document.getElementById("shield");				
				//find page size
				var size = pageSize();
				var height = size.height;			
				var width = size.width;		
				//var insideShieldObj = document.getElementById("insideShield");
				//insideShieldObj.style.width=width+'px'
				//insideShieldObj.style.height = height+'px';
				displayObj.style.display = '';
				
				var titleObj = document.getElementById("imageArea");
				titleObj.innerHTML = "<img src='../images/parrot_loading.gif' />";
				//titleObj.style.display = '';
				var infoObj = getElement("infoPopUp");
				//infoObj.className = "insideText_popup";									
				
				infoObj.style.top =(420)+"px";
				infoObj.style.left =((width -480)/2)+"px";
			
			}else{	
				var displayObj = document.getElementById("shield");
				displayObj.style.display = 'none';
				
			}	
	
	
}


