
var BrowserDetect={init:function()
{this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS";},searchString:function(data)
{for(var i=0;i<data.length;i++)
{var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString)
{if(dataString.indexOf(data[i].subString)!=-1)
return data[i].identity;}
else
if(dataProp)
return data[i].identity;}
return false;},searchVersion:function(dataString)
{var index=dataString.indexOf(this.versionSearchString);if(index==-1)
return false;return parseFloat(dataString.substring(index
+this.versionSearchString.length+1));},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init();function $()
{var elements=new Array();for(var i=0;i<arguments.length;i++)
{var element=arguments[i];if(typeof element=='string')
element=document.getElementById(element);if(arguments.length==1)
return element;elements.push(element);}
return elements;}
String.prototype.repeat=function(i)
{return new Array(i+1).join(this);}
Array.prototype.inArray=function(value)
{var i;for(i=0;i<this.length;i++)
{if(this[i]===value)
{return true;}}
return false;}
function addEvent(domObject,szEvent,funcHandler,bUseCapture)
{if(bUseCapture==null)
{bUseCapture=true;}
if(domObject.addEventListener)
{domObject.addEventListener(szEvent,funcHandler,bUseCapture);return true;}
else
if(domObject.attachEvent)
{var r=domObject.attachEvent(szEvent,funcHandler);return r;}
else
{domObject[szEvent]=funcHandler;}
return true;}
function addLoadEvent(func)
{var oldonload=window.onload;if(typeof window.onload!='function')
{window.onload=func;}
else
{window.onload=function()
{oldonload();func();}}
return true;}
function getElementsByClass(searchClass,node,tag)
{var classElements=new Array();if(node==null)
node=document;if(tag==null)
tag='*';var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');for(i=0,j=0;i<elsLen;i++)
{if(pattern.test(els[i].className))
{classElements[j]=els[i];j++;}}
return classElements;}
function getObjectClass(kObj)
{if(kObj&&kObj.constructor&&kObj.constructor.toString)
{var arr=kObj.constructor.toString().match(/function\s*(\w+)/);if(arr&&arr.length==2)
{return arr[1];}}
return undefined;}
function getFunctionName(func)
{var name=/\W*function\s+([\w\$]+)\(/.exec(func);if(!name)
return null;return name[1];}
function getXMLNodeAsString(kXMLNode)
{var text=false;try
{var serializer=new XMLSerializer();text=serializer.serializeToString(kXMLNode);}
catch(e)
{try
{text=kXMLNode.xml;}
catch(e)
{return false;}}
return text;}
function toggleDisplay(obj)
{var el=document.getElementById(obj);if(el.style.display!='none')
{el.style.display='none';}
else
{el.style.display='';}}
function insertAfter(parent,node,referenceNode)
{parent.insertBefore(node,referenceNode.nextSibling);}
function getCookie(name)
{var start=document.cookie.indexOf(name+"=");var len=start+name.length+1;if((!start)&&(name!=document.cookie.substring(0,name.length)))
{return null;}
if(start==-1)
return null;var end=document.cookie.indexOf(';',len);if(end==-1)
end=document.cookie.length;return unescape(document.cookie.substring(len,end));}
function setCookie(name,value,expires,path,domain,secure)
{var today=new Date();today.setTime(today.getTime());if(expires)
{expires=expires*1000*60*60*24;}
var expires_date=new Date(today.getTime()+(expires));document.cookie=name+'='
+escape(value)
+((expires)?';expires='+expires_date.toGMTString():'')
+
((path)?';path='+path:'')
+((domain)?';domain='+domain:'')
+((secure)?';secure':'');}
function deleteCookie(name,path,domain)
{if(getCookie(name))
document.cookie=name+'='+((path)?';path='+path:'')
+((domain)?';domain='+domain:'')
+';expires=Thu, 01-Jan-1970 00:00:01 GMT';return true;}
function extendClass(baseClass,subClass)
{function inheritance()
{}
inheritance.prototype=baseClass.prototype;subClass.prototype=new inheritance();subClass.prototype.constructor=subClass;subClass.baseConstructor=baseClass;subClass.superClass=baseClass.prototype;return true;}
function cBase()
{cBase.prototype.toString=function()
{return"[object (dummy) "+getObjectClass(this)+"]";}
cBase.prototype.clear=function()
{for(k in this)
{if(typeof this[k]!="function")
{delete this[k];}}}}
function cDebuggable()
{cDebuggable.baseConstructor.call(this);cDebuggable.prototype.toString=function(prePend)
{return this.dump(prePend);}
cDebuggable.prototype.dump=function(prePend)
{var str="";if(prePend==null)
{prePend="";}
str=prePend+"[object "+getObjectClass(this)+"]\r\n";if(prePend=="")
{prePend="\t";}
else
{prePend=prePend.repeat(2);}
for(k in this)
{switch(typeof this[k])
{case"object":str+=prePend+k+" = \r\n"+prePend+"{\r\n"
+this[k].toString.call(this[k],prePend)
+"\r\n"+prePend+"}";break;case"function":break;default:str+=prePend+k+" = "+this[k]+"\r\n";break;}}
return str;}}
extendClass(cBase,cDebuggable);function handleDebug(kDebug,szTitle)
{var domDebugField=document.getElementById('divDebugTab_js');var arReturn;if(domDebugField==null)
{startDebug();}
arReturn=getDebugString(kDebug,szTitle);if(typeof arReturn[0]=="object")
{for(var i=0;i<arReturn.length;i++)
{addDebug(arReturn[i][0],arReturn[i][1]);}}
else
{addDebug(arReturn[0],arReturn[1]);}}
function startDebug()
{var domDivDebugTemp=document.getElementById('divDebugTempJS');var domDivDebug=document.getElementById('divDebugTab_js');var domTbl=document.createElement('TABLE');domTbl.setAttribute('id','_debug_table');if(domDivDebugTemp!=null)
{domDivDebugTemp.appendChild(domTbl);}
else
{if(domDivDebug!=null)
{domDivDebug.appendChild(domTbl);}}}
function getDebugString(kDebug,szTitle,prePend)
{var arReturn=new Array();if(prePend==null)
{prePend="";}
switch(typeof kDebug)
{case"object":if(kDebug.responseXML!=null||kDebug.responseText!=null)
{if(szTitle==null)
{szTitle="";}
str=kDebug.status+" "+kDebug.statusText+"\r\n";arReturn[0]=new Array();arReturn[1]=new Array();arReturn[2]=new Array();arReturn[3]=new Array();arReturn[0][0]=str;arReturn[0][1]=szTitle+'->Status';arReturn[1][0]=prePend
+getXMLNodeAsString(kDebug.responseXML);arReturn[1][1]=szTitle+'->ResponseXML';arReturn[2][0]=prePend+kDebug.responseText;arReturn[2][1]=szTitle+'->ResponseText';arReturn[3][0]=prePend+kDebug.getAllResponseHeaders();arReturn[3][1]=szTitle+'->ResponseHeaders';}
else
{if(kDebug.childNodes!=null)
{if(szTitle==null)
{szTitle="";}
else
{szTitle=szTitle+"->";}
arReturn[0]=prePend+getXMLNodeAsString(kDebug);arReturn[1]=szTitle+"->XMLDocument";}
else
{arReturn[0]=kDebug.toString();arReturn[1]=szTitle+"->Object ("
+getObjectClass(kDebug)+")";}}
break;default:arReturn[0]=prePend+kDebug.toString();arReturn[1]=szTitle+"->Object ("+getObjectClass(kDebug)
+")";break;}
return arReturn}
function addDebug(szDebug,szTitle)
{var domTbl=document.getElementById('_debug_table');if(domTbl==null)
{startDebug();domTbl=document.getElementById('_debug_table');if(domTbl==null)
{return false;}}
var row=domTbl.insertRow(domTbl.rows.length);var cell=row.insertCell(0);var pre=document.createElement('PRE');var txt=document.createTextNode(szDebug);if(szTitle!=null)
{var h=document.createElement('H3');h.appendChild(document.createTextNode(szTitle));h.onclick=function()
{pre.style.display=(pre.style.display=='')?'none':'';}
cell.appendChild(h);}
pre.appendChild(txt);cell.appendChild(pre);return true;}