﻿/*
* JTip
* By Cody Lindley (http://www.codylindley.com)
* Under an Attribution, Share Alike License
* JTip is built on top of the very light weight jquery library.
*/

//on page load (as soon as its ready) call JT_init
function hideLayer(layerId) {
    var imgPopUp = document.getElementById('imgPopUp');
    imgPopUp.src = "../_images/loader.gif";
    document.getElementById('loader').style.visibility = "hidden";
    imgPopUp.style.visibility = "hidden";
    var header = document.getElementById('aPopHeader')
    header.setAttribute("class", "");

    imgPopUp.style.visibility = "hidden";
    XmlHttp.onreadystatechange = function() { }
    XmlHttp.abort();

    document.getElementById(layerId).style.visibility = "hidden";
}

function initThis(location) {
    window.location = location;
}


function HandleResponse2() {
    if (XmlHttp2.readyState == 4) {
        if (XmlHttp2.status == 200) {
            //            SetAndGetFromXml2(XmlHttp2.responseXML.documentElement);
        }
        else {
            alert("There was a problem retrieving data from the server.");
        }
    }
}
function SetAndGetFromXml2(event) {

    document.getElementById('loader').style.visibility = "hidden";
    var event = event.getElementsByTagName('Event');
    var id = event[0].getElementsByTagName('Id')[0].firstChild.data;
    var pictureId = event[0].getElementsByTagName('PictureId')[0].firstChild.data;
    var imgPopUp = document.getElementById('imgPopUp');
    imgPopUp.src = "ImageHandler.ashx?ImageId=" + pictureId;
    imgPopUp.style.visibility = "visible";

    var text2 = event[0].getElementsByTagName('Text')[0].firstChild.data;
    //    var featured = event[0].getElementsByTagName('Featured')[0].firstChild.data;
    var eventCategoryId = event[0].getElementsByTagName('EventCategoryId')[0].firstChild.data;
    //    var eventTypeId = event[0].getElementsByTagName('EventTypeId')[0].firstChild.data;
    //    var hosts = event[0].getElementsByTagName('Hosts')[0].firstChild.data;
    //    var companyId = event[0].getElementsByTagName('CompanyId')[0].firstChild.data;
    //    var statusId = event[0].getElementsByTagName('StatusId')[0].firstChild.data;
    var startDate = event[0].getElementsByTagName('StartDate')[0].firstChild.data;
    var endDate = event[0].getElementsByTagName('EndDate')[0].firstChild.data;
    var country = event[0].getElementsByTagName('Country')[0].firstChild.data;
    var city = event[0].getElementsByTagName('City')[0].firstChild.data;
    var name = event[0].getElementsByTagName('Name')[0].firstChild.data;
    var location = event[0].getElementsByTagName('Location')[0].firstChild.data;
    var pictureId = event[0].getElementsByTagName('PictureId')[0].firstChild.data;

    var header = document.getElementById('aPopHeader');
    var text = document.getElementById('aPopTextcontainer');

    switch (eventCategoryId) {
        case "1":
            header.setAttribute("class", "headerCulture");
            header.setAttribute("className", "headerCulture");
            break;
        case "2":
            header.setAttribute("class", "headerDesign");
            header.setAttribute("className", "headerDesign");
            break;
        case "3":
            header.setAttribute("class", "headerFashion");
            header.setAttribute("className", "headerFashion");
            break;
        case "4":
            header.setAttribute("class", "headerFood");
            header.setAttribute("className", "headerFood");
            break;
        case "5":
            header.setAttribute("class", "headerMusic");
            header.setAttribute("className", "headerMusic");
            break;
        case "6":
            header.setAttribute("class", "headerOther");
            header.setAttribute("className", "headerOther");
            break;
    }

    text.innerHTML =
    "<p><h1>" + name + "</h1>" +
    "<strong>" + startDate + " - " + endDate + "</strong><br/>" +
    location + "<br/>" + city + ", " + country + "<br/><br/>" + text2 +
    "</p>";
    var imgPopUp = document.getElementById('imgPopUp');
    imgPopUp.src = "ImageHandler.ashx?ImageId=" + pictureId;
    imgPopUp.style.visibility = "visible";

    //    }

}

function JT_show(layerId, linkId, width) {
    document.getElementById('aPopTextcontainer').innerHTML = "";
    document.getElementById('loader').style.visibility = "visible";
    var imgPopUp = document.getElementById('imgPopUp');
    imgPopUp.style.visibility = "hidden";
    var de = document.documentElement;
    var w = self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
    var hasArea = w - getAbsoluteLeft(linkId);
    var clickElementy = getAbsoluteTop(linkId) - 1; //set y position

    if (hasArea > ((width * 1) + 75)) {
        var arrowOffset = getElementWidth(linkId) + 5;
        var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position
    } else {
        var clickElementx = getAbsoluteLeft(linkId) - ((width * 1) + 15); //set x position
    }
    var content = document.getElementById(layerId);
    content.style.visibility = "visible";
    content.style.marginLeft = clickElementx + "px";
    content.style.marginTop = clickElementy + "px";
    var requestUrl = "Handlers/CalendarWindow.aspx?id=" + linkId.toString();
    processAjax(requestUrl);
    //    lookup2(linkId.toString());
    //	$.post("Handlers/CalendarWindow.aspx", { id: linkId.toString() },
    //	// Call page AjaxCall.aspx 
    //    function(data) // On successfully retrival of response
    //    {
    //        SetAndGetFromXml2(data,clickElementx,clickElementy);
    //    });
}

var XmlHttp;
function processAjax(thisUrl) {
    url = thisUrl;
    if (window.XMLHttpRequest) { // Non-IE browsers
        XmlHttp = new XMLHttpRequest();
        XmlHttp.onreadystatechange = targetDiv;
        try {
            XmlHttp.open("GET", url, true);
        } catch (e) {
            alert(e);
        }
        XmlHttp.send(null);
    } else if (window.ActiveXObject) { // IE
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (XmlHttp) {
            XmlHttp.onreadystatechange = targetDiv;
            XmlHttp.open("GET", url, true);
            XmlHttp.send();
        }
    }
}

function targetDiv() {
    if (XmlHttp.readyState == 4) { // Complete
        if (XmlHttp.status == 200) { // OK response
            SetAndGetFromXml2(XmlHttp.responseXML.documentElement);

        } else {
            alert("Problem: " + req.statusText);
        }
    }
}

function getElementWidth(objectId) {
    x = document.getElementById(objectId);
    return x.offsetWidth;
}

function getAbsoluteLeft(objectId) {
    // Get an object left position from the upper left viewport corner
    o = document.getElementById(objectId)
    oLeft = o.offsetLeft            // Get left position from the parent object
    while (o.offsetParent != null) {   // Parse the parent hierarchy up to the document element
        oParent = o.offsetParent    // Get parent object reference
        oLeft += oParent.offsetLeft // Add parent left position
        o = oParent
    }
    oLeft -= 180;
    return oLeft
}

function getAbsoluteTop(objectId) {
    // Get an object top position from the upper left viewport corner
    o = document.getElementById(objectId)
    oTop = o.offsetTop            // Get top position from the parent object
    while (o.offsetParent != null) { // Parse the parent hierarchy up to the document element
        oParent = o.offsetParent  // Get parent object reference
        oTop += oParent.offsetTop // Add parent top position
        o = oParent
    }
    oTop += 20;
    return oTop
}

function parseQuery(query) {
    var Params = new Object();
    if (!query) return Params; // return empty object
    var Pairs = query.split(/[;&]/);
    for (var i = 0; i < Pairs.length; i++) {
        var KeyVal = Pairs[i].split('=');
        if (!KeyVal || KeyVal.length != 2) continue;
        var key = unescape(KeyVal[0]);
        var val = unescape(KeyVal[1]);
        val = val.replace(/\+/g, ' ');
        Params[key] = val;
    }
    return Params;
}

function blockEvents(evt) {
    if (evt.target) {
        evt.preventDefault();
    } else {
        evt.returnValue = false;
    }
}