var totalMenu=0;
var vertObjAry=Array();
var lastJSRS="";
var resultPerpage=5;
var currentPage=1;
var ispoly = 0;
var checkedMLNUMS = Array();

window.addEvent('domready', function() {
	var status = {
		'true': 'open',
		'false': 'close'
	};
	var mydivs=document.getElementsByTagName("div");
	$A($$('div')).each(function(el){if(el.id.indexOf("menuslide")==0)addSlideEvent(el.id);});});


function addSlideEvent(divID){
	totalMenu++;
	var myVerticalSlide = new Fx.Slide(divID);
	vertObjAry.push(myVerticalSlide);
	var divTab='mytabber_'+divID;
	//alert(divTab);
	$(divTab).addEvent('click', function(e){
		e.stop();
	closeAllTab(myVerticalSlide);	

	});
	if(divID !=="menuslide1" ){
		myVerticalSlide.hide();
	}
	myVerticalSlide.addEvent('complete', function() {
	
	}
	);
	
}

function closeAllTab(iObj){
	//alert(iObj);
	for(var i=0;i<vertObjAry.length;i++){
	//	alert(i);
		if(iObj!=vertObjAry[i]){
		vertObjAry[i].slideOut();
		}
	}
	iObj.toggle();
}

function showMore(sDiv,hDiv){
	if(sDiv=="mainmenu" && lastJSRS!==""){
		$("prevsearchid").innerHTML="<input type=button value='results&raquo;' onclick=\"showMore('resultmenu','mainmenu')\">";	
	}
	
	$(sDiv).style.display='';
	$(hDiv).style.display='none';
	
	
}

function getMapParam(){
		var myMap = map.GetMapView();
		myzoomlevel  = map.GetZoomLevel();
		thismapcenter = map.GetCenter();
		//var latitude = latLongTokens[index].split(',')[0];
		topLeftLat = myMap.TopLeftLatLong.Latitude;
		topLeftLong = myMap.TopLeftLatLong.Longitude;
		bottomRightLat =myMap.BottomRightLatLong.Latitude;
		bottomRightLong = myMap.BottomRightLatLong.Longitude;
		url ='';
		url = url.concat('&NElat=');
		url = url.concat(topLeftLat);
		
		url = url.concat('&NElng=');
		url = url.concat(topLeftLong);
		
		url = url.concat('&SWlat=');
		url = url.concat(bottomRightLat);
		
		url = url.concat('&SWlng=');
		url = url.concat(bottomRightLong);
		url = url.concat('&ispoly=0');
//	alert(url);
	return(url);
}
//instead using Json, use Ajax call here
function submitSearch(fObj){
	currentPage=1;
	populateHTML('<img src="/images/loading.gif"/> &nbsp;<b>Searching...</b>')
	showMore('resultmenu','mainmenu');
	//build the forms
	var mapurl;
	var surl=getFormParam(fObj);
	
	if(ispoly != 1){
	mapurl = getMapParam();
	}else{
		mapurl = polyurl;
		}
		
	var url="getSearchResult.cfm";
	url= url+surl+mapurl;

	checkedMLNUMS = new Array();
	map.DeleteAllShapes();
	CallToGetList(url, icon);
	

}



function compfrmreturn( actionname){
	//alert(actionname);
// require that at least one checkbox be checked
	//	var commid = document.getElementById('commid').value;

		var checkSelected = false;
		var checkCounter = 0;
	//	var listMLNUM ='';
		var myinnerhtml = $("resultContent").innerHTML;
		
		if(checkedMLNUMS.length>0){
			checkSelected = true;
			//alert(checkedMLNUMS)
		}else{
			alert("Please select at least one of the listings.");
			}
		
			
		if (checkCounter > 8){
			alert("You are only allowed to select up to 8 lisitng.\n Please uncheck one or some of your selection in order to select more.");
			
		}
		
		
	//	alert(listMLNUM);
		if(checkSelected && checkCounter <= 8 ){
			
			if(actionname =='Compare'){
				win=window.open('http://search.har.com/engine/dispSetMycartTransit.cfm?listmlnum='+checkedMLNUMS, 'myWin','width=960,height=900,scrollbars=yes,resizable=yes,left:0px, top:0px'); 
			//	document.sidesearch.target='myWin';
			//	document.sidesearch.action='http://search.har.com/engine/dispSetMycartTransit.cfm'
		
			 }else {
				win=window.open('http://www.har.com/MapSearch/doMapPopup.cfm?listmlnum='+checkedMLNUMS, 'myWin','width=720,height=900,scrollbars=yes,resizable=yes,left:0px, top:0px'); 
			 }
		//	 document.sidesearch.submit();
			
		}
	
} 



function changePage(toPage){
	currentPage=toPage;
	//processResults(lastJSRS);
	processResultsinArray();
}


// use this function to parse pre constructed Array to process the map points from javascript func
function processResultsinArray(){
	//alert(mapPoints.length);  
	var outputHTML="<div>";
//	alert(mapPoints.length);
//alert(totalcnt);
	if(totalcnt >0){
			
			var totPage=Math.ceil(mapPoints.length/resultPerpage);
			var startI=(currentPage-1)*resultPerpage;
			var endI=startI+resultPerpage;
			//alert('totPage:'+totPage + 'currentPage:' + currentPage);
			var status;
			var myprice;
			var mydetailpage;
		//	outputHTML += "<div id='resultItem_999'>To view the property on the map, mouse over or click on the property photo.</div>";
			outputHTML += "<div id='resultItem_999'><span style='color:#db2020;font-size:12px;'>"+ totalcnt +"</span> listings found.  To view the property on the map, mouse over or click on the property photo.</div>";
			outputHTML+=genPaging(totPage,currentPage);
			
			for(var i=startI;i<endI;i++){
				try{
				status = mapPoints[i].PropStatus;
				if(status =='Closed'){
					//myprice= mapPoints[i].soldRange;
					myprice= mapPoints[i].pPrice;
					mydetailpage = 'http://www.har.com/HomeValue/';
					}else {			
					myprice= mapPoints[i].pPrice;
					mydetailpage = 'http://search.har.com/engine/';
					}
			
				
				outputHTML+="<div id='resultItem_"+i+"' class='resultColumn' onmouseover=\"changeClass(this,'resultColumnOver');\" onmouseout=\"changeClass(this,'resultColumn')\"><div class='leftimage' id=\'sideBarMarker_'" + mapPoints[i].shapid+ "'\'  onclick=\"mouseOverSidebarItem(\'" + mapPoints[i].shapid + "');\"  onmouseover=\"mouseOverSidebarItem(\'" + mapPoints[i].shapid + "');\" onmouseout=\"mouseOutSidebarItem(\' "+  mapPoints[i].shapid + "');\"><a href='"+mydetailpage+mapPoints[i].address.replace(/ /g, '-')+"-"+mapPoints[i].city.replace(/ /g, '-')+ "-"+mapPoints[i].zipcode +"_HAR"+mapPoints[i].mlnum +".htm' target='_blank'><img src='"+mapPoints[i].image+"' width=60 height=50></a></div><div class='rightinfo'><div id='addressinfo'> <input type='checkbox' id='listingItems' name='listingItems' value='"+mapPoints[i].mlnum+"'  onclick=\"seeIfSelected('"+mapPoints[i].mlnum  + "','"+i +"')\" style='position:relative;' >&nbsp;"+mapPoints[i].address+"</div>";
				outputHTML+="<div id='priceText' >"+myprice+"</div><div id='otherText' >"+mapPoints[i].bed+" Bed / "+mapPoints[i].bath+" Bath</div><div class='smBlue' style='width:135px;float:left'><a href='"+mydetailpage+mapPoints[i].address.replace(/ /g, '-')+"-"+mapPoints[i].city.replace(/ /g, '-')+ "-"+mapPoints[i].zipcode +"_HAR"+mapPoints[i].mlnum +".htm' target='_blank'>View Detail</a></div></div><div style='clear:both;'></div></div>";
				
		
				}
				
				catch(err){
					//ignore overindex	
				}
				
					
				//object constructed
				//mapPoints[index] ={"latitude": latitude,"longitude", "address": address,"mlnum":mlnum, "property_class_id":pid,"propclass": propclass, "bed":bed,"bath":bath,"zipcode":zip,"city":city,"image":image, "PropStatus":PropStatus, "pPrice":pPrice,"sqft":sqft, "shapid":currentMarkerID,"soldRange":soldRange};
				
			}
			outputHTML+=genPaging(totPage,currentPage);
		}else if (totalcnt == 0){
			  outputHTML += "<span style='color:#ff0000;font-size:12px;'>No search results found <br><span style='color:#2059A5;font-size:12px;'><a href=\"javascript:void()\" onclick=\"showMore('mainmenu','resultmenu');\">Click here or &laquo;Back button to revise your search</a></span>" + "</div>";
		}
	
	populateHTML(outputHTML);
	containsvalcheck();
	if(status =='Closed'){
		disablecombox();
	}
}
function disablecombox(){
	var resultobj = $$('input');
	//	alert(currentPage);
	for (var j = 3;  j < 8;  j++){
		if (resultobj[j].type == "checkbox" ){
			resultobj[j].disabled  = true;
		}
	}
}
function containsvalcheck(){
	//alert("checking: " + mval + 'array: '+checkedMLNUMS);
	var resultobj = $$('input');
	//	alert(currentPage);
	if(checkedMLNUMS.length > 0){
		for (var j = 3;  j < 8;  j++){
			for (var m =0; m<=checkedMLNUMS.length;m++){
				if (resultobj[j].type == "checkbox" ){
				//	alert(resultobj[j].value+': '+ checkedMLNUMS[m] );
					if (findinArray(checkedMLNUMS,resultobj[j].value) ){
					
					//	alert(resultobj[j].value+': '+ checkedMLNUMS );
						resultobj[j].checked = true;
					}
				}
			}
			
		}
	}

}
function seeIfSelected(val,i){
	//alert(val + "," + i);
	var resultobj = $$('input');
	//	alert(currentPage);
	var currentPage = parseInt(currentPage);

	for (var j = 3;  j < 8;  j++){
			if (resultobj[j].name =='listingItems' && resultobj[j].checked && resultobj[j].value == val){
			//	alert(resultobj[j].value);
			//	alert(checkedMLNUMS.length);
				if(checkedMLNUMS.length <= 7){
					checkedMLNUMS.push(val);
				}else{
						alert('You can only select up to 8 listings to compare or map it');
						resultobj[j].checked = false;
				}
			
			}
			if (resultobj[j].name =='listingItems' && ! resultobj[j].checked && resultobj[j].value == val){
				//alert("will remove " + val);
				checkedMLNUMS = removeItems(checkedMLNUMS, val);
				//alert("after remove: " + checkedMLNUMS.join(", "));
			}
		}
		//alert(checkedMLNUMS);
	
}

function findinArray(array, item) {
	//alert(item);
	var i = 0;
	while (i < array.length) {
		if (array[i] == item) {
			//alert(item);
			return true;
		} else {
		i++;
		}
	}

}

function removeItems(array, item) {
	var i = 0;
	while (i < array.length) {
		if (array[i] == item) {
		array.splice(i, 1);
		} else {
		i++;
		}
	}
return array;
}



function gotodetail(mynum){
	
	win=window.open('http://search.har.com/engine/dispSearch.cfm?mlnum='+mynum, 'myWin','width=960,height=900,scrollbars=yes,resizable=yes,left:0px, top:0px'); 
	}
function genPaging(totPage,curpage){
	var tempHTML="<div id='myminipaging'>Page: ";
	for(var b=1;b<=totPage;b++){
		if(b!=curpage){
			tempHTML+="<a href='javascript:void(0);' onclick='changePage("+b+");'>"+b+"</a> ";
		}else{
			tempHTML+=""+b+" ";
		}
	}
	tempHTML+="</div>";
	return tempHTML;
}


function populateHTML(sHTML){
		$("resultContent").innerHTML=sHTML;
}

function getFormParam(obj) {
      var getstr = "?All=1";
	  //alert(obj.elements.length);
	  var myName= '';
      for (i=0; i<obj.elements.length; i++) {
		
         if (obj.elements[i].tagName == "INPUT") {
           if (obj.elements[i].type == "hidden" ) {
		//	alert(obj.elements[i].name + ":" + obj.elements[i].value);
              getstr += "&"+obj.elements[i].name + "=" + obj.elements[i].value ;
           }
			
            if (obj.elements[i].type == "checkbox") {
				if(obj.elements[i].name == 'PROPERTY_CLASS_ID' || obj.elements[i].name == 'PROP_TYPE'){
					if (obj.elements[i].checked) {
						if(myName != obj.elements[i].name){
							myName = obj.elements[i].name;
							getstr += "&" + obj.elements[i].name+"=" ;
							 if (obj.elements[i].checked) {
							  getstr +=  obj.elements[i].value ;
							} 	
						}else{
							  getstr +=   "," + obj.elements[i].value ;
						 } 
				
					}
				
				}else{///not propery_class_id or prop_type
					
					 if (obj.elements[i].checked) {
                  		getstr += "&" + obj.elements[i].name + "=" + obj.elements[i].value ;
              		 } 
				}
            }//end with checkbox
			
	
            if (obj.elements[i].type == "radio") {
               if (obj.elements[i].checked) {
                  getstr += "&" +obj.elements[i].name + "=" + obj.elements[i].value ;
               }
			}
         }   //end with type input
       
//
	     if (obj.elements[i].type == "select-one") {
            var sel = obj.elements[i];

			if(sel.selectedIndex > 0 && sel.name != ''){

		    	getstr += "&" + sel.name + "=" + sel.options[sel.selectedIndex].value ;

			}
         }

         
      }//end for loop
	  
	//	 alert(getstr);
    return getstr;
   }
   

function showdiv(divname){
	if(divname == 'propertTypeslease'){
		if(document.getElementById("propertTypeslease").style.display =='none'){
			document.getElementById("propertTypeslease").style.display = '';
			//document.getElementById("propertTypes").style.display = 'none';
			}else{
			document.getElementById("propertTypeslease").style.display = 'none';
		//	document.getElementById("propertTypes").style.display = '';
			}
		}else if(divname == 'propertTypes'){
			if(document.getElementById("propertTypes").style.display == 'none'){
				document.getElementById("propertTypes").style.display = '';
				//document.getElementById("propertTypeslease").style.display = 'none';
			}else{
				
				document.getElementById("propertTypes").style.display = 'none';
				//document.getElementById("propertTypeslease").style.display = '';
				}
		
		}else if (divname =='instruction'){
			if(document.getElementById("instruction").style.display == 'none'){
				document.getElementById("instruction").style.display = '';
				//document.getElementById("instruction").style.display = 'none';
			}else{
				
				document.getElementById("instruction").style.display = 'none';
				//document.getElementById("instruction").style.display = '';
				}
			}
	
	}
function hideForclosure(){
		alert('When searching for lease properties, your search criteria will be limited to the basic search criteria and exclude foreclosure properties.');
		document.getElementById("FORCL").checked = false;
	
		document.getElementById("FORCL").disabled  = true;
	
	}	
function hideCompMapBut(){
		alert('When searching for recently sold properties, your search criteria will be limited to the basic search criteria and exclude foreclosure properties, new listings, and price reductions.');
		document.getElementById("FORCL").checked = false;
		document.getElementById("STYPE").checked = false;
		document.getElementById("PriceReduced").checked = false;
		
		document.getElementById("FORCL").disabled  = true;
		document.getElementById("STYPE").disabled  = true;
		document.getElementById("PriceReduced").disabled  = true;
		
		document.getElementById("Comparebutton").style.display = 'none';
		document.getElementById("Mapitbutton").style.display = 'none';
		document.getElementById("Comparebutton1").style.display = 'none';
		document.getElementById("Mapitbutton1").style.display = 'none';
	}
function showBuyDiv(obj){
	if(obj.checked){
		document.getElementById("divBuy").style.display = '';
		document.getElementById("divBuyPrice").style.display = '';
		document.getElementById("divLease").style.display = 'none';
		document.getElementById("divLeasePrice").style.display = 'none';
		
		document.getElementById("FORCL").disabled  = false;
		document.getElementById("STYPE").disabled  = false;
		document.getElementById("PriceReduced").disabled  = false;
		
		document.getElementById("Comparebutton").style.display = '';
		document.getElementById("Mapitbutton").style.display = '';
		document.getElementById("Comparebutton1").style.display = '';
		document.getElementById("Mapitbutton1").style.display = '';
		
		document.sidesearch.LEASE_PRICE_MIN.selectedIndex = 0;
		document.sidesearch.LEASE_PRICE_MAX.selectedIndex = 0;
		for (var i=0; i < document.sidesearch.PROP_TYPE.length; i++ ) {
			document.sidesearch.PROP_TYPE[i].checked = false;
			
		}
		/*
		for (var i=0; i < document.sidesearch.PROPERTY_CLASS_ID.length; i++ ) {
			
			document.sidesearch.PROPERTY_CLASS_ID[i].checked = true;
		}*/
		for (var i=0; i <1; i++ ) {
			
			document.sidesearch.PROPERTY_CLASS_ID[i].checked = true;
			
		}
		document.getElementById("propertTypeslease").style.display = 'none';
		document.getElementById("propertTypes").style.display = 'none';
	}
}
function showLeaseDiv(obj){
	if(obj.checked){
		document.getElementById("divLease").style.display = '';
		document.getElementById("divLeasePrice").style.display = '';
		document.getElementById("divBuy").style.display = 'none';
		document.getElementById("divBuyPrice").style.display = 'none';
		
		document.getElementById("FORCL").disabled  = false;
		document.getElementById("STYPE").disabled  = false;
		document.getElementById("PriceReduced").disabled  = false;
		
		document.sidesearch.LISTING_PRICE_MIN.selectedIndex = 0;
		document.sidesearch.LISTING_PRICE_MAX.selectedIndex = 0;
		
		document.getElementById("Comparebutton").style.display = '';
		document.getElementById("Mapitbutton").style.display = '';
		document.getElementById("Comparebutton1").style.display = '';
		document.getElementById("Mapitbutton1").style.display = '';
		
		for (var i=0; i < document.sidesearch.PROPERTY_CLASS_ID.length; i++ ) {
			document.sidesearch.PROPERTY_CLASS_ID[i].checked = false;
		}
		/*
		for (var i=0; i < document.sidesearch.PROP_TYPE.length; i++ ) {
			document.sidesearch.PROP_TYPE[i].checked = true;
		}
		*/
		for (var i=0; i < 1; i++ ) {
			document.sidesearch.PROP_TYPE[i].checked = true;
		}
		document.getElementById("propertTypeslease").style.display = 'none';
		document.getElementById("propertTypes").style.display = 'none';
	}
}



function mouseOverHandler(e){
		    if (e.elementID && notOver){
		        mouseOverSidebarItem(e.elementID)
		        notOver = false;
		    }
		}
		
function mouseOutHandler(e){
	if (e.elementID && !notOver){
		mouseOutSidebarItem(e.elementID)
		notOver = true;
	}
}

function mouseOverSidebarItem(markerId){

	var  currentShape = map.GetShapeByID(markerId);
	mylatlong = currentShape.GetIconAnchor();
//	map.SetCenter(mylatlong);
//	stopMappan();
	//alert(currentShape.GetIconAnchor());
	map.ShowInfoBox(currentShape);

}

function mouseOutSidebarItem(markerId){

	var	currentShape = map.GetShapeByID(markerId);
	map.HideInfoBox(currentShape);

}



function markInputProxAddressFrm(){
    var centerURl = 'getGeoByAddress.cfm?';
    var centerAddress = document.getElementById('proxaddress').value;
   // var centerAddressLen = centerAddress.length;
  //  alert(centerAddress);
    centerURl += "addr="+centerAddress;
    
    var http=getHTTPObject();

    //window.open(centerURl,'mywindow','width=650,height=500,toolbar=yes, location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
    
    http.open("GET", centerURl, false);
    http.send(null);
    
    var centerInfo=http.responseText;
    
    if(http.status == 200){
      // alert(centerInfo);
        mapLoadProxAddress(centerInfo,centerAddress);
		
    }

	//updatepropcount();
}



function clearProxAddress(){
	var curAddress = document.getElementById('proxaddress').value;
	if(curAddress == 'Enter an full address or a zip code'){
		document.getElementById("proxaddress").value = '';
	}
}


function markInputProxAddress(address){
  // alert('mark center address');
    var centerURl = 'getGeoByAddress.cfm?';
    var centerAddress = address;
    var centerAddressLen = centerAddress.length;
    
    centerURl += "addr="+centerAddress;
    
    var http=getHTTPObject();

    //window.open(centerURl,'mywindow','width=650,height=500,toolbar=yes, location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
    
    http.open("GET", centerURl, false);
    http.send(null);
    
    var centerInfo=http.responseText;
    
    if(http.status == 200){
        //alert(centerInfo);
        mapLoadProxAddress(centerInfo,centerAddress);
		
    }
	//updatepropcount();
}
function mapLoadProxAddress(centerInfo,centerAddress){
    
    var cLat = centerInfo.split(',')[0];
    var cLong = centerInfo.split(',')[1];
   
    mapLoadPoint(cLat, cLong,centerAddress);
}


function mapLoadPoint(cLat,cLong,centerAddress){
  
    var center = new VELatLong(cLat, cLong);
       
    var propIcon = "/mapsearch/graphics/greenarrow.gif";
    var propString = "<div style='width:200px;'><span class='mdBlueBold'>"+centerAddress+"</span></div>"
    
    var shape = new VEShape(VEShapeType.Pushpin, center);

    //Set the icon
    shape.SetCustomIcon(propIcon);
    
    //Set the info box
    //shape.SetTitle("<font face='Arial, Helvetica, sans-serif' size='1px' color='666666'>Proximity Address/Zip Code</font>");
    shape.SetDescription(propString);
    
    
    try{

        map.AddShape(shape);
        map.SetCenterAndZoom(center, 14);		
        
    }
    catch(e){}    
}

