/****************************************************************************************************/
/*                           CORCORAN MAPS/CorcoranMapXMLHttpClient				 					*/
/* 						This file is used to send XML and Http request to the server 				*/
/*						and redirect the data to the appropriate processing function 				*/
/*											Date Created: 09/06/2006		 						*/
/*																			 						*/
/*						Copyright © 2006 The Corcoran Group, Inc. All Rights Reserved 				*/
/****************************************************************************************************/
//<![CDATA[
		   
var ServiceURL 	= 		SetServiceUrl();//(document.URL.toLowerCase().match("http://www.corcoran.com/cmembers/") != null || document.URL.toLowerCase().match("http://www.corcoran.com/index.aspx") != null || document.URL.toLowerCase().match("http://www.corcoran.com/property/openhouseplanner/") != null)?"http://www.corcoran.com/property/openhouseplanner/CorcoranMapService.aspx?":(document.URL.toLowerCase().match("http://corcoran.com/cmembers/") != null || document.URL.toLowerCase().match("http://corcoran.com/index.aspx") != null || document.URL.toLowerCase().match("http://corcoran.com/") != null)? "http://corcoran.com/cmembers/CorcoranMapService.aspx?":"CorcoranMapService.aspx?";		// The server-side script
//var ServiceMemberURL 	="CorcoranMapService.aspx?";	// The server-side script
var HttpObject 	= 		getHTTPObject();				// the HTTP Object
var HttpInfoObject 	= 	getHTTPObject();				// the HTTP Object
var HttpHopStopObject=	getHTTPObject();
var HttpSendMailObject=	getHTTPObject();
var isWorking 	= 		false;
var isAsync		=		true;							//synchronous or asynchronous request
var requestType	=		"";							//holds the request type //all listings
var subRequest	=		"";							//holds the subpart of the request //eg manhattan
var ngbhInfoType=		"";							//
var subOHDat    =       "";         //holds open house date
var recieverType=		"";
var r_count		=		0;
var start		=		0;								  //initial position for getting data from the ServiceUrl
var increment	=		50;								//the ending value for each result set. It is increase by s_limit
var s_limit		=		50;								//the amount of listings to return at a time
var srchOpLoaded=		false;					//reuse already loaded footer search options
var sortOpLoaded=		false;					//reuse already loaded header options
var isPostBack	=		false;
var sortorder	=		"price";					//the default sortorder
var q_detail	=		"";								//string containg built user search preferences
var t_count		=		"";
var count_by	=		"";								//used to return total listings count to the right searchtype
//var find_errs	=		0;							//temporary variable used for tracing the code and finding errors

function SetServiceUrl()
{
	 var svc="";
	 var u=(document.URL.toLowerCase().match("www.corcoran.com") != null)?"www.corcoran.com":"corcoran.com";
	 if(document.URL.toLowerCase().match("corcoran.com/cmembers/") != null)
			svc="http://"+u+"/cmembers/CorcoranMapService.aspx?";
	else if (document.URL.toLowerCase().match("corcoran.com/property/openhouseplanner")!= null)
			svc="http://"+u+"/property/openhouseplanner/CorcoranMapService.aspx?";
	else if (document.URL.toLowerCase().match("corcoran.com/property/maps")!= null)
			svc="http://"+u+"/property/maps/CorcoranMapService.aspx?";
	else 
		svc="http://"+u+"/cmembers/CorcoranMapService.aspx?";
		
		return svc;
	 	
}
function HandleHttpResponse() {
//alert('in Http Response');
//alert(HttpObject.readyState)
	if (HttpObject.readyState == 4) {
			//alert(HttpObject.responseText);
   		if (HttpObject.responseText.indexOf('invalid') == -1) {
      //alert('requestType');
      //alert(requestType);
			results = HttpObject.responseText;			
			isWorking = false;
			//alert('in Http Response type');
			//alert(requestType);
			switch(requestType)
			{
				case "AllListings":
				{ 
					ProcessAllListings(results,subRequest);
					break;
					}
				case "ListingsCount":
					switch(count_by)
					{
						case "ngbh":
						{  //// //alert('in ngbh');
							SendSearchByNeighborhoods(results);
							break;
							}
						default:
						{
						    //alert('in processloading');
							ProcessLoading(results);
							break;
					    }
					}
					break;
					
				case "SaveSrchAllListings":
				    //alert('in Response SaveSrchAllListings');
				    //alert(results);
				    DisplaySaveSrch(results);
					break;
				case "EditMapSearch":
				    //alert('in Response EditMapSearch');
					//alert(results);
				    DisplayModifiedSrch(results);
				    break;
				case "DisplaySavesrchtable":
					//alert("DisplaySavesrchtable");
					DisplaySavesrchtble(results);
					break;
				case "LoadArea":
				{
				    //alert('LoadArea');
				    //alert(results);
					SearchbyArea(results);
				}
					break;
				case "Delserach":
				    DisplayData(results);
					break;
				case "CHome_NewestListings":
				    //alert('CHome_NewestListings');
				    //alert(results);
					//alert(document.URL);
				    ProcessCHomeNewListing(results);
				    break;
				case "CHome_FeaturedListings":
				    //alert('CHome_FeaturedListings');
				    //alert(results);
				    ProcessCHomeNewListing(results);
				    break;
				case "Clearcookies":
				   // //alert('call function');
				   // //alert(results);
				    DisplayHomemenu();
				    break;
				case "CHome_Openhouses":
				    //alert('CHome_Openhouses');
				    //alert(results);
				    ProcessCHomeNewListing(results);
				    break;
				case "CHome_MostViewedNow":
				    //alert('IN CHome_MostViewedNow');
				    //alert(results);
				    ProcessCHomeMostviewedListing(results);
				    break;
				case "CHome_MostViewedThisweek":
				    //alert('IN CHome_MostViewedThisweek');
				    //alert(results);
				    ProcessCHomeMostviewedListing(results);
				break;
				case "EmailSubscription":
						//alert(results);
						showEmailSubscription();						
				break;
				case "ViewasList":
				//Do Nothing
				break;
				case "LnkbtnLogoutRequest":
				{
						  //alert(results);
				      setDefaultPage();
				}
				break;
				case "HomepagePanel":
				{
					//alert('in HomepagePanel');
					//alert(results);
					//alert('in set homepage HTTPResponse function');
					//<h1>Length Required</h1>
					if(results == "<h1>Length Required</h1>")
						 results = "";
						 
					setHomepage(results);
				}
				break;
				case "EmailMyListings":
				{
					//alert("EmailMyListings called");
					//alert(results);
					//document.write(results);
					ShowConfirmation();
				}
				break;
				case "DeleteMyListings":
				ShowMyListings();
				break;
				case "ngbhdisplay":
				    Displayngbhplanner(results);
                break;
				default://"SrchAllListings"://"NewestListings"://"FeaturedListings"://"OpnhseListings":
					if(document.URL.toLowerCase().match("openhouseplanner")){
                    ProcessOpenhouseData(results,subRequest);
						}
					else{   //alert('in AllListings');
				          //alert(results);
				            ProcessListingsData(results,subRequest);					
					}
					break;				
			}
		}
	}

}



function HandleHttpInfoResponse(){
	if (HttpInfoObject.readyState == 4) {
		if (HttpInfoObject.responseText.indexOf('invalid') == -1) {
			results = HttpInfoObject.responseText;
			ProcessNeighborhoodInfo(results);
		}
	}
}

function HandleHttpHopStopResponse(){

	if (HttpHopStopObject.readyState == 4) {
	//alert(results);
		if (HttpHopStopObject.responseText.indexOf('invalid') == -1) {
			results = HttpHopStopObject.responseText;
			ProcessHopStopInfo(results);
		}
	}
}
function HandleSendMailHttpResponse(){
	if (HttpSendMailObject.readyState == 4) {
		if (HttpSendMailObject.responseText.indexOf('invalid') == -1) {
			results = HttpSendMailObject.responseText;
			switch(requestType){
				case "email":
					ProcessSendMailResponse(results);
					break;
				case "phone":
					ProcessSendMailResponse(results);
					break;
				case "fax":
					ProcessSendMailResponse(results);
					break;
				default:
					ProcessSendMailResponse(results);
					break;
			}
		}
	}
}
function SendMailXmlHttpRequest(type,reciever,provider) {
	transType=type;
	if (!isWorking && HttpSendMailObject) {
	  	HttpSendMailObject.open("POST", ServiceURL +"type="+ escape(type)+"&subtype=&start=0&increment=0&reciever="+escape(reciever)+"&starting="+escape(HopStopAdr)+"&ending="+escape(destAdr)+"&borough="+escape(borough)+"&boroughA="+escape(boroughA)+"&selectedDate="+escape(selectedDate)+"&provider="+escape(provider)+"&Ohdate=", true);	
	  	HttpSendMailObject.onreadystatechange = HandleSendMailHttpResponse;	
	  	HttpSendMailObject.send('');
	}
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) document.write(c.substring(nameEQ.length,c.length));
	}
	return null;
}
function sendxmlngbhdisplayrequest(m,b,q,f,h)
{
	requestType = "ngbhdisplay";

	if (!isWorking && HttpObject) {
	  	HttpObject.open("POST", ServiceURL +"type=ngbhdisplay&man="+ escape(m)+"&brk="+escape(b)+"&que="+escape(q)+"&fl="+escape(f)+"&hmp="+escape(h),true);	
	  	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
	}
}
/*function SendXmlHttpRequest(type,subtype) {//eg type=srchalllistings, subtype=manhattan
	requestType=type;
	subRequest=subtype;
	if (!isWorking && HttpObject) {
	  HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment, true);	
	  HttpObject.onreadystatechange = HandleHttpResponse;	
	  HttpObject.send('');
	}
}*/
function sendDelSearchRequest(vsrchname,reqType)
{
var vsearchname = "";
vsearchname = vsrchname;
requestType=reqType;
if (!isWorking && HttpObject) {
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(reqType)+"&delsrchname="+vsearchname, true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }

}

function SendXMLMyListingRequest(reqType,ListingIDs)
{
	//alert('in SendXMLMyListingRequest');
	requestType=reqType;
	if (!isWorking && HttpObject) {
	//alert('in request sent');
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(reqType)+"&MyListingIDs="+ListingIDs, true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}
function SendXMLDelMyListingRequest(reqType)
{
		//alert('in SendXMLMyListingRequest');
	requestType=reqType;
if (!isWorking && HttpObject) {
	//alert('in request sent');
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(reqType), true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}

/*function  Requestupdateddata(type)
{
requestType=type;
if (!isWorking && HttpObject) {
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(requestType), true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}*/
 function SendChomeXmlHttpCookieRequest(vreq)
 {
    requestType = vreq;
    //alert('sendchomexmlhttp');
    //alert(requestType);
	if (!isWorking && HttpObject) {
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(vreq), true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
 }
 
 function sendHomepageXMLHttpRequest(vreq)
 {
    requestType = vreq;
    //alert('sendchomexmlhttp');
    //alert(requestType);
    //alert(ServiceURL);
  
	
	
	
	
	
	
    var vvarvalue = "";
	  if (!isWorking && HttpObject) {
	 	//HttpObject.open("POST", ServiceURL +"type="+ escape(vreq)+"&subtype="+vvarvalue+"&start="+vvarvalue+"&increment="+vvarvalue+"&Ohdate="+vvarvalue, true);	
	 	if (navigator.appVersion.indexOf("MSIE")!=-1){//IE
	 		HttpObject.open("POST", ServiceURL +"type="+ escape(vreq),true);
	 	}
	 	else if(navigator.userAgent.indexOf("Firefox")!=-1){//firefox
	 		//alert('Browser type is firefox') ;
	 		//HttpObject.open("POST", ServiceURL +"type="+ escape(vreq)+"&subtype="+vvarvalue+"&start="+vvarvalue+"&increment="+vvarvalue+"&Ohdate="+vvarvalue, true);	
	 		HttpObject.open("POST", ServiceURL +"type="+ escape(vreq)+"&subtype=&start=&increment=&Ohdate=", true);	
	 		}
	 		
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
 }
function SendXmlHttpRequest(type,subtype,stOhdat) {	
	//alert('SendXmlHttpRequest');
	//alert(type);
	//alert(subtype);
	requestType=type;
	subRequest=subtype;
	subOHDat = stOhdat;

	if (!isWorking && HttpObject) {
		//alert('in send request');
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&Ohdate="+subOHDat, true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}

function SendXMLHttpLogoutRequest(type,subtype,stOhdat,strptype)
{
	requestType=type;
	subRequest=subtype;
	subOHDat = stOhdat;
  
  //alert('SendXMLHttpLogoutRequest');
	//alert(ServiceURL);
	
	if (!isWorking && HttpObject) {
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&Ohdate="+subOHDat, true);	
	 	//HttpObject.open("POST", ServiceURL +"type="+ escape(type), true);	
		HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}

function SendXmlEmailHttpRequest(type,subtype,stOhdat,strptype,ve1,ve2,ve3,ve4,ve5,ve6) {	
	//alert('SendXmlEmailHttpRequest');
	//alert(ve6);
	////alert(type);
	requestType = type;
	subRequest = subtype;
	subOHDat = stOhdat;

	if (!isWorking && HttpObject) {
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&Ohdate="+subOHDat+"&ptype="+strptype+"&e1="+ve1+"&e2="+ve2+"&e3="+ve3+"&e4="+ve4+"&e5="+ve5+"&e6="+ve6, true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}

function SendChomeXmlHttpRequest(type,subtype,stOhdat,pnl,chborough,slist,solist){
	//alert('SendChomeXmlHttpRequest');
	//alert(slist);
	//alert(type);
	//alert(subtype);
	requestType=type;
	subRequest=subtype;
	subOHDat = stOhdat;

	if (!isWorking && HttpObject) {
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&Ohdate="+subOHDat+"&panelno="+pnl+"&cborough="+chborough, true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}

/*function SendChomeXmlHttpRequest(type,subtype,stOhdat,pnl,chborough){
	//alert('SendChomeXmlHttpRequest');
	//alert(type);
	requestType=type;
	subRequest=subtype;
	subOHDat = stOhdat;

	if (!isWorking && HttpObject) {
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&Ohdate="+subOHDat+"&panelno="+pnl+"&cborough="+chborough, true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}*/
function sendDisplaySrchtableRequest(type,subtype,stOhdat,detail)
{
//alert('step2');
subRequest=subtype;
subOHDat = stOhdat;
requestType=type;
	if (!isWorking && HttpObject) {
	 	//HttpObject.open("POST", ServiceURL +"type="+ escape(requestType));	
		HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&Ohdate="+subOHDat+"&SrchDate="+SrchsaveDate+"&SrchName="+SrchName+"&s_detail="+detail, true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }


}
function SendXmlHttpSaveRequest(type,subtype,stOhdat,detail) {	
	requestType=type;
	subRequest=subtype;
	subOHDat = stOhdat;

	if (!isWorking && HttpObject) {
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&Ohdate="+subOHDat+"&SrchDate="+SrchsaveDate+"&SrchName="+SrchName+"&s_detail="+detail, true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}

function SendXmlLoadHttpRequest(type,subtype,stOhdat)//"LoadArea"
{
    requestType=type;
	subRequest=subtype;
	subOHDat = stOhdat;
    //alert(requestType+" : "+ServiceURL+" : "+subRequest+" : "+subOHDat+" : "+SrchsaveDate+" : "+SrchName);
	if (!isWorking && HttpObject) {
	    ////alert(SrchsaveDate);
 	    ////alert(SrchName.value);
 	    ////alert('SendXmlLoadHttpRequest');
	 	HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+subRequest+"&start="+escape(start)+"&increment="+increment+"&Ohdate="+subOHDat+"&SrchDate="+SrchsaveDate+"&SrchName="+SrchName, true);	
	 	HttpObject.onreadystatechange = HandleHttpResponse;	
	  	HttpObject.send('');
    }
}


function SendXmlHttpHopStopRequest(_end){
	var type='direction';
	destAdr=_end;
	boroughA=subRequest;
	//if(subRequest!="hamptons" && subRequest!="palmbeach"){
		if (!isWorking && HttpHopStopObject) {
		  HttpHopStopObject.open("POST", ServiceURL +"type="+ escape(type)+"&starting="+escape(HopStopAdr)+"&ending="+escape(_end)+"&borough="+escape(borough)+"&boroughA="+escape(boroughA)+"&Ohdate=", true);	
		  HttpHopStopObject.onreadystatechange = HandleHttpHopStopResponse;	
		  HttpHopStopObject.send('');
		}
	//}
	//else{
		//SetNonNYCDirections();
	//}
}
function SendPreciseXmlHttpRequest(type,subtype,detail,openhdate){	
	if(requestType!=type){requestType=type};
	if(subRequest!=subtype){subRequest=subtype};
	if (!isWorking && HttpObject) {	 
		//subwayline = "";
		//////alert(SrchsaveDate);
 	  ////  //alert(SrchName);
	  HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&s_detail="+detail+"&subway_line="+escape(subwayline)+"&Ohdate="+openhdate, true);	
	  HttpObject.onreadystatechange = HandleHttpResponse;	
	  HttpObject.send('');
	}
}

function SendEditPreciseXmlHttpRequest(type,subtype,detail,openhdate,subwayline)
{
    //alert('SendEditPreciseXmlHttpRequest');
    //alert(subwayline);
    if(requestType!=type){requestType=type};
	if(subRequest!=subtype){subRequest=subtype};
	if (!isWorking && HttpObject) {	 
		
	////	//alert(SrchsaveDate);
 	////    //alert(SrchName);
	  HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&s_detail="+detail+"&subway_line="+escape(subwayline)+"&Ohdate="+openhdate+"&SrchDate="+SrchsaveDate+"&SrchName="+SrchName, true);	
	  HttpObject.onreadystatechange = HandleHttpResponse;	
	  HttpObject.send('');
	}

}
function SendSavePreciseXmlHttpRequest(type,subtype,detail,openhdate)
{
//alert('SendSavePreciseXmlHttpRequest');
//alert(detail);
	if(requestType!=type){requestType=type};
	if(subRequest!=subtype){subRequest=subtype};
	if (!isWorking && HttpObject) {	 
	  HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&subtype="+escape(subRequest)+"&start="+escape(start)+"&increment="+increment+"&s_detail="+detail+"&subway_line="+escape(subwayline)+"&Ohdate="+openhdate+"&SrchDate="+SrchsaveDate+"&SrchName="+SrchName, true);	
	  HttpObject.onreadystatechange = HandleHttpResponse;	
	  HttpObject.send('');
	}

}

function SendViewListPreciseXmlHttpRequest(type,detail,v1,v2,v3)
{
if(requestType!=type){requestType=type};
	//if(subRequest!=subtype){subRequest=subtype};
	if (!isWorking && HttpObject) {	 
	  HttpObject.open("POST", ServiceURL +"type="+ escape(requestType)+"&s_detail="+v3+"&v1="+v1+"&v2="+v2, true);	
	  HttpObject.onreadystatechange = HandleHttpResponse;	
	  HttpObject.send('');
	}

}


function SendNgbhInfoXmlHttpRequest(type,ngbhinfo_areas){	
	ngbhInfoType=type;
	if (!isWorking && HttpInfoObject) {
	  HttpInfoObject.open("POST", ServiceURL +"type="+ escape(type)+"&ngbh="+escape(ngbhinfo_areas)+"&infotype=NgbhInfo&subtype="+escape(subRequest)+"&Ohdate=", true);	
	  HttpInfoObject.onreadystatechange = HandleHttpInfoResponse;	
	  HttpInfoObject.send('');
	}
} 
function getHTTPObject() {

  var xmlhttp;

  
  /*@cc_on

  @if (@_jscript_version >= 5)

    try {

      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e) {

      try {

        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (E) {

        xmlhttp = false;

      }

    }

  @else

  xmlhttp = false;

  @end @*/
	 if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {

    try {

      xmlhttp = new XMLHttpRequest();
	  //xmlhttp.overrideMimeType('text/xml');

    } catch (e) {

      xmlhttp = false;

    }

  }
  



  return xmlhttp;

}
 //]]>