/* * 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. */ // noconflictmode var $j = jQuery.noConflict(); $j(document).ready(function(){ $j('a.simply_gloss').click(function(){ $j.post(this.rel); $j('#JT').remove(); JT_show(this.rel,this.id,this.title,this.name); return false; }); $j('a.simply_intern').click(function(){$j.post(this.rel);}); $j('a.simply_extern').click(function(){$j.post(this.rel);}); }); function JT_show(rel,linkId,title,name){ 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) - 60; //set y position var prefixUrl='index.php?option=com_content&view=article&id='; var suffixUrl='&tmpl=component'; var URL=prefixUrl+name+suffixUrl; var queryString = name.replace(/^[^\?]+\??/,''); var params = parseQuery( queryString ); if(params['width'] === undefined){params['width'] = 400}; if(params['link'] !== undefined){ $j('#' + linkId).bind('click',function(){window.location = params['link']}); $j('#' + linkId).css('cursor','pointer'); } if(hasArea>((params['width']*1)+75)){ $j("body").append("
 


"+linkId+"

");//right side var arrowOffset = getElementWidth(linkId) + 11; var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position }else{ $j("body").append("
 

"+linkId+"

");//left side var clickElementx = getAbsoluteLeft(linkId) - ((params['width']*1) + 15); //set x position } $j('#JT').hide(); $j('#JT').css({left: clickElementx+"px", top: clickElementy+"px"}); $j('#JT_close_butt_left').click(function(){$j('#JT').remove()}); $j('#JT_close_butt_right').click(function(){$j('#JT').remove()}); $j('#JT_copy').load(URL,function() { $j('#JT').fadeIn();}); } 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; } }