﻿var FirstLogin = false;
var url = window.location.href;
var nohttp = url.split('//')[1];
var hostPort = nohttp.split('/')[0];

var baseUrl = 'http://' + hostPort;
//var baseUrl = 'http://localhost:4557'; //'http://wwwqa.koenigstrey.com';http://localhost:4557
var LoadingImage = baseUrl + '/img/loadingAnimation.gif';
var SessionVariable = null;
function GetSessionValue(service, params, OnSuccess)
{
    $.ajaxSetup({
        timeout: 100000,
        dataType: "json",
        error: function(xhr) {
            if (xhr.status == 404) return null;
        }
    })

	 $.post(baseUrl + "/services/"+service+".aspx",params, OnSuccess);
}

/*
	functionality (Have to wait until meta is changed 4/24/2009)
	itm="1" nam="View Property (Result)
	itm="2" nam="View Property (Detail)
	itm="3" nam="Logon
	itm="4" nam="Inquire Property
	itm="5" nam="Print Property Detail Page
	itm="6" nam="Email this Property Detail Page
	itm="7" nam="Save this Listing
	itm="8" nam="Rate this Listing
	itm="9" nam="Property Comments
	itm="10" nam="Save this Search
	itm="11" nam="View Virtual Tour
	itm="12" nam="View Mortgage Calculator
	itm="13" nam="Map Property
	itm="14" nam="Schedule A Showing
	itm="15" nam="Remove Saved Listing
	itm="16" nam="Edit Email Frequency
*/
function DoLoginAndProcess(fnty, param, needLogin) {
    if(needLogin)
    {
        GetSessionValue('GetLoginStatus', 'time=' + Math.random(),
		  function(Session) {
		    //alert("["+Session+"]");
		      params = param;
		      functionality = fnty;
		      NeedLogin = false;
		      var sPage = window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1);

		      if ((Session.ContactKey == null) || (Session.ContactKey == 'undefined') || (Session.ContactKey == '')) NeedLogin = true;
		      if (NeedLogin) {
		          tb_show("Login", baseUrl + "/Popup/Popup_HomeAlertLogin.aspx?height=225&width=480&fun=" + fnty + "&PageName=" + sPage + "&param=" + escape(param), null);
		      } else {
		          SessionVariable = Session;
		          DoProcess(fnty);
		      }
		  }
		  );
    }
    else
    {
        params = param;
        functionality = fnty;
        DoProcess(fnty);
        
    }
}




function DoLogin(msgcontainer, frm, OnSucess)
{
    $("#"+msgcontainer).html('<img src="'+LoadingImage+'" />');
    
    //values in the forms
    var myfrmval=$("#" + frm).serialize();
    
    //setting up the ajax values
    $.ajaxSetup(
    {
        timeout:100000,
        dataType:"text",
        error:function(xhr)
        {
            $("#"+msgcontainer).html(xhr.status);
        }
    }
    )
    //ajax call
    $.post(baseUrl + "/services/UserLogin.aspx", myfrmval, OnSucess);
}

function DoProcess(loginStatus) {
    GetSessionValue('GetLoginStatus', 'time=' + Math.random(),
	      function(Session) {
	          _UserKey = Session.ContactKey;
	          $("#RegisterLi").hide(); 
	          if (isNaN(loginStatus)) {
	              $("#msgLoginStatus").html(loginStatus);
	              return;
	          }

	          switch (functionality) {
	              case 3: location.replace(baseUrl + '/NewAccount.aspx'); break;
	              case 4: tb_show("Inquire About this Property", baseUrl + "/Popup/Popup_RequestInfo.aspx?height=455&width=480&" + params, null); break;//560
	              case 6: tb_show("Email This Property", baseUrl + "/Popup_EmailListing.aspx?height=325&width=400&" + params, null); break;
	              case 7: tb_remove(); SaveListings(params); break; /////tb_show("Save this Property", "Popup_SaveListing.aspx?height=200&width=400&"+params, null); break;
	              case 8: tb_remove(); SaveListings(params); $(".rate_property").click(function() { $(".rate_property").html(""); }); break;
	              case 9: tb_remove(); SaveListings(params); break;
	              case 10: tb_show("Save Search", baseUrl + "/Popup/Popup_SaveSearch.aspx?height=200&width=400&preSearch=true&" + params, null); break; //Save Search from search page
	              //case 12: tb_show("Mortgage Calculator", "Popup_MortgageCalculator.aspx?height=425&width=480&"+params, null); break;       
	              //case 13: window.open(params); break;   
	              case 14: tb_show("Schedule a showing", baseUrl + "/Popup/Popup_ScheduleShowing.aspx?height=425&width=480&" + params, null); break;
	              case 15: tb_remove(); RemoveListings(params); break;
	              //case 16: tb_remove(); GetMarketTracker(params); break;
	              case 101: tb_show("Forgot Password", baseUrl + "/Popup/Popup_ForgotPassword.aspx?KeepThis=true&TB_iframe=true&height=100&width=300&" + params, null); break;
	              case 102: tb_show("Contact Us", baseUrl + "/Popup/Popup_ContactUs.aspx?height=450&width=430&" + params, null); break;
	              case 103: tb_show("Save Map Search", baseUrl + "/Popup/Popup_SaveMapSearch.aspx?height=200&width=400&preSearch=true&" + params, null); break; //Save Search from search page
	              case 106: tb_show("Edit Mail Frequency ", baseUrl + "/Popup/Popup_EditSearch.aspx?height=200&width=400&preSearch=true&" + params, null); break; //Edit the Email Frequency for the Saved Search   
	              default: break;
	          }
	          var iPropertyIndex = GetValueFromQueryString(params, "PropertyIndex");
	          if (functionality < 100) SaveWebsiteActivity(functionality, iPropertyIndex);
	          return false;
	      }
	 )
}

function SaveWebsiteActivity(pEnumWebsiteActivity, pPropertyIndex){
    
        if ($("#ctl00_mainContent_txtWebTrackAction").size()){
            $("#ctl00_mainContent_txtWebTrackAction").val(pEnumWebsiteActivity);                    
            __doPostBack('ctl00$mainContent$lnkWebTrack','');
        }
        else if ($("#ctl00_mainContent_txtWebTrackActionType").size()){
            $("#ctl00_mainContent_txtWebTrackActionType").val(pEnumWebsiteActivity);
            $("#ctl00_mainContent_txtWebTrackPropertyIndex").val(pPropertyIndex);
            __doPostBack('ctl00$mainContent$lnkTrackAction', '');
        }else if ($("#ctl00_txtWebTrackAction").size()){
            $("#ctl00_txtWebTrackAction").val(pEnumWebsiteActivity);
            __doPostBack('ctl00$lnkWebTrack', '');
        }
}

function RemoveListings(params)
{
	 $.ajaxSetup(
	 {
		  timeout:100000,
		  dataType:"text",
		  error:function(xhr)
		  {
			   if(xhr.status==404)	return null;
		  }
   	 })

   	 $.get("/services/Popup_RemoveListings.aspx", params,
	    function(output) {
	        var rating = GetValueFromQueryString(params, "rating");
	        var i = 1;
	        for (; i <= rating; i++) {
	            $("#star" + i).attr("src", "/img/property_details/rateOn.gif");
	        }
	        for (; i <= 5; i++) {
	            $("#star" + i).attr("src", "/img/property_details/rateOff.gif");
	        }
	        var usage = GetValueFromQueryString(params, "usage");
	        var fav = GetValueFromQueryString(params, "fav");

	        if ((usage == 1) && (fav != 1)) {
	            alert('Thank you !! This Property has been removed from Favorites');
	        }

	        else if (usage == 5) {
	            addnote();
	            alert('Thank you !! Your Notes has  been removed');
	        }
	        if (fav == 1) {
	            alert('Thank you !! This Property has been removed from Favorite Listing');
	        }
	        var URL = window.location.href;
	        var header = GetValueFromQueryString(URL, "header");
	        if (header = "My Favorite properties") {
	            var MLS = GetValueFromQueryString("?"+params, "mls");
	            URL = URL.replace(MLS + ",", "");
	            window.location.href = URL;
	        }

	    });
}

function GetMarketTracker(params)
{
	 $.ajaxSetup(
	 {
		  timeout:100000,
		  dataType:"text",
		  error:function(xhr)
		  {
			   if(xhr.status==404)	return null;
		  }
   	 })

   	 $.get("/services/AddMarketTracker.aspx", params,
	    function(output) {
	        var city = GetValueFromQueryString(params, "mCity");
	        
	        alert('Thank you !! Market Tracker will be emailed to you soon.');
	       
	    });
	}

function SaveListings(params)
{
     $.ajaxSetup({
		  timeout:100000,
		  dataType:"text",
		  error: function(xhr) {
		       if(xhr.status==404)	return null;
		  }
	 })
	 var usage = GetValueFromQueryString(params, "usage");
	 var fav = GetValueFromQueryString(params, "fav");
	 var rating = GetValueFromQueryString(params, "rating");
	 $.get("/services/Popup_SaveListings.aspx",params,
	    function (output)
	    {
	        if (rating!="")
	        {
	            var i = 1;
	            for(; i<=rating; i++)
	            {
	                $("#star" + i).attr("src", "/img/property_details/rateOn.gif");	            
	            }
	            for(; i<=5; i++)
	            {
	                $("#star" + i).attr("src", "/img/property_details/rateOff.gif");	            
	            }
            }
           
           if((usage==1)&&(fav!=1))
           {
           $("#TotalFav").val(parseInt($("#TotalFav").val()) + 1);
           alert('Thank you !! This Property has been added to your Save Listing');
           //window.location.href = window.location.href;
           }
           else if(usage==5)
           {
           addnote();
           alert('Thank you! Your notes have been added');
           }else if(usage==3)
           {
            $("#TotalRated").val(parseInt($("#TotalRated").val()) + 1);
             window.location.href = window.location.href;
            alert('This property has been rated ');
            $(".rate_property").hide();
           }
           if(fav==1)
           {
            alert('Thank you !! This Property has been added to Favorite Listing');
            $("#TotalFav").val(parseInt($("#TotalFav").val()) + 1);
           }           
//           window.location.href = window.location.href;
	    }
	    
	 
	    
	    
	 ); 
	 
	 
	 function addnote()
	 {




	 }

	 function GetValueFromQueryString(queryString, key) {
	     key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
	     var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
	     var qs = regex.exec(queryString);
	     if (qs == null) {
	         return "";
	     }
	     else {
	         return qs[1];
	     }
	 }
}

