var browsercaps=[];function hascap(cap){return browsercaps.indexOf(cap) !==-1?true:false;}var dbg=1;var dbgcnt=0;var dbgdiv='debug';function f_dbg(mess,err){if(dbg){dbgcnt ++;var ob=document.getElementById(dbgdiv);if(ob !=null){var message=err==1?dbgcnt+':'+'<span style="color:#f00">ERROR:'+mess+'</span>'+'<br />':dbgcnt+' ('+xs+'):'+mess+'<br />';ob.innerHTML=message+ob.innerHTML;}else{}}}var ca=new Array();var xo=new Array();var xt=new Array();var xhr=null;var xht=500;var fi='f_loadimg';var fl='gfx/loading.gif';var fd;var xs=0;var fx=0;function f(fn,arg){switch(fn){case 'init':f_dbg("Frost loaded!");var argsnow=['one','two','three'];f_dbg("calling testargs() with args:"+argsnow.length);f('testargs',argsnow);return true;break;case 'testargs':f_dbg("testargs() called,args:"+arg.length);for (var i=0;i < arg.length;i++){f_dbg('arg['+i+']='+arg[i]);};return true;break;case 'xhr':f_dbg('xhr() called');if(browsercaps['ajax_xhr_obj']){xhr=new XMLHttpRequest();f_dbg('xhr():browsecap found:XMLHttpRequest');}else{if(browsercaps['ajax_xhr_actx1']){xhr=new ActiveXObject('Microsoft.XMLHTTP');f_dbg('xhr():browsecap found:ActiveXObject1');}else{if(browsercaps['ajax_xhr_actx2']){xhr=new ActiveXObject('Msxml2.XMLHTTP');f_dbg('xhr():browsecap found:ActiveXObject2');}else{if(browsercaps['ajax_xhr_actx3']){xhr=new ActiveXObject('Msxml2.XMLHTTP.3.0');f_dbg('xhr():browsecap found:ActiveXObject3');}else{if(browsercaps['ajax_xhr_actx4']){xhr=new ActiveXObject('Msxml2.XMLHTTP.4.0');f_dbg('xhr():browsecap found:ActiveXObject4');}else{if(browsercaps['ajax_xhr_actx5']){xhr=new ActiveXObject('Msxml2.XMLHTTP.5.0');f_dbg('xhr():browsecap found:ActiveXObject5');}else{f_dbg('xhr():no browsecap found,will try to detect XHR,fx='+fx);switch(fx){case -1:return false;break;case 1:f_dbg('xhr():using XMLHttpRequest');xhr=new XMLHttpRequest();break;case 2:f_dbg('xhr():using Microsoft.XMLHTTP');xhr=new ActiveXObject('Microsoft.XMLHTTP');break;case 3:f_dbg('xhr():using Msxml2.XMLHTTP');xhr=new ActiveXObject('Msxml2.XMLHTTP');break;case 4:f_dbg('xhr():using Msxml2.XMLHTTP.3.0');xhr=new ActiveXObject('Msxml2.XMLHTTP.3.0');break;case 5:f_dbg('xhr():using Msxml2.XMLHTTP.4.0');alert('xhr():5');xhr=new ActiveXObject('Msxml2.XMLHTTP.4.0');break;case 6:f_dbg('xhr():using Msxml2.XMLHTTP.5.0');xhr=new ActiveXObject('Msxml2.XMLHTTP.5.0');break;case 0:xhr=false;try{xhr=new XMLHttpRequest();fx=1;f_dbg('xhr():XMLHttpRequest object detected');}catch(e){f_dbg('xhr():no XMLHttpRequest detected');fx=0;}if(fx==0){f_dbg('xhr():fx still zero',1);var ax=['Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP'];var c=0;while(c < ax.length){try{xhr=new ActiveXObject(ax[c]);fx=6-c;f_dbg('xhr():'+ax[c]+' detected,fx now='+fx);c=ax.length+1;}catch(e){f_dbg('xhr():no '+ax[c]+' detected');}c++;}if(fx==0){fx=-1;f_dbg('xhr():no XHR at all detected,setting fx to -1,was fx='+fx);}}break;}}}}}}}f_dbg('xhr() returning,fx='+fx);return xhr;break;case 'xhr_capdemo':if(browsercaps['ajax_xhr_obj']){alert('XHR:XMLHttpRequest');}else{if(browsercaps['ajax_xhr_actx1']){alert('XHR:ActiveXObject1');}else{if(browsercaps['ajax_xhr_actx2']){alert('XHR:ActiveXObject2');}else{if(browsercaps['ajax_xhr_actx3']){alert('XHR:ActiveXObject3');}else{if(browsercaps['ajax_xhr_actx4']){alert('XHR:ActiveXObject4');}else{if(browsercaps['ajax_xhr_actx5']){alert('XHR:ActiveXObject5');}else{alert('XHR:needs to be detected!');}}}}}}break;case 'valtovar':f_dbg('valtovar() called');for (var i=0;i < arg.length;i++){f_dbg('arg['+i+']='+arg[i]);};ca[arg[1]]=arg[0];break;case 'callex':f_dbg('callex() called');for (var i=0;i < arg.length;i++){f_dbg('arg['+i+']='+arg[i]);};var callthis=arg[1]+"("+arg[0]+")";f_dbg('callex() calls this:'+callthis);window.setTimeout(callthis,1);break;case 'xres':f_dbg('xres() called [fnc,[fncp],url,meth]');for (var i=0;i < arg.length;i++){f_dbg('xres() arg['+i+']='+arg[i]);};var rnadd=f('rnum');f_dbg('xres() getting xhr and setting to xo[xob'+rnadd+']');xo['xob'+rnadd]=f('xhr');if(xo['xob'+rnadd]){xs++;f_dbg('xres():got an xo[xob'+rnadd+'],xs='+xs);var fnc=arg[0] !=''?arg[0]:'alert';f_dbg('xres():fnc='+fnc);var fncp=arg[1] !=''?arg[1]:'';f_dbg('xres():fncp='+fncp);var url=arg[2] !=''?arg[2]:'xhr.php';f_dbg('xres():url='+url);var meth=(arg[3] !='' && arg[3] !=undefined)?arg[3]:'POST';f_dbg('xres():meth='+meth);try{f_dbg('xres():url.indexOf(?)='+url.indexOf('?'));if(url.indexOf('?')==-1){url=url+'?fff='+rnadd;}else{url=url+'&fff='+rnadd;}f_dbg('xres():added random to url:'+url);xo['xob'+rnadd].open(meth,url+'?fff='+rnadd,true);}catch(e){f_dbg('xres():xob.open failed:'+e,1);return false;}f_dbg('xres():xob.open seems to work');xo['xob'+rnadd].setRequestHeader('Content-Type','text/html;charset=utf-8');f('xready',['xob'+rnadd,fnc,fncp]);xo['xob'+rnadd].send('');f_dbg('xres():xob.send called');return true;}else{f_dbg('xres() failed!');return false;}break;case 'xready':for (var i=0;i < arg.length;i++){};if(!arg[0]) return false;var x=arg[0];if(!arg[1]) return false;var fnc=arg[1];var fncp=arg[2] !=''?arg[2]:'';if(!xt[x]) xt[x]=1;f_dbg('xready() '+x+'=> xo[x].readyState='+xo[x].readyState+',xt[x]='+xt[x]);if(xo[x].readyState==4){if(xo[x].status==200 || xo[x].status==304){var res=[xo[x].responseText];f_dbg('xready() got result:'+res);xo[x]=null;xs--;f_dbg('xready() calls '+fnc+'[\''+res+'\','+fncp+')');var fncp=fncp.split(',');f_dbg('xready():adding res,fncp.length='+fncp.length);for(var h=fncp.length;h > 0;h--){f_dbg('xready():set fncp['+h+'] to '+fncp[h-1]);fncp[h]=fncp[h-1];}fncp[0]=res;f_dbg('xready():set fncp[0] to res='+res);f_dbg('xready():fncp.length='+fncp.length);return f(fnc,fncp);}else{f_dbg('xready():failed,because xo[x].status='+xo[x].status+',xo[x].responseText='+xo[x].responseText,1);alert('request with id '+x+' failed (status='+xo[x].status+')');xo[x]=null;xs--;return false;}}else if(xt[x] > xht){alert('request with id '+x+' timed out');xo[x]=null;xs--;}else{xt[x] +=50;window.setTimeout("f('xready',['"+x+"','"+fnc+"','"+fncp+"'])",500);return true;}break;case 'urltoid':f_dbg('urltoid() called [url,id,addc,flash,meth]');for (var i=0;i < arg.length;i++){f_dbg('urltoid() arg['+i+']='+arg[i]);};return f('xres',['toid',[arg[1],arg[2],arg[3]],arg[0],arg[4]]);break;case 'toid':f_dbg('toid() called [cont,id,addc,flash]');var cont=""+arg[0];var id=arg[1];var addc=arg[2] !=undefined?arg[2]:0;var flash=arg[3] !=undefined?arg[3]:1;for(var i=0;i < arg.length;i++){f_dbg('toid() arg['+i+']='+arg[i]);};var ob=document.getElementById(id);try{ob.innerHTML=addc?ob.innerHTML+cont:cont;f_dbg('toid():container with id='+id+' filled');if(flash) f('flash',[ob]);return true;}catch(e){f_dbg('toid() container with id='+id+' does NOT exist');return false;}break;case 'slimg':var sh=arg[0];f_dbg('slimg() called:'+sh+' - xobs on stack:'+xo.length);if(document.getElementById(fi)){if(!fd) fd=document.getElementById(fi).src;sh=xs?1:sh;document.getElementById(fi).src=sh?fl:fd;}else{f_dbg('slimg():ID='+fi+' does not exist,doing nothing');}break;case 'flash':return true;break;case 'rnum':f_dbg('rnum() called:getting a random number');return Math.floor(Math.random() * 99999);break;case 'ctoid':f_dbg('ctoid() called');try{var c1=document.getElementById(arg[0]).innerHTML;var c2=document.getElementById(arg[1]).innerHTML;f_dbg('ctoid() both objects with ID1='+arg[0]+' and ID2='+arg[1]+' seem to exist');if(f('toid',[c1,arg[1],arg[2],arg[3]])){return f('toid',[c2,arg[0],arg[2],arg[3]])};}catch(e){f_dbg('ctoid() object with ID1='+arg[0]+' or ID2='+arg[1]+' does NOT exist');return false;}break;case 'iledit':ca[0]=document.getElementById(arg[0]).innerHTML;ca[1]=document.getElementById(arg[1]).innerHTML;document.getElementById(arg[0]).innerHTML='<form action="" class="iledit" onsubmit="return false;"><input type="text" name="iledit" id="iledit" value="'+ca[1]+'" /><input type="button" value="ok" onclick="ca[2]=document.getElementById(\'iledit\').value;f(\'toid\',[ca[0],\''+arg[0]+'\']);return !f(\'toid\',[ca[2],\''+arg[1]+'\']);" /></form>';return true;break;default:return false;break;}return true;}