﻿Ext.namespace('HARSEARCH', 'HARSEARCH.doSearch');

var searchUrl = 'getSearchResult.cfm';
var saveSearchURl ='';
var baseImageUrl = '../images/display/';

Ext.util.Format.currency = function(v){
   // v = (Math.round((v-0)*100))/100;
    v = String(v);
    var r = /(\d+)(\d{3})/;
    while (r.test(v)) {
        v = v.replace(r, '$1' + ',' + '$2');
    }
	 if (v > "0") 
		 return "$" + v ;
	 else 
		return "";
};

Ext.util.Format.numberFormat = function(nStr){
	x1 = String(nStr);
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1;
};

Ext.override(Ext.menu.Menu, {
    autoWidth : function(){
        var el = this.el, ul = this.ul;
        if(!el){
            return;
        }
        var w = this.width;
        if(w){
            el.setWidth(w);
        }else if(Ext.isIE && !Ext.isIE8){
            el.setWidth(this.minWidth);
            var t = el.dom.offsetWidth; // force recalc
            el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));
        }
    }
});


Ext.util.Format.escapeQuotes = function(nStr){
	return nStr.replace('\'', '\\\'').replace('"', '\\"');
};

Ext.util.Format.spacer = function(nStr){ 
	var cStr;
	cStr = nStr.replace(/ /g, '-');
	cStr = cStr.replace(/#/g, '');
	cStr = cStr.replace(/--/g, '-');
	cStr = cStr.replace(/\//g, '%2F');
	return cStr;
};

Ext.util.Format.left = function(nStr, num){
	return String(nStr).substring(0,num);
};

HARSEARCH.doSearch.ArrayReader = function(meta, recordType){
    HARSEARCH.doSearch.ArrayReader.superclass.constructor.call(this, meta, recordType);
};

Ext.extend(HARSEARCH.doSearch.ArrayReader, Ext.data.ArrayReader, {
    /**
     * Create a data block containing Ext.data.Records from an XML document.
     * @param {Object} o An Array of row objects which represents the dataset.
     * @return {Object} data A data block which is used by an Ext.data.Store object as
     * a cache of Ext.data.Records.
     */
    readRecords : function(o){
        if(o.strSearchCriteria != undefined){
            this.searchCriteriaString = o.strSearchCriteria;
        }
        if(!Ext.isEmpty(o.FLDS)){
            this.recordType = Ext.data.Record.create(o.FLDS);
        }
        return HARSEARCH.doSearch.ArrayReader.superclass.readRecords.call(this, o[this.meta.root]);
    }
});

var ViewStyleEnum = {list:0,normal:1,gallery:2};

var strLinkContent = "<div style='margin-left: 642px; width: 132px; text-align:left; padding:4px;'>" +
					 "<div class=\"leftSectionmenu\"><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'><img src='../images/lineart/detail.gif' border='0' align='absbottom'> View Detail</a> </div>" +
                   		 "<div class=\"leftSectionmenu\"><a href=\"javascript:newWindow=window.open('../_leadtrack/dispshowing.cfm?mlnum={MLNUM}'," +
                    	"'ImageWindow','width=660,height=640,toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars=yes,resizable=0');newWindow.focus();\"><img src='../images/lineart/lineart_schedule.gif' border='0' align='absbottom'> Schedule Showing</a> </div> " +
                   		"{PHOTO}{VT}{BOOKMARKED}" +
						"<div class=\"leftSectionmenu\"><a href=\"javascript:void(0)\"; onclick=\"if(!objMycart) alert('Please wait a moment longer for the Mycart to finish loading.'); else {objMycart.AddListing('{MLNUM}', '{ADDRESS:escapeQuotes}'); }\" ><img border='0' alt='Add to MyCart' src='../images/lineart/lineart_addtocart.gif' align='absbottom'/> Add to MyCart</a></div>" +
				 	"</div>" 
var strPicContent = "<div style='float: left; width:174px;'>" +
						"<div><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'><img width='174' height='139' border='0' alt='MLS LISTING# {MLNUM}' src='{MEDIASOURCE}' /></a></div>" +
						"<div style='background-color:#006699; height:19px; width:174px; text-align:center' class='smText white'>{curIndex} of {ttlCnt}&nbsp;&nbsp;&nbsp;&nbsp; ML# {MLNUM}</div>" +
					"</div>" 
					
var strCommonRows = "<tr>" +
						"<td  align='left'  colspan='4'><div class='floatLeft'  style='width:270px'><span class='smTextBold green'>{LISTING_PRICE:currency}</span>&nbsp;&nbsp;" +
						"<span class='smTextBold'>{ADDRESS} </span> <span class='smText'>{MAP}</span></div> " +
						"<div class='smText floatLeft'  style='width:180px'>{OPENHOUSE_YN} <span id='rd{MLNUM}'></span></div><br style='clear:both'/></td>" +
					"</tr>" +
					"<tr>" +
						"<td class='smTextBold gray'>Broker:</td>" +
						"<td class='smText gray' colspan='3'> {OFFICENAMEDISP}</td></tr>" +
					"<tr>"	+
						"<td class='smTextBold gray'>Office Contact:</td>" +
						"<td class='smTextBold gray' colspan='3' valign='top'>" +
							"<span id='phbroker{MLNUM}' class='smTextBold gray' ><a onmouseover=\"window.status='Click to show broker phone'; return true;\" onmouseout=\"window.status=''\" " +
									"href=\"javascript:showPh({OFFICE_ID},{MLNUM},{MEMBER_NUMBER},'{PHONE}', 'phbroker{MLNUM}')\">Click Here for Broker Phone</a></span> &nbsp;{OFFICEEMAIL}</td></tr>" +
					"<tr>"	+
          				"<td width='85' class='smTextBold gray'>Agent:</td><td width='170' class='smText gray'>{AGENTNAMEDISP}</td>" +
						"<td width='65' class='smTextBold gray'>Email:</td><td width='135' class='smText gray'>{MEMBEREMAIL}</td></tr>" +					
           			"<tr><td align='left' vAlign='top' class='smTextBold gray'>Subdivision:</td>"+
						"<td align='left' vAlign='top' class='smText'><strong>{SUBDIVISION}</strong></td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>City:</td>" +
						"<td align='left' vAlign='top' class='smText'>{CITY}</td></tr>" +
					"<tr><td align='left' vAlign='top'  class='smTextBold gray'>Status:</td> " +
						"<td align='left' vAlign='top' class='smText'>{STATUS}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Zip:</td>" +
						"<td align='left' vAlign='top' class='smText'>{ZIP_CODE}</td></tr>" 
						
//{{{ Template Definitions
var propTmplts = [];
propTmplts[PropertyTypeEnum.singleFamily] = [];
propTmplts[PropertyTypeEnum.townhouseCondo] = [];
propTmplts[PropertyTypeEnum.highriseCondominium] = [];
propTmplts[PropertyTypeEnum.residentialLotsLand] = [];
propTmplts[PropertyTypeEnum.multiFamily] = [];
propTmplts[PropertyTypeEnum.homesAndOrAcreage] = [];

propTmplts[PropertyTypeEnum.singleFamily][ViewStyleEnum.list] = new Ext.Template(//{{{
    "<table width='100%' class='table2' cellpadding='0' cellspacing='0'><tr onMouseover=\"this.className='hoverLightYellow'\" onMouseOut=\"this.className='hoverWhite'\"><td class='smText' width='150px'><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>{ADDRESS}</a></td>" +
		"<td class='smText' width='80px' ><div class='smTextBold green'>{LISTING_PRICE:currency}</div></td>" + 
		"<td class='smText' width='180px'>Single Family ({STATUS})</td>" +
		"<td class='smText'>{BEDROOM_NUM} Beds, {FULL_BATH_NUM} {HALF_BATH_NUM} baths, {SQUARE_FEET} sqft bldg, {LOTSIZE} sqft lot</td>" +
		"</tr></table>"
);//}}}
propTmplts[PropertyTypeEnum.singleFamily][ViewStyleEnum.list].compile();
propTmplts[PropertyTypeEnum.singleFamily][ViewStyleEnum.normal] = new Ext.Template(//{{{
    "<div style='border: solid 1px #006699; margin-bottom:1em; width:790px; height:160px; clear:both'>" +
      	strPicContent +
        "<div style='float: left; margin-left: 10px; width: 455px; padding:2px;' >" +
           	"<table border='0' cellpadding='2' cellspacing='0' width='100%'>" +
					strCommonRows+
					"<tr><td align='left' vAlign='top' class='smTextBold gray'>Property Type:</td>"+
						"<td align='left' vAlign='top' class='smText'>Single Family</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Pool:</td>" +
						"<td align='left' vAlign='top' class='smText'>{PRIVATE_POOL}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Bedrooms:</td>" +
						"<td align='left' vAlign='top' class='smText'>{BEDROOM_NUM}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Year Built:</td>" +
						"<td align='left' vAlign='top' class='smText'>{YEAR_BUILT} {YEAR_BUILT_SRC}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Baths:</td>" +
						"<td align='left' vAlign='top' class='smText'>{FULL_BATH_NUM} {HALF_BATH_NUM}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Bldg Sqft:</td>" +
						"<td align='left' vAlign='top' class='smText'>{SQUARE_FEET:numberFormat} {SQUARE_FEET_SRC}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Garage:</td>" +
						"<td align='left' vAlign='top' class='smText'>{GARAGE_NUM} Car {GARAGE_DESC}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Lot Size:</td>" +
						"<td align='left' vAlign='top' class='smText'>{LOTSIZE:numberFormat}{LOTSIZE_SRC}</td></tr>" +
					"<tr><td align='left' vAlign='top' class='smTextBold gray'>Stories:</td>" +
						"<td align='left' vAlign='top' class='smText'>{STORIES}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Style:</td>" +
						"<td align='left' vAlign='top' class='smText'>{STYLE} </td></tr></table>" +
		"</div>" +
		strLinkContent +
     "</div>"
);//}}}
propTmplts[PropertyTypeEnum.singleFamily][ViewStyleEnum.normal].compile();
propTmplts[PropertyTypeEnum.singleFamily][ViewStyleEnum.gallery] = new Ext.Template(//{{{
     "<div style='float:left; width:253px; padding:4px;'>" +
		"<div style='border:solid 1px #006699; padding:4px; width:242px; height:255px;'>" +
			"<div><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>" +
				"<img align='middle' width='234' height='196' border='0' alt='Click to View Property Detail' src='{MEDIASOURCE}' /></a></div>" +
			"<div class='smTextBold'>{ADDRESS}, {CITY} {ZIP_CODE:left(5)} <a href=\"{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm\"><img src=\"../images/lineart/detail.gif\"></a></div>" +
			"<div>" +
				"<div style='float:left;text-align:left'> <span class='smTextBold green'>{LISTING_PRICE:currency}</span><BR></div> " +
				"<div class='smText' style='float:right; text-align:right'>{BEDROOM_NUM} Beds {FULL_BATH_NUM} {HALF_BATH_NUM} Baths</div>"+
			"</div>" +
			"<br style='clear:both'>" +
			"<div class='smText'>Single Family ({STATUS})</div>" +
		"</div>" +
	"</div>"
);//}}}
propTmplts[PropertyTypeEnum.singleFamily][ViewStyleEnum.gallery].compile();

propTmplts[PropertyTypeEnum.townhouseCondo][ViewStyleEnum.list] = new Ext.Template(//{{{
    "<table width='100%' class='table2'><tr onMouseover=\"this.className='hoverLightYellow'\" onMouseOut=\"this.className='hoverWhite'\"><td class='smText' width='150px'><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>{ADDRESS}</a></td>" +
		"<td width='80px'> <div class='smTextBold green'>{LISTING_PRICE:currency}</div></td>" + 
			"<td class='smText' width='180px'>Townhouse/Condo ({STATUS})</td>" +
		"<td class='smText'>{BEDROOM_NUM} Beds, {FULL_BATH_NUM} {HALF_BATH_NUM} baths, {SQUARE_FEET} sqft bldg, {LOTSIZE} sqft lot</td>" +
		"</tr></table>"
);//}}}
propTmplts[PropertyTypeEnum.townhouseCondo][ViewStyleEnum.list].compile();
propTmplts[PropertyTypeEnum.townhouseCondo][ViewStyleEnum.normal] = new Ext.Template(//{{{
   "<div style='border: solid 1px #006699; margin-bottom:1em; width:790px; height:160px; clear:both'>" +
       strPicContent +
        "<div style='float: left; margin-left: 10px; width: 455px;' >" +
             	"<table border='0' cellpadding='2' cellspacing='0' width='100%'>" +
					strCommonRows + 
					"<tr><td align='left' vAlign='top' class='smTextBold gray'>Property Type:</td>"+
						"<td align='left' vAlign='top' class='smText'>Townhouse / Condo</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Bldg Story:</td>" +
						"<td align='left' vAlign='top' class='smText'>{CD_BLDG_STORY}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Bedrooms:</td>" +
						"<td align='left' vAlign='top' class='smText'>{BEDROOM_NUM}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Year Built:</td>" +
						"<td align='left' vAlign='top' class='smText'>{YEAR_BUILT} {YEAR_BUILT_SRC}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Baths:</td>" +
						"<td align='left' vAlign='top' class='smText'>{FULL_BATH_NUM} {HALF_BATH_NUM}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Build Sqft:</td>" +
						"<td align='left' vAlign='top' class='smText'>{SQUARE_FEET:numberFormat} {SQUARE_FEET_SRC}</td></tr>"+
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Garage:</td>" +
						"<td align='left' vAlign='top' class='smText'>{GARAGE_NUM} Car {GARAGE_DESC}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Lot Size:</td>" +
						"<td align='left' vAlign='top' class='smText'>{LOTSIZE:numberFormat} {LOTSIZE_SRC}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Construction:</td>" +
						"<td align='left' vAlign='top' class='smText'>{NEW_CONSTR}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Unit Level:</td>" +
						"<td align='left' vAlign='top' class='smText'>{HRCD_UNIT_LEVEL}</td></tr>" +
				 "</table>" +
		"</div>" +
		strLinkContent +
	"</div>"
);//}}}
propTmplts[PropertyTypeEnum.townhouseCondo][ViewStyleEnum.normal].compile();
propTmplts[PropertyTypeEnum.townhouseCondo][ViewStyleEnum.gallery] = new Ext.Template(//{{{
	 "<div style='float:left; width:253px; padding:4px;'>" +
		"<div style='border:solid 1px #006699; padding:4px; width:242px; height:255px;'>" +
			"<div><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>" +
				"<img align='middle' width='234' height='196' border='0' alt='Click to View Property Detail' src='{MEDIASOURCE}' /></a></div>" +
			"<div class='smTextBold'>{ADDRESS}, {CITY} {ZIP_CODE:left(5)} <a href=\"{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm\"><img src=\"../images/lineart/detail.gif\"></a></div>" +
			"<div>" +
				"<div style='float:left;text-align:left'> <span class='smTextBold green'>{LISTING_PRICE:currency}</span><BR></div> " +
				"<div class='smText' style='float:right; text-align:right'>{BEDROOM_NUM} Beds {FULL_BATH_NUM} {HALF_BATH_NUM} Baths</div>"+
			"</div>" +
			"<br style='clear:both'>" +
			"<div class='smText'>Townhouse / Condo ({STATUS})</div>" +
		"</div>" +
	"</div>"
);//}}}
propTmplts[PropertyTypeEnum.townhouseCondo][ViewStyleEnum.gallery].compile();

propTmplts[PropertyTypeEnum.highriseCondominium][ViewStyleEnum.list] = new Ext.Template(//{{{
    "<table width='100%' class='table2'  cellpadding='0' cellspacing='0'><tr onMouseover=\"this.className='hoverLightYellow'\" onMouseOut=\"this.className='hoverWhite'\"><td class='smText' width='150px'><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>{ADDRESS}</a></td>" +
		"<td width='80px' > <div class='smTextBold green'>{LISTING_PRICE:currency}</div></td>" + 
		"<td class='smText' width='180px'>Highrise ({STATUS})</td>" +
		"<td class='smText'>{BEDROOM_NUM} Beds, {FULL_BATH_NUM} {HALF_BATH_NUM} baths, {SQUARE_FEET} sqft bldg</td>" +
		"</tr></table>"
);//}}}
propTmplts[PropertyTypeEnum.highriseCondominium][ViewStyleEnum.list].compile();
propTmplts[PropertyTypeEnum.highriseCondominium][ViewStyleEnum.normal] = new Ext.Template(//{{{
    "<div style='border: solid 1px #006699; margin-bottom:1em; width:790px; height:160px; clear:both'>" +
       strPicContent +
        "<div style='float: left; margin-left: 10px; width: 455px;' >" +
             	"<table border='0' cellpadding='2' cellspacing='0' width='100%'>" +
					strCommonRows +	
					"<tr><td align='left' vAlign='top' class='smTextBold gray'>Property Type:</td>"+
						"<td align='left' vAlign='top' class='smText'>Mid/Hi-Rise Condominium</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Parking:</td>"+
						"<td align='left' vAlign='top' class='smText'>{HR_PARKING_SPACE}</td>" +
					"<tr><td align='left' vAlign='top' class='smTextBold'>Building Name:</td>"+
						"<td align='left' vAlign='top' class='smText'>{BUILDINGNAME}</td>" +
						"<td align='left' vAlign='top'  class='smTextBold gray'>Loft:</td> " +
						"<td align='left' vAlign='top' class='smText'>{Loft}</td></tr>" +	
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Bedrooms:</td>" +
						"<td align='left' vAlign='top' class='smText'>{BEDROOM_NUM}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Year Built:</td>" +
						"<td align='left' vAlign='top' class='smText'>{YEAR_BUILT} {YEAR_BUILT_SRC}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Baths:</td>" +
						"<td align='left' vAlign='top' class='smText'>{FULL_BATH_NUM} {HALF_BATH_NUM}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Build Sqft:</td>" +
						"<td align='left' vAlign='top' class='smText'>{SQUARE_FEET:numberFormat} {SQUARE_FEET_SRC}</td></tr>"+
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Construction:</td>" +
						"<td align='left' vAlign='top' class='smText'>{NEW_CONSTR}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>View:</td>" +
						"<td align='left' vAlign='top' class='smText'>{HR_VIEW}</td></tr>"+
				"</table>" +
		"</div>" +
				strLinkContent +
     "</div>"
);//}}}
propTmplts[PropertyTypeEnum.highriseCondominium][ViewStyleEnum.normal].compile();

propTmplts[PropertyTypeEnum.highriseCondominium][ViewStyleEnum.gallery] = new Ext.Template(//{{{
	  "<div style='float:left; width:253px; padding:4px;'>" +
		"<div style='border:solid 1px #006699; padding:4px; width:242px; height:255px;'>" +
			"<div><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>" +
				"<img align='middle' width='234' height='196' border='0' alt='Click to View Property Detail' src='{MEDIASOURCE}' /></a></div>" +
			"<div class='smTextBold'>{ADDRESS}, {CITY} {ZIP_CODE:left(5)} <a href=\"{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm\"><img src=\"../images/lineart/detail.gif\"></a></div>" +
			"<div>" +
				"<div style='float:left;text-align:left'> <span class='smTextBold green'>{LISTING_PRICE:currency}</span><BR></div> " +
				"<div class='smText' style='float:right; text-align:right'>{BEDROOM_NUM} Beds {FULL_BATH_NUM} {HALF_BATH_NUM} Baths</div>"+
			"</div>" +
			"<br style='clear:both'>" +
			"<div class='smText'>Mid/Hi-Rise Condominium ({STATUS})</div>" +
		"</div>" +
	"</div>"
	
);//}}}
propTmplts[PropertyTypeEnum.highriseCondominium][ViewStyleEnum.gallery].compile();

propTmplts[PropertyTypeEnum.residentialLotsLand][ViewStyleEnum.list] = new Ext.Template(//{{{
  "<table width='100%' class='table2' cellpadding='0' cellspacing='0'><tr onMouseover=\"this.className='hoverLightYellow'\" onMouseOut=\"this.className='hoverWhite'\"><td class='smText' width='150px'><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>{ADDRESS}</a></td>" +
		"<td width='80px' > <div class='smTextBold green'>{LISTING_PRICE:currency}</div></td>" + 
		"<td class='smText' width='180px'>Residential Lot ({STATUS})</td>" +
		"<td class='smText'>{LT_ACRES} Acres, {SUBDIVISION}, {MRKT_AREA} area</td>" +
		"</tr></table>"
);//}}}
propTmplts[PropertyTypeEnum.residentialLotsLand][ViewStyleEnum.list].compile();
propTmplts[PropertyTypeEnum.residentialLotsLand][ViewStyleEnum.normal] = new Ext.Template(//{{{
    "<div style='border: solid 1px #006699; margin-bottom:1em; width:790px; height:160px; clear:both'>" +
      strPicContent +
        "<div style='float: left; margin-left: 10px; width: 455px;' >" +
     		 "<table border='0' cellpadding='2' cellspacing='0' width='100%'>" +
						strCommonRows + 
						"<tr><td align='left' vAlign='top' class='smTextBold gray'>Property Type:</td>"+
						"<td align='left' vAlign='top' class='smText'>Residential Lots & Land</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Est. Acreage:</td>" +
						"<td align='left' vAlign='top' class='smText'>{LT_ACRES}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Mrkt Area:</td>" +
						"<td align='left' vAlign='top' class='smText'>{MRKT_AREA}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Restrictions:</td>" +
						"<td align='left' vAlign='top' class='smText' colspan='3'>{LT_RESTRICTION} {HALF_BATH_NUM}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Improvement:</td>" +
						"<td align='left' vAlign='top' class='smText' colspan='3'>{LTAC_IMPROVEMENT}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Land Use:</td>" +
						"<td align='left' vAlign='top' class='smText' colspan='3'>{LTAC_LANDUSE}</td></tr>"+
					"</table>" +
			"</div>" +
			strLinkContent +
       "</div>"
);//}}}
propTmplts[PropertyTypeEnum.residentialLotsLand][ViewStyleEnum.normal].compile();
propTmplts[PropertyTypeEnum.residentialLotsLand][ViewStyleEnum.gallery] = new Ext.Template(//{{{
	"<div style='float:left; width:253px; padding:4px;'>" +
		"<div style='border:solid 1px #006699; padding:4px; width:242px; height:255px;'>" +
			"<div><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>" +
				"<img align='middle' width='234' height='196' border='0' alt='Click to View Property Detail' src='{MEDIASOURCE}' /></a></div>" +
			"<div class='smTextBold'>{ADDRESS}, {CITY} {ZIP_CODE:left(5)} <a href=\"{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm\"><img src=\"../images/lineart/detail.gif\"></a></div>" +
			"<div>" +
				"<div style='float:left;text-align:left'><span class='smTextBold green'> <span class='smTextBold green'>{LISTING_PRICE:currency}</span><BR></div> " +
				"<div class='smText' style='float:right; text-align:right'>{LT_ACRES} Acre(s)</div>"+
			"</div>" +
			"<br style='clear:both'>" +
			"<div class='smText'>Residential Lots and Land ({STATUS})</div>" +
		"</div>" +
	"</div>"
);//}}}
propTmplts[PropertyTypeEnum.residentialLotsLand][ViewStyleEnum.gallery].compile();

propTmplts[PropertyTypeEnum.multiFamily][ViewStyleEnum.list] = new Ext.Template(//{{{
	  "<table width='100%' class='table2' cellpadding='0' cellspacing='0'><tr onMouseover=\"this.className='hoverLightYellow'\" onMouseOut=\"this.className='hoverWhite'\"><td class='smText' width='150px'><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>{ADDRESS}</a></td>" +
		"<td width='80px'> <div class='smTextBold green'>{LISTING_PRICE:currency}</div></td>" + 
		"<td class='smText' width='180px'>Multi-Family ({STATUS})</td>" +
		"<td class='smText'>{MF_UNIT_NUM} Units, {SQUARE_FEET} sqft bldg, {LOTSIZE} sqft lot</td>" +
		"</tr></table>"
);//}}}
propTmplts[PropertyTypeEnum.multiFamily][ViewStyleEnum.list].compile();
propTmplts[PropertyTypeEnum.multiFamily][ViewStyleEnum.normal] = new Ext.Template(//{{{
    "<div style='border: solid 1px #006699; margin-bottom:1em; width:790px; height:160px; clear:both'>" +
       strPicContent +
        "<div style='float: left; margin-left: 10px; width: 455px;' >" +
             	"<table border='0' cellpadding='1' cellspacing='0' width='100%'>" +
					strCommonRows+
					"<tr><td align='left' vAlign='top' class='smTextBold gray'>Property Type:</td>"+
						"<td align='left' vAlign='top' class='smText'>Multi-Family</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Mrkt Area:</td>" +
						"<td align='left' vAlign='top' class='smText'>{MRKT_AREA}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Bldg Type:</td>" +
						"<td align='left' vAlign='top' class='smText'>{MFAC_BUILDING_TYPE}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Bldg Sqft:</td>" +
						"<td align='left' vAlign='top' class='smText'>{SQUARE_FEET:numberFormat} {SQUARE_FEET_SRC}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>No of Units:</td>" +
						"<td align='left' vAlign='top' class='smText'>{MF_UNIT_NUM}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Lot Size:</td>" +
						"<td align='left' vAlign='top' class='smText'>{LOTSIZE:numberFormat} {LOTSIZE_SRC}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Stories:</td>" +
						"<td align='left' vAlign='top' class='smText'>{STORIES}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Year Built:</td>" +
						"<td align='left' vAlign='top' class='smText'>{YEAR_BUILT} {YEAR_BUILT_SRC}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>&nbsp;</td>" +
						"<td align='left' vAlign='top' class='smText' colspan='3'></td></tr>" +
				"</table>" +
			"</div>" +
			strLinkContent +
        "</div>"
);//}}}
propTmplts[PropertyTypeEnum.multiFamily][ViewStyleEnum.normal].compile();
propTmplts[PropertyTypeEnum.multiFamily][ViewStyleEnum.gallery] = new Ext.Template(//{{{
	 "<div style='float:left; width:253px; padding:4px;'>" +
		"<div style='border:solid 1px #006699; padding:4px; width:242px; height:255px;'>" +
			"<div><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>" +
				"<img align='middle' width='234' height='196' border='0' alt='Click to View Property Detail' src='{MEDIASOURCE}' /></a></div>" +
			"<div class='smTextBold'>{ADDRESS}, {CITY} {ZIP_CODE:left(5)} <a href=\"{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm\"><img src=\"../images/lineart/detail.gif\"></a></div>" +
			"<div>" +
				"<div style='float:left;text-align:left'> <span class='smTextBold green'>{LISTING_PRICE:currency}</span><BR></div> " +
				"<div class='smText' style='float:right; text-align:right'>{MF_UNIT_NUM}</div>"+
			"</div>" +
			"<br style='clear:both'>" +
			"<div class='smText'>Multi-Family ({STATUS})</div>" +
		"</div>" +
	"</div>"

);//}}}
propTmplts[PropertyTypeEnum.multiFamily][ViewStyleEnum.gallery].compile();
propTmplts[PropertyTypeEnum.homesAndOrAcreage][ViewStyleEnum.list] = new Ext.Template(//{{{
	  "<table width='100%' class='table2' cellpadding='0' cellspacing='0'><tr onMouseover=\"this.className='hoverLightYellow'\" onMouseOut=\"this.className='hoverWhite'\"><td class='smText' width='150px'><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>{ADDRESS}</a></td>" +
		"<td width='80px'> <div class='smTextBold green'>{LISTING_PRICE:currency}</div></td>" + 
		"<td class='smText' width='180px'>Acreage ({STATUS})</td>" +
		"<td class='smText'>{LT_ACRES} Acres,  House {AC_HOUSE}, {AC_ROAD_FRONTAGE}, {LTAC_LANDUSE}</td>" +
		"</tr></table>"	
);//}}}
propTmplts[PropertyTypeEnum.homesAndOrAcreage][ViewStyleEnum.list].compile();
propTmplts[PropertyTypeEnum.homesAndOrAcreage][ViewStyleEnum.normal] = new Ext.Template(//{{{
     "<div style='border: solid 1px #006699; margin-bottom:1em; width:790px; height:160px; clear:both'>" +
       strPicContent +
        "<div style='float: left; margin-left: 10px; width: 455px;' >" +
             	"<table border='0' cellpadding='3' cellspacing='0' width='100%'>" +
					strCommonRows+
					"<tr><td align='left' vAlign='top' class='smTextBold gray'>Property Type:</td>"+
						"<td align='left' vAlign='top' class='smText'>Country Homes/Acreage </td>"+
						"<td align='left' vAlign='top' class='smTextBold gray'>House:</td>" +
						"<td align='left' vAlign='top' class='smText'>{AC_HOUSE}</td></tr>" +
					"<tr><td align='left' vAlign='top' class='smTextBold gray'>Acres :</td>" +
						"<td align='left' vAlign='top' class='smText'>{LT_ACRES}</td>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Mrkt Area:</td>" +
						"<td align='left' vAlign='top' class='smText'>{MRKT_AREA}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Rd Frontage:</td>" +
						"<td align='left' vAlign='top' class='smText'>{AC_ROAD_FRONTAGE}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Improvement:</td>" +
						"<td align='left' vAlign='top' class='smText' colspan='3'>{LTAC_IMPROVEMENT}</td></tr>" +
					"<tr>" +
						"<td align='left' vAlign='top' class='smTextBold gray'>Land Use:</td>" +
						"<td align='left' vAlign='top' class='smText' colspan='3'>{LTAC_LANDUSE}</td></tr>" +
				"</table>"+
			"</div>" +
			strLinkContent +
        "</div>"
);//}}}
propTmplts[PropertyTypeEnum.homesAndOrAcreage][ViewStyleEnum.normal].compile();
propTmplts[PropertyTypeEnum.homesAndOrAcreage][ViewStyleEnum.gallery] = new Ext.Template(//{{{
	  "<div style='float:left; width:253px; padding:4px;'>" +
		"<div style='border:solid 1px #006699; padding:4px; width:242px; height:255px;'>" +
			"<div><a href='{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm'>" +
				"<img align='middle' width='234' height='196' border='0' alt='Click to View Property Detail' src='{MEDIASOURCE}' /></a></div>" +
			"<div class='smTextBold'>{ADDRESS}, {CITY} {ZIP_CODE:left(5)} <a href=\"{ADDRESS:spacer}-{CITY:spacer}-{ZIP_CODE:left(5)}_HAR{MLNUM}.htm\"><img src=\"../images/lineart/detail.gif\"></a></div>" +
			"<div>" +
				"<div style='float:left;text-align:left'> <span class='smTextBold green'>{LISTING_PRICE:currency}</span><BR></div> " +
				"<div class='smText' style='float:right; text-align:right'>{LT_ACRES} Acres</div>"+
			"</div>" +
			"<br style='clear:both'>" +
			"<div class='smText'>Country Homes/Acreage ({STATUS})</div>" +
		"</div>" +
	"</div>"
	
);//}}}
propTmplts[PropertyTypeEnum.homesAndOrAcreage][ViewStyleEnum.gallery].compile();
//}}}


var _viewStyle = ViewStyleEnum.normal;
var _recordsPerPage = 10;
var _pageNum = 1;
var _sort;
var _topPagerEl;
var _bottomPagerEl;

var ds;
var dsReduced ;
var cachedData;
var mapObj = null;
var oldSafari=false; //assume old is everything under 3
var criteriaToolBar;

Ext.onReady(function() {

   Ext.QuickTips.init();
	
	var foundMS=false;
	var uxa=navigator.userAgent.toLowerCase();
	//let's assume someone is actualy using a hacked version first... like us.
	if(uxa.indexOf("multisafari")>0){
		var nustr=uxa.substr(uxa.indexOf("multisafari/")+12,uxa.length);
		if(parseInt(nustr)<313){
			oldSafari=true;
			foundMS=true;
		}
	}
	if(uxa.indexOf("safari")>0 && !foundMS){
		var nustr=uxa.substr(uxa.indexOf("safari/")+7,uxa.length);
		if(parseInt(nustr)<313){
			oldSafari=true;
		}
	
	}
	if(true==oldSafari){
		Ext.lib.Ajax.setHeader=function(E) { };
	}
    
	ds = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({url:searchUrl}),
        reader: rdr
    });
    
    var lm = new Ext.LoadMask('wrapper', {store:ds})
    cachedData = Ext.get('listingData').dom.value;
    //{{{ capture cached variables or set defaults

    if( !Ext.isEmpty(Ext.get('listingPage').dom.value) ){
        _pageNum = Ext.get('listingPage').dom.value;
    }else{
        _pageNum = 1;
    }
	
	// Get View Style
    if( !Ext.isEmpty(Ext.get('listingStyle').dom.value) ){
        _viewStyle = Ext.get('listingStyle').dom.value;
		 
    }else{
        _viewStyle = ViewStyleEnum.normal;
    }
	
	// Get Record Per page
    if( !Ext.isEmpty(Ext.get('listingRPP').dom.value) ){
        //var rppMnuItem = Ext.menu.MenuMgr.get('rppMnu').items.get(Ext.get('listingRPP').dom.value);
        //rppMnuItem.checked = true;
        _recordsPerPage = parseInt(Ext.get('listingRPP').dom.value);
    }else{
        _recordsPerPage = 10;
    }
    
	// Get Sort By
    if( !Ext.isEmpty(Ext.get('listingSort').dom.value) ){
        //var sbMnuItem = Ext.menu.MenuMgr.get('sbMnu').items.get(Ext.get('listingSort').dom.value);
        //sbMnuItem.checked = true;
        _sort = Ext.get('listingSort').dom.value;
    }else{
        _sort = 'LISTING_PRICE,DESC';
    }
    //}}}

    createMenus();
    setProductTypeVisibility();
    if( Ext.isEmpty(cachedData) ){
		 // 
    }else{
        var o = {};
        o.Data = Ext.util.JSON.decode(unescape(Ext.get('listingData').dom.value));
        ds.loadData(o);
		
		 // setListingCriteriaMessage("<span>" + Ext.get('listingCriteria').dom.value + "</span>");
        var srt = _sort.split(',');
        ds.sort(srt[0], srt[1]);        
        initPagerControls(_recordsPerPage, ds.getTotalCount());
		  showPageData(_pageNum);
    }
	  setListingCriteriaMessage(Ext.get('listingCriteria').dom.value);
	
});


function setListingCriteriaMessage(msg){
    var srchCriteriaMsgEl = Ext.get('srchCriteriaMsg');
    srchCriteriaMsgEl.setHeight(0, false);
    srchCriteriaMsgEl.update(msg);
    var msgEl = srchCriteriaMsgEl.down('span');
    if(msgEl){
        srchCriteriaMsgEl.show();
    }
}


function maptoggle(btn,e){
	
	if(true==oldSafari){
		alert('This functionality is not supported for Safari version 1 browsers.');
		return;
	}
	
	// get Element object for toolbar.
	var list = criteriaToolBar.items;
	for(var i = 0; i<list.getCount(); i++)	{
		if( list.itemAt(i).text == 'Show Map' || list.itemAt(i).text == 'Hide Map' )	
			btn = list.itemAt(i);
	}
	// Now toggle between show and hide
	if(btn.getText()=='Show Map')
	{
		if(!HAR.apiIsLoaded)
		{
			// Create map if this is the first time showing map.
			Ext.getBody().dom.style.cursor = 'wait';
			
			if( Ext.isEmpty(cachedData) )
			{
				getListings(null,1);
			} 
			loadScript(); // <-- internally calling createMapObj()
			Ext.getBody().dom.style.cursor = 'auto';
		}
		else
		{
			btn.setText('Hide Map');
			var el = Ext.get('mapContainer');
			el.animate({height:{to:400}},.5,null,'easeIn');
		}
	}else if( e == 'closeMAP' )	{
		btn.setText('Show Map');
		var el = Ext.get('mapContainer');
		el.animate({height:{to:0}},.5,null,'easeOut');
	}
	
	// Show tools on Map
	if( e!='closeMAP' ) {
		//resetFields();
		$('#myControl').show();
	}
}


function createMenus(){
    
    var mglass = document.createElement('img');
    mglass.src = baseImageUrl +'magnifyingglass.gif';
    
    var srch = document.createElement('span');
	
    var ptMenu = new Ext.menu.Menu({id:'ptMenu',plain:true, minWidth: 200});
    var ptMenuItem = new Ext.menu.BaseItem({applyTo: 'ptFrmPnl', id: 'ptFrmPnl',hideOnClick:false});
    ptMenuItem.rendered = false;
    ptMenu.addItem(ptMenuItem);

    var locMenu = new Ext.menu.Menu({id:'locMenu', plain: true, minWidth: 560});
    var locMenuItem = new Ext.menu.BaseItem({applyTo: 'locFrmPnl', id: 'locFrmPnl',hideOnClick:false});
    locMenuItem.rendered = false;
    locMenu.addItem(locMenuItem);

    var lcMenu = new Ext.menu.Menu({id:'lcMenu', plain: true, minWidth: 470});
    var lcMenuItem = new Ext.menu.BaseItem({applyTo: 'lcFrmPnl', id: 'lcFrmPnl',hideOnClick:false});
    lcMenuItem.rendered = false;
    lcMenu.addItem(lcMenuItem);

    var ldaMenu = new Ext.menu.Menu({id:'ldaMenu', plain: true, minWidth: 460});
    var ldMenuItem = new Ext.menu.BaseItem({applyTo: 'ldaFrmPnl', id: 'ldaFrmPnl',hideOnClick:false});
    ldMenuItem.rendered = false;
    ldaMenu.addItem(ldMenuItem);
    
    //var crtMenu = new Ext.menu.Menu({id:'ldMenu', plain: true});
    //var crtMenuItem = new Ext.menu.BaseItem({applyTo: 'srchCriteriaMsg', id: 'srchCriteriaMsg',hideOnClick:false});
    //crtMenuItem.rendered = false;
    //crtMenu.addItem(crtMenuItem);

    criteriaToolBar = new Ext.Toolbar({
        renderTo:'criteriaBar'
    });
	
	if (Ext.get("search_id").dom.value == "" ) {
		criteriaToolBar.add(
				new Ext.Toolbar.Item(mglass),
				{
					text:'Property Type',
					tooltip: {
						text:'Select this to choose what types of properties to search on (Single Family, TownHouse etc.)',
						title:'Property Type Selection',
						autoHide:true
					},
					menu : ptMenu
				}, ' ',
				{
					text:'Location',
					tooltip: {
						text:'Select this to choose what location to search on.',
						title:'Location Selection',
						autoHide:true
					},
					menu : locMenu
				}, ' ',
				{
					text:'Criteria',
					tooltip: {
						text:'Select this to choose what criteria to search on.',
						title:'Criteria Selection',
						autoHide:true
					},
					menu : lcMenu
				}, ' ',
				{
					text:'Other',
					tooltip: {
						text:'Select this to choose Aminities, Lot Description, and Listing Features to search on.',
						title:'Criteria Selection',
						autoHide:true
					},
					menu : ldaMenu
				}, ' ',
				{
					text:'Map Tools',
					tooltip: {
						text:'Select where on the map you like to apply your search criteria.',
						title:'Map Search Area Selection',
						autoHide:true
					},
					handler: maptoggle
				}
		);
	}
	
	criteriaToolBar.add (
			'->',
			//'<span class="x-btn-text-icon"><img src="/images/icons/icoMap.gif"><a href="http://www.har.com/mapSearch/" target="_blank"><b>Map Search</b></a></span>', ' ',
			/*{ 	text:'Map Search',
				icon:'/images/icons/icoMap.gif',
				cls: 'x-btn-text-icon',
				handler: function(){nw=window.open('http://www.har.com/mapSearch/');}
			},*/
			{	id: 'showmap',
				text:'Show Map',
				icon:'/images/icons/iconMap3.gif',
				cls: 'x-btn-text-icon',
				handler: function(btn,e)
						{
							if(true==oldSafari){
								alert('This functionality is not supported for Safari version 1 browsers.');
								return;
							}
							
							if(btn.getText()=='Show Map'){
								if(!HAR.apiIsLoaded){
									Ext.getBody().dom.style.cursor = 'wait';
									
									 if( Ext.isEmpty(cachedData) ){
										getListings(null,1);
									  } 
									loadScript(); // <-- internally calling createMapObj()
								}else{
									btn.setText('Hide Map');
									var el = Ext.get('mapContainer');
									el.animate({height:{to:400}},.5,null,'easeIn');
								}
							}else{
								btn.setText('Show Map');
								var el = Ext.get('mapContainer');
								el.animate({height:{to:0}},.5,null,'easeOut');
							}	
						}
			}
	)
	
		
	var modifyMenu = "";
	if (Ext.get("search_id").dom.value > 0 ) {
	  	var modifyMenu =  {text:'Modify Saved Search',
	   		icon:'/images/lineart/edit.gif',
			cls: 'x-btn-text-icon',
			handler: function(){popupURL('myhf_dispEditCriteria.cfm?search_id=' + Ext.get("search_id").dom.value +appendRand() , 700, 650, '', 1);}
	   } 
	}
	else {
		 var modifyMenu =  {text:'Save This Search Criteria',
	   		icon:'/images/lineart/edit.gif',
			cls: 'x-btn-text-icon',
			handler: function(){popupURL('popFrmSaveSearch.cfm?src=do' , 640, 480, '', 1);}   
	   		}
	   }
    var actionBar = new Ext.Toolbar({id:'actionToolbar',renderTo:'actionBar'});
    actionBar.add(
        {
            id:'crtMsgBtn',
            cls: 'x-btn-text-icon', // icon and text class
            icon: baseImageUrl + 'viewCriteriaArrow.gif',
            text:'View Your Search Criteria',
            tooltip: {
                text:'Click here to view a summary of your search criteria.',
                autoHide:true
            },
            handler:function(){
                var srchCriteriaMsgEl = Ext.get('srchCriteriaMsg');
                var msgEl = srchCriteriaMsgEl.down('span');
                if(msgEl){
                    if(srchCriteriaMsgEl.getHeight() == 0){
                        var height = msgEl.getHeight();
                        srchCriteriaMsgEl.animate({height:{to:height}});
								this.setText ("Hide Your Search Criteria");
                    }else{
                        srchCriteriaMsgEl.animate({height:{to:0}});
								this.setText ("View Your Search Criteria");
                    }
                }
            }
        },
		modifyMenu,
        '->',
        {
            cls: 'x-btn-text-icon', // icon and text class
            icon: baseImageUrl + 'icoDSOut.gif',
            text:'Display Style',
            tooltip: {
                text:'Click to change the display options.',
                width: 200,
                autoHide:true
            },
            menu: {
                id:'dsMnu',items:[
                    new Ext.menu.CheckItem({
                        text: 'List',
                        checked: false,
                        group: 'count',
                        checkHandler: onViewStyleCheck,
                        value:ViewStyleEnum.list
                    }),
                    new Ext.menu.CheckItem({
                        text: 'Normal',
                        checked: true,
                        group: 'count',
                        checkHandler: onViewStyleCheck,
                        value:ViewStyleEnum.normal
                    }),
                    new Ext.menu.CheckItem({
                        text: 'Gallery',
                        checked: false,
                        group: 'count',
                        checkHandler: onViewStyleCheck,
                        value:ViewStyleEnum.gallery
                    })
                ]
            }
        },
        {
            cls: 'x-btn-text-icon', // icon and text class
            icon: baseImageUrl + 'icoRPPOut.gif',
            text:'Records Per Page',
            tooltip: {
                text:'Click to change the number of records displayed per page.',
                width: 200,
                autoHide:true
            },
            menu: {
                id:'rppMnu',items:[
                    new Ext.menu.CheckItem({
                        text: '5',
                        checked: false,
                        group: 'count',
                        checkHandler: onCountCheck,
                        value:5
                    }),
                    new Ext.menu.CheckItem({
                        text: '10',
                        checked: true,
                        group: 'count',
                        checkHandler: onCountCheck,
                        value:10
                    }),
                    new Ext.menu.CheckItem({
                        text: '25',
                        checked: false,
                        group: 'count',
                        checkHandler: onCountCheck,
                        value:25
                    }),
                    new Ext.menu.CheckItem({
                        text: '50',
                        checked: false,
                        group: 'count',
                        checkHandler: onCountCheck,
                        value:50
                    }),
                    new Ext.menu.CheckItem({
                        text: 'Show All',
                        checked: false,
                        group: 'count',
                        checkHandler: onCountCheck,
                        value:100
                    })
                ]
            }
        },
        {
            cls: 'x-btn-text-icon', // icon and text class
            icon: baseImageUrl + 'icoSBOut.gif',
            text:'Sort By',
            tooltip: {
                text:'Click to change the sorting.',
                width: 200,
                autoHide:true
            },
            menu: {
                id:'sbMnu',items:[
					new Ext.menu.CheckItem({
                        text:'Price Descending',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'LISTING_PRICE,DESC'
                    }),
                    new Ext.menu.CheckItem({
                        text:'Price Ascending',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'LISTING_PRICE,ASC'
                    }),
         			new Ext.menu.CheckItem({
                        text:'Address',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'ADDRESS,ASC'
                    }),
                    new Ext.menu.CheckItem({
                        text:'Subdivision',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'SUBDIVISION,ASC'
                    }),
					new Ext.menu.CheckItem({
                        text:'Key Map',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'KEYMAP,ASC'
                    }),
					new Ext.menu.CheckItem({
                        text:'Square Feet Descending',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'SQUARE_FEET,DESC'
                    }),
					new Ext.menu.CheckItem({
                        text:'Lot Size Descending',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'LOTSIZE,DESC'
                    }),
					new Ext.menu.CheckItem({
                        text:'Year Built Descending',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'YEAR_BUILT,DESC'
                    }),
					 new Ext.menu.CheckItem({
                        text:'Bedrooms Descending',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'BEDROOM_NUM,DESC'
                    }),
                    new Ext.menu.CheckItem({
                        text:'Bathrooms Descending',
                        checked:false,
                        group:'sort',
                        checkHandler:onSortCheck,
                        value:'FULL_BATH_NUM,DESC'
                    })
                ]
            }
        }
    )
    
    var layout = new Ext.Panel(
        {
            border:false,
            id:'contentPnl',
            items:[
                {
                    contentEl:'results',
                    id:'resultsPnl'
                },
                {
                    contentEl:'divMycart',
                    id:'divMycartPnl'
                }
            ],
            renderTo:'body_content'
        }
    );
    
}

function onViewStyleCheck(item){
    if( item.checked ){
        //Ext.get('listingStyle').dom.value = item.id;
		   Ext.get('listingStyle').dom.value = item.value;
		  _viewStyle = item.value;
		  if( Ext.isEmpty(cachedData) ){
      	 getListings(null,0);
    	  } else {
       		showPageData(_pageNum);
		  }
    }
}
function onCountCheck(item){
    if( item.checked ){
        //Ext.get('listingRPP').dom.value = item.id;
		  
        Ext.get('listingRPP').dom.value = item.value;
        _recordsPerPage = item.value;
        _pageNum = 1;
		  if( Ext.isEmpty(cachedData) ){
      	 getListings(null,1);
    	  } else {
        		initPagerControls(_recordsPerPage, ds.getTotalCount());  
        		showPageData(_pageNum);
		  }
    }
}
function onSortCheck(item){
    if( item.checked ){
        //Ext.get('listingSort').dom.value = item.id;
        Ext.get('listingSort').dom.value = item.value;
        _sort = item.value;
        var srt = item.value.split(',');
		  if( Ext.isEmpty(cachedData) ){
      	 getListings(null,1);
    	  } else {
			  ds.sort(srt[0], srt[1]);
			  showPageData(_pageNum);
		  }
    }
}

function closeMenu(mnuId){
    var el = Ext.menu.MenuMgr.get(mnuId);
    if(el!=null && el!=undefined){
        el.hide();
    }
}

function clearForm(id)
{
    var inputCtrl;

    for(var index=0;index<formGroups[id].wrappers.length;index++)
	{
        for(var cntrlIndex=0;cntrlIndex<formGroups[id].wrappers[index].inputs.length;cntrlIndex++)
		{
            inputCtrl = formGroups[id].wrappers[index].inputs[cntrlIndex];
            setInputValue(Ext.get(inputCtrl.id).dom, inputCtrl.defVal);
        }
    }
    if(id == 'propertyType')
	{
        setProductTypeVisibility();
    }
}

function onDataLoad(store, records, options){
	//alert("onDataLoad: "+records.length)
    loadPushPins(records);
}

function loadPushPins(records){
    var data;
    var property = {};

	HAR.deleteMarkers();
    var l = records.length;
	//alert("About to plot "+records.length+" pins");
    for(var i = 0; i < l; i++){
        data = records[i].data;
        if(data.LATITUDE && data.LONGITUDE){
            property.address = data.ADDRESS;
            property.bedRoomCount = data.BEDROOM_NUM;
            property.bathRoomCount = data.FULL_BATH_NUM;
            property.city = data.CITY;
            property.latitude = data.LATITUDE;
            property.listingPrice = data.LISTING_PRICE;
            property.longitude = data.LONGITUDE;
            property.mlnum = data.MLNUM;
            property.propertyClass = data.PROPERTY_CLASS;
            property.propertyClassId = data.PROPERTY_CLASS_ID;
            property.propertyTypeId = data.PROP_TYPE;
            property.squareFeet = data.SQUARE_FEET;
       		property.squareFeetSource = data.SQUARE_FEET_SRC;
       		property.status = data.STATUS;
            property.stories = data.STORIES;
            property.style = data.STYLE;
            property.subdivision = data.SUBDIVISION;
            property.yearBuilt = data.YEAR_BUILT;
       		property.yearBuiltSource = data.YEAR_BUILT_SRC;
            property.zip = data.ZIP_CODE;
            property.mediasource = data.MEDIASOURCE;
			property.ltAcres=data.LT_ACRES;
			var description = '';
            if(property.propertyClassId != HAR.PropertyTypeEnum.highriseCondominium 
               && property.propertyClassId != HAR.PropertyTypeEnum.townhouseCondo){

				description = "<div style='width:200px'>"+
					"<img src='" + property.mediasource + "' width='200'>" +
					"<div  id='propDetailDiv' style='font-size:10px; background-color:ffffff;width:200px'>"+
						"<br><span class='mdText blue'>"+Ext.util.Format.currency(property.listingPrice)+" </span><BR>" +property.propertyClass+" - " + property.status;

				if(property.bedRoomCount > 0){
					description += "<br>Bed:"+property.bedRoomCount;
				}
				if(property.bathRoomCount != ''){
					description += " / Bath:"+property.bathRoomCount;
				}
				if(property.squareFeet != '' && property.squareFeet != 'N/A'){
					description += "<br>SQFT: "+property.squareFeet;
				}
				if(property.squareFeetSource != ''){
					description += property.squareFeetSource;
				}
				if(property.ltAcres != ''){
					description+= "<br>Acres: "+property.ltAcres;
				}
				
				description+= "<BR>City:" +property.city+'<BR>Zip Code: '+property.zip
			  
				description += "<br><a href='dispSearch.cfm?mlnum="+property.mlnum+"&backButton=Y' target='_blank'>"+
					"<img src='../images/buttons/btnDetails.gif' border='0'></a></div>";

			}else if(property.propertyClassId == HAR.PropertyTypeEnum.highriseCondominium 
				|| property.propertyClassId == HAR.PropertyTypeEnum.townhouseCondo){
				
				description = "<div style='width:210px'>"+
					"<iframe src='http://www.har.com/mapsearch/multiListswithphoto.cfm?mlnum="+property.mlnum+"&latitude="+property.latitude+"&longitude="+property.longitude+
						"&zipcode="+property.zip+"&MAP_address="+property.address+"&pid="+property.propertyClassId+"' width='200px' height='360px' "+
						"scrolling='auto' frameborder='0' marginwidth='0' marginheight='0'></iframe>";
			}
			// Push the pin onto the map
			HAR.plotPin({
				lat: property.latitude,
				lng: property.longitude,
				pinIcon: HAR.pins.greenHouse,
				title: Ext.util.Format.currency(property.listingPrice),
				html:description
			});
        }
    }
    if(l > 0)
	{
        try
		{
			HAR.fitBoundsToMarkers();
			//alert("Loaded Pins");
        }
		catch(e){}
        
    }
}

function getfrmValues() {
	
	var frmValues = [];
    var grp;
    grp = formGroups.propertyType;
    getGroupValues(grp, frmValues);
    grp = formGroups.location;
    getGroupValues(grp, frmValues);
    grp = formGroups.criteria;
    getGroupValues(grp, frmValues);
    grp = formGroups.other;
    getGroupValues(grp, frmValues);
	// add map tools
	var inputs = Ext.query("*[id^=map_tools]");
	
	for (var i=0; i < inputs.length; i++ ) {
		 frmValues[inputs[i].name] = inputs[i].value;
	}
	return frmValues;
}

function getfrmValuesToString() {
	var frmValues = getfrmValues();
	var strURL = "";
	for (var x in frmValues) {
		if (x != 'remove' && x!= 'indexOf') {
			strURL = strURL + "&" + x + "=" + frmValues[x];
		}
	}
	return strURL;
}

function getListings(mnuId, firstpage){
	
    if(mnuId!=null){
        closeMenu(mnuId);
    }
	if(firstpage){_pageNum = 1}
    var frmValues = getfrmValues();
    ds.load({params:frmValues,callback:dataRequestCallback});
}

function showPage(num) {
	// called on top menu
	 _pageNum = num;
	 if( Ext.isEmpty(cachedData) ){
      	 getListings(null);
    } else {
		 showPageData(num)
	 }
}

function showPageData(pageNum){
	//alert(_viewStyle + ' inside function');
	_pageNum = pageNum;
   var el = Ext.get('resultsBody');
	if (_viewStyle == ViewStyleEnum.list) {
		 el.dom.innerHTML = "<table width='100%' class='table2' cellpadding='0' cellspacing='0'><tr><td width='150' class='smTextBold navy'>Address</td><td width='90' class='smTextBold navy'>Price</td><td width='140' class='smTextBold navy'>Prop Type (Status)</td><td class='smTextBold navy'>Description</td></tr></table>";
	}else{
        el.dom.innerHTML = "";
   }
    
    var pageCount = Math.ceil(ds.getTotalCount()/_recordsPerPage);
	
    if(pageNum < 1 || pageNum > pageCount){
        return;
    }

	var totalCount = ds.getTotalCount();
   var pageEl;

    pageEl = Ext.get('pgrBarTop').child('ul li.selected');
    if( pageEl != null ){
        pageEl.removeClass('selected');
    }
	 
    pageEl = Ext.get('pgrBarBottom').child('ul li.selected');
    if( pageEl != null ){
        pageEl.removeClass('selected');
    }
   
    Ext.get('listingPage').dom.value = pageNum;
    pageEl = Ext.get('pgrBarTop').child('ul li:nth-child('+(parseInt(_pageNum)+1)+')');
    if( pageEl != null ){
        pageEl.addClass('selected');
    }
    pageEl = Ext.get('pgrBarBottom').child('ul li:nth-child('+(parseInt(_pageNum)+1)+')');
    if( pageEl != null ){
        pageEl.addClass('selected');
    }

    if(_pageNum == 1){
        Ext.get('pgrBarTop').child('ul li:first-child').addClass('disabled');
        Ext.get('pgrBarBottom').child('ul li:first-child').addClass('disabled');
    }else{
        Ext.get('pgrBarTop').child('ul li:first-child').removeClass('disabled');
        Ext.get('pgrBarBottom').child('ul li:first-child').removeClass('disabled');
    }

    if(_pageNum == pageCount){
        Ext.get('pgrBarTop').child('ul li:last-child').addClass('disabled');
        Ext.get('pgrBarBottom').child('ul li:last-child').addClass('disabled');
    }else{
        Ext.get('pgrBarTop').child('ul li:last-child').removeClass('disabled');
        Ext.get('pgrBarBottom').child('ul li:last-child').removeClass('disabled');
    }
    
    // add a record
    var start = (_pageNum - 1) * _recordsPerPage;
    var end = start + _recordsPerPage;
    var rec;
    var tmpltData;
    var propClassId;

    for( var index = start;rec = ds.getAt(index), index < end && (rec!=null && rec!=undefined) ;index++ ){
        tmpltData = rec.data;
        Ext.apply(tmpltData, {curIndex:(index+1),ttlCnt:totalCount});
        propClassId = rec.data['PROPERTY_CLASS_ID'];
		//alert('propClassId=' + propClassId);
        if(propClassId=="7"){
            switch(rec.data['PROP_TYPE']){
                case 'SGL':
                    propClassId = PropertyTypeEnum.singleFamily;
                    break;
                case 'THC':
                    propClassId = PropertyTypeEnum.townhouseCondo;
                    break;
                case 'HIR':
                    propClassId = PropertyTypeEnum.highriseCondominium;
                    break;
                case 'LOT':
                    propClassId = PropertyTypeEnum.residentialLotsLand;
                    break;
                case 'MLT':
                    propClassId = PropertyTypeEnum.multiFamily;
                    break;
                case 'ACR':
                    propClassId = PropertyTypeEnum.homesAndOrAcreage;
                    break;
                default:
                    propClassId = PropertyTypeEnum.singleFamily;
                    break;
            }
        }else{
        }
        propTmplts[propClassId][_viewStyle].append(el, tmpltData);
		  if (_viewStyle == ViewStyleEnum.normal) {
			  	linkurl = Ext.util.Format.spacer(rec.data['ADDRESS'])+ "-" + Ext.util.Format.spacer(rec.data['CITY']) + "-" + rec.data['ZIP_CODE'].substr(1,5)+"_HAR" + rec.data['MLNUM'] + ".htm";
				writeReduced(rec.data['MLNUM'],rec.data['PRICECHANGEDFROM'],rec.data['LASTREDUCED'],rec.data['LISTING_PRICE'],linkurl)
		  }
    }
}

function writeReduced(mlnum, fromprice, rdate, price, url){
	//alert(fromprice);alert(price);
	if( fromprice > price){
		
		var rdnum = parseFloat(parseInt(fromprice) - parseInt(price));
		var pct = (rdnum/fromprice) *100;
		var dhtml = "<a  href=\"javascript:toggle(document.getElementById('box" + mlnum + "'))\"><img src=\"/images/icons/iconPriceReduction.gif\" height=\"15px\"> Reduced " +  pct.toFixed(2) +"%</a>"                
					+ "<div class=\"reducedBox\" id=\"box" +mlnum+ "\"  style=\"display:none\">"
					+ "						<div style=\"padding:15px; margin-left:15px\">"
					+ "							<div class=\"mdTextBold\" style=\"float:left\">Reduced " +  pct.toFixed(2) + "%</div>"
					+ "							<div style=\"float:right; cursor:pointer\" class=\"blue\" onclick=\"hidediv('box" + mlnum + "')\"> X &nbsp;&nbsp;</div>"
					+ "							<div class=\"spacer\"></div>"
					+ "							<div  class=\"smTextBold gray\">"
					+ "								<table width=\"100%\">"
					+ "								<tr><td width='130'>Original List Price:</td><td align=\"right\">" + Ext.util.Format.currency(fromprice) + "</td></tr>"
					+ "								<tr><td>Price Reduced:</td><td align=\"right\" class=\"blue\">-" + Ext.util.Format.currency(rdnum) +"</td></tr>"
					+ "								<tr><td>Current List Price:</td><td align=\"right\" class=\"bold\"> " + Ext.util.Format.currency(price) + " </td></tr>"
					+ "								<tr><td>Last Reduction on:</td><td align=\"right\">" + rdate + "</td></tr>"
					+ "								</table>"
					+ "							</div>"
					+ "							<div class=\"spacer\"></div>"
					+ "							<div style=\"float:right\"><a href=\"" + url + "\"><img src=\"images/listingDetail.png\" border=\"0\"/></a></div>"
					+ "						</div>"
					+ "					</div>";
		document.getElementById('rd'+mlnum).innerHTML = dhtml; 
	}
}

function nextPage(){
    showPageData(parseInt(_pageNum) + 1);
}

function prevPage(){
    showPageData(parseInt(_pageNum) - 1);
}

function getGroupValues(grp, frmValues){
    var inputCtrl;
    var val;
    for(var index=0;index<grp.wrappers.length;index++){
		
        for(var cntrlIndex=0;cntrlIndex<grp.wrappers[index].inputs.length;cntrlIndex++){
            inputCtrl = grp.wrappers[index].inputs[cntrlIndex];
            val = getInputValue(Ext.get(inputCtrl.id).dom);
            if(val!=null&& val!= ""){
                if(frmValues[inputCtrl.name]!=null && frmValues[inputCtrl.name]!=undefined  ){
                    frmValues[inputCtrl.name] += ',' + val;
                }else{
                    frmValues[inputCtrl.name] = val;
                }
            }
        }
    }
}

function getInputValue(domEl){
    var disabled = domEl.disabled;
    var name = domEl.name;
    var val = null;
    var nvPair = null;

    if (!disabled && name){
        switch (domEl.type){
            case 'select-one':
            case 'select-multiple':
                var valArray = [];
                for (var j = 0; j < domEl.options.length; j++) {
                    if (domEl.options[j].selected) {
                        if (Ext.isIE) {
                            valArray.push(domEl.options[j].attributes['value'].specified ? domEl.options[j].value : domEl.options[j].text);
                        }
                        else {
                            valArray.push(domEl.options[j].hasAttribute('value') ? domEl.options[j].value : domEl.options[j].text);
                        }
                    }
                }
                if( valArray.length > 0 ){
                    val = valArray[0];
                }
                for ( var index = 1; index < valArray.length; index++ ) {
                    val += ',' + valArray[index];
                }                
                break;
            case 'radio':
            case 'checkbox':
                if (domEl.checked) {
                    val = domEl.value;
                }
                break;
            case 'file':

            case undefined:

            case 'reset':

            case 'button':

                break;
            case 'submit':
                if(hasSubmit == false) {
                    val = domEl.value;
                }
                break;
            default:
                val = domEl.value;
				
                break;
        }
    }
    return val;
}

function setInputValue(domEl, val){

    switch (domEl.type){
        case 'select-one':
			if(Ext.isEmpty(val) || val.length==0 ){
			   	domEl.selectedIndex = 0;
            }
            break;
        case 'select-multiple':
            if(Ext.isEmpty(val) || (val instanceof Array && val.length == 0)){
                for (var j=0; j < domEl.options.length; j++) {
                    domEl.options[j].selected = false;
                }
            }else if(val instanceof Array){
                for(var i=0; i<val.length; i++){
                    for(var j=0; j < domEl.options.length; j++) {
                        if(domEl.options[j].value == val[i]){
                            domEl.options[j].selected = true;
                            break;
                        }
                    }
                }
            }else{
                for(var j=0; j < domEl.options.length; j++) {
                    if(domEl.options[j].value == val){
                        domEl.options[j].selected = true;
                        break;
                    }
                }
            }
            break;
        case 'radio':
        case 'checkbox':
            domEl.checked = val;
            break;
        case 'file':
        case undefined:
        case 'reset':
        case 'button':
            break;
        default:
            domEl.value = val;
            break;
	}
}

function dataRequestCallback(r, options, success){
  	//alert("dataRequestCallback: "+r.length+" "+success);
    if( success ){
        var srchCntEl = Ext.get('resultCountMsg');
        srchCntEl.dom.innerHTML = '<span class="mdTextBold">Search Result: </span>';
        
        if(ds.getTotalCount() < 100){
            srchCntEl.dom.innerHTML += '<span class="smText">(<span class="smText red">'+ds.getTotalCount()+'</span>) Records Found</span>'
        }else{
            srchCntEl.dom.innerHTML += '<span class="smText">(<span class="smText red">100+</span>) Records Found. Only 100 records are displayed. Please narrow down search criteria to get more specific results.</span>'
        }
        
        var srchCriteria = Ext.isEmpty(ds.reader.searchCriteriaString)?"":"<span>"+ds.reader.searchCriteriaString+"</span>";
        setListingCriteriaMessage(srchCriteria);
        // cache the criteria, with the span tag
        Ext.get('listingCriteria').dom.value = srchCriteria;
        
        // set the page to the first page of the new dataset
        initPagerControls(_recordsPerPage, ds.getTotalCount());
        
        // sort the data before caching it
        var srt = _sort.split(',');
        ds.sort(srt[0], srt[1]);
        
        showPageData(_pageNum);
        
        // cache the data
        (function(){
            var dataTEMP = [];
            for( var i = 0; i < r.length; i++ ){
                dataTEMP.push(r[i].json);
            }
            Ext.get('listingData').dom.value = Ext.util.JSON.encode(dataTEMP);
				cachedData = Ext.get('listingData').dom.value;
        }).defer(3);
       
		//alert('callback');
    }
}

function initPagerControls(rpp, rc){
		 var pager = createPagerObject(_recordsPerPage, ds.getTotalCount());
        
        var oldPgr;
        oldPgr = Ext.get('pgrBarTop').child('table.pager');
        if(oldPgr) oldPgr.remove();
        oldPgr = Ext.get('pgrBarBottom').child('table.pager');
        if(oldPgr) oldPgr.remove();

        Ext.DomHelper.append('pgrBarTop', pager);
        Ext.DomHelper.append('pgrBarBottom', pager);

}

function createPagerObject(rpp, rc){
	
    var pageCount = Math.ceil(rc/rpp);
    var pagerObject = {tag:'table','class':'pager'};
    
    var pagerObjectPages = [];
    
    for(var index = 1;index <= pageCount;index++){
        var pagerPage = (function(idx){
            return {
                tag:'li',
                cls:'item'+(index==1?' selected':''),
                title:'Show page '+index+' of '+pageCount,
                cn:[{tag:'span',cls:'text',html:index,onclick:'showPageData('+index+');'}]
            };
        })();
        pagerObjectPages[index-1] = pagerPage;
    }
    
    if( pagerObjectPages.length > 0 ){
        pagerObjectPages = [{tag:'li',cls:'first item backpointer',title:'Show Previous Page',cn:[{tag:'span',cls:'text',html:'Prev',onclick:'prevPage();'}]}].concat(pagerObjectPages);
        pagerObjectPages.push({tag:'li',cls:'item forwardpointer',title:'Show Next Page',cn:[{tag:'span',cls:'text',html:'Next',onclick:'nextPage();'}]});
        pagerObject.cn = [
            {tag:'tr',style:'font-size:8pt;font-weight:bold;white-space:nowrap',cn:[
                {tag:'td',cn:[
                    {tag:'span',html:'Page: '}
                ]},
                {tag:'td',cn:[
                    {tag:'ul',cls:'horizontal rootGroup',cn:pagerObjectPages}
                ]}
            ]}
        ];
    }else{
    }
    
    return pagerObject;
}

function loadScript()
{
 	/*
	
	if(typeof HAR.VEMapUtil== "undefined" || typeof VEMap =="undefined" )
	{	
		var head = document.getElementsByTagName("head")[0];
    	var script1 = document.createElement('script');
		script1.id = 'mapControlScript';
		script1.type = 'text/javascript';
		script1.src = "http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.3&mkt=en-us";
		head.appendChild(script1);   
		
		var script2 = document.createElement('script');
		script2.id = 'mapControlScript2';
		script2.type = 'text/javascript';
		script2.src = "/js/HAR.VEMapUtil.js";
		head.appendChild(script2);
        return;
    }
	
	if(typeof HAR.map =="undefined")
	{
		var head = document.getElementsByTagName("head")[0];
    	var script1 = document.createElement('script');
		script1.id = 'mapControlScript';
		script1.type = 'text/javascript';
		script1.src = "http://stg-www.har.com/js/googleMap.js";
		head.appendChild(script1);
	}
	
	*/
	if( !HAR.apiIsLoaded )
		HAR.initialize({domElement:"srchMap",callback:createMapObj,streetViewControl:false,mapTypeControlStyle:"DROPDOWN_MENU"}); 
	else
		createMapObj();
	
}

var loadcount = 0; 
function createMapObj()
{	
	/*loadcount = loadcount +1;
	if( (typeof HAR.VEMapUtil == "undefined" || typeof VEMap == "undefined" ) && loadcount < 5 )
	{
    	createMapObj.defer(1000, this);
        return;
    }
	
	if ( (typeof HAR.VEMapUtil== "undefined" || typeof VEMap =="undefined" ) && loadcount >= 5 ){
		alert("We are sorry that map couldn't be loaded properly at this moment. Please try later.");
		return;
	}
	
    mapObj = new HAR.VEMapUtil({
           		mapContainer:'srchMap',
            	customIcon:"../images/pointers/housePointerBlue.gif"
        	});
    
	map	=	mapObj.map;*/
	
	// get Element object for toolbar.
	var btn;
	var list = criteriaToolBar.items;
	for(var i = 0; i<list.getCount(); i++)	{
		if( list.itemAt(i).text == 'Show Map' || list.itemAt(i).text == 'Hide Map')	
			btn = list.itemAt(i);
	}
	
	redrawMapSettings();
    ds.addListener({'load': onDataLoad});
    loadPushPins(ds.getRange());
    
	
    Ext.getBody().dom.style.cursor = 'default';
    
    btn.setText('Hide Map');
    var el = Ext.get('mapContainer');
    el.animate({height:{to:400}},.5,null,'easeIn');
}

var RecordDef = Ext.data.Record.create([//{{{
    {name:"AC_HOUSE"},
    {name:"AC_ROAD_FRONTAGE"},
    {name:"ADDRESS"},
    {name:"AGENTNAMEDISP"},
    {name:"BEDROOM_NUM"},
	{name:"BOOKMARKED"},
	{name:"BUILDINGID"},
	{name:"BIULDINGNAME"},
	{name:"CD_BLDG_STORY"},
    {name:"CITY"},
    {name:"FRONT_DOOR"},
    {name:"FULL_BATH_NUM"},
    {name:"GARAGE_DESC"},
    {name:"GARAGE_NUM"},
    {name:"HALF_BATH_NUM"},
    {name:"HRCD_UNIT_LEVEL"},
    {name:"HR_PARKING_SPACE"},
    {name:"HR_VIEW"},
	{name:"LASTREDUCED"},
    {name:"LATITUDE", type:"float", sortType:Ext.data.SortTypes.asFloat},
    {name:"LISTING_PRICE", type:"int", sortType:Ext.data.SortTypes.asInt},
    {name:"LOFT"},
    {name:"LONGITUDE", type:"float", sortType:Ext.data.SortTypes.asFloat},
    {name:"LOTSIZE", type:"int", sortType:Ext.data.SortTypes.asInt},
	{name:"LOTSIZE_SRC"},
    {name:"LTAC_IMPROVEMENT"},
    {name:"LTAC_LANDUSE"},
    {name:"LT_ACRES"},
    {name:"LT_RESTRICTION"},
    {name:"MAP"},
    {name:"MEDIASOURCE"},
    {name:"MEMBEREMAIL"},
    {name:"MEMBER_NUMBER"},
    {name:"MFAC_BUILDING_TYPE"},
    {name:"MF_UNIT_NUM"},
    {name:"MLNUM", type:"int", sortType:Ext.data.SortTypes.asInt},
    {name:"MRKT_AREA"},
    {name:"NEW_CONSTR"},
    {name:"OFFICEEMAIL"},
    {name:"OFFICENAMEDISP"},
    {name:"OFFICE_ID"},
    {name:"OPENHOUSE_YN"},
    {name:"PHONE"},
    {name:"PHOTO"},
	{name:"PRICECHANGEDFROM"},
	{name:"PRIVATE_POOL"},
    {name:"PROPERTY_CLASS"},
    {name:"PROPERTY_CLASS_ID"},
    {name:"PROP_TYPE"},
    {name:"SQUARE_FEET", type:"int", sortType:Ext.data.SortTypes.asInt},
	{name:"SQUARE_FEET_SRC"},
	{name:"STATUS"},
    {name:"STORIES"},
    {name:"STYLE"},
    {name:"SUBDIVISION"},
    {name:"VT"},
    {name:"YEAR_BUILT",type:"int", sortType:Ext.data.SortTypes.asInt},
	{name:"YEAR_BUILT_SRC"},
    {name:"ZIP_CODE"}
]);//}}}

var rdr = new HARSEARCH.doSearch.ArrayReader(
    {
        totalProperty: "RC",
        root: "Data",
        id: 'MLNUM'
    },
    RecordDef
);
