/* * 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 $(document).ready(JT_init); var sRequestURL = "/inc/ajax_glossar.php"; function JT_init() { // Alle Normalen Glossareinträge mit Funktionen versehen und anschließend Info-Icon dahinter einbinden $("span.glossar-1-0").mouseover(function(){JT_show(sRequestURL + "?id=" + getWordId(this.className),this.id,"",false); return false;}); $("span.glossar-1-0").mouseout(function(){$('#JT').remove(); return false;}); //$("span.glossar-1-0").click(function(){return false}); $("span.glossar-1-0").addClass("glossarStyle"); $("span.glossar-1-0").after(''); // InfoIcons mit Funktionen versehen mit Parameterübernahme vom davorstehenden Link $("span.glossar-1-0").next('span').mouseover(function(){JT_show(sRequestURL + "?id=" + getWordId($(this).prev('span').attr("class")),$(this).prev('span').attr("id"),"",false); return false;}); $("span.glossar-1-0").next('span').mouseout(function(){$('#JT').remove(); return false;}); $("span.glossar-1-0").next('span').click(function(){return false}); // Alle Fachpartner und Normale Glossareinträge mit Funktionen versehen und anschließend Info-Icon dahinter einbinden $("span.glossar-1-1").mouseover(function(){JT_show(sRequestURL+"?id="+getWordId(this.className),this.id,"",false); return false;}); $("span.glossar-1-1").mouseout(function(){$('#JT').remove(); return false;}); //$("span.glossar-1-1").click(function(){return false}); $("span.glossar-1-1").addClass("glossarStyle"); $("span.glossar-1-1").after(''); // InfoIcons mit Funktionen versehen mit Parameterübernahme vom davorstehenden Link $("span.glossar-1-1").next('span').mouseover(function(){JT_show(sRequestURL + "?id=" + getWordId($(this).prev('span').attr("class")),$(this).prev('span').attr("id"),"",false); return false;}); $("span.glossar-1-1").next('span').mouseout(function(){$('#JT').hide().remove(); return false;}); $("span.glossar-1-1").next('span').click(function(){return false}); } function getWordId($sId) { var sWords = $sId.split(" "); sWordIDs = sWords[1].substring(4); return sWordIDs; } function JT_show(url,linkId,title,fachpartner){ if(title == false)title=" "; var de = document.documentElement; var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; var hasArea = w - getAbsoluteLeft(linkId); var clickElementy = getAbsoluteTop(linkId) - 3; //set y position var queryString = url.replace(/^[^\?]+\??/,''); var params = parseQuery( queryString ); if(params['width'] === undefined){params['width'] = 400}; if(params['link'] !== undefined){ $('#' + linkId).bind('click',function(){window.location = params['link']}); $('#' + linkId).css('cursor','pointer'); } if(hasArea>((params['width']*1)+75)){ if(fachpartner) $("body").append("
");//right side else $("body").append("
");//right side var arrowOffset = getElementWidth(linkId) + 11; var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position }else{ if(fachpartner) $("body").append("
");//left side else $("body").append("
");//left side var clickElementx = getAbsoluteLeft(linkId) - ((params['width']*1) + 15); //set x position } $('#JT').css({left: clickElementx+"px", top: clickElementy+"px"}); $('#JT').show(); $('#JT_copy').load(url); } 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 } 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; } }