﻿var GridSortColumn;    
var GridArrays = new Array();
var oGridCell;  
var GridCurCol;
var GridCurID;
var GridCurRow;
var offsetAdList;
var adArrays = new Array();
var idxGrid_Text;
var idxGrid_CheckBox;
var idxGrid_Input;
var idxGrid_DropDown;
var searchsessionID;
var ready = 1;
var adNumber;
var pageMax = 20;
var pageNumber = 1;
var SiteAdID;
var SiteID;
var TextAdInListShown = 0;

function NewSearchsession()
{

    //var GridSortDirection='descending';  // Set to descending if you want the grid to be sorted ascending to start with.
    GridSortColumn=0;                      // Set the column that will be sorted on

    GridCurCol=0;
    GridCurID=0;
    GridCurRow=0;

    //GridArrays[GridCurRow] = new Array ('Select'); 
    
    adArrays = new Array();
    //adArrays[0] = new Array (''); 

    idxGrid_Text=0;
    idxGrid_CheckBox=1;
    idxGrid_Input=2;
    idxGrid_DropDown=3;

    searchsessionID = 0;
    ready = 0;
    adNumber = 0;
    offsetAdList = 0;
    pageNumber = 1;

    SiteAdID = 0;
    SiteID = 0;
    
    TextAdInListShown = 0;
    
    document.getElementById("AdNumber").innerHTML="0";
    document.getElementById("AdGrid").innerHTML="";
    document.getElementById("AdGridNavigation").style.display="none";
    document.getElementById("AdGridNavigation2").style.display="none";
    document.getElementById("AdditionalContent").style.display="none";
    document.getElementById("NoResultMessage").style.display="none";
    document.getElementById("TextAd1").style.display="none";
    document.getElementById("TextAd2").style.display="none";
    
    document.getElementById("SearchButton1").disabled = 'true';
    document.getElementById("SearchButton2").disabled = 'true';
    document.getElementById("SearchButton1").value = 'Bezig...';
    document.getElementById("SearchButton2").value = 'Bezig...';
}

function SearchUserInput()
{
    var objectNameTextBox = document.getElementById("objectNameTextBox");

    if (objectNameTextBox.value != '' && ready == 1)
    {
        setSearchForCookie(objectNameTextBox.value);
        NewSearchsession();
        RefreshTextADForNewSearch(objectNameTextBox.value);
        document.getElementById("progressAnimation").style.display="block";
        MetaSearchWebService.MetaSearchWebService.GetSearchsessionID(zoekwekkerSectionID, siteName, SearchsessionCallback);
    }
} 
            
function SearchsessionCallback(result)
{
    searchsessionID = result;

    var objectNameTextBox = document.getElementById("objectNameTextBox");
    var regionDropDownList = document.getElementById("regionDropDownList");
    var minimumPriceTextBox = document.getElementById("minimumPriceTextBox");
    var maximumPriceTextBox = document.getElementById("maximumPriceTextBox");
    var bonusKeywordTextBox = document.getElementById("bonusKeywordTextBox");
    var negativeKeywordTextBox = document.getElementById("negativeKeywordTextBox");
    var categoryDropDownList = document.getElementById("categoryDropDownList");
    var adTypeDropDownList = document.getElementById("adTypeDropDownList");
    var adPhotoCheckBox = document.getElementById("adPhotoCheckBox");
    var postalCodeTextBox = document.getElementById("postalCodeTextBox");
    var maxRadiusDropDownList = document.getElementById("maxRadiusDropDownList");
    
    var adCategoryID = 0;
    if (categoryDropDownList != null)
        adCategoryID = categoryDropDownList.options[categoryDropDownList.selectedIndex].value;
    else
        adCategoryID = fixedAdCategoryID;
    
    document.title = objectNameTextBox.value;

    MetaSearchWebService.MetaSearchWebService.SearchAndSave(
            searchsessionID,
            siteName,
            objectNameTextBox.value,
            bonusKeywordTextBox.value,
            negativeKeywordTextBox.value,
            adCategoryID,
            regionDropDownList.options[regionDropDownList.selectedIndex].value,
            minimumPriceTextBox.value,
            maximumPriceTextBox.value,
            1,
            adPhotoCheckBox.checked,
            zoekwekkerSectionID,
            postalCodeTextBox.value,
            maxRadiusDropDownList.options[regionDropDownList.selectedIndex].value,
            SucceededCallback);
            
    window.setTimeout("CheckStatus()",1000);
}
         
function CheckStatus()
{
    MetaSearchWebService.MetaSearchWebService.SearchsessionStatuscheck(searchsessionID,
            CheckStatusCallback);
} 
function CheckStatusCallback(result)
{
    if (result == 'newresult')
    {
        CheckForNewContent();
    }
    else if (result == 'done_noresult')
    {
        document.getElementById("NoResultMessage").style.display="block";
    }
    if (result != 'done_result' && result != 'done_noresult')
    {
        window.setTimeout("CheckStatus()",1000);
    }
}
            
function CheckForNewContent()
{
    MetaSearchWebService.MetaSearchWebService.CheckNewContent(searchsessionID,'',
        ContentCallback);
}

function ContentCallback(result)
{
    if (result != '')
    {
        var objectNameTextBox = document.getElementById("objectNameTextBox");

        if (window.ActiveXObject)
        {
            var doc = new ActiveXObject("MSXML2.DOMDocument");
            doc.loadXML(result);
        }
	    else
	    {
	        var parserSoftXML = new DOMParser();
		    var doc = parserSoftXML.parseFromString(result, "text/xml");
        }
        try {
        processXML(doc);
        }
        catch (exception) 
        {
        };
        document.getElementById("AdNumber").innerHTML = adNumber;
        document.getElementById("AdNumber2").innerHTML = adNumber;
        document.getElementById("AdGridNavigation").style.display="block";
        document.getElementById("AdGridNavigation2").style.display="block";
        PagingControls();

        RefreshTextADForResult(objectNameTextBox.value);
    }
}

function SucceededCallback(result)
{
    var statusSearchsessionID = result;
    if (searchsessionID == statusSearchsessionID)
    {                
        document.getElementById("progressAnimation").style.display="none";
        ready = 1;
        document.getElementById("SearchButton1").disabled = false;
        document.getElementById("SearchButton2").disabled = false;
        document.getElementById("SearchButton1").value = 'Zoek!';
        document.getElementById("SearchButton2").value = 'Zoek!';
    }
}

function AddComment(siteID, siteAdID, IPAddressClient)
{
    var commentTextBox = document.getElementById("commentTextBox");
    var userDisplayNameTextBox = document.getElementById("userDisplayNameTextBox");
    var commentTypeID = document.getElementById("commentTypeID");
  
    MetaSearchWebService.MetaSearchWebService.AddComment(siteID, siteAdID, commentTextBox.value, userDisplayNameTextBox.value, IPAddressClient, commentTypeID.value, CommentCallback);    
    
}

function CommentCallback(result)
{
    AdDetails(SiteAdID, SiteID)
}
            
function RefreshTextADForNewSearch(Keyword)
{
    if (Keyword != '')
    {
        var TextAd1 = document.getElementById("TextAd1");
        var TextAd3 = document.getElementById("TextAd3");
        
        TextAd1.style.display="block";
        TextAd1.src = textAdIframeURL + '?keyword=' + Keyword + '&width=728&height=90&ad_format=728x90_as';

        TextAd3.style.display="block";
        TextAd3.src = textAdIframeURL + '?keyword=' + Keyword + '&width=120&height=600&ad_format=120x600_as';
    }
}

function RefreshTextADForResult(Keyword)
{
    if (Keyword != '' && TextAdInListShown == 0)
    {
        var TextAd2 = document.getElementById("TextAd2");

        TextAd2.style.display="block";
        TextAd2.src = textAdIframeURL + '?keyword=' + Keyword + '&width=728&height=90&ad_format=728x90_as';

        TextAdInListShown = 1;
    }
}

function processXML(obj){
    var dataGroup = obj.getElementsByTagName("Ads"); 
    var dataArray = dataGroup[0].getElementsByTagName("Ad");
    var dataArrayLen = dataArray.length;

    for (var i=0; i<dataArrayLen; i++){

        adNumber += 1;
        
        adDetail = new Object;
        adDetail.Number = adNumber;
        adDetail.Title = dataArray[i].getAttribute("Title");
        adDetail.Text = Left(dataArray[i].getAttribute("Text"),350);
        adDetail.Price = dataArray[i].getAttribute("Price");
        adDetail.RawPrice = dataArray[i].getAttribute("RawPrice");
        adDetail.UserURL = dataArray[i].getAttribute("UserURL");
        adDetail.Location = dataArray[i].getAttribute("Location");
        adDetail.Relevancy = parseInt(dataArray[i].getAttribute("Relevancy"));
        adDetail.Image = dataArray[i].getAttribute("Image");
        adDetail.HTML = dataArray[i].getAttribute("Title");
        adDetail.Source = dataArray[i].getAttribute("Source");
        adDetail.CommentCount = dataArray[i].getAttribute("CommentCount");
        adDetail.SiteID = dataArray[i].getAttribute("SiteID");
        adDetail.SiteAdID = dataArray[i].getAttribute("SiteAdID");
        adDetail.ID = adNumber;

        adArrays[adNumber-1] = new Array (adDetail);
    }
    adGridDraw(adArrays);

}

function SendAFriend(searchsessionID, URL)
{
        var sendAFriendEmail = document.getElementById("SendAFriendEmail");
        
        MetaSearchWebService.MetaSearchWebService.SendAFriend(searchsessionID, URL, sendAFriendEmail.value, 
            SendAFriendCallback);
}

function SendAFriendCallback(result)
{
    document.getElementById("SendAFriendBox").innerHTML = result;
}

function CancelSearchsession()
{
        MetaSearchWebService.MetaSearchWebService.CancelSearchsession(searchsessionID, 
            CancelSearchsessionCallback);
}
function CancelSearchsessionCallback()
{
    ready = 1;
    cancelling = 1;
    
    document.getElementById("AdditionalContent").style.display="none";
    document.getElementById("NoResultMessage").style.display="none";
    document.getElementById("progressAnimation").style.display="none";
    document.getElementById("SearchButton1").disabled = false;
    document.getElementById("SearchButton2").disabled = false;
    document.getElementById("SearchButton1").value = 'Zoek!';
    document.getElementById("SearchButton2").value = 'Zoek!';
}

function AdDetails(nSiteAdID, nSiteID)
{
    SiteAdID = nSiteAdID;
    SiteID = nSiteID;
    
    MetaSearchWebService.MetaSearchWebService.AdDetailsHTML(searchsessionID, nSiteAdID, nSiteID,
        AdDetailCallback);
}

function AdDetailCallback(result)
{
    document.getElementById("addetailcontent").innerHTML = result;

    var extender = $find('ModalPopupExtender');
    extender.show();
   
}

function setTall()
{
	if (document.getElementById) {
		var leftHeight = document.getElementById('AdGrid');
		var rightHeight = document.getElementById('TextAdSkyscraper');
		
		if (leftHeight.offsetHeight >= rightHeight.offsetHeight) { 
		    //var difference = (leftHeight.offsetHeight-rightHeight.offsetHeight);
		    //alert(leftHeight.offsetHeight);
		    rightHeight.style.height = (leftHeight.offsetHeight + 270); 
		}
	}
}

function closeAdDetail()
{
    /*document.getElementById("overlay").style.visibility = "hidden";*/
    /*document.getElementById("addetail").style.visibility = "hidden";*/
    SiteAdID = 0;
    SiteID = 0;
    var extender = $find('ModalPopupExtender');
    extender.hide();

    document.getElementById("addetailcontent").innerHTML = '';
}

function ChangeUserView(gridView)
{
    if (gridView == true)
    {
        userGridView = true;
        pageMax = 20;
    }
    else
    {
        userGridView = false;
        pageMax = 20;
    }
    adGridDraw(adArrays);
    setTall();
}

function NextPage()
{
    if ((offsetAdList+pageMax) < adNumber)
    {
        offsetAdList += pageMax;
        adGridDraw(adArrays);
    }

    PagingControls();
    
    pageNumber += 1;
    
    document.getElementById("pagenumberDiv").innerHTML = pageNumber;
}

function BackPage()
{

    if ((offsetAdList - pageMax) < 1)
    {
        offsetAdList = 0;
    }
    else
    {
        offsetAdList -= pageMax;
    }
    adGridDraw(adArrays);
    PagingControls();

    pageNumber -= 1;

    document.getElementById("pagenumberDiv").innerHTML = pageNumber;
}

function PagingControls()
{
    var spanNextPage = document.getElementById("SpanNextPage");
    var spanBackPage = document.getElementById("SpanBackPage");
    var spanNextPage2 = document.getElementById("SpanNextPage2");
    var spanBackPage2 = document.getElementById("SpanBackPage2");

    if (adNumber > (offsetAdList + pageMax))
    {
        spanNextPage.style.display="inline";
        spanNextPage2.style.display="inline";
    }
    else
    {
        spanNextPage.style.display="none";
        spanNextPage2.style.display="none";
    }
    if (offsetAdList < 1)
    {
        spanBackPage.style.display="none";
        spanBackPage2.style.display="none";
    }
    else
    {
        spanBackPage.style.display="inline";
        spanBackPage2.style.display="inline";
    }
        
    document.getElementById("pagenumberDiv").innerHTML = pageNumber;
}

function TextBoxOnKeyPress(e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
        if (keycode == 13)
        {
            SearchUserInput();                
        }
}

function bodyOnLoad()
{
    Nifty("ul#nav a","small transparent top");
    Nifty("ul#nav2 a","small transparent top");
    if (!window.ActiveXObject)
        {
            document.body.style.backgroundColor = "#0EB1ED";
       }

    if (performSearchNow)
    {
        SearchUserInput();
    }
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n) + '..';
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n) + '...';
    }
}

function OpenReviewForm()
{
    var ReviewLink = document.getElementById("ReviewLink");
    var ReviewForm = document.getElementById("ReviewForm");

    ReviewLink.style.display="none";
    ReviewForm.style.display="block";
}

function createCookie(name, value, days)
{
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
    }
  else var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
  var ca = document.cookie.split(';');
  var nameEQ = name + "=";
  for(var i=0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1, c.length); //delete spaces
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
  return null;
}

function eraseCookie(name)
{
  createCookie(name, "", -1);
}

function setSearchForCookie(keyword)
{
    var cookieString = readCookie('searchedFor');
    if (cookieString != null)
    { cookieString = keyword + '|' + cookieString; }
    else
    { cookieString = keyword }

    createCookie('searchedFor', cookieString, 30);
}

