// lre_ylss.js
//
function createAjaxRequest_ylss(){
    try {
        request_ylss = new XMLHttpRequest();
    } catch(tryMS) {
        try {
            request_ylss = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(otherMS) {
            try {
                request_ylss = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(failed) {
                request_ylss = null;
            }
        }
    }
    return request_ylss;
}

function getSponsorLinks (url) {
    request3 = createAjaxRequest_ylss();
    if(request3 != null){
        request3.open("GET", url, true);
        request3.onreadystatechange = handleSponsorLinks;
        request3.send(null);
    }
}

function handleSponsorLinks(){ 
    if(request3.readyState == 4){
        if(request3.status == 200){
            var xml_root = request3.responseXML;
            if(xml_root) {
                var sponsor_links = processSponsorLinks(xml_root.documentElement);
                displaySponsorLinks(sponsor_links);
            }
        }
    }
}

//SponsorPartnerLink Object
function SponsorPartnerLink (title, description, site_host, click_url) {
    this.title = title;
    this.description = description;
    this.site_host = site_host;
    this.click_url = click_url;
    return this;
}

// function to go through the xml document and store sponsor link values to an array
function processSponsorLinks(root) {
 var sponsor_links = new Array();
 var listings = root.getElementsByTagName("Listing");
 
 for(i=0; i < listings.length; i++) {
 
   var title = listings[i].getAttribute("title");
   title = title.replace(/<b>|<\/b>/g,"");
   var description = listings[i].getAttribute("description");
   description = description.replace(/<b>|<\/b>/g,"");
   var site_host = listings[i].getAttribute("siteHost");
   var click_urls = listings[i].getElementsByTagName("ClickUrl");
   var click_url = click_urls[0].firstChild.nodeValue;
   sponsor_links[i] = new SponsorPartnerLink(title, description, site_host, click_url);
 }
 return sponsor_links;
}

function encodeUrl(url) {
    var url = url.replace(/\?/g, '%3F');
    url = url.replace(/=/g, '%3D');
    url = url.replace(/&/g, '%26');
    url = url.replace(/:/g, '%3A');
    return url;
}

//function to format and display sponsor links in html
function displaySponsorLinks(sponsor_links){
    if(sponsor_links.length){
        var dom = document.getElementById("sponsorLinks"); 
        var html = "<div class=\"gray_module\">";
        if(js_CITY && js_STATE_ABBREV) var st_city_ht = "_" + js_STATE_ABBREV + "_" + js_CITY.replace(' ', '_');
        else var st_city_ht = "";
        var click_ht = "homescout_ylss" + st_city_ht;
        html += "<div class=\"top\"><h1>Sponsored Links</h1><div class=\"tl\"></div><div class=\"tr\"></div></div>";
        html += "<div class=\"center white\"><br />";
        for(i = 0; i < sponsor_links.length; i++){
            the_link = sponsor_links[i];
            adUrl    = encodeUrl(the_link.click_url);
            adImage  = GetIAProductImageDetails(the_link.title, the_link.title, the_link.description, the_link.site_host, "border=0", false);
            if(adImage == "") adImage = "/images/partner/ysl_default_img";

            html += "<div class=\"slDesc\">";
            html += "<img src=\"" + adImage + "\" class=\"slImage\" />";
            html += "<div class=\"slCopy\">";
            html += "<a href=\"/goto?" + (user_entry_id ? "entryid=" + user_entry_id + "&" : "") + "ht=" + click_ht + "&dest=" + adUrl + "\" style=\"text-decoration:none;\" target=\"_blank\" rel=\"nofollow\">";
            html += "<span style=\"text-decoration:underline;\">" + the_link.title + "</span></a><br />";
            html += "<span style=\"text-decoration:none; color:#000000;\">" + the_link.description + "</span><br />";
            html += "<span style=\"text-decoration:none; color:#000000;\">" + the_link.site_host + "</span></div></div>";
            html += "<br class=\"clear\" />";
        }
        html += "<br /></div>";
        html += "<div class=\"btm\"><div class=\"bl\"></div><div class=\"br\"></div></div>";
        html += "</div>";
        dom.innerHTML = html;
    }
}

/* Old function prior to RFC5897
//function to format and display sponsor links in html
function displaySponsorLinks(sponsor_links) {
    if (sponsor_links.length) {
        var dom = document.getElementById("sponsorLinks"); 
        var html = "<div class=\"gray_module\">";
        if (js_CITY && js_STATE_ABBREV)
            var st_city_ht = "_" + js_STATE_ABBREV + "_" + js_CITY.replace(' ','_');
        else 
            var st_city_ht = "";
        var click_ht = "homescout_ylss" + st_city_ht;
        html += "<div class=\"top\"><h1>Sponsored Links</h1><div class=\"tl\"></div><div class=\"tr\"></div></div>";
        html += "<div class=\"center white\"><br />";
        html += "<ul>";
        for (i=0; i < sponsor_links.length; i++) {
            the_link = sponsor_links[i];
            html += "<li>";
            var url = encodeUrl(the_link.click_url);
            html += "<a href=\"/goto?" + (user_entry_id ? "entryid=" + user_entry_id + "&" : "") + "ht=" + click_ht + "&dest=" + url + "\" target=\"_blank\">";
            html += the_link.title + "</a><br/>";
            html += "<div>" + the_link.description + "</div>";
            html += "<div class=\"slDesc\">" + the_link.site_host + "</div>";
            html += "</li>";
        }
        html += "</ul><br /></div>";
        html += "<div class=\"btm\"><div class=\"bl\"></div><div class=\"br\"></div></div>";
        html += "</div>";
        dom.innerHTML = html;
    }
}
*/

function getClientAttributes(){
    request2 = createAjaxRequest_ylss();

    if(request2 != null){
        var url = "/sponsored_links/getClientAttributes";
        request2.open("GET", url, true);
        request2.onreadystatechange = setClientAttributes;
        request2.send(null);
    }
}

function setClientAttributes(){
    if(request2.readyState == 4){
        if(request2.status == 200){
            var xmlDoc = request2.responseXML;
            var js_REMOTE_ADDR = xmlDoc.getElementsByTagName("remoteaddr")[0].childNodes[0].nodeValue;
            var js_HTTP_X_FORWARDED_FOR = xmlDoc.getElementsByTagName("httpxforwardedfor")[0].childNodes[0].nodeValue;
            var js_HTTP_USER_AGENT = xmlDoc.getElementsByTagName("httpuseragent")[0].childNodes[0].nodeValue;
            var js_VIRTUAL_URL = document.location.href;  //xmlDoc.getElementsByTagName("virtualurl")[0].childNodes[0].nodeValue;
            var js_PARTNER = xmlDoc.getElementsByTagName("partner")[0].childNodes[0].nodeValue;

            if (js_CITY && js_STATE_ABBREV)
                var Keywords = "real+estate+"+js_CITY.replace(' ','+');
            else if (js_STATE_NAME)
                var Keywords = "real+estate+"+js_STATE_NAME.replace(' ','+');
            else
                var Keywords = "real+estate";

            var maxCount = 4;
            var affilData = encodeURIComponent("ip="+js_REMOTE_ADDR+"&xfip="+js_HTTP_X_FORWARDED_FOR+"&ua="+js_HTTP_USER_AGENT);
            var serveUrl = encodeURIComponent(""+js_VIRTUAL_URL);
            var xml_url = "/partner_offsite/xml.homegain.overture.com/d/search/p/homegain/xml/search/local/?Keywords=" + Keywords + "&Partner=" + js_PARTNER + "&maxCount=" + maxCount + "&affilData=" + affilData + "&serveUrl=" + serveUrl + "&type=localrealestate";

            getSponsorLinks(xml_url);
        }
    }
}

