/* * @version $Id: shajax.js 314 2009-06-05 18:21:36Z shumisha $ * @package sh404SEF * @copyright Copyright (C) 2008-2009 Yannick Gaultier. All rights reserved. * @license GNU/GPL, see LICENSE.php Joomla! is free software. This version may * have been modified pursuant to the GNU General Public License, and * as distributed it includes or is derivative of works licensed under * the GNU General Public License or other free or open source software * licenses. See COPYRIGHT.php for copyright notices and details. */ if(typeof(shajax)=="undefined"){var shajax=new Object();} shajax.enabled=true;shajax.useCache=true;shajax.useCompression=true;shajax.enableDebug=false;shajax.enablePrefetch=true;shajax.maxCacheSize=400000;shajax.shajaxLiveSiteUrl='';shajax.shajaxProgressImage='';shajax.defaultProgressElement='shajaxProgress';shajax.shajaxUrlMap=new Array();shajax.toPrefetch=new Array();shajax.delayToPrefetch=400;shajax.addDOMLoadEvent=(function(){var load_events=[],load_timer,script,done,exec,old_onload,init=function(){done=true;clearInterval(load_timer);while(exec=load_events.shift()) exec();if(script) script.onreadystatechange='';};return function(func){if(done) return func();if(!load_events[0]){if(document.addEventListener) document.addEventListener("DOMContentLoaded",init,false);if(/WebKit/i.test(navigator.userAgent)){load_timer=setInterval(function(){if(/loaded|complete/.test(document.readyState)) init();},10);} old_onload=window.onload;window.onload=function(){init();if(old_onload) old_onload();};} load_events.push(func);}})();shajax.shAjaxifyLinks=function(elementId){shajax.toPrefetch=new Array();var container=elementId?document.getElementById(elementId):document;shajax.compressor.enabled=shajax.useCompression;var links=container.getElementsByTagName('a');if(links){var aRel,aPreFetch,toPrefetchCount=0,reg=new RegExp(" ","g"),relBits=new Array(),uniqueId='',targetElement='',prefetchLink;for(var i=0;i';};shajax.delayedPrefetch=function(prefetchId){var toPrefetchCount=shajax.toPrefetch.length;if(toPrefetchCount){if(!shajax.toPrefetch[prefetchId][2]){shajax.debug('Fetching delayed '+shajax.toPrefetch[prefetchId][0]);shajax.toPrefetch[prefetchId][2]=true;shajax.shajax(shajax.toPrefetch[prefetchId][0],shajax.toPrefetch[prefetchId][1],'format=raw&tmpl=component&shajax=1','','cache');}}};shajax.onClickHandler=function(){var aLink=this.href,aRel=this.rel,aPreFetch,reg=new RegExp(" ","g"),relBits=new Array(),uniqueId='',targetElement='';if(aRel){if(aRel.substr(0,10)=='shajaxLink'){aPreFetch=false;relBits=aRel.split(reg);if(relBits.length==2||relBits.length==3){uniqueId=relBits[0];targetElement=relBits[1];if(relBits.length==3){aPreFetch=relBits[2]=="prefetch";}}} if(typeof(shajax.shajaxUrlMap)!='undefined'){if(shajax.shajaxUrlMap[uniqueId]){aLink=shajax.shajaxUrlMap[uniqueId];}} if(shajax.shajaxLiveSiteUrl&&aLink.substr(0,7)!='http://'&&aLink.substr(0,9)=='index.php'){aLink=shajax.shajaxLiveSiteUrl+aLink;} if(aPreFetch){var cached=shajax.getFromCache(aLink);if(cached){shajax.cacheIncreaseHits(aLink);var target=document.getElementById(targetElement);if(target){target.innerHTML=cached;} shajax.redoLinks(targetElement);shajax.postDisplayAction(targetElement);return false;}} shajax.shajax(aLink,targetElement,'format=raw&tmpl=component&shajax=1','shajaxProgress'+uniqueId.substr(10),'page');} return false;};function GetXmlHttp(){var xmlhttp=false;if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest()}else if(window.ActiveXObject) {try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}catch(E){xmlhttp=false}}} return xmlhttp;} shajax.shajax=function(targetUrl,elementId,params,progress,dest){var xmlHttp=new GetXmlHttp();if(progress&&!document.getElementById(progress)){progress=shajax.defaultProgressElement;} if(xmlHttp){if(dest=='page'){shajax.showProgress(progress,true);} var connector=targetUrl.indexOf('?')==-1?'?':'&';params=params?connector+params:params;xmlHttp.open('GET',targetUrl+params,true);if(typeof(xmlHttp.setRequestHeader)!="undefined"){xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');} xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){if(dest=='page'){shajax.showProgress(progress,false);} if(xmlHttp.status==200){shajax.putInCache(targetUrl,xmlHttp.responseText);if(dest=='page'){var target=document.getElementById(elementId);if(target){target.innerHTML=xmlHttp.responseText;} shajax.redoLinks(elementId);shajax.postDisplayAction(elementId);}}}} xmlHttp.send(null);}};shajax.redoLinks=function(elementId){var shMap=document.getElementById('shajaxRebuildUrlMap'+elementId);var html;if(shMap){html=shMap.innerHTML;} if(html){html=html.replace(/