var lang;

function postalCheck(pre,suf,lang)
{
	var errormsg = "";
	
	if(lang == "en")
		errormsg = "Please enter the postal code in the format X1X 1X1";
	else if (lang == "fr")
		errormsg = "Veuillez enter le code postal dans le format X1X 1X1";
	else
		errormsg = "Please enter the postal code in the format X1X 1X1";
	
	
	if(pre.length > 0 && suf.length > 0)
	{
		var postalPattern = /^[A-Z][0-9][A-Z][0-9][A-Z][0-9]$/;
		var address = pre+suf;
	}
	else if(pre.length > 0 && suf.length == 0)
	{
		var postalPattern = /^[A-Z][0-9][A-Z]$/;
		address = pre;
	}
	else if(pre.length < 3 || suf.length < 3)
	{
		alert(errormsg);
		return false;
	}
	
	/*************** VALIDATE *******************/
	var postalRegExp = new RegExp(postalPattern);
	if (address == "")
	{
		alert(errormsg);
		return false;
	}
	if (postalRegExp.test(address.toUpperCase()) == false )
	{
		alert(errormsg);
		return false;
	}
	return true;
}
    
    
    //<![CDATA[
    var map;
    var mgr;
    var icons = {};
	var geocoder = null;

    function load() 
    {
      if (GBrowserIsCompatible()) 
      {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        //map.addControl(new GOverviewMapControl());
        map.setCenter(new GLatLng(60, -98), 3);
        map.enableDoubleClickZoom();
		geocoder = new GClientGeocoder();
		//map.openInfoWindow(map.getCenter(),
               //    document.createTextNode("Hello, world"));
      }
    }

    /*function getIcon(images) {
      var icon = null;
      if (images) {
        if (icons[images[0]]) {
          icon = icons[images[0]];
        } else {
          icon = new GIcon();
          icon.image =  images[0] + ".png";
          var size = iconData[images[0]];
          icon.iconSize = new GSize(size.width, size.height);
          icon.iconAnchor = new GPoint(size.width >> 1, size.height >> 1);
		  icon.infoWindowAnchor = new GPoint(size.width, size.height);
          icon.shadow = images[1] + ".png";
          size = iconData[images[1]];
          icon.shadowSize = new GSize(size.width, size.height);
          icons[images[0]] = icon;
        }
      }
      return icon;
    }*/
	
	function getIcon() {
      var icon = null;
          icon = new GIcon();
          icon.image = "/modules/mod_findagent/icon.png";
          var anchorWidth =  21;
		  var anchorHeight = 36;
          icon.iconSize = new GSize(anchorWidth, anchorHeight);
          icon.iconAnchor = new GPoint(anchorWidth, anchorHeight);
		  icon.infoWindowAnchor = new GPoint(anchorWidth/2, 0);
          icon.shadow = "/modules/mod_findagent/icon_shadow.png";
          icon.shadowSize = new GSize(42, 36);
		  
      return icon;
    }
	
	function addMarkerEvent(marker,message){
	var value = marker["title"];
	 GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(message);
  			});
	
	}
	
    //]]>
    
    
    /************* AJAX CODE **************/
    var req;
	var target;
	var isIE;
	
	function initRequest(url) 
	{
	    if (window.XMLHttpRequest) 
		{
	        req = new XMLHttpRequest();
			//alert("Created XMLHttpRequest object probably because you are NOT using IE");
	    } 
		else if (window.ActiveXObject) 
		{
	        isIE = true;
	        req = new ActiveXObject("Microsoft.XMLHTTP");
			//alert("Created ActiveX object because you ARE using IE");
	    }
		return req;
	}
    /*********** END AJAX CODE ************/
	
	function showAddress(pre,suf,lang) 
	{
		setLang(lang);
		
		if(postalCheck(pre,suf,lang))
		{
			var address = pre+suf;
			/******* AJAX CODE *********/
			var url = "../ajax/addressresponder.php?a="+escape(address); 
			
		    initRequest(url);
			
			req.onreadystatechange = processContent;
				
			req.open("GET", url, true); 
		    req.send(null);
			/***** END AJAX CODE *******/
		}
    }
    
    /*function doMarker(address,message)
    {
    	if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
            } else {
              map.setCenter(point, 10);
             var marker = new GMarker(point);
             map.addOverlay(marker);
            	marker.openInfoWindowHtml(message);
            }
          }
        );
      }
    }*/
	
	function doMarker(address,message)
    {
    	if (geocoder) 
    	{
    		geocoder.getLatLng(address,
          	function(point) 
          	{
            	if (!point) 
            	{
            	} 
            	else 
            	{
            		//map.setCenter(point, 12);
			 		var icon = getIcon(); 
             
			 		var marker = new GMarker(point,icon);
             		map.addOverlay(marker);
             		//marker.openInfoWindowHtml(message);
			 		addMarkerEvent(marker,message);
            	}
          	}
        );
      }
    }
    
/************************* END GOOGLE CODE *******************************/


function processContent() 
{
	if(getLang()=="en")
		errormsg = "Sorry! No agents could be found with that postal code. Please try another search";
    else if(getLang()=="fr")
    	errormsg = "D\351sol\351, aucun courtier n'est disponible pour ce code postal. Veuillez effectuer une nouvelle recherche.";
	else
		errormsg = "Sorry! No agents could be found with that postal code. Please try another search";
    	
	if (req.readyState == 4) 
	{
        if (req.status == 200) 
		{
			if(req.responseXML.getElementsByTagName("msg")[0].childNodes[0])
				alert(errormsg);
				//document.getElementById('agadcopy').innerHTML="No results";
			else
			{
				var message = "";
				var agentNum = "";			
				var firstName = "";
				var lastName = "";
				var address_one = "";
				var address_two = "";
				var city = "";
				var provState = "";
				var postalZip = "";
				var phone = "";
				var fax = "";
				var email = "";
				var url = "";
				rsp = req.responseXML.getElementsByTagName("agents")[0].childNodes;
				var output = "";
				
				for(var i = 0; i < rsp.length+1; i++)
				{
					var message = "";
					var address = "";
					if(i%2!=1)
					{
						//alert(req.responseXML.getElementsByTagName("first_name")[i].childNodes[0].nodeValue);
						if(req.responseXML.getElementsByTagName("agent_num")[i].childNodes[0])
							agentNum = req.responseXML.getElementsByTagName("agent_num")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("first_name")[i].childNodes[0])
							firstName = req.responseXML.getElementsByTagName("first_name")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("last_name")[i].childNodes[0])
							lastName = req.responseXML.getElementsByTagName("last_name")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("agency")[i].childNodes[0])
							agency = req.responseXML.getElementsByTagName("agency")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("address_one")[i].childNodes[0])	
							address_one = req.responseXML.getElementsByTagName("address_one")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("address_two")[i].childNodes[0])	
							address_two = req.responseXML.getElementsByTagName("address_two")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("city")[i].childNodes[0])	
							city = req.responseXML.getElementsByTagName("city")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("prov_state")[i].childNodes[0])	
							provState = req.responseXML.getElementsByTagName("prov_state")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("postal_zip")[i].childNodes[0])
							postalZip = req.responseXML.getElementsByTagName("postal_zip")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("phone")[i].childNodes[0])	
							phone = req.responseXML.getElementsByTagName("phone")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("fax")[i].childNodes[0])	
							fax = req.responseXML.getElementsByTagName("fax")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("email")[i].childNodes[0])	
							email = req.responseXML.getElementsByTagName("email")[i].childNodes[0].nodeValue;
						if(req.responseXML.getElementsByTagName("url")[i].childNodes[0])	
							url = req.responseXML.getElementsByTagName("url")[i].childNodes[0].nodeValue;
						
						if(getLang()=="en") // English
						{
							message += "<table cellpadding='0' cellspacing='2'>"+
							"<tr><td colspan='2'><h3>"+agency+"</h3></td></tr>"+
							"<tr><td align='left' width=15%>First Name:&nbsp;&nbsp;</td><td>"+firstName+"</td></tr>"+
							"<tr><td align='left'>Last Name:&nbsp;&nbsp;</td><td>"+lastName+"</td></tr>"+
							"<tr><td align='left'>Address:&nbsp;&nbsp;</td><td>"+address_one+"</td></tr>"+
							//"<tr><td align='left'>Address 2:&nbsp;&nbsp;</td><td>"+address_two+"</td></tr>"+
							"<tr><td align='left'>City:&nbsp;&nbsp;</td><td>"+city+"</td></tr>"+
							"<tr><td align='left'>Province:&nbsp;&nbsp;</td><td>"+provState+"</td></tr>"+
							"<tr><td align='left'>Postal:&nbsp;&nbsp;</td><td>"+postalZip+"</td></tr>"+
							"<tr><td align='left'>Phone:&nbsp;&nbsp;</td><td>"+phone+"</td></tr>"+
							"<tr><td align='left'>Fax:&nbsp;&nbsp;</td><td>"+fax+"</td></tr>"+
							"<tr><td align='left'>Email:&nbsp;&nbsp;</td><td><a href=\"mailto:"+email+"\">"+email+"</a></td></tr>"+
							"<tr><td align='left'>URL:&nbsp;&nbsp;</td><td><a href=\""+url+"\" target=\"_blank\">"+url+"</a></td></tr>"+
							"<tr><td colspan=2><hr /></td></tr>"+
							"</table>";
						}
						else if(getLang()=="fr") // French
						{
							message += "<table cellpadding='0' cellspacing='2'>"+
							"<tr><td colspan='2'><h3>"+agency+"</h3></td></tr>"+
							"<tr><td align='left' width=15%>Pr&eacute;nom:&nbsp;&nbsp;</td><td>"+firstName+"</td></tr>"+
							"<tr><td align='left'>Nom de famille:&nbsp;&nbsp;</td><td>"+lastName+"</td></tr>"+
							"<tr><td align='left'>Adresse:&nbsp;&nbsp;</td><td>"+address_one+"</td></tr>"+
							//"<tr><td align='left'>Adresse 2:&nbsp;&nbsp;</td><td>"+address_two+"</td></tr>"+
							"<tr><td align='left'>Ville:&nbsp;&nbsp;</td><td>"+city+"</td></tr>"+
							"<tr><td align='left'>Province:&nbsp;&nbsp;</td><td>"+provState+"</td></tr>"+
							"<tr><td align='left'>Ville:&nbsp;&nbsp;</td><td>"+postalZip+"</td></tr>"+
							"<tr><td align='left'>T&eacute;l&eacute;phone:&nbsp;&nbsp;</td><td>"+phone+"</td></tr>"+
							"<tr><td align='left'>T&eacute;l&eacute;copieur:&nbsp;&nbsp;</td><td>"+fax+"</td></tr>"+
							"<tr><td align='left'>Adresse &eacute;lectronique:&nbsp;&nbsp;</td><td><a href=\"mailto:"+email+"\">"+email+"</td></tr>"+
							"<tr><td align='left'>URL:&nbsp;&nbsp;</td><td><a href=\""+url+"\" target=\"_blank\">"+url+"</a></td></tr>"+
							"<tr><td colspan=2><hr /></td></tr>"+
							"</table>";
						}
						else // Default English
						{
							message += "<table cellpadding='0' cellspacing='2'>"+
							"<tr><td colspan='2'><h3>"+agency+"</h3></td></tr>"+
							"<tr><td align='right'>First Name:&nbsp;&nbsp;</td><td>"+firstName+"</td></tr>"+
							"<tr><td align='right'>Last Name:&nbsp;&nbsp;</td><td>"+lastName+"</td></tr>"+
							"<tr><td align='right'>Address:&nbsp;&nbsp;</td><td>"+address_one+"</td></tr>"+
							//"<tr><td align='right'>Address 2:&nbsp;&nbsp;</td><td>"+address_two+"</td></tr>"+
							"<tr><td align='right'>City:&nbsp;&nbsp;</td><td>"+city+"</td></tr>"+
							"<tr><td align='right'>Province:&nbsp;&nbsp;</td><td>"+provState+"</td></tr>"+
							"<tr><td align='right'>Postal:&nbsp;&nbsp;</td><td>"+postalZip+"</td></tr>"+
							"<tr><td align='right'>Phone:&nbsp;&nbsp;</td><td>"+phone+"</td></tr>"+
							"<tr><td align='right'>Fax:&nbsp;&nbsp;</td><td>"+fax+"</td></tr>"+
							"<tr><td align='right'>Email:&nbsp;&nbsp;</td><td><a href=\"mailto:"+email+"\">"+email+"</a></td></tr>"+
							"<tr><td align='right'>URL:&nbsp;&nbsp;</td><td><a href=\""+url+"\" target=\"_blank\">"+url+"</a></td></tr>"+
							"<tr><td colspan=2><hr /></td></tr>"+
							"</table>";
						}
						//address = address_one+", "+city+" "+provState+" "+postalZip;
						address = postalZip;
						
						output += message;
						document.getElementById('agadcopy').innerHTML=output;
						doMarker(address,message);
					}
				}
			}
		}
    }
}
function setLang(lang)
{
	this.lang = lang;
}
function getLang()
{
	return lang;
}