﻿

$(document).ready(JT_init);

var __browser_useragent = navigator.userAgent;
var __is_ie = (__browser_useragent.indexOf('MSIE') > 0) ? true : false;
var __is_ie6 = (__browser_useragent.indexOf('MSIE 6') > 0) ? true : false;

var vLastSelectedJtipInfoUrl;  // Globale Variable
var visactive = false;


function setLastClickedUrl(url) {
    vLastSelectedJtipInfoUrl = url;
}

function resetLastClickedUrl() {
    vLastSelectedJtipInfoUrl = "";
}


function JT_init() {

    $("a.jTip")
		   .click(function() { return showhidetip(this.href, this.id, this.name) });

    $("body")
			.click(function() { visactive = false; JT_iframe_hide(); $('#JT').remove(); resetLastClickedUrl(); });

    $(window).bind('resize', function() {
        visactive = false; $('#JT').remove(); resetLastClickedUrl();
    });	
}


function showhidetip(href, id, name) {
	

    if (visactive == false) {
        JT_show(vLastSelectedJtipInfoUrl, id, name);
        visactive = true;
    } else {
        visactive = false;
        JT_iframe_hide();
        $('#JT').remove();
        resetLastClickedUrl();
    }

    return false;
}

function JT_iframe_hide() {
    var iFrame = document.getElementById("JT_IFRAME");
    if (iFrame != null) {
        iFrame.style.display = "none";
    }

    var iFrameDiv = document.getElementById("JT_IFRAME_DIV");
    if (iFrameDiv != null) {
        iFrameDiv.style.display = "none";
    }
}


function JT_show(url, linkId, title) {

    if (title == false) title = "&nbsp;";
    var de = document.documentElement;
    var w = self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
    var hasArea = w - getAbsoluteLeft(linkId);
    var clickElementy = getAbsoluteTop(linkId) + 50; //set y position

    var queryString = url.replace(/^[^\?]+\??/, '');
    var params = parseQuery(queryString);
    if (params['width'] === undefined) { params['width'] = 600 };
    if (params['link'] !== undefined) {
        $('#' + linkId).bind('click', function() { window.location = params['link'] });
        $('#' + linkId).css('cursor', 'pointer');
    }

    var arrowleftsite = false;
    var arrowrightsite = false;
    
    if (params['arrowleft'] == 1) {
        arrowleftsite = true;
    }
    
    if (params['arrowright'] == 1) {
        arrowrightsite = true;
    }


    if (arrowrightsite != true &&((hasArea > ((params['width'] * 1) + 75)) || (arrowleftsite == true))) {

        $("body").append(
            "<div id='JT' style='width:" + params['width'] * 1 + "px'>" +
            "   <div id='JT_arrow_left'></div>" +
            "   <div id='JT_BG'> " +
            "       <table cellpadding='0' cellspacing='0' border='0' class='jt_outerbox' style='width:" + params['width'] * 1 + "px' >" +
            "           <tr>" +
            "               <td class='jt_outerbox_tl'></td>" +
            "               <td class='jt_outerbox_tc'>" + title + "</td>" +
            "               <td class='jt_outerbox_tr'></td>" +
            "           </tr> " +
            "           <tr>" +
            "               <td class='jt_outerbox_l'></td>" +
            "               <td class='jt_outerbox_c'> " +
            "                   <div id='JT_copy'>" +
            "                       <div class='JT_loader'>" +
            "                           <div></div>" +
            "                       </div>" +
            "                   </div> " +
            "               </td>" +
            "               <td class='jt_outerbox_r'></td>" +
            "           </tr>" +
            "           <tr>" +
            "               <td class='jt_outerbox_bl'></td>" +
            "               <td class='jt_outerbox_bc'></td> " +
            "               <td class='jt_outerbox_br'></td>" +
            "           </tr> " +
            "       </table> " +
            "   </div>" +
            "   <div id='JT_close_bottom_right'></div> " +
            "</div>");

        if (__is_ie6) {
            $("body").append(
                "<div style=' position:absolute; display:none;' id='JT_IFRAME_DIV'>" +
                "   <iframe id='JT_IFRAME' style='display:none; width:" + params['width'] * 1 + "px;'></iframe> " +
                "</div>");
        }
        
        var arrowOffset = getElementWidth(linkId) + 11;
        var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position

    }

    if (arrowleftsite != true && ( !(hasArea > ((params['width'] * 1) + 75)) || (arrowrightsite == true))) {

        $("body").append(
            "<div id='JT' style='width:" + params['width'] * 1 + "px'>" +
            "   <div id='JT_arrow_right' style='left:" + ((params['width'] * 1) - 71) + "px'></div>" +
            "   <div id='JT_BG'> " +
            "       <table cellpadding='0' cellspacing='0' border='0' class='jt_outerbox' style='width:" + params['width'] * 1 + "px' > " +
            "           <tr>" +
            "               <td class='jt_outerbox_tl'></td>" +
            "               <td class='jt_outerbox_tc'>" + title + "</td>" +
            "               <td class='jt_outerbox_tr'></td>" +
            "           </tr> " +
            "           <tr>" +
            "               <td class='jt_outerbox_l'></td>" +
            "               <td class='jt_outerbox_c'> " +
            "                   <div id='JT_content_div'> " +
            "                       <div id='JT_copy'>" +
            "                           <div class='JT_loader'>" +
            "                               <div></div>" +
            "                           </div>" +
            "                       </div> " +
            "                   </div> " +
            "               </td>" +
            "               <td class='jt_outerbox_r'></td>" +
            "           </tr>" +
            "           <tr>" +
            "               <td class='jt_outerbox_bl'></td>" +
            "               <td class='jt_outerbox_bc'></td> " +
            "               <td class='jt_outerbox_br'></td>" +
            "           </tr> " +
            "       </table> " +
            "   </div>" +
            "   <div id='JT_close_bottom_right'></div> " +
            "</div>"
            );

        if (__is_ie6) {
            $("body").append(
                "<div style=' position:absolute; display:none;' id='JT_IFRAME_DIV'>" +
                "   <iframe id='JT_IFRAME' style='display:none; width:" + params['width'] * 1 + "px;'></iframe> " +
                "</div>");
        }
        
        var clickElementx = getAbsoluteLeft(linkId) - ((params['width'] * 1) + 15); //set x position
    }


    if (params['posrefobject'] != undefined) {
        var refleft = getAbsoluteLeft(params['posrefobject'], false);
    }

    if (params['posrefobject'] != undefined) {
        var reftop = getAbsoluteTop(params['posrefobject'], false);
        
        
    }
    
    if (params['left'] != undefined) {
        if (params['posrefobject'] != undefined) {
            clickElementx = eval(refleft) + eval(params['left']);
        } else {
            clickElementx = params['left'];
        }
    }

    if (params['top'] != undefined) {

        if (params['posrefobject'] != undefined) {
            clickElementy = eval(reftop) + eval(params['top']);
            if (__is_ie) {
                clickElementy = clickElementy - 10;
            }
        } else {
            clickElementy = params['top'];
        }
    }

    $('#JT').css({ left: clickElementx + "px", top: clickElementy + "px" });
    $('#JT').show();

    var vCurrentJtCopyHeightSaved = 0;
    var vCurrentJtCopyHeight = 0;

    var vJT_content = document.getElementById("JT_content_div");
    if (vJT_content != null) {
        vCurrentJtCopyHeight = vJT_content.offsetHeight;
        vCurrentJtCopyHeightSaved = vCurrentJtCopyHeight;
    }

    $('#JT_copy').load(url,
        function() {
        	
        	if (__is_ie6) {

        		var vIFrameDiv = document.getElementById("JT_IFRAME_DIV");
        		var iFrame = document.getElementById("JT_IFRAME");
        		var jtDiv = document.getElementById("JT");

        		if (iFrame != null && jtDiv != null && vIFrameDiv != null) {

        			var vLoopCount = 0;

        			while (vCurrentJtCopyHeightSaved == vCurrentJtCopyHeight && vLoopCount < 1000000) {
        				vJT_content = document.getElementById("JT_content_div");
        				vCurrentJtCopyHeight = vJT_content.offsetHeight;
        				vLoopCount++;
        			}

        			iFrame.style.width = jtDiv.offsetWidth;
        			iFrame.style.height = jtDiv.offsetHeight;
        			iFrame.style.display = "block";
        			iFrame.style.zIndex = "85";

        			vIFrameDiv.style.width = jtDiv.offsetWidth;
        			vIFrameDiv.style.height = jtDiv.offsetHeight;
        			vIFrameDiv.style.left = jtDiv.style.left;
        			vIFrameDiv.style.top = clickElementy;
        			vIFrameDiv.style.display = "block";
        		}
        	}
        }
    );

}

function getElementWidth(objectId) {
    x = document.getElementById(objectId);
    return x.offsetWidth;
}

function getAbsoluteLeft(objectId, noParent) {
   
    // 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

    if (noParent == true) {
        return oLeft;
    }
 
    while (o.offsetParent != null) {   // Parse the parent hierarchy up to the document element
        
        oParent = o.offsetParent    // Get parent object reference

        if (objectId == "id_boxy_content") {
            alert(oParent.id);
        }

        o = oParent
        oLeft += oParent.offsetLeft // Add parent left position
        
    }
    return oLeft
}

function getAbsoluteTop(objectId, noParent) {
   
    // Get an object top position from the upper left viewport corner
    o = document.getElementById(objectId)
    oTop = o.offsetTop

    if (noParent == true) {
        return oTop;
    }
    
    // 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
    }
    
    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;
    }
}