/*
	Copyright (c) 2004-2006, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/community/licensing.shtml
*/

/*
	This is a compiled version of Dojo, built for deployment and not for
	development. To get an editable version, please visit:

		http://dojotoolkit.org

	for documentation and information on getting the source.
*/

if(typeof dojo=="undefined"){
var dj_global=this;
var dj_currentContext=this;
function dj_undef(_1,_2){
return (typeof (_2||dj_currentContext)[_1]=="undefined");
}
if(dj_undef("djConfig",this)){
var djConfig={};
}
if(dj_undef("dojo",this)){
var dojo={};
}
dojo.global=function(){
return dj_currentContext;
};
dojo.locale=djConfig.locale;
dojo.version={major:0,minor:0,patch:0,flag:"dev",revision:Number("$Rev: 9198 $".match(/[0-9]+/)[0]),toString:function(){
with(dojo.version){
return major+"."+minor+"."+patch+flag+" ("+revision+")";
}
}};
dojo.evalProp=function(_3,_4,_5){
if((!_4)||(!_3)){
return undefined;
}
if(!dj_undef(_3,_4)){
return _4[_3];
}
return (_5?(_4[_3]={}):undefined);
};
dojo.parseObjPath=function(_6,_7,_8){
var _9=(_7||dojo.global());
var _a=_6.split(".");
var _b=_a.pop();
for(var i=0,l=_a.length;i<l&&_9;i++){
_9=dojo.evalProp(_a[i],_9,_8);
}
return {obj:_9,prop:_b};
};
dojo.evalObjPath=function(_e,_f){
if(typeof _e!="string"){
return dojo.global();
}
if(_e.indexOf(".")==-1){
return dojo.evalProp(_e,dojo.global(),_f);
}
var ref=dojo.parseObjPath(_e,dojo.global(),_f);
if(ref){
return dojo.evalProp(ref.prop,ref.obj,_f);
}
return null;
};
dojo.errorToString=function(_11){
if(!dj_undef("message",_11)){
return _11.message;
}else{
if(!dj_undef("description",_11)){
return _11.description;
}else{
return _11;
}
}
};
dojo.raise=function(_12,_13){
if(_13){
_12=_12+": "+dojo.errorToString(_13);
}else{
_12=dojo.errorToString(_12);
}
try{
if(djConfig.isDebug){
dojo.hostenv.println("FATAL exception raised: "+_12);
}
}
catch(e){
}
throw _13||Error(_12);
};
dojo.debug=function(){
};
dojo.debugShallow=function(obj){
};
dojo.profile={start:function(){
},end:function(){
},stop:function(){
},dump:function(){
}};
function dj_eval(_15){
return dj_global.eval?dj_global.eval(_15):eval(_15);
}
dojo.unimplemented=function(_16,_17){
var _18="'"+_16+"' not implemented";
if(_17!=null){
_18+=" "+_17;
}
dojo.raise(_18);
};
dojo.deprecated=function(_19,_1a,_1b){
var _1c="DEPRECATED: "+_19;
if(_1a){
_1c+=" "+_1a;
}
if(_1b){
_1c+=" -- will be removed in version: "+_1b;
}
dojo.debug(_1c);
};
dojo.render=(function(){
function vscaffold(_1d,_1e){
var tmp={capable:false,support:{builtin:false,plugin:false},prefixes:_1d};
for(var i=0;i<_1e.length;i++){
tmp[_1e[i]]=false;
}
return tmp;
}
return {name:"",ver:dojo.version,os:{win:false,linux:false,osx:false},html:vscaffold(["html"],["ie","opera","khtml","safari","moz"]),svg:vscaffold(["svg"],["corel","adobe","batik"]),vml:vscaffold(["vml"],["ie"]),swf:vscaffold(["Swf","Flash","Mm"],["mm"]),swt:vscaffold(["Swt"],["ibm"])};
})();
dojo.hostenv=(function(){
var _21={isDebug:false,allowQueryConfig:false,baseScriptUri:"",baseRelativePath:"",libraryScriptUri:"",iePreventClobber:false,ieClobberMinimal:true,preventBackButtonFix:true,delayMozLoadingFix:false,searchIds:[],parseWidgets:true};
if(typeof djConfig=="undefined"){
djConfig=_21;
}else{
for(var _22 in _21){
if(typeof djConfig[_22]=="undefined"){
djConfig[_22]=_21[_22];
}
}
}
return {name_:"(unset)",version_:"(unset)",getName:function(){
return this.name_;
},getVersion:function(){
return this.version_;
},getText:function(uri){
dojo.unimplemented("getText","uri="+uri);
}};
})();
dojo.hostenv.getBaseScriptUri=function(){
if(djConfig.baseScriptUri.length){
return djConfig.baseScriptUri;
}
var uri=new String(djConfig.libraryScriptUri||djConfig.baseRelativePath);
if(!uri){
dojo.raise("Nothing returned by getLibraryScriptUri(): "+uri);
}
var _25=uri.lastIndexOf("/");
djConfig.baseScriptUri=djConfig.baseRelativePath;
return djConfig.baseScriptUri;
};
(function(){
var _26={pkgFileName:"__package__",loading_modules_:{},loaded_modules_:{},addedToLoadingCount:[],removedFromLoadingCount:[],inFlightCount:0,modulePrefixes_:{dojo:{name:"dojo",value:"src"}},setModulePrefix:function(_27,_28){
this.modulePrefixes_[_27]={name:_27,value:_28};
},moduleHasPrefix:function(_29){
var mp=this.modulePrefixes_;
return Boolean(mp[_29]&&mp[_29].value);
},getModulePrefix:function(_2b){
if(this.moduleHasPrefix(_2b)){
return this.modulePrefixes_[_2b].value;
}
return _2b;
},getTextStack:[],loadUriStack:[],loadedUris:[],post_load_:false,modulesLoadedListeners:[],unloadListeners:[],loadNotifying:false};
for(var _2c in _26){
dojo.hostenv[_2c]=_26[_2c];
}
})();
dojo.hostenv.loadPath=function(_2d,_2e,cb){
var uri;
if(_2d.charAt(0)=="/"||_2d.match(/^\w+:/)){
uri=_2d;
}else{
uri=this.getBaseScriptUri()+_2d;
}
if(djConfig.cacheBust&&dojo.render.html.capable){
uri+="?"+String(djConfig.cacheBust).replace(/\W+/g,"");
}
try{
return !_2e?this.loadUri(uri,cb):this.loadUriAndCheck(uri,_2e,cb);
}
catch(e){
dojo.debug(e);
return false;
}
};
dojo.hostenv.loadUri=function(uri,cb){
if(this.loadedUris[uri]){
return true;
}
var _33=this.getText(uri,null,true);
if(!_33){
return false;
}
this.loadedUris[uri]=true;
if(cb){
_33="("+_33+")";
}
var _34=dj_eval(_33);
if(cb){
cb(_34);
}
return true;
};
dojo.hostenv.loadUriAndCheck=function(uri,_36,cb){
var ok=true;
try{
ok=this.loadUri(uri,cb);
}
catch(e){
dojo.debug("failed loading ",uri," with error: ",e);
}
return Boolean(ok&&this.findModule(_36,false));
};
dojo.loaded=function(){
};
dojo.unloaded=function(){
};
dojo.hostenv.loaded=function(){
this.loadNotifying=true;
this.post_load_=true;
var mll=this.modulesLoadedListeners;
for(var x=0;x<mll.length;x++){
mll[x]();
}
this.modulesLoadedListeners=[];
this.loadNotifying=false;
dojo.loaded();
};
dojo.hostenv.unloaded=function(){
var mll=this.unloadListeners;
while(mll.length){
(mll.pop())();
}
dojo.unloaded();
};
dojo.addOnLoad=function(obj,_3d){
var dh=dojo.hostenv;
if(arguments.length==1){
dh.modulesLoadedListeners.push(obj);
}else{
if(arguments.length>1){
dh.modulesLoadedListeners.push(function(){
obj[_3d]();
});
}
}
if(dh.post_load_&&dh.inFlightCount==0&&!dh.loadNotifying){
dh.callLoaded();
}
};
dojo.addOnUnload=function(obj,_40){
var dh=dojo.hostenv;
if(arguments.length==1){
dh.unloadListeners.push(obj);
}else{
if(arguments.length>1){
dh.unloadListeners.push(function(){
obj[_40]();
});
}
}
};
dojo.hostenv.modulesLoaded=function(){
if(this.post_load_){
return;
}
if(this.loadUriStack.length==0&&this.getTextStack.length==0){
if(this.inFlightCount>0){
dojo.debug("files still in flight!");
return;
}
dojo.hostenv.callLoaded();
}
};
dojo.hostenv.callLoaded=function(){
if(typeof setTimeout=="object"||(djConfig["useXDomain"]&&dojo.render.html.opera)){
setTimeout("dojo.hostenv.loaded();",0);
}else{
dojo.hostenv.loaded();
}
};
dojo.hostenv.getModuleSymbols=function(_42){
var _43=_42.split(".");
for(var i=_43.length;i>0;i--){
var _45=_43.slice(0,i).join(".");
if((i==1)&&!this.moduleHasPrefix(_45)){
_43[0]="../"+_43[0];
}else{
var _46=this.getModulePrefix(_45);
if(_46!=_45){
_43.splice(0,i,_46);
break;
}
}
}
return _43;
};
dojo.hostenv._global_omit_module_check=false;
dojo.hostenv.loadModule=function(_47,_48,_49){
if(!_47){
return;
}
_49=this._global_omit_module_check||_49;
var _4a=this.findModule(_47,false);
if(_4a){
return _4a;
}
if(dj_undef(_47,this.loading_modules_)){
this.addedToLoadingCount.push(_47);
}
this.loading_modules_[_47]=1;
var _4b=_47.replace(/\./g,"/")+".js";
var _4c=_47.split(".");
var _4d=this.getModuleSymbols(_47);
var _4e=((_4d[0].charAt(0)!="/")&&!_4d[0].match(/^\w+:/));
var _4f=_4d[_4d.length-1];
var ok;
if(_4f=="*"){
_47=_4c.slice(0,-1).join(".");
while(_4d.length){
_4d.pop();
_4d.push(this.pkgFileName);
_4b=_4d.join("/")+".js";
if(_4e&&_4b.charAt(0)=="/"){
_4b=_4b.slice(1);
}
ok=this.loadPath(_4b,!_49?_47:null);
if(ok){
break;
}
_4d.pop();
}
}else{
_4b=_4d.join("/")+".js";
_47=_4c.join(".");
var _51=!_49?_47:null;
ok=this.loadPath(_4b,_51);
if(!ok&&!_48){
_4d.pop();
while(_4d.length){
_4b=_4d.join("/")+".js";
ok=this.loadPath(_4b,_51);
if(ok){
break;
}
_4d.pop();
_4b=_4d.join("/")+"/"+this.pkgFileName+".js";
if(_4e&&_4b.charAt(0)=="/"){
_4b=_4b.slice(1);
}
ok=this.loadPath(_4b,_51);
if(ok){
break;
}
}
}
if(!ok&&!_49){
dojo.raise("Could not load '"+_47+"'; last tried '"+_4b+"'");
}
}
if(!_49&&!this["isXDomain"]){
_4a=this.findModule(_47,false);
if(!_4a){
dojo.raise("symbol '"+_47+"' is not defined after loading '"+_4b+"'");
}
}
return _4a;
};
dojo.hostenv.startPackage=function(_52){
var _53=String(_52);
var _54=_53;
var _55=_52.split(/\./);
if(_55[_55.length-1]=="*"){
_55.pop();
_54=_55.join(".");
}
var _56=dojo.evalObjPath(_54,true);
this.loaded_modules_[_53]=_56;
this.loaded_modules_[_54]=_56;
return _56;
};
dojo.hostenv.findModule=function(_57,_58){
var lmn=String(_57);
if(this.loaded_modules_[lmn]){
return this.loaded_modules_[lmn];
}
if(_58){
dojo.raise("no loaded module named '"+_57+"'");
}
return null;
};
dojo.kwCompoundRequire=function(_5a){
var _5b=_5a["common"]||[];
var _5c=_5a[dojo.hostenv.name_]?_5b.concat(_5a[dojo.hostenv.name_]||[]):_5b.concat(_5a["default"]||[]);
for(var x=0;x<_5c.length;x++){
var _5e=_5c[x];
if(_5e.constructor==Array){
dojo.hostenv.loadModule.apply(dojo.hostenv,_5e);
}else{
dojo.hostenv.loadModule(_5e);
}
}
};
dojo.require=function(_5f){
dojo.hostenv.loadModule.apply(dojo.hostenv,arguments);
};
dojo.requireIf=function(_60,_61){
var _62=arguments[0];
if((_62===true)||(_62=="common")||(_62&&dojo.render[_62].capable)){
var _63=[];
for(var i=1;i<arguments.length;i++){
_63.push(arguments[i]);
}
dojo.require.apply(dojo,_63);
}
};
dojo.requireAfterIf=dojo.requireIf;
dojo.provide=function(_65){
return dojo.hostenv.startPackage.apply(dojo.hostenv,arguments);
};
dojo.registerModulePath=function(_66,_67){
return dojo.hostenv.setModulePrefix(_66,_67);
};
if(djConfig["modulePaths"]){
for(var param in djConfig["modulePaths"]){
dojo.registerModulePath(param,djConfig["modulePaths"][param]);
}
}
dojo.setModulePrefix=function(_68,_69){
dojo.deprecated("dojo.setModulePrefix(\""+_68+"\", \""+_69+"\")","replaced by dojo.registerModulePath","0.5");
return dojo.registerModulePath(_68,_69);
};
dojo.exists=function(obj,_6b){
var p=_6b.split(".");
for(var i=0;i<p.length;i++){
if(!obj[p[i]]){
return false;
}
obj=obj[p[i]];
}
return true;
};
dojo.hostenv.normalizeLocale=function(_6e){
var _6f=_6e?_6e.toLowerCase():dojo.locale;
if(_6f=="root"){
_6f="ROOT";
}
return _6f;
};
dojo.hostenv.searchLocalePath=function(_70,_71,_72){
_70=dojo.hostenv.normalizeLocale(_70);
var _73=_70.split("-");
var _74=[];
for(var i=_73.length;i>0;i--){
_74.push(_73.slice(0,i).join("-"));
}
_74.push(false);
if(_71){
_74.reverse();
}
for(var j=_74.length-1;j>=0;j--){
var loc=_74[j]||"ROOT";
var _78=_72(loc);
if(_78){
break;
}
}
};
dojo.hostenv.localesGenerated;
dojo.hostenv.registerNlsPrefix=function(){
dojo.registerModulePath("nls","nls");
};
dojo.hostenv.preloadLocalizations=function(){
if(dojo.hostenv.localesGenerated){
dojo.hostenv.registerNlsPrefix();
function preload(_79){
_79=dojo.hostenv.normalizeLocale(_79);
dojo.hostenv.searchLocalePath(_79,true,function(loc){
for(var i=0;i<dojo.hostenv.localesGenerated.length;i++){
if(dojo.hostenv.localesGenerated[i]==loc){
dojo["require"]("nls.dojo_"+loc);
return true;
}
}
return false;
});
}
preload();
var _7c=djConfig.extraLocale||[];
for(var i=0;i<_7c.length;i++){
preload(_7c[i]);
}
}
dojo.hostenv.preloadLocalizations=function(){
};
};
dojo.requireLocalization=function(_7e,_7f,_80,_81){
dojo.hostenv.preloadLocalizations();
var _82=dojo.hostenv.normalizeLocale(_80);
var _83=[_7e,"nls",_7f].join(".");
var _84="";
if(_81){
var _85=_81.split(",");
for(var i=0;i<_85.length;i++){
if(_82.indexOf(_85[i])==0){
if(_85[i].length>_84.length){
_84=_85[i];
}
}
}
if(!_84){
_84="ROOT";
}
}
var _87=_81?_84:_82;
var _88=dojo.hostenv.findModule(_83);
var _89=null;
if(_88){
if(djConfig.localizationComplete&&_88._built){
return;
}
var _8a=_87.replace("-","_");
var _8b=_83+"."+_8a;
_89=dojo.hostenv.findModule(_8b);
}
if(!_89){
_88=dojo.hostenv.startPackage(_83);
var _8c=dojo.hostenv.getModuleSymbols(_7e);
var _8d=_8c.concat("nls").join("/");
var _8e;
dojo.hostenv.searchLocalePath(_87,_81,function(loc){
var _90=loc.replace("-","_");
var _91=_83+"."+_90;
var _92=false;
if(!dojo.hostenv.findModule(_91)){
dojo.hostenv.startPackage(_91);
var _93=[_8d];
if(loc!="ROOT"){
_93.push(loc);
}
_93.push(_7f);
var _94=_93.join("/")+".js";
_92=dojo.hostenv.loadPath(_94,null,function(_95){
var _96=function(){
};
_96.prototype=_8e;
_88[_90]=new _96();
for(var j in _95){
_88[_90][j]=_95[j];
}
});
}else{
_92=true;
}
if(_92&&_88[_90]){
_8e=_88[_90];
}else{
_88[_90]=_8e;
}
if(_81){
return true;
}
});
}
if(_81&&_82!=_84){
_88[_82.replace("-","_")]=_88[_84.replace("-","_")];
}
};
(function(){
var _98=djConfig.extraLocale;
if(_98){
if(!_98 instanceof Array){
_98=[_98];
}
var req=dojo.requireLocalization;
dojo.requireLocalization=function(m,b,_9c,_9d){
req(m,b,_9c,_9d);
if(_9c){
return;
}
for(var i=0;i<_98.length;i++){
req(m,b,_98[i],_9d);
}
};
}
})();
}
if(typeof window!="undefined"){
(function(){
if(djConfig.allowQueryConfig){
var _9f=document.location.toString();
var _a0=_9f.split("?",2);
if(_a0.length>1){
var _a1=_a0[1];
var _a2=_a1.split("&");
for(var x in _a2){
var sp=_a2[x].split("=");
if((sp[0].length>9)&&(sp[0].substr(0,9)=="djConfig.")){
var opt=sp[0].substr(9);
try{
djConfig[opt]=eval(sp[1]);
}
catch(e){
djConfig[opt]=sp[1];
}
}
}
}
}
if(((djConfig["baseScriptUri"]=="")||(djConfig["baseRelativePath"]==""))&&(document&&document.getElementsByTagName)){
var _a6=document.getElementsByTagName("script");
var _a7=/(__package__|dojo|bootstrap1)\.js([\?\.]|$)/i;
for(var i=0;i<_a6.length;i++){
var src=_a6[i].getAttribute("src");
if(!src){
continue;
}
var m=src.match(_a7);
if(m){
var _ab=src.substring(0,m.index);
if(src.indexOf("bootstrap1")>-1){
_ab+="../";
}
if(!this["djConfig"]){
djConfig={};
}
if(djConfig["baseScriptUri"]==""){
djConfig["baseScriptUri"]=_ab;
}
if(djConfig["baseRelativePath"]==""){
djConfig["baseRelativePath"]=_ab;
}
break;
}
}
}
var dr=dojo.render;
var drh=dojo.render.html;
var drs=dojo.render.svg;
var dua=(drh.UA=navigator.userAgent);
var dav=(drh.AV=navigator.appVersion);
var t=true;
var f=false;
drh.capable=t;
drh.support.builtin=t;
dr.ver=parseFloat(drh.AV);
dr.os.mac=dav.indexOf("Macintosh")>=0;
dr.os.win=dav.indexOf("Windows")>=0;
dr.os.linux=dav.indexOf("X11")>=0;
drh.opera=dua.indexOf("Opera")>=0;
drh.khtml=(dav.indexOf("Konqueror")>=0)||(dav.indexOf("Safari")>=0);
drh.safari=dav.indexOf("Safari")>=0;
var _b3=dua.indexOf("Gecko");
drh.mozilla=drh.moz=(_b3>=0)&&(!drh.khtml);
if(drh.mozilla){
drh.geckoVersion=dua.substring(_b3+6,_b3+14);
}
drh.ie=(document.all)&&(!drh.opera);
drh.ie50=drh.ie&&dav.indexOf("MSIE 5.0")>=0;
drh.ie55=drh.ie&&dav.indexOf("MSIE 5.5")>=0;
drh.ie60=drh.ie&&dav.indexOf("MSIE 6.0")>=0;
drh.ie70=drh.ie&&dav.indexOf("MSIE 7.0")>=0;
var cm=document["compatMode"];
drh.quirks=(cm=="BackCompat")||(cm=="QuirksMode")||drh.ie55||drh.ie50;
dojo.locale=dojo.locale||(drh.ie?navigator.userLanguage:navigator.language).toLowerCase();
dr.vml.capable=drh.ie;
drs.capable=f;
drs.support.plugin=f;
drs.support.builtin=f;
var _b5=window["document"];
var tdi=_b5["implementation"];
if((tdi)&&(tdi["hasFeature"])&&(tdi.hasFeature("org.w3c.dom.svg","1.0"))){
drs.capable=t;
drs.support.builtin=t;
drs.support.plugin=f;
}
if(drh.safari){
var tmp=dua.split("AppleWebKit/")[1];
var ver=parseFloat(tmp.split(" ")[0]);
if(ver>=420){
drs.capable=t;
drs.support.builtin=t;
drs.support.plugin=f;
}
}else{
}
})();
dojo.hostenv.startPackage("dojo.hostenv");
dojo.render.name=dojo.hostenv.name_="browser";
dojo.hostenv.searchIds=[];
dojo.hostenv._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];
dojo.hostenv.getXmlhttpObject=function(){
var _b9=null;
var _ba=null;
try{
_b9=new XMLHttpRequest();
}
catch(e){
}
if(!_b9){
for(var i=0;i<3;++i){
var _bc=dojo.hostenv._XMLHTTP_PROGIDS[i];
try{
_b9=new ActiveXObject(_bc);
}
catch(e){
_ba=e;
}
if(_b9){
dojo.hostenv._XMLHTTP_PROGIDS=[_bc];
break;
}
}
}
if(!_b9){
return dojo.raise("XMLHTTP not available",_ba);
}
return _b9;
};
dojo.hostenv._blockAsync=false;
dojo.hostenv.getText=function(uri,_be,_bf){
if(!_be){
this._blockAsync=true;
}
var _c0=this.getXmlhttpObject();
function isDocumentOk(_c1){
var _c2=_c1["status"];
return Boolean((!_c2)||((200<=_c2)&&(300>_c2))||(_c2==304));
}
if(_be){
var _c3=this,_c4=null,gbl=dojo.global();
var xhr=dojo.evalObjPath("dojo.io.XMLHTTPTransport");
_c0.onreadystatechange=function(){
if(_c4){
gbl.clearTimeout(_c4);
_c4=null;
}
if(_c3._blockAsync||(xhr&&xhr._blockAsync)){
_c4=gbl.setTimeout(function(){
_c0.onreadystatechange.apply(this);
},10);
}else{
if(4==_c0.readyState){
if(isDocumentOk(_c0)){
_be(_c0.responseText);
}
}
}
};
}
_c0.open("GET",uri,_be?true:false);
try{
_c0.send(null);
if(_be){
return null;
}
if(!isDocumentOk(_c0)){
var err=Error("Unable to load "+uri+" status:"+_c0.status);
err.status=_c0.status;
err.responseText=_c0.responseText;
throw err;
}
}
catch(e){
this._blockAsync=false;
if((_bf)&&(!_be)){
return null;
}else{
throw e;
}
}
this._blockAsync=false;
return _c0.responseText;
};
dojo.hostenv.defaultDebugContainerId="dojoDebug";
dojo.hostenv._println_buffer=[];
dojo.hostenv._println_safe=false;
dojo.hostenv.println=function(_c8){
if(!dojo.hostenv._println_safe){
dojo.hostenv._println_buffer.push(_c8);
}else{
try{
var _c9=document.getElementById(djConfig.debugContainerId?djConfig.debugContainerId:dojo.hostenv.defaultDebugContainerId);
if(!_c9){
_c9=dojo.body();
}
var div=document.createElement("div");
div.appendChild(document.createTextNode(_c8));
_c9.appendChild(div);
}
catch(e){
try{
document.write("<div>"+_c8+"</div>");
}
catch(e2){
window.status=_c8;
}
}
}
};
dojo.addOnLoad(function(){
dojo.hostenv._println_safe=true;
while(dojo.hostenv._println_buffer.length>0){
dojo.hostenv.println(dojo.hostenv._println_buffer.shift());
}
});
function dj_addNodeEvtHdlr(_cb,_cc,fp){
var _ce=_cb["on"+_cc]||function(){
};
_cb["on"+_cc]=function(){
fp.apply(_cb,arguments);
_ce.apply(_cb,arguments);
};
return true;
}
dojo.hostenv._djInitFired=false;
function dj_load_init(e){
dojo.hostenv._djInitFired=true;
var _d0=(e&&e.type)?e.type.toLowerCase():"load";
if(arguments.callee.initialized||(_d0!="domcontentloaded"&&_d0!="load")){
return;
}
arguments.callee.initialized=true;
if(typeof (_timer)!="undefined"){
clearInterval(_timer);
delete _timer;
}
var _d1=function(){
if(dojo.render.html.ie){
dojo.hostenv.makeWidgets();
}
};
if(dojo.hostenv.inFlightCount==0){
_d1();
dojo.hostenv.modulesLoaded();
}else{
dojo.hostenv.modulesLoadedListeners.unshift(_d1);
}
}
if(document.addEventListener){
if(dojo.render.html.opera||(dojo.render.html.moz&&(djConfig["enableMozDomContentLoaded"]===true))){
document.addEventListener("DOMContentLoaded",dj_load_init,null);
}
window.addEventListener("load",dj_load_init,null);
}
if(dojo.render.html.ie&&dojo.render.os.win){
document.attachEvent("onreadystatechange",function(e){
if(document.readyState=="complete"){
dj_load_init();
}
});
}
if(/(WebKit|khtml)/i.test(navigator.userAgent)){
var _timer=setInterval(function(){
if(/loaded|complete/.test(document.readyState)){
dj_load_init();
}
},10);
}
if(dojo.render.html.ie){
dj_addNodeEvtHdlr(window,"beforeunload",function(){
dojo.hostenv._unloading=true;
window.setTimeout(function(){
dojo.hostenv._unloading=false;
},0);
});
}
dj_addNodeEvtHdlr(window,"unload",function(){
dojo.hostenv.unloaded();
if((!dojo.render.html.ie)||(dojo.render.html.ie&&dojo.hostenv._unloading)){
dojo.hostenv.unloaded();
}
});
dojo.hostenv.makeWidgets=function(){
var _d3=[];
if(djConfig.searchIds&&djConfig.searchIds.length>0){
_d3=_d3.concat(djConfig.searchIds);
}
if(dojo.hostenv.searchIds&&dojo.hostenv.searchIds.length>0){
_d3=_d3.concat(dojo.hostenv.searchIds);
}
if((djConfig.parseWidgets)||(_d3.length>0)){
if(dojo.evalObjPath("dojo.widget.Parse")){
var _d4=new dojo.xml.Parse();
if(_d3.length>0){
for(var x=0;x<_d3.length;x++){
var _d6=document.getElementById(_d3[x]);
if(!_d6){
continue;
}
var _d7=_d4.parseElement(_d6,null,true);
dojo.widget.getParser().createComponents(_d7);
}
}else{
if(djConfig.parseWidgets){
var _d7=_d4.parseElement(dojo.body(),null,true);
dojo.widget.getParser().createComponents(_d7);
}
}
}
}
};
dojo.addOnLoad(function(){
if(!dojo.render.html.ie){
dojo.hostenv.makeWidgets();
}
});
try{
if(dojo.render.html.ie){
document.namespaces.add("v","urn:schemas-microsoft-com:vml");
document.createStyleSheet().addRule("v\\:*","behavior:url(#default#VML)");
}
}
catch(e){
}
dojo.hostenv.writeIncludes=function(){
};
if(!dj_undef("document",this)){
dj_currentDocument=this.document;
}
dojo.doc=function(){
return dj_currentDocument;
};
dojo.body=function(){
return dojo.doc().body||dojo.doc().getElementsByTagName("body")[0];
};
dojo.byId=function(id,doc){
if((id)&&((typeof id=="string")||(id instanceof String))){
if(!doc){
doc=dj_currentDocument;
}
var ele=doc.getElementById(id);
if(ele&&(ele.id!=id)&&doc.all){
ele=null;
eles=doc.all[id];
if(eles){
if(eles.length){
for(var i=0;i<eles.length;i++){
if(eles[i].id==id){
ele=eles[i];
break;
}
}
}else{
ele=eles;
}
}
}
return ele;
}
return id;
};
dojo.setContext=function(_dc,_dd){
dj_currentContext=_dc;
dj_currentDocument=_dd;
};
dojo._fireCallback=function(_de,_df,_e0){
if((_df)&&((typeof _de=="string")||(_de instanceof String))){
_de=_df[_de];
}
return (_df?_de.apply(_df,_e0||[]):_de());
};
dojo.withGlobal=function(_e1,_e2,_e3,_e4){
var _e5;
var _e6=dj_currentContext;
var _e7=dj_currentDocument;
try{
dojo.setContext(_e1,_e1.document);
_e5=dojo._fireCallback(_e2,_e3,_e4);
}
finally{
dojo.setContext(_e6,_e7);
}
return _e5;
};
dojo.withDoc=function(_e8,_e9,_ea,_eb){
var _ec;
var _ed=dj_currentDocument;
try{
dj_currentDocument=_e8;
_ec=dojo._fireCallback(_e9,_ea,_eb);
}
finally{
dj_currentDocument=_ed;
}
return _ec;
};
}
dojo.requireIf((djConfig["isDebug"]||djConfig["debugAtAllCosts"]),"dojo.debug");
dojo.requireIf(djConfig["debugAtAllCosts"]&&!window.widget&&!djConfig["useXDomain"],"dojo.browser_debug");
dojo.requireIf(djConfig["debugAtAllCosts"]&&!window.widget&&djConfig["useXDomain"],"dojo.browser_debug_xd");
dojo.provide("dojo.string.common");
dojo.string.trim=function(str,wh){
if(!str.replace){
return str;
}
if(!str.length){
return str;
}
var re=(wh>0)?(/^\s+/):(wh<0)?(/\s+$/):(/^\s+|\s+$/g);
return str.replace(re,"");
};
dojo.string.trimStart=function(str){
return dojo.string.trim(str,1);
};
dojo.string.trimEnd=function(str){
return dojo.string.trim(str,-1);
};
dojo.string.repeat=function(str,_f4,_f5){
var out="";
for(var i=0;i<_f4;i++){
out+=str;
if(_f5&&i<_f4-1){
out+=_f5;
}
}
return out;
};
dojo.string.pad=function(str,len,c,dir){
var out=String(str);
if(!c){
c="0";
}
if(!dir){
dir=1;
}
while(out.length<len){
if(dir>0){
out=c+out;
}else{
out+=c;
}
}
return out;
};
dojo.string.padLeft=function(str,len,c){
return dojo.string.pad(str,len,c,1);
};
dojo.string.padRight=function(str,len,c){
return dojo.string.pad(str,len,c,-1);
};
dojo.provide("dojo.string");
dojo.provide("dojo.lang.common");
dojo.lang.inherits=function(_103,_104){
if(!dojo.lang.isFunction(_104)){
dojo.raise("dojo.inherits: superclass argument ["+_104+"] must be a function (subclass: ["+_103+"']");
}
_103.prototype=new _104();
_103.prototype.constructor=_103;
_103.superclass=_104.prototype;
_103["super"]=_104.prototype;
};
dojo.lang._mixin=function(obj,_106){
var tobj={};
for(var x in _106){
if((typeof tobj[x]=="undefined")||(tobj[x]!=_106[x])){
obj[x]=_106[x];
}
}
if(dojo.render.html.ie&&(typeof (_106["toString"])=="function")&&(_106["toString"]!=obj["toString"])&&(_106["toString"]!=tobj["toString"])){
obj.toString=_106.toString;
}
return obj;
};
dojo.lang.mixin=function(obj,_10a){
for(var i=1,l=arguments.length;i<l;i++){
dojo.lang._mixin(obj,arguments[i]);
}
return obj;
};
dojo.lang.extend=function(_10d,_10e){
for(var i=1,l=arguments.length;i<l;i++){
dojo.lang._mixin(_10d.prototype,arguments[i]);
}
return _10d;
};
dojo.inherits=dojo.lang.inherits;
dojo.mixin=dojo.lang.mixin;
dojo.extend=dojo.lang.extend;
dojo.lang.find=function(_111,_112,_113,_114){
if(!dojo.lang.isArrayLike(_111)&&dojo.lang.isArrayLike(_112)){
dojo.deprecated("dojo.lang.find(value, array)","use dojo.lang.find(array, value) instead","0.5");
var temp=_111;
_111=_112;
_112=temp;
}
var _116=dojo.lang.isString(_111);
if(_116){
_111=_111.split("");
}
if(_114){
var step=-1;
var i=_111.length-1;
var end=-1;
}else{
var step=1;
var i=0;
var end=_111.length;
}
if(_113){
while(i!=end){
if(_111[i]===_112){
return i;
}
i+=step;
}
}else{
while(i!=end){
if(_111[i]==_112){
return i;
}
i+=step;
}
}
return -1;
};
dojo.lang.indexOf=dojo.lang.find;
dojo.lang.findLast=function(_11a,_11b,_11c){
return dojo.lang.find(_11a,_11b,_11c,true);
};
dojo.lang.lastIndexOf=dojo.lang.findLast;
dojo.lang.inArray=function(_11d,_11e){
return dojo.lang.find(_11d,_11e)>-1;
};
dojo.lang.isObject=function(it){
if(typeof it=="undefined"){
return false;
}
return (typeof it=="object"||it===null||dojo.lang.isArray(it)||dojo.lang.isFunction(it));
};
dojo.lang.isArray=function(it){
return (it&&it instanceof Array||typeof it=="array");
};
dojo.lang.isArrayLike=function(it){
if((!it)||(dojo.lang.isUndefined(it))){
return false;
}
if(dojo.lang.isString(it)){
return false;
}
if(dojo.lang.isFunction(it)){
return false;
}
if(dojo.lang.isArray(it)){
return true;
}
if((it.tagName)&&(it.tagName.toLowerCase()=="form")){
return false;
}
if(dojo.lang.isNumber(it.length)&&isFinite(it.length)){
return true;
}
return false;
};
dojo.lang.isFunction=function(it){
return (it instanceof Function||typeof it=="function");
};
(function(){
if((dojo.render.html.capable)&&(dojo.render.html["safari"])){
dojo.lang.isFunction=function(it){
if((typeof (it)=="function")&&(it=="[object NodeList]")){
return false;
}
return (it instanceof Function||typeof it=="function");
};
}
})();
dojo.lang.isString=function(it){
return (typeof it=="string"||it instanceof String);
};
dojo.lang.isAlien=function(it){
if(!it){
return false;
}
return !dojo.lang.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));
};
dojo.lang.isBoolean=function(it){
return (it instanceof Boolean||typeof it=="boolean");
};
dojo.lang.isNumber=function(it){
return (it instanceof Number||typeof it=="number");
};
dojo.lang.isUndefined=function(it){
return ((typeof (it)=="undefined")&&(it==undefined));
};
dojo.provide("dojo.lang.extras");
dojo.lang.setTimeout=function(func,_12a){
var _12b=window,_12c=2;
if(!dojo.lang.isFunction(func)){
_12b=func;
func=_12a;
_12a=arguments[2];
_12c++;
}
if(dojo.lang.isString(func)){
func=_12b[func];
}
var args=[];
for(var i=_12c;i<arguments.length;i++){
args.push(arguments[i]);
}
return dojo.global().setTimeout(function(){
func.apply(_12b,args);
},_12a);
};
dojo.lang.clearTimeout=function(_12f){
dojo.global().clearTimeout(_12f);
};
dojo.lang.getNameInObj=function(ns,item){
if(!ns){
ns=dj_global;
}
for(var x in ns){
if(ns[x]===item){
return new String(x);
}
}
return null;
};
dojo.lang.shallowCopy=function(obj,deep){
var i,ret;
if(obj===null){
return null;
}
if(dojo.lang.isObject(obj)){
ret=new obj.constructor();
for(i in obj){
if(dojo.lang.isUndefined(ret[i])){
ret[i]=deep?dojo.lang.shallowCopy(obj[i],deep):obj[i];
}
}
}else{
if(dojo.lang.isArray(obj)){
ret=[];
for(i=0;i<obj.length;i++){
ret[i]=deep?dojo.lang.shallowCopy(obj[i],deep):obj[i];
}
}else{
ret=obj;
}
}
return ret;
};
dojo.lang.firstValued=function(){
for(var i=0;i<arguments.length;i++){
if(typeof arguments[i]!="undefined"){
return arguments[i];
}
}
return undefined;
};
dojo.lang.getObjPathValue=function(_138,_139,_13a){
with(dojo.parseObjPath(_138,_139,_13a)){
return dojo.evalProp(prop,obj,_13a);
}
};
dojo.lang.setObjPathValue=function(_13b,_13c,_13d,_13e){
dojo.deprecated("dojo.lang.setObjPathValue","use dojo.parseObjPath and the '=' operator","0.6");
if(arguments.length<4){
_13e=true;
}
with(dojo.parseObjPath(_13b,_13d,_13e)){
if(obj&&(_13e||(prop in obj))){
obj[prop]=_13c;
}
}
};
dojo.provide("dojo.io.common");
dojo.io.transports=[];
dojo.io.hdlrFuncNames=["load","error","timeout"];
dojo.io.Request=function(url,_140,_141,_142){
if((arguments.length==1)&&(arguments[0].constructor==Object)){
this.fromKwArgs(arguments[0]);
}else{
this.url=url;
if(_140){
this.mimetype=_140;
}
if(_141){
this.transport=_141;
}
if(arguments.length>=4){
this.changeUrl=_142;
}
}
};
dojo.lang.extend(dojo.io.Request,{url:"",mimetype:"text/plain",method:"GET",content:undefined,transport:undefined,changeUrl:undefined,formNode:undefined,sync:false,bindSuccess:false,useCache:false,preventCache:false,jsonFilter:function(_143){
if((this.mimetype=="text/json-comment-filtered")||(this.mimetype=="application/json-comment-filtered")){
var _144=_143.indexOf("/*");
var _145=_143.lastIndexOf("*/");
if((_144==-1)||(_145==-1)){
dojo.debug("your JSON wasn't comment filtered!");
return "";
}
return _143.substring(_144+2,_145);
}
dojo.debug("please consider using a mimetype of text/json-comment-filtered to avoid potential security issues with JSON endpoints");
return _143;
},load:function(type,data,_148,_149){
},error:function(type,_14b,_14c,_14d){
},timeout:function(type,_14f,_150,_151){
},handle:function(type,data,_154,_155){
},timeoutSeconds:0,abort:function(){
},fromKwArgs:function(_156){
if(_156["url"]){
_156.url=_156.url.toString();
}
if(_156["formNode"]){
_156.formNode=dojo.byId(_156.formNode);
}
if(!_156["method"]&&_156["formNode"]&&_156["formNode"].method){
_156.method=_156["formNode"].method;
}
if(!_156["handle"]&&_156["handler"]){
_156.handle=_156.handler;
}
if(!_156["load"]&&_156["loaded"]){
_156.load=_156.loaded;
}
if(!_156["changeUrl"]&&_156["changeURL"]){
_156.changeUrl=_156.changeURL;
}
_156.encoding=dojo.lang.firstValued(_156["encoding"],djConfig["bindEncoding"],"");
_156.sendTransport=dojo.lang.firstValued(_156["sendTransport"],djConfig["ioSendTransport"],false);
var _157=dojo.lang.isFunction;
for(var x=0;x<dojo.io.hdlrFuncNames.length;x++){
var fn=dojo.io.hdlrFuncNames[x];
if(_156[fn]&&_157(_156[fn])){
continue;
}
if(_156["handle"]&&_157(_156["handle"])){
_156[fn]=_156.handle;
}
}
dojo.lang.mixin(this,_156);
}});
dojo.io.Error=function(msg,type,num){
this.message=msg;
this.type=type||"unknown";
this.number=num||0;
};
dojo.io.transports.addTransport=function(name){
this.push(name);
this[name]=dojo.io[name];
};
dojo.io.bind=function(_15e){
if(!(_15e instanceof dojo.io.Request)){
try{
_15e=new dojo.io.Request(_15e);
}
catch(e){
dojo.debug(e);
}
}
var _15f="";
if(_15e["transport"]){
_15f=_15e["transport"];
if(!this[_15f]){
dojo.io.sendBindError(_15e,"No dojo.io.bind() transport with name '"+_15e["transport"]+"'.");
return _15e;
}
if(!this[_15f].canHandle(_15e)){
dojo.io.sendBindError(_15e,"dojo.io.bind() transport with name '"+_15e["transport"]+"' cannot handle this type of request.");
return _15e;
}
}else{
for(var x=0;x<dojo.io.transports.length;x++){
var tmp=dojo.io.transports[x];
if((this[tmp])&&(this[tmp].canHandle(_15e))){
_15f=tmp;
break;
}
}
if(_15f==""){
dojo.io.sendBindError(_15e,"None of the loaded transports for dojo.io.bind()"+" can handle the request.");
return _15e;
}
}
this[_15f].bind(_15e);
_15e.bindSuccess=true;
return _15e;
};
dojo.io.sendBindError=function(_162,_163){
if((typeof _162.error=="function"||typeof _162.handle=="function")&&(typeof setTimeout=="function"||typeof setTimeout=="object")){
var _164=new dojo.io.Error(_163);
setTimeout(function(){
_162[(typeof _162.error=="function")?"error":"handle"]("error",_164,null,_162);
},50);
}else{
dojo.raise(_163);
}
};
dojo.io.queueBind=function(_165){
if(!(_165 instanceof dojo.io.Request)){
try{
_165=new dojo.io.Request(_165);
}
catch(e){
dojo.debug(e);
}
}
var _166=_165.load;
_165.load=function(){
dojo.io._queueBindInFlight=false;
var ret=_166.apply(this,arguments);
dojo.io._dispatchNextQueueBind();
return ret;
};
var _168=_165.error;
_165.error=function(){
dojo.io._queueBindInFlight=false;
var ret=_168.apply(this,arguments);
dojo.io._dispatchNextQueueBind();
return ret;
};
dojo.io._bindQueue.push(_165);
dojo.io._dispatchNextQueueBind();
return _165;
};
dojo.io._dispatchNextQueueBind=function(){
if(!dojo.io._queueBindInFlight){
dojo.io._queueBindInFlight=true;
if(dojo.io._bindQueue.length>0){
dojo.io.bind(dojo.io._bindQueue.shift());
}else{
dojo.io._queueBindInFlight=false;
}
}
};
dojo.io._bindQueue=[];
dojo.io._queueBindInFlight=false;
dojo.io.argsFromMap=function(map,_16b,last){
var enc=/utf/i.test(_16b||"")?encodeURIComponent:dojo.string.encodeAscii;
var _16e=[];
var _16f=new Object();
for(var name in map){
var _171=function(elt){
var val=enc(name)+"="+enc(elt);
_16e[(last==name)?"push":"unshift"](val);
};
if(!_16f[name]){
var _174=map[name];
if(dojo.lang.isArray(_174)){
dojo.lang.forEach(_174,_171);
}else{
_171(_174);
}
}
}
return _16e.join("&");
};
dojo.io.setIFrameSrc=function(_175,src,_177){
try{
var r=dojo.render.html;
if(!_177){
if(r.safari){
_175.location=src;
}else{
frames[_175.name].location=src;
}
}else{
var idoc;
if(r.ie){
idoc=_175.contentWindow.document;
}else{
if(r.safari){
idoc=_175.document;
}else{
idoc=_175.contentWindow;
}
}
if(!idoc){
_175.location=src;
return;
}else{
idoc.location.replace(src);
}
}
}
catch(e){
dojo.debug(e);
dojo.debug("setIFrameSrc: "+e);
}
};
dojo.provide("dojo.lang.array");
dojo.lang.mixin(dojo.lang,{has:function(obj,name){
try{
return typeof obj[name]!="undefined";
}
catch(e){
return false;
}
},isEmpty:function(obj){
if(dojo.lang.isObject(obj)){
var tmp={};
var _17e=0;
for(var x in obj){
if(obj[x]&&(!tmp[x])){
_17e++;
break;
}
}
return _17e==0;
}else{
if(dojo.lang.isArrayLike(obj)||dojo.lang.isString(obj)){
return obj.length==0;
}
}
},map:function(arr,obj,_182){
var _183=dojo.lang.isString(arr);
if(_183){
arr=arr.split("");
}
if(dojo.lang.isFunction(obj)&&(!_182)){
_182=obj;
obj=dj_global;
}else{
if(dojo.lang.isFunction(obj)&&_182){
var _184=obj;
obj=_182;
_182=_184;
}
}
if(Array.map){
var _185=Array.map(arr,_182,obj);
}else{
var _185=[];
for(var i=0;i<arr.length;++i){
_185.push(_182.call(obj,arr[i]));
}
}
if(_183){
return _185.join("");
}else{
return _185;
}
},reduce:function(arr,_188,obj,_18a){
var _18b=_188;
if(arguments.length==2){
_18a=_188;
_18b=arr[0];
arr=arr.slice(1);
}else{
if(arguments.length==3){
if(dojo.lang.isFunction(obj)){
_18a=obj;
obj=null;
}
}else{
if(dojo.lang.isFunction(obj)){
var tmp=_18a;
_18a=obj;
obj=tmp;
}
}
}
var ob=obj||dj_global;
dojo.lang.map(arr,function(val){
_18b=_18a.call(ob,_18b,val);
});
return _18b;
},forEach:function(_18f,_190,_191){
if(dojo.lang.isString(_18f)){
_18f=_18f.split("");
}
if(Array.forEach){
Array.forEach(_18f,_190,_191);
}else{
if(!_191){
_191=dj_global;
}
for(var i=0,l=_18f.length;i<l;i++){
_190.call(_191,_18f[i],i,_18f);
}
}
},_everyOrSome:function(_194,arr,_196,_197){
if(dojo.lang.isString(arr)){
arr=arr.split("");
}
if(Array.every){
return Array[_194?"every":"some"](arr,_196,_197);
}else{
if(!_197){
_197=dj_global;
}
for(var i=0,l=arr.length;i<l;i++){
var _19a=_196.call(_197,arr[i],i,arr);
if(_194&&!_19a){
return false;
}else{
if((!_194)&&(_19a)){
return true;
}
}
}
return Boolean(_194);
}
},every:function(arr,_19c,_19d){
return this._everyOrSome(true,arr,_19c,_19d);
},some:function(arr,_19f,_1a0){
return this._everyOrSome(false,arr,_19f,_1a0);
},filter:function(arr,_1a2,_1a3){
var _1a4=dojo.lang.isString(arr);
if(_1a4){
arr=arr.split("");
}
var _1a5;
if(Array.filter){
_1a5=Array.filter(arr,_1a2,_1a3);
}else{
if(!_1a3){
if(arguments.length>=3){
dojo.raise("thisObject doesn't exist!");
}
_1a3=dj_global;
}
_1a5=[];
for(var i=0;i<arr.length;i++){
if(_1a2.call(_1a3,arr[i],i,arr)){
_1a5.push(arr[i]);
}
}
}
if(_1a4){
return _1a5.join("");
}else{
return _1a5;
}
},unnest:function(){
var out=[];
for(var i=0;i<arguments.length;i++){
if(dojo.lang.isArrayLike(arguments[i])){
var add=dojo.lang.unnest.apply(this,arguments[i]);
out=out.concat(add);
}else{
out.push(arguments[i]);
}
}
return out;
},toArray:function(_1aa,_1ab){
var _1ac=[];
for(var i=_1ab||0;i<_1aa.length;i++){
_1ac.push(_1aa[i]);
}
return _1ac;
}});
dojo.provide("dojo.lang.func");
dojo.lang.hitch=function(_1ae,_1af){
var args=[];
for(var x=2;x<arguments.length;x++){
args.push(arguments[x]);
}
var fcn=(dojo.lang.isString(_1af)?_1ae[_1af]:_1af)||function(){
};
return function(){
var ta=args.concat([]);
for(var x=0;x<arguments.length;x++){
ta.push(arguments[x]);
}
return fcn.apply(_1ae,ta);
};
};
dojo.lang.anonCtr=0;
dojo.lang.anon={};
dojo.lang.nameAnonFunc=function(_1b5,_1b6,_1b7){
var nso=(_1b6||dojo.lang.anon);
if((_1b7)||((dj_global["djConfig"])&&(djConfig["slowAnonFuncLookups"]==true))){
for(var x in nso){
try{
if(nso[x]===_1b5){
return x;
}
}
catch(e){
}
}
}
var ret="__"+dojo.lang.anonCtr++;
while(typeof nso[ret]!="undefined"){
ret="__"+dojo.lang.anonCtr++;
}
nso[ret]=_1b5;
return ret;
};
dojo.lang.forward=function(_1bb){
return function(){
return this[_1bb].apply(this,arguments);
};
};
dojo.lang.curry=function(_1bc,func){
var _1be=[];
_1bc=_1bc||dj_global;
if(dojo.lang.isString(func)){
func=_1bc[func];
}
for(var x=2;x<arguments.length;x++){
_1be.push(arguments[x]);
}
var _1c0=(func["__preJoinArity"]||func.length)-_1be.length;
function gather(_1c1,_1c2,_1c3){
var _1c4=_1c3;
var _1c5=_1c2.slice(0);
for(var x=0;x<_1c1.length;x++){
_1c5.push(_1c1[x]);
}
_1c3=_1c3-_1c1.length;
if(_1c3<=0){
var res=func.apply(_1bc,_1c5);
_1c3=_1c4;
return res;
}else{
return function(){
return gather(arguments,_1c5,_1c3);
};
}
}
return gather([],_1be,_1c0);
};
dojo.lang.curryArguments=function(_1c8,func,args,_1cb){
var _1cc=[];
var x=_1cb||0;
for(x=_1cb;x<args.length;x++){
_1cc.push(args[x]);
}
return dojo.lang.curry.apply(dojo.lang,[_1c8,func].concat(_1cc));
};
dojo.lang.tryThese=function(){
for(var x=0;x<arguments.length;x++){
try{
if(typeof arguments[x]=="function"){
var ret=(arguments[x]());
if(ret){
return ret;
}
}
}
catch(e){
dojo.debug(e);
}
}
};
dojo.lang.delayThese=function(farr,cb,_1d2,_1d3){
if(!farr.length){
if(typeof _1d3=="function"){
_1d3();
}
return;
}
if((typeof _1d2=="undefined")&&(typeof cb=="number")){
_1d2=cb;
cb=function(){
};
}else{
if(!cb){
cb=function(){
};
if(!_1d2){
_1d2=0;
}
}
}
setTimeout(function(){
(farr.shift())();
cb();
dojo.lang.delayThese(farr,cb,_1d2,_1d3);
},_1d2);
};
dojo.provide("dojo.string.extras");
dojo.string.substituteParams=function(_1d4,hash){
var map=(typeof hash=="object")?hash:dojo.lang.toArray(arguments,1);
return _1d4.replace(/\%\{(\w+)\}/g,function(_1d7,key){
if(typeof (map[key])!="undefined"&&map[key]!=null){
return map[key];
}
dojo.raise("Substitution not found: "+key);
});
};
dojo.string.capitalize=function(str){
if(!dojo.lang.isString(str)){
return "";
}
if(arguments.length==0){
str=this;
}
var _1da=str.split(" ");
for(var i=0;i<_1da.length;i++){
_1da[i]=_1da[i].charAt(0).toUpperCase()+_1da[i].substring(1);
}
return _1da.join(" ");
};
dojo.string.isBlank=function(str){
if(!dojo.lang.isString(str)){
return true;
}
return (dojo.string.trim(str).length==0);
};
dojo.string.encodeAscii=function(str){
if(!dojo.lang.isString(str)){
return str;
}
var ret="";
var _1df=escape(str);
var _1e0,re=/%u([0-9A-F]{4})/i;
while((_1e0=_1df.match(re))){
var num=Number("0x"+_1e0[1]);
var _1e3=escape("&#"+num+";");
ret+=_1df.substring(0,_1e0.index)+_1e3;
_1df=_1df.substring(_1e0.index+_1e0[0].length);
}
ret+=_1df.replace(/\+/g,"%2B");
return ret;
};
dojo.string.escape=function(type,str){
var args=dojo.lang.toArray(arguments,1);
switch(type.toLowerCase()){
case "xml":
case "html":
case "xhtml":
return dojo.string.escapeXml.apply(this,args);
case "sql":
return dojo.string.escapeSql.apply(this,args);
case "regexp":
case "regex":
return dojo.string.escapeRegExp.apply(this,args);
case "javascript":
case "jscript":
case "js":
return dojo.string.escapeJavaScript.apply(this,args);
case "ascii":
return dojo.string.encodeAscii.apply(this,args);
default:
return str;
}
};
dojo.string.escapeXml=function(str,_1e8){
str=str.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");
if(!_1e8){
str=str.replace(/'/gm,"&#39;");
}
return str;
};
dojo.string.escapeSql=function(str){
return str.replace(/'/gm,"''");
};
dojo.string.escapeRegExp=function(str){
return str.replace(/\\/gm,"\\\\").replace(/([\f\b\n\t\r[\^$|?*+(){}])/gm,"\\$1");
};
dojo.string.escapeJavaScript=function(str){
return str.replace(/(["'\f\b\n\t\r])/gm,"\\$1");
};
dojo.string.escapeString=function(str){
return ("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");
};
dojo.string.summary=function(str,len){
if(!len||str.length<=len){
return str;
}
return str.substring(0,len).replace(/\.+$/,"")+"...";
};
dojo.string.endsWith=function(str,end,_1f1){
if(_1f1){
str=str.toLowerCase();
end=end.toLowerCase();
}
if((str.length-end.length)<0){
return false;
}
return str.lastIndexOf(end)==str.length-end.length;
};
dojo.string.endsWithAny=function(str){
for(var i=1;i<arguments.length;i++){
if(dojo.string.endsWith(str,arguments[i])){
return true;
}
}
return false;
};
dojo.string.startsWith=function(str,_1f5,_1f6){
if(_1f6){
str=str.toLowerCase();
_1f5=_1f5.toLowerCase();
}
return str.indexOf(_1f5)==0;
};
dojo.string.startsWithAny=function(str){
for(var i=1;i<arguments.length;i++){
if(dojo.string.startsWith(str,arguments[i])){
return true;
}
}
return false;
};
dojo.string.has=function(str){
for(var i=1;i<arguments.length;i++){
if(str.indexOf(arguments[i])>-1){
return true;
}
}
return false;
};
dojo.string.normalizeNewlines=function(text,_1fc){
if(_1fc=="\n"){
text=text.replace(/\r\n/g,"\n");
text=text.replace(/\r/g,"\n");
}else{
if(_1fc=="\r"){
text=text.replace(/\r\n/g,"\r");
text=text.replace(/\n/g,"\r");
}else{
text=text.replace(/([^\r])\n/g,"$1\r\n").replace(/\r([^\n])/g,"\r\n$1");
}
}
return text;
};
dojo.string.splitEscaped=function(str,_1fe){
var _1ff=[];
for(var i=0,_201=0;i<str.length;i++){
if(str.charAt(i)=="\\"){
i++;
continue;
}
if(str.charAt(i)==_1fe){
_1ff.push(str.substring(_201,i));
_201=i+1;
}
}
_1ff.push(str.substr(_201));
return _1ff;
};
dojo.provide("dojo.dom");
dojo.dom.ELEMENT_NODE=1;
dojo.dom.ATTRIBUTE_NODE=2;
dojo.dom.TEXT_NODE=3;
dojo.dom.CDATA_SECTION_NODE=4;
dojo.dom.ENTITY_REFERENCE_NODE=5;
dojo.dom.ENTITY_NODE=6;
dojo.dom.PROCESSING_INSTRUCTION_NODE=7;
dojo.dom.COMMENT_NODE=8;
dojo.dom.DOCUMENT_NODE=9;
dojo.dom.DOCUMENT_TYPE_NODE=10;
dojo.dom.DOCUMENT_FRAGMENT_NODE=11;
dojo.dom.NOTATION_NODE=12;
dojo.dom.dojoml="http://www.dojotoolkit.org/2004/dojoml";
dojo.dom.xmlns={svg:"http://www.w3.org/2000/svg",smil:"http://www.w3.org/2001/SMIL20/",mml:"http://www.w3.org/1998/Math/MathML",cml:"http://www.xml-cml.org",xlink:"http://www.w3.org/1999/xlink",xhtml:"http://www.w3.org/1999/xhtml",xul:"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",xbl:"http://www.mozilla.org/xbl",fo:"http://www.w3.org/1999/XSL/Format",xsl:"http://www.w3.org/1999/XSL/Transform",xslt:"http://www.w3.org/1999/XSL/Transform",xi:"http://www.w3.org/2001/XInclude",xforms:"http://www.w3.org/2002/01/xforms",saxon:"http://icl.com/saxon",xalan:"http://xml.apache.org/xslt",xsd:"http://www.w3.org/2001/XMLSchema",dt:"http://www.w3.org/2001/XMLSchema-datatypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",dc:"http://purl.org/dc/elements/1.1/",dcq:"http://purl.org/dc/qualifiers/1.0","soap-env":"http://schemas.xmlsoap.org/soap/envelope/",wsdl:"http://schemas.xmlsoap.org/wsdl/",AdobeExtensions:"http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"};
dojo.dom.isNode=function(wh){
if(typeof Element=="function"){
try{
return wh instanceof Element;
}
catch(e){
}
}else{
return wh&&!isNaN(wh.nodeType);
}
};
dojo.dom.getUniqueId=function(){
var _203=dojo.doc();
do{
var id="dj_unique_"+(++arguments.callee._idIncrement);
}while(_203.getElementById(id));
return id;
};
dojo.dom.getUniqueId._idIncrement=0;
dojo.dom.firstElement=dojo.dom.getFirstChildElement=function(_205,_206){
var node=_205.firstChild;
while(node&&node.nodeType!=dojo.dom.ELEMENT_NODE){
node=node.nextSibling;
}
if(_206&&node&&node.tagName&&node.tagName.toLowerCase()!=_206.toLowerCase()){
node=dojo.dom.nextElement(node,_206);
}
return node;
};
dojo.dom.lastElement=dojo.dom.getLastChildElement=function(_208,_209){
var node=_208.lastChild;
while(node&&node.nodeType!=dojo.dom.ELEMENT_NODE){
node=node.previousSibling;
}
if(_209&&node&&node.tagName&&node.tagName.toLowerCase()!=_209.toLowerCase()){
node=dojo.dom.prevElement(node,_209);
}
return node;
};
dojo.dom.nextElement=dojo.dom.getNextSiblingElement=function(node,_20c){
if(!node){
return null;
}
do{
node=node.nextSibling;
}while(node&&node.nodeType!=dojo.dom.ELEMENT_NODE);
if(node&&_20c&&_20c.toLowerCase()!=node.tagName.toLowerCase()){
return dojo.dom.nextElement(node,_20c);
}
return node;
};
dojo.dom.prevElement=dojo.dom.getPreviousSiblingElement=function(node,_20e){
if(!node){
return null;
}
if(_20e){
_20e=_20e.toLowerCase();
}
do{
node=node.previousSibling;
}while(node&&node.nodeType!=dojo.dom.ELEMENT_NODE);
if(node&&_20e&&_20e.toLowerCase()!=node.tagName.toLowerCase()){
return dojo.dom.prevElement(node,_20e);
}
return node;
};
dojo.dom.moveChildren=function(_20f,_210,trim){
var _212=0;
if(trim){
while(_20f.hasChildNodes()&&_20f.firstChild.nodeType==dojo.dom.TEXT_NODE){
_20f.removeChild(_20f.firstChild);
}
while(_20f.hasChildNodes()&&_20f.lastChild.nodeType==dojo.dom.TEXT_NODE){
_20f.removeChild(_20f.lastChild);
}
}
while(_20f.hasChildNodes()){
_210.appendChild(_20f.firstChild);
_212++;
}
return _212;
};
dojo.dom.copyChildren=function(_213,_214,trim){
var _216=_213.cloneNode(true);
return this.moveChildren(_216,_214,trim);
};
dojo.dom.replaceChildren=function(node,_218){
var _219=[];
if(dojo.render.html.ie){
for(var i=0;i<node.childNodes.length;i++){
_219.push(node.childNodes[i]);
}
}
dojo.dom.removeChildren(node);
node.appendChild(_218);
for(var i=0;i<_219.length;i++){
dojo.dom.destroyNode(_219[i]);
}
};
dojo.dom.removeChildren=function(node){
var _21c=node.childNodes.length;
while(node.hasChildNodes()){
dojo.dom.removeNode(node.firstChild);
}
return _21c;
};
dojo.dom.replaceNode=function(node,_21e){
return node.parentNode.replaceChild(_21e,node);
};
dojo.dom.destroyNode=function(node){
if(node.parentNode){
node=dojo.dom.removeNode(node);
}
if(node.nodeType!=3){
if(dojo.evalObjPath("dojo.event.browser.clean",false)){
dojo.event.browser.clean(node);
}
if(dojo.render.html.ie){
node.outerHTML="";
}
}
};
dojo.dom.removeNode=function(node){
if(node&&node.parentNode){
return node.parentNode.removeChild(node);
}
};
dojo.dom.getAncestors=function(node,_222,_223){
var _224=[];
var _225=(_222&&(_222 instanceof Function||typeof _222=="function"));
while(node){
if(!_225||_222(node)){
_224.push(node);
}
if(_223&&_224.length>0){
return _224[0];
}
node=node.parentNode;
}
if(_223){
return null;
}
return _224;
};
dojo.dom.getAncestorsByTag=function(node,tag,_228){
tag=tag.toLowerCase();
return dojo.dom.getAncestors(node,function(el){
return ((el.tagName)&&(el.tagName.toLowerCase()==tag));
},_228);
};
dojo.dom.getFirstAncestorByTag=function(node,tag){
return dojo.dom.getAncestorsByTag(node,tag,true);
};
dojo.dom.isDescendantOf=function(node,_22d,_22e){
if(_22e&&node){
node=node.parentNode;
}
while(node){
if(node==_22d){
return true;
}
node=node.parentNode;
}
return false;
};
dojo.dom.innerXML=function(node){
if(node.innerXML){
return node.innerXML;
}else{
if(node.xml){
return node.xml;
}else{
if(typeof XMLSerializer!="undefined"){
return (new XMLSerializer()).serializeToString(node);
}
}
}
};
dojo.dom.createDocument=function(){
var doc=null;
var _231=dojo.doc();
if(!dj_undef("ActiveXObject")){
var _232=["MSXML2","Microsoft","MSXML","MSXML3"];
for(var i=0;i<_232.length;i++){
try{
doc=new ActiveXObject(_232[i]+".XMLDOM");
}
catch(e){
}
if(doc){
break;
}
}
}else{
if((_231.implementation)&&(_231.implementation.createDocument)){
doc=_231.implementation.createDocument("","",null);
}
}
return doc;
};
dojo.dom.createDocumentFromText=function(str,_235){
if(!_235){
_235="text/xml";
}
if(!dj_undef("DOMParser")){
var _236=new DOMParser();
return _236.parseFromString(str,_235);
}else{
if(!dj_undef("ActiveXObject")){
var _237=dojo.dom.createDocument();
if(_237){
_237.async=false;
_237.loadXML(str);
return _237;
}else{
dojo.debug("toXml didn't work?");
}
}else{
var _238=dojo.doc();
if(_238.createElement){
var tmp=_238.createElement("xml");
tmp.innerHTML=str;
if(_238.implementation&&_238.implementation.createDocument){
var _23a=_238.implementation.createDocument("foo","",null);
for(var i=0;i<tmp.childNodes.length;i++){
_23a.importNode(tmp.childNodes.item(i),true);
}
return _23a;
}
return ((tmp.document)&&(tmp.document.firstChild?tmp.document.firstChild:tmp));
}
}
}
return null;
};
dojo.dom.prependChild=function(node,_23d){
if(_23d.firstChild){
_23d.insertBefore(node,_23d.firstChild);
}else{
_23d.appendChild(node);
}
return true;
};
dojo.dom.insertBefore=function(node,ref,_240){
if((_240!=true)&&(node===ref||node.nextSibling===ref)){
return false;
}
var _241=ref.parentNode;
_241.insertBefore(node,ref);
return true;
};
dojo.dom.insertAfter=function(node,ref,_244){
var pn=ref.parentNode;
if(ref==pn.lastChild){
if((_244!=true)&&(node===ref)){
return false;
}
pn.appendChild(node);
}else{
return this.insertBefore(node,ref.nextSibling,_244);
}
return true;
};
dojo.dom.insertAtPosition=function(node,ref,_248){
if((!node)||(!ref)||(!_248)){
return false;
}
switch(_248.toLowerCase()){
case "before":
return dojo.dom.insertBefore(node,ref);
case "after":
return dojo.dom.insertAfter(node,ref);
case "first":
if(ref.firstChild){
return dojo.dom.insertBefore(node,ref.firstChild);
}else{
ref.appendChild(node);
return true;
}
break;
default:
ref.appendChild(node);
return true;
}
};
dojo.dom.insertAtIndex=function(node,_24a,_24b){
var _24c=_24a.childNodes;
if(!_24c.length||_24c.length==_24b){
_24a.appendChild(node);
return true;
}
if(_24b==0){
return dojo.dom.prependChild(node,_24a);
}
return dojo.dom.insertAfter(node,_24c[_24b-1]);
};
dojo.dom.textContent=function(node,text){
if(arguments.length>1){
var _24f=dojo.doc();
dojo.dom.replaceChildren(node,_24f.createTextNode(text));
return text;
}else{
if(node.textContent!=undefined){
return node.textContent;
}
var _250="";
if(node==null){
return _250;
}
for(var i=0;i<node.childNodes.length;i++){
switch(node.childNodes[i].nodeType){
case 1:
case 5:
_250+=dojo.dom.textContent(node.childNodes[i]);
break;
case 3:
case 2:
case 4:
_250+=node.childNodes[i].nodeValue;
break;
default:
break;
}
}
return _250;
}
};
dojo.dom.hasParent=function(node){
return Boolean(node&&node.parentNode&&dojo.dom.isNode(node.parentNode));
};
dojo.dom.isTag=function(node){
if(node&&node.tagName){
for(var i=1;i<arguments.length;i++){
if(node.tagName==String(arguments[i])){
return String(arguments[i]);
}
}
}
return "";
};
dojo.dom.setAttributeNS=function(elem,_256,_257,_258){
if(elem==null||((elem==undefined)&&(typeof elem=="undefined"))){
dojo.raise("No element given to dojo.dom.setAttributeNS");
}
if(!((elem.setAttributeNS==undefined)&&(typeof elem.setAttributeNS=="undefined"))){
elem.setAttributeNS(_256,_257,_258);
}else{
var _259=elem.ownerDocument;
var _25a=_259.createNode(2,_257,_256);
_25a.nodeValue=_258;
elem.setAttributeNode(_25a);
}
};
dojo.provide("dojo.undo.browser");
try{
if((!djConfig["preventBackButtonFix"])&&(!dojo.hostenv.post_load_)){
document.write("<iframe style='border: 0px; width: 1px; height: 1px; position: absolute; bottom: 0px; right: 0px; visibility: visible;' name='djhistory' id='djhistory' src='"+(djConfig["dojoIframeHistoryUrl"]||dojo.hostenv.getBaseScriptUri()+"iframe_history.html")+"'></iframe>");
}
}
catch(e){
}
if(dojo.render.html.opera){
dojo.debug("Opera is not supported with dojo.undo.browser, so back/forward detection will not work.");
}
dojo.undo.browser={initialHref:(!dj_undef("window"))?window.location.href:"",initialHash:(!dj_undef("window"))?window.location.hash:"",moveForward:false,historyStack:[],forwardStack:[],historyIframe:null,bookmarkAnchor:null,locationTimer:null,setInitialState:function(args){
this.initialState=this._createState(this.initialHref,args,this.initialHash);
},addToHistory:function(args){
this.forwardStack=[];
var hash=null;
var url=null;
if(!this.historyIframe){
if(djConfig["useXDomain"]&&!djConfig["dojoIframeHistoryUrl"]){
dojo.debug("dojo.undo.browser: When using cross-domain Dojo builds,"+" please save iframe_history.html to your domain and set djConfig.dojoIframeHistoryUrl"+" to the path on your domain to iframe_history.html");
}
this.historyIframe=window.frames["djhistory"];
}
if(!this.bookmarkAnchor){
this.bookmarkAnchor=document.createElement("a");
dojo.body().appendChild(this.bookmarkAnchor);
this.bookmarkAnchor.style.display="none";
}
if(args["changeUrl"]){
hash="#"+((args["changeUrl"]!==true)?args["changeUrl"]:(new Date()).getTime());
if(this.historyStack.length==0&&this.initialState.urlHash==hash){
this.initialState=this._createState(url,args,hash);
return;
}else{
if(this.historyStack.length>0&&this.historyStack[this.historyStack.length-1].urlHash==hash){
this.historyStack[this.historyStack.length-1]=this._createState(url,args,hash);
return;
}
}
this.changingUrl=true;
setTimeout("window.location.href = '"+hash+"'; dojo.undo.browser.changingUrl = false;",1);
this.bookmarkAnchor.href=hash;
if(dojo.render.html.ie){
url=this._loadIframeHistory();
var _25f=args["back"]||args["backButton"]||args["handle"];
var tcb=function(_261){
if(window.location.hash!=""){
setTimeout("window.location.href = '"+hash+"';",1);
}
_25f.apply(this,[_261]);
};
if(args["back"]){
args.back=tcb;
}else{
if(args["backButton"]){
args.backButton=tcb;
}else{
if(args["handle"]){
args.handle=tcb;
}
}
}
var _262=args["forward"]||args["forwardButton"]||args["handle"];
var tfw=function(_264){
if(window.location.hash!=""){
window.location.href=hash;
}
if(_262){
_262.apply(this,[_264]);
}
};
if(args["forward"]){
args.forward=tfw;
}else{
if(args["forwardButton"]){
args.forwardButton=tfw;
}else{
if(args["handle"]){
args.handle=tfw;
}
}
}
}else{
if(dojo.render.html.moz){
if(!this.locationTimer){
this.locationTimer=setInterval("dojo.undo.browser.checkLocation();",200);
}
}
}
}else{
url=this._loadIframeHistory();
}
this.historyStack.push(this._createState(url,args,hash));
},checkLocation:function(){
if(!this.changingUrl){
var hsl=this.historyStack.length;
if((window.location.hash==this.initialHash||window.location.href==this.initialHref)&&(hsl==1)){
this.handleBackButton();
return;
}
if(this.forwardStack.length>0){
if(this.forwardStack[this.forwardStack.length-1].urlHash==window.location.hash){
this.handleForwardButton();
return;
}
}
if((hsl>=2)&&(this.historyStack[hsl-2])){
if(this.historyStack[hsl-2].urlHash==window.location.hash){
this.handleBackButton();
return;
}
}
}
},iframeLoaded:function(evt,_267){
if(!dojo.render.html.opera){
var _268=this._getUrlQuery(_267.href);
if(_268==null){
if(this.historyStack.length==1){
this.handleBackButton();
}
return;
}
if(this.moveForward){
this.moveForward=false;
return;
}
if(this.historyStack.length>=2&&_268==this._getUrlQuery(this.historyStack[this.historyStack.length-2].url)){
this.handleBackButton();
}else{
if(this.forwardStack.length>0&&_268==this._getUrlQuery(this.forwardStack[this.forwardStack.length-1].url)){
this.handleForwardButton();
}
}
}
},handleBackButton:function(){
var _269=this.historyStack.pop();
if(!_269){
return;
}
var last=this.historyStack[this.historyStack.length-1];
if(!last&&this.historyStack.length==0){
last=this.initialState;
}
if(last){
if(last.kwArgs["back"]){
last.kwArgs["back"]();
}else{
if(last.kwArgs["backButton"]){
last.kwArgs["backButton"]();
}else{
if(last.kwArgs["handle"]){
last.kwArgs.handle("back");
}
}
}
}
this.forwardStack.push(_269);
},handleForwardButton:function(){
var last=this.forwardStack.pop();
if(!last){
return;
}
if(last.kwArgs["forward"]){
last.kwArgs.forward();
}else{
if(last.kwArgs["forwardButton"]){
last.kwArgs.forwardButton();
}else{
if(last.kwArgs["handle"]){
last.kwArgs.handle("forward");
}
}
}
this.historyStack.push(last);
},_createState:function(url,args,hash){
return {"url":url,"kwArgs":args,"urlHash":hash};
},_getUrlQuery:function(url){
var _270=url.split("?");
if(_270.length<2){
return null;
}else{
return _270[1];
}
},_loadIframeHistory:function(){
var url=(djConfig["dojoIframeHistoryUrl"]||dojo.hostenv.getBaseScriptUri()+"iframe_history.html")+"?"+(new Date()).getTime();
this.moveForward=true;
dojo.io.setIFrameSrc(this.historyIframe,url,false);
return url;
}};
dojo.provide("dojo.io.BrowserIO");
if(!dj_undef("window")){
dojo.io.checkChildrenForFile=function(node){
var _273=false;
var _274=node.getElementsByTagName("input");
dojo.lang.forEach(_274,function(_275){
if(_273){
return;
}
if(_275.getAttribute("type")=="file"){
_273=true;
}
});
return _273;
};
dojo.io.formHasFile=function(_276){
return dojo.io.checkChildrenForFile(_276);
};
dojo.io.updateNode=function(node,_278){
node=dojo.byId(node);
var args=_278;
if(dojo.lang.isString(_278)){
args={url:_278};
}
args.mimetype="text/html";
args.load=function(t,d,e){
while(node.firstChild){
dojo.dom.destroyNode(node.firstChild);
}
node.innerHTML=d;
};
dojo.io.bind(args);
};
dojo.io.formFilter=function(node){
var type=(node.type||"").toLowerCase();
return !node.disabled&&node.name&&!dojo.lang.inArray(["file","submit","image","reset","button"],type);
};
dojo.io.encodeForm=function(_27f,_280,_281){
if((!_27f)||(!_27f.tagName)||(!_27f.tagName.toLowerCase()=="form")){
dojo.raise("Attempted to encode a non-form element.");
}
if(!_281){
_281=dojo.io.formFilter;
}
var enc=/utf/i.test(_280||"")?encodeURIComponent:dojo.string.encodeAscii;
var _283=[];
for(var i=0;i<_27f.elements.length;i++){
var elm=_27f.elements[i];
if(!elm||elm.tagName.toLowerCase()=="fieldset"||!_281(elm)){
continue;
}
var name=enc(elm.name);
var type=elm.type.toLowerCase();
if(type=="select-multiple"){
for(var j=0;j<elm.options.length;j++){
if(elm.options[j].selected){
_283.push(name+"="+enc(elm.options[j].value));
}
}
}else{
if(dojo.lang.inArray(["radio","checkbox"],type)){
if(elm.checked){
_283.push(name+"="+enc(elm.value));
}
}else{
_283.push(name+"="+enc(elm.value));
}
}
}
var _289=_27f.getElementsByTagName("input");
for(var i=0;i<_289.length;i++){
var _28a=_289[i];
if(_28a.type.toLowerCase()=="image"&&_28a.form==_27f&&_281(_28a)){
var name=enc(_28a.name);
_283.push(name+"="+enc(_28a.value));
_283.push(name+".x=0");
_283.push(name+".y=0");
}
}
return _283.join("&")+"&";
};
dojo.io.FormBind=function(args){
this.bindArgs={};
if(args&&args.formNode){
this.init(args);
}else{
if(args){
this.init({formNode:args});
}
}
};
dojo.lang.extend(dojo.io.FormBind,{form:null,bindArgs:null,clickedButton:null,init:function(args){
var form=dojo.byId(args.formNode);
if(!form||!form.tagName||form.tagName.toLowerCase()!="form"){
throw new Error("FormBind: Couldn't apply, invalid form");
}else{
if(this.form==form){
return;
}else{
if(this.form){
throw new Error("FormBind: Already applied to a form");
}
}
}
dojo.lang.mixin(this.bindArgs,args);
this.form=form;
this.connect(form,"onsubmit","submit");
for(var i=0;i<form.elements.length;i++){
var node=form.elements[i];
if(node&&node.type&&dojo.lang.inArray(["submit","button"],node.type.toLowerCase())){
this.connect(node,"onclick","click");
}
}
var _290=form.getElementsByTagName("input");
for(var i=0;i<_290.length;i++){
var _291=_290[i];
if(_291.type.toLowerCase()=="image"&&_291.form==form){
this.connect(_291,"onclick","click");
}
}
},onSubmit:function(form){
return true;
},submit:function(e){
e.preventDefault();
if(this.onSubmit(this.form)){
dojo.io.bind(dojo.lang.mixin(this.bindArgs,{formFilter:dojo.lang.hitch(this,"formFilter")}));
}
},click:function(e){
var node=e.currentTarget;
if(node.disabled){
return;
}
this.clickedButton=node;
},formFilter:function(node){
var type=(node.type||"").toLowerCase();
var _298=false;
if(node.disabled||!node.name){
_298=false;
}else{
if(dojo.lang.inArray(["submit","button","image"],type)){
if(!this.clickedButton){
this.clickedButton=node;
}
_298=node==this.clickedButton;
}else{
_298=!dojo.lang.inArray(["file","submit","reset","button"],type);
}
}
return _298;
},connect:function(_299,_29a,_29b){
if(dojo.evalObjPath("dojo.event.connect")){
dojo.event.connect(_299,_29a,this,_29b);
}else{
var fcn=dojo.lang.hitch(this,_29b);
_299[_29a]=function(e){
if(!e){
e=window.event;
}
if(!e.currentTarget){
e.currentTarget=e.srcElement;
}
if(!e.preventDefault){
e.preventDefault=function(){
window.event.returnValue=false;
};
}
fcn(e);
};
}
}});
dojo.io.XMLHTTPTransport=new function(){
var _29e=this;
var _29f={};
this.useCache=false;
this.preventCache=false;
function getCacheKey(url,_2a1,_2a2){
return url+"|"+_2a1+"|"+_2a2.toLowerCase();
}
function addToCache(url,_2a4,_2a5,http){
_29f[getCacheKey(url,_2a4,_2a5)]=http;
}
function getFromCache(url,_2a8,_2a9){
return _29f[getCacheKey(url,_2a8,_2a9)];
}
this.clearCache=function(){
_29f={};
};
function doLoad(_2aa,http,url,_2ad,_2ae){
if(((http.status>=200)&&(http.status<300))||(http.status==304)||(http.status==1223)||(location.protocol=="file:"&&(http.status==0||http.status==undefined))||(location.protocol=="chrome:"&&(http.status==0||http.status==undefined))){
var ret;
if(_2aa.method.toLowerCase()=="head"){
var _2b0=http.getAllResponseHeaders();
ret={};
ret.toString=function(){
return _2b0;
};
var _2b1=_2b0.split(/[\r\n]+/g);
for(var i=0;i<_2b1.length;i++){
var pair=_2b1[i].match(/^([^:]+)\s*:\s*(.+)$/i);
if(pair){
ret[pair[1]]=pair[2];
}
}
}else{
if(_2aa.mimetype=="text/javascript"){
try{
ret=dj_eval(http.responseText);
}
catch(e){
dojo.debug(e);
dojo.debug(http.responseText);
ret=null;
}
}else{
if(_2aa.mimetype.substr(0,9)=="text/json"||_2aa.mimetype.substr(0,16)=="application/json"){
try{
ret=dj_eval("("+_2aa.jsonFilter(http.responseText)+")");
}
catch(e){
dojo.debug(e);
dojo.debug(http.responseText);
ret=false;
}
}else{
if((_2aa.mimetype=="application/xml")||(_2aa.mimetype=="text/xml")){
ret=http.responseXML;
if(!ret||typeof ret=="string"||!http.getResponseHeader("Content-Type")){
ret=dojo.dom.createDocumentFromText(http.responseText);
}
}else{
ret=http.responseText;
}
}
}
}
if(_2ae){
addToCache(url,_2ad,_2aa.method,http);
}
_2aa[(typeof _2aa.load=="function")?"load":"handle"]("load",ret,http,_2aa);
}else{
var _2b4=new dojo.io.Error("XMLHttpTransport Error: "+http.status+" "+http.statusText);
_2aa[(typeof _2aa.error=="function")?"error":"handle"]("error",_2b4,http,_2aa);
}
}
function setHeaders(http,_2b6){
if(_2b6["headers"]){
for(var _2b7 in _2b6["headers"]){
if(_2b7.toLowerCase()=="content-type"&&!_2b6["contentType"]){
_2b6["contentType"]=_2b6["headers"][_2b7];
}else{
http.setRequestHeader(_2b7,_2b6["headers"][_2b7]);
}
}
}
}
this.inFlight=[];
this.inFlightTimer=null;
this.startWatchingInFlight=function(){
if(!this.inFlightTimer){
this.inFlightTimer=setTimeout("dojo.io.XMLHTTPTransport.watchInFlight();",10);
}
};
this.watchInFlight=function(){
var now=null;
if(!dojo.hostenv._blockAsync&&!_29e._blockAsync){
for(var x=this.inFlight.length-1;x>=0;x--){
try{
var tif=this.inFlight[x];
if(!tif||tif.http._aborted||!tif.http.readyState){
this.inFlight.splice(x,1);
continue;
}
if(4==tif.http.readyState){
this.inFlight.splice(x,1);
doLoad(tif.req,tif.http,tif.url,tif.query,tif.useCache);
}else{
if(tif.startTime){
if(!now){
now=(new Date()).getTime();
}
if(tif.startTime+(tif.req.timeoutSeconds*1000)<now){
if(typeof tif.http.abort=="function"){
tif.http.abort();
}
this.inFlight.splice(x,1);
tif.req[(typeof tif.req.timeout=="function")?"timeout":"handle"]("timeout",null,tif.http,tif.req);
}
}
}
}
catch(e){
try{
var _2bb=new dojo.io.Error("XMLHttpTransport.watchInFlight Error: "+e);
tif.req[(typeof tif.req.error=="function")?"error":"handle"]("error",_2bb,tif.http,tif.req);
}
catch(e2){
dojo.debug("XMLHttpTransport error callback failed: "+e2);
}
}
}
}
clearTimeout(this.inFlightTimer);
if(this.inFlight.length==0){
this.inFlightTimer=null;
return;
}
this.inFlightTimer=setTimeout("dojo.io.XMLHTTPTransport.watchInFlight();",10);
};
var _2bc=dojo.hostenv.getXmlhttpObject()?true:false;
this.canHandle=function(_2bd){
var mlc=_2bd["mimetype"].toLowerCase()||"";
return _2bc&&((dojo.lang.inArray(["text/plain","text/html","application/xml","text/xml","text/javascript"],mlc))||(mlc.substr(0,9)=="text/json"||mlc.substr(0,16)=="application/json"))&&!(_2bd["formNode"]&&dojo.io.formHasFile(_2bd["formNode"]));
};
this.multipartBoundary="45309FFF-BD65-4d50-99C9-36986896A96F";
this.bind=function(_2bf){
if(!_2bf["url"]){
if(!_2bf["formNode"]&&(_2bf["backButton"]||_2bf["back"]||_2bf["changeUrl"]||_2bf["watchForURL"])&&(!djConfig.preventBackButtonFix)){
dojo.deprecated("Using dojo.io.XMLHTTPTransport.bind() to add to browser history without doing an IO request","Use dojo.undo.browser.addToHistory() instead.","0.4");
dojo.undo.browser.addToHistory(_2bf);
return true;
}
}
var url=_2bf.url;
var _2c1="";
if(_2bf["formNode"]){
var ta=_2bf.formNode.getAttribute("action");
if((ta)&&(!_2bf["url"])){
url=ta;
}
var tp=_2bf.formNode.getAttribute("method");
if((tp)&&(!_2bf["method"])){
_2bf.method=tp;
}
_2c1+=dojo.io.encodeForm(_2bf.formNode,_2bf.encoding,_2bf["formFilter"]);
}
if(url.indexOf("#")>-1){
dojo.debug("Warning: dojo.io.bind: stripping hash values from url:",url);
url=url.split("#")[0];
}
if(_2bf["file"]){
_2bf.method="post";
}
if(!_2bf["method"]){
_2bf.method="get";
}
if(_2bf.method.toLowerCase()=="get"){
_2bf.multipart=false;
}else{
if(_2bf["file"]){
_2bf.multipart=true;
}else{
if(!_2bf["multipart"]){
_2bf.multipart=false;
}
}
}
if(_2bf["backButton"]||_2bf["back"]||_2bf["changeUrl"]){
dojo.undo.browser.addToHistory(_2bf);
}
var _2c4=_2bf["content"]||{};
if(_2bf.sendTransport){
_2c4["dojo.transport"]="xmlhttp";
}
do{
if(_2bf.postContent){
_2c1=_2bf.postContent;
break;
}
if(_2c4){
_2c1+=dojo.io.argsFromMap(_2c4,_2bf.encoding);
}
if(_2bf.method.toLowerCase()=="get"||!_2bf.multipart){
break;
}
var t=[];
if(_2c1.length){
var q=_2c1.split("&");
for(var i=0;i<q.length;++i){
if(q[i].length){
var p=q[i].split("=");
t.push("--"+this.multipartBoundary,"Content-Disposition: form-data; name=\""+p[0]+"\"","",p[1]);
}
}
}
if(_2bf.file){
if(dojo.lang.isArray(_2bf.file)){
for(var i=0;i<_2bf.file.length;++i){
var o=_2bf.file[i];
t.push("--"+this.multipartBoundary,"Content-Disposition: form-data; name=\""+o.name+"\"; filename=\""+("fileName" in o?o.fileName:o.name)+"\"","Content-Type: "+("contentType" in o?o.contentType:"application/octet-stream"),"",o.content);
}
}else{
var o=_2bf.file;
t.push("--"+this.multipartBoundary,"Content-Disposition: form-data; name=\""+o.name+"\"; filename=\""+("fileName" in o?o.fileName:o.name)+"\"","Content-Type: "+("contentType" in o?o.contentType:"application/octet-stream"),"",o.content);
}
}
if(t.length){
t.push("--"+this.multipartBoundary+"--","");
_2c1=t.join("\r\n");
}
}while(false);
var _2ca=_2bf["sync"]?false:true;
var _2cb=_2bf["preventCache"]||(this.preventCache==true&&_2bf["preventCache"]!=false);
var _2cc=_2bf["useCache"]==true||(this.useCache==true&&_2bf["useCache"]!=false);
if(!_2cb&&_2cc){
var _2cd=getFromCache(url,_2c1,_2bf.method);
if(_2cd){
doLoad(_2bf,_2cd,url,_2c1,false);
return;
}
}
var http=dojo.hostenv.getXmlhttpObject(_2bf);
var _2cf=false;
if(_2ca){
var _2d0=this.inFlight.push({"req":_2bf,"http":http,"url":url,"query":_2c1,"useCache":_2cc,"startTime":_2bf.timeoutSeconds?(new Date()).getTime():0});
this.startWatchingInFlight();
}else{
_29e._blockAsync=true;
}
if(_2bf.method.toLowerCase()=="post"){
if(!_2bf.user){
http.open("POST",url,_2ca);
}else{
http.open("POST",url,_2ca,_2bf.user,_2bf.password);
}
setHeaders(http,_2bf);
http.setRequestHeader("Content-Type",_2bf.multipart?("multipart/form-data; boundary="+this.multipartBoundary):(_2bf.contentType||"application/x-www-form-urlencoded"));
try{
http.send(_2c1);
}
catch(e){
if(typeof http.abort=="function"){
http.abort();
}
doLoad(_2bf,{status:404},url,_2c1,_2cc);
}
}else{
var _2d1=url;
if(_2c1!=""){
_2d1+=(_2d1.indexOf("?")>-1?"&":"?")+_2c1;
}
if(_2cb){
_2d1+=(dojo.string.endsWithAny(_2d1,"?","&")?"":(_2d1.indexOf("?")>-1?"&":"?"))+"dojo.preventCache="+new Date().valueOf();
}
if(!_2bf.user){
http.open(_2bf.method.toUpperCase(),_2d1,_2ca);
}else{
http.open(_2bf.method.toUpperCase(),_2d1,_2ca,_2bf.user,_2bf.password);
}
setHeaders(http,_2bf);
try{
http.send(null);
}
catch(e){
if(typeof http.abort=="function"){
http.abort();
}
doLoad(_2bf,{status:404},url,_2c1,_2cc);
}
}
if(!_2ca){
doLoad(_2bf,http,url,_2c1,_2cc);
_29e._blockAsync=false;
}
_2bf.abort=function(){
try{
http._aborted=true;
}
catch(e){
}
return http.abort();
};
return;
};
dojo.io.transports.addTransport("XMLHTTPTransport");
};
}
dojo.provide("dojo.io.cookie");
dojo.io.cookie.setCookie=function(name,_2d3,days,path,_2d6,_2d7){
var _2d8=-1;
if((typeof days=="number")&&(days>=0)){
var d=new Date();
d.setTime(d.getTime()+(days*24*60*60*1000));
_2d8=d.toGMTString();
}
_2d3=escape(_2d3);
document.cookie=name+"="+_2d3+";"+(_2d8!=-1?" expires="+_2d8+";":"")+(path?"path="+path:"")+(_2d6?"; domain="+_2d6:"")+(_2d7?"; secure":"");
};
dojo.io.cookie.set=dojo.io.cookie.setCookie;
dojo.io.cookie.getCookie=function(name){
var idx=document.cookie.lastIndexOf(name+"=");
if(idx==-1){
return null;
}
var _2dc=document.cookie.substring(idx+name.length+1);
var end=_2dc.indexOf(";");
if(end==-1){
end=_2dc.length;
}
_2dc=_2dc.substring(0,end);
_2dc=unescape(_2dc);
return _2dc;
};
dojo.io.cookie.get=dojo.io.cookie.getCookie;
dojo.io.cookie.deleteCookie=function(name){
dojo.io.cookie.setCookie(name,"-",0);
};
dojo.io.cookie.setObjectCookie=function(name,obj,days,path,_2e3,_2e4,_2e5){
if(arguments.length==5){
_2e5=_2e3;
_2e3=null;
_2e4=null;
}
var _2e6=[],_2e7,_2e8="";
if(!_2e5){
_2e7=dojo.io.cookie.getObjectCookie(name);
}
if(days>=0){
if(!_2e7){
_2e7={};
}
for(var prop in obj){
if(obj[prop]==null){
delete _2e7[prop];
}else{
if((typeof obj[prop]=="string")||(typeof obj[prop]=="number")){
_2e7[prop]=obj[prop];
}
}
}
prop=null;
for(var prop in _2e7){
_2e6.push(escape(prop)+"="+escape(_2e7[prop]));
}
_2e8=_2e6.join("&");
}
dojo.io.cookie.setCookie(name,_2e8,days,path,_2e3,_2e4);
};
dojo.io.cookie.getObjectCookie=function(name){
var _2eb=null,_2ec=dojo.io.cookie.getCookie(name);
if(_2ec){
_2eb={};
var _2ed=_2ec.split("&");
for(var i=0;i<_2ed.length;i++){
var pair=_2ed[i].split("=");
var _2f0=pair[1];
if(isNaN(_2f0)){
_2f0=unescape(pair[1]);
}
_2eb[unescape(pair[0])]=_2f0;
}
}
return _2eb;
};
dojo.io.cookie.isSupported=function(){
if(typeof navigator.cookieEnabled!="boolean"){
dojo.io.cookie.setCookie("__TestingYourBrowserForCookieSupport__","CookiesAllowed",90,null);
var _2f1=dojo.io.cookie.getCookie("__TestingYourBrowserForCookieSupport__");
navigator.cookieEnabled=(_2f1=="CookiesAllowed");
if(navigator.cookieEnabled){
this.deleteCookie("__TestingYourBrowserForCookieSupport__");
}
}
return navigator.cookieEnabled;
};
if(!dojo.io.cookies){
dojo.io.cookies=dojo.io.cookie;
}
dojo.kwCompoundRequire({common:["dojo.io.common"],rhino:["dojo.io.RhinoIO"],browser:["dojo.io.BrowserIO","dojo.io.cookie"],dashboard:["dojo.io.BrowserIO","dojo.io.cookie"]});
dojo.provide("dojo.io.*");
dojo.provide("dojo.event.common");
dojo.event=new function(){
this._canTimeout=dojo.lang.isFunction(dj_global["setTimeout"])||dojo.lang.isAlien(dj_global["setTimeout"]);
function interpolateArgs(args,_2f3){
var dl=dojo.lang;
var ao={srcObj:dj_global,srcFunc:null,adviceObj:dj_global,adviceFunc:null,aroundObj:null,aroundFunc:null,adviceType:(args.length>2)?args[0]:"after",precedence:"last",once:false,delay:null,rate:0,adviceMsg:false,maxCalls:-1};
switch(args.length){
case 0:
return;
case 1:
return;
case 2:
ao.srcFunc=args[0];
ao.adviceFunc=args[1];
break;
case 3:
if((dl.isObject(args[0]))&&(dl.isString(args[1]))&&(dl.isString(args[2]))){
ao.adviceType="after";
ao.srcObj=args[0];
ao.srcFunc=args[1];
ao.adviceFunc=args[2];
}else{
if((dl.isString(args[1]))&&(dl.isString(args[2]))){
ao.srcFunc=args[1];
ao.adviceFunc=args[2];
}else{
if((dl.isObject(args[0]))&&(dl.isString(args[1]))&&(dl.isFunction(args[2]))){
ao.adviceType="after";
ao.srcObj=args[0];
ao.srcFunc=args[1];
var _2f6=dl.nameAnonFunc(args[2],ao.adviceObj,_2f3);
ao.adviceFunc=_2f6;
}else{
if((dl.isFunction(args[0]))&&(dl.isObject(args[1]))&&(dl.isString(args[2]))){
ao.adviceType="after";
ao.srcObj=dj_global;
var _2f6=dl.nameAnonFunc(args[0],ao.srcObj,_2f3);
ao.srcFunc=_2f6;
ao.adviceObj=args[1];
ao.adviceFunc=args[2];
}
}
}
}
break;
case 4:
if((dl.isObject(args[0]))&&(dl.isObject(args[2]))){
ao.adviceType="after";
ao.srcObj=args[0];
ao.srcFunc=args[1];
ao.adviceObj=args[2];
ao.adviceFunc=args[3];
}else{
if((dl.isString(args[0]))&&(dl.isString(args[1]))&&(dl.isObject(args[2]))){
ao.adviceType=args[0];
ao.srcObj=dj_global;
ao.srcFunc=args[1];
ao.adviceObj=args[2];
ao.adviceFunc=args[3];
}else{
if((dl.isString(args[0]))&&(dl.isFunction(args[1]))&&(dl.isObject(args[2]))){
ao.adviceType=args[0];
ao.srcObj=dj_global;
var _2f6=dl.nameAnonFunc(args[1],dj_global,_2f3);
ao.srcFunc=_2f6;
ao.adviceObj=args[2];
ao.adviceFunc=args[3];
}else{
if((dl.isString(args[0]))&&(dl.isObject(args[1]))&&(dl.isString(args[2]))&&(dl.isFunction(args[3]))){
ao.srcObj=args[1];
ao.srcFunc=args[2];
var _2f6=dl.nameAnonFunc(args[3],dj_global,_2f3);
ao.adviceObj=dj_global;
ao.adviceFunc=_2f6;
}else{
if(dl.isObject(args[1])){
ao.srcObj=args[1];
ao.srcFunc=args[2];
ao.adviceObj=dj_global;
ao.adviceFunc=args[3];
}else{
if(dl.isObject(args[2])){
ao.srcObj=dj_global;
ao.srcFunc=args[1];
ao.adviceObj=args[2];
ao.adviceFunc=args[3];
}else{
ao.srcObj=ao.adviceObj=ao.aroundObj=dj_global;
ao.srcFunc=args[1];
ao.adviceFunc=args[2];
ao.aroundFunc=args[3];
}
}
}
}
}
}
break;
case 6:
ao.srcObj=args[1];
ao.srcFunc=args[2];
ao.adviceObj=args[3];
ao.adviceFunc=args[4];
ao.aroundFunc=args[5];
ao.aroundObj=dj_global;
break;
default:
ao.srcObj=args[1];
ao.srcFunc=args[2];
ao.adviceObj=args[3];
ao.adviceFunc=args[4];
ao.aroundObj=args[5];
ao.aroundFunc=args[6];
ao.once=args[7];
ao.delay=args[8];
ao.rate=args[9];
ao.adviceMsg=args[10];
ao.maxCalls=(!isNaN(parseInt(args[11])))?args[11]:-1;
break;
}
if(dl.isFunction(ao.aroundFunc)){
var _2f6=dl.nameAnonFunc(ao.aroundFunc,ao.aroundObj,_2f3);
ao.aroundFunc=_2f6;
}
if(dl.isFunction(ao.srcFunc)){
ao.srcFunc=dl.getNameInObj(ao.srcObj,ao.srcFunc);
}
if(dl.isFunction(ao.adviceFunc)){
ao.adviceFunc=dl.getNameInObj(ao.adviceObj,ao.adviceFunc);
}
if((ao.aroundObj)&&(dl.isFunction(ao.aroundFunc))){
ao.aroundFunc=dl.getNameInObj(ao.aroundObj,ao.aroundFunc);
}
if(!ao.srcObj){
dojo.raise("bad srcObj for srcFunc: "+ao.srcFunc);
}
if(!ao.adviceObj){
dojo.raise("bad adviceObj for adviceFunc: "+ao.adviceFunc);
}
if(!ao.adviceFunc){
dojo.debug("bad adviceFunc for srcFunc: "+ao.srcFunc);
dojo.debugShallow(ao);
}
return ao;
}
this.connect=function(){
if(arguments.length==1){
var ao=arguments[0];
}else{
var ao=interpolateArgs(arguments,true);
}
if(dojo.lang.isString(ao.srcFunc)&&(ao.srcFunc.toLowerCase()=="onkey")){
if(dojo.render.html.ie){
ao.srcFunc="onkeydown";
this.connect(ao);
}
ao.srcFunc="onkeypress";
}
if(dojo.lang.isArray(ao.srcObj)&&ao.srcObj!=""){
var _2f8={};
for(var x in ao){
_2f8[x]=ao[x];
}
var mjps=[];
dojo.lang.forEach(ao.srcObj,function(src){
if((dojo.render.html.capable)&&(dojo.lang.isString(src))){
src=dojo.byId(src);
}
_2f8.srcObj=src;
mjps.push(dojo.event.connect.call(dojo.event,_2f8));
});
return mjps;
}
var mjp=dojo.event.MethodJoinPoint.getForMethod(ao.srcObj,ao.srcFunc);
if(ao.adviceFunc){
var mjp2=dojo.event.MethodJoinPoint.getForMethod(ao.adviceObj,ao.adviceFunc);
}
mjp.kwAddAdvice(ao);
return mjp;
};
this.log=function(a1,a2){
var _300;
if((arguments.length==1)&&(typeof a1=="object")){
_300=a1;
}else{
_300={srcObj:a1,srcFunc:a2};
}
_300.adviceFunc=function(){
var _301=[];
for(var x=0;x<arguments.length;x++){
_301.push(arguments[x]);
}
dojo.debug("("+_300.srcObj+")."+_300.srcFunc,":",_301.join(", "));
};
this.kwConnect(_300);
};
this.connectBefore=function(){
var args=["before"];
for(var i=0;i<arguments.length;i++){
args.push(arguments[i]);
}
return this.connect.apply(this,args);
};
this.connectAround=function(){
var args=["around"];
for(var i=0;i<arguments.length;i++){
args.push(arguments[i]);
}
return this.connect.apply(this,args);
};
this.connectOnce=function(){
var ao=interpolateArgs(arguments,true);
ao.once=true;
return this.connect(ao);
};
this.connectRunOnce=function(){
var ao=interpolateArgs(arguments,true);
ao.maxCalls=1;
return this.connect(ao);
};
this._kwConnectImpl=function(_309,_30a){
var fn=(_30a)?"disconnect":"connect";
if(typeof _309["srcFunc"]=="function"){
_309.srcObj=_309["srcObj"]||dj_global;
var _30c=dojo.lang.nameAnonFunc(_309.srcFunc,_309.srcObj,true);
_309.srcFunc=_30c;
}
if(typeof _309["adviceFunc"]=="function"){
_309.adviceObj=_309["adviceObj"]||dj_global;
var _30c=dojo.lang.nameAnonFunc(_309.adviceFunc,_309.adviceObj,true);
_309.adviceFunc=_30c;
}
_309.srcObj=_309["srcObj"]||dj_global;
_309.adviceObj=_309["adviceObj"]||_309["targetObj"]||dj_global;
_309.adviceFunc=_309["adviceFunc"]||_309["targetFunc"];
return dojo.event[fn](_309);
};
this.kwConnect=function(_30d){
return this._kwConnectImpl(_30d,false);
};
this.disconnect=function(){
if(arguments.length==1){
var ao=arguments[0];
}else{
var ao=interpolateArgs(arguments,true);
}
if(!ao.adviceFunc){
return;
}
if(dojo.lang.isString(ao.srcFunc)&&(ao.srcFunc.toLowerCase()=="onkey")){
if(dojo.render.html.ie){
ao.srcFunc="onkeydown";
this.disconnect(ao);
}
ao.srcFunc="onkeypress";
}
if(!ao.srcObj[ao.srcFunc]){
return null;
}
var mjp=dojo.event.MethodJoinPoint.getForMethod(ao.srcObj,ao.srcFunc,true);
mjp.removeAdvice(ao.adviceObj,ao.adviceFunc,ao.adviceType,ao.once);
return mjp;
};
this.kwDisconnect=function(_310){
return this._kwConnectImpl(_310,true);
};
};
dojo.event.MethodInvocation=function(_311,obj,args){
this.jp_=_311;
this.object=obj;
this.args=[];
for(var x=0;x<args.length;x++){
this.args[x]=args[x];
}
this.around_index=-1;
};
dojo.event.MethodInvocation.prototype.proceed=function(){
this.around_index++;
if(this.around_index>=this.jp_.around.length){
return this.jp_.object[this.jp_.methodname].apply(this.jp_.object,this.args);
}else{
var ti=this.jp_.around[this.around_index];
var mobj=ti[0]||dj_global;
var meth=ti[1];
return mobj[meth].call(mobj,this);
}
};
dojo.event.MethodJoinPoint=function(obj,_319){
this.object=obj||dj_global;
this.methodname=_319;
this.methodfunc=this.object[_319];
this.squelch=false;
};
dojo.event.MethodJoinPoint.getForMethod=function(obj,_31b){
if(!obj){
obj=dj_global;
}
var ofn=obj[_31b];
if(!ofn){
ofn=obj[_31b]=function(){
};
if(!obj[_31b]){
dojo.raise("Cannot set do-nothing method on that object "+_31b);
}
}else{
if((typeof ofn!="function")&&(!dojo.lang.isFunction(ofn))&&(!dojo.lang.isAlien(ofn))){
return null;
}
}
var _31d=_31b+"$joinpoint";
var _31e=_31b+"$joinpoint$method";
var _31f=obj[_31d];
if(!_31f){
var _320=false;
if(dojo.event["browser"]){
if((obj["attachEvent"])||(obj["nodeType"])||(obj["addEventListener"])){
_320=true;
dojo.event.browser.addClobberNodeAttrs(obj,[_31d,_31e,_31b]);
}
}
var _321=ofn.length;
obj[_31e]=ofn;
_31f=obj[_31d]=new dojo.event.MethodJoinPoint(obj,_31e);
if(!_320){
obj[_31b]=function(){
return _31f.run.apply(_31f,arguments);
};
}else{
obj[_31b]=function(){
var args=[];
if(!arguments.length){
var evt=null;
try{
if(obj.ownerDocument){
evt=obj.ownerDocument.parentWindow.event;
}else{
if(obj.documentElement){
evt=obj.documentElement.ownerDocument.parentWindow.event;
}else{
if(obj.event){
evt=obj.event;
}else{
evt=window.event;
}
}
}
}
catch(e){
evt=window.event;
}
if(evt){
args.push(dojo.event.browser.fixEvent(evt,this));
}
}else{
for(var x=0;x<arguments.length;x++){
if((x==0)&&(dojo.event.browser.isEvent(arguments[x]))){
args.push(dojo.event.browser.fixEvent(arguments[x],this));
}else{
args.push(arguments[x]);
}
}
}
return _31f.run.apply(_31f,args);
};
}
obj[_31b].__preJoinArity=_321;
}
return _31f;
};
dojo.lang.extend(dojo.event.MethodJoinPoint,{squelch:false,unintercept:function(){
this.object[this.methodname]=this.methodfunc;
this.before=[];
this.after=[];
this.around=[];
},disconnect:dojo.lang.forward("unintercept"),run:function(){
var obj=this.object||dj_global;
var args=arguments;
var _327=[];
for(var x=0;x<args.length;x++){
_327[x]=args[x];
}
var _329=function(marr){
if(!marr){
dojo.debug("Null argument to unrollAdvice()");
return;
}
var _32b=marr[0]||dj_global;
var _32c=marr[1];
if(!_32b[_32c]){
dojo.raise("function \""+_32c+"\" does not exist on \""+_32b+"\"");
}
var _32d=marr[2]||dj_global;
var _32e=marr[3];
var msg=marr[6];
var _330=marr[7];
if(_330>-1){
if(_330==0){
return;
}
marr[7]--;
}
var _331;
var to={args:[],jp_:this,object:obj,proceed:function(){
return _32b[_32c].apply(_32b,to.args);
}};
to.args=_327;
var _333=parseInt(marr[4]);
var _334=((!isNaN(_333))&&(marr[4]!==null)&&(typeof marr[4]!="undefined"));
if(marr[5]){
var rate=parseInt(marr[5]);
var cur=new Date();
var _337=false;
if((marr["last"])&&((cur-marr.last)<=rate)){
if(dojo.event._canTimeout){
if(marr["delayTimer"]){
clearTimeout(marr.delayTimer);
}
var tod=parseInt(rate*2);
var mcpy=dojo.lang.shallowCopy(marr);
marr.delayTimer=setTimeout(function(){
mcpy[5]=0;
_329(mcpy);
},tod);
}
return;
}else{
marr.last=cur;
}
}
if(_32e){
_32d[_32e].call(_32d,to);
}else{
if((_334)&&((dojo.render.html)||(dojo.render.svg))){
dj_global["setTimeout"](function(){
if(msg){
_32b[_32c].call(_32b,to);
}else{
_32b[_32c].apply(_32b,args);
}
},_333);
}else{
if(msg){
_32b[_32c].call(_32b,to);
}else{
_32b[_32c].apply(_32b,args);
}
}
}
};
var _33a=function(){
if(this.squelch){
try{
return _329.apply(this,arguments);
}
catch(e){
dojo.debug(e);
}
}else{
return _329.apply(this,arguments);
}
};
if((this["before"])&&(this.before.length>0)){
dojo.lang.forEach(this.before.concat(new Array()),_33a);
}
var _33b;
try{
if((this["around"])&&(this.around.length>0)){
var mi=new dojo.event.MethodInvocation(this,obj,args);
_33b=mi.proceed();
}else{
if(this.methodfunc){
_33b=this.object[this.methodname].apply(this.object,args);
}
}
}
catch(e){
if(!this.squelch){
dojo.debug(e,"when calling",this.methodname,"on",this.object,"with arguments",args);
dojo.raise(e);
}
}
if((this["after"])&&(this.after.length>0)){
dojo.lang.forEach(this.after.concat(new Array()),_33a);
}
return (this.methodfunc)?_33b:null;
},getArr:function(kind){
var type="after";
if((typeof kind=="string")&&(kind.indexOf("before")!=-1)){
type="before";
}else{
if(kind=="around"){
type="around";
}
}
if(!this[type]){
this[type]=[];
}
return this[type];
},kwAddAdvice:function(args){
this.addAdvice(args["adviceObj"],args["adviceFunc"],args["aroundObj"],args["aroundFunc"],args["adviceType"],args["precedence"],args["once"],args["delay"],args["rate"],args["adviceMsg"],args["maxCalls"]);
},addAdvice:function(_340,_341,_342,_343,_344,_345,once,_347,rate,_349,_34a){
var arr=this.getArr(_344);
if(!arr){
dojo.raise("bad this: "+this);
}
var ao=[_340,_341,_342,_343,_347,rate,_349,_34a];
if(once){
if(this.hasAdvice(_340,_341,_344,arr)>=0){
return;
}
}
if(_345=="first"){
arr.unshift(ao);
}else{
arr.push(ao);
}
},hasAdvice:function(_34d,_34e,_34f,arr){
if(!arr){
arr=this.getArr(_34f);
}
var ind=-1;
for(var x=0;x<arr.length;x++){
var aao=(typeof _34e=="object")?(new String(_34e)).toString():_34e;
var a1o=(typeof arr[x][1]=="object")?(new String(arr[x][1])).toString():arr[x][1];
if((arr[x][0]==_34d)&&(a1o==aao)){
ind=x;
}
}
return ind;
},removeAdvice:function(_355,_356,_357,once){
var arr=this.getArr(_357);
var ind=this.hasAdvice(_355,_356,_357,arr);
if(ind==-1){
return false;
}
while(ind!=-1){
arr.splice(ind,1);
if(once){
break;
}
ind=this.hasAdvice(_355,_356,_357,arr);
}
return true;
}});
dojo.provide("dojo.event.topic");
dojo.event.topic=new function(){
this.topics={};
this.getTopic=function(_35b){
if(!this.topics[_35b]){
this.topics[_35b]=new this.TopicImpl(_35b);
}
return this.topics[_35b];
};
this.registerPublisher=function(_35c,obj,_35e){
var _35c=this.getTopic(_35c);
_35c.registerPublisher(obj,_35e);
};
this.subscribe=function(_35f,obj,_361){
var _35f=this.getTopic(_35f);
_35f.subscribe(obj,_361);
};
this.unsubscribe=function(_362,obj,_364){
var _362=this.getTopic(_362);
_362.unsubscribe(obj,_364);
};
this.destroy=function(_365){
this.getTopic(_365).destroy();
delete this.topics[_365];
};
this.publishApply=function(_366,args){
var _366=this.getTopic(_366);
_366.sendMessage.apply(_366,args);
};
this.publish=function(_368,_369){
var _368=this.getTopic(_368);
var args=[];
for(var x=1;x<arguments.length;x++){
args.push(arguments[x]);
}
_368.sendMessage.apply(_368,args);
};
};
dojo.event.topic.TopicImpl=function(_36c){
this.topicName=_36c;
this.subscribe=function(_36d,_36e){
var tf=_36e||_36d;
var to=(!_36e)?dj_global:_36d;
return dojo.event.kwConnect({srcObj:this,srcFunc:"sendMessage",adviceObj:to,adviceFunc:tf});
};
this.unsubscribe=function(_371,_372){
var tf=(!_372)?_371:_372;
var to=(!_372)?null:_371;
return dojo.event.kwDisconnect({srcObj:this,srcFunc:"sendMessage",adviceObj:to,adviceFunc:tf});
};
this._getJoinPoint=function(){
return dojo.event.MethodJoinPoint.getForMethod(this,"sendMessage");
};
this.setSquelch=function(_375){
this._getJoinPoint().squelch=_375;
};
this.destroy=function(){
this._getJoinPoint().disconnect();
};
this.registerPublisher=function(_376,_377){
dojo.event.connect(_376,_377,this,"sendMessage");
};
this.sendMessage=function(_378){
};
};
dojo.provide("dojo.event.browser");
dojo._ie_clobber=new function(){
this.clobberNodes=[];
function nukeProp(node,prop){
try{
node[prop]=null;
}
catch(e){
}
try{
delete node[prop];
}
catch(e){
}
try{
node.removeAttribute(prop);
}
catch(e){
}
}
this.clobber=function(_37b){
var na;
var tna;
if(_37b){
tna=_37b.all||_37b.getElementsByTagName("*");
na=[_37b];
for(var x=0;x<tna.length;x++){
if(tna[x]["__doClobber__"]){
na.push(tna[x]);
}
}
}else{
try{
window.onload=null;
}
catch(e){
}
na=(this.clobberNodes.length)?this.clobberNodes:document.all;
}
tna=null;
var _37f={};
for(var i=na.length-1;i>=0;i=i-1){
var el=na[i];
try{
if(el&&el["__clobberAttrs__"]){
for(var j=0;j<el.__clobberAttrs__.length;j++){
nukeProp(el,el.__clobberAttrs__[j]);
}
nukeProp(el,"__clobberAttrs__");
nukeProp(el,"__doClobber__");
}
}
catch(e){
}
}
na=null;
};
};
if(dojo.render.html.ie){
dojo.addOnUnload(function(){
dojo._ie_clobber.clobber();
try{
if((dojo["widget"])&&(dojo.widget["manager"])){
dojo.widget.manager.destroyAll();
}
}
catch(e){
}
if(dojo.widget){
for(var name in dojo.widget._templateCache){
if(dojo.widget._templateCache[name].node){
dojo.dom.destroyNode(dojo.widget._templateCache[name].node);
dojo.widget._templateCache[name].node=null;
delete dojo.widget._templateCache[name].node;
}
}
}
try{
window.onload=null;
}
catch(e){
}
try{
window.onunload=null;
}
catch(e){
}
dojo._ie_clobber.clobberNodes=[];
});
}
dojo.event.browser=new function(){
var _384=0;
this.normalizedEventName=function(_385){
switch(_385){
case "CheckboxStateChange":
case "DOMAttrModified":
case "DOMMenuItemActive":
case "DOMMenuItemInactive":
case "DOMMouseScroll":
case "DOMNodeInserted":
case "DOMNodeRemoved":
case "RadioStateChange":
return _385;
break;
default:
var lcn=_385.toLowerCase();
return (lcn.indexOf("on")==0)?lcn.substr(2):lcn;
break;
}
};
this.clean=function(node){
if(dojo.render.html.ie){
dojo._ie_clobber.clobber(node);
}
};
this.addClobberNode=function(node){
if(!dojo.render.html.ie){
return;
}
if(!node["__doClobber__"]){
node.__doClobber__=true;
dojo._ie_clobber.clobberNodes.push(node);
node.__clobberAttrs__=[];
}
};
this.addClobberNodeAttrs=function(node,_38a){
if(!dojo.render.html.ie){
return;
}
this.addClobberNode(node);
for(var x=0;x<_38a.length;x++){
node.__clobberAttrs__.push(_38a[x]);
}
};
this.removeListener=function(node,_38d,fp,_38f){
if(!_38f){
var _38f=false;
}
_38d=dojo.event.browser.normalizedEventName(_38d);
if(_38d=="key"){
if(dojo.render.html.ie){
this.removeListener(node,"onkeydown",fp,_38f);
}
_38d="keypress";
}
if(node.removeEventListener){
node.removeEventListener(_38d,fp,_38f);
}
};
this.addListener=function(node,_391,fp,_393,_394){
if(!node){
return;
}
if(!_393){
var _393=false;
}
_391=dojo.event.browser.normalizedEventName(_391);
if(_391=="key"){
if(dojo.render.html.ie){
this.addListener(node,"onkeydown",fp,_393,_394);
}
_391="keypress";
}
if(!_394){
var _395=function(evt){
if(!evt){
evt=window.event;
}
var ret=fp(dojo.event.browser.fixEvent(evt,this));
if(_393){
dojo.event.browser.stopEvent(evt);
}
return ret;
};
}else{
_395=fp;
}
if(node.addEventListener){
node.addEventListener(_391,_395,_393);
return _395;
}else{
_391="on"+_391;
if(typeof node[_391]=="function"){
var _398=node[_391];
node[_391]=function(e){
_398(e);
return _395(e);
};
}else{
node[_391]=_395;
}
if(dojo.render.html.ie){
this.addClobberNodeAttrs(node,[_391]);
}
return _395;
}
};
this.isEvent=function(obj){
return (typeof obj!="undefined")&&(obj)&&(typeof Event!="undefined")&&(obj.eventPhase);
};
this.currentEvent=null;
this.callListener=function(_39b,_39c){
if(typeof _39b!="function"){
dojo.raise("listener not a function: "+_39b);
}
dojo.event.browser.currentEvent.currentTarget=_39c;
return _39b.call(_39c,dojo.event.browser.currentEvent);
};
this._stopPropagation=function(){
dojo.event.browser.currentEvent.cancelBubble=true;
};
this._preventDefault=function(){
dojo.event.browser.currentEvent.returnValue=false;
};
this.keys={KEY_BACKSPACE:8,KEY_TAB:9,KEY_CLEAR:12,KEY_ENTER:13,KEY_SHIFT:16,KEY_CTRL:17,KEY_ALT:18,KEY_PAUSE:19,KEY_CAPS_LOCK:20,KEY_ESCAPE:27,KEY_SPACE:32,KEY_PAGE_UP:33,KEY_PAGE_DOWN:34,KEY_END:35,KEY_HOME:36,KEY_LEFT_ARROW:37,KEY_UP_ARROW:38,KEY_RIGHT_ARROW:39,KEY_DOWN_ARROW:40,KEY_INSERT:45,KEY_DELETE:46,KEY_HELP:47,KEY_LEFT_WINDOW:91,KEY_RIGHT_WINDOW:92,KEY_SELECT:93,KEY_NUMPAD_0:96,KEY_NUMPAD_1:97,KEY_NUMPAD_2:98,KEY_NUMPAD_3:99,KEY_NUMPAD_4:100,KEY_NUMPAD_5:101,KEY_NUMPAD_6:102,KEY_NUMPAD_7:103,KEY_NUMPAD_8:104,KEY_NUMPAD_9:105,KEY_NUMPAD_MULTIPLY:106,KEY_NUMPAD_PLUS:107,KEY_NUMPAD_ENTER:108,KEY_NUMPAD_MINUS:109,KEY_NUMPAD_PERIOD:110,KEY_NUMPAD_DIVIDE:111,KEY_F1:112,KEY_F2:113,KEY_F3:114,KEY_F4:115,KEY_F5:116,KEY_F6:117,KEY_F7:118,KEY_F8:119,KEY_F9:120,KEY_F10:121,KEY_F11:122,KEY_F12:123,KEY_F13:124,KEY_F14:125,KEY_F15:126,KEY_NUM_LOCK:144,KEY_SCROLL_LOCK:145};
this.revKeys=[];
for(var key in this.keys){
this.revKeys[this.keys[key]]=key;
}
this.fixEvent=function(evt,_39f){
if(!evt){
if(window["event"]){
evt=window.event;
}
}
if((evt["type"])&&(evt["type"].indexOf("key")==0)){
evt.keys=this.revKeys;
for(var key in this.keys){
evt[key]=this.keys[key];
}
if(evt["type"]=="keydown"&&dojo.render.html.ie){
switch(evt.keyCode){
case evt.KEY_SHIFT:
case evt.KEY_CTRL:
case evt.KEY_ALT:
case evt.KEY_CAPS_LOCK:
case evt.KEY_LEFT_WINDOW:
case evt.KEY_RIGHT_WINDOW:
case evt.KEY_SELECT:
case evt.KEY_NUM_LOCK:
case evt.KEY_SCROLL_LOCK:
case evt.KEY_NUMPAD_0:
case evt.KEY_NUMPAD_1:
case evt.KEY_NUMPAD_2:
case evt.KEY_NUMPAD_3:
case evt.KEY_NUMPAD_4:
case evt.KEY_NUMPAD_5:
case evt.KEY_NUMPAD_6:
case evt.KEY_NUMPAD_7:
case evt.KEY_NUMPAD_8:
case evt.KEY_NUMPAD_9:
case evt.KEY_NUMPAD_PERIOD:
break;
case evt.KEY_NUMPAD_MULTIPLY:
case evt.KEY_NUMPAD_PLUS:
case evt.KEY_NUMPAD_ENTER:
case evt.KEY_NUMPAD_MINUS:
case evt.KEY_NUMPAD_DIVIDE:
break;
case evt.KEY_PAUSE:
case evt.KEY_TAB:
case evt.KEY_BACKSPACE:
case evt.KEY_ENTER:
case evt.KEY_ESCAPE:
case evt.KEY_PAGE_UP:
case evt.KEY_PAGE_DOWN:
case evt.KEY_END:
case evt.KEY_HOME:
case evt.KEY_LEFT_ARROW:
case evt.KEY_UP_ARROW:
case evt.KEY_RIGHT_ARROW:
case evt.KEY_DOWN_ARROW:
case evt.KEY_INSERT:
case evt.KEY_DELETE:
case evt.KEY_F1:
case evt.KEY_F2:
case evt.KEY_F3:
case evt.KEY_F4:
case evt.KEY_F5:
case evt.KEY_F6:
case evt.KEY_F7:
case evt.KEY_F8:
case evt.KEY_F9:
case evt.KEY_F10:
case evt.KEY_F11:
case evt.KEY_F12:
case evt.KEY_F12:
case evt.KEY_F13:
case evt.KEY_F14:
case evt.KEY_F15:
case evt.KEY_CLEAR:
case evt.KEY_HELP:
evt.key=evt.keyCode;
break;
default:
if(evt.ctrlKey||evt.altKey){
var _3a1=evt.keyCode;
if(_3a1>=65&&_3a1<=90&&evt.shiftKey==false){
_3a1+=32;
}
if(_3a1>=1&&_3a1<=26&&evt.ctrlKey){
_3a1+=96;
}
evt.key=String.fromCharCode(_3a1);
}
}
}else{
if(evt["type"]=="keypress"){
if(dojo.render.html.opera){
if(evt.which==0){
evt.key=evt.keyCode;
}else{
if(evt.which>0){
switch(evt.which){
case evt.KEY_SHIFT:
case evt.KEY_CTRL:
case evt.KEY_ALT:
case evt.KEY_CAPS_LOCK:
case evt.KEY_NUM_LOCK:
case evt.KEY_SCROLL_LOCK:
break;
case evt.KEY_PAUSE:
case evt.KEY_TAB:
case evt.KEY_BACKSPACE:
case evt.KEY_ENTER:
case evt.KEY_ESCAPE:
evt.key=evt.which;
break;
default:
var _3a1=evt.which;
if((evt.ctrlKey||evt.altKey||evt.metaKey)&&(evt.which>=65&&evt.which<=90&&evt.shiftKey==false)){
_3a1+=32;
}
evt.key=String.fromCharCode(_3a1);
}
}
}
}else{
if(dojo.render.html.ie){
if(!evt.ctrlKey&&!evt.altKey&&evt.keyCode>=evt.KEY_SPACE){
evt.key=String.fromCharCode(evt.keyCode);
}
}else{
if(dojo.render.html.safari){
switch(evt.keyCode){
case 25:
evt.key=evt.KEY_TAB;
evt.shift=true;
break;
case 63232:
evt.key=evt.KEY_UP_ARROW;
break;
case 63233:
evt.key=evt.KEY_DOWN_ARROW;
break;
case 63234:
evt.key=evt.KEY_LEFT_ARROW;
break;
case 63235:
evt.key=evt.KEY_RIGHT_ARROW;
break;
case 63236:
evt.key=evt.KEY_F1;
break;
case 63237:
evt.key=evt.KEY_F2;
break;
case 63238:
evt.key=evt.KEY_F3;
break;
case 63239:
evt.key=evt.KEY_F4;
break;
case 63240:
evt.key=evt.KEY_F5;
break;
case 63241:
evt.key=evt.KEY_F6;
break;
case 63242:
evt.key=evt.KEY_F7;
break;
case 63243:
evt.key=evt.KEY_F8;
break;
case 63244:
evt.key=evt.KEY_F9;
break;
case 63245:
evt.key=evt.KEY_F10;
break;
case 63246:
evt.key=evt.KEY_F11;
break;
case 63247:
evt.key=evt.KEY_F12;
break;
case 63250:
evt.key=evt.KEY_PAUSE;
break;
case 63272:
evt.key=evt.KEY_DELETE;
break;
case 63273:
evt.key=evt.KEY_HOME;
break;
case 63275:
evt.key=evt.KEY_END;
break;
case 63276:
evt.key=evt.KEY_PAGE_UP;
break;
case 63277:
evt.key=evt.KEY_PAGE_DOWN;
break;
case 63302:
evt.key=evt.KEY_INSERT;
break;
case 63248:
case 63249:
case 63289:
break;
default:
evt.key=evt.charCode>=evt.KEY_SPACE?String.fromCharCode(evt.charCode):evt.keyCode;
}
}else{
evt.key=evt.charCode>0?String.fromCharCode(evt.charCode):evt.keyCode;
}
}
}
}
}
}
if(dojo.render.html.ie){
if(!evt.target){
evt.target=evt.srcElement;
}
if(!evt.currentTarget){
evt.currentTarget=(_39f?_39f:evt.srcElement);
}
if(!evt.layerX){
evt.layerX=evt.offsetX;
}
if(!evt.layerY){
evt.layerY=evt.offsetY;
}
var doc=(evt.srcElement&&evt.srcElement.ownerDocument)?evt.srcElement.ownerDocument:document;
var _3a3=((dojo.render.html.ie55)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;
if(!evt.pageX){
evt.pageX=evt.clientX+(_3a3.scrollLeft||0);
}
if(!evt.pageY){
evt.pageY=evt.clientY+(_3a3.scrollTop||0);
}
if(evt.type=="mouseover"){
evt.relatedTarget=evt.fromElement;
}
if(evt.type=="mouseout"){
evt.relatedTarget=evt.toElement;
}
this.currentEvent=evt;
evt.callListener=this.callListener;
evt.stopPropagation=this._stopPropagation;
evt.preventDefault=this._preventDefault;
}
return evt;
};
this.stopEvent=function(evt){
if(window.event){
evt.cancelBubble=true;
evt.returnValue=false;
}else{
evt.preventDefault();
evt.stopPropagation();
}
};
};
dojo.kwCompoundRequire({common:["dojo.event.common","dojo.event.topic"],browser:["dojo.event.browser"],dashboard:["dojo.event.browser"]});
dojo.provide("dojo.event.*");
dojo.provide("dojo.event");
dojo.deprecated("dojo.event","replaced by dojo.event.*","0.5");
dojo.provide("dojo.gfx.color");
dojo.gfx.color.Color=function(r,g,b,a){
if(dojo.lang.isArray(r)){
this.r=r[0];
this.g=r[1];
this.b=r[2];
this.a=r[3]||1;
}else{
if(dojo.lang.isString(r)){
var rgb=dojo.gfx.color.extractRGB(r);
this.r=rgb[0];
this.g=rgb[1];
this.b=rgb[2];
this.a=g||1;
}else{
if(r instanceof dojo.gfx.color.Color){
this.r=r.r;
this.b=r.b;
this.g=r.g;
this.a=r.a;
}else{
this.r=r;
this.g=g;
this.b=b;
this.a=a;
}
}
}
};
dojo.gfx.color.Color.fromArray=function(arr){
return new dojo.gfx.color.Color(arr[0],arr[1],arr[2],arr[3]);
};
dojo.extend(dojo.gfx.color.Color,{toRgb:function(_3ab){
if(_3ab){
return this.toRgba();
}else{
return [this.r,this.g,this.b];
}
},toRgba:function(){
return [this.r,this.g,this.b,this.a];
},toHex:function(){
return dojo.gfx.color.rgb2hex(this.toRgb());
},toCss:function(){
return "rgb("+this.toRgb().join()+")";
},toString:function(){
return this.toHex();
},blend:function(_3ac,_3ad){
var rgb=null;
if(dojo.lang.isArray(_3ac)){
rgb=_3ac;
}else{
if(_3ac instanceof dojo.gfx.color.Color){
rgb=_3ac.toRgb();
}else{
rgb=new dojo.gfx.color.Color(_3ac).toRgb();
}
}
return dojo.gfx.color.blend(this.toRgb(),rgb,_3ad);
}});
dojo.gfx.color.named={white:[255,255,255],black:[0,0,0],red:[255,0,0],green:[0,255,0],lime:[0,255,0],blue:[0,0,255],navy:[0,0,128],gray:[128,128,128],silver:[192,192,192]};
dojo.gfx.color.blend=function(a,b,_3b1){
if(typeof a=="string"){
return dojo.gfx.color.blendHex(a,b,_3b1);
}
if(!_3b1){
_3b1=0;
}
_3b1=Math.min(Math.max(-1,_3b1),1);
_3b1=((_3b1+1)/2);
var c=[];
for(var x=0;x<3;x++){
c[x]=parseInt(b[x]+((a[x]-b[x])*_3b1));
}
return c;
};
dojo.gfx.color.blendHex=function(a,b,_3b6){
return dojo.gfx.color.rgb2hex(dojo.gfx.color.blend(dojo.gfx.color.hex2rgb(a),dojo.gfx.color.hex2rgb(b),_3b6));
};
dojo.gfx.color.extractRGB=function(_3b7){
var hex="0123456789abcdef";
_3b7=_3b7.toLowerCase();
if(_3b7.indexOf("rgb")==0){
var _3b9=_3b7.match(/rgba*\((\d+), *(\d+), *(\d+)/i);
var ret=_3b9.splice(1,3);
return ret;
}else{
var _3bb=dojo.gfx.color.hex2rgb(_3b7);
if(_3bb){
return _3bb;
}else{
return dojo.gfx.color.named[_3b7]||[255,255,255];
}
}
};
dojo.gfx.color.hex2rgb=function(hex){
var _3bd="0123456789ABCDEF";
var rgb=new Array(3);
if(hex.indexOf("#")==0){
hex=hex.substring(1);
}
hex=hex.toUpperCase();
if(hex.replace(new RegExp("["+_3bd+"]","g"),"")!=""){
return null;
}
if(hex.length==3){
rgb[0]=hex.charAt(0)+hex.charAt(0);
rgb[1]=hex.charAt(1)+hex.charAt(1);
rgb[2]=hex.charAt(2)+hex.charAt(2);
}else{
rgb[0]=hex.substring(0,2);
rgb[1]=hex.substring(2,4);
rgb[2]=hex.substring(4);
}
for(var i=0;i<rgb.length;i++){
rgb[i]=_3bd.indexOf(rgb[i].charAt(0))*16+_3bd.indexOf(rgb[i].charAt(1));
}
return rgb;
};
dojo.gfx.color.rgb2hex=function(r,g,b){
if(dojo.lang.isArray(r)){
g=r[1]||0;
b=r[2]||0;
r=r[0]||0;
}
var ret=dojo.lang.map([r,g,b],function(x){
x=new Number(x);
var s=x.toString(16);
while(s.length<2){
s="0"+s;
}
return s;
});
ret.unshift("#");
return ret.join("");
};
dojo.provide("dojo.lfx.Animation");
dojo.lfx.Line=function(_3c6,end){
this.start=_3c6;
this.end=end;
if(dojo.lang.isArray(_3c6)){
var diff=[];
dojo.lang.forEach(this.start,function(s,i){
diff[i]=this.end[i]-s;
},this);
this.getValue=function(n){
var res=[];
dojo.lang.forEach(this.start,function(s,i){
res[i]=(diff[i]*n)+s;
},this);
return res;
};
}else{
var diff=end-_3c6;
this.getValue=function(n){
return (diff*n)+this.start;
};
}
};
if((dojo.render.html.khtml)&&(!dojo.render.html.safari)){
dojo.lfx.easeDefault=function(n){
return (parseFloat("0.5")+((Math.sin((n+parseFloat("1.5"))*Math.PI))/2));
};
}else{
dojo.lfx.easeDefault=function(n){
return (0.5+((Math.sin((n+1.5)*Math.PI))/2));
};
}
dojo.lfx.easeIn=function(n){
return Math.pow(n,3);
};
dojo.lfx.easeOut=function(n){
return (1-Math.pow(1-n,3));
};
dojo.lfx.easeInOut=function(n){
return ((3*Math.pow(n,2))-(2*Math.pow(n,3)));
};
dojo.lfx.IAnimation=function(){
};
dojo.lang.extend(dojo.lfx.IAnimation,{curve:null,duration:1000,easing:null,repeatCount:0,rate:10,handler:null,beforeBegin:null,onBegin:null,onAnimate:null,onEnd:null,onPlay:null,onPause:null,onStop:null,play:null,pause:null,stop:null,connect:function(evt,_3d6,_3d7){
if(!_3d7){
_3d7=_3d6;
_3d6=this;
}
_3d7=dojo.lang.hitch(_3d6,_3d7);
var _3d8=this[evt]||function(){
};
this[evt]=function(){
var ret=_3d8.apply(this,arguments);
_3d7.apply(this,arguments);
return ret;
};
return this;
},fire:function(evt,args){
if(this[evt]){
this[evt].apply(this,(args||[]));
}
return this;
},repeat:function(_3dc){
this.repeatCount=_3dc;
return this;
},_active:false,_paused:false});
dojo.lfx.Animation=function(_3dd,_3de,_3df,_3e0,_3e1,rate){
dojo.lfx.IAnimation.call(this);
if(dojo.lang.isNumber(_3dd)||(!_3dd&&_3de.getValue)){
rate=_3e1;
_3e1=_3e0;
_3e0=_3df;
_3df=_3de;
_3de=_3dd;
_3dd=null;
}else{
if(_3dd.getValue||dojo.lang.isArray(_3dd)){
rate=_3e0;
_3e1=_3df;
_3e0=_3de;
_3df=_3dd;
_3de=null;
_3dd=null;
}
}
if(dojo.lang.isArray(_3df)){
this.curve=new dojo.lfx.Line(_3df[0],_3df[1]);
}else{
this.curve=_3df;
}
if(_3de!=null&&_3de>0){
this.duration=_3de;
}
if(_3e1){
this.repeatCount=_3e1;
}
if(rate){
this.rate=rate;
}
if(_3dd){
dojo.lang.forEach(["handler","beforeBegin","onBegin","onEnd","onPlay","onStop","onAnimate"],function(item){
if(_3dd[item]){
this.connect(item,_3dd[item]);
}
},this);
}
if(_3e0&&dojo.lang.isFunction(_3e0)){
this.easing=_3e0;
}
};
dojo.inherits(dojo.lfx.Animation,dojo.lfx.IAnimation);
dojo.lang.extend(dojo.lfx.Animation,{_startTime:null,_endTime:null,_timer:null,_percent:0,_startRepeatCount:0,play:function(_3e4,_3e5){
if(_3e5){
clearTimeout(this._timer);
this._active=false;
this._paused=false;
this._percent=0;
}else{
if(this._active&&!this._paused){
return this;
}
}
this.fire("handler",["beforeBegin"]);
this.fire("beforeBegin");
if(_3e4>0){
setTimeout(dojo.lang.hitch(this,function(){
this.play(null,_3e5);
}),_3e4);
return this;
}
this._startTime=new Date().valueOf();
if(this._paused){
this._startTime-=(this.duration*this._percent/100);
}
this._endTime=this._startTime+this.duration;
this._active=true;
this._paused=false;
var step=this._percent/100;
var _3e7=this.curve.getValue(step);
if(this._percent==0){
if(!this._startRepeatCount){
this._startRepeatCount=this.repeatCount;
}
this.fire("handler",["begin",_3e7]);
this.fire("onBegin",[_3e7]);
}
this.fire("handler",["play",_3e7]);
this.fire("onPlay",[_3e7]);
this._cycle();
return this;
},pause:function(){
clearTimeout(this._timer);
if(!this._active){
return this;
}
this._paused=true;
var _3e8=this.curve.getValue(this._percent/100);
this.fire("handler",["pause",_3e8]);
this.fire("onPause",[_3e8]);
return this;
},gotoPercent:function(pct,_3ea){
clearTimeout(this._timer);
this._active=true;
this._paused=true;
this._percent=pct;
if(_3ea){
this.play();
}
return this;
},stop:function(_3eb){
clearTimeout(this._timer);
var step=this._percent/100;
if(_3eb){
step=1;
}
var _3ed=this.curve.getValue(step);
this.fire("handler",["stop",_3ed]);
this.fire("onStop",[_3ed]);
this._active=false;
this._paused=false;
return this;
},status:function(){
if(this._active){
return this._paused?"paused":"playing";
}else{
return "stopped";
}
return this;
},_cycle:function(){
clearTimeout(this._timer);
if(this._active){
var curr=new Date().valueOf();
var step=(curr-this._startTime)/(this._endTime-this._startTime);
if(step>=1){
step=1;
this._percent=100;
}else{
this._percent=step*100;
}
if((this.easing)&&(dojo.lang.isFunction(this.easing))){
step=this.easing(step);
}
var _3f0=this.curve.getValue(step);
this.fire("handler",["animate",_3f0]);
this.fire("onAnimate",[_3f0]);
if(step<1){
this._timer=setTimeout(dojo.lang.hitch(this,"_cycle"),this.rate);
}else{
this._active=false;
this.fire("handler",["end"]);
this.fire("onEnd");
if(this.repeatCount>0){
this.repeatCount--;
this.play(null,true);
}else{
if(this.repeatCount==-1){
this.play(null,true);
}else{
if(this._startRepeatCount){
this.repeatCount=this._startRepeatCount;
this._startRepeatCount=0;
}
}
}
}
}
return this;
}});
dojo.lfx.Combine=function(_3f1){
dojo.lfx.IAnimation.call(this);
this._anims=[];
this._animsEnded=0;
var _3f2=arguments;
if(_3f2.length==1&&(dojo.lang.isArray(_3f2[0])||dojo.lang.isArrayLike(_3f2[0]))){
_3f2=_3f2[0];
}
dojo.lang.forEach(_3f2,function(anim){
this._anims.push(anim);
anim.connect("onEnd",dojo.lang.hitch(this,"_onAnimsEnded"));
},this);
};
dojo.inherits(dojo.lfx.Combine,dojo.lfx.IAnimation);
dojo.lang.extend(dojo.lfx.Combine,{_animsEnded:0,play:function(_3f4,_3f5){
if(!this._anims.length){
return this;
}
this.fire("beforeBegin");
if(_3f4>0){
setTimeout(dojo.lang.hitch(this,function(){
this.play(null,_3f5);
}),_3f4);
return this;
}
if(_3f5||this._anims[0].percent==0){
this.fire("onBegin");
}
this.fire("onPlay");
this._animsCall("play",null,_3f5);
return this;
},pause:function(){
this.fire("onPause");
this._animsCall("pause");
return this;
},stop:function(_3f6){
this.fire("onStop");
this._animsCall("stop",_3f6);
return this;
},_onAnimsEnded:function(){
this._animsEnded++;
if(this._animsEnded>=this._anims.length){
this.fire("onEnd");
}
return this;
},_animsCall:function(_3f7){
var args=[];
if(arguments.length>1){
for(var i=1;i<arguments.length;i++){
args.push(arguments[i]);
}
}
var _3fa=this;
dojo.lang.forEach(this._anims,function(anim){
anim[_3f7](args);
},_3fa);
return this;
}});
dojo.lfx.Chain=function(_3fc){
dojo.lfx.IAnimation.call(this);
this._anims=[];
this._currAnim=-1;
var _3fd=arguments;
if(_3fd.length==1&&(dojo.lang.isArray(_3fd[0])||dojo.lang.isArrayLike(_3fd[0]))){
_3fd=_3fd[0];
}
var _3fe=this;
dojo.lang.forEach(_3fd,function(anim,i,_401){
this._anims.push(anim);
if(i<_401.length-1){
anim.connect("onEnd",dojo.lang.hitch(this,"_playNext"));
}else{
anim.connect("onEnd",dojo.lang.hitch(this,function(){
this.fire("onEnd");
}));
}
},this);
};
dojo.inherits(dojo.lfx.Chain,dojo.lfx.IAnimation);
dojo.lang.extend(dojo.lfx.Chain,{_currAnim:-1,play:function(_402,_403){
if(!this._anims.length){
return this;
}
if(_403||!this._anims[this._currAnim]){
this._currAnim=0;
}
var _404=this._anims[this._currAnim];
this.fire("beforeBegin");
if(_402>0){
setTimeout(dojo.lang.hitch(this,function(){
this.play(null,_403);
}),_402);
return this;
}
if(_404){
if(this._currAnim==0){
this.fire("handler",["begin",this._currAnim]);
this.fire("onBegin",[this._currAnim]);
}
this.fire("onPlay",[this._currAnim]);
_404.play(null,_403);
}
return this;
},pause:function(){
if(this._anims[this._currAnim]){
this._anims[this._currAnim].pause();
this.fire("onPause",[this._currAnim]);
}
return this;
},playPause:function(){
if(this._anims.length==0){
return this;
}
if(this._currAnim==-1){
this._currAnim=0;
}
var _405=this._anims[this._currAnim];
if(_405){
if(!_405._active||_405._paused){
this.play();
}else{
this.pause();
}
}
return this;
},stop:function(){
var _406=this._anims[this._currAnim];
if(_406){
_406.stop();
this.fire("onStop",[this._currAnim]);
}
return _406;
},_playNext:function(){
if(this._currAnim==-1||this._anims.length==0){
return this;
}
this._currAnim++;
if(this._anims[this._currAnim]){
this._anims[this._currAnim].play(null,true);
}
return this;
}});
dojo.lfx.combine=function(_407){
var _408=arguments;
if(dojo.lang.isArray(arguments[0])){
_408=arguments[0];
}
if(_408.length==1){
return _408[0];
}
return new dojo.lfx.Combine(_408);
};
dojo.lfx.chain=function(_409){
var _40a=arguments;
if(dojo.lang.isArray(arguments[0])){
_40a=arguments[0];
}
if(_40a.length==1){
return _40a[0];
}
return new dojo.lfx.Chain(_40a);
};
dojo.provide("dojo.html.common");
dojo.lang.mixin(dojo.html,dojo.dom);
dojo.html.body=function(){
dojo.deprecated("dojo.html.body() moved to dojo.body()","0.5");
return dojo.body();
};
dojo.html.getEventTarget=function(evt){
if(!evt){
evt=dojo.global().event||{};
}
var t=(evt.srcElement?evt.srcElement:(evt.target?evt.target:null));
while((t)&&(t.nodeType!=1)){
t=t.parentNode;
}
return t;
};
dojo.html.getViewport=function(){
var _40d=dojo.global();
var _40e=dojo.doc();
var w=0;
var h=0;
if(dojo.render.html.mozilla){
w=_40e.documentElement.clientWidth;
h=_40d.innerHeight;
}else{
if(!dojo.render.html.opera&&_40d.innerWidth){
w=_40d.innerWidth;
h=_40d.innerHeight;
}else{
if(!dojo.render.html.opera&&dojo.exists(_40e,"documentElement.clientWidth")){
var w2=_40e.documentElement.clientWidth;
if(!w||w2&&w2<w){
w=w2;
}
h=_40e.documentElement.clientHeight;
}else{
if(dojo.body().clientWidth){
w=dojo.body().clientWidth;
h=dojo.body().clientHeight;
}
}
}
}
return {width:w,height:h};
};
dojo.html.getScroll=function(){
var _412=dojo.global();
var _413=dojo.doc();
var top=_412.pageYOffset||_413.documentElement.scrollTop||dojo.body().scrollTop||0;
var left=_412.pageXOffset||_413.documentElement.scrollLeft||dojo.body().scrollLeft||0;
return {top:top,left:left,offset:{x:left,y:top}};
};
dojo.html.getParentByType=function(node,type){
var _418=dojo.doc();
var _419=dojo.byId(node);
type=type.toLowerCase();
while((_419)&&(_419.nodeName.toLowerCase()!=type)){
if(_419==(_418["body"]||_418["documentElement"])){
return null;
}
_419=_419.parentNode;
}
return _419;
};
dojo.html.getAttribute=function(node,attr){
node=dojo.byId(node);
if((!node)||(!node.getAttribute)){
return null;
}
var ta=typeof attr=="string"?attr:new String(attr);
var v=node.getAttribute(ta.toUpperCase());
if((v)&&(typeof v=="string")&&(v!="")){
return v;
}
if(v&&v.value){
return v.value;
}
if((node.getAttributeNode)&&(node.getAttributeNode(ta))){
return (node.getAttributeNode(ta)).value;
}else{
if(node.getAttribute(ta)){
return node.getAttribute(ta);
}else{
if(node.getAttribute(ta.toLowerCase())){
return node.getAttribute(ta.toLowerCase());
}
}
}
return null;
};
dojo.html.hasAttribute=function(node,attr){
return dojo.html.getAttribute(dojo.byId(node),attr)?true:false;
};
dojo.html.getCursorPosition=function(e){
e=e||dojo.global().event;
var _421={x:0,y:0};
if(e.pageX||e.pageY){
_421.x=e.pageX;
_421.y=e.pageY;
}else{
var de=dojo.doc().documentElement;
var db=dojo.body();
_421.x=e.clientX+((de||db)["scrollLeft"])-((de||db)["clientLeft"]);
_421.y=e.clientY+((de||db)["scrollTop"])-((de||db)["clientTop"]);
}
return _421;
};
dojo.html.isTag=function(node){
node=dojo.byId(node);
if(node&&node.tagName){
for(var i=1;i<arguments.length;i++){
if(node.tagName.toLowerCase()==String(arguments[i]).toLowerCase()){
return String(arguments[i]).toLowerCase();
}
}
}
return "";
};
if(dojo.render.html.ie&&!dojo.render.html.ie70){
if(window.location.href.substr(0,6).toLowerCase()!="https:"){
(function(){
var _426=dojo.doc().createElement("script");
_426.src="javascript:'dojo.html.createExternalElement=function(doc, tag){ return doc.createElement(tag); }'";
dojo.doc().getElementsByTagName("head")[0].appendChild(_426);
})();
}
}else{
dojo.html.createExternalElement=function(doc,tag){
return doc.createElement(tag);
};
}
dojo.html._callDeprecated=function(_429,_42a,args,_42c,_42d){
dojo.deprecated("dojo.html."+_429,"replaced by dojo.html."+_42a+"("+(_42c?"node, {"+_42c+": "+_42c+"}":"")+")"+(_42d?"."+_42d:""),"0.5");
var _42e=[];
if(_42c){
var _42f={};
_42f[_42c]=args[1];
_42e.push(args[0]);
_42e.push(_42f);
}else{
_42e=args;
}
var ret=dojo.html[_42a].apply(dojo.html,args);
if(_42d){
return ret[_42d];
}else{
return ret;
}
};
dojo.html.getViewportWidth=function(){
return dojo.html._callDeprecated("getViewportWidth","getViewport",arguments,null,"width");
};
dojo.html.getViewportHeight=function(){
return dojo.html._callDeprecated("getViewportHeight","getViewport",arguments,null,"height");
};
dojo.html.getViewportSize=function(){
return dojo.html._callDeprecated("getViewportSize","getViewport",arguments);
};
dojo.html.getScrollTop=function(){
return dojo.html._callDeprecated("getScrollTop","getScroll",arguments,null,"top");
};
dojo.html.getScrollLeft=function(){
return dojo.html._callDeprecated("getScrollLeft","getScroll",arguments,null,"left");
};
dojo.html.getScrollOffset=function(){
return dojo.html._callDeprecated("getScrollOffset","getScroll",arguments,null,"offset");
};
dojo.provide("dojo.uri.Uri");
dojo.uri=new function(){
this.dojoUri=function(uri){
return new dojo.uri.Uri(dojo.hostenv.getBaseScriptUri(),uri);
};
this.moduleUri=function(_432,uri){
var loc=dojo.hostenv.getModuleSymbols(_432).join("/");
if(!loc){
return null;
}
if(loc.lastIndexOf("/")!=loc.length-1){
loc+="/";
}
var _435=loc.indexOf(":");
var _436=loc.indexOf("/");
if(loc.charAt(0)!="/"&&(_435==-1||_435>_436)){
loc=dojo.hostenv.getBaseScriptUri()+loc;
}
return new dojo.uri.Uri(loc,uri);
};
this.Uri=function(){
var uri=arguments[0];
for(var i=1;i<arguments.length;i++){
if(!arguments[i]){
continue;
}
var _439=new dojo.uri.Uri(arguments[i].toString());
var _43a=new dojo.uri.Uri(uri.toString());
if((_439.path=="")&&(_439.scheme==null)&&(_439.authority==null)&&(_439.query==null)){
if(_439.fragment!=null){
_43a.fragment=_439.fragment;
}
_439=_43a;
}else{
if(_439.scheme==null){
_439.scheme=_43a.scheme;
if(_439.authority==null){
_439.authority=_43a.authority;
if(_439.path.charAt(0)!="/"){
var path=_43a.path.substring(0,_43a.path.lastIndexOf("/")+1)+_439.path;
var segs=path.split("/");
for(var j=0;j<segs.length;j++){
if(segs[j]=="."){
if(j==segs.length-1){
segs[j]="";
}else{
segs.splice(j,1);
j--;
}
}else{
if(j>0&&!(j==1&&segs[0]=="")&&segs[j]==".."&&segs[j-1]!=".."){
if(j==segs.length-1){
segs.splice(j,1);
segs[j-1]="";
}else{
segs.splice(j-1,2);
j-=2;
}
}
}
}
_439.path=segs.join("/");
}
}
}
}
uri="";
if(_439.scheme!=null){
uri+=_439.scheme+":";
}
if(_439.authority!=null){
uri+="//"+_439.authority;
}
uri+=_439.path;
if(_439.query!=null){
uri+="?"+_439.query;
}
if(_439.fragment!=null){
uri+="#"+_439.fragment;
}
}
this.uri=uri.toString();
var _43e="^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$";
var r=this.uri.match(new RegExp(_43e));
this.scheme=r[2]||(r[1]?"":null);
this.authority=r[4]||(r[3]?"":null);
this.path=r[5];
this.query=r[7]||(r[6]?"":null);
this.fragment=r[9]||(r[8]?"":null);
if(this.authority!=null){
_43e="^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$";
r=this.authority.match(new RegExp(_43e));
this.user=r[3]||null;
this.password=r[4]||null;
this.host=r[5];
this.port=r[7]||null;
}
this.toString=function(){
return this.uri;
};
};
};
dojo.provide("dojo.html.style");
dojo.html.getClass=function(node){
node=dojo.byId(node);
if(!node){
return "";
}
var cs="";
if(node.className){
cs=node.className;
}else{
if(dojo.html.hasAttribute(node,"class")){
cs=dojo.html.getAttribute(node,"class");
}
}
return cs.replace(/^\s+|\s+$/g,"");
};
dojo.html.getClasses=function(node){
var c=dojo.html.getClass(node);
return (c=="")?[]:c.split(/\s+/g);
};
dojo.html.hasClass=function(node,_445){
return (new RegExp("(^|\\s+)"+_445+"(\\s+|$)")).test(dojo.html.getClass(node));
};
dojo.html.prependClass=function(node,_447){
_447+=" "+dojo.html.getClass(node);
return dojo.html.setClass(node,_447);
};
dojo.html.addClass=function(node,_449){
if(dojo.html.hasClass(node,_449)){
return false;
}
_449=(dojo.html.getClass(node)+" "+_449).replace(/^\s+|\s+$/g,"");
return dojo.html.setClass(node,_449);
};
dojo.html.setClass=function(node,_44b){
node=dojo.byId(node);
var cs=new String(_44b);
try{
if(typeof node.className=="string"){
node.className=cs;
}else{
if(node.setAttribute){
node.setAttribute("class",_44b);
node.className=cs;
}else{
return false;
}
}
}
catch(e){
dojo.debug("dojo.html.setClass() failed",e);
}
return true;
};
dojo.html.removeClass=function(node,_44e,_44f){
try{
if(!_44f){
var _450=dojo.html.getClass(node).replace(new RegExp("(^|\\s+)"+_44e+"(\\s+|$)"),"$1$2");
}else{
var _450=dojo.html.getClass(node).replace(_44e,"");
}
dojo.html.setClass(node,_450);
}
catch(e){
dojo.debug("dojo.html.removeClass() failed",e);
}
return true;
};
dojo.html.replaceClass=function(node,_452,_453){
dojo.html.removeClass(node,_453);
dojo.html.addClass(node,_452);
};
dojo.html.classMatchType={ContainsAll:0,ContainsAny:1,IsOnly:2};
dojo.html.getElementsByClass=function(_454,_455,_456,_457,_458){
_458=false;
var _459=dojo.doc();
_455=dojo.byId(_455)||_459;
var _45a=_454.split(/\s+/g);
var _45b=[];
if(_457!=1&&_457!=2){
_457=0;
}
var _45c=new RegExp("(\\s|^)(("+_45a.join(")|(")+"))(\\s|$)");
var _45d=_45a.join(" ").length;
var _45e=[];
if(!_458&&_459.evaluate){
var _45f=".//"+(_456||"*")+"[contains(";
if(_457!=dojo.html.classMatchType.ContainsAny){
_45f+="concat(' ',@class,' '), ' "+_45a.join(" ') and contains(concat(' ',@class,' '), ' ")+" ')";
if(_457==2){
_45f+=" and string-length(@class)="+_45d+"]";
}else{
_45f+="]";
}
}else{
_45f+="concat(' ',@class,' '), ' "+_45a.join(" ') or contains(concat(' ',@class,' '), ' ")+" ')]";
}
var _460=_459.evaluate(_45f,_455,null,XPathResult.ANY_TYPE,null);
var _461=_460.iterateNext();
while(_461){
try{
_45e.push(_461);
_461=_460.iterateNext();
}
catch(e){
break;
}
}
return _45e;
}else{
if(!_456){
_456="*";
}
_45e=_455.getElementsByTagName(_456);
var node,i=0;
outer:
while(node=_45e[i++]){
var _464=dojo.html.getClasses(node);
if(_464.length==0){
continue outer;
}
var _465=0;
for(var j=0;j<_464.length;j++){
if(_45c.test(_464[j])){
if(_457==dojo.html.classMatchType.ContainsAny){
_45b.push(node);
continue outer;
}else{
_465++;
}
}else{
if(_457==dojo.html.classMatchType.IsOnly){
continue outer;
}
}
}
if(_465==_45a.length){
if((_457==dojo.html.classMatchType.IsOnly)&&(_465==_464.length)){
_45b.push(node);
}else{
if(_457==dojo.html.classMatchType.ContainsAll){
_45b.push(node);
}
}
}
}
return _45b;
}
};
dojo.html.getElementsByClassName=dojo.html.getElementsByClass;
dojo.html.toCamelCase=function(_467){
var arr=_467.split("-"),cc=arr[0];
for(var i=1;i<arr.length;i++){
cc+=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
}
return cc;
};
dojo.html.toSelectorCase=function(_46b){
return _46b.replace(/([A-Z])/g,"-$1").toLowerCase();
};
if(dojo.render.html.ie){
dojo.html.getComputedStyle=function(node,_46d,_46e){
node=dojo.byId(node);
if(!node||!node.currentStyle){
return _46e;
}
return node.currentStyle[dojo.html.toCamelCase(_46d)];
};
dojo.html.getComputedStyles=function(node){
return node.currentStyle;
};
}else{
dojo.html.getComputedStyle=function(node,_471,_472){
node=dojo.byId(node);
if(!node||!node.style){
return _472;
}
var s=document.defaultView.getComputedStyle(node,null);
return (s&&s[dojo.html.toCamelCase(_471)])||"";
};
dojo.html.getComputedStyles=function(node){
return document.defaultView.getComputedStyle(node,null);
};
}
dojo.html.getStyleProperty=function(node,_476){
node=dojo.byId(node);
return (node&&node.style?node.style[dojo.html.toCamelCase(_476)]:undefined);
};
dojo.html.getStyle=function(node,_478){
var _479=dojo.html.getStyleProperty(node,_478);
return (_479?_479:dojo.html.getComputedStyle(node,_478));
};
dojo.html.setStyle=function(node,_47b,_47c){
node=dojo.byId(node);
if(node&&node.style){
var _47d=dojo.html.toCamelCase(_47b);
node.style[_47d]=_47c;
}
};
dojo.html.setStyleText=function(_47e,text){
try{
_47e.style.cssText=text;
}
catch(e){
_47e.setAttribute("style",text);
}
};
dojo.html.copyStyle=function(_480,_481){
if(!_481.style.cssText){
_480.setAttribute("style",_481.getAttribute("style"));
}else{
_480.style.cssText=_481.style.cssText;
}
dojo.html.addClass(_480,dojo.html.getClass(_481));
};
dojo.html.getUnitValue=function(node,_483,_484){
var s=dojo.html.getComputedStyle(node,_483);
if((!s)||((s=="auto")&&(_484))){
return {value:0,units:"px"};
}
var _486=s.match(/(\-?[\d.]+)([a-z%]*)/i);
if(!_486){
return dojo.html.getUnitValue.bad;
}
return {value:Number(_486[1]),units:_486[2].toLowerCase()};
};
dojo.html.getUnitValue.bad={value:NaN,units:""};
if(dojo.render.html.ie){
dojo.html.toPixelValue=function(_487,_488){
if(!_488){
return 0;
}
if(_488.slice(-2)=="px"){
return parseFloat(_488);
}
var _489=0;
with(_487){
var _48a=style.left;
var _48b=runtimeStyle.left;
runtimeStyle.left=currentStyle.left;
try{
style.left=_488||0;
_489=style.pixelLeft;
style.left=_48a;
runtimeStyle.left=_48b;
}
catch(e){
}
}
return _489;
};
}else{
dojo.html.toPixelValue=function(_48c,_48d){
return (_48d&&(_48d.slice(-2)=="px")?parseFloat(_48d):0);
};
}
dojo.html.getPixelValue=function(node,_48f,_490){
return dojo.html.toPixelValue(node,dojo.html.getComputedStyle(node,_48f));
};
dojo.html.setPositivePixelValue=function(node,_492,_493){
if(isNaN(_493)){
return false;
}
node.style[_492]=Math.max(0,_493)+"px";
return true;
};
dojo.html.styleSheet=null;
dojo.html.insertCssRule=function(_494,_495,_496){
if(!dojo.html.styleSheet){
if(document.createStyleSheet){
dojo.html.styleSheet=document.createStyleSheet();
}else{
if(document.styleSheets[0]){
dojo.html.styleSheet=document.styleSheets[0];
}else{
return null;
}
}
}
if(arguments.length<3){
if(dojo.html.styleSheet.cssRules){
_496=dojo.html.styleSheet.cssRules.length;
}else{
if(dojo.html.styleSheet.rules){
_496=dojo.html.styleSheet.rules.length;
}else{
return null;
}
}
}
if(dojo.html.styleSheet.insertRule){
var rule=_494+" { "+_495+" }";
return dojo.html.styleSheet.insertRule(rule,_496);
}else{
if(dojo.html.styleSheet.addRule){
return dojo.html.styleSheet.addRule(_494,_495,_496);
}else{
return null;
}
}
};
dojo.html.removeCssRule=function(_498){
if(!dojo.html.styleSheet){
dojo.debug("no stylesheet defined for removing rules");
return false;
}
if(dojo.render.html.ie){
if(!_498){
_498=dojo.html.styleSheet.rules.length;
dojo.html.styleSheet.removeRule(_498);
}
}else{
if(document.styleSheets[0]){
if(!_498){
_498=dojo.html.styleSheet.cssRules.length;
}
dojo.html.styleSheet.deleteRule(_498);
}
}
return true;
};
dojo.html._insertedCssFiles=[];
dojo.html.insertCssFile=function(URI,doc,_49b,_49c){
if(!URI){
return;
}
if(!doc){
doc=document;
}
var _49d=dojo.hostenv.getText(URI,false,_49c);
if(_49d===null){
return;
}
_49d=dojo.html.fixPathsInCssText(_49d,URI);
if(_49b){
var idx=-1,node,ent=dojo.html._insertedCssFiles;
for(var i=0;i<ent.length;i++){
if((ent[i].doc==doc)&&(ent[i].cssText==_49d)){
idx=i;
node=ent[i].nodeRef;
break;
}
}
if(node){
var _4a2=doc.getElementsByTagName("style");
for(var i=0;i<_4a2.length;i++){
if(_4a2[i]==node){
return;
}
}
dojo.html._insertedCssFiles.shift(idx,1);
}
}
var _4a3=dojo.html.insertCssText(_49d,doc);
dojo.html._insertedCssFiles.push({"doc":doc,"cssText":_49d,"nodeRef":_4a3});
if(_4a3&&djConfig.isDebug){
_4a3.setAttribute("dbgHref",URI);
}
return _4a3;
};
dojo.html.insertCssText=function(_4a4,doc,URI){
if(!_4a4){
return;
}
if(!doc){
doc=document;
}
if(URI){
_4a4=dojo.html.fixPathsInCssText(_4a4,URI);
}
var _4a7=doc.createElement("style");
_4a7.setAttribute("type","text/css");
var head=doc.getElementsByTagName("head")[0];
if(!head){
dojo.debug("No head tag in document, aborting styles");
return;
}else{
head.appendChild(_4a7);
}
if(_4a7.styleSheet){
var _4a9=function(){
try{
_4a7.styleSheet.cssText=_4a4;
}
catch(e){
dojo.debug(e);
}
};
if(_4a7.styleSheet.disabled){
setTimeout(_4a9,10);
}else{
_4a9();
}
}else{
var _4aa=doc.createTextNode(_4a4);
_4a7.appendChild(_4aa);
}
return _4a7;
};
dojo.html.fixPathsInCssText=function(_4ab,URI){
if(!_4ab||!URI){
return;
}
var _4ad,str="",url="",_4b0="[\\t\\s\\w\\(\\)\\/\\.\\\\'\"-:#=&?~]+";
var _4b1=new RegExp("url\\(\\s*("+_4b0+")\\s*\\)");
var _4b2=/(file|https?|ftps?):\/\//;
regexTrim=new RegExp("^[\\s]*(['\"]?)("+_4b0+")\\1[\\s]*?$");
if(dojo.render.html.ie55||dojo.render.html.ie60){
var _4b3=new RegExp("AlphaImageLoader\\((.*)src=['\"]("+_4b0+")['\"]");
while(_4ad=_4b3.exec(_4ab)){
url=_4ad[2].replace(regexTrim,"$2");
if(!_4b2.exec(url)){
url=(new dojo.uri.Uri(URI,url).toString());
}
str+=_4ab.substring(0,_4ad.index)+"AlphaImageLoader("+_4ad[1]+"src='"+url+"'";
_4ab=_4ab.substr(_4ad.index+_4ad[0].length);
}
_4ab=str+_4ab;
str="";
}
while(_4ad=_4b1.exec(_4ab)){
url=_4ad[1].replace(regexTrim,"$2");
if(!_4b2.exec(url)){
url=(new dojo.uri.Uri(URI,url).toString());
}
str+=_4ab.substring(0,_4ad.index)+"url("+url+")";
_4ab=_4ab.substr(_4ad.index+_4ad[0].length);
}
return str+_4ab;
};
dojo.html.setActiveStyleSheet=function(_4b4){
var i=0,a,els=dojo.doc().getElementsByTagName("link");
while(a=els[i++]){
if(a.getAttribute("rel").indexOf("style")!=-1&&a.getAttribute("title")){
a.disabled=true;
if(a.getAttribute("title")==_4b4){
a.disabled=false;
}
}
}
};
dojo.html.getActiveStyleSheet=function(){
var i=0,a,els=dojo.doc().getElementsByTagName("link");
while(a=els[i++]){
if(a.getAttribute("rel").indexOf("style")!=-1&&a.getAttribute("title")&&!a.disabled){
return a.getAttribute("title");
}
}
return null;
};
dojo.html.getPreferredStyleSheet=function(){
var i=0,a,els=dojo.doc().getElementsByTagName("link");
while(a=els[i++]){
if(a.getAttribute("rel").indexOf("style")!=-1&&a.getAttribute("rel").indexOf("alt")==-1&&a.getAttribute("title")){
return a.getAttribute("title");
}
}
return null;
};
dojo.html.applyBrowserClass=function(node){
var drh=dojo.render.html;
var _4c0={dj_ie:drh.ie,dj_ie55:drh.ie55,dj_ie6:drh.ie60,dj_ie7:drh.ie70,dj_iequirks:drh.ie&&drh.quirks,dj_opera:drh.opera,dj_opera8:drh.opera&&(Math.floor(dojo.render.version)==8),dj_opera9:drh.opera&&(Math.floor(dojo.render.version)==9),dj_khtml:drh.khtml,dj_safari:drh.safari,dj_gecko:drh.mozilla};
for(var p in _4c0){
if(_4c0[p]){
dojo.html.addClass(node,p);
}
}
};
dojo.provide("dojo.html.display");
dojo.html._toggle=function(node,_4c3,_4c4){
node=dojo.byId(node);
_4c4(node,!_4c3(node));
return _4c3(node);
};
dojo.html.show=function(node){
node=dojo.byId(node);
if(dojo.html.getStyleProperty(node,"display")=="none"){
dojo.html.setStyle(node,"display",(node.dojoDisplayCache||""));
node.dojoDisplayCache=undefined;
}
};
dojo.html.hide=function(node){
node=dojo.byId(node);
if(typeof node["dojoDisplayCache"]=="undefined"){
var d=dojo.html.getStyleProperty(node,"display");
if(d!="none"){
node.dojoDisplayCache=d;
}
}
dojo.html.setStyle(node,"display","none");
};
dojo.html.setShowing=function(node,_4c9){
dojo.html[(_4c9?"show":"hide")](node);
};
dojo.html.isShowing=function(node){
return (dojo.html.getStyleProperty(node,"display")!="none");
};
dojo.html.toggleShowing=function(node){
return dojo.html._toggle(node,dojo.html.isShowing,dojo.html.setShowing);
};
dojo.html.displayMap={tr:"",td:"",th:"",img:"inline",span:"inline",input:"inline",button:"inline"};
dojo.html.suggestDisplayByTagName=function(node){
node=dojo.byId(node);
if(node&&node.tagName){
var tag=node.tagName.toLowerCase();
return (tag in dojo.html.displayMap?dojo.html.displayMap[tag]:"block");
}
};
dojo.html.setDisplay=function(node,_4cf){
dojo.html.setStyle(node,"display",((_4cf instanceof String||typeof _4cf=="string")?_4cf:(_4cf?dojo.html.suggestDisplayByTagName(node):"none")));
};
dojo.html.isDisplayed=function(node){
return (dojo.html.getComputedStyle(node,"display")!="none");
};
dojo.html.toggleDisplay=function(node){
return dojo.html._toggle(node,dojo.html.isDisplayed,dojo.html.setDisplay);
};
dojo.html.setVisibility=function(node,_4d3){
dojo.html.setStyle(node,"visibility",((_4d3 instanceof String||typeof _4d3=="string")?_4d3:(_4d3?"visible":"hidden")));
};
dojo.html.isVisible=function(node){
return (dojo.html.getComputedStyle(node,"visibility")!="hidden");
};
dojo.html.toggleVisibility=function(node){
return dojo.html._toggle(node,dojo.html.isVisible,dojo.html.setVisibility);
};
dojo.html.setOpacity=function(node,_4d7,_4d8){
node=dojo.byId(node);
var h=dojo.render.html;
if(!_4d8){
if(_4d7>=1){
if(h.ie){
dojo.html.clearOpacity(node);
return;
}else{
_4d7=0.999999;
}
}else{
if(_4d7<0){
_4d7=0;
}
}
}
if(h.ie){
if(node.nodeName.toLowerCase()=="tr"){
var tds=node.getElementsByTagName("td");
for(var x=0;x<tds.length;x++){
tds[x].style.filter="Alpha(Opacity="+_4d7*100+")";
}
}
node.style.filter="Alpha(Opacity="+_4d7*100+")";
}else{
if(h.moz){
node.style.opacity=_4d7;
node.style.MozOpacity=_4d7;
}else{
if(h.safari){
node.style.opacity=_4d7;
node.style.KhtmlOpacity=_4d7;
}else{
node.style.opacity=_4d7;
}
}
}
};
dojo.html.clearOpacity=function(node){
node=dojo.byId(node);
var ns=node.style;
var h=dojo.render.html;
if(h.ie){
try{
if(node.filters&&node.filters.alpha){
ns.filter="";
}
}
catch(e){
}
}else{
if(h.moz){
ns.opacity=1;
ns.MozOpacity=1;
}else{
if(h.safari){
ns.opacity=1;
ns.KhtmlOpacity=1;
}else{
ns.opacity=1;
}
}
}
};
dojo.html.getOpacity=function(node){
node=dojo.byId(node);
var h=dojo.render.html;
if(h.ie){
var opac=(node.filters&&node.filters.alpha&&typeof node.filters.alpha.opacity=="number"?node.filters.alpha.opacity:100)/100;
}else{
var opac=node.style.opacity||node.style.MozOpacity||node.style.KhtmlOpacity||1;
}
return opac>=0.999999?1:Number(opac);
};
dojo.provide("dojo.html.color");
dojo.html.getBackgroundColor=function(node){
node=dojo.byId(node);
var _4e3;
do{
_4e3=dojo.html.getStyle(node,"background-color");
if(_4e3.toLowerCase()=="rgba(0, 0, 0, 0)"){
_4e3="transparent";
}
if(node==document.getElementsByTagName("body")[0]){
node=null;
break;
}
node=node.parentNode;
}while(node&&dojo.lang.inArray(["transparent",""],_4e3));
if(_4e3=="transparent"){
_4e3=[255,255,255,0];
}else{
_4e3=dojo.gfx.color.extractRGB(_4e3);
}
return _4e3;
};
dojo.provide("dojo.html.layout");
dojo.html.sumAncestorProperties=function(node,prop){
node=dojo.byId(node);
if(!node){
return 0;
}
var _4e6=0;
while(node){
if(dojo.html.getComputedStyle(node,"position")=="fixed"){
return 0;
}
var val=node[prop];
if(val){
_4e6+=val-0;
if(node==dojo.body()){
break;
}
}
node=node.parentNode;
}
return _4e6;
};
dojo.html.setStyleAttributes=function(node,_4e9){
node=dojo.byId(node);
var _4ea=_4e9.replace(/(;)?\s*$/,"").split(";");
for(var i=0;i<_4ea.length;i++){
var _4ec=_4ea[i].split(":");
var name=_4ec[0].replace(/\s*$/,"").replace(/^\s*/,"").toLowerCase();
var _4ee=_4ec[1].replace(/\s*$/,"").replace(/^\s*/,"");
switch(name){
case "opacity":
dojo.html.setOpacity(node,_4ee);
break;
case "content-height":
dojo.html.setContentBox(node,{height:_4ee});
break;
case "content-width":
dojo.html.setContentBox(node,{width:_4ee});
break;
case "outer-height":
dojo.html.setMarginBox(node,{height:_4ee});
break;
case "outer-width":
dojo.html.setMarginBox(node,{width:_4ee});
break;
default:
node.style[dojo.html.toCamelCase(name)]=_4ee;
}
}
};
dojo.html.boxSizing={MARGIN_BOX:"margin-box",BORDER_BOX:"border-box",PADDING_BOX:"padding-box",CONTENT_BOX:"content-box"};
dojo.html.getAbsolutePosition=dojo.html.abs=function(node,_4f0,_4f1){
node=dojo.byId(node,node.ownerDocument);
var ret={x:0,y:0};
var bs=dojo.html.boxSizing;
if(!_4f1){
_4f1=bs.CONTENT_BOX;
}
var _4f4=2;
var _4f5;
switch(_4f1){
case bs.MARGIN_BOX:
_4f5=3;
break;
case bs.BORDER_BOX:
_4f5=2;
break;
case bs.PADDING_BOX:
default:
_4f5=1;
break;
case bs.CONTENT_BOX:
_4f5=0;
break;
}
var h=dojo.render.html;
var db=document["body"]||document["documentElement"];
if(h.ie){
with(node.getBoundingClientRect()){
ret.x=left-2;
ret.y=top-2;
}
}else{
if(document.getBoxObjectFor){
_4f4=1;
try{
var bo=document.getBoxObjectFor(node);
ret.x=bo.x-dojo.html.sumAncestorProperties(node,"scrollLeft");
ret.y=bo.y-dojo.html.sumAncestorProperties(node,"scrollTop");
}
catch(e){
}
}else{
if(node["offsetParent"]){
var _4f9;
if((h.safari)&&(node.style.getPropertyValue("position")=="absolute")&&(node.parentNode==db)){
_4f9=db;
}else{
_4f9=db.parentNode;
}
if(node.parentNode!=db){
var nd=node;
if(dojo.render.html.opera){
nd=db;
}
ret.x-=dojo.html.sumAncestorProperties(nd,"scrollLeft");
ret.y-=dojo.html.sumAncestorProperties(nd,"scrollTop");
}
var _4fb=node;
do{
var n=_4fb["offsetLeft"];
if(!h.opera||n>0){
ret.x+=isNaN(n)?0:n;
}
var m=_4fb["offsetTop"];
ret.y+=isNaN(m)?0:m;
_4fb=_4fb.offsetParent;
}while((_4fb!=_4f9)&&(_4fb!=null));
}else{
if(node["x"]&&node["y"]){
ret.x+=isNaN(node.x)?0:node.x;
ret.y+=isNaN(node.y)?0:node.y;
}
}
}
}
if(_4f0){
var _4fe=dojo.html.getScroll();
ret.y+=_4fe.top;
ret.x+=_4fe.left;
}
var _4ff=[dojo.html.getPaddingExtent,dojo.html.getBorderExtent,dojo.html.getMarginExtent];
if(_4f4>_4f5){
for(var i=_4f5;i<_4f4;++i){
ret.y+=_4ff[i](node,"top");
ret.x+=_4ff[i](node,"left");
}
}else{
if(_4f4<_4f5){
for(var i=_4f5;i>_4f4;--i){
ret.y-=_4ff[i-1](node,"top");
ret.x-=_4ff[i-1](node,"left");
}
}
}
ret.top=ret.y;
ret.left=ret.x;
return ret;
};
dojo.html.isPositionAbsolute=function(node){
return (dojo.html.getComputedStyle(node,"position")=="absolute");
};
dojo.html._sumPixelValues=function(node,_503,_504){
var _505=0;
for(var x=0;x<_503.length;x++){
_505+=dojo.html.getPixelValue(node,_503[x],_504);
}
return _505;
};
dojo.html.getMargin=function(node){
return {width:dojo.html._sumPixelValues(node,["margin-left","margin-right"],(dojo.html.getComputedStyle(node,"position")=="absolute")),height:dojo.html._sumPixelValues(node,["margin-top","margin-bottom"],(dojo.html.getComputedStyle(node,"position")=="absolute"))};
};
dojo.html.getBorder=function(node){
return {width:dojo.html.getBorderExtent(node,"left")+dojo.html.getBorderExtent(node,"right"),height:dojo.html.getBorderExtent(node,"top")+dojo.html.getBorderExtent(node,"bottom")};
};
dojo.html.getBorderExtent=function(node,side){
return (dojo.html.getStyle(node,"border-"+side+"-style")=="none"?0:dojo.html.getPixelValue(node,"border-"+side+"-width"));
};
dojo.html.getMarginExtent=function(node,side){
return dojo.html._sumPixelValues(node,["margin-"+side],dojo.html.isPositionAbsolute(node));
};
dojo.html.getPaddingExtent=function(node,side){
return dojo.html._sumPixelValues(node,["padding-"+side],true);
};
dojo.html.getPadding=function(node){
return {width:dojo.html._sumPixelValues(node,["padding-left","padding-right"],true),height:dojo.html._sumPixelValues(node,["padding-top","padding-bottom"],true)};
};
dojo.html.getPadBorder=function(node){
var pad=dojo.html.getPadding(node);
var _512=dojo.html.getBorder(node);
return {width:pad.width+_512.width,height:pad.height+_512.height};
};
dojo.html.getBoxSizing=function(node){
var h=dojo.render.html;
var bs=dojo.html.boxSizing;
if(((h.ie)||(h.opera))&&node.nodeName.toLowerCase()!="img"){
var cm=document["compatMode"];
if((cm=="BackCompat")||(cm=="QuirksMode")){
return bs.BORDER_BOX;
}else{
return bs.CONTENT_BOX;
}
}else{
if(arguments.length==0){
node=document.documentElement;
}
var _517;
if(!h.ie){
_517=dojo.html.getStyle(node,"-moz-box-sizing");
if(!_517){
_517=dojo.html.getStyle(node,"box-sizing");
}
}
return (_517?_517:bs.CONTENT_BOX);
}
};
dojo.html.isBorderBox=function(node){
return (dojo.html.getBoxSizing(node)==dojo.html.boxSizing.BORDER_BOX);
};
dojo.html.getBorderBox=function(node){
node=dojo.byId(node);
return {width:node.offsetWidth,height:node.offsetHeight};
};
dojo.html.getPaddingBox=function(node){
var box=dojo.html.getBorderBox(node);
var _51c=dojo.html.getBorder(node);
return {width:box.width-_51c.width,height:box.height-_51c.height};
};
dojo.html.getContentBox=function(node){
node=dojo.byId(node);
var _51e=dojo.html.getPadBorder(node);
return {width:node.offsetWidth-_51e.width,height:node.offsetHeight-_51e.height};
};
dojo.html.setContentBox=function(node,args){
node=dojo.byId(node);
var _521=0;
var _522=0;
var isbb=dojo.html.isBorderBox(node);
var _524=(isbb?dojo.html.getPadBorder(node):{width:0,height:0});
var ret={};
if(typeof args.width!="undefined"){
_521=args.width+_524.width;
ret.width=dojo.html.setPositivePixelValue(node,"width",_521);
}
if(typeof args.height!="undefined"){
_522=args.height+_524.height;
ret.height=dojo.html.setPositivePixelValue(node,"height",_522);
}
return ret;
};
dojo.html.getMarginBox=function(node){
var _527=dojo.html.getBorderBox(node);
var _528=dojo.html.getMargin(node);
return {width:_527.width+_528.width,height:_527.height+_528.height};
};
dojo.html.setMarginBox=function(node,args){
node=dojo.byId(node);
var _52b=0;
var _52c=0;
var isbb=dojo.html.isBorderBox(node);
var _52e=(!isbb?dojo.html.getPadBorder(node):{width:0,height:0});
var _52f=dojo.html.getMargin(node);
var ret={};
if(typeof args.width!="undefined"){
_52b=args.width-_52e.width;
_52b-=_52f.width;
ret.width=dojo.html.setPositivePixelValue(node,"width",_52b);
}
if(typeof args.height!="undefined"){
_52c=args.height-_52e.height;
_52c-=_52f.height;
ret.height=dojo.html.setPositivePixelValue(node,"height",_52c);
}
return ret;
};
dojo.html.getElementBox=function(node,type){
var bs=dojo.html.boxSizing;
switch(type){
case bs.MARGIN_BOX:
return dojo.html.getMarginBox(node);
case bs.BORDER_BOX:
return dojo.html.getBorderBox(node);
case bs.PADDING_BOX:
return dojo.html.getPaddingBox(node);
case bs.CONTENT_BOX:
default:
return dojo.html.getContentBox(node);
}
};
dojo.html.toCoordinateObject=dojo.html.toCoordinateArray=function(_534,_535,_536){
if(_534 instanceof Array||typeof _534=="array"){
dojo.deprecated("dojo.html.toCoordinateArray","use dojo.html.toCoordinateObject({left: , top: , width: , height: }) instead","0.5");
while(_534.length<4){
_534.push(0);
}
while(_534.length>4){
_534.pop();
}
var ret={left:_534[0],top:_534[1],width:_534[2],height:_534[3]};
}else{
if(!_534.nodeType&&!(_534 instanceof String||typeof _534=="string")&&("width" in _534||"height" in _534||"left" in _534||"x" in _534||"top" in _534||"y" in _534)){
var ret={left:_534.left||_534.x||0,top:_534.top||_534.y||0,width:_534.width||0,height:_534.height||0};
}else{
var node=dojo.byId(_534);
var pos=dojo.html.abs(node,_535,_536);
var _53a=dojo.html.getMarginBox(node);
var ret={left:pos.left,top:pos.top,width:_53a.width,height:_53a.height};
}
}
ret.x=ret.left;
ret.y=ret.top;
return ret;
};
dojo.html.setMarginBoxWidth=dojo.html.setOuterWidth=function(node,_53c){
return dojo.html._callDeprecated("setMarginBoxWidth","setMarginBox",arguments,"width");
};
dojo.html.setMarginBoxHeight=dojo.html.setOuterHeight=function(){
return dojo.html._callDeprecated("setMarginBoxHeight","setMarginBox",arguments,"height");
};
dojo.html.getMarginBoxWidth=dojo.html.getOuterWidth=function(){
return dojo.html._callDeprecated("getMarginBoxWidth","getMarginBox",arguments,null,"width");
};
dojo.html.getMarginBoxHeight=dojo.html.getOuterHeight=function(){
return dojo.html._callDeprecated("getMarginBoxHeight","getMarginBox",arguments,null,"height");
};
dojo.html.getTotalOffset=function(node,type,_53f){
return dojo.html._callDeprecated("getTotalOffset","getAbsolutePosition",arguments,null,type);
};
dojo.html.getAbsoluteX=function(node,_541){
return dojo.html._callDeprecated("getAbsoluteX","getAbsolutePosition",arguments,null,"x");
};
dojo.html.getAbsoluteY=function(node,_543){
return dojo.html._callDeprecated("getAbsoluteY","getAbsolutePosition",arguments,null,"y");
};
dojo.html.totalOffsetLeft=function(node,_545){
return dojo.html._callDeprecated("totalOffsetLeft","getAbsolutePosition",arguments,null,"left");
};
dojo.html.totalOffsetTop=function(node,_547){
return dojo.html._callDeprecated("totalOffsetTop","getAbsolutePosition",arguments,null,"top");
};
dojo.html.getMarginWidth=function(node){
return dojo.html._callDeprecated("getMarginWidth","getMargin",arguments,null,"width");
};
dojo.html.getMarginHeight=function(node){
return dojo.html._callDeprecated("getMarginHeight","getMargin",arguments,null,"height");
};
dojo.html.getBorderWidth=function(node){
return dojo.html._callDeprecated("getBorderWidth","getBorder",arguments,null,"width");
};
dojo.html.getBorderHeight=function(node){
return dojo.html._callDeprecated("getBorderHeight","getBorder",arguments,null,"height");
};
dojo.html.getPaddingWidth=function(node){
return dojo.html._callDeprecated("getPaddingWidth","getPadding",arguments,null,"width");
};
dojo.html.getPaddingHeight=function(node){
return dojo.html._callDeprecated("getPaddingHeight","getPadding",arguments,null,"height");
};
dojo.html.getPadBorderWidth=function(node){
return dojo.html._callDeprecated("getPadBorderWidth","getPadBorder",arguments,null,"width");
};
dojo.html.getPadBorderHeight=function(node){
return dojo.html._callDeprecated("getPadBorderHeight","getPadBorder",arguments,null,"height");
};
dojo.html.getBorderBoxWidth=dojo.html.getInnerWidth=function(){
return dojo.html._callDeprecated("getBorderBoxWidth","getBorderBox",arguments,null,"width");
};
dojo.html.getBorderBoxHeight=dojo.html.getInnerHeight=function(){
return dojo.html._callDeprecated("getBorderBoxHeight","getBorderBox",arguments,null,"height");
};
dojo.html.getContentBoxWidth=dojo.html.getContentWidth=function(){
return dojo.html._callDeprecated("getContentBoxWidth","getContentBox",arguments,null,"width");
};
dojo.html.getContentBoxHeight=dojo.html.getContentHeight=function(){
return dojo.html._callDeprecated("getContentBoxHeight","getContentBox",arguments,null,"height");
};
dojo.html.setContentBoxWidth=dojo.html.setContentWidth=function(node,_551){
return dojo.html._callDeprecated("setContentBoxWidth","setContentBox",arguments,"width");
};
dojo.html.setContentBoxHeight=dojo.html.setContentHeight=function(node,_553){
return dojo.html._callDeprecated("setContentBoxHeight","setContentBox",arguments,"height");
};
dojo.provide("dojo.lfx.html");
dojo.lfx.html._byId=function(_554){
if(!_554){
return [];
}
if(dojo.lang.isArrayLike(_554)){
if(!_554.alreadyChecked){
var n=[];
dojo.lang.forEach(_554,function(node){
n.push(dojo.byId(node));
});
n.alreadyChecked=true;
return n;
}else{
return _554;
}
}else{
var n=[];
n.push(dojo.byId(_554));
n.alreadyChecked=true;
return n;
}
};
dojo.lfx.html.propertyAnimation=function(_557,_558,_559,_55a,_55b){
_557=dojo.lfx.html._byId(_557);
var _55c={"propertyMap":_558,"nodes":_557,"duration":_559,"easing":_55a||dojo.lfx.easeDefault};
var _55d=function(args){
if(args.nodes.length==1){
var pm=args.propertyMap;
if(!dojo.lang.isArray(args.propertyMap)){
var parr=[];
for(var _561 in pm){
pm[_561].property=_561;
parr.push(pm[_561]);
}
pm=args.propertyMap=parr;
}
dojo.lang.forEach(pm,function(prop){
if(dj_undef("start",prop)){
if(prop.property!="opacity"){
prop.start=parseInt(dojo.html.getComputedStyle(args.nodes[0],prop.property));
}else{
prop.start=dojo.html.getOpacity(args.nodes[0]);
}
}
});
}
};
var _563=function(_564){
var _565=[];
dojo.lang.forEach(_564,function(c){
_565.push(Math.round(c));
});
return _565;
};
var _567=function(n,_569){
n=dojo.byId(n);
if(!n||!n.style){
return;
}
for(var s in _569){
try{
if(s=="opacity"){
dojo.html.setOpacity(n,_569[s]);
}else{
n.style[s]=_569[s];
}
}
catch(e){
dojo.debug(e);
}
}
};
var _56b=function(_56c){
this._properties=_56c;
this.diffs=new Array(_56c.length);
dojo.lang.forEach(_56c,function(prop,i){
if(dojo.lang.isFunction(prop.start)){
prop.start=prop.start(prop,i);
}
if(dojo.lang.isFunction(prop.end)){
prop.end=prop.end(prop,i);
}
if(dojo.lang.isArray(prop.start)){
this.diffs[i]=null;
}else{
if(prop.start instanceof dojo.gfx.color.Color){
prop.startRgb=prop.start.toRgb();
prop.endRgb=prop.end.toRgb();
}else{
this.diffs[i]=prop.end-prop.start;
}
}
},this);
this.getValue=function(n){
var ret={};
dojo.lang.forEach(this._properties,function(prop,i){
var _573=null;
if(dojo.lang.isArray(prop.start)){
}else{
if(prop.start instanceof dojo.gfx.color.Color){
_573=(prop.units||"rgb")+"(";
for(var j=0;j<prop.startRgb.length;j++){
_573+=Math.round(((prop.endRgb[j]-prop.startRgb[j])*n)+prop.startRgb[j])+(j<prop.startRgb.length-1?",":"");
}
_573+=")";
}else{
_573=((this.diffs[i])*n)+prop.start+(prop.property!="opacity"?prop.units||"px":"");
}
}
ret[dojo.html.toCamelCase(prop.property)]=_573;
},this);
return ret;
};
};
var anim=new dojo.lfx.Animation({beforeBegin:function(){
_55d(_55c);
anim.curve=new _56b(_55c.propertyMap);
},onAnimate:function(_576){
dojo.lang.forEach(_55c.nodes,function(node){
_567(node,_576);
});
}},_55c.duration,null,_55c.easing);
if(_55b){
for(var x in _55b){
if(dojo.lang.isFunction(_55b[x])){
anim.connect(x,anim,_55b[x]);
}
}
}
return anim;
};
dojo.lfx.html._makeFadeable=function(_579){
var _57a=function(node){
if(dojo.render.html.ie){
if((node.style.zoom.length==0)&&(dojo.html.getStyle(node,"zoom")=="normal")){
node.style.zoom="1";
}
if((node.style.width.length==0)&&(dojo.html.getStyle(node,"width")=="auto")){
node.style.width="auto";
}
}
};
if(dojo.lang.isArrayLike(_579)){
dojo.lang.forEach(_579,_57a);
}else{
_57a(_579);
}
};
dojo.lfx.html.fade=function(_57c,_57d,_57e,_57f,_580){
_57c=dojo.lfx.html._byId(_57c);
var _581={property:"opacity"};
if(!dj_undef("start",_57d)){
_581.start=_57d.start;
}else{
_581.start=function(){
return dojo.html.getOpacity(_57c[0]);
};
}
if(!dj_undef("end",_57d)){
_581.end=_57d.end;
}else{
dojo.raise("dojo.lfx.html.fade needs an end value");
}
var anim=dojo.lfx.propertyAnimation(_57c,[_581],_57e,_57f);
anim.connect("beforeBegin",function(){
dojo.lfx.html._makeFadeable(_57c);
});
if(_580){
anim.connect("onEnd",function(){
_580(_57c,anim);
});
}
return anim;
};
dojo.lfx.html.fadeIn=function(_583,_584,_585,_586){
return dojo.lfx.html.fade(_583,{end:1},_584,_585,_586);
};
dojo.lfx.html.fadeOut=function(_587,_588,_589,_58a){
return dojo.lfx.html.fade(_587,{end:0},_588,_589,_58a);
};
dojo.lfx.html.fadeShow=function(_58b,_58c,_58d,_58e){
_58b=dojo.lfx.html._byId(_58b);
dojo.lang.forEach(_58b,function(node){
dojo.html.setOpacity(node,0);
});
var anim=dojo.lfx.html.fadeIn(_58b,_58c,_58d,_58e);
anim.connect("beforeBegin",function(){
if(dojo.lang.isArrayLike(_58b)){
dojo.lang.forEach(_58b,dojo.html.show);
}else{
dojo.html.show(_58b);
}
});
return anim;
};
dojo.lfx.html.fadeHide=function(_591,_592,_593,_594){
var anim=dojo.lfx.html.fadeOut(_591,_592,_593,function(){
if(dojo.lang.isArrayLike(_591)){
dojo.lang.forEach(_591,dojo.html.hide);
}else{
dojo.html.hide(_591);
}
if(_594){
_594(_591,anim);
}
});
return anim;
};
dojo.lfx.html.wipeIn=function(_596,_597,_598,_599){
_596=dojo.lfx.html._byId(_596);
var _59a=[];
dojo.lang.forEach(_596,function(node){
var _59c={};
var _59d,_59e,_59f;
with(node.style){
_59d=top;
_59e=left;
_59f=position;
top="-9999px";
left="-9999px";
position="absolute";
display="";
}
var _5a0=dojo.html.getBorderBox(node).height;
with(node.style){
top=_59d;
left=_59e;
position=_59f;
display="none";
}
var anim=dojo.lfx.propertyAnimation(node,{"height":{start:1,end:function(){
return _5a0;
}}},_597,_598);
anim.connect("beforeBegin",function(){
_59c.overflow=node.style.overflow;
_59c.height=node.style.height;
with(node.style){
overflow="hidden";
height="1px";
}
dojo.html.show(node);
});
anim.connect("onEnd",function(){
with(node.style){
overflow=_59c.overflow;
height=_59c.height;
}
if(_599){
_599(node,anim);
}
});
_59a.push(anim);
});
return dojo.lfx.combine(_59a);
};
dojo.lfx.html.wipeOut=function(_5a2,_5a3,_5a4,_5a5){
_5a2=dojo.lfx.html._byId(_5a2);
var _5a6=[];
dojo.lang.forEach(_5a2,function(node){
var _5a8={};
var anim=dojo.lfx.propertyAnimation(node,{"height":{start:function(){
return dojo.html.getContentBox(node).height;
},end:1}},_5a3,_5a4,{"beforeBegin":function(){
_5a8.overflow=node.style.overflow;
_5a8.height=node.style.height;
with(node.style){
overflow="hidden";
}
dojo.html.show(node);
},"onEnd":function(){
dojo.html.hide(node);
with(node.style){
overflow=_5a8.overflow;
height=_5a8.height;
}
if(_5a5){
_5a5(node,anim);
}
}});
_5a6.push(anim);
});
return dojo.lfx.combine(_5a6);
};
dojo.lfx.html.slideTo=function(_5aa,_5ab,_5ac,_5ad,_5ae){
_5aa=dojo.lfx.html._byId(_5aa);
var _5af=[];
var _5b0=dojo.html.getComputedStyle;
if(dojo.lang.isArray(_5ab)){
dojo.deprecated("dojo.lfx.html.slideTo(node, array)","use dojo.lfx.html.slideTo(node, {top: value, left: value});","0.5");
_5ab={top:_5ab[0],left:_5ab[1]};
}
dojo.lang.forEach(_5aa,function(node){
var top=null;
var left=null;
var init=(function(){
var _5b5=node;
return function(){
var pos=_5b0(_5b5,"position");
top=(pos=="absolute"?node.offsetTop:parseInt(_5b0(node,"top"))||0);
left=(pos=="absolute"?node.offsetLeft:parseInt(_5b0(node,"left"))||0);
if(!dojo.lang.inArray(["absolute","relative"],pos)){
var ret=dojo.html.abs(_5b5,true);
dojo.html.setStyleAttributes(_5b5,"position:absolute;top:"+ret.y+"px;left:"+ret.x+"px;");
top=ret.y;
left=ret.x;
}
};
})();
init();
var anim=dojo.lfx.propertyAnimation(node,{"top":{start:top,end:(_5ab.top||0)},"left":{start:left,end:(_5ab.left||0)}},_5ac,_5ad,{"beforeBegin":init});
if(_5ae){
anim.connect("onEnd",function(){
_5ae(_5aa,anim);
});
}
_5af.push(anim);
});
return dojo.lfx.combine(_5af);
};
dojo.lfx.html.slideBy=function(_5b9,_5ba,_5bb,_5bc,_5bd){
_5b9=dojo.lfx.html._byId(_5b9);
var _5be=[];
var _5bf=dojo.html.getComputedStyle;
if(dojo.lang.isArray(_5ba)){
dojo.deprecated("dojo.lfx.html.slideBy(node, array)","use dojo.lfx.html.slideBy(node, {top: value, left: value});","0.5");
_5ba={top:_5ba[0],left:_5ba[1]};
}
dojo.lang.forEach(_5b9,function(node){
var top=null;
var left=null;
var init=(function(){
var _5c4=node;
return function(){
var pos=_5bf(_5c4,"position");
top=(pos=="absolute"?node.offsetTop:parseInt(_5bf(node,"top"))||0);
left=(pos=="absolute"?node.offsetLeft:parseInt(_5bf(node,"left"))||0);
if(!dojo.lang.inArray(["absolute","relative"],pos)){
var ret=dojo.html.abs(_5c4,true);
dojo.html.setStyleAttributes(_5c4,"position:absolute;top:"+ret.y+"px;left:"+ret.x+"px;");
top=ret.y;
left=ret.x;
}
};
})();
init();
var anim=dojo.lfx.propertyAnimation(node,{"top":{start:top,end:top+(_5ba.top||0)},"left":{start:left,end:left+(_5ba.left||0)}},_5bb,_5bc).connect("beforeBegin",init);
if(_5bd){
anim.connect("onEnd",function(){
_5bd(_5b9,anim);
});
}
_5be.push(anim);
});
return dojo.lfx.combine(_5be);
};
dojo.lfx.html.explode=function(_5c8,_5c9,_5ca,_5cb,_5cc){
var h=dojo.html;
_5c8=dojo.byId(_5c8);
_5c9=dojo.byId(_5c9);
var _5ce=h.toCoordinateObject(_5c8,true);
var _5cf=document.createElement("div");
h.copyStyle(_5cf,_5c9);
if(_5c9.explodeClassName){
_5cf.className=_5c9.explodeClassName;
}
with(_5cf.style){
position="absolute";
display="none";
var _5d0=h.getStyle(_5c8,"background-color");
backgroundColor=_5d0?_5d0.toLowerCase():"transparent";
backgroundColor=(backgroundColor=="transparent")?"rgb(221, 221, 221)":backgroundColor;
}
dojo.body().appendChild(_5cf);
with(_5c9.style){
visibility="hidden";
display="block";
}
var _5d1=h.toCoordinateObject(_5c9,true);
with(_5c9.style){
display="none";
visibility="visible";
}
var _5d2={opacity:{start:0.5,end:1}};
dojo.lang.forEach(["height","width","top","left"],function(type){
_5d2[type]={start:_5ce[type],end:_5d1[type]};
});
var anim=new dojo.lfx.propertyAnimation(_5cf,_5d2,_5ca,_5cb,{"beforeBegin":function(){
h.setDisplay(_5cf,"block");
},"onEnd":function(){
h.setDisplay(_5c9,"block");
_5cf.parentNode.removeChild(_5cf);
}});
if(_5cc){
anim.connect("onEnd",function(){
_5cc(_5c9,anim);
});
}
return anim;
};
dojo.lfx.html.implode=function(_5d5,end,_5d7,_5d8,_5d9){
var h=dojo.html;
_5d5=dojo.byId(_5d5);
end=dojo.byId(end);
var _5db=dojo.html.toCoordinateObject(_5d5,true);
var _5dc=dojo.html.toCoordinateObject(end,true);
var _5dd=document.createElement("div");
dojo.html.copyStyle(_5dd,_5d5);
if(_5d5.explodeClassName){
_5dd.className=_5d5.explodeClassName;
}
dojo.html.setOpacity(_5dd,0.3);
with(_5dd.style){
position="absolute";
display="none";
backgroundColor=h.getStyle(_5d5,"background-color").toLowerCase();
}
dojo.body().appendChild(_5dd);
var _5de={opacity:{start:1,end:0.5}};
dojo.lang.forEach(["height","width","top","left"],function(type){
_5de[type]={start:_5db[type],end:_5dc[type]};
});
var anim=new dojo.lfx.propertyAnimation(_5dd,_5de,_5d7,_5d8,{"beforeBegin":function(){
dojo.html.hide(_5d5);
dojo.html.show(_5dd);
},"onEnd":function(){
_5dd.parentNode.removeChild(_5dd);
}});
if(_5d9){
anim.connect("onEnd",function(){
_5d9(_5d5,anim);
});
}
return anim;
};
dojo.lfx.html.highlight=function(_5e1,_5e2,_5e3,_5e4,_5e5){
_5e1=dojo.lfx.html._byId(_5e1);
var _5e6=[];
dojo.lang.forEach(_5e1,function(node){
var _5e8=dojo.html.getBackgroundColor(node);
var bg=dojo.html.getStyle(node,"background-color").toLowerCase();
var _5ea=dojo.html.getStyle(node,"background-image");
var _5eb=(bg=="transparent"||bg=="rgba(0, 0, 0, 0)");
while(_5e8.length>3){
_5e8.pop();
}
var rgb=new dojo.gfx.color.Color(_5e2);
var _5ed=new dojo.gfx.color.Color(_5e8);
var anim=dojo.lfx.propertyAnimation(node,{"background-color":{start:rgb,end:_5ed}},_5e3,_5e4,{"beforeBegin":function(){
if(_5ea){
node.style.backgroundImage="none";
}
node.style.backgroundColor="rgb("+rgb.toRgb().join(",")+")";
},"onEnd":function(){
if(_5ea){
node.style.backgroundImage=_5ea;
}
if(_5eb){
node.style.backgroundColor="transparent";
}
if(_5e5){
_5e5(node,anim);
}
}});
_5e6.push(anim);
});
return dojo.lfx.combine(_5e6);
};
dojo.lfx.html.unhighlight=function(_5ef,_5f0,_5f1,_5f2,_5f3){
_5ef=dojo.lfx.html._byId(_5ef);
var _5f4=[];
dojo.lang.forEach(_5ef,function(node){
var _5f6=new dojo.gfx.color.Color(dojo.html.getBackgroundColor(node));
var rgb=new dojo.gfx.color.Color(_5f0);
var _5f8=dojo.html.getStyle(node,"background-image");
var anim=dojo.lfx.propertyAnimation(node,{"background-color":{start:_5f6,end:rgb}},_5f1,_5f2,{"beforeBegin":function(){
if(_5f8){
node.style.backgroundImage="none";
}
node.style.backgroundColor="rgb("+_5f6.toRgb().join(",")+")";
},"onEnd":function(){
if(_5f3){
_5f3(node,anim);
}
}});
_5f4.push(anim);
});
return dojo.lfx.combine(_5f4);
};
dojo.lang.mixin(dojo.lfx,dojo.lfx.html);
dojo.provide("dojo.html.util");
dojo.html.getElementWindow=function(_5fa){
return dojo.html.getDocumentWindow(_5fa.ownerDocument);
};
dojo.html.getDocumentWindow=function(doc){
if(dojo.render.html.safari&&!doc._parentWindow){
var fix=function(win){
win.document._parentWindow=win;
for(var i=0;i<win.frames.length;i++){
fix(win.frames[i]);
}
};
fix(window.top);
}
if(dojo.render.html.ie&&window!==document.parentWindow&&!doc._parentWindow){
doc.parentWindow.execScript("document._parentWindow = window;","Javascript");
var win=doc._parentWindow;
doc._parentWindow=null;
return win;
}
return doc._parentWindow||doc.parentWindow||doc.defaultView;
};
dojo.html.gravity=function(node,e){
node=dojo.byId(node);
var _602=dojo.html.getCursorPosition(e);
with(dojo.html){
var _603=getAbsolutePosition(node,true);
var bb=getBorderBox(node);
var _605=_603.x+(bb.width/2);
var _606=_603.y+(bb.height/2);
}
with(dojo.html.gravity){
return ((_602.x<_605?WEST:EAST)|(_602.y<_606?NORTH:SOUTH));
}
};
dojo.html.gravity.NORTH=1;
dojo.html.gravity.SOUTH=1<<1;
dojo.html.gravity.EAST=1<<2;
dojo.html.gravity.WEST=1<<3;
dojo.html.overElement=function(_607,e){
_607=dojo.byId(_607);
var _609=dojo.html.getCursorPosition(e);
var bb=dojo.html.getBorderBox(_607);
var _60b=dojo.html.getAbsolutePosition(_607,true,dojo.html.boxSizing.BORDER_BOX);
var top=_60b.y;
var _60d=top+bb.height;
var left=_60b.x;
var _60f=left+bb.width;
return (_609.x>=left&&_609.x<=_60f&&_609.y>=top&&_609.y<=_60d);
};
dojo.html.renderedTextContent=function(node){
node=dojo.byId(node);
var _611="";
if(node==null){
return _611;
}
for(var i=0;i<node.childNodes.length;i++){
switch(node.childNodes[i].nodeType){
case 1:
case 5:
var _613="unknown";
try{
_613=dojo.html.getStyle(node.childNodes[i],"display");
}
catch(E){
}
switch(_613){
case "block":
case "list-item":
case "run-in":
case "table":
case "table-row-group":
case "table-header-group":
case "table-footer-group":
case "table-row":
case "table-column-group":
case "table-column":
case "table-cell":
case "table-caption":
_611+="\n";
_611+=dojo.html.renderedTextContent(node.childNodes[i]);
_611+="\n";
break;
case "none":
break;
default:
if(node.childNodes[i].tagName&&node.childNodes[i].tagName.toLowerCase()=="br"){
_611+="\n";
}else{
_611+=dojo.html.renderedTextContent(node.childNodes[i]);
}
break;
}
break;
case 3:
case 2:
case 4:
var text=node.childNodes[i].nodeValue;
var _615="unknown";
try{
_615=dojo.html.getStyle(node,"text-transform");
}
catch(E){
}
switch(_615){
case "capitalize":
var _616=text.split(" ");
for(var i=0;i<_616.length;i++){
_616[i]=_616[i].charAt(0).toUpperCase()+_616[i].substring(1);
}
text=_616.join(" ");
break;
case "uppercase":
text=text.toUpperCase();
break;
case "lowercase":
text=text.toLowerCase();
break;
default:
break;
}
switch(_615){
case "nowrap":
break;
case "pre-wrap":
break;
case "pre-line":
break;
case "pre":
break;
default:
text=text.replace(/\s+/," ");
if(/\s$/.test(_611)){
text.replace(/^\s/,"");
}
break;
}
_611+=text;
break;
default:
break;
}
}
return _611;
};
dojo.html.createNodesFromText=function(txt,trim){
if(trim){
txt=txt.replace(/^\s+|\s+$/g,"");
}
var tn=dojo.doc().createElement("div");
tn.style.visibility="hidden";
dojo.body().appendChild(tn);
var _61a="none";
if((/^<t[dh][\s\r\n>]/i).test(txt.replace(/^\s+/))){
txt="<table><tbody><tr>"+txt+"</tr></tbody></table>";
_61a="cell";
}else{
if((/^<tr[\s\r\n>]/i).test(txt.replace(/^\s+/))){
txt="<table><tbody>"+txt+"</tbody></table>";
_61a="row";
}else{
if((/^<(thead|tbody|tfoot)[\s\r\n>]/i).test(txt.replace(/^\s+/))){
txt="<table>"+txt+"</table>";
_61a="section";
}
}
}
tn.innerHTML=txt;
if(tn["normalize"]){
tn.normalize();
}
var _61b=null;
switch(_61a){
case "cell":
_61b=tn.getElementsByTagName("tr")[0];
break;
case "row":
_61b=tn.getElementsByTagName("tbody")[0];
break;
case "section":
_61b=tn.getElementsByTagName("table")[0];
break;
default:
_61b=tn;
break;
}
var _61c=[];
for(var x=0;x<_61b.childNodes.length;x++){
_61c.push(_61b.childNodes[x].cloneNode(true));
}
tn.style.display="none";
dojo.html.destroyNode(tn);
return _61c;
};
dojo.html.placeOnScreen=function(node,_61f,_620,_621,_622,_623,_624){
if(_61f instanceof Array||typeof _61f=="array"){
_624=_623;
_623=_622;
_622=_621;
_621=_620;
_620=_61f[1];
_61f=_61f[0];
}
if(_623 instanceof String||typeof _623=="string"){
_623=_623.split(",");
}
if(!isNaN(_621)){
_621=[Number(_621),Number(_621)];
}else{
if(!(_621 instanceof Array||typeof _621=="array")){
_621=[0,0];
}
}
var _625=dojo.html.getScroll().offset;
var view=dojo.html.getViewport();
node=dojo.byId(node);
var _627=node.style.display;
node.style.display="";
var bb=dojo.html.getBorderBox(node);
var w=bb.width;
var h=bb.height;
node.style.display=_627;
if(!(_623 instanceof Array||typeof _623=="array")){
_623=["TL"];
}
var _62b,_62c,_62d=Infinity,_62e;
for(var _62f=0;_62f<_623.length;++_62f){
var _630=_623[_62f];
var _631=true;
var tryX=_61f-(_630.charAt(1)=="L"?0:w)+_621[0]*(_630.charAt(1)=="L"?1:-1);
var tryY=_620-(_630.charAt(0)=="T"?0:h)+_621[1]*(_630.charAt(0)=="T"?1:-1);
if(_622){
tryX-=_625.x;
tryY-=_625.y;
}
if(tryX<0){
tryX=0;
_631=false;
}
if(tryY<0){
tryY=0;
_631=false;
}
var x=tryX+w;
if(x>view.width){
x=view.width-w;
_631=false;
}else{
x=tryX;
}
x=Math.max(_621[0],x)+_625.x;
var y=tryY+h;
if(y>view.height){
y=view.height-h;
_631=false;
}else{
y=tryY;
}
y=Math.max(_621[1],y)+_625.y;
if(_631){
_62b=x;
_62c=y;
_62d=0;
_62e=_630;
break;
}else{
var dist=Math.pow(x-tryX-_625.x,2)+Math.pow(y-tryY-_625.y,2);
if(_62d>dist){
_62d=dist;
_62b=x;
_62c=y;
_62e=_630;
}
}
}
if(!_624){
node.style.left=_62b+"px";
node.style.top=_62c+"px";
}
return {left:_62b,top:_62c,x:_62b,y:_62c,dist:_62d,corner:_62e};
};
dojo.html.placeOnScreenPoint=function(node,_638,_639,_63a,_63b){
dojo.deprecated("dojo.html.placeOnScreenPoint","use dojo.html.placeOnScreen() instead","0.5");
return dojo.html.placeOnScreen(node,_638,_639,_63a,_63b,["TL","TR","BL","BR"]);
};
dojo.html.placeOnScreenAroundElement=function(node,_63d,_63e,_63f,_640,_641){
var best,_643=Infinity;
_63d=dojo.byId(_63d);
var _644=_63d.style.display;
_63d.style.display="";
var mb=dojo.html.getElementBox(_63d,_63f);
var _646=mb.width;
var _647=mb.height;
var _648=dojo.html.getAbsolutePosition(_63d,true,_63f);
_63d.style.display=_644;
for(var _649 in _640){
var pos,_64b,_64c;
var _64d=_640[_649];
_64b=_648.x+(_649.charAt(1)=="L"?0:_646);
_64c=_648.y+(_649.charAt(0)=="T"?0:_647);
pos=dojo.html.placeOnScreen(node,_64b,_64c,_63e,true,_64d,true);
if(pos.dist==0){
best=pos;
break;
}else{
if(_643>pos.dist){
_643=pos.dist;
best=pos;
}
}
}
if(!_641){
node.style.left=best.left+"px";
node.style.top=best.top+"px";
}
return best;
};
dojo.html.scrollIntoView=function(node){
if(!node){
return;
}
if(dojo.render.html.ie){
if(dojo.html.getBorderBox(node.parentNode).height<=node.parentNode.scrollHeight){
node.scrollIntoView(false);
}
}else{
if(dojo.render.html.mozilla){
node.scrollIntoView(false);
}else{
var _64f=node.parentNode;
var _650=_64f.scrollTop+dojo.html.getBorderBox(_64f).height;
var _651=node.offsetTop+dojo.html.getMarginBox(node).height;
if(_650<_651){
_64f.scrollTop+=(_651-_650);
}else{
if(_64f.scrollTop>node.offsetTop){
_64f.scrollTop-=(_64f.scrollTop-node.offsetTop);
}
}
}
}
};
dojo.provide("dojo.io.ScriptSrcIO");
dojo.io.ScriptSrcTransport=new function(){
this.preventCache=false;
this.maxUrlLength=1000;
this.inFlightTimer=null;
this.DsrStatusCodes={Continue:100,Ok:200,Error:500};
this.startWatchingInFlight=function(){
if(!this.inFlightTimer){
this.inFlightTimer=setInterval("dojo.io.ScriptSrcTransport.watchInFlight();",100);
}
};
this.watchInFlight=function(){
var _652=0;
var _653=0;
for(var _654 in this._state){
_652++;
var _655=this._state[_654];
if(_655.isDone){
_653++;
delete this._state[_654];
}else{
if(!_655.isFinishing){
var _656=_655.kwArgs;
try{
if(_655.checkString&&eval("typeof("+_655.checkString+") != 'undefined'")){
_655.isFinishing=true;
this._finish(_655,"load");
_653++;
delete this._state[_654];
}else{
if(_656.timeoutSeconds&&_656.timeout){
if(_655.startTime+(_656.timeoutSeconds*1000)<(new Date()).getTime()){
_655.isFinishing=true;
this._finish(_655,"timeout");
_653++;
delete this._state[_654];
}
}else{
if(!_656.timeoutSeconds){
_653++;
}
}
}
}
catch(e){
_655.isFinishing=true;
this._finish(_655,"error",{status:this.DsrStatusCodes.Error,response:e});
}
}
}
}
if(_653>=_652){
clearInterval(this.inFlightTimer);
this.inFlightTimer=null;
}
};
this.canHandle=function(_657){
return dojo.lang.inArray(["text/javascript","text/json","application/json"],(_657["mimetype"].toLowerCase()))&&(_657["method"].toLowerCase()=="get")&&!(_657["formNode"]&&dojo.io.formHasFile(_657["formNode"]))&&(!_657["sync"]||_657["sync"]==false)&&!_657["file"]&&!_657["multipart"];
};
this.removeScripts=function(){
var _658=document.getElementsByTagName("script");
for(var i=0;_658&&i<_658.length;i++){
var _65a=_658[i];
if(_65a.className=="ScriptSrcTransport"){
var _65b=_65a.parentNode;
_65b.removeChild(_65a);
i--;
}
}
};
this.bind=function(_65c){
var url=_65c.url;
var _65e="";
if(_65c["formNode"]){
var ta=_65c.formNode.getAttribute("action");
if((ta)&&(!_65c["url"])){
url=ta;
}
var tp=_65c.formNode.getAttribute("method");
if((tp)&&(!_65c["method"])){
_65c.method=tp;
}
_65e+=dojo.io.encodeForm(_65c.formNode,_65c.encoding,_65c["formFilter"]);
}
if(url.indexOf("#")>-1){
dojo.debug("Warning: dojo.io.bind: stripping hash values from url:",url);
url=url.split("#")[0];
}
var _661=url.split("?");
if(_661&&_661.length==2){
url=_661[0];
_65e+=(_65e?"&":"")+_661[1];
}
if(_65c["backButton"]||_65c["back"]||_65c["changeUrl"]){
dojo.undo.browser.addToHistory(_65c);
}
var id=_65c["apiId"]?_65c["apiId"]:"id"+this._counter++;
var _663=_65c["content"];
var _664=_65c.jsonParamName;
if(_65c.sendTransport||_664){
if(!_663){
_663={};
}
if(_65c.sendTransport){
_663["dojo.transport"]="scriptsrc";
}
if(_664){
_663[_664]="dojo.io.ScriptSrcTransport._state."+id+".jsonpCall";
}
}
if(_65c.postContent){
_65e=_65c.postContent;
}else{
if(_663){
_65e+=((_65e)?"&":"")+dojo.io.argsFromMap(_663,_65c.encoding,_664);
}
}
if(_65c["apiId"]){
_65c["useRequestId"]=true;
}
var _665={"id":id,"idParam":"_dsrid="+id,"url":url,"query":_65e,"kwArgs":_65c,"startTime":(new Date()).getTime(),"isFinishing":false};
if(!url){
this._finish(_665,"error",{status:this.DsrStatusCodes.Error,statusText:"url.none"});
return;
}
if(_663&&_663[_664]){
_665.jsonp=_663[_664];
_665.jsonpCall=function(data){
if(data["Error"]||data["error"]){
if(dojo["json"]&&dojo["json"]["serialize"]){
dojo.debug(dojo.json.serialize(data));
}
dojo.io.ScriptSrcTransport._finish(this,"error",data);
}else{
dojo.io.ScriptSrcTransport._finish(this,"load",data);
}
};
}
if(_65c["useRequestId"]||_65c["checkString"]||_665["jsonp"]){
this._state[id]=_665;
}
if(_65c["checkString"]){
_665.checkString=_65c["checkString"];
}
_665.constantParams=(_65c["constantParams"]==null?"":_65c["constantParams"]);
if(_65c["preventCache"]||(this.preventCache==true&&_65c["preventCache"]!=false)){
_665.nocacheParam="dojo.preventCache="+new Date().valueOf();
}else{
_665.nocacheParam="";
}
var _667=_665.url.length+_665.query.length+_665.constantParams.length+_665.nocacheParam.length+this._extraPaddingLength;
if(_65c["useRequestId"]){
_667+=_665.idParam.length;
}
if(!_65c["checkString"]&&_65c["useRequestId"]&&!_665["jsonp"]&&!_65c["forceSingleRequest"]&&_667>this.maxUrlLength){
if(url>this.maxUrlLength){
this._finish(_665,"error",{status:this.DsrStatusCodes.Error,statusText:"url.tooBig"});
return;
}else{
this._multiAttach(_665,1);
}
}else{
var _668=[_665.constantParams,_665.nocacheParam,_665.query];
if(_65c["useRequestId"]&&!_665["jsonp"]){
_668.unshift(_665.idParam);
}
var _669=this._buildUrl(_665.url,_668);
_665.finalUrl=_669;
this._attach(_665.id,_669);
}
this.startWatchingInFlight();
};
this._counter=1;
this._state={};
this._extraPaddingLength=16;
this._buildUrl=function(url,_66b){
var _66c=url;
var _66d="?";
for(var i=0;i<_66b.length;i++){
if(_66b[i]){
_66c+=_66d+_66b[i];
_66d="&";
}
}
return _66c;
};
this._attach=function(id,url){
var _671=document.createElement("script");
_671.type="text/javascript";
_671.src=url;
_671.id=id;
_671.className="ScriptSrcTransport";
document.getElementsByTagName("head")[0].appendChild(_671);
};
this._multiAttach=function(_672,part){
if(_672.query==null){
this._finish(_672,"error",{status:this.DsrStatusCodes.Error,statusText:"query.null"});
return;
}
if(!_672.constantParams){
_672.constantParams="";
}
var _674=this.maxUrlLength-_672.idParam.length-_672.constantParams.length-_672.url.length-_672.nocacheParam.length-this._extraPaddingLength;
var _675=_672.query.length<_674;
var _676;
if(_675){
_676=_672.query;
_672.query=null;
}else{
var _677=_672.query.lastIndexOf("&",_674-1);
var _678=_672.query.lastIndexOf("=",_674-1);
if(_677>_678||_678==_674-1){
_676=_672.query.substring(0,_677);
_672.query=_672.query.substring(_677+1,_672.query.length);
}else{
_676=_672.query.substring(0,_674);
var _679=_676.substring((_677==-1?0:_677+1),_678);
_672.query=_679+"="+_672.query.substring(_674,_672.query.length);
}
}
var _67a=[_676,_672.idParam,_672.constantParams,_672.nocacheParam];
if(!_675){
_67a.push("_part="+part);
}
var url=this._buildUrl(_672.url,_67a);
this._attach(_672.id+"_"+part,url);
};
this._finish=function(_67c,_67d,_67e){
if(_67d!="partOk"&&!_67c.kwArgs[_67d]&&!_67c.kwArgs["handle"]){
if(_67d=="error"){
_67c.isDone=true;
throw _67e;
}
}else{
switch(_67d){
case "load":
var _67f=_67e?_67e.response:null;
if(!_67f){
_67f=_67e;
}
_67c.kwArgs[(typeof _67c.kwArgs.load=="function")?"load":"handle"]("load",_67f,_67e,_67c.kwArgs);
_67c.isDone=true;
break;
case "partOk":
var part=parseInt(_67e.response.part,10)+1;
if(_67e.response.constantParams){
_67c.constantParams=_67e.response.constantParams;
}
this._multiAttach(_67c,part);
_67c.isDone=false;
break;
case "error":
_67c.kwArgs[(typeof _67c.kwArgs.error=="function")?"error":"handle"]("error",_67e.response,_67e,_67c.kwArgs);
_67c.isDone=true;
break;
default:
_67c.kwArgs[(typeof _67c.kwArgs[_67d]=="function")?_67d:"handle"](_67d,_67e,_67e,_67c.kwArgs);
_67c.isDone=true;
}
}
};
dojo.io.transports.addTransport("ScriptSrcTransport");
};
window.onscriptload=function(_681){
var _682=null;
var _683=dojo.io.ScriptSrcTransport;
if(_683._state[_681.id]){
_682=_683._state[_681.id];
}else{
var _684;
for(var _685 in _683._state){
_684=_683._state[_685];
if(_684.finalUrl&&_684.finalUrl==_681.id){
_682=_684;
break;
}
}
if(_682==null){
var _686=document.getElementsByTagName("script");
for(var i=0;_686&&i<_686.length;i++){
var _688=_686[i];
if(_688.getAttribute("class")=="ScriptSrcTransport"&&_688.src==_681.id){
_682=_683._state[_688.id];
break;
}
}
}
if(_682==null){
throw "No matching state for onscriptload event.id: "+_681.id;
}
}
var _689="error";
switch(_681.status){
case dojo.io.ScriptSrcTransport.DsrStatusCodes.Continue:
_689="partOk";
break;
case dojo.io.ScriptSrcTransport.DsrStatusCodes.Ok:
_689="load";
break;
}
_683._finish(_682,_689,_681);
};


var type_error = "error";
var type_debug = "debug";
var isdebug = false;

function log( type, msgs ) {
    var result = "";
	for (var i = 0; i < arguments.length; i++){
		result += " " + arguments[i];
	}
	if (type == type_debug && isdebug ) alert(result);
}

var logger = new function() {
	this.error = function(msgs){ log(type_error,msgs); };
	this.debug = function(msgs){ log(type_debug,msgs); };
}

if (typeof console == "undefined" || !console.error) {
	var console = {};
	console= logger;
}

function readCookie(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;
}

function setPref( param, value ){
	var prefCookieName = "musprefs";
	var prefCookieString = "";
	var prefDelim = "&";
	var keyvalDelim = ":";
	var prefArray;
	var prefCookie = readCookie(prefCookieName);
	if ( prefCookie ) {
		prefArray = prefCookie.split(prefDelim);
	} else {
		prefArray = new Array();
	}

	var re = "^" + param + keyvalDelim;
	for (var i=0;i<prefArray.length;i++){
		if ( prefArray[i].search(re) <  0 ){
			if (prefCookieString != "" ){
				prefCookieString += prefDelim;
			}
			prefCookieString += prefArray[i];
		}
	}
	if (prefCookieString != "" )
		prefCookieString += prefDelim;

	prefCookieString += (param + keyvalDelim + value);
	document.cookie = prefCookieName + "=" + prefCookieString + "; path=/";
}
/*
Syntax for params is key, value or a single string with in standard cookie
format: "key=value; key=value; key=value; etc."
*/
function setLinkParams( params, value ) {
	// console.debug("linkp start document.cookie",document.cookie);
	var key_delim = "&";
	var key_cookie = "lpkeys";
	var keys = readCookie(key_cookie);
	if ( keys ) { //check if keys exist
		keys = keys.split(key_delim);
	} else {
		keys = new Array();
	}
	if(value) { // check if arguments are key, value
		keys.push(params);
		params = params + "=" + value;
		// console.debug("linkp key, value",params);
		document.cookie = params + "; path=/";
	} else { // add all keys
		kvpairs = params.split(";")
		for(var i=0;i < kvpairs.length;i++) {
			var c = kvpairs[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			keys.push(c.substring(0,c.indexOf("=")));
			document.cookie = kvpairs[i] + "; path=/";
		}
	}
	keys = keys.toString()
	re = /,/g
	keys = keys.replace(re,"&");
	document.cookie = key_cookie + "=" + keys + "; path=/";
	// console.debug("linkp document.cookie",document.cookie);
}


function getEl( id ){ return document.getElementById( id ); }
function mkeEl( type ){ return document.createElement( type ); }

/* --------------------------------------- */
function URLEncode( plaintext )
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    //alert( "Unicode Character '"
                //        + ch
                //        + "' cannot be encoded using standard URL encoding.\n" +
				//          "(URL encoding only supports 8-bit characters.)\n" +
				//		  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	return encoded;
};

function URLDecode( encoded )
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef";
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2)
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				//alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   return plaintext;
};



// Tab Object

if (!modArray) { var modArray = new Array(); }

function hideTab(msg){
	if (msg) console.debug("Hide Tab:", this.id + "- " + msg)
	else console.debug("Hide Tab:", this.id)
	this.style.visibility = "hidden";
	// this.innerHTML = "";
}

function appendTabTxt(txt){
	this.innerHTML = this.innerHTML + txt;
}

aimObj = "No AIM!";

function chngeTab() {
    var oCurMod = "";
    var oPrevMod = "";
    var prnt = this.tabCntl.tabLst.getElementsByTagName( 'li' );
	for ( p=0; p<prnt.length; p++) {
		prnt[p].className = '';
	}
	this.className = this.tabCntl.selClss;
	var utilDivs = this.tabCntl.trgDiv.getElementsByTagName("div");
	var jdx = utilDivs.length;
    while (jdx-->0) { if (utilDivs[jdx].getAttribute("id") == this.modNme ){oCurMod = utilDivs[jdx];break;} }
    jdx = utilDivs.length;
    while (jdx-->0) { if (utilDivs[jdx].getAttribute("id") == prevTab ){oPrevMod = utilDivs[jdx];break;} }
    oPrevMod.style.display = "none";
	if (oCurMod != "") {
		oCurMod.style.display = "block";
		if (this.tabInit) this.tabInit(this.tabCntl.trgDiv);
	} else {
		var trgDiv = this.tabCntl.trgDiv;
		var tabInit = this.tabInit;
		var modNme = this.modNme;
		dojo.io.bind({
				url: this.ajxurl,
			handler: function(type, data, evt ) {
				if( data != '') {
                    var trgData = document.createElement("div");
                    trgData.setAttribute("id",modNme);
                    trgData.innerHTML = data;
                    trgDiv.appendChild(trgData);
                    if (tabInit) tabInit(trgDiv);
		                }else{
							el.hideTab("No data");
						}
			},
			error: function(type, error){
				el.hideTab("Ajax error");
				console.error('Error when retrieving ' + modNme + ' from the server: '+error);
			},
			timeoutSeconds: 3,
			timeout: function(type, data, evt){
				el.hideTab("Timeout");
					}
			});
		}

    prevTab = this.modNme;
}

// SNS - mini login for AIM SHARE Module - Music Video Asset.
function createSNSmini (container, containerId) {
	if (typeof(containerId) != "undefined") {
		container = document.getElementById(containerId);
	}

	var isIE = document.all;
    var oIframe = document.createElement("iframe");
	oIframe.setAttribute("id","AIMReqFrame");
	oIframe.setAttribute("frameborder","0");
	oIframe.setAttribute("border","0");
	oIframe.setAttribute("src","https://"+vlserver+"/_cqr/login/login.psp?mcState=initialized&uitype=mini&_sns_bg_color_=ffffff&sitedomain="+sitedomain+"&authLev=1&lang=en&locale=us&siteState="+siteState);
	oIframe.className = isIE?"AIMReqFrameIE":"AIMReqFrame";

	var oIfrCrop = document.createElement("div");
	oIfrCrop.setAttribute("id","AIMReqCrop");
	oIfrCrop.className = isIE?"AIMReqCropIE":"AIMReqCrop";
	oIfrCrop.appendChild(oIframe);

	var oIfrInnerFrame = document.createElement("div");
	oIfrInnerFrame.setAttribute("id","AIMReqInnerFrame");
	oIfrInnerFrame.appendChild(oIfrCrop);

	var oIfrContainer = document.createElement("div");
	oIfrContainer.setAttribute("id","AIMReqContainer");
	oIfrContainer.appendChild(oIfrInnerFrame);

	container.appendChild(oIfrContainer);
	aimObj = container.cloneNode(true);
}

function AIMsnsSignIn (container) {
	var isIE = document.all;

	var oHelpLinkCont = document.createElement("div");
	oHelpLinkCont.setAttribute("id","AIMhelpContainer");
	oHelpLinkCont.className = "AIMhelpContainer";
	var oHelpLink = document.createElement("a");
	oHelpLink.setAttribute("href","http://www.aol.com");
	oHelpLink.appendChild(document.createTextNode("Help"));
	oHelpLinkCont.appendChild(oHelpLink);
	container.appendChild(oHelpLinkCont);

	var oClear = document.createElement("div");
	oClear.className = "clear";
	container.appendChild(oClear);

	var oAIMdescCont = document.createElement("div");
	oAIMdescCont.setAttribute("id","AIMdescContainer");
	oAIMdescCont.className = "AIMdescContainer";
	oAIMdescCont.appendChild(document.createTextNode("Send this video to anyone on your AIM buddy list."));
	container.appendChild(oAIMdescCont);

	var oAIMsignIn = document.createElement("div");
	oAIMsignIn.className = "AIMsignIn";
	oAIMsignIn.appendChild(document.createTextNode("Sign In"));
	container.appendChild(oAIMsignIn);

	//createSNSmini(container);

	setTimeout("createSNSmini(null, 'utilAimContainer')", 5000);
}



function addTabInit( modNme, elId, tabInit, loadInit ) {
	var el = getEl(elId);
	el.onmouseover = function() {
		 if (el.className!=el.tabCntl.selClss) el.className=el.tabCntl.ovrClss;
		 if(modNme == "utilPan_aim") {
			 if (el.className!=el.tabCntl.selClss) el.className="aimover";
		 }
	}
	el.onmouseout = function() { if (el.className!=el.tabCntl.selClss) el.className="";}
	el.onclick = chngeTab;
	el.chngeTab = chngeTab;
	el.modNme = modNme;
	el.tabInit = tabInit;
	el.loadInit = loadInit;
	el.hideTab = hideTab;
	el.appendTabTxt = appendTabTxt;
	return el;
}

function addTab( modNme, elId, tabInit, loadInit, params ) {
	var el = addTabInit( modNme, elId, tabInit, loadInit );
	this.tabs.push(el)
	el.tabCntl = this;
	if (params == null ){
		params = "_tst="+ Math.floor(Math.random()*100);
	}
	else {
		params = "&_tst="+ Math.floor(Math.random()*100);
	}

	el.ajxurl = '/.module/'+  modNme + this.modPath + this.assetID + '?'+ params;

	dojo.io.bind({
		url: el.ajxurl,
		handler: function(type, data, evt ) {
			if( data != '') {
				modArray.push([modNme,data]);
                }else{
					el.hideTab("No data");
				}
			if(loadInit) el.loadInit(data)
		},
		error: function(type, error){
			console.error('Error when retrieving ' + modNme + ' from the server: '+ error.message );
		},
		timeoutSeconds: 3,
		timeout: function(type, data, evt){
			el.hideTab("Timeout");
			}
	});
}

function addRenderedTab( modNme, elId, tabInit, loadInit, rendEl ) {
	var el = addTabInit( modNme, elId, tabInit, loadInit );
	this.tabs.push(el)
	el.tabCntl = this;
	var data = rendEl.innerHTML;
	if( rendEl.getElementsByTagName('div').length > 1 ) {
		modArray.push([modNme,data]);
		if(loadInit) el.loadInit()
		return true;
	} else {
		el.hideTab("No data");
		if(this.tabs.length > 0) this.tabs[0].chngeTab();
		else console.debug("Couldn't switch away from bad tab");
		return false;
	}
}


function tabControl(trgDivId, modPath, assetID, ovrClss, selClss, tabLstId ){
	this.tabs = new Array();
	this.trgDiv=getEl(trgDivId);
	this.modPath=modPath;
	if (assetID) this.assetID = assetID;
	this.addTab = addTab;
	this.addRenderedTab = addRenderedTab;
	if (ovrClss) this.ovrClss = ovrClss;
	if (selClss) this.selClss = selClss;
	if (tabLstId) this.tabLst = getEl(tabLstId);
}


function videoListInit( trgDiv ) {
	// Will use this.trgDiv if trgDiv param not defined
	// Initialize video buttons
	var md = trgDiv.getElementsByTagName( 'div' );
	for (var h=0; h<md.length; h++ ) {
		if (md[h].className == "scvBx") {
			md[h].onmouseover = function() { this.className="scvBx hghLght";}
			md[h].onmouseout = function() { this.className="scvBx";}
		}
	}
}

// If this function is used in modules include dojo.require("dojo.html.util");
function insertNodeTextBefore( el, txt ) {
	var modNodes = dojo.html.createNodesFromText(txt,true)
	for(var i = 0; i < modNodes.length; i++) {
		el.parentNode.insertBefore(modNodes[i], el.previousSibling);
	}
}

// Positioning Functions
function findPos(obj) {
	var curleft = curtop = 0;
	curleft = getX(obj);
	curtop = getY(obj);
	return [curleft,curtop];
}

function getY( oElement )
{
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetTop;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}

function getX( oElement )
{
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetLeft;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}
function findPos_X(obj) {
	// works with IE
 	// used by Ad injection and A-Z search to place elements
    var left=0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            left+=obj.offsetLeft;
            obj=obj.offsetParent;
        }
    } else if (obj.x){left+=obj.x}

   return left;
} // this one works with IE, above "getX(elem)" doesn't
function findPos_Y(obj) {
 	// used by Ad injection and A-Z to place elements
 	var top=0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            top+=obj.offsetTop;
            obj=obj.offsetParent;
        }
        top+=obj.offsetTop;
    } else if (obj.x){top+=obj.y}
    return top;
}



// Login Functions
function AsnsSignIn( obj, leftOffSet, topOffSet ) {
	if (!leftOffSet) leftOffSet = 0;
 	if (!topOffSet) topOffSet = 0;
 	var pSNS = getEl("snsMiniUI");
 	pSNS.innerHTML = "";
 	pSNS.innerHTML += _sns_var_;
 	if ( document.all ) {
 		var pos = findPos(obj);
 		pSNS.style.position = 'absolute';
 		pSNS.style.left = (pos[0] + leftOffSet - 138) + 'px';
		pSNS.style.top =  (pos[1] + topOffSet + 12)  + 'px';

 	} else {
		obj.appendChild(pSNS);
		pSNS.style.left = leftOffSet + 'px';
		pSNS.style.top =  topOffSet  + 'px';
		pSNS.style.position = 'relative';
	}
	var close = document.createElement('div');
	close.style.height = "15px";
	close.style.width = "15px";
	close.style.cursor = "pointer";
	close.style.cssFloat = "right";
	close.style.styleFloat = "right";
	close.style.background = 'url(http://o.aolcdn.com/art/ch_music2/delete-sprite2)';
	close.style.margin = "3px 4px 4px 0px";
	close.setAttribute('title', 'Close');
	close.onclick = closeSNS;
	close.onmouseover = function(){this.style.backgroundPosition = '0 -15px';};
	close.onmouseout = function(){this.style.backgroundPosition = '0 0';};


	spans = pSNS.getElementsByTagName( "span" );
	spans[0].parentNode.style.height = "22px";
	spans[1].style.cssFloat = "right";
	spans[1].style.styleFloat = "right";
	spans[1].style.margin = "5px 0px 2px 10px";
	spans[0].style.margin = "5px 0px 2px 0";
	spanPar = spans[1].parentNode;
	spanPar.insertBefore(close,spans[1]);

	pSNS.style.zIndex = 5000;
 	pSNS.style.display = "block";
}
function closeSNS() {
	getEl("snsMiniUI").innerHTML = '';
}

function AsnsClose() {
 	pSNS = getEl("snsMiniUI");
 	pSNS.style.display = "none";
}

function getSelectedValue( selObj ){
	return selObj.options[selObj.selectedIndex].value;
}

 /*
	Construct an objectURI to store in TRRI.
	form of:
		urn:x-aol:oid:<entity-type>:<entity-source>:<entity-id>
		where entity-type = video
				entity-source = data store (pmmms/truveo)
				entity-id = assetID pmmmsId/truveoId
*/
function getObjectURI(entity_id, entity_source, entity_type){
	if(entity_type == null || entity_type == '')
		entity_type = 'video';
	if(entity_source == null || entity_source == '')
		entity_source = 'pmms';
	return ('urn:x-aol:oid:video:' + entity_source + ':' + entity_id);
}

// Search functions
searchb = 'music';

function searchState(initDiv) {

	//var initDiv = "srchSlctr";
	var tmpLst = document.getElementById(initDiv).getElementsByTagName('h6');
	for (var i=0; i<tmpLst.length; i++) {
		tmpLst[i].onclick = search_tab_slctSte;
	}
}

function search_tab_slctSte() {

	//this.parentNode.getElementsByTagName('h6');
	var elemToKill = document.getElementById('hdrTab');
	var newNode = document.getElementById('hdrTab').cloneNode(true);
	var oldNodeTxt = newNode.getElementsByTagName('h5')[0].innerHTML;

	newH6 = document.createElement('h6');
	newH6.innerHTML = oldNodeTxt;

	this.parentNode.insertBefore(newH6, elemToKill);
	elemToKill.parentNode.removeChild(elemToKill)
	this.parentNode.insertBefore(newNode, this);
	this.parentNode.removeChild(this);
	newNode.getElementsByTagName('h5')[0].innerHTML = this.innerHTML;
	searchState('srchSlctr');
	searchb = this.innerHTML;
	bb_dosrchby('bb_topform',links);
}

function doSrchOmni(term,type){
	var s_account="$!{cannae.getConfigProperty('cannae.omniture.music.s_account')}"
	s_265.prop20=term;
	s_265.prop21=type+": clicked";
	s_265.t();
}

function bb_dosrchby(sFo, links) {
	var t = defaultSrchTxtVal.toLowerCase();
 	eval('var sFormObj = document.'+ sFo);
	var searchQuery = sFormObj.query.value.toLowerCase();
	if(searchQuery == "" || searchQuery == t) return;
	doSrchOmni(searchQuery,searchb);
	var url = links[searchb.toLowerCase().replace(" ","")];
	url = url + encodeURIComponent(searchQuery);
	location.href = url;
}

//AJAX Functions
function musGetModCB(type, data, evt){
	if (type == 'error') {
        getEl( _gtargetEl ).innerHTML = "Your request could not be fullfilled successfully at this time. Please try again later." + type + ' - ' + data + ' - ' + evt;
	} else {
	   getEl( _gtargetEl ).innerHTML = data;
	   if ( (_gtargetEl == "vwrArea") && getEl('listView') != null){
		   	ovrStte.lstInit('listView', 'LstRllOn', 'LstRllOut');
	   	} else if ( _gtargetEl == "vwrArea" && getEl('gridImgs') != null ) {
		   	ovrStte.init('gridImgs', 'ivdImgCell', 'active');
		}
	}

}
// Get module by module name and assetID
// don't need host anymore
var _gtargetEl = '';
function musicGetMod(modNme, assetclass, targetEl, assetid, query) {
    var ajxurl = '/.module/'+modNme+'/music/' + assetclass + '/'+assetid+'?'+query;
    _gtargetEl = targetEl;
	/* */
	dojo.io.bind({
		method: "get",
		url: ajxurl,
		handler: musGetModCB
	});

}
function showToolTip(oCaller, ttID){document.getElementById(ttID).style.display = "block";}
function hideToolTip(oCaller, ttID){document.getElementById(ttID).style.display = "none";}

// GPL'd courtesy of http://www.jeffothy.com/weblog/clipboard-copy
// Needs swf file at <cannae.asset_url>/ch_music2/_clipboard.swf
function copyElToClip(el, swf ) {
	var field = document.createElement("textarea");
	field.appendChild( document.createTextNode(dojo.dom.textContent(el)) );
	copyFieldToClip(field, swf )
}
function copyFieldToClip(el, swf ) {
	console.debug(el + " value: ", el.value);
	if (el.createTextRange) {
		var range = el.createTextRange();
   		if (range) range.execCommand('Copy');
 	} else {
   		var flashcopier = 'flashcopier';
   		if(!getEl(flashcopier)) {
	     	var divholder = document.createElement('div');
	     	divholder.id = flashcopier;
	     	document.body.appendChild(divholder);
		}
		getEl(flashcopier).innerHTML = '';
		var divinfo = '<embed src="'+swf+'" FlashVars="clipboard='+escape(el.value)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
		getEl(flashcopier).innerHTML = divinfo;
	}
}

var advancedSearchShow = false;
function toggleAdvancedSearch(){
	var div = document.getElementById("adv_search");
	if (advancedSearchShow){
		advancedSearchShow = false;
		div.style.display = "none";
	} else {
		advancedSearchShow = true;
		div.style.display = "block";
	}
}

function getMetaFromPmmsId(pmmsId){
	var script = document.createElement('script');
	script.setAttribute('src', '/api/audio/getsongs?c=getMetaFromPmmsIdBack&trackAolId='+pmmsId+'&type=pmms&ran='+Math.random());
	document.body.appendChild(script);
}

function getMetaFromPmmsIdBack(json){
	alert(json);
}

//common js (added for seo tab selection)
var is_aol = navigator.userAgent.toLowerCase().indexOf("aol") != -1;
var is_mac = navigator.userAgent.indexOf('Mac') != -1;
var is_IE = navigator.userAgent.indexOf('MSIE') != -1;
// Start Channel
function channel_init(){
}

// Header2.0
function p_o(o){return document.getElementById(o);}

function ai_posX(obj){
 var left=0;
 if(obj.offsetParent){
  while(obj.offsetParent){
   left+=obj.offsetLeft;
   obj=obj.offsetParent;
  }
 }else if(obj.x)left+=obj.x;
 return left;
}
function ai_posY(obj){
 var top=0;
 if(obj.offsetParent){
  while(obj.offsetParent){
   top+=obj.offsetTop;
   obj=obj.offsetParent;
  }
 } else if(obj.x)top+=obj.y;
 return top;
}

function togMore(e,state){
 var oDiv=p_o('smore');
 if(state=='show'){
  posMore(e);
  oDiv.style.zIndex=99999999;
  oDiv.style.display='block';
 } else {
  oDiv.style.display='none';
 }
 return false;
}
function posMore(e){
	var oDiv=p_o('smore');
	var oLnk=p_o('smorea');
	posY = findMousePos(e);
	oDiv.style.left=(ai_posX(oLnk)+15)+'px';
	oDiv.style.top=(posY+oLnk.offsetHeight/2)+'px';
}
// Begin : Headers 2 code
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

function srchSub(ref){
  var frm=p_o("search");
  var queryval = frm.topquery.value.trim();
  queryval = queryval.replace( /\+/, " ");
  newurl = ref.href + queryval;
  window.location = newurl;
  return false;
}

function searchTarget(url, newWindow, newTarget) {
    // Set the target for the form
    document.bb_topform.action = url;
    if (newWindow) {
        document.bb_topform.target = '_blank';
    } else {
        document.bb_topform.target = '';
    }

    // Update the tabs classes to allow highlighting of the selected
    var arrElements = getElementsByClassName ('searchCatBg', 'li');
    for (var i=0; i<arrElements.length; i++) {
        arrElements[i].className = '';
    }
    document.getElementById(newTarget).className = 'searchCatBg';
if(document.bb_topform.query.value!="")
	submitHeaderSearch('onclick');
    return false;
}

function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr[arr.length] = objColl[i];
          //arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

function eventIsEnterKey(event) {
    if (event && event.which == 13 || window.event && window.event.keyCode == 13 || event && event.which == 3 || window.event && window.event.keyCode == 3) {
        return true;
    }
    return false;
}

function submitHeaderSearch(event) {
    if (event == "onclick" || eventIsEnterKey(event)) {
        return srchSub2();
    } else {
        return true;
    }
}

function srchSub2() {
    var frm=p_o("search");
    var queryval = frm.topquery.value.trim();
    queryval = encodeURIComponent(queryval.replace( /\+/, " "));
    var newurl = frm.action + queryval;
    if (frm.target == '_blank') {
        window.open(newurl, '_blank', '');
    } else {
        window.location = newurl;
    }
    return false;
}

//Prevent IE flickr
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

// Cards on table
var cott = {
    timeout: 3750,
    maxLink: 0,
    init: function() {
        var topLink = document.getElementById("toplink");
        var links = topLink.getElementsByTagName("A");
        cott.maxLink = links.length;
        if (links.length == 0) { return; }
        for(var i=0;i<links.length;i++) {
            links[i].style.backgroundColor = '#fff';
            links[i].style.zoom = 1;
            if (i>0) { links[i].style.display = 'none'; }
        }
        setTimeout("cott.rotateLink(2)", cott.timeout);
    },
    fadeTo: function(obj, lvl) {
        obj.style.filter = 'alpha(opacity=' + lvl*10 + ')';
        obj.style.opacity = lvl/10;
    },
    rotateLink: function (linkNo) {
        cott.displayNextLink(linkNo);
        var nextLink = linkNo + 1;
        if (nextLink > cott.maxLink) {
            nextLink = 1;
        }
        var t = setTimeout("cott.rotateLink(" + nextLink + ")", cott.timeout);
    },
    displayNextLink: function(linkNo) {
        var lastLink = linkNo-1;
        if (lastLink == 0) {
            lastLink = cott.maxLink;
        }
        cott.fade("cottLink"+lastLink, "cottLink"+linkNo, -9.9);
    },
    fade: function(from, to, stage) {
        if (!document.getElementById(from)) { return; }
        fobj = document.getElementById(from);
        if (!document.getElementById(to)) { return; }
        tobj = document.getElementById(to);
        if (stage < 0) {
            cott.fadeTo(fobj, Math.abs(stage));
        } else if (stage == 10) {
            cott.fadeTo(tobj, 9.9);
        } else if (stage == 0) {
            fobj.style.display = 'none';
            cott.fadeTo(tobj, 1);
            tobj.style.display = 'inline';
        } else {
            cott.fadeTo(tobj, stage);
        }
        if (stage != 10) {
            var b = setTimeout("cott.fade('" + from + "', '" + to + "', " + parseInt(stage+1) + ")", 40);
        }
    }
};

function buildCottImg(num) {
   var cPar = document.getElementById('card_' + num);
   var cImg = document.getElementById('image_' + num);
   var cPhoto = document.getElementById('photo_' + num);

   var newImg = new Image();

   if(navigator.userAgent.indexOf('MSIE') != -1) {
        newImg.setAttribute('src', cImg.href);
        newImg.setAttribute('alt', cImg.firstChild.nodeValue);
        cottDelay(100);
   } else {
     try
     {
         newImg.setAttribute('src', cImg);
         newImg.setAttribute('alt', cImg.innerHTML);
         cPhoto.appendChild(newImg);
     }
     catch (e)
     {
         //create html string for new input element
         var sHTML = "<a href=\"" + cPhoto + "\" target=\"_blank\"><img alt=\"" + cImg.innerHTML + "\" src=\"" + cImg + "\"></a>";
          cPhoto.innerHTML = sHTML;
     }
  }

   if (cPhoto != null) {
        try
        {
            cPhoto.appendChild(newImg);
        }
        catch (e){}
        cPhoto.removeAttribute("id");
        cImg.parentNode.removeChild(cImg);
   } else {
        try
        {
        newImg.parentNode.replaceChild(newImg,cImg);
        }
        catch (e){}
   }
     return false;
}

function cottDelay(millis) {
    var date = new Date();
    var curDate = null;
    do { curDate = new Date(); }
    while(curDate-date < millis);
}

function displayCottMods(firstMod) {

  modInst = modInst + firstMod;
  if(modInst == -1) {
      modInst = maxCards - 1;
  }

  for (var m=0; m<3; m++) {
     var inst = (modInst + m)%(maxCards);
     var topcard='showcard'+ m;
     var hiddenCardId = "card_" + inst;
     var parentDiv = document.createElement("div");
     var hiddenCard = document.createElement("div");

     if(document.getElementById('image_'+inst)) {
         buildCottImg(inst);

         if(navigator.userAgent.indexOf('MSIE') != -1) {
             cottDelay(200);
         }
     }

     hiddenCard.id = "slot_" + inst;
     hiddenCard.className = "card";
     hiddenCard.innerHTML = (document.getElementById(hiddenCardId).innerHTML);
     parentDiv.appendChild(hiddenCard);
     document.getElementById(topcard).innerHTML = parentDiv.innerHTML;
  }
    return false;
}

function cottInit() {

   displayCottMods(0);
   document.getElementById('topHiddenModules').className="hideCards";
   document.getElementById('arrows').className="show_arws";
   document.getElementById('showcard0').className="showCards";
   document.getElementById('showcard1').className="showCards";
   document.getElementById('showcard2').className="showCards";
}

// Shared functions

function findMousePos(e) {
	var posY = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posY = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posY = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	return posY;
}



//adRefresh
function adRefresh() {
var adSpots = '0';
try {
if (pgAdSpots != null && pgAdSpots != 'undefined' && pgAdSpots != '') {
adSpots = pgAdSpots;
}
} catch(e) {
adSpots = '0';
}
try {
top.ch_refresher.refresh_ads_by_spot(adSpots);
} catch(e) { }
return true;
}


// NON-MODULE CODE
function popup_window(url,width,height){
	var features="status=0,menubar=0,location=0,toolbar=0";
	if (!isNaN(parseInt(width))){features+=",width="+width;}
	if (!isNaN(parseInt(height))){features+=",height="+height;}
	if (typeof(window.screenLeft)!="undefined"){
		features+=",left="+window.screenLeft;
		features+=",left="+Math.round(window.screenLeft+((document.body.clientWidth/2)-(width/2)));
	} else if (typeof(window.screenX)!="undefined"){
		features+=",left="+Math.round(window.screenX+((window.outerWidth/2)-(width/2)));
	}
	if (typeof(window.screenTop)!="undefined"){
		features+=",top="+window.screenTop;
		features+=",top="+Math.round(window.screenTop+150);
	} else if (typeof(window.screenY)!="undefined"){
		features+=",top="+Math.round(window.screenY+((window.outerHeight-window.innerHeight)+150));
	}
	var popupWin=window.open(url,"popupWin",features);
	if (popupWin.focus){popupWin.focus();}
}

function popupWindow(url,width,height,features) {
	if (!isNaN(parseInt(width))){features+=",width="+width;}
	if (!isNaN(parseInt(height))){features+=",height="+height;}
	if (typeof(window.screenLeft)!="undefined"){
		features+=",left="+window.screenLeft;
		features+=",left="+Math.round(window.screenLeft+((document.body.clientWidth/2)-(width/2)));
	} else if (typeof(window.screenX)!="undefined"){
		features+=",left="+Math.round(window.screenX+((window.outerWidth/2)-(width/2)));
	}
	if (typeof(window.screenTop)!="undefined"){
		features+=",top="+window.screenTop;
		features+=",top="+Math.round(window.screenTop+150);
	} else if (typeof(window.screenY)!="undefined"){
		features+=",top="+Math.round(window.screenY+((window.outerHeight-window.innerHeight)+150));
	}
	var popupWin=window.open(url,"popupWin",features);
	//if (popupWin.focus){popupWin.focus();}
}

var is_flash = false; var flashVer = 7;
if (window.ActiveXObject && !is_mac) {document.write('<scr' + 'ipt language="VBScript">' + '\n' + 'On Error Resume Next' + '\n' + 'is_Flash = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & flashVer)))' + '\n' + '<\/sc' + 'ript>'); }
else {var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0; var pluginStr = plugin.description; if (plugin){ if (parseInt(pluginStr.substring(pluginStr.indexOf(".")-1)) >= flashVer) { is_flash = true; }}}

// gets the value of the query string
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
}

navigator.userAgent.toLowerCase().indexOf('msie')!=-1?bb_ie=1:bb_ie=0;

function bb_o(o){return document.getElementById(o);}

function bb_l(o){return o.getElementsByTagName("li");}

//Dynamic CSS manipulation tools.
function setClassByID(objectID, newClass)
{
        var object = document.getElementById(objectID);
        object.className = newClass;
}

function setClassByObj(senderObj, newClass)
{
        senderObj.className = newClass;
}

//This function recursivelly finds a DIV in a parent element.
//It is needed because the mozilla and ie doms have different hierarchies.
//Called from hiLiteRow, a top11deeplink function.
function recurseDiv(el)
{
        if (el.nodeName == "DIV")
        {
                return el;
        }
        else if (el.hasChildNodes)
        {
                for (i = 0 ; i < el.childNodes.length; i++)
                {
                        if (el.childNodes[i].nodeName == "DIV")
                        {
                                return el.childNodes[i];
                        }
                        else if (el.childNodes[i].hasChildNodes)
                        {
                                var returnEl = recurseDiv(el.childNodes[i]);
                                if (returnEl) return returnEl;
                        }
                }
        }
        else
        {return null};
}

// BEGIN Functions for ActiveX patch to IE/IE7 ------------------//
function FlashTag(src, width, height, version) {
    if (arguments.length < 4)
    {
        throw new Exception('RequiredAttributeException',
                            'You must pass in a src, width, height, and version when creating a FlashTag.');
    }

    for (var i = 0; i < arguments.length; ++i)
    {
        if (arguments[i] == undefined || arguments[i] == null)
        {
            throw new Exception('RequiredAttributeException',
                                'All constructor arguments must have values.');
        }
    }

    // Required
    this.src            =  src;
    this.width          =  width;
    this.height         =  height;
    this.version        =  version;

    this.id             =  null;
    this.flashVars      =  null;
    this.flashVarsStr   =  null;
    this.genericParam   = new Object();
    this.ie = (navigator.appName.indexOf ("Microsoft") != -1) ? 1 : 0;
}
FlashTag.prototype.setSource = function(src) {
    this.src = src;
}
FlashTag.prototype.setWidth = function(w) {
    this.width = width;
}
FlashTag.prototype.setHeight = function(h) {
    this.h = height;
}
FlashTag.prototype.setVersion = function(v) {
    this.version = v;
}
FlashTag.prototype.setId = function(id) {
    this.id = id;
}
FlashTag.prototype.setBgcolor = function(bgc) {
    if (bgc.charAt(0) != '#') bgc = '#' + bgc;
    this.genericParam['bgcolor'] = bgc;
}
FlashTag.prototype.addFlashVars = function(fvs) {
    this.flashVarsStr = fvs;
}
FlashTag.prototype.addFlashVar = function(n, v) {
    if (this.flashVars == null) this.flashVars = new Object();
    this.flashVars[n] = v;
}
FlashTag.prototype.removeFlashVar = function(n) {
    if (this.flashVars != null) this.flashVars[n] = undefined;
}
FlashTag.prototype.setSwliveconnect = function(swlc) {
    this.genericParam['swliveconnect'] = swlc;
}
FlashTag.prototype.setPlay = function(p) {
    this.genericParam['play'] = p;
}
FlashTag.prototype.setLoop = function(l) {
    this.genericParam['loop'] = l;
}
FlashTag.prototype.setMenu = function(m) {
    this.genericParam['menu'] = m;
}
FlashTag.prototype.setQuality = function(q) {
    if (q != 'low' && q != 'high' && q != 'autolow' && q != 'autohigh' && q != 'best')
    {
        throw new Exception('UnsupportedValueException',
                            'Supported values are "low", "high", "autolow", "autohigh", and "best".');
    }
    this.genericParam['quality'] = q;
}
FlashTag.prototype.setScale = function(sc) {
    if (sc != 'showall' && sc != 'noborder' && sc != 'exactfit' && sc != 'noscale')
    {
        throw new Exception('UnsupportedValueException',
                            'Supported values are "showall", "noborder", "exactfit, and "noscale".');
    }
    this.genericParam['scale'] = sc;
}
FlashTag.prototype.setAlign= function(a) {
    if (a != 'l' && a != 't' && a != 'r' && a != 'b')
    {
        throw new Exception('UnsupportedValueException',
                            'Supported values are "l", "t", "r" and "b".');
    }
    this.genericParam['align'] = a;
}
FlashTag.prototype.setSalign= function(sa) {
    if (sa != 'l' && sa != 't' && sa != 'r' && sa != 'b' && sa != 'tl' && sa != 'tr' && sa != 'bl' && sa != 'br')
    {
        throw new Exception('UnsupportedValueException',
                            'Supported values are "l", "t", "r", "b", "tl", "tr", "bl" and "br".');
    }
    this.genericParam['salign'] = sa;
}
FlashTag.prototype.setWmode = function(wm) {
    if (wm != 'window' && wm != 'opaque' && wm != 'transparent')
    {
        throw new Exception('UnsupportedValueException',
                            'Supported values are "window", "opaque", and "transparent".');
    }
    this.genericParam['wmode'] = wm;
}
FlashTag.prototype.setBase = function(base) {
    this.genericParam['base'] = base;
}
FlashTag.prototype.toString = function() {
    var flashTag = new String();
    if (this.ie)
    {
        flashTag += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
        if (this.id != null)
        {
            flashTag += 'id="'+this.id+'" ';
        }
        flashTag += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+this.version+'" ';
        flashTag += 'width="'+this.width+'" ';
        flashTag += 'height="'+this.height+'">';
        flashTag += '<param name="movie" value="'+this.src+'"/>';

        for (var n in this.genericParam)
        {
            if (this.genericParam[n] != undefined && this.genericParam[n] != null)
            {
                flashTag += '<param name="'+n+'" value="'+this.genericParam[n]+'"/>';
            }
        }

        if (this.flashVars != null)
        {
            var fv = this.getFlashVarsAsString();
            if (fv.length > 0)
            {
                flashTag += '<param name="flashvars" value="'+fv+'"/>';
            }
        }
        flashTag += '</object>';
    }
    else
    {
        flashTag += '<embed src="'+this.src+'"';
        flashTag += ' width="'+this.width+'"';
        flashTag += ' height="'+this.height+'"';
        flashTag += ' type="application/x-shockwave-flash"';
        if (this.id != null)
        {
            flashTag += ' name="'+this.id+'"';
        }

        for (var n in this.genericParam)
        {
            if (this.genericParam[n] != undefined && this.genericParam[n] != null)
            {
                flashTag += (' '+n+'="'+this.genericParam[n]+'"');
            }
        }
        if (this.flashVars != null || this.flashVarsStr != null)
        {
            var fv = this.getFlashVarsAsString();
            if (fv.length > 0)
            {
                flashTag += ' flashvars="'+fv+'"';
            }
        }
        flashTag += ' pluginspage="http://www.macromedia.com/go/getflashplayer">';
        flashTag += '</embed>';
    }
    return flashTag;
}
FlashTag.prototype.write = function(doc) {
    doc.write(this.toString());
}
FlashTag.prototype.getFlashVarsAsString = function() {
    var qs = new String();
    for (var n in this.flashVars)
    {
        if (this.flashVars[n] != undefined && this.flashVars[n] != null)
        {
            qs += (escape(n)+'='+escape(this.flashVars[n])+'&');
        }
    }

    if (this.flashVarsStr != null) return qs + this.flashVarsStr;

    return qs.substring(0, qs.length-1);
}
FlashTag.prototype.setParams = function( id, bgc, fvs, swlc, p, l, m, q, sc, a, wm, base ) {
    if (id != null) this.id             =  id;
    if (fvs != null) this.flashVarsStr   =  fvs;

    if (bgc != null) this.setBgcolor(bgc);
    if (swlc != null) this.setSwliveconnect(swlc);
    if (p != null) this.setPlay(p);
    if (l != null) this.setLoop(l);
    if (m != null) this.setMenu(m);
    if (q != null) this.setQuality(q);
    if (sc != null) this.setScale(sc);
    if (a != null) this.setAlign(a);
    if (wm != null) this.setWmode(wm);
    if (base != null) this.setBase(base);
}
function writeOnLoad() {
         try {
                 if ( typeof flashTagParams != "undefined" ) {
                         var tag =  new FlashTag(flashTagParams.src, flashTagParams.width, flashTagParams.height, flashTagParams.version );
                         document.write(tag.toString());
                 }
         } catch(ex) {
                // Do nothing
         }
}
writeOnLoad();
// END Functions for ActiveX patch to IE/IE7 ------------------//

function rsiAdInit(segmax) {

    var segQS="";
    var segs_beg=document.cookie.indexOf('rsi_segs=');
    if(segs_beg>=0){
        segs_beg=document.cookie.indexOf('=',segs_beg)+1;
        if(segs_beg>0){
            var segs_end=document.cookie.indexOf(';',segs_beg);
            if(segs_end==-1)segs_end=document.cookie.length;
            rsi_segs=document.cookie.substring(segs_beg,segs_end).split('|');
            for (var i=0;i<Math.min(segmax,rsi_segs.length);i++){
                segQS+=rsi_segs[i].replace(/.*_(.*)/,"rsi=$1;");
            }
            adSetOthDclk(segQS);
       }
    }
}

/* Begin: Code for video promo module*/

var vpObject = function() {
    this.totalImg = 0;
    this.vpTimer = 0;
    this.currImg = 0;
    this.imgSrcArray = new Array();
    this.imgCrdArray = new Array();
    this.ovrArray = new Array();
    this.vpOpTimer = 0;
    this.rotInt = 5;
    this.fadeSpeed = 50;
}

function vpClass() {

    var setOpacity = function(mId,id,value) {

        var object = ge(id).style;
        //beat the IE bug
        if(document.all)
            object.zoom=1;

        object.opacity = (value / 10);
    	object.MozOpacity = (value / 10);
    	object.KhtmlOpacity = (value / 10);
    	object.filter = "alpha(opacity=" + value*10 + ")";
    }

    var ovrlayDomCreate = function(mId){
        var mI = window['vpMod_'+mId];
        var d = window.document;
        var pLnk = ge('vpImgLnk_'+mId);
        var imgCnt = ge('vpImgCnt_'+mId);

        a = d.createElement('a');
        a.className = 'ovrLay';
        a.id = 'vpOvrLnk_'+mId;
        a.href = pLnk.href;
        a.innerHTML = '&nbsp;';

        wd = d.createElement('div');
        wd.className = 'overLayWrp';
        wd.appendChild(a);
        imgCnt.appendChild(wd);
        pLnk.onclick = ge('lkLst'+mId+'_'+mI.currImg).onclick;
    }

    var next = function(mId) {
        var ovrlayDiv = '<div class="overLayWrp"><a href="http://food.aol.com/tyler-florence?video=3" class="ovrLay" id="vpOvrLnk_12190">&nbsp;</a></div>';
        var objId = 'vpMod_'+mId;
        var mI = window[objId];
        var fadeInt = 0;// fading speed
        //it is necessary to clear the previous timer as the user's next click may break the sequence
        clearTimeout(mI.vpTimer);
        setOpacity(mId,'vpImgCnt_'+mId,10);

        //current highlighted list item
        var curlkLst = 'lkLst'+mId+'_'+mI.currImg;
        //fade out the current image
        for(var i=10;i>=0;i--) {
            fn = "vpClassObj.setOpac('"+mId+"','vpImgCnt_" + mId + "','" + i + "')";
            setTimeout(fn,fadeInt);
            fadeInt+=mI.fadeSpeed;;
        }

        //remove the highlight from current list item
        fn = "document.getElementById('"+curlkLst+"').className=''";
        setTimeout(fn,fadeInt);

        fn = "window.vpClassObj.showNextWrap('"+mId+"')";
        mI.vpTimer = setTimeout(fn,fadeInt);
    }

    var showNext = function(mId) {
        var objId = 'vpMod_'+mId;
        var mI = window[objId];

            var fadeInt = 0;//fading speed

            if(++mI.currImg >= mI.totalImg) {
                mI.currImg = 0;
            }

            //remove highlight from the current link and add to next link
            var curlkLst = 'lkLst'+mId+'_'+mI.currImg;
            ge(curlkLst).className = "highlight";

            //update credit text , image and the overlay image
            ge('ptCredit_'+mId).innerHTML = mI.imgCrdArray[mI.currImg];
            ge('vpImgCnt_'+mId).innerHTML = mI.imgSrcArray[mI.currImg];
            if(mI.ovrArray[mI.currImg] == 1) {
                ovrlayDomCreate(mId);
            }
            //fade in the new image
            for(var i=0;i<=10;i++) {
                fn = "vpClassObj.setOpac('"+mId+"','vpImgCnt_" + mId + "','" + i + "')";
                mI.vpTimer=setTimeout(fn,fadeInt);
                fadeInt+=mI.fadeSpeed;
            }
            scroll(mId,(mI.rotInt-(mI.fadeSpeed/1000)));
    }

    var prev = function(mId) {
        var objId = 'vpMod_'+mId;
        var mI = window[objId];
        var fadeInt = 0;// fading interval
        //it is necessary to clear the previous timer as the user's next click may break the sequence
        clearTimeout(mI.vpTimer);
        setOpacity(mId,'vpImgCnt_'+mId,10);

        //current highlighted list item
        var curlkLst = 'lkLst'+mId+'_'+mI.currImg;
        //fade out the current image
        for(var i=10;i>=0;i--) {
            fn = "vpClassObj.setOpac('"+mId+"','vpImgCnt_" + mId + "','" + i + "')";
            setTimeout(fn,fadeInt);
            fadeInt+=mI.fadeSpeed;;
        }

        //remove the highlight from current list item
        fn = "document.getElementById('"+curlkLst+"').className=''";
        setTimeout(fn,fadeInt);

        fn = "window.vpClassObj.showPrevWrap('"+mId+"')";
        mI.vpTimer = setTimeout(fn,fadeInt);
    }

    var showPrev = function(mId) {
        var objId = 'vpMod_'+mId;
        var mI = window[objId];

            var fadeInt = 0;//fading speed

        if(--mI.currImg < 0) {
            mI.currImg = parseInt(mI.totalImg-1);
        }

            //remove highlight from the current link and add to next link
            var curlkLst = 'lkLst'+mId+'_'+mI.currImg;
            ge(curlkLst).className = "highlight";

            //update credit text and image
            ge('ptCredit_'+mId).innerHTML = mI.imgCrdArray[mI.currImg];
            ge('vpImgCnt_'+mId).innerHTML = mI.imgSrcArray[mI.currImg];
            if(mI.ovrArray[mI.currImg] == 1) {
                ovrlayDomCreate(mId);
            }
            //fade in the new image
            for(var i=0;i<=10;i++) {
                fn = "vpClassObj.setOpac('"+mId+"','vpImgCnt_" + mId + "','" + i + "')";
                mI.vpTimer=setTimeout(fn,fadeInt);
                fadeInt+=mI.fadeSpeed;
            }
            scroll(mId,(mI.rotInt-(mI.fadeSpeed/1000)));
    }

    var scroll = function(mId,time) {
        var objId = 'vpMod_'+mId;
        mI = window[objId];
        var fn = "window.vpClassObj.vpNextImg('"+mId+"')";
        mI.vpTimer = setTimeout(fn,1000*time);
    }

    var ge = function(id){return document.getElementById(id);}

    return {

        vpNextImg : function(mId) {
            next(mId);
        },

        vpPrevImg : function(mId) {
            prev(mId);
        },

        autoScroll : function(mId,time) {
            scroll(mId,time);
        },

        stopScroll : function(mId) {
            var objId = 'vpMod_'+mId;
            mI = window[objId];
            clearTimeout(mI.vpTimer);
        },

        setOpac : function(mId,objId,value) {
            setOpacity(mId,objId,value);
        },

        showNextWrap: function(mId) {
            showNext(mId);
        },

        showPrevWrap: function(mId) {
            showPrev(mId);
        }

    };

}

var vpClassObj = new vpClass();
/* End code for video promo module */

// Tag Cloud/List (Blog Chatter)
function showTags()
{
    if (iTagType == 1) // Show as Cloud
    {
        caption = "List";
        iTagType = 2;
        document.getElementById("newsTagCloud").style.display = "block";
        document.getElementById("newsTagList").style.display = "none";
    }
    else // Show as List
    {
        caption = "Cloud";
        iTagType = 1;
        document.getElementById("newsTagCloud").style.display = "none";
        document.getElementById("newsTagList").style.display = "block";
    }
    document.getElementById("newsTagTypeAnc").innerHTML = caption;
}
// End: Tag Cloud/List (Blog Chatter)

// Mouse Over Popup for What are Tags? (Blog Chatter)
function showWhatPop(iShow)
{
    if (iShow == 1) {
        document.getElementById("popMainCont").style.display = "block";
    } else {
        document.getElementById("popMainCont").style.display = "none";
    }
}
// End: Mouse Over Popup for What are Tags? (Blog Chatter)

// Top Videos
var AOLVS = null;
var theHTML =null;
var query = null;
var tab =0;
var tabtopic = null;
var numbertab = null;
var currentSlide = 0;
var vidArray = new Array();
var maxChar = null;

function handlePageLoad() {
    numbertab = document.getElementById("videotab").getElementsByTagName('li');
    AOLVS = new AOLVideoSearch('sskxzi7esi3tjgqvl');

    AOLVS.results = arguments[1];
	query = arguments[0];
	maxChar = arguments[2];
    AOLVS.attachEvent('onload', 'handleVSLoad(query, 0);');
    AOLVS.attachEvent('onupdate', 'handleUpdate();');
    AOLVS.initialize();
}

function loadVideo(){
    handleVSLoad(arguments[0],arguments[1]);
    initvideo = null;
    currentSlide=0;
    return initvideo;
}

function handleVSLoad() {
    displayMessage();
    tabtopic = arguments[1];
    param = arguments[0];
    AOLVS.getVideos(arguments[0]);
    activeTab(arguments[1]);
    return tabtopic;
}

function activeTab(){
    for(var v=0; v<numbertab.length; v++){
        if (arguments[0] != v) {
            document.getElementById("tb."+v).className = '';
        }
    }
    document.getElementById("tb."+arguments[0]).className = 'selected';
}

function displayMessage() {
    theHTML = '<div style="text-align:center;clear:both;height:85px;width:308px;background-color:#f3f3f3;border-top:45px solid #f3f3f3;"><img src="http://myfeeds.aolcdn.com/vis/progress_animation.gif"> Loading...</div>';
    document.getElementById('video_results').innerHTML = theHTML;
}

function vidSlide(direct) {
    if (direct == 1){
        if (currentSlide + 1  == AOLVS.results){
            currentSlide = 0;
        } else if (currentSlide +1 < AOLVS.results){
            currentSlide += 1;
        }
    } else {
        if (currentSlide == 0) {
            currentSlide = AOLVS.results-1;
        } else if (currentSlide -1 >= 0) {
           currentSlide -=1;
        }
    }
    document.getElementById('tally').innerHTML = '      '+(currentSlide + 1)+ '  of  ' + '  '+AOLVS.results+'      ';
    document.getElementById('video').innerHTML = vidArray[currentSlide];
}

function intializeSeq() {
    initVidHTML = vidArray[0];
    document.getElementById('video').innerHTML = initVidHTML;
}

function handleUpdate() {
    theHTML = '';
    initHTML ='';
    viewAllHTML = '';

    switch(tabtopic){
		case 0:
            viewAllHTML += '<a href="http://video.aol.com/video-search/query/category%3A%22News%22%20channel%3A%22AOL%20News%22%20sort%3AmostRecent%20distributor%3A%22AP%22/familyFilter/0" target="_blank">See all AP Videos</a>';
            break;
        case 1:
            viewAllHTML += '<a href="http://video.aol.com/video-search/query/category%3A%22News%22%20channel%3A%22AOL%20News%22%20sort%3AmostRecent%20distributor%3A%22CNN%22/familyFilter/0" target="_blank">See all CNN Videos</a>';
            break;
        case 3:
            viewAllHTML += '<a href="http://video.aol.com/video-search/query/category%3A%22News%22%20channel%3A%22AOL%20News%22%20sort%3AmostRecent%20distributor%3A%22CBS%22/familyFilter/0" target="_blank">See all CBS Videos</a>';
            break;
        case 2:
            viewAllHTML += '<a href="http://video.aol.com/video-search/query/category%3A%22News%22%20channel%3A%22AOL%20News%22%20sort%3AmostRecent%20distributor%3A%22Reuters%22/familyFilter/0" target="_blank">See all Reuters Videos</a>';
            break;
    }

    theHTML +='<div id="video">';

    if ( AOLVS.VideoSet.totalResultsReturned < AOLVS.results ) {
        AOLVS.results = AOLVS.VideoSet.totalResultsReturned;
	}

    if ( AOLVS.VideoSet.totalResultsReturned > 0 ) {
        for (var i=0; i < AOLVS.VideoSet.totalResultsReturned; i++) {
            var caption = AOLVS.VideoSet.Video[i].description;
            var charCount = new description(caption, maxChar);
            vidArray[i] ='<div id="vid.'+i+'" class="tab"><div class="video_content"><p class="news_title">'+ AOLVS.VideoSet.Video[i].title+'</p><div class="news_image"><a href="'+AOLVS.VideoSet.Video[i].videoUrl +'" target="_blank" class="img"><img src="'+ AOLVS.VideoSet.Video[i].thumbnailUrl +'" width="116" height="82"></a></div><p class="news_content">'+ charCount.characherCount() +'<span class="details">'+ viewAllHTML+'</span></p><div class="clear"></div></div></div>';
        }
        theHTML += '</div>';
        theHTML += '<div class="top_ftr">';
        theHTML += '<span class="prev"><a href="javascript:void(0);" onClick="vidSlide();return false;">< Previous</a></span>';
        theHTML += '<span id="tally" class="count">'+'      1 of '+ '     '+AOLVS.results+'   </span>';
        theHTML += '<span class="nxt"><a href="javascript:void(0);" onClick="vidSlide(1);return false;">Next ></a></span>';
        theHTML += '</div>';

        document.getElementById('video_results').innerHTML = theHTML;
        intializeSeq();
    }
}

function countChar(){
    if (this.desclength > this.descmax){
        this.desc = this.desc.substring(0, this.descmax)+'...';
    }else{
        this.desc = this.desc;
    }
    return this.desc;
}

function description(caption, descriptionmax){
    this.desc = caption;
    this.desclength = caption.length;
    this.descmax = descriptionmax;
    this.characherCount = countChar;
}
// End: Top Videos

// Start:  SHARE THIS WIDGET JS

var sharePopFlag = true;                             //variable for onclick popup

function showShareThisPop(topDivId, botDivId)        //function to call the popup onclick
{
    if (sharePopFlag)
    {
        document.getElementById('shareLeftIDBB').style.borderBottom = "1px solid #000";
        document.getElementById(botDivId).style.display = "block";
        document.getElementById(topDivId).className = "share_right_on";
    }
    else
    {
        document.getElementById('shareLeftIDBB').style.borderBottom = "none";
        document.getElementById(botDivId).style.display = "none";
        document.getElementById(topDivId).className = "share_right";
    }
    sharePopFlag = !sharePopFlag;
}

function shareOperation(iOperation, strUrl, strTitle)
{
    var staf_obj = new staf_SE();
    staf_obj.setLang("en-US");
    if (strUrl != "")
    {
        staf_obj.setURL(strUrl);
    }
    if (strTitle != "")
    {
        staf_obj.setTitle(strTitle);
    }
    if (iOperation == 1) // IM This
    {
        staf_obj.sendIM();
    }
    else
    {
        staf_obj.sendEmail();
    }
}

function mouseoverup()
{
    document.getElementById("thumbsup").className="thumbsup_on";
}

function mouseoutup()
{
    document.getElementById("thumbsup").className="thumbsup";
}

function mouseoverdown()
{
    document.getElementById("thumbsdown").className="thumbsdown_on";
}

function mouseoutdown()
{
    document.getElementById("thumbsdown").className="thumbsdown";
}

// End: SHARE THIS WIDGET JS

// Start: News Article - User Comments JS
// rating
var xmlHttpRating;

function getRating(objectURI, category, type, score, appId) {
    var procName = "dms.trri.addRatingAndGet"
    var parameters = objectURI + ',' + category + ',' + type  + ',' + score + ',' + appId;

     if (window.ActiveXObject) {
        xmlHttpRating = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttpRating = new XMLHttpRequest();
    }

    xmlHttpRating.onreadystatechange = handleStateChange;

    var ourl = document.URL;

    //url="http://sports.channel.office.aol.com/httprequest.adp"
    var ind = ourl.indexOf('aol.com/');
    var url = ourl.substring(0, ind+8);
    url += 'httprequest.adp';

    url = url + "?_pn=" + procName;
    if (parameters!="")
    {
          url = url + "&_pa=" + parameters;
    }

    url += '&date=' + new Date().getTime();

    //alert(url);
    xmlHttpRating.open("GET", url, true);
    xmlHttpRating.setRequestHeader("Accept", "text/xml");
    xmlHttpRating.send(null);
}

function handleStateChange() {
    if(xmlHttpRating.readyState == 4) {
        if(xmlHttpRating.status == 200) {
            if(xmlHttpRating.responseText.length) {
                var result = xmlHttpRating.responseText.substring(1, xmlHttpRating.responseText.length - 1 );
                var results = result.split(" ");
                document.getElementById('label').innerHTML = "Thanks";
                document.getElementById('thumbsup').innerHTML = '<img src="http://www.aolcdn.com/ch_news/news-icon-thumbup" title="Thumbs Up" border="0" class="images" />' + results[0] + ' %';
                document.getElementById('thumbsdown').innerHTML = '<img src="http://www.aolcdn.com/ch_news/news-icon-thumbdown" title="Thumbs Up" border="0" class="images" />' + results[1] + ' %';
                document.getElementById('total').innerHTML = results[2] + ' VOTES';
                mouseoutup();
                mouseoutdown();
            }
        }
    }
}


// comment

var xmlHttpComment;

function displayComments(start) {
    var uri = document.getElementById("cmmt_uri").value;
    var category = document.getElementById("cmmt_category").value;
    var assetType = document.getElementById("cmmt_assetType").value;
    var appID = document.getElementById("cmmt_appID").value;
    var numCmmt = document.getElementById("cmmt_numCmmt").value;
    var AddBtnLbl = document.getElementById("cmmt_AddBtnLbl").value;
    var CanBtnLbl = document.getElementById("cmmt_CanBtnLbl").value;
    var reportThis = document.getElementById("cmmt_reportThis").value;
    var thisurl = document.getElementById("cmmt_thisurl").value;

    var procName = "dms.trri.displayReviews"
    var del=',';
    var parameters = uri;
    parameters += del + category;
    parameters += del + assetType;
    parameters += del + appID;
    parameters += del + start;
    parameters += del + numCmmt;
    parameters += del + AddBtnLbl;
    parameters += del + CanBtnLbl;
    parameters += del + reportThis;
    parameters += del + thisurl;

    if (window.ActiveXObject) {
        xmlHttpComment = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttpComment = new XMLHttpRequest();
    }

    xmlHttpComment.onreadystatechange = readyForComments;

    var ourl = document.URL;

    var ind = ourl.indexOf('aol.com/');
    var url = ourl.substring(0, ind+8);
    url += 'httprequest.adp';

    url = url + "?_pn=" + procName;
    if (parameters!="")
    {
          url = url + "&_pa=" + parameters;
    }

    url += '&date=' + new Date().getTime();

    //alert(url);
    xmlHttpComment.open("GET", url, true);
    xmlHttpComment.setRequestHeader("Accept", "text/xml");
    xmlHttpComment.send(null);
}

function readyForComments() {
    if(xmlHttpComment.readyState == 4) {
        if(xmlHttpComment.status == 200) {
            document.getElementById('cmmntBox').innerHTML = xmlHttpComment.responseText;
            //checks cookie for hide/show
        	checkCookie('cmnt');
        }
    }
}


function submitComments()
{
    /* if no screen_name for page, use sns screen name */

    if (screen_name=="") {
        screen_name = loginId;
    }
    submitCommentsWithSN(screen_name);

}
var xmlHttpAddComment;
function submitCommentsWithSN(sn)
{
    var comment = document.getElementById("addCommentHere").value;
	if(comment == null || comment.length < 1 || comment == 'Type your own comment here')
		return;

    var uri = document.getElementById("cmmt_uri").value;
    var category = document.getElementById("cmmt_category").value;
    var assetType = document.getElementById("cmmt_assetType").value;
    var appID = document.getElementById("cmmt_appID").value;

    procName = "dms.trri.addReview";

    var del='|';
    parameters = uri;
    parameters += del + sn;
    parameters += del + comment;
    parameters += del + category;
    parameters += del + assetType;
    parameters += del + appID;

    if (window.ActiveXObject) {
        xmlHttpAddComment = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttpAddComment = new XMLHttpRequest();
    }

    xmlHttpAddComment.onreadystatechange = afterAddComments;

    var ourl = document.URL;

    var ind = ourl.indexOf('aol.com/');
    var url = ourl.substring(0, ind+8);
    url += 'httprequest.adp';

    data = "_pn=" + procName;
    data += "&_pa=" + parameters;
    data += "&_del=" + del;

    xmlHttpAddComment.open("POST",url,true);
    xmlHttpAddComment.setRequestHeader("Accept", "text/xml");
    xmlHttpAddComment.send(data);
}

function afterAddComments()
{
     if(xmlHttpAddComment.readyState == 4) {
        if(xmlHttpAddComment.status == 200) {
            var status = xmlHttpAddComment.responseText;
		    if (status == '1') {
                displayComments(0);
            } else {
                document.getElementById('ucMsg').innerHTML = "Your comment could not be successfully saved at this time. Please try again later."
            }
        }
    }
}

//Enforce maxlength attribute of usercomments textarea.
function checkMaxLength(obj) {
	var maxLength = obj.getAttribute('maxlength');
	var currentLength = obj.value.length;

	if (currentLength > maxLength)
		obj.value=obj.value.substring(0,maxLength)

	var counter = getEl(obj.getAttribute('counter'));
	counter.firstChild.nodeValue = currentLength + '/' + maxLength;
	// not innerHTML
}

// Login Functions
/*function AsnsSignIn() {
 	pSNS = getEl("snsMiniUI");
	pSNS.innerHTML = "";
	pSNS.innerHTML = _sns_var_;
	pSNS.style.display = 'block';
}*/

function getEl( id ){
    return document.getElementById( id );
}

function showToolTip(oCaller, ttID){
	document.getElementById(ttID).style.display = "block";
}

function hideToolTip(oCaller, ttID){
	document.getElementById(ttID).style.display = "none";
}
// End: News Article - User Comments JS

/****
Project: light xmlhttp library
Author : Amit Rai
Version : 1
****/


function xL(url,requestType,isAsync,requestData){

    var _url="";
    var _requestType="";
    var _isAsync=true;
    var _initialized=false;
    var _xmlHttpObject=false;
    var _valueStr="";
    var _requestData=new Object();
    var _debugMode=false;
    var _responseHandler=function(obj){};
    var _errMsg = "";

    var debugMsg = function(msg)
    {
        if(_debugMode)
        {
            alert(msg);
        }
    }

    var trim = function(str)
    {
           return str.replace(/^\s*|\s*$/g,"");
    }

    var createRequestValueString = function ()
    {
        var str=new String();
        var aObject = _requestData;

        for(var key in aObject)
        str=str+"&"+key+"="+aObject[key];

        if(_requestType=="GET")
        str="?"+str;

        return encodeURI(str);
    }

    var createXmlHttpObject = function ()
    {

        if(window.XMLHttpRequest && !(window.ActiveXObject))
        {// FF , mozilla and safari
            try
            {
                req = new XMLHttpRequest();

            }
            catch(e)
            {
                req = false;
            }
        }
        else if(window.ActiveXObject)
        {// IE Windows ActiveX version
               try
            {
                req = new ActiveXObject("Msxml2.XMLHTTP");
              }
            catch(e)
            {
                try
                {
                      req = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e)
                {
                      req = false;
                }
            }
        }
        return req;
    }

    var init = function(url,requestType,isAsync,requestData)
    {

        if(url.length>11 && requestType.length>2)
        {
            _url=encodeURI(url);
            _requestType=requestType.toUpperCase();
            _initialized=true;
            _isAsync=isAsync;
            _xmlHttpObject = createXmlHttpObject();
            _requestData = requestData;
            _valueStr = createRequestValueString();
        }
        else
        {
            debugMsg("Initialization data is not correct!");
        }

    }

    init(url,requestType,isAsync,requestData);

    var sendGetRequest = function()
    {
            if(_xmlHttpObject)
        {
            _xmlHttpObject.onreadystatechange = function(){_responseHandler(_xmlHttpObject)};
            try
            {
                _xmlHttpObject.open(_requestType, _url+_valueStr, _isAsync);
                _xmlHttpObject.send(null);
            }
            catch(e)
            {
                _errMsg = e;
            }
        }
        return _errMsg;
    }

    var sendPostRequest = function()
    {
        if(_xmlHttpObject)
        {
            _xmlHttpObject.onreadystatechange = function(){_responseHandler(_xmlHttpObject)};
            try
            {
                _xmlHttpObject.open(_requestType, _url, _isAsync);
                _xmlHttpObject.send(_valueStr);
            }
            catch(e)
            {
                _errMsg = e;
            }
        }
        return _errMsg;
    }

    var sendHeadRequest = function()
    {
        if(_xmlHttpObject)
        {
            _xmlHttpObject.onreadystatechange = function(){_responseHandler(_xmlHttpObject)};
        try
        {
            _xmlHttpObject.open(_requestType, _url, _isAsync);
            _xmlHttpObject.send(null);
        }
        catch(e)
        {
            _errMsg = e;
        }
        }
        return _errMsg;
    }

    var alertAll = function()
    {
        if(_debugMode)
        {
            alert("_url = "+ _url + "\n _requestType= " + _requestType + "\n _isAsync= " + _isAsync);
            alert("_initialized " + _initialized + "\n _xmlHttpObject " +_xmlHttpObject + "\n _valueStr " +_valueStr);
        }
    }

    alertAll();

    return {

        abortRequest : function()
        {
            if(_xmlHttpObject.readyState!=4)
            {
                _xmlHttpObject.onreadystatechange = function (){};
                _xmlHttpObject.abort();
            }
        },

        getXmlHttpObject : function() {
            return createXmlHttpObject();
        },

        init : function(url,requestType,isAsync,requestData) {
            init(url,requestType,isAsync,requestData);
        },

        sendRequest : function()
        {
            switch (_requestType)
            {
                case "GET":
                    sendGetRequest();
                    break;
                case "POST":
                    sendPostRequest();
                    break;
                case "HEAD":
                    sendHeadRequest();
                    break;
                default:
                    debugMsg(_requestType + " : request type not found");
            }

            return _errMsg;
        },

        setResponseHandler : function(functionObj)
        {
            if((typeof functionObj)=="function"){
                _responseHandler = functionObj;
            }
        },

        setDebugMode : function(debug)
        {
            if(typeof(debug)=="boolean"){
                _debugMode=debug;
            }
        }

    };//end return
} //end Xlib

/*Start:  JS code for the News Photogallery*/
//global news photogallery object loaded with default values,
//needs to be overridden on per module instance basis

var pgGlbObject = function() {
    this.pgTotalImages = 0;
    this.pgGalleryId = 0;
    this.glbPgTimer = 0;
    this.glbCurrentImg = 1;
    this.navAction = '';
    this.omnitureURL = 'omni_track';
    this.xmlUrl = 'common/photogallery/response.xml?&id=3&index=2&feedtype=news&navAction=next';
    this.feedType = 'news';
    this.magicNumber = 0;
    this.adContinue = 'See More Pictures';
    this.adCaption = 'ADVERTISEMENT';
    this.isAd = 0;
    this.gallerySize = '';
    this.adSpot = '';
	this.photoPage = 0;
}

function appInit(modId){
    var debugMode = false;
    mI = window[modId];
    var queryParam = new Object();
    var requestParameters = new String();
    var today = new Date();

    if(mI.isAd == 0) {
       updateTallyNumber(modId);
    }

    queryParam['id'] = mI.pgGalleryId;
    queryParam['index'] = mI.glbCurrentImg;
    queryParam['feedtype'] = mI.feedType;
    queryParam['navAction'] = mI.navAction;
    queryParam['magicnumber'] = mI.magicNumber;
    queryParam['ts'] = today.getSeconds();
    queryParam['isAd'] = mI.isAd;
    queryParam['gallerySize'] = mI.gallerySize;
    url = mI.xmlUrl;

    reqType='GET';

    if(debugMode) {
        alert('id = '+mI.pgGalleryId + ' index= ' + mI.glbCurrentImg + ' feedtype= '+mI.feedType+' navAction= '+mI.navAction+' isAd= '+mI.isAd+' gallerySize= '+mI.gallerySize);
    }
    var objLap = new xL(url,reqType,true,queryParam);

    var serverErrorHandler = function(statusCode,statusMsg)
    {
        if(debugMode) {
            alert("Error Code : " + statusCode + " Message : " + statusMsg);
        }
    }

    var responseHandler = function(req)
    {
        if(mI.glbPgTimer==0)
        {
            var timeOutErr = function()
            {
                clearTimeout(mI.glbPgTimer);
                objLap.abortRequest();
            }
            mI.glbPgTimer = setTimeout(timeOutErr,5000);
        }
        // only if req shows "loaded"
        if (req.readyState == 4)
        {
            if (req.status == 200)
            {
                resXML = req.responseXML;
                resTxt = req.responseText;
                uaStr = navigator.userAgent.toLowerCase();
               // Firefox has issue reading the xml returned from server
               if(uaStr.indexOf('firefox') != -1) {
                   if (document.implementation.createDocument && typeof(window.DOMParser) != "undefined") {
                       var parser = new DOMParser();
                       resXML = parser.parseFromString(resTxt, "text/xml");
                   }
               }
                updateGallery(resXML,modId);
            } else {
                if(debugMode) {
                    alert("Error : "+req.getAllResponseHeaders());
                }
            }
        }
        //end main if else
    }

    objLap.setResponseHandler(responseHandler);

    err=objLap.sendRequest();

    if(err.length>0 && debugMode==true)
    {
        alert(err);
    }
}

function updateGallery(resXML,modId) {
    var debugMode = false;
    var i = 0;
    var mod = "_" + modId;
    var mI = window[modId];
    var root = document.getElementById('newsmaker_'+modId);

    //only if the proper data is returned
    if(resXML.getElementsByTagName("img")[0]) {
        document.getElementById('ad'+mod).style.display='none';

        //set the required values from xml fragment
        var isAd = getNodeValue(resXML.getElementsByTagName("isAd")[0]);
        if (isAd != "1") {
            var pgCredit = getNodeValue(resXML.getElementsByTagName("pgcredits")[0]);
            var photoCaption = getNodeValue(resXML.getElementsByTagName("photocaption")[0]);
            var imgSrc = resXML.getElementsByTagName("img")[0].getAttribute('src');
            var imgAlt = resXML.getElementsByTagName("img")[0].getAttribute('alt');
			var imgWidth = resXML.getElementsByTagName("img")[0].getAttribute('photoWidth');
			var imgHeight = resXML.getElementsByTagName("img")[0].getAttribute('photoHeight');

            if(debugMode) {
                alert('isAd='+isAd+'pgCredit='+pgCredit+'photoCaption='+photoCaption+'imgSrc='+imgSrc);
            }
			//sprint2.5 updates
			if (mI.photoPage == 1)
				{
					if (imgHeight > imgWidth) {
						className = 'vertical_img';
					} else{
						className = 'horizontal_img';
					}
			document.getElementById('pg_ImgMain'+ mod).height = imgHeight;
            document.getElementById('pg_ImgMain'+ mod).width = imgWidth;
			document.getElementById('pg_ImgMain' + mod).className = className;
       		}
            //update the dom information
            document.getElementById('pg_ImgMain'+ mod).style.display="block";
            document.getElementById('pg_ImgMain'+ mod).src = imgSrc;
            document.getElementById('pg_ImgMain'+ mod).alt = imgAlt;
            document.getElementById('pg_credits' + mod).innerHTML = pgCredit;
            document.getElementById('center_pic_cont' + mod).innerHTML = photoCaption;

            if(mI.navAction == 'next') {
                document.getElementById('newsmakerTally' + mod).innerHTML = mI.glbCurrentImg + " of " + mI.pgTotalImages;
                sendOmnitureData(resXML,modId);
            }

            if(mI.navAction == 'prev') {
                 sendOmnitureData(resXML,modId);
                 document.getElementById('newsmakerTally' + mod).innerHTML = mI.glbCurrentImg + " of " + mI.pgTotalImages;
            }

            //ad refresh on image change
            galleryAdRefresh(mI.adSpot);
        }
    }// end main if

   // if the isAd parameter in response xml is 1
    if(getNodeValue(resXML.getElementsByTagName("isAd")[0])==1) {
        try {
            document.getElementById('pg_ImgMain'+ mod).style.display="none";
            document.getElementById('pg_credits' + mod).innerHTML = mI.adCaption.toUpperCase();
            document.getElementById('newsmakerTally' + mod).innerHTML = mI.adContinue;
            document.getElementById('center_pic_cont' + mod).innerHTML = "";
            var adCont = document.getElementById('ad'+mod);

            if(!document.getElementById('ifr'+mod)) {
                var ifr = document.createElement('iframe');
                ifr.setAttribute('id','ifr'+mod);
                ifr.style.height='250px';
                ifr.style.widht='300px';
                ifr.style.overflow='hidden';
                ifr.frameBorder='0';
                if(ifr.scrolling){
                   ifr.scrolling='no';
                }
            } else{
              ifr = document.getElementById('ifr'+mod);
            }
            var adURL = mI.adURL + mI.magicNumber;
            ifr.src = adURL;
            adCont.appendChild(ifr);
            adCont.style.display='block';
        } catch(e) {
          if(debugMode)
             alert(e);
        }

    }

    //set the isAd value in module object, this is needed to prevent the ad fromo looping
    mI.isAd = getNodeValue(resXML.getElementsByTagName("isAd")[0]);
}// end updateGallery

// Ad Refresh on Image Change
function galleryAdRefresh(adSpot) {
    try {
        if (adSpot != null && adSpot != 'undefined' && adSpot != '') {
            top.ch_refresher.refresh_ads_by_spot(adSpot);
        }
    } catch(e) {}
    return true;
}

function updateTallyNumber(modId) {
    var mI = window[modId];
    if(mI.navAction == 'next') {

        if(mI.glbCurrentImg < mI.pgTotalImages) {
            ++mI.glbCurrentImg;
            mI.navAction = 'next';
        } else {
            mI.glbCurrentImg=1;
            mI.navAction = 'next';
        }

    }

    if(mI.navAction == 'prev') {

        if(mI.glbCurrentImg > 1) {
             --mI.glbCurrentImg;
            mI.navAction = 'prev';
        }
        else
        {
            mI.glbCurrentImg=mI.pgTotalImages;
            mI.navAction = 'prev';
        }

    }
} // end updateTallyNumber

function getNodeValue(node) {
    var val = "";

    if (node != undefined || node != null){
        if(node.nodeValue == null || node.nodeValue == undefined){
            try {
                val = node.firstChild.nodeValue;
        } catch (e){}
      }
  }

    return val;
}

 function sendOmnitureData(resXML,modId) {
 	var date = new Date();
	var time = date.getTime();
    var mI = window[modId];
    var omniUrl = mI.omnitureURL;
    var reqType= "GET";
    var qp = new Object();
    str = "?ts="+time;
    qp['id'] = mI.pgGalleryId;
    qp['index'] = mI.glbCurrentImg;
    qp['feedtype'] = mI.feedType;
    qp['navAction'] = mI.navAction;
    qp['debug'] = 0;
	// To capture the mmx variable for omniture tracking for both h and g code
 if(typeof(s_channel) != 'undefined') {
     qp['mmx'] = s_channel;
    } else if(typeof(s_265.channel) != 'undefined'){
       qp['mmx'] = s_265.channel;
 }
    if(document.getElementById('pgOmniIframe'+modId)) {
        ifr = document.getElementById('pgOmniIframe'+modId);
    } else {
        ifr = document.createElement('iframe');
        ifr.setAttribute('id','pgOmniIframe'+modId);
        ifr.width=0;
        ifr.height = 0;
        ifr.border = 0;
        ifr.style.visibility = 'hidden';
        document.body.appendChild(ifr);
    }

    for(var key in qp)
        str=str+"&"+key+"="+qp[key];

    omniUrl = omniUrl + str;
    ifr.src = omniUrl;
}

function nextImg(objId) {
	if (objId.indexOf("mod_article") > -1 || objId.indexOf("mod_synopsis") > -1) {
		dpNextImg(objId);
	} else {
    	mI = window[objId];
    	mI.navAction = 'next';
    	appInit(objId);
    	return false;
    }
}

function prevImg(objId) {
	if (objId.indexOf("mod_article") > -1 || objId.indexOf("mod_synopsis") > -1) {
		dpPrevImg(objId);
	} else{
		mI = window[objId];
		mI.navAction = 'prev';
		appInit(objId);
    		return false;
	}
}

function dpNextImg(objId) {
	MasterobjId = objId;
	var ml = window[objId]; // Object
	indexMax[MasterobjId] = ml.pgTotalImages;

	if(typeof(photoAry[objId]) == "undefined")
		photoAry[objId] = 2;
	else {
		photoAry[objId]  = photoAry[objId] +1;
		if(photoAry[objId] > ml.pgTotalImages)
		{
		photoAry[objId] = 1;
		}
	}

	var index = photoAry[objId] ;
	indexPhoto = index;

	var url = "/common/photogallery/dpResponse.xml?id="+ ml.pgGalleryId +"&index=" + index;
	AJAXmakeReq(url, PG_callback, "");
	url = "/common/photogallery/dpOmniture.adp?id="+ml.pgGalleryId +"&index=" + index;
	OmnitureDPPhoto(url);
}

function dpPrevImg(objId) {
	MasterobjId = objId;
	var ml = window[objId];
	indexMax[MasterobjId] = ml.pgTotalImages;
	if(typeof(photoAry[objId]) == "undefined"){
		photoAry[objId] = ml.pgTotalImages;
		}
	else {
		photoAry[objId]  = photoAry[objId] -1;
		if(photoAry[objId] < 1)
		{
			photoAry[objId] = ml.pgTotalImages;
		}
	}
	var index = photoAry[objId] ;
	indexPhoto = index;
	var url = "/common/photogallery/dpResponse.xml?id="+ ml.pgGalleryId +"&index=" + index;
	AJAXmakeReq(url, PG_callback, "");
	url = "/common/photogallery/dpOmniture.adp?id="+ml.pgGalleryId +"&index=" + index;
	OmnitureDPPhoto(url);
}
/*End:  JS code for the News Photogallery*/

/* hide/show for TRRI Comment Module */
function createCookie() {
	 if (arguments[2]) {
		 var date = new Date();
		 date.setTime(date.getTime()+(arguments[2]*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	 }
	else var expires = "";
	document.cookie = arguments[0]+"="+arguments[1]+expires+"; path=/; domain=.aol.com;";
}

function readCookie() {
	var nameEQ = arguments[0] + "=";
	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;
}

var hideCmntBtn ='Turn Off Comments';
var showCmntBtn ='Turn On Comments';
var hideCmntMsg = '<span>Comments are now disabled for all articles on AOL.</span> <a  href="javascript:void(0);" onclick="toggleCmnts(\'cmnt\', \'off\');" class="showCmntsBtn">'+ showCmntBtn +'</a>';


function toggleCmnts(){
	if (arguments[1] =='on' ){
		createCookie(arguments[0], 'on', 365);
    	 }else {
		 createCookie(arguments[0], 'off', 365);
	 }
	 checkCookie(arguments[0]);
}

function toggleBtn(){
	 var hide = document.getElementById('hideCmnt');
	 var show = document.getElementById('showCmnt');
 	 var cmntBtn = document.getElementById('tglCmntBtn');
	 var bgOverlay = document.getElementById('overlayBG');
     var pstBtn = document.getElementById('pstCmntBtn');
	 var cmntPage = document.getElementById('cmntPagination');

	 if (arguments[0]){
         if(show != null){
		     show.style.display='none';
			 if (cmntPage != null){cmntPage.style.display='none';}

             pstBtn.style.display='none';
		     cmntBtn.innerHTML = showCmntBtn;
			 cmntBtn.style.borderColor = '#fff';
		     hide.innerHTML = hideCmntMsg;
 		     bgOverlay.style.display = 'block';
		     cmntBtn.onclick = function () {
		     toggleCmnts('cmnt', 'off');
		     }
	     }else{
			cmntBtn.style.display = 'none';
			 }
	 }else {
		 if(show != null){
			 show.style.display='block';
			 if (cmntPage != null){cmntPage.style.display='block';}

             pstBtn.style.display='inline';
		     cmntBtn.innerHTML = hideCmntBtn;
 			 cmntBtn.style.borderColor = '#000';
		     hide.innerHTML ="";
		     bgOverlay.style.display = 'none';
		     cmntBtn.onclick = function () {
		         toggleCmnts('cmnt', 'on');
		     }

		 }
		 else{
			cmntBtn.style.display = 'none';
			 }
	 }
}

function checkCookie(){
	 var cmtCookie = readCookie(arguments[0]);
	 if (cmtCookie == 'on'){
		 	 toggleBtn(true);}
	else {
		toggleBtn(false);
	 }
}

//This function hides the more popup on the //header when a user clicks anywhere on the document

function hideHeaderMore(e) {
    var targ;

	if (!e) var e = window.event;

	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;

	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;

		if(targ.id != 'smorea' && p_o('smore')) {
        var oDiv=p_o('smore');

        if(oDiv.style.display.toLowerCase() == "block")
            oDiv.style.display='none';
    }
}
document.onclick = hideHeaderMore;

//Light Box Gallery begins
// THIS DOES THE AJAX REQUEST
function AJAXmakeReq(url, callbackFN, outputHere) {
   var ajax_req;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
     ajax_req = new XMLHttpRequest();
     if (ajax_req.overrideMimeType) {
       ajax_req.overrideMimeType('text/xml');
     }
   } else if (window.ActiveXObject) { // IE
     try {
       ajax_req = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
       try {
       ajax_req = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (e) {}
     }
   }
   if (typeof(ajax_req) == "undefined" ) {
     alert('Giving up. Cannot create an XMLHTTP instance');
     return false;
   }
   ajax_req.onreadystatechange = outputReq;
   ajax_req.open('GET', url, true);
   ajax_req.send(null);

   function outputReq() {
     try {
       if (ajax_req.readyState == 4) {
         if (ajax_req.status == 200) {
           var response = ajax_req;
  if (typeof(outputHere) != "undefined" && outputHere != "" )
           callbackFN(response,outputHere);     else
  callbackFN(response);
         } else {
           alert('There was a problem with the request.');
         }
       }
     }
     catch( e ) {
       alert('Caught Exception: ' + e.description);
     }
   }
}


var photoAry = new Array();
var indexPhoto = 1;
var indexMax = new Array();
var MasterobjId = "";


var PG_callback = function(response){
    var xmldoc = response.responseXML;
             var imgid = "";
    var imgsrc = "";
    var imgalt = "";
    var imgphotoHeight = "";
    var imgphotoWidth = "";

    var img = xmldoc.getElementsByTagName('img').item(0);
    if(typeof(img)!="undefined")
    {
        imgid = img.getAttribute('id');
        imgsrc = img.getAttribute('src');
        imgalt = img.getAttribute('alt');
        imgphotoHeight = img.getAttribute('photoHeight');
        imgphotoWidth = img.getAttribute('photoWidth');
    }

    var isAd = xmldoc.getElementsByTagName("isAd")[0];
    isAd=isAd?isAd.childNodes[0]:null;
    isAd=isAd?isAd.nodeValue:null;

    var pgcredits = xmldoc.getElementsByTagName("pgcredits")[0];
    pgcredits = pgcredits? pgcredits.childNodes[0]:null;
    pgcredits = pgcredits? pgcredits.nodeValue:null;

    var photocaption = xmldoc.getElementsByTagName("photocaption")[0];
    photocaption = photocaption? photocaption.childNodes[0]:null;
    photocaption = photocaption? photocaption.nodeValue:null;
    clearPhotoGallery(MasterobjId);
    if(e_id("photoImg_"+MasterobjId)){
        e_id("photoImg_"+MasterobjId).src = imgsrc;
        e_id("photoImg_"+MasterobjId).height = imgphotoHeight;
        e_id("photoImg_"+MasterobjId).width = imgphotoWidth;
        e_id("photoImg_"+MasterobjId).alt = imgalt;
    }
    if(e_id("photoCap_"+MasterobjId)){
e_id("photoCap_"+MasterobjId).innerHTML = photocaption;}
    if(e_id("photoCredit_"+MasterobjId)){
e_id("photoCredit_"+MasterobjId).innerHTML = pgcredits;}
    if(e_id("photoTally_"+MasterobjId)){
e_id("photoTally_"+MasterobjId).innerHTML = photoAry[MasterobjId] +" of "+
indexMax[MasterobjId];}

}

e_id = function(val){
    return document.getElementById(val);
}

var clearPhotoGallery = function(objId){
    if(e_id("photoImg_"+objId)){
        e_id("photoImg_"+objId).src = "";
        e_id("photoImg_"+objId).height = 0;
        e_id("photoImg_"+objId).width = 0;
        e_id("photoImg_"+objId).alt = "";
    }
    if(e_id("photoCap_"+objId)){
        e_id("photoCap_"+objId).innerHTML = "";
    }
    if(e_id("photoCredit_"+objId)){
        e_id("photoCredit_"+objId).innerHTML = "";
    }
}

var OmnitureDPPhoto =  function(url) {
    if(e_id('lbgOmniIframe')) {
        ifr = e_id('lbgOmniIframe');
    } else {
        ifr = document.createElement('iframe');
        ifr.setAttribute('id','lbgOmniIframe');
        ifr.width=0;
        ifr.height = 0;
        ifr.border = 0;
        ifr.style.visibility = 'hidden';
        var objBody = document.getElementsByTagName("BODY").item(0);
        objBody.appendChild(ifr);
    }
    ifr.src = url;
}


var LB_callback = function(response, outputHere){
 var responsetxt = response.responseText;
      var outputDiv = document.getElementById(outputHere);
      outputDiv.innerHTML = responsetxt;
      lbg.getObjHeight('lbgActive_'+lbgModID,lbgModID);
}

// time stamp to prevent caching
var date = new Date();
var ts = date.getTime();

// light box gallery

var lbgMn = "";
var lbgModID = "";
var lbgGalID ="";
var lbgobjO = "";
var lbgDyna = false;
var objBody = document.getElementsByTagName("BODY").item(0);
var lbg = {

	open: function(modID,mn,galID) {
		var d = document;
		lbgMn = mn;
		lbgModID = modID
		lbgGalID = galID

		if (modID.indexOf("mod_article") > -1 || modID.indexOf("mod_synopsis") > -1){ // are we DynaPub ?
			lbgDyna = true;
		}

		var objBody = d.getElementsByTagName("BODY").item(0);
		if (d.getElementById('lbgOverlay_'+modID)) { // page overlay layer
			var objOverlay = d.getElementById('lbgOverlay_'+modID);
			objOverlay.onclick = function() { lbg.close(); }
	    }

		var objLBGChild = d.getElementById("lbgChild_"+modID);

		objBody.className = "lbgOn";

		hideSelectBoxes();
		hideFlash();

		// stretch overlay to fill page and fade in
		var arrayPageSize = getPageSize();
		var arrayPageScroll = getPageScroll();

		// calculate top and left offset for the lbgChild
		var lbgChildTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);
		var lbgChildLeft = arrayPageScroll[0];

		var offsetLeft = d.body.offsetLeft;

		// browsers treat margin on BODY differently
		// this code is based on a 980 wide body

		objOverlay.style.width= arrayPageSize[0]+"px";
		objOverlay.style.height= arrayPageSize[1]+"px";

		if ((offsetLeft == 0) && (arrayPageSize[0] > 980)) {  // FF
			var negativPos = ((arrayPageSize[0] - 980)/ 2);
			objOverlay.style.left= "-"+negativPos+"px";
		} else if ((offsetLeft == 0) && (arrayPageSize[0] == 980) && (arrayPageSize[2] > 980)) {  // Safari
			var negativPos = ((arrayPageSize[2] - 980)/ 2);
			objOverlay.style.width= arrayPageSize[2]+"px";
			objOverlay.style.left= "-"+negativPos+"px";
		} else if ((offsetLeft != 0) && (arrayPageSize[0] == 980) && (arrayPageSize[2] > 980)) {  // IE
			var negativPos = ((arrayPageSize[2] - 980)/ 2);
			objOverlay.style.width= arrayPageSize[2]+"px";
			objOverlay.style.left= "-"+negativPos+"px";
		}

		function detectMacXFF() {
		    var userAgent = navigator.userAgent.toLowerCase();
		    if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
			  return true;
		    }
		}

		objLBGChild.style.top= lbgChildTop+"px";
		objLBGChild.style.left= lbgChildLeft+"px";
		// ajax call
		if (lbgDyna != true){
			var modReqURL = "/mod.adp?_mo=1&_miid=" + modID + "&lbgReq=1&lbgIndex=1&lbgGalId="+lbgGalID;
		} else {
			var modReqURL = "/common/photogallery/dpResponse.xml?lbgal=true&id=" + modID + "&lbgReq=1&index=1";
		}



        AJAXmakeReq(modReqURL,LB_callback,"lbgL_"+modID);

		var d = detectMacXFF();
		if (d) {
			//osx ff css opacity + flash wmode transparent doesn't work
			objOverlay.style.backgroundImage= "url(http://o.aolcdn.com/art/aol/lbg-overlay.png)";
			objOverlay.style.backgroundRepeat="repeat";
			objOverlay.style.display = 'block';
			lbg.fadeInit('lbgOverlay_'+modID,1);
		} else {
			objOverlay.style.backgroundColor='#fff';
			objOverlay.style.display = 'block';
        	lbg.fadeInit('lbgOverlay_'+modID,0.40);
		}

		// Clearing ads on parent page
		if (adsDivs.length > -1) {
			for (i = 0; i < adsDivs.length; i++) {
				adsClrAd(adsDivs[i]);
			}
		}


		lbg.omniture(2,'next');
	},

	navigate: function(nav,navA,galID,galType) {
		lbgGalID = galID;
		// ajax call
		if (lbgDyna != true){
			var modReqURL = "/mod.adp?_mo=1&_miid=" + lbgModID + "&lbgIndex=" + nav + "&lbgReq=1";
		} else {
			var modReqURL = "/common/photogallery/dpResponse.xml?lbgal=true&id=" + lbgModID + "&index=" + nav +"&galType="+galType;
		}

		AJAXmakeReq(modReqURL,LB_callback,"lbgL_"+lbgModID);

		lbg.adCall();
		lbg.omniture(nav,navA);
	},

	omniture: function(ind,nav) {

	    var d = document;
		var l = d.location.toString();
		var g='', c='';

		g = 'id='+lbgGalID;
		var index = '&index='+ind;
		var navA = "&navAction="+nav;

		if ((window['mod_'+lbgModID+'s_channel']) != '') {
			var c = (window['mod_'+lbgModID+'s_channel']);
			c = '&mmx='+c;
		}

		l = l.replace('http://','');
		l = l.substr(0, l.indexOf('/'));
		l = 'http://' + l + '/common/photogallery/omniture.adp?';
		l = l + g + index;
		l = l + '&feedtype=news';
		l = l + navA;
		l = l + '&debug=0';
		l = l + c;
		l = l + '&ts='+ts;

		var ifr = "";
		if(d.getElementById('lbgOmniIframe'+lbgModID)) {
			 ifr = d.getElementById('lbgOmniIframe'+lbgModID);
		} else {
			 ifr = d.createElement('iframe');
			 ifr.setAttribute('id','lbgOmniIframe'+lbgModID);
			 ifr.width=0;
			 ifr.height = 0;
			 ifr.border = 0;
			 ifr.style.visibility = 'hidden';
			 var objLBGChild = d.getElementById("lbgChild_"+lbgModID);
			objLBGChild.appendChild(ifr);
		}
		ifr.src = l;
	},

	close: function() {
		var d = document;
		var objBody= d.getElementsByTagName("BODY").item(0);
		var objOverlay = d.getElementById('lbgOverlay_'+lbgModID);
		var objLBGChild = d.getElementById('lbgChild_'+lbgModID);
		var lbgIframeAd = d.getElementById("lbgIframe_"+lbgModID);
		objOverlay.style.display = 'none';
		objLBGChild.style.visibility = 'hidden';
		objLBGChild.style.left= "-2000px";
		objBody.className = "lbgOff";

		showSelectBoxes();
		showFlash();

		// make new ad calls to the ads on the parent page
		adsReloadAll();

		lbgIframeAd.src = "";
		lbgModID = "";
		lbgGalID = "";

	},

	getObjHeight: function(obj) {
		var boxHeight = document.getElementById(obj).offsetHeight;
		lbg.setShadowHeight(boxHeight);
	},

	setShadowHeight: function(objHeight) {
		var lbgDSLt = document.getElementById("lbgDSLtL_"+lbgModID);
		var lbgDSRt = document.getElementById("lbgDSRt_"+lbgModID);

		lbgDSLt.style.height= objHeight+"px";
		lbgDSRt.style.height= objHeight+"px";
	},

	fadeInit: function(obj,opLvl) {
		lbgobjO = document.getElementById(obj);
		lbgobjO.xOpacity = 0;
		lbg.setOpacity(lbgobjO);
		lbgobjO.style.display = "block";
		setTimeout(function(){lbg.fade(lbgobjO,opLvl)},1);
	},

	fade: function(objO,opLvl) {
		var d = document;
		cOpacity = objO.xOpacity;
		nOpacity = objO.xOpacity;
		nOpacity+=.25; //how much increase per cycle
		objO.xOpacity = nOpacity;

		lbg.setOpacity(objO);

		if((objO.id == "lbgChild_"+lbgModID) && (cOpacity>=opLvl)) {
			lbg.adCall();
		} else if(cOpacity<=opLvl) {
			setTimeout(function(){lbg.fade(objO,opLvl)},1);
		} else if ((objO.id != "lbgChild_"+lbgModID) && !is_IE) {
			var objLBGChild = d.getElementById("lbgChild_"+lbgModID);
			objLBGChild.style.visibility = 'visible';
			lbg.fadeInit("lbgChild_"+lbgModID,1);
		} else if ((objO.id != "lbgChild_"+lbgModID) && is_IE) {
			var objLBGChild = d.getElementById("lbgChild_"+lbgModID);
			objLBGChild.style.visibility = 'visible';
			objLBGChild.style.display = 'block';
			lbg.adCall();
		}
	},

	setOpacity: function(objO) {
		objO.style.opacity = objO.xOpacity;
		objO.style.MozOpacity = objO.xOpacity;
		objO.style.filter = "alpha(opacity=" + (objO.xOpacity*100) + ")";
	},

	adCall: function() {
		var d = document;
		var lbgIframeAd = d.getElementById("lbgIframe_"+lbgModID);
		var adURL = "/common/photogallery/ad_page.html?debug=0&magicnumber="+lbgMn+"&ts="+ts;
		lbgIframeAd.src = adURL;
	}
}
function showSelectBoxes(){
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}
function hideSelectBoxes(){
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "hidden";
	}
}
function showFlash(){
	var flashObjects = document.getElementsByTagName("object");
	for (i = 0; i < flashObjects.length; i++) {
		flashObjects[i].style.visibility = "visible";
	}
	var flashEmbeds = document.getElementsByTagName("embed");
	for (i = 0; i < flashEmbeds.length; i++) {
		flashEmbeds[i].style.visibility = "visible";
	}
}
function hideFlash(){
	var flashObjects = document.getElementsByTagName("object");
	for (i = 0; i < flashObjects.length; i++) {
		flashObjects[i].style.visibility = "hidden";
	}
	var flashEmbeds = document.getElementsByTagName("embed");
	for (i = 0; i < flashEmbeds.length; i++) {
		flashEmbeds[i].style.visibility = "hidden";
	}
}

// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.com
function getPageScroll(){
	var d = document;
	var xScroll, yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (d.documentElement && d.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = d.documentElement.scrollTop;
		xScroll = d.documentElement.scrollLeft;
	} else if (d.body) {// all other Explorers
		yScroll = d.body.scrollTop;
		xScroll = d.body.scrollLeft;
	}

	arrayPageScroll = new Array(xScroll,yScroll)
	return arrayPageScroll;
}

function getPageSize(){
	var d = document;
	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (d.body.scrollHeight > d.body.offsetHeight){ // all but Explorer Mac
		xScroll = d.body.scrollWidth;
		yScroll = d.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = d.body.offsetWidth;
		yScroll = d.body.offsetHeight;
	}

	var windowWidth, windowHeight;

	if (self.innerHeight) {	// all except Explorer
		if(d.documentElement.clientWidth){
			windowWidth = d.documentElement.clientWidth;
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (d.documentElement && d.documentElement.clientHeight) {
		windowWidth = d.documentElement.clientWidth;
		windowHeight = d.documentElement.clientHeight;
	} else if (d.body) { // other Explorers
		windowWidth = d.body.clientWidth;
		windowHeight = d.body.clientHeight;
	}

	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	if(xScroll < windowWidth){
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}

// End Light Box Gallery

// Sign in drop down
 function showlayer(layer,change)
{
//alert(change);
document.getElementById(layer).style.display='inline';
document.getElementById(change).style.backgroundPosition = '11em 0.8em';
}

function hidelayer(layer,change)
{
document.getElementById(layer).style.display='none';
document.getElementById(change).style.backgroundPosition = '11em -0.4em;';
}

// Sign in drop down Ends

// Rating code starts
var starRating = {
	 reloadRatings: function(objectUri,assetAolID, category, assetType, showAvgRating) {
	    var ajxUrl = "/api/v2/trri/rating/get?" +
	     			"objectUri=" + objectUri + "&" +
				    "assetAolID=" + assetAolID + "&" +
				    "category=" + category + "&" +
				    "type=" + assetType + "&" +
	                 "showAvgRating=" + showAvgRating + "&" +
	                 "rndm=" + Math.random();

	    var success = false;
	    dojo.io.bind({
	        method:"GET",
	        url:ajxUrl,
	        sync:true,
	        handler: function(type, data, evt) {
	            if (type == "error") {
	                success = false;
	            } else {
	                dojo.byId("stars").innerHTML = data;
	                success = true;
	            }
	        }
	    });
	},

	 submitRating: function(objectUri,assetAolID, category, assetType, rating, showAvgRating) {
		 var ajxUrl = "/api/v2/trri/rating/submit?" +
 					  "objectUri=" + objectUri + "&" +
		              "assetAolID=" + assetAolID + "&" +
		              "category=" + category + "&" +
		              "type=" + assetType + "&" +
		              "rating=" + rating;

		 var success = false;
		 dojo.io.bind({
		     method:"GET",
		     url:ajxUrl,
		     sync:true,
		     handler: function(type, data, evt) {
		         if (type == "error") {
		             success = false;
		         } else {
		             success = true;
		         }
		     }
		 });
		 if(success) {
		     starRating.reloadRatings(objectUri,assetAolID, category, assetType, showAvgRating);
		 }
	},

	rtngOver: function(element, starOverURL) {
	    element.style.cursor = 'hand';
	    var baseId = element.getAttribute('baseId');
	    var starNum = element.getAttribute('starNum');
	    for(i=1;i<=starNum;i++) {
	        var myEl = getEl(baseId + i);
	        myEl.className = starOverURL;
	    }

	},

	rtngOut: function(element) {
	    element.style.cursor = 'auto';
	    var baseId = element.getAttribute('baseId');
	    var starNum = element.getAttribute('starNum');

	    for(i=1;i<=starNum;i++) {
	        var myEl = getEl(baseId + i);
	        myEl.className = myEl.getAttribute('oSrc');
	    }
	}
};


/**
 * Submits the rating to the backend server.
 */

function submitRating(rating, asset_type)
{
	if ( asset_type != null) {
		var assetType = asset_type;
	} else {
		var assetType = document.usrRtngFrm.asset_type.value;
	}
	var ajxurl = "/.resource/proxy/music_TRRI_ADD_REVIEW/?f=xml&country=US&language=en";
	var ajxQuery;
	var reviewId = "";
	if (document.usrRtngFrm.reviewId != null)
		reviewId = document.usrRtngFrm.reviewId.value;
	if ( reviewId != "" ){
		ajxurl =" /.resource/proxy/music_TRRI_UPDATE_REVIEW/?f=xml&country=US&language=en";
		ajxQuery = '<updateReview>';
	} else {
		ajxQuery = '<addReview>';
	}
	ajxQuery += '<review>';
	ajxQuery += "<author>" + document.usrRtngFrm.author.value + "</author>";
	ajxQuery += "<appId>" + document.usrRtngFrm.appId.value + "</appId>";
	ajxQuery += "<reviewType>rating</reviewType>";
	ajxQuery += "<objectURI>" + document.usrRtngFrm.objectURI.value + "</objectURI>";
	if (reviewId != "") {
		ajxQuery += "<reviewId>" + reviewId + "</reviewId>";
	}
	ajxQuery += "<type>" + assetType + "</type>";
	ajxQuery += "<ratings><rating>";
	ajxQuery += "<score>" + rating*document.usrRtngFrm.scale.value/document.usrRtngFrm.numStars.value + "</score>";
	ajxQuery += "<scale>" + document.usrRtngFrm.scale.value + "</scale>";
	ajxQuery += "<subject>" + document.usrRtngFrm.subject.value + "</subject>"
	ajxQuery += "</rating></ratings></review>"
	if (reviewId != "" )
		ajxQuery += "</updateReview>\n";
	else
		ajxQuery += "</addReview>\n";

	if(arguments[1]) var sh = arguments[1];
	else var sh = submitRatingCB;

	dojo.io.bind({
		method: "post",
		url: ajxurl,
		headers: {"Content-Type": 'text/xml' , "charset" : "utf-8"},
		postContent: ajxQuery,
		sync: true,
		mimetype: 'text/xml',
		handler: sh
	});
    return true;

}
rtngGetModuleCB = function(type, data, evt){
	if(type == 'error'){

	}	else {
		getEl('usrRtng').innerHTML = data;
	}

	}
function submitRatingCB(type, data, evt){
	if (type == 'error') {
        getEl( 'usrRtngFrm' ).innerHTML = "An error occurred. Please try again later."
    } else {
    	if (document.usrRtngFrm.elements['modName'] ) {
    		getModule(document.usrRtngFrm.modName.value, '', rtngGetModuleCB );
    	}
    	else if (document.usrRtngFrm.asset_type.value == 'photo' || document.usrRtngFrm.asset_type.value == "video") {
    		getModule('userRating/music/' + document.usrRtngFrm.asset_class.value + '/' + document.usrRtngFrm.assetId.value, '', rtngGetModuleCB)
    	} else {
			getModule('music/userRating/music/' + document.usrRtngFrm.asset_class.value + '/' + document.usrRtngFrm.assetId.value, '', rtngGetModuleCB)
		}
	}
	return true;
}
function getModule(modPath, query, handler) {
    var ajxurl = '/.module/' + modPath +'?'+query;
    //var ajxurl = 'http://'+host+'/.module/'+modNme+'/music/video/'+assetid;
	//getEl( 'ucMsg' ).innerHTML =  ajxurl;
	/**/
	dojo.io.bind({
		method: "get",
		url: ajxurl,
		handler: handler
	});
}

function rtngOver(element, starOverURL)
{
	element.style.cursor = 'hand';
	var baseId = element.getAttribute('baseId');
	var starNum = element.getAttribute('starNum');
	for(i=1;i<=starNum;i++)
	{
		var myEl = getEl(baseId + i);
		myEl.src = starOverURL;
	}

}
function rtngOut(element)
{
	element.style.cursor = 'auto';

	var baseId = element.getAttribute('baseId');
	var starNum = element.getAttribute('starNum');

	for(i=1;i<=starNum;i++) {
		var myEl = getEl(baseId + i);
		myEl.src = myEl.getAttribute('oSrc');
	}
}


//<![CDATA[
function killEl( nodeToKill ) {
	var t = getEl( nodeToKill );
	if ( t ) t.parentNode.removeChild(t);
	else return false;
}

var voeCtrl = { 'photoCreditElem' : 'sessPhoPagNum',
				'photoNav' : 'navContrlBtn',
				'txtFtrIds' :  ['nextPageLnk', 'vidObject_pagn', ''] };
voeCtrl.vObjCnstrctr = function (tabsElemId, elemType, tabSlctClass, onClickHandler) {
				this.tabsElemId = tabsElemId;
				this.elemType = elemType;
				this.tabSlctClass = tabSlctClass;
				this.voeTabInit( onClickHandler );
			}
voeCtrl.vObjCnstrctr.prototype.voeTabInit = function( onClickHandler ) {
	var tabs = getEl( this.tabsElemId ).getElementsByTagName( this.elemType );
	for (var i=0; i<tabs.length; i++) {
		tabs[i].onclick = onClickHandler;
	}
}

voeCtrl.clickr = function () {
	if (getEl(this.className.trim() + "Bx")) var curEl = getEl(this.className.trim() + "Bx");
	else return;
	var slctVal = "select";
	var tabs = this.parentNode.getElementsByTagName(this.tagName);

	for (var i=0; i<tabs.length; i++) {
		var c = tabs[i].className;
		if (c.indexOf( slctVal )!=-1) {
			var slctClass = c.substr(c.indexOf( slctVal ))
			tabs[i].className = c.substr(0,c.indexOf( slctVal )).trim();
			getEl(tabs[i].className + "Bx").style.display="none";
		}
	}
	this.className += " " + slctClass;
	curEl.style.display="block";
}

voeCtrl.photosInit = function( htmlElem, showNum ) {
	var ge = getEl( htmlElem );
	var credit = ge.parentNode.getElementsByTagName('div')[0]
	var page = getEl( this.photoCreditElem );
	var imgs = ge.getElementsByTagName('img');
	var spnArry =	getEl( this.photoNav ).getElementsByTagName('span');

	page.innerHTML = (showNum+1) + " of " +imgs.length;
	credit.getElementsByTagName('span')[0].innerHTML = imgs[showNum].title;

	var dsplyArry = this.photoShowPgNum(showNum, imgs.length);
	for(var i=0;i<imgs.length;i++){
		imgs[i].style.display="none";
		if(i == showNum ) {
			imgs[i].style.display="inline";
			imgs[i].onclick = function() { voeCtrl.photosInit(htmlElem, dsplyArry[0]); }
			spnArry[1].onclick= function() { voeCtrl.photosInit(htmlElem, dsplyArry[0]); }
			spnArry[0].onclick= function() { voeCtrl.photosInit(htmlElem, dsplyArry[1]); }
		}
	}
		try {
		adsReloadAd('AdBanner')
		} catch(err){}
}
//voeCtrl.whichGalleryToShow
voeCtrl.photoShowPgNum = function(currPage, ttlLength) {
	var nextNum = currPage+1;
	var prevNum = currPage-1;
	if (currPage==(ttlLength-1)) {
		nextNum=0;
		prevNum=ttlLength-2;
	} else if (currPage == ttlLength || currPage==0) {
		prevNum=ttlLength-1;
	}

	return [nextNum, prevNum]
}

voeCtrl.putFrag = function(type, data, evt) {
	if (type == "load") {
 		var val = voeCtrl.getModName(this.url)
		getEl(val).innerHTML = data;
	} else {
		console.debug('Error: failed to fetch Text');
	}
}

voeCtrl.putPaginatedTxt = function(type, data, evt) {
	// KW: 'this' is the returning xmlhttp request completed - not 'voeCtrl'
	if (type == "load") {
 		var val = voeCtrl.getModName(this.url)
		var y = mkeEl('div');
		y.innerHTML = data;
		var curPag = 0;
		y = voeCtrl.pagnTxtInit( y, curPag, val );
	} else {
		console.debug('Error: failed to fetch Text');
	}
}
voeCtrl.putScrollTxt = function(type, data, evt) {
	// KW: 'this' is the returning xmlhttp request completed - not 'voeCtrl'
	if (type == "load") {
 		var val = voeCtrl.getModName(this.url)
		var y = mkeEl('div');
		y.className="sessScrllTxt";
		y.innerHTML = data;
		//var curPag = 0;
		getEl( val ).appendChild(y)
		//y = voeCtrl.pagnTxtInit( y, curPag, val );
	} else {
		console.debug('Error: failed to fetch Text');
	}
}
voeCtrl.elemMkr = function(elemType, total ) {
	// returns an arry with length total of ElemType elements
	returnArry = [];
	for(var i=0; i<total; i++ ){
		returnArry[i] = mkeEl( elemType );
	}
	return returnArry;
}
voeCtrl.pagnTxtMkeFtr = function( elemArry, idArry, classNameArry, onClickArry, innrHTMLArry ) {
	for (var i=0; i<elemArry.length; i++) {
		elemArry[i].id = idArry[i];
		elemArry[i].className = classNameArry[i];
		elemArry[i].onclick = onClickArry[i];
		if(innrHTMLArry[i]!='') elemArry[i].innerHTML = innrHTMLArry[i];
		if(elemArry[i].tagName.toLowerCase() == 'a') elemArry[i].href="javascript:void(0);"
	}
	return elemArry;
}
//elemMkr.sessionsTextPagn
voeCtrl.pagnTxtInit = function( htmlElement, showPage, parentMod ) {
	if(typeof(htmlElement) == "string") {
		var tmp = getEl(htmlElement);
		htmlElement = tmp;
	}
	var p = htmlElement.getElementsByTagName('p');
	var ttlPgs = p.length/2;
	for (var i=0;i<p.length;i++) {
		var base = showPage *2;
		var max = base + 2;
		p[i].style.display="none"
		if (i>=base && i<max) p[i].style.display="block"
	}

	var idxArry = this.txtFtrIds;
	var classArry = ['', 'right videoPagnLinks', ''];
	var hrefClick=voeCtrl.nxtPge;
	var onClickArry = ["", "", hrefClick];
	var dvArry = this.elemMkr('div', 2)
	dvArry.push( mkeEl('a') );
	var elemListArry = this.pagnTxtMkeFtr(dvArry, idxArry, classArry, onClickArry, ["", "", "Read On &raquo;"])

	getEl(parentMod).innerHTML = htmlElement.innerHTML;

	for (var j=0; j<ttlPgs; j++) {
		if (j==showPage)  {
			var spn = mkeEl('span');
			spn.className="currentPage";
		} else {
			var spn = mkeEl('a');
			spn.href="javascript:void(0);"
			spn.setAttribute('pagNum', j)
			spn.onclick=voeCtrl.nxtPge;
		}
		spn.innerHTML = j+1;
		dvArry[1].appendChild(spn);
	}

	for(var ii=0; ii<elemListArry.length;ii++) {
		getEl(parentMod).appendChild(elemListArry[ii]);
	}
	elemListArry[0].appendChild(elemListArry[2]);
}
//function sessionsFooterLnks(totalPages, pageNum, appendToElem) {
voeCtrl.pagnTxtNumLnk = function(totalPages, pageNum, appendToElem) {
	getEl(appendToElem).innerHTML='';
	for (var j=0; j<totalPages; j++) {
		if (j==pageNum)  {
			var spn = mkeEl('span');
			spn.className="currentPage";
		} else {
			var spn = mkeEl('a');
			spn.href="javascript:void(0);"
			spn.setAttribute('pagNum', j);
			spn.onclick=voeCtrl.nxtPge;
		}
		spn.innerHTML = j+1;
		getEl(appendToElem).appendChild(spn);
	}
}

//function advanceSessionsPage() {

voeCtrl.nxtPge = function () {
	// next page

	var idxArry = voeCtrl.txtFtrIds;
	var elemGroup = getEl(this.parentNode.parentNode.id);
	var p = elemGroup.getElementsByTagName('p');
	if(this.innerHTML == parseInt(this.innerHTML))  {
		var nextPage = this.innerHTML -1;
		var h = getEl( idxArry[0] ).getElementsByTagName('a')[0];
		if (nextPage==(p.length/2-1)) h.innerHTML = "&laquo; Beginning";
		else h.innerHTML = "Read On &raquo;";
	}
	else {
		var n= parseInt(getEl( idxArry[1] ).getElementsByTagName('span')[0].innerHTML);
		this.innerHTML = "Read On &raquo;"
		if (n<(p.length/2)) {
			var nextPage = n;
			if (n==(p.length/2-1)) this.innerHTML = "&laquo; Beginning"
		}
		else var nextPage = 0;
	}
	var ttlPgs = p.length/2;
	for (var i=0;i<p.length;i++) {
		var base = nextPage *2; var max = base + 2;
		p[i].style.display="none";
		if (i>=base && i<max) p[i].style.display="block";
	}
	voeCtrl.pagnTxtNumLnk(ttlPgs, nextPage, idxArry[1])
}

voeCtrl.votePoll = function ( ajaxToURL ) {
	var selectedFlag = false;
	var resultArry =document.forms.sessionsPoll.sessPollResp;
	for (var j=0; j<resultArry.length; j++ ) {
		if(resultArry[j].checked) {
			var aId = resultArry[j].value;
			selectedFlag = true;
		}
	}
	if (!selectedFlag) { alert('Make a selection first'); return; }

	var dv = getEl('sessionsPollVote').getElementsByTagName('div');
	for(var i=0; i<dv.length; i++) {
		if(dv[i].style.display == "none") dv[i].style.display="block"
		else dv[i].style.display = "none"
	}

	var finalJax = 	ajaxToURL +"&vote="+aId;
	var submitPoll = new Request({
		url: finalJax,
		method: 'get',
		onSuccess: votingResponse});
	submitPoll.send();
}
function votingResponse(responseText, responseXML) {
	var g = responseXML.getElementsByTagName('Question')[0];
	var p = g.getAttribute('totalVotes');
	getEl('ttlPollVotes').innerHTML = "Total Votes: " + p ;
	var u = getEl('sessionsPollVote').getElementsByTagName('span');
	var y = data.getElementsByTagName('percentage');
	var l=0;
	for (var i=0; i<u.length; i++) {
		if(u[i].className != "sessPollPercent") continue;
		u[i].innerHTML = y[l].firstChild.nodeValue +"% ";
		l++;
	}
}
//getModuleFromUrl( strngUrl ) {
voeCtrl.getModName = function( strngUrl ) {
		var u = strngUrl.split('/')[2];
		var ur = u.replace('bb_', '') +"Bx";
		return ur;
}
///// End Card Specific functions
function endCardPlistInit(vidSlct) {
	var d = getEl('endCardImgBox').getElementsByTagName('div');
	for (var i=0; i<d.length; i++) {
		if (d[i].className == "addToPlist" || d[i].className == "vidPlyIcon") continue;
		d[i].onmouseover = function() {
			this.setAttribute('frmrClass', this.className);
			this.className= this.className + " " +vidSlct;
			// give me the playlist ICON!
			playlistr.call( this, "hiddenBttn", true );
		}
		d[i].onmouseout =  function() {
			this.className= this.getAttribute( 'frmrClass' ).trim();
			this.removeAttribute( 'frmrClass' );
			playlistr.call( this, "hiddenBttn", false );
		}
	}
}
function playlistr( clssNme, boolChck ) {
	var arry = this.getElementsByTagName('div');
	for (var j=0; j<arry.length; j++) {
		if(arry[j].className.indexOf("addToPlist")) continue;

		if (boolChck) {
			arry[j].setAttribute('fc',arry[j].className );
			arry[j].className = arry[j].className + " " + clssNme
		} else {
			var r = arry[j].getAttribute('fc');
			arry[j].className = r;
		}
	}
}
voeCtrl.loadDT = function() {
	var arrUCdt = document.getElementsByTagName("ucdatetime");
	for( var x = 0; x < arrUCdt.length; x++ ) {
		var comId = arrUCdt[x].getAttribute('commentId');
		var rawDate = arrUCdt[x].getAttribute('rawdate');
		var strRawDate = (+rawDate);
		var myDate = new Date(strRawDate);
		var formatTime = getFormattedTime(myDate);
		var strDate = myDate.getMonth()+1 + "/" + myDate.getDate() + "/" + myDate.getFullYear() + " " + formatTime;
		var oDest = document.getElementById(comId);
		oDest.innerHTML = strDate;
	}
}
//// end end-card specific functions
function sessionsVideoInit( trgDiv ) {
	// Initialize video buttons
	var md = trgDiv.getElementsByTagName( 'div' );
	for (var h=0; h<md.length; h++ ) {
		if (md[h].className == "snglFranchisePromo") {
			md[h].onmouseover = function() { this.className="snglFranchisePromo hghLght";}
			md[h].onmouseout = function() { this.className="snglFranchisePromo";}
		}
	}
}

/*var sessionsFlashHndlr = function(type, data, evt) {
	if (type == "load") {
		var ur = getModuleFromUrl( this.url )
		var vd = document.createElement('div');
		vd.innerHTML = data;
		var newSwf = "document.getElementById('" + ur + "').innerHTML = oTag.toString();"
		var scrptArry = vd.getElementsByTagName('script');
		var scrptArry = vd.getElementsByTagName('script');
		for (var i=0;i<scrptArry.length;i++) {
			var s =  mkeEl('script');
			s.type = "text/javascript";
			if (scrptArry[i].src == '' ) {
				s.innerHTML = scrptArry[i].innerHTML.replace('oTag.write(document);', newSwf);
			} else s.src = scrptArry[i].src;
			getEl(ur).appendChild(s);
		}
	} else if (type=="error") console.debug("Error: "+ type + " unable to fetch")


}*/


//]]>
//MooTools, <http://mootools.net>, My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.

var MooTools={version:"1.2.0",build:""};var Native=function(J){J=J||{};var F=J.afterImplement||function(){};var G=J.generics;G=(G!==false);var H=J.legacy;
var E=J.initialize;var B=J.protect;var A=J.name;var C=E||H;C.constructor=Native;C.$family={name:"native"};if(H&&E){C.prototype=H.prototype;}C.prototype.constructor=C;
if(A){var D=A.toLowerCase();C.prototype.$family={name:D};Native.typize(C,D);}var I=function(M,K,N,L){if(!B||L||!M.prototype[K]){M.prototype[K]=N;}if(G){Native.genericize(M,K,B);
}F.call(M,K,N);return M;};C.implement=function(L,K,N){if(typeof L=="string"){return I(this,L,K,N);}for(var M in L){I(this,M,L[M],K);}return this;};C.alias=function(M,K,N){if(typeof M=="string"){M=this.prototype[M];
if(M){I(this,K,M,N);}}else{for(var L in M){this.alias(L,M[L],K);}}return this;};return C;};Native.implement=function(D,C){for(var B=0,A=D.length;B<A;B++){D[B].implement(C);
}};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments);return B.prototype[C].apply(D.shift(),D);
};}};Native.typize=function(A,B){if(!A.type){A.type=function(C){return($type(C)===B);};}};Native.alias=function(E,B,A,F){for(var D=0,C=E.length;D<C;D++){E[D].alias(B,A,F);
}};(function(B){for(var A in B){Native.typize(B[A],A);}})({"boolean":Boolean,"native":Native,object:Object});(function(B){for(var A in B){new Native({name:A,initialize:B[A],protect:true});
}})({String:String,Function:Function,Number:Number,Array:Array,RegExp:RegExp,Date:Date});(function(B,A){for(var C=A.length;C--;C){Native.genericize(B,A[C],true);
}return arguments.callee;})(Array,["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice","toString","valueOf","indexOf","lastIndexOf"])(String,["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]);
function $chk(A){return !!(A||A===0);}function $clear(A){clearTimeout(A);clearInterval(A);return null;}function $defined(A){return(A!=undefined);}function $empty(){}function $arguments(A){return function(){return arguments[A];
};}function $lambda(A){return(typeof A=="function")?A:function(){return A;};}function $extend(C,A){for(var B in (A||{})){C[B]=A[B];}return C;}function $unlink(C){var B;
switch($type(C)){case"object":B={};for(var E in C){B[E]=$unlink(C[E]);}break;case"hash":B=$unlink(C.getClean());break;case"array":B=[];for(var D=0,A=C.length;
D<A;D++){B[D]=$unlink(C[D]);}break;default:return C;}return B;}function $merge(){var E={};for(var D=0,A=arguments.length;D<A;D++){var B=arguments[D];if($type(B)!="object"){continue;
}for(var C in B){var G=B[C],F=E[C];E[C]=(F&&$type(G)=="object"&&$type(F)=="object")?$merge(F,G):$unlink(G);}}return E;}function $pick(){for(var B=0,A=arguments.length;
B<A;B++){if(arguments[B]!=undefined){return arguments[B];}}return null;}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B);}function $splat(B){var A=$type(B);
return(A)?((A!="array"&&A!="arguments")?[B]:B):[];}var $time=Date.now||function(){return new Date().getTime();};function $try(){for(var B=0,A=arguments.length;
B<A;B++){try{return arguments[B]();}catch(C){}}return null;}function $type(A){if(A==undefined){return false;}if(A.$family){return(A.$family.name=="number"&&!isFinite(A))?false:A.$family.name;
}if(A.nodeName){switch(A.nodeType){case 1:return"element";case 3:return(/\S/).test(A.nodeValue)?"textnode":"whitespace";}}else{if(typeof A.length=="number"){if(A.callee){return"arguments";
}else{if(A.item){return"collection";}}}}return typeof A;}var Hash=new Native({name:"Hash",initialize:function(A){if($type(A)=="hash"){A=$unlink(A.getClean());
}for(var B in A){this[B]=A[B];}return this;}});Hash.implement({getLength:function(){var B=0;for(var A in this){if(this.hasOwnProperty(A)){B++;}}return B;
},forEach:function(B,C){for(var A in this){if(this.hasOwnProperty(A)){B.call(C,this[A],A,this);}}},getClean:function(){var B={};for(var A in this){if(this.hasOwnProperty(A)){B[A]=this[A];
}}return B;}});Hash.alias("forEach","each");function $H(A){return new Hash(A);}Array.implement({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this);
}}});Array.alias("forEach","each");function $A(C){if(C.item){var D=[];for(var B=0,A=C.length;B<A;B++){D[B]=C[B];}return D;}return Array.prototype.slice.call(C);
}function $each(C,B,D){var A=$type(C);((A=="arguments"||A=="collection"||A=="array")?Array:Hash).each(C,B,D);}var Browser=new Hash({Engine:{name:"unknown",version:""},Platform:{name:(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime)},Plugins:{}});
if(window.opera){Browser.Engine={name:"presto",version:(document.getElementsByClassName)?950:925};}else{if(window.ActiveXObject){Browser.Engine={name:"trident",version:(window.XMLHttpRequest)?5:4};
}else{if(!navigator.taintEnabled){Browser.Engine={name:"webkit",version:(Browser.Features.xpath)?420:419};}else{if(document.getBoxObjectFor!=null){Browser.Engine={name:"gecko",version:(document.getElementsByClassName)?19:18};
}}}}Browser.Engine[Browser.Engine.name]=Browser.Engine[Browser.Engine.name+Browser.Engine.version]=true;if(window.orientation!=undefined){Browser.Platform.name="ipod";
}Browser.Platform[Browser.Platform.name]=true;Browser.Request=function(){return $try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject("MSXML2.XMLHTTP");
});};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var A=($try(function(){return navigator.plugins["Shockwave Flash"].description;
},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version");})||"0 r0").match(/\d+/g);return{version:parseInt(A[0]||0+"."+A[1]||0),build:parseInt(A[2]||0)};
})();function $exec(B){if(!B){return B;}if(window.execScript){window.execScript(B);}else{var A=document.createElement("script");A.setAttribute("type","text/javascript");
A.text=B;document.head.appendChild(A);document.head.removeChild(A);}return B;}Native.UID=1;var $uid=(Browser.Engine.trident)?function(A){return(A.uid||(A.uid=[Native.UID++]))[0];
}:function(A){return A.uid||(A.uid=Native.UID++);};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(A){$uid(A);
if(!A.Element){A.Element=$empty;if(Browser.Engine.webkit){A.document.createElement("iframe");}A.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{};
}return $extend(A,Window.Prototype);},afterImplement:function(B,A){window[B]=Window.Prototype[B]=A;}});Window.Prototype={$family:{name:"window"}};new Window(window);
var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(A){$uid(A);A.head=A.getElementsByTagName("head")[0];
A.html=A.getElementsByTagName("html")[0];A.window=A.defaultView||A.parentWindow;if(Browser.Engine.trident4){$try(function(){A.execCommand("BackgroundImageCache",false,true);
});}return $extend(A,Document.Prototype);},afterImplement:function(B,A){document[B]=Document.Prototype[B]=A;}});Document.Prototype={$family:{name:"document"}};
new Document(document);Array.implement({every:function(C,D){for(var B=0,A=this.length;B<A;B++){if(!C.call(D,this[B],B,this)){return false;}}return true;
},filter:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){if(D.call(E,this[B],B,this)){C.push(this[B]);}}return C;},clean:function(){return this.filter($defined);
},indexOf:function(C,D){var A=this.length;for(var B=(D<0)?Math.max(0,A+D):D||0;B<A;B++){if(this[B]===C){return B;}}return -1;},map:function(D,E){var C=[];
for(var B=0,A=this.length;B<A;B++){C[B]=D.call(E,this[B],B,this);}return C;},some:function(C,D){for(var B=0,A=this.length;B<A;B++){if(C.call(D,this[B],B,this)){return true;
}}return false;},associate:function(C){var D={},B=Math.min(this.length,C.length);for(var A=0;A<B;A++){D[C[A]]=this[A];}return D;},link:function(C){var A={};
for(var E=0,B=this.length;E<B;E++){for(var D in C){if(C[D](this[E])){A[D]=this[E];delete C[D];break;}}}return A;},contains:function(A,B){return this.indexOf(A,B)!=-1;
},extend:function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B]);}return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null;
},include:function(A){if(!this.contains(A)){this.push(A);}return this;},combine:function(C){for(var B=0,A=C.length;B<A;B++){this.include(C[B]);}return this;
},erase:function(B){for(var A=this.length;A--;A){if(this[A]===B){this.splice(A,1);}}return this;},empty:function(){this.length=0;return this;},flatten:function(){var D=[];
for(var B=0,A=this.length;B<A;B++){var C=$type(this[B]);if(!C){continue;}D=D.concat((C=="array"||C=="collection"||C=="arguments")?Array.flatten(this[B]):this[B]);
}return D;},hexToRgb:function(B){if(this.length!=3){return null;}var A=this.map(function(C){if(C.length==1){C+=C;}return C.toInt(16);});return(B)?A:"rgb("+A+")";
},rgbToHex:function(D){if(this.length<3){return null;}if(this.length==4&&this[3]==0&&!D){return"transparent";}var B=[];for(var A=0;A<3;A++){var C=(this[A]-0).toString(16);
B.push((C.length==1)?"0"+C:C);}return(D)?B:"#"+B.join("");}});Function.implement({extend:function(A){for(var B in A){this[B]=A[B];}return this;},create:function(B){var A=this;
B=B||{};return function(D){var C=B.arguments;C=(C!=undefined)?$splat(C):Array.slice(arguments,(B.event)?1:0);if(B.event){C=[D||window.event].extend(C);
}var E=function(){return A.apply(B.bind||null,C);};if(B.delay){return setTimeout(E,B.delay);}if(B.periodical){return setInterval(E,B.periodical);}if(B.attempt){return $try(E);
}return E();};},pass:function(A,B){return this.create({arguments:A,bind:B});},attempt:function(A,B){return this.create({arguments:A,bind:B,attempt:true})();
},bind:function(B,A){return this.create({bind:B,arguments:A});},bindWithEvent:function(B,A){return this.create({bind:B,event:true,arguments:A});},delay:function(B,C,A){return this.create({delay:B,bind:C,arguments:A})();
},periodical:function(A,C,B){return this.create({periodical:A,bind:C,arguments:B})();},run:function(A,B){return this.apply(B,$splat(A));}});Number.implement({limit:function(B,A){return Math.min(A,Math.max(B,this));
},round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A;},times:function(B,C){for(var A=0;A<this;A++){B.call(C,A,this);}},toFloat:function(){return parseFloat(this);
},toInt:function(A){return parseInt(this,A||10);}});Number.alias("times","each");(function(B){var A={};B.each(function(C){if(!Number[C]){A[C]=function(){return Math[C].apply(null,[this].concat($A(arguments)));
};}});Number.implement(A);})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);String.implement({test:function(A,B){return((typeof A=="string")?new RegExp(A,B):A).test(this);
},contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.indexOf(A)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,"");},clean:function(){return this.replace(/\s+/g," ").trim();
},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase());
});},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");
},toInt:function(A){return parseInt(this,A||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
return(A)?A.slice(1).hexToRgb(B):null;},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):null;},stripScripts:function(B){var A="";
var C=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){A+=arguments[1]+"\n";return"";});if(B===true){$exec(A);}else{if($type(B)=="function"){B(A,C);
}}return C;},substitute:function(A,B){return this.replace(B||(/\\?\{([^}]+)\}/g),function(D,C){if(D.charAt(0)=="\\"){return D.slice(1);}return(A[C]!=undefined)?A[C]:"";
});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A;}}return null;
},hasValue:function(A){return(Hash.keyOf(this,A)!==null);},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C);},this);return this;},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C);
},this);return this;},erase:function(A){if(this.hasOwnProperty(A)){delete this[A];}return this;},get:function(A){return(this.hasOwnProperty(A))?this[A]:null;
},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B;}return this;},empty:function(){Hash.each(this,function(B,A){delete this[A];},this);
return this;},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C;}return this;},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this));
},this);return A;},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E);}},this);return A;},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false;
}}return true;},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true;}}return false;},getKeys:function(){var A=[];
Hash.each(this,function(C,B){A.push(B);});return A;},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B);});return A;},toQueryString:function(A){var B=[];
Hash.each(this,function(F,E){if(A){E=A+"["+E+"]";}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);break;case"array":var C={};F.each(function(H,G){C[G]=H;
});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F);}if(F!=undefined){B.push(D);}});return B.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});
var Event=new Native({name:"Event",initialize:function(A,F){F=F||window;var K=F.document;A=A||F.event;if(A.$extended){return A;}this.$extended=true;var J=A.type;
var G=A.target||A.srcElement;while(G&&G.nodeType==3){G=G.parentNode;}if(J.test(/key/)){var B=A.which||A.keyCode;var M=Event.Keys.keyOf(B);if(J=="keydown"){var D=B-111;
if(D>0&&D<13){M="f"+D;}}M=M||String.fromCharCode(B).toLowerCase();}else{if(J.match(/(click|mouse|menu)/i)){K=(!K.compatMode||K.compatMode=="CSS1Compat")?K.html:K.body;
var I={x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};var C={x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pageYOffset:A.clientY};
if(J.match(/DOMMouseScroll|mousewheel/)){var H=(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3;}var E=(A.which==3)||(A.button==2);var L=null;if(J.match(/over|out/)){switch(J){case"mouseover":L=A.relatedTarget||A.fromElement;
break;case"mouseout":L=A.relatedTarget||A.toElement;}if(!(function(){while(L&&L.nodeType==3){L=L.parentNode;}return true;}).create({attempt:Browser.Engine.gecko})()){L=false;
}}}}return $extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,relatedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt:A.altKey,meta:A.metaKey});
}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault();
},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault();
}else{this.event.returnValue=false;}return this;}});var Class=new Native({name:"Class",initialize:function(B){B=B||{};var A=function(E){for(var D in this){this[D]=$unlink(this[D]);
}for(var F in Class.Mutators){if(!this[F]){continue;}Class.Mutators[F](this,this[F]);delete this[F];}this.constructor=A;if(E===$empty){return this;}var C=(this.initialize)?this.initialize.apply(this,arguments):this;
if(this.options&&this.options.initialize){this.options.initialize.call(this);}return C;};$extend(A,this);A.constructor=Class;A.prototype=B;return A;}});
Class.implement({implement:function(){Class.Mutators.Implements(this.prototype,Array.slice(arguments));return this;}});Class.Mutators={Implements:function(A,B){$splat(B).each(function(C){$extend(A,($type(C)=="class")?new C($empty):C);
});},Extends:function(self,klass){var instance=new klass($empty);delete instance.parent;delete instance.parentOf;for(var key in instance){var current=self[key],previous=instance[key];
if(current==undefined){self[key]=previous;continue;}var ctype=$type(current),ptype=$type(previous);if(ctype!=ptype){continue;}switch(ctype){case"function":if(!arguments.callee.caller){self[key]=eval("("+String(current).replace(/\bthis\.parent\(\s*(\))?/g,function(full,close){return"arguments.callee._parent_.call(this"+(close||", ");
})+")");}self[key]._parent_=previous;break;case"object":self[key]=$merge(previous,current);}}self.parent=function(){return arguments.callee.caller._parent_.apply(this,arguments);
};self.parentOf=function(descendant){return descendant._parent_.apply(this,Array.slice(arguments,1));};}};var Chain=new Class({chain:function(){this.$chain=(this.$chain||[]).extend(arguments);
return this;},callChain:function(){return(this.$chain&&this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){if(this.$chain){this.$chain.empty();
}return this;}});var Events=new Class({addEvent:function(C,B,A){C=Events.removeOn(C);if(B!=$empty){this.$events=this.$events||{};this.$events[C]=this.$events[C]||[];
this.$events[C].include(B);if(A){B.internal=true;}}return this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this;},fireEvent:function(C,B,A){C=Events.removeOn(C);
if(!this.$events||!this.$events[C]){return this;}this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})();},this);return this;},removeEvent:function(B,A){B=Events.removeOn(B);
if(!this.$events||!this.$events[B]){return this;}if(!A.internal){this.$events[B].erase(A);}return this;},removeEvents:function(C){for(var D in this.$events){if(C&&C!=D){continue;
}var B=this.$events[D];for(var A=B.length;A--;A){this.removeEvent(D,B[A]);}}return this;}});Events.removeOn=function(A){return A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase();
});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent){return this;}for(var A in this.options){if($type(this.options[A])!="function"||!(/^on[A-Z]/).test(A)){continue;
}this.addEvent(A,this.options[A]);delete this.options[A];}return this;}});Document.implement({newElement:function(A,B){if(Browser.Engine.trident&&B){["name","type","checked"].each(function(C){if(!B[C]){return ;
}A+=" "+C+'="'+B[C]+'"';if(C!="checked"){delete B[C];}});A="<"+A+">";}return $.element(this.createElement(A)).set(B);},newTextNode:function(A){return this.createTextNode(A);
},getDocument:function(){return this;},getWindow:function(){return this.defaultView||this.parentWindow;},purge:function(){var C=this.getElementsByTagName("*");
for(var B=0,A=C.length;B<A;B++){Browser.freeMem(C[B]);}}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(A,B){var C=Element.Constructors.get(A);
if(C){return C(B);}if(typeof A=="string"){return document.newElement(A,B);}return $(A).set(B);},afterImplement:function(A,B){if(!Array[A]){Elements.implement(A,Elements.multi(A));
}Element.Prototype[A]=B;}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var E=Array.link(arguments,{properties:Object.type,iframe:$defined});
var C=E.properties||{};var B=$(E.iframe)||false;var D=C.onload||$empty;delete C.onload;C.id=C.name=$pick(C.id,C.name,B.id,B.name,"IFrame_"+$time());B=new Element(B||"iframe",C);
var A=function(){var F=$try(function(){return B.contentWindow.location.host;});if(F&&F==window.location.host){var H=new Window(B.contentWindow);var G=new Document(B.contentWindow.document);
$extend(H.Element.prototype,Element.Prototype);}D.call(B.contentWindow,B.contentWindow.document);};(!window.frames[C.id])?B.addListener("load",A):A();return B;
}});var Elements=new Native({initialize:function(F,B){B=$extend({ddup:true,cash:true},B);F=F||[];if(B.ddup||B.cash){var G={},E=[];for(var C=0,A=F.length;
C<A;C++){var D=$.element(F[C],!B.cash);if(B.ddup){if(G[D.uid]){continue;}G[D.uid]=true;}E.push(D);}F=E;}return(B.cash)?$extend(F,this):F;}});Elements.implement({filter:function(A,B){if(!A){return this;
}return new Elements(Array.filter(this,(typeof A=="string")?function(C){return C.match(A);}:A,B));}});Elements.multi=function(A){return function(){var B=[];
var F=true;for(var D=0,C=this.length;D<C;D++){var E=this[D][A].apply(this[D],arguments);B.push(E);if(F){F=($type(E)=="element");}}return(F)?new Elements(B):B;
};};Window.implement({$:function(B,C){if(B&&B.$family&&B.uid){return B;}var A=$type(B);return($[A])?$[A](B,C,this.document):null;},$$:function(A){if(arguments.length==1&&typeof A=="string"){return this.document.getElements(A);
}var F=[];var C=Array.flatten(arguments);for(var D=0,B=C.length;D<B;D++){var E=C[D];switch($type(E)){case"element":E=[E];break;case"string":E=this.document.getElements(E,true);
break;default:E=false;}if(E){F.extend(E);}}return new Elements(F);},getDocument:function(){return this.document;},getWindow:function(){return this;}});
$.string=function(C,B,A){C=A.getElementById(C);return(C)?$.element(C,B):null;};$.element=function(A,D){$uid(A);if(!D&&!A.$family&&!(/^object|embed$/i).test(A.tagName)){var B=Element.Prototype;
for(var C in B){A[C]=B[C];}}return A;};$.object=function(B,C,A){if(B.toElement){return $.element(B.toElement(A),C);}return null;};$.textnode=$.whitespace=$.window=$.document=$arguments(0);
Native.implement([Element,Document],{getElement:function(A,B){return $(this.getElements(A,true)[0]||null,B);},getElements:function(A,D){A=A.split(",");
var C=[];var B=(A.length>1);A.each(function(E){var F=this.getElementsByTagName(E.trim());(B)?C.extend(F):C=F;},this);return new Elements(C,{ddup:B,cash:!D});
}});Element.Storage={get:function(A){return(this[A]||(this[A]={}));}};Element.Inserters=new Hash({before:function(B,A){if(A.parentNode){A.parentNode.insertBefore(B,A);
}},after:function(B,A){if(!A.parentNode){return ;}var C=A.nextSibling;(C)?A.parentNode.insertBefore(B,C):A.parentNode.appendChild(B);},bottom:function(B,A){A.appendChild(B);
},top:function(B,A){var C=A.firstChild;(C)?A.insertBefore(B,C):A.appendChild(B);}});Element.Inserters.inside=Element.Inserters.bottom;Element.Inserters.each(function(C,B){var A=B.capitalize();
Element.implement("inject"+A,function(D){C(this,$(D,true));return this;});Element.implement("grab"+A,function(D){C($(D,true),this);return this;});});Element.implement({getDocument:function(){return this.ownerDocument;
},getWindow:function(){return this.ownerDocument.getWindow();},getElementById:function(D,C){var B=this.ownerDocument.getElementById(D);if(!B){return null;
}for(var A=B.parentNode;A!=this;A=A.parentNode){if(!A){return null;}}return $.element(B,C);},set:function(D,B){switch($type(D)){case"object":for(var C in D){this.set(C,D[C]);
}break;case"string":var A=Element.Properties.get(D);(A&&A.set)?A.set.apply(this,Array.slice(arguments,1)):this.setProperty(D,B);}return this;},get:function(B){var A=Element.Properties.get(B);
return(A&&A.get)?A.get.apply(this,Array.slice(arguments,1)):this.getProperty(B);},erase:function(B){var A=Element.Properties.get(B);(A&&A.erase)?A.erase.apply(this,Array.slice(arguments,1)):this.removeProperty(B);
return this;},match:function(A){return(!A||Element.get(this,"tag")==A);},inject:function(B,A){Element.Inserters.get(A||"bottom")(this,$(B,true));return this;
},wraps:function(B,A){B=$(B,true);return this.replaces(B).grab(B,A);},grab:function(B,A){Element.Inserters.get(A||"bottom")($(B,true),this);return this;
},appendText:function(B,A){return this.grab(this.getDocument().newTextNode(B),A);},adopt:function(){Array.flatten(arguments).each(function(A){A=$(A,true);
if(A){this.appendChild(A);}},this);return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},clone:function(D,C){switch($type(this)){case"element":var H={};
for(var G=0,E=this.attributes.length;G<E;G++){var B=this.attributes[G],L=B.nodeName.toLowerCase();if(Browser.Engine.trident&&(/input/i).test(this.tagName)&&(/width|height/).test(L)){continue;
}var K=(L=="style"&&this.style)?this.style.cssText:B.nodeValue;if(!$chk(K)||L=="uid"||(L=="id"&&!C)){continue;}if(K!="inherit"&&["string","number"].contains($type(K))){H[L]=K;
}}var J=new Element(this.nodeName.toLowerCase(),H);if(D!==false){for(var I=0,F=this.childNodes.length;I<F;I++){var A=Element.clone(this.childNodes[I],true,C);
if(A){J.grab(A);}}}return J;case"textnode":return document.newTextNode(this.nodeValue);}return null;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this,A);
return this;},hasClass:function(A){return this.className.contains(A," ");},addClass:function(A){if(!this.hasClass(A)){this.className=(this.className+" "+A).clean();
}return this;},removeClass:function(A){this.className=this.className.replace(new RegExp("(^|\\s)"+A+"(?:\\s|$)"),"$1").clean();return this;},toggleClass:function(A){return this.hasClass(A)?this.removeClass(A):this.addClass(A);
},getComputedStyle:function(B){if(this.currentStyle){return this.currentStyle[B.camelCase()];}var A=this.getWindow().getComputedStyle(this,null);return(A)?A.getPropertyValue([B.hyphenate()]):null;
},empty:function(){$A(this.childNodes).each(function(A){Browser.freeMem(A);Element.empty(A);Element.dispose(A);},this);return this;},destroy:function(){Browser.freeMem(this.empty().dispose());
return null;},getSelected:function(){return new Elements($A(this.options).filter(function(A){return A.selected;}));},toQueryString:function(){var A=[];
this.getElements("input, select, textarea").each(function(B){if(!B.name||B.disabled){return ;}var C=(B.tagName.toLowerCase()=="select")?Element.getSelected(B).map(function(D){return D.value;
}):((B.type=="radio"||B.type=="checkbox")&&!B.checked)?null:B.value;$splat(C).each(function(D){if(D){A.push(B.name+"="+encodeURIComponent(D));}});});return A.join("&");
},getProperty:function(C){var B=Element.Attributes,A=B.Props[C];var D=(A)?this[A]:this.getAttribute(C,2);return(B.Bools[C])?!!D:(A)?D:D||null;},getProperties:function(){var A=$A(arguments);
return A.map(function(B){return this.getProperty(B);},this).associate(A);},setProperty:function(D,E){var C=Element.Attributes,B=C.Props[D],A=$defined(E);
if(B&&C.Bools[D]){E=(E||!A)?true:false;}else{if(!A){return this.removeProperty(D);}}(B)?this[B]=E:this.setAttribute(D,E);return this;},setProperties:function(A){for(var B in A){this.setProperty(B,A[B]);
}return this;},removeProperty:function(D){var C=Element.Attributes,B=C.Props[D],A=(B&&C.Bools[D]);(B)?this[B]=(A)?false:"":this.removeAttribute(D);return this;
},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;}});(function(){var A=function(D,B,I,C,F,H){var E=D[I||B];var G=[];
while(E){if(E.nodeType==1&&(!C||Element.match(E,C))){G.push(E);if(!F){break;}}E=E[B];}return(F)?new Elements(G,{ddup:false,cash:!H}):$(G[0],H);};Element.implement({getPrevious:function(B,C){return A(this,"previousSibling",null,B,false,C);
},getAllPrevious:function(B,C){return A(this,"previousSibling",null,B,true,C);},getNext:function(B,C){return A(this,"nextSibling",null,B,false,C);},getAllNext:function(B,C){return A(this,"nextSibling",null,B,true,C);
},getFirst:function(B,C){return A(this,"nextSibling","firstChild",B,false,C);},getLast:function(B,C){return A(this,"previousSibling","lastChild",B,false,C);
},getParent:function(B,C){return A(this,"parentNode",null,B,false,C);},getParents:function(B,C){return A(this,"parentNode",null,B,true,C);},getChildren:function(B,C){return A(this,"nextSibling","firstChild",B,true,C);
},hasChild:function(B){B=$(B,true);return(!!B&&$A(this.getElementsByTagName(B.tagName)).contains(B));}});})();Element.Properties=new Hash;Element.Properties.style={set:function(A){this.style.cssText=A;
},get:function(){return this.style.cssText;},erase:function(){this.style.cssText="";}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();
}};Element.Properties.href={get:function(){return(!this.href)?null:this.href.replace(new RegExp("^"+document.location.protocol+"//"+document.location.host),"");
}};Element.Properties.html={set:function(){return this.innerHTML=Array.flatten(arguments).join("");}};Native.implement([Element,Window,Document],{addListener:function(B,A){if(this.addEventListener){this.addEventListener(B,A,false);
}else{this.attachEvent("on"+B,A);}return this;},removeListener:function(B,A){if(this.removeEventListener){this.removeEventListener(B,A,false);}else{this.detachEvent("on"+B,A);
}return this;},retrieve:function(B,A){var D=Element.Storage.get(this.uid);var C=D[B];if($defined(A)&&!$defined(C)){C=D[B]=A;}return $pick(C);},store:function(B,A){var C=Element.Storage.get(this.uid);
C[B]=A;return this;},eliminate:function(A){var B=Element.Storage.get(this.uid);delete B[A];return this;}});Element.Attributes=new Hash({Props:{html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident)?"innerText":"textContent"},Bools:["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"],Camels:["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"]});
Browser.freeMem=function(A){if(!A){return ;}if(Browser.Engine.trident&&(/object/i).test(A.tagName)){for(var B in A){if(typeof A[B]=="function"){A[B]=$empty;
}}Element.dispose(A);}if(A.uid&&A.removeEvents){A.removeEvents();}};(function(B){var C=B.Bools,A=B.Camels;B.Bools=C=C.associate(C);Hash.extend(Hash.combine(B.Props,C),A.associate(A.map(function(D){return D.toLowerCase();
})));B.erase("Camels");})(Element.Attributes);window.addListener("unload",function(){window.removeListener("unload",arguments.callee);document.purge();
if(Browser.Engine.trident){CollectGarbage();}});Element.Properties.events={set:function(A){this.addEvents(A);}};Native.implement([Element,Window,Document],{addEvent:function(E,G){var H=this.retrieve("events",{});
H[E]=H[E]||{keys:[],values:[]};if(H[E].keys.contains(G)){return this;}H[E].keys.push(G);var F=E,A=Element.Events.get(E),C=G,I=this;if(A){if(A.onAdd){A.onAdd.call(this,G);
}if(A.condition){C=function(J){if(A.condition.call(this,J)){return G.call(this,J);}return false;};}F=A.base||F;}var D=function(){return G.call(I);};var B=Element.NativeEvents[F]||0;
if(B){if(B==2){D=function(J){J=new Event(J,I.getWindow());if(C.call(I,J)===false){J.stop();}};}this.addListener(F,D);}H[E].values.push(D);return this;},removeEvent:function(D,C){var B=this.retrieve("events");
if(!B||!B[D]){return this;}var G=B[D].keys.indexOf(C);if(G==-1){return this;}var A=B[D].keys.splice(G,1)[0];var F=B[D].values.splice(G,1)[0];var E=Element.Events.get(D);
if(E){if(E.onRemove){E.onRemove.call(this,C);}D=E.base||D;}return(Element.NativeEvents[D])?this.removeListener(D,F):this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);
}return this;},removeEvents:function(B){var A=this.retrieve("events");if(!A){return this;}if(!B){for(var C in A){this.removeEvents(C);}A=null;}else{if(A[B]){while(A[B].keys[0]){this.removeEvent(B,A[B].keys[0]);
}A[B]=null;}}return this;},fireEvent:function(D,B,A){var C=this.retrieve("events");if(!C||!C[D]){return this;}C[D].keys.each(function(E){E.create({bind:this,delay:A,"arguments":B})();
},this);return this;},cloneEvents:function(D,A){D=$(D);var C=D.retrieve("events");if(!C){return this;}if(!A){for(var B in C){this.cloneEvents(D,B);}}else{if(C[A]){C[A].keys.each(function(E){this.addEvent(A,E);
},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};
(function(){var A=function(B){var C=B.relatedTarget;if(C==undefined){return true;}if(C===false){return false;}return($type(this)!="document"&&C!=this&&C.prefix!="xul"&&!this.hasChild(C));
};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:A},mouseleave:{base:"mouseout",condition:A},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}});
})();Element.Properties.styles={set:function(A){this.setStyles(A);}};Element.Properties.opacity={set:function(A,B){if(!B){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden";
}}else{if(this.style.visibility!="visible"){this.style.visibility="visible";}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1;}if(Browser.Engine.trident){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")";
}this.style.opacity=A;this.store("opacity",A);},get:function(){return this.retrieve("opacity",1);}};Element.implement({setOpacity:function(A){return this.set("opacity",A,true);
},getOpacity:function(){return this.get("opacity");},setStyle:function(B,A){switch(B){case"opacity":return this.set("opacity",parseFloat(A));case"float":B=(Browser.Engine.trident)?"styleFloat":"cssFloat";
}B=B.camelCase();if($type(A)!="string"){var C=(Element.Styles.get(B)||"@").split(" ");A=$splat(A).map(function(E,D){if(!C[D]){return"";}return($type(E)=="number")?C[D].replace("@",Math.round(E)):E;
}).join(" ");}else{if(A==String(Number(A))){A=Math.round(A);}}this.style[B]=A;return this;},getStyle:function(G){switch(G){case"opacity":return this.get("opacity");
case"float":G=(Browser.Engine.trident)?"styleFloat":"cssFloat";}G=G.camelCase();var A=this.style[G];if(!$chk(A)){A=[];for(var F in Element.ShortStyles){if(G!=F){continue;
}for(var E in Element.ShortStyles[F]){A.push(this.getStyle(E));}return A.join(" ");}A=this.getComputedStyle(G);}if(A){A=String(A);var C=A.match(/rgba?\([\d\s,]+\)/);
if(C){A=A.replace(C[0],C[0].rgbToHex());}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(A)))){if(G.test(/^(height|width)$/)){var B=(G=="width")?["left","right"]:["top","bottom"],D=0;
B.each(function(H){D+=this.getStyle("border-"+H+"-width").toInt()+this.getStyle("padding-"+H).toInt();},this);return this["offset"+G.capitalize()]-D+"px";
}if(Browser.Engine.presto&&String(A).test("px")){return A;}if(G.test(/(border(.+)Width|margin|padding)/)){return"0px";}}return A;},setStyles:function(B){for(var A in B){this.setStyle(A,B[A]);
}return this;},getStyles:function(){var A={};Array.each(arguments,function(B){A[B]=this.getStyle(B);},this);return A;}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});
Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(G){var F=Element.ShortStyles;
var B=Element.Styles;["margin","padding"].each(function(H){var I=H+G;F[H][I]=B[I]="@px";});var E="border"+G;F.border[E]=B[E]="@px @ rgb(@, @, @)";var D=E+"Width",A=E+"Style",C=E+"Color";
F[E]={};F.borderWidth[D]=F[E][D]=B[D]="@px";F.borderStyle[A]=F[E][A]=B[A]="@";F.borderColor[C]=F[E][C]=B[C]="rgb(@, @, @)";});(function(){Element.implement({scrollTo:function(H,I){if(B(this)){this.getWindow().scrollTo(H,I);
}else{this.scrollLeft=H;this.scrollTop=I;}return this;},getSize:function(){if(B(this)){return this.getWindow().getSize();}return{x:this.offsetWidth,y:this.offsetHeight};
},getScrollSize:function(){if(B(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(B(this)){return this.getWindow().getScroll();
}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var I=this,H={x:0,y:0};while(I&&!B(I)){H.x+=I.scrollLeft;H.y+=I.scrollTop;I=I.parentNode;
}return H;},getOffsetParent:function(){var H=this;if(B(H)){return null;}if(!Browser.Engine.trident){return H.offsetParent;}while((H=H.parentNode)&&!B(H)){if(D(H,"position")!="static"){return H;
}}return null;},getOffsets:function(){var I=this,H={x:0,y:0};if(B(this)){return H;}while(I&&!B(I)){H.x+=I.offsetLeft;H.y+=I.offsetTop;if(Browser.Engine.gecko){if(!F(I)){H.x+=C(I);
H.y+=G(I);}var J=I.parentNode;if(J&&D(J,"overflow")!="visible"){H.x+=C(J);H.y+=G(J);}}else{if(I!=this&&(Browser.Engine.trident||Browser.Engine.webkit)){H.x+=C(I);
H.y+=G(I);}}I=I.offsetParent;if(Browser.Engine.trident){while(I&&!I.currentStyle.hasLayout){I=I.offsetParent;}}}if(Browser.Engine.gecko&&!F(this)){H.x-=C(this);
H.y-=G(this);}return H;},getPosition:function(K){if(B(this)){return{x:0,y:0};}var L=this.getOffsets(),I=this.getScrolls();var H={x:L.x-I.x,y:L.y-I.y};var J=(K&&(K=$(K)))?K.getPosition():{x:0,y:0};
return{x:H.x-J.x,y:H.y-J.y};},getCoordinates:function(J){if(B(this)){return this.getWindow().getCoordinates();}var H=this.getPosition(J),I=this.getSize();
var K={left:H.x,top:H.y,width:I.x,height:I.y};K.right=K.left+K.width;K.bottom=K.top+K.height;return K;},computePosition:function(H){return{left:H.x-E(this,"margin-left"),top:H.y-E(this,"margin-top")};
},position:function(H){return this.setStyles(this.computePosition(H));}});Native.implement([Document,Window],{getSize:function(){var I=this.getWindow();
if(Browser.Engine.presto||Browser.Engine.webkit){return{x:I.innerWidth,y:I.innerHeight};}var H=A(this);return{x:H.clientWidth,y:H.clientHeight};},getScroll:function(){var I=this.getWindow();
var H=A(this);return{x:I.pageXOffset||H.scrollLeft,y:I.pageYOffset||H.scrollTop};},getScrollSize:function(){var I=A(this);var H=this.getSize();return{x:Math.max(I.scrollWidth,H.x),y:Math.max(I.scrollHeight,H.y)};
},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var H=this.getSize();return{top:0,left:0,bottom:H.y,right:H.x,height:H.y,width:H.x};
}});var D=Element.getComputedStyle;function E(H,I){return D(H,I).toInt()||0;}function F(H){return D(H,"-moz-box-sizing")=="border-box";}function G(H){return E(H,"border-top-width");
}function C(H){return E(H,"border-left-width");}function B(H){return(/^(?:body|html)$/i).test(H.tagName);}function A(H){var I=H.getDocument();return(!I.compatMode||I.compatMode=="CSS1Compat")?I.html:I.body;
}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;
},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;
},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});Native.implement([Document,Element],{getElements:function(H,G){H=H.split(",");
var C,E={};for(var D=0,B=H.length;D<B;D++){var A=H[D],F=Selectors.Utils.search(this,A,E);if(D!=0&&F.item){F=$A(F);}C=(D==0)?F:(C.item)?$A(C).concat(F):C.concat(F);
}return new Elements(C,{ddup:(H.length>1),cash:!G});}});Element.implement({match:function(B){if(!B){return true;}var D=Selectors.Utils.parseTagAndID(B);
var A=D[0],E=D[1];if(!Selectors.Filters.byID(this,E)||!Selectors.Filters.byTag(this,A)){return false;}var C=Selectors.Utils.parseSelector(B);return(C)?Selectors.Utils.filter(this,C,{}):true;
}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};
Selectors.Utils={chk:function(B,C){if(!C){return true;}var A=$uid(B);if(!C[A]){return C[A]=true;}return false;},parseNthArgument:function(F){if(Selectors.Cache.nth[F]){return Selectors.Cache.nth[F];
}var C=F.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!C){return false;}var E=parseInt(C[1]);var B=(E||E===0)?E:1;var D=C[2]||false;var A=parseInt(C[3])||0;
if(B!=0){A--;while(A<1){A+=B;}while(A>=B){A-=B;}}else{B=A;D="index";}switch(D){case"n":C={a:B,b:A,special:"n"};break;case"odd":C={a:2,b:0,special:"n"};
break;case"even":C={a:2,b:1,special:"n"};break;case"first":C={a:0,special:"index"};break;case"last":C={special:"last-child"};break;case"only":C={special:"only-child"};
break;default:C={a:(B-1),special:"index"};}return Selectors.Cache.nth[F]=C;},parseSelector:function(E){if(Selectors.Cache.parsed[E]){return Selectors.Cache.parsed[E];
}var D,H={classes:[],pseudos:[],attributes:[]};while((D=Selectors.RegExps.combined.exec(E))){var I=D[1],G=D[2],F=D[3],B=D[4],C=D[5],J=D[6];if(I){H.classes.push(I);
}else{if(C){var A=Selectors.Pseudo.get(C);if(A){H.pseudos.push({parser:A,argument:J});}else{H.attributes.push({name:C,operator:"=",value:J});}}else{if(G){H.attributes.push({name:G,operator:F,value:B});
}}}}if(!H.classes.length){delete H.classes;}if(!H.attributes.length){delete H.attributes;}if(!H.pseudos.length){delete H.pseudos;}if(!H.classes&&!H.attributes&&!H.pseudos){H=null;
}return Selectors.Cache.parsed[E]=H;},parseTagAndID:function(B){var A=B.match(Selectors.RegExps.tag);var C=B.match(Selectors.RegExps.id);return[(A)?A[1]:"*",(C)?C[1]:false];
},filter:function(F,C,E){var D;if(C.classes){for(D=C.classes.length;D--;D){var G=C.classes[D];if(!Selectors.Filters.byClass(F,G)){return false;}}}if(C.attributes){for(D=C.attributes.length;
D--;D){var B=C.attributes[D];if(!Selectors.Filters.byAttribute(F,B.name,B.operator,B.value)){return false;}}}if(C.pseudos){for(D=C.pseudos.length;D--;D){var A=C.pseudos[D];
if(!Selectors.Filters.byPseudo(F,A.parser,A.argument,E)){return false;}}}return true;},getByTagAndID:function(B,A,D){if(D){var C=(B.getElementById)?B.getElementById(D,true):Element.getElementById(B,D,true);
return(C&&Selectors.Filters.byTag(C,A))?[C]:[];}else{return B.getElementsByTagName(A);}},search:function(J,I,O){var B=[];var C=I.trim().replace(Selectors.RegExps.splitter,function(Z,Y,X){B.push(Y);
return":)"+X;}).split(":)");var K,F,E,V;for(var U=0,Q=C.length;U<Q;U++){var T=C[U];if(U==0&&Selectors.RegExps.quick.test(T)){K=J.getElementsByTagName(T);
continue;}var A=B[U-1];var L=Selectors.Utils.parseTagAndID(T);var W=L[0],M=L[1];if(U==0){K=Selectors.Utils.getByTagAndID(J,W,M);}else{var D={},H=[];for(var S=0,R=K.length;
S<R;S++){H=Selectors.Getters[A](H,K[S],W,M,D);}K=H;}var G=Selectors.Utils.parseSelector(T);if(G){E=[];for(var P=0,N=K.length;P<N;P++){V=K[P];if(Selectors.Utils.filter(V,G,O)){E.push(V);
}}K=E;}}return K;}};Selectors.Getters={" ":function(H,G,I,A,E){var D=Selectors.Utils.getByTagAndID(G,I,A);for(var C=0,B=D.length;C<B;C++){var F=D[C];if(Selectors.Utils.chk(F,E)){H.push(F);
}}return H;},">":function(H,G,I,A,F){var C=Selectors.Utils.getByTagAndID(G,I,A);for(var E=0,D=C.length;E<D;E++){var B=C[E];if(B.parentNode==G&&Selectors.Utils.chk(B,F)){H.push(B);
}}return H;},"+":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(Selectors.Utils.chk(B,D)&&Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);
}break;}}return C;},"~":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(!Selectors.Utils.chk(B,D)){break;}if(Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);
}}}return C;}};Selectors.Filters={byTag:function(B,A){return(A=="*"||(B.tagName&&B.tagName.toLowerCase()==A));},byID:function(A,B){return(!B||(A.id&&A.id==B));
},byClass:function(B,A){return(B.className&&B.className.contains(A," "));},byPseudo:function(A,D,C,B){return D.call(A,C,B);},byAttribute:function(C,D,B,E){var A=Element.prototype.getProperty.call(C,D);
if(!A){return false;}if(!B||E==undefined){return true;}switch(B){case"=":return(A==E);case"*=":return(A.contains(E));case"^=":return(A.substr(0,E.length)==E);
case"$=":return(A.substr(A.length-E.length)==E);case"!=":return(A!=E);case"~=":return A.contains(E," ");case"|=":return A.contains(E,"-");}return false;
}};Selectors.Pseudo=new Hash({empty:function(){return !(this.innerText||this.textContent||"").length;},not:function(A){return !Element.match(this,A);},contains:function(A){return(this.innerText||this.textContent||"").contains(A);
},"first-child":function(){return Selectors.Pseudo.index.call(this,0);},"last-child":function(){var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false;
}}return true;},"only-child":function(){var B=this;while((B=B.previousSibling)){if(B.nodeType==1){return false;}}var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false;
}}return true;},"nth-child":function(G,E){G=(G==undefined)?"n":G;var C=Selectors.Utils.parseNthArgument(G);if(C.special!="n"){return Selectors.Pseudo[C.special].call(this,C.a,E);
}var F=0;E.positions=E.positions||{};var D=$uid(this);if(!E.positions[D]){var B=this;while((B=B.previousSibling)){if(B.nodeType!=1){continue;}F++;var A=E.positions[$uid(B)];
if(A!=undefined){F=A+F;break;}}E.positions[D]=F;}return(E.positions[D]%C.a==C.b);},index:function(A){var B=this,C=0;while((B=B.previousSibling)){if(B.nodeType==1&&++C>A){return false;
}}return(C==A);},even:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n+1",A);},odd:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n",A);
}});Element.Events.domready={onAdd:function(A){if(Browser.loaded){A.call(this);}}};(function(){var B=function(){if(Browser.loaded){return ;}Browser.loaded=true;
window.fireEvent("domready");document.fireEvent("domready");};switch(Browser.Engine.name){case"webkit":(function(){(["loaded","complete"].contains(document.readyState))?B():arguments.callee.delay(50);
})();break;case"trident":var A=document.createElement("div");(function(){($try(function(){A.doScroll("left");return $(A).inject(document.body).set("html","temp").dispose();
}))?B():arguments.callee.delay(50);})();break;default:window.addEvent("load",B);document.addEvent("DOMContentLoaded",B);}})();var JSON=new Hash({encode:function(B){switch($type(B)){case"string":return'"'+B.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';
case"array":return"["+String(B.map(JSON.encode).filter($defined))+"]";case"object":case"hash":var A=[];Hash.each(B,function(E,D){var C=JSON.encode(E);if(C){A.push(JSON.encode(D)+":"+C);
}});return"{"+A+"}";case"number":case"boolean":return String(B);case false:return"null";}return null;},$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(A){return JSON.$specialChars[A]||"\\u00"+Math.floor(A.charCodeAt()/16).toString(16)+(A.charCodeAt()%16).toString(16);
},decode:function(string,secure){if($type(string)!="string"||!string.length){return null;}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null;
}return eval("("+string+")");}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this);}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(B,A){this.key=B;
this.setOptions(A);},write:function(B){B=encodeURIComponent(B);if(this.options.domain){B+="; domain="+this.options.domain;}if(this.options.path){B+="; path="+this.options.path;
}if(this.options.duration){var A=new Date();A.setTime(A.getTime()+this.options.duration*24*60*60*1000);B+="; expires="+A.toGMTString();}if(this.options.secure){B+="; secure";
}this.options.document.cookie=this.key+"="+B;return this;},read:function(){var A=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");
return(A)?decodeURIComponent(A[1]):null;},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this;}});Cookie.write=function(B,C,A){return new Cookie(B,A).write(C);
};Cookie.read=function(A){return new Cookie(A).read();};Cookie.dispose=function(B,A){return new Cookie(B,A).dispose();};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object;
},initialize:function(L,M){this.instance="Swiff_"+$time();this.setOptions(M);M=this.options;var B=this.id=M.id||this.instance;var A=$(M.container);Swiff.CallBacks[this.instance]={};
var E=M.params,G=M.vars,F=M.callBacks;var H=$extend({height:M.height,width:M.width},M.properties);var K=this;for(var D in F){Swiff.CallBacks[this.instance][D]=(function(N){return function(){return N.apply(K.object,arguments);
};})(F[D]);G[D]="Swiff.CallBacks."+this.instance+"."+D;}E.flashVars=Hash.toQueryString(G);if(Browser.Engine.trident){H.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
E.movie=L;}else{H.type="application/x-shockwave-flash";H.data=L;}var J='<object id="'+B+'"';for(var I in H){J+=" "+I+'="'+H[I]+'"';}J+=">";for(var C in E){if(E[C]){J+='<param name="'+C+'" value="'+E[C]+'" />';
}}J+="</object>";this.object=((A)?A.empty():new Element("div")).set("html",J).firstChild;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this.toElement(),A);
return this;},inject:function(A){$(A,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments));
}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+"</invoke>");
return eval(rs);};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore",transition:function(A){return -(Math.cos(Math.PI*A)-1)/2;
}},initialize:function(A){this.subject=this.subject||this;this.setOptions(A);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();
var B=this.options.wait;if(B===false){this.options.link="cancel";}},step:function(){var A=$time();if(A<this.time+this.options.duration){var B=this.options.transition((A-this.time)/this.options.duration);
this.set(this.compute(this.from,this.to,B));}else{this.set(this.compute(this.from,this.to,1));this.complete();}},set:function(A){return A;},compute:function(C,B,A){return Fx.compute(C,B,A);
},check:function(A){if(!this.timer){return true;}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));
return false;}return false;},start:function(B,A){if(!this.check(arguments.callee,B,A)){return this;}this.from=B;this.to=A;this.time=0;this.startTimer();
this.onStart();return this;},complete:function(){if(this.stopTimer()){this.onComplete();}return this;},cancel:function(){if(this.stopTimer()){this.onCancel();
}return this;},onStart:function(){this.fireEvent("start",this.subject);},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject);
}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain();},pause:function(){this.stopTimer();return this;},resume:function(){this.startTimer();
return this;},stopTimer:function(){if(!this.timer){return false;}this.time=$time()-this.time;this.timer=$clear(this.timer);return true;},startTimer:function(){if(this.timer){return false;
}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true;}});Fx.compute=function(C,B,A){return(B-C)*A+C;
};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(D,E,B){B=$splat(B);var C=B[1];if(!$chk(C)){B[1]=B[0];
B[0]=D.getStyle(E);}var A=B.map(this.parse);return{from:A[0],to:A[1]};},parse:function(A){A=$lambda(A)();A=(typeof A=="string")?A.split(" "):$splat(A);
return A.map(function(C){C=String(C);var B=false;Fx.CSS.Parsers.each(function(F,E){if(B){return ;}var D=F.parse(C);if($chk(D)){B={value:D,parser:F};}});
B=B||{value:C,parser:Fx.CSS.Parsers.String};return B;});},compute:function(D,C,B){var A=[];(Math.min(D.length,C.length)).times(function(E){A.push({value:D[E].parser.compute(D[E].value,C[E].value,B),parser:D[E].parser});
});A.$family={name:"fx:css:value"};return A;},serve:function(C,B){if($type(C)!="fx:css:value"){C=this.parse(C);}var A=[];C.each(function(D){A=A.concat(D.parser.serve(D.value,B));
});return A;},render:function(A,D,C,B){A.setStyle(D,this.serve(C,B));},search:function(A){if(Fx.CSS.Cache[A]){return Fx.CSS.Cache[A];}var B={};Array.each(document.styleSheets,function(E,D){var C=E.href;
if(C&&C.contains("://")&&!C.contains(document.domain)){return ;}var F=E.rules||E.cssRules;Array.each(F,function(I,G){if(!I.style){return ;}var H=(I.selectorText)?I.selectorText.replace(/^\w+/,function(J){return J.toLowerCase();
}):null;if(!H||!H.test("^"+A+"$")){return ;}Element.Styles.each(function(K,J){if(!I.style[J]||Element.ShortStyles[J]){return ;}K=String(I.style[J]);B[J]=(K.test(/^rgb/))?K.rgbToHex():K;
});});});return Fx.CSS.Cache[A]=B;}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(A){if(A.match(/^#[0-9a-f]{3,6}$/i)){return A.hexToRgb(true);
}return((A=A.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[A[1],A[2],A[3]]:false;},compute:function(C,B,A){return C.map(function(E,D){return Math.round(Fx.compute(C[D],B[D],A));
});},serve:function(A){return A.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(B,A){return(A)?B+A:B;}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});
Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);},set:function(B,A){if(arguments.length==1){A=B;
B=this.property||this.options.property;}this.render(this.element,B,A,this.options.unit);return this;},start:function(C,E,D){if(!this.check(arguments.callee,C,E,D)){return this;
}var B=Array.flatten(arguments);this.property=this.options.property||B.shift();var A=this.prepare(this.element,this.property,B);return this.parent(A.from,A.to);
}});Element.Properties.tween={set:function(A){var B=this.retrieve("tween");if(B){B.cancel();}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},A));
},get:function(A){if(A||!this.retrieve("tween")){if(A||!this.retrieve("tween:options")){this.set("tween",A);}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")));
}return this.retrieve("tween");}};Element.implement({tween:function(A,C,B){this.get("tween").start(arguments);return this;},fade:function(C){var E=this.get("tween"),D="opacity",A;
C=$pick(C,"toggle");switch(C){case"in":E.start(D,1);break;case"out":E.start(D,0);break;case"show":E.set(D,1);break;case"hide":E.set(D,0);break;case"toggle":var B=this.retrieve("fade:flag",this.get("opacity")==1);
E.start(D,(B)?0:1);this.store("fade:flag",!B);A=true;break;default:E.start(D,arguments);}if(!A){this.eliminate("fade:flag");}return this;},highlight:function(C,A){if(!A){A=this.retrieve("highlight:original",this.getStyle("background-color"));
A=(A=="transparent")?"#fff":A;}var B=this.get("tween");B.start("background-color",C||"#ffff88",A).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));
B.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);},set:function(A){if(typeof A=="string"){A=this.search(A);
}for(var B in A){this.render(this.element,B,A[B],this.options.unit);}return this;},compute:function(E,D,C){var A={};for(var B in E){A[B]=this.parent(E[B],D[B],C);
}return A;},start:function(B){if(!this.check(arguments.callee,B)){return this;}if(typeof B=="string"){B=this.search(B);}var E={},D={};for(var C in B){var A=this.prepare(this.element,C,B[C]);
E[C]=A.from;D[C]=A.to;}return this.parent(E,D);}});Element.Properties.morph={set:function(A){var B=this.retrieve("morph");if(B){B.cancel();}return this.eliminate("morph").store("morph:options",$extend({link:"cancel"},A));
},get:function(A){if(A||!this.retrieve("morph")){if(A||!this.retrieve("morph:options")){this.set("morph",A);}this.store("morph",new Fx.Morph(this,this.retrieve("morph:options")));
}return this.retrieve("morph");}};Element.implement({morph:function(A){this.get("morph").start(A);return this;}});(function(){var A=Fx.prototype.initialize;
Fx.prototype.initialize=function(B){A.call(this,B);var C=this.options.transition;if(typeof C=="string"&&(C=C.split(":"))){var D=Fx.Transitions;D=D[C[0]]||D[C[0].capitalize()];
if(C[1]){D=D["ease"+C[1].capitalize()+(C[2]?C[2].capitalize():"")];}this.options.transition=D;}};})();Fx.Transition=function(B,A){A=$splat(A);return $extend(B,{easeIn:function(C){return B(C,A);
},easeOut:function(C){return 1-B(1-C,A);},easeInOut:function(C){return(C<=0.5)?B(2*C,A)/2:(2-B(2*(1-C),A))/2;}});};Fx.Transitions=new Hash({linear:$arguments(0)});
Fx.Transitions.extend=function(A){for(var B in A){Fx.Transitions[B]=new Fx.Transition(A[B]);}};Fx.Transitions.extend({Pow:function(B,A){return Math.pow(B,A[0]||6);
},Expo:function(A){return Math.pow(2,8*(A-1));},Circ:function(A){return 1-Math.sin(Math.acos(A));},Sine:function(A){return 1-Math.sin((1-A)*Math.PI/2);
},Back:function(B,A){A=A[0]||1.618;return Math.pow(B,2)*((A+1)*B-A);},Bounce:function(D){var C;for(var B=0,A=1;1;B+=A,A/=2){if(D>=(7-4*B)/11){C=-Math.pow((11-6*B-11*D)/4,2)+A*A;
break;}}return C;},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3);}});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2]);
});});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false},initialize:function(A){this.xhr=new Browser.Request();
this.setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers);},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return ;
}this.running=false;this.status=0;$try(function(){this.status=this.xhr.status;}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};
this.success(this.response.text,this.response.xml);}else{this.response={text:null,xml:null};this.failure();}this.xhr.onreadystatechange=$empty;},isSuccess:function(){return((this.status>=200)&&(this.status<300));
},processScripts:function(A){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(A);}return A.stripScripts(this.options.evalScripts);
},success:function(B,A){this.onSuccess(this.processScripts(B),A);},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain();
},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr);},setHeader:function(A,B){this.headers.set(A,B);
return this;},getHeader:function(A){return $try(function(){return this.xhr.getResponseHeader(A);}.bind(this));},check:function(A){if(!this.running){return true;
}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false;}return false;
},send:function(I){if(!this.check(arguments.callee,I)){return this;}this.running=true;var G=$type(I);if(G=="string"||G=="element"){I={data:I};}var D=this.options;
I=$extend({data:D.data,url:D.url,method:D.method},I);var E=I.data,B=I.url,A=I.method;switch($type(E)){case"element":E=$(E).toQueryString();break;case"object":case"hash":E=Hash.toQueryString(E);
}if(this.options.format){var H="format="+this.options.format;E=(E)?H+"&"+E:H;}if(this.options.emulation&&["put","delete"].contains(A)){var F="_method="+A;
E=(E)?F+"&"+E:F;A="post";}if(this.options.urlEncoded&&A=="post"){var C=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+C);
}if(E&&A=="get"){B=B+(B.contains("?")?"&":"?")+E;E=null;}this.xhr.open(A.toUpperCase(),B,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);
this.headers.each(function(K,J){if(!$try(function(){this.xhr.setRequestHeader(J,K);return true;}.bind(this))){this.fireEvent("exception",[J,K]);}},this);
this.fireEvent("request");this.xhr.send(E);if(!this.options.async){this.onStateChange();}return this;},cancel:function(){if(!this.running){return this;
}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this;}});(function(){var A={};
["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(B){A[B]=function(){var C=Array.link(arguments,{url:String.type,data:$defined});
return this.send($extend(C,{method:B.toLowerCase()}));};});Request.implement(A);})();Element.Properties.send={set:function(A){var B=this.retrieve("send");
if(B){B.cancel();}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},A));
},get:function(A){if(A||!this.retrieve("send")){if(A||!this.retrieve("send:options")){this.set("send",A);}this.store("send",new Request(this.retrieve("send:options")));
}return this.retrieve("send");}};Element.implement({send:function(A){var B=this.get("send");B.send({data:this,url:A||B.options.url});return this;}});Request.HTML=new Class({Extends:Request,options:{update:false,evalScripts:true,filter:false},processHTML:function(C){var B=C.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
C=(B)?B[1]:C;var A=new Element("div");return $try(function(){var D="<root>"+C+"</root>",G;if(Browser.Engine.trident){G=new ActiveXObject("Microsoft.XMLDOM");
G.async=false;G.loadXML(D);}else{G=new DOMParser().parseFromString(D,"text/xml");}D=G.getElementsByTagName("root")[0];for(var F=0,E=D.childNodes.length;
F<E;F++){var H=Element.clone(D.childNodes[F],true,true);if(H){A.grab(H);}}return A;})||A.set("html",C);},success:function(D){var C=this.options,B=this.response;
B.html=D.stripScripts(function(E){B.javascript=E;});var A=this.processHTML(B.html);B.tree=A.childNodes;B.elements=A.getElements("*");if(C.filter){B.tree=B.elements.filter(C.filter);
}if(C.update){$(C.update).empty().adopt(B.tree);}if(C.evalScripts){$exec(B.javascript);}this.onSuccess(B.tree,B.elements,B.html,B.javascript);}});Element.Properties.load={set:function(A){var B=this.retrieve("load");
if(B){send.cancel();}return this.eliminate("load").store("load:options",$extend({data:this,link:"cancel",update:this,method:"get"},A));},get:function(A){if(A||!this.retrieve("load")){if(A||!this.retrieve("load:options")){this.set("load",A);
}this.store("load",new Request.HTML(this.retrieve("load:options")));}return this.retrieve("load");}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Object.type,url:String.type}));
return this;}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(A){this.parent(A);this.headers.extend({Accept:"application/json","X-Request":"JSON"});
},success:function(A){this.response.json=JSON.decode(A,this.options.secure);this.onSuccess(this.response.json,A);}});

//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.

Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical"},initialize:function(B,A){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);
if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper);}},true);this.element=this.subject=$(B);this.parent(A);var C=this.element.retrieve("wrapper");
this.wrapper=C||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);this.element.store("wrapper",this.wrapper).setStyle("margin",0);
this.now=[];this.open=true;},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight;},horizontal:function(){this.margin="margin-left";
this.layout="width";this.offset=this.element.offsetWidth;},set:function(A){this.element.setStyle(this.margin,A[0]);this.wrapper.setStyle(this.layout,A[1]);
return this;},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B[F]=Fx.compute(E[F],D[F],C);});return B;},start:function(B,E){if(!this.check(arguments.callee,B,E)){return this;
}this[E||this.options.mode]();var D=this.element.getStyle(this.margin).toInt();var C=this.wrapper.getStyle(this.layout).toInt();var A=[[D,C],[0,this.offset]];
var G=[[D,C],[-this.offset,0]];var F;switch(B){case"in":F=A;break;case"out":F=G;break;case"toggle":F=(this.wrapper["offset"+this.layout.capitalize()]==0)?A:G;
}return this.parent(F[0],F[1]);},slideIn:function(A){return this.start("in",A);},slideOut:function(A){return this.start("out",A);},hide:function(A){this[A||this.options.mode]();
this.open=false;return this.set([-this.offset,0]);},show:function(A){this[A||this.options.mode]();this.open=true;return this.set([0,this.offset]);},toggle:function(A){return this.start("toggle",A);
}});Element.Properties.slide={set:function(B){var A=this.retrieve("slide");if(A){A.cancel();}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},B));
},get:function(A){if(A||!this.retrieve("slide")){if(A||!this.retrieve("slide:options")){this.set("slide",A);}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")));
}return this.retrieve("slide");}};Element.implement({slide:function(D,E){D=D||"toggle";var B=this.get("slide"),A;switch(D){case"hide":B.hide(E);break;case"show":B.show(E);
break;case"toggle":var C=this.retrieve("slide:flag",B.open);B[(C)?"slideOut":"slideIn"](E);this.store("slide:flag",!C);A=true;break;default:B.start(D,E);
}if(!A){this.eliminate("slide:flag");}return this;}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);
this.parent(A);var D=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body);}var C=this.element;
if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D);},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D);
},true);}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1]);},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C));
});return B;},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this;}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H};
for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A;}else{D[G]=B[G];}D[G]+=this.options.offset[G];}return this.parent([B.x,B.y],[D.x,D.y]);
},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom");
},toElement:function(B){var A=$(B).getPosition(this.element);return this.start(A.x,A.y);}});Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B);
this.parent(A);},compute:function(G,H,I){var C={};for(var D in G){var A=G[D],E=H[D],F=C[D]={};for(var B in A){F[B]=this.parent(A[B],E[B],I);}}return C;
},set:function(B){for(var C in B){var A=B[C];for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit);}}return this;},start:function(C){if(!this.check(arguments.callee,C)){return this;
}var H={},I={};for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);A[B]=E.from;G[B]=E.to;}}return this.parent(H,I);
}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var B=Array.link(arguments,{options:Object.type,element:$defined});
this.element=$(B.element);this.document=this.element.getDocument();this.setOptions(B.options||{});var A=$type(this.options.handle);this.handles=(A=="array"||A=="collection")?$$(this.options.handle):$(this.options.handle)||this.element;
this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};
this.attach();},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this;},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);
return this;},start:function(C){if(this.options.preventDefault){C.preventDefault();}this.fireEvent("beforeStart",this.element);this.mouse.start=C.page;
var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue;}if(this.options.style){this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt();
}else{this.value.now[D]=this.element[this.options.modifiers[D]];}if(this.options.invert){this.value.now[D]*=-1;}this.mouse.pos[D]=C.page[D]-this.value.now[D];
if(A&&A[D]){for(var B=2;B--;B){if($chk(A[D][B])){this.limit[D][B]=$lambda(A[D][B])();}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid};
}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop);},check:function(A){if(this.options.preventDefault){A.preventDefault();
}var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2)));if(B>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});
this.fireEvent("start",this.element).fireEvent("snap",this.element);}},drag:function(A){if(this.options.preventDefault){A.preventDefault();}this.mouse.now=A.page;
for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue;}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B];if(this.options.invert){this.value.now[B]*=-1;
}if(this.options.limit&&this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1];}else{if($chk(this.limit[B][0])&&(this.value.now[B]<this.limit[B][0])){this.value.now[B]=this.limit[B][0];
}}}if(this.options.grid[B]){this.value.now[B]-=(this.value.now[B]%this.options.grid[B]);}if(this.options.style){this.element.setStyle(this.options.modifiers[B],this.value.now[B]+this.options.unit);
}else{this.element[this.options.modifiers[B]]=this.value.now[B];}}this.fireEvent("drag",this.element);},cancel:function(A){this.document.removeEvent("mousemove",this.bound.check);
this.document.removeEvent("mouseup",this.bound.cancel);if(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element);
}},stop:function(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);
if(A){this.fireEvent("complete",this.element);}}});Element.implement({makeResizable:function(A){return new Drag(this,$merge({modifiers:{x:"width",y:"height"}},A));
}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false},initialize:function(C,B){this.parent(C,B);this.droppables=$$(this.options.droppables);
this.container=$(this.options.container);if(this.container&&$type(this.container)!="element"){this.container=$(this.container.getDocument().body);}C=this.element;
var D=C.getStyle("position");var A=(D!="static")?D:"absolute";if(C.getStyle("left")=="auto"||C.getStyle("top")=="auto"){C.position(C.getPosition(C.offsetParent));
}C.setStyle("position",A);this.addEvent("start",function(){this.checkDroppables();},true);},start:function(B){if(this.container){var D=this.element,J=this.container,E=J.getCoordinates(D.offsetParent),F={},A={};
["top","right","bottom","left"].each(function(K){F[K]=J.getStyle("padding-"+K).toInt();A[K]=D.getStyle("margin-"+K).toInt();},this);var C=D.offsetWidth+A.left+A.right,I=D.offsetHeight+A.top+A.bottom;
var H=[E.left+F.left,E.right-F.right-C];var G=[E.top+F.top,E.bottom-F.bottom-I];this.options.limit={x:H,y:G};}this.parent(B);},checkAgainst:function(B){B=B.getCoordinates();
var A=this.mouse.now;return(A.x>B.left&&A.x<B.right&&A.y<B.bottom&&A.y>B.top);},checkDroppables:function(){var A=this.droppables.filter(this.checkAgainst,this).getLast();
if(this.overed!=A){if(this.overed){this.fireEvent("leave",[this.element,this.overed]);}if(A){this.overed=A;this.fireEvent("enter",[this.element,A]);}else{this.overed=null;
}}},drag:function(A){this.parent(A);if(this.droppables.length){this.checkDroppables();}},stop:function(A){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed]);
this.overed=null;return this.parent(A);}});Element.implement({makeDraggable:function(A){return new Drag.Move(this,A);}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(B,A){this.parent(B,A);
this.load();},save:function(){var A=JSON.encode(this.hash);if(!A||A.length>4096){return false;}if(A=="{}"){this.dispose();}else{this.write(A);}return true;
},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this;}});Hash.Cookie.implement((function(){var A={};Hash.each(Hash.prototype,function(C,B){A[B]=function(){var D=C.apply(this.hash,arguments);
if(this.options.autoSave){this.save();}return D;};});return A;})());var Color=new Native({initialize:function(B,C){if(arguments.length>=3){C="rgb";B=Array.slice(arguments,0,3);
}else{if(typeof B=="string"){if(B.match(/rgb/)){B=B.rgbToHex().hexToRgb(true);}else{if(B.match(/hsb/)){B=B.hsbToRgb();}else{B=B.hexToRgb(true);}}}}C=C||"rgb";
switch(C){case"hsb":var A=B;B=B.hsbToRgb();B.hsb=A;break;case"hex":B=B.hexToRgb(true);break;}B.rgb=B.slice(0,3);B.hsb=B.hsb||B.rgbToHsb();B.hex=B.rgbToHex();
return $extend(B,this);}});Color.implement({mix:function(){var A=Array.slice(arguments);var C=($type(A.getLast())=="number")?A.pop():50;var B=this.slice();
A.each(function(D){D=new Color(D);for(var E=0;E<3;E++){B[E]=Math.round((B[E]/100*(100-C))+(D[E]/100*C));}});return new Color(B,"rgb");},invert:function(){return new Color(this.map(function(A){return 255-A;
}));},setHue:function(A){return new Color([A,this.hsb[1],this.hsb[2]],"hsb");},setSaturation:function(A){return new Color([this.hsb[0],A,this.hsb[2]],"hsb");
},setBrightness:function(A){return new Color([this.hsb[0],this.hsb[1],A],"hsb");}});function $RGB(C,B,A){return new Color([C,B,A],"rgb");}function $HSB(C,B,A){return new Color([C,B,A],"hsb");
}function $HEX(A){return new Color(A,"hex");}Array.implement({rgbToHsb:function(){var B=this[0],C=this[1],J=this[2];var G,F,H;var I=Math.max(B,C,J),E=Math.min(B,C,J);
var K=I-E;H=I/255;F=(I!=0)?K/I:0;if(F==0){G=0;}else{var D=(I-B)/K;var A=(I-C)/K;var L=(I-J)/K;if(B==I){G=L-A;}else{if(C==I){G=2+D-L;}else{G=4+A-D;}}G/=6;
if(G<0){G++;}}return[Math.round(G*360),Math.round(F*100),Math.round(H*100)];},hsbToRgb:function(){var C=Math.round(this[2]/100*255);if(this[1]==0){return[C,C,C];
}else{var A=this[0]%360;var E=A%60;var F=Math.round((this[2]*(100-this[1]))/10000*255);var D=Math.round((this[2]*(6000-this[1]*E))/600000*255);var B=Math.round((this[2]*(6000-this[1]*(60-E)))/600000*255);
switch(Math.floor(A/60)){case 0:return[C,B,F];case 1:return[D,C,F];case 2:return[F,C,B];case 3:return[F,D,C];case 4:return[B,F,C];case 5:return[C,F,D];
}}return false;}});String.implement({rgbToHsb:function(){var A=this.match(/\d{1,3}/g);return(A)?hsb.rgbToHsb():null;},hsbToRgb:function(){var A=this.match(/\d{1,3}/g);
return(A)?A.hsbToRgb():null;}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={};},addEvent:function(B,A){this.checker[B]=this.checker[B]||{};
this.events[B]=this.events[B]||[];if(this.events[B].contains(A)){return false;}else{this.events[B].push(A);}this.instances.each(function(C,D){C.addEvent(B,this.check.bind(this,[B,C,D]));
},this);return this;},check:function(C,A,B){this.checker[C][B]=true;var D=this.instances.every(function(F,E){return this.checker[C][E]||false;},this);if(!D){return ;
}this.checker[C]={};this.events[C].each(function(E){E.call(this,this.instances,A);},this);}});var Asset=new Hash({javascript:function(F,D){D=$extend({onload:$empty,document:document,check:$lambda(true)},D);
var B=new Element("script",{src:F,type:"text/javascript"});var E=D.onload.bind(B),A=D.check,G=D.document;delete D.onload;delete D.check;delete D.document;
B.addEvents({load:E,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){E();}}}).setProperties(D);if(Browser.Engine.webkit419){var C=(function(){if(!$try(A)){return ;
}$clear(C);E();}).periodical(50);}return B.inject(G.head);},css:function(B,A){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:B},A)).inject(document.head);
},image:function(C,B){B=$merge({onload:$empty,onabort:$empty,onerror:$empty},B);var D=new Image();var A=$(D)||new Element("img");["load","abort","error"].each(function(E){var F="on"+E;
var G=B[F];delete B[F];D[F]=function(){if(!D){return ;}if(!A.parentNode){A.width=D.width;A.height=D.height;}D=D.onload=D.onabort=D.onerror=null;G.delay(1,A,A);
A.fireEvent(E,A,1);};});D.src=A.src=C;if(D&&D.complete){D.onload.delay(1);}return A.setProperties(B);},images:function(D,C){C=$merge({onComplete:$empty,onProgress:$empty},C);
if(!D.push){D=[D];}var A=[];var B=0;D.each(function(F){var E=new Asset.image(F,{onload:function(){C.onProgress.call(this,B,D.indexOf(F));B++;if(B==D.length){C.onComplete();
}}});A.push(E);});return new Elements(A);}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(A,B){this.setOptions(B);
this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(A)||A));if(!this.options.clone){this.options.revert=false;}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert));
}},attach:function(){this.addLists(this.lists);return this;},detach:function(){this.lists=this.removeLists(this.lists);return this;},addItems:function(){Array.flatten(arguments).each(function(A){this.elements.push(A);
var B=A.retrieve("sortables:start",this.start.bindWithEvent(this,A));(this.options.handle?A.getElement(this.options.handle)||A:A).addEvent("mousedown",B);
},this);return this;},addLists:function(){Array.flatten(arguments).each(function(A){this.lists.push(A);this.addItems(A.getChildren());},this);return this;
},removeItems:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.elements.erase(B);var C=B.retrieve("sortables:start");(this.options.handle?B.getElement(this.options.handle)||B:B).removeEvent("mousedown",C);
},this);return $$(A);},removeLists:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.lists.erase(B);this.removeItems(B.getChildren());
},this);return $$(A);},getClone:function(B,A){if(!this.options.clone){return new Element("div").inject(document.body);}if($type(this.options.clone)=="function"){return this.options.clone.call(this,B,A,this.list);
}return A.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:A.getStyle("width")}).inject(this.list).position(A.getPosition(A.getOffsetParent()));
},getDroppables:function(){var A=this.list.getChildren();if(!this.options.constrain){A=this.lists.concat(A).erase(this.list);}return A.erase(this.clone).erase(this.element);
},insert:function(C,B){var A="inside";if(this.lists.contains(B)){this.list=B;this.drag.droppables=this.getDroppables();}else{A=this.element.getAllPrevious().contains(B)?"before":"after";
}this.element.inject(B,A);this.fireEvent("sort",[this.element,this.clone]);},start:function(B,A){if(!this.idle){return ;}this.idle=false;this.element=A;
this.opacity=A.get("opacity");this.list=A.getParent();this.clone=this.getClone(B,A);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){B.stop();
this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone]);}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});
this.clone.inject(this.element,"before");this.drag.start(B);},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var A=this.element.getStyles("width","height");
var B=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:B.top,left:B.left,width:A.width,height:A.height,opacity:0.25}).chain(this.reset.bind(this));
}else{this.reset();}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element);},serialize:function(){var C=Array.link(arguments,{modifier:Function.type,index:$defined});
var B=this.lists.map(function(D){return D.getChildren().map(C.modifier||function(E){return E.get("id");},this);},this);var A=C.index;if(this.lists.length==1){A=0;
}return $chk(A)&&A>=0&&A<this.lists.length?B[A]:B;}});var Tips=new Class({Implements:[Events,Options],options:{onShow:function(A){A.setStyle("visibility","visible");
},onHide:function(A){A.setStyle("visibility","hidden");},showDelay:100,hideDelay:100,className:null,offsets:{x:16,y:16},fixed:false},initialize:function(){var C=Array.link(arguments,{options:Object.type,elements:$defined});
this.setOptions(C.options||null);this.tip=new Element("div").inject(document.body);if(this.options.className){this.tip.addClass(this.options.className);
}var B=new Element("div",{"class":"tip-top"}).inject(this.tip);this.container=new Element("div",{"class":"tip"}).inject(this.tip);var A=new Element("div",{"class":"tip-bottom"}).inject(this.tip);
this.tip.setStyles({position:"absolute",top:0,left:0,visibility:"hidden"});if(C.elements){this.attach(C.elements);}},attach:function(A){$$(A).each(function(D){var G=D.retrieve("tip:title",D.get("title"));
var F=D.retrieve("tip:text",D.get("rel")||D.get("href"));var E=D.retrieve("tip:enter",this.elementEnter.bindWithEvent(this,D));var C=D.retrieve("tip:leave",this.elementLeave.bindWithEvent(this,D));
D.addEvents({mouseenter:E,mouseleave:C});if(!this.options.fixed){var B=D.retrieve("tip:move",this.elementMove.bindWithEvent(this,D));D.addEvent("mousemove",B);
}D.store("tip:native",D.get("title"));D.erase("title");},this);return this;},detach:function(A){$$(A).each(function(C){C.removeEvent("mouseenter",C.retrieve("tip:enter")||$empty);
C.removeEvent("mouseleave",C.retrieve("tip:leave")||$empty);C.removeEvent("mousemove",C.retrieve("tip:move")||$empty);C.eliminate("tip:enter").eliminate("tip:leave").eliminate("tip:move");
var B=C.retrieve("tip:native");if(B){C.set("title",B);}});return this;},elementEnter:function(B,A){$A(this.container.childNodes).each(Element.dispose);
var D=A.retrieve("tip:title");if(D){this.titleElement=new Element("div",{"class":"tip-title"}).inject(this.container);this.fill(this.titleElement,D);}var C=A.retrieve("tip:text");
if(C){this.textElement=new Element("div",{"class":"tip-text"}).inject(this.container);this.fill(this.textElement,C);}this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);
this.position((!this.options.fixed)?B:{page:A.getPosition()});},elementLeave:function(A){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this);
},elementMove:function(A){this.position(A);},position:function(D){var B=window.getSize(),A=window.getScroll();var E={x:this.tip.offsetWidth,y:this.tip.offsetHeight};
var C={x:"left",y:"top"};for(var F in C){var G=D.page[F]+this.options.offsets[F];if((G+E[F]-A[F])>B[F]){G=D.page[F]-this.options.offsets[F]-E[F];}this.tip.setStyle(C[F],G);
}},fill:function(A,B){(typeof B=="string")?A.set("html",B):A.adopt(B);},show:function(){this.fireEvent("show",this.tip);},hide:function(){this.fireEvent("hide",this.tip);
}});var SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(B,C){C=C||document;var E=C.getDocument(),D=C.getWindow();this.parent(E,B);this.links=(this.options.links)?$$(this.options.links):$$(E.links);
var A=D.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(G){if(G.href.indexOf(A)!=0){return ;}var F=G.href.substr(A.length);if(F&&$(F)){this.useLink(G,F);
}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){D.location.hash=this.anchor;},true);}},useLink:function(B,A){B.addEvent("click",function(C){this.anchor=A;
this.toElement(A);C.stop();}.bind(this));}});var Slider=new Class({Implements:[Events,Options],options:{onTick:function(A){if(this.options.snap){A=this.toPosition(this.step);
}this.knob.setStyle(this.property,A);},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(E,A,D){this.setOptions(D);
this.element=$(E);this.knob=$(A);this.previousChange=this.previousEnd=this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bind(this));if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement.bindWithEvent(this));
}var F,B={},C={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";F="offsetHeight";break;case"horizontal":this.axis="x";
this.property="left";F="offsetWidth";}this.half=this.knob[F]/2;this.full=this.element[F]-this.knob[F]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;
this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;
this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);C[this.axis]=this.property;
B[this.axis]=[-this.options.offset,this.full-this.options.offset];this.drag=new Drag(this.knob,{snap:0,limit:B,modifiers:C,onDrag:this.draggedKnob.bind(this),onStart:this.draggedKnob.bind(this),onComplete:function(){this.draggedKnob();
this.end();}.bind(this)});if(this.options.snap){this.drag.options.grid=Math.ceil(this.stepWidth);this.drag.options.limit[this.axis][1]=this.full;}},set:function(A){if(!((this.range>0)^(A<this.min))){A=this.min;
}if(!((this.range>0)^(A>this.max))){A=this.max;}this.step=Math.round(A);this.checkStep();this.end();this.fireEvent("tick",this.toPosition(this.step));return this;
},clickedElement:function(C){var B=this.range<0?-1:1;var A=C.page[this.axis]-this.element.getPosition()[this.axis]-this.half;A=A.limit(-this.options.offset,this.full-this.options.offset);
this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();this.end();this.fireEvent("tick",A);},scrolledElement:function(A){var B=(this.options.mode=="horizontal")?(A.wheel<0):(A.wheel>0);
this.set(B?this.step-this.stepSize:this.step+this.stepSize);A.stop();},draggedKnob:function(){var B=this.range<0?-1:1;var A=this.drag.value.now[this.axis];
A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;
this.fireEvent("change",this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"");
}},toStep:function(A){var B=(A+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(B-=B%this.stepSize):B;},toPosition:function(A){return(this.full*Math.abs(this.min-A))/(this.steps*this.stepSize)-this.options.offset;
}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(A,B){this.element.scrollTo(A,B);}},initialize:function(B,A){this.setOptions(A);
this.element=$(B);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.coord=this.getCoords.bind(this);
},start:function(){this.listener.addEvent("mousemove",this.coord);},stop:function(){this.listener.removeEvent("mousemove",this.coord);this.timer=$clear(this.timer);
},getCoords:function(A){this.page=(this.listener.get("tag")=="body")?A.client:A.page;if(!this.timer){this.timer=this.scroll.periodical(50,this);}},scroll:function(){var B=this.element.getSize(),A=this.element.getScroll(),E=this.element.getPosition(),D={x:0,y:0};
for(var C in this.page){if(this.page[C]<(this.options.area+E[C])&&A[C]!=0){D[C]=(this.page[C]-this.options.area-E[C])*this.options.velocity;}else{if(this.page[C]+this.options.area>(B[C]+E[C])&&B[C]+B[C]!=A[C]){D[C]=(this.page[C]-B[C]+this.options.area-E[C])*this.options.velocity;
}}}if(D.y||D.x){this.fireEvent("change",[A.x+D.x,A.y+D.y]);}}});var Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var C=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});
this.parent(C.elements,C.options);this.togglers=$$(C.togglers);this.container=$(C.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true;
}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show;}if(this.options.start){this.options.display=false;this.options.show=false;
}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity";}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth";
}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight";}for(var B=0,A=this.togglers.length;B<A;B++){this.addSection(this.togglers[B],this.elements[B]);
}this.elements.each(function(E,D){if(this.options.show===D){this.fireEvent("active",[this.togglers[D],E]);}else{for(var F in this.effects){E.setStyle(F,0);
}}},this);if($chk(this.options.display)){this.display(this.options.display);}},addSection:function(E,C,G){E=$(E);C=$(C);var F=this.togglers.contains(E);
var B=this.togglers.length;this.togglers.include(E);this.elements.include(C);if(B&&(!F||G)){G=$pick(G,B-1);E.inject(this.togglers[G],"before");C.inject(E,"after");
}else{if(this.container&&!F){E.inject(this.container);C.inject(this.container);}}var A=this.togglers.indexOf(E);E.addEvent("click",this.display.bind(this,A));
if(this.options.height){C.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"});}if(this.options.width){C.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"});
}C.fullOpacity=1;if(this.options.fixedWidth){C.fullWidth=this.options.fixedWidth;}if(this.options.fixedHeight){C.fullHeight=this.options.fixedHeight;}C.setStyle("overflow","hidden");
if(!F){for(var D in this.effects){C.setStyle(D,0);}}return this;},display:function(A){A=($type(A)=="element")?this.elements.indexOf(A):A;if((this.timer&&this.options.wait)||(A===this.previous&&!this.options.alwaysHide)){return this;
}this.previous=A;var B={};this.elements.each(function(E,D){B[D]={};var C=(D!=A)||(this.options.alwaysHide&&(E.offsetHeight>0));this.fireEvent(C?"background":"active",[this.togglers[D],E]);
for(var F in this.effects){B[D][F]=C?0:E[this.effects[F]];}},this);return this.start(B);}});
//<![CDATA[
/*
name: moo-12-getoffset-patch.js
$LastChangedDate: 2008-12-24 13:49:26 -0500 (Wed, 24 Dec 2008) $
$Rev: 34481 $
author: Ali Hasan, Jason Smith
/////////////////////
dependencies:
1. moo-12-all.js
/////////////////////
Patch to correct IE specific bug in Mootools 1.2 where getPosition() returns incorrect positions.
*/

(function() {
Element.implement({
	getOffsets: function(){
		var element = this, position = {x: 0, y: 0};
		if (isBody(this)) return position;

		while (element && !isBody(element)){
			position.x += element.offsetLeft;
			position.y += element.offsetTop;

			if (Browser.Engine.gecko){
				if (!borderBox(element)){
					position.x += leftBorder(element);
					position.y += topBorder(element);
				}
				var parent = element.parentNode;
				if (parent && styleString(parent, 'overflow') != 'visible'){
					position.x += leftBorder(parent);
					position.y += topBorder(parent);
				}
			} else if (element != this && Browser.Engine.webkit){
				position.x += leftBorder(element);
				position.y += topBorder(element);
			}

			element = element.offsetParent;
		}
		if (Browser.Engine.gecko && !borderBox(this)){
			position.x -= leftBorder(this);
			position.y -= topBorder(this);
		}
		return position;
	}
	});

	var styleString = Element.getComputedStyle;
	
	function styleNumber(element, style){
		return styleString(element, style).toInt() || 0;
	};
	
	function borderBox(element){
		return styleString(element, '-moz-box-sizing') == 'border-box';
	};
	
	function topBorder(element){
		return styleNumber(element, 'border-top-width');
	};
	
	function leftBorder(element){
		return styleNumber(element, 'border-left-width');
	};
	
	function isBody(element){
		return (/^(?:body|html)$/i).test(element.tagName);
	};
	
	function getCompatElement(element){
		var doc = element.getDocument();
		return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
	};
})();
//]]>


QEvent=(function(){var toPurge=[],isIe=document.attachEvent&&!document.addEventListener,isGecko=!isIe&&navigator.taintEnabled&&!!document.getBoxObjectFor,winProp=isIe?'parentWindow':'defaultView',$QEVENTS='$QEVENTS';var isDomObj=function(obj){return!!(obj.addEventListener||obj.attachEvent);};var getWindow=function(obj){return obj[winProp]||(obj.ownerDocument&&obj.ownerDocument[winProp])||obj;};var prepare=function(fn){return function(obj,type,arg){if(typeof type=='object')
for(var k in type)
arguments.callee(obj,k,type[k]);else{var isDom=isDomObj(obj),events=obj[$QEVENTS]=obj[$QEVENTS]||{},storage=events[type]=events[type]||{listeners:[],domFixed:isDom&&[]};fn(obj,type,arg,storage,isDom);}};};var add=prepare(function(obj,type,fn,storage,isDom){var listeners=storage.listeners;for(var i=listeners.length;i--;)
if(listeners[i]==fn)
return;listeners.push(fn);if(!isDom)
return;var custom=QEvent.DomEvents[type];if(custom){if(custom.onAdd)
custom.onAdd.call(obj,fn);if(custom.condition){var old=fn;fn=function(e){if(custom.condition.call(obj,e))
old.call(obj,e);};}
type=custom.base||type;}
if(!type)
return;var win=getWindow(obj);storage.domFixed.push(function(e){e=e||win.event;if(e)
e=new DomEvent(e,win);fn.call(obj,e);});if(storage.handler)
return;addDom(obj,type,storage.handler=function(e){for(var i=0,l=storage.domFixed.length;i<l;i++)
storage.domFixed[i](e);});});var remove=prepare(function(obj,type,fn,storage,isDom){var listeners=storage.listeners;for(var i=listeners.length;i--;){if(listeners[i]===fn){listeners.splice(i,1);if(isDom){var custom=QEvent.DomEvents[type];if(custom&&custom.onRemove)
custom.onRemove.call(obj,fn);var fixed=storage.domFixed;fixed.splice(i,1);if(!fixed.length)
removeDom(obj,type,storage.handler);}
break;}}});var fire=prepare(function(obj,type,args,storage,isDom){if(!args||typeof args.constructor!=Array)
args=[args];for(var i=0,l=storage.listeners.length;i<l;i++)
storage.listeners[i].apply(obj,args);});var addOnce=prepare(function(obj,type,fn,storage,isDom){add(obj,type,function(){remove(obj,type,arguments.callee);fn.apply(obj,arguments);});});var toggle=prepare(function(obj,type,fn,storage,isDom,toggle){(toggle?add:remove)(obj,type,fn);});var addDom=function(el,type,fn){if(type=='unload'){var old=fn;fn=function(){removeDom(el,'unload',fn);old();};}
else
toPurge.push([el,type,fn]);if(el.addEventListener)
el.addEventListener(type,fn,QEvent.useCapture[type]);else
el.attachEvent('on'+type,fn);};var removeDom=function(el,type,fn,useCapture){if(type!='unload')
removeFromPurge(el,type,fn);if(el.removeEventListener)
el.removeEventListener(type,fn,QEvent.useCapture[type]);else
el.detachEvent('on'+type,fn);};function DomEvent(event,win){var doc=win.document,type=event.type,target=event.target||event.srcElement;while(target&&target.nodeType==3)
target=target.parentNode;if(/key/.test(type)){var code=event.which||event.keyCode,key=QEvent.DomKeys[code];if(type=='keydown'){var fKey=code-111;if(fKey>0&&fKey<13)
key='f'+fKey;}
key=key||String.fromCharCode(code).toLowerCase();}
else
if(/(click|mouse|menu)/i.test(type)){var standardMode=!doc.compatMode||doc.compatMode=='CSS1Compat';doc=standardMode?doc.documentElement:doc.body;var page={x:event.pageX||event.clientX+doc.scrollLeft,y:event.pageY||event.clientY+doc.scrollTop};var client={x:(event.pageX)?event.pageX-win.pageXOffset:event.clientX,y:(event.pageY)?event.pageY-win.pageYOffset:event.clientY};if(isIe&&standardMode){var cl=doc.clientLeft,ct=doc.clientTop;page.x-=cl,page.y-=ct;client.x-=cl,client.y-=ct;}
if(/DOMMouseScroll|mousewheel/.test(type)){var wheel=(event.wheelDelta)?event.wheelDelta/120:-(event.detail||0)/3;}
var rightClick=event.which==3||event.button==2,related=null;if(type.match(/over|out/)){switch(type){case'mouseover':related=event.relatedTarget||event.fromElement;break;case'mouseout':related=event.relatedTarget||event.toElement;}
if(isGecko)
try{while(related&&related.nodeType==3)
related=related.parentNode;}
catch(e){related=false;}}}
this.event=event,this.type=type;this.page=page,this.client=client,this.rightClick=rightClick;this.wheel=wheel;this.relatedTarget=related,this.target=target;this.code=code,this.key=key;this.shift=event.shiftKey,this.control=event.ctrlKey,this.alt=event.altKey,this.meta=event.metaKey;};function extendDomEvent(obj){for(var k in obj)
DomEvent.prototype[k]=obj[k];};function purge(){for(var i=toPurge.length;i--;){var item=toPurge[i],el=item[0];removeDom.apply(null,item);el[$QEVENTS]=null;if(el.clearAttributes)
el.clearAttributes();}
toPurge=null;}
function removeFromPurge(el,type,fn){for(var i=toPurge.length,item;i--;){item=toPurge[i];if(item[0]==el&&item[1]==type&&item[2]==fn){toPurge.splice(i,1);break;}}}
if(isIe)
addDom(window,'unload',purge);return{version:'0.95',add:add,remove:remove,fire:fire,addOnce:addOnce,toggle:toggle,addDom:addDom,removeDom:removeDom,isIe:isIe,isGecko:isGecko,extendDomEvent:extendDomEvent,useCapture:{blur:true,focus:true}};})();(function(){function hasChild(parent,child){(hasChild=parent.contains?function(parent,child){return parent!=child&&parent.contains(child);}:function(parent,child){return!!(parent.compareDocumentPosition(child)&16);})(parent,child);};function mouseEnterLeaveCheck(e){var related=e.relatedTarget;if(related==undefined)
return true;if(related===false)
return false;return(this.nodeType!=9&&related!=this&&related.prefix!='xul'&&!hasChild(this,related));};QEvent.DomEvents={keyenter:{base:'keyup',condition:function(e){return e.key=='enter';}},mouseOverOut:{onAdd:function(fn){QEvent.add(this,{mouseover:fn,mouseout:fn});},onRemove:function(fn){QEvent.remove(this,{mouseover:fn,mouseout:fn});}},mouseenter:{base:'mouseover',condition:mouseEnterLeaveCheck},mouseleave:{base:'mouseout',condition:mouseEnterLeaveCheck},mouseEnterLeave:{onAdd:function(fn){QEvent.add(this,{mouseenter:fn,mouseleave:fn});},onRemove:function(fn){QEvent.remove(this,{mouseenter:fn,mouseleave:fn});}},mousewheel:{base:QEvent.isGecko?'DOMMouseScroll':'mousewheel'},domready:{onAdd:function(fn){var domready=QEvent.DomEvents.domready;if(domready.fired)
fn.call(this);else
if(!domready.registered){domready.registered=true;var fire=function(){if(domready.fired)
return;domready.fired=true;QEvent.fire(window,'domready');QEvent.fire(document,'domready');};var doc=this.nodeType==9?this:this.document;if(QEvent.isIe)
setTimeout(function(){try{doc.documentElement.doScroll('left');}
catch(ex){setTimeout(arguments.callee,20);return;}
fire();},20);else
QEvent.addDom(doc,'DOMContentLoaded',fire);}}},beforeunload:{onAdd:function(fn){window.onbeforeunload=function(){window.onbeforeunload=null;return fn();}}}}})();(function(){var doc=top.document;var check=function(e,el){var t=e.target;while(t&&t.nodeType){if(el==t)
return false;t=t.parentNode;}
return true;}
QEvent.DomEvents.clickout={onAdd:function(fn){var el=this;QEvent.add(doc,'click',fn.$GEventClickout=function(e){if(check(e,el))
fn();});},onRemove:function(fn){QEvent.remove(doc,'click',fn.$GEventClickout);}};})();(function(base,real){var E=QEvent;E.DomEvents[base]={onAdd:function(fn){E.add(this,real,fn);},onRemove:function(fn){E.remove(this,real,fn);}};return arguments.callee;});('focus',QEvent.isIe?'focusin':'focus');('blur',QEvent.isIe?'focusout':'blur');QEvent.DomKeys={13:'enter',38:'up',40:'down',37:'left',39:'right',27:'esc',32:'space',8:'backspace',9:'tab',46:'delete'};QEvent.extendDomEvent({stop:function(){return this.stopPropagation().preventDefault();},stopPropagation:function(){if(this.event.stopPropagation)
this.event.stopPropagation();else
this.event.cancelBubble=true;return this;},preventDefault:function(){if(this.event.preventDefault)
this.event.preventDefault();else
this.event.returnValue=false;return this;},isOver:function(){return this.type=='mouseover';}});

/*
 * @author Jay Smith (jaysmith024@gmail.com)
 * @version Dec 4, 2008
 * requires -> no requirements or dependencies on any other framework
 */
(function(){
    var Class = function Class(){};
    Class.prototype = {
        preInitialize: function(){
            var retVal = this;
            this.beforeInitialize.apply(this, arguments);
            retVal = (this.initialize) ? this.initialize.apply(this, arguments) : this;
            this.afterInitialize.apply(this, arguments);
            return retVal;
        },
		//Analyzes two or more objects and, returns true if they are equal (contain the same properties with the same values).
		equals : function equals(a, b){
		    for(var j, o = arguments, i = o.length, c = a instanceof Object; --i;)
		        if(a === (b = o[i])) continue;
		        else if(!c || !(b instanceof Object)) return false;
		        else for(j in b) if(!equals(a[j], b[j])) return false;
		    return true;
		},
		
		getClassName: function(){
	        if (typeof(this.classname) == "undefined" || !this.classname) {
	            throw new ReferenceError("Could not find the 'classname' slot on the current Object.");
	            return "";
	        }
	        else {
	            return this.classname;
	        }
	    },
		
		addEvent : function(evtname, callback, target){
			return QEvent.add(this, evtname, callback);
		},
		
		triggerEvent : function(evtname, data, srcTarget){
			QEvent.fire(this, evtname, (data||this));
		},
		
        beforeInitialize: function(){},
        initialize: 	  function(){return this},
        afterInitialize:  function(){}
    }
    
    Class.extend = function(destination, source) {
        for (var property in source) 
            destination[property] = source[property];
        return destination;
    };
    
    Class.extend(Class, {
		addEvent : function(evtname, callback, target){
			return QEvent.add(this, evtname, callback);
		},
		
		triggerEvent : function(evtname, data, srcTarget){
			QEvent.fire(this, evtname, (data||this));
		},
	
		descendents : {},
		
        clone: function(){
            var properties = (arguments[0] || {});
            var klass = function klass(){
                return (this.preInitialize) ? this.preInitialize.apply(this, arguments) : this;
            }
			var self = this;
			this.extend_class(klass);
			this.onBeforeInherit(klass, properties);
			this.apply_prototype(klass,properties.inherits||self);
			this.onAfterInherit(klass, properties);
            return klass;
        },	

        onBeforeInherit: function(klass, properties){},
        
        onAfterInherit: function(klass, properties){
            if (properties) {
                this.apply_traits(klass, properties); //apply traits first
				this.inherit(klass.prototype, properties); //then override
            }
			this.descendents[klass.prototype.classname || "anynonmous"] = klass;
            return klass;
        },
		
        extend_class: function(klass){
			//copy over slots from existing constructor.
         	this.extend(klass, this); 
			klass.descendents = {}; //default 	
        },
		
		apply_prototype: function(klass, parentclass){
            if (parentclass && typeof(parentclass) == "function") {
                var f = function(){}; //optimization
                	f.prototype = parentclass.prototype;
                klass.prototype = new f;
                klass.prototype.constructor = klass;
            }
            return klass;
        },
		
        apply_traits: function(klass, properties){
            if (properties && properties.traits) {
                var traits = [];
                if (properties.traits.reverse) 
                    traits = traits.concat(properties.traits.reverse());
                else traits.push(properties.traits);
                delete properties.traits;
                for (var i = 0; (trait = traits[i]); i++) 
                    this.inherit(klass.prototype, trait);
            }
            return klass;
        },
		
		//adapted from Alex Arnell's inheritance pattern.
        inherit: function(dest, src, fname){
            if (!src || !dest) {return;}
            if (arguments.length == 3) {
                var ancestor = dest[fname], descendent = src[fname], method = descendent;
                descendent = function() {
                    var ref = this.parent;
                    this.parent = ancestor;
                    var result = method.apply(this, arguments);
                    (ref) ? this.parent = ref : delete this.parent;
                    return result;
                };
                descendent.valueOf  = function() { return method};
                descendent.toString = function() { return method.toString();};
                dest[fname] = descendent;
            }
            else {
                for (var prop in src) {
                    if (dest[prop] && typeof(src[prop]) == 'function') 
                        this.inherit(dest, src, prop);
                    else dest[prop] = src[prop];
                }
            }
            return dest;
        }
    });

	var JNA = {
		registry  : new Object,
		
		namespace : function(ns, anObject) {
			if(JNA.registry[ns] && config.namespaces.frozen[ns]) {
				throw new Error("The namespace named '" + ns + "' is protected -- frozen from being redefined (see config.js). Try a different namespace name, one which is more unique.");
			}
			JNA.allocate_namespace(ns, anObject||{});
			return JNA.registry[ns];
		},
		
		singleton : function(ns, anObject) {
			if(JNA.registry[ns] && config.namespaces.frozen[ns]) {
				throw new Error("The namespace named '" + ns + "' is protected -- frozen from being redefined (see config.js). Try a different namespace name, one which is more unique.");
			}
			if(typeof anObject !="object") throw new TypeError("singleton(namespace, anObject) cannot parse the arguments passed. anObject must be a simple object literal.")
			anObject.singleton = true;
			JNA.allocate_namespace(ns, anObject||{});
			return JNA.registry[ns];
		},
		
		toNamespace:function(aNamespace){
			var scope       = window;
			var privatescop = JNA.namespaces;
			var nsParts     = aNamespace.split(/\.|\:{2}/); 
			var class_name 	= nsParts.pop();
				
			for (i = 0; i <= nsParts.length - 1; i++) {
				scope = (scope[nsParts[i]]) ? scope[nsParts[i]] : scope[nsParts[i]] = {};
			}
			return scope; 
		},
			
		allocate_namespace : function(aNamespace, anObject){
			var class_name 		= aNamespace.split(/\.|\:{2}/).pop();
			if(typeof anObject == "function") 
				anObject.prototype.classname = class_name;
			else anObject.classname = class_name;
			var ns 				= JNA.toNamespace(aNamespace);
			return JNA.registry[aNamespace] = ns[class_name] = anObject;
		}
	}
	
	
	window.NSRegistry = JNA.registry;
	var k = Class;
	JNA.namespace("js::Class", function(){
		var args = arguments, ns, obj;
		if(args.length > 1) {
			ns  = args[0];
			obj = args[1];
		}
		else {
			ns  = null;
			obj = args[0];
		}
		
		obj.namespace = ns;
		var newKlass = k.clone(obj);
		(ns) ? JNA.namespace(ns, newKlass) : newKlass;
		//QEvent.fire(window, "onclassloaded", ns);
		return (NSRegistry[ns]||newKlass);
	});
	
//	if(typeof MooTools === "undefined") 
//		window.Class = js.Class;

	window.SoleInstance = function(ns, obj){
		var klass = new js.Class(obj);
		var instance = new klass;
		return JNA.namespace(ns,instance);
	}
	
    
    if (!Object.extend) {
        Object.extend = function(destination, source){
            for (var property in source) 
                destination[property] = source[property];
            return destination;
        };
    }
})();


Object.isElement = function(object){
    return !!(object && object.nodeType == 1);
};

//TODO do not use $() here as it is expensive. 
String.prototype.toHtmlElement = function(){
    var _root = $(document.createElement('div'));
        _root.style.display = "none";
    	_root.innerHTML = this;
		var el = $(_root).cssSelect("*")[0];
		
    return el;
};

String.prototype.namespace = function(classDef) {
	return namespace(this, classDef);
};

String.prototype.Class = function(classDef) {
	return namespace(this, classDef);
};

String.prototype.prototype = function(classDef) {
	return namespace(this, classDef);
};

String.prototype.singleton = function(classDef) {
	return singleton(this, classDef);
};

/*
 * Returns the object by it's namespace
 * Ex:
 * "com::aol::TabControl".ref() will resolve to 
 *  the literal form com.aol.TabControl and returns it.
 * 
 */
String.prototype.ref = function(){
    var ref = this.replace("::",".");
    return eval(ref);
};



/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();

/*
 Copyright 2008 Jason E. Smith Licensed under the Apache License, Version 2.0 (the "License");
 You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
 */
new js.Class("js::Model", {
	
	preInitialize : function(json){
		this.bind(arguments[0])
		this.parent(arguments);
		return this;
	},
			
	getModel : function(){
		var model = {}; 
		for(key in this) {
			if(typeof this[key] != "function") {
				model[key] = this[key];
			}
		}
		return model;
	},
	
	bind : function(obj) {
		if(!obj || (typeof obj !== "object"))  {
			throw new Error("Invalid args passed to js.Model. Expected a json/literal object.");
		}
		Object.extend(this,obj);
		return this;
	},
	
    validate : function(log){
		var errors = JSONSchema.validate(this.getModel(),this.schema);
		if(errors.length) {
			var logerror = function(err){
				console.error("TypeErrors found while creating a new " + this.classname.toLowerCase());
				console.error("\t\t'" + err.property + "' => " + err.message);
			}.bind(this);
			if(log == true) errors.each(logerror);
			return false;
		}
		return true;
	},
	
    toJSON: function(){
		return JSON.stringify(this.getModel())
    },
  
	toXML  : function(){ 
		return "<" + this.classname.toLowerCase() + ">\n" + json.Json2xml(this.getModel()) + "\n</" + this.classname.toLowerCase() + ">"
	},
	
	get : function(key){
		return this[key];
	},
	
	set : function(key_path, val) {
		this[key_path] = val;
		this.triggerEvent("modified", this);
	},
	
	select : function(jsonPath){
		return json.JSONQuery(jsonPath, this.getModel());
	},
	
	asComponentOn : function(aComponent, shouldRender){
		var component = new aComponent(this);
		return component;
	}
});

js.Model.fromJSON = function(string, secure){
    var res = JSON.parse(string);
    var klass = this;
    if (res instanceof Array) {
        var _results = [];
        res.each(function(item){
            _results.push(new klass(item));
        });
        return _results;
    }
    else {
        var el = new klass(res);
        return el;
    }
};


/*
 Copyright 2008 Jason E. Smith Licensed under the Apache License, Version 2.0 (the "License"); 
 You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
 */

new js.Class("controls::HtmlControl", {
	
	setClassName: function(name){
		if(!this.hasClass(this.classname))
			this.addClass(this.classname);
    },
	
	deselect: function() {
        if (typeof this.element.onselectstart!="undefined") //IE route
				$(this.element).addEvent("selectstart", function(){return false})
        else if (typeof this.element.style.MozUserSelect!="undefined") //Firefox route
                this.element.style.MozUserSelect="none"
        else //All other route (ie: Opera)
    		$(this.element).addEvent("mousedown", function(){return false})
		return false;
    },
	
	getComputedStyle: function(property){
		var style_name = property;
		if (this.element.currentStyle) return this.element.currentStyle[property.camelCase()];
		var computed = this.element.ownerDocument.defaultView.getComputedStyle(this.element, null);
		return (computed) ? computed.getPropertyValue([style_name]) : null;
	},
	
	
	tween : function(property, val, unit, duration, obj){
		obj = obj || this.element;
		var tween = new Tween(obj.style,property,Tween.elasticEaseOut,parseInt($(obj).getStyle(property)),val,(duration||1),unit);
			tween.start();
		return obj;
	},
	
	appendTo : function(parentEl){
		if(parentEl) {
			if(parentEl instanceof controls.HtmlControl) parentEl.add(this);
			else if(Object.isElement(parentEl)) parentEl.appendChild(this.element);
		}
	},
	
	firstChild : function(){
		return this.select("*").shift();
	},
	
	hide : function() {
		this.setStyle("display", "none");
		//this.element.style.display = 'none';
		return this.element;
	},
	
	show: function() {
//	    this.element.style.display = '';
		this.setStyle("display", "");
	    return this.element;
	},
	
	visible: function() {
    	return (this.getStyle("display") != 'none');
  	},
  
	toggle : function(){
		(this.visible()) ? this.hide():this.show();
		return this.element;
	},
	
	remove : function() {
	    var el = this.element.parentNode.removeChild(this.element);
	    return el;
	},
	
	recursivelyCollect: function(property, element) {
	   	element = $(element||this.element);
		element = element[property];
	    var elements = [];
	    while (element) {
	      if (element.nodeType == 1) elements.push(element);
		  element = element[property];
		}
	    return elements;
	},
  
	ancestors: function() {
    	return this.recursivelyCollect('parentNode');
  	},
	
	descendants: function() {
    	return this.select("*");
  	},
	
	select : function(cssSelector){
		return $(this.element).getElements(cssSelector);
	},
	
	firstDescendant: function() {
	    var element = this.firstChild();
	    while (element && element.nodeType != 1) element = element.nextSibling;
	    return element;
	},
	
	immediateDescendants: function() {
		var element = this.element;
	    if (!(element = this.firstChild())) return [];
	    while (element && element.nodeType != 1) element = element.nextSibling;
	    if (element) return [element].concat(this.nextSiblings());
	    return [];
	},
	
	nextSiblings: function() {
    	return this.recursivelyCollect('nextSibling');
  	},
	
	previousSiblings: function() {
    	return this.recursivelyCollect('previousSibling');
  	},
  
	siblings: function() {
	    return this.previousSiblings().reverse().concat(this.nextSiblings());
	},
	//	"@wireup" : {
	//		"onsave" 	: ["div > .formButton#save", 	 "click"],
	//		"onrotate"  : [".cubeControls #360-spinner", "mousemove"],
	//		"ondestroy" : ["div .formButton#destroy", 	 "mouseup"]
	//	},
	bindEvents: function() {
		var self = this;
		if(this["wireup"]) {
			for(customEventName in this["wireup"]) {
				var mapping = this["wireup"][customEventName];
				var cssSelector = mapping[0];
				var w3cEventName = mapping[1];
				var handlerFunc = this[customEventName];
				if(handlerFunc) {
					var res = this.select(cssSelector);
					for(var i=0; i<= res.length-1; i++) {
						self.addEvent(w3cEventName, handlerFunc.bind(self), res[i]);
					}
				}
			}
		}
		for(member in this) {
			if(this.nativeevents.indexOf(member) >= 0) {
				this.addEvent(member, this[member].bind(this), this.element)
			}
		}
	},
	
	
	cdn : function(filename){
		if(config.cached_hosts && config.cached_hosts[filename]) {
			return config.cached_hosts[filename];
		}
		else {
			var hostindex = Math.round(Math.random()) * config.assethosts.development.length-1;
			hostindex = (hostindex < 0) ? 0:hostindex;
			if(!config.cached_hosts) config.cached_hosts = {};
			config.cached_hosts[filename] = config.assethosts.development[hostindex] + config.loadpaths.images.replace("[classname]", this.getClassName()) + filename;
			return config.cached_hosts[filename];
		}
	},
	
	
	nativeevents : ("DOMFocusIn DOMFocusOut DOMActivate keyup keydown keypress click mousedown mouseup mouseover mousemove mouseout DOMSubtreeModified DOMNodeInserted DOMNodeRemoved DOMNodeRemovedFromDocument DOMNodeInsertedIntoDocument DOMAttrModified DOMCharacterDataModified load unload abort error change submit reset focus blur resize scroll selectstart").split(" "),
	
	//http://jsfromhell.com/geral/hittest
//	
//	  Can be used to fix ie when <select>/form elements overlaps divs:
//	 	function show(){
//		    myDiv.style.display = "block";
//		    if(!myDiv.selects)
//		        myDiv.selects = hitTest(myDiv, document.getElementsByTagName("select"));
//		    for(var i = myDiv.selects.length; i; myDiv.selects[--i].style.visibility = "hidden");
//		
//		}
//	 
	hitTest : function(o, l){
	    function getOffset(o){
	        for(var r = {l: o.offsetLeft, t: o.offsetTop, r: o.offsetWidth, b: o.offsetHeight};
	            o = o.offsetParent; r.l += o.offsetLeft, r.t += o.offsetTop);
	        return r.r += r.l, r.b += r.t, r;
	    }
	    var a = arguments, j = a.length;
	    j > 2 && (o = {offsetLeft: o, offsetTop: l, offsetWidth: j == 5 ? a[2] : 0,
	    offsetHeight: j == 5 ? a[3] : 0, offsetParent: null}, l = a[j - 1]);
	    for(var b, s, r = [], a = getOffset(o), j = isNaN(l.length), i = (j ? l = [l] : l).length; i;
	        b = getOffset(l[--i]), (a.l == b.l || (a.l > b.l ? a.l <= b.r : b.l <= a.r))
	        && (a.t == b.t || (a.t > b.t ? a.t <= b.b : b.t <= a.b)) && (r[r.length] = l[i]));
	    return (j) ? !!r.length : r;
	},
	
    makePositioned: function(element){
        element = $(element || this.element);
        var pos = element.getStyle('position');
        if (pos == 'static' || !pos) {
            element._madePositioned = true;
            element.setStyle("position", "relative");
            // Opera returns the offset relative to the positioning context, when an
            // element is position relative but top and left have not been defined
            if (Prototype.Browser.Opera) {
                element.setStyle("top", "0px");
                element.setStyle("left", "0px");
            }
        }
        return element;
    },
	
    undoPositioned: function(element){
        element = $(element || this.element);
        if (element._madePositioned) {
            element._madePositioned = undefined;
//            element.style.position = element.style.top = element.style.left = element.style.bottom = element.style.right = '';
//			element.setStyle({
//				position:"", top:"", left:"", bottom:"", right:""
//			});
			this.setStyle({position:"", top:"", left:"", bottom:"", right:""}, element);
        }
        return element;
    },
	
    absolutize: function(element){
        element = $(element  || this.element);
        if (element.getStyle('position') == 'absolute') 
            return element;
        // Position.prepare(); // To be done manually by Scripty when it needs it.
        
        var offsets = this.positionedOffset(element);
        var top = offsets[1];
        var left = offsets[0];
        var width = element.clientWidth;
        var height = element.clientHeight;
        
        element._originalLeft = left - parseFloat(element.style.left || 0);
        element._originalTop = top - parseFloat(element.style.top || 0);
        element._originalWidth = element.style.width;
        element._originalHeight = element.style.height;
        
//        element.style.position = 'absolute';
//        element.style.top = top + 'px';
//        element.style.left = left + 'px';
//        element.style.width = width + 'px';
//        element.style.height = height + 'px';
		this.setStyle({
			position:  "absolute", 
			top:  		top + 'px', 
			left: 		left + 'px', 
			width: 		width + 'px', 
			height: 	height + 'px'
		},element);
        return element;
    },
    positionedOffset: function(element){
		element = $(element || this.element);
        var valueT = 0, valueL = 0;
        do {
            valueT += element.offsetTop || 0;
            valueL += element.offsetLeft || 0;
            element = element.offsetParent;
            if (element) {
                if (element.tagName.toUpperCase() == 'BODY') 
                    break;
                var p = element.getStyle('position');
                if (p !== 'static') 
                    break;
            }
        }
        while (element);
        return this._returnOffset(valueL, valueT);
    },
	_returnOffset : function(l, t) {
	  var result = [l, t];
	  result.left = l;
	  result.top = t;
	  return result;
	},
	getStyle : function(styleName, element){
		element = element || this.element;
		return $(element).getStyle(styleName);
	},
	
	setStyle : function(styleProperties, element){
		element = element || this.element;
		$(element).setStyles(styleProperties);
	}

//	select : function(xpath_str){
//		var result = document.evaluate(xpath_str, this.element, null, 7, null);
//		var res = [];
//		var n = 0;
//		while(result.snapshotItem(n)) {
//			res[n] = result.snapshotItem(n);
//			n++;
//		}
//		return res;
//	}
});



function aspectOnMootoolsElement(meth){
		return function(){
				return meth.apply(this.element, arguments);
		}
	}

if(typeof MooTools != "undefined") {
	if(Element.Prototype) {
		for(propNam in Element.Prototype){
			if(propNam != "addEvent")
	    		controls.HtmlControl.prototype[propNam] = aspectOnMootoolsElement(Element.Prototype[propNam])
		}
	}
}

/*
 Copyright 2008 Jason E. Smith (www.thoughthill.com) Licensed under the Apache License, Version 2.0 (the "License");
 You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
 */
new js.Class("controls::Widget", {
    inherits  : controls.HtmlControl,
	
	//TODO: refactor
    asset_path: "javascripts/application/controls/${CLASSNAME}/${ASSET}/${FILENAME}",
	
	preInitialize : function(){
		var args = arguments;
		var model = (args[0] || this.model || {});
		this.addEvent("onViewLoaded", function(){
			this.beforeInitialize.apply(this, args);
            (this.initialize) ? this.initialize.apply(this, args) : this;
			if(this.onready) this.onready.call(this, null);
            this.afterInitialize.apply(this, args);
			this.constructor.triggerEvent("onClassLoaded", this.getClassName());
		}.bind(this));
		setTimeout(function(){
			this.bindmodel(model,this.bindview.bind(this));
		}.bind(this),100); 
		return this;
    },
	
	afterInitialize : function(){
		if(this.autorender) this.render();
	},
	
	onready : function(func){
		if(!Object.isElement(this.element) && (func && typeof func == "function")) {
			this.addEvent("onViewLoaded", func.bind(this));
			if(this.element && Object.isElement(this.element)) {
				this.removeEvent("onViewLoaded", func)
				func();
			}
		} else { if(func && Object.isElement(this.element)) func() }
		return true;
	},
	
		addEvent : function(evtname, callback, target){
		return QEvent.add((target || this), evtname, callback);
	},
	
	triggerEvent : function(evtname, data, srcTarget){
		QEvent.fire((srcTarget||this), evtname, (data||this));
	},
	
	toJSON : function(){ return this.model.toJSON() },
	
	toXML  : function(){ return this.model.toXML()  },
	
	bindmodel : function(args, callback) {
        if (args) {
            for (key in args) {
                if(!(/^_(.)+/.test(key))) {this[key] = args[key];}
            }
		}
		var model = this.model || {};

		if(model && (model instanceof js.Model)) {
			this.model = model;
			callback(this.model);
		}
		else if(model && (typeof model == "object")) {
			this.model = new js.Model(model);
			callback(this.model);
		}
		else if(model && typeof model == "string") {
			//load model/json from external http url (cross domain as well?)
			if(/^(http\:\/\/|\/)(.)+/.test(model)) { //is it an http url?
				console.error("Not yet implemented. The feature to allow Widgets to load their models(.json) over an http url/service but is not yet supported.")
			}
			//load from asset folder
			else if (/^[A-Za-z0-9]*\.[A-Za-z]{1,4}/.test(model)) { //is it just a filename.ext ?
				var asset_type = model.split(".")[1];
					asset_type = (asset_type && /(json|js)/.test(asset_type)) ? "json" : "js";
				var url = this.asset_path.replace(/\$\{CLASSNAME\}/ig, this.getClassName()).replace(/\$\{ASSET\}/ig, asset_type).replace(/\$\{FILENAME\}/,model);
				this.loadasset(url, function(json_object){
					var o = eval("(" + json_object + ")");
					this.model = new js.Model(o);
					callback(this.model);
				}.bind(this));
			}
			else if(/^\{[\".]*\:/.test(model)){
				var _model = JSON.parse(model);
				this.model = new js.Model(_model);
				callback(this.model);
			}
		}
	},
	
	prepareElement : function(el){
		this.element = el;
		this.setClassName();
		this.bindEvents();
		this.setProto();
		this.triggerEvent("onViewLoaded",this.element);
	},
	
	setProto : function(element){
		element = element || this.element;
		if(element) element.proto = this;
	},
	
	
	bindview : function(model) {
		this.load_css();
		var val   = this.get("element"); 
		var self  = this;
			
		if( val && Object.isElement(val)) {this.prepareElement(val);}
		
		else if(val && typeof val == "string") {
			if(/^\<(.)+\>.*/.test(val)){//todo: check for spaces, tabs, newlines in the beginning of html string
				var evaledHtml = Jst.evaluate_jst(val,this); //TrimPath.processDOMTemplate(val,this);
				var element = evaledHtml.toHtmlElement();
				if(element && Object.isElement(element)) {
					this.prepareElement(element);
				}
				else {
					throw new Error("Error building '" + this.getClassName() + "' view from 'element':\n" + this.get("element"));
				}
			}
			else if(/^(http\:\/\/|\/)(.)+/.test(val)) {
				
			}
			else if (/^[A-Za-z0-9]*\.[A-Za-z]{1,5}/.test(val)) {
				var htmlpath = this.assetpath(val + ".html");
				requires(htmlpath, function onloaded(req){
					var evaledHtml = Jst.evaluate_jst(req.responseText,self); //TrimPath.processDOMTemplate(req.responseText,self);
					self.constructor.prototype.element = req.responseText;
	           		var el = evaledHtml.toHtmlElement().cloneNode(true);
					self.prepareElement(el); //todo: rename prepareElement
				});
			}
		}
		else if(!val){
			var htmlpath = this.assetpath(this.getClassName() + ".html"); 
			requires(htmlpath, function onloaded(req){
				var evaledHtml = Jst.evaluate_jst(req.responseText,self); //TrimPath.processDOMTemplate(req.responseText,self);
				self.constructor.prototype.element = req.responseText;
           		var el = evaledHtml.toHtmlElement().cloneNode(true);
				self.prepareElement(el); //todo: rename prepareElement
			});
		}
	},
	
	assetpath : function(filename){
		var asset_type = filename.split(".")[1];
		var url = this.asset_path.replace(/\$\{CLASSNAME\}/ig, this.getClassName()).replace(/\$\{ASSET\}/ig, asset_type).replace(/\$\{FILENAME\}/,filename);
		return url;	
	},
	
	loadasset : function(url,onloaded){
		//see xmlHttp docs at http://www.ilinsky.com/articles/XMLHttpRequest/
		var xhr = new http.XmlHttpRequest; 
		    xhr.open("GET", url, true); 
		    xhr.onreadystatechange = function() { 
		        if (this.readyState == http.XmlHttpRequest.DONE) {
					onloaded(this.responseText);
				} 
		    } 
		    setTimeout(function send_request_for_asset(){xhr.send()}, 100);
	},
	
	load_css: function(url){
		var something_went_wrong = "Error loading stylesheets. Expected an array of style urls or a single url to a stylesheet for this component.";
		var stylesheets = window.loaded_stylesheets;
		var styles = url||this.stylesheets;
		
		if (!stylesheets) {
			window.loaded_stylesheets = {};
			stylesheets = window.loaded_stylesheets;}
		if(styles) {
			if(styles instanceof Array) {
				for(var i=0; i<=styles.length-1; i++) {
					if (!stylesheets[styles[i]]) {
						this.load_css(styles[i]);
					}
				}
			}
			else if(typeof styles === "string") {
				var headID = document.getElementsByTagName("head")[0];
		        var cssNode = document.createElement('link');
		        cssNode.type = 'text/css';
		        cssNode.rel = 'stylesheet';
		        cssNode.href = styles;
		        cssNode.media = 'screen';
		        headID.appendChild(cssNode);
				stylesheets[styles] = cssNode;
				return stylesheets[styles];
			}
		}
		else {
			//styles = this.assetpath(this.getClassName() + ".css");
			//throw new Error("TODO: Load any default stylesheets for widget '" + this.getClassName() + "'.  (see: Widget.prototype.load_css()")
		}
    },
	
	set : function(key, val) { this.getModel().set(key, val); },
	
	get : function(key) { 
		var res = this.getModel().get(key); 
		if(!res || typeof res == "undefined" || res == null) {
			res = this[key];
			if(res && (typeof res !== "function")) {
				this.set(key,res);
				res = this.getModel().get(key);
			}
		}
		return res;
	},
	
    render : function(){ return this.element },
	
    getModel : function(){ return this.model; },
	
	appendChild : function(o){
		var self = this;
		this.onready(function(){
			if(Object.isElement(o)) {
				self.element.appendChild(o);
			}
			else if(o && o instanceof controls.HtmlControl) {
				if(Object.isElement(o.element)) {
					self.element.appendChild(o.element);
				}
				else {
					o.onready(function(){
						var el = o.render();
						self.element.appendChild(el);
					})
				}
			}
		});
	},
	
	add : function(o){ 
		this.appendChild(o) 
	},
	
    clone : function(_onready_callback){
		var Klass = this.constructor;
		var o = new Klass({
			html 	: (Object.isElement(this.element)) ? this.element.cloneNode(true) : null,
			model   : Object.extend({},this.getModel()),
			onready : function(){
				this.set("description", "this object is a clone");
				if(_onready_callback) _onready_callback.call(this,null)
			}
		});
		return o;
    }
	
//	indicateProgress : function(continuation){
//		console.log("loading " + this.getClassName() + "...");
//		$(this.element).appendChild("<div class='progress' style='z-index:99999;position:absolute;top:0px;left:0px;width:100%;height:100%;background-color:white;'>Loading...</div>".toHtmlElement())
////		continuation();
//	},
//	
//	removeProgress : function(el){
//		var progress = $(el || this.element).cssSelect("> .progress")[0];
//		$(progress).remove();
//	}
});


new js.Class("controls::View", {
    inherits: controls.Widget,
    
    bindview: function(model){
        this.load_css();
        var self = this;
        
        if (this.html && Object.isElement(this.html)) {
            this.prepareElement(this.html);
        }
        else {
            if (this.html) {
                var val = this.html;
                if (typeof this.html === "string") {
                    if (/^\<(.)+\>.*/.test(this.html)) {//todo: check for spaces, tabs, newlines in the beginning of html string
                        var evaledHtml = jsonT(this.getModel().getModel(), {
                            self: this.html
                        }); //Jst.evaluate_jst(val,this); //TrimPath.processDOMTemplate(val,this);
                        this.prepareElement(this._createElement(evaledHtml));
                    }
                }
                else 
                    if (typeof this.html === "object") {
                        var evaledHtml = jsonT(this.getModel().getModel(), this.html);
                        this.prepareElement(this._createElement(evaledHtml));
                    }
            }
            else {
                var htmlpath = this.assetpath(this.getClassName() + ".html");
                requires(htmlpath, function onloaded(req){
					var evaledHtml = jsonT(self.getModel().getModel(), req.responseText);
					self.constructor.prototype.html = req.responseText;
                    self.prepareElement(self._createElement(evaledHtml));
					
//                    var evaledHtml = Jst.evaluate_jst(req.responseText, self); //TrimPath.processDOMTemplate(req.responseText,self);
//                    self.constructor.prototype.element = req.responseText;
//                    var el = evaledHtml.toHtmlElement().cloneNode(true);
//                    self.prepareElement(el); //todo: rename prepareElement
                });
            }
		}
    },
    
    _createElement: function(html_string){
        var element = html_string.toHtmlElement();
        if (element && Object.isElement(element)) {
            return element;
        }
        else {
            throw Error("Could not parse html into a dom element\n" + html_string)
        }
    }
});

//<![CDATA[
/*
name: com_aol_music_api_playlists_1_2.js
$LastChangedDate: 2009-02-03 17:17:09 -0500 (Tue, 03 Feb 2009) $
$Rev: 36222 $
author: Dan Kantor
Modified by Gregory Tomlinson, Ali Hasan for use with Mootools 1.2
/////////////////////
dependencies:
1. moo-12-all.js
*/

 /**
 * EVENTS TO LISTEN FOR:
 * 	comAolMusicApiPlaylists
 *
 * 	eg. window.addEvent("comAolMusicApiPlaylists", foo);
 * 
 *
 *  EVENTS: (WILL RETURN OBJECT FROM SERVER)
 *	 comAolMusicApiPlaylistsList
 *	 comAolMusicApiPlaylistsGet
 *	 comAolMusicApiPlaylistsCreate
 *	 comAolMusicApiPlaylistsAdd
 *	 comAolMusicApiPlaylistsRemove
 *	 comAolMusicApiPlaylistsEdit
 *	 comAolMusicApiPlaylistsReorder
 *	 comAolMusicApiPlaylistsCopy
  *	 comAolMusicApiPlaylistsTop
 *	  
 */
comAolMusicApiPlaylists =  new Class({
	Implements : [new Options, new Events],
	options: {
		format : "json",
		endpoint : "/api/playlists/",
		cacheBust : true
	},
	initialize : function(){
		this.format = this.options.format;
		this.endpoint = this.options.endpoint;
	},
	remote : function(action, params, callback){
		if (this.options.cacheBust){
			params = params+"&cacheBust="+Math.random();	
		}
		var qs = params+"&f="+this.format;
		var myAjax = new Request({ url : this.endpoint+action, method: 'get', data : qs, onComplete : callback.bind(this)} ).send()
    },
	list : function(type){
		if (comAolMusicApiPlaylists.playlist[type]){
			window.fireEvent(comAolMusicApiPlaylists.eventName+"List", comAolMusicApiPlaylists.playlist[type]);
		} else {
			this.remote("list", "type="+type, this.listResponse);
		}
	},
	listResponse : function(string){
		var json = JSON.decode(string);
		window.fireEvent(comAolMusicApiPlaylists.eventName+"List", json.response);
		if (json.response.statusCode == 200){
			try {
				comAolMusicApiPlaylists.playlist[json.response.data.mediaType] = json.response;
			} catch (e){}
		} else {
			try {
				comAolMusicApiPlaylists.playlist[json.response.data.mediaType] = null;
			} catch (e) {}
		}	
	},
	get : function(listId, count){
		var countString = "";
		if ($type(count) == "number"){
			countString = "&count="+count;
		}
		this.remote("get", "listId="+listId+countString, this.getResponse);
	},
	getResponse : function(string){
		var json = JSON.decode(string);
		window.fireEvent(comAolMusicApiPlaylists.eventName+"Get", json.response);
	},
	create : function(type, name){
		this.remote("create", "type="+type+"&name="+encodeURIComponent(name), this.createResponse);	
	},
	createResponse : function(string){
		var json = JSON.decode(string);
		window.fireEvent(comAolMusicApiPlaylists.eventName+"Create", json.response);
		if (json.response.statusCode == 200){
			try {
				comAolMusicApiPlaylists.playlist[json.response.data.playlist.mediaType.toLowerCase()] = null;	
			} catch (e){}
		}
	},
	add : function(listId, type, item, itemType){
		if ($type(item) == 'array'){
			this.remote("add", "listId=["+listId+"]&type="+type+"&media="+encodeURIComponent(JSON.encode(item)), this.addResponse);
		}
		if ($type(item) == 'string'){
			var params = "listId=["+listId+"]&type="+type+"&aolId="+item;
			if (type == 'video') {
				params += "&videoType="+itemType;
			}
			this.remote("add", params, this.addResponse);
		}
	},
	addResponse : function(string){
		var json = JSON.decode(string);
		window.fireEvent(comAolMusicApiPlaylists.eventName+"Add", json.response);
	},
	remove : function(listId, itemId){
		this.remote("remove", "listId="+listId+"&itemId="+itemId, this.removeResponse);
	},
	removeResponse : function(string){
		var json = JSON.decode(string);
		window.fireEvent(comAolMusicApiPlaylists.eventName+"Remove", json.response);
		if (json.response.statusCode == 200){
			try {
				comAolMusicApiPlaylists.playlist['audio'] = null;
				comAolMusicApiPlaylists.playlist['video'] = null;	
			} catch (e){}
		}
	},
	editList : function(listId, title, description, privacy){
		var privacyString = "";
		if (privacy != ""){
			privacyString = "&privacy="+privacy;
		}
			this.remote("edit", "listId="+listId+"&title="+encodeURIComponent(title)+"&description="+encodeURIComponent(description)+privacyString, this.editResponse);
	},
	editItem : function(listId, itemId, description){
			this.remote("edit", "listId="+listId+"&itemId="+itemId+"&description="+encodeURIComponent(description), this.editResponse);
	},
	editResponse : function(string){
		var json = JSON.decode(string);
		window.fireEvent(comAolMusicApiPlaylists.eventName+"Edit", json.response);
	},
	reorder : function(listId, order){
		this.remote("reorder", "listId="+listId+"&order="+order, this.reorderResponse);
	},
	reorderResponse : function(string){
		var json = JSON.decode(string);
		window.fireEvent(comAolMusicApiPlaylists.eventName+"Reorder", json.response);
	},
	copy : function(sourceListId, destListId){
		this.remote("copy", "sourceListId="+sourceListId+"&destListId="+destListId, this.copyResponse);
	},
	copyResponse : function(string){
		var json = JSON.decode(string);
		window.fireEvent(comAolMusicApiPlaylists.eventName+"Copy", json.response);
	},
	top : function(count, type){
		this.remote("top", "count="+count+"&type="+type, this.topResponse);
	},
	topResponse : function(string){
		var json = JSON.decode(string);
		window.fireEvent(comAolMusicApiPlaylists.eventName+"Top", json.response);
	}
})
comAolMusicApiPlaylists.eventName = "comAolMusicApiPlaylists";
comAolMusicApiPlaylists.playlist = {};
//comAolMusicApiPlaylists.implement(new Options, new Events);
//]]>
//<![CDATA[
/*
name: com_aol_music_modules_flyout_1_2.js
$LastChangedDate: 2009-05-11 10:55:31 -0400 (Mon, 11 May 2009) $
$Rev: 42594 $
author: Dan Kantor
Modified by Gregory Tomlinson, Ali Hasan for use with Mootools 1.2
/////////////////////
dependencies:
1. moo-12-all.js
2. swfobject2_1.js
*/

if (typeof(comAolMusicModulesFlyout) == 'undefined'){
	comAolMusicModulesFlyout = {}
}
comAolMusicModulesFlyout.vars = {
	writeMax : 250,
	xMouse : null,
	yMouse : null,
	audioPlayNow : false,
	imgHOST : "http://o.aolcdn.com/art/ch_music2/",
	tween : null,
	audioAsset : null,
	audioAssetPlayNow : null,
	audioAssetPlaylist : null,
	mediaType : null,
	assetType : null,
	assetId : null,
	assetIdType : null,
	assetCount : null,
	newPlaylist : null,
	playlists : [],
	addedPlaylists : [],
	needWindow : true,
	copiedPlaylists : [],
	mouseOver : false,
	isLocalPlaying : false
}
comAolMusicModulesFlyout.init = function(){
	document.addEvent("click", comAolMusicModulesFlyout.clicks.handler);
	document.addEvent("contextmenu", comAolMusicModulesFlyout.contextmenu.handler);
	var comAolMusicModulesFlyoutPositioner = new Element('div', {'styles' : {'position' : 'absolute', 'top' : '0px', 'left' : '0px'}, 'id' : 'comAolMusicModulesFlyoutPositioner'});
	$(comAolMusicModulesFlyoutPositioner).injectTop(document.body);	
	comAolMusicModulesFlyout.ui.component.body();
	comAolMusicModulesFlyout.vars.tween = new Fx.Tween('comAolMusicModulesFlyoutBody', { property: 'width', duration:200} );
	var audioplayerhelperdiv = new Element('div', { 'id': 'audioplayerhelperdiv' });
	$(audioplayerhelperdiv).injectInside(document.body);
	swfobject.embedSWF(comAolMusicModulesFlyout.audioPlayerHelperSWF, "audioplayerhelperdiv", "1", "1", "9.0.0", "", {callback : 'comAolMusicModulesFlyout'}, {allowscriptaccess: "always", allownetworking : "all"}, {id:"AudioPlayerHelper"});
	/*
	var mySwiff = new Swiff(comAolMusicModulesFlyout.audioPlayerHelperSWF, {
		id : "AudioPlayerHelper",
		container : "audioplayerhelperdiv",
		width : 1,
		height : 1,
		version : "9.0.0",
		params : {
			allowscriptaccess: "always",
			allownetworking : "all"
		},
		callBacks : {
			callback : 'comAolMusicModulesFlyout'
		}
	});
	 */	
}
comAolMusicModulesFlyout.ui = {
	state : {
		audioSearch : function(side){
			comAolMusicModulesFlyout.ui.component.top(side);
			comAolMusicModulesFlyout.ui.component.closeButton();
			comAolMusicModulesFlyout.ui.component.clear('comAolMusicModulesFlyoutTop');
			comAolMusicModulesFlyout.ui.component.topHeader("FINDING WEB MATCHES...");
			comAolMusicModulesFlyout.ui.component.borderGray('comAolMusicModulesFlyoutTop', '0 35px 0 30px');
			comAolMusicModulesFlyout.ui.component.borderWhite('comAolMusicModulesFlyoutTop', '0 35px 0 30px');
			comAolMusicModulesFlyout.ui.component.middle();
			comAolMusicModulesFlyout.ui.component.bottom();
			comAolMusicModulesFlyout.ui.state.tween(comAolMusicModulesFlyout.vars.xMouse, comAolMusicModulesFlyout.vars.yMouse);
		},
		audioSearchAssets : function(assets){
			$('comAolMusicModulesFlyoutTopHeader').set('text','WEB MATCHES');
			if (assets.length > 0){ 
				var playAdd = "add";
				if (!comAolMusicModulesFlyout.vars.audioAssetPlaylist){
					playAdd = "play";	
				}
				comAolMusicModulesFlyout.ui.component.middleHeader('Select the version of the song you would like to '+playAdd);
				for (i = 0; i < assets.length; i++){
					comAolMusicModulesFlyout.ui.component.audioSearchAsset(assets[i]);
				}
			} 
		},
		initializePlaylists : function(side){
			comAolMusicModulesFlyout.ui.component.top(side);
			comAolMusicModulesFlyout.ui.component.closeButton();		
			comAolMusicModulesFlyout.ui.component.clear('comAolMusicModulesFlyoutTop');
			comAolMusicModulesFlyout.ui.component.topHeader("LOADING PLAYLISTS...");
			comAolMusicModulesFlyout.ui.component.borderGray('comAolMusicModulesFlyoutTop', '0 35px 0 30px');
			comAolMusicModulesFlyout.ui.component.borderWhite('comAolMusicModulesFlyoutTop', '0 35px 0 30px');
			comAolMusicModulesFlyout.ui.component.middle();
			comAolMusicModulesFlyout.ui.component.bottom();
			comAolMusicModulesFlyout.ui.state.tween(comAolMusicModulesFlyout.vars.xMouse, comAolMusicModulesFlyout.vars.yMouse);
		},
		initializeSns : function(side, text){
			window.signin(true); return false;
			comAolMusicModulesFlyout.ui.component.top(side);
			comAolMusicModulesFlyout.ui.component.closeButton();
			comAolMusicModulesFlyout.ui.component.clear('comAolMusicModulesFlyoutTop');
			comAolMusicModulesFlyout.ui.component.topHeaderSmall('Please sign in to create playlists.');
			comAolMusicModulesFlyout.utilities.stopLoadingImg();
			comAolMusicModulesFlyout.ui.component.middle();
			comAolMusicModulesFlyout.ui.component.bottom();
			comAolMusicModulesFlyout.vars.tween.addEvent('onComplete', comAolMusicModulesFlyout.ui.component.sns);
			comAolMusicModulesFlyout.ui.state.tween(comAolMusicModulesFlyout.vars.xMouse, comAolMusicModulesFlyout.vars.yMouse);
		},
		listPlaylists : function(){
			$('comAolMusicModulesFlyoutMiddle').empty();
			 
			var assetType = 'SONG';
			if (comAolMusicModulesFlyout.vars.assetType == 'video'){
				assetType = 'VIDEO';	
			}
			if (comAolMusicModulesFlyout.vars.assetType == 'playlistAddAllVIDEO' || comAolMusicModulesFlyout.vars.assetType == 'playlistAddAllAUDIO'){
				assetType = 'PLAYLIST';
				var assetCount = comAolMusicModulesFlyout.vars.assetCount;
				var assetId = comAolMusicModulesFlyout.vars.assetId;
				var mediaType = 'songs';
				if (comAolMusicModulesFlyout.vars.mediaType == 'video'){
					mediaType = 'videos';
				}
			}

			//If copying over a playlist, check if source playlist has more than 250 assets
			if ((assetType == 'PLAYLIST') && (assetCount > comAolMusicModulesFlyout.vars.writeMax)) {
				//If > 250 assets, show messaging
				$('comAolMusicModulesFlyoutTopHeader').empty();
				var exclamationimg = new Element('img', {'src': 'http://www.aolcdn.com/ch_music2/flyout_exclamation'});
				exclamationimg.injectInside('comAolMusicModulesFlyoutTopHeader');
				var exclamationtxt = new Element('span', {'styles' : {'paddingLeft':'2px', 'position':'relative', 'top':'-3px'}});
				exclamationtxt.set('text','Playlist Exceeds ' + comAolMusicModulesFlyout.vars.writeMax + ' Items');
				exclamationtxt.injectInside('comAolMusicModulesFlyoutTopHeader');
				
				$('comAolMusicModulesFlyoutMiddle').empty();
				comAolMusicModulesFlyout.ui.component.messageBox();
				var messageLine1 = new Element('div');
				messageLine1.set('text','You cannot copy this playlist because it exceeds the limit of ' + comAolMusicModulesFlyout.vars.writeMax + ' items.');
				messageLine1.injectInside('comAolMusicModulesFlyoutMessageBox');
				var messageLine2 = new Element('div', {'styles' : {'paddingTop' : '5px'}});
				messageLine2.set('text','You can still add ' + mediaType + ' individually from this playlist.');
				messageLine2.injectInside('comAolMusicModulesFlyoutMessageBox');
				comAolMusicModulesFlyout.ui.component.borderGray('comAolMusicModulesFlyoutMiddle', '10px 35px 0px 30px');
				comAolMusicModulesFlyout.ui.component.blueButton('OK', '10px 0 0 30px');
				$('comAolMusicModulesFlyoutBlueButton').addEvent('click', comAolMusicModulesFlyout.events.close);
			}
			else {
				//Otherwise, populate available playists
				if (assetType == 'PLAYLIST') {
					$('comAolMusicModulesFlyoutTopHeader').set('text','ADD '+assetCount + ' ' + mediaType.toUpperCase() + ' TO...');	
				}
				else {
					$('comAolMusicModulesFlyoutTopHeader').set('text','ADD '+assetType+' TO...');	
				}
				$('comAolMusicModulesFlyoutMiddle').empty();
				comAolMusicModulesFlyout.ui.component.playlistBox();
		
				var openPlayLists = false;
				if (comAolMusicModulesFlyout.vars.newPlaylist != null){
					comAolMusicModulesFlyout.ui.component.playlistItem(comAolMusicModulesFlyout.vars.newPlaylist.listId, comAolMusicModulesFlyout.vars.newPlaylist.listName, comAolMusicModulesFlyout.vars.newPlaylist.itemCount, true);
					openPlayLists = true;	
				}
				for (i = 0; i < comAolMusicModulesFlyout.vars.playlists.length; i++){
					var playlist = comAolMusicModulesFlyout.vars.playlists[i];
					if ((assetType != 'PLAYLIST') || ((assetType == 'PLAYLIST') && (assetId != playlist.listId))) {
						comAolMusicModulesFlyout.ui.component.playlistItem(playlist.listId, playlist.listName, playlist.itemCount, false);	
						if (((assetType != 'PLAYLIST') && (playlist.itemCount < comAolMusicModulesFlyout.vars.writeMax)) || ((assetType == 'PLAYLIST') && (assetCount + playlist.itemCount <= comAolMusicModulesFlyout.vars.writeMax))) {
							openPlayLists = true;	
						}
					}
				}
				comAolMusicModulesFlyout.vars.newPlaylist = null;
				comAolMusicModulesFlyout.ui.component.blueButton('Add', '15px 0 0 30px');
				$('comAolMusicModulesFlyoutBlueButton').addEvent('click', comAolMusicModulesFlyout.events.addPlaylist);
				comAolMusicModulesFlyout.ui.component.clear('comAolMusicModulesFlyoutMiddle');
				comAolMusicModulesFlyout.ui.component.borderGray('comAolMusicModulesFlyoutMiddle', '10px 35px 0 30px');
				comAolMusicModulesFlyout.ui.component.borderWhite('comAolMusicModulesFlyoutMiddle', '0 35px 7px 30px');
				comAolMusicModulesFlyout.ui.component.createNewPlaylist();
				if (!openPlayLists) {
					comAolMusicModulesFlyout.ui.state.createNewPlaylist();
				}
			}
		},
		firstPlaylist : function(){
			$('comAolMusicModulesFlyoutMiddle').empty();
			var assetType = 'SONG';
			var playlistType = 'Audio';
			if (comAolMusicModulesFlyout.vars.mediaType == 'video'){
				assetType = 'VIDEO';	
				playlistType = 'Video';
			}
			$('comAolMusicModulesFlyoutTopHeader').set('text','ADD '+assetType+' TO...');
			comAolMusicModulesFlyout.ui.component.middleHeader('Name Your First Playlist');
			comAolMusicModulesFlyout.ui.component.newPlaylistInputBox('true');
			comAolMusicModulesFlyout.ui.component.charCount('35', 'comAolMusicModulesFlyoutCharCountTitle');
			comAolMusicModulesFlyout.ui.component.blueButton('OK', '0 5px 4px 30px');
			$('comAolMusicModulesFlyoutBlueButton').addEvent('click', comAolMusicModulesFlyout.events.createPlaylist);
			comAolMusicModulesFlyout.ui.component.grayButton('Cancel');
			$('comAolMusicModulesFlyoutGrayButton').addEvent('click', comAolMusicModulesFlyout.events.close);
		},
		errorLoadingPlaylists : function(){
			$('comAolMusicModulesFlyoutMiddle').empty();
			comAolMusicModulesFlyout.ui.component.middleHeader('There was a problem loading your playlists. Please try again.');
			$('comAolMusicModulesFlyoutTopHeader').set('text','ERROR');
		},
		createNewPlaylist : function(){
			$('comAolMusicModulesFlyoutCreateNew').setStyle('display', 'none');
			$('comAolMusicModulesFlyoutBlueButton').destroy();
			comAolMusicModulesFlyout.ui.component.middleHeader('Create A New '+comAolMusicModulesFlyout.vars.mediaType.capitalize()+' Playlist');
			comAolMusicModulesFlyout.ui.component.newPlaylistInputBox('true');
			comAolMusicModulesFlyout.ui.component.charCount('35', 'comAolMusicModulesFlyoutCharCountTitle');
			comAolMusicModulesFlyout.ui.component.blueButton('OK', '0 5px 4px 30px');
			$('comAolMusicModulesFlyoutBlueButton').addEvent('click', comAolMusicModulesFlyout.events.createPlaylist);
			comAolMusicModulesFlyout.ui.component.grayButton('Cancel');
			$('comAolMusicModulesFlyoutGrayButton').addEvent('click', comAolMusicModulesFlyout.events.cancelCreatePlaylist);
		},
		added : function(){
			$('comAolMusicModulesFlyoutTopHeader').set('text','ADDED!');
			$('comAolMusicModulesFlyoutMiddle').empty();
			for (i = 0; i < comAolMusicModulesFlyout.vars.addedPlaylists.length; i++){
				comAolMusicModulesFlyout.ui.component.playlistLink(comAolMusicModulesFlyout.vars.addedPlaylists[i].listName, comAolMusicModulesFlyout.vars.addedPlaylists[i].listId, comAolMusicModulesFlyout.vars.mediaType);
			}
			comAolMusicModulesFlyout.ui.component.borderGray('comAolMusicModulesFlyoutMiddle', '10px 35px 0 30px');
			comAolMusicModulesFlyout.ui.component.borderWhite('comAolMusicModulesFlyoutMiddle', '0 35px 10px 30px');
			comAolMusicModulesFlyout.ui.component.viewAllPlaylists();
			setTimeout(comAolMusicModulesFlyout.events.fadeOutClose, 1500);
		},
		copied : function(){
			$('comAolMusicModulesFlyoutTopHeader').set('text','ADDED!');
			$('comAolMusicModulesFlyoutMiddle').empty();
			comAolMusicModulesFlyout.ui.component.playlistLink(comAolMusicModulesFlyout.vars.copiedPlaylists.dest.listName, comAolMusicModulesFlyout.vars.copiedPlaylists.dest.listId, comAolMusicModulesFlyout.vars.copiedPlaylists.dest.mediaType);
			comAolMusicModulesFlyout.ui.component.borderGray('comAolMusicModulesFlyoutMiddle', '10px 35px 0 30px');
			comAolMusicModulesFlyout.ui.component.borderWhite('comAolMusicModulesFlyoutMiddle', '0 35px 7px 30px');
			comAolMusicModulesFlyout.ui.component.viewAllPlaylists();
			setTimeout(comAolMusicModulesFlyout.events.fadeOutClose, 1500);
		},
		editPlaylist : function(side){
			comAolMusicModulesFlyout.ui.component.top(side);
			comAolMusicModulesFlyout.ui.component.closeButton();
			comAolMusicModulesFlyout.ui.component.clear('comAolMusicModulesFlyoutTop');
			comAolMusicModulesFlyout.ui.component.topHeader("EDIT PLAYLIST INFO...");
			comAolMusicModulesFlyout.ui.component.borderGray('comAolMusicModulesFlyoutTop', '0 35px 0 30px');
			comAolMusicModulesFlyout.ui.component.borderWhite('comAolMusicModulesFlyoutTop', '0 35px 0 30px');
			comAolMusicModulesFlyout.ui.component.middle();
			comAolMusicModulesFlyout.ui.component.middleHeader('Title');
			comAolMusicModulesFlyout.ui.component.newPlaylistInputBox('false');
			comAolMusicModulesFlyout.ui.component.charCount('35', 'comAolMusicModulesFlyoutCharCountTitle');
			comAolMusicModulesFlyout.ui.component.middleHeader('Description (optional)');
			comAolMusicModulesFlyout.ui.component.editPlaylistDescriptionBox();
			comAolMusicModulesFlyout.ui.component.charCount('350', 'comAolMusicModulesFlyoutCharCountDescription');
			comAolMusicModulesFlyout.ui.component.privacyRadio('This Playlist can be viewed by:');
			comAolMusicModulesFlyout.ui.component.borderGray('comAolMusicModulesFlyoutMiddle', '10px 35px 0 30px');
			comAolMusicModulesFlyout.ui.component.borderWhite('comAolMusicModulesFlyoutMiddle', '0 35px 10px 30px');
			comAolMusicModulesFlyout.ui.component.blueButton('OK', '0 5px 4px 30px');
			$('comAolMusicModulesFlyoutBlueButton').addEvent('click', comAolMusicModulesFlyout.events.editPlaylist);
			comAolMusicModulesFlyout.ui.component.grayButton('Cancel');
			$('comAolMusicModulesFlyoutGrayButton').addEvent('click', comAolMusicModulesFlyout.events.close);
			comAolMusicModulesFlyout.ui.component.bottom();
			comAolMusicModulesFlyout.ui.state.tween(comAolMusicModulesFlyout.vars.xMouse, comAolMusicModulesFlyout.vars.yMouse);
		},
		tween : function(x, y){
			$('comAolMusicModulesFlyoutBody').setStyles({'left' : x, 'top' : y, 'display' : 'block'});
			comAolMusicModulesFlyout.vars.tween.start(257);
		}
	},
	component : {
		body : function(){
			var body = new Element('div', {'styles': {'width': '0', 'position': 'absolute','zIndex' : '9000','overflow' : 'hidden', 'display' :'none', 'left' : comAolMusicModulesFlyout.vars.xMouse, 'top' : comAolMusicModulesFlyout.vars.yMouse}, 'id' : 'comAolMusicModulesFlyoutBody', 'class' : 'comAolMusicModulesFlyoutBody'});
			body.addEvent('mouseover', comAolMusicModulesFlyout.events.bodyMouseOver);
			body.addEvent('mouseout', comAolMusicModulesFlyout.events.bodyMouseOut);
			$(body).injectTop(document.body);
		},
		top : function(side){
			var top = new Element('div', {'styles': {'margin' : '0', 'height': '63px','width': '257px','zIndex' : '3999','background' : 'url('+comAolMusicModulesFlyout.ui.img.top(side)+') no-repeat'}, 'id' : 'comAolMusicModulesFlyoutTop'});
			//fixPNG(top);
			top.injectInside('comAolMusicModulesFlyoutBody');
		},
		closeButton : function(){
			var margin = "18px 24px 0 0";
			if (Browser.Engine.trident4){
				margin = "24px 14px 0 0";
			}
			var closeButton = new Element('div', {'styles' : {'background' : 'url('+comAolMusicModulesFlyout.vars.imgHOST+'delete-sprite2)', 'margin' : margin, 'float' : 'right', 'cursor' : 'pointer', 'width' : '15px', 'height' : '15px'}, 'class' : 'flyoutCloseOverlayButton', 'title' : 'Close'});
			$(closeButton).addEvent('click', comAolMusicModulesFlyout.events.close);
			$(closeButton).addEvent('mouseover', function(){this.setStyle('backgroundPosition', '0 -15px');});
			$(closeButton).addEvent('mouseout', function(){this.setStyle('backgroundPosition', '0 0');});
			closeButton.injectInside('comAolMusicModulesFlyoutTop');
		},
		topHeader : function(text){
			var topHeader =  new Element('div', {'styles': {'background' : 'url('+comAolMusicModulesFlyout.vars.imgHOST+'flyout-small-loader) no-repeat right', 'margin' : '0px 0 4px 30px', 'color' : '#333333', 'font-weight' : 'bold', 'fontSize' : '13px', 'width' : '185px', 'fontFamily' : 'Arial, Helvetica, sans-serif'}, 'id' : 'comAolMusicModulesFlyoutTopHeader'});
			topHeader.set('text',text);
			topHeader.injectInside('comAolMusicModulesFlyoutTop');
		},
		topHeaderSmall : function(text){
			var topHeaderSmall =  new Element('div', {'styles': {'margin' : '0px 0 4px 30px', 'color' : '#666666', 'font-weight' : 'bold', 'fontSize' : '11px', 'width' : '185px', 'fontFamily' : 'Arial, Helvetica, sans-serif'}, 'id' : 'comAolMusicModulesFlyoutTopHeader'});
			topHeaderSmall.set('text',text);
			topHeaderSmall.injectInside('comAolMusicModulesFlyoutTop');
		},
		borderGray : function(parent, margin){
			var borderGray = new Element('div', {'styles': {'borderBottom': '1px solid #B0B0B0', 'margin' : margin}});
			borderGray.injectInside(parent);
		},
		borderWhite : function(parent, margin){
			var borderWhite = new Element('div', {'styles': {'borderBottom': '1px solid #FFFFFF', 'margin' : margin}});
			borderWhite.injectInside(parent);
		},
		clear : function(parent){
			var clear = new Element('div', {'styles': {'clear': 'both'}});
			clear.injectInside(parent);	
		},
		middle : function(){
			var middle = new Element('div', {'styles': {'margin' : '0', 'overflow': 'hidden','zIndex': '3998', 'color' : '#333333', 'width' : '257px', 'background' : 'url('+comAolMusicModulesFlyout.ui.img.middle()+') repeat-y 0% 100%'}, 'id' : 'comAolMusicModulesFlyoutMiddle'});
			//fixPNG(middle);
			middle.injectInside('comAolMusicModulesFlyoutBody');
		},
		middleHeader : function(text){
			var middleHeader =  new Element('div', {'styles': {'margin' : '0px 0 8px 30px', 'color' : '#666666', 'font-weight' : 'bold', 'fontSize' : '11px', 'width' : '196px', 'fontFamily' : 'Arial, Helvetica, sans-serif'}, 'id' : 'comAolMusicModulesFlyoutMiddleHeader'});
			middleHeader.set('text',text);
			middleHeader.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		bottom : function(){
			var bottom =  new Element('div', {'styles': {'zIndex': '3997', 'height' : '55px', 'width' : '257px', 'background' : 'url('+comAolMusicModulesFlyout.ui.img.bottom()+') no-repeat'}});
			//fixPNG(bottom);
			bottom.injectInside('comAolMusicModulesFlyoutBody');
		},
		audioSearchAsset : function(asset){
			var imageurl = comAolMusicModulesFlyout.vars.audioAsset.imageurl;
			var enclosure = asset.enclosure;
			if (asset.artistname){
				var artist =  asset.artistname;
			} else {
				var artist = comAolMusicModulesFlyout.vars.audioAsset.artist;
			}
			if (asset.albumname){
				var album=  asset.albumname;
			} else {
				var album = comAolMusicModulesFlyout.vars.audioAsset.album;
			}
			if (asset.songtitle){
				var n = asset.songtitle.indexOf(" - ");
				if (n != -1){
					var songtitle =  asset.songtitle.substring(n+3);
				} else {
					var songtitle =  asset.songtitle;	
				}
			} else {
				var songtitle = comAolMusicModulesFlyout.vars.audioAsset.songtitle;
			}
			var duration =  asset.duration;
			var artistamgid = comAolMusicModulesFlyout.vars.audioAsset.artistamgid;
			var artistaolid = comAolMusicModulesFlyout.vars.audioAsset.artistaolid;
			var trackaolid = comAolMusicModulesFlyout.vars.audioAsset.trackaolid;
			var sourceurl = asset.sourceurl;
			var sample = comAolMusicModulesFlyout.vars.audioAsset.sample;
			var mediatype = "singingfish";
			var audioSearchAsset =  new Element('div', {'styles': {'margin' : '4px 0 0 30px', 'color' : '#2864B4', 'fontSize' : '12px', 'width' : '196px', 'fontFamily' : 'Arial', 'background' : 'url('+comAolMusicModulesFlyout.vars.imgHOST+'community-audio-icon) no-repeat 0 2px', 'textIndent' : '18px', 'cursor' : 'pointer'}, 'title' : songtitle+" by "+artist+" | "+comAolMusicModulesFlyout.utilities.convertSecsToReadableTime(duration)+" | Source: "+sourceurl, 'imageurl' : imageurl, 'enclosure' : enclosure, 'artist' : artist, 'album' : album, 'songtitle' : songtitle, 'length' : duration, 'artistamgid' : artistamgid, 'artistaolid' : artistaolid, 'trackaolid' : trackaolid, 'sourceurl' : sourceurl, 'mediatype' : mediatype, 'sample' : sample});
			audioSearchAsset.set('text',comAolMusicModulesFlyout.utilities.trimString(songtitle, 27));
			audioSearchAsset.addEvent('mouseover', function(){this.setStyle('textDecoration', 'underline')});
			audioSearchAsset.addEvent('mouseout', function(){this.setStyle('textDecoration', 'none')});
			audioSearchAsset.addEvent('click', comAolMusicModulesFlyout.events.audioSearchClick);
			audioSearchAsset.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		messageBox : function(){
			var messageBox = new Element('div', {'styles' : {'margin' : '0 0 0 30px', 'width' : '190px', 'height' : 'auto', 'fontSize' : '11px', 'overflow' : 'visible'}, 'id' : 'comAolMusicModulesFlyoutMessageBox'});
			messageBox.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		playlistBox : function(){
			var playlistBox = new Element('div', {'styles' : {'margin' : '0 0 0 30px', 'width' : '190px', 'height' : '85px', 'overflow' : 'auto'}, 'id' : 'comAolMusicModulesFlyoutPlaylistBox'});
			playlistBox.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		playlistItem : function(listId, listName, itemCount, checked){
			//Media Type (self)
			var mediaType = 'songs';
			if (comAolMusicModulesFlyout.vars.mediaType == 'video'){
				mediaType = 'videos';
			}
			
			//Asset Type (target being added)
			var assetType = 'SONG';
			if (comAolMusicModulesFlyout.vars.assetType == 'video'){
				assetType = 'VIDEO';	
			}
			if (comAolMusicModulesFlyout.vars.assetType == 'playlistAddAllVIDEO' || comAolMusicModulesFlyout.vars.assetType == 'playlistAddAllAUDIO'){
				assetType = 'PLAYLIST';
				assetCount = comAolMusicModulesFlyout.vars.assetCount;
				assetId = comAolMusicModulesFlyout.vars.assetId;
			}
		
			var playlistItem = new Element('div', {'styles' : {'margin' : '4px 0', 'fontSize' : '11px', 'fontColor' : '#666666', 'fontFamily' : 'Arial, Helvetica, sans-serif'}, 'listId' : listId, 'title' : listName+" ("+itemCount+" "+mediaType+")"});
			var checkBox = new Element('input', {'styles' : {'margin' : '0 4px 0 0'}, 'type' : 'checkbox'});
			$(checkBox).defaultChecked = checked;
			checkBox.injectInside(playlistItem);		
 			playlistItem.appendText(comAolMusicModulesFlyout.utilities.trimString(listName, 16) + " (" + itemCount + "/" + comAolMusicModulesFlyout.vars.writeMax + ")");				
			if (((assetType != 'PLAYLIST') && (itemCount >= comAolMusicModulesFlyout.vars.writeMax)) || ((assetType == 'PLAYLIST') && (assetCount + itemCount > comAolMusicModulesFlyout.vars.writeMax))) {
				$(checkBox).disabled = true;
				playlistItem.style.color = "#999999";
			}
			playlistItem.injectInside('comAolMusicModulesFlyoutPlaylistBox');
		},
		newPlaylistInputBox : function(submitOnEnter){
			var newPlaylistInputBox = new Element('input', {'styles' : {'margin': '0 0 3px 30px', 'backgroundColor': '#FAFAFA', 'border' : '1px solid #CECECE', 'width' : '190px', 'color' : '#676767', 'padding' : '3px', 'fontSize' : '11px', 'fontFamily' : 'Arial, Helvetica, sans-serif'}, 'id' : 'comAolMusicModulesFlyoutNewPlaylistInputBox', 'maxChars' : '35', 'submitOnEnter' : submitOnEnter, 'charCount' : 'comAolMusicModulesFlyoutCharCountTitle'});
			newPlaylistInputBox.addEvent('keypress', comAolMusicModulesFlyout.events.trackCharCount);
			newPlaylistInputBox.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		charCount : function(maximum, id){
			var charCount = new Element('div', {'styles' : {'color' : '#999999', 'fontSize' : '10px', 'fontFamily' : 'Arial, Helvetica, sans-serif', 'margin' : '0 0 15px 30px'}, 'id' : id});
			charCount.set('text',maximum+' Character max');
			charCount.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		blueButton : function(text, margin){
			var blueButton = new Element('div', {'styles' : {'float' : 'left', 'margin' : margin, 'display' : 'inline',  'background' : 'url('+comAolMusicModulesFlyout.vars.imgHOST+'flyout-blue-button) no-repeat', 'width' : '61px', 'height' : '22px', 'lineHeight' : '22px', 'color' : '#FFFFFF', 'textAlign' : 'center', 'fontWeight' : 'bold', 'fontSize' : '12px', 'fontFamily' : 'Arial, Helvetica, sans-serif', 'cursor' : 'pointer'}, 'id' : 'comAolMusicModulesFlyoutBlueButton'});	
			blueButton.set('text',text);
			blueButton.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		grayButton : function(text){
			var grayButton = new Element('div', {'styles' : {'float' : 'left', 'background' : 'url('+comAolMusicModulesFlyout.vars.imgHOST+'flyout-gray-button) no-repeat', 'width' : '63px', 'height' : '22px', 'lineHeight' : '22px', 'color' : '#2864b4', 'textAlign' : 'center', 'fontWeight' : 'bold', 'fontSize' : '11px', 'fontFamily' : 'Arial, Helvetica, sans-serif', 'cursor' : 'pointer'}, 'id' : 'comAolMusicModulesFlyoutGrayButton'});	
			grayButton.set('text',text);
			grayButton.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		viewAllPlaylists : function(){
			var viewAllPlaylists = new Element('div', {'styles' : {'margin' : '0 0 0 30px', 'background' : 'url('+comAolMusicModulesFlyout.vars.imgHOST+'community-green-arrow-right) 0 3px no-repeat', 'textIndent' : '16px'}});	
			var viewAllPlaylistsA = new Element('a', {'styles' : {'color' : '#2864B4', 'fontSize' : '12px', 'fontWeight' : 'bold', 'fontFamily' : 'Arial, Helvetica, sans-serif', 'textDecoration' : 'none'},'href' : '/profile/playlists/'});
			viewAllPlaylistsA.set('text','View All Your Playlists');
			viewAllPlaylistsA.injectInside(viewAllPlaylists);
			viewAllPlaylists.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		createNewPlaylist : function(){
			var createNewPlaylist = new Element('div', {'styles' : {'margin' : '0 0 0 30px', 'color' : '#2864B4', 'fontSize' : '12px', 'fontWeight' : 'bold', 'fontFamily' : 'Arial, Helvetica, sans-serif', 'cursor' : 'pointer'}, 'id' : 'comAolMusicModulesFlyoutCreateNew'});	
			createNewPlaylist.set('text','Create A New '+comAolMusicModulesFlyout.vars.mediaType.capitalize()+' Playlist');
			createNewPlaylist.addEvent('click', comAolMusicModulesFlyout.events.createPlaylistClick);
			createNewPlaylist.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		playlistLink : function(listName, listId, mediaType){
			var playlistIcon = 'community-audio-icon';
			var pos  = '0 2px';
			var textIndent = '18px';
			if (mediaType == 'VIDEO' || mediaType == 'video'){
				playlistIcon = 'community-video-icon';
				pos  = '0 0';
				textIndent = '22px';
			}
			var playlistLink = new Element('div', {'styles' : {'fontSize' : '12px', 'margin' : '4px 0 0 30px', 'background' : 'url('+comAolMusicModulesFlyout.vars.imgHOST+playlistIcon+') '+pos+'  no-repeat', 'textIndent' : textIndent}});	
			var playlistLinkA = new Element('a', {'styles' : {'color' : '#2864B4', 'fontSize' : '12px', 'fontFamily' : 'Arial, Helvetica, sans-serif', 'textDecoration' : 'none'},'href' : '/profile/playlists/'+listId+'/', 'title' : listName});
			playlistLinkA.set('text',comAolMusicModulesFlyout.utilities.trimString(listName, 28));
			playlistLinkA.injectInside(playlistLink);
			playlistLink.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		editPlaylistDescriptionBox : function(){
			var newPlaylistInputBox = new Element('textarea', {'styles' : {'margin': '0 0 3px 30px', 'backgroundColor': '#FAFAFA', 'border' : '1px solid #CECECE', 'width' : '190px', 'color' : '#676767', 'padding' : '3px', 'fontSize' : '11px', 'fontFamily' : 'Arial, Helvetica, sans-serif'}, 'id' : 'comAolMusicModulesFlyoutEditPlaylistDescriptionBox', 'maxChars' : 350, 'rows' : '5', 'charCount' : 'comAolMusicModulesFlyoutCharCountDescription'});
			newPlaylistInputBox.addEvent('keypress', comAolMusicModulesFlyout.events.trackCharCount);
			newPlaylistInputBox.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		privacyRadio : function(text){
			var privacyRadio =  new Element('div', {'styles': {'width' : '190px'}, 'id' : 'comAolMusicModulesFlyoutPrivacyRadio'});
			var header =  new Element('div', {'styles': {'margin' : '0px 0 8px 30px', 'color' : '#666666', 'font-weight' : 'bold', 'fontSize' : '11px', 'width' : '190px', 'fontFamily' : 'Arial, Helvetica, sans-serif'}});
			header.set('text',text);
			header.injectInside(privacyRadio);
			var privacyRadioPrivate = new Element('div', {'styles' : {'margin' : '0 0 0 30px', 'color' : '#666666', 'fontSize' : '11px', 'fontFamily' : 'Arial, Helvetica, sans-serif'}});
			var playlistPrivacyTogglePrivate = new Element('input', {'styles' : {'margin' : '5px'},'type' :'radio', 'name' : 'privacyToggle', 'value' : 'private', 'class' : 'playlistPrivacyToggle', 'id' : 'playlistPrivacyTogglePRIVATE'});
			playlistPrivacyTogglePrivate.injectInside(privacyRadioPrivate);
			privacyRadioPrivate.appendText("Only you");
			privacyRadioPrivate.injectInside(privacyRadio);
			var privacyRadioPublic = new Element('div', {'styles' : {'margin' : '0 0 0 30px', 'color' : '#666666', 'fontSize' : '11px', 'fontFamily' : 'Arial, Helvetica, sans-serif'}});
			var playlistPrivacyTogglePublic = new Element('input', {'styles' : {'margin' : '5px'},'type' :'radio', 'name' : 'privacyToggle', 'value' : 'public', 'class' : 'playlistPrivacyToggle', 'id' : 'playlistPrivacyTogglePUBLIC'});
			playlistPrivacyTogglePublic.injectInside(privacyRadioPublic);
			privacyRadioPublic.appendText("Everybody");
			privacyRadioPublic.injectInside(privacyRadio);
			privacyRadio.injectInside('comAolMusicModulesFlyoutMiddle');
		},
		sns : function(){
			comAolMusicModulesFlyout.vars.tween.removeEvent('onComplete', comAolMusicModulesFlyout.ui.component.sns);
			try {
				$("snsMiniUI").setStyle('display', 'none');
				$('comAolMusicModulesFlyoutMiddle').empty();
 			} catch (e) {}
			var sns = new Element('div', {'styles' : {'position' : 'relative', 'margin' : '-25px 0 0 120px', 'width' : '190px', 'height' : '260px'}, 'id' : 'comAolMusicModulesFlyoutSNS'});
			sns.set('html',_sns_var_);
			sns.injectInside('comAolMusicModulesFlyoutMiddle');
			spans = sns.getElementsByTagName( "span" );
			spans[0].set('text',"");
		}
	},
	img : {
		top : function(side){
			return (Browser.Engine.trident4) ? comAolMusicModulesFlyout.vars.imgHOST+'top-'+side+'gif' : comAolMusicModulesFlyout.vars.imgHOST+'top-'+side+'png';
			//return comAolMusicModulesFlyout.vars.imgHOST+'top-'+side+'png';
		},
		closeButton : function(){
			return comAolMusicModulesFlyout.vars.imgHOST+'closegif';	
		},
		middle : function(){
			return (Browser.Engine.trident4) ? comAolMusicModulesFlyout.vars.imgHOST+'middlegif' : comAolMusicModulesFlyout.vars.imgHOST+'middlepng'; 
			//return comAolMusicModulesFlyout.vars.imgHOST+'middlepng';
		},
		bottom : function(){
			return (Browser.Engine.trident4) ? comAolMusicModulesFlyout.vars.imgHOST+'bottomgif' : comAolMusicModulesFlyout.vars.imgHOST+'bottompng';
			//return comAolMusicModulesFlyout.vars.imgHOST+'bottompng';
		}
	}
}
comAolMusicModulesFlyout.events = {
	fadeOutClose : function(){
		if (!comAolMusicModulesFlyout.vars.mouseOver){
			var fadeOutClose = new Fx.Tween('comAolMusicModulesFlyoutBody', {
				property: 'opacity', 
         		duration: 200,
         		onComplete : comAolMusicModulesFlyout.events.close
			});	
			fadeOutClose.start(0);
		} else {
			setTimeout(comAolMusicModulesFlyout.events.fadeOutClose, 1500);	
		}
	},
	close : function(){
		try {
			$('comAolMusicModulesFlyoutBody').setStyles({'width' : 0, 'display' : 'none', 'opacity' : 1});
		} catch (e) {}
	},
	bodyMouseOver : function(e){
		comAolMusicModulesFlyout.vars.mouseOver = true;
	},
	bodyMouseOut : function(e){
		comAolMusicModulesFlyout.vars.mouseOver = false;
	},
	audioSearchPlaylist : function (e){
		var e = new Event(e);
		comAolMusicModulesFlyout.vars.xMouse = comAolMusicModulesFlyout.vars.xMouse - 255;
		comAolMusicModulesFlyout.vars.yMouse = comAolMusicModulesFlyout.vars.yMouse - 40;
		comAolMusicModulesFlyout.vars.mediaType = 'audio';
		comAolMusicModulesFlyout.vars.assetType = 'audio'
		$('comAolMusicModulesFlyoutBody').empty();
		if (comAolMusicModulesFlyout.viewer == ''){
			comAolMusicModulesFlyout.ui.state.initializeSns('right', 'ADD '+comAolMusicModulesFlyout.vars.assetType.toUpperCase()+' TO...');	
		} else {
			comAolMusicModulesFlyout.vars.audioAssetPlayNow = false;
			comAolMusicModulesFlyout.vars.audioAssetPlaylist = true;
			comAolMusicModulesFlyout.utilities.setAudioAsset(e.target);
			if (comAolMusicModulesFlyout.vars.audioAsset.enclosure == ''){
				comAolMusicModulesFlyout.ui.state.audioSearch('right');
				comAolMusicModulesFlyout.events.getAudioSearch();
			} else {
				comAolMusicModulesFlyout.vars.audioAsset.mediatype = "singingfish";
				$('comAolMusicModulesFlyoutBody').empty();
				comAolMusicModulesFlyout.ui.state.initializePlaylists('right');
				comAolMusicModulesFlyout.events.listPlaylists(comAolMusicModulesFlyout.vars.mediaType);
			}
		}
	},
	audioSearchPlayNow : function (e){
		comAolMusicModulesFlyout.vars.audioAssetPlayNow = true;
		comAolMusicModulesFlyout.events.audioSearchPlay(e);
	},
	audioSearchPlayLater : function (e){
		comAolMusicModulesFlyout.vars.audioAssetPlayNow = false;
		comAolMusicModulesFlyout.events.audioSearchPlay(e);
	},
	audioSearchPlay : function (e){
		var e = new Event(e);
		comAolMusicModulesFlyout.vars.mediaType = 'audio';
		comAolMusicModulesFlyout.vars.assetType = 'audio';
		comAolMusicModulesFlyout.vars.audioAssetPlaylist = false;
		comAolMusicModulesFlyout.utilities.setAudioAsset(e.target);
		comAolMusicModulesFlyout.vars.xMouse = comAolMusicModulesFlyout.vars.xMouse + 25;
		comAolMusicModulesFlyout.vars.yMouse = comAolMusicModulesFlyout.vars.yMouse - 40;
		$('comAolMusicModulesFlyoutBody').empty();
		if (comAolMusicModulesFlyout.vars.audioAsset.enclosure == ''){
			comAolMusicModulesFlyout.ui.state.audioSearch('left');
			comAolMusicModulesFlyout.events.getAudioSearch();
		} else {
			comAolMusicModulesFlyout.vars.audioAsset.mediatype = "singingfish";
			comAolMusicModulesFlyout.song.add();
		}
	},
	audioSamplePlayNow : function (e){
		
		var e = new Event(e);
		comAolMusicModulesFlyout.vars.mediaType = 'audio';
		comAolMusicModulesFlyout.vars.assetType = 'audio';
		comAolMusicModulesFlyout.vars.audioAssetPlaylist = false;
		comAolMusicModulesFlyout.utilities.setAudioAsset(e.target);
		comAolMusicModulesFlyout.vars.xMouse = comAolMusicModulesFlyout.vars.xMouse + 25;
		comAolMusicModulesFlyout.vars.yMouse = comAolMusicModulesFlyout.vars.yMouse - 40;
		$('comAolMusicModulesFlyoutBody').empty();
		comAolMusicModulesFlyout.ui.state.audioSearch('left');
		comAolMusicModulesFlyout.utilities.stopLoadingImg();
		var fakeResponseDataAssets = [];
		comAolMusicModulesFlyout.ui.state.audioSearchAssets(fakeResponseDataAssets);
		
		
	},
	audioPlaylist : function(e){
		var e = new Event(e);
		comAolMusicModulesFlyout.vars.xMouse = comAolMusicModulesFlyout.vars.xMouse - 255;
		comAolMusicModulesFlyout.vars.yMouse = comAolMusicModulesFlyout.vars.yMouse - 40;
		comAolMusicModulesFlyout.vars.mediaType = 'audio';
		comAolMusicModulesFlyout.vars.assetType = 'audio'
		$('comAolMusicModulesFlyoutBody').empty();
		if (comAolMusicModulesFlyout.viewer == ''){
			comAolMusicModulesFlyout.ui.state.initializeSns('right', 'ADD '+comAolMusicModulesFlyout.vars.assetType.toUpperCase()+' TO...');
		} else {
			comAolMusicModulesFlyout.vars.audioAssetPlaylist = true;
			comAolMusicModulesFlyout.vars.audioAssetPlayNow = false;
			comAolMusicModulesFlyout.utilities.setAudioAsset(e.target);
			comAolMusicModulesFlyout.vars.audioAsset.mediatype = "pmms_audio";
			comAolMusicModulesFlyout.ui.state.initializePlaylists('right');
			comAolMusicModulesFlyout.events.listPlaylists(comAolMusicModulesFlyout.vars.mediaType);
		}
	},
	audioPlayNow : function(e){
		var e = new Event(e);
		comAolMusicModulesFlyout.vars.mediaType = 'audio';
		comAolMusicModulesFlyout.vars.assetType = 'audio'
		comAolMusicModulesFlyout.vars.audioAssetPlaylist = false;
		comAolMusicModulesFlyout.vars.audioAssetPlayNow = true;
		comAolMusicModulesFlyout.utilities.setAudioAsset(e.target);
		comAolMusicModulesFlyout.vars.audioAsset.mediatype = "pmms_audio";
		comAolMusicModulesFlyout.song.add();
	},
	audioPlayLater : function(e){
		var e = new Event(e);
		comAolMusicModulesFlyout.vars.mediaType = 'audio';
		comAolMusicModulesFlyout.vars.assetType = 'audio'
		comAolMusicModulesFlyout.vars.audioAssetPlaylist = false;
		comAolMusicModulesFlyout.vars.audioAssetPlayNow = false;
		comAolMusicModulesFlyout.utilities.setAudioAsset(e.target);
		comAolMusicModulesFlyout.vars.audioAsset.mediatype = "pmms_audio";
		comAolMusicModulesFlyout.song.add();
	},
	getAudioSearch : function(){
    	comAolMusicModulesFlyout.service.script(serverHostUrl+"api/audio/search?start=0&count=5&c=comAolMusicModulesFlyout.events.getAudioSearchBack&trackAolId="+comAolMusicModulesFlyout.vars.audioAsset.trackaolid+"&artistName="+escape(comAolMusicModulesFlyout.vars.audioAsset.artist)+"&songTitle="+escape(comAolMusicModulesFlyout.vars.audioAsset.songtitle)+"&ran="+Math.random());
	},
	getAudioSearchBack : function(json){
		comAolMusicModulesFlyout.utilities.stopLoadingImg();
		if (json.response.statusCode == 200){
			comAolMusicModulesFlyout.ui.state.audioSearchAssets(json.response.data.assets);
		} else {
			
		}
	},
	audioSearchClick : function(e){
		var e = new Event(e);
		e.stop();
		comAolMusicModulesFlyout.utilities.setAudioAsset(e.target);
		if (!comAolMusicModulesFlyout.vars.audioAssetPlaylist){
			comAolMusicModulesFlyout.song.add();
		} else {
			comAolMusicModulesFlyout.events.listPlaylists('audio');	
		}
	},
	listPlaylists : function(type){
		comAolMusicModulesFlyout.utilities.startLoadingImg();
		$('comAolMusicModulesFlyoutTopHeader').set('text','LOADING PLAYLISTS');
		window.addEvent("comAolMusicApiPlaylistsList", comAolMusicModulesFlyout.events.listPlaylistsBack); 
		var playlistAPI = new comAolMusicApiPlaylists();
		if (comAolMusicApiPlaylists.playlist[type]){
			comAolMusicApiPlaylists.playlist[type] = null;
		}	
		playlistAPI.list(type);	
	},
	listPlaylistsBack : function(json){
		window.removeEvent("comAolMusicApiPlaylistsList", comAolMusicModulesFlyout.events.listPlaylistsBack); 
		comAolMusicModulesFlyout.utilities.stopLoadingImg();
		if (json.statusCode == 200){
			comAolMusicModulesFlyout.vars.playlists = [];
			comAolMusicModulesFlyout.vars.playlists = json.data.playlists.concat();;
			if (json.data.playlists.length > 0){
				comAolMusicModulesFlyout.ui.state.listPlaylists();
			} else {
				comAolMusicModulesFlyout.ui.state.firstPlaylist();
			}
		} else {
			comAolMusicModulesFlyout.ui.state.errorLoadingPlaylists();
		}
	},
	trackCharCount : function(e){
		var e = new Event(e);
		var submitOnEnter = e.target.getAttribute('submitOnEnter');
		var charCount = e.target.getAttribute('charCount');
		if (e.key == 'enter' && submitOnEnter == 'true'){
			comAolMusicModulesFlyout.events.createPlaylist();	
		}
		var num = e.target.value.length+1;
		var maximum = e.target.getAttribute('maxChars');
		$(charCount).set('text',num+"/"+maximum);
		if (num >= maximum){ 
			$(charCount).setStyle('color', '#FF0000');
			if (e.key != 'enter' && e.key != 'left' && e.key != 'right' && e.key != 'backspace' && e.key !=  'delete'){
				e.stop();	
			}
		} else {
			$(charCount).setStyle('color', '#999999');
		}
	},
	createPlaylistClick : function(){
		comAolMusicModulesFlyout.ui.state.createNewPlaylist();
	},
	cancelCreatePlaylist : function(){
		comAolMusicModulesFlyout.ui.state.listPlaylists();
	},
	createPlaylist : function(){
		var value = $('comAolMusicModulesFlyoutNewPlaylistInputBox').value;
		if (value.length > 35){
			alert('Please limit this playlist title to 35 characters.');	
		} else {
			if (value.length > 0){
				$('comAolMusicModulesFlyoutBlueButton').removeEvent('click', comAolMusicModulesFlyout.events.createPlaylist);
				comAolMusicModulesFlyout.utilities.startLoadingImg();	
				window.addEvent("comAolMusicApiPlaylistsCreate", comAolMusicModulesFlyout.events.createPlaylistBack); 
				var playlistAPI = new comAolMusicApiPlaylists();
				playlistAPI.create(comAolMusicModulesFlyout.vars.mediaType, value);
			} else {
				alert('Please give that playlist a title.');	
			}
		}
	},
	createPlaylistBack : function(json){
		window.removeEvent("comAolMusicApiPlaylistsCreate", comAolMusicModulesFlyout.events.createPlaylistBack); 
		comAolMusicModulesFlyout.utilities.stopLoadingImg();
		if (json.statusCode == 200){
			//comAolMusicModulesFlyout.vars.playlists.push(json.data.playlist);
			comAolMusicModulesFlyout.vars.newPlaylist = json.data.playlist;
			comAolMusicModulesFlyout.ui.state.listPlaylists();
		} else {
			var statusText = json.statusText.trim();
			if (statusText !== '') {
				statusText = statusText + ' ';
			}
			alert(statusText + "There was a problem creating your playlist. Please try again.");	
		}
	},
	addPlaylist : function(){
		var playlists = $$('#comAolMusicModulesFlyoutPlaylistBox div');
			var playlistsSelected = [];
			for (i=0; i<playlists.length; i++){
				var playlist = playlists[i];
				if (playlist.firstChild.checked){
					playlistsSelected.push(playlist.getAttribute("listid"));
				}
			}
			if (playlistsSelected.length > 0){
				comAolMusicModulesFlyout.utilities.startLoadingImg();
				var playlistAPI = new comAolMusicApiPlaylists();
				if (comAolMusicModulesFlyout.vars.assetType == 'audio'){
					window.addEvent("comAolMusicApiPlaylistsAdd", comAolMusicModulesFlyout.events.addPlaylistBack);
					if (comAolMusicModulesFlyout.vars.audioAsset.mediatype == "pmms_audio"){
						playlistAPI.add(playlistsSelected, "audio", comAolMusicModulesFlyout.vars.audioAsset.trackaolid);
					} else {
						var songObject = {};
						songObject.artist = comAolMusicModulesFlyout.vars.audioAsset.artist;
						songObject.album = comAolMusicModulesFlyout.vars.audioAsset.album;
						songObject.songtitle = comAolMusicModulesFlyout.vars.audioAsset.songtitle;
						songObject.enclosure = comAolMusicModulesFlyout.vars.audioAsset.enclosure;
						songObject.duration = comAolMusicModulesFlyout.vars.audioAsset.duration;
						songObject.sourceurl = comAolMusicModulesFlyout.vars.audioAsset.sourceurl;
						songObject.trackaolid = comAolMusicModulesFlyout.vars.audioAsset.trackaolid;
						var array = [];
						array.push(songObject);
						playlistAPI.add(playlistsSelected, "audio", array);
					}	
				}
				if (comAolMusicModulesFlyout.vars.assetType == 'video'){
					window.addEvent("comAolMusicApiPlaylistsAdd", comAolMusicModulesFlyout.events.addPlaylistBack);
					playlistAPI.add(playlistsSelected, 'video', comAolMusicModulesFlyout.vars.assetId, comAolMusicModulesFlyout.vars.assetIdType);
				}
				if (comAolMusicModulesFlyout.vars.assetType == 'playlistAddAllVIDEO' || comAolMusicModulesFlyout.vars.assetType == 'playlistAddAllAUDIO'){
					if (playlistsSelected.length == 1){
						window.addEvent("comAolMusicApiPlaylistsCopy", comAolMusicModulesFlyout.events.copyPlaylistBack);
						playlistAPI.copy(comAolMusicModulesFlyout.vars.assetId, playlistsSelected[0]);
					} else {
						alert("Please select only one playlist to add to.");	
					}
				}
			} else {
				alert("Please select at least one playlist.");	
			}	
	},
	addPlaylistBack : function(json){
		window.removeEvent("comAolMusicApiPlaylistsAdd", comAolMusicModulesFlyout.events.addPlaylistBack);
		comAolMusicModulesFlyout.utilities.stopLoadingImg();
		if (json.statusCode == 200){
			comAolMusicModulesFlyout.vars.addedPlaylists = json.data.playlists;
			comAolMusicModulesFlyout.ui.state.added();
		} else {
			var statusText = json.statusText.trim();
			if (statusText !== '') {
				statusText = statusText + ' ';
			}
			alert(statusText + "There was a problem	adding to your playlist.");	
		}
	},
	copyPlaylistBack : function(json){
		window.removeEvent("comAolMusicApiPlaylistsCopy", comAolMusicModulesFlyout.events.copyPlaylistBack);
		comAolMusicModulesFlyout.utilities.stopLoadingImg();
		if (json.statusCode == 200){
			comAolMusicModulesFlyout.vars.copiedPlaylists = json.data;
			comAolMusicModulesFlyout.ui.state.copied();
		} else {
			var statusText = json.statusText.trim();
			if (statusText !== '') {
				statusText = statusText + ' ';
			}
			alert(statusText + "There was a problem adding to your playlist.");	
		}
	},
	flyoutShowRight : function(e){
		comAolMusicModulesFlyout.vars.xMouse = comAolMusicModulesFlyout.vars.xMouse + 15;
		comAolMusicModulesFlyout.vars.yMouse = comAolMusicModulesFlyout.vars.yMouse - 40;
		comAolMusicModulesFlyout.events.flyoutShow(e, 'left');
	},
	flyoutShowLeft : function(e){
		comAolMusicModulesFlyout.vars.xMouse = comAolMusicModulesFlyout.vars.xMouse - 255;
		comAolMusicModulesFlyout.vars.yMouse = comAolMusicModulesFlyout.vars.yMouse - 40;
		comAolMusicModulesFlyout.events.flyoutShow(e, 'right');
	},
	
	flyoutShow : function(e, side){
		var e = new Event(e);
		$('comAolMusicModulesFlyoutBody').empty();
		if (comAolMusicModulesFlyout.viewer == ''){
			comAolMusicModulesFlyout.ui.state.initializeSns(side, "COPY PLAYLIST TO...");		
		} else {
			comAolMusicModulesFlyout.vars.assetType = e.target.getAttribute('assettype');
			comAolMusicModulesFlyout.vars.assetId = e.target.getAttribute('assetid');
			comAolMusicModulesFlyout.vars.assetIdType = e.target.getAttribute('assetidtype');
			comAolMusicModulesFlyout.vars.mediaType = 'audio';
			if (comAolMusicModulesFlyout.vars.assetType == 'video' || comAolMusicModulesFlyout.vars.assetType == 'playlistAddAllVIDEO'){
				comAolMusicModulesFlyout.vars.mediaType = 'video';
			}
			if (comAolMusicModulesFlyout.vars.assetType == "playlistEdit"){
				comAolMusicModulesFlyout.ui.state.editPlaylist(side);
				comAolMusicModulesFlyout.events.getPlaylistInfo(comAolMusicModulesFlyout.vars.assetId);
			} else {
				comAolMusicModulesFlyout.ui.state.initializePlaylists(side);
				if(comAolMusicModulesFlyout.vars.assetType == 'playlistAddAllVIDEO' || comAolMusicModulesFlyout.vars.assetType == 'playlistAddAllAUDIO') {
					comAolMusicModulesFlyout.events.getPlaylistDetails(comAolMusicModulesFlyout.vars.assetId);
				}
				else {
					comAolMusicModulesFlyout.events.listPlaylists(comAolMusicModulesFlyout.vars.mediaType);
				}
			}
		}
	},
	openNewPlaylist : function(listId){
		if (comAolMusicModulesFlyout.vars.needWindow && !comAolMusicModulesFlyout.vars.openWindowAttempt) {
			window.open("/song/player/audioplayer.jsp?playlistid="+listId+"&play=true", 'aolmusicplayer','scrollbars=no,toolbar=no,width=823,height=455');
		} else {
			comAolMusicModulesFlyout.flash.addPlaylist(listId, true);	
		}		
	},
	getMetaFromPmmsId : function(e){
		var e = new Event(e);
		e.stop();
		comAolMusicModulesFlyout.vars.audioAssetPlayNow = true;
		comAolMusicModulesFlyout.vars.audioAsset = null;
		comAolMusicModulesFlyout.song.add();
		var pmmsid = e.target.getAttribute('pmmsid');
		comAolMusicModulesFlyout.service.script(serverHostUrl+'api/audio/getsongs?c=comAolMusicModulesFlyout.events.getMetaFromPmmsIdBack&pmmsId='+pmmsid+'&type=pmms&ran='+Math.random());
	},
	getMetaFromPmmsIdBack : function(json){
		if (json.response.statusCode == 200){
			comAolMusicModulesFlyout.vars.audioAsset = {
				mediatype : "pmms_audio",
				artist : json.response.data.assets[0].artistname,
				album : json.response.data.assets[0].albumname,
				songtitle : json.response.data.assets[0].songtitle,
				genre : json.response.data.assets[0].genre,
				imageurl : json.response.data.assets[0].imageurl,
				duration : json.response.data.assets[0].duration,
				enclosure : json.response.data.assets[0].enclosure,
				sourceurl : json.response.data.assets[0].sourceurl,
				trackaolid : json.response.data.assets[0].trackaolid,
				artistaolid : json.response.data.assets[0].artistaolid,
				artistamgid : json.response.data.assets[0].artistamgid,
				sample : json.response.data.assets[0].sample,
				pmmsid : json.response.data.assets[0].pmmsid,
				playnow : comAolMusicModulesFlyout.vars.audioAssetPlayNow
			}
			comAolMusicModulesFlyout.song.add();
		}
	},
	
	getPlaylistDetails : function(playlistId){
		window.addEvent("comAolMusicApiPlaylistsGet", comAolMusicModulesFlyout.events.getPlaylistDetailsBack); 
		var playlistAPI = new comAolMusicApiPlaylists();
		playlistAPI.get(playlistId);
	},
	getPlaylistDetailsBack : function(json){
		window.removeEvent("comAolMusicApiPlaylistsGet", comAolMusicModulesFlyout.events.getPlaylistDetailsBack);
		comAolMusicModulesFlyout.vars.assetCount = json.data.playlist.itemCount;
		comAolMusicModulesFlyout.events.listPlaylists(comAolMusicModulesFlyout.vars.mediaType);	
	},

	getPlaylistInfo : function(playlistId){
		window.addEvent("comAolMusicApiPlaylistsGet", comAolMusicModulesFlyout.events.getPlaylistInfoBack); 
		var playlistAPI = new comAolMusicApiPlaylists();
		playlistAPI.get(playlistId);
	},
	getPlaylistInfoBack : function(json){
		window.removeEvent("comAolMusicApiPlaylistsGet", comAolMusicModulesFlyout.events.getPlaylistInfoBack);
		comAolMusicModulesFlyout.utilities.stopLoadingImg();
		$('comAolMusicModulesFlyoutNewPlaylistInputBox').value = json.data.playlist.listName;
		if (json.data.playlist.description){
			$('comAolMusicModulesFlyoutEditPlaylistDescriptionBox').value = json.data.playlist.description;
		}
		if (json.data.ageGroup == "ADULT" || json.data.ageGroup == "MATURE_TEEN"){
			$("playlistPrivacyToggle"+json.data.playlist.privacy).checked = true;
		} else {
			$("comAolMusicModulesFlyoutPrivacyRadio").setStyle("display", "none");
		}
	},
	editPlaylist : function(e){
		var title = $("comAolMusicModulesFlyoutNewPlaylistInputBox").value;
		var description = $("comAolMusicModulesFlyoutEditPlaylistDescriptionBox").value;
		var privacy = "";
		if ($("playlistPrivacyTogglePUBLIC").checked){
			privacy = "public";	
		}
		if ($("playlistPrivacyTogglePRIVATE").checked){
			privacy = "private";	
		}
		if (title.length < 1){
			alert("Please give this playlist a title.");	
		} else {
			if (title.length > 35){
				alert("Please limit this title to 35 characters. Current character count is "+title.length);
			} else {
				if (description.length > 350){
					alert("Please limit this description to 350 characters. Current character count is "+description.length);
				} else {
					comAolMusicModulesFlyout.utilities.startLoadingImg();
					window.addEvent("comAolMusicApiPlaylistsEdit", comAolMusicModulesFlyout.events.editPlaylistBack); 
					var playlistAPI = new comAolMusicApiPlaylists();
					playlistAPI.editList(comAolMusicModulesFlyout.vars.assetId, title, description, privacy);
				}
			}
		}	
	},
	editPlaylistBack : function(json){
		window.removeEvent("comAolMusicApiPlaylistsEdit", comAolMusicModulesFlyout.events.editPlaylistBack); 
		comAolMusicModulesFlyout.utilities.stopLoadingImg();
		if (json.statusCode == 200){
			comAolMusicModulesFlyout.events.close();
		} else {
			var statusText = json.statusText.trim();
			if (statusText !== '') {
				statusText = statusText + ' ';
			}
			alert(statusText + "There was a problem editing your playlist.");	
		}
	}
},
comAolMusicModulesFlyout.service = {
    script : function(url){
        var s = new Element('script', { 'src': url });  
        $(s).injectInside(document.body);
    }
}
comAolMusicModulesFlyout.utilities = {
	each : function(obj, f) {
    	var l = obj.length;
    	for(var i = 0; i < l; i++) f(obj[i], i);
    	return obj;
	} ,
	isA : function(o,klass){ if(!o.className) return false; return new RegExp('\\b'+klass+'\\b').test(o.className) },
	isOrHasParent : function(o, p) {
        while(o.parentNode){ if(o == p) return true; o = o.parentNode }
        return false
    },
	trimString : function(string, number){
        if (string.length > number){
            return string.substring(0, number)+"..."; 
        } else {
            return string;  
        }
    },
	splitrim : function(el, t){ 
		return el.replace(/^\s+|\s+$/g,'').split(new RegExp('\\s*'+t+'\\s*')) 
	},
	findMicroFormat : function (o){
		while(o.parentNode){
				if ($(o).getProperty("songtitle")){
				return o;
				break;
			} 
				o = o.parentNode 
			}	
	},
	getMicroFormat : function(el){
        var song = {
            artist : unescape(el.getAttribute("artist")),
            album : unescape(el.getAttribute("album")),
            songtitle : unescape(el.getAttribute("songtitle")),
			genre : unescape(el.getAttribute("genre")),
            imageurl : el.getAttribute("imageurl"),
            duration : el.getAttribute("length"),
            enclosure : el.getAttribute("enclosure"),
            sourceurl : el.getAttribute("sourceurl"),
            trackaolid : el.getAttribute("trackaolid"),
            artistaolid : el.getAttribute("artistaolid"),
            artistamgid : el.getAttribute("artistamgid"),
			sample : el.getAttribute("sample"),
			pmmsid : el.getAttribute("pmmsid"),
			mediatype : el.getAttribute("mediatype"),
			playlistid : el.getAttribute("playlistid"),
			playnow : comAolMusicModulesFlyout.vars.audioAssetPlayNow
        }
        return song;
    },
	setAudioAsset : function(el){
		var element = comAolMusicModulesFlyout.utilities.findMicroFormat(el);
		comAolMusicModulesFlyout.vars.audioAsset = comAolMusicModulesFlyout.utilities.getMicroFormat(element);
	},
	stopLoadingImg : function(){
		$('comAolMusicModulesFlyoutTopHeader').setStyle('backgroundPosition', '0 300px');
	},
	startLoadingImg : function(){
		$('comAolMusicModulesFlyoutTopHeader').setStyle('backgroundPosition', 'right');
	},
	convertSecsToReadableTime : function(secs){
        var time = "";
        var sec = Math.round(secs);
        var second = (sec%60);
        var minute = (sec/60);
        var minute2 = Math.floor(minute);
        if (second<10) {
            time = minute2+":0"+second;
        } else {
            time = minute2+":"+second
        }
    	return time;
    }
}
comAolMusicModulesFlyout.flash = {
    getSWF : function(n) {
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        return (isIE) ? window[n] : document[n];
    },
    addSong : function(song){
		comAolMusicModulesFlyout.flash.getSWF("AudioPlayerHelper").addSongObject(song);
		comAolMusicModulesFlyout.events.close();
    },
	addPlaylist : function(listId, playlistPlay){
		comAolMusicModulesFlyout.flash.getSWF("AudioPlayerHelper").addPlaylist(listId, playlistPlay);	
	},
    setNeedWindow : function(b){
        comAolMusicModulesFlyout.vars.needWindow = b;
		//document.title = b+" "+Math.random();
    },
	playSongLocal : function(url){
		comAolMusicModulesFlyout.flash.getSWF("AudioPlayerHelper").playSongLocal(url);	
	},
	stopSongLocal : function(){
		comAolMusicModulesFlyout.flash.getSWF("AudioPlayerHelper").stopSongLocal();	
	}
}
comAolMusicModulesFlyout.song = {
    add : function() {
       if (comAolMusicModulesFlyout.vars.needWindow && !comAolMusicModulesFlyout.vars.openWindowAttempt){
        	comAolMusicModulesFlyout.vars.openWindowAttempt = true;
			window.open(serverHostUrl+"song/player/audioplayer.jsp", 'aolmusicplayer','scrollbars=no,toolbar=no,width=823,height=455');
			setTimeout("comAolMusicModulesFlyout.song.checkForWindow()", 500);
			setTimeout("comAolMusicModulesFlyout.song.setOpenWindowAttemptFalse()", 5000);
        } else {
            comAolMusicModulesFlyout.song.addNow();
        }
    },
    addNow : function(){
		if (comAolMusicModulesFlyout.vars.audioAsset){
			comAolMusicModulesFlyout.flash.addSong(comAolMusicModulesFlyout.vars.audioAsset);
		}
    },
	checkForWindow : function(){
		 if (!comAolMusicModulesFlyout.vars.needWindow){
			 setTimeout("comAolMusicModulesFlyout.song.addNow()", 500);
			 comAolMusicModulesFlyout.vars.openWindowAttempt = false;
		 } else {
			 setTimeout("comAolMusicModulesFlyout.song.checkForWindow()", 500);
		 }
	},
	setOpenWindowAttemptFalse : function(){
		comAolMusicModulesFlyout.vars.openWindowAttempt = false;
	}
}
comAolMusicModulesFlyout.clicks = {
	onclicks : {
		queuesingingfish : comAolMusicModulesFlyout.events.audioSearchPlaylist,
		playsingingfish : comAolMusicModulesFlyout.events.audioSearchPlayNow,
		queuepmms : comAolMusicModulesFlyout.events.audioPlaylist,
		playpmms : comAolMusicModulesFlyout.events.audioPlayNow,
		playsample: comAolMusicModulesFlyout.events.audioSamplePlayNow,
		flyoutShowRight : comAolMusicModulesFlyout.events.flyoutShowRight,
		flyoutShowLeft : comAolMusicModulesFlyout.events.flyoutShowLeft,
		getMetaFromPmmsId : comAolMusicModulesFlyout.events.getMetaFromPmmsId
    },
    onclicksNot : {
	},
    handler : function(e){
    	var ev = new Event(e);
    	var t = ev.target;
		if (!comAolMusicModulesFlyout.utilities.isOrHasParent(t, $('comAolMusicModulesFlyoutBody'))){
			comAolMusicModulesFlyout.events.close();	
		}
		comAolMusicModulesFlyout.vars.xMouse = $(t).getPosition().x-$("comAolMusicModulesFlyoutPositioner").getPosition().x;		
		comAolMusicModulesFlyout.vars.yMouse = $(t).getPosition().y;
		for(var f in comAolMusicModulesFlyout.clicks.onclicksNot) { if(!comAolMusicModulesFlyout.utilities.isA(t, f)) comAolMusicModulesFlyout.clicks.onclicksNot[f].call(t, ev) }
		var r = true
		if(t.className){
			var splitrim = comAolMusicModulesFlyout.utilities.splitrim(t.className, ' ');
			comAolMusicModulesFlyout.utilities.each(splitrim, function(c){     
				if(comAolMusicModulesFlyout.clicks.onclicks[c]) {      
					comAolMusicModulesFlyout.clicks.onclicks[c].call(t, ev)
					r = false
			}});
			};   
		return r
    }
}
comAolMusicModulesFlyout.contextmenu = {
	onclicks : {
		playsingingfish : comAolMusicModulesFlyout.events.audioSearchPlayLater,
		playpmms : comAolMusicModulesFlyout.events.audioPlayLater
    },
    onclicksNot : {
	},
    handler : function(e){
    	var ev = new Event(e);
    	var t = ev.target;
		if (!comAolMusicModulesFlyout.utilities.isOrHasParent(t, $('comAolMusicModulesFlyoutBody'))){
			comAolMusicModulesFlyout.events.close();	
		}
		comAolMusicModulesFlyout.vars.xMouse = $(t).getLeft()-$("comAolMusicModulesFlyoutPositioner").getLeft();
		comAolMusicModulesFlyout.vars.yMouse = $(t).getTop();
		for(var f in comAolMusicModulesFlyout.contextmenu.onclicksNot) { if(!comAolMusicModulesFlyout.utilities.isA(t, f)) comAolMusicModulesFlyout.contextmenu.onclicksNot[f].call(t, ev) }
		var r = true
		if(t.className){
			var splitrim = comAolMusicModulesFlyout.utilities.splitrim(t.className, ' ');
			comAolMusicModulesFlyout.utilities.each(splitrim, function(c){     
				if(comAolMusicModulesFlyout.contextmenu.onclicks[c]) { 
					ev.stop();
					comAolMusicModulesFlyout.contextmenu.onclicks[c].call(t, ev)
					r = false
			}});
			};   
		return r
    }
}
if (window.ie){
	window.addEvent('load', comAolMusicModulesFlyout.init);
} else {
	window.addEvent('domready', comAolMusicModulesFlyout.init);
}
//]]>
	/*
		Name: com_aol_music_sns_signin.js
		$LastChangedDate: 2009-01-07 13:44:51 -0500 (Wed, 07 Jan 2009) $
		$Rev: 34712 $
		Modified by Jay Smith
		/////////////////////
		dependencies:
		2. moo-12-all.js
		/////////////////////
		
		DESCRIPTION:
		see "$get() for mootools - reading get variables" located at:
		http://webfreak.no/wp/2007/09/05/get-for-mootools-a-way-to-read-get-variables-with-javascript-in-mootools/
	*/

	//see http://cass-hacks.com/articles/code/js_url_encode_decode/
	if( typeof com === "undefined" ) { var com = {}; }
	if( typeof com.aol === "undefined" ) { com.aol = {}; }
	if( typeof com.aol.music === "undefined" ) { com.aol.music = {}; }
	if( typeof com.aol.music.utilities === "undefined" ) { com.aol.music.utilities = {}; }
	com.aol.music.utilities.URLEncode = function(clearString) {
 	  var output = '';
 	  var x = 0;
 	  clearString = clearString.toString();
 	  var regex = /(^[a-zA-Z0-9_.]*)/;
 	  while (x < clearString.length) {
 	    var match = regex.exec(clearString.substr(x));
 	    if (match != null && match.length > 1 && match[1] != '') {
 	    	output += match[1];
 	      x += match[1].length;
 	    } else {
 	      if (clearString[x] == ' ')
 	        output += '+';
 	      else {
 	        var charCode = clearString.charCodeAt(x);
 	        var hexVal = charCode.toString(16);
 	        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
 	      }
 	      x++;
 	    }
 	  }
 	  return output;
 	}


	com.aol.music.utilities.URLDecode = function(encodedString) {
 	  var output = encodedString;
 	  var binVal, thisString;
 	  var myregexp = /(%[^%]{2})/;
 	  while ((match = myregexp.exec(output)) != null
 	             && match.length > 1
 	             && match[1] != '') {
 	    binVal = parseInt(match[1].substr(1),16);
 	    thisString = String.fromCharCode(binVal);
 	    output = output.replace(match[1], thisString);
 	  }
 	  return output;
 	}
 	
	
	//TODO: Move these functions into a reusable mootools URL utilities class. TBD
	function $get(key, url) {
		if (arguments.length < 2)
			url = com.aol.music.utilities.URLDecode(location.href);
		if (arguments.length > 0 && key != "") {
			if (key == "#") {
				var regex = new RegExp("[#]([^$]*)");
			} else if (key == "?") {
				var regex = new RegExp("[?]([^#$]*)");
			} else {
				var regex = new RegExp("[?&]" + key + "=([^&#]*)");
			}
			var results = regex.exec(url);
			return (results == null) ? "" : results[1];
		} else {
			url = url.split("?");
			var results = {};
			if (url.length > 1) {
				url = url[1].split("#");
				if (url.length > 1)
					results["hash"] = url[1];
				url[0].split("&").each( function(item, index) {
					item = item.split("=");
					results[item[0]] = item[1];
				});
			}
			return results;
		}
	}
 	
 	/*
	 	Jay Smith
		
		Description: 
		signin_initializer generates a signin() method which can be used in links. Redirects the
		user to the /signin page passing the last visited url.
		
		USAGE EXAMPLE:
		<a href="/signin" onclick="signin(); return false;" title="Sign In / Register" class="snsBttnnew">
	    	Sign In / Register
	    </a>
	    
	    REMARKS:
	    For links, onclick must call signin() and return false to prevent the browser from trying to go
	    directly to /signin in the href, hence ==>   href="/signin" onclick="signin(); 
	    The href, although not used will act as a fall-back feature when javascript is disabled.
	*/
	(function signin_initializer(){
		if(!window.signin) {
			var last_visited_url =  "/signin?siteState=" + encodeURIComponent("OrigUrl=" + window.location.href);
			window.signin = function(prompt_user) {
				if(prompt_user) {
					if(confirm("Please signin to continue.\nWould you like to signin now?")) { 
						window.location = last_visited_url;
					}
				}
				else window.location = last_visited_url;
				return false;
			}
		}
	})();
/*
	Name: com.aol.commentbox.js
	$LastChangedDate: 2009-03-16 18:28:22 -0400 (Mon, 16 Mar 2009) $
	$Rev: 39224 $
	Created by Jay Smith
	
	DESCRIPTION:
	CommentBox is an HTML control for navigating and posting user comments.
*/

new js.Class("com::aol::CommentBox", {
	inherits : controls.View,
	wireup : {
		onclear:	[".clear-button",  "click"],
		onsave:		[".save-button",   "click"],
		onvalidate: [".cmmntTxtArea",  "keyup"],
		onfocus: 	[".cmmntTxtArea",  "click"],
		onblur: 	[".cmmntTxtArea",  "blur" ]},
		
	initialize : function(){
		this.model = arguments[0].model;
		window.reloadComments = this.__refresh.bind(this);
		this.addEvent("onsaved", function(){this.__refresh();}.bind(this));
		this.commentslist = $(this.getElements("#comments-list")[0]);
		this.commentfield = $(this.getElements(".cmmntTxtArea")[0]);
		this.counter 	  = $(this.getElements("#cmntCntr")[0]);
		this.clearbutton  = $(this.getElements(".clear-button")[0]);
		this.savebutton   = $(this.getElements(".save-button")[0]);
		this.__refresh();
		
	},

	onclear : function(e){
		if(e && e.target) {this.commentfield.value = this.tip;}
		else {
			var defaultMsg = this.tip;
			var uComment = this.commentfield.value;
		    if (!uComment || uComment.length < 1 || uComment==defaultMsg) {
				this.commentfield.value = "";
		    }
		}
	},
	
	onblur : function(){
		var defaultMsg = this.tip;
		var uComment = this.commentfield.value;
	    if (!uComment || uComment.length < 1 || uComment==defaultMsg) {
	        this.commentfield.value = defaultMsg;
	        return;
	    }
	},
	
	onfocus : function(){this.onclear();},
	
	onsave : function(e){
		var uComment = this.commentfield.value;
	    if (!uComment || uComment.length < 1 || uComment==this.tip) {
	        alert(this.tip)
	        return;
	    }
	    var ajxUrl = "/api/v2/trri/comment/submit?" +
         	"objectUri=" + this.model["objectUri"] + "&" +
         	"type=" + this.model["ttype"] + "&" +
         	"category=" + this.model["category"] + "&" +
         	"rndm=" + Math.random();
		var self = this;
		/*DOMAssistant.AJAX.ajax({
			url : ajxUrl,
			async : true,
			method : "GET",
			callback : function(result_html){
				self.triggerEvent("onsaved");
			}
		});*/
        var myRequest = new Request({
       	 method: 'post',
       	 data: "reviewText=" + uComment,
       	 url: ajxUrl,
       	 async:true,
       	 isSuccess : function(){
			self.triggerEvent("onsaved");
		 }
        });
        myRequest.send();
        this.commentfield.value = "";
	},


	onvalidate : function () {
		var obj = this.commentfield;
	    // Check if we have words longer then xx chars to break them up.
	    var maxLongChar = 68;//Always an even number.
	    var objText = obj.value;
	    var regStrLength = new RegExp("([^\\s]{" + maxLongChar + "})", "i");
	    var ar = regStrLength.exec(objText);
	    if (ar) {
	        var longWord = obj.value.substring(ar.index, ar.index + maxLongChar + 1);
	        var halfWordLength = maxLongChar / 2;
	        var firstHalf = longWord.substring(0, halfWordLength - 1);
	        var lastHalf = longWord.substring(halfWordLength - 1, maxLongChar - 1);
	        var newWord = firstHalf + "- " + lastHalf;
	        objText = objText.replace(longWord, newWord);
	        obj.value = objText;
	    }
	    var maxLength = obj.getAttribute("maxlength");
	    var currentLength = obj.value.length;
	    if (currentLength > maxLength) {
	        obj.value = obj.value.substring(0, maxLength);
	    }
	    this.counter.innerHTML = currentLength + "/" + maxLength;
	},

	tip : "Type your own comment here",
	pageCount : 5,
	
	//---------------------------------PRIVATE--------------------------------------\\
	__clearEvents : function(){
//		QEvent.remove(this.clearbutton,  "click",  this.onclear);
//		QEvent.remove(this.savebutton,   "click",  this.onsave);
//		QEvent.remove(this.commentfield, "keyup",  this.onvalidate);
//		QEvent.remove(this.commentfield, "click",  this.onfocus);
	},

	__refresh : function(objectUri,assetAolID, ttype, category, page, pageCount){
		var ajxUrl = "/api/v2/trri/comment/get?" +
		 	"objectUri=" + 	(objectUri || this.model["objectUri"]) + "&" +
         	"assetAolID=" + (assetAolID||this.model["assetAolID"]) + "&" +
         	"type=" + 		(ttype||this.model["ttype"]) + "&" +
         	"category=" + 	(category||this.model["category"]) + "&" +
         	"page=" + 		(page||this.model["page"]) + "&" +
         	"pageCount=" + 	(pageCount||this.model["pageCount"]) + "&" +
         	"rndm=" + 		Math.random();
         var self = this;

		/*DOMAssistant.AJAX.ajax({
			url : ajxUrl,
			async : true,
			method : "GET",
			callback : function(result_html){
				self.commentslist.innerHTML = result_html;
				self.__clearEvents();
				self.bindEvents();
			}
		});*/
         
         var myRequest = new Request({
        	 method: 'get', 
        	 url: ajxUrl,
        	 async:true,
        	 isSuccess : function(result_html){
				self.commentslist.innerHTML = myRequest.xhr.responseText;
				self.__clearEvents();
				//self.bindEvents();
			}
         });
         myRequest.send();
	}
});


/*
 SYNTAX:
 	-> new com.aol.CommentBox({html, model})
 	The html: argument could be an html string or a DOM element.
 	The model: argument could be either a literal object{} or a json string/object.
 	
 	CommentBox is the controller (a control), which ties the two ends (html and model)
 	into a single MVC relationship. The view fires DOM2 events (click, drag, mousedown ...)
 	which the controller relays to the model.
 	
 	The model could be changed by the controller. An update to the model causes the 
 	view to change. The view could be altered by the controller in the same sense.
 	
 	
 
 USAGE:
	new com.aol.CommentBox({
		html:$("#ucBody")[0],
		model : {
			objectUri	: "${trriAsset.objectUri}", 
			assetAolID 	: "${trriAsset.assetAolID}",
			ttype 		: "${trriAsset.TRRIAssetType}",
			category 	: "${trriAsset.entityCategory}",
			page		: 0,
			pageCount	: 2
		}
	});
*/
/*
	Name: com.aol.CommentBox.js
	$LastChangedDate: 2009-03-09 13:12:21 -0400 (Mon, 09 Mar 2009) $
	$Rev: 38496 $
	Created by Jay Smith
	
	DESCRIPTION:
	TabControl is an HTML control for creating tabbed panes
*/

new js.Class("com::aol::TabControl", {
	inherits:controls.View,
	
	wireup : {
		tabclicked : [".tab", "click"]
	},
	
	initialize : function(){
		this.tabs = this.getElements(".tabs .tab");
		this.layoutTabs();
		this.setActive(this.getElements(".tabs .tab.active")[0])
	},
	layoutTabs : function(){
		var containerWidth = parseInt(this.getStyle("width"));
		var tabWidth = ((containerWidth-6)/this.tabs.length);
		for(var i =0; i<=this.tabs.length-1; i++) {
			$(this.tabs[i]).setStyles({width:tabWidth + "px"})
		}
	},
	tabclicked : function(e){
		var tab = $(e.target).hasClass("tab") ?
			e.target : e.target.parentNode;
		if(this.lastopened) {
			$(this.lastopened.panel).removeClass("active");
			$(this.lastopened.tab).removeClass("active");
		}
		this.setActive(tab);
	},
	
	setActive : function(tab){
		var tabname   = tab.getAttribute("name");
		var panel 	  = this.getElements("div[name=" + tabname + "]")[0]; 
		if(panel) {
			if(!$(tab).hasClass("active")) 
				$(tab).addClass("active");
			$(panel).addClass("active");
		}
		this.lastopened = {
			panel:panel, 
			tab:tab
		}
	}
});



//requires com.aol.tabcontrol

new js.Class("com::aol::UtilityPanel", {
	inherits:com.aol.TabControl,

	initialize : function(){
		window.shareMail = this.onshare.bind(this);
		this.parent(arguments);
	},

	onshare : function (videoPageURL, assetType) {
		if ( (assetType == "") || (arguments.length < 2) ) {
		    assetType = "Video";
		}
		var bolSend = true;
		var oShareForm = document.forms.email_form;
		var shFromName = "";
		if ( shFromName == "" ) {shFromName = "Your%20Friend"}
		var shToEmail = oShareForm.email_addresses.value;
		if ( (shToEmail == "") || (shToEmail == "Enter your friend's email address") ) {
			alert("Please enter a destination email address.");
			oShareForm.email_addresses.focus();
			bolSend = false;
		}
		var shMsg = oShareForm.personal_message.value;

		var strMailto = "mailto:";
		strMailto += shToEmail + "?";
		strMailto += "subject=" + shFromName + "%20has%20sent%20you%20an%20AOL%20Music%20" + assetType + "!";
		strMailto += "&body=" + videoPageURL + "%0D%0D" + shMsg;

		if (bolSend) { document.location.href = strMailto; };
	}
});
//requires com.aol.tabcontrol

new js.Class("com::aol::music::ArtistBio", {
	inherits:com.aol.TabControl,

	initialize : function(){
		this.parent(arguments);
		this.loadpanels();
	},
	
	loadpanels : function(){
		this.panels = this.getElements(".panels .panel");	
		
		this.panels.each(function(p){
			var myRequest = new Request({
	        	 method: 'get', 
	        	 url: p.getAttribute("src"),
	        	 async:true,
	        	 isSuccess : function(){
					p.innerHTML = myRequest.xhr.responseText;
				}
	         });
	         myRequest.send();
		})
	}
});
//<![CDATA[
// Crosspromo Start
var d=document; var w=window;var docHg;
var range=400;
var cod_arr=new Array();
var arrLen = 0;
var modSpan = 6;
var currId = 0;
var set_ad=true;

var opt = {
	ae:function(o,et,fn){
		if(o.addEventListener) {
			o.addEventListener(et,fn,false);
		}
		else if(o.attachEvent){
			o.attachEvent("on"+et,fn);
		}
	},
	gt:function(t,o){
		o=o?o:document;
		return o.getElementsByTagName(t);
	},
	gc:function(c,t,s,o){
		var r=new Array();
		var os=opt.gt(t,o);
		for(var i=0,j=0,l=os.length; i<l; i++){
			var sc = s + os[i].className + s;
			if(sc.indexOf(s+c+s) !== -1) {
				r[j] = os[i];
				j++;
			}
		}
		return r;
	},
    nview:function(obj,i) {
        if (typeof(obj.loaded) === 'undefined') {
            obj.loaded=0;
        }
        if (obj.loaded === 0) {
            if(document.all) {
                var relTop=obj.offsetParent.offsetTop-(w.scrollY||d.documentElement.scrollTop);
            } 
            else {
                var relTop=obj.offsetTop-(w.scrollY||d.documentElement.scrollTop);
            }

            if((relTop-docHg-20)<range) {
            	var codUrl=opt.gt('a',obj)[0].href;
            	opt.xhr(codUrl,obj,i);
            }
        }
    },
    doCod:function(){
	    var l=cod_arr.length;
	    for (var i=0;i<l;i++) {
	    	opt.nview(cod_arr[i],i);
	    }
    },
    
    xhr:function(u,obj,i){
        obj.loaded=1;
        var f,r,m='GET';
        f=function(){
        	if(r.readyState>3) {
        		opt.update(obj,r,i);
        	}
        };
        r=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
        r.onreadystatechange=f;
        try{
        	r.open(m,u,1);
	        r.setRequestHeader('content-type','text/xml');
	        r.send('');
        }catch(e){}
    },
    update:function(obj,r,i) {
        if(r.status===200){
        	obj.innerHTML=r.responseText;
        } else 
        {
        	obj.loaded=0;
        }
			
		if(document.getElementById('crs_quigoMod') !== null) {
			var the_object;
			var quigo_id = document.getElementById('crs_quigoMod');
			var q_ad='';
			var myJSONObject = quigo_id.innerHTML;
			the_object = eval("(" + myJSONObject + ")");
				
			if(the_object.response.statusCode !== "200") {
				q_ad='<p class="dn">Quigo status code: '+the_object.response.statusCode+", status text: "+the_object.response.statusText+"</p>";
			}
			else {
				q_ad+='<H3 style="color:#000;font-weight:bold;width:auto;border-bottom:1px solid #eee;">Sponsored Links</H3>';
				var list_n=the_object.response.data.numResults;
				for(var k=0;k<list_n;k++) {
					q_ad+='<div class="sponser" style="float:left;width:460px;"><div class="sponpg"><div class="sponHdr" style="margin-top:.63em;font-size:13px;">';
					q_ad+='<a target="_blank" style="color:#2965AD;font-weight:bold;font-size:12px;" href="'+the_object.response.data.listing[k].targetUrl+'" title="'+the_object.response.data.listing[k].title+'">'+the_object.response.data.listing[k].title+'</a>';
					
					q_ad+='</div><div class="sponCont">';
					q_ad+='<a target="_blank" style="color:#000;margin-bottom:.5em;font-size:11px;" href="'+the_object.response.data.listing[k].targetUrl+'" title="'+the_object.response.data.listing[k].title+'">'+the_object.response.data.listing[k].description+'</a>';
					q_ad+='</div><div class="sponLnk">';
					q_ad+='<a target="_blank" style="color:#000;font-size:11px;margin-bottom:.5em;" href="'+the_object.response.data.listing[k].targetUrl+'" title="www.'+the_object.response.data.listing[k].domain+'">www.'+the_object.response.data.listing[k].domain+'</a></div>';
					q_ad+='</div></div>';
					
				}
				q_ad+='<div class="sponFtr" style="float:right;width:100px;"><a href="http://aol.adsonar.com/admin/advertisers/indexPl.jsp" target="_blank">Buy a link here</a></div>';
				quigo_id.style.display="block";
			}
			quigo_id.innerHTML=q_ad.trim();
		}
		
		if(document.getElementById('footerad') !== null) {
			if(set_ad===true) {
				var tmp=document.getElementById('footerad');
				var x_ad = tmp.getElementsByTagName('script');   
				var test="";
				var srcobj=document.createElement('script');
			
				for( var i=0; i < x_ad.length; i++) {  
					if(x_ad[i].src !== "") {
						srcobj.src=x_ad[i].src;
						if(is_IE) {
							eval(srcobj.src);
						}
					}
					if(x_ad[i].text !== "") {
						var txtobj=document.createElement('script');
						txtobj.text=x_ad[i].text;
						test+=txtobj.text;
						if(is_IE) {
							eval(txtobj.text);
						}
					}
				}
					
				if(!is_IE) {
					var txtobj2=document.createElement('script');
					txtobj2.text=test;
					document.getElementById('footerad').innerHTML=null;
					document.getElementById('footerad').appendChild(srcobj);
					document.getElementById('footerad').appendChild(txtobj2);
				}
  
				set_ad=false;
			}
		}
		if (document.getElementById("cp-ads")) {
			document.getElementById("cp-ad-" + Math.floor(Math.random() * 6)).style.display = "block";
		}
    },
    init:function() {
	    cod_arr=opt.gc('cod','div','',document);
	    docHg=w.innerHeight||d.documentElement.offsetHeight;
	    opt.doCod();
	    opt.ae(window,'scroll',opt.doCod);
    },
    res:function(){
        docHg=w.innerHeight||d.documentElement.offsetHeight;
        opt.doCod();
    }
};
opt.ae(window,'resize',opt.res);
opt.ae(window,'load',opt.init);

function countCartridges() {
   var cartCount = 0;
   end = false;
   do {
      if(document.getElementById('cart'+cartCount)) {
         cartCount++;
      } else {
         end = true;
      }
   } 
   while (end === false);
   arrLen = cartCount;
}

function showCartridges(startId) {
	if(arrLen === 0) {
		countCartridges(); 
	}
	var i,j;
	for (i=0,j=startId; i < modSpan; i++,j++) {
		var strCart = j%arrLen;
		document.getElementById('cartridge'+i).innerHTML = document.getElementById('cart'+strCart).innerHTML;
	}
}

function isModFetched(modId) {
	if(document.getElementById('cart'+modId).innerHTML.length>0) {
		return true;
	} 
	else {
		return false;
	}
}

function nextCartridge() {
	if(arrLen === 0) {
		countCartridges(); 
	}
	currId = currId + 1;
	if ( !isModFetched( (currId+modSpan)%arrLen ) ) {
		fetchModule((currId+modSpan)%arrLen);
	}
	showCartridges(currId);
}

function prevCartridge() {
	if(arrLen === 0) {
		countCartridges(); 
	}  
	if(currId !== 0) {
		currId = currId - 1;
	} 
	else {
      currId=arrLen-1;
	}
	if (!isModFetched( (currId+modSpan)%arrLen ) ) {
		fetchModule((currId+modSpan)%arrLen);
	}
	showCartridges(currId);
}
// Crosspromo End
//]]>
/*
 * jQuery JavaScript Library v1.3.2
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
 * Revision: 6246
 */
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
/*
 * Sizzle CSS Selector Engine - v0.9.3
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
/**
 * @author PrashantK07
 */
jQuery.noConflict();

 /* name : authLinkHandler
	file : jquery.authlinkhandler.js
	author : Ali Hasan
	(c) Copyright 2009 AOL LLC
	$LastChangedDate: 2009-10-27 23:39:15 -0400 (Tue, 27 Oct 2009) $
	$Rev: 52597 $
 */
(function(a){a.extend({authLinkHandler:function(){var b={init:function(c){a(document).bind("click.jSignIn",b.signin);a(document).bind("click.jSignOut",b.signout);return b},signin:function(f){var c=a(f.target),d;if(c.hasClass("jSignIn")){f.preventDefault();d=c.attr("href")+"?siteState=OrigUrl="+encodeURIComponent(window.location.href);if(c.hasClass("jSignInPrompt")){if(confirm("Please signin to continue.\nWould you like to signin now?")){window.location=d}}else{window.location=d}}},signout:function(f){var c=a(f.target),d;if(c.hasClass("jSignOut")){f.preventDefault();d=c.attr("href")+"?sitedomain=channel.aol.com&siteState=origURL="+encodeURIComponent(window.location.href);window.location=d}}};return b.init()}});a.authLinkHandler()})(jQuery);
/*	name : globalSearchBox
	file : jquery.globalsearchbox-d.js
	author : Ali Hasan
	(c) Copyright 2009 AOL LLC
	$LastChangedDate: 2009-11-19 18:38:27 -0500 (Thu, 19 Nov 2009) $
	$Rev: 54164 $
*/
(function(a){a.fn.globalSearchBox=function(d){var c={apiUrl:"http://autocomplete.search.aol.com/autocomplete/get",apiIt:"ops-test",apiOutput:"json",apiCount:8,apiQueryParam:"q",apiDictionary:"",ui_form:"#GH_search_form",ui_input:"#GH_search_field",ui_submit:"#GH_search_button",ui_output:"#GH_search_results",initSmartSearch:true,searchText:"",preserveGhostText:false,initFocus:false,fn:{}},e={},h=this,g={},f={ghostText:"",query:"",results:[],highlight:-1,$highlight:null,timer:null},b={init:function(i){g.$c=a(i);g.$input=a(e.ui_input);g.$output=a(e.ui_output);g.form=a(e.ui_form)[0];g.submit=a(e.ui_submit)[0];f.ghostText=g.$input.attr("defaultValue");g.$input.attr("autocomplete","off").bind("focus.GH",function(j){b.processInputFocus(j)}).bind("blur.GH",function(j){b.processInputBlur(j)});a(g.form).bind("submit.GH",function(j){b.selectSuggestion(j)});if(e.initSmartSearch){e.apiUrl=e.apiUrl+"?it="+e.apiIt+"&count="+e.apiCount+"&output="+e.apiOutput;if(e.apiDictionary!==""){e.apiUrl=e.apiUrl+"&dict="+e.apiDictionary}g.$input.bind("keyup.GH",function(j){b.processKeyPress(j)});g.$output.bind("mouseover.GH",function(j){b.moveHighlightMouse(j)}).bind("mouseover.GH",function(j){b.suspendBlurDetection(j)}).bind("mouseleave.GH",function(j){b.resumeBlurDetection(j)}).bind("click.GH",function(j){b.selectSuggestion(j)})}if(e.initFocus){g.$input.focus()}if(e.preserveGhostText){g.$label=a("<label />").attr("id","GH_search_label").text(f.ghostText).appendTo(g.form);g.$label.bind("click.GH_SL",function(j){b.preserveGhostText(true)});g.$input.bind("keyup.GH_SL",function(j){b.preserveGhostText(j)}).bind("click.GH_SL",function(j){b.preserveGhostText(j)}).bind("blur.GH_SL",function(j){setTimeout(function(){b.preserveGhostText(j)},250)})}if(e.searchText!==""){g.$input.val(e.searchText)}},getVars:function(){return{options:e,ui:g,local:f}},processInputFocus:function(i){g.$input.addClass("GH_search_active").val((g.$input.val()===f.ghostText)?"":g.$input.val())},processInputBlur:function(i){g.$input.removeClass("GH_search_active").val((g.$input.val()==="")?f.ghostText:g.$input.val());b.displaySuggestions()},preserveGhostText:function(i){if(typeof i==="boolean"&&i){g.$input.focus()}g.$input.unbind("keyup.GH_SL").unbind("click.GH_SL").unbind("blur.GH_SL");g.$label.remove()},processKeyPress:function(l){var j=l.keyCode;if(j===38){b.moveHighlightKey(-1)}else{if(j===40){b.moveHighlightKey(1)}else{var i=l.target,k=a.trim(i.value);if(k!==""){if(f.timer!==null){clearTimeout(f.timer)}f.timer=setTimeout(function(){b.getSuggestions(k)},200)}else{b.displaySuggestions()}}}},moveHighlightKey:function(j){if(f.$highlight!==null){f.$highlight.removeClass("GH_highlight")}f.highlight=f.highlight+j;if(f.highlight>=f.results.length||f.highlight===-1){f.highlight=-1;g.$input.val(f.query)}else{if(f.highlight<-1){f.highlight=f.results.length-1}}if(f.highlight>-1){f.$highlight=a(f.results[f.highlight]);f.$highlight.addClass("GH_highlight");g.$input.val(f.$highlight.text())}},moveHighlightMouse:function(j){var i=j.target;if(i.nodeName==="B"){i=i.parentNode}if(f.$highlight!==null){f.$highlight.removeClass("GH_highlight")}f.highlight=f.results.index(i);f.$highlight=a(i).addClass("GH_highlight")},selectSuggestion:function(j){j.preventDefault();if(j!==undefined&&j.type==="click"){var i=j.target;if(i.nodeName==="B"){i=i.parentNode}g.$input.val(a(i).text())}g.$input.val(a.trim(g.$input.val()));if(g.$input.val()!==""&&g.$input.val()!==f.ghostText){g.form.submit()}},getSuggestions:function(j){var i=e.apiUrl+"&"+e.apiQueryParam+"="+j;a.ajax({dataType:"jsonp",url:i,jsonp:"cb",success:function(k){b.displaySuggestions(k)},error:function(){b.displaySuggestions()}})},suspendBlurDetection:function(){g.$input.unbind("blur.GH")},resumeBlurDetection:function(){g.$input.bind("blur.GH",function(i){b.processInputBlur(i)})},displaySuggestions:function(p){f.highlight=-1;f.$highlight=null;if(p!==undefined&&p[1].length>0){f.query=p[0];var o=p[1],j=a("<ul />"),m,k=o.length,n=new RegExp(f.query,"i"),q="<b>"+f.query+"</b>";for(m=0;m<k;m++){a("<li />").html(o[m].replace(n,q)).appendTo(j)}f.results=j.find("li");g.$output.empty().append(j).fadeIn("fast")}else{f.query="";f.results=[];g.$output.fadeOut("fast").empty()}}};a.extend(true,e,c,d);a.extend(true,b,e.fn);b.init(h);return h}})(jQuery);
/*
	name : globalHeader
	file : jquery.globalheader.js
	author : David Artz
	(c) Copyright 2009 AOL LLC
	$LastChangedDate: 2010-01-15 12:08:49 -0500 (Fri, 15 Jan 2010) $
	$Rev: 55691 $
*/
(function(a){a.fn.globalHeader=function(d){var c={activeTab:null,moreLinks:[],morePromoCount:2,moreText:"You might also like:",moreAnd:"and",moreMore:"More",moreTextHeadline:"More Sites You Might Like",uiHat:"#GH_hat",uiHatLinks:"#GH_hat_links",uiHatTools:"#GH_hat_tools",uiNavLi:"li.GH_nav_LI",uiNavADd:".GH_nav_dd_A",auth:{doAuth:false,authenticated:false,authState:null,unauthState:null},search:{uiSearch:"#GH_search",params:{}},fn:{}},e={},h=this,g={},f={activeTab:null,moreLinksBuilt:false},b={init:function(i){g.$d=a(document);g.$c=a(i);g.hat=a(e.uiHat)[0];g.hatLinks=a(e.uiHatLinks)[0];g.$hatTools=a(e.uiHatTools);g.$search=a(e.search.uiSearch);g.$searchInput=g.$search.find("input:first");g.$searchSubmit=g.$search.find("input:last");g.$navLi=g.$c.find(e.uiNavLi);g.$navADd=g.$c.find(e.uiNavADd);b.setActiveTab(null,e.activeTab);if(e.auth.doAuth){b.buildAuth()}b.buildMoreLinks();b.buildDropDowns();g.$c.bind("setActiveTab",function(k,j){b.setActiveTab(k,j)});g.$c.bind("setAuthState",function(k,j){b.buildAuth(k,j)});if(e.search.params.initFocus!==undefined&&e.search.params.initFocus){g.$search.globalSearchBox(e.search.params)}else{g.$searchInput.bind("focus.GH",function(j){b.buildSearch(j)}).attr("autocomplete","off");g.$searchSubmit.bind("mouseover.GH",function(j){b.buildSearch(j)});if(e.search.params.searchText!==undefined&&e.search.params.searchText!==""){g.$searchInput.val(e.search.params.searchText)}}},getVars:function(){return{options:e,ui:g,local:f}},buildSearch:function(i){g.$searchInput.unbind("focus.GH");g.$searchSubmit.unbind("mouseover.GH");if(i.target===g.$searchInput[0]){g.$searchInput.addClass("GH_search_active").attr("value","")}g.$search.globalSearchBox(e.search.params)},buildAuth:function(j,i){if(i!==undefined){a.extend(true,e.auth,i)}g.$hatTools.empty().append((e.auth.authenticated)?e.auth.authState:e.auth.unauthState)},buildMoreLinks:function(){var o=e.moreLinks,m=0,j=o.length;if(j>=e.morePromoCount){var n,k=a("<li />").addClass("GH_hat_LI").append(n=a("<ul />").attr("id","GH_hat_more").addClass("GH_hat_UL").append(a("<li />").addClass("GH_hat_LI").text(e.moreText+"\xa0 ")));for(;m<e.morePromoCount;m++){n.append(a("<li />").addClass("GH_hat_LI").append(a("<a />").attr({href:o[m][1],target:(o[m][2]!==undefined)?o[m][2]:"_self"}).addClass("GH_hat_A GH_hat_more_A").text(o[m][0])).append((m<e.morePromoCount-1)?",\xa0":""))}if(j>e.morePromoCount){n.append(g.$hatLIMore=a("<li />").addClass("GH_hat_LI GH_hat_LI_more").append("\xa0"+e.moreAnd+"\xa0").append(g.$hatMoreLink=a("<a />").attr({id:"GH_hat_more_link",href:"#"}).addClass("GH_hat_A GH_hat_more_A").text(e.moreMore).bind("mouseover.GH",function(i){b.showMoreLinks(i)})))}k.appendTo(g.hatLinks)}},showMoreLinks:function(p){p.preventDefault();if(f.moreLinksBuilt===false){var n=e.moreLinks.slice(e.morePromoCount),o=0,m=n.length,j=Math.ceil(m/3),k=Math.ceil(m/3*2),s,r,q,t;g.$hatMoreList=a("<div />").attr("id","GH_more_list").append(a("<b />").attr("id","GH_more_list_lab").text(e.moreTextHeadline)).append(s=a("<ul />").addClass("GH_more_list_UL")).append(r=a("<ul />").addClass("GH_more_list_UL")).append(q=a("<ul />").addClass("GH_more_list_UL"));for(;o<m;o++){t=a("<li />").append(a("<a />").attr({href:n[o][1],target:(n[o][2]!==undefined)?n[o][2]:"_self"}).text(n[o][0]));if(o<j){t.appendTo(s)}else{if(o<k){t.appendTo(r)}else{t.appendTo(q)}}}g.$hatMoreList.css("left",g.$hatLIMore.offset().left-g.$c.offset().left+14).appendTo(g.hat);f.moreLinksBuilt=true}if(g.$hatMoreList.css("display")==="none"){g.$d.bind("mousemove.GHTEMP",function(i){b.kill(i)});g.$hatMoreList.fadeIn("fast")}},kill:function(j){var i=a(j.target);if(i.closest("#GH_hat_more_link").length===0&&i.closest("#GH_more_list").length===0){g.$d.unbind("mousemove.GHTEMP");g.$hatMoreList.fadeOut("fast")}},setActiveTab:function(j,i){if(i!==undefined&&i!==null){if(f.activeTab!==null){f.activeTab.removeAttr("id");if(f.activeTab.hasClass("GH_nav_list")){a("#GH_nav_act_B").removeAttr("id")}}f.activeTab=g.$navLi.eq(i).attr("id","GH_nav_act");f.activeTab.children().eq(0).css("clear","both");if(f.activeTab.hasClass("GH_nav_list")){f.activeTab.children().eq(0).wrapInner('<b id="GH_nav_act_B"></b>')}}},buildDropDowns:function(){g.$navLi.each(function(){var i=a(this);if(i.hasClass("GH_nav_list")){i.mouseover(function(){if(i.showtimer){clearInterval(i.showtimer);i.showtimer=null}i.addClass("GH_nav_list_open").find("ul").fadeIn("fast")}).mouseout(function(){i.showtimer=setTimeout(function(){if(i.showtimer){clearInterval(i.showtimer);i.showtimer=null}i.removeClass("GH_nav_list_open").find("ul").fadeOut("fast")},250)})}})}};a.extend(true,e,c,d);a.extend(true,b,e.fn);b.init(h);return h}})(jQuery);(function(a){a.fn.globalHeader=function(d){var c={activeTab:null,moreLinks:[],morePromoCount:2,moreText:"You might also like:",moreAnd:"and",moreMore:"More",moreTextHeadline:"More Sites You Might Like",uiHat:"#GH_hat",uiHatLinks:"#GH_hat_links",uiHatTools:"#GH_hat_tools",uiNavLi:"li.GH_nav_LI",uiNavADd:".GH_nav_dd_A",auth:{doAuth:false,authenticated:false,authState:null,unauthState:null},search:{uiSearch:"#GH_search",params:{}},fn:{}},e={},h=this,g={},f={activeTab:null,moreLinksBuilt:false},b={init:function(i){g.$d=a(document);g.$c=a(i);g.hat=a(e.uiHat)[0];g.hatLinks=a(e.uiHatLinks)[0];g.$hatTools=a(e.uiHatTools);g.$search=a(e.search.uiSearch);g.$searchInput=g.$search.find("input:first");g.$searchSubmit=g.$search.find("input:last");g.$navLi=g.$c.find(e.uiNavLi);g.$navADd=g.$c.find(e.uiNavADd);b.setActiveTab(null,e.activeTab);if(e.auth.doAuth){b.buildAuth()}b.buildMoreLinks();b.buildDropDowns();g.$c.bind("setActiveTab",function(k,j){b.setActiveTab(k,j)});g.$c.bind("setAuthState",function(k,j){b.buildAuth(k,j)});if(e.search.params.initFocus!==undefined&&e.search.params.initFocus){g.$search.globalSearchBox(e.search.params)}else{g.$searchInput.bind("focus.GH",function(j){b.buildSearch(j)}).attr("autocomplete","off");g.$searchSubmit.bind("mouseover.GH",function(j){b.buildSearch(j)});if(e.search.params.searchText!==undefined&&e.search.params.searchText!==""){g.$searchInput.val(e.search.params.searchText)}}},getVars:function(){return{options:e,ui:g,local:f}},buildSearch:function(i){g.$searchInput.unbind("focus.GH");g.$searchSubmit.unbind("mouseover.GH");if(i.target===g.$searchInput[0]){g.$searchInput.addClass("GH_search_active").attr("value","")}g.$search.globalSearchBox(e.search.params)},buildAuth:function(j,i){if(i!==undefined){a.extend(true,e.auth,i)}g.$hatTools.empty().append((e.auth.authenticated)?e.auth.authState:e.auth.unauthState)},buildMoreLinks:function(){var p=e.moreLinks,n=0,j=p.length;if(j>=e.morePromoCount){var k=a("#GH_hat_more"),o,m;if(!k.length){m=a("<li />").addClass("GH_hat_LI").append(o=a("<ul />").attr("id","GH_hat_more").addClass("GH_hat_UL").append(a("<li />").addClass("GH_hat_LI").text(e.moreText+"\xa0 ")));for(;n<e.morePromoCount;n++){o.append(a("<li />").addClass("GH_hat_LI").append(a("<a />").attr({href:p[n][1],target:(p[n][2]!==undefined)?p[n][2]:"_self"}).addClass("GH_hat_A GH_hat_more_A").text(p[n][0])).append((n<e.morePromoCount-1)?",\xa0":""))}if(j>e.morePromoCount){o.append(g.$hatLIMore=a("<li />").addClass("GH_hat_LI GH_hat_LI_more").append("\xa0"+e.moreAnd+"\xa0").append(g.$hatMoreLink=a("<a />").attr({id:"GH_hat_more_link",href:"#"}).addClass("GH_hat_A GH_hat_more_A").text(e.moreMore)))}m.appendTo(g.hatLinks)}else{g.$hatMoreLink=a("#GH_hat_more_link");g.$hatLIMore=g.$hatMoreLink.parent()}g.$hatMoreLink.bind("mouseover.GH",function(i){b.showMoreLinks(i)})}},showMoreLinks:function(p){p.preventDefault();if(f.moreLinksBuilt===false){var n=e.moreLinks.slice(e.morePromoCount),o=0,m=n.length,j=Math.ceil(m/3),k=Math.ceil(m/3*2),s,r,q,t;g.$hatMoreList=a("<div />").attr("id","GH_more_list").append(a("<b />").attr("id","GH_more_list_lab").text(e.moreTextHeadline)).append(s=a("<ul />").addClass("GH_more_list_UL")).append(r=a("<ul />").addClass("GH_more_list_UL")).append(q=a("<ul />").addClass("GH_more_list_UL"));for(;o<m;o++){t=a("<li />").append(a("<a />").attr({href:n[o][1],target:(n[o][2]!==undefined)?n[o][2]:"_self"}).text(n[o][0]));if(o<j){t.appendTo(s)}else{if(o<k){t.appendTo(r)}else{t.appendTo(q)}}}g.$hatMoreList.css("left",g.$hatLIMore.offset().left-g.$c.offset().left+14).appendTo(g.hat);f.moreLinksBuilt=true}if(g.$hatMoreList.css("display")==="none"){g.$d.bind("mousemove.GHTEMP",function(i){b.kill(i)});g.$hatMoreList.fadeIn("fast")}},kill:function(j){var i=a(j.target);if(i.closest("#GH_hat_more_link").length===0&&i.closest("#GH_more_list").length===0){g.$d.unbind("mousemove.GHTEMP");g.$hatMoreList.fadeOut("fast")}},setActiveTab:function(j,i){if(i!==undefined&&i!==null){if(f.activeTab!==null){f.activeTab.removeAttr("id");if(f.activeTab.hasClass("GH_nav_list")){a("#GH_nav_act_B").removeAttr("id")}}f.activeTab=g.$navLi.eq(i).attr("id","GH_nav_act");f.activeTab.children().eq(0).css("clear","both");if(f.activeTab.hasClass("GH_nav_list")){f.activeTab.children().eq(0).wrapInner('<b id="GH_nav_act_B"></b>')}}},buildDropDowns:function(){g.$navLi.each(function(){var i=a(this);if(i.hasClass("GH_nav_list")){i.mouseover(function(){if(i.showtimer){clearInterval(i.showtimer);i.showtimer=null}i.addClass("GH_nav_list_open").find("ul").fadeIn("fast")}).mouseout(function(){i.showtimer=setTimeout(function(){if(i.showtimer){clearInterval(i.showtimer);i.showtimer=null}i.removeClass("GH_nav_list_open").find("ul").fadeOut("fast")},250)})}})}};a.extend(true,e,c,d);a.extend(true,b,e.fn);b.init(h);return h}})(jQuery);
