var tmr_hotel;
var tmr_google;
var blconnectionOK=false;

function startGoogleConnection()
{
	blconnectionOK=true;
	tmr_google = setTimeout("alertGoogleConnectionTimeout()", 20*1000)
}

function alertGoogleConnectionTimeout()
{
	blconnectionOK=false;
	currentHotel =0;
	alert("connection failed!");

}

function startCalculating()
{

	if (arrHotels)
	{
		var from = elemById("cityname").value;
		var offCity = getOfficieelCity(from);
		from = offCity;
		var hotelImages = document.getElementById("hotelImages");
		hotelImages.style.display = "";
		var searchresult = document.getElementById("searchresult");
		searchresult.className = "searchresult_on_search";
		if (from)
		{
			if (from.length==0)
			{
				alert(msg_NO_CITY_PARAM);
				return;
			}
		}

		var ddlCity = cekddlCity();
		if (ddlCity == false)
		{
			alert(msg_NO_CITY_PARAM);
			return;
		}
		if (currentHotel != tempHotel.length)
		{
			var strMsg = msg_CALCULATING_DISTANCE.replace("#to#",tempHotel[currentHotel].name).replace("#from#", from);
			var strMsgWait = msg_WAIT;
			//"Calculating distance from <br /> "+from +" to <br /><b>"+ tempHotel[currentHotel].name+"</b> ...<hr class='hrb' />"
			$_("searchresult").innerHTML= strMsgWait;
			$_("searchresult").className="boeken_search_result";

			from = from +", NL";

			var to = tempHotel[currentHotel].zipcode + ", " +
			tempHotel[currentHotel].city + ", " +
			tempHotel[currentHotel].regio + ", NL"	;
			setDirections(from, to, "en_US");
		}
		else
		{
			//alert(msg_NOHOTELFOUND);
			currentHotel=0;
			displaySearchResult("");
		}
	}
}

function cekddlCity()
{
	var from = elemById("cityname").value;
	var ddlCity = elemById("ddlcity");

	if ((ddlCity.length == 0) && (from.length == 0))
	{
		return false;
	}
	if ((ddlCity.length == 0) && (from.length != 0))
	{
		return true;
	}
	if ((ddlCity.length != 0) && (from.length != 0))
	{
		for (var i=0; i < ddlCity.length; i++	)
		{
			if (ddlCity[i].value.toUpperCase() == from.toUpperCase())
			{
				return true;
			}
		}
	}
	return false;
}

function filterdistance(distance) {
   distance = parseInt(distance,10);

   // only distances <50 are added to the search results
   if (distance <= 50){
      // catch first element 
      if(arrDistance.length == 0 ) {
//alert(distance + " is first");
         arrDistance.push( [distance, tempHotel[currentHotel]] );
         return true;
      }

      // add to to front of array of distance < first item
      if (distance <= arrDistance[0][0]) {
//alert(distance + ' <= ' +arrDistance[0][0] + '!!');
         arrDistance.splice(0, 0, new Array(distance, tempHotel[currentHotel]));
         return true;
      }

      // find place in the array
      for( var _k=(arrDistance.length-1); _k>=0; _k-- ) {
         if( distance > arrDistance[_k][0] ) {
//alert(distance + ' > ' +arrDistance[_k][0] + '; pos: ' + _k);
            arrDistance.splice(_k+1, 0, new Array(distance, tempHotel[currentHotel]));
            return true;
         }
      }

      // finally: distance > largest item in array, append it.
      arrDistance[arrDistance.length] = new Array(distance, tempHotel[currentHotel]);
//alert('append: ' + distance);
      return true;
   }
}


function displaySearchResult(arrResult)
{
	var hotelImages = document.getElementById("hotelImages");
	var div_searchresult  = $_("searchresult");
	//clear prev result if any.
	var prev = div_searchresult.childNodes;
	for (i= prev.length-1; i>=0 ;i--)
	{
		removeNode(prev[i]);
	}
	clearTimeout(tmr_hotel);
	clearTimeout(tmr_google);

	if (arrResult.length==0)
	{
		spawnAndAdd (div_searchresult,"span", msg_NOHOTELFOUND);
		hotelImages.style.display = "";
	}
	else if (arrResult.length==1)
	{
		var id = new Number(arrResult[0][1].id)
		markCity(id);
		hotelImages.style.display = "none";
	}
	else
	{
		var span = spawnAndAdd (div_searchresult, "span", "Maak uw keuze");
		var tabel = spawnAndAdd(div_searchresult,"table");
		tabel.className="tabres";
		var tbody = spawnAndAdd(tabel,"tbody");

		//add by adit for shorter the distance
	//	arrResult.sort();
		
		var tr1 = spawnAndAdd(tbody,"tr");
		spawnAndAdd(tr1,"td"," ")
		var td = spawnAndAdd(tr1,"td",elemById("cityname").value);
		td.style.width='80px'
		for (i = 0; i < arrResult.length;i++)
		{
			var trx  = spawnAndAdd (tbody,"tr");

			var id=new Number(arrResult[i][1].id);
			trx.id=id;
			trx.link = arrResult[i][1].link
			trx.onclick=function()
			{
				markCity(this.id)
				//display the div tag
				var hotelImages = document.getElementById("hotelImages");
				if (hotelImages.style.display == "none")
				{
					hotelImages.style.display ="";
					var searchresult = document.getElementById("searchresult");
					searchresult.className = "";
				}
			}
			trx.onmouseover = function(){
				 tr_over(this);
			}
			trx.onmouseout = function()
			{
				tr_out(this);
			}
			trx.style.cursor="pointer";
			var n_distance= new Number(arrResult[i][0])
			td = spawnAndAdd(trx,"td")
			td.innerHTML = arrResult[i][1].name + ", " + arrResult[i][1].city
			td= spawnAndAdd(trx,"td", n_distance.round(1) +" km" )
			td.style.textAlign="right";
		}
		hotelImages.style.display = "none";
		//Change the height of div...
		var searchresult = document.getElementById("searchresult");
		searchresult.className = "searchresult_on_found";
	}

}

function markCity(hotel_id)
{	
	hotel_id= Number(hotel_id);
	var opti = $_("ddlhotel");
	//enablebutton(hotel_id)
	clearSearchResult();

	if(!hotel_id)
	{
		tmr_hotel = setTimeout("randomHotel()",5*1000);
		disableButton(false);
		return ;
	}
		//disableButton(true);
		clearTimeout(tmr_hotel);
	//change the selection
	for (i =0; i < opti.length;i++)
	{
		if (opti.options[i].value==hotel_id)
		{
			opti.options[i].selected=true;
			opti.selectedIndex=i;
			break;
		}

	}

	var lnk = arrHotels[hotel_id].link;
	document.location.href = 'http://www.amrathhotels.nl/' + lnk;
}

function checkDate(startDate)
{
	var retvalue=true;
	var fd=startDate.value.split("-");
	var startDate = new Date();
	var today = new Date();
	//today = new Date(today.getYear(),(today.getMonth()-1),today.getDay(),0,0,0);
	if(lng=="EN")
	{
		startDate.setDate(fd[1]);
		startDate.setMonth(parseInt(fd[0]-1));
		startDate.setFullYear(fd[2]);
	}
	else if(lng=="NL")
	{
		startDate.setDate(fd[0]);
		startDate.setMonth(parseInt(fd[1]-1));
		startDate.setFullYear(fd[2]);
	}
	if(startDate <= today)
	{
		retvalue=false;
	}
	return retvalue;
}

function tr_over(obj)
{
	obj.className = "searchresult_on_mouseover";
}
function tr_out(obj)
{
	obj.className = "searchresult_on_mouseout";
}
function markMap(hotel_id){
	hotel_id= Number(hotel_id);
	//make the dot
	var p = $_("kaartje");
	var arrA = elemsChilds(p)
	for (i=0; i < arrA.length;i++)
	{
		if (arrA[i].id == "dot_" + hotel_id)
			arrA[i].className="dot_map_selected";
		else
			arrA[i].className="dot_map";
	}
}

function displayHotelImage(id)
{
	var imgs = elemsByTag( "img", ($_("hotelImages")));
	var imgtext = elemsByTag( "div", ($_("hotelImages")));
	//alert(imgtext.length);
	
	for (i=0; i < imgs.length;i++)
	{
		if (imgs[i].id=="img_" + id)
		{
			imgs[i].style.display="block";
		} else {
			imgs[i].style.display="none";
		}
		
		if (imgtext[i].id=="imgtext_" + id)
		{
			imgtext[i].style.display="block";
		} else {
			imgtext[i].style.display="none";
		}
	}

}

function randomHotel()
{
	if (tempHotel)
	{
		var ranNum= Math.floor(Math.random()* tempHotel.length);
		var r_id = tempHotel[ranNum].id;
		markMap(r_id);
		displayHotelImage(r_id);
	}
	tmr_hotel = setTimeout("randomHotel()",5*1000);
}

function enablebutton(int_id){

		var meerinfo = elemById('meerinfo');
		var booken = elemById('booken');
		if (int_id)
			meerinfo.disabled =booken.disabled=false;
		else
			meerinfo.disabled =booken.disabled=true;

}
function clearSearchResult()
{
	var sr = $_("searchresult");
	var arrA = elemsChilds(sr)
	for (i=0; i < arrA.length;i++)
		removeNode(arrA[i]);
}

function disableButton(b)
{
	var meerinfo = document.getElementById("meerinfo");
	var booken = document.getElementById("booken");
	if (b == true)
	{
		meerinfo.style.visibility = "visible";
		booken.style.visibility = "visible";
	}
	else
	{
		meerinfo.style.visibility = "hidden";
		booken.style.visibility = "hidden";
	}
}

tmr_hotel = setTimeout("randomHotel()",5*1000);