/*
 * 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 SetAndGetFromXml3(events) {
    var ongoingEvents = events.getElementsByTagName('OngoingEvent');
    var date = events.getElementsByTagName('Date');
    var categoryId = events.getElementsByTagName('CategoryId');
    date = date[0].firstChild.data;
//    for (i = 0; i < ongoingEvents.length; i++) {
//    }

    var newEvents;
    if (events.getElementsByTagName('NewEvent') != null) {
        newEvents = events.getElementsByTagName('NewEvent');
    }

    var header = document.getElementById('aPopHeader');
    header.innerHTML = date;
    var text = document.getElementById('aPopTextcontainer');
    text.innerHTML = newEvents.length + " new events<br/><br/>";



    for (i = 0; i < newEvents.length; i++) {
        var categoryId = newEvents[i].getElementsByTagName('CategoryId')[0].firstChild.data
        switch (categoryId) {
            case "1":
                text.innerHTML += "<div style=\"background-color:#ce0e00;float:left;width:10px;height:10px;margin-bottom:10px;\"></div>";
                break;
            case "2":
                text.innerHTML += "<div style=\"background-color:#ce0e00;float:left;width:10px;height:10px;margin-bottom:10px;\"></div>";
                break;
            case "3":
                text.innerHTML += "<div style=\"background-color:#ce0e00;float:left;width:10px;height:10px;margin-bottom:10px;\"></div>";
                break;
            case "4":
                text.innerHTML += "<div style=\"background-color:#ce0e00;float:left;width:10px;height:10px;margin-bottom:10px;\"></div>";
                break;
            case "5":
                text.innerHTML += "<div style=\"background-color:#ce0e00;float:left;width:10px;height:10px;margin-bottom:10px;\"></div>";
                break;
            case "6":
                text.innerHTML += "<div style=\"background-color:#ce0e00;float:left;width:10px;height:10px;margin-bottom:10px;\"></div>";
                break;
        }
        text.innerHTML += newEvents[i].getElementsByTagName('Name')[0].firstChild.data + "<br clear=\"both\"/>";
    }
    text.innerHTML += ongoingEvents.length + " ongoing events";
}

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);
		var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position
	}else{
		var clickElementx = getAbsoluteLeft(linkId) - ((width*1)+6); //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/CalendarWindow2.aspx?Date=" + 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
            SetAndGetFromXml3(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
}
	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 -= 4;
	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;
              }
          }