﻿var publisherId = 0;
var adFeedId = 0;
var checkNewsFeed = 0;
var lang = "";
var xmlhttp = null;
var browser = null;
var bgC = "#F0F5F1";
var fN = "Arial";
var fS = "9";
var bC = "#E1E5E4";
var bT = "1";
var header1 = ""
var header2 = "";
var maxWidth = 0;
var maxHeight = 0;

function createXHR() {
    var xhr = null;
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) { }
        }
    }
    return xhr;
}

function GetAdFeedContents(pid, cid) {
    publisherId = pid;
    adFeedId = cid;
    browser = BrowserDetect.browser;
    if (xmlhttp == null) {
        xmlhttp = createXHR();
    }
    xmlhttp.open("GET", channelUrl + pid + '&wId=' + cid, true);
    xmlhttp.setRequestHeader("Cache-Control", "no-cache");
    xmlhttp.setRequestHeader("Pragma", "no-cache");
    if (browser == 'Explorer') {
        xmlhttp.onreadystatechange = function() { verifyDownload(xmlhttp) }
    }
    else {
        xmlhttp.onload = xmlhttp.onerror = xmlhttp.onabort = function() {
            readXML(xmlhttp);
        };
    }
    xmlhttp.send(null);
}
function verifyDownload(content) {
    if (content.readyState != 4) {
        return false;
    }
    else {
        var xml;
        if (content.responseText != null) {
            xml = content.responseXML;
            parseXML(xml);
        }
        else {
            alert("Failed to receive RSS file from the server - file not found.");
        }
    }
}
var xmlDoc = null;
var channelUrl = 'http://www.localpoint.ch/lpwidget/adfeed.aspx?pId=';
var downloadHelper = 'http://www.localpoint.ch/lpwidget/download.aspx?url=';
function parseXML(text) {
    var xmlDoc;
    try {  //Internet Explorer
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.onreadystatechange = verify;
        xmlDoc.loadXML(text.xml);
        xmlObj = xmlDoc.documentElement
        var i = 0;
        var j = 0;
        var k = 0;
        var counter = 0;
        lang = xmlObj.getAttribute("language");
        maxWidth = xmlObj.getAttribute("width");
        maxHeight = xmlObj.getAttribute("height") - 60;
        sortOrder = xmlObj.getAttribute("sortOrder");
        widgetType = xmlObj.getAttribute("widgetType");
        var totalItems = xmlObj.getAttribute("totalItems");
        if (totalItems > 0)
            counter = parseInt(totalItems) + 1;
        displayTime = xmlObj.getAttribute("duration");
        bgC = xmlObj.getAttribute("bgClr");
        fN = xmlObj.getAttribute("fName");
        fS = xmlObj.getAttribute("fSize");
        bC = xmlObj.getAttribute("bClr");
        bT = xmlObj.getAttribute("bThickness");
        header1 = xmlObj.getAttribute("hdr1");
        header2 = xmlObj.getAttribute("hdr2");
        if (header1 != '' || header2 != '') {
            if (header1 == '') {
                header1 = header2 + "<br />";
            }
            else {
                if (header2 == '')
                    header1 = header1 + "<br />";
                else
                    header1 = header1 + "<br />" + header2 + "<br />";
            }
        }
        fixWidget(xmlObj.getAttribute("width"), xmlObj.getAttribute("height"));
        var span1 = document.getElementById('lblHeader');
        if (header1 != '') {
            span1.innerHTML = "<span style='font-size:" + fS + "pt; font-family:" + fN + "; margin-top: 5px;'>" + header1 + "</span>";
        }
	else
	{
            span1.innerHTML = "";
	}
        span1 = null;
        for (i = 0; i < xmlObj.childNodes.length; i++) {
            if (counter > 0) {
                for (j = 0; j < counter; j++) {
                    var url, height, width, eLink;
                    for (k = 0; k < xmlObj.childNodes[i].childNodes[j].childNodes.length; k++) {
                        switch (xmlObj.childNodes[i].childNodes[j].childNodes[k].tagName) {
                            case "link":
                                url = xmlObj.childNodes[i].childNodes[j].childNodes[k].text;
                                break;
                            case "height":
                                height = xmlObj.childNodes[i].childNodes[j].childNodes[k].text;
                                break;
                            case "width":
                                width = xmlObj.childNodes[i].childNodes[j].childNodes[k].text;
                                break;
                            case "externalLink":
                                eLink = xmlObj.childNodes[i].childNodes[j].childNodes[k].text;
                                break;
                            default:
                                break;
                        }
                    }
                    AddImage(url, height, width, eLink)
                }
            }
            else {
                for (j = 0; j < xmlObj.childNodes[i].childNodes.length; j++) {
                    var url, height, width, eLink;
                    for (k = 0; k < xmlObj.childNodes[i].childNodes[j].childNodes.length; k++) {
                        switch (xmlObj.childNodes[i].childNodes[j].childNodes[k].tagName) {
                            case "link":
                                url = xmlObj.childNodes[i].childNodes[j].childNodes[k].text;
                                break;
                            case "height":
                                height = xmlObj.childNodes[i].childNodes[j].childNodes[k].text;
                                break;
                            case "width":
                                width = xmlObj.childNodes[i].childNodes[j].childNodes[k].text;
                                break;
                            case "externalLink":
                                eLink = xmlObj.childNodes[i].childNodes[j].childNodes[k].text;
                                break;
                            default:
                                break;
                        }
                    }
                    AddImage(url, height, width, eLink)
                }
            }
        }            
        xmlObj = null;
        text = null;
        if (sortOrder != 0)
            graphicAds.sort(sortArray);
        else
            graphicAds.sort(randomSort);
        
        PrepareForDisplay();
    }
    catch (e) {
        //GetAdFeedContents(publisherId, adFeedId);
    }
}

function readXML(xhr) {
    var xml;
    var xmlDoc;
    if (document.implementation && document.implementation.createDocument) {
        xmlDoc = document.implementation.createDocument("", "", null);
        if (browser == 'Opera')
            xmlDoc = xhr.responseXML;
        else
            xmlDoc = (new DOMParser()).parseFromString(xhr.responseText, "text/xml");
        xmlObj = xmlDoc.documentElement

        var i = 0;
        var j = 0;
        var counter = 0;
        lang = xmlObj.getAttribute("language");
        maxWidth = xmlObj.getAttribute("width");
        maxHeight = xmlObj.getAttribute("height") - 60;
        sortOrder = xmlObj.getAttribute("sortOrder");
        widgetType = xmlObj.getAttribute("widgetType");
        var totalItems = xmlObj.getAttribute("totalItems");
        if (totalItems > 0)
            counter = parseInt(totalItems) + 1;
        displayTime = xmlObj.getAttribute("duration");
        bgC = xmlObj.getAttribute("bgClr");
        fN = xmlObj.getAttribute("fName");
        fS = xmlObj.getAttribute("fSize");
        bC = xmlObj.getAttribute("bClr");
        bT = xmlObj.getAttribute("bThickness");
        header1 = xmlObj.getAttribute("hdr1");
        header2 = xmlObj.getAttribute("hdr2");
        if (header1 != '' || header2 != '') {
            if (header1 == '') {
                header1 = header2 + "<br />";
            }
            else {
                if (header2 == '')
                    header1 = header1 + "<br />";
                else
                    header1 = header1 + "<br />" + header2 + "<br />";
            }
        }
        fixWidget(xmlObj.getAttribute("width"), xmlObj.getAttribute("height"));
        var span1 = document.getElementById('lblHeader');
        if (header1 != '') {
            span1.innerHTML = "<span style='font-size:" + fS + "pt; font-family:" + fN + "; margin-top: 5px;'>" + header1 + "</span>";
        }
	else
	{
            span1.innerHTML = "";
	}
        span1 = null;
        var modules = xmlDoc.getElementsByTagName('adImage');
        if (counter > 0) {
            for (i = 0; i < counter; i++) {
                for (j = 0; j < modules[i].childNodes.length; j++) {
                    var url, height, width, eLink;
                    switch (modules[i].childNodes[j].tagName) {
                        case "link":
                            url = modules[i].childNodes[j].firstChild.nodeValue;
                            break;
                        case "height":
                            height = modules[i].childNodes[j].firstChild.nodeValue;
                            break;
                        case "width":
                            width = modules[i].childNodes[j].firstChild.nodeValue;
                            break;
                        case "externalLink":
                            if (modules[i].childNodes[j].hasChildNodes())
                                eLink = modules[i].childNodes[j].firstChild.nodeValue;
                            else
                                eLink = '';
                            break;
                        default:
                            break;
                    }
                }
                AddImage(url, height, width, eLink)
            }
        }
        else {
            for (i = 0; i < modules.length; i++) {
                for (j = 0; j < modules[i].childNodes.length; j++) {
                    var url, height, width, eLink;
                    switch (modules[i].childNodes[j].tagName) {
                        case "link":
                            url = modules[i].childNodes[j].firstChild.nodeValue;
                            break;
                        case "height":
                            height = modules[i].childNodes[j].firstChild.nodeValue;
                            break;
                        case "width":
                            width = modules[i].childNodes[j].firstChild.nodeValue;
                            break;
                        case "externalLink":
                            if (modules[i].childNodes[j].hasChildNodes())
                                eLink = modules[i].childNodes[j].firstChild.nodeValue;
                            else
                                eLink = '';
                            break;
                        default:
                            break;
                    }
                }
                AddImage(url, height, width, eLink)
            }
        }
    }
    xmlObj = null;
    modules = null;
    xhr = null;
    if (sortOrder != 0)
        graphicAds.sort(sortArray);
    else
        graphicAds.sort(randomSort);
    PrepareForDisplay();
}

function verify() {
    // 0 Object is not initialized, 1 object is loading data, 2 object has loaded data, 3 Data from object can be worked with, 4 Object completely initialized
    if (xmlDoc.readyState != 4) {
        return false;
    }
}

function fixWidget(swidth, sheight) {
    if (document.getElementById) {
        var aDiv = document.getElementById('adContent');
        aDiv.style.height = parseInt(sheight) + "px";
        aDiv.style.width = parseInt(swidth) + "px";
        aDiv.style.border = bC + ' ' + bT + 'px' + ' ' + 'solid';
        aDiv.style.background = bgC;

 //       var aDiv1 = document.getElementById('controlContent');
   //     aDiv1.style.width = parseInt(swidth) + "px";
        
        var aDiv2 = document.getElementById('overlay');
        aDiv2.style.height = parseInt(sheight) + "px";
        aDiv2.style.width = parseInt(swidth) + "px";

//        aDiv2.style.height = parseInt(sheight) + "px";
  //      aDiv2.style.width = parseInt(swidth) + "px";
    }
}
function sortArray(a, b) {
    a = a.pubDate;
    b = b.pubDate;
    var d1 = new Date(a);
    var d2 = new Date(b);
    return d1 == d2 ? 0 : (d1 < d2 ? 1 : -1);
}
function randomSort() {
    return 0.5 - Math.random();
}

