//declare countylist
var multiple_counties="";
// declare a global  XMLHTTP Request object
var XmlHttpObj;
var myLoc;
var ptype="";
var twn="";
var stna="";
var zip="";
var minprc="";
var maxprc="";
var soldrange="";
var rms="";
var beds="";
var baths="";
var minlotsize="";
var maxlotsize="";
var minsqft="";
var maxsqft="";
var crit="";
var widgetHeight="133px";
var widgetVal="Maine";
var state='';
// create an instance of XMLHTTPRequest Object, varies with browser type, try for IE first then Mozilla
function CreateXmlHttpObj()
{
	// try creating for IE (note: we don't know the user's browser type here, just attempting IE first.)
	try
	{
		XmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			XmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc)
		{
			XmlHttpObj = null;
		}
	}
	// if unable to create using IE specific code then try creating for Mozilla (FireFox) 
	if(!XmlHttpObj && typeof XMLHttpRequest != "undefined") 
	{
		XmlHttpObj = new XMLHttpRequest();
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
// COURSE DROPDOWN MENU
/////////////////////////////////////////////////////////////////////////////////////////////////////
function NewSearchSolds(){ 
	//Get fake form values
	widgetVal=document.getElementById('WidgetType').innerHTML;
	var elPType=document.getElementById('PType');
	var elTwn=document.getElementById('Twn');
	var elStNa=document.getElementById('StNa');
	var elZip=document.getElementById('Zip');
	var elMinPrc=document.getElementById('MinPrc');
	var elMaxPrc=document.getElementById('MaxPrc');
	var elSoldRange=document.getElementById('SoldRange');
	ptype=elPType[elPType.selectedIndex].label;
	twn=elTwn[elTwn.selectedIndex].value;
	stna=elStNa.value;
	zip=elZip.value;
	if (elMinPrc.selectedIndex > 0) {
  	minprc = elMinPrc[elMinPrc.selectedIndex].value;
  }
	if (elMaxPrc.selectedIndex > 0) {
		maxprc=elMaxPrc[elMaxPrc.selectedIndex].value;
  }
	soldrange=elSoldRange[elSoldRange.selectedIndex].value;
	//set main criteria
  crit="PType~"+ptype+"_Zip~"+zip+"_Twn~"+twn+"_StNa~"+stna+"_SoldRange~"+soldrange+"_MinPrc~"+minprc+"_MaxPrc~"+maxprc;

//large widget fields
	if(document.getElementById('MinBed')){
		var elRms=document.getElementById('MinRooms');
		if (elRms.selectedIndex > 0) {
	  	rms = elRms[elRms.selectedIndex].value;
	  }
		var elBeds=document.getElementById('MinBed');
		if (elBeds.selectedIndex > 0) {
	  	beds = elBeds[elBeds.selectedIndex].value;
	  }
		var elBaths=document.getElementById('MinBath');
		if (elBaths.selectedIndex > 0) {
	  	baths = elBaths[elBaths.selectedIndex].value;
	  }
		var minlotsize=document.getElementById('MinLtSzAcr').value;
		var maxlotsize=document.getElementById('MaxLtSzAcr').value;
		var minsqft=document.getElementById('MinTotSqFt').value;
		var maxsqft=document.getElementById('MaxTotSqFt').value;
		//set additional criteria
	  crit=crit + "_Rms~"+rms+"_Br~"+beds+"_Ba~"+baths+"_MinLtSzAcr~"+minlotsize+"_MaxLtSzAcr~"+maxlotsize+"_MinSqFtTotal~"+minsqft+"_MaxSqFtTotal~"+maxsqft;
		//set widget height
		widgetHeight="285px";
		widgetVal="MaineLG";
	}
//alert(crit);
	//get listings
  GetListings("new", crit);
}
// called from onChange or onClick event of the EventID dropdown list
function PrevPageSolds(){
  GetListings('prev','');	
}
function NextPageSolds(){
	GetListings('next','');
}
function GetListings(type,crit) 
{
  ClearMain();
	
  // use the following line if using asp
  requestUrl = "/Search/SoldWidget/xml_data-type/"+type+"/crit/"+crit;
	if(document.getElementById('state')){
		requestUrl=requestUrl+"/state/"+document.getElementById('state').value;
		widgetVal="NH"
	}
    
	CreateXmlHttpObj();	
	// verify XmlHttpObj variable was successfully initialized
	if(XmlHttpObj)
	{
        // assign the StateChangeHandler function ( defined below in this file)
        // to be called when the state of the XmlHttpObj changes
        // receiving data back from the server is one such change
		XmlHttpObj.onreadystatechange = ListingActivityChangeHandler;
		// define the iteraction with the server -- true for as asynchronous.
		XmlHttpObj.open("GET", requestUrl,  true);
		// send request to server, null arg  when using "GET"
		XmlHttpObj.send(null);		
	}
}
// this function called when state of  XmlHttpObj changes
// we're interested in the state that indicates data has been
// received from the server
function ListingActivityChangeHandler()
{
	// state ==4 indicates receiving response data from server is completed
	if(XmlHttpObj.readyState == 4)
	{
		// To make sure valid response is received from the server, 200 means response received is OK
		if(XmlHttpObj.status == 200)
		{			
			Populate_ListingData(XmlHttpObj.responseXML.documentElement);
		}
		else
		{
      alert("There was a problem retrieving the requested information: " + XmlHttpObj.status);
			//alert("problem retrieving data from the server, status code: "  + XmlHttpObj.status);
		}
	}
}
// populate the contents of the Div
function Populate_ListingData(ListingDataNode){
var myString='';
var divData=document.getElementById('main_section');
if (ListingDataNode == null) {	
  divData.innerHTML    = 'No Listings Found';
}
else {
	//Navigation Bar Info
	var navBar=document.getElementById('NavBar');
	var CountNode=ListingDataNode.getElementsByTagName('Count');
	var StartNode=ListingDataNode.getElementsByTagName('Start');
	var EndNode=ListingDataNode.getElementsByTagName('End');
	var PageNode=ListingDataNode.getElementsByTagName('Page');
	var Start=GetInnerText(StartNode[0]);
	var Count=GetInnerText(CountNode[0]);
	var End=GetInnerText(EndNode[0]);
	var Prev='';
	var Next='';
  //Listing Data Info
	var ListImgNode=ListingDataNode.getElementsByTagName('photo');
  var MLSNbrNode = ListingDataNode.getElementsByTagName('MLSNbr');
  var AddrNode = ListingDataNode.getElementsByTagName('Addr');
  var TwnNode = ListingDataNode.getElementsByTagName('Twn');
  var StateNode = ListingDataNode.getElementsByTagName('State');
  var ZipNode = ListingDataNode.getElementsByTagName('Zip');
  var LstPrcNode = ListingDataNode.getElementsByTagName('LstPrc');
  var SoldPrcNode = ListingDataNode.getElementsByTagName('SoldPrc');
  var RmsNode = ListingDataNode.getElementsByTagName('Rms');
  var BrNode = ListingDataNode.getElementsByTagName('Br');
  var BaNode = ListingDataNode.getElementsByTagName('Ba');
  var LtSzAcrNode = ListingDataNode.getElementsByTagName('LtSzAcr');
  var SqFtTotalNode = ListingDataNode.getElementsByTagName('SqFtTotal');
  var ListOfficeNode = ListingDataNode.getElementsByTagName('ListOffice');
  var SellOfficeNode = ListingDataNode.getElementsByTagName('SellOffice');
  var LstPrcNode = ListingDataNode.getElementsByTagName('LstPrc');
  var SoldPrcNode = ListingDataNode.getElementsByTagName('SoldPrc');
  var SoldDNode = ListingDataNode.getElementsByTagName('SoldD');

 	if (Count < 1) {
  	myString = '<div style="border:1px solid silver;background:#ffffff;overflow-y:scroll;height:'+widgetHeight+';width:280px;padding:0;margin:0;">';
		myString+='<table width="100%" cellpadding="2" cellspacing="0" style="font-size:11px;font-family:Verdana;"><tr><td>';
		myString+='No Listings Found, <a href="/search/soldwidget/'+widgetVal+'">click here</a> for a new search.';
		myString+='</td></tr></table></div>';
		divData.innerHTML=myString;
		return 1;
  }

	//Set Navbar Data
	if(parseFloat(Start)>1){Prev='<a href="javascript:void(0);" style="text-decoration:none;" onclick="PrevPageSolds()">&lt;&lt;</a>';}
	if(parseFloat(End)<Count){Next='<a href="javascript:void(0);" style="text-decoration:none;" onclick="NextPageSolds()">&gt;&gt;</a>';}
	navBar.innerHTML='<div style="border:1px solid silver;background:#ffffff;width:280px;margin:0;padding:0;">'
						   + '<table width="100%" cellpadding="2" cellspacing="0" style="background:#ffffff;font-size:11px;font-family:Verdana;"><tr>'
							 + '<td>' + Prev + ' ' + Start + '-' + End + ' of ' + Count + ' ' + Next + '</td>' 
							 + '<td align="right"><a href="/search/soldwidget/'+widgetVal+'" style="text-decoration:none;">New Search</a></td>'
							 + '</tr></table></div>';
	navBar.style.marginTop='6px';

	//Set Listing Data
	myString+='<div style="border:1px solid silver;background:#ffffff;overflow-y:scroll;overflow-x:hidden;width:280px;height:'+widgetHeight+';padding:0;margin:0;">';
	myString+='<table width="100%" cellpadding="2" cellspacing="0" style="font-size:11px;font-family:Verdana;">';
  for (var i = 0; i < MLSNbrNode.length; i++) {
		myString+="<tr><td valign='top' style='width:90px;'><img width='90px' src='"+GetInnerText(ListImgNode[i])+"'></td>"
		myString+="<td valign='top' width='100%'>";
		myString+="<table width='100%' cellpadding='0' cellspacing='2' style='font-size:11px;font-family:Verdana;'>";		
		myString +="<td colspan='3'>"+GetInnerText(AddrNode[i]) + "</td></tr>";
		myString +="<td colspan='3'>"+GetInnerText(TwnNode[i]) + ", " + GetInnerText(StateNode[i])  + " " + GetInnerText(ZipNode[i]) + "</td></tr>";
		myString +="<tr><td>Rms:"+GetInnerText(RmsNode[i])+"</td><td>Beds:"+GetInnerText(BrNode[i])+"</td><td>Ba:"+GetInnerText(BaNode[i]) + "</td></tr>";
		myString +="<tr><td colspan='3'>LtSzAcr:"+GetInnerText(LtSzAcrNode[i])+"</td></tr>"
		myString +="<td colspan='3'>TotSqFt:"+GetInnerText(SqFtTotalNode[i]) + "</td></tr>";
    myString += "</tr></table></td></tr>";
    myString += "<tr><td colspan='2'>List: "+formatCurrency(GetInnerText(LstPrcNode[i]))+"</td></tr>";
    myString += "<tr><td colspan='2'>Sold: "+formatCurrency(GetInnerText(SoldPrcNode[i]))+" on " + GetInnerText(SoldDNode[i]) +"</td></tr>";
    myString += "<tr><td colspan='2'>Listed By:"+GetInnerText(ListOfficeNode[i])+"</td></tr>";
    myString += "<tr><td colspan='2'>Sold By:"+GetInnerText(SellOfficeNode[i])+"</td></tr>";		
    myString += "<tr><td colspan='2' width='100%' style='border-bottom:1px dotted silver;height:4px;font-size:4px;'>&nbsp;</td></tr>";		
	}
      
}
    //End Table
    myString += "</table>";    
    myString += "<div style='font-size:11px;font-family:Verdana;'>"+document.getElementById('disclaim').innerHTML+"</div>";
		    
    myString += "</div>";    
    divData.innerHTML=myString;

}
function ClearMain(){
  //Show Loading
  document.getElementById('main_section').innerHTML='<div style="height:50px;">&nbsp;</div><center><span style="font-size:14px;font-family:Georgia;font-weight:bold;color:silver;">Loading...</span></center><div style="height:80px;">&nbsp;</div>';
}
function ClearFields(loc){
  //Show Loading
  document.getElementById('CurrentListings'+loc).innerHTML='<span style="color:#999999;font-size:11px;">Loading...</span>';
  document.getElementById('PendingListings'+loc).innerHTML='<span style="color:#999999;font-size:11px;">Loading...</span>';
  document.getElementById('OpenHouses'+loc).innerHTML='<span style="color:#999999;font-size:11px;">Loading...</span>';
  document.getElementById('NewListingsYear'+loc).innerHTML='<span style="color:#999999;font-size:11px;">Loading...</span>';
  document.getElementById('SoldListingsYear'+loc).innerHTML='<span style="color:#999999;font-size:11px;">Loading...</span>';
}

// returns the node text value 
function GetInnerText (node)
{
	 return (node.textContent || node.innerText || node.text) ;
}

function encodeMyHtml(val) {
//     encodedHtml = escape(encodeHtml.htmlToEncode.value);
     var encodedHtml = escape(val);
     encodedHtml = encodedHtml.replace(/\//g,"%2F");
     encodedHtml = encodedHtml.replace(/\?/g,"%3F");
     encodedHtml = encodedHtml.replace(/=/g,"%3D");
     encodedHtml = encodedHtml.replace(/&/g,"%26");
     encodedHtml = encodedHtml.replace(/@/g,"%40");
     var newVal=encodedHtml;
     //encodeHtml.htmlEncoded.value = encodedHtml;
     return newVal;
   } 
function htmlentities( s ){
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: htmlentities('Kevin & van Zonneveld');
    // *     returns 1: 'Kevin &amp; van Zonneveld'
 
    var div = document.createElement('div');
    var text = document.createTextNode(s);
    div.appendChild(text);
    return div.innerHTML;
}

function html_entity_decode(str) {
  //jd-tech.net
  var  tarea=document.createElement('textarea');
    tarea.innerHTML = str; return tarea.value;
    tarea.parentNode.removeChild(tarea);
}

function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num );// +'.' + cents);
}



