/* yahoo 2.0.6 */
if(typeof YAHOO=="undefined"){YAHOO={};}YAHOO.namespace=function(ns){if(!ns||!ns.length){return null;}var _2=ns.split(".");var _3=YAHOO;for(var i=(_2[0]=="YAHOO")?1:0;i<_2.length;++i){_3[_2[i]]=_3[_2[i]]||{};_3=_3[_2[i]];}return _3;};YAHOO.log=function(_5,_6,_7){var l=YAHOO.widget.Logger;if(l&&l.log){return l.log(_5,_6,_7);}else{return false;}};YAHOO.extend=function(_9,_10){var f=function(){};f.prototype=_10.prototype;_9.prototype=new f();_9.prototype.constructor=_9;_9.superclass=_10.prototype;if(_10.prototype.constructor==Object.prototype.constructor){_10.prototype.constructor=_10;}};YAHOO.namespace("util");YAHOO.namespace("widget");YAHOO.namespace("example");
/* event 2.0.6 */
YAHOO.util.CustomEvent=function(_1,_2,_3){this.type=_1;this.scope=_2||window;this.silent=_3;this.subscribers=[];if(!this.silent){}};YAHOO.util.CustomEvent.prototype={subscribe:function(fn,_5,_6){this.subscribers.push(new YAHOO.util.Subscriber(fn,_5,_6));},unsubscribe:function(fn,_7){var _8=false;for(var i=0,len=this.subscribers.length;i<len;++i){var s=this.subscribers[i];if(s&&s.contains(fn,_7)){this._delete(i);_8=true;}}return _8;},fire:function(){var len=this.subscribers.length;if(!len&&this.silent){return;}var _12=[];for(var i=0;i<arguments.length;++i){_12.push(arguments[i]);}if(!this.silent){}for(i=0;i<len;++i){var s=this.subscribers[i];if(s){if(!this.silent){}var _13=(s.override)?s.obj:this.scope;s.fn.call(_13,this.type,_12,s.obj);}}},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i<len;++i){this._delete(len-1-i);}},_delete:function(_14){var s=this.subscribers[_14];if(s){delete s.fn;delete s.obj;}this.subscribers.splice(_14,1);},toString:function(){return "CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(fn,obj,_16){this.fn=fn;this.obj=obj||null;this.override=(_16);};YAHOO.util.Subscriber.prototype.contains=function(fn,obj){return (this.fn==fn&&this.obj==obj);};YAHOO.util.Subscriber.prototype.toString=function(){return "Subscriber { obj: "+(this.obj||"")+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var _17=false;var _18=[];var _19=[];var _20=[];var _21=[];var _22=[];var _23=0;var _24=[];var _25=[];var _26=0;return {POLL_RETRYS:200,POLL_INTERVAL:50,EL:0,TYPE:1,FN:2,WFN:3,SCOPE:3,ADJ_SCOPE:4,isSafari:(/Safari|Konqueror|KHTML/gi).test(navigator.userAgent),isIE:(!this.isSafari&&!navigator.userAgent.match(/opera/gi)&&navigator.userAgent.match(/msie/gi)),addDelayedListener:function(el,_28,fn,_29,_30){_19[_19.length]=[el,_28,fn,_29,_30];if(_17){_23=this.POLL_RETRYS;this.startTimeout(0);}},startTimeout:function(_31){var i=(_31||_31===0)?_31:this.POLL_INTERVAL;var _32=this;var _33=function(){_32._tryPreloadAttach();};this.timeout=setTimeout(_33,i);},onAvailable:function(_34,_35,_36,_37){_24.push({id:_34,fn:_35,obj:_36,override:_37});_23=this.POLL_RETRYS;this.startTimeout(0);},addListener:function(el,_38,fn,_39,_40){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],_38,fn,_39,_40)&&ok);}return ok;}else{if(typeof el=="string"){var oEl=this.getEl(el);if(_17&&oEl){el=oEl;}else{this.addDelayedListener(el,_38,fn,_39,_40);return true;}}}if(!el){return false;}if("unload"==_38&&_39!==this){_20[_20.length]=[el,_38,fn,_39,_40];return true;}var _43=(_40)?_39:el;var _44=function(e){return fn.call(_43,YAHOO.util.Event.getEvent(e),_39);};var li=[el,_38,fn,_44,_43];var _47=_18.length;_18[_47]=li;if(this.useLegacyEvent(el,_38)){var _48=this.getLegacyIndex(el,_38);if(_48==-1||el!=_21[_48][0]){_48=_21.length;_25[el.id+_38]=_48;_21[_48]=[el,_38,el["on"+_38]];_22[_48]=[];el["on"+_38]=function(e){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(e),_48);};}_22[_48].push(li);}else{if(el.addEventListener){el.addEventListener(_38,_44,false);}else{if(el.attachEvent){el.attachEvent("on"+_38,_44);}}}return true;},fireLegacyEvent:function(e,_49){var ok=true;var le=_22[_49];for(var i=0,len=le.length;i<len;++i){var li=le[i];if(li&&li[this.WFN]){var _51=li[this.ADJ_SCOPE];var ret=li[this.WFN].call(_51,e);ok=(ok&&ret);}}return ok;},getLegacyIndex:function(el,_53){var key=this.generateId(el)+_53;if(typeof _25[key]=="undefined"){return -1;}else{return _25[key];}},useLegacyEvent:function(el,_55){if(!el.addEventListener&&!el.attachEvent){return true;}else{if(this.isSafari){if("click"==_55||"dblclick"==_55){return true;}}}return false;},removeListener:function(el,_56,fn,_57){if(!fn||!fn.call){return false;}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],_56,fn)&&ok);}return ok;}}if("unload"==_56){for(i=0,len=_20.length;i<len;i++){var li=_20[i];if(li&&li[0]==el&&li[1]==_56&&li[2]==fn){_20.splice(i,1);return true;}}return false;}var _58=null;if("undefined"==typeof _57){_57=this._getCacheIndex(el,_56,fn);}if(_57>=0){_58=_18[_57];}if(!el||!_58){return false;}if(this.useLegacyEvent(el,_56)){var _59=this.getLegacyIndex(el,_56);var _60=_22[_59];if(_60){for(i=0,len=_60.length;i<len;++i){li=_60[i];if(li&&li[this.EL]==el&&li[this.TYPE]==_56&&li[this.FN]==fn){_60.splice(i,1);}}}}else{if(el.removeEventListener){el.removeEventListener(_56,_58[this.WFN],false);}else{if(el.detachEvent){el.detachEvent("on"+_56,_58[this.WFN]);}}}delete _18[_57][this.WFN];delete _18[_57][this.FN];_18.splice(_57,1);return true;},getTarget:function(ev,_62){var t=ev.target||ev.srcElement;return this.resolveTextNode(t);},resolveTextNode:function(_64){if(_64&&_64.nodeName&&"#TEXT"==_64.nodeName.toUpperCase()){return _64.parentNode;}else{return _64;}},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(e){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.type=="keypress")?ev.keyCode:0);},_getCacheIndex:function(el,_68,fn){for(var i=0,len=_18.length;i<len;++i){var li=_18[i];if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==_68){return i;}}return -1;},generateId:function(el){var id=el.id;if(!id){id="yuievtautoid-"+_26;++_26;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(){},_load:function(e){_17=true;var EU=YAHOO.util.Event;EU._simpleRemove(window,"load",EU._load);},_tryPreloadAttach:function(){if(this.locked){return false;}this.locked=true;var _72=!_17;if(!_72){_72=(_23>0);}var _73=[];for(var i=0,len=_19.length;i<len;++i){var d=_19[i];if(d){var el=this.getEl(d[this.EL]);if(el){this.on(el,d[this.TYPE],d[this.FN],d[this.SCOPE],d[this.ADJ_SCOPE]);delete _19[i];}else{_73.push(d);}}}_19=_73;var _75=[];for(i=0,len=_24.length;i<len;++i){var _76=_24[i];if(_76){el=this.getEl(_76.id);if(el){var _77=(_76.override)?_76.obj:el;_76.fn.call(_77,_76.obj);delete _24[i];}else{_75.push(_76);}}}_23=(_73.length===0&&_75.length===0)?0:_23-1;if(_72){this.startTimeout();}this.locked=false;return true;},purgeElement:function(el,_78,_79){var _80=this.getListeners(el,_79);if(_80){for(var i=0,len=_80.length;i<len;++i){var l=_80[i];this.removeListener(el,l.type,l.fn);}}if(_78&&el&&el.childNodes){for(i=0,len=el.childNodes.length;i<len;++i){this.purgeElement(el.childNodes[i],_78,_79);}}},getListeners:function(el,_82){var _83=[];if(_18&&_18.length>0){for(var i=0,len=_18.length;i<len;++i){var l=_18[i];if(l&&l[this.EL]===el&&(!_82||_82===l[this.TYPE])){_83.push({type:l[this.TYPE],fn:l[this.FN],obj:l[this.SCOPE],adjust:l[this.ADJ_SCOPE],index:i});}}}return (_83.length)?_83:null;},_unload:function(e){var EU=YAHOO.util.Event;for(var i=0,len=_20.length;i<len;++i){var l=_20[i];if(l){var _84=(l[EU.ADJ_SCOPE])?l[EU.SCOPE]:window;l[EU.FN].call(_84,EU.getEvent(e),l[EU.SCOPE]);delete _20[i];l=null;}}if(_18&&_18.length>0){var j=_18.length;while(j){var _86=j-1;l=_18[_86];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],_86);}l=null;j=j-1;}EU.clearCache();}for(i=0,len=_21.length;i<len;++i){delete _21[i][0];delete _21[i];}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];}}},_simpleAdd:function(el,_88,fn,_89){if(el.addEventListener){el.addEventListener(_88,fn,(_89));}else{if(el.attachEvent){el.attachEvent("on"+_88,fn);}}},_simpleRemove:function(el,_90,fn,_91){if(el.removeEventListener){el.removeEventListener(_90,fn,(_91));}else{if(el.detachEvent){el.detachEvent("on"+_90,fn);}}}};}();YAHOO.util.Event.on=YAHOO.util.Event.addListener;if(document&&document.body){YAHOO.util.Event._load();}else{YAHOO.util.Event._simpleAdd(window,"load",YAHOO.util.Event._load);}YAHOO.util.Event._simpleAdd(window,"unload",YAHOO.util.Event._unload);YAHOO.util.Event._tryPreloadAttach();}
/* connection 2.0.5 */
YAHOO.util.Connect={_msxml_progid:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'],_http_header:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:'application/x-www-form-urlencoded',_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,setProgId:function(id) {this._msxml_progid.unshift(id);},setDefaultPostHeader:function(b) {this._use_default_post_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);this.releaseObject(o);return;} if(method=='GET'){uri+="?"+this._sFormData;} else if(method=='POST'){postData=(postData?this._sFormData+"&"+postData:this._sFormData);} this._sFormData='';} o.conn.open(method,uri,true);if(this._isFormSubmit||(postData&&this._use_default_post_header)){this.initHeader('Content-Type',this._default_post_header);if(this._isFormSubmit){this._isFormSubmit=false;}} if(this._has_http_headers){this.setHeader(o);} this.handleReadyState(o,callback);o.conn.send(postData?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){try {responseObject=this.createResponseObject(o,callback.argument);if(callback.success){if(!callback.scope){callback.success(responseObject);} else{callback.success.apply(callback.scope,[responseObject]);}}} catch(e){}} else{try {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]);}}}} catch(e){}} 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;obj.statusText=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) {if(this._http_header[label]===undefined){this._http_header[label]=value;} else{this._http_header[label]=value+","+this._http_header[label];} this._has_http_headers=true;},setHeader:function(o) {for(var prop in this._http_header){if(this._http_header.hasOwnProperty(prop)){o.conn.setRequestHeader(prop,this._http_header[prop]);}} delete this._http_header;this._http_header={};this._has_http_headers=false;},setForm:function(formId,isUpload,secureUri) {this._sFormData='';if(typeof formId=='string'){var oForm=(document.getElementById(formId)||document.forms[formId]);} else if(typeof formId=='object'){var 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){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);},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{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);},uploadFile:function(id,callback,uri){var frameId='yuiIO'+id;var io=document.getElementById(frameId);this._formNode.action=uri;this._formNode.enctype='multipart/form-data';this._formNode.method='POST';this._formNode.target=frameId;this._formNode.submit();this._formNode=null;this._isFileUpload=false;this._isFormSubmit=false;var uploadCallback=function() {var obj={};obj.tId=id;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;obj.argument=callback.argument;if(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.ActiveXObject){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.ActiveXObject){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;}};
/* dom 2.0.5 */
YAHOO.util.Dom=function(){var ua=navigator.userAgent.toLowerCase();var isOpera=(ua.indexOf('opera')>-1);var isSafari=(ua.indexOf('safari')>-1);var isIE=(window.ActiveXObject);var id_counter=0;var util=YAHOO.util;var property_cache={};var toCamel=function(property){var convert=function(prop){var test=/(-[a-z])/i.exec(prop);return prop.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());};while(property.indexOf('-')>-1){property=convert(property);}return property;};var toHyphen=function(property){if(property.indexOf('-')>-1){return property;}var converted='';for(var i=0,len=property.length;i<len;++i){if(property.charAt(i)==property.charAt(i).toUpperCase()){converted=converted+'-'+property.charAt(i).toLowerCase();}else{converted=converted+property.charAt(i);}}return converted;};var cacheConvertedProperties=function(property){property_cache[property]={camel:toCamel(property),hyphen:toHyphen(property)};};return{get:function(el){if(!el){return null;}if(typeof el!='string'&&!(el instanceof Array)){return el;}if(typeof el=='string'){return document.getElementById(el);}else{var collection=[];for(var i=0,len=el.length;i<len;++i){collection[collection.length]=util.Dom.get(el[i]);}return collection;}return null;},getStyle:function(el,property){var f=function(el){var value=null;var dv=document.defaultView;if(!property_cache[property]){cacheConvertedProperties(property);}var camel=property_cache[property]['camel'];var hyphen=property_cache[property]['hyphen'];if(property=='opacity'&&el.filters){value=1;try{value=el.filters.item('DXImageTransform.Microsoft.Alpha').opacity/100;}catch(e){try{value=el.filters.item('alpha').opacity/100;}catch(e){}}}else if(el.style[camel]){value=el.style[camel];}else if(isIE&&el.currentStyle&&el.currentStyle[camel]){value=el.currentStyle[camel];}else if(dv&&dv.getComputedStyle){var computed=dv.getComputedStyle(el,'');if(computed&&computed.getPropertyValue(hyphen)){value=computed.getPropertyValue(hyphen);}}return value;};return util.Dom.batch(el,f,util.Dom,true);},setStyle:function(el,property,val){if(!property_cache[property]){cacheConvertedProperties(property);}var camel=property_cache[property]['camel'];var f=function(el){switch(property){case'opacity':if(isIE&&typeof el.style.filter=='string'){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}}else{el.style.opacity=val;el.style['-moz-opacity']=val;el.style['-khtml-opacity']=val;}break;default:el.style[camel]=val;}};util.Dom.batch(el,f,util.Dom,true);},getXY:function(el){var f=function(el){if(el.offsetParent===null||this.getStyle(el,'display')=='none'){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;if(parentNode!=el){while(parentNode){pos[0]+=parentNode.offsetLeft;pos[1]+=parentNode.offsetTop;parentNode=parentNode.offsetParent;}}if(isSafari&&this.getStyle(el,'position')=='absolute'){pos[0]-=document.body.offsetLeft;pos[1]-=document.body.offsetTop;}}if(el.parentNode){parentNode=el.parentNode;}else{parentNode=null;}while(parentNode&&parentNode.tagName.toUpperCase()!='BODY'&&parentNode.tagName.toUpperCase()!='HTML'){if(util.Dom.getStyle(parentNode,'display')!='inline'){pos[0]-=parentNode.scrollLeft;pos[1]-=parentNode.scrollTop;}if(parentNode.parentNode){parentNode=parentNode.parentNode;}else{parentNode=null;}}return pos;};return util.Dom.batch(el,f,util.Dom,true);},getX:function(el){var f=function(el){return util.Dom.getXY(el)[0];};return util.Dom.batch(el,f,util.Dom,true);},getY:function(el){var f=function(el){return util.Dom.getXY(el)[1];};return util.Dom.batch(el,f,util.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';}var newXY=this.getXY(el);if(!noRetry&&(newXY[0]!=pos[0]||newXY[1]!=pos[1])){this.setXY(el,pos,true);}};util.Dom.batch(el,f,util.Dom,true);},setX:function(el,x){util.Dom.setXY(el,[x,null]);},setY:function(el,y){util.Dom.setXY(el,[null,y]);},getRegion:function(el){var f=function(el){var region=new YAHOO.util.Region.getRegion(el);return region;};return util.Dom.batch(el,f,util.Dom,true);},getClientWidth:function(){return util.Dom.getViewportWidth();},getClientHeight:function(){return util.Dom.getViewportHeight();},getElementsByClassName:function(className,tag,root){var method=function(el){return util.Dom.hasClass(el,className)};return util.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 util.Dom.batch(el,f,util.Dom,true);},addClass:function(el,className){var f=function(el){if(this.hasClass(el,className)){return;}el['className']=[el['className'],className].join(' ');};util.Dom.batch(el,f,util.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);}};util.Dom.batch(el,f,util.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);}};util.Dom.batch(el,f,util.Dom,true);},generateId:function(el,prefix){prefix=prefix||'yui-gen';el=el||{};var f=function(el){if(el){el=util.Dom.get(el);}else{el={};}if(!el.id){el.id=prefix+id_counter++;}return el.id;};return util.Dom.batch(el,f,util.Dom,true);},isAncestor:function(haystack,needle){haystack=util.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 util.Dom.batch(needle,f,util.Dom,true);},inDocument:function(el){var f=function(el){return this.isAncestor(document.documentElement,el);};return util.Dom.batch(el,f,util.Dom,true);},getElementsBy:function(method,tag,root){tag=tag||'*';root=util.Dom.get(root)||document;var nodes=[];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=util.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=id[i];}collection[collection.length]=method.call(scope,el[i],o);}return collection;},getDocumentHeight:function(){var scrollHeight=-1,windowHeight=-1,bodyHeight=-1;var marginTop=parseInt(util.Dom.getStyle(document.body,'marginTop'),10);var marginBottom=parseInt(util.Dom.getStyle(document.body,'marginBottom'),10);var mode=document.compatMode;if((mode||isIE)&&!isOpera){switch(mode){case'CSS1Compat':scrollHeight=((window.innerHeight&&window.scrollMaxY)?window.innerHeight+window.scrollMaxY:-1);windowHeight=[document.documentElement.clientHeight,self.innerHeight||-1].sort(function(a,b){return(a-b);})[1];bodyHeight=document.body.offsetHeight+marginTop+marginBottom;break;default:scrollHeight=document.body.scrollHeight;bodyHeight=document.body.clientHeight;}}else{scrollHeight=document.documentElement.scrollHeight;windowHeight=self.innerHeight;bodyHeight=document.documentElement.clientHeight;}var h=[scrollHeight,windowHeight,bodyHeight].sort(function(a,b){return(a-b);});return h[2];},getDocumentWidth:function(){var docWidth=-1,bodyWidth=-1,winWidth=-1;var marginRight=parseInt(util.Dom.getStyle(document.body,'marginRight'),10);var marginLeft=parseInt(util.Dom.getStyle(document.body,'marginLeft'),10);var mode=document.compatMode;if(mode||isIE){switch(mode){case'CSS1Compat':docWidth=document.documentElement.clientWidth;bodyWidth=document.body.offsetWidth+marginLeft+marginRight;break;default:bodyWidth=document.body.clientWidth;docWidth=document.body.scrollWidth;break;}}else{docWidth=document.documentElement.clientWidth;bodyWidth=document.body.offsetWidth+marginLeft+marginRight;}var w=Math.max(docWidth,bodyWidth);return w;},getViewportHeight:function(){var height=-1;var mode=document.compatMode;if((mode||isIE)&&!isOpera){switch(mode){case'CSS1Compat':height=document.documentElement.clientHeight;break;default:height=document.body.clientHeight;}}else{height=self.innerHeight;}return height;},getViewportWidth:function(){var width=-1;var mode=document.compatMode;if(mode||isIE){switch(mode){case'CSS1Compat':width=document.documentElement.clientWidth;break;default:width=document.body.clientWidth;}}else{width=self.innerWidth;}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();
/* animation 2.0.5 */
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(){YAHOO.util.AnimMgr.stop(this);};var onStart=function(){this.onStart.fire();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=200;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[i].isAnimated()){this.unRegister(tween,i);}}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.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(val=='transparent'){var parent=el.parentNode;val=Y.Dom.getStyle(parent,attr);while(parent&&val=='transparent'){parent=parent.parentNode;val=Y.Dom.getStyle(parent,attr);if(parent.tagName.toUpperCase()=='HTML'){val='ffffff';}}}}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;}else{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);}};})();
/* dragdrop 2.0.6 */
YAHOO.util.DragDrop=function(id,_2,_3){if(id){this.init(id,_2,_3);}};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,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available: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){},b4EndDrag:function(e){},endDrag:function(e){},b4MouseDown:function(e){},onMouseDown:function(e){},onMouseUp:function(e){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=YAHOO.util.Dom.get(this.id);}return this._domRef;},getDragEl:function(){return YAHOO.util.Dom.get(this.dragElId);},init:function(id,_7,_8){this.initTarget(id,_7,_8);YAHOO.util.Event.addListener(this.id,"mousedown",this.handleMouseDown,this,true);},initTarget:function(id,_9,_10){this.config=_10||{};this.DDM=YAHOO.util.DDM;this.groups={};this.id=id;this.addToGroup((_9)?_9:"default");this.handleElId=id;YAHOO.util.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(_11,_12,_13,_14){if(!_12&&0!==_12){this.padding=[_11,_11,_11,_11];}else{if(!_13&&0!==_13){this.padding=[_11,_12,_11,_12];}else{this.padding=[_11,_12,_13,_14];}}},setInitPosition:function(_15,_16){var el=this.getEl();if(!this.DDM.verifyEl(el)){return;}var dx=_15||0;var dy=_16||0;var p=YAHOO.util.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||YAHOO.util.Dom.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=p[0];this.startPageY=p[1];},addToGroup:function(_22){this.groups[_22]=true;this.DDM.regDragDrop(this,_22);},removeFromGroup:function(_23){if(this.groups[_23]){delete this.groups[_23];}this.DDM.removeDDFromGroup(this,_23);},setDragElId:function(id){this.dragElId=id;},setHandleElId:function(id){this.handleElId=id;this.DDM.regHandle(this.id,id);},setOuterHandleElId:function(id){YAHOO.util.Event.addListener(id,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(id);},unreg:function(){YAHOO.util.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 EU=YAHOO.util.Event;var _26=e.which||e.button;if(this.primaryButtonOnly&&_26>1){return;}if(this.isLocked()){return;}this.DDM.refreshCache(this.groups);var pt=new YAHOO.util.Point(EU.getPageX(e),EU.getPageY(e));if(!this.DDM.isOverTarget(pt,this)){}else{var _28=EU.getTarget(e);if(this.isValidHandleChild(_28)&&(this.id==this.handleElId||this.DDM.handleWasClicked(_28,this.id))){this.setStartPosition();this.b4MouseDown(e);this.onMouseDown(e);this.DDM.handleMouseDown(e,this);this.DDM.stopEvent(e);}}},addInvalidHandleType:function(_29){var _30=_29.toUpperCase();this.invalidHandleTypes[_30]=_30;},addInvalidHandleId:function(id){this.invalidHandleIds[id]=id;},addInvalidHandleClass:function(_31){this.invalidHandleClasses.push(_31);},removeInvalidHandleType:function(_32){var _33=_32.toUpperCase();delete this.invalidHandleTypes[_33];},removeInvalidHandleId:function(id){delete this.invalidHandleIds[id];},removeInvalidHandleClass:function(_34){for(var i=0,len=this.invalidHandleClasses.length;i<len;++i){if(this.invalidHandleClasses[i]==_34){delete this.invalidHandleClasses[i];}}},isValidHandleChild:function(_36){var _37=true;var _38;try{_38=_36.nodeName.toUpperCase();}catch(e){_38=_36.nodeName;}_37=_37&&!this.invalidHandleTypes[_38];_37=_37&&!this.invalidHandleIds[_36.id];for(var i=0,len=this.invalidHandleClasses.length;_37&&i<len;++i){_37=!YAHOO.util.Dom.hasClass(_36,this.invalidHandleClasses[i]);}return _37;},setXTicks:function(_39,_40){this.xTicks=[];this.xTickSize=_40;var _41={};for(var i=this.initPageX;i>=this.minX;i=i-_40){if(!_41[i]){this.xTicks[this.xTicks.length]=i;_41[i]=true;}}for(i=this.initPageX;i<=this.maxX;i=i+_40){if(!_41[i]){this.xTicks[this.xTicks.length]=i;_41[i]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(_42,_43){this.yTicks=[];this.yTickSize=_43;var _44={};for(var i=this.initPageY;i>=this.minY;i=i-_43){if(!_44[i]){this.yTicks[this.yTicks.length]=i;_44[i]=true;}}for(i=this.initPageY;i<=this.maxY;i=i+_43){if(!_44[i]){this.yTicks[this.yTicks.length]=i;_44[i]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(_45,_46,_47){this.leftConstraint=_45;this.rightConstraint=_46;this.minX=this.initPageX-_45;this.maxX=this.initPageX+_46;if(_47){this.setXTicks(this.initPageX,_47);}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,_49,_50){this.topConstraint=iUp;this.bottomConstraint=_49;this.minY=this.initPageY-iUp;this.maxY=this.initPageY+_49;if(_50){this.setYTicks(this.initPageY,_50);}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,_52){if(!_52){return val;}else{if(_52[0]>=val){return _52[0];}else{for(var i=0,len=_52.length;i<len;++i){var _53=i+1;if(_52[_53]&&_52[_53]>=val){var _54=val-_52[i];var _55=_52[_53]-val;return (_55>_54)?_52[i]:_52[_53];}}return _52[_52.length-1];}}},toString:function(){return ("DragDrop "+this.id);}};if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=new function(){this.ids={};this.handleIds={};this.dragCurrent=null;this.dragOvers={};this.deltaX=0;this.deltaY=0;this.preventDefault=true;this.stopPropagation=true;this.initalized=false;this.locked=false;this.init=function(){this.initialized=true;};this.POINT=0;this.INTERSECT=1;this.mode=this.POINT;this._execOnAll=function(_56,_57){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[_56].apply(oDD,_57);}}};this._onLoad=function(){this.init();var EU=YAHOO.util.Event;EU.on(document,"mouseup",this.handleMouseUp,this,true);EU.on(document,"mousemove",this.handleMouseMove,this,true);EU.on(window,"unload",this._onUnload,this,true);EU.on(window,"resize",this._onResize,this,true);};this._onResize=function(e){this._execOnAll("resetConstraints",[]);};this.lock=function(){this.locked=true;};this.unlock=function(){this.locked=false;};this.isLocked=function(){return this.locked;};this.locationCache={};this.useCache=true;this.clickPixelThresh=3;this.clickTimeThresh=1000;this.dragThreshMet=false;this.clickTimeout=null;this.startX=0;this.startY=0;this.regDragDrop=function(oDD,_59){if(!this.initialized){this.init();}if(!this.ids[_59]){this.ids[_59]={};}this.ids[_59][oDD.id]=oDD;};this.removeDDFromGroup=function(oDD,_60){if(!this.ids[_60]){this.ids[_60]={};}var obj=this.ids[_60];if(obj&&obj[oDD.id]){delete obj[oDD.id];}};this._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];};this.regHandle=function(_63,_64){if(!this.handleIds[_63]){this.handleIds[_63]={};}this.handleIds[_63][_64]=_64;};this.isDragDrop=function(id){return (this.getDDById(id))?true:false;};this.getRelated=function(_65,_66){var _67=[];for(var i in _65.groups){for(j in this.ids[i]){var dd=this.ids[i][j];if(!this.isTypeOfDD(dd)){continue;}if(!_66||dd.isTarget){_67[_67.length]=dd;}}}return _67;};this.isLegalTarget=function(oDD,_69){var _70=this.getRelated(oDD,true);for(var i=0,len=_70.length;i<len;++i){if(_70[i].id==_69.id){return true;}}return false;};this.isTypeOfDD=function(oDD){return (oDD&&oDD.__ygDragDrop);};this.isHandle=function(_71,_72){return (this.handleIds[_71]&&this.handleIds[_71][_72]);};this.getDDById=function(id){for(var i in this.ids){if(this.ids[i][id]){return this.ids[i][id];}}return null;};this.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);};this.startDrag=function(x,y){clearTimeout(this.clickTimeout);if(this.dragCurrent){this.dragCurrent.b4StartDrag(x,y);this.dragCurrent.startDrag(x,y);}this.dragThreshMet=true;};this.handleMouseUp=function(e){if(!this.dragCurrent){return;}clearTimeout(this.clickTimeout);if(this.dragThreshMet){this.fireEvents(e,true);}else{}this.stopDrag(e);this.stopEvent(e);};this.stopEvent=function(e){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(e);}if(this.preventDefault){YAHOO.util.Event.preventDefault(e);}};this.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={};};this.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 _74=Math.abs(this.startX-YAHOO.util.Event.getPageX(e));var _75=Math.abs(this.startY-YAHOO.util.Event.getPageY(e));if(_74>this.clickPixelThresh||_75>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;};this.fireEvents=function(e,_76){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 _78=[];var _79=[];var _80=[];var _81=[];var _82=[];for(var i in this.dragOvers){var ddo=this.dragOvers[i];if(!this.isTypeOfDD(ddo)){continue;}if(!this.isOverTarget(pt,ddo,this.mode)){_79.push(ddo);}_78[i]=true;delete this.dragOvers[i];}for(var _84 in dc.groups){if("string"!=typeof _84){continue;}for(i in this.ids[_84]){var oDD=this.ids[_84][i];if(!this.isTypeOfDD(oDD)){continue;}if(oDD.isTarget&&!oDD.isLocked()&&oDD!=dc){if(this.isOverTarget(pt,oDD,this.mode)){if(_76){_81.push(oDD);}else{if(!_78[oDD.id]){_82.push(oDD);}else{_80.push(oDD);}this.dragOvers[oDD.id]=oDD;}}}}}if(this.mode){if(_79.length){dc.b4DragOut(e,_79);dc.onDragOut(e,_79);}if(_82.length){dc.onDragEnter(e,_82);}if(_80.length){dc.b4DragOver(e,_80);dc.onDragOver(e,_80);}if(_81.length){dc.b4DragDrop(e,_81);dc.onDragDrop(e,_81);}}else{var len=0;for(i=0,len=_79.length;i<len;++i){dc.b4DragOut(e,_79[i].id);dc.onDragOut(e,_79[i].id);}for(i=0,len=_82.length;i<len;++i){dc.onDragEnter(e,_82[i].id);}for(i=0,len=_80.length;i<len;++i){dc.b4DragOver(e,_80[i].id);dc.onDragOver(e,_80[i].id);}for(i=0,len=_81.length;i<len;++i){dc.b4DragDrop(e,_81[i].id);dc.onDragDrop(e,_81[i].id);}}};this.getBestMatch=function(dds){var _87=null;var len=dds.length;if(len==1){_87=dds[0];}else{for(var i=0;i<len;++i){var dd=dds[i];if(dd.cursorIsOver){_87=dd;break;}else{if(!_87||_87.overlap.getArea()<dd.overlap.getArea()){_87=dd;}}}}return _87;};this.refreshCache=function(_88){for(var _89 in _88){if("string"!=typeof _89){continue;}for(var i in this.ids[_89]){var oDD=this.ids[_89][i];if(this.isTypeOfDD(oDD)){var loc=this.getLocation(oDD);if(loc){this.locationCache[oDD.id]=loc;}else{delete this.locationCache[oDD.id];}}}}};this.verifyEl=function(el){try{if(el){var _91=el.offsetParent;if(_91){return true;}}}catch(e){}return false;};this.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);};this.isOverTarget=function(pt,_92,_93){var loc=this.locationCache[_92.id];if(!loc||!this.useCache){loc=this.getLocation(_92);this.locationCache[_92.id]=loc;}if(!loc){return false;}_92.cursorIsOver=loc.contains(pt);var dc=this.dragCurrent;if(!dc||!dc.getTargetCoord||(!_93&&!dc.constrainX&&!dc.constrainY)){return _92.cursorIsOver;}_92.overlap=null;var pos=dc.getTargetCoord(pt.x,pt.y);var el=dc.getDragEl();var _94=new YAHOO.util.Region(pos.y,pos.x+el.offsetWidth,pos.y+el.offsetHeight,pos.x);var _95=_94.intersect(loc);if(_95){_92.overlap=_95;return (_93)?true:_92.cursorIsOver;}else{return false;}};this._onUnload=function(e,me){this.unregAll();};this.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={};};this.elementCache={};this.getElWrapper=function(id){var _97=this.elementCache[id];if(!_97||!_97.el){_97=this.elementCache[id]=new this.ElementWrapper(YAHOO.util.Dom.get(id));}return _97;};this.getElement=function(id){return YAHOO.util.Dom.get(id);};this.getCss=function(id){var el=YAHOO.util.Dom.get(id);return (el)?el.style:null;};this.ElementWrapper=function(el){this.el=el||null;this.id=this.el&&el.id;this.css=this.el&&el.style;};this.getPosX=function(el){return YAHOO.util.Dom.getX(el);};this.getPosY=function(el){return YAHOO.util.Dom.getY(el);};this.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);}}}};this.getScroll=function(){var t,l;if(document.documentElement&&document.documentElement.scrollTop){t=document.documentElement.scrollTop;l=document.documentElement.scrollLeft;}else{if(document.body){t=document.body.scrollTop;l=document.body.scrollLeft;}}return {top:t,left:l};};this.getStyle=function(el,_102){return YAHOO.util.Dom.getStyle(el,_102);};this.getScrollTop=function(){return this.getScroll().top;};this.getScrollLeft=function(){return this.getScroll().left;};this.moveToEl=function(_103,_104){var _105=YAHOO.util.Dom.getXY(_104);YAHOO.util.Dom.setXY(_103,_105);};this.getClientHeight=function(){return YAHOO.util.Dom.getClientHeight();};this.getClientWidth=function(){return YAHOO.util.Dom.getClientWidth();};this.numericSort=function(a,b){return (a-b);};this._timeoutCount=0;this._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;}}}};this.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();}YAHOO.util.DD=function(id,_109,_110){if(id){this.init(id,_109,_110);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop);YAHOO.util.DD.prototype.scroll=true;YAHOO.util.DD.prototype.autoOffset=function(_111,_112){var x=_111-this.startPageX;var y=_112-this.startPageY;this.setDelta(x,y);};YAHOO.util.DD.prototype.setDelta=function(_113,_114){this.deltaX=_113;this.deltaY=_114;};YAHOO.util.DD.prototype.setDragElPos=function(_115,_116){var el=this.getDragEl();this.alignElWithMouse(el,_115,_116);};YAHOO.util.DD.prototype.alignElWithMouse=function(el,_117,_118){var _119=this.getTargetCoord(_117,_118);if(!this.deltaSetXY){var _120=[_119.x,_119.y];YAHOO.util.Dom.setXY(el,_120);var _121=parseInt(YAHOO.util.Dom.getStyle(el,"left"),10);var _122=parseInt(YAHOO.util.Dom.getStyle(el,"top"),10);this.deltaSetXY=[_121-_119.x,_122-_119.y];}else{YAHOO.util.Dom.setStyle(el,"left",(_119.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(el,"top",(_119.y+this.deltaSetXY[1])+"px");}this.cachePosition(_119.x,_119.y);this.autoScroll(_119.x,_119.y,el.offsetHeight,el.offsetWidth);};YAHOO.util.DD.prototype.cachePosition=function(_123,_124){if(_123){this.lastPageX=_123;this.lastPageY=_124;}else{var _125=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=_125[0];this.lastPageY=_125[1];}};YAHOO.util.DD.prototype.autoScroll=function(x,y,h,w){if(this.scroll){var _128=this.DDM.getClientHeight();var _129=this.DDM.getClientWidth();var st=this.DDM.getScrollTop();var sl=this.DDM.getScrollLeft();var bot=h+y;var _133=w+x;var _134=(_128+st-y-this.deltaY);var _135=(_129+sl-x-this.deltaX);var _136=40;var _137=(document.all)?80:30;if(bot>_128&&_134<_136){window.scrollTo(sl,st+_137);}if(y<st&&st>0&&y-st<_136){window.scrollTo(sl,st-_137);}if(_133>_129&&_135<_136){window.scrollTo(sl+_137,st);}if(x<sl&&sl>0&&x-sl<_136){window.scrollTo(sl-_137,st);}}};YAHOO.util.DD.prototype.getTargetCoord=function(_138,_139){var x=_138-this.deltaX;var y=_139-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};};YAHOO.util.DD.prototype.applyConfig=function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);};YAHOO.util.DD.prototype.b4MouseDown=function(e){this.autoOffset(YAHOO.util.Event.getPageX(e),YAHOO.util.Event.getPageY(e));};YAHOO.util.DD.prototype.b4Drag=function(e){this.setDragElPos(YAHOO.util.Event.getPageX(e),YAHOO.util.Event.getPageY(e));};YAHOO.util.DD.prototype.toString=function(){return ("DD "+this.id);};YAHOO.util.DDProxy=function(id,_140,_141){if(id){this.init(id,_140,_141);this.initFrame();}};YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD);YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.util.DDProxy.prototype.resizeFrame=true;YAHOO.util.DDProxy.prototype.centerFrame=false;YAHOO.util.DDProxy.prototype.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);}};YAHOO.util.DDProxy.prototype.initFrame=function(){this.createFrame();};YAHOO.util.DDProxy.prototype.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);};YAHOO.util.DDProxy.prototype.showFrame=function(_145,_146){var el=this.getEl();var _147=this.getDragEl();var s=_147.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(s.width,10)/2),Math.round(parseInt(s.height,10)/2));}this.setDragElPos(_145,_146);YAHOO.util.Dom.setStyle(_147,"visibility","visible");};YAHOO.util.DDProxy.prototype._resizeProxy=function(){if(this.resizeFrame){var DOM=YAHOO.util.Dom;var el=this.getEl();var _149=this.getDragEl();var bt=parseInt(DOM.getStyle(_149,"borderTopWidth"),10);var br=parseInt(DOM.getStyle(_149,"borderRightWidth"),10);var bb=parseInt(DOM.getStyle(_149,"borderBottomWidth"),10);var bl=parseInt(DOM.getStyle(_149,"borderLeftWidth"),10);if(isNaN(bt)){bt=0;}if(isNaN(br)){br=0;}if(isNaN(bb)){bb=0;}if(isNaN(bl)){bl=0;}var _154=Math.max(0,el.offsetWidth-br-bl);var _155=Math.max(0,el.offsetHeight-bt-bb);DOM.setStyle(_149,"width",_154+"px");DOM.setStyle(_149,"height",_155+"px");}};YAHOO.util.DDProxy.prototype.b4MouseDown=function(e){var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);this.autoOffset(x,y);this.setDragElPos(x,y);};YAHOO.util.DDProxy.prototype.b4StartDrag=function(x,y){this.showFrame(x,y);};YAHOO.util.DDProxy.prototype.b4EndDrag=function(e){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");};YAHOO.util.DDProxy.prototype.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","");};YAHOO.util.DDProxy.prototype.toString=function(){return ("DDProxy "+this.id);};YAHOO.util.DDTarget=function(id,_158,_159){if(id){this.initTarget(id,_158,_159);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop);YAHOO.util.DDTarget.prototype.toString=function(){return ("DDTarget "+this.id);};
/* autocomplete  2.0.5 */
YAHOO.widget.AutoComplete=function(inputEl,containerEl,oDataSource,oConfigs){if(inputEl&&containerEl&&oDataSource){if(oDataSource&&(oDataSource instanceof YAHOO.widget.DataSource)){this.dataSource=oDataSource;} else{return;} if(YAHOO.util.Dom.inDocument(inputEl)){if(typeof inputEl=="string"){this._sName="instance"+YAHOO.widget.AutoComplete._nIndex+" "+inputEl;this._oTextbox=document.getElementById(inputEl);} else{this._sName=(inputEl.id)?"instance"+YAHOO.widget.AutoComplete._nIndex+" "+inputEl.id:"instance"+YAHOO.widget.AutoComplete._nIndex;this._oTextbox=inputEl;}} else{return;} if(YAHOO.util.Dom.inDocument(containerEl)){if(typeof containerEl=="string"){this._oContainer=document.getElementById(containerEl);} else{this._oContainer=containerEl;} if(this._oContainer.style.display=="none"){}} else{return;} if(typeof oConfigs=="object"){for(var sConfig in oConfigs){if(sConfig){this[sConfig]=oConfigs[sConfig];}}} this._initContainer();this._initProps();this._initList();this._initContainerHelpers();var oSelf=this;var oTextbox=this._oTextbox;var oContent=this._oContainer._oContent;YAHOO.util.Event.addListener(oTextbox,"keyup",oSelf._onTextboxKeyUp,oSelf);YAHOO.util.Event.addListener(oTextbox,"keydown",oSelf._onTextboxKeyDown,oSelf);YAHOO.util.Event.addListener(oTextbox,"keypress",oSelf._onTextboxKeyPress,oSelf);YAHOO.util.Event.addListener(oTextbox,"focus",oSelf._onTextboxFocus,oSelf);YAHOO.util.Event.addListener(oTextbox,"blur",oSelf._onTextboxBlur,oSelf);YAHOO.util.Event.addListener(oContent,"mouseover",oSelf._onContainerMouseover,oSelf);YAHOO.util.Event.addListener(oContent,"mouseout",oSelf._onContainerMouseout,oSelf);YAHOO.util.Event.addListener(oContent,"scroll",oSelf._onContainerScroll,oSelf);YAHOO.util.Event.addListener(oContent,"resize",oSelf._onContainerResize,oSelf);if(oTextbox.form){YAHOO.util.Event.addListener(oTextbox.form,"submit",oSelf._onFormSubmit,oSelf);} this.textboxFocusEvent=new YAHOO.util.CustomEvent("textboxFocus",this);this.textboxKeyEvent=new YAHOO.util.CustomEvent("textboxKey",this);this.dataRequestEvent=new YAHOO.util.CustomEvent("dataRequest",this);this.dataReturnEvent=new YAHOO.util.CustomEvent("dataReturn",this);this.dataErrorEvent=new YAHOO.util.CustomEvent("dataError",this);this.containerExpandEvent=new YAHOO.util.CustomEvent("containerExpand",this);this.typeAheadEvent=new YAHOO.util.CustomEvent("typeAhead",this);this.itemMouseOverEvent=new YAHOO.util.CustomEvent("itemMouseOver",this);this.itemMouseOutEvent=new YAHOO.util.CustomEvent("itemMouseOut",this);this.itemArrowToEvent=new YAHOO.util.CustomEvent("itemArrowTo",this);this.itemArrowFromEvent=new YAHOO.util.CustomEvent("itemArrowFrom",this);this.itemSelectEvent=new YAHOO.util.CustomEvent("itemSelect",this);this.unmatchedItemSelectEvent=new YAHOO.util.CustomEvent("unmatchedItemSelect",this);this.selectionEnforceEvent=new YAHOO.util.CustomEvent("selectionEnforce",this);this.containerCollapseEvent=new YAHOO.util.CustomEvent("containerCollapse",this);this.textboxBlurEvent=new YAHOO.util.CustomEvent("textboxBlur",this);oTextbox.setAttribute("autocomplete","off");YAHOO.widget.AutoComplete._nIndex++;} else{}};YAHOO.widget.AutoComplete.prototype.dataSource=null;YAHOO.widget.AutoComplete.prototype.minQueryLength=1;YAHOO.widget.AutoComplete.prototype.maxResultsDisplayed=10;YAHOO.widget.AutoComplete.prototype.queryDelay=0.5;YAHOO.widget.AutoComplete.prototype.highlightClassName="yui-ac-highlight";YAHOO.widget.AutoComplete.prototype.prehighlightClassName=null;YAHOO.widget.AutoComplete.prototype.delimChar=null;YAHOO.widget.AutoComplete.prototype.autoHighlight=true;YAHOO.widget.AutoComplete.prototype.typeAhead=false;YAHOO.widget.AutoComplete.prototype.animHoriz=false;YAHOO.widget.AutoComplete.prototype.animVert=true;YAHOO.widget.AutoComplete.prototype.animSpeed=0.3;YAHOO.widget.AutoComplete.prototype.forceSelection=false;YAHOO.widget.AutoComplete.prototype.allowBrowserAutocomplete=true;YAHOO.widget.AutoComplete.prototype.alwaysShowContainer=false;YAHOO.widget.AutoComplete.prototype.useIFrame=false;YAHOO.widget.AutoComplete.prototype.useShadow=false;YAHOO.widget.AutoComplete.prototype.toString=function(){return"AutoComplete "+this._sName;};YAHOO.widget.AutoComplete.prototype.getListItems=function(){return this._aListItems;};YAHOO.widget.AutoComplete.prototype.getListItemData=function(oListItem){if(oListItem._oResultData){return oListItem._oResultData;} else{return false;}};YAHOO.widget.AutoComplete.prototype.setHeader=function(sHeader){if(sHeader){if(this._oContainer._oContent._oHeader){this._oContainer._oContent._oHeader.innerHTML=sHeader;this._oContainer._oContent._oHeader.style.display="block";}} else{this._oContainer._oContent._oHeader.innerHTML="";this._oContainer._oContent._oHeader.style.display="none";}};YAHOO.widget.AutoComplete.prototype.setFooter=function(sFooter){if(sFooter){if(this._oContainer._oContent._oFooter){this._oContainer._oContent._oFooter.innerHTML=sFooter;this._oContainer._oContent._oFooter.style.display="block";}} else{this._oContainer._oContent._oFooter.innerHTML="";this._oContainer._oContent._oFooter.style.display="none";}};YAHOO.widget.AutoComplete.prototype.setBody=function(sBody){if(sBody){if(this._oContainer._oContent._oBody){this._oContainer._oContent._oBody.innerHTML=sBody;this._oContainer._oContent._oBody.style.display="block";this._oContainer._oContent.style.display="block";}} else{this._oContainer._oContent._oBody.innerHTML="";this._oContainer._oContent.style.display="none";} this._maxResultsDisplayed=0;};YAHOO.widget.AutoComplete.prototype.formatResult=function(oResultItem,sQuery){var sResult=oResultItem[0];if(sResult){return sResult;} else{return"";}};YAHOO.widget.AutoComplete.prototype.sendQuery=function(sQuery){if(sQuery){this._sendQuery(sQuery);} else{return;}};YAHOO.widget.AutoComplete.prototype.textboxFocusEvent=null;YAHOO.widget.AutoComplete.prototype.textboxKeyEvent=null;YAHOO.widget.AutoComplete.prototype.dataRequestEvent=null;YAHOO.widget.AutoComplete.prototype.dataReturnEvent=null;YAHOO.widget.AutoComplete.prototype.dataErrorEvent=null;YAHOO.widget.AutoComplete.prototype.containerExpandEvent=null;YAHOO.widget.AutoComplete.prototype.typeAheadEvent=null;YAHOO.widget.AutoComplete.prototype.itemMouseOverEvent=null;YAHOO.widget.AutoComplete.prototype.itemMouseOutEvent=null;YAHOO.widget.AutoComplete.prototype.itemArrowToEvent=null;YAHOO.widget.AutoComplete.prototype.itemArrowFromEvent=null;YAHOO.widget.AutoComplete.prototype.itemSelectEvent=null;YAHOO.widget.AutoComplete.prototype.unmatchedItemSelectEvent=null;YAHOO.widget.AutoComplete.prototype.selectionEnforceEvent=null;YAHOO.widget.AutoComplete.prototype.containerCollapseEvent=null;YAHOO.widget.AutoComplete.prototype.textboxBlurEvent=null;YAHOO.widget.AutoComplete._nIndex=0;YAHOO.widget.AutoComplete.prototype._sName=null;YAHOO.widget.AutoComplete.prototype._oTextbox=null;YAHOO.widget.AutoComplete.prototype._bFocused=true;YAHOO.widget.AutoComplete.prototype._oAnim=null;YAHOO.widget.AutoComplete.prototype._oContainer=null;YAHOO.widget.AutoComplete.prototype._bContainerOpen=false;YAHOO.widget.AutoComplete.prototype._bOverContainer=false;YAHOO.widget.AutoComplete.prototype._aListItems=null;YAHOO.widget.AutoComplete.prototype._nDisplayedItems=0;YAHOO.widget.AutoComplete.prototype._maxResultsDisplayed=0;YAHOO.widget.AutoComplete.prototype._sCurQuery=null;YAHOO.widget.AutoComplete.prototype._sSavedQuery=null;YAHOO.widget.AutoComplete.prototype._oCurItem=null;YAHOO.widget.AutoComplete.prototype._bItemSelected=false;YAHOO.widget.AutoComplete.prototype._nKeyCode=null;YAHOO.widget.AutoComplete.prototype._nDelayID=-1;YAHOO.widget.AutoComplete.prototype._iFrameSrc="javascript:false;";YAHOO.widget.AutoComplete.prototype._initProps=function(){var minQueryLength=this.minQueryLength;if(isNaN(minQueryLength)||(minQueryLength<1)){minQueryLength=1;} var maxResultsDisplayed=this.maxResultsDisplayed;if(isNaN(this.maxResultsDisplayed)||(this.maxResultsDisplayed<1)){this.maxResultsDisplayed=10;} var queryDelay=this.queryDelay;if(isNaN(this.queryDelay)||(this.queryDelay<0)){this.queryDelay=0.5;} var aDelimChar=(this.delimChar)?this.delimChar:null;if(aDelimChar){if(typeof aDelimChar=="string"){this.delimChar=[aDelimChar];} else if(aDelimChar.constructor!=Array){this.delimChar=null;}} var animSpeed=this.animSpeed;if((this.animHoriz||this.animVert)&&YAHOO.util.Anim){if(isNaN(animSpeed)||(animSpeed<0)){animSpeed=0.3;} if(!this._oAnim){oAnim=new YAHOO.util.Anim(this._oContainer._oContent,{},this.animSpeed);this._oAnim=oAnim;} else{this._oAnim.duration=animSpeed;}} if(this.forceSelection&&this.delimChar){} if(this.alwaysShowContainer&&(this.useShadow||this.useIFrame)){} if(this.alwaysShowContainer){this._bContainerOpen=true;}};YAHOO.widget.AutoComplete.prototype._initContainerHelpers=function(){if(this.useShadow&&!this._oContainer._oShadow){var oShadow=document.createElement("div");oShadow.className="yui-ac-shadow";this._oContainer._oShadow=this._oContainer.appendChild(oShadow);} if(this.useIFrame&&!this._oContainer._oIFrame){var oIFrame=document.createElement("iframe");oIFrame.src=this._iFrameSrc;oIFrame.frameBorder=0;oIFrame.scrolling="no";oIFrame.style.position="absolute";oIFrame.style.width="100%";oIFrame.style.height="100%";this._oContainer._oIFrame=this._oContainer.appendChild(oIFrame);}};YAHOO.widget.AutoComplete.prototype._initContainer=function(){if(!this._oContainer._oContent){var oContent=document.createElement("div");oContent.className="yui-ac-content";oContent.style.display="none";this._oContainer._oContent=this._oContainer.appendChild(oContent);var oHeader=document.createElement("div");oHeader.className="yui-ac-hd";oHeader.style.display="none";this._oContainer._oContent._oHeader=this._oContainer._oContent.appendChild(oHeader);var oBody=document.createElement("div");oBody.className="yui-ac-bd";this._oContainer._oContent._oBody=this._oContainer._oContent.appendChild(oBody);var oFooter=document.createElement("div");oFooter.className="yui-ac-ft";oFooter.style.display="none";this._oContainer._oContent._oFooter=this._oContainer._oContent.appendChild(oFooter);} else{}};YAHOO.widget.AutoComplete.prototype._initList=function(){this._aListItems=[];while(this._oContainer._oContent._oBody.hasChildNodes()){var oldListItems=this.getListItems();if(oldListItems){for(var oldi=oldListItems.length-1;oldi>=0;i--){oldListItems[oldi]=null;}} this._oContainer._oContent._oBody.innerHTML="";} var oList=document.createElement("ul");oList=this._oContainer._oContent._oBody.appendChild(oList);for(var i=0;i<this.maxResultsDisplayed;i++){var oItem=document.createElement("li");oItem=oList.appendChild(oItem);this._aListItems[i]=oItem;this._initListItem(oItem,i);} this._maxResultsDisplayed=this.maxResultsDisplayed;};YAHOO.widget.AutoComplete.prototype._initListItem=function(oItem,nItemIndex){var oSelf=this;oItem.style.display="none";oItem._nItemIndex=nItemIndex;oItem.mouseover=oItem.mouseout=oItem.onclick=null;YAHOO.util.Event.addListener(oItem,"mouseover",oSelf._onItemMouseover,oSelf);YAHOO.util.Event.addListener(oItem,"mouseout",oSelf._onItemMouseout,oSelf);YAHOO.util.Event.addListener(oItem,"click",oSelf._onItemMouseclick,oSelf);};YAHOO.widget.AutoComplete.prototype._onItemMouseover=function(v,oSelf){if(oSelf.prehighlightClassName){oSelf._togglePrehighlight(this,"mouseover");} else{oSelf._toggleHighlight(this,"to");} oSelf.itemMouseOverEvent.fire(oSelf,this);};YAHOO.widget.AutoComplete.prototype._onItemMouseout=function(v,oSelf){if(oSelf.prehighlightClassName){oSelf._togglePrehighlight(this,"mouseout");} else{oSelf._toggleHighlight(this,"from");} oSelf.itemMouseOutEvent.fire(oSelf,this);};YAHOO.widget.AutoComplete.prototype._onItemMouseclick=function(v,oSelf){oSelf._toggleHighlight(this,"to");oSelf._selectItem(this);};YAHOO.widget.AutoComplete.prototype._onContainerMouseover=function(v,oSelf){oSelf._bOverContainer=true;};YAHOO.widget.AutoComplete.prototype._onContainerMouseout=function(v,oSelf){oSelf._bOverContainer=false;if(oSelf._oCurItem){oSelf._toggleHighlight(oSelf._oCurItem,"to");}};YAHOO.widget.AutoComplete.prototype._onContainerScroll=function(v,oSelf){oSelf._oTextbox.focus();};YAHOO.widget.AutoComplete.prototype._onContainerResize=function(v,oSelf){oSelf._toggleContainerHelpers(oSelf._bContainerOpen);};YAHOO.widget.AutoComplete.prototype._onTextboxKeyDown=function(v,oSelf){var nKeyCode=v.keyCode;switch(nKeyCode){case 9:if(oSelf.delimChar&&(oSelf._nKeyCode!=nKeyCode)){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} if(oSelf._oCurItem){oSelf._selectItem(oSelf._oCurItem);} else{oSelf._clearList();} break;case 13:if(oSelf._nKeyCode!=nKeyCode){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} if(oSelf._oCurItem){oSelf._selectItem(oSelf._oCurItem);} else{oSelf._clearList();} break;case 27:oSelf._clearList();return;case 39:oSelf._jumpSelection();break;case 38:YAHOO.util.Event.stopEvent(v);oSelf._moveSelection(nKeyCode);break;case 40:YAHOO.util.Event.stopEvent(v);oSelf._moveSelection(nKeyCode);break;default:break;}};YAHOO.widget.AutoComplete.prototype._onTextboxKeyPress=function(v,oSelf){var nKeyCode=v.keyCode;switch(nKeyCode){case 9:case 13:if((oSelf._nKeyCode!=nKeyCode)){YAHOO.util.Event.stopEvent(v);} break;case 38:case 40:YAHOO.util.Event.stopEvent(v);break;default:break;}};YAHOO.widget.AutoComplete.prototype._onTextboxKeyUp=function(v,oSelf){oSelf._initProps();var nKeyCode=v.keyCode;oSelf._nKeyCode=nKeyCode;var sChar=String.fromCharCode(nKeyCode);var sText=this.value;if(oSelf._isIgnoreKey(nKeyCode)||(sText.toLowerCase()==oSelf._sCurQuery)){return;} else{oSelf.textboxKeyEvent.fire(oSelf,nKeyCode);} if(oSelf.queryDelay>0){var nDelayID=setTimeout(function(){oSelf._sendQuery(sText);},(oSelf.queryDelay*1000));if(oSelf._nDelayID!=-1){clearTimeout(oSelf._nDelayID);} oSelf._nDelayID=nDelayID;} else{oSelf._sendQuery(sText);}};YAHOO.widget.AutoComplete.prototype._isIgnoreKey=function(nKeyCode){if((nKeyCode==9)||(nKeyCode==13)||(nKeyCode==16)||(nKeyCode==17)||(nKeyCode>=18&&nKeyCode<=20)||(nKeyCode==27)||(nKeyCode>=33&&nKeyCode<=35)||(nKeyCode>=36&&nKeyCode<=38)||(nKeyCode==40)||(nKeyCode>=44&&nKeyCode<=45)){return true;} return false;};YAHOO.widget.AutoComplete.prototype._onTextboxFocus=function(v,oSelf){oSelf._oTextbox.setAttribute("autocomplete","off");oSelf._bFocused=true;oSelf.textboxFocusEvent.fire(oSelf);};YAHOO.widget.AutoComplete.prototype._onTextboxBlur=function(v,oSelf){if(!oSelf._bOverContainer||(oSelf._nKeyCode==9)){if(!oSelf._bItemSelected){if(!oSelf._bContainerOpen||(oSelf._bContainerOpen&&!oSelf._textMatchesOption())){if(oSelf.forceSelection){oSelf._clearSelection();} else{oSelf.unmatchedItemSelectEvent.fire(oSelf,oSelf._sCurQuery);}}} if(oSelf._bContainerOpen){oSelf._clearList();} oSelf._bFocused=false;oSelf.textboxBlurEvent.fire(oSelf);}};YAHOO.widget.AutoComplete.prototype._onFormSubmit=function(v,oSelf){if(oSelf.allowBrowserAutocomplete){oSelf._oTextbox.setAttribute("autocomplete","on");} else{oSelf._oTextbox.setAttribute("autocomplete","off");}};YAHOO.widget.AutoComplete.prototype._sendQuery=function(sQuery){var aDelimChar=(this.delimChar)?this.delimChar:null;if(aDelimChar){var nDelimIndex=-1;for(var i=aDelimChar.length-1;i>=0;i--){var nNewIndex=sQuery.lastIndexOf(aDelimChar[i]);if(nNewIndex>nDelimIndex){nDelimIndex=nNewIndex;}} if(aDelimChar[i]==" "){for(var j=aDelimChar.length-1;j>=0;j--){if(sQuery[nDelimIndex-1]==aDelimChar[j]){nDelimIndex--;break;}}} if(nDelimIndex>-1){var nQueryStart=nDelimIndex+1;while(sQuery.charAt(nQueryStart)==" "){nQueryStart+=1;} this._sSavedQuery=sQuery.substring(0,nQueryStart);sQuery=sQuery.substr(nQueryStart);} else if(sQuery.indexOf(this._sSavedQuery)<0){this._sSavedQuery=null;}} if(sQuery.length<this.minQueryLength){if(this._nDelayID!=-1){clearTimeout(this._nDelayID);} this._clearList();return;} sQuery=encodeURIComponent(sQuery);this._nDelayID=-1;this.dataRequestEvent.fire(this,sQuery);this.dataSource.getResults(this._populateList,sQuery,this);};YAHOO.widget.AutoComplete.prototype._clearList=function(){this._oContainer._oContent.scrollTop=0;var aItems=this._aListItems;if(aItems&&(aItems.length>0)){for(var i=aItems.length-1;i>=0;i--){aItems[i].style.display="none";}} if(this._oCurItem){this._toggleHighlight(this._oCurItem,"from");} this._oCurItem=null;this._nDisplayedItems=0;this._sCurQuery=null;this._toggleContainer(false);};YAHOO.widget.AutoComplete.prototype._populateList=function(sQuery,aResults,oSelf){if(aResults===null){oSelf.dataErrorEvent.fire(oSelf,sQuery);} if(!oSelf._bFocused||!aResults){return;} var isOpera=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);var contentStyle=oSelf._oContainer._oContent.style;contentStyle.width=(!isOpera)?null:"";contentStyle.height=(!isOpera)?null:"";var sCurQuery=decodeURIComponent(sQuery);oSelf._sCurQuery=sCurQuery;oSelf._bItemSelected=false;if(oSelf._maxResultsDisplayed!=oSelf.maxResultsDisplayed){oSelf._initList();} var nItems=Math.min(aResults.length,oSelf.maxResultsDisplayed);oSelf._nDisplayedItems=nItems;if(nItems>0){oSelf._initContainerHelpers();var aItems=oSelf._aListItems;for(var i=nItems-1;i>=0;i--){var oItemi=aItems[i];var oResultItemi=aResults[i];oItemi.innerHTML=oSelf.formatResult(oResultItemi,sCurQuery);oItemi.style.display="list-item";oItemi._sResultKey=oResultItemi[0];oItemi._oResultData=oResultItemi;} for(var j=aItems.length-1;j>=nItems;j--){var oItemj=aItems[j];oItemj.innerHTML=null;oItemj.style.display="none";oItemj._sResultKey=null;oItemj._oResultData=null;} if(oSelf.autoHighlight){var oFirstItem=aItems[0];oSelf._toggleHighlight(oFirstItem,"to");oSelf.itemArrowToEvent.fire(oSelf,oFirstItem);oSelf._typeAhead(oFirstItem,sQuery);} else{oSelf._oCurItem=null;} oSelf._toggleContainer(true);} else{oSelf._clearList();} oSelf.dataReturnEvent.fire(oSelf,sQuery,aResults);};YAHOO.widget.AutoComplete.prototype._clearSelection=function(){var sValue=this._oTextbox.value;var sChar=(this.delimChar)?this.delimChar[0]:null;var nIndex=(sChar)?sValue.lastIndexOf(sChar,sValue.length-2):-1;if(nIndex>-1){this._oTextbox.value=sValue.substring(0,nIndex);} else{this._oTextbox.value="";} this._sSavedQuery=this._oTextbox.value;this.selectionEnforceEvent.fire(this);};YAHOO.widget.AutoComplete.prototype._textMatchesOption=function(){var foundMatch=false;for(var i=this._nDisplayedItems-1;i>=0;i--){var oItem=this._aListItems[i];var sMatch=oItem._sResultKey.toLowerCase();if(sMatch==this._sCurQuery.toLowerCase()){foundMatch=true;break;}} return(foundMatch);};YAHOO.widget.AutoComplete.prototype._typeAhead=function(oItem,sQuery){if(!this.typeAhead){return;} var oTextbox=this._oTextbox;var sValue=this._oTextbox.value;if(!oTextbox.setSelectionRange&&!oTextbox.createTextRange){return;} var nStart=sValue.length;this._updateValue(oItem);var nEnd=oTextbox.value.length;this._selectText(oTextbox,nStart,nEnd);var sPrefill=oTextbox.value.substr(nStart,nEnd);this.typeAheadEvent.fire(this,sQuery,sPrefill);};YAHOO.widget.AutoComplete.prototype._selectText=function(oTextbox,nStart,nEnd){if(oTextbox.setSelectionRange){oTextbox.setSelectionRange(nStart,nEnd);} else if(oTextbox.createTextRange){var oTextRange=oTextbox.createTextRange();oTextRange.moveStart("character",nStart);oTextRange.moveEnd("character",nEnd-oTextbox.value.length);oTextRange.select();} else{oTextbox.select();}};YAHOO.widget.AutoComplete.prototype._toggleContainerHelpers=function(bShow){var bFireEvent=false;var width=this._oContainer._oContent.offsetWidth+"px";var height=this._oContainer._oContent.offsetHeight+"px";if(this.useIFrame&&this._oContainer._oIFrame){bFireEvent=true;if(this.alwaysShowContainer||bShow){this._oContainer._oIFrame.style.width=width;this._oContainer._oIFrame.style.height=height;} else{this._oContainer._oIFrame.style.width=0;this._oContainer._oIFrame.style.height=0;}} if(this.useShadow&&this._oContainer._oShadow){bFireEvent=true;if(this.alwaysShowContainer||bShow){this._oContainer._oShadow.style.width=width;this._oContainer._oShadow.style.height=height;} else{this._oContainer._oShadow.style.width=0;this._oContainer._oShadow.style.height=0;}}};YAHOO.widget.AutoComplete.prototype._toggleContainer=function(bShow){if(this.alwaysShowContainer){if(bShow){this.containerExpandEvent.fire(this);} else{this.containerCollapseEvent.fire(this);} this._bContainerOpen=bShow;return;} var oContainer=this._oContainer;if(!bShow&&!this._bContainerOpen){oContainer._oContent.style.display="none";return;} var oAnim=this._oAnim;if(oAnim&&oAnim.getEl()&&(this.animHoriz||this.animVert)){if(!bShow){this._toggleContainerHelpers(bShow);} if(oAnim.isAnimated()){oAnim.stop();} var oClone=oContainer._oContent.cloneNode(true);oContainer.appendChild(oClone);oClone.style.top="-9000px";oClone.style.display="block";var wExp=oClone.offsetWidth;var hExp=oClone.offsetHeight;var wColl=(this.animHoriz)?0:wExp;var hColl=(this.animVert)?0:hExp;oAnim.attributes=(bShow)?{width:{to:wExp},height:{to:hExp}}:{width:{to:wColl},height:{to:hColl}};if(bShow&&!this._bContainerOpen){oContainer._oContent.style.width=wColl+"px";oContainer._oContent.style.height=hColl+"px";} else{oContainer._oContent.style.width=wExp+"px";oContainer._oContent.style.height=hExp+"px";} oContainer.removeChild(oClone);oClone=null;var oSelf=this;var onAnimComplete=function(){oAnim.onComplete.unsubscribeAll();if(bShow){oSelf.containerExpandEvent.fire(oSelf);} else{oContainer._oContent.style.display="none";oSelf.containerCollapseEvent.fire(oSelf);} oSelf._toggleContainerHelpers(bShow);};oContainer._oContent.style.display="block";oAnim.onComplete.subscribe(onAnimComplete);oAnim.animate();this._bContainerOpen=bShow;} else{if(bShow){oContainer._oContent.style.display="block";this.containerExpandEvent.fire(this);} else{oContainer._oContent.style.display="none";this.containerCollapseEvent.fire(this);} this._toggleContainerHelpers(bShow);this._bContainerOpen=bShow;}};YAHOO.widget.AutoComplete.prototype._toggleHighlight=function(oNewItem,sType){var sHighlight=this.highlightClassName;if(this._oCurItem){YAHOO.util.Dom.removeClass(this._oCurItem,sHighlight);} if((sType=="to")&&sHighlight){YAHOO.util.Dom.addClass(oNewItem,sHighlight);this._oCurItem=oNewItem;}};YAHOO.widget.AutoComplete.prototype._togglePrehighlight=function(oNewItem,sType){if(oNewItem==this._oCurItem){return;} var sPrehighlight=this.prehighlightClassName;if((sType=="mouseover")&&sPrehighlight){YAHOO.util.Dom.addClass(oNewItem,sPrehighlight);} else{YAHOO.util.Dom.removeClass(oNewItem,sPrehighlight);}};YAHOO.widget.AutoComplete.prototype._updateValue=function(oItem){var oTextbox=this._oTextbox;var sDelimChar=(this.delimChar)?this.delimChar[0]:null;var sSavedQuery=this._sSavedQuery;var sResultKey=oItem._sResultKey;oTextbox.focus();oTextbox.value="";if(sDelimChar){if(sSavedQuery){oTextbox.value=sSavedQuery;} oTextbox.value+=sResultKey+sDelimChar;if(sDelimChar!=" "){oTextbox.value+=" ";}} else{oTextbox.value=sResultKey;} if(oTextbox.type=="textarea"){oTextbox.scrollTop=oTextbox.scrollHeight;} var end=oTextbox.value.length;this._selectText(oTextbox,end,end);this._oCurItem=oItem;};YAHOO.widget.AutoComplete.prototype._selectItem=function(oItem){this._bItemSelected=true;this._updateValue(oItem);this.itemSelectEvent.fire(this,oItem,oItem._oResultData);this._clearList();};YAHOO.widget.AutoComplete.prototype._jumpSelection=function(){if(!this.typeAhead){return;} else{this._clearList();}};YAHOO.widget.AutoComplete.prototype._moveSelection=function(nKeyCode){if(this._bContainerOpen){var oCurItem=this._oCurItem;var nCurItemIndex=-1;if(oCurItem){nCurItemIndex=oCurItem._nItemIndex;} var nNewItemIndex=(nKeyCode==40)?(nCurItemIndex+1):(nCurItemIndex-1);if(nNewItemIndex<-2||nNewItemIndex>=this._nDisplayedItems){return;} if(oCurItem){this._toggleHighlight(oCurItem,"from");this.itemArrowFromEvent.fire(this,oCurItem);} if(nNewItemIndex==-1){if(this.delimChar&&this._sSavedQuery){if(!this._textMatchesOption()){this._oTextbox.value=this._sSavedQuery;} else{this._oTextbox.value=this._sSavedQuery+this._sCurQuery;}} else{this._oTextbox.value=this._sCurQuery;} this._oCurItem=null;return;} if(nNewItemIndex==-2){this._clearList();return;} var oNewItem=this._aListItems[nNewItemIndex];var oContent=this._oContainer._oContent;var scrollOn=((YAHOO.util.Dom.getStyle(oContent,"overflow")=="auto")||(YAHOO.util.Dom.getStyle(oContent,"overflowY")=="auto"));if(scrollOn&&(nNewItemIndex>-1)&&(nNewItemIndex<this._nDisplayedItems)){if(nKeyCode==40){if((oNewItem.offsetTop+oNewItem.offsetHeight)>(oContent.scrollTop+oContent.offsetHeight)){oContent.scrollTop=(oNewItem.offsetTop+oNewItem.offsetHeight)-oContent.offsetHeight;} else if((oNewItem.offsetTop+oNewItem.offsetHeight)<oContent.scrollTop){oContent.scrollTop=oNewItem.offsetTop;}} else{if(oNewItem.offsetTop<oContent.scrollTop){this._oContainer._oContent.scrollTop=oNewItem.offsetTop;} else if(oNewItem.offsetTop>(oContent.scrollTop+oContent.offsetHeight)){this._oContainer._oContent.scrollTop=(oNewItem.offsetTop+oNewItem.offsetHeight)-oContent.offsetHeight;}}} this._toggleHighlight(oNewItem,"to");this.itemArrowToEvent.fire(this,oNewItem);if(this.typeAhead){this._updateValue(oNewItem);}}};YAHOO.widget.DataSource=function(){};YAHOO.widget.DataSource.prototype.ERROR_DATANULL="Response data was null";YAHOO.widget.DataSource.prototype.ERROR_DATAPARSE="Response data could not be parsed";YAHOO.widget.DataSource.prototype.maxCacheEntries=15;YAHOO.widget.DataSource.prototype.queryMatchContains=false;YAHOO.widget.DataSource.prototype.queryMatchSubset=false;YAHOO.widget.DataSource.prototype.queryMatchCase=false;YAHOO.widget.DataSource.prototype.getName=function(){return this._sName;};YAHOO.widget.DataSource.prototype.toString=function(){return"DataSource "+this._sName;};YAHOO.widget.DataSource.prototype.getResults=function(oCallbackFn,sQuery,oParent){var aResults=this._doQueryCache(oCallbackFn,sQuery,oParent);if(aResults.length===0){this.queryEvent.fire(this,oParent,sQuery);this.doQuery(oCallbackFn,sQuery,oParent);}};YAHOO.widget.DataSource.prototype.doQuery=function(oCallbackFn,sQuery,oParent){};YAHOO.widget.DataSource.prototype.flushCache=function(){if(this._aCache){this._aCache=[];} if(this._aCacheHelper){this._aCacheHelper=[];} this.cacheFlushEvent.fire(this);};YAHOO.widget.DataSource.prototype.queryEvent=null;YAHOO.widget.DataSource.prototype.cacheQueryEvent=null;YAHOO.widget.DataSource.prototype.getResultsEvent=null;YAHOO.widget.DataSource.prototype.getCachedResultsEvent=null;YAHOO.widget.DataSource.prototype.dataErrorEvent=null;YAHOO.widget.DataSource.prototype.cacheFlushEvent=null;YAHOO.widget.DataSource._nIndex=0;YAHOO.widget.DataSource.prototype._sName=null;YAHOO.widget.DataSource.prototype._aCache=null;YAHOO.widget.DataSource.prototype._init=function(){var maxCacheEntries=this.maxCacheEntries;if(isNaN(maxCacheEntries)||(maxCacheEntries<0)){maxCacheEntries=0;} if(maxCacheEntries>0&&!this._aCache){this._aCache=[];} this._sName="instance"+YAHOO.widget.DataSource._nIndex;YAHOO.widget.DataSource._nIndex++;this.queryEvent=new YAHOO.util.CustomEvent("query",this);this.cacheQueryEvent=new YAHOO.util.CustomEvent("cacheQuery",this);this.getResultsEvent=new YAHOO.util.CustomEvent("getResults",this);this.getCachedResultsEvent=new YAHOO.util.CustomEvent("getCachedResults",this);this.dataErrorEvent=new YAHOO.util.CustomEvent("dataError",this);this.cacheFlushEvent=new YAHOO.util.CustomEvent("cacheFlush",this);};YAHOO.widget.DataSource.prototype._addCacheElem=function(resultObj){var aCache=this._aCache;if(!aCache||!resultObj||!resultObj.query||!resultObj.results){return;} if(aCache.length>=this.maxCacheEntries){aCache.shift();} aCache.push(resultObj);};YAHOO.widget.DataSource.prototype._doQueryCache=function(oCallbackFn,sQuery,oParent){var aResults=[];var bMatchFound=false;var aCache=this._aCache;var nCacheLength=(aCache)?aCache.length:0;var bMatchContains=this.queryMatchContains;if((this.maxCacheEntries>0)&&aCache&&(nCacheLength>0)){this.cacheQueryEvent.fire(this,oParent,sQuery);if(!this.queryMatchCase){var sOrigQuery=sQuery;sQuery=sQuery.toLowerCase();} for(var i=nCacheLength-1;i>=0;i--){var resultObj=aCache[i];var aAllResultItems=resultObj.results;var matchKey=(!this.queryMatchCase)?encodeURIComponent(resultObj.query.toLowerCase()):encodeURIComponent(resultObj.query);if(matchKey==sQuery){bMatchFound=true;aResults=aAllResultItems;if(i!=nCacheLength-1){aCache.splice(i,1);this._addCacheElem(resultObj);} break;} else if(this.queryMatchSubset){for(var j=sQuery.length-1;j>=0;j--){var subQuery=sQuery.substr(0,j);if(matchKey==subQuery){bMatchFound=true;for(var k=aAllResultItems.length-1;k>=0;k--){var aRecord=aAllResultItems[k];var sKeyIndex=(this.queryMatchCase)?encodeURIComponent(aRecord[0]).indexOf(sQuery):encodeURIComponent(aRecord[0]).toLowerCase().indexOf(sQuery);if((!bMatchContains&&(sKeyIndex===0))||(bMatchContains&&(sKeyIndex>-1))){aResults.unshift(aRecord);}} resultObj={};resultObj.query=sQuery;resultObj.results=aResults;this._addCacheElem(resultObj);break;}} if(bMatchFound){break;}}} if(bMatchFound){this.getCachedResultsEvent.fire(this,oParent,sOrigQuery,aResults);oCallbackFn(sOrigQuery,aResults,oParent);}} return aResults;};YAHOO.widget.DS_XHR=function(sScriptURI,aSchema,oConfigs){if(typeof oConfigs=="object"){for(var sConfig in oConfigs){this[sConfig]=oConfigs[sConfig];}} if(!aSchema||(aSchema.constructor!=Array)){return;} else{this.schema=aSchema;} this.scriptURI=sScriptURI;this._init();};YAHOO.widget.DS_XHR.prototype=new YAHOO.widget.DataSource();YAHOO.widget.DS_XHR.prototype.TYPE_JSON=0;YAHOO.widget.DS_XHR.prototype.TYPE_XML=1;YAHOO.widget.DS_XHR.prototype.TYPE_FLAT=2;YAHOO.widget.DS_XHR.prototype.ERROR_DATAXHR="XHR response failed";YAHOO.widget.DS_XHR.prototype.connTimeout=0;YAHOO.widget.DS_XHR.prototype.scriptURI=null;YAHOO.widget.DS_XHR.prototype.scriptQueryParam="query";YAHOO.widget.DS_XHR.prototype.scriptQueryAppend="";YAHOO.widget.DS_XHR.prototype.responseType=YAHOO.widget.DS_XHR.prototype.TYPE_JSON;YAHOO.widget.DS_XHR.prototype.responseStripAfter="\n<!--";YAHOO.widget.DS_XHR.prototype.doQuery=function(oCallbackFn,sQuery,oParent){var isXML=(this.responseType==this.TYPE_XML);var sUri=this.scriptURI+"?"+this.scriptQueryParam+"="+sQuery;if(this.scriptQueryAppend.length>0){sUri+="&"+this.scriptQueryAppend;} var oResponse=null;var oSelf=this;var responseSuccess=function(oResp){if(!oSelf._oConn||(oResp.tId!=oSelf._oConn.tId)){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,oSelf.ERROR_DATANULL);return;} for(var foo in oResp){} if(!isXML){oResp=oResp.responseText;} else{oResp=oResp.responseXML;} if(oResp===null){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,oSelf.ERROR_DATANULL);return;} var aResults=oSelf.parseResponse(sQuery,oResp,oParent);var resultObj={};resultObj.query=decodeURIComponent(sQuery);resultObj.results=aResults;if(aResults===null){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,oSelf.ERROR_DATAPARSE);return;} else{oSelf.getResultsEvent.fire(oSelf,oParent,sQuery,aResults);oSelf._addCacheElem(resultObj);oCallbackFn(sQuery,aResults,oParent);}};var responseFailure=function(oResp){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,oSelf.ERROR_DATAXHR);return;};var oCallback={success:responseSuccess,failure:responseFailure};if(!isNaN(this.connTimeout)&&this.connTimeout>0){oCallback.timeout=this.connTimeout;} if(this._oConn){YAHOO.util.Connect.abort(this._oConn);} oSelf._oConn=YAHOO.util.Connect.asyncRequest("GET",sUri,oCallback,null);};YAHOO.widget.DS_XHR.prototype.parseResponse=function(sQuery,oResponse,oParent){var aSchema=this.schema;var aResults=[];var bError=false;var nEnd=((this.responseStripAfter!=="")&&(oResponse.indexOf))?oResponse.indexOf(this.responseStripAfter):-1;if(nEnd!=-1){oResponse=oResponse.substring(0,nEnd);} switch(this.responseType){case this.TYPE_JSON:var jsonList;if(window.JSON&&(navigator.userAgent.toLowerCase().indexOf('khtml')==-1)){var jsonObjParsed=JSON.parse(oResponse);if(!jsonObjParsed){bError=true;break;} else{jsonList=eval("jsonObjParsed."+aSchema[0]);}} else{try{while(oResponse.substring(0,1)==" "){oResponse=oResponse.substring(1,oResponse.length);} if(oResponse.indexOf("{")<0){bError=true;break;} if(oResponse.indexOf("{}")===0){break;} var jsonObjRaw=eval("("+oResponse+")");if(!jsonObjRaw){bError=true;break;} jsonList=eval("(jsonObjRaw."+aSchema[0]+")");} catch(e){bError=true;break;}} if(!jsonList){bError=true;break;} if(jsonList.constructor!=Array){jsonList=[jsonList];} for(var i=jsonList.length-1;i>=0;i--){var aResultItem=[];var jsonResult=jsonList[i];for(var j=aSchema.length-1;j>=1;j--){var dataFieldValue=jsonResult[aSchema[j]];if(!dataFieldValue){dataFieldValue="";} aResultItem.unshift(dataFieldValue);} aResults.unshift(aResultItem);} break;case this.TYPE_XML:var xmlList=oResponse.getElementsByTagName(aSchema[0]);if(!xmlList){bError=true;break;} for(var k=xmlList.length-1;k>=0;k--){var result=xmlList.item(k);var aFieldSet=[];for(var m=aSchema.length-1;m>=1;m--){var sValue=null;var xmlAttr=result.attributes.getNamedItem(aSchema[m]);if(xmlAttr){sValue=xmlAttr.value;} else{var xmlNode=result.getElementsByTagName(aSchema[m]);if(xmlNode&&xmlNode.item(0)&&xmlNode.item(0).firstChild){sValue=xmlNode.item(0).firstChild.nodeValue;} else{sValue="";}} aFieldSet.unshift(sValue);} aResults.unshift(aFieldSet);} break;case this.TYPE_FLAT:if(oResponse.length>0){var newLength=oResponse.length-aSchema[0].length;if(oResponse.substr(newLength)==aSchema[0]){oResponse=oResponse.substr(0,newLength);} var aRecords=oResponse.split(aSchema[0]);for(var n=aRecords.length-1;n>=0;n--){aResults[n]=aRecords[n].split(aSchema[1]);}} break;default:break;} sQuery=null;oResponse=null;oParent=null;if(bError){return null;} else{return aResults;}};YAHOO.widget.DS_XHR.prototype._oConn=null;YAHOO.widget.DS_JSFunction=function(oFunction,oConfigs){if(typeof oConfigs=="object"){for(var sConfig in oConfigs){this[sConfig]=oConfigs[sConfig];}} if(!oFunction||(oFunction.constructor!=Function)){return;} else{this.dataFunction=oFunction;this._init();}};YAHOO.widget.DS_JSFunction.prototype=new YAHOO.widget.DataSource();YAHOO.widget.DS_JSFunction.prototype.dataFunction=null;YAHOO.widget.DS_JSFunction.prototype.doQuery=function(oCallbackFn,sQuery,oParent){var oFunction=this.dataFunction;var aResults=[];aResults=oFunction(sQuery);if(aResults===null){this.dataErrorEvent.fire(this,oParent,sQuery,this.ERROR_DATANULL);return;} var resultObj={};resultObj.query=decodeURIComponent(sQuery);resultObj.results=aResults;this._addCacheElem(resultObj);this.getResultsEvent.fire(this,oParent,sQuery,aResults);oCallbackFn(sQuery,aResults,oParent);return;};YAHOO.widget.DS_JSArray=function(aData,oConfigs){if(typeof oConfigs=="object"){for(var sConfig in oConfigs){this[sConfig]=oConfigs[sConfig];}} if(!aData||(aData.constructor!=Array)){return;} else{this.data=aData;this._init();}};YAHOO.widget.DS_JSArray.prototype=new YAHOO.widget.DataSource();YAHOO.widget.DS_JSArray.prototype.data=null;YAHOO.widget.DS_JSArray.prototype.doQuery=function(oCallbackFn,sQuery,oParent){var aData=this.data;var aResults=[];var bMatchFound=false;var bMatchContains=this.queryMatchContains;if(!this.queryMatchCase){sQuery=sQuery.toLowerCase();} for(var i=aData.length-1;i>=0;i--){var aDataset=[];if(aData[i]){if(aData[i].constructor==String){aDataset[0]=aData[i];} else if(aData[i].constructor==Array){aDataset=aData[i];}} if(aDataset[0]&&(aDataset[0].constructor==String)){var sKeyIndex=(this.queryMatchCase)?encodeURIComponent(aDataset[0]).indexOf(sQuery):encodeURIComponent(aDataset[0]).toLowerCase().indexOf(sQuery);if((!bMatchContains&&(sKeyIndex===0))||(bMatchContains&&(sKeyIndex>-1))){aResults.unshift(aDataset);}}}this.getResultsEvent.fire(this,oParent,sQuery,aResults);oCallbackFn(sQuery,aResults,oParent);};
/* logger  2.0.5 */
YAHOO.widget.Logger={loggerEnabled:true,_browserConsoleEnabled:false,categories:["info","warn","error","time","window"],sources:["global"],_stack:[],maxStackEntries:5,_startTime:new Date().getTime(),_lastTime:null};YAHOO.widget.Logger.categoryCreateEvent=new YAHOO.util.CustomEvent("categoryCreate",this,true);YAHOO.widget.Logger.sourceCreateEvent=new YAHOO.util.CustomEvent("sourceCreate",this,true);YAHOO.widget.Logger.newLogEvent=new YAHOO.util.CustomEvent("newLog",this,true);YAHOO.widget.Logger.logResetEvent=new YAHOO.util.CustomEvent("logReset",this,true);YAHOO.widget.Logger.log=function(sMsg,sCategory,sSource){if(this.loggerEnabled){if(!sCategory){sCategory="info";} else{sCategory=sCategory.toLocaleLowerCase();if(this._isNewCategory(sCategory)){this._createNewCategory(sCategory);}} var sClass="global";var sDetail=null;if(sSource){var spaceIndex=sSource.indexOf(" ");if(spaceIndex>0){sClass=sSource.substring(0,spaceIndex);sDetail=sSource.substring(spaceIndex,sSource.length);} else{sClass=sSource;} if(this._isNewSource(sClass)){this._createNewSource(sClass);}} var timestamp=new Date();var logEntry={time:timestamp,category:sCategory,source:sClass,sourceDetail:sDetail,msg:sMsg};var stack=this._stack;var maxStackEntries=this.maxStackEntries;if(maxStackEntries&&!isNaN(maxStackEntries)&&(stack.length>=maxStackEntries)){stack.shift();} stack.push(logEntry);this.newLogEvent.fire(logEntry);if(this._browserConsoleEnabled){this._printToBrowserConsole(logEntry);} return true;} else{return false;}};YAHOO.widget.Logger.reset=function(){this._stack=[];this._startTime=new Date().getTime();this.loggerEnabled=true;this.log("Logger reset");this.logResetEvent.fire();};YAHOO.widget.Logger.getStack=function(){return this._stack;};YAHOO.widget.Logger.getStartTime=function(){return this._startTime;};YAHOO.widget.Logger.disableBrowserConsole=function(){YAHOO.log("Logger output to the function console.log() has been disabled.");this._browserConsoleEnabled=false;};YAHOO.widget.Logger.enableBrowserConsole=function(){this._browserConsoleEnabled=true;YAHOO.log("Logger output to the function console.log() has been enabled.");};YAHOO.widget.Logger._createNewCategory=function(category){this.categories.push(category);this.categoryCreateEvent.fire(category);};YAHOO.widget.Logger._isNewCategory=function(category){for(var i=0;i<this.categories.length;i++){if(category==this.categories[i]){return false;}} return true;};YAHOO.widget.Logger._createNewSource=function(source){this.sources.push(source);this.sourceCreateEvent.fire(source);};YAHOO.widget.Logger._isNewSource=function(source){if(source){for(var i=0;i<this.sources.length;i++){if(source==this.sources[i]){return false;}} return true;}};YAHOO.widget.Logger._printToBrowserConsole=function(entry){if(window.console&&console.log){var category=entry.category;var label=entry.category.substring(0,4).toUpperCase();var time=entry.time;if(time.toLocaleTimeString){var localTime=time.toLocaleTimeString();} else{localTime=time.toString();} var msecs=time.getTime();var elapsedTime=(YAHOO.widget.Logger._lastTime)?(msecs-YAHOO.widget.Logger._lastTime):0;YAHOO.widget.Logger._lastTime=msecs;var output=localTime+" ("+ elapsedTime+"ms): "+ entry.source+": "+ entry.msg;console.log(output);}};YAHOO.widget.Logger._onWindowError=function(msg,url,line){try{YAHOO.widget.Logger.log(msg+' ('+url+', line '+line+')',"window");if(YAHOO.widget.Logger._origOnWindowError){YAHOO.widget.Logger._origOnWindowError();}} catch(e){return false;}};if(window.onerror){YAHOO.widget.Logger._origOnWindowError=window.onerror;} window.onerror=YAHOO.widget.Logger._onWindowError;YAHOO.widget.Logger.log("Logger initialized");YAHOO.widget.LogWriter=function(sSource){if(!sSource){YAHOO.log("Could not instantiate LogWriter due to invalid source.","error","LogWriter");return;} this._source=sSource;};YAHOO.widget.LogWriter.prototype.toString=function(){return"LogWriter "+this._sSource;};YAHOO.widget.LogWriter.prototype.log=function(sMsg,sCategory){YAHOO.widget.Logger.log(sMsg,sCategory,this._source);};YAHOO.widget.LogWriter.prototype.getSource=function(){return this._sSource;};YAHOO.widget.LogWriter.prototype.setSource=function(sSource){if(!sSource){YAHOO.log("Could not set source due to invalid source.","error",this.toString());return;} else{this._sSource=sSource;}};YAHOO.widget.LogWriter.prototype._source=null;YAHOO.widget.LogReader=function(containerEl,oConfig){var oSelf=this;this._sName=YAHOO.widget.LogReader._index;YAHOO.widget.LogReader._index++;if(typeof oConfig=="object"){for(var param in oConfig){this[param]=oConfig[param];}} if(containerEl){if(typeof containerEl=="string"){this._containerEl=document.getElementById(containerEl);} else if(containerEl.tagName){this._containerEl=containerEl;} this._containerEl.className="yui-log";} if(!this._containerEl){if(YAHOO.widget.LogReader._defaultContainerEl){this._containerEl=YAHOO.widget.LogReader._defaultContainerEl;} else{this._containerEl=document.body.appendChild(document.createElement("div"));this._containerEl.id="yui-log";this._containerEl.className="yui-log";YAHOO.widget.LogReader._defaultContainerEl=this._containerEl;} var containerStyle=this._containerEl.style;if(this.width){containerStyle.width=this.width;} if(this.left){containerStyle.left=this.left;} if(this.right){containerStyle.right=this.right;} if(this.bottom){containerStyle.bottom=this.bottom;} if(this.top){containerStyle.top=this.top;} if(this.fontSize){containerStyle.fontSize=this.fontSize;}} if(this._containerEl){if(!this._hdEl){this._hdEl=this._containerEl.appendChild(document.createElement("div"));this._hdEl.id="yui-log-hd"+this._sName;this._hdEl.className="yui-log-hd";this._collapseEl=this._hdEl.appendChild(document.createElement("div"));this._collapseEl.className="yui-log-btns";this._collapseBtn=document.createElement("input");this._collapseBtn.type="button";this._collapseBtn.style.fontSize=YAHOO.util.Dom.getStyle(this._containerEl,"fontSize");this._collapseBtn.className="yui-log-button";this._collapseBtn.value="Collapse";this._collapseBtn=this._collapseEl.appendChild(this._collapseBtn);YAHOO.util.Event.addListener(oSelf._collapseBtn,'click',oSelf._onClickCollapseBtn,oSelf);this._title=this._hdEl.appendChild(document.createElement("h4"));this._title.innerHTML="Logger Console";if(YAHOO.util.DD&&(YAHOO.widget.LogReader._defaultContainerEl==this._containerEl)){var ylog_dd=new YAHOO.util.DD(this._containerEl.id);ylog_dd.setHandleElId(this._hdEl.id);this._hdEl.style.cursor="move";}} if(!this._consoleEl){this._consoleEl=this._containerEl.appendChild(document.createElement("div"));this._consoleEl.className="yui-log-bd";if(this.height){this._consoleEl.style.height=this.height;}} if(!this._ftEl&&this.footerEnabled){this._ftEl=this._containerEl.appendChild(document.createElement("div"));this._ftEl.className="yui-log-ft";this._btnsEl=this._ftEl.appendChild(document.createElement("div"));this._btnsEl.className="yui-log-btns";this._pauseBtn=document.createElement("input");this._pauseBtn.type="button";this._pauseBtn.style.fontSize=YAHOO.util.Dom.getStyle(this._containerEl,"fontSize");this._pauseBtn.className="yui-log-button";this._pauseBtn.value="Pause";this._pauseBtn=this._btnsEl.appendChild(this._pauseBtn);YAHOO.util.Event.addListener(oSelf._pauseBtn,'click',oSelf._onClickPauseBtn,oSelf);this._clearBtn=document.createElement("input");this._clearBtn.type="button";this._clearBtn.style.fontSize=YAHOO.util.Dom.getStyle(this._containerEl,"fontSize");this._clearBtn.className="yui-log-button";this._clearBtn.value="Clear";this._clearBtn=this._btnsEl.appendChild(this._clearBtn);YAHOO.util.Event.addListener(oSelf._clearBtn,'click',oSelf._onClickClearBtn,oSelf);this._categoryFiltersEl=this._ftEl.appendChild(document.createElement("div"));this._categoryFiltersEl.className="yui-log-categoryfilters";this._sourceFiltersEl=this._ftEl.appendChild(document.createElement("div"));this._sourceFiltersEl.className="yui-log-sourcefilters";}} if(!this._buffer){this._buffer=[];} this._lastTime=YAHOO.widget.Logger.getStartTime();YAHOO.widget.Logger.newLogEvent.subscribe(this._onNewLog,this);YAHOO.widget.Logger.logResetEvent.subscribe(this._onReset,this);this._categoryFilters=[];var catsLen=YAHOO.widget.Logger.categories.length;if(this._categoryFiltersEl){for(var i=0;i<catsLen;i++){this._createCategoryCheckbox(YAHOO.widget.Logger.categories[i]);}} this._sourceFilters=[];var sourcesLen=YAHOO.widget.Logger.sources.length;if(this._sourceFiltersEl){for(var j=0;j<sourcesLen;j++){this._createSourceCheckbox(YAHOO.widget.Logger.sources[j]);}} YAHOO.widget.Logger.categoryCreateEvent.subscribe(this._onCategoryCreate,this);YAHOO.widget.Logger.sourceCreateEvent.subscribe(this._onSourceCreate,this);this._filterLogs();YAHOO.log("LogReader initialized",null,this.toString());};YAHOO.widget.LogReader.prototype.logReaderEnabled=true;YAHOO.widget.LogReader.prototype.width=null;YAHOO.widget.LogReader.prototype.height=null;YAHOO.widget.LogReader.prototype.top=null;YAHOO.widget.LogReader.prototype.left=null;YAHOO.widget.LogReader.prototype.right=null;YAHOO.widget.LogReader.prototype.bottom=null;YAHOO.widget.LogReader.prototype.fontSize=null;YAHOO.widget.LogReader.prototype.footerEnabled=true;YAHOO.widget.LogReader.prototype.verboseOutput=true;YAHOO.widget.LogReader.prototype.newestOnTop=true;YAHOO.widget.LogReader.prototype.thresholdMax=500;YAHOO.widget.LogReader.prototype.thresholdMin=100;YAHOO.widget.LogReader.prototype.toString=function(){return"LogReader instance"+this._sName;};YAHOO.widget.LogReader.prototype.pause=function(){this._timeout=null;this.logReaderEnabled=false;};YAHOO.widget.LogReader.prototype.resume=function(){this.logReaderEnabled=true;this._printBuffer();};YAHOO.widget.LogReader.prototype.hide=function(){this._containerEl.style.display="none";};YAHOO.widget.LogReader.prototype.show=function(){this._containerEl.style.display="block";};YAHOO.widget.LogReader.prototype.setTitle=function(sTitle){this._title.innerHTML=this._HTML2Text(sTitle);};YAHOO.widget.LogReader._index=0;YAHOO.widget.LogReader.prototype._sName=null;YAHOO.widget.LogReader._defaultContainerEl=null;YAHOO.widget.LogReader.prototype._buffer=null;YAHOO.widget.LogReader.prototype._consoleMsgCount=0;YAHOO.widget.LogReader.prototype._lastTime=null;YAHOO.widget.LogReader.prototype._timeout=null;YAHOO.widget.LogReader.prototype._categoryFilters=null;YAHOO.widget.LogReader.prototype._sourceFilters=null;YAHOO.widget.LogReader.prototype._containerEl=null;YAHOO.widget.LogReader.prototype._hdEl=null;YAHOO.widget.LogReader.prototype._collapseEl=null;YAHOO.widget.LogReader.prototype._collapseBtn=null;YAHOO.widget.LogReader.prototype._title=null;YAHOO.widget.LogReader.prototype._consoleEl=null;YAHOO.widget.LogReader.prototype._ftEl=null;YAHOO.widget.LogReader.prototype._btnsEl=null;YAHOO.widget.LogReader.prototype._categoryFiltersEl=null;YAHOO.widget.LogReader.prototype._sourceFiltersEl=null;YAHOO.widget.LogReader.prototype._pauseBtn=null;YAHOO.widget.LogReader.prototype._clearBtn=null;YAHOO.widget.LogReader.prototype._createCategoryCheckbox=function(category){var oSelf=this;if(this._ftEl){var parentEl=this._categoryFiltersEl;var filters=this._categoryFilters;var filterEl=parentEl.appendChild(document.createElement("span"));filterEl.className="yui-log-filtergrp";var categoryChk=document.createElement("input");categoryChk.id="yui-log-filter-"+category+this._sName;categoryChk.className="yui-log-filter-"+category;categoryChk.type="checkbox";categoryChk.category=category;categoryChk=filterEl.appendChild(categoryChk);categoryChk.checked=true;filters.push(category);YAHOO.util.Event.addListener(categoryChk,'click',oSelf._onCheckCategory,oSelf);var categoryChkLbl=filterEl.appendChild(document.createElement("label"));categoryChkLbl.htmlFor=categoryChk.id;categoryChkLbl.className=category;categoryChkLbl.innerHTML=category;}};YAHOO.widget.LogReader.prototype._createSourceCheckbox=function(source){var oSelf=this;if(this._ftEl){var parentEl=this._sourceFiltersEl;var filters=this._sourceFilters;var filterEl=parentEl.appendChild(document.createElement("span"));filterEl.className="yui-log-filtergrp";var sourceChk=document.createElement("input");sourceChk.id="yui-log-filter"+source+this._sName;sourceChk.className="yui-log-filter"+source;sourceChk.type="checkbox";sourceChk.source=source;sourceChk=filterEl.appendChild(sourceChk);sourceChk.checked=true;filters.push(source);YAHOO.util.Event.addListener(sourceChk,'click',oSelf._onCheckSource,oSelf);var sourceChkLbl=filterEl.appendChild(document.createElement("label"));sourceChkLbl.htmlFor=sourceChk.id;sourceChkLbl.className=source;sourceChkLbl.innerHTML=source;}};YAHOO.widget.LogReader.prototype._filterLogs=function(){if(this._consoleEl!==null){this._clearConsole();this._printToConsole(YAHOO.widget.Logger.getStack());}};YAHOO.widget.LogReader.prototype._clearConsole=function(){this._timeout=null;this._buffer=[];this._consoleMsgCount=0;this._lastTime=YAHOO.widget.Logger.getStartTime();var consoleEl=this._consoleEl;while(consoleEl.hasChildNodes()){consoleEl.removeChild(consoleEl.firstChild);}};YAHOO.widget.LogReader.prototype._printBuffer=function(){this._timeout=null;if(this._consoleEl!==null){var thresholdMax=this.thresholdMax;thresholdMax=(thresholdMax&&!isNaN(thresholdMax))?thresholdMax:500;if(this._consoleMsgCount<thresholdMax){var entries=[];for(var i=0;i<this._buffer.length;i++){entries[i]=this._buffer[i];} this._buffer=[];this._printToConsole(entries);} else{this._filterLogs();} if(!this.newestOnTop){this._consoleEl.scrollTop=this._consoleEl.scrollHeight;}}};YAHOO.widget.LogReader.prototype._printToConsole=function(aEntries){var entriesLen=aEntries.length;var thresholdMin=this.thresholdMin;if(isNaN(thresholdMin)||(thresholdMin>this.thresholdMax)){thresholdMin=0;} var entriesStartIndex=(entriesLen>thresholdMin)?(entriesLen-thresholdMin):0;var sourceFiltersLen=this._sourceFilters.length;var categoryFiltersLen=this._categoryFilters.length;for(var i=entriesStartIndex;i<entriesLen;i++){var entry=aEntries[i];var category=entry.category;var source=entry.source;var sourceDetail=entry.sourceDetail;var okToPrint=false;var okToFilterCats=false;for(var j=0;j<sourceFiltersLen;j++){if(source==this._sourceFilters[j]){okToFilterCats=true;break;}} if(okToFilterCats){for(var k=0;k<categoryFiltersLen;k++){if(category==this._categoryFilters[k]){okToPrint=true;break;}}} if(okToPrint){var label=entry.category.substring(0,4).toUpperCase();var time=entry.time;if(time.toLocaleTimeString){var localTime=time.toLocaleTimeString();} else{localTime=time.toString();} var msecs=time.getTime();var startTime=YAHOO.widget.Logger.getStartTime();var totalTime=msecs-startTime;var elapsedTime=msecs-this._lastTime;this._lastTime=msecs;var verboseOutput=(this.verboseOutput);var container=(verboseOutput)?"CODE":"PRE";var sourceAndDetail=(sourceDetail)?source+" "+sourceDetail:source;var output=(verboseOutput)?["<p><span class='",category,"'>",label,"</span> ",totalTime,"ms (+",elapsedTime,") ",localTime,": ","</p><p>",sourceAndDetail,": </p><p>",this._HTML2Text(entry.msg),"</p>"]:["<p><span class='",category,"'>",label,"</span> ",totalTime,"ms (+",elapsedTime,") ",localTime,": ",sourceAndDetail,": ",this._HTML2Text(entry.msg),"</p>"];var oNewElement=(this.newestOnTop)?this._consoleEl.insertBefore(document.createElement(container),this._consoleEl.firstChild):this._consoleEl.appendChild(document.createElement(container));oNewElement.innerHTML=output.join("");this._consoleMsgCount++;}}};YAHOO.widget.LogReader.prototype._HTML2Text=function(html){if(html){return html.replace(/&/g,"&#38;").replace(/</g,"&#60;").replace(/>/g,"&#62;");} else return"";};YAHOO.widget.LogReader.prototype._onCategoryCreate=function(type,args,oSelf){var category=args[0];if(oSelf._ftEl){oSelf._createCategoryCheckbox(category);}};YAHOO.widget.LogReader.prototype._onSourceCreate=function(type,args,oSelf){var source=args[0];if(oSelf._ftEl){oSelf._createSourceCheckbox(source);}};YAHOO.widget.LogReader.prototype._onCheckCategory=function(v,oSelf){var newFilter=this.category;var filtersArray=oSelf._categoryFilters;if(!this.checked){for(var i=0;i<filtersArray.length;i++){if(newFilter==filtersArray[i]){filtersArray.splice(i,1);break;}}} else{filtersArray.push(newFilter);} oSelf._filterLogs();};YAHOO.widget.LogReader.prototype._onCheckSource=function(v,oSelf){var newFilter=this.source;var filtersArray=oSelf._sourceFilters;if(!this.checked){for(var i=0;i<filtersArray.length;i++){if(newFilter==filtersArray[i]){filtersArray.splice(i,1);break;}}} else{filtersArray.push(newFilter);} oSelf._filterLogs();};YAHOO.widget.LogReader.prototype._onClickCollapseBtn=function(v,oSelf){var btn=oSelf._collapseBtn;if(btn.value=="Expand"){oSelf._consoleEl.style.display="block";if(oSelf._ftEl){oSelf._ftEl.style.display="block";} btn.value="Collapse";} else{oSelf._consoleEl.style.display="none";if(oSelf._ftEl){oSelf._ftEl.style.display="none";} btn.value="Expand";}};YAHOO.widget.LogReader.prototype._onClickPauseBtn=function(v,oSelf){var btn=oSelf._pauseBtn;if(btn.value=="Resume"){oSelf.resume();btn.value="Pause";} else{oSelf.pause();btn.value="Resume";}};YAHOO.widget.LogReader.prototype._onClickClearBtn=function(v,oSelf){oSelf._clearConsole();};YAHOO.widget.LogReader.prototype._onNewLog=function(type,args,oSelf){var logEntry=args[0];oSelf._buffer.push(logEntry);if(oSelf.logReaderEnabled===true&&oSelf._timeout===null){oSelf._timeout=setTimeout(function(){oSelf._printBuffer();},100);}};YAHOO.widget.LogReader.prototype._onReset=function(type,args,oSelf){oSelf._filterLogs();};
/* slider 2.0.5 */
YAHOO.widget.Slider=function(_1,_2,_3,_4){if(_1){this.type=_4;this.init(_1,_2,true);var _5=this;this.thumb=_3;_3.onChange=function(){_5.onThumbChange();};this.isTarget=false;this.animate=YAHOO.widget.Slider.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;if(_3._isHoriz&&_3.xTicks&&_3.xTicks.length){this.tickPause=Math.round(360/_3.xTicks.length);}else{if(_3.yTicks&&_3.yTicks.length){this.tickPause=Math.round(360/_3.yTicks.length);}}_3.onMouseDown=function(){return _5.focus();};_3.onMouseUp=function(){_5.thumbMouseUp();};_3.onDrag=function(){_5.fireEvents();};_3.onAvailable=function(){return _5.setStartSliderState();};}};YAHOO.extend(YAHOO.widget.Slider,YAHOO.util.DragDrop);YAHOO.widget.Slider.getHorizSlider=function(_6,_7,_8,_9,_10){return new YAHOO.widget.Slider(_6,_6,new YAHOO.widget.SliderThumb(_7,_6,_8,_9,0,0,_10),"horiz");};YAHOO.widget.Slider.getVertSlider=function(_11,_12,iUp,_14,_15){return new YAHOO.widget.Slider(_11,_11,new YAHOO.widget.SliderThumb(_12,_11,0,0,iUp,_14,_15),"vert");};YAHOO.widget.Slider.getSliderRegion=function(_16,_17,_18,_19,iUp,_20,_21){return new YAHOO.widget.Slider(_16,_16,new YAHOO.widget.SliderThumb(_17,_16,_18,_19,iUp,_20,_21),"region");};YAHOO.widget.Slider.ANIM_AVAIL=true;YAHOO.widget.Slider.prototype.setStartSliderState=function(){this.setThumbCenterPoint();this.baselinePos=YAHOO.util.Dom.getXY(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion){if(this.deferredSetRegionValue){this.setRegionValue.apply(this,this.deferredSetRegionValue,true);}else{this.setRegionValue(0,0,true);}}else{if(this.deferredSetValue){this.setValue.apply(this,this.deferredSetValue,true);}else{this.setValue(0,true,true);}}};YAHOO.widget.Slider.prototype.setThumbCenterPoint=function(){var el=this.thumb.getEl();if(el){this.thumbCenterPoint={x:parseInt(el.offsetWidth/2,10),y:parseInt(el.offsetHeight/2,10)};}};YAHOO.widget.Slider.prototype.lock=function(){this.thumb.lock();this.locked=true;};YAHOO.widget.Slider.prototype.unlock=function(){this.thumb.unlock();this.locked=false;};YAHOO.widget.Slider.prototype.thumbMouseUp=function(){if(!this.isLocked()&&!this.moveComplete){this.endMove();}};YAHOO.widget.Slider.prototype.getThumb=function(){return this.thumb;};YAHOO.widget.Slider.prototype.focus=function(){var el=this.getEl();if(el.focus){el.focus();}this.verifyOffset();if(this.isLocked()){return false;}else{this.onSlideStart();return true;}};YAHOO.widget.Slider.prototype.onChange=function(_23,_24){};YAHOO.widget.Slider.prototype.onSlideStart=function(){};YAHOO.widget.Slider.prototype.onSlideEnd=function(){};YAHOO.widget.Slider.prototype.getValue=function(){return this.thumb.getValue();};YAHOO.widget.Slider.prototype.getXValue=function(){return this.thumb.getXValue();};YAHOO.widget.Slider.prototype.getYValue=function(){return this.thumb.getYValue();};YAHOO.widget.Slider.prototype.onThumbChange=function(){var t=this.thumb;if(t._isRegion){t.onChange(t.getXValue(),t.getYValue());}else{t.onChange(t.getValue());}};YAHOO.widget.Slider.prototype.setValue=function(_26,_27,_28){if(!this.thumb.available){this.deferredSetValue=arguments;return false;}if(this.isLocked()&&!_28){return false;}if(isNaN(_26)){return false;}var t=this.thumb;var _29,newY;this.verifyOffset();if(t._isRegion){return false;}else{if(t._isHoriz){this.onSlideStart();_29=t.initPageX+_26+this.thumbCenterPoint.x;this.moveThumb(_29,t.initPageY,_27);}else{this.onSlideStart();newY=t.initPageY+_26+this.thumbCenterPoint.y;this.moveThumb(t.initPageX,newY,_27);}}return true;};YAHOO.widget.Slider.prototype.setRegionValue=function(_30,_31,_32){if(!this.thumb.available){this.deferredSetRegionValue=arguments;return false;}if(this.isLocked()&&!force){return false;}if(isNaN(_30)){return false;}var t=this.thumb;if(t._isRegion){this.onSlideStart();var _33=t.initPageX+_30+this.thumbCenterPoint.x;var _34=t.initPageY+_31+this.thumbCenterPoint.y;this.moveThumb(_33,_34,_32);return true;}return false;};YAHOO.widget.Slider.prototype.verifyOffset=function(){var _35=YAHOO.util.Dom.getXY(this.getEl());if(_35[0]!=this.baselinePos[0]||_35[1]!=this.baselinePos[1]){this.thumb.resetConstraints();this.baselinePos=_35;return false;}return true;};YAHOO.widget.Slider.prototype.moveThumb=function(x,y,_38){var t=this.thumb;var _39=this;if(!t.available){return;}t.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);var _p=t.getTargetCoord(x,y);var p=[_p.x,_p.y];if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&t._graduated&&!_38){this.lock();setTimeout(function(){_39.moveOneTick(p);},this.tickPause);}else{if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&!_38){this.lock();var _42=new YAHOO.util.Motion(t.id,{points:{to:p}},0.4,YAHOO.util.Easing.easeOut);_42.onComplete.subscribe(function(){_39.endMove();});_42.animate();}else{t.setDragElPos(x,y);this.endMove();}}};YAHOO.widget.Slider.prototype.moveOneTick=function(_43){var t=this.thumb;var _44=YAHOO.util.Dom.getXY(t.getEl());var tmp;var _46=null;if(t._isRegion){_46=this._getNextX(_44,_43);var _47=(_46)?_46[0]:_44[0];_46=this._getNextY([_47,_44[1]],_43);}else{if(t._isHoriz){_46=this._getNextX(_44,_43);}else{_46=this._getNextY(_44,_43);}}if(_46){this.thumb.alignElWithMouse(t.getEl(),_46[0],_46[1]);if(!(_46[0]==_43[0]&&_46[1]==_43[1])){var _48=this;setTimeout(function(){_48.moveOneTick(_43);},this.tickPause);}else{this.endMove();}}else{this.endMove();}};YAHOO.widget.Slider.prototype._getNextX=function(_49,_50){var t=this.thumb;var _51;var tmp=[];var _52=null;if(_49[0]>_50[0]){_51=t.tickSize-this.thumbCenterPoint.x;tmp=t.getTargetCoord(_49[0]-_51,_49[1]);_52=[tmp.x,tmp.y];}else{if(_49[0]<_50[0]){_51=t.tickSize+this.thumbCenterPoint.x;tmp=t.getTargetCoord(_49[0]+_51,_49[1]);_52=[tmp.x,tmp.y];}else{}}return _52;};YAHOO.widget.Slider.prototype._getNextY=function(_53,_54){var t=this.thumb;var _55;var tmp=[];var _56=null;if(_53[1]>_54[1]){_55=t.tickSize-this.thumbCenterPoint.y;tmp=t.getTargetCoord(_53[0],_53[1]-_55);_56=[tmp.x,tmp.y];}else{if(_53[1]<_54[1]){_55=t.tickSize+this.thumbCenterPoint.y;tmp=t.getTargetCoord(_53[0],_53[1]+_55);_56=[tmp.x,tmp.y];}else{}}return _56;};YAHOO.widget.Slider.prototype.b4MouseDown=function(e){this.thumb.autoOffset();this.thumb.resetConstraints();};YAHOO.widget.Slider.prototype.onMouseDown=function(e){if(!this.isLocked()&&this.backgroundEnabled){var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);this.focus();this.moveThumb(x,y);}};YAHOO.widget.Slider.prototype.onDrag=function(e){if(!this.isLocked()){var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);this.moveThumb(x,y,true);}};YAHOO.widget.Slider.prototype.endMove=function(){this.unlock();this.moveComplete=true;this.fireEvents();};YAHOO.widget.Slider.prototype.fireEvents=function(){var t=this.thumb;t.cachePosition();if(!this.isLocked()){if(t._isRegion){var _58=t.getXValue();var _59=t.getYValue();if(_58!=this.previousX||_59!=this.previousY){this.onChange(_58,_59);}this.previousX=_58;this.previousY=_59;}else{var _60=t.getValue();if(_60!=this.previousVal){this.onChange(_60);}this.previousVal=_60;}if(this.moveComplete){this.onSlideEnd();this.moveComplete=false;}}};YAHOO.widget.Slider.prototype.toString=function(){return ("Slider ("+this.type+") "+this.id);};YAHOO.widget.SliderThumb=function(id,_62,_63,_64,iUp,_65,_66){if(id){this.init(id,_62);this.parentElId=_62;}this.isTarget=false;this.tickSize=_66;this.maintainOffset=true;this.initSlider(_63,_64,iUp,_65,_66);this.scroll=false;};YAHOO.extend(YAHOO.widget.SliderThumb,YAHOO.util.DD);YAHOO.widget.SliderThumb.prototype.getOffsetFromParent=function(_67){var _68=YAHOO.util.Dom.getXY(this.getEl());var _69=_67||YAHOO.util.Dom.getXY(this.parentElId);return [(_68[0]-_69[0]),(_68[1]-_69[1])];};YAHOO.widget.SliderThumb.prototype.startOffset=null;YAHOO.widget.SliderThumb.prototype._isHoriz=false;YAHOO.widget.SliderThumb.prototype._prevVal=0;YAHOO.widget.SliderThumb.prototype._graduated=false;YAHOO.widget.SliderThumb.prototype.initSlider=function(_70,_71,iUp,_72,_73){this.setXConstraint(_70,_71,_73);this.setYConstraint(iUp,_72,_73);if(_73&&_73>1){this._graduated=true;}this._isHoriz=(_70>0||_71>0);this._isVert=(iUp>0||_72>0);this._isRegion=(this._isHoriz&&this._isVert);};YAHOO.widget.SliderThumb.prototype.clearTicks=function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this);this._graduated=false;};YAHOO.widget.SliderThumb.prototype.getValue=function(){if(!this.available){return 0;}var val=(this._isHoriz)?this.getXValue():this.getYValue();return val;};YAHOO.widget.SliderThumb.prototype.getXValue=function(){if(!this.available){return 0;}var _75=this.getOffsetFromParent();return (_75[0]-this.startOffset[0]);};YAHOO.widget.SliderThumb.prototype.getYValue=function(){if(!this.available){return 0;}var _76=this.getOffsetFromParent();return (_76[1]-this.startOffset[1]);};YAHOO.widget.SliderThumb.prototype.toString=function(){return "SliderThumb "+this.id;};YAHOO.widget.SliderThumb.prototype.onChange=function(x,y){};if("undefined"==typeof YAHOO.util.Anim){YAHOO.widget.Slider.ANIM_AVAIL=false;}
/* container 2.1.0 */
YAHOO.util.Config=function(owner){if(owner){this.init(owner);}};YAHOO.util.Config.prototype={owner:null,queueInProgress:false,checkBoolean:function(val){if(typeof val=='boolean'){return true;}else{return false;}},checkNumber:function(val){if(isNaN(val)){return false;}else{return true;}}};YAHOO.util.Config.prototype.init=function(owner){this.owner=owner;this.configChangedEvent=new YAHOO.util.CustomEvent("configChanged");this.queueInProgress=false;var config={};var initialConfig={};var eventQueue=[];var fireEvent=function(key,value){key=key.toLowerCase();var property=config[key];if(typeof property!='undefined'&&property.event){property.event.fire(value);}};this.addProperty=function(key,propertyObject){key=key.toLowerCase();config[key]=propertyObject;propertyObject.event=new YAHOO.util.CustomEvent(key);propertyObject.key=key;if(propertyObject.handler){propertyObject.event.subscribe(propertyObject.handler,this.owner,true);}
this.setProperty(key,propertyObject.value,true);if(!propertyObject.suppressEvent){this.queueProperty(key,propertyObject.value);}};this.getConfig=function(){var cfg={};for(var prop in config){var property=config[prop];if(typeof property!='undefined'&&property.event){cfg[prop]=property.value;}}
return cfg;};this.getProperty=function(key){key=key.toLowerCase();var property=config[key];if(typeof property!='undefined'&&property.event){return property.value;}else{return undefined;}};this.resetProperty=function(key){key=key.toLowerCase();var property=config[key];if(typeof property!='undefined'&&property.event){if(initialConfig[key]&&initialConfig[key]!='undefined'){this.setProperty(key,initialConfig[key]);}
return true;}else{return false;}};this.setProperty=function(key,value,silent){key=key.toLowerCase();if(this.queueInProgress&&!silent){this.queueProperty(key,value);return true;}else{var property=config[key];if(typeof property!='undefined'&&property.event){if(property.validator&&!property.validator(value)){return false;}else{property.value=value;if(!silent){fireEvent(key,value);this.configChangedEvent.fire([key,value]);}
return true;}}else{return false;}}};this.queueProperty=function(key,value){key=key.toLowerCase();var property=config[key];if(typeof property!='undefined'&&property.event){if(typeof value!='undefined'&&property.validator&&!property.validator(value)){return false;}else{if(typeof value!='undefined'){property.value=value;}else{value=property.value;}
var foundDuplicate=false;for(var i=0;i<eventQueue.length;i++){var queueItem=eventQueue[i];if(queueItem){var queueItemKey=queueItem[0];var queueItemValue=queueItem[1];if(queueItemKey.toLowerCase()==key){eventQueue[i]=null;eventQueue.push([key,(typeof value!='undefined'?value:queueItemValue)]);foundDuplicate=true;break;}}}
if(!foundDuplicate&&typeof value!='undefined'){eventQueue.push([key,value]);}}
if(property.supercedes){for(var s=0;s<property.supercedes.length;s++){var supercedesCheck=property.supercedes[s];for(var q=0;q<eventQueue.length;q++){var queueItemCheck=eventQueue[q];if(queueItemCheck){var queueItemCheckKey=queueItemCheck[0];var queueItemCheckValue=queueItemCheck[1];if(queueItemCheckKey.toLowerCase()==supercedesCheck.toLowerCase()){eventQueue.push([queueItemCheckKey,queueItemCheckValue]);eventQueue[q]=null;break;}}}}}
return true;}else{return false;}};this.refireEvent=function(key){key=key.toLowerCase();var property=config[key];if(typeof property!='undefined'&&property.event&&typeof property.value!='undefined'){if(this.queueInProgress){this.queueProperty(key);}else{fireEvent(key,property.value);}}};this.applyConfig=function(userConfig,init){if(init){initialConfig=userConfig;}
for(var prop in userConfig){this.queueProperty(prop,userConfig[prop]);}};this.refresh=function(){for(var prop in config){this.refireEvent(prop);}};this.fireQueue=function(){this.queueInProgress=true;for(var i=0;i<eventQueue.length;i++){var queueItem=eventQueue[i];if(queueItem){var key=queueItem[0];var value=queueItem[1];var property=config[key];property.value=value;fireEvent(key,value);}}
this.queueInProgress=false;eventQueue=[];};this.subscribeToConfigEvent=function(key,handler,obj,override){key=key.toLowerCase();var property=config[key];if(typeof property!='undefined'&&property.event){if(!YAHOO.util.Config.alreadySubscribed(property.event,handler,obj)){property.event.subscribe(handler,obj,override);}
return true;}else{return false;}};this.unsubscribeFromConfigEvent=function(key,handler,obj){key=key.toLowerCase();var property=config[key];if(typeof property!='undefined'&&property.event){return property.event.unsubscribe(handler,obj);}else{return false;}};this.toString=function(){var output="Config";if(this.owner){output+=" ["+this.owner.toString()+"]";}
return output;};this.outputEventQueue=function(){var output="";for(var q=0;q<eventQueue.length;q++){var queueItem=eventQueue[q];if(queueItem){output+=queueItem[0]+"="+queueItem[1]+", ";}}
return output;};};YAHOO.util.Config.alreadySubscribed=function(evt,fn,obj){for(var e=0;e<evt.subscribers.length;e++){var subsc=evt.subscribers[e];if(subsc&&subsc.obj==obj&&subsc.fn==fn){return true;}}
return false;};YAHOO.widget.Module=function(el,userConfig){if(el){this.init(el,userConfig);}};YAHOO.widget.Module.IMG_ROOT="http://us.i1.yimg.com/us.yimg.com/i/";YAHOO.widget.Module.IMG_ROOT_SSL="https://a248.e.akamai.net/sec.yimg.com/i/";YAHOO.widget.Module.CSS_MODULE="module";YAHOO.widget.Module.CSS_HEADER="hd";YAHOO.widget.Module.CSS_BODY="bd";YAHOO.widget.Module.CSS_FOOTER="ft";YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL="javascript:false;";YAHOO.widget.Module.prototype={constructor:YAHOO.widget.Module,element:null,header:null,body:null,footer:null,id:null,imageRoot:YAHOO.widget.Module.IMG_ROOT,initEvents:function(){this.beforeInitEvent=new YAHOO.util.CustomEvent("beforeInit");this.initEvent=new YAHOO.util.CustomEvent("init");this.appendEvent=new YAHOO.util.CustomEvent("append");this.beforeRenderEvent=new YAHOO.util.CustomEvent("beforeRender");this.renderEvent=new YAHOO.util.CustomEvent("render");this.changeHeaderEvent=new YAHOO.util.CustomEvent("changeHeader");this.changeBodyEvent=new YAHOO.util.CustomEvent("changeBody");this.changeFooterEvent=new YAHOO.util.CustomEvent("changeFooter");this.changeContentEvent=new YAHOO.util.CustomEvent("changeContent");this.destroyEvent=new YAHOO.util.CustomEvent("destroy");this.beforeShowEvent=new YAHOO.util.CustomEvent("beforeShow");this.showEvent=new YAHOO.util.CustomEvent("show");this.beforeHideEvent=new YAHOO.util.CustomEvent("beforeHide");this.hideEvent=new YAHOO.util.CustomEvent("hide");},platform:function(){var ua=navigator.userAgent.toLowerCase();if(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1){return"windows";}else if(ua.indexOf("macintosh")!=-1){return"mac";}else{return false;}}(),browser:function(){var ua=navigator.userAgent.toLowerCase();if(ua.indexOf('opera')!=-1){return'opera';}else if(ua.indexOf('msie 7')!=-1){return'ie7';}else if(ua.indexOf('msie')!=-1){return'ie';}else if(ua.indexOf('safari')!=-1){return'safari';}else if(ua.indexOf('gecko')!=-1){return'gecko';}else{return false;}}(),isSecure:function(){if(window.location.href.toLowerCase().indexOf("https")===0){return true;}else{return false;}}(),initDefaultConfig:function(){this.cfg.addProperty("visible",{value:true,handler:this.configVisible,validator:this.cfg.checkBoolean});this.cfg.addProperty("effect",{suppressEvent:true,supercedes:["visible"]});this.cfg.addProperty("monitorresize",{value:true,handler:this.configMonitorResize});},init:function(el,userConfig){this.initEvents();this.beforeInitEvent.fire(YAHOO.widget.Module);this.cfg=new YAHOO.util.Config(this);if(this.isSecure){this.imageRoot=YAHOO.widget.Module.IMG_ROOT_SSL;}
if(typeof el=="string"){var elId=el;el=document.getElementById(el);if(!el){el=document.createElement("DIV");el.id=elId;}}
this.element=el;if(el.id){this.id=el.id;}
var childNodes=this.element.childNodes;if(childNodes){for(var i=0;i<childNodes.length;i++){var child=childNodes[i];switch(child.className){case YAHOO.widget.Module.CSS_HEADER:this.header=child;break;case YAHOO.widget.Module.CSS_BODY:this.body=child;break;case YAHOO.widget.Module.CSS_FOOTER:this.footer=child;break;}}}
this.initDefaultConfig();YAHOO.util.Dom.addClass(this.element,YAHOO.widget.Module.CSS_MODULE);if(userConfig){this.cfg.applyConfig(userConfig,true);}
if(!YAHOO.util.Config.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg)){this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);}
this.initEvent.fire(YAHOO.widget.Module);},initResizeMonitor:function(){if(this.browser!="opera"){var resizeMonitor=document.getElementById("_yuiResizeMonitor");if(!resizeMonitor){resizeMonitor=document.createElement("iframe");var bIE=(this.browser.indexOf("ie")===0);if(this.isSecure&&YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL&&bIE){resizeMonitor.src=YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL;}
resizeMonitor.id="_yuiResizeMonitor";resizeMonitor.style.visibility="hidden";document.body.appendChild(resizeMonitor);resizeMonitor.style.width="10em";resizeMonitor.style.height="10em";resizeMonitor.style.position="absolute";var nLeft=-1*resizeMonitor.offsetWidth,nTop=-1*resizeMonitor.offsetHeight;resizeMonitor.style.top=nTop+"px";resizeMonitor.style.left=nLeft+"px";resizeMonitor.style.borderStyle="none";resizeMonitor.style.borderWidth="0";YAHOO.util.Dom.setStyle(resizeMonitor,"opacity","0");resizeMonitor.style.visibility="visible";if(!bIE){var doc=resizeMonitor.contentWindow.document;doc.open();doc.close();}}
if(resizeMonitor&&resizeMonitor.contentWindow){this.resizeMonitor=resizeMonitor;YAHOO.util.Event.addListener(this.resizeMonitor.contentWindow,"resize",this.onDomResize,this,true);}}},onDomResize:function(e,obj){var nLeft=-1*this.resizeMonitor.offsetWidth,nTop=-1*this.resizeMonitor.offsetHeight;this.resizeMonitor.style.top=nTop+"px";this.resizeMonitor.style.left=nLeft+"px";},setHeader:function(headerContent){if(!this.header){this.header=document.createElement("DIV");this.header.className=YAHOO.widget.Module.CSS_HEADER;}
if(typeof headerContent=="string"){this.header.innerHTML=headerContent;}else{this.header.innerHTML="";this.header.appendChild(headerContent);}
this.changeHeaderEvent.fire(headerContent);this.changeContentEvent.fire();},appendToHeader:function(element){if(!this.header){this.header=document.createElement("DIV");this.header.className=YAHOO.widget.Module.CSS_HEADER;}
this.header.appendChild(element);this.changeHeaderEvent.fire(element);this.changeContentEvent.fire();},setBody:function(bodyContent){if(!this.body){this.body=document.createElement("DIV");this.body.className=YAHOO.widget.Module.CSS_BODY;}
if(typeof bodyContent=="string")
{this.body.innerHTML=bodyContent;}else{this.body.innerHTML="";this.body.appendChild(bodyContent);}
this.changeBodyEvent.fire(bodyContent);this.changeContentEvent.fire();},appendToBody:function(element){if(!this.body){this.body=document.createElement("DIV");this.body.className=YAHOO.widget.Module.CSS_BODY;}
this.body.appendChild(element);this.changeBodyEvent.fire(element);this.changeContentEvent.fire();},setFooter:function(footerContent){if(!this.footer){this.footer=document.createElement("DIV");this.footer.className=YAHOO.widget.Module.CSS_FOOTER;}
if(typeof footerContent=="string"){this.footer.innerHTML=footerContent;}else{this.footer.innerHTML="";this.footer.appendChild(footerContent);}
this.changeFooterEvent.fire(footerContent);this.changeContentEvent.fire();},appendToFooter:function(element){if(!this.footer){this.footer=document.createElement("DIV");this.footer.className=YAHOO.widget.Module.CSS_FOOTER;}
this.footer.appendChild(element);this.changeFooterEvent.fire(element);this.changeContentEvent.fire();},render:function(appendToNode,moduleElement){this.beforeRenderEvent.fire();if(!moduleElement){moduleElement=this.element;}
var me=this;var appendTo=function(element){if(typeof element=="string"){element=document.getElementById(element);}
if(element){element.appendChild(me.element);me.appendEvent.fire();}};if(appendToNode){appendTo(appendToNode);}else{if(!YAHOO.util.Dom.inDocument(this.element)){return false;}}
if(this.header&&!YAHOO.util.Dom.inDocument(this.header)){var firstChild=moduleElement.firstChild;if(firstChild){moduleElement.insertBefore(this.header,firstChild);}else{moduleElement.appendChild(this.header);}}
if(this.body&&!YAHOO.util.Dom.inDocument(this.body)){if(this.footer&&YAHOO.util.Dom.isAncestor(this.moduleElement,this.footer)){moduleElement.insertBefore(this.body,this.footer);}else{moduleElement.appendChild(this.body);}}
if(this.footer&&!YAHOO.util.Dom.inDocument(this.footer)){moduleElement.appendChild(this.footer);}
this.renderEvent.fire();return true;},destroy:function(){if(this.element){var parent=this.element.parentNode;}
if(parent){parent.removeChild(this.element);}
this.element=null;this.header=null;this.body=null;this.footer=null;this.destroyEvent.fire();},show:function(){this.cfg.setProperty("visible",true);},hide:function(){this.cfg.setProperty("visible",false);},configVisible:function(type,args,obj){var visible=args[0];if(visible){this.beforeShowEvent.fire();YAHOO.util.Dom.setStyle(this.element,"display","block");this.showEvent.fire();}else{this.beforeHideEvent.fire();YAHOO.util.Dom.setStyle(this.element,"display","none");this.hideEvent.fire();}},configMonitorResize:function(type,args,obj){var monitor=args[0];if(monitor){this.initResizeMonitor();}else{YAHOO.util.Event.removeListener(this.resizeMonitor,"resize",this.onDomResize);this.resizeMonitor=null;}}};YAHOO.widget.Module.prototype.toString=function(){return"Module "+this.id;};YAHOO.widget.Overlay=function(el,userConfig){YAHOO.widget.Overlay.superclass.constructor.call(this,el,userConfig);};YAHOO.extend(YAHOO.widget.Overlay,YAHOO.widget.Module);YAHOO.widget.Overlay.IFRAME_SRC="javascript:false;"
YAHOO.widget.Overlay.TOP_LEFT="tl";YAHOO.widget.Overlay.TOP_RIGHT="tr";YAHOO.widget.Overlay.BOTTOM_LEFT="bl";YAHOO.widget.Overlay.BOTTOM_RIGHT="br";YAHOO.widget.Overlay.CSS_OVERLAY="overlay";YAHOO.widget.Overlay.prototype.init=function(el,userConfig){YAHOO.widget.Overlay.superclass.init.call(this,el);this.beforeInitEvent.fire(YAHOO.widget.Overlay);YAHOO.util.Dom.addClass(this.element,YAHOO.widget.Overlay.CSS_OVERLAY);if(userConfig){this.cfg.applyConfig(userConfig,true);}
if(this.platform=="mac"&&this.browser=="gecko"){if(!YAHOO.util.Config.alreadySubscribed(this.showEvent,this.showMacGeckoScrollbars,this)){this.showEvent.subscribe(this.showMacGeckoScrollbars,this,true);}
if(!YAHOO.util.Config.alreadySubscribed(this.hideEvent,this.hideMacGeckoScrollbars,this)){this.hideEvent.subscribe(this.hideMacGeckoScrollbars,this,true);}}
this.initEvent.fire(YAHOO.widget.Overlay);};YAHOO.widget.Overlay.prototype.initEvents=function(){YAHOO.widget.Overlay.superclass.initEvents.call(this);this.beforeMoveEvent=new YAHOO.util.CustomEvent("beforeMove",this);this.moveEvent=new YAHOO.util.CustomEvent("move",this);};YAHOO.widget.Overlay.prototype.initDefaultConfig=function(){YAHOO.widget.Overlay.superclass.initDefaultConfig.call(this);this.cfg.addProperty("x",{handler:this.configX,validator:this.cfg.checkNumber,suppressEvent:true,supercedes:["iframe"]});this.cfg.addProperty("y",{handler:this.configY,validator:this.cfg.checkNumber,suppressEvent:true,supercedes:["iframe"]});this.cfg.addProperty("xy",{handler:this.configXY,suppressEvent:true,supercedes:["iframe"]});this.cfg.addProperty("context",{handler:this.configContext,suppressEvent:true,supercedes:["iframe"]});this.cfg.addProperty("fixedcenter",{value:false,handler:this.configFixedCenter,validator:this.cfg.checkBoolean,supercedes:["iframe","visible"]});this.cfg.addProperty("width",{handler:this.configWidth,suppressEvent:true,supercedes:["iframe"]});this.cfg.addProperty("height",{handler:this.configHeight,suppressEvent:true,supercedes:["iframe"]});this.cfg.addProperty("zIndex",{value:null,handler:this.configzIndex});this.cfg.addProperty("constraintoviewport",{value:false,handler:this.configConstrainToViewport,validator:this.cfg.checkBoolean,supercedes:["iframe","x","y","xy"]});this.cfg.addProperty("iframe",{value:(this.browser=="ie"?true:false),handler:this.configIframe,validator:this.cfg.checkBoolean,supercedes:["zIndex"]});};YAHOO.widget.Overlay.prototype.moveTo=function(x,y){this.cfg.setProperty("xy",[x,y]);};YAHOO.widget.Overlay.prototype.hideMacGeckoScrollbars=function(){YAHOO.util.Dom.removeClass(this.element,"show-scrollbars");YAHOO.util.Dom.addClass(this.element,"hide-scrollbars");};YAHOO.widget.Overlay.prototype.showMacGeckoScrollbars=function(){YAHOO.util.Dom.removeClass(this.element,"hide-scrollbars");YAHOO.util.Dom.addClass(this.element,"show-scrollbars");};YAHOO.widget.Overlay.prototype.configVisible=function(type,args,obj){var visible=args[0];var currentVis=YAHOO.util.Dom.getStyle(this.element,"visibility");if(currentVis=="inherit"){var e=this.element.parentNode;while(e.nodeType!=9&&e.nodeType!=11){currentVis=YAHOO.util.Dom.getStyle(e,"visibility");if(currentVis!="inherit"){break;}
e=e.parentNode;}
if(currentVis=="inherit"){currentVis="visible";}}
var effect=this.cfg.getProperty("effect");var effectInstances=[];if(effect){if(effect instanceof Array){for(var i=0;i<effect.length;i++){var eff=effect[i];effectInstances[effectInstances.length]=eff.effect(this,eff.duration);}}else{effectInstances[effectInstances.length]=effect.effect(this,effect.duration);}}
var isMacGecko=(this.platform=="mac"&&this.browser=="gecko");if(visible){if(isMacGecko){this.showMacGeckoScrollbars();}
if(effect){if(visible){if(currentVis!="visible"||currentVis===""){this.beforeShowEvent.fire();for(var j=0;j<effectInstances.length;j++){var ei=effectInstances[j];if(j===0&&!YAHOO.util.Config.alreadySubscribed(ei.animateInCompleteEvent,this.showEvent.fire,this.showEvent)){ei.animateInCompleteEvent.subscribe(this.showEvent.fire,this.showEvent,true);}
ei.animateIn();}}}}else{if(currentVis!="visible"||currentVis===""){this.beforeShowEvent.fire();YAHOO.util.Dom.setStyle(this.element,"visibility","visible");this.cfg.refireEvent("iframe");this.showEvent.fire();}}}else{if(isMacGecko){this.hideMacGeckoScrollbars();}
if(effect){if(currentVis=="visible"){this.beforeHideEvent.fire();for(var k=0;k<effectInstances.length;k++){var h=effectInstances[k];if(k===0&&!YAHOO.util.Config.alreadySubscribed(h.animateOutCompleteEvent,this.hideEvent.fire,this.hideEvent)){h.animateOutCompleteEvent.subscribe(this.hideEvent.fire,this.hideEvent,true);}
h.animateOut();}}else if(currentVis===""){YAHOO.util.Dom.setStyle(this.element,"visibility","hidden");}}else{if(currentVis=="visible"||currentVis===""){this.beforeHideEvent.fire();YAHOO.util.Dom.setStyle(this.element,"visibility","hidden");this.cfg.refireEvent("iframe");this.hideEvent.fire();}}}};YAHOO.widget.Overlay.prototype.doCenterOnDOMEvent=function(){if(this.cfg.getProperty("visible")){this.center();}};YAHOO.widget.Overlay.prototype.configFixedCenter=function(type,args,obj){var val=args[0];if(val){this.center();if(!YAHOO.util.Config.alreadySubscribed(this.beforeShowEvent,this.center,this)){this.beforeShowEvent.subscribe(this.center,this,true);}
if(!YAHOO.util.Config.alreadySubscribed(YAHOO.widget.Overlay.windowResizeEvent,this.doCenterOnDOMEvent,this)){YAHOO.widget.Overlay.windowResizeEvent.subscribe(this.doCenterOnDOMEvent,this,true);}
if(!YAHOO.util.Config.alreadySubscribed(YAHOO.widget.Overlay.windowScrollEvent,this.doCenterOnDOMEvent,this)){YAHOO.widget.Overlay.windowScrollEvent.subscribe(this.doCenterOnDOMEvent,this,true);}}else{YAHOO.widget.Overlay.windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent,this);YAHOO.widget.Overlay.windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent,this);}};YAHOO.widget.Overlay.prototype.configHeight=function(type,args,obj){var height=args[0];var el=this.element;YAHOO.util.Dom.setStyle(el,"height",height);this.cfg.refireEvent("iframe");};YAHOO.widget.Overlay.prototype.configWidth=function(type,args,obj){var width=args[0];var el=this.element;YAHOO.util.Dom.setStyle(el,"width",width);this.cfg.refireEvent("iframe");};YAHOO.widget.Overlay.prototype.configzIndex=function(type,args,obj){var zIndex=args[0];var el=this.element;if(!zIndex){zIndex=YAHOO.util.Dom.getStyle(el,"zIndex");if(!zIndex||isNaN(zIndex)){zIndex=0;}}
if(this.iframe){if(zIndex<=0){zIndex=1;}
YAHOO.util.Dom.setStyle(this.iframe,"zIndex",(zIndex-1));}
YAHOO.util.Dom.setStyle(el,"zIndex",zIndex);this.cfg.setProperty("zIndex",zIndex,true);};YAHOO.widget.Overlay.prototype.configXY=function(type,args,obj){var pos=args[0];var x=pos[0];var y=pos[1];this.cfg.setProperty("x",x);this.cfg.setProperty("y",y);this.beforeMoveEvent.fire([x,y]);x=this.cfg.getProperty("x");y=this.cfg.getProperty("y");this.cfg.refireEvent("iframe");this.moveEvent.fire([x,y]);};YAHOO.widget.Overlay.prototype.configX=function(type,args,obj){var x=args[0];var y=this.cfg.getProperty("y");this.cfg.setProperty("x",x,true);this.cfg.setProperty("y",y,true);this.beforeMoveEvent.fire([x,y]);x=this.cfg.getProperty("x");y=this.cfg.getProperty("y");YAHOO.util.Dom.setX(this.element,x,true);this.cfg.setProperty("xy",[x,y],true);this.cfg.refireEvent("iframe");this.moveEvent.fire([x,y]);};YAHOO.widget.Overlay.prototype.configY=function(type,args,obj){var x=this.cfg.getProperty("x");var y=args[0];this.cfg.setProperty("x",x,true);this.cfg.setProperty("y",y,true);this.beforeMoveEvent.fire([x,y]);x=this.cfg.getProperty("x");y=this.cfg.getProperty("y");YAHOO.util.Dom.setY(this.element,y,true);this.cfg.setProperty("xy",[x,y],true);this.cfg.refireEvent("iframe");this.moveEvent.fire([x,y]);};YAHOO.widget.Overlay.prototype.showIframe=function(){if(this.iframe){this.iframe.style.display="block";}};YAHOO.widget.Overlay.prototype.hideIframe=function(){if(this.iframe){this.iframe.style.display="none";}};YAHOO.widget.Overlay.prototype.configIframe=function(type,args,obj){var val=args[0];if(val){if(!YAHOO.util.Config.alreadySubscribed(this.showEvent,this.showIframe,this)){this.showEvent.subscribe(this.showIframe,this,true);}
if(!YAHOO.util.Config.alreadySubscribed(this.hideEvent,this.hideIframe,this)){this.hideEvent.subscribe(this.hideIframe,this,true);}
var x=this.cfg.getProperty("x");var y=this.cfg.getProperty("y");if(!x||!y){this.syncPosition();x=this.cfg.getProperty("x");y=this.cfg.getProperty("y");}
if(!isNaN(x)&&!isNaN(y)){if(!this.iframe){this.iframe=document.createElement("iframe");if(this.isSecure){this.iframe.src=this.imageRoot+YAHOO.widget.Overlay.IFRAME_SRC;}
var parent=this.element.parentNode;if(parent){parent.appendChild(this.iframe);}else{document.body.appendChild(this.iframe);}
YAHOO.util.Dom.setStyle(this.iframe,"position","absolute");YAHOO.util.Dom.setStyle(this.iframe,"border","none");YAHOO.util.Dom.setStyle(this.iframe,"margin","0");YAHOO.util.Dom.setStyle(this.iframe,"padding","0");YAHOO.util.Dom.setStyle(this.iframe,"opacity","0");if(this.cfg.getProperty("visible")){this.showIframe();}else{this.hideIframe();}}
var iframeDisplay=YAHOO.util.Dom.getStyle(this.iframe,"display");if(iframeDisplay=="none"){this.iframe.style.display="block";}
YAHOO.util.Dom.setXY(this.iframe,[x,y]);var width=this.element.clientWidth;var height=this.element.clientHeight;YAHOO.util.Dom.setStyle(this.iframe,"width",(width+2)+"px");YAHOO.util.Dom.setStyle(this.iframe,"height",(height+2)+"px");if(iframeDisplay=="none"){this.iframe.style.display="none";}}}else{if(this.iframe){this.iframe.style.display="none";}
this.showEvent.unsubscribe(this.showIframe,this);this.hideEvent.unsubscribe(this.hideIframe,this);}};YAHOO.widget.Overlay.prototype.configConstrainToViewport=function(type,args,obj){var val=args[0];if(val){if(!YAHOO.util.Config.alreadySubscribed(this.beforeMoveEvent,this.enforceConstraints,this)){this.beforeMoveEvent.subscribe(this.enforceConstraints,this,true);}}else{this.beforeMoveEvent.unsubscribe(this.enforceConstraints,this);}};YAHOO.widget.Overlay.prototype.configContext=function(type,args,obj){var contextArgs=args[0];if(contextArgs){var contextEl=contextArgs[0];var elementMagnetCorner=contextArgs[1];var contextMagnetCorner=contextArgs[2];if(contextEl){if(typeof contextEl=="string"){this.cfg.setProperty("context",[document.getElementById(contextEl),elementMagnetCorner,contextMagnetCorner],true);}
if(elementMagnetCorner&&contextMagnetCorner){this.align(elementMagnetCorner,contextMagnetCorner);}}}};YAHOO.widget.Overlay.prototype.align=function(elementAlign,contextAlign){var contextArgs=this.cfg.getProperty("context");if(contextArgs){var context=contextArgs[0];var element=this.element;var me=this;if(!elementAlign){elementAlign=contextArgs[1];}
if(!contextAlign){contextAlign=contextArgs[2];}
if(element&&context){var elementRegion=YAHOO.util.Dom.getRegion(element);var contextRegion=YAHOO.util.Dom.getRegion(context);var doAlign=function(v,h){switch(elementAlign){case YAHOO.widget.Overlay.TOP_LEFT:me.moveTo(h,v);break;case YAHOO.widget.Overlay.TOP_RIGHT:me.moveTo(h-element.offsetWidth,v);break;case YAHOO.widget.Overlay.BOTTOM_LEFT:me.moveTo(h,v-element.offsetHeight);break;case YAHOO.widget.Overlay.BOTTOM_RIGHT:me.moveTo(h-element.offsetWidth,v-element.offsetHeight);break;}};switch(contextAlign){case YAHOO.widget.Overlay.TOP_LEFT:doAlign(contextRegion.top,contextRegion.left);break;case YAHOO.widget.Overlay.TOP_RIGHT:doAlign(contextRegion.top,contextRegion.right);break;case YAHOO.widget.Overlay.BOTTOM_LEFT:doAlign(contextRegion.bottom,contextRegion.left);break;case YAHOO.widget.Overlay.BOTTOM_RIGHT:doAlign(contextRegion.bottom,contextRegion.right);break;}}}};YAHOO.widget.Overlay.prototype.enforceConstraints=function(type,args,obj){var pos=args[0];var x=pos[0];var y=pos[1];var offsetHeight=this.element.offsetHeight;var offsetWidth=this.element.offsetWidth;var viewPortWidth=YAHOO.util.Dom.getViewportWidth();var viewPortHeight=YAHOO.util.Dom.getViewportHeight();var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;var topConstraint=scrollY+10;var leftConstraint=scrollX+10;var bottomConstraint=scrollY+viewPortHeight-offsetHeight-10;var rightConstraint=scrollX+viewPortWidth-offsetWidth-10;if(x<leftConstraint){x=leftConstraint;}else if(x>rightConstraint){x=rightConstraint;}
if(y<topConstraint){y=topConstraint;}else if(y>bottomConstraint){y=bottomConstraint;}
this.cfg.setProperty("x",x,true);this.cfg.setProperty("y",y,true);this.cfg.setProperty("xy",[x,y],true);};YAHOO.widget.Overlay.prototype.center=function(){var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;var viewPortWidth=YAHOO.util.Dom.getClientWidth();var viewPortHeight=YAHOO.util.Dom.getClientHeight();var elementWidth=this.element.offsetWidth;var elementHeight=this.element.offsetHeight;var x=(viewPortWidth/2)-(elementWidth/2)+scrollX;var y=(viewPortHeight/2)-(elementHeight/2)+scrollY;this.cfg.setProperty("xy",[parseInt(x,10),parseInt(y,10)]);this.cfg.refireEvent("iframe");};YAHOO.widget.Overlay.prototype.syncPosition=function(){var pos=YAHOO.util.Dom.getXY(this.element);this.cfg.setProperty("x",pos[0],true);this.cfg.setProperty("y",pos[1],true);this.cfg.setProperty("xy",pos,true);};YAHOO.widget.Overlay.prototype.onDomResize=function(e,obj){YAHOO.widget.Overlay.superclass.onDomResize.call(this,e,obj);var me=this;setTimeout(function(){me.syncPosition();me.cfg.refireEvent("iframe");me.cfg.refireEvent("context");},0);};YAHOO.widget.Overlay.prototype.destroy=function(){if(this.iframe){this.iframe.parentNode.removeChild(this.iframe);}
this.iframe=null;YAHOO.widget.Overlay.superclass.destroy.call(this);};YAHOO.widget.Overlay.prototype.toString=function(){return"Overlay "+this.id;};YAHOO.widget.Overlay.windowScrollEvent=new YAHOO.util.CustomEvent("windowScroll");YAHOO.widget.Overlay.windowResizeEvent=new YAHOO.util.CustomEvent("windowResize");YAHOO.widget.Overlay.windowScrollHandler=function(e){if(YAHOO.widget.Module.prototype.browser=="ie"||YAHOO.widget.Module.prototype.browser=="ie7"){if(!window.scrollEnd){window.scrollEnd=-1;}
clearTimeout(window.scrollEnd);window.scrollEnd=setTimeout(function(){YAHOO.widget.Overlay.windowScrollEvent.fire();},1);}else{YAHOO.widget.Overlay.windowScrollEvent.fire();}};YAHOO.widget.Overlay.windowResizeHandler=function(e){if(YAHOO.widget.Module.prototype.browser=="ie"||YAHOO.widget.Module.prototype.browser=="ie7"){if(!window.resizeEnd){window.resizeEnd=-1;}
clearTimeout(window.resizeEnd);window.resizeEnd=setTimeout(function(){YAHOO.widget.Overlay.windowResizeEvent.fire();},100);}else{YAHOO.widget.Overlay.windowResizeEvent.fire();}};YAHOO.widget.Overlay._initialized=null;if(YAHOO.widget.Overlay._initialized===null){YAHOO.util.Event.addListener(window,"scroll",YAHOO.widget.Overlay.windowScrollHandler);YAHOO.util.Event.addListener(window,"resize",YAHOO.widget.Overlay.windowResizeHandler);YAHOO.widget.Overlay._initialized=true;}
YAHOO.widget.OverlayManager=function(userConfig){this.init(userConfig);};YAHOO.widget.OverlayManager.CSS_FOCUSED="focused";YAHOO.widget.OverlayManager.prototype={constructor:YAHOO.widget.OverlayManager,overlays:null,initDefaultConfig:function(){this.cfg.addProperty("overlays",{suppressEvent:true});this.cfg.addProperty("focusevent",{value:"mousedown"});},init:function(userConfig){this.cfg=new YAHOO.util.Config(this);this.initDefaultConfig();if(userConfig){this.cfg.applyConfig(userConfig,true);}
this.cfg.fireQueue();var activeOverlay=null;this.getActive=function(){return activeOverlay;};this.focus=function(overlay){var o=this.find(overlay);if(o){this.blurAll();activeOverlay=o;YAHOO.util.Dom.addClass(activeOverlay.element,YAHOO.widget.OverlayManager.CSS_FOCUSED);this.overlays.sort(this.compareZIndexDesc);var topZIndex=YAHOO.util.Dom.getStyle(this.overlays[0].element,"zIndex");if(!isNaN(topZIndex)&&this.overlays[0]!=overlay){activeOverlay.cfg.setProperty("zIndex",(parseInt(topZIndex,10)+2));}
this.overlays.sort(this.compareZIndexDesc);}};this.remove=function(overlay){var o=this.find(overlay);if(o){var originalZ=YAHOO.util.Dom.getStyle(o.element,"zIndex");o.cfg.setProperty("zIndex",-1000,true);this.overlays.sort(this.compareZIndexDesc);this.overlays=this.overlays.slice(0,this.overlays.length-1);o.cfg.setProperty("zIndex",originalZ,true);o.cfg.setProperty("manager",null);o.focusEvent=null;o.blurEvent=null;o.focus=null;o.blur=null;}};this.blurAll=function(){activeOverlay=null;for(var o=0;o<this.overlays.length;o++){YAHOO.util.Dom.removeClass(this.overlays[o].element,YAHOO.widget.OverlayManager.CSS_FOCUSED);}};var overlays=this.cfg.getProperty("overlays");if(!this.overlays){this.overlays=[];}
if(overlays){this.register(overlays);this.overlays.sort(this.compareZIndexDesc);}},register:function(overlay){if(overlay instanceof YAHOO.widget.Overlay){overlay.cfg.addProperty("manager",{value:this});overlay.focusEvent=new YAHOO.util.CustomEvent("focus");overlay.blurEvent=new YAHOO.util.CustomEvent("blur");var mgr=this;overlay.focus=function(){mgr.focus(this);this.focusEvent.fire();};overlay.blur=function(){mgr.blurAll();this.blurEvent.fire();};var focusOnDomEvent=function(e,obj){overlay.focus();};var focusevent=this.cfg.getProperty("focusevent");YAHOO.util.Event.addListener(overlay.element,focusevent,focusOnDomEvent,this,true);var zIndex=YAHOO.util.Dom.getStyle(overlay.element,"zIndex");if(!isNaN(zIndex)){overlay.cfg.setProperty("zIndex",parseInt(zIndex,10));}else{overlay.cfg.setProperty("zIndex",0);}
this.overlays.push(overlay);return true;}else if(overlay instanceof Array){var regcount=0;for(var i=0;i<overlay.length;i++){if(this.register(overlay[i])){regcount++;}}
if(regcount>0){return true;}}else{return false;}},find:function(overlay){if(overlay instanceof YAHOO.widget.Overlay){for(var o=0;o<this.overlays.length;o++){if(this.overlays[o]==overlay){return this.overlays[o];}}}else if(typeof overlay=="string"){for(var p=0;p<this.overlays.length;p++){if(this.overlays[p].id==overlay){return this.overlays[p];}}}
return null;},compareZIndexDesc:function(o1,o2){var zIndex1=o1.cfg.getProperty("zIndex");var zIndex2=o2.cfg.getProperty("zIndex");if(zIndex1>zIndex2){return-1;}else if(zIndex1<zIndex2){return 1;}else{return 0;}},showAll:function(){for(var o=0;o<this.overlays.length;o++){this.overlays[o].show();}},hideAll:function(){for(var o=0;o<this.overlays.length;o++){this.overlays[o].hide();}},toString:function(){return"OverlayManager";}};YAHOO.util.KeyListener=function(attachTo,keyData,handler,event){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.widget.Tooltip=function(el,userConfig){YAHOO.widget.Tooltip.superclass.constructor.call(this,el,userConfig);};YAHOO.extend(YAHOO.widget.Tooltip,YAHOO.widget.Overlay);YAHOO.widget.Tooltip.CSS_TOOLTIP="tt";YAHOO.widget.Tooltip.prototype.init=function(el,userConfig){if(document.readyState&&document.readyState!="complete"){var deferredInit=function(){this.init(el,userConfig);};YAHOO.util.Event.addListener(window,"load",deferredInit,this,true);}else{YAHOO.widget.Tooltip.superclass.init.call(this,el);this.beforeInitEvent.fire(YAHOO.widget.Tooltip);YAHOO.util.Dom.addClass(this.element,YAHOO.widget.Tooltip.CSS_TOOLTIP);if(userConfig){this.cfg.applyConfig(userConfig,true);}
this.cfg.queueProperty("visible",false);this.cfg.queueProperty("constraintoviewport",true);this.setBody("");this.render(this.cfg.getProperty("container"));this.initEvent.fire(YAHOO.widget.Tooltip);}};YAHOO.widget.Tooltip.prototype.initDefaultConfig=function(){YAHOO.widget.Tooltip.superclass.initDefaultConfig.call(this);this.cfg.addProperty("preventoverlap",{value:true,validator:this.cfg.checkBoolean,supercedes:["x","y","xy"]});this.cfg.addProperty("showdelay",{value:200,handler:this.configShowDelay,validator:this.cfg.checkNumber});this.cfg.addProperty("autodismissdelay",{value:5000,handler:this.configAutoDismissDelay,validator:this.cfg.checkNumber});this.cfg.addProperty("hidedelay",{value:250,handler:this.configHideDelay,validator:this.cfg.checkNumber});this.cfg.addProperty("text",{handler:this.configText,suppressEvent:true});this.cfg.addProperty("container",{value:document.body,handler:this.configContainer});};YAHOO.widget.Tooltip.prototype.configText=function(type,args,obj){var text=args[0];if(text){this.setBody(text);}};YAHOO.widget.Tooltip.prototype.configContainer=function(type,args,obj){var container=args[0];if(typeof container=='string'){this.cfg.setProperty("container",document.getElementById(container),true);}};YAHOO.widget.Tooltip.prototype.configContext=function(type,args,obj){var context=args[0];if(context){if(!(context instanceof Array)){if(typeof context=="string"){this.cfg.setProperty("context",[document.getElementById(context)],true);}else{this.cfg.setProperty("context",[context],true);}
context=this.cfg.getProperty("context");}
if(this._context){for(var c=0;c<this._context.length;++c){var el=this._context[c];YAHOO.util.Event.removeListener(el,"mouseover",this.onContextMouseOver);YAHOO.util.Event.removeListener(el,"mousemove",this.onContextMouseMove);YAHOO.util.Event.removeListener(el,"mouseout",this.onContextMouseOut);}}
this._context=context;for(var d=0;d<this._context.length;++d){var el2=this._context[d];YAHOO.util.Event.addListener(el2,"mouseover",this.onContextMouseOver,this);YAHOO.util.Event.addListener(el2,"mousemove",this.onContextMouseMove,this);YAHOO.util.Event.addListener(el2,"mouseout",this.onContextMouseOut,this);}}};YAHOO.widget.Tooltip.prototype.onContextMouseMove=function(e,obj){obj.pageX=YAHOO.util.Event.getPageX(e);obj.pageY=YAHOO.util.Event.getPageY(e);};YAHOO.widget.Tooltip.prototype.onContextMouseOver=function(e,obj){if(obj.hideProcId){clearTimeout(obj.hideProcId);obj.hideProcId=null;}
var context=this;YAHOO.util.Event.addListener(context,"mousemove",obj.onContextMouseMove,obj);if(context.title){obj._tempTitle=context.title;context.title="";}
obj.showProcId=obj.doShow(e,context);};YAHOO.widget.Tooltip.prototype.onContextMouseOut=function(e,obj){var el=this;if(obj._tempTitle){el.title=obj._tempTitle;obj._tempTitle=null;}
if(obj.showProcId){clearTimeout(obj.showProcId);obj.showProcId=null;}
if(obj.hideProcId){clearTimeout(obj.hideProcId);obj.hideProcId=null;}
obj.hideProcId=setTimeout(function(){obj.hide();},obj.cfg.getProperty("hidedelay"));};YAHOO.widget.Tooltip.prototype.doShow=function(e,context){var yOffset=25;if(this.browser=="opera"&&context.tagName=="A"){yOffset+=12;}
var me=this;return setTimeout(function(){if(me._tempTitle){me.setBody(me._tempTitle);}else{me.cfg.refireEvent("text");}
me.moveTo(me.pageX,me.pageY+yOffset);if(me.cfg.getProperty("preventoverlap")){me.preventOverlap(me.pageX,me.pageY);}
YAHOO.util.Event.removeListener(context,"mousemove",me.onContextMouseMove);me.show();me.hideProcId=me.doHide();},this.cfg.getProperty("showdelay"));};YAHOO.widget.Tooltip.prototype.doHide=function(){var me=this;return setTimeout(function(){me.hide();},this.cfg.getProperty("autodismissdelay"));};YAHOO.widget.Tooltip.prototype.preventOverlap=function(pageX,pageY){var height=this.element.offsetHeight;var elementRegion=YAHOO.util.Dom.getRegion(this.element);elementRegion.top-=5;elementRegion.left-=5;elementRegion.right+=5;elementRegion.bottom+=5;var mousePoint=new YAHOO.util.Point(pageX,pageY);if(elementRegion.contains(mousePoint)){this.cfg.setProperty("y",(pageY-height-5));}};YAHOO.widget.Tooltip.prototype.toString=function(){return"Tooltip "+this.id;};YAHOO.widget.Panel=function(el,userConfig){YAHOO.widget.Panel.superclass.constructor.call(this,el,userConfig);};YAHOO.extend(YAHOO.widget.Panel,YAHOO.widget.Overlay);YAHOO.widget.Panel.CSS_PANEL="panel";YAHOO.widget.Panel.CSS_PANEL_CONTAINER="panel-container";YAHOO.widget.Panel.prototype.init=function(el,userConfig){YAHOO.widget.Panel.superclass.init.call(this,el);this.beforeInitEvent.fire(YAHOO.widget.Panel);YAHOO.util.Dom.addClass(this.element,YAHOO.widget.Panel.CSS_PANEL);this.buildWrapper();if(userConfig){this.cfg.applyConfig(userConfig,true);}
this.beforeRenderEvent.subscribe(function(){var draggable=this.cfg.getProperty("draggable");if(draggable){if(!this.header){this.setHeader("&nbsp;");}}},this,true);var me=this;this.showMaskEvent.subscribe(function(){var checkFocusable=function(el){if(el.tagName=="A"||el.tagName=="BUTTON"||el.tagName=="SELECT"||el.tagName=="INPUT"||el.tagName=="TEXTAREA"||el.tagName=="FORM"){if(!YAHOO.util.Dom.isAncestor(me.element,el)){YAHOO.util.Event.addListener(el,"focus",el.blur);return true;}}else{return false;}};this.focusableElements=YAHOO.util.Dom.getElementsBy(checkFocusable);},this,true);this.hideMaskEvent.subscribe(function(){for(var i=0;i<this.focusableElements.length;i++){var el2=this.focusableElements[i];YAHOO.util.Event.removeListener(el2,"focus",el2.blur);}},this,true);this.beforeShowEvent.subscribe(function(){this.cfg.refireEvent("underlay");},this,true);this.initEvent.fire(YAHOO.widget.Panel);};YAHOO.widget.Panel.prototype.initEvents=function(){YAHOO.widget.Panel.superclass.initEvents.call(this);this.showMaskEvent=new YAHOO.util.CustomEvent("showMask");this.hideMaskEvent=new YAHOO.util.CustomEvent("hideMask");this.dragEvent=new YAHOO.util.CustomEvent("drag");};YAHOO.widget.Panel.prototype.initDefaultConfig=function(){YAHOO.widget.Panel.superclass.initDefaultConfig.call(this);this.cfg.addProperty("close",{value:true,handler:this.configClose,validator:this.cfg.checkBoolean,supercedes:["visible"]});this.cfg.addProperty("draggable",{value:true,handler:this.configDraggable,validator:this.cfg.checkBoolean,supercedes:["visible"]});this.cfg.addProperty("underlay",{value:"shadow",handler:this.configUnderlay,supercedes:["visible"]});this.cfg.addProperty("modal",{value:false,handler:this.configModal,validator:this.cfg.checkBoolean,supercedes:["visible"]});this.cfg.addProperty("keylisteners",{handler:this.configKeyListeners,suppressEvent:true,supercedes:["visible"]});};YAHOO.widget.Panel.prototype.configClose=function(type,args,obj){var val=args[0];var doHide=function(e,obj){obj.hide();};if(val){if(!this.close){this.close=document.createElement("DIV");YAHOO.util.Dom.addClass(this.close,"close");if(this.isSecure){YAHOO.util.Dom.addClass(this.close,"secure");}else{YAHOO.util.Dom.addClass(this.close,"nonsecure");}
this.close.innerHTML="&nbsp;";this.innerElement.appendChild(this.close);YAHOO.util.Event.addListener(this.close,"click",doHide,this);}else{this.close.style.display="block";}}else{if(this.close){this.close.style.display="none";}}};YAHOO.widget.Panel.prototype.configDraggable=function(type,args,obj){var val=args[0];if(val){if(this.header){YAHOO.util.Dom.setStyle(this.header,"cursor","move");this.registerDragDrop();}}else{if(this.dd){this.dd.unreg();}
if(this.header){YAHOO.util.Dom.setStyle(this.header,"cursor","auto");}}};YAHOO.widget.Panel.prototype.configUnderlay=function(type,args,obj){var val=args[0];switch(val.toLowerCase()){case"shadow":YAHOO.util.Dom.removeClass(this.element,"matte");YAHOO.util.Dom.addClass(this.element,"shadow");if(!this.underlay){this.underlay=document.createElement("DIV");this.underlay.className="underlay";this.underlay.innerHTML="&nbsp;";this.element.appendChild(this.underlay);}
this.sizeUnderlay();break;case"matte":YAHOO.util.Dom.removeClass(this.element,"shadow");YAHOO.util.Dom.addClass(this.element,"matte");break;default:YAHOO.util.Dom.removeClass(this.element,"shadow");YAHOO.util.Dom.removeClass(this.element,"matte");break;}};YAHOO.widget.Panel.prototype.configModal=function(type,args,obj){var modal=args[0];if(modal){this.buildMask();if(!YAHOO.util.Config.alreadySubscribed(this.beforeShowEvent,this.showMask,this)){this.beforeShowEvent.subscribe(this.showMask,this,true);}
if(!YAHOO.util.Config.alreadySubscribed(this.hideEvent,this.hideMask,this)){this.hideEvent.subscribe(this.hideMask,this,true);}
if(!YAHOO.util.Config.alreadySubscribed(YAHOO.widget.Overlay.windowResizeEvent,this.sizeMask,this)){YAHOO.widget.Overlay.windowResizeEvent.subscribe(this.sizeMask,this,true);}
if(!YAHOO.util.Config.alreadySubscribed(this.destroyEvent,this.removeMask,this)){this.destroyEvent.subscribe(this.removeMask,this,true);}
this.cfg.refireEvent("zIndex");}else{this.beforeShowEvent.unsubscribe(this.showMask,this);this.hideEvent.unsubscribe(this.hideMask,this);YAHOO.widget.Overlay.windowResizeEvent.unsubscribe(this.sizeMask,this);this.destroyEvent.unsubscribe(this.removeMask,this);}};YAHOO.widget.Panel.prototype.removeMask=function(){if(this.mask){if(this.mask.parentNode){this.mask.parentNode.removeChild(this.mask);}
this.mask=null;}};YAHOO.widget.Panel.prototype.configKeyListeners=function(type,args,obj){var listeners=args[0];if(listeners){if(listeners instanceof Array){for(var i=0;i<listeners.length;i++){var listener=listeners[i];if(!YAHOO.util.Config.alreadySubscribed(this.showEvent,listener.enable,listener)){this.showEvent.subscribe(listener.enable,listener,true);}
if(!YAHOO.util.Config.alreadySubscribed(this.hideEvent,listener.disable,listener)){this.hideEvent.subscribe(listener.disable,listener,true);this.destroyEvent.subscribe(listener.disable,listener,true);}}}else{if(!YAHOO.util.Config.alreadySubscribed(this.showEvent,listeners.enable,listeners)){this.showEvent.subscribe(listeners.enable,listeners,true);}
if(!YAHOO.util.Config.alreadySubscribed(this.hideEvent,listeners.disable,listeners)){this.hideEvent.subscribe(listeners.disable,listeners,true);this.destroyEvent.subscribe(listeners.disable,listeners,true);}}}};YAHOO.widget.Panel.prototype.configHeight=function(type,args,obj){var height=args[0];var el=this.innerElement;YAHOO.util.Dom.setStyle(el,"height",height);this.cfg.refireEvent("underlay");this.cfg.refireEvent("iframe");};YAHOO.widget.Panel.prototype.configWidth=function(type,args,obj){var width=args[0];var el=this.innerElement;YAHOO.util.Dom.setStyle(el,"width",width);this.cfg.refireEvent("underlay");this.cfg.refireEvent("iframe");};YAHOO.widget.Panel.prototype.configzIndex=function(type,args,obj){YAHOO.widget.Panel.superclass.configzIndex.call(this,type,args,obj);var maskZ=0;var currentZ=YAHOO.util.Dom.getStyle(this.element,"zIndex");if(this.mask){if(!currentZ||isNaN(currentZ)){currentZ=0;}
if(currentZ===0){this.cfg.setProperty("zIndex",1);}else{maskZ=currentZ-1;YAHOO.util.Dom.setStyle(this.mask,"zIndex",maskZ);}}};YAHOO.widget.Panel.prototype.buildWrapper=function(){var elementParent=this.element.parentNode;var originalElement=this.element;var wrapper=document.createElement("DIV");wrapper.className=YAHOO.widget.Panel.CSS_PANEL_CONTAINER;wrapper.id=originalElement.id+"_c";if(elementParent){elementParent.insertBefore(wrapper,originalElement);}
wrapper.appendChild(originalElement);this.element=wrapper;this.innerElement=originalElement;YAHOO.util.Dom.setStyle(this.innerElement,"visibility","inherit");};YAHOO.widget.Panel.prototype.sizeUnderlay=function(){if(this.underlay&&this.browser!="gecko"&&this.browser!="safari"){this.underlay.style.width=this.innerElement.offsetWidth+"px";this.underlay.style.height=this.innerElement.offsetHeight+"px";}};YAHOO.widget.Panel.prototype.onDomResize=function(e,obj){YAHOO.widget.Panel.superclass.onDomResize.call(this,e,obj);var me=this;setTimeout(function(){me.sizeUnderlay();},0);};YAHOO.widget.Panel.prototype.registerDragDrop=function(){if(this.header){this.dd=new YAHOO.util.DD(this.element.id,this.id);if(!this.header.id){this.header.id=this.id+"_h";}
var me=this;this.dd.startDrag=function(){if(me.browser=="ie"){YAHOO.util.Dom.addClass(me.element,"drag");}
if(me.cfg.getProperty("constraintoviewport")){var offsetHeight=me.element.offsetHeight;var offsetWidth=me.element.offsetWidth;var viewPortWidth=YAHOO.util.Dom.getViewportWidth();var viewPortHeight=YAHOO.util.Dom.getViewportHeight();var scrollX=window.scrollX||document.documentElement.scrollLeft;var scrollY=window.scrollY||document.documentElement.scrollTop;var topConstraint=scrollY+10;var leftConstraint=scrollX+10;var bottomConstraint=scrollY+viewPortHeight-offsetHeight-10;var rightConstraint=scrollX+viewPortWidth-offsetWidth-10;this.minX=leftConstraint;this.maxX=rightConstraint;this.constrainX=true;this.minY=topConstraint;this.maxY=bottomConstraint;this.constrainY=true;}else{this.constrainX=false;this.constrainY=false;}
me.dragEvent.fire("startDrag",arguments);};this.dd.onDrag=function(){me.syncPosition();me.cfg.refireEvent("iframe");if(this.platform=="mac"&&this.browser=="gecko"){this.showMacGeckoScrollbars();}
me.dragEvent.fire("onDrag",arguments);};this.dd.endDrag=function(){if(me.browser=="ie"){YAHOO.util.Dom.removeClass(me.element,"drag");}
me.dragEvent.fire("endDrag",arguments);};this.dd.setHandleElId(this.header.id);this.dd.addInvalidHandleType("INPUT");this.dd.addInvalidHandleType("SELECT");this.dd.addInvalidHandleType("TEXTAREA");}};YAHOO.widget.Panel.prototype.buildMask=function(){if(!this.mask){this.mask=document.createElement("DIV");this.mask.id=this.id+"_mask";this.mask.className="mask";this.mask.innerHTML="&nbsp;";var maskClick=function(e,obj){YAHOO.util.Event.stopEvent(e);};var firstChild=document.body.firstChild;if(firstChild){document.body.insertBefore(this.mask,document.body.firstChild);}else{document.body.appendChild(this.mask);}}};YAHOO.widget.Panel.prototype.hideMask=function(){if(this.cfg.getProperty("modal")&&this.mask){this.mask.style.display="none";this.hideMaskEvent.fire();YAHOO.util.Dom.removeClass(document.body,"masked");}};YAHOO.widget.Panel.prototype.showMask=function(){if(this.cfg.getProperty("modal")&&this.mask){YAHOO.util.Dom.addClass(document.body,"masked");this.sizeMask();this.mask.style.display="block";this.showMaskEvent.fire();}};YAHOO.widget.Panel.prototype.sizeMask=function(){if(this.mask){this.mask.style.height=YAHOO.util.Dom.getDocumentHeight()+"px";this.mask.style.width=YAHOO.util.Dom.getDocumentWidth()+"px";}};YAHOO.widget.Panel.prototype.render=function(appendToNode){return YAHOO.widget.Panel.superclass.render.call(this,appendToNode,this.innerElement);};YAHOO.widget.Panel.prototype.toString=function(){return"Panel "+this.id;};YAHOO.widget.Dialog=function(el,userConfig){YAHOO.widget.Dialog.superclass.constructor.call(this,el,userConfig);};YAHOO.extend(YAHOO.widget.Dialog,YAHOO.widget.Panel);YAHOO.widget.Dialog.CSS_DIALOG="dialog";YAHOO.widget.Dialog.prototype.initDefaultConfig=function(){YAHOO.widget.Dialog.superclass.initDefaultConfig.call(this);this.callback={success:null,failure:null,argument:null};this.cfg.addProperty("postmethod",{value:"async",validator:function(val){if(val!="form"&&val!="async"&&val!="none"&&val!="manual"){return false;}else{return true;}}});this.cfg.addProperty("buttons",{value:"none",handler:this.configButtons});};YAHOO.widget.Dialog.prototype.initEvents=function(){YAHOO.widget.Dialog.superclass.initEvents.call(this);this.beforeSubmitEvent=new YAHOO.util.CustomEvent("beforeSubmit");this.submitEvent=new YAHOO.util.CustomEvent("submit");this.manualSubmitEvent=new YAHOO.util.CustomEvent("manualSubmit");this.asyncSubmitEvent=new YAHOO.util.CustomEvent("asyncSubmit");this.formSubmitEvent=new YAHOO.util.CustomEvent("formSubmit");this.cancelEvent=new YAHOO.util.CustomEvent("cancel");};YAHOO.widget.Dialog.prototype.init=function(el,userConfig){YAHOO.widget.Dialog.superclass.init.call(this,el);this.beforeInitEvent.fire(YAHOO.widget.Dialog);YAHOO.util.Dom.addClass(this.element,YAHOO.widget.Dialog.CSS_DIALOG);this.cfg.setProperty("visible",false);if(userConfig){this.cfg.applyConfig(userConfig,true);}
this.renderEvent.subscribe(this.registerForm,this,true);this.showEvent.subscribe(this.focusFirst,this,true);this.beforeHideEvent.subscribe(this.blurButtons,this,true);this.beforeRenderEvent.subscribe(function(){var buttonCfg=this.cfg.getProperty("buttons");if(buttonCfg&&buttonCfg!="none"){if(!this.footer){this.setFooter("");}}},this,true);this.initEvent.fire(YAHOO.widget.Dialog);};YAHOO.widget.Dialog.prototype.doSubmit=function(){var pm=this.cfg.getProperty("postmethod");switch(pm){case"async":var method=this.form.getAttribute("method")||'POST';method=method.toUpperCase();YAHOO.util.Connect.setForm(this.form);var cObj=YAHOO.util.Connect.asyncRequest(method,this.form.getAttribute("action"),this.callback);this.asyncSubmitEvent.fire();break;case"form":this.form.submit();this.formSubmitEvent.fire();break;case"none":case"manual":this.manualSubmitEvent.fire();break;}};YAHOO.widget.Dialog.prototype.registerForm=function(){var form=this.element.getElementsByTagName("FORM")[0];if(!form){var formHTML="<form name=\"frm_"+this.id+"\" action=\"\"></form>";this.body.innerHTML+=formHTML;form=this.element.getElementsByTagName("FORM")[0];}
this.firstFormElement=function(){for(var f=0;f<form.elements.length;f++){var el=form.elements[f];if(el.focus){if(el.type&&el.type!="hidden"){return el;}}}
return null;}();this.lastFormElement=function(){for(var f=form.elements.length-1;f>=0;f--){var el=form.elements[f];if(el.focus){if(el.type&&el.type!="hidden"){return el;}}}
return null;}();this.form=form;if(this.cfg.getProperty("modal")&&this.form){var me=this;var firstElement=this.firstFormElement||this.firstButton;if(firstElement){this.preventBackTab=new YAHOO.util.KeyListener(firstElement,{shift:true,keys:9},{fn:me.focusLast,scope:me,correctScope:true});this.showEvent.subscribe(this.preventBackTab.enable,this.preventBackTab,true);this.hideEvent.subscribe(this.preventBackTab.disable,this.preventBackTab,true);}
var lastElement=this.lastButton||this.lastFormElement;if(lastElement){this.preventTabOut=new YAHOO.util.KeyListener(lastElement,{shift:false,keys:9},{fn:me.focusFirst,scope:me,correctScope:true});this.showEvent.subscribe(this.preventTabOut.enable,this.preventTabOut,true);this.hideEvent.subscribe(this.preventTabOut.disable,this.preventTabOut,true);}}};YAHOO.widget.Dialog.prototype.configButtons=function(type,args,obj){var buttons=args[0];if(buttons!="none"){this.buttonSpan=null;this.buttonSpan=document.createElement("SPAN");this.buttonSpan.className="button-group";for(var b=0;b<buttons.length;b++){var button=buttons[b];var htmlButton=document.createElement("BUTTON");htmlButton.setAttribute("type","button");if(button.isDefault){htmlButton.className="default";this.defaultHtmlButton=htmlButton;}
htmlButton.appendChild(document.createTextNode(button.text));YAHOO.util.Event.addListener(htmlButton,"click",button.handler,this,true);this.buttonSpan.appendChild(htmlButton);button.htmlButton=htmlButton;if(b===0){this.firstButton=button.htmlButton;}
if(b==(buttons.length-1)){this.lastButton=button.htmlButton;}}
this.setFooter(this.buttonSpan);this.cfg.refireEvent("iframe");this.cfg.refireEvent("underlay");}else{if(this.buttonSpan){if(this.buttonSpan.parentNode){this.buttonSpan.parentNode.removeChild(this.buttonSpan);}
this.buttonSpan=null;this.firstButton=null;this.lastButton=null;this.defaultHtmlButton=null;}}};YAHOO.widget.Dialog.prototype.focusFirst=function(type,args,obj){if(args){var e=args[1];if(e){YAHOO.util.Event.stopEvent(e);}}
if(this.firstFormElement){this.firstFormElement.focus();}else{this.focusDefaultButton();}};YAHOO.widget.Dialog.prototype.focusLast=function(type,args,obj){if(args){var e=args[1];if(e){YAHOO.util.Event.stopEvent(e);}}
var buttons=this.cfg.getProperty("buttons");if(buttons&&buttons instanceof Array){this.focusLastButton();}else{if(this.lastFormElement){this.lastFormElement.focus();}}};YAHOO.widget.Dialog.prototype.focusDefaultButton=function(){if(this.defaultHtmlButton){this.defaultHtmlButton.focus();}};YAHOO.widget.Dialog.prototype.blurButtons=function(){var buttons=this.cfg.getProperty("buttons");if(buttons&&buttons instanceof Array){var html=buttons[0].htmlButton;if(html){html.blur();}}};YAHOO.widget.Dialog.prototype.focusFirstButton=function(){var buttons=this.cfg.getProperty("buttons");if(buttons&&buttons instanceof Array){var html=buttons[0].htmlButton;if(html){html.focus();}}};YAHOO.widget.Dialog.prototype.focusLastButton=function(){var buttons=this.cfg.getProperty("buttons");if(buttons&&buttons instanceof Array){var html=buttons[buttons.length-1].htmlButton;if(html){html.focus();}}};YAHOO.widget.Dialog.prototype.validate=function(){return true;};YAHOO.widget.Dialog.prototype.submit=function(){if(this.validate()){this.beforeSubmitEvent.fire();this.doSubmit();this.submitEvent.fire();this.hide();return true;}else{return false;}};YAHOO.widget.Dialog.prototype.cancel=function(){this.cancelEvent.fire();this.hide();};YAHOO.widget.Dialog.prototype.getData=function(){var form=this.form;var data={};if(form){for(var i in this.form){var formItem=form[i];if(formItem){if(formItem.tagName){switch(formItem.tagName){case"INPUT":switch(formItem.type){case"checkbox":data[i]=formItem.checked;break;case"textbox":case"text":case"hidden":data[i]=formItem.value;break;}
break;case"TEXTAREA":data[i]=formItem.value;break;case"SELECT":var val=[];for(var x=0;x<formItem.options.length;x++){var option=formItem.options[x];if(option.selected){var selval=option.value;if(!selval||selval===""){selval=option.text;}
val[val.length]=selval;}}
data[i]=val;break;}}else if(formItem[0]&&formItem[0].tagName){if(formItem[0].tagName=="INPUT"){switch(formItem[0].type){case"radio":for(var r=0;r<formItem.length;r++){var radio=formItem[r];if(radio.checked){data[radio.name]=radio.value;break;}}
break;case"checkbox":var cbArray=[];for(var c=0;c<formItem.length;c++){var check=formItem[c];if(check.checked){cbArray[cbArray.length]=check.value;}}
data[formItem[0].name]=cbArray;break;}}}}}}
return data;};YAHOO.widget.Dialog.prototype.toString=function(){return"Dialog "+this.id;};YAHOO.widget.SimpleDialog=function(el,userConfig){YAHOO.widget.SimpleDialog.superclass.constructor.call(this,el,userConfig);};YAHOO.extend(YAHOO.widget.SimpleDialog,YAHOO.widget.Dialog);YAHOO.widget.SimpleDialog.ICON_BLOCK="nt/ic/ut/bsc/blck16_1.gif";YAHOO.widget.SimpleDialog.ICON_ALARM="nt/ic/ut/bsc/alrt16_1.gif";YAHOO.widget.SimpleDialog.ICON_HELP="nt/ic/ut/bsc/hlp16_1.gif";YAHOO.widget.SimpleDialog.ICON_INFO="nt/ic/ut/bsc/info16_1.gif";YAHOO.widget.SimpleDialog.ICON_WARN="nt/ic/ut/bsc/warn16_1.gif";YAHOO.widget.SimpleDialog.ICON_TIP="nt/ic/ut/bsc/tip16_1.gif";YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG="simple-dialog";YAHOO.widget.SimpleDialog.prototype.initDefaultConfig=function(){YAHOO.widget.SimpleDialog.superclass.initDefaultConfig.call(this);this.cfg.addProperty("icon",{value:"none",handler:this.configIcon,suppressEvent:true});this.cfg.addProperty("text",{value:"",handler:this.configText,suppressEvent:true,supercedes:["icon"]});};YAHOO.widget.SimpleDialog.prototype.init=function(el,userConfig){YAHOO.widget.SimpleDialog.superclass.init.call(this,el);this.beforeInitEvent.fire(YAHOO.widget.SimpleDialog);YAHOO.util.Dom.addClass(this.element,YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG);this.cfg.queueProperty("postmethod","manual");if(userConfig){this.cfg.applyConfig(userConfig,true);}
this.beforeRenderEvent.subscribe(function(){if(!this.body){this.setBody("");}},this,true);this.initEvent.fire(YAHOO.widget.SimpleDialog);};YAHOO.widget.SimpleDialog.prototype.registerForm=function(){YAHOO.widget.SimpleDialog.superclass.registerForm.call(this);this.form.innerHTML+="<input type=\"hidden\" name=\""+this.id+"\" value=\"\"/>";};YAHOO.widget.SimpleDialog.prototype.configIcon=function(type,args,obj){var icon=args[0];if(icon&&icon!="none"){var iconHTML="<img src=\""+this.imageRoot+icon+"\" class=\"icon\" />";this.body.innerHTML=iconHTML+this.body.innerHTML;}};YAHOO.widget.SimpleDialog.prototype.configText=function(type,args,obj){var text=args[0];if(text){this.setBody(text);this.cfg.refireEvent("icon");}};YAHOO.widget.SimpleDialog.prototype.toString=function(){return"SimpleDialog "+this.id;};YAHOO.widget.ContainerEffect=function(overlay,attrIn,attrOut,targetElement,animClass){if(!animClass){animClass=YAHOO.util.Anim;}
this.overlay=overlay;this.attrIn=attrIn;this.attrOut=attrOut;this.targetElement=targetElement||overlay.element;this.animClass=animClass;};YAHOO.widget.ContainerEffect.prototype.init=function(){this.beforeAnimateInEvent=new YAHOO.util.CustomEvent("beforeAnimateIn");this.beforeAnimateOutEvent=new YAHOO.util.CustomEvent("beforeAnimateOut");this.animateInCompleteEvent=new YAHOO.util.CustomEvent("animateInComplete");this.animateOutCompleteEvent=new YAHOO.util.CustomEvent("animateOutComplete");this.animIn=new this.animClass(this.targetElement,this.attrIn.attributes,this.attrIn.duration,this.attrIn.method);this.animIn.onStart.subscribe(this.handleStartAnimateIn,this);this.animIn.onTween.subscribe(this.handleTweenAnimateIn,this);this.animIn.onComplete.subscribe(this.handleCompleteAnimateIn,this);this.animOut=new this.animClass(this.targetElement,this.attrOut.attributes,this.attrOut.duration,this.attrOut.method);this.animOut.onStart.subscribe(this.handleStartAnimateOut,this);this.animOut.onTween.subscribe(this.handleTweenAnimateOut,this);this.animOut.onComplete.subscribe(this.handleCompleteAnimateOut,this);};YAHOO.widget.ContainerEffect.prototype.animateIn=function(){this.beforeAnimateInEvent.fire();this.animIn.animate();};YAHOO.widget.ContainerEffect.prototype.animateOut=function(){this.beforeAnimateOutEvent.fire();this.animOut.animate();};YAHOO.widget.ContainerEffect.prototype.handleStartAnimateIn=function(type,args,obj){};YAHOO.widget.ContainerEffect.prototype.handleTweenAnimateIn=function(type,args,obj){};YAHOO.widget.ContainerEffect.prototype.handleCompleteAnimateIn=function(type,args,obj){};YAHOO.widget.ContainerEffect.prototype.handleStartAnimateOut=function(type,args,obj){};YAHOO.widget.ContainerEffect.prototype.handleTweenAnimateOut=function(type,args,obj){};YAHOO.widget.ContainerEffect.prototype.handleCompleteAnimateOut=function(type,args,obj){};YAHOO.widget.ContainerEffect.prototype.toString=function(){var output="ContainerEffect";if(this.overlay){output+=" ["+this.overlay.toString()+"]";}
return output;};YAHOO.widget.ContainerEffect.FADE=function(overlay,dur){var fade=new YAHOO.widget.ContainerEffect(overlay,{attributes:{opacity:{from:0,to:1}},duration:dur,method:YAHOO.util.Easing.easeIn},{attributes:{opacity:{to:0}},duration:dur,method:YAHOO.util.Easing.easeOut},overlay.element);fade.handleStartAnimateIn=function(type,args,obj){YAHOO.util.Dom.addClass(obj.overlay.element,"hide-select");if(!obj.overlay.underlay){obj.overlay.cfg.refireEvent("underlay");}
if(obj.overlay.underlay){obj.initialUnderlayOpacity=YAHOO.util.Dom.getStyle(obj.overlay.underlay,"opacity");obj.overlay.underlay.style.filter=null;}
YAHOO.util.Dom.setStyle(obj.overlay.element,"visibility","visible");YAHOO.util.Dom.setStyle(obj.overlay.element,"opacity",0);};fade.handleCompleteAnimateIn=function(type,args,obj){YAHOO.util.Dom.removeClass(obj.overlay.element,"hide-select");if(obj.overlay.element.style.filter){obj.overlay.element.style.filter=null;}
if(obj.overlay.underlay){YAHOO.util.Dom.setStyle(obj.overlay.underlay,"opacity",obj.initialUnderlayOpacity);}
obj.overlay.cfg.refireEvent("iframe");obj.animateInCompleteEvent.fire();};fade.handleStartAnimateOut=function(type,args,obj){YAHOO.util.Dom.addClass(obj.overlay.element,"hide-select");if(obj.overlay.underlay){obj.overlay.underlay.style.filter=null;}};fade.handleCompleteAnimateOut=function(type,args,obj){YAHOO.util.Dom.removeClass(obj.overlay.element,"hide-select");if(obj.overlay.element.style.filter){obj.overlay.element.style.filter=null;}
YAHOO.util.Dom.setStyle(obj.overlay.element,"visibility","hidden");YAHOO.util.Dom.setStyle(obj.overlay.element,"opacity",1);obj.overlay.cfg.refireEvent("iframe");obj.animateOutCompleteEvent.fire();};fade.init();return fade;};YAHOO.widget.ContainerEffect.SLIDE=function(overlay,dur){var x=overlay.cfg.getProperty("x")||YAHOO.util.Dom.getX(overlay.element);var y=overlay.cfg.getProperty("y")||YAHOO.util.Dom.getY(overlay.element);var clientWidth=YAHOO.util.Dom.getClientWidth();var offsetWidth=overlay.element.offsetWidth;var slide=new YAHOO.widget.ContainerEffect(overlay,{attributes:{points:{to:[x,y]}},duration:dur,method:YAHOO.util.Easing.easeIn},{attributes:{points:{to:[(clientWidth+25),y]}},duration:dur,method:YAHOO.util.Easing.easeOut},overlay.element,YAHOO.util.Motion);slide.handleStartAnimateIn=function(type,args,obj){obj.overlay.element.style.left=(-25-offsetWidth)+"px";obj.overlay.element.style.top=y+"px";};slide.handleTweenAnimateIn=function(type,args,obj){var pos=YAHOO.util.Dom.getXY(obj.overlay.element);var currentX=pos[0];var currentY=pos[1];if(YAHOO.util.Dom.getStyle(obj.overlay.element,"visibility")=="hidden"&&currentX<x){YAHOO.util.Dom.setStyle(obj.overlay.element,"visibility","visible");}
obj.overlay.cfg.setProperty("xy",[currentX,currentY],true);obj.overlay.cfg.refireEvent("iframe");};slide.handleCompleteAnimateIn=function(type,args,obj){obj.overlay.cfg.setProperty("xy",[x,y],true);obj.startX=x;obj.startY=y;obj.overlay.cfg.refireEvent("iframe");obj.animateInCompleteEvent.fire();};slide.handleStartAnimateOut=function(type,args,obj){var vw=YAHOO.util.Dom.getViewportWidth();var pos=YAHOO.util.Dom.getXY(obj.overlay.element);var yso=pos[1];var currentTo=obj.animOut.attributes.points.to;obj.animOut.attributes.points.to=[(vw+25),yso];};slide.handleTweenAnimateOut=function(type,args,obj){var pos=YAHOO.util.Dom.getXY(obj.overlay.element);var xto=pos[0];var yto=pos[1];obj.overlay.cfg.setProperty("xy",[xto,yto],true);obj.overlay.cfg.refireEvent("iframe");};slide.handleCompleteAnimateOut=function(type,args,obj){YAHOO.util.Dom.setStyle(obj.overlay.element,"visibility","hidden");obj.overlay.cfg.setProperty("xy",[x,y]);obj.animateOutCompleteEvent.fire();};slide.init();return slide;};
/* mydom */
YAHOO.My={};YAHOO.My.String=new function(){this.toString=function(){var a=[];for(var i in this){a.push(i);};return(a.join('\n'));};this.trim=function(sString){return sString.replace(/(^\s+)|\s+$/g,"");};};YAHOO.My.Interaction=new function(){this.toString=function(){var a=[];for(var i in this){a.push(i);};return(a.join('\n'));};var Interaction=this;Interaction.popElementByAttribute=function(oNode,sAttributeName,sAttributeValue,iMaxLevel){var trimString=YAHOO.My.String.trim;var re=new RegExp("(^|\\s)"+trimString(sAttributeValue)+"(\\s|$)");var oElement;var i=iMaxLevel;while(oNode){if(i!=null){if(i<0){return null;}else{i--;};};var c;var sa;try{sa=oNode.getAttribute(sAttributeName);switch(true){case(sAttributeName=='className'||sAttributeName=='class'):;c=trimString(oNode['className']);break;case(sAttributeName=='tagName'||sAttributeName=='nodeName'):;c=trimString(oNode['tagName']).toUpperCase();sAttributeValue=sAttributeValue.toUpperCase();re=new RegExp("(^|\\s)"+trimString(sAttributeValue)+"(\\s|$)");break;default:;c=trimString((sa||oNode[sAttributeName])+'');break;};}catch(err){return null;};if(c==null){return null;}else{switch(true){case((sAttributeValue=='*')&&(sa!=null)&&(sa!='')):;return oNode;break;case((sAttributeValue!='*')&&re.test(c)):;return oNode;break;default:;oNode=oNode['parentNode'];if(!oNode){return null;};};};};};var aSupportInteractionEvent=('click,mousedown,mouseup,mouseover,mouseout,mousemove,mousewheel,keydown,keyup,keypress,focus,blur').split(',');Interaction.SupportInteractionEvent={};while(aSupportInteractionEvent.length>0){Interaction.SupportInteractionEvent[aSupportInteractionEvent.shift()]=1;};Interaction.addListener=function(dInteractionTarget,sEventType,fCallback,sAttributeName,sAttributeValue,bStopEvent,iMaxLevel){if(!fCallback){fCallback=function(){};};var sElementId=null;if(typeof(dInteractionTarget)=='string'){var obj=document.getElementById(dInteractionTarget);if(!obj){sElementId=dInteractionTarget;dInteractionTarget=document;};};var trimString=function(sString){return sString.replace(/(^\s+)|\s+$/g,"");};sEventType=trimString(sEventType+'').toLowerCase();if(!Interaction.SupportInteractionEvent[sEventType]){return true;};var InteractionHandler=function(e,oArg){var oNode=e.target||e.srcElement;var sName=sAttributeName||'className';oNode=Interaction.popElementByAttribute(oNode,sName,sAttributeValue,iMaxLevel);if(oNode){if(!e.target){e.target=e.srcElement;};fCallback(e,oNode,dInteractionTarget);if(bStopEvent){YAHOO.util.Event.preventDefault(e);YAHOO.util.Event.stopPropagation(e);return false;}else{return true;};};};YAHOO.util.Event.addListener(dInteractionTarget,sEventType,InteractionHandler);if(sElementId){dInteractionTarget=document;var findElementAfterWindowOnload=function(){dInteractionTarget=document.getElementById(sElementId);YAHOO.util.Event.removeListener(window,'load',findElementAfterWindowOnload);YAHOO.util.Event.removeListener(document,sEventType,InteractionHandler);YAHOO.util.Event.addListener(dInteractionTarget,sEventType,InteractionHandler);};YAHOO.util.Event.addListener(window,'load',findElementAfterWindowOnload);};return InteractionHandler;};Interaction.removeListener=function(dInteractionTarget,sEventType,fCallback){YAHOO.util.Event.removeListener(dInteractionTarget,sEventType,fCallback);};};YAHOO.My.Browser=new function(){this.toString=function(){var a=[];for(var i in this){a.push(i);};return(a.join('\n'));};var B=this;B["ie"]=!!(document.all&&!window.opera);B["ie7+="]=!!(B["ie"]&&window.XMLHttpRequest);B["ie7-"]=!!(B["ie"]&&!B["ie7+="]);};YAHOO.My.Util=new function(){this.toString=function(){var a=[];for(var i in this){a.push(i);};return(a.join('\n'));};var GUID=Date.parse(new Date);this.setTimeout2=function(fn,ms,param){if(typeof(fn)=='function'){return(function(fn,ms,param){var fo=function(){fn(param);};return setTimeout(fo,ms);})(fn,ms,param);}else if(typeof(fn)=='string'){return setTimeout(fn,ms);}else{throw Error('setTimeout2 Error\nInvalid function type');};};this.getUniqueId=function(){return GUID++;};};YAHOO.My.Dom=new function(){this.toString=function(){var a=[];for(var i in this){a.push(i);};return(a.join('\n'));};this.getUniqueElementId=function(oNode){var gid=function(){return['YUNIQUEID',YAHOO.My.Util.getUniqueId(),Math.ceil(Math.random()*100000),Date.parse(new Date)].join('X');};if(!oNode){var sid=gid();while(document.getElementById(sid)){sid=gid();};return sid;}else{if(oNode.id==''){var sid=gid();while(document.getElementById(sid)){sid=gid();};oNode.id=sid;return sid;}else{return oNode['id'];};};};this.createIframe=function(oArguments,oApprenTarget){var F=null;if(typeof(oArguments)=='string'){oArguments={src:oArguments};}else if(typeof(oArguments)!='object'){oArguments={};};oApprenTarget=oApprenTarget||document.body;var fid=YAHOO.getUniqueElementId();if(typeof(oArguments)=='object'){fid=oArguments['name']||oArguments['id']||fid;};var defaultArgs={id:fid,name:fid,frameborder:'0',framemargin:'0',framespace:'0',scrolling:'auto'};for(var j in defaultArgs){if(oArguments[j]==null){oArguments[j]=defaultArgs[j];};};if(window.XMLHttpRequest||document.compatMode){F=document.createElement('iframe');for(i in oArguments){F.setAttribute(i,oArguments[i]);};oApprenTarget.appendChild(F);}else if(window.XMLHttpRequest==null&&document.uniqueID){var properties=[];var j=0;for(var i in oArguments){properties[j]=[i,'=',oArguments[i]].join('');j++;};properties=properties.join(' ');F=document.createElement(['<IFRAME',properties,'></IFRAME>'].join(' '));oApprenTarget.insertAdjacentHTML('BeforeEnd',F.outerHTML);F=null;F=document.getElementById(oArguments['id']);if(!F.contentWindow){F.contentWindow=document.frames[F.getAttribute('id')];F.contentDocument=F.contentWindow.document;};}return F;};this.createStyle=function(sRule){var domAppendTarget=document.getElementsByTagName('head')[0];var rid="domStyleElement-"+Math.ceil(Math.random()*1000000)+Date.parse(new Date);while(document.getElementById(rid)){rid="domStyleElement-"+Math.ceil(Math.random()*1000000)+Date.parse(new Date);};var node=document.createElement('style');try{node.innerHTML='.-test-rule{}';if(!!node.innerHTML){node.id=rid;node.innerHTML=sRule;domAppendTarget.appendChild(node);};}catch(e){if(!!!node.innerHTML){node=document.createElement('div');node.innerHTML='-<style>'+sRule+'<\/style>';node.removeChild(node.firstChild);node=node.firstChild;node.id=rid;domAppendTarget.appendChild(node);node=null;};};};this.getElementsByClass=function(sClassName,sTagName,oNode,iMaxLength){if(!sClassName)return[];sTagName=sTagName||'*';oNode=oNode||document;var a=[];var els=oNode.getElementsByTagName(sTagName);var elsLen=els.length;var pattern=new RegExp('(^|\\s)'+sClassName+'(\\s|$)');for(i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){a[j]=els[i];j++;if(!isNaN(iMaxLength)){iMaxLength--;if(iMaxLength<=0){return a;};};}};return a;};this.popElementByClass=function(oNode,sClass,iMaxLevel){sClass=YAHOO.My.String.trim(sClass);var re=new RegExp("(^|\\s)"+sClass+"(\\s|$)");while(oNode){if(iMaxLevel!=null){if(iMaxLevel<0){return null;}else{iMaxLevel--;};};var c=oNode['className'];if(c==null){return null;}else{c=YAHOO.My.String.trim(c);if(re.test(c)){return oNode;}else{oNode=oNode['parentNode'];if(!oNode){return null;};};};};return null;};this.getNextElementByTag=function(oNode,sTag){while(oNode['nextSibling']){oNode=oNode['nextSibling'];var t=oNode.tagName;if(t&&t==sTag.toUpperCase()){return oNode;};};return null;};this.getPreviousElementByTag=function(oNode,sTag){while(oNode['previousSibling']){oNode=oNode['previousSibling'];var t=oNode.tagName;if(t&&t==sTag.toUpperCase())return oNode;};return null;};this.addClass=function(oNode,sClassName){var pattern=new RegExp("(^|\\s)"+sClassName+"(\\s|$)");var c=oNode['className'];if(!pattern.test(c)){oNode['className']=[c,sClassName].join(' ');};};this.removeClass=function(oNode,sClassName){var pattern=new RegExp("(^|\\s)"+sClassName+"(\\s|$)");var c=oNode['className'];if(pattern.test(c)){oNode['className']=c.replace(pattern,'');};};this.hasClass=function(oNode,sClassName){var pattern=new RegExp("(^|\\s)"+sClassName+"(\\s|$)");return pattern.test(oNode['className'])};};
//library references
var YUE = YAHOO.util.Event;
var YUC = YAHOO.util.Connect;
var YUD = YAHOO.util.Dom;
var YUA = YAHOO.util.Anim;
var YDD = YAHOO.util.DragDrop;
var YMI = YAHOO.My.Interaction;
YAHOO.namespace('TW.F2E');
var F2E = YAHOO.TW.F2E;
F2E.Widget = {
    TableSorting:function(dElement,oConfig) {
        var YUE = YAHOO.util.Event;
        var YUD = YAHOO.util.Dom;
        if(YUE == null || YUD == null){throw new Error('TableSorting 類別錯誤：缺乏適當的 YUI 函式庫。');};
        var oComponent = this;
        if(typeof(oConfig)=='undefined'){oConfig = {};}
        oComponent.config = {};
        oComponent.config.sAscImagePath = (oConfig.sAscImagePath!=null)?oConfig.sAscImagePath:'http://tw.yimg.com/i/tw/ks/lsm/generic_sort_asc.gif';
        oComponent.config.sDescImagePath = (oConfig.sDescImagePath!=null)?oConfig.sDescImagePath:'http://tw.yimg.com/i/tw/ks/lsm/generic_sort_desc.gif';
        oComponent.config.sDirection = (oConfig.sDirection!=null)?oConfig.sDirection:'desc';
        oComponent.onSortComplete = new YAHOO.util.CustomEvent('sortcomplete');
        var dTable,dThead,dTBody = null;
        var aColumn = [];
        var aTr = [];
        var init = function() {
            dTable = (typeof(dElement) == 'object')?dElement:document.getElementById(dElement);
            if(dTable == null) {throw new Error('TableSorting 類別錯誤：您傳入了一個不存在的物件。');}
            dThead = dTable.getElementsByTagName('thead')[0];
            dTBody = dTable.getElementsByTagName('tbody')[0];
        };
        init();
        var convert = function(sValue,sDataType) {
            switch(sDataType) {
                case 'int':
                    return parseInt(sValue);
                case 'float':
                    return parseFloat(sValue);
                case 'date':
                    return new Date(Date.parse(sValue));
                default:
                    return sValue.toString();
            };
        };
        var getCompareFunction = function(){
            return function compareTR(dTr1,dTr2) {
                var dTd1 = dTr1.cells[oComponent.selectedIndex];
                var dTd2 = dTr2.cells[oComponent.selectedIndex];
                var dTh = dThead.rows[0].cells[oComponent.selectedIndex];
                if(dTh.textContent){
                    var sValue1 = (dTd1.getAttribute('value')!='null')?dTd1.getAttribute('value'):dTd1.textContent;
                    var sValue2 = (dTd2.getAttribute('value')!='null')?dTd2.getAttribute('value'):dTd2.textContent;
                }
                else {
                    var sValue1 = (dTd1.getAttribute('value')!='null')?dTd1.getAttribute('value'):dTd1.innerText;
                    var sValue2 = (dTd2.getAttribute('value')!='null')?dTd2.getAttribute('value'):dTd2.innerText;
                }
                sValue1 = convert(sValue1,dTh.dataType);
                sValue2 = convert(sValue2,dTh.dataType);
                var sReturnValue = 0;
                if(sValue1 < sValue2){
                    sReturnValue = 1;
                }
                else if(sValue1 > sValue2){
                    sReturnValue = -1;
                };
                return sReturnValue;
            };
        };
        oComponent.sortTable = function(iCellIndex) {
            if(iCellIndex == -1){
                oComponent.direction = oComponent.config.sDirection;
            }
            else {
                if(iCellIndex != oComponent.selectedIndex) {
                    oComponent.direction = oComponent.config.sDirection;
                }
                else {
                    oComponent.direction = (oComponent.direction=='desc')?'asc':'desc';
                };
            };
            YUD.setStyle(dThead.rows[0].cells[oComponent.selectedIndex].getElementsByTagName('a')[0],'background-image','');
            if(iCellIndex != oComponent.selectedIndex) {
                oComponent.selectedIndex = (iCellIndex == -1)?oComponent.selectedIndex:iCellIndex;
                aTr.sort(getCompareFunction());
                if(oComponent.config.sDirection == 'asc'){aTr.reverse();}
            }
            else {
                oComponent.selectedIndex = iCellIndex;
                aTr.reverse();
            };
            var dLink = dThead.rows[0].cells[oComponent.selectedIndex].getElementsByTagName('a')[0];;
            if(oComponent.direction=='desc'){
                YUD.setStyle(dLink,'background-image','url(' + oComponent.config.sDescImagePath + ')');
            }
            else {
                YUD.setStyle(dLink,'background-image','url(' + oComponent.config.sAscImagePath + ')');
            };
            var dFragment = document.createDocumentFragment();
            for(var i=0,j=aTr.length;i<j;i++){dFragment.appendChild(aTr[i]);};
            dTBody.appendChild(dFragment);
            oComponent.onSortComplete.fire();
        };
        var onSortLinkClick = function(oEvent,iCellIndex) {
            oComponent.sortTable(iCellIndex)
            YUE.stopEvent(oEvent);
            return false;
        };
        oComponent.selectedIndex = -1;
        oComponent.render = function() {
            for(var i=0,j=aColumn.length;i<j;i++){
                var dTh = dThead.rows[0].cells[aColumn[i]['index']];
                dTh.dataType = dThead.rows[0].cells[aColumn[i]['type']];
                var dLink = null;
                if(typeof(dTh.getElementsByTagName('a')[0]) != 'undefined'){
                    dLink = dTh.getElementsByTagName('a')[0];
                }
                else {
                    dLink = document.createElement('a');
                    dLink.innerHTML = dTh.innerHTML;
                    dLink.href = '#';
                    dTh.innerHTML = '';
                    dTh.appendChild(dLink);
                };
                YUD.setStyle(dLink,'padding-right','15px');
                if(aColumn[i]['selected']==true){oComponent.selectedIndex = aColumn[i]['index'];};
                YUD.setStyle(dLink,'background-position','center right');
                YUD.setStyle(dLink,'background-repeat','no-repeat');
                YUE.on(dLink,'click',onSortLinkClick,aColumn[i]['index']);
            };
            for(var i=0,j=dTBody.rows.length;i<j;i++){aTr.push(dTBody.rows[i]);};
            oComponent.sortTable(-1);
        };
        oComponent.addSortingColumn = function(iCellIndex,sDataType,bSelected) {
            bSelected = (typeof(bSelected)!='undefined')?bSelected:false;
            if(aColumn.length == 0){
                aColumn.push({'index':iCellIndex,'type':sDataType,'selected':true});
            }
            else {
                for(var i=0,j=aColumn.length;i<j;i++){
                    if(iCellIndex == aColumn[i]['index']){
                        return;
                    };
                };
                if(bSelected == true){
                    for(var i=0,j=aColumn.length;i<j;i++){
                        aColumn[i]['selected'] = false;
                    };
                };
                aColumn.push({'index':iCellIndex,'type':sDataType,'selected':bSelected});
            };
        };
    },
    HTMLEditor:function(dTextarea,dContainer,sPromptMessage,sEditorType) {
        var oComponent = this;
        var setDiv = function(sClassName, sHtml, dParent) {
            var dDiv = document.createElement('div');
            dDiv.className = sClassName;
            dDiv.innerHTML = sHtml;
            if(typeof(dParent)!='undefined'){
                dParent.appendChild(dDiv);
            }
            return dDiv;
        };
        if(sEditorType == 'html') {
            var dForm;
            var dBorder;
            var dToolbar;
            var dEditor;
            var dEditorWindow;
            var dPrompt;
            var dCloneTextarea;
            var dCalculator, dRequirement;
            oComponent.bViewSource = false;
            oComponent.sPromptMessage = null;
            oComponent.sImageUrl = 'http://us.i1.yimg.com/us.yimg.com/i/us/pim/el/';
            oComponent.sFontStyle = 'normal 16px PMingLiu';
            oComponent.iWordTotal = 0;
            oComponent.iMaxLength = null;
            var aTagReplacement = new Array(
                [/\r\n/gm, '\n'],
                [/\n\r/gm, '\n'],
                [/<b>(.*?)<\/.>/gm, '<strong>$1</strong>'],
                [/<i>(.*?)<\/.>/gm, '<em>$1</em>'],
                [/<p>&nbsp;<\/p>/gm, '<p></p>'],
                [/<P>&nbsp;<\/P>/gm, '<p></p>'],
                [/<P>(.*?)<\/P>/gm, '<p>$1</p>'],
                [/<A (.*?)<\/A>/gm, '<a $1</a>'],
                [/<img (.*?)>/gm, '<img $1 />'],
                [/<pre (.*?)<\/pre>/gm, '<div $1</div>'],
                [/<span style="font-weight: normal;">(.*?)<\/span>/gm, "$1"],
                [/<div class="main">(.*?)<\/div>/gm, "$1"],
                [/<div class="ghd">(.*?)<\/div>/gm, "$1"],
                [/<span style="font-weight: bold;">(.*?)<\/span>/gm, "<strong>$1</strong>"],
                [/<span style="font-style: italic;">(.*?)<\/span>/gm, "<em>$1</em>"],
                [/<span style="(font-weight: bold; ?|font-style: italic; ?){2}">(.*?)<\/span>/gm, "<strong><em>$2</em></strong>"],
                [/<([a-z]+) style="font-weight: normal;">(.*?)<\/.>/gm, "<$1>$2</$1>"],
                [/<([a-z]+) style="font-weight: bold;">(.*?)<\/.>/gm, "<$1><strong>$2</strong></$1>"],
                [/<([a-z]+) style="font-style: italic;">(.*?)<\/.>/gm, "<$1><em>$2</em></$1>"],
                [/<([a-z]+) style="(font-weight: bold; ?|font-style: italic; ?){2}">(.*?)<\/.>/gm, "<$1><strong><em>$3</em></strong></$1>"],
                [/<\/p>[\s]*/g, "</p>\n"],
                [/alt=(.*?) /gm, "alt=\"$1\" "]);
            var checkBrowserSupport = function() {
                var ua = navigator.userAgent.toLowerCase();
                isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1));
                isGecko = (ua.indexOf("gecko") != -1);
                isSafari = (ua.indexOf("safari") != -1);
                isKonqueror = (ua.indexOf("konqueror") != -1);
                return (document.getElementById && document.designMode && !isSafari && !isKonqueror);
            };
            var setIframe = function(sClassName, sUrl, dParent){
                var dIframe = document.createElement('iframe');
                dIframe.className = sClassName
                dIframe.frameborder = 'no';
                dIframe.frameBorder = 'no';
                dIframe.marginWidth = 0;
                dIframe.marginHeight = 0;
                dIframe.border = '0';
                dIframe.scrolling = 'no';
                dIframe.src = sUrl;
                if(typeof(dParent)!='undefined'){
                    dParent.appendChild(dIframe);
                };
                return dIframe;
            };
            var getSelectionRange = function() {
                if (document.uniqueID) {
                    var dSelection = dEditorWindow.document.selection;
                    if (dSelection!=null) {
                        dRange = dSelection.createRange();
                    };
                }
                else {
                    var dSelection = dEditorWindow.getSelection();
                    dRange = dSelection.getRangeAt(dSelection.rangeCount-1).cloneRange();
                };
                return dRange;
            };
            var hideTool = function() {
                YUD.getElementsByClassName('palette_picker','div',dToolbar)[0].style.display = 'none';
                YUD.getElementsByClassName('smiley_picker','div',dToolbar)[0].style.display = 'none';
                YUD.getElementsByClassName('align_picker','div',dToolbar)[0].style.display = 'none';
                YUD.getElementsByClassName('list_picker','div',dToolbar)[0].style.display = 'none';
            };
            var insertIframeHtml = function(sHtml) {
                dEditorWindow.focus()
                if(document.uniqueID) {
                    var dRange = dEditorWindow.document.selection.createRange();
                    dRange.pasteHTML(sHtml);
                    dRange.collapse(false);
                    dRange.select();
                }
                else {
                    dEditorWindow.document.execCommand('insertHTML', false, sHtml);
                };
            };
            var getSourceCode = function() {
                var sHtml = dEditorWindow.document.body.innerHTML;
                if (!document.uniqueID) {
                    sHtml = escape(sHtml);
                    while(sHtml.indexOf('%0D%0A') > -1) {
                        sHtml = sHtml.replace('%0D%0A',' ');
                    };
                    while(sHtml.indexOf('%0A') > -1) {
                        sHtml = sHtml.replace('%0A',' ');
                    };
                    while(sHtml.indexOf('%0D') > -1) {
                        sHtml = sHtml.replace('%0D',' ');
                    };
                    sHtml = unescape(sHtml);
                };
                sHtml = sHtml.replace(/(?=<)[^> ]*/g, function(sMatch){return sMatch.toLowerCase();});
                for (var i=0,j=aTagReplacement.length;i<j;i++){
                    sHtml = sHtml.replace(aTagReplacement[i][0], aTagReplacement[i][1]);
                };
                if(sHtml == '<br>') {sHtml = '';};
                return sHtml;
            };
            var setEditor = function(sHtml) {
                var aEditorHtml = ['<!doctype html public \'-//W3C//DTD HTML 4.01//EN\' \'http://www.w3.org/TR/html4/strict.dtd\'>'
                                   ,'<html>'
                                   ,'<head>'
                                   ,'<style>'
                                   ,'body{background:#fff;font:' + oComponent.sFontStyle + ';margin:5px;padding:0;}'
                                   ,'</style>'
                                   ,'</head>'
                                   ,'<body>' + YAHOO.My.String.trim(sHtml) + '</body>'
                                   ,'</html>'];
                dEditorWindow.document.open();
                dEditorWindow.document.write(aEditorHtml.join(''));
                dEditorWindow.document.close();
                YUE.addListener(dEditorWindow.document,'keyup',onEditorKeyup);
                YUE.addListener(dEditorWindow.document,'keypress',onEditorKeyup);
                YUE.addListener(dEditorWindow.document,'paste',onEditorKeyup);
                YUE.addListener(dEditorWindow.document,'click',onEditorKeyup);
            };
            var onExecuteCommand = function(oEvent) {
                var dLink = YUE.getTarget(oEvent,false);
                if(dLink.nodeName.toLowerCase() == 'img') { dLink = dLink.parentNode; };
                sCommand = dLink.className;
                hideTool();
                dEditorWindow.focus();
                dEditorWindow.document.execCommand(sCommand, false, null);
                dEditorWindow.focus();
                getWordTotal();
            };
            var onViewSourceClick = function(oEvent) {
                var dCheckbox = YUE.getTarget(oEvent,false);
                var dLabel = dCheckbox.parentNode.getElementsByTagName('label')[0];
                oComponent.bViewSource = (dCheckbox.checked)?false:true;
                switch (oComponent.bViewSource){
                    case true : {
                        YUD.setStyle(dToolbar,'display','block');
                        YUD.setStyle(dCloneTextarea,'display','none');
                        YUD.setStyle(dEditor,'display','block');
                        YUD.setStyle(dCalculator,'display','block');
                        setEditor(dCloneTextarea.value);
                        getWordTotal();
                        dEditorWindow.focus();
                        break;
                    }
                    case false : {
                        var sSourceCode = getSourceCode();
                        setTimeout(function(){
                             dCloneTextarea.value = sSourceCode;
                             dTextarea.value = dCloneTextarea.value;
                             dCloneTextarea.focus();
                        },100);
                        YUD.setStyle(dToolbar,'display','none');
                        YUD.setStyle(dCloneTextarea,'display','block');
                        YUD.setStyle(dEditor,'display','none');
                        YUD.setStyle(dCalculator,'display','none');
                        break;
                    }
                };
            };
            var onFormSubmit = function(oEvent) {
                if (oComponent.bViewSource == false) {
                    dCloneTextarea.value = getSourceCode();
                    dTextarea.value = dCloneTextarea.value;
                };
            };
            var getWordTotal = function() {

                dCloneTextarea.value = YAHOO.My.String.trim(getSourceCode());
                dTextarea.value = dCloneTextarea.value;
                oComponent.iWordTotal = (document.uniqueID)?YAHOO.My.String.trim(dEditorWindow.document.body.innerText).replace(/\r\n/g,'').length:YAHOO.My.String.trim(dEditorWindow.document.body.textContent).replace(/\r\n/g,'').length;
                //oComponent.iWordTotal = (document.uniqueID)?dEditorWindow.document.body.innerText.replace(/\r\n/g,'').length:dEditorWindow.document.body.textContent.replace(/\r\n/g,'').length;
                dNumber.innerHTML = oComponent.iWordTotal;
            };
            var onTextareaKeyup = function(oEvent){
                var dTemp = document.createElement('div');
                document.body.appendChild(dTemp);
                dTemp.innerHTML = dCloneTextarea.value;
                oComponent.iWordTotal = (document.uniqueID)?dTemp.innerText.replace(/\r\n/g,'').length:dTemp.textContent.replace(/\r\n/g,'').length;
                document.body.removeChild(dTemp);
                dTemp = null;
            };
            var onEditorKeyup = function(oEvent) {
                getWordTotal();
            };
            var init = function() {
                if(!checkBrowserSupport()) {return;};
                dForm = dTextarea.form;
                dBorder = setDiv('border','',dContainer);
                dToolbar = setDiv('toolbar','',dBorder);
                dPrompt = setDiv('prompt','',dContainer);
                dRequirement = setDiv('requirement','',dPrompt);
                dCalculator = setDiv('calculation','字數統計：<em>' + oComponent.iWordTotal + '</em>字',dPrompt);
                dEditor = document.createElement('iframe');
                dEditor.className = 'editor';
                dEditor.frameborder = 'no';
                dEditor.frameBorder = 'no';
                dEditor.marginWidth = 0;
                dEditor.marginHeight = 0;
                dEditor.border = '0';
                dEditor.scrolling = 'auto';
                dEditor.src = 'about:blank';
                dBorder.appendChild(dEditor);
                dCloneTextarea = dTextarea.cloneNode(true);
                dBorder.appendChild(dCloneTextarea);
                var sTrim = YAHOO.My.String.trim(dTextarea.value);
                if(document.uniqueID){
                    dCloneTextarea.outerHTML = '<textarea name="rtetmp">' + sTrim + '</textarea>';
                    dCloneTextarea = dForm.elements['rtetmp'];
                    dCloneTextarea.value = sTrim;
                }
                else {
                    dCloneTextarea.setAttribute('name','rtetmp');
                    dCloneTextarea.name = 'rtetmp';
                    dCloneTextarea.value = sTrim;
                };
                dTextarea.value = sTrim;
                dTextarea.style.display = 'none';
                dCloneTextarea.style.display = 'none';
                oComponent.bViewSource = false;
                oComponent.sImageUrl = 'http://us.i1.yimg.com/us.yimg.com/i/us/pim/el/';
                oComponent.iMaxLength = dCloneTextarea.getAttribute('maxlength');
                YUD.generateId(dContainer);
                switch(true){
                    case(oComponent.sPromptMessage && oComponent.iMaxLength != null) : {
                        dRequirement.innerHTML = '( ' + oComponent.sPromptMessage + '，限 <em>' + oComponent.iMaxLength + '</em> 個字內 )<br/>';
                        break;
                    };
                    case (!oComponent.sPromptMessage && oComponent.iMaxLength != null) : {
                        dRequirement.innerHTML = '( 限 <em>' + oComponent.iMaxLength + '</em> 個字內 )<br/>';
                        break;
                    };
                    case (oComponent.sPromptMessage && oComponent.iMaxLength == null) : {
                        dRequirement.innerHTML = '( ' + oComponent.sPromptMessage + ' )<br/>';
                        break;
                    };
                };
                dRequirement.innerHTML += '<input type="checkbox" value="1"/><label>檢視原始碼</label> ';
                var dCheckbox = dRequirement.getElementsByTagName('input')[0];
                var dLabel =  dRequirement.getElementsByTagName('label')[0];
                YUD.generateId(dCheckbox);
                dLabel.setAttribute('for',dCheckbox.id);
                dEditorWindow = dEditor.contentWindow;
                dEditorWindow.document.designMode = 'on';
                setEditor(sTrim);
                try {
                    dEditorWindow.document.execCommand('undo', false, null);
                }
                catch (oError) {
                    alert(oError.message);
                };
                oComponent.iWordTotal = (document.uniqueID)?YAHOO.My.String.trim(dEditorWindow.document.body.innerText).replace(/\r\n/g,'').length:YAHOO.My.String.trim(dEditorWindow.document.body.textContent).replace(/\r\n/g,'').length;
                dCalculator.innerHTML = '字數統計：<em>' + oComponent.iWordTotal + '</em>字';
                dNumber = dCalculator.getElementsByTagName('em')[0];
                var aToolbarHtml  = ['<ul>'
                    ,'<li><img title="粗體" src="' + oComponent.sImageUrl + 'tb_bold_1.gif" class="bold"></li>'
                    ,'<li><img title="斜體" src="' + oComponent.sImageUrl + 'tb_italic_1.gif" class="italic"></li>'
                    ,'<li><img title="底線" src="http://tw.yimg.com/i/tw/blog/smiley/underline.gif" class="underline"></li>'
                    ,'<li><img title="上標字" src="http://tw.yimg.com/i/tw/blog/smiley/superscript.gif" class="superscript"></li>'
                    ,'<li><img title="下標字" src="http://tw.yimg.com/i/tw/blog/smiley/subscript.gif" class="subscript"></li>'
                    ,'<li class="sep"></li>'
                    ,'<li><img title="插入超連結" src="' + oComponent.sImageUrl + 'tb_link_1.gif" class="link"></li>'
                    ,'<li><img title="插入圖片" src="http://tw.yimg.com/i/tw/blog/smiley/insertimage.gif"/ class="insertimage"></li>'
                    ,'<li><img title="插入表情圖示" src="' + oComponent.sImageUrl + 'tb_smiley_1.gif" class="smiley"></li>'
                    ,'<li><img title="文字顏色" src="' + oComponent.sImageUrl + 'tb_coltext_1.gif" class="forecolor"></li>'
                    ,'<li><img title="文字底色" src="' + oComponent.sImageUrl + 'tb_colhilite_1.gif" class="hilitecolor"></li>'
                    ,'<li class="sep"></li>'
                    ,'<li><img title="文字對齊" src="' + oComponent.sImageUrl + 'tb_justpd_1.gif" class="align"></li>'
                    ,'<li><img title="項目編號" src="' + oComponent.sImageUrl + 'tb_listpd_1.gif" class="list"></li>'
                    ,'<li class="sep"></li>'
                    ,'<li><img title="減少縮排" src="' + oComponent.sImageUrl + 'tb_ileft_1.gif" class="outdent"></li>'
                    ,'<li><img title="增加縮排" src="' + oComponent.sImageUrl + 'tb_iright_1.gif" class="indent"></li>'
                    ,'<li class="sep"></li>'
                    ,'<li class="font_picker">'
                    ,'<label>字型：</label>'
                    ,'<select class="font-family">'
                    ,'    <option value="">-- 請選擇 --</option>'
                    ,'    <option value="Arial">Arial</option>'
                    ,'    <option value="Courier New">Courier New</option>'
                    ,'    <option value="Georgia">Georgia</option>'
                    ,'    <option value="Tahoma">Tahoma</option>'
                    ,'    <option value="Times New Roman">Times New Roman</option>'
                    ,'    <option value="Verdana">Verdana</option>'
                    ,'    <option value="Impact">Impact</option>'
                    ,'    <option value="WingDins">WingDings</option>'
                    ,'    <option value="MingLiu">細明體</option>'
                    ,'    <option value="PMingLiu">新細明體</option>'
                    ,'    <option value="標楷體">標楷體</option>'
                    ,'</select>'
                    ,'<label>大小：</label>'
                    ,'<select class="font-size">'
                    ,'    <option value="">-- 請選擇 --</option>'
                    ,'    <option value="8px">8px</option>'
                    ,'    <option value="12px">12px</option>'
                    ,'    <option value="14px">14px</option>'
                    ,'    <option value="16px">16px</option>'
                    ,'    <option value="18px">18px</option>'
                    ,'    <option value="24px">24px</option>'
                    ,'    <option value="36px">36px</option>'
                    ,'</select>'
                    ,'</li>'
                    ,'</ul>'
                ];
                dToolbar.innerHTML = aToolbarHtml.join('');
                var dButtons = dToolbar.getElementsByTagName('li');
                for(var i=0,j=dButtons.length;i<j;i++){
                    if(dButtons[i].className != 'sep' && dButtons[i].className != 'font_picker') {
                        YUE.on(dButtons[i],'mouseover',function(oEvent){this.className = 'over';})
                        YUE.on(dButtons[i],'mouseout',function(oEvent){this.className = 'out';})
                        YUE.on(dButtons[i],'mousedown',function(oEvent){this.className = 'down';})
                        YUE.on(dButtons[i],'mouseup',function(oEvent){this.className = 'out';})
                        YUE.on(dButtons[i],'click',function(oEvent){
                            hideTool();
                            YUE.stopEvent(oEvent);
                            var sName = this.getElementsByTagName('img')[0].className;
                            switch (sName) {
                                case 'forecolor':
                                case 'hilitecolor':
                                    parent.command = sName;
                                    var dDiv = YUD.getElementsByClassName('palette_picker','div',dToolbar)[0];
                                    YUD.setStyle(dDiv,'display','block');
                                    YUD.setX(dDiv,YUD.getX(this));
                                    YUD.setY(dDiv,YUD.getY(this) + this.offsetHeight);
                                    break;
                                case 'smiley':
                                    var dDiv = YUD.getElementsByClassName('smiley_picker','div',dToolbar)[0];
                                    YUD.setStyle(dDiv,'display','block');
                                    YUD.setX(dDiv,YUD.getX(this));
                                    YUD.setY(dDiv,YUD.getY(this) + this.offsetHeight);
                                    break;
                                case 'align':
                                    var dDiv = YUD.getElementsByClassName('align_picker','div',dToolbar)[0];
                                    YUD.setStyle(dDiv,'display','block');
                                    YUD.setX(dDiv,YUD.getX(this));
                                    YUD.setY(dDiv,YUD.getY(this) + this.offsetHeight);
                                    break;
                                case 'list':
                                    var dDiv = YUD.getElementsByClassName('list_picker','div',dToolbar)[0];
                                    YUD.setStyle(dDiv,'display','block');
                                    YUD.setX(dDiv,YUD.getX(this));
                                    YUD.setY(dDiv,YUD.getY(this) + this.offsetHeight);
                                    break;
                                case 'insertimage':
                                    var sUrl = window.prompt('請輸入圖片的 URL:', 'http://');
                                    if(sUrl) {
                                        insertIframeHtml('<img src="' + sUrl + '"/>');
                                    };
                                    break;
                                case 'link':
                                    var dRange = getSelectionRange();
                                    var sSelection = (document.uniqueID)?dRange.htmlText:dRange.toString();
                                    var sUrl = window.prompt('請輸入欲連結的 URL:', 'http://');
                                    if(sUrl) {
                                        if(sSelection == '') {
                                            sSelection = prompt('請輸入連結文字','');
                                        };
                                        if(sSelection) {
                                            insertIframeHtml('<a href="' + sUrl + '">' + sSelection + '</a>');
                                        };
                                    };
                                    break;
                                default:

                                    dEditorWindow.document.execCommand(sName, false, null);
                                    break;
                            };
                            getWordTotal();
                        });
                    };
                    if(dButtons[i].className == 'font_picker'){
                        var dFontSize = YUD.getElementsByClassName('font-size','select',dButtons[i])[0];
                        var dFontFamily = YUD.getElementsByClassName('font-family','select',dButtons[i])[0];
                        YUE.on([dFontSize,dFontFamily],'change',function(oEvent){
                            var dRange = getSelectionRange();
                            var sSelection = (document.uniqueID)?dRange.htmlText:dRange.toString();
                            if(sSelection) {
                                if(dFontSize.selectedIndex != 0 && dFontFamily.selectedIndex != 0) {
                                    insertIframeHtml('<font style="font-size:' + dFontSize.options[dFontSize.selectedIndex].value + ';font-family:' + dFontFamily.options[dFontFamily.selectedIndex].value + ';">' + sSelection + '</font>');
                                }
                                else if (dFontSize.selectedIndex == 0 && dFontFamily.selectedIndex != 0) {
                                    insertIframeHtml('<font style="font-family:' + dFontFamily.options[dFontFamily.selectedIndex].value + ';">' + sSelection + '</font>');
                                }
                                else if (dFontSize.selectedIndex != 0 && dFontFamily.selectedIndex == 0) {
                                    insertIframeHtml('<font style="font-size:' + dFontSize.options[dFontSize.selectedIndex].value + ';">' + sSelection + '</font>');
                                };
                                dFontSize.options[0].selected = true;
                                dFontFamily.options[0].selected = true;
                            };
                            getWordTotal();
                        });
                    };
                };
                var setSmiley = function() {
                    var sSmileyUrl = 'http://tw.yimg.com/i/tw/blog/smiley/';
                    var aSmiley = [sSmileyUrl+'1.gif',sSmileyUrl+'2.gif',sSmileyUrl+'3.gif',sSmileyUrl+'4.gif',sSmileyUrl+'5.gif',
                        sSmileyUrl+'6.gif',sSmileyUrl+'7.gif',sSmileyUrl+'8.gif',sSmileyUrl+'9.gif',sSmileyUrl+'10.gif',
                        sSmileyUrl+'11.gif',sSmileyUrl+'12a.gif',sSmileyUrl+'13.gif',sSmileyUrl+'14.gif',sSmileyUrl+'15.gif',
                        sSmileyUrl+'16.gif',sSmileyUrl+'17a.gif',sSmileyUrl+'18.gif',sSmileyUrl+'19.gif',sSmileyUrl+'20.gif',
                        sSmileyUrl+'21.gif',sSmileyUrl+'22a.gif',sSmileyUrl+'23.gif',sSmileyUrl+'24a.gif',sSmileyUrl+'25.gif',
                        sSmileyUrl+'26.gif',sSmileyUrl+'27.gif',sSmileyUrl+'28.gif',sSmileyUrl+'29.gif',sSmileyUrl+'30.gif',
                        sSmileyUrl+'31.gif',sSmileyUrl+'32.gif',sSmileyUrl+'33.gif',sSmileyUrl+'34.gif',sSmileyUrl+'35.gif',
                        sSmileyUrl+'36.gif',sSmileyUrl+'37a.gif',sSmileyUrl+'38.gif',sSmileyUrl+'39.gif',sSmileyUrl+'40.gif'];
                    var aSmileyHtml = [];
                    aSmileyHtml.push('<table>');
                    for(i=0;i<8;i++){
                        aSmileyHtml.push('<tr>');
                        for (x=0;x<5;x++){
                            aSmileyHtml.push('<td><a href="#"><img src="' + aSmiley[i*5+x] + '" ></a></td>');
                        }
                        aSmileyHtml.push('</tr>');
                    }
                    aSmileyHtml.push('</table><!--[if lte IE 6.5]><iframe></iframe><![endif]-->');
                    var dSmiley = setDiv('smiley_picker', aSmileyHtml.join(''), dToolbar);
                    var dSmileyImg = dSmiley.getElementsByTagName('img');
                    for(var i=0,j=dSmileyImg.length;i<j;i++){
                        YUE.on(dSmileyImg[i],'mouseover',function(oEvent){
                            this.style.borderColor = '#000';
                            this.style.borderStyle = 'inset';
                            this.style.borderWidth = '1px';
                            window.status = this.innerText;
                        });
                        YUE.on(dSmileyImg[i],'mouseout',function(oEvent){
                            this.style.borderColor = '#fff';
                            this.style.borderStyle = 'solid';
                            this.style.borderWidth = '1px';
                            window.status = window.defaultStatus;
                        });
                        YUE.on(dSmileyImg[i],'click',function(oEvent){
                            dEditorWindow.focus();
                            dEditorWindow.document.execCommand('InsertImage',false,this.src);
                            dSmiley.style.display = 'none';
                            YUE.stopEvent(oEvent);
                            return false;
                        });

                    };
                    YUD.setStyle(dSmiley,'display','none');
                };
                setSmiley();
                var setPalette = function() {
                    var aPaletteColor = [
                        ['000000', '111111', '2d2d2d', '434343', '5b5b5b', '737373', '8b8b8b', 'a2a2a2', 'b9b9b9', 'd0d0d0', 'e6e6e6', 'ffffff'],
                        ['7f7f00', 'bfbf00', 'ffff00', 'ffff40', 'ffff80', 'ffffbf', '525330', '898a49', 'aea945', 'c3be71', 'e0dcaa', 'fcfae1'],
                        ['407f00', '60bf00', '80ff00', 'a0ff40', 'c0ff80', 'dfffbf', '3b5738', '668f5a', '7f9757', '8a9b55', 'b7c296', 'e6ebd5'],
                        ['007f40', '00bf60', '00ff80', '40ffa0', '80ffc0', 'bfffdf', '033d21', '438059', '7fa37c', '8dae94', 'acc6b5', 'ddebe2'],
                        ['007f7f', '00bfbf', '00ffff', '40ffff', '80ffff', 'bfffff', '033d3d', '347d7e', '609a9f', '96bdc4', 'b5d1d7', 'e2f1f4'],
                        ['00407f', '0060bf', '0080ff', '40a0ff', '80c0ff', 'bfdfff', '1b2c48', '385376', '57708f', '7792ac', 'a8bed1', 'deebf6'],
                        ['00007f', '0000bf', '0000ff', '4040ff', '8080ff', 'bfbfff', '212143', '373e68', '444f75', '585e82', '8687a4', 'd2d1e1'],
                        ['40007f', '6000bf', '8000ff', 'a040ff', 'c080ff', 'dfbfff', '302449', '54466f', '655a7f', '726284', '9e8fa9', 'dcd1df'],
                        ['7f007f', 'bf00bf', 'ff00ff', 'ff40ff', 'ff80ff', 'ffbfff', '4a234a', '794a72', '936386', '9d7292', 'c0a0b6', 'ecdae5'],
                        ['7f003f', 'bf005f', 'ff007f', 'ff409f', 'ff80bf', 'ffbfdf', '451528', '823857', 'a94a76', 'bc6f95', 'd8a5bb', 'f7dde9'],
                        ['800000', 'c00000', 'ff0000', 'ff4040', 'ff8080', 'ffc0c0', '441415', '82393c', 'aa4d4e', 'bc6e6e', 'd8a3a4', 'f8dddd'],
                        ['7f3f00', 'bf5f00', 'ff7f00', 'ff9f40', 'ffbf80', 'ffdfbf', '482c1b', '855a40', 'b27c51', 'c49b71', 'e1c4a8', 'fdeee0']
                    ];
                    var aPaletteHtml = [];
                    aPaletteHtml.push('<table>');
                    aPaletteHtml.push('<tbody>');
                    for(i=0;i<12;i++) {
                        aPaletteHtml.push('<tr>');
                        for (var x=0;x<12;x++){
                            aPaletteHtml.push('<td style="background:#' + aPaletteColor[i][x] + '"><a href="#"><span>#' + aPaletteColor[i][x] + '</span></a></td>');
                        };
                        aPaletteHtml.push('</tr>');
                    };
                    aPaletteHtml.push('</tbody>');
                    aPaletteHtml.push('<tfoot>');
                    aPaletteHtml.push('<tr>');
                    aPaletteHtml.push('<td colspan="12" class="nocolor"><a href="#">沒有顏色</a></td>');
                    aPaletteHtml.push('</tr>');
                    aPaletteHtml.push('</tfoot>');
                    aPaletteHtml.push('</table><iframe></iframe>');
                    var dPalette = setDiv('palette_picker', aPaletteHtml.join(''),dToolbar);
                    var dPaletteTd = dPalette.getElementsByTagName('td');
                    for(var i=0,j=dPaletteTd.length;i<j;i++){
                        if(dPaletteTd[i].className != 'nocolor') {
                            YUE.on(dPaletteTd[i],'mouseover',function(oEvent){
                                this.style.borderColor = '#000';
                                this.style.borderStyle = 'inset';
                                this.style.borderWidth = '1px';
                                window.status = this.innerText;
                            });
                            YUE.on(dPaletteTd[i],'mouseout',function(oEvent){
                                this.style.borderColor = '#fff';
                                this.style.borderStyle = 'solid';
                                this.style.borderWidth = '1px';
                                window.status = window.defaultStatus;
                            });
                            YUE.on(dPaletteTd[i],'click',function(oEvent){
                                YUE.stopEvent(oEvent);
                                return false;
                            });
                        }
                        else {
                            YUE.on(dPaletteTd[i],'mouseover',function(oEvent){
                                window.status = '沒有顏色';
                            });
                            YUE.on(dPaletteTd[i],'mouseout',function(oEvent){
                                window.status = window.defaultStatus;
                            });
                            YUE.on(dPaletteTd[i],'click',function(oEvent){
                                dPalette.style.display = 'none';
                                dEditorWindow.focus();
                                YUE.stopEvent(oEvent);
                                return false;
                            });
                        };
                    };
                    var dPaletteLink = dPalette.getElementsByTagName('a');
                    for(var i=0,j=dPaletteTd.length;i<j;i++){
                        if(dPaletteTd[i].className != 'nocolor'){
                            YUE.on(dPaletteTd[i],'click',function(oEvent){
                                if (window.command == 'hilitecolor' && document.uniqueID) {
                                    parent.command = 'backcolor';
                                };
                                dEditorWindow.document.execCommand(window.command, false, this.getElementsByTagName('span')[0].innerHTML);
                                dPalette.style.display = 'none';
                                dEditorWindow.focus();
                                YUE.stopEvent(oEvent);
                                return false;
                            });
                        };
                    };
                    YUD.setStyle(dPalette,'display','none');
                }
                setPalette();
                var aAlignHtml = ['<table>',
                                 ,'<tr><td><a href="#" class="justifyleft"><img src="' + oComponent.sImageUrl + 'tb_justleft_1.gif" onmouseout="this.className=\'out\'" onmouseover="this.className=\'over\'" onclick="return false"></a></td><td>靠左對齊</td></tr>'
                                 ,'<tr><td><a href="#" class="justifycenter"><img src="' + oComponent.sImageUrl + 'tb_justctr_1.gif" onmouseout="this.className=\'out\'" onmouseover="this.className=\'over\'" onclick="return false"></a></td><td>置中對齊</td></tr>'
                                 ,'<tr><td><a href="#" class="justifyright"><img src="' + oComponent.sImageUrl + 'tb_justright_1.gif" onmouseout="this.className=\'out\'" onmouseover="this.className=\'over\'" onclick="return false"></a></td><td>靠右對齊</td></tr>'
                                 ,'</table>'];
                var dAlign = setDiv('align_picker', aAlignHtml.join(''),dToolbar);
                var dLinks = dAlign.getElementsByTagName('a');
                for(var i=0,j=dLinks.length;i<j;i++){
                    YUE.on(dLinks[i],'click',onExecuteCommand, true);
                };
                YUD.setStyle(dAlign,'display','none');
                var aListHtml = ['<table>'
                                 ,'<tr><td><a href="#" class="insertorderedlist"><img src="' + oComponent.sImageUrl + 'tb_listnum_1.gif" onmouseout="this.className=\'out\'" onmouseover="this.className=\'over\'" onclick="return false"></a></td><td>編號清單</td></tr>'
                                 ,'<tr><td><a href="#" class="insertunorderedlist"><img src="' + oComponent.sImageUrl + 'tb_listblt_1.gif" onmouseout="this.className=\'out\'" onmouseover="this.className=\'over\'" onclick="return false"></a></td><td>項目清單</td></tr>'
                                 ,'</table>'];
                var dList = setDiv('list_picker',aListHtml.join(''),dToolbar);
                var dLinks = dList.getElementsByTagName('a');
                for(var i=0,j=dLinks.length;i<j;i++){
                    YUE.on(dLinks[i],'click',onExecuteCommand, true);
                };
                YUD.setStyle(dList,'display','none');
                YUE.on(document,'click',hideTool);
                YUE.on(document,'keypress',hideTool);
                YUE.on(dCloneTextarea,'keyup',onTextareaKeyup);
                YUE.on(dEditorWindow.document, 'mousedown', hideTool);
                YUE.on(dEditorWindow.document, 'keypress', hideTool);
                YUE.on(dCheckbox,'click',onViewSourceClick);
            };
            init();
        }
        else {
            oComponent.bViewSource = true;
            oComponent.sPromptMessage = sPromptMessage;
            oComponent.iWordTotal = dTextarea.value.length;
            oComponent.iMaxLength = dTextarea.getAttribute('maxlength');
            var dBorder = setDiv('border text','',dContainer);
            var dCloneTextarea = dTextarea.cloneNode(true);
            dBorder.appendChild(dCloneTextarea);
            var sTrim = YAHOO.My.String.trim(dTextarea.value);
            if(document.uniqueID){
                dCloneTextarea.outerHTML = '<textarea name="rtetmp" class="rtetmp">' + dTextarea.value + '</textarea>';
                dCloneTextarea = YUD.getElementsByClassName('rtetmp','textarea',dBorder)[0];
                dCloneTextarea.value = sTrim;
            }
            else {
                dCloneTextarea.setAttribute('name','rtetmp');
                dCloneTextarea.name = 'rtetmp';
                dCloneTextarea.value = sTrim;
            };
            dTextarea.style.display = 'none';
            var dPrompt = setDiv('prompt','',dContainer);
            var dRequirement = setDiv('requirement','',dPrompt);
            switch(true){
                case(oComponent.sPromptMessage && oComponent.iMaxLength != null) : {
                    dRequirement.innerHTML += '( ' + oComponent.sPromptMessage + '，限 <em>' + oComponent.iMaxLength + '</em> 個字內 )';
                    break;
                };
                case (!oComponent.sPromptMessage && oComponent.iMaxLength != null) : {
                    dRequirement.innerHTML += '( 限 <em>' + oComponent.iMaxLength + '</em> 個字內 )';
                    break;
                };
                case (oComponent.sPromptMessage && oComponent.iMaxLength == null) : {
                    dRequirement.innerHTML += '( ' + oComponent.sPromptMessage + ' )';
                    break;
                };
            };
            var dCalculator = setDiv('calculation','字數統計：<em>' + oComponent.iWordTotal + '</em> 字',dPrompt);
            var dNumber = dCalculator.getElementsByTagName('em')[0];
            var onTextareaKeyup = function(e) {
                oComponent.iWordTotal = dCloneTextarea.value.replace(/\r/g, '').replace(/\n/g, '').length;
                dNumber.innerHTML = oComponent.iWordTotal;
                dTextarea.value = dCloneTextarea.value;
            };
            YUE.on(dCloneTextarea,'paste',onTextareaKeyup);
            YUE.on(dCloneTextarea,'keyup',onTextareaKeyup);
            YUE.on(dCloneTextarea,'click',onTextareaKeyup);
            YUE.on(dCloneTextarea,'keypress',onTextareaKeyup);
        };
    },
    SmartTextarea:function(){
    },
    ProfileImageManager:function(dElement){
        var oComponent = this;
        oComponent.iMaxFileLength = 2048;
        oComponent.iPreviewImageWidth = 65;
        var dForm;
        var dSelectedPanel;
        var dImage;
        var dImageChangeLink;
        var dUploader;
        var dAction;
        var dFileSize;
        var dFileInput;
        var dPreview;
        var dPreviewImage;
        var dProgress;
        var dSubmit;
        var dReset;
        var reset = function() {
            if(document.uniqueID) {
                if(dPreviewImage != null){
                    dPreviewImage.parentNode.removeChild(dPreviewImage);
                    dPreviewImage = null;
                };
                dFileInput.outerHTML = '<input type="file" name="icon_upload"/>';
                dFileInput = dForm.elements['icon_upload'];
                dFileSize.innerHTML = '';
                dFileSize.style.display = 'inline';
                YUE.on(dFileInput,'change',onFileChange);
            };
            dUploader.style.display = 'none';
            dImageChangeLink.style.display = 'block';
        };
        var clearImage = function() {
            if(dPreviewImage) {
                clearTimeout(dPreviewImage.oTimer);
                dPreviewImage.style.width = 0;
                dPreviewImage.style.height = 0;
                dPreviewImage.parentNode.removeChild(dPreviewImage);
                dPreviewImage = null;
            }
            dFileSize.innerHTML = '';
        };
        var onFileChange = function(oEvent){
            var dInput = this;
            if(!document.uniqueID) {
                YUE.stopEvent(oEvent);
                return false;
            };
            var aFileExtension = dInput.value.toLowerCase().split('.');
            var sFileExtension = aFileExtension[aFileExtension.length - 1].toLowerCase();
            if(sFileExtension != 'jpg' && sFileExtension != 'gif'){
                clearImage();
                dFileInput.outerHTML = '<input type="file" name="icon_upload"/>';
                dFileInput = dForm.elements['icon_upload'];
                YUE.on(dFileInput,'change',onFileChange);
                YUE.stopEvent(oEvent);
                return false;
            };
            if(dPreviewImage!=null) {
                dPreviewImage.parentNode.removeChild(dPreviewImage);
                dPreviewImage = null;
            };
            dPreviewImage = new Image();
            dPreviewImage.src = dFileInput.value;
            dPreview.insertBefore(dPreviewImage,dAction);
            dPreviewImage.oTimer = setTimeout('void(0)',0);
            var resizeImage = function() {
                if(dPreviewImage.complete && dPreviewImage.width > 0 && dPreviewImage.height > 0 ) {
                    clearTimeout(dPreviewImage.oTimer);
                    if(parseInt(dPreviewImage.fileSize/1024) > oComponent.iMaxFileLength){
                        alert('您的圖檔大小超過限制，請重新選擇');
                        clearImage();
                        dFileInput.outerHTML = '<input type="file" name="icon_upload"/>';
                        dFileInput = dForm.elements['icon_upload'];
                        YUE.on(dFileInput,'change',onFileChange);
                    };
                    window.status = dPreviewImage.src;
                    dFileSize.style.display = 'block';
                    dFileSize.innerHTML = '檔案大小：<em>' + parseInt(dPreviewImage.fileSize/1024) + 'K</em>';
                    var iRatio = oComponent.iPreviewImageWidth/dPreviewImage.width;
                    dPreviewImage.style.width = oComponent.iPreviewImageWidth + 'px';
                    dPreviewImage.style.height = parseInt(dPreviewImage.height*iRatio) + 'px';
                }
                else {
                    dPreviewImage.oTimer = setTimeout(resizeImage,100);
                };
            };
            dPreviewImage.oTimer = setTimeout(resizeImage,100);
        };
        var onFileSubmitClick = function(oEvent) {
            if(dFileInput.value == '') {
                alert('請選擇您所要上傳的檔案');
                YUE.stopEvent(oEvent);
                return false;
            };
            dProgress.style.display = 'block';
            var oCallback = {
                upload:function(oResponse){
                    dImage.setAttribute('src',oResponse.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,''));
                    dForm.elements['is_upload'].value = 'y';
                    if(dPreviewImage!=null){
                        dPreviewImage.parentNode.removeChild(dPreviewImage);
                        dPreviewImage = null;
                    };
                    dUploader.style.display = 'none';
                    dImageChangeLink.style.display = 'block';
                    dFileSize.innerHTML = '';
                    dFileSize.style.display = 'inline';
                    dFileInput.outerHTML = '<input type="file" name="icon_upload"/>';
                    dFileInput = dForm.elements['icon_upload'];
                    YUE.on(dFileInput,'change',onFileChange);
                    dProgress.style.display = 'none';
                    dImageChangeLink.innerHTML = '<a href="#" class="modify">變更</a> | <a href="#" class="delete">刪除</a>';
                    dSubmit.disabled = false;
                    dReset.disabled = false;
                }
            };
            dSubmit.disabled = true;
            dReset.disabled = true;
            YUC.setForm(dForm,true);
            YUC.asyncRequest('POST',dForm.action,oCallback);
            YUE.stopEvent(oEvent);
            return false;
        };
        var onFileResetClick = function(oEvent) {
            reset();
            YUE.stopEvent(oEvent);
            return false;
        };
        var onImageDeleteClick = function(oEvent){
            if(confirm('')==true){
                var oCallback = {
                    success : function(e) {
                        var oData = eval('(' + e.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,'') + ')');
                        if(oData[0].result == 'true'){
                            dForm.elements['is_upload'].value = 'n';
                            dImageChangeLink.innerHTML = '<a href="#" class="modify">新增</a>';
                            dImage.src = oData[0].img;
                            alert(oData[0].message)
                        }
                        else {
                            alert(oData[0].message);
                        };
                    },
                    failure:function(e){
                        alert(oData.statusText);
                    }
                };
                var sUrl = YKP.RestUrl + '?method=my.profile.image.delete&rnd=' + Math.random() + Date.parse(new Date());
                YUC.asyncRequest('GET', sUrl, oCallback);
                YUE.stopEvent(oEvent);
                return false;
            }
            YUE.stopEvent(oEvent);
            return false;
        };
        var onImageChangeClick = function(oEvent) {
            dUploader.style.display = 'block';
            dImageChangeLink.style.display = 'none';
            YUE.stopEvent(oEvent);
            return false;
        };
        var onTabClick = function(oEvent){
            var dRadio = this;
            var dTab = dRadio.parentNode;
            var dPanel = YKP.Tool.getNextElementByTag(dTab,'div');
            if(dPanel == oComponent.dSelectedPanel){
                YUE.stopEvent(oEvent);
                return false;
            };
            dSelectedPanel.style.display = 'none';
            dSelectedPanel = dPanel;
            dSelectedPanel.style.display = 'block';
            dUploader.style.display = 'none';
            dImageChangeLink.style.display = 'block';
            reset();
        };
        var init = function() {
            try {
                var dTabs = YUD.getElementsByClassName('tab','div',dElement);
                var dPanels = YUD.getElementsByClassName('panel','div',dElement);
                var dRadios = YUD.getElementsByClassName('radio','input',dElement);
                for(var i=0,j=dTabs.length;i<j;i++){
                    if(dRadios[i].checked){
                        dPanels[i].style.display = 'block';
                        dSelectedPanel = dPanels[i];
                    }
                    else {
                        dPanels[i].style.display = 'none';
                    };
                    YUE.on(dRadios[i],'click',onTabClick);
                };
                dForm = dRadios[0].form;
                YUD.generateId(dForm);
                dImageChangeLink = document.createElement('p');
                dImageChangeLink.innerHTML = (dForm.elements['is_upload'].value == 'y')?'<a href="#" class="modify">變更</a> | <a href="#" class="delete">刪除</a>':'<a href="#" class="modify">新增</a>';
                var dImageBox = YUD.getElementsByClassName('img','div',dElement)[0];
                dImageBox.appendChild(dImageChangeLink);
                dImage = dImageBox.getElementsByTagName('img')[0];
                dUploader = YUD.getElementsByClassName('uploader','div',dElement)[0];
                dUploader.style.display = 'none';
                dFileInput = dForm.elements['icon_upload'];
                dPreview = document.createElement('div');
                dPreview.className = 'preview';
                dPreview.innerHTML = [
                    '<div class="action">',
                        '<strong></strong>',
                        '<input type="submit" name="upload_submit" value="上傳圖片"/>',
                        '<input type="reset" name="upload_reset" value="取消"/>',
                    '</div>',
                ].join('');
                dUploader.appendChild(dPreview);
                dAction = YUD.getElementsByClassName('action','div',dElement)[0];
                dFileSize = dAction.getElementsByTagName('strong')[0];
                dSubmit = dForm.elements['upload_submit'];
                dReset = dForm.elements['upload_reset'];
                dProgress = document.createElement('div');
                dProgress.innerHTML = '<em style="color:red;text-align:center;display:block;font-weight:bold;letter-spacing:2px;color:#006C9A;font-size:125%;">資料儲存中</em><img src="' + YKP.ImageUrl + 'generic_progressbar.gif" width="170" height="22" style="margin:0 auto"/>';
                dAction.appendChild(dProgress);
                YKP.Tool.setStyle('background:#fff;border:solid 1px #ccc;margin:4px;width:180px;padding:5px 10px 5px;height:50px;text-ailgn:center;',dProgress);
                dProgress.style.display = 'none';

                YMI.addListener(dElement,'click',onImageChangeClick,'class','add',true,2)
                YMI.addListener(dElement,'click',onImageChangeClick,'class','modify',true,2)
                YMI.addListener(dElement,'click',onImageDeleteClick,'class','delete',true,2)

                if(document.uniqueID){YUE.on(dFileInput,'change',onFileChange);}
                YUE.on(dSubmit,'click',onFileSubmitClick);
                YUE.on(dReset,'click',onFileResetClick);
            }
            catch(oError){};
        };
        init();
    },
    Tab:function(dModule) {
        var dUl;
        var dCurrentTabLink;
        var oComponent = this;
        this.onTabClick = function(oEvent) {
            if(oEvent) {
                var dLink = oEvent.target;
            }
            else {
                var dLink = this;
            }
            dCurrentTabLink = dLink;
            var dLi = dLink.parentNode.parentNode;
            if(dUl.lastFocus != null && dUl.lastFocus != dLi){
                YUD.removeClass(dUl.lastFocus,'on');
                YUD.replaceClass(dUl.lastBd,'on','off');
            };
            dUl.lastFocus = dLi;
            dUl.lastBd = dLi.bd;
            if(!YUD.hasClass(dLi,'on')){YUD.addClass(dLi,'on');};
            YUD.replaceClass(dLi.bd,'off','on');
            if(oEvent){
                YUE.stopEvent(oEvent);
                return false;
            };
        };
        var init = function() {
            //{{{
            var dHead = YUD.getElementsByClassName('hd','div',dModule)[0];
            var dBody = YUD.getElementsByClassName('bd','div',dModule)[0];
            var dTabContainer = dHead.getElementsByTagName('div')[0];
            var dTitles = dBody.getElementsByTagName('h4');
            dUl = document.createElement('ul')
            dUl.className = 'tabs clearfix';
            var aBuffer = [];
            while(dTitles.length>0){
                aBuffer.push('<li><q class="cl"></q><q class="cr"></q><q class="pipe"></q><q class="pointer"></q><span><a href="#" class="tablink">' + dTitles[0].innerHTML + '</a></span></li>');
                dTitles[0].parentNode.removeChild(dTitles[0]);
            }
            dUl.innerHTML = aBuffer.join('');
            dTabContainer.appendChild(dUl);
            var dTabs = dUl.getElementsByTagName('li');
            var dTabLinks = dUl.getElementsByTagName('a');
            var dPanel = YUD.getElementsByClassName('tab-panel','div',dBody)[0];
            var dPanelContent = dPanel.getElementsByTagName('li');
            for(var i=0,j=dTabs.length;i<j;i++){
                if(i==0) {
                    YUD.addClass(dTabs[i],'left');
                }
                else if (i==j-1) {
                    YUD.addClass(dTabs[i],'last');
                }
                YUE.on(dTabs[i],'click',function(e){
                    YUE.stopEvent(e);
                    return false;
                });
                YUE.on(dTabLinks[i],'click',oComponent.onTabClick);
                YUE.on(dTabLinks[i],'focus',oComponent.onTabClick);
                dTabLinks[i].dofocus = oComponent.onTabClick;
                if(dPanelContent[i]) dTabs[i].bd = dPanelContent[i];
                YUD.addClass(dTabs[i].bd,'off')
            };
            dTabLinks[0].dofocus();
            //}}}
        };
        init();
    },
    Toggle:function(dTrigger,dBody,oConfig){
        var oComponent = this;
        if(typeof(oConfig)=='undefined'){oConfig = {};};
        oComponent.config = {};
        oComponent.config.iTimeout = ((oConfig.iTimeout!=null)?oConfig.iTimeout*1000:1000);
        oComponent.config.iSpeed = ((oConfig.iSpeed!=null)?oConfig.iSpeed:0.2);
        oComponent.config.bIsAnim = ((oConfig.bIsAnim!=null)?oConfig.bIsAnim:true);
        oComponent.config.aWording = ((oConfig.aWording!=null)?oConfig.aWording:['展開','收摺']);
        var iHeight = dBody.offsetHeight;
        dTrigger.innerHTML = (YUD.getStyle(dBody,'display') == 'block')?oComponent.config.aWording[1]:oComponent.config.aWording[0];
        oComponent.bShrink = (YUD.getStyle(dBody,'display') == 'block')?false:true;
        oComponent.onToggleComplete = new YAHOO.util.CustomEvent('togglecomplete', this);
		oComponent.expand = function() {
            YUD.setStyle(dBody,'display','block');
            if(oComponent.config.bIsAnim){
                YUD.setStyle(dBody,'overflow','hidden');
                var oAttribute = {
                    height:{from:0,to:iHeight,unit:'px'}
                };
                var oAnim = new YAHOO.util.Anim(dBody,oAttribute,oComponent.config.iSpeed,YAHOO.util.Easing.easeOutStrong);
                oAnim.animate();
                oAnim.onComplete.subscribe(function(){
                    dTrigger.innerHTML = oComponent.config.aWording[1];
                    oComponent.bShrink = false;
					oComponent.onToggleComplete.fire();
                });
            }
            else {
                dTrigger.innerHTML = oComponent.config.aWording[1];
                oComponent.bShrink = false;
				oComponent.onToggleComplete.fire();
            };
        };
        oComponent.shrink = function() {
            if(oComponent.config.bIsAnim){
                YUD.setStyle(dBody,'overflow','hidden');
                var oAttribute = {
                    height:{from:iHeight,to:0,unit:'px'}
                };
                var oAnim = new YAHOO.util.Anim(dBody,oAttribute,oComponent.config.iSpeed,YAHOO.util.Easing.easeOutStrong);
                oAnim.animate();
                oAnim.onComplete.subscribe(function(){
                    YUD.setStyle(dBody,'display','none');
                    dTrigger.innerHTML = oComponent.config.aWording[0];
                    oComponent.bShrink = true;
					oComponent.onToggleComplete.fire();
                });
            }
            else {
                YUD.setStyle(dBody,'display','none');
                dTrigger.innerHTML = oComponent.config.aWording[0];
                oComponent.bShrink = true;
				oComponent.onToggleComplete.fire();
            };
        };
        var onTriggerClick = function(oEvent) {
            if(oComponent.bShrink){
                oComponent.expand();
            }
            else {
                oComponent.shrink();
            };
            YUE.stopEvent(oEvent);
            return false;
        };
        YUE.on(dTrigger,'click',onTriggerClick);
    },
    ToolTip:function(dModule,sTriggerClassName,sTipClassName,oConfig) {
        var oComponent = this;
        if(typeof(oConfig)=='undefined'){oConfig = {};};
        oComponent.config = {};
        oComponent.config.iTimeout = ((oConfig.iTimeout!=null)?oConfig.iTimeout*1000:1000);
        oComponent.config.iSpeed = ((oConfig.iSpeed!=null)?oConfig.iSpeed:0.5);
        oComponent.config.aTipSize = ((oConfig.aTipSize!=null)?oConfig.aTipSize:[20,28]);
        oComponent.config.sTipSizeUnit = ((oConfig.sTipSizeUnit!=null)?oConfig.sTipSizeUnit:'em');
        oComponent.config.bIsAnim = ((oConfig.bIsAnim!=null)?oConfig.bIsAnim:true);
        var bMouseOver = false;
        var oTimer;
        var dTip;
        var dLast;
        oComponent.render = function() {
            dTip = document.createElement('div');
            document.body.appendChild(dTip);
            document.body.appendChild(dTip);
            YUD.setStyle(dTip,'width',oComponent.config.aTipSize[0] + oComponent.config.sTipSizeUnit);
            YUD.setStyle(dTip,'height',oComponent.config.aTipSize[1] + oComponent.config.sTipSizeUnit);
            YUD.setStyle(dTip,'position','absolute');
            YUD.setStyle(dTip,'width','0');
            YUD.setStyle(dTip,'height','0');
            YUD.setStyle(dTip,'display','none');
            YUD.setStyle(dTip,'overflow','hidden');
            YUD.addClass(dTip,sTipClassName);
            YUD.setXY(dTip,[-500,-500]);
            YUE.on(dTip,'mouseover',onTipMouseOver);
            YUE.on(dTip,'mouseout',onTipMouseOut);
            YMI.addListener(dModule,'mouseover',onTriggerMouseOver,'class',sTriggerClassName,false,1);
            YMI.addListener(dModule,'mouseout',onTriggerMouseOut,'class',sTriggerClassName,false,1);
        };
        var hideTip = function() {
            clearTimeout(oTimer);
            if(bMouseOver) {return;}
            if(oComponent.config.bIsAnim == true){
                var oAttribute = {width:{to:0},height:{to:0}};
                var oAnim = new YAHOO.util.Anim(dTip,oAttribute,oComponent.config.iSpeed,YAHOO.util.Easing.easeInStrong);
                oAnim.onComplete.subscribe(function(){dTip.style.display = 'none';});
                oAnim.animate();
            }
            else {
                YUD.setStyle(dTip,'width','0');
                YUD.setStyle(dTip,'height','0');
                dTip.style.display = 'none';
            };
        };
        var onTriggerMouseOver = function(oEvent) {
            bMouseOver = true;
            clearTimeout(oTimer);
            var dTrigger = oEvent.target;
            if(dLast != null && dLast != dTrigger && dTip.style.display == 'block'){
                dLast = dTrigger;
                var aRegion = YUD.getRegion(dTrigger);
                var dContent = YUD.getElementsByClassName(sTipClassName,'div',dTrigger.parentNode.parentNode)[0];
                dTip.innerHTML = (typeof(dContent)!='undefined')?dContent.innerHTML:'';
                YUD.setX(dTip,aRegion['right']);
                YUD.setY(dTip,aRegion['top']);
                return false;
            };
            if(YUD.getStyle(dTip,'display') == 'none') {
                dLast = dTrigger;
                var aRegion = YUD.getRegion(dTrigger);
                dContent = YUD.getElementsByClassName(sTipClassName,'div',dTrigger.parentNode)[0];
                if(typeof(dContent) == 'undefined'){dContent = YUD.getElementsByClassName(sTipClassName,'div',dTrigger.parentNode.parentNode)[0];};
                dTip.innerHTML = (typeof(dContent)!='undefined')?dContent.innerHTML:'';
                YUD.setStyle(dTip,'display','block');
                YUD.setX(dTip,aRegion['right']);
                YUD.setY(dTip,aRegion['top']);
                if(oComponent.config.bIsAnim == true){
                    var oAttribute = {
                        width:{from:0,to:oComponent.config.aTipSize[0],unit:oComponent.config.sTipSizeUnit},
                        height:{from:0,to:oComponent.config.aTipSize[1],unit:oComponent.config.sTipSizeUnit}
                    };
                    var oAnim = new YAHOO.util.Anim(dTip,oAttribute,oComponent.config.iSpeed,YAHOO.util.Easing.easeOutStrong);
                    oAnim.animate();
                }
                else {
                    YUD.setStyle(dTip,'width',oComponent.config.aTipSize[0] + oComponent.config.sTipSizeUnit);
                    YUD.setStyle(dTip,'height',oComponent.config.aTipSize[1] + oComponent.config.sTipSizeUnit);
                }
            };
        };
        var onTriggerMouseOut = function(oEvent) {
            bMouseOver = false;
            if(oComponent.config.bIsAnim){
                oTimer = setTimeout(hideTip,oComponent.config.iTimeout);
            }
            else {
                hideTip();
            };
        };
        var onTipMouseOver = function(oEvent) {
            bMouseOver = true;
        };
        var onTipMouseOut = function(oEvent) {
            bMouseOver = false;
            if(oComponent.config.bIsAnim){
                oTimer = setTimeout(hideTip,oComponent.config.iTimeout);
            }
            else {
                hideTip();
            };
        };
    },
    Tagging:function(){
    },
    NewsScroller:function(dElement,oConfig){
        //check libraries
        try {
            var YUE = YAHOO.util.Event;
            var YUD = YAHOO.util.Dom;
            var YUM = YAHOO.util.Motion;
        }
        catch (oError){
            alert(oError);
            return;
        };
        var oComponent = this;
        //configurations : global variables
        if(typeof(oConfig)=='undefined'){oConfig = {};}
        oComponent.config = {};
        oComponent.config.iDuration = ((oConfig.iDuration!=null)?oConfig.iDuration:0.5);
        oComponent.config.iInterval = ((oConfig.iInterval!=null)?oConfig.iInterval:3);
        oComponent.config.sItemClassName = (oConfig.sItemClassName!=null)?oConfig.sItemClassName:'';
        oComponent.config.oEasingMethod = (oConfig.oEasingMethod!=null)?oConfig.oEasingMethod:null;
        //private variables
        var iShowCurrent = 0;
        var iShowNext = 1;
        var iQueueCurrent = 0;
        var iQueueNext = 1;
        var dScroller;
        var dQueues;
        var dShows = [];
        var oMotion1,oMotion2;
        var oScrollerTimer;
        var dHeightDetector;
        oComponent.run = function() {
            iShowNext = (iShowCurrent)?0:1;
            iQueueNext = ((iQueueCurrent+1)<dQueues.length-2)?iQueueCurrent+1:0;
            dShows[iShowNext].innerHTML = dQueues[iQueueNext].innerHTML;
            var iShowCurrentBottomY = YUD.getRegion(dShows[iShowCurrent])['bottom'];
            YUD.setStyle(dShows[iShowNext],'display','block');
            YUD.setY(dShows[iShowNext],iShowCurrentBottomY);
            var iDistance = iShowCurrentBottomY - YUD.getRegion(dShows[iShowCurrent])['top'];
            oMotion1.attributes.points = {by:[0,-iDistance]};
            oMotion2.attributes.points = {by:[0,-iDistance]};
            oMotion1.animate();
            oMotion2.animate();
        };
        var onMotionComplete = function(oEvent) {
            YUD.setStyle(dShows[iShowCurrent],'display','none');
            iShowCurrent = (iShowCurrent)?0:1;
            iQueueCurrent = iQueueNext;
        };
        var init = function() {
            dScroller = (typeof(dElement) == 'object')?dElement:document.getElementById(dElement);
            dQueues = (oComponent.config.sItemClassName != '')?YUD.getElementsByClassName(oComponent.config.sItemClassName,'*',dScroller):dScroller.getElementsByTagName('li');
            YUD.setStyle(dQueues,'display','none');
            for(var i=0;i<2;i++){
                dShows[i] = document.createElement(dQueues[0].nodeName.toLowerCase());
                dScroller.appendChild(dShows[i]);
                YUD.setStyle(dShows[i],'position','absolute');
            };
            dShows[0].innerHTML = dQueues[0].innerHTML;
            YUD.setStyle(dShows[1],'display','none');
            oMotion1 = new YAHOO.util.Motion(dShows[0],{},oComponent.config.iDuration,oComponent.config.oEasingMethod);
            oMotion2 = new YAHOO.util.Motion(dShows[1],{},oComponent.config.iDuration,oComponent.config.oEasingMethod);
            oScrollerTimer = setInterval(oComponent.run,oComponent.config.iInterval*1000);
            oMotion1.onComplete.subscribe(onMotionComplete);
            YUE.on(dScroller,'mouseover',function(){
                clearInterval(oScrollerTimer);
                oScrollerTimer = null;
            });
            YUE.on(dScroller,'mouseout',function(){
                if(oScrollerTimer == null) {
                    oScrollerTimer = setInterval(oComponent.run,oComponent.config.iInterval*1000)
                };
            });
        };
        init();
    },
    Step:function(dModule){
        var oComponent = this;
        var dPrevious,dNext = null;
        oComponent.selectedIndex = 0;
        oComponent.steps = [];
		oComponent.hasControl = true;
        oComponent.onSwitchStart = new YAHOO.util.CustomEvent('switchstart');
        oComponent.onSwitchComplete = new YAHOO.util.CustomEvent('switchcomplete');
        oComponent.onRenderComplete = new YAHOO.util.CustomEvent('rendercomplete');
        oComponent.addStep = function(dStep){
            switch(typeof(dStep)){
                case 'string':
                    oComponent.steps.push(document.getElementById(dStep));
                    break;
                case 'object':
                    if(dStep.length){
                        for(var i=0,j=dStep.length;i<j;i++){
                            oComponent.steps.push(dStep[i]);
                        };
                    }
                    else {
                        oComponent.steps.push(dStep);
                    };
                    break;
                default:
                    throw new Error('not an object or id')
                    break;
            };
        };
        var setButton = function() {
            if(oComponent.selectedIndex==0){
                YUD.setStyle(dPrevious,'display','none');
            }
            else {
                YUD.setStyle(dPrevious,'display','inline');
            };
            if(oComponent.selectedIndex==oComponent.steps.length-1){
                YUD.setStyle(dNext,'display','none');
            }
            else {
                YUD.setStyle(dNext,'display','inline');
            };
        };
        var onSwitchClick = function(oEvent,sDirection) {
            oComponent.onSwitchStart.fire();
            if(sDirection == 'next'){
                oComponent.next();
            }
            else {
                oComponent.previous();
            };
            oComponent.onSwitchComplete.fire();
        };
        oComponent.next = function() {
            var iNextIndex = oComponent.selectedIndex + 1;
            if(iNextIndex > oComponent.steps.length - 1){
                YUE.stopEvent(oEvent);
                return false;
            };
            YUD.setStyle(oComponent.steps[oComponent.selectedIndex],'display','none');
            oComponent.selectedIndex = iNextIndex;
            YUD.setStyle(oComponent.steps[oComponent.selectedIndex],'display','block');
            setButton();
        };
        oComponent.previous = function() {
            var iPreviousIndex = oComponent.selectedIndex - 1;
            if(iPreviousIndex < 0){
                YUE.stopEvent(oEvent);
                return false;
            };
            YUD.setStyle(oComponent.steps[oComponent.selectedIndex],'display','none');
            oComponent.selectedIndex = iPreviousIndex;
            YUD.setStyle(oComponent.steps[oComponent.selectedIndex],'display','block');
            setButton();
        }
        oComponent.render = function() {
            for(var i=0,j=oComponent.steps.length;i<j;i++){
                if(i!=oComponent.selectedIndex){YUD.setStyle(oComponent.steps[i],'display','none');};
            };
			if(oComponent.hasControl){
				dPrevious = document.createElement('button');
				dPrevious.innerHTML = '上一步';
				dModule.appendChild(dPrevious);
				YUE.on(dPrevious,'click',onSwitchClick,'previous');
				dNext = document.createElement('button');
				dNext.innerHTML = '下一步';
				dModule.appendChild(dNext);
				YUE.on(dNext,'click',onSwitchClick,'next');
				setButton();
			}
            oComponent.onRenderComplete.fire();
        };
    }	
};
F2E.Util = {
    Cookie:{
        get:function(sName) {
            var sRE = '(?:; )?' + sName + '=([^;]*);?';
            var oRE = new RegExp(sRE);
            if(oRE.test(document.cookie)){
                return decodeURIComponent(RegExp['$1']);
            }
            else {
                return null;
            }
        },
        set:function(sName,sValue,oExpire,sPath,sDomain,bSecure){
            var sCookie = sName + '=' + encodeURIComponent(sValue);
            if(oExpire)sCookie += '; expire=' + oExpire.toGMTString();
            if(sPath)sCookie += '; path=' + sPath;
            if(sDomain)sCookie += '; domain=' + sDomain;
            if(bSecure)sCookie += '; secure';
            document.cookie = sCookie;
        }
    },
    Form:{
        checkNull:function(dElement,sType){
            if(dElement.nodeName!='input' || dElement.nodeName!='textarea'){
                throw new Error('Missing or inappropriate argument passed to checkMaxLength()');
            };
            if(sType!='html'){
                if(F2E.String.trim(dElement.value).length == 0) {
                    return false;
                };
            }
            else {
                var dTemp = document.createElement('div');
                document.body.appendChild(dTemp);
                dTemp.innerHTML = dElement.value;
                var sTemp = (document.uniqueID)?dTemp.innerText:dTemp.textContent;
                document.body.removeChild(dTemp);
                if(F2E.trim(sTemp).replace(/\r\n/g,'') == 0) {
                    return false;
                };
            };
            return true;
        },
        checkMaxLength:function(dElement,iMaxLength,sType){
            if(typeof(dElement)!='object' || !iMaxLength || iMaxLength == 0){
                throw new Error('Missing or inappropriate argument passed to checkMaxLength()');
            };
            if(sType!='html'){
                if(F2E.String.trim(dElement.value).length > iMaxLength) {
                    return false;
                };
            }
            else {
                var dTemp = document.createElement('div');
                document.body.appendChild(dTemp);
                dTemp.innerHTML = dElement.value;
                var sTemp = (document.uniqueID)?dTemp.innerText:dTemp.textContent;
                document.body.removeChild(dTemp);
                if(F2E.trim(sTemp).replace(/\r\n/g,'') > iMaxLength) {
                    return false;
                };
            };
            return true;
        },
        checkMinLength:function(dElement,iMinLength,sType){
            if(typeof(dElement)!='object' || !iMinLength || iMinLength == 0){
                throw new Error('Missing or inappropriate argument passed to checkMaxLength()');
            };
            if(sType!='html'){
                if(F2E.String.trim(dElement.value).replace(/\r\n/g,'').length < iMinLength) {
                    return false;
                };
            }
            else {
                var dTemp = document.createElement('div');
                document.body.appendChild(dTemp);
                dTemp.innerHTML = dElement.value;
                var sTemp = (document.uniqueID)?dTemp.innerText:dTemp.textContent;
                document.body.removeChild(dTemp);
                if(F2E.String.trim(sTemp).replace(/\r\n/g,'').length < iMinLength) {
                    return false;
                };
            };
            return true;
        },
        setLabel:function(dElement) {
            var getNextFormElement = function(oNode){
                while(oNode['nextSibling']){
                    oNode = oNode['nextSibling'];
                    if(oNode&&oNode.tagName&&(oNode.tagName.toLowerCase()=='input'||oNode.tagName.toLowerCase()=='select'||oNode.tagName.toLowerCase()=='textarea')){
                        return oNode;
                    };
                };
                return null;
            };
            var getPreviousFormElement = function(oNode){
                while(oNode['previousSibling']){
                    oNode = oNode['previousSibling'];
                    if(oNode&&oNode.tagName&&(oNode.tagName.toLowerCase()=='input'||oNode.tagName.toLowerCase()=='select'||oNode.tagName.toLowerCase()=='textarea')){
                        return oNode;
                    };
                };
                return null;
            };
		    var getParentByTag = function(oNode,sTag){
		        while(oNode['parentNode']){
		            oNode = oNode['parentNode'];
		            var t = oNode.tagName;
		            if(t && t==sTag.toUpperCase()){
		                return oNode;
		            }
		        }
		    };			
            var dLabels = dElement.getElementsByTagName('label');
            for(var i=0,j=dLabels.length;i<j;i++){
                if(getPreviousFormElement(dLabels[i]) && !dLabels[i].htmlFor) {
                    var dElement = getPreviousFormElement(dLabels[i]);
                    if(dElement.id){
                        dLabels[i].htmlFor = dElement.id;
                    }
                    else {
                        YUD.generateId(dElement);
                        dLabels[i].htmlFor = dElement.id;
                    }
                }
                if(getNextFormElement(dLabels[i]) && !dLabels[i].htmlFor) {
                    var dElement = getNextFormElement(dLabels[i]);
                    if(dElement.id){
                        dLabels[i].htmlFor = dElement.id;
                    }
                    else {
                        YUD.generateId(dElement);
                        dLabels[i].htmlFor = dElement.id;
                    }
                }
                if(getParentByTag(dLabels[i],'th')){
                    var dTh = getParentByTag(dLabels[i],'th');
                    var dTd = dTh.parentNode.cells[dTh.cellIndex + 1];
                    var dLabel = dLabels[i];
                    if(dTd.getElementsByTagName('input')[0]) {
                        var dInput = dTd.getElementsByTagName('input')[0];
                        var k = 0;
                        while(dInput.type == 'hidden') {
                            k+=1;
                            dInput = dTd.getElementsByTagName('input')[k];
                            if(typeof(dInput) == 'undefined') {break;};
                        }
                        if(dInput) {
                            if(!dLabel.htmlFor){
                                if(!dInput.id){YUD.generateId(dInput);}
                                dLabel.htmlFor = dInput.id;
                            };
                        }
                    };
                    if(dTd.getElementsByTagName('select')[0]) {
                        var dInput = dTd.getElementsByTagName('select')[0];
                        if(!dLabel.htmlFor){
                            if(!dInput.id){dInput.id = 'yud_gen_' + Math.random()*10 + Date.parse(new Date());}
                            dLabel.htmlFor = dInput.id;
                        };
                    };
                    if(dTd.getElementsByTagName('textarea')[0]) {
                        var dInput = dTd.getElementsByTagName('textarea')[0];
                        if(!dLabel.htmlFor){
                            if(!dInput.id){YUD.generateId(dInput);}
                            dLabel.htmlFor = dInput.id;
                        };
                    };
                }
            }
        }
    },
    String:{
        trim:function(sString){return sString.replace(/(^\s+)|\s+$/g,"");},
		getRandom:function(){
			return Math.random() + Date.parse(new Date());
		},		
        setBreak:function(sString){
            return sString.replace(/([\w|\d|\.|\@]{4})/g, "\$1<wbr>");
        },
        Url:{
            getHost:function(sUrl) {
                var sHostDir = '';
                if(sUrl.indexOf('/')!=-1) {
                    sHostDir = sUrl.substr(0,sUrl.lastIndexOf('/')+1);
                    if(sHostDir) {sUrl = sUrl.replace(sHostDir,'');}
                };
                if(sUrl.indexOf('?')!=-1) {
                    sUrl = sUrl.split('?')[0];
                };
                return sUrl.toLowerCase();
            },
            getParameters:function(sUrl) {
                if(sUrl.indexOf('?')!=-1) {
                    sUrl = sUrl.split('?')[1];
                }
                return sUrl;
            },
            getParameter:function(sUrl,sName) {
                var sParamList = this.getParameters(sUrl);
                if(!this.hasParameter(sParameterName,sParamList)){
                    return '';
                };
                var aParameter = sParamList.split('&');
                for(var i=0,j=aParameter.length;i<j;i++){
                    if(sName == aParameter[i].split('=')[0]){
                        return aParameter[i].split('=')[1];
                    };
                };
            },
            hasParameter:function(sParamName,sParamList){
                var aParameter = sParamList.split('&')
                for(var i=0,j=aParameter.length;i<j;i++){
                    if(sParamName == aParameter[i].split('=')[0]){
                        return true;
                    };
                };
                return false;
            },
            replaceParameter:function(sUrl,sParameterName,sParameterValue){
                var sHostDir = this.getHost(sUrl);
                var aParameter = this.getParameters(sUrl).split('&');
                var sParameterList = '';
                for(var i=0,j=aParameter.length;i<j;i++){
                    var sName = aParameter[i].split('=')[0];
                    var sValue = aParameter[i].split('=')[1];
                    if(sParamName == sName){
                        sParameterList += sParameterName + '=' + encodeURIComponent(sValue) + '&'
                    }
                    else {
                        sParameterList += sParameterName + '=' + encodeURIComponent(sParameterValue) + '&'
                    };
                }
                var sUrl = sHostDir + '?' + sParamList;
                sUrl = sUrl.substr(0,(sHostDir + '?' + paramList).length - 1);
                return sUrl;
            },
            addParameter:function(sUrl,sParameterName,sParameterValue) {
                var sParameters = this.getParameters(sUrl);
                if(sUrl.indexOf('?') == -1){
                    sUrl += '?' + sParameterName + '=' + encodeURIComponent(sParameterValue);
                }
                else {
                    if(sUrl.indexOf('?') == (sUrl.length - 1)) {
                        sUrl += sParameterName + '=' + encodeURIComponent(sParameterValue);
                    }
                    else {
                        if(!this.hasParameter(sParameterName,this.getParameters(sUrl))){
                            sUrl += '&' + sParameterName + '=' + encodeURIComponent(sParameterValue);
                        }
                        else {
                            sUrl = this.replaceParameter(sUrl,sParameterName,sParameterValue);
                        };
                    };
                };
                return sUrl;
            }
        }
    },
    Time:{
        getDateTime:function(oDate) {
            var sMonth = (1+eval(oDate.getMonth()) < 10)?'0'+eval(oDate.getMonth()+1):eval(oDate.getMonth()+1);
            var sDate = (oDate.getDate() < 10)?'0'+oDate.getDate():oDate.getDate();
            var sHour = (oDate.getHours() < 10)?'0'+oDate.getHours():oDate.getHours();
            var sMinute = (oDate.getMinutes() < 10)?'0'+oDate.getMinutes():oDate.getMinutes();
            var sSecond = (oDate.getSeconds() < 10)?'0'+oDate.getSeconds():oDate.getSeconds();
            return oDate.getYear() + '-' + sMonth + '-' + sDate + ' ' + sHour + ':' + sMinute + ':' + sSecond;
        }
    },
	Library:function(){
		var oSelf = this;
		var dHead = document.getElementsByTagName('head')[0];
		var oLibrary = {};
		sProxyPath = 'proxy.php?url=';
		var onReadyStateChange = function(oCallback,  URLS , URLS2){
			if(this.readyState == 'loaded' || this.readyState == 'complete')
			{
				this.completed = true;
				loadHandler(oCallback , this.tagName.toLowerCase(),  URLS , URLS2);		
				
			}
		};
		var onLoad = function(oCallback,  URLS , URLS2){
			this.completed = true;
			loadHandler(oCallback , this.tagName.toLowerCase(),  URLS , URLS2);				
		}
		var loadHandler = function(oCallback,sType , URLS , URLS2 ){
			var sUrl;
			if( URLS.length)
			{
				sUrl = URLS.shift();
			};
			if(sUrl)
			{
				if(oLibrary[sUrl])
				{
					loadHandler(oCallback,sType , URLS , URLS2 );
				}
				else
				{
					createElement(sType,oCallback,sUrl,  URLS , URLS2 );
				};
			
			}else
			{
				oCallback(URLS2);
				this.onreadystatechange = null;			
			};
		};
		var createElement = function(sType,oCallback,sUrl,  URLS , URLS2){			
			sType = sType ||'script';
			var dEl = document.createElement(sType);
			if(sType=='script')
			{
				dEl.setAttribute('src',sUrl);
				dEl.setAttribute('type','text/javascript');
			}
			else
			{
				dEl.setAttribute('rel',"stylesheet");
				dEl.setAttribute('type',"text/css");
				dEl.setAttribute('href',sUrl);
			};
			if(document.uniqueID)
			{	
				//IE
				dEl.onreadystatechange = function()
				{
					//fix memory leak
					(function(dEl){ onReadyStateChange.call( dEl , oCallback ,  URLS , URLS2 )})(this);	
				};

				dHead.appendChild(dEl);
			}else if(document.getBoxObjectFor || (window.opera && document.createElement('canvas').getContext) )
			{//Gecko || Opera9+
				
				dEl.onload = function(){ onLoad.call( dEl , oCallback ,  URLS , URLS2 ) };
				dEl.onerror = function(){};
				dHead.appendChild(dEl);

			}else if(window.XMLHttpRequest)
			{//for other browsers, need XmlHttpRequest + proxy to get script
		
				var oXhr = new XMLHttpRequest();
				oXhr.onreadystatechange = function()
				{
					if(oXhr.readyState==4 )
					{
					
						if( oXhr.status == 200 )
						{
							if(sType=='script')
							{
								
								if(window.opera)
								{							
									window.eval( oXhr.responseText );	
								}
								else
								{
									//Safari?
									var dEl = document.createElement('script');
									dEl.appendChild( document.createTextNode( oXhr.responseText ) );	
									dEl.completed = true;
									dHead.appendChild(dEl);								
								};
								oLibrary[sUrl] = true;
								
							}
							else
							{
								var dEl = document.createElement('style');
								oLibrary[sUrl] = true;
							
								if(window.opera)
								{
									dEl.innerHTML = oXhr.responseText ;
								}else
								{
									//Safari?
									dEl.appendChild( document.createTextNode( oXhr.responseText ) );	
								}
								dEl.completed = true;
								dHead.appendChild(dEl);
								
								
							};
							oXhr = null;
							loadHandler(oCallback ,sType,  URLS , URLS2);	
						}
						else
						{
							throw Error('Error : Library.loadScript \n XMLHttpRequest readyState is ' + oXhr.status);
						}
					}
				};
				sUrl = sProxyPath + encodeURIComponent( sUrl);
				oXhr.open("GET",sUrl , true);
				oXhr.send("");
			}
		};
		this.setProxyPath = function(sUrl){
			sUrl +='';
			if(sUrl){
				sProxyPath = sUrl;
			};
		};
		return{
			getProxyPath:function(sUrl)	{
				return sProxyPath;			
			},
			loadJS:function(){
				var oCallback = arguments[0];
				oCallback = oCallback || {success:function(){} ,failure:function(){}};
				aUrl =  [];
				for(var i=1,j=arguments.length;i<j;i+=1)
				{
					aUrl[i-1] = arguments[i] + '';
				}
				if(typeof(oCallback)!='function')
				{
					throw Error('Error : Library.loadScript \n Callback is not Function');
					return;
				};
				var aScript = document.getElementsByTagName('script');
				for(var i=0,j=aScript.length;i<j;i++)
				{
					var sSrc = aScript[i].getAttribute('src');
					if(sSrc && aScript[i].completed)
					{
						oLibrary[sSrc] = true;
					}
				};
				var URLS = [].concat(aUrl) ;
				var URLS2 = [].concat(aUrl) ;
				loadHandler(oCallback,'script' , URLS , URLS2);
			},
			loadCSS:function(){
				var oCallback = arguments[0];
				oCallback = oCallback || {success:function(){} ,failure:function(){}};
				aUrl =  [];
				for(var i=1,j=arguments.length;i<j;i+=1)
				{
					aUrl[i-1] = arguments[i] + '';
				}
				if(typeof(oCallback)!='function')
				{
					throw Error('Error : Library.loadCSS  \n Callback is not Function');
					return;
				};
				var aScript = document.getElementsByTagName('link');
				for(var i=0,j=aScript.length;i<j;i++)
				{
					var sSrc = aScript[i].getAttribute('href');
					var sRel = (aScript[i].getAttribute('rel') + '').toLowerCase();
					if(sSrc && sRel == 'stylesheet' && aScript[i].completed )
					{
						oLibrary[sSrc] = true;					
					}
				};
				var URLS = [].concat(aUrl) ;
				var URLS2 = [].concat(aUrl) ;
				loadHandler(oCallback,'link' , URLS , URLS2);
			}
		};
	}()
}; 



