var mcolor;
var arrowArray = Array();

function EventEndCPan(arrowInfo, newTimer){

	arrowArray = arrowInfo;
	
    //If the timer is set, clear it and reset it
//	map.DeleteAllShapes();
    if (endPanTimer != null)   {
        window.clearTimeout(endPanTimer);
    }
    endPanTimer = window.setTimeout(HandleEndPan, newTimer || END_PAN_TIMER_DELAY);
} 
function HandleEndPan(){

    endPanTimer = null; 

   updatepropcount();
} 


function stopMappan(){
    
    //map.DetachEvent("onendpan",EventEndCPan);
   // map.DetachEvent("onendzoom", EventEndCPan);

}

function GetMapConner(){
	//alert('call to get corners');
    var myMap = HAR.map.getBounds();

    //var latitude = latLongTokens[index].split(',')[0];
    /*topLeftLat = myMap.TopLeftLatLong.Latitude;
    topLeftLong = myMap.TopLeftLatLong.Longitude;
    bottomRightLat = myMap.BottomRightLatLong.Latitude;
    bottomRightLong = myMap.BottomRightLatLong.Longitude;*/
	
	// Google Map Corners
	var NELat = myMap.getNorthEast().lat();
	var NELng = myMap.getNorthEast().lng();
	var SWLat = myMap.getSouthWest().lat();
	var SWLng = myMap.getSouthWest().lng();
	
    
    // Even though NELat,NELng,SWLat,SWLng are the labels of the params
	// NWLat,NWLng,SELat,SELng are being expected
	
    url = url.concat('&NElat=');// NWLat
    url = url.concat(NELat);
    
    url = url.concat('&NElng=');// NWLng
    url = url.concat(SWLng);
    
    url = url.concat('&SWlat=');// SELat
    url = url.concat(SWLat);
    
    url = url.concat('&SWlng=');// SELng
    url = url.concat(NELng);
  //  alert(url);
    return(url);
    
}

function getHTTPObject() {
    var xmlhttp;
    try {
        xmlhttp = new XMLHttpRequest();
    } catch (e) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    return xmlhttp;
}

//get search form parameters:
function getUrlParameters(){
	
    var paramString = '';
    //waitGen();
    var sold_active = ''
   	
	if (document.frmSearch.sold_active[0].checked == true)  {
	var sold_active = 2;
	}
	
	if (document.frmSearch.sold_active[1].checked == true)  {
	var sold_active = 1;
	}
		  
	//alert(sold_active);


    if(sold_active ==1){
       // sold_active = 1;
		detailurl = "dispsetsoldparam.cfm";

    }else if(sold_active ==2) {
        // sold_active = 2;	
		 detailurl="http://search.har.com/engine/dispSearch.cfm";

    }
  //  alert(sold_active+ ','+detailurl);
 
        var Property_Class_ID =checkboxval("Property_Class_ID",""); 
		
	//	alert(Property_Class_ID);
        if(Property_Class_ID != ''){
            Property_Class_ID = Property_Class_ID.concat(0);
            // alert(Property_Class_ID);
        }
        var LISTING_PRICE_MIN = document.getElementById('LISTING_PRICE_MIN').value;
        // alert
        var LISTING_PRICE_MAX = document.getElementById('LISTING_PRICE_MAX').value;
        
       
    var BEDROOM_NUM = document.getElementById('BEDROOM_NUM').value;
    var FULL_BATH_NUM =  document.getElementById('FULL_BATH_NUM').value;
    var SQURE_FEET_MIN =  document.getElementById('SQURE_FEET_MIN').value;
    var SQURE_FEET_MAX =  document.getElementById('SQURE_FEET_MAX').value;

   //     alert(BEDROOM_NUM);
  	if (sold_active == 1){
		paramString = paramString.concat('&for_sale=0'); 
		mcolor= 9;
		
	}
	if (sold_active == 2){
		paramString = paramString.concat('&for_sale=1'); 
		mcolor = 1;
	}
	if (Property_Class_ID != ''){
		paramString = paramString.concat('&Property_Class_ID='); 
		paramString = paramString.concat(Property_Class_ID);
	}
	if (LISTING_PRICE_MIN != ''){
		paramString = paramString.concat('&LISTING_PRICE_MIN='); 
		paramString = paramString.concat(LISTING_PRICE_MIN);
	}
	if (LISTING_PRICE_MAX != ''){
		paramString = paramString.concat('&LISTING_PRICE_MAX=');
		paramString = paramString.concat(LISTING_PRICE_MAX);
	}
    
    if (BEDROOM_NUM != ''){
        paramString = paramString.concat('&BEDROOM_NUM=');
        paramString = paramString.concat(BEDROOM_NUM);
    }
    if (FULL_BATH_NUM != ''){
        paramString = paramString.concat('&FULL_BATH_NUM=');
        paramString = paramString.concat(FULL_BATH_NUM);
    }
    if (SQURE_FEET_MIN != ''){
        paramString = paramString.concat('&SQURE_FEET_MIN=');
        paramString = paramString.concat(SQURE_FEET_MIN);
    }
    if (SQURE_FEET_MAX != ''){
        paramString = paramString.concat('&SQURE_FEET_MAX=');
        paramString = paramString.concat(SQURE_FEET_MAX);
    }
   
    return paramString;
}


function checkboxval(boxname, boxval){
    var counter = 0;
    var i;
    var proptypeid = 'Property_Class_ID';
    var proptypelease ='PROP_TYPE';
    var mydom;
  	if(boxname =='Property_Class_ID'){
		for(i=1;i<=6;i++){
	
			mydom =document.getElementById(proptypeid+i); 
			if(mydom.checked){
				counter++;
				boxval = boxval.concat(mydom.value);
				boxval = boxval.concat(',')
			}
		}
  }else if(boxname =='PROP_TYPE'){
		for(i=1;i<=3;i++){
			mydom =document.getElementById(proptypelease+i).dom;
			if(mydom.checked){
				counter++;
				boxval = boxval.concat(mydom.value);
				boxval = boxval.concat(',')
			}
		}
  }	
    //alert('counter'+counter);
    if(counter == 0){
        alert("You have to select at least one property type.");
        return (false);
    }
    else{
        return (boxval);
    }

}
var isBusy;

function submitSearchRequest (){

	//document.getElementById("url").innerHTML = url;
	
	var  xmlhttp=getHTTP();	
	xmlhttp.onreadystatechange=function(){
		if (xmlhttp.readyState == 4) {
        // only if "OK"
        if (xmlhttp.status == 200) {
			isBusy=false;
			HAR.deleteMarkers();
			SucceededCallback(xmlhttp.responseText);
	
		} else {
            alert("There was a problem retrieving the lisitngs:\n" +
                xmlhttp.statusText);
			isBusy=false;
        }
 		}
	};
	
	//waitGen(targDiv);

	//alert(url);
  	xmlhttp.open("GET",url,true);
  	xmlhttp.send(null);
	isBusy=true;
}


function updatepropcount() {
//alert('I am in updatepropcount');
   var urlparem = '';
  urlparem = getUrlParameters();
	
	//alert(urlparem);
	url= GetMapConner(url);
	url += urlparem;
	
	//alert(url);
	submitSearchRequest();
}


// This is the callback function that 
// processes the value returned by the Web service.
//function SucceededCallback(result, icon){
function SucceededCallback(result){
	
    var points = result;
	
	if(points.length > 0 ) {
		
        var latLongTokens = points.split('|');
        var veLatLongs = new Array(latLongTokens.length -1);
        //alert(latLongTokens.length);
        var centerLatLong;
		var totalcnt = latLongTokens[0].split(',')[1];
		//alert(veLatLongs.length);
        for(index = 1; index <= veLatLongs.length-1; index++){
			var listing = latLongTokens[index].split(',');
			var latitude = listing[0];
			var longitude = listing[1];
			var address  = listing[2];
			var mlnum  = listing[3];
			var pid  = listing[4];
			var pPrice  = listing[5];
			var propclass = listing[6];
			var bed = listing[7];
			var bath  = listing[8];
			var sqft = listing[9];
			var sqftsrc = listing[10];
			var PropStatus  = listing[11];
			var city  = listing[12];
			var zip  = listing[13];
			var bednum  = listing[14];
			var bathnum  = listing[15];
			var subdivision = listing[16];
			var agentname  = listing[17];
			var officename = listing[18].replace(/\*/gi,',');
			var soldpricerange = (listing[19]) ? listing[19].replace(/\*/gi,','):false;
			//alert(latitude+ ','+ longitude+','+pid);
			//number formating

			pPrice = '$'+new NumberFormat(pPrice).toFormatted();
			sqft = new NumberFormat(sqft).toFormatted();
			
			var propIcon = HAR.pins.greenHouse;//"/images/pointer/forSale.gif";
				
			if (mcolor == 7){
				var propIcon = HAR.pins.purpleHouse;//"/mapsearch/images/smgooglePointer.gif";
			
			}else if (mcolor ==9){
				var propIcon = HAR.pins.redHouse;//"/images/pointer/recentlySold.gif";
			
			}
	
			//veLatLongs[index] = new VELatLong(latitude, longitude);
			if(pid != 6 && pid !=2){
							
				propString = "<div style='width:200px'><iframe src='/mapsearch/sliderollenh.cfm?mlnum="+mlnum+"&latitude="+latitude+"&longitude="+longitude+"&zipcdoe="+zip+"&MAP_address="+address+"&pid="+pid+"' width='200' height='155px' scrolling='no' frameborder='0' marginwidth='0' marginheight='0'></iframe><div  id='propDetailDiv' style='font-size:10px; background-color:ffffff;width:200px'>"+"<span class='mdBlueBold'>"+address+"<br></span> "+city+', '+zip+"<br>"+(soldpricerange || pPrice)+"<br>" +propclass

				if(bed != '')
					propString = propString +"<br>"+bed;
				if(bath != '')
					propString = propString +" / "+bath;
			
				
				if(sqft != '')
					propString = propString +"<br>SQFT: "+sqft;
				if(sqftsrc != '')
					propString = propString +sqftsrc;
			

				propString = propString +"<br><a href='"+detailurl+"?mlnum="+mlnum+"&class="+pid+"&sType=0' target='new'><img src='/images/btnDetails.gif' border='0'></a>"

		}
		if(pid ==6 || pid== 2){
			propString = "<div style='width:210px'><iframe src='/mapsearch/multiLists.cfm?mlnum="+mlnum+"&latitude="+latitude+"&longitude="+longitude+"&zipcdoe="+zip+"&MAP_address="+address+"&pid="+pid+"' width='200px' height='360px'  scrolling='auto' frameborder='0' marginwidth='0' marginheight='0'></iframe>"
		}
		propString = propString +"</div></div></div>";

    
				
		try{
		    //map.AddShape(shape);
			HAR.plotPin({
				lat:latitude,
				lng:longitude,
				pinIcon:propIcon,
				title:address,
				html:propString
			});
		
		}
		catch(e){}
				
        }//end for
		
		
    }// end if has result
	
	// Place arrow back on the map
	HAR.plotPin({
		lat: arrowArray[0], 
		lng: arrowArray[1],  
		html: arrowArray[2],
		pinIcon: HAR.pins.greenArrow
	});
}
