var map;
var mapMarkers;

function GoogleMap()
{
  var myOptions = {
    zoom: 4,
    center: new google.maps.LatLng(48,-3.88),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  map = new google.maps.Map(document.getElementById('map'), myOptions);
	
	mapMarkers = new Array();	
}
	
 
function ClearMarkers()	
{
	for(var i=0; i<mapMarkers.length; i++)
	{
  	mapMarkers[i].setMap(null);
	}
	mapMarkers = undefined;
	mapMarkers = new Array();
}

function SetMenu(mode)
{
	document.getElementById('btnP').className='searchbutton';
	document.getElementById('btnD').className='searchbutton';
	document.getElementById('btnC').className='searchbutton';
	document.getElementById('btnM').className='searchbutton';

	switch (mode) 
	{
		case "P":  // Pictures
			document.getElementById("map").style.display="none";
			document.getElementById('btnP').className='selectedsearchbutton';
			break;
			
		case "D": // Details
			document.getElementById("map").style.display="none";
			document.getElementById('btnD').className='selectedsearchbutton';
			break;

		case "C": // Calender
			document.getElementById("map").style.display="none";
			document.getElementById('btnC').className='selectedsearchbutton';
			break;

		case "M": // Map
			document.getElementById("map").style.display="";
			document.getElementById('btnM').className='selectedsearchbutton';			
			break;

	}
	document.getElementById("searchresult").innerHTML="";				
	document.getElementById("searchbanner").innerHTML="<img src='/images/loading.gif' align='absmiddle'> Loading your search results - please wait";				

}

function SetViewMode(mode)
{
	document.getElementById("viewmode").value = mode
	RefreshDisplay();
}


function SetFilterMode(mode)
{
	document.getElementById("filtermode").value = mode
	switch (mode) 
	{
		case "B": 
			document.getElementById("filterbasic").style.display="none";
			document.getElementById("filteradvanced").style.display="";

			document.getElementById("pets").style.display="none";
			document.getElementById("features").style.display="none";
			document.getElementById("order").style.display="none";
			break;
			
		case "A": 
			document.getElementById("filterbasic").style.display="";
			document.getElementById("filteradvanced").style.display="none";

			document.getElementById("pets").style.display="";
			document.getElementById("features").style.display="";
			document.getElementById("order").style.display="";

			break;
	}
}

function SetStartDate($date) {
	document.form1.startdate.value = $date;
	return true;
}


function RefreshDisplay()
{

	SetMenu(document.getElementById("viewmode").value);
	
	var ajax = GetXmlHttpObject();
	if (ajax==null) {
	  alert ("Sorry your browser does not support AJAX!");
	  return;
	} 

	ajax.open("POST", "ajaxsearch.php", true);
	ajax.setRequestHeader('Content-type','application/x-www-form-urlencoded;charset=UTF-8;');
	ajax.onreadystatechange= function () {
		if ((ajax.readyState==4) && (ajax.status == 200))
		{
			if (document.getElementById("viewmode").value == "M") 
			{
				if (map == undefined) 
				{
					GoogleMap();
				}
				else
				{
					ClearMarkers();
				}
				document.getElementById("mapkey").style.display="";
				eval(ajax.responseText);
			}
			else
			{
				document.getElementById("mapkey").style.display="none";			
				document.getElementById("searchresult").innerHTML=ajax.responseText;
			}
			document.getElementById("searchbanner").innerHTML="Search Results";
			// document.getElementById("loading").style.display="none";
		}
	}

	postvars="configid=1";
	postvars+="&viewmode="+document.getElementById("viewmode").value;
	postvars+="&search_sleeps="+document.getElementById("search_sleeps").value;
	postvars+="&search_arrivaldate="+document.getElementById("search_arrivaldate").value;
	postvars+="&search_nights="+document.getElementById("search_nights").value;
	postvars+="&search_allowdogs="+document.getElementById("search_allowdogs").value;
	postvars+="&search_orderby="+document.getElementById("search_orderby").value;
	postvars+="&search_keyword="+document.getElementById("search_keyword").value;
	postvars+="&calendar_month="+document.getElementById("calendar_month").value;

  var e = document.getElementsByTagName("input");
	for (i=0;i<e.length;i++)
	{
		postvars+="&" + e[i].id + "=" + e[i].value;
	} 
	
	//document.getElementById("loading").style.display="";
	
	ajax.send(postvars);
	
} 
 

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try {
	  // Firefox, Opera 8.0+, Safari
	 xmlHttp=new XMLHttpRequest();
	} catch (e) {
	  // Internet Explorer
	  try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function FeatureToggle(feature) {
	var tag = document.getElementById("fe_"+feature.name);
	if (tag.value == 1) {
		tag.value = 0
		feature.style.MozOpacity = 0.2; 
		feature.style.filter = "alpha(opacity:20)";
		feature.style.KHTMLOpacity = 0.2;
		feature.style.opacity = 0.2;
	} else {
		tag.value = 1
		feature.style.MozOpacity = 1; 
		feature.style.filter = "alpha(opacity:100)";
		feature.style.KHTMLOpacity = 1;
		feature.style.opacity = 1;
	}
	RefreshDisplay();
}

function datePickerClosed(dateField)
{
  var dateObj = getFieldDate(dateField.value);
  var today = new Date();
  today = new Date(today.getFullYear(), today.getMonth(), today.getDate());
 
  if (dateField.name == "arrivaldate") {
    if (dateObj < today) {
      // if the date is before today, alert the user and display the datepicker again
//      alert("Please enter a date that is today or later");
      dateField.value = getDateString(today);
//      document.getElementById(datePickerDivID).style.visibility = "visible";
//      adjustiFrame();
    } else {
      // if the date is okay, set the EndDate field to 1 days after the StartDate
      dateObj.setTime(dateObj.getTime() + (1 * 24 * 60 * 60 * 1000));
      var endDateField = document.getElementsByName ("departuredate").item(0);
      endDateField.value = getDateString(dateObj);
    }
  }
	RefreshDisplay();
}

