/*
	REDy! Pro AJAX Plugin
	Copyright © 2009-2010 Jurek Raben / Virtual Creations
	All rights reserved.
	
	Version 1.2
*/

function RedyBase(){redy=this;browserOpera=(navigator.userAgent.toLowerCase().indexOf("opera")>=0);browserIE=(navigator.appName=="Microsoft Internet Explorer"&&!browserOpera);browserSafari=(navigator.userAgent.toLowerCase().indexOf("safari")>=0);browserMozilla=(navigator.userAgent.toLowerCase().indexOf("mozilla")>=0);browserChrome=(navigator.userAgent.toLowerCase().indexOf("chrome")>=0);browserFirefox=(browserMozilla&&!browserSafari&&!browserIE&&!browserOpera&&!browserChrome);this.ro=new Array(this.layout_cells.length);this.roTimeouts=new Array(this.layout_cells.length);this.roTemp=new Object();this.roTemp.last=new Array(this.layout_cells.length);this.roTemp.now=new Array(this.layout_cells.length);this.loadedState=false;this.loadStates=new Object();this.numFlashPlugins=0;this.numSubFlashPlugins=0;this.dynStarted=0;this.lasturl="";this.urlcall=false;realurl="";this.actual_layout=this.start_layout;treeContent=null;this.jsReady=false;this.historyObj=new Object();this.historyTimer=null;this.lastWindowLocation=null;this.cookieTimeoutDate=new Date();this.cookieTimeout=this.cookieTimeoutDate.getTime()+(30*24*60*60*1000);this.breakUpExecution=false;this.browserTitle=document.title;this.preloadedImgs=new Object();this.preloadedImgsCounter=0;this.viewpage_now=function(purl){this.breakUpExecution=true;this.viewpage(purl)};this.stopPending=function(){clearInterval(this.historyTimer);for(var f=0;f<this.layout_cells.length;f++){if(this.ro[f]){if(this.ro[f].readyState){this.ro[f].abort()}this.ro[f]=null}}};this.viewpage=function(purl,pNoHistoryAdd){this.stopPending();realurl=purl.get("realurl");idcat=purl.get("idcat");idart=purl.get("idart");if(this.historyEnabled){this.historyObj[(realurl?realurl:0)]=purl;if(browserIE){var iFrame=getTag("historyIframe").contentWindow.document;if(!iFrame.body||(iFrame.body.innerText!=realurl)){iFrame.open();iFrame.write("<html><body>"+realurl+"</body></html>");iFrame.close()}}if(!browserIE&&realurl&&!pNoHistoryAdd){window.location.hash=realurl}if(window.location.href.indexOf("#")!=-1){if(!browserOpera){window.location.replace(window.location.href.split("#")[0]+"#"+this.urlEncode(realurl))}}if(browserIE&&realurl){window.location.hash=realurl}document.title=this.browserTitle;this.historyTimer=setInterval("redy.historyChange();",1000)}this.showLoading();for(var f=0;f<this.layout_cells.length;f++){this.ro[f]=this.getXMLRequest(this.ro[f]);if(!this.ro[f]){continue}var ajaxUrl=purl+"&plain_field="+this.layout_cells[f];if(window.location.search.get("doDebug")){ajaxUrl+="&doDebug=1"}if(window.location.search.get("caller")){ajaxUrl+="&caller="+window.location.search.get("caller")}this.ro[f].open("GET",ajaxUrl,true);this.ro[f].onreadystatechange=function(){buildAreas(redy,purl)};this.ro[f].send(null)}};function buildAreas(caller,purl){var loadedStateTemp=true;for(var f=0;f<caller.layout_cells.length;f++){if(!caller.ro[f]||caller.ro[f].readyState!=4){loadedStateTemp=false;break}}if(loadedStateTemp==true){var sameLayout=true;var result,searchPattern,searchResult;for(var f=0;f<caller.layout_cells.length;f++){result=caller.ro[f].responseText;if(typeof caller.sid!="undefined"){result=result.replace(/%%%SID%%%/gi,"sid="+caller.sid)}searchPattern=/<script type="text\/javascript" class="new_script"[^>]*>([^<]*)<\/script>/gi;while(searchResult=searchPattern.exec(result)){eval(caller.removeSpecialChars(searchResult[1]))}caller.roTemp.now[f]=result.replace(searchPattern,"");if(caller.breakUpExecution){clearInterval(this.historyTimer);caller.breakUpExecution=false;if(!caller.urlcall){return}}if(caller.start_layout!=caller.actual_layout){clearInterval(this.historyTimer);sameLayout=false;if(realurl!=null){location.href=url_path+realurl}else{location.href=purl}break}}if(sameLayout==true){caller.numSubFlashPlugins=0;for(var f=0;f<caller.layout_cells.length;f++){if(caller.useImagePreloader){result=caller.roTemp.now[f];searchPattern=/<img.*src="([^"]*)".*>/gi;while(searchResult=searchPattern.exec(result)){caller.preloadImg(caller.removeSpecialChars(searchResult[1]))}}var searchContent=caller.roTemp.now[f];while(searchContent.indexOf('"flashmod"')!=-1){var searchContent=String(searchContent.substr(searchContent.indexOf('"flashmod"')+8));caller.numSubFlashPlugins++}}if(getTag("response_crumb")&&treeContent){getTag("response_crumb").innerHTML=treeContent}caller.checkLoadingFinished()}}}this.checkLoadingFinished=function(){document.title=this.browserTitle;if(this.preloadedImgsCounter){return}for(var f=0;f<this.layout_cells.length;f++){var isSame=false;if(typeof this.roTemp.last[f]!="undefined"){isSame=(this.strCmp(this.roTemp.now[f],this.roTemp.last[f]))}if(!isSame){this.fireSystemEvent(this.REDY_CONTENT_CHANGED,{numContent:this.layout_cells[f],hasOld:(this.roTemp.last[f]?this.roTemp.last[f].length:0),hasNew:(this.roTemp.now[f]?this.roTemp.now[f].length:0),newContent:this.roTemp.now[f]},false)}else{this.fireSystemEvent(this.REDY_CONTENT_NOT_CHANGED,{numContent:this.layout_cells[f],hasContent:this.roTemp.now[f].length,newContent:this.roTemp.now[f]},false)}if(!this.urlcall){if(!isSame&&!this.isSystemEventHooked(this.REDY_CONTENT_CHANGED)){getTag("response_content"+this.layout_cells[f]).innerHTML=this.roTemp.now[f]}}this.roTemp.last[f]=this.roTemp.now[f]}if(this.flashComm){var flashCommUrl=url_path+"modules/includes/flash_comm.swf?idcat="+idcat+"&idart="+idart+"&url_path="+url_path+"&sid="+this.sid;var flashCommW=10;var flashCommH=10;if(window.location.search.get("doDebug")){flashCommUrl+="&debug=1";flashCommW=150;flashCommH=300}var flashCommContent='<object id="flash_comm" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="'+flashCommW+'" height="'+flashCommH+'"><param name="allowScriptAccess" value="sameDomain" /><param name="menu" value="false" /><param name="movie" value="'+flashCommUrl+'&isIE=1" /><param name="quality" value="low" /><param name="wmode" value="opaque" /><param name="salign" value="lt" /><embed src="'+flashCommUrl+'" quality="low" menu="false" width="'+flashCommW+'" height="'+flashCommH+'" wmode="opaque" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" salign="lt" /></object>';getTag("response_flashcomm").innerHTML=flashCommContent}this.urlcall=false;this.numFlashPlugins=this.countFlashPlugins()-this.numSubFlashPlugins;if(!this.flashFinishesLoading){if(this.numFlashPlugins<=0){this.hideLoading()}else{this.checkFlashLoadStates()}}document.title=this.browserTitle;this.fireSystemEvent(this.REDY_LOAD_FINISHED)};this.ajaxLoadFinished=function(p_actual_layout,p_treeContent,p_idcat,p_idart,p_plain_field){this.actual_layout=p_actual_layout;treeContent=p_treeContent;idcat=p_idcat;idart=p_idart;this.fireSystemEvent(this.REDY_AJAX_LOAD_FINISHED,{numContent:p_plain_field})};this.historyChange=function(){var historyPageName=this.historyGetPageName();if(realurl!=historyPageName){clearInterval(this.historyTimer);this.viewpage(this.historyObj[(historyPageName?historyPageName:0)],(browserOpera?true:false))}};this.historyGetPageName=function(){var n=null;if(browserIE){var iFrame=getTag("historyIframe").contentWindow.document;if(iFrame.body){n=iFrame.body.innerText}}else{n=window.location.href.split("#")[1];if(typeof(n)=="undefined"){n=""}}return n};this.getXMLRequest=function(ro){if(typeof(XMLHttpRequest)!="undefined"){ro=new XMLHttpRequest()}else{try{ro=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{ro=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){ro=false}}}return ro};this.strCmp=function(string1,string2){var strLen1=String(string1).length;var strLen2=String(string2).length;if(strLen1!=strLen2){return false}var compareLen=40000;if(strLen1<compareLen){compareLen=strLen1}if(strLen2<strLen1){compareLen=strLen2}if(string1.substr(0,compareLen)!=string2.substr(0,compareLen)){return false}else{return true}};this.countFlashPlugins=function(){var found=document.getElementsByName("flashmod").length;return found};this.setFlashSize=function(fieldid,hsize){this.flashSetState(fieldid);getTag(fieldid+"ie").name="checkedflash";if(browserIE){fieldid+="ie"}getTag(fieldid).style.height=hsize;if(hsize){getTag(fieldid).height=hsize}};getTag=function(fieldid){if(document.getElementById&&!browserIE){return document.getElementById(fieldid)}else{if(document.all){return document.all[fieldid]}else{if(document.layers){return document.layers[fieldid]}}}return false};this.setCookie=function(name,val){document.cookie=name+"="+val+"; expires="+this.cookieTimeoutDate.toGMTString()+"; path="+url_path};this.readCookie=function(name){var nameEQ=name+"=";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1,c.length)}if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length)}}return null};this.trackEvent=function(action,filename){this.fireSystemEvent(this.REDY_TRACK_EVENT,{action:action,filename:filename})};this.trackDownload=function(filename){document.title=this.browserTitle;this.fireSystemEvent(this.REDY_TRACK_DOWNLOAD,{filename:filename});setTimeout('self.location="'+filename+'";',1500)};this.trackExternalUrl=function(url){this.fireSystemEvent(this.REDY_TRACK_EXTERNAL_URL,{url:url})};this.trackExternalShopUrl=function(url){this.fireSystemEvent(this.REDY_TRACK_EXTERNAL_SHOP_URL,{url:url})};function docUnloaded(){redy.stopPending();redy.unhookSystemEvents();for(var f=0;f<redy.layout_cells.length;f++){if(getTag("response_content"+redy.layout_cells[f])){getTag("response_content"+redy.layout_cells[f]).innerHTML=""}}}this.docLoaded=function(p_docLoadedFunction){this.cookieTimeoutDate.setTime(this.cookieTimeout);this.urlcall=!this.dynamicStart;this.jsReady=true;if(browserIE){window.onunload=docUnloaded}if(this.flashComm&&browserFirefox){getTag("response_flashcomm").style.position="fixed"}var historyPageName=window.location.href.split("#")[1];if(!(this.historyEnabled&&typeof(historyPageName)!="undefined")){var viewUrl=url_path+"view.php?idart="+idart+"&idcat="+idcat;if(typeof(this.addStartParams)!="undefined"){for(var c in this.addStartParams){eval("if (typeof("+this.addStartParams[c]+') != "undefined") viewUrl += "&'+this.addStartParams[c]+'="+'+this.addStartParams[c]+";")}}if(typeof p_docLoadedFunction=="function"){if(p_docLoadedFunction()){return}}this.viewpage(viewUrl)}};this.checkRedirectHistory=function(){var historyPageName=window.location.href.split("#")[1];if(this.historyEnabled&&typeof(historyPageName)!="undefined"){location.href=url_path+historyPageName}};this.flashLoadingFinished=function(){if(this.flashFinishesLoading){this.hideLoading()}};this.sendToJavaScript=function(value){eval(value)};this.sendToActionScript=function(value){};this.isReady=function(){return this.jsReady};this.showLoading=function(){this.loadedState=false;if(this.isSystemEventHooked(this.REDY_SHOW_LOADING)){this.fireSystemEvent(this.REDY_SHOW_LOADING)}else{if(getTag("loading")){getTag("loading").style.display="inline"}}};this.hideLoading=function(){if(this.isSystemEventHooked(this.REDY_HIDE_LOADING)){this.fireSystemEvent(this.REDY_HIDE_LOADING)}else{if(getTag("loading")){getTag("loading").style.display="none"}}this.loadedState=true};this.flashInitState=function(fieldid,val){this.loadStates[fieldid]=val};this.flashSetState=function(fieldid){this.loadStates[fieldid]=1;this.checkFlashLoadStates()};this.checkFlashLoadStates=function(){if(this.numFlashPlugins){var tempNumFlashPlugins=this.numFlashPlugins;for(var lstatus in this.loadStates){if(this.loadStates[lstatus]==1){tempNumFlashPlugins--}}if(tempNumFlashPlugins<=0){this.numFlashPlugins=tempNumFlashPlugins;this.hideLoading()}}};this.removeSpecialChars=function(theString){theString=theString.replace(/&amp;/gi,"&");theString=theString.replace(/&quot;/gi,'"');theString=theString.replace(/&lt;/gi,"<");theString=theString.replace(/&gt;/gi,">");return theString};this.urlEncode=function(theString){theString=theString.replace(/ /gi,"_");theString=theString.replace(/&/gi,"&amp;");theString=theString.replace(/"/gi,"&quot;");theString=theString.replace(/</gi,"&lt;");theString=theString.replace(/>/gi,"&gt;");theString=theString.replace(/#/gi,"$");return theString};this.clearTag=function(tName){getTag(tName).innerHTML=""};this.parseForm=function(idForm,onSubmitter){var urlString="";var fUpload=false;for(var i=0;i<idForm.length;++i){if(i){urlString+="&"}urlString+=idForm.elements[i].name+"=";urlString+=idForm.elements[i].value;if(idForm.elements[i].type=="file"){fUpload=true}}if(idForm.action){urlString=idForm.action+"?"+urlString}if(fUpload){if(onSubmitter.length){eval(""+onSubmitter+";")}return true}else{this.viewpage(urlString);return false}};versionIE=function(){return(navigator.appName=="Microsoft Internet Explorer")?parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1};versionOpera=function(){return(browserOpera)?parseFloat(/Opera[\/\s](\d+\.\d+)/.exec(navigator.userAgent)[1]):-1};String.prototype.get=function(p){return(match=this.match(new RegExp("[?|&]?"+p+"=([^&]*)")))?match[1]:""};this.getScrollX=function(){if(window.pageXOffset){return window.pageXOffset}else{if(document.body.scrollLeft){return document.body.scrollLeft}else{if(document.documentElement.scrollLeft){return document.documentElement.scrollLeft}}}};this.getScrollY=function(){if(window.pageYOffset){return window.pageYOffset}else{if(document.body.scrollTop){return document.body.scrollTop}else{if(document.documentElement.scrollTop){return document.documentElement.scrollTop}}}};this.getInnerX=function(){if(window.innerWidth){return window.innerWidth}else{if(document.body.clientWidth){return document.body.clientWidth}else{if(document.documentElement.clientWidth){return document.documentElement.clientWidth}}}};this.getInnerY=function(){if(window.innerHeight){return window.innerHeight}else{if(document.body.clientHeight){return document.body.clientHeight}else{if(document.documentElement.clientHeight){return document.documentElement.clientHeight}}}};this.preloadImg=function(url){if(!this.preloadedImgs[url]){var newImg=new Image();newImg.src=url;this.preloadedImgs[url]=newImg;if(newImg.complete){return}this.hookEvent(newImg,"load",imgLoadedEvent);this.preloadedImgsCounter++}};function imgLoadedEvent(event){redy.preloadedImgsCounter--;redy.checkLoadingFinished();redy.unhookEvent(event.target,event.type,imgLoadedEvent)}}function RedyEvent(){this.REDY_LOAD_FINISHED="redy_loadFinished";this.REDY_CONTENT_CHANGED="redy_contentChanged";this.REDY_CONTENT_NOT_CHANGED="redy_contentNotChanged";this.REDY_AJAX_LOAD_FINISHED="redy_ajaxLoadFinished";this.REDY_SHOW_LOADING="redy_showLoading";this.REDY_HIDE_LOADING="redy_hideLoading";this.REDY_TRACK_EVENT="redy_trackEvent";this.REDY_TRACK_DOWNLOAD="redy_trackDownload";this.REDY_TRACK_EXTERNAL_URL="redy_trackExternalUrl";this.REDY_TRACK_EXTERNAL_SHOP_URL="redy_trackExternalShopUrl";redy=this;this.wheelHandle=null;this.hookedSystemEvents=new Object();this.fireSystemEvent=function(eventName,data,bubbling){if(document.createEventObject){if(!data){data={}}data.eventName=eventName;eventName="activate"}this.fireEvent(getTag("body"),eventName,data,bubbling)};this.fireEvent=function(element,eventName,data,bubbling){if(document.createEventObject){var evt=document.createEventObject();evt.cancelBubble=(bubbling?false:true);if(data){evt.dataObj=data}if(!data||!data.eventName){return element.fireEvent("on"+eventName,evt)}else{if(this.hookedSystemEvents[evt.dataObj.eventName]){this.hookedSystemEvents[evt.dataObj.eventName](evt);return true}else{return false}}}else{var evt=document.createEvent("HTMLEvents");if(data){evt.dataObj=data}evt.initEvent(eventName,(bubbling?true:false),true);return !element.dispatchEvent(evt)}};this.isSystemEventHooked=function(eventName){return(this.hookedSystemEvents[eventName]?true:false)};this.hookSystemEvent=function(eventName,callback){this.hookedSystemEvents[eventName]=callback;this.hookEvent(getTag("body"),eventName,callback)};this.hookEvent=function(element,eventName,callback){if(typeof(element)=="string"){element=getTag(element)}if(element==null){return}if(element.addEventListener){if(eventName=="mousewheel"){element.addEventListener("DOMMouseScroll",callback,false)}element.addEventListener(eventName,callback,false)}else{if(element.attachEvent){element["e"+eventName+callback]=callback;element[eventName+callback]=function(){var event=window.event;event.target=element;element["e"+eventName+callback](event)};element.attachEvent("on"+eventName,element[eventName+callback])}}};this.unhookSystemEvent=function(eventName,callback){this.hookedSystemEvents[eventName]=null;this.unhookEvent(getTag("body"),eventName,callback)};this.unhookSystemEvents=function(){for(var eventName in this.hookedSystemEvents){if(this.hookedSystemEvents[eventName]){this.unhookSystemEvent(eventName,this.hookedSystemEvents[eventName])}}};this.unhookEvent=function(element,eventName,callback){if(typeof(element)=="string"){element=getTag(element)}if(element==null){return}if(element.removeEventListener){if(eventName=="mousewheel"){element.removeEventListener("DOMMouseScroll",callback,false)}element.removeEventListener(eventName,callback,false)}else{if(element.detachEvent){element.detachEvent("on"+eventName,element[eventName+callback]);element[eventName+callback]=null;element["e"+eventName+callback]=null}}};this.cancelEvent=function(e){e=e?e:window.event;if(e.stopPropagation){e.stopPropagation()}if(e.preventDefault){e.preventDefault()}e.cancelBubble=true;e.cancel=true;e.returnValue=false;return false};this.wheelEvent=function(event){var delta=0;if(event.wheelDelta){if(!browserIE&&!browserOpera&&!browserChrome){delta=event.wheelDelta/120}else{if(browserChrome||browserIE){delta=event.wheelDelta/15}else{delta=event.wheelDelta/30}}}else{if(event.detail){delta=-event.detail}}if(delta&&typeof redy.wheelHandle=="function"){redy.wheelHandle(delta)}redy.cancelEvent(event)};this.enableWheelHandler=function(element,callback){this.wheelHandle=callback;this.hookEvent(element,"mousewheel",this.wheelEvent)}}RedyEvent.prototype=new RedySetup();var redyEvent=RedyBase.prototype=new RedyEvent();var redy=new RedyBase();redy.checkRedirectHistory();