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.init=function(){

this.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.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:[],getVersion:function(name){

return YAHOO.env.modules[name]||null;


} 

} ;

YAHOO.lang={

isArray:function(obj){

if(obj&&obj.constructor&&obj.constructor.toString().indexOf('Array')>-1){

return true;


} else{

return YAHOO.lang.isObject(obj)&&obj.constructor==Array;


} 

} ,isBoolean:function(obj){

return typeof obj=='boolean';


} ,isFunction:function(obj){

return typeof obj=='function';


} ,isNull:function(obj){

return obj===null;


} ,isNumber:function(obj){

return typeof obj=='number'&&isFinite(obj);


} ,isObject:function(obj){

return obj&&(typeof obj=='object'||YAHOO.lang.isFunction(obj));


} ,isString:function(obj){

return typeof obj=='string';


} ,isUndefined:function(obj){

return typeof obj=='undefined';


} ,hasOwnProperty:function(obj,prop){

if(Object.prototype.hasOwnProperty){

return obj.hasOwnProperty(prop);


} 

return!YAHOO.lang.isUndefined(obj[prop])&&obj.constructor.prototype[prop]!==obj[prop];


} ,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];


} 

} 

} ,augment:function(r,s){

if(!s||!r){

throw new Error("YAHOO.lang.augment failed, please check that "+"all dependencies are included.");


} 

var rp=r.prototype,sp=s.prototype,a=arguments,i,p;

if(a[2]){

for(i=2;

i<a.length;

i=i+1){

rp[a[i]]=sp[a[i]];


} 

} else{

for(p in sp){

if(!rp[p]){

rp[p]=sp[p];


} 

} 

} 

} 

} ;

YAHOO.init();

YAHOO.util.Lang=YAHOO.lang;

YAHOO.augment=YAHOO.lang.augment;

YAHOO.extend=YAHOO.lang.extend;

YAHOO.register("yahoo",YAHOO,{

version:"2.2.2",build:"204"

} );

(function(){

var Y=YAHOO.util,getStyle,setStyle,id_counter=0,propertyCache={


} ;

var ua=navigator.userAgent.toLowerCase(),isOpera=(ua.indexOf('opera')>-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);

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;


} ;

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;

break;

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;


} ;


} 

YAHOO.util.Dom={

get:function(el){

if(YAHOO.lang.isString(el)){

return document.getElementById(el);


} 

if(YAHOO.lang.isArray(el)){

var c=[];

for(var i=0,len=el.length;

i<len;

++i){

c[c.length]=Y.Dom.get(el[i]);


} 

return c;


} 

if(el){

return el;


} 

return null;


} ,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;

if(el.getBoundingClientRect){

box=el.getBoundingClientRect();

var doc=document;

if(!this.inDocument(el)&&parent.document!=document){

doc=parent.document;

if(!this.isAncestor(doc.documentElement,el)){

return false;


} 

} 

var scrollTop=Math.max(doc.documentElement.scrollTop,doc.body.scrollTop);

var scrollLeft=Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft);

return[box.left+scrollLeft,box.top+scrollTop];


} 

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]-=document.body.offsetLeft;

pos[1]-=document.body.offsetTop;


} 

} 

parentNode=el.parentNode;

while(parentNode.tagName&&!patterns.ROOT_TAG.test(parentNode.tagName)) 

{

if(Y.Dom.getStyle(parentNode,'display')!='inline'){

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){

var region=new 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){

var method=function(el){

return Y.Dom.hasClass(el,className);


} ;

return Y.Dom.getElementsBy(method,tag,root);


} ,hasClass:function(el,className){

var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)');

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;


} 

el.className=[el.className,className].join(' ');


} ;

Y.Dom.batch(el,f,Y.Dom,true);


} ,removeClass:function(el,className){

var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)','g');

var f=function(el){

if(!this.hasClass(el,className)){

return;


} 

var c=el.className;

el.className=c.replace(re,' ');

if(this.hasClass(el,className)){

this.removeClass(el,className);


} 

} ;

Y.Dom.batch(el,f,Y.Dom,true);


} ,replaceClass:function(el,oldClassName,newClassName){

if(oldClassName===newClassName){

return false;


} 

var re=new RegExp('(?:^|\\s+)'+oldClassName+'(?:\\s+|$)','g');

var f=function(el){

if(!this.hasClass(el,oldClassName)){

this.addClass(el,newClassName);

return;


} 

el.className=el.className.replace(re,' '+newClassName+' ');

if(this.hasClass(el,oldClassName)){

this.replaceClass(el,oldClassName,newClassName);


} 

} ;

Y.Dom.batch(el,f,Y.Dom,true);


} ,generateId:function(el,prefix){

prefix=prefix||'yui-gen';

el=el||{


} ;

var f=function(el){

if(el){

el=Y.Dom.get(el);


} else{

el={


} ;


} 

if(!el.id){

el.id=prefix+id_counter++;


} 

return el.id;


} ;

return Y.Dom.batch(el,f,Y.Dom,true);


} ,isAncestor:function(haystack,needle){

haystack=Y.Dom.get(haystack);

if(!haystack||!needle){

return false;


} 

var f=function(needle){

if(haystack.contains&&!isSafari){

return haystack.contains(needle);


} 

else if(haystack.compareDocumentPosition){

return!!(haystack.compareDocumentPosition(needle)&16);


} 

else{

var parent=needle.parentNode;

while(parent){

if(parent==haystack){

return true;


} 

else if(!parent.tagName||parent.tagName.toUpperCase()=='HTML'){

return false;


} 

parent=parent.parentNode;


} 

return false;


} 

} ;

return Y.Dom.batch(needle,f,Y.Dom,true);


} ,inDocument:function(el){

var f=function(el){

return this.isAncestor(document.documentElement,el);


} ;

return Y.Dom.batch(el,f,Y.Dom,true);



} ,getElementsBy:function(method,tag,root){

tag=tag||'*';

var nodes=[];

if(root){

root=Y.Dom.get(root);

if(!root){

return nodes;


} 

} else{

root=document;


} 

var elements=root.getElementsByTagName(tag);

if(!elements.length&&(tag=='*'&&root.all)){

elements=root.all;


} 

for(var i=0,len=elements.length;

i<len;

++i){

if(method(elements[i])){

nodes[nodes.length]=elements[i];


} 

} 

return nodes;


} ,batch:function(el,method,o,override){

var id=el;

el=Y.Dom.get(el);

var scope=(override)?o:window;

if(!el||el.tagName||!el.length){

if(!el){

return false;


} 

return method.call(scope,el,o);


} 

var collection=[];

for(var i=0,len=el.length;

i<len;

++i){

if(!el[i]){

id=el[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;


} 

} ;


} )();

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(x instanceof Array){

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.2.2",build:"204"

} );

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;

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){

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;


} 

} 

} 

return true;


} ,unsubscribeAll:function(){

for(var i=0,len=this.subscribers.length;

i<len;

++i){

this._delete(len-1-i);


} 

return i;


} ,_delete:function(index){

var s=this.subscribers[index];

if(s){

delete s.fn;

delete s.obj;


} 

this.subscribers.splice(index,1);


} ,toString:function(){

return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;


} 

} ;

YAHOO.util.Subscriber=function(fn,obj,override){

this.fn=fn;

this.obj=obj||null;

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 lastError=null;

return{

POLL_RETRYS:200,POLL_INTERVAL:10,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,isSafari:(/KHTML/gi).test(navigator.userAgent),webkit:function(){

var v=navigator.userAgent.match(/AppleWebKit\/([^ ]*)/);

if(v&&v[1]){

return v[1];


} 

return null;


} (),isIE:(!this.webkit&&!navigator.userAgent.match(/opera/gi)&&navigator.userAgent.match(/msie/gi)),_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){

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(typeof el=="string"){

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.splice(i,1);

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.splice(i,1);

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.splice(index,1);

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){

return ev.charCode||ev.keyCode||0;


} ,_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){

return(o&&o.length&&typeof o!="string"&&!o.tagName&&!o.alert&&typeof o[0]!="undefined");


} ,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();

if(this.isIE){

EU._simpleRemove(window,"load",EU._load);


} 

} 

} ,_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&&!DOMReady){

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);


} 

} 

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){

document.write('<scr'+'ipt id="_yui_eu_dr" defer="true" src="//:"></script>');

var el=document.getElementById("_yui_eu_dr");

el.onreadystatechange=function(){

if("complete"==this.readyState){

this.parentNode.removeChild(this);

YAHOO.util.Event._ready();


} 

} ;

el=null;

YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);


} 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 ce=this.__yui_events[p_type];

if(ce){

return ce.unsubscribe(p_fn,p_obj);


} else{

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||null;

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){

var args=[];

for(var i=1;

i<arguments.length;

++i){

args.push(arguments[i]);


} 

return ce.fire.apply(ce,args);


} else{

return null;


} 

} ,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.2.2",build:"204"

} );

YAHOO.util.Connect={

_msxml_progid:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'],_http_headers:{


} ,_has_http_headers:false,_use_default_post_header:true,_default_post_header:'application/x-www-form-urlencoded; charset=UTF-8',_use_default_xhr_header:true,_default_xhr_header:'XMLHttpRequest',_has_default_headers:true,_default_headers:{


} ,_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{


} ,_timeOut:{


} ,_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function() 

{

if(YAHOO.util.Event){

YAHOO.util.Event.addListener(document,'click',function(e){

var obj=YAHOO.util.Event.getTarget(e);

if(obj.type=='submit'){

YAHOO.util.Connect._submitElementValue=encodeURIComponent(obj.name)+"="+encodeURIComponent(obj.value);


} 

} ) 

return true;


} 

return false;


} )(),setProgId:function(id) 

{

this._msxml_progid.unshift(id);


} ,setDefaultPostHeader:function(b) 

{

this._use_default_post_header=b;


} ,setDefaultXhrHeader:function(b) 

{

this._use_default_xhr_header=b;


} ,setPollingInterval:function(i) 

{

if(typeof i=='number'&&isFinite(i)){

this._polling_interval=i;


} 

} ,createXhrObject:function(transactionId) 

{

var obj,http;

try 

{

http=new XMLHttpRequest();

obj={

conn:http,tId:transactionId

} ;


} 

catch(e) 

{

for(var i=0;

i<this._msxml_progid.length;

++i){

try 

{

http=new ActiveXObject(this._msxml_progid[i]);

obj={

conn:http,tId:transactionId

} ;

break;


} 

catch(e){


} 

} 

} 

finally 

{

return obj;


} 

} ,getConnectionObject:function() 

{

var o;

var tId=this._transaction_id;

try 

{

o=this.createXhrObject(tId);

if(o){

this._transaction_id++;


} 

} 

catch(e){


} 

finally 

{

return o;


} 

} ,asyncRequest:function(method,uri,callback,postData) 

{

var o=this.getConnectionObject();

if(!o){

return null;


} 

else{

if(this._isFormSubmit){

if(this._isFileUpload){

this.uploadFile(o.tId,callback,uri,postData);

this.releaseObject(o);

return;


} 

if(method.toUpperCase()=='GET'){

if(this._sFormData.length!=0){

uri+=((uri.indexOf('?')==-1)?'?':'&')+this._sFormData;


} 

else{

uri+="?"+this._sFormData;


} 

} 

else if(method.toUpperCase()=='POST'){

postData=postData?this._sFormData+"&"+postData:this._sFormData;


} 

} 

o.conn.open(method,uri,true);

if(this._use_default_xhr_header){

if(!this._default_headers['X-Requested-With']){

this.initHeader('X-Requested-With',this._default_xhr_header,true);


} 

} 

if(this._isFormSubmit||(postData&&this._use_default_post_header)){

this.initHeader('Content-Type',this._default_post_header);

if(this._isFormSubmit){

this.resetFormState();


} 

} 

if(this._has_default_headers||this._has_http_headers){

this.setHeader(o);


} 

this.handleReadyState(o,callback);

o.conn.send(postData||null);

return o;


} 

} ,handleReadyState:function(o,callback) 

{

var oConn=this;

if(callback&&callback.timeout){

this._timeOut[o.tId]=window.setTimeout(function(){

oConn.abort(o,callback,true);


} ,callback.timeout);


} 

this._poll[o.tId]=window.setInterval(function(){

if(o.conn&&o.conn.readyState===4){

window.clearInterval(oConn._poll[o.tId]);

delete oConn._poll[o.tId];

if(callback&&callback.timeout){

delete oConn._timeOut[o.tId];


} 

oConn.handleTransactionResponse(o,callback);


} 

} ,this._polling_interval);


} ,handleTransactionResponse:function(o,callback,isAbort) 

{

if(!callback){

this.releaseObject(o);

return;


} 

var httpStatus,responseObject;

try 

{

if(o.conn.status!==undefined&&o.conn.status!==0){

httpStatus=o.conn.status;


} 

else{

httpStatus=13030;


} 

} 

catch(e){

httpStatus=13030;


} 

if(httpStatus>=200&&httpStatus<300||httpStatus===1223){

responseObject=this.createResponseObject(o,callback.argument);

if(callback.success){

if(!callback.scope){

callback.success(responseObject);


} 

else{

callback.success.apply(callback.scope,[responseObject]);


} 

} 

} 

else{

switch(httpStatus){

case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));

if(callback.failure){

if(!callback.scope){

callback.failure(responseObject);


} 

else{

callback.failure.apply(callback.scope,[responseObject]);


} 

} 

break;

default:responseObject=this.createResponseObject(o,callback.argument);

if(callback.failure){

if(!callback.scope){

callback.failure(responseObject);


} 

else{

callback.failure.apply(callback.scope,[responseObject]);


} 

} 

} 

} 

this.releaseObject(o);

responseObject=null;


} ,createResponseObject:function(o,callbackArg) 

{

var obj={


} ;

var headerObj={


} ;

try 

{

var headerStr=o.conn.getAllResponseHeaders();

var header=headerStr.split('\n');

for(var i=0;

i<header.length;

i++){

var delimitPos=header[i].indexOf(':');

if(delimitPos!=-1){

headerObj[header[i].substring(0,delimitPos)]=header[i].substring(delimitPos+2);


} 

} 

} 

catch(e){


} 

obj.tId=o.tId;

obj.status=(o.conn.status==1223)?204:o.conn.status;

obj.statusText=(o.conn.status==1223)?"No Content":o.conn.statusText;

obj.getResponseHeader=headerObj;

obj.getAllResponseHeaders=headerStr;

obj.responseText=o.conn.responseText;

obj.responseXML=o.conn.responseXML;

if(typeof callbackArg!==undefined){

obj.argument=callbackArg;


} 

return obj;


} ,createExceptionObject:function(tId,callbackArg,isAbort) 

{

var COMM_CODE=0;

var COMM_ERROR='communication failure';

var ABORT_CODE=-1;

var ABORT_ERROR='transaction aborted';

var obj={


} ;

obj.tId=tId;

if(isAbort){

obj.status=ABORT_CODE;

obj.statusText=ABORT_ERROR;


} 

else{

obj.status=COMM_CODE;

obj.statusText=COMM_ERROR;


} 

if(callbackArg){

obj.argument=callbackArg;


} 

return obj;


} ,initHeader:function(label,value,isDefault) 

{

var headerObj=(isDefault)?this._default_headers:this._http_headers;

if(headerObj[label]===undefined){

headerObj[label]=value;


} 

else{

headerObj[label]=value+","+headerObj[label];


} 

if(isDefault){

this._has_default_headers=true;


} 

else{

this._has_http_headers=true;


} 

} ,setHeader:function(o) 

{

if(this._has_default_headers){

for(var prop in this._default_headers){

if(YAHOO.lang.hasOwnProperty(this._default_headers,prop)){

o.conn.setRequestHeader(prop,this._default_headers[prop]);


} 

} 

} 

if(this._has_http_headers){

for(var prop in this._http_headers){

if(YAHOO.lang.hasOwnProperty(this._http_headers,prop)){

o.conn.setRequestHeader(prop,this._http_headers[prop]);


} 

} 

delete this._http_headers;

this._http_headers={


} ;

this._has_http_headers=false;


} 

} ,resetDefaultHeaders:function(){

delete this._default_headers 

this._default_headers={


} ;

this._has_default_headers=false;


} ,setForm:function(formId,isUpload,secureUri) 

{

this.resetFormState();

var oForm;

if(typeof formId=='string'){

oForm=(document.getElementById(formId)||document.forms[formId]);


} 

else if(typeof formId=='object'){

oForm=formId;


} 

else{

return;


} 

if(isUpload){

this.createFrame(secureUri?secureUri:null);

this._isFormSubmit=true;

this._isFileUpload=true;

this._formNode=oForm;

return;


} 

var oElement,oName,oValue,oDisabled;

var hasSubmit=false;

for(var i=0;

i<oForm.elements.length;

i++){

oElement=oForm.elements[i];

oDisabled=oForm.elements[i].disabled;

oName=oForm.elements[i].name;

oValue=oForm.elements[i].value;

if(!oDisabled&&oName) 

{

switch(oElement.type) 

{

case'select-one':case'select-multiple':for(var j=0;

j<oElement.options.length;

j++){

if(oElement.options[j].selected){

if(window.ActiveXObject){

this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text)+'&';


} 

else{

this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text)+'&';


} 

} 

} 

break;

case'radio':case'checkbox':if(oElement.checked){

this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';


} 

break;

case'file':case undefined:case'reset':case'button':break;

case'submit':if(hasSubmit===false){

if(this._hasSubmitListener){

this._sFormData+=this._submitElementValue+'&';


} 

else{

this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';


} 

hasSubmit=true;


} 

break;

default:this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';

break;


} 

} 

} 

this._isFormSubmit=true;

this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);

return this._sFormData;


} ,resetFormState:function(){

this._isFormSubmit=false;

this._isFileUpload=false;

this._formNode=null;

this._sFormData="";


} ,createFrame:function(secureUri){

var frameId='yuiIO'+this._transaction_id;

if(window.ActiveXObject){

var io=document.createElement('<iframe id="'+frameId+'" name="'+frameId+'" />');

if(typeof secureUri=='boolean'){

io.src='javascript:false';


} 

else if(typeof secureURI=='string'){

io.src=secureUri;


} 

} 

else{

var io=document.createElement('iframe');

io.id=frameId;

io.name=frameId;


} 

io.style.position='absolute';

io.style.top='-1000px';

io.style.left='-1000px';

document.body.appendChild(io);


} ,appendPostData:function(postData) 

{

var formElements=[];

var postMessage=postData.split('&');

for(var i=0;

i<postMessage.length;

i++){

var delimitPos=postMessage[i].indexOf('=');

if(delimitPos!=-1){

formElements[i]=document.createElement('input');

formElements[i].type='hidden';

formElements[i].name=postMessage[i].substring(0,delimitPos);

formElements[i].value=postMessage[i].substring(delimitPos+1);

this._formNode.appendChild(formElements[i]);


} 

} 

return formElements;


} ,uploadFile:function(id,callback,uri,postData){

var frameId='yuiIO'+id;

var uploadEncoding='multipart/form-data';

var io=document.getElementById(frameId);

this._formNode.setAttribute('action',uri);

this._formNode.setAttribute('method','POST');

this._formNode.setAttribute("target",frameId);

if(this._formNode.encoding){

this._formNode.encoding=uploadEncoding;


} 

else{

this._formNode.enctype=uploadEncoding;


} 

if(postData){

var oElements=this.appendPostData(postData);


} 

this._formNode.submit();

if(oElements&&oElements.length>0){

for(var i=0;

i<oElements.length;

i++){

this._formNode.removeChild(oElements[i]);


} 

} 

this.resetFormState();

var uploadCallback=function() 

{

var obj={


} ;

obj.tId=id;

obj.argument=callback.argument;

try 

{

obj.responseText=io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;

obj.responseXML=io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;


} 

catch(e){


} 

if(callback&&callback.upload){

if(!callback.scope){

callback.upload(obj);


} 

else{

callback.upload.apply(callback.scope,[obj]);


} 

} 

if(YAHOO.util.Event){

YAHOO.util.Event.removeListener(io,"load",uploadCallback);


} 

else if(window.detachEvent){

io.detachEvent('onload',uploadCallback);


} 

else{

io.removeEventListener('load',uploadCallback,false);


} 

setTimeout(function(){

document.body.removeChild(io);


} ,100);


} ;

if(YAHOO.util.Event){

YAHOO.util.Event.addListener(io,"load",uploadCallback);


} 

else if(window.attachEvent){

io.attachEvent('onload',uploadCallback);


} 

else{

io.addEventListener('load',uploadCallback,false);


} 

} ,abort:function(o,callback,isTimeout) 

{

if(this.isCallInProgress(o)){

o.conn.abort();

window.clearInterval(this._poll[o.tId]);

delete this._poll[o.tId];

if(isTimeout){

delete this._timeOut[o.tId];


} 

this.handleTransactionResponse(o,callback,true);

return true;


} 

else{

return false;


} 

} ,isCallInProgress:function(o) 

{

if(o.conn){

return o.conn.readyState!==4&&o.conn.readyState!==0;


} 

else{

return false;


} 

} ,releaseObject:function(o) 

{

o.conn=null;

o=null;


} 

} ;

YAHOO.register("connection",YAHOO.util.Connect,{

version:"2.2.2",build:"204"

} );


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;

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];


} 

} else{

end=start+attributes[attr]['by'];


} 

} 

this.runtimeAttributes[attr].start=start;

this.runtimeAttributes[attr].end=end;

this.runtimeAttributes[attr].unit=(isset(attributes[attr].unit))?attributes[attr]['unit']:this.getDefaultUnit(attr);


} ,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=duration||1;

this.method=method||YAHOO.util.Easing.easeNone;

this.useSeconds=true;

this.currentFrame=0;

this.totalFrames=YAHOO.util.AnimMgr.fps;

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;

YAHOO.util.AnimMgr.registerElement(this);


} ;

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){

queue.splice(index,1);


} 

tweenCount-=1;

if(tweenCount<=0){

this.stop();


} 

} ;

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.2.2",build:"204"

} );

if(!YAHOO.util.DragDropMgr){

YAHOO.util.DragDropMgr=function(){

var Event=YAHOO.util.Event;

return{

ids:{


} ,handleIds:{


} ,dragCurrent:null,dragOvers:{


} ,deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initalized:false,locked:false,interactionInfo:null,init:function(){

this.initialized=true;


} ,POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(sMethod,args){

for(var i in this.ids){

for(var j in this.ids[i]){

var oDD=this.ids[i][j];

if(!this.isTypeOfDD(oDD)){

continue;


} 

oDD[sMethod].apply(oDD,args);


} 

} 

} ,_onLoad:function(){

this.init();

Event.on(document,"mouseup",this.handleMouseUp,this,true);

Event.on(document,"mousemove",this.handleMouseMove,this,true);

Event.on(window,"unload",this._onUnload,this,true);

Event.on(window,"resize",this._onResize,this,true);


} ,_onResize:function(e){

this._execOnAll("resetConstraints",[]);


} ,lock:function(){

this.locked=true;


} ,unlock:function(){

this.locked=false;


} ,isLocked:function(){

return this.locked;


} ,locationCache:{


} ,useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(oDD,sGroup){

if(!this.initialized){

this.init();


} 

if(!this.ids[sGroup]){

this.ids[sGroup]={


} ;


} 

this.ids[sGroup][oDD.id]=oDD;


} ,removeDDFromGroup:function(oDD,sGroup){

if(!this.ids[sGroup]){

this.ids[sGroup]={


} ;


} 

var obj=this.ids[sGroup];

if(obj&&obj[oDD.id]){

delete obj[oDD.id];


} 

} ,_remove:function(oDD){

for(var g in oDD.groups){

if(g&&this.ids[g][oDD.id]){

delete this.ids[g][oDD.id];


} 

} 

delete this.handleIds[oDD.id];


} ,regHandle:function(sDDId,sHandleId){

if(!this.handleIds[sDDId]){

this.handleIds[sDDId]={


} ;


} 

this.handleIds[sDDId][sHandleId]=sHandleId;


} ,isDragDrop:function(id){

return(this.getDDById(id))?true:false;


} ,getRelated:function(p_oDD,bTargetsOnly){

var oDDs=[];

for(var i in p_oDD.groups){

for(j in this.ids[i]){

var dd=this.ids[i][j];

if(!this.isTypeOfDD(dd)){

continue;


} 

if(!bTargetsOnly||dd.isTarget){

oDDs[oDDs.length]=dd;


} 

} 

} 

return oDDs;


} ,isLegalTarget:function(oDD,oTargetDD){

var targets=this.getRelated(oDD,true);

for(var i=0,len=targets.length;

i<len;

++i){

if(targets[i].id==oTargetDD.id){

return true;


} 

} 

return false;


} ,isTypeOfDD:function(oDD){

return(oDD&&oDD.__ygDragDrop);


} ,isHandle:function(sDDId,sHandleId){

return(this.handleIds[sDDId]&&this.handleIds[sDDId][sHandleId]);


} ,getDDById:function(id){

for(var i in this.ids){

if(this.ids[i][id]){

return this.ids[i][id];


} 

} 

return null;


} ,handleMouseDown:function(e,oDD){

this.currentTarget=YAHOO.util.Event.getTarget(e);

this.dragCurrent=oDD;

var el=oDD.getEl();

this.startX=YAHOO.util.Event.getPageX(e);

this.startY=YAHOO.util.Event.getPageY(e);

this.deltaX=this.startX-el.offsetLeft;

this.deltaY=this.startY-el.offsetTop;

this.dragThreshMet=false;

this.clickTimeout=setTimeout(function(){

var DDM=YAHOO.util.DDM;

DDM.startDrag(DDM.startX,DDM.startY);


} ,this.clickTimeThresh);


} ,startDrag:function(x,y){

clearTimeout(this.clickTimeout);

if(this.dragCurrent){

this.dragCurrent.b4StartDrag(x,y);

this.dragCurrent.startDrag(x,y);


} 

this.dragThreshMet=true;


} ,handleMouseUp:function(e){

if(!this.dragCurrent){

return;


} 

clearTimeout(this.clickTimeout);

if(this.dragThreshMet){

this.fireEvents(e,true);


} else{


} 

this.stopDrag(e);

this.stopEvent(e);


} ,stopEvent:function(e){

if(this.stopPropagation){


YAHOO.util.Event.stopPropagation(e);


} 

if(this.preventDefault){

YAHOO.util.Event.preventDefault(e);


} 

} ,stopDrag:function(e){

if(this.dragCurrent){

if(this.dragThreshMet){

this.dragCurrent.b4EndDrag(e);

this.dragCurrent.endDrag(e);


} 

this.dragCurrent.onMouseUp(e);


} 

this.dragCurrent=null;

this.dragOvers={


} ;


} ,handleMouseMove:function(e){

if(!this.dragCurrent){

return true;


} 

if(YAHOO.util.Event.isIE&&!e.button){

this.stopEvent(e);

return this.handleMouseUp(e);


} 

if(!this.dragThreshMet){

var diffX=Math.abs(this.startX-YAHOO.util.Event.getPageX(e));

var diffY=Math.abs(this.startY-YAHOO.util.Event.getPageY(e));

if(diffX>this.clickPixelThresh||diffY>this.clickPixelThresh){

this.startDrag(this.startX,this.startY);


} 

} 

if(this.dragThreshMet){

this.dragCurrent.b4Drag(e);

this.dragCurrent.onDrag(e);

this.fireEvents(e,false);


} 

this.stopEvent(e);

return true;


} ,fireEvents:function(e,isDrop){

var dc=this.dragCurrent;

if(!dc||dc.isLocked()){

return;


} 

var x=YAHOO.util.Event.getPageX(e);

var y=YAHOO.util.Event.getPageY(e);

var pt=new YAHOO.util.Point(x,y);

var pos=dc.getTargetCoord(pt.x,pt.y);

var el=dc.getDragEl();

curRegion=new YAHOO.util.Region(pos.y,pos.x+el.offsetWidth,pos.y+el.offsetHeight,pos.x);

var oldOvers=[];

var outEvts=[];

var overEvts=[];

var dropEvts=[];

var enterEvts=[];

for(var i in this.dragOvers){

var ddo=this.dragOvers[i];

if(!this.isTypeOfDD(ddo)){

continue;


} 

if(!this.isOverTarget(pt,ddo,this.mode,curRegion)){

outEvts.push(ddo);


} 

oldOvers[i]=true;

delete this.dragOvers[i];


} 

for(var sGroup in dc.groups){

if("string"!=typeof sGroup){

continue;


} 

for(i in this.ids[sGroup]){

var oDD=this.ids[sGroup][i];

if(!this.isTypeOfDD(oDD)){

continue;


} 

if(oDD.isTarget&&!oDD.isLocked()&&oDD!=dc){

if(this.isOverTarget(pt,oDD,this.mode,curRegion)){

if(isDrop){

dropEvts.push(oDD);


} else{

if(!oldOvers[oDD.id]){

enterEvts.push(oDD);


} else{

overEvts.push(oDD);


} 

this.dragOvers[oDD.id]=oDD;


} 

} 

} 

} 

} 

this.interactionInfo={

out:outEvts,enter:enterEvts,over:overEvts,drop:dropEvts,point:pt,draggedRegion:curRegion,sourceRegion:this.locationCache[dc.id],validDrop:isDrop

} ;

if(isDrop&&!dropEvts.length){

this.interactionInfo.validDrop=false;

dc.onInvalidDrop(e);


} 

if(this.mode){

if(outEvts.length){

dc.b4DragOut(e,outEvts);

dc.onDragOut(e,outEvts);


} 

if(enterEvts.length){

dc.onDragEnter(e,enterEvts);


} 

if(overEvts.length){

dc.b4DragOver(e,overEvts);

dc.onDragOver(e,overEvts);


} 

if(dropEvts.length){

dc.b4DragDrop(e,dropEvts);

dc.onDragDrop(e,dropEvts);


} 

} else{

var len=0;

for(i=0,len=outEvts.length;

i<len;

++i){

dc.b4DragOut(e,outEvts[i].id);

dc.onDragOut(e,outEvts[i].id);


} 

for(i=0,len=enterEvts.length;

i<len;

++i){

dc.onDragEnter(e,enterEvts[i].id);


} 

for(i=0,len=overEvts.length;

i<len;

++i){

dc.b4DragOver(e,overEvts[i].id);

dc.onDragOver(e,overEvts[i].id);


} 

for(i=0,len=dropEvts.length;

i<len;

++i){

dc.b4DragDrop(e,dropEvts[i].id);

dc.onDragDrop(e,dropEvts[i].id);


} 

} 

} ,getBestMatch:function(dds){

var winner=null;

var len=dds.length;

if(len==1){

winner=dds[0];


} else{

for(var i=0;

i<len;

++i){

var dd=dds[i];

if(this.mode==this.INTERSECT&&dd.cursorIsOver){

winner=dd;

break;


} else{

if(!winner||!winner.overlap||(dd.overlap&&winner.overlap.getArea()<dd.overlap.getArea())){

winner=dd;


} 

} 

} 

} 

return winner;


} ,refreshCache:function(groups){

var g=groups||this.ids;

for(var sGroup in g){

if("string"!=typeof sGroup){

continue;


} 

for(var i in this.ids[sGroup]){

var oDD=this.ids[sGroup][i];

if(this.isTypeOfDD(oDD)){

var loc=this.getLocation(oDD);

if(loc){

this.locationCache[oDD.id]=loc;


} else{

delete this.locationCache[oDD.id];


} 

} 

} 

} 

} ,verifyEl:function(el){

try{

if(el){

var parent=el.offsetParent;

if(parent){

return true;


} 

} 

} catch(e){


} 

return false;


} ,getLocation:function(oDD){

if(!this.isTypeOfDD(oDD)){

return null;


} 

var el=oDD.getEl(),pos,x1,x2,y1,y2,t,r,b,l;

try{

pos=YAHOO.util.Dom.getXY(el);


} catch(e){


} 

if(!pos){

return null;


} 

x1=pos[0];

x2=x1+el.offsetWidth;

y1=pos[1];

y2=y1+el.offsetHeight;

t=y1-oDD.padding[0];

r=x2+oDD.padding[1];

b=y2+oDD.padding[2];

l=x1-oDD.padding[3];

return new YAHOO.util.Region(t,r,b,l);


} ,isOverTarget:function(pt,oTarget,intersect,curRegion){

var loc=this.locationCache[oTarget.id];

if(!loc||!this.useCache){

loc=this.getLocation(oTarget);

this.locationCache[oTarget.id]=loc;


} 

if(!loc){

return false;


} 

oTarget.cursorIsOver=loc.contains(pt);

var dc=this.dragCurrent;

if(!dc||(!intersect&&!dc.constrainX&&!dc.constrainY)){

return oTarget.cursorIsOver;


} 

oTarget.overlap=null;

if(!curRegion){

var pos=dc.getTargetCoord(pt.x,pt.y);

var el=dc.getDragEl();

curRegion=new YAHOO.util.Region(pos.y,pos.x+el.offsetWidth,pos.y+el.offsetHeight,pos.x);


} 

var overlap=curRegion.intersect(loc);

if(overlap){

oTarget.overlap=overlap;

return(intersect)?true:oTarget.cursorIsOver;


} else{

return false;


} 

} ,_onUnload:function(e,me){

this.unregAll();


} ,unregAll:function(){

if(this.dragCurrent){

this.stopDrag();

this.dragCurrent=null;


} 

this._execOnAll("unreg",[]);

for(i in this.elementCache){

delete this.elementCache[i];


} 

this.elementCache={


} ;

this.ids={


} ;


} ,elementCache:{


} ,getElWrapper:function(id){

var oWrapper=this.elementCache[id];

if(!oWrapper||!oWrapper.el){

oWrapper=this.elementCache[id]=new this.ElementWrapper(YAHOO.util.Dom.get(id));


} 

return oWrapper;


} ,getElement:function(id){

return YAHOO.util.Dom.get(id);


} ,getCss:function(id){

var el=YAHOO.util.Dom.get(id);

return(el)?el.style:null;


} ,ElementWrapper:function(el){

this.el=el||null;

this.id=this.el&&el.id;

this.css=this.el&&el.style;


} ,getPosX:function(el){

return YAHOO.util.Dom.getX(el);


} ,getPosY:function(el){

return YAHOO.util.Dom.getY(el);


} ,swapNode:function(n1,n2){

if(n1.swapNode){

n1.swapNode(n2);


} else{

var p=n2.parentNode;

var s=n2.nextSibling;

if(s==n1){

p.insertBefore(n1,n2);


} else if(n2==n1.nextSibling){

p.insertBefore(n2,n1);


} else{

n1.parentNode.replaceChild(n2,n1);

p.insertBefore(n1,s);


} 

} 

} ,getScroll:function(){

var t,l,dde=document.documentElement,db=document.body;

if(dde&&(dde.scrollTop||dde.scrollLeft)){

t=dde.scrollTop;

l=dde.scrollLeft;


} else if(db){

t=db.scrollTop;

l=db.scrollLeft;


} else{


} 

return{

top:t,left:l

} ;


} ,getStyle:function(el,styleProp){

return YAHOO.util.Dom.getStyle(el,styleProp);


} ,getScrollTop:function(){

return this.getScroll().top;


} ,getScrollLeft:function(){

return this.getScroll().left;


} ,moveToEl:function(moveEl,targetEl){

var aCoord=YAHOO.util.Dom.getXY(targetEl);

YAHOO.util.Dom.setXY(moveEl,aCoord);


} ,getClientHeight:function(){

return YAHOO.util.Dom.getViewportHeight();


} ,getClientWidth:function(){

return YAHOO.util.Dom.getViewportWidth();


} ,numericSort:function(a,b){

return(a-b);


} ,_timeoutCount:0,_addListeners:function(){

var DDM=YAHOO.util.DDM;

if(YAHOO.util.Event&&document){

DDM._onLoad();


} else{

if(DDM._timeoutCount>2000){


} else{

setTimeout(DDM._addListeners,10);

if(document&&document.body){

DDM._timeoutCount+=1;


} 

} 

} 

} ,handleWasClicked:function(node,id){

if(this.isHandle(id,node.id)){

return true;


} else{

var p=node.parentNode;

while(p){

if(this.isHandle(id,p.id)){

return true;


} else{

p=p.parentNode;


} 

} 

} 

return false;


} 

} ;


} ();

YAHOO.util.DDM=YAHOO.util.DragDropMgr;

YAHOO.util.DDM._addListeners();


} 

(function(){

var Event=YAHOO.util.Event;

var Dom=YAHOO.util.Dom;

YAHOO.util.DragDrop=function(id,sGroup,config){

if(id){

this.init(id,sGroup,config);


} 

} ;

YAHOO.util.DragDrop.prototype={

id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){

this.locked=true;


} ,unlock:function(){

this.locked=false;


} ,isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(x,y){


} ,startDrag:function(x,y){


} ,b4Drag:function(e){


} ,onDrag:function(e){


} ,onDragEnter:function(e,id){


} ,b4DragOver:function(e){


} ,onDragOver:function(e,id){


} ,b4DragOut:function(e){


} ,onDragOut:function(e,id){


} ,b4DragDrop:function(e){


} ,onDragDrop:function(e,id){


} ,onInvalidDrop:function(e){


} ,b4EndDrag:function(e){


} ,endDrag:function(e){


} ,b4MouseDown:function(e){


} ,onMouseDown:function(e){


} ,onMouseUp:function(e){


} ,onAvailable:function(){


} ,getEl:function(){

if(!this._domRef){

this._domRef=Dom.get(this.id);


} 

return this._domRef;


} ,getDragEl:function(){

return Dom.get(this.dragElId);


} ,init:function(id,sGroup,config){

this.initTarget(id,sGroup,config);

Event.on(this.id,"mousedown",this.handleMouseDown,this,true);


} ,initTarget:function(id,sGroup,config){

this.config=config||{


} ;

this.DDM=YAHOO.util.DDM;

this.groups={


} ;

if(typeof id!=="string"){

id=Dom.generateId(id);


} 

this.id=id;

this.addToGroup((sGroup)?sGroup:"default");

this.handleElId=id;

Event.onAvailable(id,this.handleOnAvailable,this,true);

this.setDragElId(id);

this.invalidHandleTypes={

A:"A"

} ;

this.invalidHandleIds={


} ;

this.invalidHandleClasses=[];

this.applyConfig();


} ,applyConfig:function(){

this.padding=this.config.padding||[0,0,0,0];

this.isTarget=(this.config.isTarget!==false);

this.maintainOffset=(this.config.maintainOffset);

this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);


} ,handleOnAvailable:function(){

this.available=true;

this.resetConstraints();

this.onAvailable();


} ,setPadding:function(iTop,iRight,iBot,iLeft){

if(!iRight&&0!==iRight){

this.padding=[iTop,iTop,iTop,iTop];


} else if(!iBot&&0!==iBot){

this.padding=[iTop,iRight,iTop,iRight];


} else{

this.padding=[iTop,iRight,iBot,iLeft];


} 

} ,setInitPosition:function(diffX,diffY){

var el=this.getEl();

if(!this.DDM.verifyEl(el)){

return;


} 

var dx=diffX||0;

var dy=diffY||0;

var p=Dom.getXY(el);

this.initPageX=p[0]-dx;

this.initPageY=p[1]-dy;

this.lastPageX=p[0];

this.lastPageY=p[1];

this.setStartPosition(p);


} ,setStartPosition:function(pos){

var p=pos||Dom.getXY(this.getEl());

this.deltaSetXY=null;

this.startPageX=p[0];

this.startPageY=p[1];


} ,addToGroup:function(sGroup){

this.groups[sGroup]=true;

this.DDM.regDragDrop(this,sGroup);


} ,removeFromGroup:function(sGroup){

if(this.groups[sGroup]){

delete this.groups[sGroup];


} 

this.DDM.removeDDFromGroup(this,sGroup);


} ,setDragElId:function(id){

this.dragElId=id;


} ,setHandleElId:function(id){

if(typeof id!=="string"){

id=Dom.generateId(id);


} 

this.handleElId=id;

this.DDM.regHandle(this.id,id);


} ,setOuterHandleElId:function(id){

if(typeof id!=="string"){

id=Dom.generateId(id);


} 

Event.on(id,"mousedown",this.handleMouseDown,this,true);

this.setHandleElId(id);

this.hasOuterHandles=true;


} ,unreg:function(){

Event.removeListener(this.id,"mousedown",this.handleMouseDown);

this._domRef=null;

this.DDM._remove(this);


} ,isLocked:function(){

return(this.DDM.isLocked()||this.locked);


} ,handleMouseDown:function(e,oDD){

var button=e.which||e.button;

if(this.primaryButtonOnly&&button>1){

return;


} 

if(this.isLocked()){

return;


} 

this.b4MouseDown(e);

this.onMouseDown(e);

this.DDM.refreshCache(this.groups);

var pt=new YAHOO.util.Point(Event.getPageX(e),Event.getPageY(e));

if(!this.hasOuterHandles&&!this.DDM.isOverTarget(pt,this)){


} else{

if(this.clickValidator(e)){

this.setStartPosition();

this.DDM.handleMouseDown(e,this);

this.DDM.stopEvent(e);


} else{


} 

} 

} ,clickValidator:function(e){

var target=Event.getTarget(e);

return(this.isValidHandleChild(target)&&(this.id==this.handleElId||this.DDM.handleWasClicked(target,this.id)));


} ,getTargetCoord:function(iPageX,iPageY){

var x=iPageX-this.deltaX;

var y=iPageY-this.deltaY;

if(this.constrainX){

if(x<this.minX){

x=this.minX;


} 

if(x>this.maxX){

x=this.maxX;


} 

} 

if(this.constrainY){

if(y<this.minY){

y=this.minY;


} 

if(y>this.maxY){

y=this.maxY;


} 

} 

x=this.getTick(x,this.xTicks);

y=this.getTick(y,this.yTicks);

return{

x:x,y:y

} ;


} ,addInvalidHandleType:function(tagName){

var type=tagName.toUpperCase();

this.invalidHandleTypes[type]=type;


} ,addInvalidHandleId:function(id){

if(typeof id!=="string"){

id=Dom.generateId(id);


} 

this.invalidHandleIds[id]=id;


} ,addInvalidHandleClass:function(cssClass){

this.invalidHandleClasses.push(cssClass);


} ,removeInvalidHandleType:function(tagName){

var type=tagName.toUpperCase();

delete this.invalidHandleTypes[type];


} ,removeInvalidHandleId:function(id){

if(typeof id!=="string"){

id=Dom.generateId(id);


} 

delete this.invalidHandleIds[id];


} ,removeInvalidHandleClass:function(cssClass){

for(var i=0,len=this.invalidHandleClasses.length;

i<len;

++i){

if(this.invalidHandleClasses[i]==cssClass){

delete this.invalidHandleClasses[i];


} 

} 

} ,isValidHandleChild:function(node){

var valid=true;

var nodeName;

try{

nodeName=node.nodeName.toUpperCase();


} catch(e){

nodeName=node.nodeName;


} 

valid=valid&&!this.invalidHandleTypes[nodeName];

valid=valid&&!this.invalidHandleIds[node.id];

for(var i=0,len=this.invalidHandleClasses.length;

valid&&i<len;

++i){

valid=!Dom.hasClass(node,this.invalidHandleClasses[i]);


} 

return valid;


} ,setXTicks:function(iStartX,iTickSize){

this.xTicks=[];

this.xTickSize=iTickSize;

var tickMap={


} ;

for(var i=this.initPageX;

i>=this.minX;

i=i-iTickSize){

if(!tickMap[i]){

this.xTicks[this.xTicks.length]=i;

tickMap[i]=true;


} 

} 

for(i=this.initPageX;

i<=this.maxX;

i=i+iTickSize){

if(!tickMap[i]){

this.xTicks[this.xTicks.length]=i;

tickMap[i]=true;


} 

} 

this.xTicks.sort(this.DDM.numericSort);


} ,setYTicks:function(iStartY,iTickSize){

this.yTicks=[];

this.yTickSize=iTickSize;

var tickMap={


} ;

for(var i=this.initPageY;

i>=this.minY;

i=i-iTickSize){

if(!tickMap[i]){

this.yTicks[this.yTicks.length]=i;

tickMap[i]=true;


} 

} 

for(i=this.initPageY;

i<=this.maxY;

i=i+iTickSize){

if(!tickMap[i]){

this.yTicks[this.yTicks.length]=i;

tickMap[i]=true;


} 

} 

this.yTicks.sort(this.DDM.numericSort);


} ,setXConstraint:function(iLeft,iRight,iTickSize){

this.leftConstraint=parseInt(iLeft,10);

this.rightConstraint=parseInt(iRight,10);

this.minX=this.initPageX-this.leftConstraint;

this.maxX=this.initPageX+this.rightConstraint;

if(iTickSize){

this.setXTicks(this.initPageX,iTickSize);


} 

this.constrainX=true;


} ,clearConstraints:function(){

this.constrainX=false;

this.constrainY=false;

this.clearTicks();


} ,clearTicks:function(){

this.xTicks=null;

this.yTicks=null;

this.xTickSize=0;

this.yTickSize=0;


} ,setYConstraint:function(iUp,iDown,iTickSize){

this.topConstraint=parseInt(iUp,10);

this.bottomConstraint=parseInt(iDown,10);

this.minY=this.initPageY-this.topConstraint;

this.maxY=this.initPageY+this.bottomConstraint;

if(iTickSize){

this.setYTicks(this.initPageY,iTickSize);


} 

this.constrainY=true;


} ,resetConstraints:function(){

if(this.initPageX||this.initPageX===0){

var dx=(this.maintainOffset)?this.lastPageX-this.initPageX:0;

var dy=(this.maintainOffset)?this.lastPageY-this.initPageY:0;

this.setInitPosition(dx,dy);


} else{

this.setInitPosition();


} 

if(this.constrainX){

this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);


} 

if(this.constrainY){

this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);


} 

} ,getTick:function(val,tickArray){

if(!tickArray){

return val;


} else if(tickArray[0]>=val){

return tickArray[0];


} else{

for(var i=0,len=tickArray.length;

i<len;

++i){

var next=i+1;

if(tickArray[next]&&tickArray[next]>=val){

var diff1=val-tickArray[i];

var diff2=tickArray[next]-val;

return(diff2>diff1)?tickArray[i]:tickArray[next];


} 

} 

return tickArray[tickArray.length-1];


} 

} ,toString:function(){

return("DragDrop "+this.id);


} 

} ;


} )();

YAHOO.util.DD=function(id,sGroup,config){

if(id){

this.init(id,sGroup,config);


} 

} ;

YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{

scroll:true,autoOffset:function(iPageX,iPageY){

var x=iPageX-this.startPageX;

var y=iPageY-this.startPageY;

this.setDelta(x,y);


} ,setDelta:function(iDeltaX,iDeltaY){

this.deltaX=iDeltaX;

this.deltaY=iDeltaY;


} ,setDragElPos:function(iPageX,iPageY){

var el=this.getDragEl();

this.alignElWithMouse(el,iPageX,iPageY);


} ,alignElWithMouse:function(el,iPageX,iPageY){

var oCoord=this.getTargetCoord(iPageX,iPageY);

if(!this.deltaSetXY){

var aCoord=[oCoord.x,oCoord.y];

YAHOO.util.Dom.setXY(el,aCoord);

var newLeft=parseInt(YAHOO.util.Dom.getStyle(el,"left"),10);

var newTop=parseInt(YAHOO.util.Dom.getStyle(el,"top"),10);

this.deltaSetXY=[newLeft-oCoord.x,newTop-oCoord.y];


} else{

YAHOO.util.Dom.setStyle(el,"left",(oCoord.x+this.deltaSetXY[0])+"px");

YAHOO.util.Dom.setStyle(el,"top",(oCoord.y+this.deltaSetXY[1])+"px");


} 

this.cachePosition(oCoord.x,oCoord.y);

this.autoScroll(oCoord.x,oCoord.y,el.offsetHeight,el.offsetWidth);


} ,cachePosition:function(iPageX,iPageY){

if(iPageX){

this.lastPageX=iPageX;

this.lastPageY=iPageY;


} else{

var aCoord=YAHOO.util.Dom.getXY(this.getEl());

this.lastPageX=aCoord[0];

this.lastPageY=aCoord[1];


} 

} ,autoScroll:function(x,y,h,w){

if(this.scroll){

var clientH=this.DDM.getClientHeight();

var clientW=this.DDM.getClientWidth();

var st=this.DDM.getScrollTop();

var sl=this.DDM.getScrollLeft();

var bot=h+y;

var right=w+x;

var toBot=(clientH+st-y-this.deltaY);

var toRight=(clientW+sl-x-this.deltaX);

var thresh=40;

var scrAmt=(document.all)?80:30;

if(bot>clientH&&toBot<thresh){

window.scrollTo(sl,st+scrAmt);


} 

if(y<st&&st>0&&y-st<thresh){

window.scrollTo(sl,st-scrAmt);


} 

if(right>clientW&&toRight<thresh){

window.scrollTo(sl+scrAmt,st);


} 

if(x<sl&&sl>0&&x-sl<thresh){

window.scrollTo(sl-scrAmt,st);


} 

} 

} ,applyConfig:function(){

YAHOO.util.DD.superclass.applyConfig.call(this);

this.scroll=(this.config.scroll!==false);


} ,b4MouseDown:function(e){

this.setStartPosition();

this.autoOffset(YAHOO.util.Event.getPageX(e),YAHOO.util.Event.getPageY(e));


} ,b4Drag:function(e){

this.setDragElPos(YAHOO.util.Event.getPageX(e),YAHOO.util.Event.getPageY(e));


} ,toString:function(){

return("DD "+this.id);


} 

} );

YAHOO.util.DDProxy=function(id,sGroup,config){

if(id){

this.init(id,sGroup,config);

this.initFrame();


} 

} ;

YAHOO.util.DDProxy.dragElId="ygddfdiv";

YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{

resizeFrame:true,centerFrame:false,createFrame:function(){

var self=this;

var body=document.body;

if(!body||!body.firstChild){

setTimeout(function(){

self.createFrame();


} ,50);

return;


} 

var div=this.getDragEl();

if(!div){

div=document.createElement("div");

div.id=this.dragElId;

var s=div.style;

s.position="absolute";

s.visibility="hidden";

s.cursor="move";

s.border="2px solid #aaa";

s.zIndex=999;

body.insertBefore(div,body.firstChild);


} 

} ,initFrame:function(){

this.createFrame();


} ,applyConfig:function(){

YAHOO.util.DDProxy.superclass.applyConfig.call(this);

this.resizeFrame=(this.config.resizeFrame!==false);

this.centerFrame=(this.config.centerFrame);

this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);


} ,showFrame:function(iPageX,iPageY){

var el=this.getEl();

var dragEl=this.getDragEl();

var s=dragEl.style;

this._resizeProxy();

if(this.centerFrame){

this.setDelta(Math.round(parseInt(s.width,10)/2),Math.round(parseInt(s.height,10)/2));


} 

this.setDragElPos(iPageX,iPageY);

YAHOO.util.Dom.setStyle(dragEl,"visibility","visible");


} ,_resizeProxy:function(){

if(this.resizeFrame){

var DOM=YAHOO.util.Dom;

var el=this.getEl();

var dragEl=this.getDragEl();

var bt=parseInt(DOM.getStyle(dragEl,"borderTopWidth"),10);

var br=parseInt(DOM.getStyle(dragEl,"borderRightWidth"),10);

var bb=parseInt(DOM.getStyle(dragEl,"borderBottomWidth"),10);

var bl=parseInt(DOM.getStyle(dragEl,"borderLeftWidth"),10);

if(isNaN(bt)){

bt=0;


} 

if(isNaN(br)){

br=0;


} 

if(isNaN(bb)){

bb=0;


} 

if(isNaN(bl)){

bl=0;


} 

var newWidth=Math.max(0,el.offsetWidth-br-bl);

var newHeight=Math.max(0,el.offsetHeight-bt-bb);

DOM.setStyle(dragEl,"width",newWidth+"px");

DOM.setStyle(dragEl,"height",newHeight+"px");


} 

} ,b4MouseDown:function(e){

this.setStartPosition();

var x=YAHOO.util.Event.getPageX(e);

var y=YAHOO.util.Event.getPageY(e);

this.autoOffset(x,y);

this.setDragElPos(x,y);


} ,b4StartDrag:function(x,y){

this.showFrame(x,y);


} ,b4EndDrag:function(e){

YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");


} ,endDrag:function(e){

var DOM=YAHOO.util.Dom;

var lel=this.getEl();

var del=this.getDragEl();

DOM.setStyle(del,"visibility","");

DOM.setStyle(lel,"visibility","hidden");

YAHOO.util.DDM.moveToEl(lel,del);

DOM.setStyle(del,"visibility","hidden");

DOM.setStyle(lel,"visibility","");


} ,toString:function(){

return("DDProxy "+this.id);


} 

} );

YAHOO.util.DDTarget=function(id,sGroup,config){

if(id){

this.initTarget(id,sGroup,config);


} 

} ;

YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{

toString:function(){

return("DDTarget "+this.id);


} 

} );

YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{

version:"2.2.2",build:"204"

} );


YAHOO.util.Attribute=function(hash,owner){

if(owner){

this.owner=owner;

this.configure(hash,true);


} 

} ;

YAHOO.util.Attribute.prototype={

name:undefined,value:null,owner:null,readOnly:false,writeOnce:false,_initialConfig:null,_written:false,method:null,validator:null,getValue:function(){

return this.value;


} ,setValue:function(value,silent){

var beforeRetVal;

var owner=this.owner;

var name=this.name;

var event={

type:name,prevValue:this.getValue(),newValue:value

} ;

if(this.readOnly||(this.writeOnce&&this._written)){

return false;


} 

if(this.validator&&!this.validator.call(owner,value)){

return false;


} 

if(!silent){

beforeRetVal=owner.fireBeforeChangeEvent(event);

if(beforeRetVal===false){

return false;


} 

} 

if(this.method){

this.method.call(owner,value);


} 

this.value=value;

this._written=true;

event.type=name;

if(!silent){

this.owner.fireChangeEvent(event);


} 

return true;


} ,configure:function(map,init){

map=map||{


} ;

this._written=false;

this._initialConfig=this._initialConfig||{


} ;

for(var key in map){

if(key&&YAHOO.lang.hasOwnProperty(map,key)){

this[key]=map[key];

if(init){

this._initialConfig[key]=map[key];


} 

} 

} 

} ,resetValue:function(){

return this.setValue(this._initialConfig.value);


} ,resetConfig:function(){

this.configure(this._initialConfig);


} ,refresh:function(silent){

this.setValue(this.value,silent);


} 

} ;

(function(){

var Lang=YAHOO.util.Lang;

YAHOO.util.AttributeProvider=function(){


} ;

YAHOO.util.AttributeProvider.prototype={

_configs:null,get:function(key){

var configs=this._configs||{


} ;

var config=configs[key];

if(!config){

return undefined;


} 

return config.value;


} ,set:function(key,value,silent){

var configs=this._configs||{


} ;

var config=configs[key];

if(!config){

return false;


} 

return config.setValue(value,silent);


} ,getAttributeKeys:function(){

var configs=this._configs;

var keys=[];

var config;

for(var key in configs){

config=configs[key];

if(Lang.hasOwnProperty(configs,key)&&!Lang.isUndefined(config)){

keys[keys.length]=key;


} 

} 

return keys;


} ,setAttributes:function(map,silent){

for(var key in map){

if(Lang.hasOwnProperty(map,key)){

this.set(key,map[key],silent);


} 

} 

} ,resetValue:function(key,silent){

var configs=this._configs||{


} ;

if(configs[key]){

this.set(key,configs[key]._initialConfig.value,silent);

return true;


} 

return false;


} ,refresh:function(key,silent){

var configs=this._configs;

key=((Lang.isString(key))?[key]:key)||this.getAttributeKeys();

for(var i=0,len=key.length;

i<len;

++i){

if(configs[key[i]]&&!Lang.isUndefined(configs[key[i]].value)&&!Lang.isNull(configs[key[i]].value)){

configs[key[i]].refresh(silent);


} 

} 

} ,register:function(key,map){

this.setAttributeConfig(key,map);


} ,getAttributeConfig:function(key){

var configs=this._configs||{


} ;

var config=configs[key]||{


} ;

var map={


} ;

for(key in config){

if(Lang.hasOwnProperty(config,key)){

map[key]=config[key];


} 

} 

return map;


} ,setAttributeConfig:function(key,map,init){

var configs=this._configs||{


} ;

map=map||{


} ;

if(!configs[key]){

map.name=key;

configs[key]=new YAHOO.util.Attribute(map,this);


} else{

configs[key].configure(map,init);


} 

} ,configureAttribute:function(key,map,init){

this.setAttributeConfig(key,map,init);


} ,resetAttributeConfig:function(key){

var configs=this._configs||{


} ;

configs[key].resetConfig();


} ,fireBeforeChangeEvent:function(e){

var type='before';

type+=e.type.charAt(0).toUpperCase()+e.type.substr(1)+'Change';

e.type=type;

return this.fireEvent(e.type,e);


} ,fireChangeEvent:function(e){

e.type+='Change';

return this.fireEvent(e.type,e);


} 

} ;

YAHOO.augment(YAHOO.util.AttributeProvider,YAHOO.util.EventProvider);


} )();

(function(){

var Dom=YAHOO.util.Dom,AttributeProvider=YAHOO.util.AttributeProvider;

YAHOO.util.Element=function(el,map){

if(arguments.length){

this.init(el,map);


} 

} ;

YAHOO.util.Element.prototype={

DOM_EVENTS:null,appendChild:function(child){

child=child.get?child.get('element'):child;

this.get('element').appendChild(child);


} ,getElementsByTagName:function(tag){

return this.get('element').getElementsByTagName(tag);


} ,hasChildNodes:function(){

return this.get('element').hasChildNodes();


} ,insertBefore:function(element,before){

element=element.get?element.get('element'):element;

before=(before&&before.get)?before.get('element'):before;

this.get('element').insertBefore(element,before);


} ,removeChild:function(child){

child=child.get?child.get('element'):child;

this.get('element').removeChild(child);

return true;


} ,replaceChild:function(newNode,oldNode){

newNode=newNode.get?newNode.get('element'):newNode;

oldNode=oldNode.get?oldNode.get('element'):oldNode;

return this.get('element').replaceChild(newNode,oldNode);


} ,initAttributes:function(map){


} ,addListener:function(type,fn,obj,scope){

var el=this.get('element');

scope=scope||this;

el=this.get('id')||el;

var self=this;

if(!this._events[type]){

if(this.DOM_EVENTS[type]){

YAHOO.util.Event.addListener(el,type,function(e){

if(e.srcElement&&!e.target){

e.target=e.srcElement;


} 

self.fireEvent(type,e);


} ,obj,scope);


} 

this.createEvent(type,this);


} 

this.subscribe.apply(this,arguments);


} ,on:function(){

this.addListener.apply(this,arguments);


} ,removeListener:function(type,fn){

this.unsubscribe.apply(this,arguments);


} ,addClass:function(className){

Dom.addClass(this.get('element'),className);


} ,getElementsByClassName:function(className,tag){

return Dom.getElementsByClassName(className,tag,this.get('element'));


} ,hasClass:function(className){

return Dom.hasClass(this.get('element'),className);


} ,removeClass:function(className){

return Dom.removeClass(this.get('element'),className);


} ,replaceClass:function(oldClassName,newClassName){

return Dom.replaceClass(this.get('element'),oldClassName,newClassName);


} ,setStyle:function(property,value){

var el=this.get('element');

if(!el){

return this._queue[this._queue.length]=['setStyle',arguments];


} 

return Dom.setStyle(el,property,value);


} ,getStyle:function(property){

return Dom.getStyle(this.get('element'),property);


} ,fireQueue:function(){

var queue=this._queue;

for(var i=0,len=queue.length;

i<len;

++i){

this[queue[i][0]].apply(this,queue[i][1]);


} 

} ,appendTo:function(parent,before){

parent=(parent.get)?parent.get('element'):Dom.get(parent);

this.fireEvent('beforeAppendTo',{

type:'beforeAppendTo',target:parent

} );

before=(before&&before.get)?before.get('element'):Dom.get(before);

var element=this.get('element');

if(!element){

return false;


} 

if(!parent){

return false;


} 

if(element.parent!=parent){

if(before){

parent.insertBefore(element,before);


} else{

parent.appendChild(element);


} 

} 

this.fireEvent('appendTo',{

type:'appendTo',target:parent

} );


} ,get:function(key){

var configs=this._configs||{


} ;

var el=configs.element;

if(el&&!configs[key]&&!YAHOO.lang.isUndefined(el.value[key])){

return el.value[key];


} 

return AttributeProvider.prototype.get.call(this,key);


} ,set:function(key,value,silent){

var el=this.get('element');

if(!el){

this._queue[this._queue.length]=['set',arguments];

if(this._configs[key]){

this._configs[key].value=value;


} 

return;


} 

if(!this._configs[key]&&!YAHOO.lang.isUndefined(el[key])){

_registerHTMLAttr.call(this,key);


} 

return AttributeProvider.prototype.set.apply(this,arguments);


} ,setAttributeConfig:function(key,map,init){

var el=this.get('element');

if(el&&!this._configs[key]&&!YAHOO.lang.isUndefined(el[key])){

_registerHTMLAttr.call(this,key,map);


} else{

AttributeProvider.prototype.setAttributeConfig.apply(this,arguments);


} 

} ,getAttributeKeys:function(){

var el=this.get('element');

var keys=AttributeProvider.prototype.getAttributeKeys.call(this);

for(var key in el){

if(!this._configs[key]){

keys[key]=keys[key]||el[key];


} 

} 

return keys;


} ,createEvent:function(type,scope){

this._events[type]=true;

AttributeProvider.prototype.createEvent.apply(this,arguments);


} ,init:function(el,attr){

_initElement.apply(this,arguments);


} 

} ;

var _initElement=function(el,attr){

this._queue=this._queue||[];

this._events=this._events||{


} ;

this._configs=this._configs||{


} ;

attr=attr||{


} ;

attr.element=attr.element||el||null;

this.DOM_EVENTS={

'click':true,'dblclick':true,'keydown':true,'keypress':true,'keyup':true,'mousedown':true,'mousemove':true,'mouseout':true,'mouseover':true,'mouseup':true,'focus':true,'blur':true,'submit':true

} ;

var isReady=false;

if(YAHOO.lang.isString(el)){

_registerHTMLAttr.call(this,'id',{

value:attr.element

} );


} 

if(Dom.get(el)){

isReady=true;

_initHTMLElement.call(this,attr);

_initContent.call(this,attr);


} 

YAHOO.util.Event.onAvailable(attr.element,function(){

if(!isReady){

_initHTMLElement.call(this,attr);


} 

this.fireEvent('available',{

type:'available',target:attr.element

} );


} ,this,true);

YAHOO.util.Event.onContentReady(attr.element,function(){

if(!isReady){

_initContent.call(this,attr);


} 

this.fireEvent('contentReady',{

type:'contentReady',target:attr.element

} );


} ,this,true);


} ;

var _initHTMLElement=function(attr){

this.setAttributeConfig('element',{

value:Dom.get(attr.element),readOnly:true

} );


} ;

var _initContent=function(attr){

this.initAttributes(attr);

this.setAttributes(attr,true);

this.fireQueue();


} ;

var _registerHTMLAttr=function(key,map){

var el=this.get('element');

map=map||{


} ;

map.name=key;

map.method=map.method||function(value){

el[key]=value;


} ;

map.value=map.value||el[key];

this._configs[key]=new YAHOO.util.Attribute(map,this);


} ;

YAHOO.augment(YAHOO.util.Element,AttributeProvider);


} )();

YAHOO.register("element",YAHOO.util.Element,{

version:"2.2.2",build:"204"

} );

//tb.js
if(!Array.prototype.indexOf){

Array.prototype.indexOf=function(obj,fromIndex){

if(fromIndex==null){

fromIndex=0;


} else if(fromIndex<0){

fromIndex=Math.max(0,this.length+fromIndex);


} 

for(var i=fromIndex;

i<this.length;

i++){

if(this[i]===obj) 

return i;


} 

return-1;


} ;


} 

if(!Array.prototype.lastIndexOf){

Array.prototype.lastIndexOf=function(obj,fromIndex){

if(fromIndex==null){

fromIndex=this.length-1;


} else if(fromIndex<0){

fromIndex=Math.max(0,this.length+fromIndex);


} 

for(var i=fromIndex;

i>=0;

i--){

if(this[i]===obj) 

return i;


} 

return-1;


} ;


} 

if(!Array.prototype.forEach){

Array.prototype.forEach=function(f,obj){

var l=this.length;

for(var i=0;

i<l;

i++){

f.call(obj,this[i],i,this);


} 

} ;


} 

if(!Array.prototype.filter){

Array.prototype.filter=function(f,obj){

var l=this.length;

var res=[];

for(var i=0;

i<l;

i++){

if(f.call(obj,this[i],i,this)){

res.push(this[i]);


} 

} 

return res;


} ;


} 

if(!Array.prototype.map){

Array.prototype.map=function(f,obj){

var l=this.length;

var res=[];

for(var i=0;

i<l;

i++){

res.push(f.call(obj,this[i],i,this));


} 

return res;


} ;


} 

if(!Array.prototype.some){

Array.prototype.some=function(f,obj){

var l=this.length;

for(var i=0;

i<l;

i++){

if(f.call(obj,this[i],i,this)){

return true;


} 

} 

return false;


} ;


} 

if(!Array.prototype.every){

Array.prototype.every=function(f,obj){

var l=this.length;

for(var i=0;

i<l;

i++){

if(!f.call(obj,this[i],i,this)){

return false;


} 

} 

return true;


} ;


} 

Array.prototype.contains=function(obj){

return this.indexOf(obj)!=-1;


} ;

Array.prototype.copy=function(obj){

return this.concat();


} ;

Array.prototype.insertAt=function(obj,i){

this.splice(i,0,obj);


} ;

Array.prototype.insertBefore=function(obj,obj2){

var i=this.indexOf(obj2);

if(i==-1) 

this.push(obj);

else 

this.splice(i,0,obj);


} ;

Array.prototype.removeAt=function(i){

this.splice(i,1);


} ;

Array.prototype.remove=function(obj){

var i=this.indexOf(obj);

if(i!=-1) 

this.splice(i,1);


} ;

TB={


} ;

TB.common={

getCookie:function(name){

var value=document.cookie.match('(?:^|;)\\s*'+name+'=([^;]*)');

return value?unescape(value[1]):'';


} ,setCookie:function(name,value,expire,domain,path){

value=escape(value);

value+=(domain)?'; domain='+domain:'';

value+=(path)?"; path="+path:'';

if(expire){

var date=new Date();

date.setTime(date.getTime()+(expire*86400000));

value+="; expires="+date.toGMTString();


} 

document.cookie=name+"="+value;


} ,removeCookie:function(name){

setCookie(name,'',-1);


} ,pickDocumentDomain:function(){

var da=location.hostname.split('.'),len=da.length;

var deep=arguments[0]||(len<3?0:1);

if(deep>=len||len-deep<2) 

deep=len-2;

return da.slice(deep).join('.')+(location.port?':'+location.port:'');


} ,trim:function(str){

return str.replace(/(^\s*)|(\s*$)/g,'');


} ,escapeHTML:function(str){

var div=document.createElement('div');

var text=document.createTextNode(str);

div.appendChild(text);

return div.innerHTML;


} ,unescapeHTML:function(str){

var div=document.createElement('div');

div.innerHTML=str.replace(/<\/?[^>]+>/gi,'');

return div.childNodes[0]?div.childNodes[0].nodeValue:'';


} ,toArray:function(list,start){

var array=[];

for(var i=start||0;

i<list.length;

i++){

array[array.length]=list[i];


} 

return array;


} ,applyConfig:function(obj,config){

if(obj&&config&&typeof config=='object'){

for(var p in config){

if(!YAHOO.lang.hasOwnProperty(obj,p)) 

obj[p]=config[p];


} 

} 

return obj;


} 

} ;

TB.widget={


} ;

TB.widget.SimpleScroll={


} ;

TB.widget.SimpleMarquee={


} ;

TB.widget.SimpleTab=new function(){

var Y=YAHOO.util;

var defConfig={

eventType:'click',currentClass:'Current',tabClass:'',autoSwitchToFirst:true,stopEvent:true,delay:0.3

} ;

var getImmediateDescendants=function(p){

var ret=[];

if(!p)return ret;

for(var i=0,c=p.childNodes;

i<c.length;

i++){

if(c[i].nodeType==1) 

ret[ret.length]=c[i];


} 

return ret;


} ;

this.decorate=function(container,config){

container=Y.Dom.get(container);

config=TB.common.applyConfig(config||{


} ,defConfig);

var tabPanels=getImmediateDescendants(container);

var tab=tabPanels.shift(0);

var tabTriggerBoxs=tab.getElementsByTagName('li');

var tabTriggers,delayTimeId;

if(config.tabClass){

tabTriggers=Y.Dom.getElementsByClassName(config.tabClass,'*',container);


} else{

tabTriggers=TB.common.toArray(tab.getElementsByTagName('a'));


} 

var onSwitchEvent=new Y.CustomEvent("onSwitch",null,false,Y.CustomEvent.FLAT);

if(config.onSwitch){

onSwitchEvent.subscribe(config.onSwitch);


} 

var handler={

switchTab:function(idx){

Y.Dom.setStyle(tabPanels,'display','none');

Y.Dom.removeClass(tabTriggerBoxs,config.currentClass);

Y.Dom.addClass(tabTriggerBoxs[idx],config.currentClass);

Y.Dom.setStyle(tabPanels[idx],'display','block');


} ,subscribeOnSwitch:function(func){

onSwitchEvent.subscribe(func);


} 

} 

var focusHandler=function(ev){

if(delayTimeId) 

cacelHandler();

var idx=tabTriggers.indexOf(this);

handler.switchTab(idx);

onSwitchEvent.fire(idx);

if(config.stopEvent) 

Y.Event.stopEvent(ev);

return!config.stopEvent;


} 

var delayHandler=function(){

var target=this;

delayTimeId=setTimeout(function(){

focusHandler.call(target);


} ,config.delay*1000);

if(config.stopEvent) 

Y.Event.stopEvent(ev);

return!config.stopEvent;


} 

var cacelHandler=function(){

clearTimeout(delayTimeId);


} 

for(var i=0;

i<tabTriggers.length;

i++){

Y.Event.on(tabTriggers[i],'focus',focusHandler);

if(config.eventType=='mouse'){

Y.Event.on(tabTriggers[i],'mouseover',config.delay?delayHandler:focusHandler);

Y.Event.on(tabTriggers[i],'mouseout',cacelHandler);


} 

else{

Y.Event.on(tabTriggers[i],'click',focusHandler);


} 

} 

Y.Dom.setStyle(tabPanels,'display','none');

if(config.autoSwitchToFirst) 

handler.switchTab(0);

return handler;


} 

} ;

(function(){

var Y=YAHOO.util;

TB.widget.Slide=function(container,config){

this.init(container,config);


} 

TB.widget.Slide.defConfig={
/*autoPlayTimeout ×Ô¶¯ÇÐ»»Ê±¼äXÃë*/
slidesClass:'Slides',triggersClass:'SlideTriggers',currentClass:'Current',eventType:'click',autoPlayTimeout:7,disableAutoPlay:false

} ;

TB.widget.Slide.prototype={

init:function(container,config){

this.container=Y.Dom.get(container);

this.config=TB.common.applyConfig(config||{


} ,TB.widget.Slide.defConfig);

try{

this.slidesUL=Y.Dom.getElementsByClassName(this.config.slidesClass,'ul',this.container)[0];

this.slides=this.slidesUL.getElementsByTagName('li');


} catch(e){

throw new Error("can't find slides!");


} 

this.delayTimeId=null;

this.autoPlayTimeId=null;

this.curSlide=-1;

this.sliding=false;

this.pause=false;

this.onSlide=new Y.CustomEvent("onSlide",this,false,Y.CustomEvent.FLAT);

if(YAHOO.lang.isFunction(this.config.onSlide)){

this.onSlide.subscribe(this.config.onSlide,this,true);


} 

this.initSlides();

this.initTriggers();

if(this.slides.length>0) 

this.play(1);

if(!this.config.disableAutoPlay){

this.autoPlay();


} 

} ,initTriggers:function(){

var ul=document.createElement('ul');

this.container.appendChild(ul);

for(var i=0;

i<this.slides.length;

i++){

var li=document.createElement('li');

li.innerHTML=i+1;

ul.appendChild(li);


} 

ul.className=this.config.triggersClass;

this.triggersUL=ul;

if(this.config.eventType=='mouse'){

Y.Event.on(this.triggersUL,'mouseover',this.mouseHandler,this,true);

Y.Event.on(this.triggersUL,'mouseout',function(e){

clearTimeout(this.delayTimeId);


} ,this,true);


} else{

Y.Event.on(this.triggersUL,'click',this.clickHandler,this,true);


} 

} ,initSlides:function(){

Y.Event.on(this.slides,'mouseover',function(){

this.pause=true;


} ,this,true);

Y.Event.on(this.slides,'mouseout',function(){

this.pause=false;


} ,this,true);

Y.Dom.setStyle(this.slides,'display','none');


} ,clickHandler:function(e){

var t=YAHOO.util.Event.getTarget(e);

var idx=parseInt(t.innerHTML);

while(t!=this.container){

if(t.nodeName.toUpperCase()=="LI"){

if(!this.sliding){

this.play(idx,true);


} 

break;


} else{

t=t.parentNode;


} 

} 

} ,mouseHandler:function(e){

var t=Y.Event.getTarget(e);

var idx=parseInt(t.innerHTML);

while(t!=this.container){

if(t.nodeName.toUpperCase()=="LI"){

var self=this;

this.delayTimeId=setTimeout(function(){

self.play(idx,true);


} ,(self.sliding?.5:.1)*1000);

break;


} else{

t=t.parentNode;


} 

} 

} ,play:function(n,flag){

n=n-1;

if(n==this.curSlide)return;

if(this.curSlide==-1) 

this.curSlide=0;

if(flag&&this.autoPlayTimeId) 

clearInterval(this.autoPlayTimeId);

var triggersLis=this.triggersUL.getElementsByTagName('li');

triggersLis[this.curSlide].className='';

triggersLis[n].className=this.config.currentClass;

this.slide(n);

this.curSlide=n;

if(flag&&!this.config.disableAutoPlay) 

this.autoPlay();


} ,slide:function(n){

this.sliding=true;

Y.Dom.setStyle(this.slides[this.curSlide],'display','none');

Y.Dom.setStyle(this.slides[n],'display','block');

this.sliding=false;

this.onSlide.fire(n);


} ,autoPlay:function(){

var self=this;

var callback=function(){

if(!self.pause&&!self.sliding){

var n=(self.curSlide+1)%self.slides.length+1;

self.play(n,false);


} 

} 

this.autoPlayTimeId=setInterval(callback,this.config.autoPlayTimeout*1000);


} 

} 

TB.widget.ScrollSlide=function(container,config){

this.init(container,config);


} 

YAHOO.extend(TB.widget.ScrollSlide,TB.widget.Slide,{

initSlides:function(){

TB.widget.ScrollSlide.superclass.initSlides.call(this);

Y.Dom.setStyle(this.slides,'display','');


} ,slide:function(n){

var args={

scroll:{

by:[0,this.slidesUL.offsetHeight*(n-this.curSlide)]

} 

} ;

var anim=new Y.Scroll(this.slidesUL,args,.5,Y.Easing.easeOutStrong);

anim.onComplete.subscribe(function(){

this.sliding=false;

this.onSlide.fire(n);


} ,this,true);

anim.animate();

this.sliding=true;


} 

} );


} )();

TB.widget.SimpleSlide=new function(){

this.decoration=function(container,config){

if(!container)return;

config=config||{


} ;

if(config.effect=='scroll'){

if(navigator.product&&navigator.product=='Gecko'){

if(YAHOO.util.Dom.get(container).getElementsByTagName('iframe').length>0){

new TB.widget.Slide(container,config);

return;


} 

} 

new TB.widget.ScrollSlide(container,config);


} 

else{

new TB.widget.Slide(container,config);


} 

} 

} 


