function startMap()
{
	myMap = new MQTileMap(document.getElementById('mapWindow'));
	var myZoomControl = new MQZoomControl(myMap);
	myMap.addControl(myZoomControl, new MQMapCornerPlacement(MQMapCorner.TOP_LEFT, new MQSize(10,20)));
	
	try
   {
      BuildMap();
   }
   catch(err)
   {
      // do nothing
   }
}

function getGeoCode(city, state, country)
{
    var proxyServerName = '';
	var proxyServerPort = '80';
	var proxyServerPath = '/proxy.aspx';

	var serverName = 'geocode.dev.mapquest.com';
	var serverPort = '80';
	var serverPath = 'mq';

	var address = new MQAddress();
   address.setCity(city);
   address.setState(state);
   address.setCountry(country);

   var geoExec = new MQExec(serverName, serverPath, serverPort, proxyServerName, proxyServerPath, proxyServerPort );
   var gaCollection = new MQLocationCollection('MQGeoAddress');

	geoExec.geocode(address, gaCollection);
   
	var geoCode = gaCollection.get(0).getMQLatLng();
	
	return geoCode;
}

function getGeoCodeForPostalCode(postalCode)
{
   	
	var proxyServerName = '';
	var proxyServerPort = '80';
	var proxyServerPath = '/proxy.aspx';

	var serverName = 'geocode.dev.mapquest.com';
	var serverPort = '80';
	var serverPath = 'mq';

	var address = new MQAddress();
   address.setPostalCode(postalCode);

   var geoExec = new MQExec(serverName, serverPath, serverPort, proxyServerName, proxyServerPath, proxyServerPort );
   var gaCollection = new MQLocationCollection('MQGeoAddress');

	geoExec.geocode(address, gaCollection);
   
	var geoCode = gaCollection.get(0).getMQLatLng();
	
	return geoCode;
}

function mapTargetLocation(latitude,longitude,iZoomLevel)
{
	var origin = new MQLatLng(latitude, longitude);

	myIcon = new MQMapIcon();
	myIcon.setImage('/images/mqIcons/star_red.gif',32,33,true,false);

	myMap.removeAllPois();

	var myPoint = new MQPoi(origin);
	myPoint.setIcon(myIcon);
	myPoint.setInfoTitleHTML('Your Location');
	myPoint.setInfoContentHTML('<div style="width:100px;">Your Location</div>');

	myMap.addPoi(myPoint);
	myMap.setCenter(origin,iZoomLevel);
}

function mapDetailLocation(latitude, longitude)
{
	var origin = new MQLatLng(latitude, longitude);

	myIcon = new MQMapIcon();
	myIcon.setImage('/images/mqIcons/star_red.gif',32,33,true,false);

	myMap.removeAllPois();

	var myPoint = new MQPoi(origin);
	myPoint.setIcon(myIcon);
	// myPoint.setInfoTitleHTML('Your Location');
	// myPoint.setInfoContentHTML('<div style="width:100px;">Your Location</div>');

	myMap.addPoi(myPoint);
	myMap.setCenter(origin,7);
}

function btnSearchLocations_Click()
{
   var cmbLocatorState = document.getElementById('cmbLocatorState');
   var cmbLocatorCountry = document.getElementById('cmbLocatorCountry');
   var cmbLocatorBusiness = document.getElementById('cmbLocatorBusiness');

   var city = document.getElementById('txtLocatorCity').value;
   var state = cmbLocatorState.options[cmbLocatorState.selectedIndex].value;
   var country = cmbLocatorCountry.options[cmbLocatorCountry.selectedIndex].value;
   var business = cmbLocatorBusiness.options[cmbLocatorBusiness.selectedIndex].value;
   
   // may want to change these to better error messages
   if (country == ""){
		alert("Please select a Country");
		return;
   }
   else if (country == "United+States" || country == "Canada"){
		if (city == ""){
			alert("Please select a City");
			return;
		}
		if (state == ""){
			alert("Please select a State");
			return;
		}
   }
   
   var ts = new Date();
   if (country == "United+States" || country == "Canada"){
	var geoCode = getGeoCode(city, state, country);
    var qs = 
      '?country=' + country + 
      '&state=' + state + 
      '&city=' + city +
      '&business=' + business +
      '&lat=' + geoCode.lat +
      '&lng=' + geoCode.lng +
      '&ts=' + ts.getTime();
   }
   else{
      var qs = 
      '?country=' + country + 
      '&state=' + state + 
      '&city=' + city +
      '&business=' + business +
      '&lat=-1'+
      '&lng=-1'
      '&ts=' + ts.getTime();
   }

   window.location.href = "results.aspx" + qs;
}

function btnZipCodeSearch_Click()
{
   var zipCode = document.getElementById('txtZip').value; 
   var ts = new Date();
   var geoCode = getGeoCodeForPostalCode(zipCode);
   var country;
   
   if (zipCode == "")
   {
       alert('Please enter a postal code.');
   }
   else 
   {
       if (zipCode.length <= 5)
           country = 'united states';
       else 
           country = 'canada';
       
       var qs = '?HomePageQuery=true&country=' + country + '&state=&city=&business=&lat=' + geoCode.lat + '&lng=' + geoCode.lng + '&ts=' + ts.getTime();
       window.location.href = "/SupportNetwork/results.aspx" + qs;
   }
}

function btnSearchAgain_Click()
{
   var city = document.getElementById('txtCity').value;
   var state = document.getElementById('txtState').value;
   var country = document.getElementById('txtCountry').value;

   var geoCode = getGeoCode(city, state, country);

   var ts = new Date();
   
   var qs = 
      '?country=' + document.getElementById('txtCountry').value + 
      '&state=' + document.getElementById('txtState').value + 
      '&city=' + document.getElementById('txtCity').value + 
      '&lat=' + geoCode.lat +
      '&lng=' + geoCode.lng +
      '&ts=' + ts.getTime();

   window.location.href = "results.aspx" + qs;
}
      
function addLoadEvent(func) 
{ 
   var oldonload = window.onload;

   if (typeof window.onload != 'function') 
   { 
      window.onload = func; 
   } 
   else 
   {
      window.onload = 
         function() 
         { 
            if (oldonload) 
            { 
               oldonload();
            }

            func();
         } 
   } 
}

function AddMapPoint(latitude, longitude, imageUrl, infoTitle, infoContent)
{
   var myIcon = new MQMapIcon();
   myIcon.setImage( imageUrl, 16, 16, true, false );

   var myPoint = new MQPoi( new MQLatLng( latitude, longitude ) );
   myPoint.setIcon( myIcon );
   myPoint.setInfoTitleHTML( infoTitle );
   myPoint.setInfoContentHTML( infoContent );

   myMap.addPoi( myPoint );
} 

function cmbLocatorCounty_OnChange()
{
	var cmbLocatorRegion = document.getElementById('cmbLocatorRegion');
	var cmbLocatorCountry = document.getElementById('cmbLocatorCountry');
	var cmbLocatorState = document.getElementById('cmbLocatorState');
	var locatorState = document.getElementById('locator-state');
    var locatorcity = document.getElementById('locator-city');
     var againState = document.getElementById('again-state');
     var againcity = document.getElementById('again-city');
	if (cmbLocatorRegion[cmbLocatorRegion.selectedIndex].text == "North America"){
		
				if (againcity)
					againcity.style.display = 'block';
				if (locatorcity)
					locatorcity.style.display = 'block';
				if( againState )
					againState.style.display = 'block';
				if( locatorState )
					locatorState.style.display = 'block';
		switch( cmbLocatorCountry[cmbLocatorCountry.selectedIndex].value ){
			case "Mexico":
				if (againcity)
					againcity.style.display = 'none';
				if (locatorcity)
					locatorcity.style.display = 'none';
				if( againState )
					againState.style.display = 'none';
				if( locatorState )
					locatorState.style.display = 'none';
				break;
		}
	}
}

function cmbLocatorRegion_OnChange()
{
   // ====
   // INIT
   // ====

   var cmbLocatorRegion = document.getElementById('cmbLocatorRegion');
   var cmbLocatorCountry = document.getElementById('cmbLocatorCountry');
   var locatorState = document.getElementById('locator-state');
   var againState = document.getElementById('again-state');
   var locatorcity = document.getElementById('locator-city');
   var againcity = document.getElementById('again-city');
   
   if (againcity)
	  againcity.style.display = 'none';
   if (locatorcity)
	  locatorcity.style.display = 'none';
   if( locatorState )
      locatorState.style.display = 'none';
   else
      againState.style.display = 'none';

   // ==================================
   // CLEAR ALL ITEMS FROM COUNTRY FIELD
   // ==================================
 
   var iTotalItems = cmbLocatorCountry.options.length - 1;

	for(var i = iTotalItems; i>-1; i--)
	{
		cmbLocatorCountry.remove(i);
	}
	
	// ===========================================
	// LOAD COUNTRY FIELD BASED ON SELECTED REGION
	// ===========================================
	
	LocatorAddOption(cmbLocatorCountry, '', 'Please Select');

   switch( cmbLocatorRegion.selectedIndex )
   {
      case 1 : // Africa
        LocatorAddOption(cmbLocatorCountry, 'Egypt', 'Egypt');
        LocatorAddOption(cmbLocatorCountry, 'Namibia', 'Namibia');
        LocatorAddOption(cmbLocatorCountry, 'South+Africa', 'South Africa');
        LocatorAddOption(cmbLocatorCountry, 'Zimbabwe', 'Zimbabwe');
        break;
      case 2 : // North America
        LocatorAddOption(cmbLocatorCountry, 'Canada', 'Canada');
        LocatorAddOption(cmbLocatorCountry, 'Mexico', 'Mexico');
        LocatorAddOption(cmbLocatorCountry, 'United+States', 'United States');
         
         if( locatorState )
            locatorState.style.display = 'block';
         else
            againState.style.display = 'block';
         if (locatorcity)
            locatorcity.style.display = 'block';
          if (againcity)
            againcity.style.display = 'block';
         break;
		case 3 : // South America
        LocatorAddOption(cmbLocatorCountry, 'Argentina', 'Argentina');
        LocatorAddOption(cmbLocatorCountry, 'Belize', 'Belize');
        LocatorAddOption(cmbLocatorCountry, 'Chile', 'Chile');
        LocatorAddOption(cmbLocatorCountry, 'Colombia', 'Colombia');
        LocatorAddOption(cmbLocatorCountry, 'Costa+Rica', 'Costa Rica');
        LocatorAddOption(cmbLocatorCountry, 'Dominican+Republic', 'Dominican Republic');
        LocatorAddOption(cmbLocatorCountry, 'Ecuador', 'Ecuador');
        LocatorAddOption(cmbLocatorCountry, 'El+Salvador', 'El Salvador');
        LocatorAddOption(cmbLocatorCountry, 'Guatemala', 'Guatemala');
        LocatorAddOption(cmbLocatorCountry, 'Haiti', 'Haiti');
        LocatorAddOption(cmbLocatorCountry, 'Honduras', 'Honduras');
        LocatorAddOption(cmbLocatorCountry, 'Jamaica', 'Jamaica');
        LocatorAddOption(cmbLocatorCountry, 'Nicaragua', 'Nicaragua');
        LocatorAddOption(cmbLocatorCountry, 'Panama', 'Panama');
        LocatorAddOption(cmbLocatorCountry, 'Peru', 'Peru');
        LocatorAddOption(cmbLocatorCountry, 'Puerto+Rico', 'Puerto Rico');
        LocatorAddOption(cmbLocatorCountry, 'Suriname', 'Suriname');
        LocatorAddOption(cmbLocatorCountry, 'Trinidad+And+Tobago', 'Trinidad And Tobago');
        LocatorAddOption(cmbLocatorCountry, 'Uruguay', 'Uruguay');
        LocatorAddOption(cmbLocatorCountry, 'Venezuela', 'Venezuela');
		   break;
		case 4 : // Asia
        LocatorAddOption(cmbLocatorCountry, 'China', 'China');
        LocatorAddOption(cmbLocatorCountry, 'Japan', 'Japan');
        LocatorAddOption(cmbLocatorCountry, 'South+Korea', 'South Korea');
        LocatorAddOption(cmbLocatorCountry, 'Russia', 'Russia');
        LocatorAddOption(cmbLocatorCountry, 'Taiwan', 'Taiwan');
		   break; 
	   case 5 : // Europe
        LocatorAddOption(cmbLocatorCountry, 'Austria', 'Austria');
        LocatorAddOption(cmbLocatorCountry, 'Belgium', 'Belgium');
        LocatorAddOption(cmbLocatorCountry, 'Denmark', 'Denmark');
        LocatorAddOption(cmbLocatorCountry, 'Finland', 'Finland');
        LocatorAddOption(cmbLocatorCountry, 'France', 'France');
        LocatorAddOption(cmbLocatorCountry, 'Germany', 'Germany');
        LocatorAddOption(cmbLocatorCountry, 'Greece', 'Greece');
        LocatorAddOption(cmbLocatorCountry, 'Hungary', 'Hungary');
        LocatorAddOption(cmbLocatorCountry, 'Italy', 'Italy');
        LocatorAddOption(cmbLocatorCountry, 'Poland', 'Poland');
        LocatorAddOption(cmbLocatorCountry, 'Portugal', 'Portugal');
        LocatorAddOption(cmbLocatorCountry, 'Spain', 'Spain');
        LocatorAddOption(cmbLocatorCountry, 'United+Kingdom', 'United Kingdom');
	      break;
	   case 6 : // Middle East
	      LocatorAddOption(cmbLocatorCountry, 'Bahrain', 'Bahrain');
        LocatorAddOption(cmbLocatorCountry, 'Israel', 'Israel');
        LocatorAddOption(cmbLocatorCountry, 'Jordan', 'Jordan');
        LocatorAddOption(cmbLocatorCountry, 'Kuwait', 'Kuwait');
        LocatorAddOption(cmbLocatorCountry, 'Lebanon', 'Lebanon');
        LocatorAddOption(cmbLocatorCountry, 'Qatar', 'Qatar');
        LocatorAddOption(cmbLocatorCountry, 'Saudi+Arabia', 'Saudi Arabia');
        LocatorAddOption(cmbLocatorCountry, 'Syria', 'Syria');
        LocatorAddOption(cmbLocatorCountry, 'Turkey', 'Turkey');
        LocatorAddOption(cmbLocatorCountry, 'United+Arab+Emirates', 'United Arab Emirates');
	      break;
	   case 7 : // Pacific Rim
	      LocatorAddOption(cmbLocatorCountry, 'Australia', 'Australia');
        LocatorAddOption(cmbLocatorCountry, 'Guam', 'Guam');
        LocatorAddOption(cmbLocatorCountry, 'Indonesia', 'Indonesia');
        LocatorAddOption(cmbLocatorCountry, 'New+Zealand', 'New Zealand');
        LocatorAddOption(cmbLocatorCountry, 'The+Philippines', 'The Philippines');
        LocatorAddOption(cmbLocatorCountry, 'Singapore', 'Singapore');
	      break;
   }
}

function LocatorAddOption(objSelectElement, value, text)
{
	var optionElement = document.createElement('OPTION');
	optionElement.text = text;
	optionElement.value = value;

	objSelectElement.options.add(optionElement);
}

function SearchFilter_OnClick()
{
   var filter = '';
   
   filter += AppendSearchFilterIfSelected(filter, document.getElementById('LocatorFilter1'));
   filter += AppendSearchFilterIfSelected(filter, document.getElementById('LocatorFilter2'));
   filter += AppendSearchFilterIfSelected(filter, document.getElementById('LocatorFilter3'));
   filter += AppendSearchFilterIfSelected(filter, document.getElementById('LocatorFilter4'));
   filter += AppendSearchFilterIfSelected(filter, document.getElementById('LocatorFilter5'));

   var url = window.location.href;
   url = url.substring(0, url.indexOf('&ts='));

   var ts = new Date();
   url += '&ts=' + ts.getTime()
     + '&filter=' + filter;

   window.location.href = url;
}

function AppendSearchFilterIfSelected(strFilterInput, objLocatorFilter)
{
   var returnValue = '';
   
   if( objLocatorFilter.checked )
   {
      if( strFilterInput.length > 0 )
      {
         returnValue += ',';
      }
      
      returnValue += objLocatorFilter.value;
   }
   
   return returnValue;
}

function IntializeLocatorFields()
{
   document.getElementById('cmbLocatorRegion').selectedIndex = 2;
   cmbLocatorRegion_OnChange();
   document.getElementById('cmbLocatorCountry').selectedIndex = 3;
}

function alternate(id)
{
	var table = document.getElementById(id);
	
	if( table )
	{
		var rows = table.getElementsByTagName("tr");
		for(i = 0; i < rows.length; i++){
			if(i % 2 == 0){
				rows[i].className = appendClassName(rows[i].className, 'even');
			}else{
				rows[i].className = appendClassName(rows[i].className, 'odd');
			}
		}
	}
}

function appendClassName(currentclass, newclass)
{
	if(currentclass.length > 0)
	{
		return currentclass + ' ' + newclass;
	} 
	else 
	{
		return newclass;
	}
}