function GetState(StateID) {
	var fn = eval("document.mapform");
	fn.reset();
	fn.method = 'get' ;
	fn.StateID.value = StateID;
	fn.submit();
}

function GetArea(StateID,RegionID,CouncilID,SuburbID) {
	var fn = eval("document.mapform");
	fn.reset();
	fn.StateID.value = StateID;
	fn.RegionID.value = RegionID;
	fn.CouncilID.value = CouncilID;
	fn.SuburbID.value = SuburbID;
	fn.submit();
}

function GetAmenity(StateID,RegionID,CouncilID,SuburbID,x,y,legend,AmenityType,Amenity,Radius,sortby,start) {
	var fn = eval("document.mapform");
	fn.reset();
	fn.StateID.value = StateID;
	fn.RegionID.value = RegionID;
	fn.CouncilID.value = CouncilID;
	fn.SuburbID.value = SuburbID;
	fn.x.value = x;
	fn.y.value = y;
	fn.legend.value =legend;
	fn.AmenityType.value = AmenityType;
	fn.Amenity.value = Amenity;
	fn.Radius.value = Radius;
	fn.sortby.value = sortby;
	fn.start.value = start;
	fn.submit();
}

function GetPosition(StateID,RegionID,CouncilID,SuburbID,x,y,star,heading,level,enlarge,circle,address) {
	var fn = eval("document.mapform");
	fn.reset();
	fn.StateID.value = StateID;
	fn.RegionID.value = RegionID;
	fn.CouncilID.value = CouncilID;
	fn.SuburbID.value = SuburbID;
	fn.x.value = x;
	fn.y.value = y;
	fn.star.value = star;
	fn.heading.value = heading;
	fn.level.value = level;
	fn.enlarge.value = enlarge;
	fn.circle.value = circle;
	fn.address.value = address;
	fn.submit();
}

function logToDatabase(idLog,clickedResult) {
	window.location="logClickedResult.php?idLog="+idLog+"&clickedResult="+clickedResult;
	return false;
}

function GetAddress(StateID,RegionID,CouncilID,SuburbID,FrmStateID,StreetNo,StreetName,StreetType,Suburb,PostCode,AdvancedSearch,sortby,start,similar,exact) {
	var fn = eval("document.addressform");
	fn.reset();
	fn.StateID.value = StateID;
	fn.RegionID.value = RegionID;
	fn.CouncilID.value = CouncilID;
	fn.SuburbID.value = SuburbID;
	fn.FrmStateID.value = FrmStateID;
	fn.StreetNo.value = StreetNo;
	fn.StreetName.value = StreetName;
	fn.StreetType.value = StreetType;
	fn.Suburb.value = Suburb;
	fn.PostCode.value = PostCode;
	fn.AdvancedSearch.value = AdvancedSearch;
	fn.sortby.value = sortby;
	fn.start.value = start;
	fn.similar.value = similar;
	fn.exact.value = exact;
	fn.submit();
}

function GetBusiness(StateID,RegionID,CouncilID,SuburbID,SearchName,SearchBy,Suburb,State,SurroundSuburb,sortby,AdvancedSearch) {
	var fn = eval('document.businessform');
	fn.reset();
	fn.StateID.value = StateID;
	fn.RegionID.value = RegionID;
	fn.CouncilID.value = CouncilID;
	fn.SuburbID.value = SuburbID;
	fn.SearchName.value = SearchName;
	fn.SearchBy.value = SearchBy;
	fn.Suburb.value = Suburb;
	fn.State.value = State;
	fn.SurroundSuburb.value = SurroundSuburb;
	fn.sortby.value = sortby;
	fn.AdvancedSearch.value = AdvancedSearch;
	fn.submit();
}

function NearbyBusiness(AmenityType,Amenity,Radius,StateID,RegionID,CouncilID,SuburbID,x,y,legend,sortby,brand,operationhour,productservices,paymentmethods,keywords) {
	var fn = eval('frmNearbyBusiness');
	fn.reset();
	fn.AmenityType.value = AmenityType;
	fn.StateID.value = StateID;
	fn.RegionID.value = RegionID;
	fn.CouncilID.value = CouncilID;
	fn.SuburbID.value = SuburbID;
	fn.x.value = x;
	fn.y.value = y;
	fn.legend.value = legend;
	fn.sortby.value = sortby;
	fn.brand.value = brand;
	fn.operationhour.value = operationhour;
	fn.productservices.value = productservices;
	fn.paymentmethods.value = paymentmethods;
	fn.keywords.value = keywords;
	fn.Amenity.value = Amenity;
	fn.Radius.value = Radius;
	fn.submit();
}

function Legend(LegendURL) {
	MapLegend = window.open(LegendURL, "LegendWindow", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=720,height=500");
	MapLegend.focus();
}

function GetBusinessData(StateID,RegionID,CouncilID,SuburbID,SearchName,SearchBy,SearchWhere,State,SurroundSuburb,Force,Location) {
	var fn = eval("frmSearchBusiness");
	fn.reset();

	fn.StateID.value = StateID;
	fn.RegionID.value = RegionID;
	fn.CouncilID.value = CouncilID;
	fn.SuburbID.value = SuburbID;
	fn.SearchName.value = SearchName;
	fn.SearchBy.value = SearchBy;
	fn.SearchWhere.value = SearchWhere;
	fn.State.value = State;
	fn.SurroundSuburb.value = SurroundSuburb;
	fn.Force.value = Force;
	fn.Location.value = Location;

	fn.submit();
}

function GetCommunityData(StateID,RegionID,CouncilID,SuburbID,SearchName,SearchBy,SearchWhere,State,SurroundSuburb,Force,Location) {
	var fn = eval("frmSearchCommunity");
	fn.reset();

	fn.StateID.value = StateID;
	fn.RegionID.value = RegionID;
	fn.CouncilID.value = CouncilID;
	fn.SuburbID.value = SuburbID;
	fn.SearchName.value = SearchName;
	fn.SearchBy.value = SearchBy;
	fn.SearchWhere.value = SearchWhere;
	fn.State.value = State;
	fn.SurroundSuburb.value = SurroundSuburb;
	fn.Force.value = Force;
	fn.Location.value = Location;

	fn.submit();
}

function CloseWindow() {
	window.close();
}


function cNum(e) {
	var strCheck = '0123456789\b\t	';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	if (whichCode == 0 || whichCode == 13)
	{
		return true ;
	}
	key = String.fromCharCode(whichCode);  // Get key value from key code
	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
}

function CheckDatebyMonthYear(FormName,DForm,MForm,YForm) {
	var SD = eval("document."+FormName+"."+DForm);
	var SM = eval("document."+FormName+"."+MForm);
	var SY = eval("document."+FormName+"."+YForm);

	var TDD = SD.options[SD.options.selectedIndex].value ;
	var TDM = SM.options[SM.options.selectedIndex].value ;
	var TDY = SY.options[SY.options.selectedIndex].value ;

	var LongDate = (TDM==1 || TDM==3 || TDM==5 || TDM==7 || TDM==8 || TDM==10 || TDM==12)?31:30;
	if (TDM == 2)
	{
		LongDate = (TDY%4==0)?29:28;
	}
	while (SD.options.value)
	{
	   SD.options[0] = null ;
	}
	var j = 0 ;
	for (var i=1;i<=LongDate ;i++ )
	{
		var ValI = i ;
		ValI = (ValI<10)?"0"+i:i;
		SD.options[j] = new Option(SD,SD,true,true,true) ;
	    SD.options[j].text = i ;
	    SD.options[j].value = ValI ;
		j++;
	}
	if (TDD <= LongDate)
	{
		SD.options[TDD-1].selected = true ;
	} else {
		SD.options[j-1].selected = true ;
	}
}


function GoCustomDateNew(FormName,DForm,MForm,YForm,DD,MM,YY,CurY,LowY,UpY) {
	var SD = eval("document."+FormName+"."+DForm);
	var SM = eval("document."+FormName+"."+MForm);
	var SY = eval("document."+FormName+"."+YForm);
	if (DD == 0 || MM == 0 || YY == 0)
	{
		var a = new Date ;
		TDD = a.getDate() ;
		TMM = a.getMonth() + 1 ;
		TYY = a.getFullYear() ;
	} else {
		TDD = DD ;
		TMM = MM ;
		TYY = YY ;
	}
	var MonthName = new Array () ;
	MonthName[1] = "Jan" ;
	MonthName[2] = "Feb" ;
	MonthName[3] = "Mar" ;
	MonthName[4] = "Apr" ;
	MonthName[5] = "May" ;
	MonthName[6] = "Jun" ;
	MonthName[7] = "Jul" ;
	MonthName[8] = "Aug" ;
	MonthName[9] = "Sep" ;
	MonthName[10] = "Oct" ;
	MonthName[11] = "Nov" ;
	MonthName[12] = "Dec" ;
	var Sel = 0 ;
	var j = 0 ;
	for (var i=(CurY-LowY); i<=(CurY+UpY); i++ )
	{
		SY.options[j] = new Option(SY,SY,true,true,true) ;
	    SY.options[j].text = i ;
	    SY.options[j].value =  i ;
		if (i == TYY)
		{
			Sel = j ;
		}
		j++;
	}
	SY.options[Sel].selected = true ;

	j = 0 ;
	for (var i=1;i<=12 ;i++ )
	{
		var ValI = i ;
		ValI = (ValI<10)?"0"+i:i;
		SM.options[j] = new Option(SM,SM,true,true,true) ;
	    SM.options[j].text = MonthName[i] ;
	    SM.options[j].value = ValI ;
		if (i == TMM)
		{
			Sel = j ;
		}
		j++;
	}
	SM.options[Sel].selected = true ;

	var LongDate = (TMM==1 || TMM==3 || TMM==5 || TMM==7 || TMM==8 || TMM==10 || TMM==12)?31:30;
	if (TMM == 2)
	{
		LongDate = (TYY%4==0)?29:28;
	}
	j = 0 ;
	for (var i=1;i<=LongDate ;i++ )
	{
		var ValI = i ;
		ValI = (ValI<10)?"0"+i:i;
		SD.options[j] = new Option(SD,SD,true,true,true) ;
	    SD.options[j].text = i ;
	    SD.options[j].value = ValI ;
		if (i == TDD)
		{
			Sel = j ;
		}
		j++;
	}
	SD.options[Sel].selected = true ;
}

function LTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

function RTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }

   return s;
}

function Trim(str)
{
   return RTrim(LTrim(str));
}

function SubmitEventSearch() {
	if (CheckSearchEventForm())
	{
		document.QSearchEventForm.submit();
	}
}

function CheckSearchEventForm() {
	var FN =  eval("document.QSearchEventForm");
	FN.Keyword.value = Trim(FN.Keyword.value) ;
	if (!FN.Keyword.value)
	{
		alert("Please key in Event Title or Keyword");
		return false ;
	} else if (!FN.State.value)
	{
		alert("Please select state a state");
		return false;
	}
	return true ;
}

function GetEventData(IDs,Txt,StID,ReID,CoID,SuID) {
	var FN =  eval("document.ForceEventList");
	FN.State.value = StID ;
	FN.StateID.value = StID ;
	FN.RegionID.value = ReID ;
	FN.CouncilID.value = CoID ;
	FN.SuburbID.value = SuID ;
	if (IDs==3)
	{
		FN.SuburbList.value = SuID ;
	} else if (IDs==2) {
		FN.CouncilList.value = CoID ;
	} else if (IDs==1) {
		FN.RegionList.value = ReID ;
	}


	FN.MatchText.value = Txt ;
	FN.submit();
}

function CheckSrAr() {
	if (!document.QSearchEventForm.SearchWhere.value)
	{
		document.QSearchEventForm.SrAr.checked = false;
	}
}


function OpenHelp(URL) {
	var HelpWin = window.open(URL,"HWin","width=600,height=400,status=no,scrollbars=yes,resizable=yes");
	HelpWin.focus();
}

function EmailValidation(Email) {
var result = true ;
	var Regex = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/ ;
return Regex.test(Email) ;
}

function OpenFile(WinLocation,WinName,WinWidth,WinHeight) {
	var Condition = "width="+WinWidth+",height="+WinHeight+", scrollbars=yes, status=no, resizable=yes" ;
	var NewWind = window.open(WinLocation,WinName,Condition);
	NewWind.focus();
}

function popUp(el)
{
    window.open(el.href);
}

var AddressPointerLine;

function drawAddressPointer(Lon,Lat,address) {

	 AddressPointerLine = new jsGraphics('AddressPointerLineDiv');

	var PX = GM_ConvertDegToPx(Lon, Lat);

    var WL = document.getElementById('GM_DrawingLayer12');
//    WL.innerHTML = "" ;

	var Img = document.createElement('img');
	Img.id     = 'GM_AddressMatch'  ;
	Img.name   = Img.id ;
	Img.src = "images/sv-still.png";
	Img.LX     = PX.X ;
	Img.LY     =PX.Y ;
	Img.address = address;
	Img.style.position = 'absolute' ;
	Img.style.cursor = 'pointer' ;

	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.onload = function() {
		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.onclick = function() {
		AddressPointer_OpenDialogBox();
		AddressPointer_SetArrow();
	}
	
	WL.appendChild(Img);
	Img = null ;
	
}

function AddressPointer_OpenDialogBox() {

	AddressPointerLine.clear();

	address = document.getElementById('GM_AddressMatch').address.split(",");
	
	var HTML = "<table title=\"Drag & Drop is Available For This Layer\" cellpadding=2 cellspacing=1 border=0 bgcolor=\"#000000\" width=300>";
	HTML += "<tr><td class=content bgcolor=\"#D8DEED\">";
	HTML += "<table cellpadding=0 cellspacing=2 border=0 width=\"100%\"><tr>";
	HTML += "<td class=content><b>Location:</b></a></td>";
	HTML += "<td align=center style=\"color: #02287B; font-weight: bold;\" class=content width=\"100%\" id=Prop_Det_Number></td>";
	HTML += "<td class=content><a href=\"javascript: AddressPointer_Close();\"><img src=\"images/prop_close.gif\" border=0></a></td>";
	HTML += "</tr></table>";
	HTML += "</td></tr>";
	HTML += "<tr><td class=content bgcolor=\"#FFFFFF\">";
	HTML += "<table cellpadding=2 cellspacing=2 border=0 width=\"100%\" height=\"80px\">";
	HTML += "<tr><td nowrap valign=top align=left class=content id=Prop_Det_Left>"+ address[0] +"<br />" + address[1] +"</td></tr>";
	HTML += "<tr><td class=content bgcolor=\"#FFFFFF\">";
	HTML += "<a href=\"javascript:AddressMatch_SvCheck();\">Streetview</a>";
	HTML += "</td></tr>";
	HTML += "</table>";
	HTML += "</td></tr>";
	HTML += "</table>" ;

	var PDB = document.getElementById('AddressPointerDetailBox') ;
	PDB.onmousedown = AddressPointer_DetailDrag ;
	PDB.onmouseup = new Function("dragapproved=false") ;
	PDB.innerHTML = HTML ;

	PDB.style.visibility = 'visible' ;
	PDB.style.display = '' ;
	PDB.style.zIndex = '99999' ;
	PDB.style.left = document.getElementById('GenMapDiv').offsetLeft + document.getElementById('GM_AddressMatch').LX - GM_Offset_Left + 10 ; 
	PDB.style.top = document.getElementById('GenMapDiv').offsetTop + document.getElementById('GM_AddressMatch').LY - GM_Offset_Top + 10 ;
  
	if (parseInt(PDB.style.left) + PDB.clientWidth >=  window.screen.width-20)
	{
		PDB.style.left = parseInt(PDB.style.left) - PDB.clientWidth - 38 ;
	}
	if (parseInt(PDB.style.top) + PDB.clientHeight >=  window.screen.height-180)
	{
		PDB.style.top = parseInt(PDB.style.top) - PDB.clientHeight - 38 ;
	}
}

function AddressPointer_Close() {
	var PDB = document.getElementById('AddressPointerDetailBox') ;
	PDB.style.visibility = 'hidden' ;
	PDB.style.display = 'none' ;
	PDB.style.zIndex = '0' ;
	AddressPointerLine.clear();
}

function AddressPointer_DetailDrag(e) {
	dragapproved=true;
	z= document.getElementById('AddressPointerDetailBox');
	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=AddressPointer_DetailMove;
}

function AddressPointer_DetailMove(e) {
	if (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;
		AddressPointer_SetArrow();
		return false;
	}
}


function AddressPointer_SetArrow() {
	AddressPointerLine.clear();
	
	var PDB = document.getElementById('AddressPointerDetailBox') ;
	if (PDB.style.visibility == 'visible')
	{
		var left = parseInt(PDB.style.left);
		var top = parseInt(PDB.style.top);
		var right = left + PDB.clientWidth;
		var bottom = top + PDB.clientHeight;
		
		var ICN = document.getElementById('GM_AddressMatch') ;
		
		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(AddressPointerLine,2,'#02287B',IconLeft,IconTop,XB,YB);
		GM_SetLine(AddressPointerLine,1,'#D8DEED',IconLeft,IconTop,XB,YB);
	
		var PDD = document.getElementById('AddressPointerLineDiv');
		PDD.style.zIndex = 10000000 ;

		if (!(ICN.LX >= GM_Offset_Left && ICN.LX <= GM_Offset_Right && ICN.LY >= GM_Offset_Top && ICN.LY <= GM_Offset_Bottom))
		{
			AddressPointer_Close();
		}
	}
}

function AddressMatch_SvCheck () {

	var Obj = document.getElementById('Streetview_checkbox');
	
	if (!Obj.checked)
	{
		Obj.checked = true;
	}

	var SV_CV_X = document.getElementById('GM_AddressMatch') .LX;
	var SV_CV_Y = document.getElementById('GM_AddressMatch') .LY;
		
	AddressPointer_Close();
	document.getElementById('GM_DrawingLayer12').innerHTML = "";
	Street_PropCheck();
    SV_updateCenterViewIconByPixel(SV_CV_X, SV_CV_Y);
    SV_moveCenterViewToNearestPoint();
	
}