//Last modification: Feb 19, 2009 - 5:30pm
//modification: Feb 18, 2009 - 1:25pm
//modification: Feb 17, 2009 - 3:50pm
//modification: Feb 17, 2009 - 12:30pm
//modification: Jan 22, 2009 - 1:30pm

var NUM_WORD = 10;     //number of most recent words extracted
var REFRESH_RATE = 2; //refresh rate in seconds
var ADSERVER_URL = "http://www.retrochronix.com/adserver/test2.php";
var LOG_URL = "http://www.retrochronix.com/adserver/log.php";
var sessionID = 0;
var clickURL = "";
var adImageURL = "";
var keyword = "";
var startTime = "";

document.write("Sponsored Ad:<br>");
document.write("<div id=\"PlaceImages\" style=\"width:100px; height:110px;\"><\/div>");

startAutoRequest();

//Function that call httprequest function according to refresh rate
function startAutoRequest(){
//alert("start");
    dynamicTag();
    setInterval("dynamicTag()", REFRESH_RATE*1000);   
}

function dynamicTag()
{
    //setStartTime();
    var recentcontent = searchTextbox();
//alert(recentcontent);
    var request = ADSERVER_URL + "?sessionid=" + sessionID + "&recentwords=" + recentcontent + "&randomizer=" + Math.floor(10000000*Math.random());
//    var request = "http://www.retrochronix.com/adserver/imagesearchresults.html";
//alert("Processed Content: " + recentcontent + "\n\nHTTP request: " + request);
    var head = document.getElementsByTagName("head").item(0);
    var script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", request);
    head.appendChild(script);
}

function searchTextbox(){
    var textboxID = "";
    var content = "";
//alert("searchTextbox");    
    //find textarea id for the textbox with largest area
    for (i=0; i<document.all.length; i++){
        if (document.all(i).tagName == "TEXTAREA"){
                if (content.length > 0)
                    content = content + "+";
                textboxID = document.all(i).id;
                content = content + parseRecentContent(textboxID);
        }
    } 
    return(content);
}

function parseRecentContent(textboxID){
    var recent = "";

//alert("This document contains: " + textboxID);

    //Get content from textbox
    var content = document.getElementById(textboxID).value;
//alert(content);
    content = content.toLowerCase();

    //Eliminate space characters at the beginning
    while (content.indexOf(" ") == 0 && content.length > 0){
        content = content.slice(1);
    }

    content = content.replace(/\W/g,' ');
//alert(content); 

    var counter = 0;
    while (counter < NUM_WORD & content != ""){

        //Eliminate spaces between and at the end
        while (content.slice(content.length - 1) == " "){
            content = content.slice(0, content.length - 1);
        }

        if (content.lastIndexOf(" ") > -1){
            
            //When not last word in content
            if (counter != 0){
                recent = "+" + recent;
            }
            recent = content.slice(content.lastIndexOf(" ") + 1) + recent;            
        }
        else{

            //Last word in content
            if (counter > 0)
                recent = content + "+" + recent;
            else
                recent = content;
            
            content = "";
        }

        //Extract the content that has not saved into recent var
        content = content.slice(0, content.lastIndexOf(" "));
        counter = counter + 1;
    }
    return(recent);
}

function getImages(JSONData) {
//alert(JSONData);
    if (JSONData != null)
    {
      var div = document.getElementById("PlaceImages"), child;
      while(child=div.firstChild)
        div.removeChild(child);
      for (i=0; i<1; i++)
      {
//alert(keyword);
//alert("0"+JSONData.ResultSet.Result[i].Keyword+"1");
        if ((keyword != JSONData.ResultSet.Result[i].Keyword && JSONData.ResultSet.Result[i].Keyword != "") || keyword == ""){
//alert("here");
           clickURL = JSONData.ResultSet.Result[i].ClickUrl;
           keyword = JSONData.ResultSet.Result[i].Keyword;
           adImageURL = JSONData.ResultSet.Result[i].Url;
        } 
//alert(adImageURL);
        var link = document.createElement("a");
        var image = document.createElement("img");

        link.setAttribute("href", "javascript:adClick()");
        image.setAttribute("src", adImageURL);
        div.appendChild(link);
        link.appendChild(image);
              
      }
      sessionID = JSONData.ResultSet.sessionid;
    }
    //outputTime();
}

function adClick(){
    var currentURL = getCurrentURL();
    var request = LOG_URL + "?sessionid=" + sessionID + "&clickURL=" + clickURL + "&currentURL=" + currentURL + "&keyword=" + keyword;
//alert(request);
    //var head = document.getElementsByTagName("head").item(0);
    //var script = document.createElement("script");
    //script.setAttribute("type", "text/javascript");
    //script.setAttribute("src", request);
    //head.appendChild(script);

    var newWindow = window.open(request,'','status=yes,toolbar=yes,location=yes,menubar=yes,resizable=yes,scrollbars=yes,height=600,width=1024'); 
    newWindow.location=clickURL;
    //window.open(clickURL,'','status=yes,toolbar=yes,location=yes,menubar=yes,resizable=yes,scrollbars=yes,height=600,width=1024'); 
}

function getCurrentURL(){
    var currentURL = window.location.href;
    return currentURL;
}

function setStartTime(){
    var d = new Date();
    startTime = d.getUTCHours() + "h" + d.getUTCMinutes() + "m" + d.getUTCSeconds() + "." + d.getUTCMilliseconds() + "s";
//alert(startTime);
}

function outputTime(){
    var d = new Date();
    alert("Reading Text @ " + startTime + "\nDisplaying Ad @ " + d.getUTCHours() + "h" + d.getUTCMinutes() + "m" + d.getUTCSeconds() + "." + d.getUTCMilliseconds() + "s");
}
