// global variables to hold inputs values
var g_RTcity;
var g_RTstate;
var g_RTzip;
var g_RTgatewayUrl = '/gateway_co.asp?accnt=';
var g_CJgatewayUrl = 'http://www.jdoqocy.com/click-';
var g_WhiteSiteMode;

function GetInputs(txtCity, txtState, txtZip)
{
    g_RTcity = document.getElementById(txtCity) != null ? document.getElementById(txtCity).value : '';
    g_RTstate = document.getElementById(txtState) != null ? document.getElementById(txtState).value : '';
    g_RTzip = document.getElementById(txtZip) != null ? document.getElementById(txtZip).value : '';
}

function GetGatewayUrl(serverName, account)
{
    return serverName + g_RTgatewayUrl + account + '&';
}

function isCJMode(aid, pid)
{
    return !isRTExtraMode(aid, pid) && aid != null && aid != '' && pid != null && pid != '';
}

function isRTExtraMode(aid, pid)
{
    return pid != null && pid != '' && aid != null && !aid.match(/^\d*$/);
}

function GetRTExtraGateway(aid, pid, url)
{
    return isRTExtraMode(aid, pid) ? url + '&' + aid + '=' + pid : url;
}

function GetCJGatewayUrl(rtracUrl, aid, pid)
{
    return isCJMode(aid, pid) ? g_CJgatewayUrl + pid + '-' + aid + '?url=' + escape(rtracUrl) : GetRTExtraGateway(aid, pid, rtracUrl);
}

function CJEscape(stringValue, aid, pid)
{
    return isCJMode(aid, pid) ? stringValue : escape(stringValue);
}

function RenderSearchList(txtCity, txtState, txtZip, account, serverName, aid, pid)
{   
    GetInputs(txtCity, txtState, txtZip);
    RenderSearchListBase(g_RTcity, g_RTstate, g_RTzip, account, serverName, aid, pid);
}

function RenderSearchListBase(city, state, zip, account, serverName, aid, pid)
{     
    var rtNumber;
    if(zip != null && zip != '')
    {
        city = '';
        state = '';
        rtNumber = BuildRTNumber(zip, '', '');
    }
    else
    {
        rtNumber = BuildRTNumber(zip, city + ', ' + state, '');
    }
                
    var urlBase = GetGatewayUrl(serverName, account); // through the gateway
    var params = 'pageNumD=1&id=0&zip=' + CJEscape(zip, aid, pid) + '&city=' + CJEscape(city, aid, pid) + '&state=' + CJEscape(state, aid, pid) + '&db=R&srtfld=sdCreated&srtdir=DESC&type=D&RT=' + rtNumber + '&tabs=DTR&ItemsPer=25';

    if(g_WhiteSiteMode)
    {
        params = params + '&ws=true';
    }
    else
    {
        params = params + '&sb=true';
    }

    LoadScript(serverName, 'iframeScroll.js');

    var iframeUrl = GetCJGatewayUrl(urlBase + params, aid, pid);    
    var iframeSrc = GetInnerFrameHTML(serverName, iframeUrl);
            
    if(!g_WhiteSiteMode)
    {
        CreateDataLinkScrollIFrame(serverName, iframeUrl);
    }
    else
    {
        document.getElementById('RTWidgetPlaceholder').innerHTML = iframeSrc;
        
        ShowHideScroll('RTInnerFrame', 'topScroll', 'bottomScroll');    
    }
}

function RenderSearchMap(txtCity, txtState, txtZip, account, serverName, aid, pid)
{
    GetInputs(txtCity, txtState, txtZip);
    RenderSearchMapBase(g_RTcity, g_RTstate, g_RTzip, account, serverName, aid, pid);
}

function RenderSearchMapBase(city, state, zip, account, serverName, aid, pid)
{
    var criteriaName = zip != null && zip != '' ? 'zip' : 'city';
    var criteriaValue = criteriaName == 'zip' ? zip : city + '~' + state;

    RenderSearchMapBaseCriteria(criteriaName, criteriaValue, account, serverName, aid, pid);
}

function RenderSearchMapBaseCriteria(criteriaName, criteriaValue, account, serverName, aid, pid)
{
    var urlBase = GetGatewayUrl(serverName, account); // through the gateway
    var params = 'criteriatype=' + criteriaName + '&criteriavalue=' + CJEscape(criteriaValue, aid, pid);

    if(g_WhiteSiteMode)
    {
        params = params + '&ws=true';
    }
    else
    {
        params = params + '&sb=true';
    }

    var iframeUrl = GetCJGatewayUrl(urlBase + params, aid, pid);

    LoadScript(serverName, 'iframeScroll.js');       

    var iframeUrl = GetCJGatewayUrl(urlBase + params, aid, pid);    
    var iframeSrc = GetInnerFrameHTML(serverName, iframeUrl);
    
    if(!g_WhiteSiteMode)
    {
        CreateDataLinkScrollIFrame(serverName, iframeUrl);
    }
    else
    {
        document.getElementById('RTWidgetPlaceholder').innerHTML = iframeSrc;
        
        ShowHideScroll('RTInnerFrame', 'topScroll', 'bottomScroll');
    }
}

function RenderSearchMapForCounty(countyCode, account, serverName, aid, pid)
{
    var criteriaName = 'county';
    var criteriaValue = countyCode;
    
    RenderSearchMapBaseCriteria(criteriaName, criteriaValue, account, serverName, aid, pid);
}

function BuildRTNumber(zip, city, state)
{
    var checksumString = zip + ',' + city + ',' + state + ',0';
    var checksum = 0;
    
    for(i=0; i < checksumString.length; i++)
    {
        checksum += checksumString.charCodeAt(i);
    }
    
    return checksum;
}

function WidgetLoadState(widgetFileName, height)
{
    widgetFileName = widgetFileName == 'USA' ? g_USAMapFileName : widgetFileName;
    
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = g_RTWDScriptBase + widgetFileName;
    document.getElementsByTagName('head')[0].appendChild(script);  
    
    WD_HideLoginLink();
    
    // To show 'Member Login' link 
    if(widgetFileName == 'USA.js')
    {
        WD_ShowLoginLink();
    }    
}

function WD_HideLoginLink()
{
    WD_SetLoginLink('none');
}

function WD_ShowLoginLink()
{
    WD_SetLoginLink('block');
}

function WD_SetLoginLink(displayMode)
{
    if(g_WhiteSiteMode)
    {
        var linksDiv = document.getElementById('hideForStateWidget');
        if(linksDiv != null)
        {
            linksDiv.style.display = displayMode;
        }
    }
}

function widgetSearchCounty(county)
{
    RenderSearchMapForCounty(county, g_accountMap, g_server, g_cjAID, g_cjPID);
}

function WidgetSearchList(txtCity, txtState, txtZip)
{
    WD_HideLoginLink();
    
    RenderSearchListBase(txtCity, txtState, txtZip, g_accountList, g_server, g_cjAID, g_cjPID);
}

function LoadScript(server, scriptName)
{
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = server + '/DataLink/js/' + scriptName ;
    document.getElementsByTagName('head')[0].appendChild(script); 
}

function GetScrollButtonHTMLTop(server, frameName)
{
    var html = '';

    html += '<div id="topScrollContainer" style="width:800px;height:16px;border:none;margin:0px;padding:4px 0px;display:block; clear:both;">';
    html += '<div id="topScroll" align="left" style="width:800px;height:16px;border:none;margin:0px;padding:0px 0px;display:none;">';
    html += '<a href="javascript:;" onclick="return false;" onmouseover="scroll_iframe(\'' + frameName + '\', 4, \'v\'); window.status=\'Hover here to scroll down.\'; return true" onmouseout="stopScroll(); window.status=\'\'; return true">';
    html += '<img src="' + server + '/DataLink/images/buttons/dnbtn_86x16.gif" width="86" height="16" border="0">';
    html += '</a>&nbsp;&nbsp;';
    html += '<a href="javascript:;" onclick="return false;" onmouseover="scroll_iframe(\'' + frameName + '\', -4, \'v\'); window.status=\'Hover here to scroll up.\'; return true" onmouseout="stopScroll(); window.status=\'\'; return true">';
    html += '<img src="' + server + '/DataLink/images/buttons/upbtn_71x16.gif" width="71" height="16" border="0">';
    html += '</a>';
    html += '&nbsp;<span style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;color:rgb(64,74,79);margin-bottom:3px;">scroll up or down for more information</span>';
    html += '</div>';
    html += '</div>';
    
    return html;
}

function GetScrollButtonHTMLBottom(server, frameName)
{
    var html = '';
    
    html += '<div id="bottomScroll" align="left" style="width:800px;height:16px;border:none;margin:0px;padding:3px 0px;" onmouseover="d=document.getElementById(\'topScroll\');d.style.display = \'block\'">';
    html += '<a href="javascript:;" onclick="return false;" onmouseover="scroll_iframe(\'' + frameName+ '\', 4, \'v\'); window.status=\'Hover here to scroll down.\'; return true" onmouseout="stopScroll(); window.status=\'\'; return true">';
    html += '<img src="' + server + '/DataLink/images/buttons/dnbtn_86x16.gif" width="86" height="16" border="0">';
    html += '</a>&nbsp;&nbsp;';
    html += '<a href="javascript:;" onclick="return false;" onmouseover="scroll_iframe(\'' + frameName + '\', -4, \'v\'); window.status=\'Hover here to scroll up.\'; return true" onmouseout="stopScroll(); window.status=\'\'; return true">';
    html += '<img src="' + server + '/DataLink/images/buttons/upbtn_71x16.gif" width="71" height="16" border="0">';
    html += '</a>';
    html += '&nbsp;<span style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;color:rgb(64,74,79);margin-bottom:3px;">scroll up or down for more information</span>';
    html += '</div>';
    
    return html;
}

function GetInnerFrameHTML(server, innerFrameUrl)
{
    var heightFromUrl = fnGetValueFromURLWithKey('setY');
    var iframeHeight = (heightFromUrl > 0)?heightFromUrl - 80:1220;
    
    if(typeof(g_ShowSubDomainHeader) != "undefined" && g_ShowSubDomainHeader)
    {
        iframeHeight -= 200;
    }   
  
    var iframeSrc = CreateSubDomainHeader();
    
    iframeSrc += GetScrollButtonHTMLTop(server, 'RTInnerFrame');
    iframeSrc +='<iframe src="' + innerFrameUrl + '" name="RTInnerFrame" id="RTInnerFrame" width="800" height="' + iframeHeight + '" scrolling="no" frameborder="0"></iframe>'        

    iframeSrc += GetScrollButtonHTMLBottom(server, 'RTInnerFrame');
    
    return iframeSrc;
}

function CreateInnerFrame(server, innerFrameUrl)
{
   document.write(GetInnerFrameHTML(server, innerFrameUrl));
}

function fnGetValueFromURLWithKey( name )
{
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null )
        return "";
    else
        return results[1];
}

var g_scrollCheckTimerID;

function ShowHideScroll(frame, scrollContainerTop, scrollContainerBottom)
{
  if(g_scrollCheckTimerID)
  {
    clearTimeout(g_scrollCheckTimerID);
  }
  
  var frameName = '';
  
  try
  {
    frameName = window.frames[frame].location.href;
  }
  catch(ex)
  {
  }
  
  var displayScroll = (frameName.toLowerCase().indexOf('mapsearch') >= 0 || frameName.toLowerCase().indexOf('propertydetails') >= 0);
  
  var scrollerTop = document.getElementById(scrollContainerTop);
  var scrollerBottom = document.getElementById(scrollContainerBottom);
  
  if(scrollerTop && scrollerBottom)
  {
    scrollerBottom.style.display = displayScroll ? 'block' : 'none';
    
    if(!displayScroll)
    {
        scrollerTop.style.display = 'none';
    }
  }
  
  g_scrollCheckTimerID = setTimeout("ShowHideScroll('" + frame + "','" + scrollContainerTop + "','" + scrollContainerBottom + "')", 15);  
}

function LoadDataLinkPage()
{
   var qs = new Querystring();
      
   var iframeUrl = qs.get('iframeurl');
   var serverName = qs.get('server');
  
   var iframeSrc = GetInnerFrameHTML(serverName, iframeUrl);

   document.getElementById('RTWidgetPlaceholder').innerHTML = iframeSrc;
    
   ShowHideScroll('RTInnerFrame', 'topScroll', 'bottomScroll');  
}

function CreateDataLinkScrollIFrame(server, innerFrameUrl)
{
    var iframeUrl = server + '/DataLink/DataLinkHost.aspx?';
    iframeUrl += 'server=' + escape(server);
    iframeUrl += '&iframeUrl=' + escape(innerFrameUrl);
    
    var iframeSrc = '<iframe src="' + iframeUrl + '" name="WhiteSiteFrame" id="WhiteSiteFrame" width="800" height="1300" scrolling="no" frameborder="0"></iframe>'        

    document.getElementById('RTWidgetPlaceholder').innerHTML = iframeSrc;        
}

function CreateSubDomainHeader()
{
    var html = '';
    
    if(typeof(g_ShowSubDomainHeader) != "undefined" && g_ShowSubDomainHeader)
    {
        html += '<div id="subDomainHeaderDiv" style="width:760px; margin:10px 0 0 10px; float:left;">';
        html +=     '<div style="vertical-align:bottom; width:350px; float:left; color:#28546B; font-weight:bold; font-size:11px; ">';
        html +=         '<img src="/images/logo.gif" alt="Realtytrac" style="border:none;" width="158px" height="29px" />';
        html +=         '<br />';
        html +=         'The nation\'s #1 online foreclosure marketplace';
        html +=     '</div>';
        if (typeof(g_PartnersLogoURL) !== "undefined" &&  g_PartnersLogoURL != "")
        {    
            html += ' <div id="subDomainHeaderDiv_partnersLogo" style="float:right; vertical-align:bottom; color:#28546B; font-weight:bold; font-size:11px;">';
            html += 'In partnership with';
            html += '<img src="'+ g_PartnersLogoURL +'" alt="Partners Logo" style="border:none;" height="45px" />';
            html += '</div>';
        }
        html += '</div>';
    }
    
    return html;   
}
