var AccommodationLevel = 0, Accommodation_Total = 0 ;
var Accommodation_Top = 0, Accommodation_Bottom = 0, Accommodation_Left = 0, Accommodation_Right = 0 ;
var AccommodationLocation = new Array();
var ACM_IDChecked = false;
var AccommodationLine ;
var ACM_MatchLoc = 0 ;
var ACM_MatchPos = 0 ;
var acm_dragapproved = false ;
var ACM_Min_Level = 5;
var ACM_ID ;

var FacName = new Array("Direct Dial Telephones","Cable or Satellite Television","Video Movies","Swimming Pool on Premises","Queen Size Beds Available","Facilities For The Disabled","Facilities For The Disabled (With Assistance)","Conference / Function Facilities","Restaurant on Premises","Restaurant Within 150m","Liquor Licence or Bar","Non-Smoking Rooms Available","Bonus Points Participating Property","Internet Access","Environmentally Friendly");
var FacImg = new Array("direct","cable","video","swim","queen","disabled","disabled2","conf","resto","resto150","liquor","smoke","bonus","inet","env");

function InitiateAccommodation()
{
	AccommodationLevel = GM_Level ;
	Accommodation_GetDataList() ;
	AccommodationLine = new jsGraphics('AccommodationLineDiv');
	var ACM_DBMouse = document.getElementById('AccommodationDetailBox') ;
	ACM_DBMouse.onmousedown = ACM_DetailDrag ;
	ACM_DBMouse.onmouseup = new Function("acm_dragapproved=false") ;
}

function Accommodation_GetDataList()
{
	var TL = GM_ConvertPxToDeg(GM_Offset_Left,GM_Offset_Top);
	var BR = GM_ConvertPxToDeg(GM_Offset_Right,GM_Offset_Bottom);
	Accommodation_Top = TL.Y ;
	Accommodation_Bottom = BR.Y ;
	Accommodation_Left = TL.X ;
	Accommodation_Right = BR.X ;
	var URL = "/CommonLibrary/AU_Accommodation.php?t="+encodeURI(Accommodation_Top)+"&l="+encodeURI(Accommodation_Left)+"&r="+encodeURI(Accommodation_Right)+"&b="+encodeURI(Accommodation_Bottom)+"&Level="+GM_Level+"&Ref=" + encodeURI(Math.round(Math.random(0,1)*100000000000)) ;

	Accommodation_Global_Request("ListData",URL);
}

function CheckAccommodation() {
	AccommodationLevel = GM_Level ; 
//	if (AccommodationLevel >= ACM_Min_Level)
//	{
  	Accommodation_GetDataList();
  	//ACM_SetArrow();
//	}
}

function Accommodation_RequestDone(ID,http_request3) {
	var Data = Trim(http_request3.responseText) ;
	if (Data)
	{
		var Reg = /^DetailData_/ ;
		if (ID == 'ListData') {
			Accommodation_SaveDataList(Data);
			Accommodation_DisplayMenu();
			Accommodation_Check();
		} else {
			Accommodation_DisplayDetailData(Data);
		}
	}
}

function Accommodation_Global_RequestReady(ID,http_request2) {
 try 
 {
	if (http_request2.readyState == 4) {
		if (http_request2.status == 200) {
			Accommodation_RequestDone(ID,http_request2) ;
		} else {
			//alert('There was a problem with the data request. please refresh the page.');
		}
	}
 }catch(e) {}	
}

function Accommodation_Global_Request(ID,url) {
	var url_post = url;
	var url_send = null;
	if (url.indexOf('?')>0)
	{
		url_post = url.substring(0,url.indexOf('?'));
		url_send = url.substring(url.indexOf('?')+1);
	} else {
		url_post = url ;
		url_send = null ;
	}

	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function() { Accommodation_Global_RequestReady(ID,http_request) }
	if (url_send != null)
	{
		if (document.getElementById('XXX'))
		{
			var XXX = document.getElementById('XXX') ;
			XXX.innerHTML = url_post + "<br>" ;
			XXX.innerHTML += url_send ;
		}
		http_request.open('POST', url_post, true);
		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", url_send.length);
		http_request.setRequestHeader("Connection", "close");	
		http_request.send(url_send);
	} else {
		http_request.open('GET', url_post, true);
		http_request.send(url_send);
	}
}

function Trim(D) {
	if (D)
	{
		var Regex ;
		Regex = /\s*$/ ;
		D = D.replace(Regex,"");
		Regex = /^\s*/ ;
		D = D.replace(Regex,"");
	}
	return D ;
}

function NewAccommodation(ID)
{
	this.ID = ID;
}

function Accommodation_SaveDataList(Data)
{
	var D = Data.split("\n");
	Accommodation_Total = D.shift();

//	if (AccommodationLevel >= ACM_Min_Level)
//	{
	
  	for (var i=0; i<D.length; i++)
  	{
  		var T = D[i].split("\t");
  		var ID = T[0];
  		var Name = T[1];
  		var PX = GM_ConvertDegToPx(T[2],T[3]);
  		var XC = PX.X;
  		var YC = PX.Y;
  		
  		var Regex = /\D/ ;
  		var AccommodationLocID = ID ;
  		
  		if (!AccommodationLocation[AccommodationLocID])
  		{
  			AccommodationLocation[AccommodationLocID] = new NewAccommodation(AccommodationLocID) ;
  			AccommodationLocation[AccommodationLocID].X = PX.X ;
  			AccommodationLocation[AccommodationLocID].Y = PX.Y ;
  			AccommodationLocation[AccommodationLocID].Name = T[1] ;
  		}
  	}
//  }
}

function Accommodation_DisplayMenu()
{
//  alert(ACM_IDChecked);
	var W = document.getElementById('AccommodationCheck');
	var CAccommodation = (ACM_IDChecked)?"checked":"";
	var TAccommodation = (Accommodation_Total>0)?'<input id="AccommodationCheckBox" type="checkbox" onclick="Accommodation_Check()" '+CAccommodation+'> <img src="images/accommodation0.gif" align="absmiddle"> Accommodation ('+Accommodation_Total+')':'<b><img src=\"images/accommodation0.gif\" align=\"absmiddle\">Accommodation<br></a></b>';
	W.innerHTML = '<b>'+TAccommodation+'&nbsp;<img src=\"images/icon_new.gif\" align=\"absmiddle\"></b><br>';
}


function ViewAccommodationPoints()
{
  	var AL = document.getElementById('GM_DrawingLayer11');
  	AL.innerHTML = "" ;
    AL.zIndex = "99998";
    
  if (ACM_IDChecked) {
    for (var i in AccommodationLocation)
    {
	    var W = AccommodationLocation[i] ;
		 var Img = document.createElement('img');
		 Img.id = 'GM_ACM_' + W.ID ;
		 Img.name = Img.id ;
		 Img.src = "images/accommodation1.gif" ;
		 Img.LX = W.X ;
		 Img.LY = W.Y ;
		 Img.MyID = W.ID ;
		 Img.title = (W.S==0)?W.T:"" ;
		 Img.Detail = W.T;
		 Img.style.position = 'absolute' ;
		 Img.style.cursor = 'pointer' ;

//			     Img.style.top = Img.LY - Math.round(parseInt(Img.height)/2);
//			     Img.style.left = Img.LX - Math.round(parseInt(Img.width)/2);
			 //////// change to opera compatible //////////
			 Img.style.top = Img.LY - Math.round(parseInt(Img.height)/2) - GM_YCenter + 'px';
			 Img.style.left = Img.LX - Math.round(parseInt(Img.width)/2) - GM_XCenter + 'px';
			 ////////////////////////////////////////////////
		 Img.alt = 'Click To View Detail' ;

		 Img.onload = function() {
//				this.style.top = this.LY - Math.round(parseInt(this.height)/2);
//				this.style.left = this.LX - Math.round(parseInt(this.width)/2);
		//////// change to opera compatible //////////
		this.style.top = this.LY - Math.round(parseInt(this.height)/2) - GM_YCenter + 'px';
		this.style.left = this.LX - Math.round(parseInt(this.width)/2) - GM_XCenter + 'px';
		//////////////////////////////////////////////
		 }
//		 Img.zIndex = '10000';
		 Img.onmouseover = function() {
			  this.PrevZIndex = this.style.zIndex ;
//			  this.style.zIndex = '10000' ;
		}
		Img.onmouseout = function() {
			this.style.zIndex = this.PrevZIndex ;
		}
		Img.onclick = function() {
			ACM_MatchPos = 0 ;
			ACM_MatchLoc = this.MyID ;
			ACM_OpenDialogBox();
			ACM_GetDataDetail(this.MyID);
	//		ACM_SetArrow();
		}
		AL.appendChild(Img);
		Img = null ;			
    }
  }
}

function Accommodation_Check()
{	
  var Obj = document.getElementById('AccommodationCheckBox');
  
  if(Obj) {
	  var FN = eval("document.CurrentMap");
    if (Obj.checked)
    {
    	ACM_IDChecked = true ;
	    FN.accommodation.value = ACM_IDChecked;
//      if (AccommodationLevel < ACM_Min_Level) {
 //       	PanChangeLevel(ACM_Min_Level);
 //     }
    } else {
      ACM_IDChecked = false ;
	    FN.accommodation.value = "";
    }
    ViewAccommodationPoints();          
   } 
}

function ACM_GetDataDetail(ID) {
	var URL = "/CommonLibrary/AU_Accommodation.php?ID="+encodeURI(ID)+"&Ref=" + encodeURI(Math.round(Math.random(0,1)*100000000000)) ;
	Accommodation_Global_Request("DetailData_"+ID,URL);

}

function ACM_OpenDialogBox() {
	AccommodationLine.clear();
	var HTML = "<table title=\"Drag & Drop is Available For This Layer\" cellpadding=2 cellspacing=1 border=0 bgcolor=\"#000000\" width=400>";
	HTML += "<tr>";
	HTML += "<td class=content bgcolor=\"#D8DEED\">";
	HTML += "<table cellpadding=0 cellspacing=2 border=0 width=\"100%\">";
	HTML += "<tr>";
	HTML += "<td class=content align=\"right\"><a href=\"javascript: ACM_Close();\"><img src=\"images/prop_close.gif\" border=0></a></td>";
	HTML += "</tr>";
	HTML += "</table>";
	HTML += "</td>";
	HTML += "</tr>";
	HTML += "<tr>";
	HTML += "<td class=content bgcolor=\"#FFFFFF\" id=\"ACM_Tbl\">";
	HTML += "<style>";	
	HTML += ".font_w { color: #FFFFFF; font-size: 12px; };";
	HTML += "</style>";
	HTML += "<table cellpadding=2 cellspacing=2 border=0 width=\"100%\">";
	HTML += "<tr>";
	HTML += "<td valign=top class=content width=\"430px\" align=\"justify\" id=ACM_Det nowrap>LOADING... </td>";
	HTML += "</tr>";
	HTML += "</table>";
	HTML += "</td>";
	HTML += "</tr>";
	HTML += "</table>";
	var ACM_DB = document.getElementById('AccommodationDetailBox') ;
	ACM_DB.innerHTML = HTML ;

	ACM_DB.style.visibility = 'visible' ;
	ACM_DB.style.display = '' ;
	ACM_DB.style.zIndex = '100010' ;
	ACM_DB.style.left = document.getElementById('GenMapDiv').offsetLeft + document.getElementById('GM_ACM_' + ACM_MatchLoc).LX - GM_Offset_Left + 10 ;
	ACM_DB.style.top = document.getElementById('GenMapDiv').offsetTop + document.getElementById('GM_ACM_' + ACM_MatchLoc).LY - GM_Offset_Top + 10 ;

	if (parseInt(ACM_DB.style.left) + ACM_DB.clientWidth >=  window.screen.width-20)
	{
		ACM_DB.style.left = parseInt(ACM_DB.style.left) - ACM_DB.clientWidth - 38 ;
	}
	if (parseInt(ACM_DB.style.top) + ACM_DB.clientHeight >=  window.screen.height-180)
	{
		ACM_DB.style.top = parseInt(ACM_DB.style.top) - ACM_DB.clientHeight - 38 ;
	}
}

function Accommodation_DisplayDetailData(Data) {

	var ACM_D = document.getElementById('ACM_Det');	
	var ACM_Tb = document.getElementById('ACM_Tbl');	

	ACM_Tb.style.background="#FFFFFF";

	dataLine = Data.split('\t') ;
	var hotelID = dataLine[0] ;
	var hotelName = dataLine[1] ;
	var hotelAddress = dataLine[2] ;
	hotelStar = dataLine[3] ;
	hotelDesc = dataLine[4] ;
	

  var url = document.location.href;
  var regex = eval("/^(http(s)*)(:\\/\\/)(192.168.0.?)/");
  var ajaxServer = (regex.test(url))?"192.168.0.5":"www.street-directory.com.au";
  var imageURL = "http://"+ajaxServer+"/accommodation/";


	var star = Math.floor(hotelStar);
	if ((hotelStar % star) == 0)
	{
		star = "<img class=\"pngfix\" src= '" + imageURL + "images/"+hotelStar+"star.png' />";
	} else {
		 var tmpStar = star;
		 star = "";
		 for (var i=1;i<=tmpStar;i++ )
		 {
			 star += "<img class=\"pngfix\" src= '" + imageURL + "images/1star.png' /> ";
		 }
		 star += "<img class=\"pngfix\" src= '" + imageURL + "images/1star-half.png' />";
	}

	var hotelLink = imageURL + "hotel/" + hotelID ;
	var txt = star + "<br><a href='"+ hotelLink + "' style=\"color:#143E1D;text-decoration:none;padding-left:0px;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;font-weight:bolder;\"  ><b><u>" + hotelName + " </u></b></a><br><br>" + hotelAddress;
	var desc = hotelDesc + "<a href='"+ hotelLink + "' style=\"color:#143E1D;text-decoration:none;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;font-weight:bolder;\" ;'>&nbsp;<u>Read more</u>&nbsp;<a/>" + "|&nbsp;<a href='"+ hotelLink + "' style=\"color:#143E1D;text-decoration:none;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;font-weight:bolder;\" onclick='hotel_clk();'><u>Make booking</u><a/>";

	var img = "<img style=\"float: left; padding-right: 10px;\" src =\"" + imageURL + "imageGallery/"+ hotelID +"/hotel.jpg\" id = \"Hotel_img\" width=\"130\" height=\"110\">"; 
	ACM_D.innerHTML = img + txt + "<br><br>" + desc;

}

function ACM_Close() {
	var ACM_DB = document.getElementById('AccommodationDetailBox') ;
	ACM_DB.style.visibility = 'hidden' ;
	ACM_DB.style.display = 'none' ;
	ACM_DB.style.zIndex = '0' ;
	AccommodationLine.clear();
}

function ACM_DetailDrag(e) {
	acm_dragapproved=true;
	z = document.getElementById('AccommodationDetailBox');
	temp1=parseInt(z.style.left);
	temp2=parseInt(z.style.top);
	x = DD_nn6 ? e.clientX : event.clientX ;
	y = DD_nn6 ? e.clientY : event.clientY ;
	document.onmousemove=ACM_DetailMove;
}

function ACM_DetailMove(e) {
	if (acm_dragapproved){
		XMouseClick = DD_nn6 ? e.clientX : event.clientX ;
		YMouseClick = DD_nn6 ? e.clientY : event.clientY ;
		z.style.left=temp1+XMouseClick-x;
		z.style.top=temp2+YMouseClick-y;
		ACM_SetArrow();
		return false;
	}
}

function ACM_SetArrow() {
	AccommodationLine.clear();
	var ACM_DB = document.getElementById('AccommodationDetailBox') ;
	if (ACM_DB.style.visibility == 'visible')
	{
		var left = parseInt(ACM_DB.style.left);
		var top = parseInt(ACM_DB.style.top);
		var right = left + ACM_DB.clientWidth;
		var bottom = top + ACM_DB.clientHeight;
		
		var ICN = document.getElementById('GM_ACM_' + ACM_MatchLoc) ;

		var IconLeft = document.getElementById('GenMapDiv').offsetLeft + ICN.LX - GM_Offset_Left;
		var IconTop = document.getElementById('GenMapDiv').offsetTop + ICN.LY - GM_Offset_Top;

		var XB = (IconLeft > (left+right)/2)?right-1:left+1;
		var YB = (IconTop > (top+bottom)/2)?bottom-1:top+1;

		GM_SetLine(AccommodationLine,2,'#02287B',IconLeft,IconTop,XB,YB);
		GM_SetLine(AccommodationLine,1,'#D8DEED',IconLeft,IconTop,XB,YB);
		
		var ACM_DD = document.getElementById('AccommodationLineDiv');
		ACM_DD.style.zIndex = 10000000 ;

		if (!(ICN.LX >= GM_Offset_Left && ICN.LX <= GM_Offset_Right && ICN.LY >= GM_Offset_Top && ICN.LY <= GM_Offset_Bottom))
		{
			ACM_Close();
		}
	}
}

function symbolsAccommodation()
{
	window.open('symbolsAccommodation.html','SymbolsAccommodation','width=350, height=680, scrollbars=1');
}

function seeLargeAccommodation(img,wd)
{
	img = '/Clients/' + wd + '/ACM_Thumbs/' + img + '.jpg';
	window.open(img,wd,'width=800, height=600, scrollbars=1');
}

function showHideAccommodation()
{
	var DivAcmGroup = document.getElementById('AcmGroup');
	if (DivAcmGroup.style.display == "none")
	{
		DivAcmGroup.style.display = "";
		DivAcmGroup.style.visibility = "visible";
	} else {
		DivAcmGroup.style.display = "none";
		DivAcmGroup.style.display = "hidden";
	}
}
