/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
http://yui.yahooapis.com/2.3.0/build/yahoo-dom-event/yahoo-dom-event.js
version: 2.3.0
*/
if(typeof YAHOO=="undefined"){var YAHOO={};}
YAHOO.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i<a.length;i=i+1){d=a[i].split(".");o=YAHOO;for(j=(d[0]=="YAHOO")?1:0;j<d.length;j=j+1){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}
return o;};YAHOO.log=function(msg,cat,src){var l=YAHOO.widget.Logger;if(l&&l.log){return l.log(msg,cat,src);}else{return false;}};YAHOO.register=function(name,mainClass,data){var mods=YAHOO.env.modules;if(!mods[name]){mods[name]={versions:[],builds:[]};}
var m=mods[name],v=data.version,b=data.build,ls=YAHOO.env.listeners;m.name=name;m.version=v;m.build=b;m.versions.push(v);m.builds.push(b);m.mainClass=mainClass;for(var i=0;i<ls.length;i=i+1){ls[i](m);}
if(mainClass){mainClass.VERSION=v;mainClass.BUILD=b;}else{YAHOO.log("mainClass is undefined for module "+name,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(name){return YAHOO.env.modules[name]||null;};YAHOO.env.ua=function(){var o={ie:0,opera:0,gecko:0,webkit:0};var ua=navigator.userAgent,m;if((/KHTML/).test(ua)){o.webkit=1;}
m=ua.match(/AppleWebKit\/([^\s]*)/);if(m&&m[1]){o.webkit=parseFloat(m[1]);}
if(!o.webkit){m=ua.match(/Opera[\s\/]([^\s]*)/);if(m&&m[1]){o.opera=parseFloat(m[1]);}else{m=ua.match(/MSIE\s([^;]*)/);if(m&&m[1]){o.ie=parseFloat(m[1]);}else{m=ua.match(/Gecko\/([^\s]*)/);if(m){o.gecko=1;m=ua.match(/rv:([^\s\)]*)/);if(m&&m[1]){o.gecko=parseFloat(m[1]);}}}}}
return o;}();(function(){YAHOO.namespace("util","widget","example");if(typeof YAHOO_config!="undefined"){var l=YAHOO_config.listener,ls=YAHOO.env.listeners,unique=true,i;if(l){for(i=0;i<ls.length;i=i+1){if(ls[i]==l){unique=false;break;}}
if(unique){ls.push(l);}}}})();YAHOO.lang={isArray:function(o){if(o){var l=YAHOO.lang;return l.isNumber(o.length)&&l.isFunction(o.splice)&&!l.hasOwnProperty(o.length);}
return false;},isBoolean:function(o){return typeof o==='boolean';},isFunction:function(o){return typeof o==='function';},isNull:function(o){return o===null;},isNumber:function(o){return typeof o==='number'&&isFinite(o);},isObject:function(o){return(o&&(typeof o==='object'||YAHOO.lang.isFunction(o)))||false;},isString:function(o){return typeof o==='string';},isUndefined:function(o){return typeof o==='undefined';},hasOwnProperty:function(o,prop){if(Object.prototype.hasOwnProperty){return o.hasOwnProperty(prop);}
return!YAHOO.lang.isUndefined(o[prop])&&o.constructor.prototype[prop]!==o[prop];},_IEEnumFix:function(r,s){if(YAHOO.env.ua.ie){var add=["toString","valueOf"];for(i=0;i<add.length;i=i+1){var fname=add[i],f=s[fname];if(YAHOO.lang.isFunction(f)&&f!=Object.prototype[fname]){r[fname]=f;}}}},extend:function(subc,superc,overrides){if(!superc||!subc){throw new Error("YAHOO.lang.extend failed, please check that "+"all dependencies are included.");}
var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;}
if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}
YAHOO.lang._IEEnumFix(subc.prototype,overrides);}},augmentObject:function(r,s){if(!s||!r){throw new Error("Absorb failed, verify dependencies.");}
var a=arguments,i,p,override=a[2];if(override&&override!==true){for(i=2;i<a.length;i=i+1){r[a[i]]=s[a[i]];}}else{for(p in s){if(override||!r[p]){r[p]=s[p];}}
YAHOO.lang._IEEnumFix(r,s);}},augmentProto:function(r,s){if(!s||!r){throw new Error("Augment failed, verify dependencies.");}
var a=[r.prototype,s.prototype];for(var i=2;i<arguments.length;i=i+1){a.push(arguments[i]);}
YAHOO.lang.augmentObject.apply(this,a);},dump:function(o,d){var l=YAHOO.lang,i,len,s=[],OBJ="{...}",FUN="f(){...}",COMMA=', ',ARROW=' => ';if(!l.isObject(o)||o instanceof Date||("nodeType"in o&&"tagName"in o)){return o;}else if(l.isFunction(o)){return FUN;}
d=(l.isNumber(d))?d:3;if(l.isArray(o)){s.push("[");for(i=0,len=o.length;i<len;i=i+1){if(l.isObject(o[i])){s.push((d>0)?l.dump(o[i],d-1):OBJ);}else{s.push(o[i]);}
s.push(COMMA);}
if(s.length>1){s.pop();}
s.push("]");}else{s.push("{");for(i in o){if(l.hasOwnProperty(o,i)){s.push(i+ARROW);if(l.isObject(o[i])){s.push((d>0)?l.dump(o[i],d-1):OBJ);}else{s.push(o[i]);}
s.push(COMMA);}}
if(s.length>1){s.pop();}
s.push("}");}
return s.join("");},substitute:function(s,o,f){var i,j,k,key,v,meta,l=YAHOO.lang,saved=[],token,DUMP='dump',SPACE=' ',LBRACE='{',RBRACE='}';for(;;){i=s.lastIndexOf(LBRACE);if(i<0){break;}
j=s.indexOf(RBRACE,i);if(i+1>=j){break;}
token=s.substring(i+1,j);key=token;meta=null;k=key.indexOf(SPACE);if(k>-1){meta=key.substring(k+1);key=key.substring(0,k);}
v=o[key];if(f){v=f(key,v,meta);}
if(l.isObject(v)){if(l.isArray(v)){v=l.dump(v,parseInt(meta,10));}else{meta=meta||"";var dump=meta.indexOf(DUMP);if(dump>-1){meta=meta.substring(4);}
if(v.toString===Object.prototype.toString||dump>-1){v=l.dump(v,parseInt(meta,10));}else{v=v.toString();}}}else if(!l.isString(v)&&!l.isNumber(v)){v="~-"+saved.length+"-~";saved[saved.length]=token;}
s=s.substring(0,i)+v+s.substring(j+1);}
for(i=saved.length-1;i>=0;i=i-1){s=s.replace(new RegExp("~-"+i+"-~"),"{"+saved[i]+"}","g");}
return s;},trim:function(s){try{return s.replace(/^\s+|\s+$/g,"");}catch(e){return s;}},merge:function(){var o={},a=arguments,i;for(i=0;i<a.length;i=i+1){YAHOO.lang.augmentObject(o,a[i],true);}
return o;},isValue:function(o){var l=YAHOO.lang;return(l.isObject(o)||l.isString(o)||l.isNumber(o)||l.isBoolean(o));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.3.0",build:"442"});
(function(){var Y=YAHOO.util,getStyle,setStyle,id_counter=0,propertyCache={},reClassNameCache={};var isOpera=YAHOO.env.ua.opera,isSafari=YAHOO.env.ua.webkit,isGecko=YAHOO.env.ua.gecko,isIE=YAHOO.env.ua.ie;var patterns={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i};var toCamel=function(property){if(!patterns.HYPHEN.test(property)){return property;}
if(propertyCache[property]){return propertyCache[property];}
var converted=property;while(patterns.HYPHEN.exec(converted)){converted=converted.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}
propertyCache[property]=converted;return converted;};var getClassRegEx=function(className){var re=reClassNameCache[className];if(!re){re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)');reClassNameCache[className]=re;}
return re;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,property){var value=null;if(property=='float'){property='cssFloat';}
var computed=document.defaultView.getComputedStyle(el,'');if(computed){value=computed[toCamel(property)];}
return el.style[property]||value;};}else if(document.documentElement.currentStyle&&isIE){getStyle=function(el,property){switch(toCamel(property)){case'opacity':var val=100;try{val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;}catch(e){try{val=el.filters('alpha').opacity;}catch(e){}}
return val/100;case'float':property='styleFloat';default:var value=el.currentStyle?el.currentStyle[property]:null;return(el.style[property]||value);}};}else{getStyle=function(el,property){return el.style[property];};}
if(isIE){setStyle=function(el,property,val){switch(property){case'opacity':if(YAHOO.lang.isString(el.style.filter)){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}}
break;case'float':property='styleFloat';default:el.style[property]=val;}};}else{setStyle=function(el,property,val){if(property=='float'){property='cssFloat';}
el.style[property]=val;};}
var testElement=function(node,method){return node&&node.nodeType==1&&(!method||method(node));};YAHOO.util.Dom={get:function(el){if(!el||el.tagName||el.item){return el;}
if(YAHOO.lang.isString(el)){return document.getElementById(el);}
if(el.splice){var c=[];for(var i=0,len=el.length;i<len;++i){c[c.length]=Y.Dom.get(el[i]);}
return c;}
return el;},getStyle:function(el,property){property=toCamel(property);var f=function(element){return getStyle(element,property);};return Y.Dom.batch(el,f,Y.Dom,true);},setStyle:function(el,property,val){property=toCamel(property);var f=function(element){setStyle(element,property,val);};Y.Dom.batch(el,f,Y.Dom,true);},getXY:function(el){var f=function(el){if((el.parentNode===null||el.offsetParent===null||this.getStyle(el,'display')=='none')&&el!=document.body){return false;}
var parentNode=null;var pos=[];var box;var doc=el.ownerDocument;if(el.getBoundingClientRect){box=el.getBoundingClientRect();return[box.left+Y.Dom.getDocumentScrollLeft(el.ownerDocument),box.top+Y.Dom.getDocumentScrollTop(el.ownerDocument)];}
else{pos=[el.offsetLeft,el.offsetTop];parentNode=el.offsetParent;var hasAbs=this.getStyle(el,'position')=='absolute';if(parentNode!=el){while(parentNode){pos[0]+=parentNode.offsetLeft;pos[1]+=parentNode.offsetTop;if(isSafari&&!hasAbs&&this.getStyle(parentNode,'position')=='absolute'){hasAbs=true;}
parentNode=parentNode.offsetParent;}}
if(isSafari&&hasAbs){pos[0]-=el.ownerDocument.body.offsetLeft;pos[1]-=el.ownerDocument.body.offsetTop;}}
parentNode=el.parentNode;while(parentNode.tagName&&!patterns.ROOT_TAG.test(parentNode.tagName))
{if(Y.Dom.getStyle(parentNode,'display').search(/^inline|table-row.*$/i)){pos[0]-=parentNode.scrollLeft;pos[1]-=parentNode.scrollTop;}
parentNode=parentNode.parentNode;}
return pos;};return Y.Dom.batch(el,f,Y.Dom,true);},getX:function(el){var f=function(el){return Y.Dom.getXY(el)[0];};return Y.Dom.batch(el,f,Y.Dom,true);},getY:function(el){var f=function(el){return Y.Dom.getXY(el)[1];};return Y.Dom.batch(el,f,Y.Dom,true);},setXY:function(el,pos,noRetry){var f=function(el){var style_pos=this.getStyle(el,'position');if(style_pos=='static'){this.setStyle(el,'position','relative');style_pos='relative';}
var pageXY=this.getXY(el);if(pageXY===false){return false;}
var delta=[parseInt(this.getStyle(el,'left'),10),parseInt(this.getStyle(el,'top'),10)];if(isNaN(delta[0])){delta[0]=(style_pos=='relative')?0:el.offsetLeft;}
if(isNaN(delta[1])){delta[1]=(style_pos=='relative')?0:el.offsetTop;}
if(pos[0]!==null){el.style.left=pos[0]-pageXY[0]+delta[0]+'px';}
if(pos[1]!==null){el.style.top=pos[1]-pageXY[1]+delta[1]+'px';}
if(!noRetry){var newXY=this.getXY(el);if((pos[0]!==null&&newXY[0]!=pos[0])||(pos[1]!==null&&newXY[1]!=pos[1])){this.setXY(el,pos,true);}}};Y.Dom.batch(el,f,Y.Dom,true);},setX:function(el,x){Y.Dom.setXY(el,[x,null]);},setY:function(el,y){Y.Dom.setXY(el,[null,y]);},getRegion:function(el){var f=function(el){if((el.parentNode===null||el.offsetParent===null||this.getStyle(el,'display')=='none')&&el!=document.body){return false;}
var region=Y.Region.getRegion(el);return region;};return Y.Dom.batch(el,f,Y.Dom,true);},getClientWidth:function(){return Y.Dom.getViewportWidth();},getClientHeight:function(){return Y.Dom.getViewportHeight();},getElementsByClassName:function(className,tag,root,apply){tag=tag||'*';root=(root)?Y.Dom.get(root):null||document;if(!root){return[];}
var nodes=[],elements=root.getElementsByTagName(tag),re=getClassRegEx(className);for(var i=0,len=elements.length;i<len;++i){if(re.test(elements[i].className)){nodes[nodes.length]=elements[i];if(apply){apply.call(elements[i],elements[i]);}}}
return nodes;},hasClass:function(el,className){var re=getClassRegEx(className);var f=function(el){return re.test(el.className);};return Y.Dom.batch(el,f,Y.Dom,true);},addClass:function(el,className){var f=function(el){if(this.hasClass(el,className)){return false;}
el.className=YAHOO.lang.trim([el.className,className].join(' '));return true;};return Y.Dom.batch(el,f,Y.Dom,true);},removeClass:function(el,className){var re=getClassRegEx(className);var f=function(el){if(!this.hasClass(el,className)){return false;}
var c=el.className;el.className=c.replace(re,' ');if(this.hasClass(el,className)){this.removeClass(el,className);}
el.className=YAHOO.lang.trim(el.className);return true;};return Y.Dom.batch(el,f,Y.Dom,true);},replaceClass:function(el,oldClassName,newClassName){if(!newClassName||oldClassName===newClassName){return false;}
var re=getClassRegEx(oldClassName);var f=function(el){if(!this.hasClass(el,oldClassName)){this.addClass(el,newClassName);return true;}
el.className=el.className.replace(re,' '+newClassName+' ');if(this.hasClass(el,oldClassName)){this.replaceClass(el,oldClassName,newClassName);}
el.className=YAHOO.lang.trim(el.className);return true;};return Y.Dom.batch(el,f,Y.Dom,true);},generateId:function(el,prefix){prefix=prefix||'yui-gen';var f=function(el){if(el&&el.id){return el.id;}
var id=prefix+id_counter++;if(el){el.id=id;}
return id;};return Y.Dom.batch(el,f,Y.Dom,true)||f.apply(Y.Dom,arguments);},isAncestor:function(haystack,needle){haystack=Y.Dom.get(haystack);if(!haystack||!needle){return false;}
var f=function(node){if(haystack.contains&&node.nodeType&&!isSafari){return haystack.contains(node);}
else if(haystack.compareDocumentPosition&&node.nodeType){return!!(haystack.compareDocumentPosition(node)&16);}else if(node.nodeType){return!!this.getAncestorBy(node,function(el){return el==haystack;});}
return false;};return Y.Dom.batch(needle,f,Y.Dom,true);},inDocument:function(el){var f=function(el){if(isSafari){while(el=el.parentNode){if(el==document.documentElement){return true;}}
return false;}
return this.isAncestor(document.documentElement,el);};return Y.Dom.batch(el,f,Y.Dom,true);},getElementsBy:function(method,tag,root,apply){tag=tag||'*';root=(root)?Y.Dom.get(root):null||document;if(!root){return[];}
var nodes=[],elements=root.getElementsByTagName(tag);for(var i=0,len=elements.length;i<len;++i){if(method(elements[i])){nodes[nodes.length]=elements[i];if(apply){apply(elements[i]);}}}
return nodes;},batch:function(el,method,o,override){el=(el&&el.tagName)?el:Y.Dom.get(el);if(!el||!method){return false;}
var scope=(override)?o:window;if(el.tagName||(!el.item&&!el.slice)){return method.call(scope,el,o);}
var collection=[];for(var i=0,len=el.length;i<len;++i){collection[collection.length]=method.call(scope,el[i],o);}
return collection;},getDocumentHeight:function(){var scrollHeight=(document.compatMode!='CSS1Compat')?document.body.scrollHeight:document.documentElement.scrollHeight;var h=Math.max(scrollHeight,Y.Dom.getViewportHeight());return h;},getDocumentWidth:function(){var scrollWidth=(document.compatMode!='CSS1Compat')?document.body.scrollWidth:document.documentElement.scrollWidth;var w=Math.max(scrollWidth,Y.Dom.getViewportWidth());return w;},getViewportHeight:function(){var height=self.innerHeight;var mode=document.compatMode;if((mode||isIE)&&!isOpera){height=(mode=='CSS1Compat')?document.documentElement.clientHeight:document.body.clientHeight;}
return height;},getViewportWidth:function(){var width=self.innerWidth;var mode=document.compatMode;if(mode||isIE){width=(mode=='CSS1Compat')?document.documentElement.clientWidth:document.body.clientWidth;}
return width;},getAncestorBy:function(node,method){while(node=node.parentNode){if(testElement(node,method)){return node;}}
return null;},getAncestorByClassName:function(node,className){node=Y.Dom.get(node);if(!node){return null;}
var method=function(el){return Y.Dom.hasClass(el,className);};return Y.Dom.getAncestorBy(node,method);},getAncestorByTagName:function(node,tagName){node=Y.Dom.get(node);if(!node){return null;}
var method=function(el){return el.tagName&&el.tagName.toUpperCase()==tagName.toUpperCase();};return Y.Dom.getAncestorBy(node,method);},getPreviousSiblingBy:function(node,method){while(node){node=node.previousSibling;if(testElement(node,method)){return node;}}
return null;},getPreviousSibling:function(node){node=Y.Dom.get(node);if(!node){return null;}
return Y.Dom.getPreviousSiblingBy(node);},getNextSiblingBy:function(node,method){while(node){node=node.nextSibling;if(testElement(node,method)){return node;}}
return null;},getNextSibling:function(node){node=Y.Dom.get(node);if(!node){return null;}
return Y.Dom.getNextSiblingBy(node);},getFirstChildBy:function(node,method){var child=(testElement(node.firstChild,method))?node.firstChild:null;return child||Y.Dom.getNextSiblingBy(node.firstChild,method);},getFirstChild:function(node,method){node=Y.Dom.get(node);if(!node){return null;}
return Y.Dom.getFirstChildBy(node);},getLastChildBy:function(node,method){if(!node){return null;}
var child=(testElement(node.lastChild,method))?node.lastChild:null;return child||Y.Dom.getPreviousSiblingBy(node.lastChild,method);},getLastChild:function(node){node=Y.Dom.get(node);return Y.Dom.getLastChildBy(node);},getChildrenBy:function(node,method){var child=Y.Dom.getFirstChildBy(node,method);var children=child?[child]:[];Y.Dom.getNextSiblingBy(child,function(node){if(!method||method(node)){children[children.length]=node;}
return false;});return children;},getChildren:function(node){node=Y.Dom.get(node);if(!node){}
return Y.Dom.getChildrenBy(node);},getDocumentScrollLeft:function(doc){doc=doc||document;return Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft);},getDocumentScrollTop:function(doc){doc=doc||document;return Math.max(doc.documentElement.scrollTop,doc.body.scrollTop);},insertBefore:function(newNode,referenceNode){newNode=Y.Dom.get(newNode);referenceNode=Y.Dom.get(referenceNode);if(!newNode||!referenceNode||!referenceNode.parentNode){return null;}
return referenceNode.parentNode.insertBefore(newNode,referenceNode);},insertAfter:function(newNode,referenceNode){newNode=Y.Dom.get(newNode);referenceNode=Y.Dom.get(referenceNode);if(!newNode||!referenceNode||!referenceNode.parentNode){return null;}
if(referenceNode.nextSibling){return referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling);}else{return referenceNode.parentNode.appendChild(newNode);}}};})();YAHOO.util.Region=function(t,r,b,l){this.top=t;this[1]=t;this.right=r;this.bottom=b;this.left=l;this[0]=l;};YAHOO.util.Region.prototype.contains=function(region){return(region.left>=this.left&&region.right<=this.right&&region.top>=this.top&&region.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new YAHOO.util.Region(t,r,b,l);}else{return null;}};YAHOO.util.Region.prototype.union=function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(YAHOO.lang.isArray(x)){y=x[1];x=x[0];}
this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.3.0",build:"442"});
YAHOO.util.CustomEvent=function(type,oScope,silent,signature){this.type=type;this.scope=oScope||window;this.silent=silent;this.signature=signature||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}
var onsubscribeType="_YUICEOnSubscribe";if(type!==onsubscribeType){this.subscribeEvent=new YAHOO.util.CustomEvent(onsubscribeType,this,true);}};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(fn,obj,override){if(!fn){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}
if(this.subscribeEvent){this.subscribeEvent.fire(fn,obj,override);}
this.subscribers.push(new YAHOO.util.Subscriber(fn,obj,override));},unsubscribe:function(fn,obj){if(!fn){return this.unsubscribeAll();}
var found=false;for(var i=0,len=this.subscribers.length;i<len;++i){var s=this.subscribers[i];if(s&&s.contains(fn,obj)){this._delete(i);found=true;}}
return found;},fire:function(){var len=this.subscribers.length;if(!len&&this.silent){return true;}
var args=[],ret=true,i,rebuild=false;for(i=0;i<arguments.length;++i){args.push(arguments[i]);}
var argslength=args.length;if(!this.silent){}
for(i=0;i<len;++i){var s=this.subscribers[i];if(!s){rebuild=true;}else{if(!this.silent){}
var scope=s.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var param=null;if(args.length>0){param=args[0];}
ret=s.fn.call(scope,param,s.obj);}else{ret=s.fn.call(scope,this.type,args,s.obj);}
if(false===ret){if(!this.silent){}
return false;}}}
if(rebuild){var newlist=[],subs=this.subscribers;for(i=0,len=subs.length;i<len;++i){s=subs[i];newlist.push(subs[i]);}
this.subscribers=newlist;}
return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i<len;++i){this._delete(len-1-i);}
this.subscribers=[];return i;},_delete:function(index){var s=this.subscribers[index];if(s){delete s.fn;delete s.obj;}
this.subscribers[index]=null;},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(fn,obj,override){this.fn=fn;this.obj=YAHOO.lang.isUndefined(obj)?null:obj;this.override=override;};YAHOO.util.Subscriber.prototype.getScope=function(defaultScope){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}
return defaultScope;};YAHOO.util.Subscriber.prototype.contains=function(fn,obj){if(obj){return(this.fn==fn&&this.obj==obj);}else{return(this.fn==fn);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var loadComplete=false;var DOMReady=false;var listeners=[];var unloadListeners=[];var legacyEvents=[];var legacyHandlers=[];var retryCount=0;var onAvailStack=[];var legacyMap=[];var counter=0;var webkitKeymap={63232:38,63233:40,63234:37,63235:39};return{POLL_RETRYS:4000,POLL_INTERVAL:10,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,startInterval:function(){if(!this._interval){var self=this;var callback=function(){self._tryPreloadAttach();};this._interval=setInterval(callback,this.POLL_INTERVAL);}},onAvailable:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:false});retryCount=this.POLL_RETRYS;this.startInterval();},onDOMReady:function(p_fn,p_obj,p_override){if(DOMReady){setTimeout(function(){var s=window;if(p_override){if(p_override===true){s=p_obj;}else{s=p_override;}}
p_fn.call(s,"DOMReady",[],p_obj);},0);}else{this.DOMReadyEvent.subscribe(p_fn,p_obj,p_override);}},onContentReady:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:true});retryCount=this.POLL_RETRYS;this.startInterval();},addListener:function(el,sType,fn,obj,override){if(!fn||!fn.call){return false;}
if(this._isValidCollection(el)){var ok=true;for(var i=0,len=el.length;i<len;++i){ok=this.on(el[i],sType,fn,obj,override)&&ok;}
return ok;}else if(YAHOO.lang.isString(el)){var oEl=this.getEl(el);if(oEl){el=oEl;}else{this.onAvailable(el,function(){YAHOO.util.Event.on(el,sType,fn,obj,override);});return true;}}
if(!el){return false;}
if("unload"==sType&&obj!==this){unloadListeners[unloadListeners.length]=[el,sType,fn,obj,override];return true;}
var scope=el;if(override){if(override===true){scope=obj;}else{scope=override;}}
var wrappedFn=function(e){return fn.call(scope,YAHOO.util.Event.getEvent(e),obj);};var li=[el,sType,fn,wrappedFn,scope];var index=listeners.length;listeners[index]=li;if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);if(legacyIndex==-1||el!=legacyEvents[legacyIndex][0]){legacyIndex=legacyEvents.length;legacyMap[el.id+sType]=legacyIndex;legacyEvents[legacyIndex]=[el,sType,el["on"+sType]];legacyHandlers[legacyIndex]=[];el["on"+sType]=function(e){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(e),legacyIndex);};}
legacyHandlers[legacyIndex].push(li);}else{try{this._simpleAdd(el,sType,wrappedFn,false);}catch(ex){this.lastError=ex;this.removeListener(el,sType,fn);return false;}}
return true;},fireLegacyEvent:function(e,legacyIndex){var ok=true,le,lh,li,scope,ret;lh=legacyHandlers[legacyIndex];for(var i=0,len=lh.length;i<len;++i){li=lh[i];if(li&&li[this.WFN]){scope=li[this.ADJ_SCOPE];ret=li[this.WFN].call(scope,e);ok=(ok&&ret);}}
le=legacyEvents[legacyIndex];if(le&&le[2]){le[2](e);}
return ok;},getLegacyIndex:function(el,sType){var key=this.generateId(el)+sType;if(typeof legacyMap[key]=="undefined"){return-1;}else{return legacyMap[key];}},useLegacyEvent:function(el,sType){if(this.webkit&&("click"==sType||"dblclick"==sType)){var v=parseInt(this.webkit,10);if(!isNaN(v)&&v<418){return true;}}
return false;},removeListener:function(el,sType,fn){var i,len;if(typeof el=="string"){el=this.getEl(el);}else if(this._isValidCollection(el)){var ok=true;for(i=0,len=el.length;i<len;++i){ok=(this.removeListener(el[i],sType,fn)&&ok);}
return ok;}
if(!fn||!fn.call){return this.purgeElement(el,false,sType);}
if("unload"==sType){for(i=0,len=unloadListeners.length;i<len;i++){var li=unloadListeners[i];if(li&&li[0]==el&&li[1]==sType&&li[2]==fn){unloadListeners[i]=null;return true;}}
return false;}
var cacheItem=null;var index=arguments[3];if("undefined"==typeof index){index=this._getCacheIndex(el,sType,fn);}
if(index>=0){cacheItem=listeners[index];}
if(!el||!cacheItem){return false;}
if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);var llist=legacyHandlers[legacyIndex];if(llist){for(i=0,len=llist.length;i<len;++i){li=llist[i];if(li&&li[this.EL]==el&&li[this.TYPE]==sType&&li[this.FN]==fn){llist[i]=null;break;}}}}else{try{this._simpleRemove(el,sType,cacheItem[this.WFN],false);}catch(ex){this.lastError=ex;return false;}}
delete listeners[index][this.WFN];delete listeners[index][this.FN];listeners[index]=null;return true;},getTarget:function(ev,resolveTextNode){var t=ev.target||ev.srcElement;return this.resolveTextNode(t);},resolveTextNode:function(node){if(node&&3==node.nodeType){return node.parentNode;}else{return node;}},getPageX:function(ev){var x=ev.pageX;if(!x&&0!==x){x=ev.clientX||0;if(this.isIE){x+=this._getScrollLeft();}}
return x;},getPageY:function(ev){var y=ev.pageY;if(!y&&0!==y){y=ev.clientY||0;if(this.isIE){y+=this._getScrollTop();}}
return y;},getXY:function(ev){return[this.getPageX(ev),this.getPageY(ev)];},getRelatedTarget:function(ev){var t=ev.relatedTarget;if(!t){if(ev.type=="mouseout"){t=ev.toElement;}else if(ev.type=="mouseover"){t=ev.fromElement;}}
return this.resolveTextNode(t);},getTime:function(ev){if(!ev.time){var t=new Date().getTime();try{ev.time=t;}catch(ex){this.lastError=ex;return t;}}
return ev.time;},stopEvent:function(ev){this.stopPropagation(ev);this.preventDefault(ev);},stopPropagation:function(ev){if(ev.stopPropagation){ev.stopPropagation();}else{ev.cancelBubble=true;}},preventDefault:function(ev){if(ev.preventDefault){ev.preventDefault();}else{ev.returnValue=false;}},getEvent:function(e){var ev=e||window.event;if(!ev){var c=this.getEvent.caller;while(c){ev=c.arguments[0];if(ev&&Event==ev.constructor){break;}
c=c.caller;}}
return ev;},getCharCode:function(ev){var code=ev.keyCode||ev.charCode||0;if(YAHOO.env.ua.webkit&&(code in webkitKeymap)){code=webkitKeymap[code];}
return code;},_getCacheIndex:function(el,sType,fn){for(var i=0,len=listeners.length;i<len;++i){var li=listeners[i];if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==sType){return i;}}
return-1;},generateId:function(el){var id=el.id;if(!id){id="yuievtautoid-"+counter;++counter;el.id=id;}
return id;},_isValidCollection:function(o){try{return(o&&o.length&&typeof o!="string"&&!o.tagName&&!o.alert&&typeof o[0]!="undefined");}catch(e){return false;}},elCache:{},getEl:function(id){return document.getElementById(id);},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(e){if(!loadComplete){loadComplete=true;var EU=YAHOO.util.Event;EU._ready();EU._tryPreloadAttach();}},_ready:function(e){if(!DOMReady){DOMReady=true;var EU=YAHOO.util.Event;EU.DOMReadyEvent.fire();EU._simpleRemove(document,"DOMContentLoaded",EU._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}
if(this.isIE){if(!DOMReady){this.startInterval();return false;}}
this.locked=true;var tryAgain=!loadComplete;if(!tryAgain){tryAgain=(retryCount>0);}
var notAvail=[];var executeItem=function(el,item){var scope=el;if(item.override){if(item.override===true){scope=item.obj;}else{scope=item.override;}}
item.fn.call(scope,item.obj);};var i,len,item,el;for(i=0,len=onAvailStack.length;i<len;++i){item=onAvailStack[i];if(item&&!item.checkReady){el=this.getEl(item.id);if(el){executeItem(el,item);onAvailStack[i]=null;}else{notAvail.push(item);}}}
for(i=0,len=onAvailStack.length;i<len;++i){item=onAvailStack[i];if(item&&item.checkReady){el=this.getEl(item.id);if(el){if(loadComplete||el.nextSibling){executeItem(el,item);onAvailStack[i]=null;}}else{notAvail.push(item);}}}
retryCount=(notAvail.length===0)?0:retryCount-1;if(tryAgain){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}
this.locked=false;return true;},purgeElement:function(el,recurse,sType){var elListeners=this.getListeners(el,sType);if(elListeners){for(var i=0,len=elListeners.length;i<len;++i){var l=elListeners[i];this.removeListener(el,l.type,l.fn,l.index);}}
if(recurse&&el&&el.childNodes){for(i=0,len=el.childNodes.length;i<len;++i){this.purgeElement(el.childNodes[i],recurse,sType);}}},getListeners:function(el,sType){var results=[],searchLists;if(!sType){searchLists=[listeners,unloadListeners];}else if(sType=="unload"){searchLists=[unloadListeners];}else{searchLists=[listeners];}
for(var j=0;j<searchLists.length;++j){var searchList=searchLists[j];if(searchList&&searchList.length>0){for(var i=0,len=searchList.length;i<len;++i){var l=searchList[i];if(l&&l[this.EL]===el&&(!sType||sType===l[this.TYPE])){results.push({type:l[this.TYPE],fn:l[this.FN],obj:l[this.OBJ],adjust:l[this.ADJ_SCOPE],index:i});}}}}
return(results.length)?results:null;},_unload:function(e){var EU=YAHOO.util.Event,i,j,l,len,index;for(i=0,len=unloadListeners.length;i<len;++i){l=unloadListeners[i];if(l){var scope=window;if(l[EU.ADJ_SCOPE]){if(l[EU.ADJ_SCOPE]===true){scope=l[EU.OBJ];}else{scope=l[EU.ADJ_SCOPE];}}
l[EU.FN].call(scope,EU.getEvent(e),l[EU.OBJ]);unloadListeners[i]=null;l=null;scope=null;}}
unloadListeners=null;if(listeners&&listeners.length>0){j=listeners.length;while(j){index=j-1;l=listeners[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);}
j=j-1;}
l=null;EU.clearCache();}
for(i=0,len=legacyEvents.length;i<len;++i){legacyEvents[i][0]=null;legacyEvents[i]=null;}
legacyEvents=null;EU._simpleRemove(window,"unload",EU._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var dd=document.documentElement,db=document.body;if(dd&&(dd.scrollTop||dd.scrollLeft)){return[dd.scrollTop,dd.scrollLeft];}else if(db){return[db.scrollTop,db.scrollLeft];}else{return[0,0];}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(el,sType,fn,capture){el.addEventListener(sType,fn,(capture));};}else if(window.attachEvent){return function(el,sType,fn,capture){el.attachEvent("on"+sType,fn);};}else{return function(){};}}(),_simpleRemove:function(){if(window.removeEventListener){return function(el,sType,fn,capture){el.removeEventListener(sType,fn,(capture));};}else if(window.detachEvent){return function(el,sType,fn){el.detachEvent("on"+sType,fn);};}else{return function(){};}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var el,d=document,b=d.body;if(("undefined"!==typeof YAHOO_config)&&YAHOO_config.injecting){el=document.createElement("script");var p=d.getElementsByTagName("head")[0]||b;p.insertBefore(el,p.firstChild);}else{d.write('<scr'+'ipt id="_yui_eu_dr" defer="true" src="//:"><'+'/script>');el=document.getElementById("_yui_eu_dr");}
if(el){el.onreadystatechange=function(){if("complete"===this.readyState){this.parentNode.removeChild(this);YAHOO.util.Event._ready();}};}else{}
el=null;}else if(EU.webkit){EU._drwatch=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._drwatch);EU._drwatch=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}
EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}
YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(p_type,p_fn,p_obj,p_override){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[p_type];if(ce){ce.subscribe(p_fn,p_obj,p_override);}else{this.__yui_subscribers=this.__yui_subscribers||{};var subs=this.__yui_subscribers;if(!subs[p_type]){subs[p_type]=[];}
subs[p_type].push({fn:p_fn,obj:p_obj,override:p_override});}},unsubscribe:function(p_type,p_fn,p_obj){this.__yui_events=this.__yui_events||{};var evts=this.__yui_events;if(p_type){var ce=evts[p_type];if(ce){return ce.unsubscribe(p_fn,p_obj);}}else{for(var i in evts){var ret=true;if(YAHOO.lang.hasOwnProperty(evts,i)){ret=ret&&evts[i].unsubscribe(p_fn,p_obj);}}
return ret;}
return false;},unsubscribeAll:function(p_type){return this.unsubscribe(p_type);},createEvent:function(p_type,p_config){this.__yui_events=this.__yui_events||{};var opts=p_config||{};var events=this.__yui_events;if(events[p_type]){}else{var scope=opts.scope||this;var silent=(opts.silent);var ce=new YAHOO.util.CustomEvent(p_type,scope,silent,YAHOO.util.CustomEvent.FLAT);events[p_type]=ce;if(opts.onSubscribeCallback){ce.subscribeEvent.subscribe(opts.onSubscribeCallback);}
this.__yui_subscribers=this.__yui_subscribers||{};var qs=this.__yui_subscribers[p_type];if(qs){for(var i=0;i<qs.length;++i){ce.subscribe(qs[i].fn,qs[i].obj,qs[i].override);}}}
return events[p_type];},fireEvent:function(p_type,arg1,arg2,etc){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[p_type];if(!ce){return null;}
var args=[];for(var i=1;i<arguments.length;++i){args.push(arguments[i]);}
return ce.fire.apply(ce,args);},hasEvent:function(type){if(this.__yui_events){if(this.__yui_events[type]){return true;}}
return false;}};YAHOO.util.KeyListener=function(attachTo,keyData,handler,event){if(!attachTo){}else if(!keyData){}else if(!handler){}
if(!event){event=YAHOO.util.KeyListener.KEYDOWN;}
var keyEvent=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof attachTo=='string'){attachTo=document.getElementById(attachTo);}
if(typeof handler=='function'){keyEvent.subscribe(handler);}else{keyEvent.subscribe(handler.fn,handler.scope,handler.correctScope);}
function handleKeyPress(e,obj){if(!keyData.shift){keyData.shift=false;}
if(!keyData.alt){keyData.alt=false;}
if(!keyData.ctrl){keyData.ctrl=false;}
if(e.shiftKey==keyData.shift&&e.altKey==keyData.alt&&e.ctrlKey==keyData.ctrl){var dataItem;var keyPressed;if(keyData.keys instanceof Array){for(var i=0;i<keyData.keys.length;i++){dataItem=keyData.keys[i];if(dataItem==e.charCode){keyEvent.fire(e.charCode,e);break;}else if(dataItem==e.keyCode){keyEvent.fire(e.keyCode,e);break;}}}else{dataItem=keyData.keys;if(dataItem==e.charCode){keyEvent.fire(e.charCode,e);}else if(dataItem==e.keyCode){keyEvent.fire(e.keyCode,e);}}}}
this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(attachTo,event,handleKeyPress);this.enabledEvent.fire(keyData);}
this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(attachTo,event,handleKeyPress);this.disabledEvent.fire(keyData);}
this.enabled=false;};this.toString=function(){return"KeyListener ["+keyData.keys+"] "+attachTo.tagName+
(attachTo.id?"["+attachTo.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.register("event",YAHOO.util.Event,{version:"2.3.0",build:"442"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.3.0", build: "442"});


/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
http://yui.yahooapis.com/2.3.0/build/animation/animation-min.js
version: 2.3.0
*/
YAHOO.util.Anim=function(el,attributes,duration,method){if(!el){}
this.init(el,attributes,duration,method);};YAHOO.util.Anim.prototype={toString:function(){var el=this.getEl();var id=el.id||el.tagName||el;return("Anim "+id);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(attr,start,end){return this.method(this.currentFrame,start,end-start,this.totalFrames);},setAttribute:function(attr,val,unit){if(this.patterns.noNegatives.test(attr)){val=(val>0)?val:0;}
YAHOO.util.Dom.setStyle(this.getEl(),attr,val+unit);},getAttribute:function(attr){var el=this.getEl();var val=YAHOO.util.Dom.getStyle(el,attr);if(val!=='auto'&&!this.patterns.offsetUnit.test(val)){return parseFloat(val);}
var a=this.patterns.offsetAttribute.exec(attr)||[];var pos=!!(a[3]);var box=!!(a[2]);if(box||(YAHOO.util.Dom.getStyle(el,'position')=='absolute'&&pos)){val=el['offset'+a[0].charAt(0).toUpperCase()+a[0].substr(1)];}else{val=0;}
return val;},getDefaultUnit:function(attr){if(this.patterns.defaultUnit.test(attr)){return'px';}
return'';},setRuntimeAttribute:function(attr){var start;var end;var attributes=this.attributes;this.runtimeAttributes[attr]={};var isset=function(prop){return(typeof prop!=='undefined');};if(!isset(attributes[attr]['to'])&&!isset(attributes[attr]['by'])){return false;}
start=(isset(attributes[attr]['from']))?attributes[attr]['from']:this.getAttribute(attr);if(isset(attributes[attr]['to'])){end=attributes[attr]['to'];}else if(isset(attributes[attr]['by'])){if(start.constructor==Array){end=[];for(var i=0,len=start.length;i<len;++i){end[i]=start[i]+attributes[attr]['by'][i]*1;}}else{end=start+attributes[attr]['by']*1;}}
this.runtimeAttributes[attr].start=start;this.runtimeAttributes[attr].end=end;this.runtimeAttributes[attr].unit=(isset(attributes[attr].unit))?attributes[attr]['unit']:this.getDefaultUnit(attr);return true;},init:function(el,attributes,duration,method){var isAnimated=false;var startTime=null;var actualFrames=0;el=YAHOO.util.Dom.get(el);this.attributes=attributes||{};this.duration=!YAHOO.lang.isUndefined(duration)?duration:1;this.method=method||YAHOO.util.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=YAHOO.util.AnimMgr.fps;this.setEl=function(element){el=YAHOO.util.Dom.get(element);};this.getEl=function(){return el;};this.isAnimated=function(){return isAnimated;};this.getStartTime=function(){return startTime;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}
this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(YAHOO.util.AnimMgr.fps*this.duration):this.duration;if(this.duration===0&&this.useSeconds){this.totalFrames=1;}
YAHOO.util.AnimMgr.registerElement(this);return true;};this.stop=function(finish){if(finish){this.currentFrame=this.totalFrames;this._onTween.fire();}
YAHOO.util.AnimMgr.stop(this);};var onStart=function(){this.onStart.fire();this.runtimeAttributes={};for(var attr in this.attributes){this.setRuntimeAttribute(attr);}
isAnimated=true;actualFrames=0;startTime=new Date();};var onTween=function(){var data={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};data.toString=function(){return('duration: '+data.duration+', currentFrame: '+data.currentFrame);};this.onTween.fire(data);var runtimeAttributes=this.runtimeAttributes;for(var attr in runtimeAttributes){this.setAttribute(attr,this.doMethod(attr,runtimeAttributes[attr].start,runtimeAttributes[attr].end),runtimeAttributes[attr].unit);}
actualFrames+=1;};var onComplete=function(){var actual_duration=(new Date()-startTime)/1000;var data={duration:actual_duration,frames:actualFrames,fps:actualFrames/actual_duration};data.toString=function(){return('duration: '+data.duration+', frames: '+data.frames+', fps: '+data.fps);};isAnimated=false;actualFrames=0;this.onComplete.fire(data);};this._onStart=new YAHOO.util.CustomEvent('_start',this,true);this.onStart=new YAHOO.util.CustomEvent('start',this);this.onTween=new YAHOO.util.CustomEvent('tween',this);this._onTween=new YAHOO.util.CustomEvent('_tween',this,true);this.onComplete=new YAHOO.util.CustomEvent('complete',this);this._onComplete=new YAHOO.util.CustomEvent('_complete',this,true);this._onStart.subscribe(onStart);this._onTween.subscribe(onTween);this._onComplete.subscribe(onComplete);}};YAHOO.util.AnimMgr=new function(){var thread=null;var queue=[];var tweenCount=0;this.fps=1000;this.delay=1;this.registerElement=function(tween){queue[queue.length]=tween;tweenCount+=1;tween._onStart.fire();this.start();};this.unRegister=function(tween,index){tween._onComplete.fire();index=index||getIndex(tween);if(index==-1){return false;}
queue.splice(index,1);tweenCount-=1;if(tweenCount<=0){this.stop();}
return true;};this.start=function(){if(thread===null){thread=setInterval(this.run,this.delay);}};this.stop=function(tween){if(!tween){clearInterval(thread);for(var i=0,len=queue.length;i<len;++i){if(queue[0].isAnimated()){this.unRegister(queue[0],0);}}
queue=[];thread=null;tweenCount=0;}
else{this.unRegister(tween);}};this.run=function(){for(var i=0,len=queue.length;i<len;++i){var tween=queue[i];if(!tween||!tween.isAnimated()){continue;}
if(tween.currentFrame<tween.totalFrames||tween.totalFrames===null)
{tween.currentFrame+=1;if(tween.useSeconds){correctFrame(tween);}
tween._onTween.fire();}
else{YAHOO.util.AnimMgr.stop(tween,i);}}};var getIndex=function(anim){for(var i=0,len=queue.length;i<len;++i){if(queue[i]==anim){return i;}}
return-1;};var correctFrame=function(tween){var frames=tween.totalFrames;var frame=tween.currentFrame;var expected=(tween.currentFrame*tween.duration*1000/tween.totalFrames);var elapsed=(new Date()-tween.getStartTime());var tweak=0;if(elapsed<tween.duration*1000){tweak=Math.round((elapsed/expected-1)*tween.currentFrame);}else{tweak=frames-(frame+1);}
if(tweak>0&&isFinite(tweak)){if(tween.currentFrame+tweak>=frames){tweak=frames-(frame+1);}
tween.currentFrame+=tweak;}};};YAHOO.util.Bezier=new function(){this.getPosition=function(points,t){var n=points.length;var tmp=[];for(var i=0;i<n;++i){tmp[i]=[points[i][0],points[i][1]];}
for(var j=1;j<n;++j){for(i=0;i<n-j;++i){tmp[i][0]=(1-t)*tmp[i][0]+t*tmp[parseInt(i+1,10)][0];tmp[i][1]=(1-t)*tmp[i][1]+t*tmp[parseInt(i+1,10)][1];}}
return[tmp[0][0],tmp[0][1]];};};(function(){YAHOO.util.ColorAnim=function(el,attributes,duration,method){YAHOO.util.ColorAnim.superclass.constructor.call(this,el,attributes,duration,method);};YAHOO.extend(YAHOO.util.ColorAnim,YAHOO.util.Anim);var Y=YAHOO.util;var superclass=Y.ColorAnim.superclass;var proto=Y.ColorAnim.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("ColorAnim "+id);};proto.patterns.color=/color$/i;proto.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;proto.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;proto.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;proto.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;proto.parseColor=function(s){if(s.length==3){return s;}
var c=this.patterns.hex.exec(s);if(c&&c.length==4){return[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)];}
c=this.patterns.rgb.exec(s);if(c&&c.length==4){return[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)];}
c=this.patterns.hex3.exec(s);if(c&&c.length==4){return[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)];}
return null;};proto.getAttribute=function(attr){var el=this.getEl();if(this.patterns.color.test(attr)){var val=YAHOO.util.Dom.getStyle(el,attr);if(this.patterns.transparent.test(val)){var parent=el.parentNode;val=Y.Dom.getStyle(parent,attr);while(parent&&this.patterns.transparent.test(val)){parent=parent.parentNode;val=Y.Dom.getStyle(parent,attr);if(parent.tagName.toUpperCase()=='HTML'){val='#fff';}}}}else{val=superclass.getAttribute.call(this,attr);}
return val;};proto.doMethod=function(attr,start,end){var val;if(this.patterns.color.test(attr)){val=[];for(var i=0,len=start.length;i<len;++i){val[i]=superclass.doMethod.call(this,attr,start[i],end[i]);}
val='rgb('+Math.floor(val[0])+','+Math.floor(val[1])+','+Math.floor(val[2])+')';}
else{val=superclass.doMethod.call(this,attr,start,end);}
return val;};proto.setRuntimeAttribute=function(attr){superclass.setRuntimeAttribute.call(this,attr);if(this.patterns.color.test(attr)){var attributes=this.attributes;var start=this.parseColor(this.runtimeAttributes[attr].start);var end=this.parseColor(this.runtimeAttributes[attr].end);if(typeof attributes[attr]['to']==='undefined'&&typeof attributes[attr]['by']!=='undefined'){end=this.parseColor(attributes[attr].by);for(var i=0,len=start.length;i<len;++i){end[i]=start[i]+end[i];}}
this.runtimeAttributes[attr].start=start;this.runtimeAttributes[attr].end=end;}};})();YAHOO.util.Easing={easeNone:function(t,b,c,d){return c*t/d+b;},easeIn:function(t,b,c,d){return c*(t/=d)*t+b;},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeBoth:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t+b;}
return-c/2*((--t)*(t-2)-1)+b;},easeInStrong:function(t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutStrong:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeBothStrong:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t*t*t+b;}
return-c/2*((t-=2)*t*t*t-2)+b;},elasticIn:function(t,b,c,d,a,p){if(t==0){return b;}
if((t/=d)==1){return b+c;}
if(!p){p=d*.3;}
if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else{var s=p/(2*Math.PI)*Math.asin(c/a);}
return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},elasticOut:function(t,b,c,d,a,p){if(t==0){return b;}
if((t/=d)==1){return b+c;}
if(!p){p=d*.3;}
if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else{var s=p/(2*Math.PI)*Math.asin(c/a);}
return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},elasticBoth:function(t,b,c,d,a,p){if(t==0){return b;}
if((t/=d/2)==2){return b+c;}
if(!p){p=d*(.3*1.5);}
if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else{var s=p/(2*Math.PI)*Math.asin(c/a);}
if(t<1){return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;}
return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},backIn:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
return c*(t/=d)*t*((s+1)*t-s)+b;},backOut:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},backBoth:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
if((t/=d/2)<1){return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;}
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},bounceIn:function(t,b,c,d){return c-YAHOO.util.Easing.bounceOut(d-t,0,c,d)+b;},bounceOut:function(t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}
return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;},bounceBoth:function(t,b,c,d){if(t<d/2){return YAHOO.util.Easing.bounceIn(t*2,0,c,d)*.5+b;}
return YAHOO.util.Easing.bounceOut(t*2-d,0,c,d)*.5+c*.5+b;}};(function(){YAHOO.util.Motion=function(el,attributes,duration,method){if(el){YAHOO.util.Motion.superclass.constructor.call(this,el,attributes,duration,method);}};YAHOO.extend(YAHOO.util.Motion,YAHOO.util.ColorAnim);var Y=YAHOO.util;var superclass=Y.Motion.superclass;var proto=Y.Motion.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Motion "+id);};proto.patterns.points=/^points$/i;proto.setAttribute=function(attr,val,unit){if(this.patterns.points.test(attr)){unit=unit||'px';superclass.setAttribute.call(this,'left',val[0],unit);superclass.setAttribute.call(this,'top',val[1],unit);}else{superclass.setAttribute.call(this,attr,val,unit);}};proto.getAttribute=function(attr){if(this.patterns.points.test(attr)){var val=[superclass.getAttribute.call(this,'left'),superclass.getAttribute.call(this,'top')];}else{val=superclass.getAttribute.call(this,attr);}
return val;};proto.doMethod=function(attr,start,end){var val=null;if(this.patterns.points.test(attr)){var t=this.method(this.currentFrame,0,100,this.totalFrames)/100;val=Y.Bezier.getPosition(this.runtimeAttributes[attr],t);}else{val=superclass.doMethod.call(this,attr,start,end);}
return val;};proto.setRuntimeAttribute=function(attr){if(this.patterns.points.test(attr)){var el=this.getEl();var attributes=this.attributes;var start;var control=attributes['points']['control']||[];var end;var i,len;if(control.length>0&&!(control[0]instanceof Array)){control=[control];}else{var tmp=[];for(i=0,len=control.length;i<len;++i){tmp[i]=control[i];}
control=tmp;}
if(Y.Dom.getStyle(el,'position')=='static'){Y.Dom.setStyle(el,'position','relative');}
if(isset(attributes['points']['from'])){Y.Dom.setXY(el,attributes['points']['from']);}
else{Y.Dom.setXY(el,Y.Dom.getXY(el));}
start=this.getAttribute('points');if(isset(attributes['points']['to'])){end=translateValues.call(this,attributes['points']['to'],start);var pageXY=Y.Dom.getXY(this.getEl());for(i=0,len=control.length;i<len;++i){control[i]=translateValues.call(this,control[i],start);}}else if(isset(attributes['points']['by'])){end=[start[0]+attributes['points']['by'][0],start[1]+attributes['points']['by'][1]];for(i=0,len=control.length;i<len;++i){control[i]=[start[0]+control[i][0],start[1]+control[i][1]];}}
this.runtimeAttributes[attr]=[start];if(control.length>0){this.runtimeAttributes[attr]=this.runtimeAttributes[attr].concat(control);}
this.runtimeAttributes[attr][this.runtimeAttributes[attr].length]=end;}
else{superclass.setRuntimeAttribute.call(this,attr);}};var translateValues=function(val,start){var pageXY=Y.Dom.getXY(this.getEl());val=[val[0]-pageXY[0]+start[0],val[1]-pageXY[1]+start[1]];return val;};var isset=function(prop){return(typeof prop!=='undefined');};})();(function(){YAHOO.util.Scroll=function(el,attributes,duration,method){if(el){YAHOO.util.Scroll.superclass.constructor.call(this,el,attributes,duration,method);}};YAHOO.extend(YAHOO.util.Scroll,YAHOO.util.ColorAnim);var Y=YAHOO.util;var superclass=Y.Scroll.superclass;var proto=Y.Scroll.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Scroll "+id);};proto.doMethod=function(attr,start,end){var val=null;if(attr=='scroll'){val=[this.method(this.currentFrame,start[0],end[0]-start[0],this.totalFrames),this.method(this.currentFrame,start[1],end[1]-start[1],this.totalFrames)];}else{val=superclass.doMethod.call(this,attr,start,end);}
return val;};proto.getAttribute=function(attr){var val=null;var el=this.getEl();if(attr=='scroll'){val=[el.scrollLeft,el.scrollTop];}else{val=superclass.getAttribute.call(this,attr);}
return val;};proto.setAttribute=function(attr,val,unit){var el=this.getEl();if(attr=='scroll'){el.scrollLeft=val[0];el.scrollTop=val[1];}else{superclass.setAttribute.call(this,attr,val,unit);}};})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.3.0",build:"442"});


/* ************************************************************************************************************************************** */
/* COMMON-COMBINED-SIFR.JS */
/* ************************************************************************************************************************************** */
var TabView = function() {}

TabView.prototype = {
  tabList: [],
  currentTab: null,

  addEvent: function(oElement,event,func) {
    if (oElement.addEventListener) {
      oElement.addEventListener(event,func,false);
    } else if (oElement.attachEvent) {
      oElement.attachEvent('on'+event,func);
    }
  },

  hideTitles: function(id,tag) {
    var titles = document.getElementById(id).getElementsByTagName(tag);
    for (i=0; i<titles.length; i++) {
      titles[i].style.display = 'none';
    }
  },

  switchTab: function(tabId) {
    var currentTabId = 
      document.getElementById(this.tabList[this.currentTab]);
    var newTabId = 
      document.getElementById(this.tabList[tabId]);

    currentTabId.style.display = 'none';
		document.getElementById(this.currentTab).className = '';
        newTabId.style.display = '';
		document.getElementById(tabId).className = 'on';
        
        this.currentTab = tabId;
    },

    addTab: function(tabId,tabContentId,current) {
        this.tabList[tabId] = tabContentId;
        
        var id = document.getElementById(tabId);
        
        this.addEvent(id,'click', 
			(function(obj) {
				return function(e) {
			if (e.stopPropagation) {
			e.stopPropagation();
			}
			obj.switchTab(tabId);
			return false;
			};
			})(this)
       	);
        
        if (current) {
            this.currentTab = tabId;
			document.getElementById(tabId).className = 'on';
            document.getElementById(tabContentId).style.display = '';
        } else if (!current) {
            document.getElementById(tabContentId).style.display = 'none';
		}
    },
	
    outputLinkToTab: function(tabId,newId,text) {
		document.write('<p><a id="'+newId+'" class="more" href="#">'+text+'</a></p>');
		var id = document.getElementById(newId);
		this.addEvent(id,'click',
           (function(obj) {
              return function(e) {
                 if (e.stopPropagation) {
                    e.stopPropagation();
                    e.preventDefault();
                 } else {
                    e.cancelBubble = true;
                 }
                 obj.switchTab(tabId);
                 return false;
              };
		})(this)
		);
    }

};

function createTabs(elem) {
  document.write('<ul class="tabs">');
  for (i=0; i<elem.length; i++) {
    document.write('<li id="tab'+(i+1)+'"><a href="#nogo"><span>' + elem[i] + '</span></a></li>');
  }
  document.write('</ul>');
}

d=document;f=d.documentElement;g=d.forms;j=d.all;k=d.URL;m=d.location;o=d.images;p=d.anchors;t=d.links;u=d.embeds;v=false;ba=window;bb=true;bc=parseInt;bd=location;be=bd.pathname;bj=Array;bk=Object;bl=eval;bm=navigator;bn=bm.plugins;bo=bm.userAgent;bp=undefined;bq=unescape;br=parseFloat;PINT_Global=new bk();PINT_Global.HTML=new bk();PINT_Global.HTML.anchors=d.getElementsByTagName('a');PINT_Global.HTML.label=d.getElementsByTagName('label');PINT_Global.Status=new bk();PINT_Global.Status.windowStatus="";PINT_Global.Browser=new Browser();function PINT_GetEventSource(e){if(e&&e.target){var event=e&&e.target;while(event&&event.nodeType==3)event=event.parentNode;return(event);}if(ba&&ba.event&&ba.event.srcElement)return(ba&&ba.event&&ba.event.srcElement);return v}function PINT_GetElementById(idname){var handle;if(d.getElementById){handle=d.getElementById(idname);if(handle)return handle}if(d.getElementByName){handle=d.getElementByName(idname)[0];if(handle)return handle}handle=document[idname];if(handle)return handle;if(d.all){handle=d.all[idname];if(handle)return handle}if(d.anchors){handle=d.anchors[idname];if(handle)return handle}if(d.links){handle=d.links[idname];if(handle)return handle}if(d.images){handle=d.images[idname];if(handle)return handle}if(d.embeds){handle=d.embeds[idname];if(handle)return handle}return handle}function PINT_GetIdByElement(element){if(!(element))return bp;if(element.id)return element.id;if(element.name)return element.name;return bp}function PINT_ChangePageTitle(pageTitle){if(d.title.readOnly==bb)d.title=pageTitle}function PINT_GetCurrentFileName(){var URL=bq(bd.pathname);var start=URL.lastIndexOf("/")+1;var end=(URL.indexOf("?")>0)?URL.indexOf("?"):URL.length;return(URL.substring(start,end));}function PINT_GetCurrentFilePath(){var URL=bq(bd.pathname);var start=URL.lastIndexOf("/");return(URL.substring(0,start));}function PINT_GetCurrentDirectory(){var filePath=PINT_GetCurrentFilePath();var directories=filePath.split("/");return directories.length&&directories[directories.length-1]!=""?directories[directories.length-1]:""}function PINT_IsRootDirectory(directory){return directory.toLowerCase()==PINT_GetRootDirectory().toLowerCase()?bb:v}function PINT_IsDefaultFile(){var fileName=typeof(PINT_IsDefaultFile.arguments[0])!='undefined'?PINT_IsDefaultFile.arguments[0]:PINT_GetCurrentFileName();if(fileName=="")return bb;var fileNameList=PINT_GetDefaultFile();if(bl('typeof(fileNameList)')=='object'){for(var fileNameListIndex=0;fileNameListIndex<fileNameList.length;fileNameListIndex++)if((fileName==fileNameList[fileNameListIndex]))return bb}return v}function PINT_GetDefaultFile(){if(typeof(defaultFileList)=='undefined')return"";else return defaultFileList.split(",");}function PINT_FirstFocus(){var elementref;var i=0;if(!(elementref=PINT_FirstFocus.arguments[0])){if(!(d.forms[0]))return v;while((elementref=d.forms[0].elements[i++])&&((elementref.type=='hidden')||(elementref.type=='radio')||(elementref.disabled)||(elementref.type=='submit')||(elementref.type=='submit')||(elementref.type=='checkbox'))){}}else{var formIndex;var formElementIndex;var formElementName=PINT_FirstFocus.arguments[0];elementref=null;for(formIndex=0;formIndex<d.forms.length;formIndex++){for(formElementIndex=0;formElementIndex<d.forms[formIndex].elements.length;formElementIndex++){if(d.forms[formIndex].elements[formElementIndex].name==formElementName){elementref=d.forms[formIndex].elements[formElementIndex];break}}if(elementref)break}}if(!(elementref))return v;elementref.focus();return bb}function PINT_OnMouseOverHandler(e){e=(e)?e:((ba.event)?ba.event:"");if(e){var eventsource=PINT_GetEventSource(e);if(bl('typeof(PINT_MenuTriggers)')!='undefined'){typeOfEventSource=typeof(PINT_MenuTriggers[eventsource.id]);if(typeOfEventSource!='undefined')PINT_MenuPopUp(e);}else if(bl('typeof(PINT_Global.Rollover.triggers)')!='undefined'){typeOfEventSource=typeof(PINT_Global.Rollover.triggers[eventsource.id]);if(typeOfEventSource!='undefined')PINT_RORollover(e);}PINT_SetWindowStatus();}return bb}function PINT_OnMouseOutHandler(e){e=(e)?e:((ba.event)?ba.event:"");if(e){var eventsource=PINT_GetEventSource(e);if(bl('typeof(PINT_MenuTriggers)')!='undefined'){typeOfEventSource=typeof(PINT_MenuTriggers[eventsource.id]);if(typeOfEventSource!='undefined')PINT_MenuPopDown(e);}else if(bl('typeof(PINT_Global.Rollover.triggers)')){typeOfEventSource=typeof(PINT_Global.Rollover.triggers[eventsource.id]);if(typeOfEventSource!='undefined')PINT_RORollout(e);}}return bb}function PINT_SetWindowStatus(){if(PINT_SetWindowStatus.arguments.length==0){if(typeof(PINT_Global.Status.windowStatus)!='undefined'&&PINT_Global.Status.windowStatus!=""){ba.status=PINT_Global.Status.windowStatus;PINT_Global.Status.windowStatus=""}}else ba.status=PINT_SetWindowStatus.arguments[0];return bb}function PINT_GetRootDirectory(){if(typeof(rootDirectory)=='undefined')return"";else return rootDirectory}function PINT_getElementsByClass(name){var all=d.all?d.all:d.getElementsByTagName('*');var elements=new bj();for(var e=0;e<all.length;e++){if((name!='')&&(all[e].className.indexOf(name)>=0))elements[elements.length]=all[e]}return elements}function PINT_getURLParam(name,defaultVal){var paramVal=defaultVal;var regex=new RegExp("\&"+name+"\=([^$\&]+)","i");if(d.URL.indexOf('?')!=-1){var qString='&'+d.URL.substring((d.URL.indexOf('?')+1),d.URL.length);var urlMatches=qString.match(regex);if((urlMatches!=null)&&(urlMatches.length==2))paramVal=urlMatches[1]}return paramVal}PINT_Global.OnChange=new bk;PINT_Global.OnChange.linkType=new bj();function PINT_OnChangeHandler(e){var formElement;e=(e)?e:((ba.event)?ba.event:"");if(e){var eventsource=PINT_GetEventSource(e);for(formIndex=0;formIndex<d.forms.length;formIndex++){formElement=d.forms[formIndex];for(elementIndex=0;elementIndex<formElement.elements.length;elementIndex++){if(eventsource.name==formElement.elements[elementIndex].name){if(PINT_Global.OnChange.linkType[eventsource.id]=="anchor"&&formElement.elements[elementIndex].value!="")bd=formElement.action+"#"+formElement.elements[elementIndex].value;else if(PINT_Global.OnChange.linkType[eventsource.id]=="page"&&formElement.elements[elementIndex].value!="")bd=formElement.elements[elementIndex].value}}}}return bb}function PINT_OnChangeInit(){if(PINT_OnChangeInit.arguments.length!=2)return v;if(d.getElementById){var trigger=d.getElementById(PINT_OnChangeInit.arguments[0]);if(trigger){PINT_Global.OnChange.linkType[trigger.id]=PINT_OnChangeInit.arguments[1];trigger.onchange=PINT_OnChangeHandler}}return bb}var rot13map;function rot13init(){var map=new bj();var s="abcdefghijklmnopqrstuvwxyz";for(i=0;i<s.length;i++)map[s.charAt(i)]=s.charAt((i+13)%26);for(i=0;i<s.length;i++)map[s.charAt(i).toUpperCase()]=s.charAt((i+13)%26).toUpperCase();return map}function rot13(a){if(!rot13map)rot13map=rot13init();var s="";for(i=0;i<a.length;i++){var b=a.charAt(i);s+=(b>='A'&&b<='Z'||b>='a'&&b<='z'?rot13map[b]:b);}return s}function print_e(user,domain){var e=rot13(user)+"@"+rot13(domain);var out='<a href="mailto:'+e+'">';out+=e;out+='</a>';d.write(out);}PINT_FlashObject=function(swf,id,w,h,defaultImage,ver,imageMap,c){this.swf=swf;this.id=id;this.width=w;this.height=h;this.imageMap=imageMap;this.version=ver||6;this.align="middle";this.codebase=this.version+",0,0,0";this.redirect="";this.sq=m.search.split("?")[1]||"";this.defaultImage=defaultImage;this.altTxt="Please <a href='http://www.macromedia.com/go/getflashplayer'>upgrade your Flash Player</a>.";this.bypassTxt="";this.params=new bk();this.variables=new bk();if(c)this.color=this.addParam('bgcolor',c);this.addParam('quality','high');this.doDetect=getQueryParamValue('detectflash');};PINT_FlashObject.prototype.addParam=function(name,value){this.params[name]=value};PINT_FlashObject.prototype.getParams=function(){return this.params};PINT_FlashObject.prototype.getParam=function(name){return this.params[name]};PINT_FlashObject.prototype.addVariable=function(name,value){this.variables[name]=value};PINT_FlashObject.prototype.getVariable=function(name){return this.variables[name]};PINT_FlashObject.prototype.getVariables=function(){return this.variables};PINT_FlashObject.prototype.getParamTags=function(){var paramTags="";for(var param in this.getParams()){paramTags+='<param name="'+param+'" value="'+this.getParam(param)+'" />'}if(paramTags==""){paramTags=null}return paramTags};PINT_FlashObject.prototype.getHTML=function(){var flashHTML="";if(ba.ActiveXObject&&bm.userAgent.indexOf('Mac')==-1){flashHTML+='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+this.codebase+'" width="'+this.width+'" height="'+this.height+'" id="'+this.id+'" align="'+this.align+'">';flashHTML+='<param name="movie" value="'+this.swf+'" />';if(this.getParamTags()!=null){flashHTML+=this.getParamTags();}if(this.getVariablePairs()!=null){flashHTML+='<param name="flashVars" value="'+this.getVariablePairs()+'" />'}flashHTML+='</object>'}else{flashHTML+='<embed type="application/x-shockwave-flash" src="'+this.swf+'" width="'+this.width+'" height="'+this.height+'" id="'+this.id+'" align="'+this.align+'"';for(var param in this.getParams()){flashHTML+=' '+param+'="'+this.getParam(param)+'"'}if(this.getVariablePairs()!=null){flashHTML+=' flashVars="'+this.getVariablePairs()+'"'}flashHTML+='></embed>'}return flashHTML};PINT_FlashObject.prototype.getVariablePairs=function(){var variablePairs=new bj();for(var name in this.getVariables()){variablePairs.push(name+"="+escape(this.getVariable(name)));}if(variablePairs.length>0){return variablePairs.join("&");}else{return null}};PINT_FlashObject.prototype.write=function(elementId){if(detectFlash(this.version)||this.doDetect=='false'){if(elementId){d.getElementById(elementId).innerHTML=this.getHTML();}else{d.write(this.getHTML());}}else{if(this.redirect!=""){m.replace(this.redirect);}else if(this.defaultImage!=""){imageString="<img src=\""+this.defaultImage+"\" width=\""+this.width+"\" height=\""+this.height+"\" border=\"0\" alt=\"\"";if(bl('typeof(this.imageMap)')!="undefined"&&this.imageMap!="")imageString+=" usemap=\"#"+this.imageMap+"\" ";imageString+=" class=\"inlineimage\" />";d.write(imageString);}else d.write(this.altTxt+""+this.bypassTxt);}};
function getFlashVersion(){var iFlashVersion=0;if(navigator.plugins&&navigator.plugins.length){var swVer2=navigator.plugins["Shockwave Flash 2.0"] ? " 2.0":"";var oPlugin=navigator.plugins["Shockwave Flash"+swVer2];if(oPlugin){if(oPlugin.description){var sDescription=oPlugin.description;var aDescription=oPlugin.description.split(" ");var aMajorVersion=aDescription[2].split(".");iFlashVersion=aMajorVersion[0];}}}else{var axo;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");iFlashVersion=7;}catch(e){}if(!iFlashVersion){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");iFlashVersion=6;}catch(e1){}}if(!iFlashVersion){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");iFlashVersion=4;}catch(e2){}}if(!iFlashVersion){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");iFlashVersion=3;}catch(e3){}}if(!iFlashVersion){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");iFlashVersion=2;}catch(e4){}}}return iFlashVersion;}function detectFlash(ver){if(getFlashVersion()>=ver){return bb}else{return v}}function getQueryParamValue(param){var q=m.search;var detectIndex=q.indexOf(param);if(q.length>1&&detectIndex!=-1){return q.substring(q.indexOf("=",detectIndex)+1,q.indexOf("&",detectIndex));}else{return bb}}function addEvent(obj,evType,fn){if(obj.addEventListener){obj.addEventListener(evType,fn,bb);return bb}else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r}else{return v}}function Browser(){var ua,s,i;this.isIE=v;this.isNS=v;this.version=null;ua=bm.userAgent;s="MSIE";if((i=ua.indexOf(s))>=0){this.isIE=bb;this.version=br(ua.substr(i+s.length));return}s="Netscape6/";if((i=ua.indexOf(s))>=0){this.isNS=bb;this.version=br(ua.substr(i+s.length));return}s="Gecko";if((i=ua.indexOf(s))>=0){this.isNS=bb;this.version=6.1;return}}function PINT_BrowserDetection(){if(PINT_BrowserDetection.arguments.length!=1)return v;var browserUpgradeFile=PINT_BrowserDetection.arguments[0];var currentFileName=PINT_GetCurrentFileName();if(!d.getElementById&&(browserUpgradeFile.indexOf(currentFileName)=="-1"||currentFileName==""))bd.replace(PINT_GetRootDirectory()+'/'+browserUpgradeFile);}function popupWindow(){if(popupWindow.arguments.length<1)return v;var popupWin=null;popupWin=ba.open(popupWindow.arguments[0],popupWindow.arguments[1],popupWindow.arguments[2]);}function PINT_GetWindowSize(style){var size=400;if(style=="width"){if(typeof(ba.innerWidth)=='number')size=ba.innerWidth;else if(d.documentElement&&(d.documentElement.clientWidth||d.documentElement.clientHeight))size=d.documentElement.clientWidth;else if(d.body&&d.body.clientWidth)size=d.body.clientWidth}else if(style=="height"){if(typeof(ba.innerWidth)=='number')size=ba.innerHeight;else if(d.documentElement&&(d.documentElement.clientWidth||d.documentElement.clientHeight))size=d.documentElement.clientHeight;else if(d.body&&d.body.clientHeight)size=d.body.clientHeight}return size}function PINT_AnchorPopupWindows(){if(!d.getElementsByTagName)return;var anchors=PINT_Global.HTML.anchors;var currentAnchor;for(var anchorIndex=0;anchorIndex<anchors.length;anchorIndex++){var targetLink,relArray,relInformation,windowAttributes,javascriptTargetLink,windowName;var bd,menubar,resizable,scrollbars,status,toolbar;var width,height,windowType,windowName;currentAnchor=anchors[anchorIndex];targetLink=currentAnchor.getAttribute("href");relInformation=currentAnchor.getAttribute("rel");if(relInformation&&targetLink){relArray=relInformation.split("|");if(relArray[0]=="popup"&&relArray.length>=4){if(relArray[1]!="null")width=bc(relArray[1])?bc(relArray[1]):400;else width=PINT_GetWindowSize("width");if(relArray[2]!="null")height=bc(relArray[2])?bc(relArray[2]):400;else height=PINT_GetWindowSize("height");windowType=relArray[3];windowAttributes="width="+width+",height="+height;if(windowType=="custom"){if(relArray.length<10)return v;bd=bc(relArray[4])?bc(relArray[4]):0;menubar=bc(relArray[5])?bc(relArray[5]):0;resizable=bc(relArray[6])?bc(relArray[6]):0;scrollbars=bc(relArray[7])?bc(relArray[7]):0;status=bc(relArray[8])?bc(relArray[8]):0;toolbar=bc(relArray[9])?bc(relArray[9]):0;if(relArray.length==11)windowName=relArray[10];else windowName="popupWindow";windowAttributes+=",location="+bd+",menubar="+menubar+",resizable="+resizable+",scrollbars="+scrollbars+",status="+status+",toolbar="+toolbar}else{if(relArray.length==5)windowName=relArray[4];else windowName="popupWindow";if(windowType=="standard")windowAttributes+=",location=0,menubar=0,resizable=0,scrollbars=0,status=0,toolbar=0";else if(windowType=="resize")windowAttributes+=",location=0,menubar=0,resizable=1,scrollbars=0,status=0,toolbar=0";else if(windowType=="scrollbar")windowAttributes+=",location=0,menubar=0,resizable=0,scrollbars=1,status=0,toolbar=0";else if(windowType=="blank")windowAttributes="";else return v}javascriptTargetLink="javascript:popupWindow('"+targetLink+"','"+windowName+"','"+windowAttributes+"');";currentAnchor.setAttribute("href",javascriptTargetLink);}}}}


// globals
var savedHref;
var caliperSelects = new Array();

caliperSelects.push('gpcr_assay');
caliperSelects.push('gpcrs_search_box');
caliperSelects.push('ion_channel_search_box');
caliperSelects.push('assay_search_form');
caliperSelects.push('side_assay_search');
caliperSelects.push('receptor_dropdown');
caliperSelects.push('family');
caliperSelects.push('re_bio_1');
caliperSelects.push('re_bio_2');
caliperSelects.push('inner-re_biolum_search_box');
caliperSelects.push('full_product-search_col_override');


// Body onload utility (supports multiple onload functions)
var gcaliperlsSafeOnload = new Array();
function caliperlsSafeAddOnload(f)
{
	if (window.onload != caliperlsSafeOnload)
	{
		// if there is an onload event for the window, save it for later execution
		if (window.onload) {
			var arr = window.onload.toString().match(/function\s*(\w+)/);
			gcaliperlsSafeOnload[0] = arr[1] + "()";
		}
		window.onload = caliperlsSafeOnload;
	}		
	gcaliperlsSafeOnload[gcaliperlsSafeOnload.length] = f;
}

function caliperlsSafePrependOnload(f) {
	if (!gcaliperlsSafeOnload.length) caliperlsSafeAddOnload(f);
	else gcaliperlsSafeOnload.unshift(f);
}

function caliperlsSafeOnload() {
	for (var i=0;i<gcaliperlsSafeOnload.length;i++) {
		if (gcaliperlsSafeOnload[i] != null) {
			eval(gcaliperlsSafeOnload[i]);
		}
	}
}

//Hides and shows elem1 while toggling the class of elem2

function caliperlsToggleWithClass(elem1, elem2, classNameOn, classNameOff) {
    var element1 = document.getElementById(elem1);
    var element2 = document.getElementById(elem2);
    if(element1.style.display == 'none') {
        element1.style.display = ''; // removed block to work with tables - DB
        element2.className = classNameOn;
    } else {
	element1.style.display = 'none';
        element2.className = classNameOff;
    }
}


/* 
* Show/Hide for any elements. It will show/hide a second element based on a first element's trigger. 
* CURRENTLY ALWAYS HIDES ON MOUSEOUT. (A MORE DIFFICULT PROBLEM THAN HIDING ONCLICK)
*/
var PINT_genericShowHide = function () {};

PINT_genericShowHide.prototype = {
	addEvent: function(oElement,event,func) {
        if (oElement.addEventListener) {
            oElement.addEventListener(event,func,false);
        } else if (oElement.attachEvent) {
            oElement.attachEvent('on'+event,func);
        }
    },

    show: function(triggerElem,showHideElem,classOn,classOff) {
        if (typeof classOn != 'undefined' && classOn != null) triggerElem.className = classOn;
        showHideElem.style.display = 'block';

    },

    hide: function(triggerElem,showHideElem,classOn,classOff) {
        if (typeof classOn != 'undefined' && classOn != null) triggerElem.className = classOff;
		showHideElem.style.display = 'none';
    },

    init: function(triggerElem,showHideElem,eventType,classOn,classOff) {
    	// makes sure someone didn't specify something to show on mouse out...
    	if (eventType == 'mouseout') eventType = 'mouseover';

		// adds the "on eventType", show the second element
    	this.addEvent(triggerElem, eventType,
			(function(obj) {
				return function(e) {
					if (!e) var e = window.event;
					if (e.stopPropagation) e.stopPropagation();
					else e.cancelBubble = true;
					obj.show(triggerElem, showHideElem, classOn, classOff)
					return false;



				};
			})(this)
		);

		// adds on the mouseout off the trigger elem, hide the second element
		// but only if we aren't moving to the showHide element
		this.addEvent(triggerElem, 'mouseout',
			(function (obj) {
				return function(e) {
					if (!e) var e = window.event;
					if (e.stopPropagation) e.stopPropagation();
					else e.cancelBubble = true;
					var relTarg = e.relatedTarget || e.toElement;
					if (relTarg.id != showHideElem.id) {
						obj.hide(triggerElem, showHideElem, classOn, classOff);
					return false;
					}
				};
			})(this)
		);

		// hides the second element if you mouse out of its div
		this.addEvent(showHideElem, 'mouseout',
			(function(obj) {
				return function(e) {
					if (!e) var e = window.event;
					var tg = (window.event) ? e.srcElement : e.target;

					// if we haven't moved out of element in question, then we obviously haven't left it
					// we check the id because there's an div inside it, and we don't want to hide on moving off that.
					if (tg.id != showHideElem.id) return false;

					var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;

					while (reltg != tg && reltg.nodeName != 'BODY') {
						reltg = reltg.parentNode;
						if (!reltg.nodeName) return false;
					}
					if (reltg == tg) return false;
					var hideIt = true;

					if (e.stopPropagation) e.stopPropagation();
					else e.cancelBubble = true;

					if (hideIt) obj.hide(triggerElem, showHideElem, classOn, classOff);
					return false;
				};
			})(this)
		);

    } // end init
};

// hides the selects in caliperSelects
function caliperHideSelects() {
	
	// if IE7, mozilla, safari, opera 9 - return
	if (typeof document.body.style.maxHeight != "undefined") return;
	
	for (var i = 0; i < caliperSelects.length; i++) {
		var temp = document.getElementById(caliperSelects[i]); 
		if (temp != null) temp.style.visibility = 'hidden';
	}
}

// shows the selects in caliperSelects
function caliperShowSelects() {

	// if IE7, mozilla, safari, opera 9 - return
	if (typeof document.body.style.maxHeight != "undefined") return;
	
	for (var i = 0; i < caliperSelects.length; i++) {
		var temp = document.getElementById(caliperSelects[i]); 
		if (temp != null) temp.style.visibility = 'visible';
	}

}

// Function for the product menu
function resetProdMenu() {		
		// stops any animation using YUI
		YAHOO.util.AnimMgr.stop();		
		// the items with the initial product nav
		var prodBoxLinksLi = document.getElementById('prod_box_links').getElementsByTagName('li');
		var prodBoxInner = document.getElementById('prod_box_inner');
		var elemHref;
		var txt;
		var i;
		
		/**
		 * cycles through the prod_box_links and adds the missing href back. also removes classes 
		 * from the li and the background color from the div
		*/
		for (i = 0; i < prodBoxLinksLi.length; i++) {
				// if there's a div inside
				if (prodBoxLinksLi[i].firstChild.nodeName) {
					// relies on the fact that <div> is in the <li>
					if (prodBoxLinksLi[i].firstChild.nodeName == 'DIV') {
						prodBoxLinksLi[i].firstChild.style.backgroundColor = '';
						// only adds if the href is missing - assumes there will be content in this div.
						if (prodBoxLinksLi[i].firstChild.firstChild) {
							if (prodBoxLinksLi[i].firstChild.firstChild.nodeName == '#text') {
								txt = prodBoxLinksLi[i].firstChild.innerHTML;
								prodBoxLinksLi[i].firstChild.innerHTML = '';
								// puts in the link we deleted back in
								prodBoxLinksLi[i].firstChild.appendChild(savedHref);
								// removes the class "on" from the <li>  that is selected
								prodBoxLinksLi[i].className  = '';
							 }
						 }
					}
				}			
		}
		
		/** 
		 * sets the opacity of the prod_inner_box to 0, display=none for all the divs inside
		 */
		prodBoxInner.style.opacity = 0.0;
		prodBoxInner.style.filter ='alpha(opacity=0)';
		prodBoxInner.style.display = 'block';
		prodBoxInner.className = 'clearfix';
		var innerDivs = prodBoxInner.getElementsByTagName('div');
		for (var j = 0; j < innerDivs.length; j++) {
			innerDivs[j].style.display = 'none';
		}
	
}  

// Show/hide for the product menu, includes animation
var PINT_showhide = function() {

	var attributes = {
        opacity: { to:1 }
    };
   var anim = new YAHOO.util.Anim('prod_box_inner', attributes);
	
	// gets the links inside prod_box_links
	var elem;
	var elemAnim;
	var itemName;
	var colName1;
	var colName2;
	var testName;
	var prodBoxLinkIds = document.getElementById('prod_box_links').getElementsByTagName('a');
	var navArray = new Array();
	
	// builds the nav array
	for (i = 0; i < prodBoxLinkIds.length; i++) {

		navArray.push(prodBoxLinkIds[i].id);
	}
	
	for (var i = 0; i < navArray.length; i++) {
			itemName = navArray[i] + 'Item';
		
			elem = document.getElementById(itemName).firstChild;
			var testString = elem.childNodes[0].href;
	
			if (testString.match('#nogo') == null) continue;
			
			elemAnim = new YAHOO.util.ColorAnim(elem, { backgroundColor: { to: '#337CB8'} });
		
			YAHOO.util.Event.on(navArray[i], 'click', function(eName, eAnim, currName) {
				return function() {
					resetProdMenu();
					var override = document.getElementById(currName + '_col_override');
					if (override) {
						// turns on default display of divs to be block:
						override.style.display = 'block';
						document.getElementById('search_top').style.display = 'block';
						document.getElementById('search_bottom').style.display = 'block';
						document.getElementById('col1').style.display = 'block';
						document.getElementById('col2').style.display = 'block';
						document.getElementById('col3').style.display = 'block';
						document.getElementById('search_gpcr').style.display = 'block';
						//document.getElementById('nav_search_product').style.display = 'block';
					} else {
						document.getElementById(currName + '_col1').style.display = 'inline';
						document.getElementById(currName + '_col2').style.display = 'inline';
					}
					document.getElementById(currName + 'Item').className = 'on';
					// gets the div, gets the text of the href, adds the text and removes the href
					var txt =  (eName.childNodes[0].text) ? eName.childNodes[0].text : eName.childNodes[0].innerText;
					var x = document.createTextNode(txt);
					savedHref = eName.removeChild(eName.childNodes[0]);
					eName.appendChild(x);
					
					// Add the profiles drop down menu.
					if (override) {
						if (typeof PINT_drop_down_series_manager.dd['profiles_search_box'] != 'undefined') {
							PINT_drop_down_series_manager.dd['profiles_search_box'].init('profiles_search_box');
						}
						if (typeof PINT_drop_down_series_manager.dd['nav_product_search_box'] != 'undefined') {
							PINT_drop_down_series_manager.dd['nav_product_search_box'].init('nav_product_search_box');
						}
					}
			
					pBoxInner = document.getElementById('prod_box_inner');
					pBoxInner.className = currName + ' clearfix';
					anim.animate();
					eAnim.animate();
				};
				}(elem, elemAnim, navArray[i])
			);	
	}   
};



/**
 @item {Method} addEvent
 @info Attaches a callback function for a specific event to an element.
 @param {Object} oElement Element to attach the event.
 @param {String} event Type of event.
 @param {Object} func Callback function to execute when the event is fired.
 */
PINT_showhide.prototype.addEvent = function(oElement, event, func) {
    if (oElement.addEventListener) {
        oElement.addEventListener(event, func, false);
    } else if (oElement.attachEvent) {
        oElement.attachEvent('on' + event, func);
    }
};

/**
 @item {Method} show
 @info It will show/hide a second element based on a first element's trigger.
 @param {Object} triggerElem First element.
 @param {Object} showHideElem Second element.
 @param {String} classOn Class name of the 'on' state.
 @param {String} classOff Class name of the 'off' state.
 */
PINT_showhide.prototype.show = function(triggerElem, showHideElem, classOn, classOff) {
	triggerElem.className = classOn;
    showHideElem.style.display = 'block';
};

/**
 @item {Method} hide
 @info It will show/hide a second element based on a first element's trigger.
 @param {Object} triggerElem First element.
 @param {Object} showHideElem Second element.
 @param {String} classOn Class name of the 'on' state.
 @param {String} classOff Class name of the 'off' state.
 */
PINT_showhide.prototype.hide = function(triggerElem, showHideElem, classOn, classOff) {
	triggerElem.className = classOff;
	showHideElem.style.display = 'none';
};

/**
 @item {Method} init
 @info Initializes this showhide object.
 @param {Object} triggerElem First element.
 @param {Object} showHideElem Second element.
 @param {String} classOn Class name of the 'on' state.
 @param {String} classOff Class name of the 'off' state.
 */
PINT_showhide.prototype.init = function(triggerElem, showHideElem, classOn, classOff) {
	
	// Add the mouseover event to the triggerElem.
		this.addEvent(triggerElem, 'mouseover',
			(function(obj) {
				return function(e) {
					if (!e) var e = window.event;
					if (e.stopPropagation) {
						e.stopPropagation();
					} else {
						e.cancelBubble = true;
					}
					obj.show(triggerElem, showHideElem, classOn, classOff);	
					resetProdMenu();
					
					// hides any selects behind the product dropdown
					caliperHideSelects();
					
					var prodBoxInner = document.getElementById('prod_box_inner');
					prodBoxInner.style.display ='none';
					return false;
				};
			})(this)
		);
		
	// Add the mouseout event to the triggerElem
		this.addEvent(triggerElem, 'mouseout', 
			(function(obj) {
				return function(e) {
					var hideIt;
					if (!e) var e = window.event;
					var relTarg = e.relatedTarget || e.toElement;
			
					// if there is an id
					if (relTarg && relTarg.id) {
						// if it isn't the prod box, need to hide it
						if(relTarg.id != 'prod_box') hideIt = true;
					} else {
						hideIt = true;
					}
					
					if (e.stopPropagation) {
						e.stopPropagation();
					}
					e.cancelBubble = true;
			
					if (hideIt) {
						resetProdMenu();
						caliperShowSelects();
						obj.hide(triggerElem, showHideElem, classOn, classOff);
						
					}
					return false;
				};
			})(this)
       	);
       	
	// Add the mouseout event to the showHideElem.
		this.addEvent(showHideElem, 'mouseout', 
			(function(obj) {
				return function(e) { 
					if (!e) var e = window.event;
					var tg = (window.event) ? e.srcElement : e.target;
					var i = 0;
					// if we haven't moved out of prod_box, then we obviously haven't left it 
					// we check the id because there's an div inside it, and we don't want to hide on moving off that.
					if (tg.id != 'prod_box') return false;
	
					var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
		
					while (reltg != tg && reltg.nodeName != 'BODY') {
						reltg = reltg.parentNode;
						if (!reltg.nodeName) return false;
					}

					if (reltg== tg) return false;
					var hideIt = true;

					// Mouseout took place when mouse actually left layer
					// Handle event
					if (e.stopPropagation) {
						e.stopPropagation();
					}
					e.cancelBubble = true;
			
					if (hideIt) { 
						resetProdMenu();
						caliperShowSelects();
						obj.hide(triggerElem, showHideElem, classOn, classOff);
						
					}
					return false;
				};
			})(this)
       	);
};


/**
 @item {Function} initProdNav
 @info Sets up the product nav drop down's links and column content divs.
     (Doesn't handle events, builds content only.)
 */
function initProdNav() {
	
	if (typeof PINT_product_dropdown_nav != 'undefined') var ddNav = PINT_product_dropdown_nav();
	
	// The primary product box div.
	var pBox = document.getElementById('prod_box');

	// Create a list element to hold the product nav items.
	var ulLinks = document.createElement('ul');
	ulLinks.id = 'prod_box_links';
	
	// Create another div to hold all of the actual content for each nav item on the menu.
	pBoxInner = document.createElement('div');
	pBoxInner.id = 'prod_box_inner';
	pBoxInner.className = 'clearfix';
	
	// Add the list element and the content holder div to the product box.
	pBox.appendChild(ulLinks);
	pBox.appendChild(pBoxInner);
	
	// Loop over the dropdown nav struct ONCE.
	for (var sectionName in ddNav) {
		
		// Create a list item, a div, and an a tag for each section and add it to the link list.
		var sectionLi = document.createElement('li');
		sectionLi.id = sectionName + 'Item';
		ulLinks.appendChild(sectionLi);

		var sectionDiv = document.createElement('div');
		sectionLi.appendChild(sectionDiv);

		var sectionAnchor = document.createElement('a');
		sectionAnchor.href = ddNav[sectionName].href;
		sectionAnchor.id = sectionName;
		sectionAnchor.innerHTML = ddNav[sectionName].title;
		sectionDiv.appendChild(sectionAnchor);
		
		// Create the neccessary content divs. Typically, there are two columns of content
		// named xxx_col1 and xxx_col2.
		// Start by getting this section's struct out of the full ddNav struct.
		var currSection = ddNav[sectionName];
		
		// If the current section has an override set, there is only one column.
		if (typeof currSection.override != 'undefined') {
			var innerContentDiv1 = document.createElement('div');
			innerContentDiv1.id = sectionName + '_col_override';
			innerContentDiv1.className = 'prod_box_col_override';
			innerContentDiv1.innerHTML = currSection.content;
			pBoxInner.appendChild(innerContentDiv1);
		
		} else { // else, display normal two columns.

			var innerContentDiv1 = document.createElement('div');
			innerContentDiv1.id = sectionName + '_col1';
			innerContentDiv1.className = 'prod_box_col1';
			pBoxInner.appendChild(innerContentDiv1);

			var divUl = document.createElement('ul');
			innerContentDiv1.appendChild(divUl);

			var liList = '';
			for (var li in currSection.col1) {
				liList += currSection.col1[li];
			}
			divUl.innerHTML = liList;

			var innerContentDiv2 = document.createElement('div');
			innerContentDiv2.id = sectionName + '_col2';
			innerContentDiv2.className = 'prod_box_col2';
			pBoxInner.appendChild(innerContentDiv2);

			innerContentDiv2.innerHTML = currSection.col2;
		}
	}	
}


var PINT_drop_down_series = function() {

	// If the site has been published. assume yes because ?cid= is not the special case.
	this.published = true;
	this.regex = /cid=(\d+)/;
	// Drop down storage array.
	this.dd = new Array();
	// display debugging?
	this.debugModeDropdown = false;
	// references to the div we're building in
	this.innerDiv = null;
	// reference to the form element
	this.formElem = null;
	// contains JSON information
	this.sLevels = null;
	this.sContent = null;
	this.sHref = null;
	// reference to the hidden cid field.
	this.cid = null;
	// reference to the hidden field
	this.hiddenField = null,
	// Maximum drop down levels possible. (number of drop downs)
	this.maxLevelsPossible = 0;
	// whether to display the initial dropdown
	this.skipFirstLevel = false;


}


PINT_drop_down_series.prototype = {
	
	
	
	log: function(x) {
		if (this.debugModeDropdown) {
			console.log(x);
		}
	},


	changeFormAction: function (url) {
		this.log('^^^CHANGING FORM ACTION TO: ' + url);
		if (!this.published) {
			this.formElem.action = url;
			if (this.regex.test(url)) {
				this.cid.value = RegExp.$1;
			}
		} else {
                        if (url == 'undefined') url = '';			
			this.formElem.action = 'http://www.caliperls.com' + url;
		}
	},
	
	// oe = The currently selected Option element.
	// level = which level the oe belongs to so we can get the correct Select element.
	doOnChange: function (oe, level) {
		this.log('In doOnChange()---------------');
		this.log(oe);
		this.log(level);
		
		var text = this.dd[0].options[this.dd[0].selectedIndex].text;
		var value = oe.options[oe.selectedIndex].value;

		if(this.sLevels[text] && this.sContent[text]) {
			var maxLvl = this.sLevels[text].maxLevel;

				// Hide the child levels beyond the current level's immediate child.
				// Example: if the current level is 3, we need to display level 4 and
				// hide anything greater than 4. (5,6, etc..).
				if(this.maxLevelsPossible >= (level + 2)) {
					for(var i = (level + 2); i <= this.maxLevelsPossible; i++) {
						if(typeof this.dd[i] != 'undefined') {
							this.dd[i].style.display = 'none';
						}
					}
				}
				var nextLevel = level + 1;

				// Display the next drop down.
				var textToDisplay = this.determineDropdownDisplayText(nextLevel, maxLvl);
				this.dd[nextLevel].style.display = 'block';
				this.dd[nextLevel].disabled = false;
				this.dd[nextLevel].options.length = 0;
				this.log(this.dd[nextLevel]);
				this.dd[nextLevel].options[0] = new Option('Select a ' + textToDisplay, '#');
				// Add the options to the drop down.
				var counter = 1;
				if (this.sContent[text][value]) {
					for (var ii in this.sContent[text][value]) {
						this.dd[nextLevel].options[counter]  = new Option(this.sContent[text][value][ii].name, this.sContent[text][value][ii].classificationId);
						this.dd[nextLevel].options[counter].id = 'isLeaf' + this.sContent[text][value][ii].classificationId + '__' + this.sContent[text][value][ii].isLeafNode;
						if (this.sHref != null) {
						if (this.sHref[this.sContent[text][value][ii].name]['href']) {
							this.dd[nextLevel].options[counter].id += '__href' + this.sContent[text][value][ii].classificationId + '__' + this.sHref[this.sContent[text][value][ii].name]['href'];
						}
						}
						counter++;
					}
				}

				this.dd[nextLevel].onchange = function(thisObj, currItem, level) {
					return function () {
						thisObj.log('In onchange()-----------');
						thisObj.log('currItem.id = ' + currItem.id);
						thisObj.log('level = ' + level);
						if (currItem.options[currItem.selectedIndex].value == '#') {
							if (thisObj.maxLevelsPossible != 0) {
								for (i = level+1; i <= thisObj.maxLevelsPossible; i++) {
									if(typeof thisObj.dd[i] != 'undefined') {
										thisObj.dd[i].style.display = 'none';
									}
								}	
							}
							// this section is different, get the value of immed. previous dropdown
							var prevLevel = level - 1;
							if (prevLevel >= 0) {
								thisObj.updateHiddenField(thisObj.dd[prevLevel].options[thisObj.dd[prevLevel].selectedIndex].value);
								thisObj.changeFormAction(thisObj.determineFormAction(prevLevel));
							 } else {
								thisObj.changeFormAction('#');
								thisObj.updateHiddenField('');
							}
						} else {

							var checkIsLeaf = currItem.options[currItem.selectedIndex].id;
							var splitResult = checkIsLeaf.split('__');
							
							// reset to blank if no split results
							if (typeof splitResult[1] == 'undefined') {
								thisObj.updateHiddenField('');
							}
							if (splitResult[1] == 1) {
								thisObj.updateHiddenField(currItem.options[currItem.selectedIndex].value);
								if (thisObj.maxLevelsPossible != 0) {
									var toHide = new Array();
									// i is level+1, because we want to start hiding dropdowns below this
									for (i = level+1; i <= thisObj.maxLevelsPossible; i++) {
										toHide.push(i);
									}
									thisObj.hideDropdowns(toHide);
								}
							} else {
								thisObj.updateHiddenField(currItem.options[currItem.selectedIndex].value);
								thisObj.doOnChange(currItem, level);
							}
							// form action modifications, [3] should be the value of the href, if it's there
							if (typeof splitResult[3] != 'undefined' && splitResult[3] != '#') {
								thisObj.changeFormAction(splitResult[3]);
							} else if (splitResult[3] == '#') {
								// if there's no page for this, so go to the value of the href of the previous dropdown (or more)
								var prevLevel = level - 1;
								thisObj.changeFormAction(thisObj.determineFormAction(prevLevel));
							}
							
						}
					}
				}(this, this.dd[nextLevel], nextLevel);
			
		}
	},

	// takes in an array of numbers, numbers reference which dropdown to hide
	hideDropdowns: function (toHide) {
		for (var i = 0; i < toHide.length; i++) {
			if(typeof this.dd[i] != 'undefined') {
				this.dd[toHide[i]].style.display = 'none';
			}
		}

		
	},
	
	determineDropdownDisplayText: function (currLevel, maxLevel) {
		alert('You must override the determineDropdownDisplayText() function.');
	},

	determineFormAction: function(level) {
		// level is the level to start searching, all the way until level 0
		var newHref;
		for (var i = level; i >= 0; i--) {
			var getHref = this.dd[i].options[this.dd[i].selectedIndex].id;
			if (i == 0) { 
				newHref = getHref;
				break;
			} else { 
				var splitResult = getHref.split('__');
				if (typeof splitResult[3] != 'undefined' && splitResult[3] != '#') { 			
					newHref = splitResult[3];
					break;
				}
			}
		}
		return newHref;
	},
	
	updateHiddenField: function(val) {
		this.hiddenField.value = val;
		this.log('Setting hiddenField to ' + (val ? val : 'null') + '.');
	},
	
	/*
	obj properties:
	maxLevelsPossible: How many possible drop downs NOT COUNTING the primary level.
	formId: The id of the form.
	formAction: OPTIONAL The action for the form.
	innerDivId: The id of the div that will be created immediately inside the <form>.
	*/
	init: function (obj) {

		// Set the maxLevelsPossible.
		this.maxLevelsPossible = obj.maxLevelsPossible;
		
		// sets skipFirstLevel
		this.skipFirstLevel = obj.skipFirstLevel;
		
		// Get the drop down data.
		if (typeof obj.levels != 'undefined') this.sLevels = obj.levels();
		if (typeof obj.content != 'undefined') this.sContent = obj.content();
		if (typeof obj.href != 'undefined') this.sHref = obj.href();
		
		this.formElem = document.getElementById(obj.formId);

		// Crete the innerDiv.
		this.innerDiv 	 = document.createElement('div');
		this.innerDiv.id = obj.innerDivId;
		this.innerDiv.style.display = 'inline';
		this.formElem.insertBefore(this.innerDiv, this.formElem.firstChild);

		// Create the hidden cid field since the form's are "get".
		this.cid 		= document.createElement('input');
		this.cid.type 	= 'hidden';
		this.cid.id 	= 'cid';
		this.cid.name	= 'cid';
		for (var x in this.sLevels) {
			if (this.regex.test(this.sLevels[x].href)) {
				this.published = false;
				this.cid.value = RegExp.$1;
			} else {
				this.cid.value = this.sLevels[x].href;
			}
			break;
		}
		this.innerDiv.appendChild(this.cid);
		
		// Create the hidden family field.
		var hiddenField 	= document.createElement('input');
		hiddenField.type 	= 'hidden';
		hiddenField.id 		= 'family';
		hiddenField.name	= 'family';
		hiddenField.value = this.cid.value;
		this.innerDiv.appendChild(hiddenField);
		
		// Create the hidden field.
		this.hiddenField 		= document.createElement('input');
		this.hiddenField.type 	= 'hidden';
		this.hiddenField.name	= 'class';
		this.hiddenField.value 	= '';
		this.innerDiv.appendChild(this.hiddenField);
		
		// do not display first child dropdown
		if (this.skipFirstLevel == true) {
			
			// Creates the first dropdown in the drop down storage.
			this.dd[1] 		= document.createElement('select');
			this.dd[1].id 	= '_dropdownLvl_1';
			this.dd[1].name	= '_dropdownLvl_1';
			// Add the default option to the first drop down.
			var textToDisplay = this.determineDropdownDisplayText(1, this.maxLevelsPossible);
			this.dd[1].options[0] = new Option('Select a ' + textToDisplay, '#');
			
			// this is a loop, but we know since skipFirstLevel is true, there's only one level to display
			for (var x in this.sLevels) {
				var text = x;
				var value = this.sLevels[x].id;
				var href = this.sLevels[x].href;
			}
		
			// Creates the first dropdown in the drop down storage, is not displayed!
			this.dd[0] 		= document.createElement('select');
			this.dd[0].id 	= '_dropdownLvl_0';
			this.dd[0].name	= '';
			this.dd[0].options[0] = new Option(text, value);
			this.dd[0].options[0].id = href;
			this.dd[0].style.display = 'none';
			this.innerDiv.appendChild(this.dd[0]);
		
			// Add the options to the drop down.
			var counter = 1;
			if (this.sContent[text][value]) {
				for (var ii in this.sContent[text][value]) {
					this.dd[1].options[counter]  = new Option(this.sContent[text][value][ii].name, this.sContent[text][value][ii].classificationId);
					this.dd[1].options[counter].id = 'isLeaf' + this.sContent[text][value][ii].classificationId + '__' + this.sContent[text][value][ii].isLeafNode;
					
					if (this.sHref != null) {
						if (this.sHref[this.sContent[text][value][ii].name]['href']) {
							this.dd[1].options[counter].id += '__href' + this.sContent[text][value][ii].classificationId + '__' + this.sHref[this.sContent[text][value][ii].name]['href'];
						}
					}
					counter++;
				}
			}
			
			// Add the first drop down to the DOM.
			this.innerDiv.appendChild(this.dd[1]);
			
			// Sets the default form action to the selected item in the first drop down.
			this.changeFormAction(href);
			
			this.dd[1].onchange = function(thisObj, currItem, level) {
				return function () {
					thisObj.log('In onchange()-----------');
					thisObj.log('currItem.id = ' + currItem.id);
					thisObj.log('level = ' + level);
					if (currItem.options[currItem.selectedIndex].value == '#') {
						if (thisObj.maxLevelsPossible != 0) {
							var toHide = new Array();
							for (i = level+1; i <= thisObj.maxLevelsPossible; i++) {
								toHide.push(i);
							}
							thisObj.hideDropdowns(toHide);
						}
						// NOTE: if you want it so if you select the first option, and the hidden field updates with the 
						// value of the hidden dropdown dd[0], add logic here
						thisObj.updateHiddenField('');
						thisObj.changeFormAction(thisObj.determineFormAction(0));	
						
						
					} else {

						var checkIsLeaf = currItem.options[currItem.selectedIndex].id;
						var splitResult = checkIsLeaf.split('__');
						// reset to blank if no split results
						if (typeof splitResult[1] == 'undefined') {
							thisObj.updateHiddenField('');
						}
						if (splitResult[1] == 1) {
							thisObj.updateHiddenField(currItem.options[currItem.selectedIndex].value);
							if (thisObj.maxLevelsPossible != 0) {
								var toHide = new Array();
								// i is level+1, because we want to start hiding dropdowns below this
								for (i = level+1; i <= thisObj.maxLevelsPossible; i++) {
									toHide.push(i);
								}
								thisObj.hideDropdowns(toHide);
							}
						} else {
							thisObj.updateHiddenField(currItem.options[currItem.selectedIndex].value);
							thisObj.doOnChange(currItem, level);
						}
						// form action modifications, [3] should be the value of the href, if it's there
						if (typeof splitResult[3] != 'undefined' && splitResult[3] != '#') {
							thisObj.changeFormAction(splitResult[3]);
						} else if (splitResult[3] == '#') {
							// if there's no page for this, so go to the value of the href of the previous dropdown (or more)
							var prevLevel = level - 1;
							thisObj.changeFormAction(thisObj.determineFormAction(prevLevel));
						}
									
					}
				}
			}(this, this.dd[1], 1);
			
			// Create disabled, display:none placeholders for the secondary dropdowns.
			// we check if > 1 because we are displaying the first child on default
			if (this.maxLevelsPossible > 1) {
				for(i = 2; i <= this.maxLevelsPossible; i++) {
					this.dd[i] = document.createElement('select');
					this.dd[i].style.display = 'none';
					this.dd[i].disabled = 'disabled';
					this.dd[i].name = '_dropdownLvl_' + i;
					this.dd[i].id = '_dropdownLvl_' + i;
					this.innerDiv.appendChild(this.dd[i]);
				}
			}	
			
	
			
			
		
		} else {
			// Creates the first dropdown in the drop down storage.
			this.dd[0] 		= document.createElement('select');
			this.dd[0].id 	= '_dropdownLvl_0';
			this.dd[0].name	= '_dropdownLvl_0';
		
			// Add the default option to the first drop down.
			var textToDisplay = this.determineDropdownDisplayText(0, 1);
			this.dd[0].options[0] = new Option('Select a ' + textToDisplay, '');
			this.dd[0].options[0].id = '';
			
			// Populates the first drop down.
			var i = 1;
			for (var x in this.sLevels) {
				this.dd[0].options[i] = new Option(x, this.sLevels[x].id);
				this.dd[0].options[i].id = this.sLevels[x].href;
				i++;
			}

			// Add the first drop down to the DOM.
			this.innerDiv.appendChild(this.dd[0]);
			
			// Sets the default form action to the selected item in the first drop down.
			this.changeFormAction(this.dd[0].options[this.dd[0].selectedIndex].id);
			
			
			// Sets the onchange function, change the form action.
			this.dd[0].onchange = function(thisObj, currItem, level) {
				return function() {
					// if this is the default option
					if (currItem.options[currItem.selectedIndex].value == '#') {
						if (thisObj.maxLevelsPossible != 0) {
								var toHide = new Array();
								for (i = level+1; i <= thisObj.maxLevelsPossible; i++) {
									toHide.push(i);
								}
								thisObj.hideDropdowns(toHide);
						}
						thisObj.updateHiddenField('');
						thisObj.changeFormAction('#');
					// if there are no children for the currently selected option
					} else if (thisObj.sLevels[currItem.options[currItem.selectedIndex].text].maxLevel == 1) {
						if (thisObj.maxLevelsPossible != 0) {
							var toHide = new Array();
							for (i = 1; i <= thisObj.maxLevelsPossible; i++) {
								if(typeof thisObj.dd[i] != 'undefined') {
									toHide.push(i);
								}
							}
							thisObj.hideDropdowns(toHide);
						}
						thisObj.updateHiddenField(currItem.options[currItem.selectedIndex].value);
						thisObj.changeFormAction(currItem.options[currItem.selectedIndex].id);
					} else {
					
						thisObj.updateHiddenField(currItem.options[currItem.selectedIndex].value);
						thisObj.changeFormAction(currItem.options[currItem.selectedIndex].id);
						thisObj.doOnChange(currItem, 0);
					}
				}
			}(this, this.dd[0], 0);
			
			// Create disabled, display:none placeholders for the secondary dropdowns.
			if (this.maxLevelsPossible != 0) {
				for(i = 1; i <= this.maxLevelsPossible; i++) {
					this.dd[i] = document.createElement('select');
					this.dd[i].style.display = 'none';
					this.dd[i].disabled = 'disabled';
					this.dd[i].name = '_dropdownLvl_' + i;
					this.dd[i].id = '_dropdownLvl_' + i;
					this.innerDiv.appendChild(this.dd[i]);
				}
			}
		}	
	}
}

var PINT_drop_down_series_manager = {
	
	dd: {},
	
	ddIdList: [],
	
	ddConfig: {},
	
	ddNavItems: {},
	
	init: function () {
		for (var i = 0; i < this.ddIdList.length; i++) {
			if(typeof this.ddNavItems[this.ddIdList[i]] != 'undefined') {
				this.dd[this.ddIdList[i]] = new PINT_drop_down();
				if(typeof this.ddConfig[this.ddIdList[i]] != 'undefined') {
					this.dd[this.ddIdList[i]].config = this.ddConfig[this.ddIdList[i]];
				}
				this.dd[this.ddIdList[i]].navitems = this.ddNavItems[this.ddIdList[i]]
				if (this.ddIdList[i] != 'profiles_search_box' && this.ddIdList[i] != 'nav_product_search_box') {
					this.dd[this.ddIdList[i]].init(this.ddIdList[i]);	
				}
			}
		}
	}
};


var PINT_drop_down = function() {
	
	// Debug mode.
	this.debugMode = false;
	
	// Nav items pass in via JSON from manager.
	this.navitems = [];
	
	// Configuration items passed in via JSON from manager.
	this.config = {};
	
	// Reference to the form element.
	this.formElem = null;
	
	// Reference to the div built inside the form we're building in.
	this.innerDiv = null;
	
	// Drop down storage array.
	this.dd = new Array();
	
	// Default the function.
	this.determineDropdownDisplayText = this.standardDetermineDropdownDisplayText;
}


PINT_drop_down.prototype = {
	
	log: function(x) {
		if (this.debugMode) {
			console.log(x);
		}
	},	

	standardDetermineDropdownDisplayText: function(currLevel, scope) {
		switch (currLevel) {
			case 1:
				if (typeof this.config.textLevel1 != 'undefined') return this.config.textLevel1;
				else return 'Family';
				break;
			case 2:
				if (typeof this.config.textLevel2 != 'undefined') return this.config.textLevel2;
				else return 'Class';
				break;
			case 3:
				if (scope == 1) return 'Subfamily';
				else if (scope == 2) return 'Class';
				else return 'Subclass';
				break;
			case 4:
				if (currLevel == 1) return 'Subfamily';
				else if (currLevel == 2) return 'Class';
				else if (currLevel == 3) return 'Subclass';
				break;
			case 5:
				if (currLevel == 1) return 'Subfamily';
				else if (currLevel == 2) return 'Class';
				else if (currLevel == 3) return 'Subclass';
				else if (currLevel == 4) return 'Class';
				break;
		}
	},
	
	getNavItemsByLevel: function(level) {
		var returnArray = new Array();
		for (var i = 0; i < this.navitems.length; i++) {
			if (this.navitems[i].level == level) {
				returnArray.push(this.navitems[i]);
			}
		}
		return returnArray;
	},
	
	getNavItemsByLevelAndGeneology: function(level, geneology) {
		var returnArray = new Array();
		for (var i = 0; i < this.navitems.length; i++) {
			if (this.navitems[i].level == level && this.navitems[i].geneology == geneology) {
				returnArray.push(this.navitems[i]);
			}
		}
		return returnArray;
	},
	
	getNavItemByHref: function(href) {
		if (href == '#') {
			return false;
		} else {
			var returnArray = new Array();
			for (var i = 0; i < this.navitems.length; i++) {
				if (this.navitems[i].href == href) {
					return this.navitems[i];
				}
			}
		}
	},
	
	createSelectElement: function(level, name) {
		this.dd[level] 		= document.createElement('select');
		this.dd[level].id 	= name;
		this.dd[level].name	= name;
		this.dd[level].options.length = 0;
	},
	
	changeFormAction: function (currentlySelectedItem) {
		this.log('CHANGING FORM ACTION TO: ' + currentlySelectedItem.id);
		if (!this.config.published) {
			this.formElem.action = currentlySelectedItem.id;
			this.log('CHANGING HIDDEN CID TO: ' + currentlySelectedItem.value);
			this.cid.value = currentlySelectedItem.value;
		} else {
			this.formElem.action = 'http://www.caliperls.com' + currentlySelectedItem.id;
		}
	},
	
	// Remove the child levels beyond the current level's immediate child.
	// Example: if the current level is 3, we need to display level 4 and
	// hide anything greater than 4. (5,6, etc..).
	removeDropdowns: function (start) {
		if (this.dd.length != 2) {
			for (var i = this.dd.length; i > start; i--) {
				if(typeof this.dd[i] != 'undefined') {
					this.log('REMOVING DROP DOWN AT INDEX: ' + i);
					this.innerDiv.removeChild(this.innerDiv.lastChild);
					this.dd.pop();
				}
			}
		}
	},
	
	onChangeFunction: function (thisObj, currItem, level) {
		thisObj.removeDropdowns(level);
		thisObj.changeFormAction(currItem.options[currItem.selectedIndex]);
		this.log(currItem.options[currItem.selectedIndex].id);
		var currNavItem = thisObj.getNavItemByHref(currItem.options[currItem.selectedIndex].id);
		if (currNavItem) {
			if (currNavItem.type == 'section' && currNavItem.isNav) {
				thisObj.doOnChange(currNavItem);
			}
		}
	},
	
	doOnChange: function (currentNavItem) {
		this.log('In doOnChange()---------------' + currentNavItem.level);
		
		var nextLevel = currentNavItem.level + 1;
		
		var navItemsToAdd = this.getNavItemsByLevelAndGeneology(nextLevel, currentNavItem.geneology + ':' + currentNavItem.cid);
		
		// We only display the next drop downs if it has items.
		if (navItemsToAdd.length >= 1) {
		
			// Display the next drop down.
			var textToDisplay = this.determineDropdownDisplayText(nextLevel);
			this.createSelectElement(nextLevel, textToDisplay.toLowerCase());
			this.dd[nextLevel].style.display = 'block';
			this.dd[nextLevel].disabled = false;
			this.dd[nextLevel].options[0] = new Option('Select a ' + textToDisplay, '#');
			
			// Add the options to the drop down.
			for (var i = 0; i < navItemsToAdd.length; i++) {
				this.dd[nextLevel].options[(i + 1)] = new Option(navItemsToAdd[i].linkText, navItemsToAdd[i].cid);
				this.dd[nextLevel].options[(i + 1)].id = navItemsToAdd[i].href;
			}
	
			// Sets the onchange function, change the form action.
			this.dd[nextLevel].onchange = function(thisObj, currItem, level) {
				return function() {
					thisObj.onChangeFunction(thisObj, currItem, level);
				}
			}(this, this.dd[nextLevel], nextLevel);

			// Add the drop down to the DOM.
			this.innerDiv.appendChild(this.dd[nextLevel]);
		}
	},
	
	init: function (formId) {

		this.formElem = document.getElementById(formId);
		this.formElem.method = 'get';
		
		// Create the innerDiv.
		this.innerDiv 	 = document.createElement('div');
		this.innerDiv.id = 'inner-' + formId;
		this.innerDiv.style.display = 'inline';
		this.formElem.insertBefore(this.innerDiv, this.formElem.firstChild);
		
		if (!this.config.published) {
			this.cid 		= document.createElement('input');
			this.cid.type 	= 'hidden';
			this.cid.id 	= 'cid';
			this.cid.name	= 'cid';
			this.cid.value	= '98';
			this.innerDiv.appendChild(this.cid);
		}
		
		// Gets the name of the first drop down.
		var textToDisplay = this.determineDropdownDisplayText(1);
		
		// Creates the first dropdown in the drop down storage.
		this.createSelectElement(1, textToDisplay.toLowerCase());
	
		// Add the default option to the first drop down.
		this.dd[1].options[0] = new Option('Select a ' + textToDisplay, '');
		if (!this.config.published) {
			this.dd[1].options[0].id = '/?cid=98';
			this.dd[1].options[0].value = '98';
		} else {
			this.dd[1].options[0].id = '/products/product-search/';
		}
		// Sets the default action to go back to the search page.
		this.changeFormAction(this.dd[1].options[0]);
		
		this.log('dd length = ' + this.dd.length);
		
		// Populates the first drop down.
		var firstLevelNavItems = this.getNavItemsByLevel(1);
		for (var i = 0; i < firstLevelNavItems.length; i++) {
			this.dd[1].options[(i + 1)] = new Option(firstLevelNavItems[i].linkText, firstLevelNavItems[i].cid);
			this.dd[1].options[(i + 1)].id = firstLevelNavItems[i].href;
		}

		// Add the first drop down to the DOM.
		this.innerDiv.appendChild(this.dd[1]);
		
		// Sets the onchange function, change the form action.
		this.dd[1].onchange = function(thisObj, currItem, level) {
			return function() {
				thisObj.onChangeFunction(thisObj, currItem, level);
			}
		}(this, this.dd[1], 1);
	}
}

// Select Your Country dropdown ============================================
function jumpToTargetPage(selectId) {
    var country_select = document.getElementById(selectId);
    var selectedPage = country_select.selectedIndex; 
	var toLocation = country_select.options[selectedPage].value;  
	window.location= toLocation;
}
// END: Select Your Country dropdown =======================================

function DisableEventFormFields()
{
        if (DisableEventFormFields.arguments.length <= 1) return false;
        var radioElementValue = DisableEventFormFields.arguments[0].value;

	for (var fieldIndex = 1; fieldIndex < DisableEventFormFields.arguments.length; fieldIndex++)
	{
	        currentElement = document.getElementById(DisableEventFormFields.arguments[fieldIndex])

		if (currentElement)
		{
			if (radioElementValue == 1)
			{
				currentElement.disabled = false;
				currentElement.className = "textInput";
			}
			if (radioElementValue == 0)
			{
				currentElement.disabled = true;
				currentElement.className = "textInputDisabled";
			}
		}
	}
}

/*
	Lightbox JS: Fullsize Image Overlays 
	by Lokesh Dhakar - http://www.huddletogether.com

	For more information on this script, visit:
	http://huddletogether.com/projects/lightbox/

	Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
	(basically, do anything you want, just leave my name and link)
	
	Table of Contents
	-----------------
	Configuration
	
	Functions
	- getPageScroll()
	- getPageSize()
	- pause()
	- getKey()
	- listenKey()
	- showLightbox()
	- hideLightbox()
	- initLightbox()
	- addLoadEvent()
	
	Function Calls
	- addLoadEvent(initLightbox)

*/

// Configuration

// If you would like to use a custom loading image or close button reference them in the next two lines.
//var loadingImage = themeRootDirectory + '/images/lb_loading.gif';		
//var closeButton = themeRootDirectory  + '/images/lb_closelabel.gif';		
var loadingImage = '';
var closeButton = '';

//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll() {
	var yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}
	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}


//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize() {
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


//
// pause(numberMillis)
// Pauses code execution for specified time. Uses busy code, not good.
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
//
function pause(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}


//
// getKey(key)
// Gets keycode. If 'x' is pressed then it hides the lightbox.
//
function getKey(e){
	if (e == null) { // ie
		keycode = event.keyCode;
	} else { // mozilla
		keycode = e.which;
	}
	key = String.fromCharCode(keycode).toLowerCase();
	if(key == 'x'){ hideLightbox(); }
}


//
// listenKey()
//
function listenKey () {	document.onkeypress = getKey; }
	

//
// showLightbox()
// Preloads images. Pleaces new image in lightbox then centers and displays.
//
function showLightbox(objLink) {
	// prep objects
	var objOverlay = document.getElementById('overlay');
	var objLightbox = document.getElementById('lightbox');
	var objCaption = document.getElementById('lightboxCaption');
	var objImage = document.getElementById('lightboxImage');
	var objLoadingImage = document.getElementById('loadingImage');
	var objLightboxDetails = document.getElementById('lightboxDetails');
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	// center loadingImage if it exists
	if (objLoadingImage) {
		objLoadingImage.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - objLoadingImage.height) / 2) + 'px');
		objLoadingImage.style.left = (((arrayPageSize[0] - 20 - objLoadingImage.width) / 2) + 'px');
		objLoadingImage.style.display = 'block';
	}
	// set height of Overlay to take up whole page and show
	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.display = 'block';
	// preload image
	imgPreload = new Image();
	imgPreload.onload=function(){
		objImage.src = objLink.href;
		// center lightbox and make sure that the top and left values are not negative
		// and the image placed outside the viewport
		var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - imgPreload.height) / 2);
		var lightboxLeft = ((arrayPageSize[0] - 20 - imgPreload.width) / 2);
		objLightbox.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px";
		objLightbox.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";
		objLightboxDetails.style.width = imgPreload.width + 'px';
		if(objLink.getAttribute('title')){
			objCaption.style.display = 'block';
			//objCaption.style.width = imgPreload.width + 'px';
			objCaption.innerHTML = objLink.getAttribute('title');
		} else {
			objCaption.style.display = 'none';
		}
		// A small pause between the image loading and displaying is required with IE,
		// this prevents the previous image displaying for a short burst causing flicker.
		if (navigator.appVersion.indexOf("MSIE")!=-1){
			pause(250);
		} 
		if (objLoadingImage) {	objLoadingImage.style.display = 'none'; }
		// Hide select boxes as they will 'peek' through the image in IE
		selects = document.getElementsByTagName("select");
        for (i = 0; i != selects.length; i++) {
					selects[i].style.visibility = "hidden";
        }
		objLightbox.style.display = 'block';
		// After image is loaded, update the overlay height as the new image might have
		// increased the overall page height.
		arrayPageSize = getPageSize();
		objOverlay.style.height = (arrayPageSize[1] + 'px');
		// Check for 'x' keypress
		listenKey();
		return false;
	}
	imgPreload.src = objLink.href;
}


//
// hideLightbox()
//
function hideLightbox() {
	// get objects
	objOverlay = document.getElementById('overlay');
	objLightbox = document.getElementById('lightbox');
	// hide lightbox and overlay
	objOverlay.style.display = 'none';
	objLightbox.style.display = 'none';
	// make select boxes visible
	selects = document.getElementsByTagName("select");
    for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
	// disable keypress listener
	document.onkeypress = '';
}


//
// initLightbox()
// Function runs on window load, going through link tags looking for rel="lightbox".
// These links receive onclick events that enable the lightbox display for their targets.
// The function also inserts html markup at the top of the page which will be used as a
// container for the overlay pattern and the inline image.
//
function initLightbox() {
	if (!document.getElementsByTagName){ return; }
	var anchors = document.getElementsByTagName("a");
	// loop through all anchor tags
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "lightbox")){
			anchor.onclick = function () {showLightbox(this); return false;}
		}
	}
	// the rest of this code inserts html at the top of the page that looks like this:
	/*
	<div id="overlay"><a href="#" onclick="hideLightbox(); return false;"><img id="loadingImage" /></a></div>
		<div id="lightbox">
			<a href="#" onclick="hideLightbox(); return false;" title="Click anywhere to close image">
				<img id="closeButton" />
				<img id="lightboxImage" />
			</a>
		<div id="lightboxDetails">
			<div id="lightboxCaption"></div>
			<div id="keyboardMsg"></div>
		</div>
	</div>
	*/
	var objBody = document.getElementsByTagName("body").item(0);
	// create overlay div and hardcode some functional styles (aesthetic styles are in CSS file)
	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.onclick = function () {hideLightbox(); return false;}
	objOverlay.style.display = 'none';
	objOverlay.style.position = 'absolute';
	objOverlay.style.top = '0';
	objOverlay.style.left = '0';
	objOverlay.style.zIndex = '90';
 	objOverlay.style.width = '100%';
	objBody.insertBefore(objOverlay, objBody.firstChild);
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	// preload and create loader image
	var imgPreloader = new Image();
	// if loader image found, create link to hide lightbox and create loadingimage
	imgPreloader.onload=function(){
		var objLoadingImageLink = document.createElement("a");
		objLoadingImageLink.setAttribute('href','#');
		objLoadingImageLink.onclick = function () {hideLightbox(); return false;}
		objOverlay.appendChild(objLoadingImageLink);
		var objLoadingImage = document.createElement("img");
		objLoadingImage.src = loadingImage;
		objLoadingImage.setAttribute('id','loadingImage');
		objLoadingImage.style.position = 'absolute';
		objLoadingImage.style.zIndex = '150';
		objLoadingImageLink.appendChild(objLoadingImage);
		imgPreloader.onload=function(){};	//	clear onLoad, as IE will flip out w/animated gifs
		return false;
	}
	imgPreloader.src = loadingImage;
	// create lightbox div, same note about styles as above
	var objLightbox = document.createElement("div");
	objLightbox.setAttribute('id','lightbox');
	objLightbox.style.display = 'none';
	objLightbox.style.position = 'absolute';
	objLightbox.style.zIndex = '100';	
	objBody.insertBefore(objLightbox, objOverlay.nextSibling);
	// create link
	var objLink = document.createElement("a");
	objLink.setAttribute('href','#');
	objLink.setAttribute('title','Click to close');
	objLink.onclick = function () {hideLightbox(); return false;}
	objLightbox.appendChild(objLink);
	// preload and create close button image
	var imgPreloadCloseButton = new Image();
	// if close button image found, 
	imgPreloadCloseButton.onload=function(){
		var objCloseButton = document.createElement("img");
		objCloseButton.src = closeButton;
		objCloseButton.setAttribute('id','closeButton');
		objCloseButton.style.position = 'absolute';
		objCloseButton.style.zIndex = '200';
		objLink.appendChild(objCloseButton);
		return false;
	}
	imgPreloadCloseButton.src = closeButton;
	// create image
	var objImage = document.createElement("img");
	objImage.setAttribute('id','lightboxImage');
	objLink.appendChild(objImage);
	// create details div, a container for the caption and keyboard message
	var objLightboxDetails = document.createElement("div");
	objLightboxDetails.setAttribute('id','lightboxDetails');
	objLightbox.appendChild(objLightboxDetails);
	// create caption
	var objCaption = document.createElement("div");
	objCaption.setAttribute('id','lightboxCaption');
	objCaption.style.display = 'none';
	objLightboxDetails.appendChild(objCaption);
	// create keyboard message
	var objKeyboardMsg = document.createElement("div");
	objKeyboardMsg.setAttribute('id','keyboardMsg');
	objKeyboardMsg.innerHTML = '<a href="#" onclick="hideLightbox(); return false;">press <kbd>X</kbd> to close</a>';
	objLightboxDetails.appendChild(objKeyboardMsg);
}


//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEvent(func) {	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
			oldonload();
			func();
		}
	}
}
//addLoadEvent(initLightbox);	// run initLightbox onLoad

caliperlsSafeAddOnload("initLightbox()");



/*
        Last updated: 10.28.08 (Flash 10)
	sIFR 2.0.2
	Copyright 2004 - 2006 Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben
	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
*/

var hasFlash=function(){var a=6;if(navigator.appVersion.indexOf("MSIE")!=-1&&navigator.appVersion.indexOf("Windows")>-1){document.write('<script language="VBScript"\> \non error resume next \nhasFlash = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & '+a+'))) \n</script\> \n');if(window.hasFlash!=null)return window.hasFlash}if(navigator.mimeTypes&&navigator.mimeTypes["application/x-shockwave-flash"]&&navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){var b=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description;var aDescription = b.split(" "); var aMajorVersion = aDescription[2].split(".");return parseInt(aMajorVersion[0]) >=a }return false}();String.prototype.normalize=function(){return this.replace(/\s+/g," ")};if(Array.prototype.push==null){Array.prototype.push=function(){var i=0,a=this.length,b=arguments.length;while(i<b){this[a++]=arguments[i++]}return this.length}}if(!Function.prototype.apply){Function.prototype.apply=function(a,b){var c=[];var d,e;if(!a)a=window;if(!b)b=[];for(var i=0;i<b.length;i++){c[i]="b["+i+"]"}e="a.__applyTemp__("+c.join(",")+");";a.__applyTemp__=this;d=eval(e);a.__applyTemp__=null;return d}}function named(a){return new named.Arguments(a)}named.Arguments=function(a){this.oArgs=a};named.Arguments.prototype.constructor=named.Arguments;named.extract=function(a,b){var c,d;var i=a.length;while(i--){d=a[i];if(d!=null&&d.constructor!=null&&d.constructor==named.Arguments){c=a[i].oArgs;break}}if(c==null)return;for(e in c)if(b[e]!=null)b[e](c[e]);return};var parseSelector=function(){var a=/^([^#.>`]*)(#|\.|\>|\`)(.+)$/;function r(s,t){var u=s.split(/\s*\,\s*/);var v=[];for(var i=0;i<u.length;i++)v=v.concat(b(u[i],t));return v}function b(c,d,e){c=c.normalize().replace(" ","`");var f=c.match(a);var g,h,i,j,k,n;var l=[];if(f==null)f=[c,c];if(f[1]=="")f[1]="*";if(e==null)e="`";if(d==null)d=document;switch(f[2]){case "#":k=f[3].match(a);if(k==null)k=[null,f[3]];g=document.getElementById(k[1]);if(g==null||(f[1]!="*"&&!o(g,f[1])))return l;if(k.length==2){l.push(g);return l}return b(k[3],g,k[2]);case ".":if(e!=">")h=m(d,f[1]);else h=d.childNodes;for(i=0,n=h.length;i<n;i++){g=h[i];if(g.nodeType!=1)continue;k=f[3].match(a);if(k!=null){if(g.className==null||g.className.match("(\\s|^)"+k[1]+"(\\s|$)")==null)continue;j=b(k[3],g,k[2]);l=l.concat(j)}else if(g.className!=null&&g.className.match("(\\s|^)"+f[3]+"(\\s|$)")!=null)l.push(g)}return l;case ">":if(e!=">")h=m(d,f[1]);else h=d.childNodes;for(i=0,n=h.length;i<n;i++){g=h[i];if(g.nodeType!=1)continue;if(!o(g,f[1]))continue;j=b(f[3],g,">");l=l.concat(j)}return l;case "`":h=m(d,f[1]);for(i=0,n=h.length;i<n;i++){g=h[i];j=b(f[3],g,"`");l=l.concat(j)}return l;default:if(e!=">")h=m(d,f[1]);else h=d.childNodes;for(i=0,n=h.length;i<n;i++){g=h[i];if(g.nodeType!=1)continue;if(!o(g,f[1]))continue;l.push(g)}return l}}function m(d,o){if(o=="*"&&d.all!=null)return d.all;return d.getElementsByTagName(o)}function o(p,q){return q=="*"?true:p.nodeName.toLowerCase().replace("html:", "")==q.toLowerCase()}return r}();var sIFR=function(){var a="http://www.w3.org/1999/xhtml";var b=false;var c=false;var d;var ah=[];var al=document;var ak=al.documentElement;var am=window;var au=al.addEventListener;var av=am.addEventListener;var f=function(){var g=navigator.userAgent.toLowerCase();var f={a:g.indexOf("applewebkit")>-1,b:g.indexOf("safari")>-1,c:navigator.product!=null&&navigator.product.toLowerCase().indexOf("konqueror")>-1,d:g.indexOf("opera")>-1,e:al.contentType!=null&&al.contentType.indexOf("xml")>-1,f:true,g:true,h:null,i:null,j:null,k:null};f.l=f.a||f.c;f.m=!f.a&&navigator.product!=null&&navigator.product.toLowerCase()=="gecko";if(f.m&&g.match(/.*gecko\/(\d{8}).*/))f.j=new Number(g.match(/.*gecko\/(\d{8}).*/)[1]);f.n=g.indexOf("msie")>-1&&!f.d&&!f.l&&!f.m;f.o=f.n&&g.match(/.*mac.*/)!=null;if(f.d&&g.match(/.*opera(\s|\/)(\d+\.\d+)/))f.i=new Number(g.match(/.*opera(\s|\/)(\d+\.\d+)/)[2]);if(f.n||(f.d&&f.i<7.6))f.g=false;if(f.a&&g.match(/.*applewebkit\/(\d+).*/))f.k=new Number(g.match(/.*applewebkit\/(\d+).*/)[1]);if(am.hasFlash&&(!f.n||f.o)){var aj=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description;f.h=parseInt(aj.charAt(aj.indexOf(".")-1))}if(g.match(/.*(windows|mac).*/)==null||f.o||f.c||(f.d&&(g.match(/.*mac.*/)!=null||f.i<7.6))||(f.b&&f.h<7)||(!f.b&&f.a&&f.k<312)||(f.m&&f.j<20020523))f.f=false;if(!f.o&&!f.m&&al.createElementNS)try{al.createElementNS(a,"i").innerHTML=""}catch(e){f.e=true}f.p=f.c||(f.a&&f.k<312);return f}();function at(){return{bIsWebKit:f.a,bIsSafari:f.b,bIsKonq:f.c,bIsOpera:f.d,bIsXML:f.e,bHasTransparencySupport:f.f,bUseDOM:f.g,nFlashVersion:f.h,nOperaVersion:f.i,nGeckoBuildDate:f.j,nWebKitVersion:f.k,bIsKHTML:f.l,bIsGecko:f.m,bIsIE:f.n,bIsIEMac:f.o,bUseInnerHTMLHack:f.p}}if(am.hasFlash==false||!al.getElementsByTagName||!al.getElementById||(f.e&&(f.p||f.n)))return{UA:at()};function af(e){if((!k.bAutoInit&&(am.event||e)!=null)||!l(e))return;b=true;for(var i=0,h=ah.length;i<h;i++)j.apply(null,ah[i]);ah=[]}var k=af;function l(e){if(c==false||k.bIsDisabled==true||((f.e&&f.m||f.l)&&e==null&&b==false)||(al.body==null||al.getElementsByTagName("body").length==0))return false;return true}function m(n){if(f.n)return n.replace(new RegExp("%\d{0}","g"),"%25");return n.replace(new RegExp("%(?!\d)","g"),"%25")}function as(p,q){return q=="*"?true:p.nodeName.toLowerCase().replace("html:", "")==q.toLowerCase()}function o(p,q,r,s,t){var u="";var v=p.firstChild;var w,x,y,z;if(s==null)s=0;if(t==null)t="";while(v){if(v.nodeType==3){z=v.nodeValue.replace("<","&lt;");switch(r){case "lower":u+=z.toLowerCase();break;case "upper":u+=z.toUpperCase();break;default:u+=z}}else if(v.nodeType==1){if(as(v,"a")&&!v.getAttribute("href")==false){if(v.getAttribute("target"))t+="&sifr_url_"+s+"_target="+v.getAttribute("target");t+="&sifr_url_"+s+"="+m(v.getAttribute("href")).replace(/&/g,"%26");u+='<a href="asfunction:_root.launchURL,'+s+'">';s++}else if(as(v,"br"))u+="<br/>";if(v.hasChildNodes()){y=o(v,null,r,s,t);u+=y.u;s=y.s;t=y.t}if(as(v,"a"))u+="</a>"}w=v;v=v.nextSibling;if(q!=null){x=w.parentNode.removeChild(w);q.appendChild(x)}}return{"u":u,"s":s,"t":t}}function A(B){if(al.createElementNS&&f.g)return al.createElementNS(a,B);return al.createElement(B)}function C(D,E,z){var p=A("param");p.setAttribute("name",E);p.setAttribute("value",z);D.appendChild(p)}function F(p,G){var H=p.className;if(H==null)H=G;else H=H.normalize()+(H==""?"":" ")+G;p.className=H}function aq(ar){var a=ak;if(k.bHideBrowserText==false)a=al.getElementsByTagName("body")[0];if((k.bHideBrowserText==false||ar)&&a)if(a.className==null||a.className.match(/\bsIFR\-hasFlash\b/)==null)F(a, "sIFR-hasFlash")}function j(I,J,K,L,M,N,O,P,Q,R,S,r,T){if(!l())return ah.push(arguments);aq();named.extract(arguments,{sSelector:function(ap){I=ap},sFlashSrc:function(ap){J=ap},sColor:function(ap){K=ap},sLinkColor:function(ap){L=ap},sHoverColor:function(ap){M=ap},sBgColor:function(ap){N=ap},nPaddingTop:function(ap){O=ap},nPaddingRight:function(ap){P=ap},nPaddingBottom:function(ap){Q=ap},nPaddingLeft:function(ap){R=ap},sFlashVars:function(ap){S=ap},sCase:function(ap){r=ap},sWmode:function(ap){T=ap}});var U=parseSelector(I);if(U.length==0)return false;if(S!=null)S="&"+S.normalize();else S="";if(K!=null)S+="&textcolor="+K;if(M!=null)S+="&hovercolor="+M;if(M!=null||L!=null)S+="&linkcolor="+(L||K);if(O==null)O=0;if(P==null)P=0;if(Q==null)Q=0;if(R==null)R=0;if(N==null)N="#FFFFFF";if(T=="transparent")if(!f.f)T="opaque";else N="transparent";if(T==null)T="";var p,V,W,X,Y,Z,aa,ab,ac;var ad=null;for(var i=0,h=U.length;i<h;i++){p=U[i];if(p.className!=null&&p.className.match(/\bsIFR\-replaced\b/)!=null)continue;V=p.offsetWidth-R-P;W=p.offsetHeight-O-Q;aa=A("span");aa.className="sIFR-alternate";ac=o(p,aa,r);Z="txt="+m(ac.u).replace(/\+/g,"%2B").replace(/&/g,"%26").replace(/\"/g, "%22").normalize() + S + "&w=" + V + "&h=" + W + ac.t;F(p,"sIFR-replaced");if(ad==null||!f.g){if(!f.g){if(!f.n)p.innerHTML=['<embed class="sIFR-flash" type="application/x-shockwave-flash" src="',J,'" quality="best" wmode="',T,'" bgcolor="',N,'" flashvars="',Z,'" width="',V,'" height="',W,'" sifr="true"></embed>'].join("");else p.innerHTML=['<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" sifr="true" width="',V,'" height="',W,'" class="sIFR-flash"><param name="movie" value="',J,"?",Z,'"></param><param name="quality" value="best"></param><param name="wmode" value="',T,'"></param><param name="bgcolor" value="',N,'"></param> </object>'].join('')}else{if(f.d){ab=A("object");ab.setAttribute("data",J);C(ab,"quality","best");C(ab,"wmode",T);C(ab,"bgcolor",N)}else{ab=A("embed");ab.setAttribute("src",J);ab.setAttribute("quality","best");ab.setAttribute("flashvars",Z);ab.setAttribute("wmode",T);ab.setAttribute("bgcolor",N)}ab.setAttribute("sifr","true");ab.setAttribute("type","application/x-shockwave-flash");ab.className="sIFR-flash";if(!f.l||!f.e)ad=ab.cloneNode(true)}}else ab=ad.cloneNode(true);if(f.g){if(f.d)C(ab,"flashvars",Z);else ab.setAttribute("flashvars",Z);ab.setAttribute("width",V);ab.setAttribute("height",W);ab.style.width=V+"px";ab.style.height=W+"px";p.appendChild(ab)}p.appendChild(aa);if(f.p)p.innerHTML+=""}if(f.n&&k.bFixFragIdBug)setTimeout(function(){al.title=d},0)}function ai(){d=al.title}function ae(){if(k.bIsDisabled==true)return;c=true;if(k.bHideBrowserText)aq(true);if(am.attachEvent)am.attachEvent("onload",af);else if(!f.c&&(al.addEventListener||am.addEventListener)){if(f.a&&f.k>=132&&am.addEventListener)am.addEventListener("load",function(){setTimeout("sIFR({})",1)},false);else{if(al.addEventListener)al.addEventListener("load",af,false);if(am.addEventListener)am.addEventListener("load",af,false)}}else if(typeof am.onload=="function"){var ag=am.onload;am.onload=function(){ag();af()}}else am.onload=af;if(!f.n||am.location.hash=="")k.bFixFragIdBug=false;else ai()}k.UA=at();k.bAutoInit=true;k.bFixFragIdBug=true;k.replaceElement=j;k.updateDocumentTitle=ai;k.appendToClassName=F;k.setup=ae;k.debug=function(){aq(true)};k.debug.replaceNow=function(){ae();k()};k.bIsDisabled=false;k.bHideBrowserText=true;return k}();

if(typeof sIFR == "function" && !sIFR.UA.bIsIEMac && sIFR.UA.bHasTransparencySupport){
	sIFR.setup();
};



/* Constants */
var rootDirectory = "";

PINT_BrowserDetection("browserupgrade.htm");

/**
 * Caliperls primary init().
 */
 
function init() {
	
	// Where are we?
	var fileName  = PINT_GetCurrentFileName();
	var directory = PINT_GetCurrentDirectory();
	PINT_AnchorPopupWindows();
	// Set up the sifr environment.
	PINT_sifr();

    // Set up the product drop down links and content.
	initProdNav();

	// Get the product drop down content div and set a few common class names.
    var prodInfoHeader = document.getElementById('prod_tab');
	var prodMenu = document.getElementById('prod_box');
	
	// IE6 hide select boxes.
	var navItems = document.getElementById('nav').childNodes;
	if (navItems) {
		YAHOO.util.Event.addListener(navItems, "mouseover", caliperHideSelects); 
		YAHOO.util.Event.addListener(navItems, "mouseout", caliperShowSelects);
	}
	
	// Create the nav showhide object.
	if (prodInfoHeader && prodMenu) {
		var prodHeader = new PINT_showhide();
		prodHeader.init(prodInfoHeader, prodMenu, 'products hover', 'products');
	}
	
	
	if (typeof PINT_assay_search_levels != 'undefined') {

		// Create a new drop down series object.
		var assayDropDown = new PINT_drop_down_series();
		assayDropDown.debugMode = false;
		
		// We must override this function to display the proper names at each level.
		assayDropDown.determineDropdownDisplayText = function (currLevel, maxLevel) {
			switch (maxLevel) {
				case 1:
					return 'Family';
					break;
				case 2:
					return 'Class';
					break;
				case 3:
					if (currLevel == 1) return 'Subfamily';
					else if (currLevel == 2) return 'Class';
					break;
				case 4:
					if (currLevel == 1) return 'Subfamily';
					else if (currLevel == 2) return 'Class';
					else if (currLevel == 3) return 'Subclass';
				break;
			}
		}
		
		/*
		args:
		maxLevelsPossible: How many possible drop downs NOT COUNTING the primary(first) level which will be level 0.
		fieldNamePrefix: Will create drop downs with the name of $fieldNamePrefix_dropdownLvl_$level. (Ex: assay_dropdownLvl_3).
		formId: The id of the form.
		formAction: OPTIONAL The action for the form.
		innerDivId: The id of the div that will be created immediately inside the <form>.
		hiddenFieldName: Name of the hidden form field.
		*/
		
		var obj = {
			maxLevelsPossible: 4,
			fieldNamePrefix: 'assay_family',
			formId: 'assay_search_box',
			formAction: null,
			innerDivId: 'search_gpcr',
			hiddenFieldName: 'assayClassification',
		        levels: PINT_assay_search_levels,
		        content: PINT_assay_search_content
		};
		
		assayDropDown.init(obj);
	}
	
	
	if (typeof PINT_product_search_levels != 'undefined') {

		/*---------------product menu drop down ----------------*/
		// Create a new drop down series object.
		var productSearchDropdown = new PINT_drop_down_series();
		productSearchDropdown.debugMode = false;
		
		// We must override this function to display the proper names at each level.
		productSearchDropdown.determineDropdownDisplayText = function (currLevel, maxLevel) {
			switch (maxLevel) {
				case 1:
					return 'Family';
					break;
				case 2:
					return 'Class';
					break;
				case 3:
					if (currLevel == 1) return 'Subfamily';
					else if (currLevel == 2) return 'Class';
					break;
				case 4:
					if (currLevel == 1) return 'Subfamily';
					else if (currLevel == 2) return 'Class';
					else if (currLevel == 3) return 'Subclass';
					break;
				case 5:
					if (currLevel == 1) return 'Subfamily';
					else if (currLevel == 2) return 'Class';
					else if (currLevel == 3) return 'Subclass';
					else if (currLevel == 4) return 'Class';
			}
		}
		
		/*
		args:
		maxLevelsPossible: How many possible drop downs NOT COUNTING the primary(first) level which will be level 0.
		fieldNamePrefix: Will create drop downs with the name of $fieldNamePrefix_dropdownLvl_$level. (Ex: assay_dropdownLvl_3).
		formId: The id of the form.
		formAction: OPTIONAL The action for the form.
		innerDivId: The id of the div that will be created immediately inside the <form>.
		hiddenFieldName: Name of the hidden form field.
		*/
		var objNext = {
			maxLevelsPossible: 6,
			fieldNamePrefix: 'nav_product_family',
			formId: 'nav_product_search_box',
			formAction: null,
			innerDivId: 'nav_search_product',
			hiddenFieldName: 'nav_productClassification',
		levels: PINT_product_search_levels,
		content: PINT_product_search_content
		
		};
		//productSearchDropdown.init(objNext);
	}

}

function cleanup(){}


function PINT_sifr() {
	if(typeof sIFR == "function") {
	sIFR.replaceElement(named({sSelector:"h3.title, h3.linedtitle", sFlashSrc:themeRootDirectory + "/flash/frutiger55_roman.swf", sColor:"#000000", sWmode:"transparent"}));
	sIFR.replaceElement(named({sSelector:"h1.title, h1.linedtitle", sFlashSrc:themeRootDirectory + "/flash/frutiger55_roman.swf", sColor:"#000000", sWmode:"transparent"}));
        sIFR.replaceElement(named({sSelector:"h3.sp_title", sFlashSrc:themeRootDirectory + "/flash/frutiger55_roman.swf", sColor:"#005BA6", sWmode:"transparent"}));
        sIFR.replaceElement(named({sSelector:"h3.p_find, #prod_box_inner .spotlight span", sFlashSrc:themeRootDirectory + "/flash/frutiger55_roman.swf", sColor:"#ffffff", sWmode:"transparent"}));
	}
}

YAHOO.util.Event.onDOMReady(init);
//window.onload = init;
window.onunload = cleanup;


/* ************************************************************************************************************************************** */
/* PINTLIB.JS
/* ************************************************************************************************************************************** */
/*global PINT YAHOO */
if(typeof this.PINT=="undefined"){var PINT={};}PINT.util={};PINT.connection={};PINT.widget={};
PINT.util={getQueryParamValue:function(sParam){var aTemp=document.location.search.split('&');for(var i=0;i<aTemp.length;i++){var aTemp2=aTemp[i].split('=');if(aTemp2[0]==sParam){return aTemp2[1];}}return "";},setWindowTitle:function(sTitle){document.title=sTitle;},setWindowStatus:function(sStatus){window.status=sStatus;},getRandomString:function(iLength,sChars){iLength=iLength||8;sChars=sChars||"abcdefghijklmnopqrstuvwxyz0123456789";var sRandomString="";for(var i=0;i<iLength;i++){sRandomString += sChars.charAt(parseInt(sChars.length*Math.random(),10));}return sRandomString;},getCurrentFileName:function(){var sUrl=decodeURI(window.location.pathname);var iStart=sUrl.lastIndexOf("/")+1;var iEnd=(sUrl.indexOf("?")>0)? sUrl.indexOf("?"):sUrl.length;return sUrl.substring(iStart,iEnd);},getCurrentFilePath:function(){var sUrl=decodeURI(window.location.pathname);var iStart=sUrl.lastIndexOf("/");return sUrl.substring(0,iStart);},getCurrentDirectory:function(){var sFilePath=this.getCurrentFilePath();var aDirectories=sFilePath.split("/");return aDirectories.length&&aDirectories[aDirectories.length-1] !== "" ? aDirectories[aDirectories.length-1]:"";},encodeJSON:function(sData){sData=sData.replace(/\[/gi,"[");sData=sData.replace(/\]/gi,"]");sData=sData.replace(/\{/gi,"{");sData=sData.replace(/\}/gi,"}");sData=sData.replace(/\'/gi,"0x27");sData=sData.replace(/\"/gi,"0x22");sData=sData.replace(/\\/gi,"\\\\");sData=sData.replace(/\t/gi,"0x09");sData=sData.replace(/\n/gi,"0x0A");sData=sData.replace(/\f/gi,"0x0C");sData=sData.replace(/\r/gi,"0x0D");return sData;},decodeJSON:function(sData){sData=sData.replace(/\[/gi,"[");sData=sData.replace(/\]/gi,"]");sData=sData.replace(/\{/gi,"{");sData=sData.replace(/\}/gi,"}");sData=sData.replace(/0x27/gi,"'");sData=sData.replace(/0x28/gi,'"');sData=sData.replace(/\\\\/gi,"\\");sData=sData.replace(/0x09/gi,"\t");sData=sData.replace(/0x0A/gi,"\n");sData=sData.replace(/0x0C/gi,"\f");sData=sData.replace(/0x0D/gi,"\r");return sData;},obfuscateMailto:function(sDomain,sUser,sText){var sLinkText;if(sText === null){sLinkText=sUser+"&#"+64+";"+sDomain;}else{sLinkText=sText;}document.write("<a href=\"m&#"+97+";il&#"+116+";o:"+ sUser +"&#"+64+";"+sDomain+"\">"+sLinkText+"</a>");},anchorPopupWindows:function(){if(!document.getElementsByTagName){return;}var getPopupAnchors=function(el){var rel=el.getAttribute("rel");if(rel){return(rel.indexOf("popup")>=0);}else{return false;}};var anchors=YAHOO.util.Dom.getElementsBy(getPopupAnchors,"a");var currentAnchor;for(var anchorIndex=0; anchorIndex<anchors.length; anchorIndex++){var targetLink,relArray,relInformation,windowAttributes,javascriptTargetLink;var location,menubar,resizable,scrollbars,status,toolbar;var width,height,windowType,windowName;currentAnchor=anchors[anchorIndex];targetLink=currentAnchor.getAttribute("href"); relInformation=currentAnchor.getAttribute("rel"); if(relInformation&&targetLink){relArray=relInformation.split("|");var size=PINT.util.browser.getSize();if(relArray.length>=4){if(relArray[1]!="null"){width=parseInt(relArray[1],10)? parseInt(relArray[1],10):400;}else{width=size[2];}if(relArray[2]!="null"){height=parseInt(relArray[2],10)? parseInt(relArray[2],10):400;}else{height=size[3];}windowType=relArray[3];windowAttributes="width="+width+",height="+height; if(windowType=="custom"){if(relArray.length<10){return false;}location=parseInt(relArray[4],10)? parseInt(relArray[4],10): 0;menubar=parseInt(relArray[5],10)? parseInt(relArray[5],10): 0;resizable=parseInt(relArray[6],10)? parseInt(relArray[6],10): 0;scrollbars=parseInt(relArray[7],10)? parseInt(relArray[7],10): 0;status=parseInt(relArray[8],10)? parseInt(relArray[8],10): 0;toolbar=parseInt(relArray[9],10)? parseInt(relArray[9],10): 0;if(relArray.length==11){windowName=relArray[10];}else{windowName="popupWindow";}windowAttributes += ",location="+ location +",menubar="+menubar +",resizable="+resizable+",scrollbars="+scrollbars+",status="+status+",toolbar="+ toolbar;}else{if(relArray.length==5){windowName=relArray[4];}else{windowName="popupWindow";}if(windowType=="standard"){windowAttributes += ",location=0,menubar=0,resizable=0,scrollbars=0,status=0,toolbar=0";}else if(windowType=="resize"){windowAttributes += ",location=0,menubar=0,resizable=1,scrollbars=0,status=0,toolbar=0";}else if(windowType=="scrollbar"){windowAttributes += ",location=0,menubar=0,resizable=0,scrollbars=1,status=0,toolbar=0";}else if(windowType=="blank"){windowAttributes="";}else{return false;}}var parameters=[targetLink,windowName,windowAttributes];YAHOO.util.Event.addListener(currentAnchor,'click',PINT.util.popupWindow,parameters);}}}},popupWindow:function(e,params){if(params.length<1){return false;}var popupWin=null; popupWin=window.open(params[0],params[1],params[2]);YAHOO.util.Event.preventDefault(e);}};
var sUserAgent=navigator.userAgent.toLowerCase();PINT.env={};PINT.env.sUA=navigator.userAgent.toLowerCase();PINT.env.fVersion=navigator.appVersion;PINT.util.browser={bNetscape4:(typeof document.layers !="undefined")?true:false,bSafari:(PINT.env.sUA.indexOf("safari")!=-1),bKonqueror:(PINT.env.sUA.indexOf("konqueror")!=-1),bNetscape6:(PINT.env.sUA.indexOf("netscape")!=-1),bMozilla:((PINT.env.sUA.indexOf("mozilla")!=-1)&&(PINT.env.sUA.indexOf("gecko")!=-1)&&(PINT.env.sUA.indexOf("konqueror")==-1)),bFirefox:(PINT.env.sUA.indexOf("firefox")!=-1),bOpera:(PINT.env.sUA.indexOf("opera")!=-1),bIe:((PINT.env.sUA.indexOf("msie")!=-1)&&(PINT.env.sUA.indexOf("opera")==-1)),bIe4:((PINT.env.sUA.indexOf("msie 4.")!=-1)&&(PINT.env.sUA.indexOf("opera")==-1)),bIe5:((PINT.env.sUA.indexOf("msie 5.")!=-1)&&(PINT.env.sUA.indexOf("opera")==-1)),bIe6:((PINT.env.sUA.indexOf("msie 6.")!=-1)&&(PINT.env.sUA.indexOf("opera")==-1)),bIe7:((PINT.env.sUA.indexOf("msie 7.")!=-1)&&(PINT.env.sUA.indexOf("opera")==-1)),bOmniWeb:(PINT.env.sUA.indexOf("omniweb")!=-1),bWebTv:(PINT.env.sUA.indexOf("webtv")!=-1),bICab:(PINT.env.sUA.indexOf("icab")!=-1),bMac:(PINT.env.sUA.indexOf("mac")!=-1),sUserAgent:PINT.env.sUA.userAgent,fVersion:parseFloat(PINT.env.fVersion),setCookie:function(sName,sValue,iExpYear,iExpMonth,iExpDay,sPath,sDomain,bSecure){var sCookie=sName+"="+encodeURIComponent(sValue);if(iExpYear&&iExpMonth&&iExpDay){var oExpireDate=new Date(iExpYear,iExpMonth,iExpDay);sCookie += "; expires="+oExpireDate.toGMTString();}if(sPath){sCookie += "; path="+encodeURIComponent(sPath);}if(sDomain){sCookie += "; domain="+encodeURIComponent(sDomain);}if(bSecure){sCookie += "; secure";}document.cookie=sCookie;},getCookie:function(sName){var iStart=document.cookie.indexOf(sName+"=");var iLen=iStart+sName.length+1;if(!iStart&&(sName!=document.cookie.substring(0,sName.length))){return null;}if(iStart==-1){return null;}var iEnd=document.cookie.indexOf(";",iLen);if(iEnd==-1){iEnd=document.cookie.length;}return decodeURIComponent(document.cookie.substring(iLen,iEnd));},deleteCookie:function(sName){var oExpireDate=new Date();oExpireDate.setTime(oExpireDate.getTime()-1);document.cookie=sName += "=; expires="+oExpireDate.toGMTString();},getBrowserInfo:function(){var sOs="Others";if(PINT.env.sUA.indexOf("linux")!=-1){sOs="Linux";}else if(PINT.env.sUA.indexOf("x11")!=-1){sOs="Unix";}else if(PINT.env.sUA.indexOf("mac")!=-1){sOs="Mac";}else if(PINT.env.sUA.indexOf("win")!=-1){sOs="Windows";}var sBrowser="Others";if(PINT.util.browser.bIe){sBrowser="Internet Explorer";}else if(PINT.util.browser.bNetscape4||PINT.util.browser.bNetscape6){sBrowser="Netscape Navigator";}else if(PINT.util.browser.bOpera){sBrowser="Opera";}else if(PINT.util.browser.bSafari){sBrowser="Safari";}else if(PINT.util.browser.bKonqueror){sBrowser="Konqueror";}else if(PINT.util.browser.bMozilla&&!PINT.util.browser.bFirefox){sBrowser="Mozilla";}else if(PINT.util.browser.bFirefox){sBrowser="Firefox";}else if(PINT.util.browser.bOmniWeb){sBrowser="OmniWeb";}else if(PINT.util.browser.bWebTv){sBrowser="WebTv";}else if(PINT.util.browser.bICab){sBrowser="iCab";}return [sOs,sBrowser,PINT.util.browser.fVersion];},getResolution:function(){return [screen.width,screen.height];},getSize:function(){var iDocWidth=0;var iDocHeight=0;var iWinWidth;var iWinHeight;if(typeof window.innerWidth=="number"){iWinWidth=window.innerWidth;iWinHeight=window.innerHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){iWinWidth=document.documentElement.clientWidth;iWinHeight=document.documentElement.clientHeight;}else if(document.body&&document.body.clientWidth){iWinWidth=document.body.clientWidth;iWinHeight=document.body.clientHeight;}if(typeof window.innerWidth=="number"){if(window.innerWidth>0&&window.innerWidth>iDocWidth){iDocWidth=window.innerWidth;}if(window.innerHeight>0&&window.innerHeight>iDocHeight){iDocHeight=window.innerHeight;}}if(document.body&&typeof document.body.clientWidth=="number"){if(document.body.clientWidth>0&&document.body.clientWidth>iDocWidth){iDocWidth=document.body.clientWidth;}if(document.body.clientHeight>0&&document.body.clientHeight>iDocHeight){iDocHeight=document.body.clientHeight;}}if(document.documentElement&&typeof document.documentElement.clientWidth=="number"){if(document.documentElement.clientWidth>0&&document.documentElement.clientWidth>iDocWidth){iDocWidth=document.documentElement.clientWidth;}if(document.documentElement.clientHeight>0&&document.documentElement.clientHeight>iDocHeight){iDocHeight=document.documentElement.clientHeight;}}return [iWinWidth,iWinHeight,iDocWidth,iDocHeight];},getScroll:function(){var iScrollLeft=0;var iScrollTop=0;if(typeof window.pageXOffset=="number"){if(window.pageXOffset>0&&window.pageXOffset>iScrollLeft){iScrollLeft=window.pageXOffset;}if(window.pageYOffset>0&&window.pageYOffset>iScrollTop){iScrollTop=window.pageYOffset;}}if(document.body&&typeof document.body.scrollLeft=="number"){if(document.body.scrollLeft>0&&document.body.scrollLeft>iScrollLeft){iScrollLeft=document.body.scrollLeft;}if(document.body.scrollTop>0&&document.body.scrollTop>iScrollTop){iScrollTop=document.body.scrollTop;}}if(document.documentElement&&typeof document.documentElement.scrollLeft=="number"){if(document.documentElement.scrollLeft>0&&document.documentElement.scrollLeft>iScrollLeft){iScrollLeft=document.documentElement.scrollLeft;}if(document.documentElement.scrollTop>0&&document.documentElement.scrollTop>iScrollTop){iScrollTop=document.documentElement.scrollTop;}}return [iScrollLeft,iScrollTop];},redirectUnsupportedBrowser:function(sRedirectUrl){var browserUpgradeFile="";var sCurrentFileName=PINT.util.getCurrentFileName();if(!document.getElementById&&(browserUpgradeFile.indexOf(sCurrentFileName)=="-1"||sCurrentFileName === "")){window.location.replace(sRedirectUrl);}}};
PINT.util.flash=function(){this.aParams=arguments[0]||[];this.sId=this.aParams.id||"";this.sSwf=this.aParams.swf||"";this.iWidth=this.aParams.width||0;this.iHeight=this.aParams.height||0;this.sAlign=this.aParams.align||"middle";this.iVersion=this.aParams.version||6;this.sImageMap=this.aParams.imagemap||"";this.sCodeBase=this.iVersion+",0,0,0";this.sDefaultImage=this.aParams.defaultimage||"";this.sNoScriptId=this.aParams.noscriptId||"";this.sAltText=this.aParams.alttext||"Please <a href='http://www.macromedia.com/go/getflashplayer'>upgrade your Flash Player</a>.";this.sBypassText=this.aParams.bypasstext||"";this.sRedirectUrl=this.aParams.redirecturl||"";this.sBgColor=this.aParams.bgcolor||"";this.aParams={};this.aVars={};this.addParam=function(sName,sValue){this.aParams[sName]=sValue;};this.getParams=function(sName){if(sName){return this.aParams[sName];}else{return this.aParams;}};this.addVariable=function(sName,sValue){this.aVars[sName]=sValue;};this.getVars=function(sName){if(sName){return this.aVars[sName];}else{return this.aVars;}};this.getParamTags=function(){var sParamTags="";for(var sParam in this.getParams()){if(typeof sParam=="string"){sParamTags += '<param name="'+sParam+'" value="'+this.getParams(sParam)+'" />';}}if(sParamTags === ""){sParamTags=null;}return sParamTags;};this.getHTML=function(){var sFlashHTML="";if(window.ActiveXObject&&navigator.userAgent.indexOf('Mac')==-1){sFlashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+this.sCodeBase+'" width="'+this.iWidth+'" height="'+this.iHeight+'" id="'+this.sId+'" name="'+this.sId+'" align="'+this.sAlign+'">';sFlashHTML += '<param name="movie" value="'+this.sSwf+'" />';if(this.getParamTags()!== null){sFlashHTML += this.getParamTags();}if(this.getVariablePairs()!== null){sFlashHTML += '<param name="flashVars" value="'+this.getVariablePairs()+'" />';}sFlashHTML += '</object>';}else{sFlashHTML += '<embed type="application/x-shockwave-flash" src="'+this.sSwf+'" width="'+this.iWidth+'" height="'+this.iHeight+'" id="'+this.sId+'" name="'+this.sId+'" align="'+this.sAlign+'"';for(var sParam in this.getParams()){if(typeof sParam=="string"){sFlashHTML += ' '+sParam+'="'+this.getParams(sParam)+'"';}}if(this.getVariablePairs()!== null){sFlashHTML += ' flashVars="'+this.getVariablePairs()+'"';}sFlashHTML += '></embed>';}return sFlashHTML;};this.getVariablePairs=function(){var aVariablePairs=[];for(var sName in this.getVars()){if(typeof sName=="string"){aVariablePairs.push(sName+"="+encodeURIComponent(this.getVars(sName)));}}if(aVariablePairs.length>0){return aVariablePairs.join("&");}else{return null;}};this.render=function(sIdContainer){this.addParam("quality","high");if(this.sBgColor){this.addParam("bgcolor",this.sBgColor);}this.sDetect=PINT.util.getQueryParamValue("detectflash");if(this.detectFlash(this.iVersion)||this.sDetect=="false"){if(sIdContainer){document.getElementById(sIdContainer).innerHTML=this.getHTML();}else{document.write(this.getHTML());}}else{if(this.sRedirectUrl !== ""){document.location.replace(this.sRedirectUrl);}else if(this.sNoScriptId !== ""){var oElement=document.getElementById(this.sNoScriptId);oElement.style.display=oElement.parentNode.style.display;}else if(this.sDefaultImage !== ""){var sImageString="<img src=\""+this.sDefaultImage+"\" width=\""+this.iWidth+"\" height=\""+this.iHeight+"\" border=\"0\" alt=\"\"";if(typeof this.sImageMap!="undefined"&&this.sImageMap !== ""){sImageString += " usemap=\"#"+this.sImageMap+"\" ";}sImageString += " class=\"inlineimage\" />";document.write(sImageString);}else{document.write(this.sAltText+""+this.sBypassText);}}};this.getFlashVersion=function(){var iFlashVersion=0;if(navigator.plugins&&navigator.plugins.length){var oPlugin=navigator.plugins["Shockwave Flash"];if(oPlugin){if(oPlugin.description){var sDescription=oPlugin.description;iFlashVersion=sDescription.charAt(sDescription.indexOf('.')-1);}}}else{var axo;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");iFlashVersion=7;}catch(e){}if(!iFlashVersion){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");iFlashVersion=6;}catch(e1){}}if(!iFlashVersion){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");iFlashVersion=4;}catch(e2){}}if(!iFlashVersion){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");iFlashVersion=3;}catch(e3){}}if(!iFlashVersion){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");iFlashVersion=2;}catch(e4){}}}return iFlashVersion;};this.detectFlash=function(iVersion){return(this.getFlashVersion()>=iVersion);};};
 PINT.widget.lightbox={panel:null,panelLoading:null,init:function(){if(YAHOO.util.Dom.getElementsBy(PINT.widget.lightbox.isValidAnchor,'a',document.body,PINT.widget.lightbox.applyToAnchor).length){var params=arguments.length==1 ? arguments[0]:{};var configPanel=(params.configPanel ? params.configPanel:{visible:false,fixedcenter:true,constraintoviewport:true,draggable:false,modal:true,width:20});var configPanelLoading=(params.configPanelLoading ? params.configPanelLoading:{width: "240px",fixedcenter: true,close: false,draggable: false,modal: true,visible: false});var loadingHeader=(params.loadingHeader ? params.loadingHeader:"Loading,please wait...");var loadingBody=(params.loadingBody ? params.loadingBody:"<img src=\"http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif\"/>");PINT.widget.lightbox.panel =new YAHOO.widget.Panel("pintboxPanel",configPanel);PINT.widget.lightbox.panel.setHeader("&nbsp;");PINT.widget.lightbox.panel.setBody("&nbsp;");PINT.widget.lightbox.panel.render(document.body);PINT.widget.lightbox.panelLoading=new YAHOO.widget.Panel("pintboxLoading",configPanelLoading);PINT.widget.lightbox.panelLoading.setHeader(loadingHeader);PINT.widget.lightbox.panelLoading.setBody(loadingBody);PINT.widget.lightbox.panelLoading.render(document.body);}},applyToAnchor:function(el){YAHOO.util.Event.addListener(el,"click",PINT.widget.lightbox.showPanel,{imgSrc:(el.getAttribute('href')?el.getAttribute('href'):''),title:(el.getAttribute('title')?el.getAttribute('title'):'&nbsp;')},true);},isValidAnchor:function(el){return YAHOO.util.Dom.hasClass(el,'pintbox')?true:false;},showPanel:function(e,params){YAHOO.util.Event.preventDefault(e);PINT.widget.lightbox.panelLoading.show();var img=new Image();img.onload=function(){PINT.widget.lightbox.panel.cfg.setProperty('width',(parseInt(img.width,10)+parseInt(YAHOO.util.Dom.getStyle(PINT.widget.lightbox.panel.body,'padding-left'),10)+parseInt(YAHOO.util.Dom.getStyle(PINT.widget.lightbox.panel.body,'padding-right'),10))+"px");PINT.widget.lightbox.panel.setHeader(params.title);PINT.widget.lightbox.panel.setBody(img);PINT.widget.lightbox.panelLoading.hide();PINT.widget.lightbox.panel.show(e);};img.src=this.imgSrc;}};
/*global PINT YAHOO */

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
yahoo-dom-event.js
version: 2.5.2
*/
if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}A=B.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=A[0];}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var A=YAHOO.lang,C=["toString","valueOf"],B={isArray:function(D){if(D){return A.isNumber(D.length)&&A.isFunction(D.splice);}return false;},isBoolean:function(D){return typeof D==="boolean";},isFunction:function(D){return typeof D==="function";},isNull:function(D){return D===null;},isNumber:function(D){return typeof D==="number"&&isFinite(D);},isObject:function(D){return(D&&(typeof D==="object"||A.isFunction(D)))||false;},isString:function(D){return typeof D==="string";},isUndefined:function(D){return typeof D==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(F,E){for(var D=0;D<C.length;D=D+1){var H=C[D],G=E[H];if(A.isFunction(G)&&G!=Object.prototype[H]){F[H]=G;}}}:function(){},extend:function(H,I,G){if(!I||!H){throw new Error("extend failed, please check that "+"all dependencies are included.");}var E=function(){};E.prototype=I.prototype;H.prototype=new E();H.prototype.constructor=H;H.superclass=I.prototype;if(I.prototype.constructor==Object.prototype.constructor){I.prototype.constructor=I;}if(G){for(var D in G){if(A.hasOwnProperty(G,D)){H.prototype[D]=G[D];}}A._IEEnumFix(H.prototype,G);}},augmentObject:function(H,G){if(!G||!H){throw new Error("Absorb failed, verify dependencies.");}var D=arguments,F,I,E=D[2];if(E&&E!==true){for(F=2;F<D.length;F=F+1){H[D[F]]=G[D[F]];}}else{for(I in G){if(E||!(I in H)){H[I]=G[I];}}A._IEEnumFix(H,G);}},augmentProto:function(G,F){if(!F||!G){throw new Error("Augment failed, verify dependencies.");}var D=[G.prototype,F.prototype];for(var E=2;E<arguments.length;E=E+1){D.push(arguments[E]);}A.augmentObject.apply(this,D);},dump:function(D,I){var F,H,K=[],L="{...}",E="f(){...}",J=", ",G=" => ";if(!A.isObject(D)){return D+"";}else{if(D instanceof Date||("nodeType" in D&&"tagName" in D)){return D;}else{if(A.isFunction(D)){return E;}}}I=(A.isNumber(I))?I:3;if(A.isArray(D)){K.push("[");for(F=0,H=D.length;F<H;F=F+1){if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}if(K.length>1){K.pop();}K.push("]");}else{K.push("{");for(F in D){if(A.hasOwnProperty(D,F)){K.push(F+G);if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}}if(K.length>1){K.pop();}K.push("}");}return K.join("");},substitute:function(S,E,L){var I,H,G,O,P,R,N=[],F,J="dump",M=" ",D="{",Q="}";for(;;){I=S.lastIndexOf(D);if(I<0){break;}H=S.indexOf(Q,I);if(I+1>=H){break;}F=S.substring(I+1,H);O=F;R=null;G=O.indexOf(M);if(G>-1){R=O.substring(G+1);O=O.substring(0,G);}P=E[O];if(L){P=L(O,P,R);}if(A.isObject(P)){if(A.isArray(P)){P=A.dump(P,parseInt(R,10));}else{R=R||"";var K=R.indexOf(J);if(K>-1){R=R.substring(4);}if(P.toString===Object.prototype.toString||K>-1){P=A.dump(P,parseInt(R,10));}else{P=P.toString();}}}else{if(!A.isString(P)&&!A.isNumber(P)){P="~-"+N.length+"-~";N[N.length]=F;}}S=S.substring(0,I)+P+S.substring(H+1);}for(I=N.length-1;I>=0;I=I-1){S=S.replace(new RegExp("~-"+I+"-~"),"{"+N[I]+"}","g");}return S;},trim:function(D){try{return D.replace(/^\s+|\s+$/g,"");}catch(E){return D;}},merge:function(){var G={},E=arguments;for(var F=0,D=E.length;F<D;F=F+1){A.augmentObject(G,E[F],true);}return G;},later:function(K,E,L,G,H){K=K||0;E=E||{};var F=L,J=G,I,D;if(A.isString(L)){F=E[L];}if(!F){throw new TypeError("method undefined");}if(!A.isArray(J)){J=[G];}I=function(){F.apply(E,J);};D=(H)?setInterval(I,K):setTimeout(I,K);return{interval:H,cancel:function(){if(this.interval){clearInterval(D);}else{clearTimeout(D);}}};},isValue:function(D){return(A.isObject(D)||A.isString(D)||A.isNumber(D)||A.isBoolean(D));}};A.hasOwnProperty=(Object.prototype.hasOwnProperty)?function(D,E){return D&&D.hasOwnProperty(E);}:function(D,E){return !A.isUndefined(D[E])&&D.constructor.prototype[E]!==D[E];};B.augmentObject(A,B,true);YAHOO.util.Lang=A;A.augment=A.augmentProto;YAHOO.augment=A.augmentProto;YAHOO.extend=A.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.5.2",build:"1076"});(function(){var B=YAHOO.util,K,I,J={},F={},M=window.document;YAHOO.env._id_counter=YAHOO.env._id_counter||0;var C=YAHOO.env.ua.opera,L=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,G=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i,OP_SCROLL:/^(?:inline|table-row)$/i};var N=function(P){if(!E.HYPHEN.test(P)){return P;}if(J[P]){return J[P];}var Q=P;while(E.HYPHEN.exec(Q)){Q=Q.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}J[P]=Q;return Q;};var O=function(Q){var P=F[Q];if(!P){P=new RegExp("(?:^|\\s+)"+Q+"(?:\\s+|$)");F[Q]=P;}return P;};if(M.defaultView&&M.defaultView.getComputedStyle){K=function(P,S){var R=null;if(S=="float"){S="cssFloat";}var Q=P.ownerDocument.defaultView.getComputedStyle(P,"");if(Q){R=Q[N(S)];}return P.style[S]||R;};}else{if(M.documentElement.currentStyle&&G){K=function(P,R){switch(N(R)){case"opacity":var T=100;try{T=P.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(S){try{T=P.filters("alpha").opacity;}catch(S){}}return T/100;case"float":R="styleFloat";default:var Q=P.currentStyle?P.currentStyle[R]:null;return(P.style[R]||Q);}};}else{K=function(P,Q){return P.style[Q];};}}if(G){I=function(P,Q,R){switch(Q){case"opacity":if(YAHOO.lang.isString(P.style.filter)){P.style.filter="alpha(opacity="+R*100+")";if(!P.currentStyle||!P.currentStyle.hasLayout){P.style.zoom=1;}}break;case"float":Q="styleFloat";default:P.style[Q]=R;}};}else{I=function(P,Q,R){if(Q=="float"){Q="cssFloat";}P.style[Q]=R;};}var D=function(P,Q){return P&&P.nodeType==1&&(!Q||Q(P));};YAHOO.util.Dom={get:function(R){if(R&&(R.nodeType||R.item)){return R;}if(YAHOO.lang.isString(R)||!R){return M.getElementById(R);}if(R.length!==undefined){var S=[];for(var Q=0,P=R.length;Q<P;++Q){S[S.length]=B.Dom.get(R[Q]);}return S;}return R;},getStyle:function(P,R){R=N(R);var Q=function(S){return K(S,R);};return B.Dom.batch(P,Q,B.Dom,true);},setStyle:function(P,R,S){R=N(R);var Q=function(T){I(T,R,S);};B.Dom.batch(P,Q,B.Dom,true);},getXY:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=R.ownerDocument.body){return false;}return H(R);};return B.Dom.batch(P,Q,B.Dom,true);},getX:function(P){var Q=function(R){return B.Dom.getXY(R)[0];};return B.Dom.batch(P,Q,B.Dom,true);},getY:function(P){var Q=function(R){return B.Dom.getXY(R)[1];};return B.Dom.batch(P,Q,B.Dom,true);},setXY:function(P,S,R){var Q=function(V){var U=this.getStyle(V,"position");if(U=="static"){this.setStyle(V,"position","relative");U="relative";}var X=this.getXY(V);if(X===false){return false;}var W=[parseInt(this.getStyle(V,"left"),10),parseInt(this.getStyle(V,"top"),10)];if(isNaN(W[0])){W[0]=(U=="relative")?0:V.offsetLeft;}if(isNaN(W[1])){W[1]=(U=="relative")?0:V.offsetTop;}if(S[0]!==null){V.style.left=S[0]-X[0]+W[0]+"px";}if(S[1]!==null){V.style.top=S[1]-X[1]+W[1]+"px";}if(!R){var T=this.getXY(V);if((S[0]!==null&&T[0]!=S[0])||(S[1]!==null&&T[1]!=S[1])){this.setXY(V,S,true);}}};B.Dom.batch(P,Q,B.Dom,true);},setX:function(Q,P){B.Dom.setXY(Q,[P,null]);},setY:function(P,Q){B.Dom.setXY(P,[null,Q]);},getRegion:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=R.ownerDocument.body){return false;}var S=B.Region.getRegion(R);return S;};return B.Dom.batch(P,Q,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(T,X,U,V){X=X||"*";U=(U)?B.Dom.get(U):null||M;if(!U){return[];}var Q=[],P=U.getElementsByTagName(X),W=O(T);for(var R=0,S=P.length;R<S;++R){if(W.test(P[R].className)){Q[Q.length]=P[R];if(V){V.call(P[R],P[R]);}}}return Q;},hasClass:function(R,Q){var P=O(Q);var S=function(T){return P.test(T.className);};return B.Dom.batch(R,S,B.Dom,true);},addClass:function(Q,P){var R=function(S){if(this.hasClass(S,P)){return false;}S.className=YAHOO.lang.trim([S.className,P].join(" "));return true;};return B.Dom.batch(Q,R,B.Dom,true);},removeClass:function(R,Q){var P=O(Q);var S=function(T){if(!Q||!this.hasClass(T,Q)){return false;}var U=T.className;T.className=U.replace(P," ");if(this.hasClass(T,Q)){this.removeClass(T,Q);}T.className=YAHOO.lang.trim(T.className);return true;};return B.Dom.batch(R,S,B.Dom,true);},replaceClass:function(S,Q,P){if(!P||Q===P){return false;}var R=O(Q);var T=function(U){if(!this.hasClass(U,Q)){this.addClass(U,P);return true;}U.className=U.className.replace(R," "+P+" ");if(this.hasClass(U,Q)){this.replaceClass(U,Q,P);}U.className=YAHOO.lang.trim(U.className);return true;};return B.Dom.batch(S,T,B.Dom,true);},generateId:function(P,R){R=R||"yui-gen";var Q=function(S){if(S&&S.id){return S.id;}var T=R+YAHOO.env._id_counter++;if(S){S.id=T;}return T;};return B.Dom.batch(P,Q,B.Dom,true)||Q.apply(B.Dom,arguments);},isAncestor:function(P,Q){P=B.Dom.get(P);Q=B.Dom.get(Q);if(!P||!Q){return false;}if(P.contains&&Q.nodeType&&!L){return P.contains(Q);}else{if(P.compareDocumentPosition&&Q.nodeType){return !!(P.compareDocumentPosition(Q)&16);}else{if(Q.nodeType){return !!this.getAncestorBy(Q,function(R){return R==P;});}}}return false;},inDocument:function(P){return this.isAncestor(M.documentElement,P);},getElementsBy:function(W,Q,R,T){Q=Q||"*";R=(R)?B.Dom.get(R):null||M;if(!R){return[];}var S=[],V=R.getElementsByTagName(Q);for(var U=0,P=V.length;U<P;++U){if(W(V[U])){S[S.length]=V[U];if(T){T(V[U]);}}}return S;},batch:function(T,W,V,R){T=(T&&(T.tagName||T.item))?T:B.Dom.get(T);if(!T||!W){return false;}var S=(R)?V:window;if(T.tagName||T.length===undefined){return W.call(S,T,V);}var U=[];for(var Q=0,P=T.length;Q<P;++Q){U[U.length]=W.call(S,T[Q],V);}return U;},getDocumentHeight:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollHeight:M.documentElement.scrollHeight;var P=Math.max(Q,B.Dom.getViewportHeight());return P;},getDocumentWidth:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollWidth:M.documentElement.scrollWidth;var P=Math.max(Q,B.Dom.getViewportWidth());return P;},getViewportHeight:function(){var P=self.innerHeight;
var Q=M.compatMode;if((Q||G)&&!C){P=(Q=="CSS1Compat")?M.documentElement.clientHeight:M.body.clientHeight;}return P;},getViewportWidth:function(){var P=self.innerWidth;var Q=M.compatMode;if(Q||G){P=(Q=="CSS1Compat")?M.documentElement.clientWidth:M.body.clientWidth;}return P;},getAncestorBy:function(P,Q){while(P=P.parentNode){if(D(P,Q)){return P;}}return null;},getAncestorByClassName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return B.Dom.hasClass(S,P);};return B.Dom.getAncestorBy(Q,R);},getAncestorByTagName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return S.tagName&&S.tagName.toUpperCase()==P.toUpperCase();};return B.Dom.getAncestorBy(Q,R);},getPreviousSiblingBy:function(P,Q){while(P){P=P.previousSibling;if(D(P,Q)){return P;}}return null;},getPreviousSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getPreviousSiblingBy(P);},getNextSiblingBy:function(P,Q){while(P){P=P.nextSibling;if(D(P,Q)){return P;}}return null;},getNextSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getNextSiblingBy(P);},getFirstChildBy:function(P,R){var Q=(D(P.firstChild,R))?P.firstChild:null;return Q||B.Dom.getNextSiblingBy(P.firstChild,R);},getFirstChild:function(P,Q){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getFirstChildBy(P);},getLastChildBy:function(P,R){if(!P){return null;}var Q=(D(P.lastChild,R))?P.lastChild:null;return Q||B.Dom.getPreviousSiblingBy(P.lastChild,R);},getLastChild:function(P){P=B.Dom.get(P);return B.Dom.getLastChildBy(P);},getChildrenBy:function(Q,S){var R=B.Dom.getFirstChildBy(Q,S);var P=R?[R]:[];B.Dom.getNextSiblingBy(R,function(T){if(!S||S(T)){P[P.length]=T;}return false;});return P;},getChildren:function(P){P=B.Dom.get(P);if(!P){}return B.Dom.getChildrenBy(P);},getDocumentScrollLeft:function(P){P=P||M;return Math.max(P.documentElement.scrollLeft,P.body.scrollLeft);},getDocumentScrollTop:function(P){P=P||M;return Math.max(P.documentElement.scrollTop,P.body.scrollTop);},insertBefore:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}return P.parentNode.insertBefore(Q,P);},insertAfter:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}if(P.nextSibling){return P.parentNode.insertBefore(Q,P.nextSibling);}else{return P.parentNode.appendChild(Q);}},getClientRegion:function(){var R=B.Dom.getDocumentScrollTop(),Q=B.Dom.getDocumentScrollLeft(),S=B.Dom.getViewportWidth()+Q,P=B.Dom.getViewportHeight()+R;return new B.Region(R,S,P,Q);}};var H=function(){if(M.documentElement.getBoundingClientRect){return function(Q){var R=Q.getBoundingClientRect();var P=Q.ownerDocument;return[R.left+B.Dom.getDocumentScrollLeft(P),R.top+B.Dom.getDocumentScrollTop(P)];};}else{return function(R){var S=[R.offsetLeft,R.offsetTop];var Q=R.offsetParent;var P=(L&&B.Dom.getStyle(R,"position")=="absolute"&&R.offsetParent==R.ownerDocument.body);if(Q!=R){while(Q){S[0]+=Q.offsetLeft;S[1]+=Q.offsetTop;if(!P&&L&&B.Dom.getStyle(Q,"position")=="absolute"){P=true;}Q=Q.offsetParent;}}if(P){S[0]-=R.ownerDocument.body.offsetLeft;S[1]-=R.ownerDocument.body.offsetTop;}Q=R.parentNode;while(Q.tagName&&!E.ROOT_TAG.test(Q.tagName)){if(Q.scrollTop||Q.scrollLeft){if(!E.OP_SCROLL.test(B.Dom.getStyle(Q,"display"))){if(!C||B.Dom.getStyle(Q,"overflow")!=="visible"){S[0]-=Q.scrollLeft;S[1]-=Q.scrollTop;}}}Q=Q.parentNode;}return S;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.5.2",build:"1076"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var K=[],E=this.subscribers.length;if(!E&&this.silent){return true;}var I=[].slice.call(arguments,0),G=true,D,J=false;if(!this.silent){}var C=this.subscribers.slice(),A=YAHOO.util.Event.throwErrors;for(D=0;D<E;++D){var M=C[D];if(!M){J=true;}else{if(!this.silent){}var L=M.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var B=null;if(I.length>0){B=I[0];}try{G=M.fn.call(L,B,M.obj);}catch(F){this.lastError=F;if(A){throw F;}}}else{try{G=M.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=H;if(A){throw H;}}}if(false===G){if(!this.silent){}break;}}}return(G!==false);},unsubscribeAll:function(){for(var A=this.subscribers.length-1;A>-1;A--){this._delete(A);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){var K=this;var L=function(){K._tryPreloadAttach();};this._interval=setInterval(L,this.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var K=(YAHOO.lang.isString(P))?[P]:P;for(var L=0;L<K.length;L=L+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkReady:N});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if(this.DOMReady){setTimeout(function(){var N=window;if(L){if(L===true){N=M;}else{N=L;}}K.call(N,"DOMReady",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:function(M,K,V,Q,L){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var R=0,T=M.length;R<T;++R){W=this.on(M[R],K,V,Q,L)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var P=this.getEl(M);if(P){M=P;}else{this.onAvailable(M,function(){YAHOO.util.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return false;}if("unload"==K&&Q!==this){J[J.length]=[M,K,V,Q,L];return true;}var Y=M;if(L){if(L===true){Y=Q;}else{Y=L;}}var N=function(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var X=[M,K,V,N,Y,Q,L];var S=I.length;I[S]=X;if(this.useLegacyEvent(M,K)){var O=this.getLegacyIndex(M,K);if(O==-1||M!=G[O][0]){O=G.length;B[M.id+K]=O;G[O]=[M,K,M["on"+K]];E[O]=[];M["on"+K]=function(Z){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}}return true;},fireLegacyEvent:function(O,M){var Q=true,K,S,R,T,P;S=E[M].slice();for(var L=0,N=S.length;L<N;++L){R=S[L];if(R&&R[this.WFN]){T=R[this.ADJ_SCOPE];P=R[this.WFN].call(T,O);Q=(Q&&P);}}K=G[M];if(K&&K[2]){K[2](O);}return Q;},getLegacyIndex:function(L,M){var K=this.generateId(L)+M;if(typeof B[K]=="undefined"){return -1;}else{return B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"==M||"dblclick"==M)){var K=parseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return false;},removeListener:function(L,K,T){var O,R,V;if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var U=true;for(O=L.length-1;O>-1;O--){U=(this.removeListener(L[O],K,T)&&U);}return U;}}if(!T||!T.call){return this.purgeElement(L,false,K);}if("unload"==K){for(O=J.length-1;O>-1;O--){V=J[O];if(V&&V[0]==L&&V[1]==K&&V[2]==T){J.splice(O,1);return true;}}return false;}var P=null;var Q=arguments[3];if("undefined"===typeof Q){Q=this._getCacheIndex(L,K,T);}if(Q>=0){P=I[Q];}if(!L||!P){return false;}if(this.useLegacyEvent(L,K)){var N=this.getLegacyIndex(L,K);var M=E[N];if(M){for(O=0,R=M.length;O<R;++O){V=M[O];if(V&&V[this.EL]==L&&V[this.TYPE]==K&&V[this.FN]==T){M.splice(O,1);break;}}}}else{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=S;return false;}}delete I[Q][this.WFN];delete I[Q][this.FN];I.splice(Q,1);return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;
},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;M=M+1){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(F.length===0){C=0;clearInterval(this._interval);this._interval=null;return ;}if(this.locked){return ;}if(this.isIE){if(!this.DOMReady){this.startInterval();return ;}}this.locked=true;var Q=!H;if(!Q){Q=(C>0&&F.length>0);}var P=[];var R=function(T,U){var S=T;if(U.override){if(U.override===true){S=U.obj;}else{S=U.override;}}U.fn.call(S,U.obj);};var L,K,O,N,M=[];for(L=0,K=F.length;L<K;L=L+1){O=F[L];if(O){N=this.getEl(O.id);if(N){if(O.checkReady){if(H||N.nextSibling||!Q){M.push(O);F[L]=null;}}else{R(N,O);F[L]=null;}}else{P.push(O);}}}for(L=0,K=M.length;L<K;L=L+1){O=M[L];R(this.getEl(O.id),O);}C--;if(Q){for(L=F.length-1;L>-1;L--){O=F[L];if(!O||!O.id){F.splice(L,1);}}this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=Q.length-1;N>-1;N--){var L=Q[N];this.removeListener(M,L.type,L.fn);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(Q){var K=YAHOO.util.Event,N,M,L,P,O,R=J.slice();for(N=0,P=J.length;N<P;++N){L=R[N];if(L){var S=window;if(L[K.ADJ_SCOPE]){if(L[K.ADJ_SCOPE]===true){S=L[K.UNLOAD_OBJ];}else{S=L[K.ADJ_SCOPE];}}L[K.FN].call(S,K.getEvent(Q,L[K.EL]),L[K.UNLOAD_OBJ]);R[N]=null;L=null;S=null;}}J=null;if(I){for(M=I.length-1;M>-1;M--){L=I[M];if(L){K.removeListener(L[K.EL],L[K.TYPE],L[K.FN],M);}}L=null;}G=null;K._simpleRemove(window,"unload",K._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;
/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;
if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.5.2",build:"1076"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.5.2", build: "1076"});
/* End: yahoo-dom-event.js */

PINT.rootDirectory = '';

// If isEditing is undefined, set it to false
PINT.isEditing = (typeof PINT.isEditing != "undefined") ? PINT.isEditing : false;

PINT.init = function(){
	// Sets a load delay on the pngfix and sIFR to fix a PWP load clobbering bug
    /* if (PINT.isEditing) {
        var sifrInit = setTimeout('PINT.sifr()', 1000); // uncomment if using sifr
        if (PINT.util.browser.bIe6) var pnginit = setTimeout('PINT.pngFix()', 1000); // uncomment if using pngfix
    } else {
        PINT.sifr();  // uncomment if using sifr
        if (PINT.util.browser.bIe6) PINT.pngFix();  // uncomment if using pngfix
    } */
};

if (typeof this.YAHOO != "undefined"){
    YAHOO.util.Event.onDOMReady(PINT.init);
}

/*
PINT.sifr = function() {
	if(typeof sIFR == "function") {
		sIFR.replaceElement(named({sSelector:"#path .to element", sFlashSrc:PINT.rootDirectory + "/assets/flash/font_name.swf", sColor:"#fe4600", sWmode:"transparent"}));
	}
}
*/
