//##############################################################################
//# Initialize

//# initialize Google map
if ('function' == typeof GoogleLoadMap)
{
  WHITE_AddLoadEvent(GoogleLoadMap);
}

function Main_Initialize()
{
  MAIN_SearchFormGoogleInit();
  
  var oForm = WHITE_GetElementFlex('searchform');
  if ('object' == typeof oForm)
  {
    WHITE_InitFieldExplanation('searchfield', '[trefwoord]');
    WHITE_AddEvent(oForm, 'submit', WHITE_FormRemoveEplanationsEvent);
  }
  var oFormPhotoActionSearch = WHITE_GetElementFlex('searchformphotoaction');
  if ('object' == typeof oFormPhotoActionSearch)
  {
    WHITE_InitFieldExplanation('searchfieldphotoaction', '[zoek op persoon]');
    WHITE_AddEvent(oFormPhotoActionSearch, 'submit', WHITE_FormRemoveEplanationsEvent);
  }
}

if ('function' == typeof WHITE_AddBodyLoadFunction)
{
  WHITE_AddBodyLoadFunction(Main_Initialize);
}

//# /Initialize
//##############################################################################
//# Search

function MAIN_SearchFormSubmit(oEvent)
{
  var oForm = WHITE_GetElementFlex('searchform');
  if ('object' == typeof oForm)
  {
    if ('object' == typeof pageTracker)
    {
      var oSearchBox = WHITE_GetElementFlex('searchfield');
      if ('object' == typeof oSearchBox && oSearchBox.value)
      {
        pageTracker._trackEvent('Search', 'Site search', oSearchBox.value);
      }
    }
  }
}

function MAIN_SearchFormGoogleInit()
{
  var oSearchForm = WHITE_GetElementFlex('searchform');
  WHITE_AddEventToElement(oSearchForm, 'submit', MAIN_SearchFormSubmit);
}

//# /Search
//##############################################################################
//# Show shop location

function showLocation(iLocation)
{
  /*### Hide all */
  var aShopLocations = WHITE_GetElementsByClass(document, 'shoplocation', 'div');
  for (var iEl=0;iEl<aShopLocations.length;iEl++)
  {
    var oShopLocation = aShopLocations[iEl];
    WHITE_AddClassName(oShopLocation, 'hidden');
  }

  /*### Show just one */
  var oLocationDiv = WHITE_GetElementFlex('locationdiv' + iLocation);
  if ('object' == typeof oLocationDiv)
  {
    WHITE_RemoveClassName(oLocationDiv, 'hidden');
  }
}

//# /Show shop location
//##############################################################################
//# Google maps

//<![CDATA[
function GoogleLoadMap() {
  var oGoogleMapDiv = WHITE_GetElementFlex('map');
  if ('object' == typeof oGoogleMapDiv)
  {
    if (GBrowserIsCompatible()) {
      var map = new GMap2(document.getElementById("map"));
      var point = new GLatLng(52.0647493636338, 4.3167043148838);

      map.setCenter(point, 13);
      map.addControl(new GSmallMapControl());
      map.addControl(new GMapTypeControl());
      map.setMapType(G_NORMAL_MAP);

      gdir = new GDirections(map, document.getElementById("directions"));
			GEvent.addListener(gdir, "load", onGDirectionsLoad);
      GEvent.addListener(gdir, "error", handleErrors);

      var marker = new GMarker(point);
      var html = "<b>MegaStores Den Haag<\/b><br \/>Van der Kunstraat 123<br \/>2521 BR Den Haag";
      GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); });

      map.addOverlay(marker);

      marker.openInfoWindowHtml(html);
    }
  }
}

function handleErrors(){
  if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	alert("Google heeft uw locatie niet kunnen vaststellen. De beste manier om de route te zoeken, is door het volgende formaat aan te houden: straatnaam nummer, plaats.");
	else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);

	else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);


	//   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
  //     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);

	else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

	else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);

	else alert("U heeft het veld 'van' leeg gelaten. Deze is vereist om een route te plannen");

}

function onGDirectionsLoad(){
}


function setDirections(fromAddress, locale) {
  gdir.load("from: " + fromAddress +" to: Van der Kunstraat 123, 2521 Den Haag",{ "locale": locale });
}

//]]>

/*############################################################################*/
/*# SNIP_SUNGLASS */

function Sunglass_Initialize()
{
  //# Defined sizes for popupdiv types
  var aPopupDivSizes = new Array;
  aPopupDivSizes['popup'] = new Array;
  aPopupDivSizes['popup']['width'] = 704;
  aPopupDivSizes['popup']['height'] = 462;
  document['aPopupDivSizes'] = aPopupDivSizes;

  //# Create sunglassdiv and add onclick events
  if ('function' == typeof SUNGLASS_CreateSunglassPopup)
  {
    SUNGLASS_CreateSunglassPopup();
  }
  //# Create close popup links
  if ('function' == typeof SUNGLASS_InitClosePopupWindow)
  {
    SUNGLASS_InitClosePopupWindow();
  }
}

if ('function' == typeof WHITE_AddWindowLoadFunction)
{
  WHITE_AddWindowLoadFunction(Sunglass_Initialize);
}
