/* * jsBrwSniff v0.5 * * A browser sniffer library * http://jsbrwsniff.sf.net * * Released under the GNU LGPL license * Author: Pau Garcia i Quiles * */ var jsVer = -1; function getBrowser(obj) { var b=new Array("unknown", "unknown", "unknown", "unknown"); (isEmpty(obj) ? brs=navigator.userAgent.toLowerCase() : brs=obj); if (brs.search(/omniweb[\/\s]v?(\d+([\.-]\d)*)/) != -1) { // Omniweb b[0]="omniweb"; b[1]=brs.match(/omniweb[\/\s]v?(\d+([\.-]\d)*)/)[1]; (b[1] > 4.5 ? b[2]="khtml" : b[2]="omniweb"); (brs.search(/omniweb[\/\s]((\d+([\.-]\d)*)-)?v(\d+([\.-]\d)*)/) == -1 ? b[3]=brs.match(/omniweb[\/\s](\d+([\.-]\d)*)/)[1] : b[3]=brs.match(/omniweb[\/\s]((\d+([\.-]\d)*)-)?v(\d+([\.-]\d)*)/)[4]); return b; } else if (brs.search(/opera[\/\s](\d+(\.?\d)*)/) != -1) { // Opera b[0]="opera"; b[1]=brs.match(/opera[\/\s](\d+(\.?\d)*)/)[1]; b[2]="opera"; b[3]=b[1]; return b; } else if (brs.search(/crazy\s?browser\s(\d+(\.?\d)*)/) != -1) { // Crazy Browser b[0]="crazy"; b[1]=brs.match(/crazy\s?browser\s(\d+(\.?\d)*)/)[1]; b[2]="msie"; b[3]=getMSIEVersion(); return b; } else if (brs.search(/myie2/) != -1) { // MyIE2 b[0]="myie2"; b[2]="msie"; b[3]=brs.match(/msie\s(\d+(\.?\d)*)/)[1]; return b; } else if (brs.search(/netcaptor/) != -1) { // NetCaptor b[0]="netcaptor"; b[1]=brs.match(/netcaptor\s(\d+(\.?\d)*)/)[1]; b[2]="msie"; b[3]=getMSIEVersion(); return b; } else if (brs.search(/avant\sbrowser/) != -1) { // Avant Browser b[0]="avantbrowser"; b[2]="msie"; b[3]=getMSIEVersion(); return b; } else if (brs.search(/msn\s(\d+(\.?\d)*)/) != -1) { // MSN Explorer b[0]="msn"; b[1]=brs.match(/msn\s(\d+(\.?\d)*)/)[1]; b[2]="msie"; b[3]=getMSIEVersion(); return b; } else if (brs.search(/msie\s(\d+(\.?\d)*)/) != -1) { // MS Internet Explorer b[0]="msie"; b[1]=getMSIEVersion(); b[2]="msie"; b[3]=b[1]; return b; } else if (brs.search(/powermarks\/(\d+(\.?\d)*)/) != -1) { // PowerMarks b[0]="powermarks"; b[1]=brs.match(/powermarks\/(\d+(\.?\d)*)/)[1]; b[2]="msie"; try { b[3]=getMSIEVersion(); } catch (e) { } return b; } else if (brs.search(/konqueror[\/\s](\d+([\.-]\d)*)/) != -1) { // Konqueror b[0]="konqueror"; b[1]=brs.match(/konqueror[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="khtml"; return b; } else if (brs.search(/safari\/(\d)*/) != -1) { // Safari b[0]="safari"; b[1]=brs.match(/safari\/(\d+(\.?\d*)*)/)[1]; b[2]="khtml"; b[3]=brs.match(/applewebkit\/(\d+(\.?\d*)*)/)[1]; return b; } else if(brs.search(/zyborg/) != -1) { // Zyborg (SSD) b[0]="zyborg"; b[1]=brs.match(/zyborg\/(\d+(\.?\d)*)/)[1]; b[2]="robot"; b[3]="-1" return b; } else if (brs.search(/netscape6[\/\s](\d+([\.-]\d)*)/) != -1) { // Netscape 6.x b[0]="netscape"; b[1]=brs.match(/netscape6[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/netscape\/(7\.\d*)/) != -1) { // Netscape 7.x b[0]="netscape"; b[1]=brs.match(/netscape\/(7\.\d*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/galeon[\/\s](\d+([\.-]\d)*)/) != -1) { // Galeon b[0]="galeon"; b[1]=brs.match(/galeon[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/nautilus[\/\s](\d+([\.-]\d)*)/) != -1) { // Nautilus b[0]="nautilus"; b[1]=brs.match(/nautilus[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/firefox[\/\s](\d+([\.-]\d)*)/) != -1) { // Firefox b[0]="firefox"; b[1]=brs.match(/firefox[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/k-meleon[\/\s](\d+([\.-]\d)*)/) != -1) { // K-Meleon b[0]="kmeleon"; b[1]=brs.match(/k-meleon[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/playstation\s3/) != -1) { // Playstation 3 b[0]="netfront"; b[1]="2.81"; // Taken from the Wikipedia article b[2]="playstation3" b[3]=brs.match(/playstation\s3;\s(\d+\.\d+)/)[1]; return b; } else if (brs.search(/firebird[\/\s](\d+([\.-]\d)*)/) != -1) { // Firebird b[0]="firebird"; b[1]=brs.match(/firebird[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/phoenix[\/\s](\d+([\.-]\d)*)/) != -1) { // Phoenix b[0]="phoenix"; b[1]=brs.match(/phoenix[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/camino[\/\s](\d+([\.-]\d)*)/) != -1) { // Camino b[0]="camino"; b[1]=brs.match(/camino[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/epiphany[\/\s](\d+([\.-]\d)*)/) != -1) { // Epiphany b[0]="epiphany"; b[1]=brs.match(/epiphany[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/chimera[\/\s](\d+([\.-]\d)*)/) != -1) { // Chimera b[0]="chimera"; b[1]=brs.match(/chimera[\/\s](\d+([\.-]\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/icab[\s\/]?(\d+(\.?\d)*)/) !=-1) { // iCab b[0]="icab"; b[1]=brs.match(/icab[\s\/]?(\d+(\.?\d)*)/)[1]; b[2]="icab"; b[3]=b[1]; return b; } else if (brs.search(/netfront\/(\d+([\._]\d)*)/) != -1) { // NetFront b[0]="netfront"; b[1]=brs.match(/netfront\/(\d+([\._]\d)*)/)[1]; b[2]="netfront"; b[3]=b[1]; return b; } else if (brs.search(/netscape4\/(\d+([\.-]\d)*)/) != -1) { // Netscape 4.x b[0]="netscape"; b[1]=brs.match(/netscape4\/(\d+([\.-]\d)*)/)[1]; b[2]="mozold"; b[3]=b[1]; return b; } else if ( (brs.search(/mozilla\/(4.\d*)/) != -1) && (brs.search(/msie\s(\d+(\.?\d)*)/) == -1) ) { b[0]="netscape"; b[1]=brs.match(/mozilla\/(4.\d*)/)[1]; b[2]="mozold"; b[3]=b[1]; return b; } else if ((brs.search(/mozilla\/5.0/) != -1) && (brs.search(/gecko\//) != -1)) { // Mozilla Seamonkey b[0]="mozsea"; b[1]=brs.match(/rv\x3a(\d+(\.?\d)*)/)[1]; b[2]="gecko"; b[3]=getGeckoVersion(); return b; } else if (brs.search(/elinks/) != -1) { // ELinks b[0]="elinks"; (brs.search(/elinks\/(\d+(\.?\d)*)/) == -1 ? b[1]=brs.match(/elinks\s\x28(\d+(\.?\d)*)/)[1] : b[1]=brs.match(/elinks\/(\d+(\.?\d)*)/)[1]); b[2]="elinks"; b[3]=b[1]; return b; } else if (brs.search(/w3m\/(\d+(\.?\d)*)/) != -1) { // w3m b[0]="w3m" b[1]=brs.match(/(^w3m|\sw3m)\/(\d+(\.?\d)*)/)[2]; b[2]="w3m"; b[3]=b[1]; return b; } else if (brs.search(/links/) != -1) { // Links b[0]="links"; (brs.search(/links\/(\d+(\.?\d)*)/) == -1 ? b[1]=brs.match(/links\s\x28(\d+(\.?\d)*)/)[1] : b[1]=brs.match(/links\/(\d+(\.?\d)*)/)[1]); b[2]="links"; b[3]=b[1]; return b; } else if (brs.search(/java[\/\s]?(\d+([\._]\d)*)/) != -1) { // Java (as web-browser) b[0]="java"; b[1]=brs.match(/java[\/\s]?(\d+([\._]\d)*)/)[1]; b[2]="java"; b[3]=b[1]; return b; } else if(brs.search(/lynx/) != -1) { // Lynx (SSD) b[0]="lynx"; b[1]=brs.match(/lynx\/(\d+(\.?\d)*)/)[1]; b[2]="libwww-fm"; b[3]=brs.match(/libwww-fm\/(\d+(\.?\d)*)/)[1]; return b; } else if(brs.search(/dillo/) != -1) { // Dillo (SSD) b[0]="dillo"; b[1]=brs.match(/dillo\s*\/*(\d+(\.?\d)*)/)[1]; b[2]="dillo"; b[3]=b[1]; return b; } else if(brs.search(/wget/) != -1) { // wget (SSD) b[0]="wget"; b[1]=brs.match(/wget\/(\d+(\.?\d)*)/)[1]; b[2]="robot"; b[3]="-1" return b; } else if(brs.search(/googlebot\-image/) != -1) { // GoogleBot-Image (SSD) b[0]="googlebotimg"; b[1]=brs.match(/googlebot\-image\/(\d+(\.?\d)*)/)[1]; b[2]="robot"; b[3]="-1" return b; } else if(brs.search(/googlebot/) != -1) { // GoogleBot (SSD) b[0]="googlebot"; b[1]=brs.match(/googlebot\/(\d+(\.?\d)*)/)[1]; b[2]="robot"; b[3]="-1" return b; } else if(brs.search(/msnbot/) != -1) { // MSNBot (SSD) b[0]="msnbot"; b[1]=brs.match(/msnbot\/(\d+(\.?\d)*)/)[1]; b[2]="robot"; b[3]="-1" return b; } else if(brs.search(/turnitinbot/) != -1) { // Turnitin (SSD) b[0]="turnitinbot"; b[1]=brs.match(/turnitinbot\/(\d+(\.?\d)*)/)[1]; b[2]="robot"; b[3]="-1" return b; } else { b[0]="unknown"; return b; } } // Return browser's (actual) major version or -1 if bad version entered function getMajorVersion(v) { return (isEmpty(v) ? -1 : (hasDot(v) ? v : v.match(/(\d*)(\.\d*)*/)[1])) } // Return browser's (actual) minor version or -1 if bad version entered function getMinorVersion(v) { return (!isEmpty(v) ? (!hasDot(v) ? v.match(/\.(\d*([-\.]\d*)*)/)[1] : 0) : -1) } // Return operating system we are running on top of function getOS(obj) { var os=new Array("unknown", "unknown"); (isEmpty(obj) ? brs=navigator.userAgent.toLowerCase() : brs=obj); if (brs.search(/windows\sce/) != -1) { os[0]="wince"; try { os[1]=brs.match(/windows\sce\/(\d+(\.?\d)*)/)[1]; } catch (e) { } return os; } else if ( (brs.search(/windows/) !=-1) || ((brs.search(/win9\d{1}/) !=-1)) ) { os[0]="win"; if (brs.search(/nt\s5\.1/) != -1) { os[1]="xp"; } else if (brs.search(/nt\s5\.0/) != -1) { os[1]="2000"; } else if ( (brs.search(/win98/) != -1) || (brs.search(/windows\s98/)!= -1 ) ) { os[1]="98"; } else if (brs.search(/windows\sme/) != -1) { os[1]="me"; } else if (brs.search(/nt\s5\.2/) != -1) { os[1]="win2k3"; } else if ( (brs.search(/windows\s95/) != -1) || (brs.search(/win95/)!= -1 ) ) { os[1]="95"; } else if ( (brs.search(/nt\s4\.0/) != -1) || (brs.search(/nt4\.0/) ) != -1) { os[1]="nt4"; } return os; } else if (brs.search(/linux/) !=-1) { os[0]="linux"; try { os[1] = brs.match(/linux\s?(\d+(\.?\d)*)/)[1]; } catch (e) { } return os; } else if (brs.search(/mac\sos\sx/) !=-1) { os[0]="macosx"; return os; } else if (brs.search(/freebsd/) !=-1) { os[0]="freebsd"; try { os[1] = brs.match(/freebsd\s(\d(\.\d)*)*/)[1]; } catch (e) { } return os; } else if (brs.search(/sunos/) !=-1) { os[0]="sunos"; try { os[1]=brs.match(/sunos\s(\d(\.\d)*)*/)[1]; } catch (e) { } return os; } else if (brs.search(/irix/) !=-1) { os[0]="irix"; try { os[1]=brs.match(/irix\s(\d(\.\d)*)*/)[1]; } catch (e) { } return os; } else if (brs.search(/openbsd/) !=-1) { os[0]="openbsd"; try { os[1] = brs.match(/openbsd\s(\d(\.\d)*)*/)[1]; } catch (e) { } return os; } else if ( (brs.search(/macintosh/) !=-1) || (brs.search(/mac\x5fpowerpc/) != -1) ) { os[0]="macclassic"; return os; } else if (brs.search(/os\/2/) !=-1) { os[0]="os2"; try { os[1]=brs.match(/warp\s((\d(\.\d)*)*)/)[1]; } catch (e) { } return os; } else if (brs.search(/openvms/) !=-1) { os[0]="openvms"; try { os[1]=brs.match(/openvms\sv((\d(\.\d)*)*)/)[1]; } catch (e) { } return os; } else if ( (brs.search(/amigaos/) !=-1) || (brs.search(/amiga/) != -1) ) { os[0]="amigaos"; try { os[1]=brs.match(/amigaos\s?(\d(\.\d)*)*/)[1]; } catch (e) { } return os; } else if (brs.search(/hurd/) !=-1) { os[0]="hurd"; return os; } else if (brs.search(/hp\-ux/) != -1) { os[0]="hpux"; try { os[1]=brs.match(/hp\-ux\sb\.[\/\s]?(\d+([\._]\d)*)/)[1]; } catch (e) { } return os; } else if ( (brs.search(/unix/) !=-1) || (brs.search(/x11/) != -1 ) ) { os[0]="unix"; return os; } else if (brs.search(/cygwin/) !=-1) { os[0]="cygwin"; return os; } else if (brs.search(/java[\/\s]?(\d+([\._]\d)*)/) != -1) { os[0]="java"; try { os[1]=brs.match(/java[\/\s]?(\d+([\._]\d)*)/)[1]; } catch (e) { } return os; } else if (brs.search(/palmos/) != -1) { os[0]="palmos"; return os; } else if (brs.search(/symbian\s?os\/(\d+([\._]\d)*)/) != -1) { os[0]="symbian"; try { os[1]=brs.match(/symbian\s?os\/(\d+([\._]\d)*)/)[1]; } catch (e) { } return os; } else { os[0]="unknown"; return os; } } // Return Gecko version function getGeckoVersion() { return brs.match(/gecko\/([0-9]+)/)[1]; } // Return MSIE version function getMSIEVersion() { return brs.match(/msie\s(\d+(\.?\d)*)/)[1]; } // Return full browser UA string function getFullUAString(obj) { (isEmpty(obj) ? brs=navigator.userAgent.toLowerCase() : brs=obj); return brs; } // Is Flash plug-in installed? function hasFlashPlugin(obj) { (isEmpty(obj) ? brs=navigator.userAgent.toLowerCase() : brs=obj); var f=new Array("0", "0"); var brwEng=getBrowser(obj)[2]; var opSys=getOS(obj)[0]; //if (getBrowser(obj)[2]!="msie") { if ( (brwEng=="gecko") || (brwEng=="opera") || (brwEng=="khtml") || (brwEng=="mozold") || (opSys=="macosx") || (opSys=="macclassic") ) { // Non-IE Flash plug-in detection if (navigator.plugins && navigator.plugins.length) { x = navigator.plugins["Shockwave Flash"]; if (x) { f[0] = 2; if (x.description) { y = x.description; f[1] = y.charAt(y.indexOf('.')-1); } } else { f[0] = 1; } if (navigator.plugins["Shockwave Flash 2.0"]) { f[0] = 2; f[0] = 2; } } else if (navigator.mimeTypes && navigator.mimeTypes.length) { x = navigator.mimeTypes['application/x-shockwave-flash']; if (x && x.enabledPlugin) { f[0] = 2; } else { f[0] = 1; } } return f; } else if (brwEng=="msie") { // IE flash detection. for(var i=15; i>0; i--) { try { var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i); f[1] = i; break; //return; } catch(e) { } } if (f[1]>0) { f[0]=2 } else { f[0]=1 } return f; } else { f[0]=0; f[1]=0; return f; } } // Are pop-up windows allowed for this site? (i. e. has the user a pop-up blocker?) function popupsAllowed() { var allowed = false; var w = window.open("about:blank","","directories=no,height=1,width=1,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,left=0,top=0,location=no"); if (w) { allowed = true; w.close(); } return allowed; } // Helper function to detect Javascript version function _jsVersion() { document.write(''); document.write(''); document.write(''); document.write(''); document.write(''); document.write(''); document.write(''); document.write(''); document.write(''); document.write(''); } // What is the newest version of Javascript does the browser report as supported? function jsVersion() { _jsVersion(); return jsVer; } /* FOR INTERNAL USE ONLY. THIS FUNCTIONS ARE SUBJECT TO CHANGE, DON'T TRUST THEM */ // Is input empty? function isEmpty(input) { return (input==null || input =="") } // Does this string contain a dot? function hasDot(input) { return (input.search(/\./) == -1) } /* END OF FOR INTERNAL USE ONLY FUNCTIONS *//* Copyright (c) 2009, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.net/yui/license.txt version: 2.7.0 */ if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C0)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}if(N.length>1){N.pop();}N.push("]");}else{N.push("{");for(I in G){if(B.hasOwnProperty(G,I)){N.push(I+J);if(B.isObject(G[I])){N.push((L>0)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}}if(N.length>1){N.pop();}N.push("}");}return N.join("");},substitute:function(V,H,O){var L,K,J,R,S,U,Q=[],I,M="dump",P=" ",G="{",T="}",N;for(;;){L=V.lastIndexOf(G);if(L<0){break;}K=V.indexOf(T,L);if(L+1>=K){break;}I=V.substring(L+1,K);R=I;U=null;J=R.indexOf(P);if(J>-1){U=R.substring(J+1);R=R.substring(0,J);}S=H[R];if(O){S=O(R,S,U);}if(B.isObject(S)){if(B.isArray(S)){S=B.dump(S,parseInt(U,10));}else{U=U||"";N=U.indexOf(M);if(N>-1){U=U.substring(4);}if(S.toString===A.toString||N>-1){S=B.dump(S,parseInt(U,10));}else{S=S.toString();}}}else{if(!B.isString(S)&&!B.isNumber(S)){S="~-"+Q.length+"-~";Q[Q.length]=I;}}V=V.substring(0,L)+S+V.substring(K+1);}for(L=Q.length-1;L>=0;L=L-1){V=V.replace(new RegExp("~-"+L+"-~"),"{"+Q[L]+"}","g");}return V;},trim:function(G){try{return G.replace(/^\s+|\s+$/g,"");}catch(H){return G;}},merge:function(){var J={},H=arguments,G=H.length,I;for(I=0;I519)?true:false);while((G=G[u])){z[0]+=G[b];z[1]+=G[P];if(AC){z=E.Dom._calcBorders(G,z);}}if(E.Dom._getStyle(y,p)!==f){G=y;while((G=G[Z])&&G[C]){AA=G[i];AB=G[O];if(H&&(E.Dom._getStyle(G,"overflow")!=="visible")){z=E.Dom._calcBorders(G,z);}if(AA||AB){z[0]-=AB;z[1]-=AA;}}z[0]+=x;z[1]+=Y;}else{if(D){z[0]-=x;z[1]-=Y;}else{if(I||H){z[0]+=x;z[1]+=Y;}}}z[0]=Math.floor(z[0]);z[1]=Math.floor(z[1]);}else{}return z;};}}(),getX:function(G){var Y=function(x){return E.Dom.getXY(x)[0];};return E.Dom.batch(G,Y,E.Dom,true);},getY:function(G){var Y=function(x){return E.Dom.getXY(x)[1];};return E.Dom.batch(G,Y,E.Dom,true);},setXY:function(G,x,Y){E.Dom.batch(G,E.Dom._setXY,{pos:x,noRetry:Y});},_setXY:function(G,z){var AA=E.Dom._getStyle(G,p),y=E.Dom.setStyle,AD=z.pos,Y=z.noRetry,AB=[parseInt(E.Dom.getComputedStyle(G,j),10),parseInt(E.Dom.getComputedStyle(G,o),10)],AC,x;if(AA=="static"){AA=V;y(G,p,AA);}AC=E.Dom._getXY(G);if(!AD||AC===false){return false;}if(isNaN(AB[0])){AB[0]=(AA==V)?0:G[b];}if(isNaN(AB[1])){AB[1]=(AA==V)?0:G[P];}if(AD[0]!==null){y(G,j,AD[0]-AC[0]+AB[0]+"px");}if(AD[1]!==null){y(G,o,AD[1]-AC[1]+AB[1]+"px");}if(!Y){x=E.Dom._getXY(G);if((AD[0]!==null&&x[0]!=AD[0])||(AD[1]!==null&&x[1]!=AD[1])){E.Dom._setXY(G,{pos:AD,noRetry:true});}}},setX:function(Y,G){E.Dom.setXY(Y,[G,null]);},setY:function(G,Y){E.Dom.setXY(G,[null,Y]);},getRegion:function(G){var Y=function(x){var y=false;if(E.Dom._canPosition(x)){y=E.Region.getRegion(x);}else{}return y;};return E.Dom.batch(G,Y,E.Dom,true);},getClientWidth:function(){return E.Dom.getViewportWidth();},getClientHeight:function(){return E.Dom.getViewportHeight();},getElementsByClassName:function(AB,AF,AC,AE,x,AD){AB=L.trim(AB);AF=AF||"*";AC=(AC)?E.Dom.get(AC):null||K;if(!AC){return[];}var Y=[],G=AC.getElementsByTagName(AF),z=E.Dom.hasClass;for(var y=0,AA=G.length;y-1;}}else{}return G;},addClass:function(Y,G){return E.Dom.batch(Y,E.Dom._addClass,G);},_addClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom.getAttribute(x,F)||J;if(!E.Dom._hasClass(x,Y)){E.Dom.setAttribute(x,F,A(y+B+Y));G=true;}}else{}return G;},removeClass:function(Y,G){return E.Dom.batch(Y,E.Dom._removeClass,G);},_removeClass:function(y,x){var Y=false,AA,z,G;if(y&&x){AA=E.Dom.getAttribute(y,F)||J;E.Dom.setAttribute(y,F,AA.replace(E.Dom._getClassRegex(x),J));z=E.Dom.getAttribute(y,F);if(AA!==z){E.Dom.setAttribute(y,F,A(z));Y=true;if(E.Dom.getAttribute(y,F)===""){G=(y.hasAttribute&&y.hasAttribute(g))?g:F;y.removeAttribute(G);}}}else{}return Y;},replaceClass:function(x,Y,G){return E.Dom.batch(x,E.Dom._replaceClass,{from:Y,to:G}); },_replaceClass:function(y,x){var Y,AB,AA,G=false,z;if(y&&x){AB=x.from;AA=x.to;if(!AA){G=false;}else{if(!AB){G=E.Dom._addClass(y,x.to);}else{if(AB!==AA){z=E.Dom.getAttribute(y,F)||J;Y=(B+z.replace(E.Dom._getClassRegex(AB),B+AA)).split(E.Dom._getClassRegex(AA));Y.splice(1,0,B+AA);E.Dom.setAttribute(y,F,A(Y.join(J)));G=true;}}}}else{}return G;},generateId:function(G,x){x=x||"yui-gen";var Y=function(y){if(y&&y.id){return y.id;}var z=x+YAHOO.env._id_counter++;if(y){if(y[e].getElementById(z)){return E.Dom.generateId(y,z+x);}y.id=z;}return z;};return E.Dom.batch(G,Y,E.Dom,true)||Y.apply(E.Dom,arguments);},isAncestor:function(Y,x){Y=E.Dom.get(Y);x=E.Dom.get(x);var G=false;if((Y&&x)&&(Y[l]&&x[l])){if(Y.contains&&Y!==x){G=Y.contains(x);}else{if(Y.compareDocumentPosition){G=!!(Y.compareDocumentPosition(x)&16);}}}else{}return G;},inDocument:function(G,Y){return E.Dom._inDoc(E.Dom.get(G),Y);},_inDoc:function(Y,x){var G=false;if(Y&&Y[C]){x=x||Y[e];G=E.Dom.isAncestor(x[v],Y);}else{}return G;},getElementsBy:function(Y,AF,AB,AD,y,AC,AE){AF=AF||"*";AB=(AB)?E.Dom.get(AB):null||K;if(!AB){return[];}var x=[],G=AB.getElementsByTagName(AF);for(var z=0,AA=G.length;z=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B); }else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.7.0",build:"1799"});YAHOO.util.CustomEvent=function(D,C,B,A){this.type=D;this.scope=C||window;this.silent=B;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(A,B,C){if(!A){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(A,B,C);}this.subscribers.push(new YAHOO.util.Subscriber(A,B,C));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B0){B=I[0];}try{G=M.fn.call(L,B,M.obj);}catch(F){this.lastError=F;if(A){throw F;}}}else{try{G=M.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=H;if(A){throw H;}}}if(false===G){if(!this.silent){}break;}}}return(G!==false);},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};var K=YAHOO.env.ua.ie?"focusin":"focus";var L=YAHOO.env.ua.ie?"focusout":"blur";return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){var M=this;var N=function(){M._tryPreloadAttach();};this._interval=setInterval(N,this.POLL_INTERVAL);}},onAvailable:function(S,O,Q,R,P){var M=(YAHOO.lang.isString(S))?[S]:S;for(var N=0;N-1;Q--){W=(this.removeListener(N[Q],M,V)&&W);}return W;}}if(!V||!V.call){return this.purgeElement(N,false,M);}if("unload"==M){for(Q=J.length-1;Q>-1;Q--){X=J[Q];if(X&&X[0]==N&&X[1]==M&&X[2]==V){J.splice(Q,1);return true;}}return false;}var R=null;var S=arguments[3];if("undefined"===typeof S){S=this._getCacheIndex(N,M,V);}if(S>=0){R=I[S];}if(!N||!R){return false;}if(this.useLegacyEvent(N,M)){var P=this.getLegacyIndex(N,M);var O=E[P];if(O){for(Q=0,T=O.length;Q0&&F.length>0);}var R=[];var T=function(V,W){var U=V;if(W.overrideContext){if(W.overrideContext===true){U=W.obj;}else{U=W.overrideContext;}}W.fn.call(U,W.obj);};var N,M,Q,P,O=[];for(N=0,M=F.length;N-1;N--){Q=F[N];if(!Q||!Q.id){F.splice(N,1);}}this.startInterval();}else{if(this._interval){clearInterval(this._interval);this._interval=null;}}this.locked=false;},purgeElement:function(Q,R,T){var O=(YAHOO.lang.isString(Q))?this.getEl(Q):Q;var S=this.getListeners(O,T),P,M;if(S){for(P=S.length-1;P>-1;P--){var N=S[P];this.removeListener(O,N.type,N.fn);}}if(R&&O&&O.childNodes){for(P=0,M=O.childNodes.length;P-1;P--){O=I[P];if(O){N.removeListener(O[N.EL],O[N.TYPE],O[N.FN],P);}}O=null;}G=null;N._simpleRemove(window,"unload",N._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var M=document.documentElement,N=document.body;if(M&&(M.scrollTop||M.scrollLeft)){return[M.scrollTop,M.scrollLeft];}else{if(N){return[N.scrollTop,N.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(O,P,N,M){O.addEventListener(P,N,(M));};}else{if(window.attachEvent){return function(O,P,N,M){O.attachEvent("on"+P,N);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(O,P,N,M){O.removeEventListener(P,N,(M));};}else{if(window.detachEvent){return function(N,O,M){N.detachEvent("on"+O,M);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener; /* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */ if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E); }else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,overrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C0){G=F-1;do{D=E.subscribers[G];if(D&&D.obj==I&&D.fn==H){return true;}}while(G--);}return false;};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);}());(function(){YAHOO.widget.Module=function(R,Q){if(R){this.init(R,Q);}else{}};var F=YAHOO.util.Dom,D=YAHOO.util.Config,N=YAHOO.util.Event,M=YAHOO.util.CustomEvent,G=YAHOO.widget.Module,I=YAHOO.env.ua,H,P,O,E,A={"BEFORE_INIT":"beforeInit","INIT":"init","APPEND":"append","BEFORE_RENDER":"beforeRender","RENDER":"render","CHANGE_HEADER":"changeHeader","CHANGE_BODY":"changeBody","CHANGE_FOOTER":"changeFooter","CHANGE_CONTENT":"changeContent","DESTORY":"destroy","BEFORE_SHOW":"beforeShow","SHOW":"show","BEFORE_HIDE":"beforeHide","HIDE":"hide"},J={"VISIBLE":{key:"visible",value:true,validator:YAHOO.lang.isBoolean},"EFFECT":{key:"effect",suppressEvent:true,supercedes:["visible"]},"MONITOR_RESIZE":{key:"monitorresize",value:true},"APPEND_TO_DOCUMENT_BODY":{key:"appendtodocumentbody",value:false}};G.IMG_ROOT=null;G.IMG_ROOT_SSL=null;G.CSS_MODULE="yui-module";G.CSS_HEADER="hd";G.CSS_BODY="bd";G.CSS_FOOTER="ft";G.RESIZE_MONITOR_SECURE_URL="javascript:false;";G.RESIZE_MONITOR_BUFFER=1;G.textResizeEvent=new M("textResize");G.forceDocumentRedraw=function(){var Q=document.documentElement;if(Q){Q.className+=" ";Q.className=YAHOO.lang.trim(Q.className);}};function L(){if(!H){H=document.createElement("div");H.innerHTML=('
'+'
');P=H.firstChild;O=P.nextSibling;E=O.nextSibling;}return H;}function K(){if(!P){L();}return(P.cloneNode(false));}function B(){if(!O){L();}return(O.cloneNode(false));}function C(){if(!E){L();}return(E.cloneNode(false));}G.prototype={constructor:G,element:null,header:null,body:null,footer:null,id:null,imageRoot:G.IMG_ROOT,initEvents:function(){var Q=M.LIST; this.beforeInitEvent=this.createEvent(A.BEFORE_INIT);this.beforeInitEvent.signature=Q;this.initEvent=this.createEvent(A.INIT);this.initEvent.signature=Q;this.appendEvent=this.createEvent(A.APPEND);this.appendEvent.signature=Q;this.beforeRenderEvent=this.createEvent(A.BEFORE_RENDER);this.beforeRenderEvent.signature=Q;this.renderEvent=this.createEvent(A.RENDER);this.renderEvent.signature=Q;this.changeHeaderEvent=this.createEvent(A.CHANGE_HEADER);this.changeHeaderEvent.signature=Q;this.changeBodyEvent=this.createEvent(A.CHANGE_BODY);this.changeBodyEvent.signature=Q;this.changeFooterEvent=this.createEvent(A.CHANGE_FOOTER);this.changeFooterEvent.signature=Q;this.changeContentEvent=this.createEvent(A.CHANGE_CONTENT);this.changeContentEvent.signature=Q;this.destroyEvent=this.createEvent(A.DESTORY);this.destroyEvent.signature=Q;this.beforeShowEvent=this.createEvent(A.BEFORE_SHOW);this.beforeShowEvent.signature=Q;this.showEvent=this.createEvent(A.SHOW);this.showEvent.signature=Q;this.beforeHideEvent=this.createEvent(A.BEFORE_HIDE);this.beforeHideEvent.signature=Q;this.hideEvent=this.createEvent(A.HIDE);this.hideEvent.signature=Q;},platform:function(){var Q=navigator.userAgent.toLowerCase();if(Q.indexOf("windows")!=-1||Q.indexOf("win32")!=-1){return"windows";}else{if(Q.indexOf("macintosh")!=-1){return"mac";}else{return false;}}}(),browser:function(){var Q=navigator.userAgent.toLowerCase();if(Q.indexOf("opera")!=-1){return"opera";}else{if(Q.indexOf("msie 7")!=-1){return"ie7";}else{if(Q.indexOf("msie")!=-1){return"ie";}else{if(Q.indexOf("safari")!=-1){return"safari";}else{if(Q.indexOf("gecko")!=-1){return"gecko";}else{return false;}}}}}}(),isSecure:function(){if(window.location.href.toLowerCase().indexOf("https")===0){return true;}else{return false;}}(),initDefaultConfig:function(){this.cfg.addProperty(J.VISIBLE.key,{handler:this.configVisible,value:J.VISIBLE.value,validator:J.VISIBLE.validator});this.cfg.addProperty(J.EFFECT.key,{suppressEvent:J.EFFECT.suppressEvent,supercedes:J.EFFECT.supercedes});this.cfg.addProperty(J.MONITOR_RESIZE.key,{handler:this.configMonitorResize,value:J.MONITOR_RESIZE.value});this.cfg.addProperty(J.APPEND_TO_DOCUMENT_BODY.key,{value:J.APPEND_TO_DOCUMENT_BODY.value});},init:function(V,U){var S,W;this.initEvents();this.beforeInitEvent.fire(G);this.cfg=new D(this);if(this.isSecure){this.imageRoot=G.IMG_ROOT_SSL;}if(typeof V=="string"){S=V;V=document.getElementById(V);if(!V){V=(L()).cloneNode(false);V.id=S;}}this.id=F.generateId(V);this.element=V;W=this.element.firstChild;if(W){var R=false,Q=false,T=false;do{if(1==W.nodeType){if(!R&&F.hasClass(W,G.CSS_HEADER)){this.header=W;R=true;}else{if(!Q&&F.hasClass(W,G.CSS_BODY)){this.body=W;Q=true;}else{if(!T&&F.hasClass(W,G.CSS_FOOTER)){this.footer=W;T=true;}}}}}while((W=W.nextSibling));}this.initDefaultConfig();F.addClass(this.element,G.CSS_MODULE);if(U){this.cfg.applyConfig(U,true);}if(!D.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg)){this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);}this.initEvent.fire(G);},initResizeMonitor:function(){var R=(I.gecko&&this.platform=="windows");if(R){var Q=this;setTimeout(function(){Q._initResizeMonitor();},0);}else{this._initResizeMonitor();}},_initResizeMonitor:function(){var Q,S,U;function W(){G.textResizeEvent.fire();}if(!I.opera){S=F.get("_yuiResizeMonitor");var V=this._supportsCWResize();if(!S){S=document.createElement("iframe");if(this.isSecure&&G.RESIZE_MONITOR_SECURE_URL&&I.ie){S.src=G.RESIZE_MONITOR_SECURE_URL;}if(!V){U=["