









/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 0.12.2
*/


if(typeof YAHOO=="undefined"){var YAHOO={};}
YAHOO.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i<a.length;++i){d=a[i].split(".");o=YAHOO;for(j=(d[0]=="YAHOO")?1:0;j<d.length;++j){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}
return o;};YAHOO.log=function(msg,cat,src){var l=YAHOO.widget.Logger;if(l&&l.log){return l.log(msg,cat,src);}else{return false;}};YAHOO.extend=function(subc,superc,overrides){var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;}
if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}}};YAHOO.augment=function(r,s){var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i<a.length;++i){rp[a[i]]=sp[a[i]];}}else{for(p in sp){if(!rp[p]){rp[p]=sp[p];}}}};YAHOO.namespace("util","widget","example");
Require.isLoaded['library.yui.yahoo.yahoo'] = true;
/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 0.12.2
*/

(function(){var Y=YAHOO.util,getStyle,setStyle,id_counter=0,propertyCache={};var ua=navigator.userAgent.toLowerCase(),isOpera=(ua.indexOf('opera')>-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);var patterns={HYPHEN:/(-[a-z])/i};var toCamel=function(property){if(!patterns.HYPHEN.test(property)){return property;}
if(propertyCache[property]){return propertyCache[property];}
while(patterns.HYPHEN.exec(property)){property=property.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}
propertyCache[property]=property;return property;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,property){var value=null;var computed=document.defaultView.getComputedStyle(el,'');if(computed){value=computed[toCamel(property)];}
return el.style[property]||value;};}else if(document.documentElement.currentStyle&&isIE){getStyle=function(el,property){switch(toCamel(property)){case'opacity':var val=100;try{val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;}catch(e){try{val=el.filters('alpha').opacity;}catch(e){}}
return val/100;break;default:var value=el.currentStyle?el.currentStyle[property]:null;return(el.style[property]||value);}};}else{getStyle=function(el,property){return el.style[property];};}
if(isIE){setStyle=function(el,property,val){switch(property){case'opacity':if(typeof el.style.filter=='string'){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}}
break;default:el.style[property]=val;}};}else{setStyle=function(el,property,val){el.style[property]=val;};}
YAHOO.util.Dom={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]=Y.Dom.get(el[i]);}
return collection;}
return null;},getStyle:function(el,property){property=toCamel(property);var f=function(element){return getStyle(element,property);};return Y.Dom.batch(el,f,Y.Dom,true);},setStyle:function(el,property,val){property=toCamel(property);var f=function(element){setStyle(element,property,val);};Y.Dom.batch(el,f,Y.Dom,true);},getXY:function(el){var f=function(el){if(el.parentNode===null||el.offsetParent===null||this.getStyle(el,'display')=='none'){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(Y.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 Y.Dom.batch(el,f,Y.Dom,true);},getX:function(el){var f=function(el){return Y.Dom.getXY(el)[0];};return Y.Dom.batch(el,f,Y.Dom,true);},getY:function(el){var f=function(el){return Y.Dom.getXY(el)[1];};return Y.Dom.batch(el,f,Y.Dom,true);},setXY:function(el,pos,noRetry){var f=function(el){var style_pos=this.getStyle(el,'position');if(style_pos=='static'){this.setStyle(el,'position','relative');style_pos='relative';}
var pageXY=this.getXY(el);if(pageXY===false){return false;}
var delta=[parseInt(this.getStyle(el,'left'),10),parseInt(this.getStyle(el,'top'),10)];if(isNaN(delta[0])){delta[0]=(style_pos=='relative')?0:el.offsetLeft;}
if(isNaN(delta[1])){delta[1]=(style_pos=='relative')?0:el.offsetTop;}
if(pos[0]!==null){el.style.left=pos[0]-pageXY[0]+delta[0]+'px';}
if(pos[1]!==null){el.style.top=pos[1]-pageXY[1]+delta[1]+'px';}
if(!noRetry){var newXY=this.getXY(el);if((pos[0]!==null&&newXY[0]!=pos[0])||(pos[1]!==null&&newXY[1]!=pos[1])){this.setXY(el,pos,true);}}};Y.Dom.batch(el,f,Y.Dom,true);},setX:function(el,x){Y.Dom.setXY(el,[x,null]);},setY:function(el,y){Y.Dom.setXY(el,[null,y]);},getRegion:function(el){var f=function(el){var region=new Y.Region.getRegion(el);return region;};return Y.Dom.batch(el,f,Y.Dom,true);},getClientWidth:function(){return Y.Dom.getViewportWidth();},getClientHeight:function(){return Y.Dom.getViewportHeight();},getElementsByClassName:function(className,tag,root){var method=function(el){return Y.Dom.hasClass(el,className);};return Y.Dom.getElementsBy(method,tag,root);},hasClass:function(el,className){var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)');var f=function(el){return re.test(el['className']);};return Y.Dom.batch(el,f,Y.Dom,true);},addClass:function(el,className){var f=function(el){if(this.hasClass(el,className)){return;}
el['className']=[el['className'],className].join(' ');};Y.Dom.batch(el,f,Y.Dom,true);},removeClass:function(el,className){var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)','g');var f=function(el){if(!this.hasClass(el,className)){return;}
var c=el['className'];el['className']=c.replace(re,' ');if(this.hasClass(el,className)){this.removeClass(el,className);}};Y.Dom.batch(el,f,Y.Dom,true);},replaceClass:function(el,oldClassName,newClassName){if(oldClassName===newClassName){return false;}
var re=new RegExp('(?:^|\\s+)'+oldClassName+'(?:\\s+|$)','g');var f=function(el){if(!this.hasClass(el,oldClassName)){this.addClass(el,newClassName);return;}
el['className']=el['className'].replace(re,' '+newClassName+' ');if(this.hasClass(el,oldClassName)){this.replaceClass(el,oldClassName,newClassName);}};Y.Dom.batch(el,f,Y.Dom,true);},generateId:function(el,prefix){prefix=prefix||'yui-gen';el=el||{};var f=function(el){if(el){el=Y.Dom.get(el);}else{el={};}
if(!el.id){el.id=prefix+id_counter++;}
return el.id;};return Y.Dom.batch(el,f,Y.Dom,true);},isAncestor:function(haystack,needle){haystack=Y.Dom.get(haystack);if(!haystack||!needle){return false;}
var f=function(needle){if(haystack.contains&&!isSafari){return haystack.contains(needle);}
else if(haystack.compareDocumentPosition){return!!(haystack.compareDocumentPosition(needle)&16);}
else{var parent=needle.parentNode;while(parent){if(parent==haystack){return true;}
else if(!parent.tagName||parent.tagName.toUpperCase()=='HTML'){return false;}
parent=parent.parentNode;}
return false;}};return Y.Dom.batch(needle,f,Y.Dom,true);},inDocument:function(el){var f=function(el){return this.isAncestor(document.documentElement,el);};return Y.Dom.batch(el,f,Y.Dom,true);},getElementsBy:function(method,tag,root){tag=tag||'*';var nodes=[];if(root){root=Y.Dom.get(root);if(!root){return nodes;}}else{root=document;}
var elements=root.getElementsByTagName(tag);if(!elements.length&&(tag=='*'&&root.all)){elements=root.all;}
for(var i=0,len=elements.length;i<len;++i){if(method(elements[i])){nodes[nodes.length]=elements[i];}}
return nodes;},batch:function(el,method,o,override){var id=el;el=Y.Dom.get(el);var scope=(override)?o:window;if(!el||el.tagName||!el.length){if(!el){return false;}
return method.call(scope,el,o);}
var collection=[];for(var i=0,len=el.length;i<len;++i){if(!el[i]){id=el[i];}
collection[collection.length]=method.call(scope,el[i],o);}
return collection;},getDocumentHeight:function(){var scrollHeight=(document.compatMode!='CSS1Compat')?document.body.scrollHeight:document.documentElement.scrollHeight;var h=Math.max(scrollHeight,Y.Dom.getViewportHeight());return h;},getDocumentWidth:function(){var scrollWidth=(document.compatMode!='CSS1Compat')?document.body.scrollWidth:document.documentElement.scrollWidth;var w=Math.max(scrollWidth,Y.Dom.getViewportWidth());return w;},getViewportHeight:function(){var height=self.innerHeight;var mode=document.compatMode;if((mode||isIE)&&!isOpera){height=(mode=='CSS1Compat')?document.documentElement.clientHeight:document.body.clientHeight;}
return height;},getViewportWidth:function(){var width=self.innerWidth;var mode=document.compatMode;if(mode||isIE){width=(mode=='CSS1Compat')?document.documentElement.clientWidth:document.body.clientWidth;}
return width;}};})();YAHOO.util.Region=function(t,r,b,l){this.top=t;this[1]=t;this.right=r;this.bottom=b;this.left=l;this[0]=l;};YAHOO.util.Region.prototype.contains=function(region){return(region.left>=this.left&&region.right<=this.right&&region.top>=this.top&&region.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new YAHOO.util.Region(t,r,b,l);}else{return null;}};YAHOO.util.Region.prototype.union=function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];}
this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();
Require.isLoaded['library.yui.dom.dom'] = true;
/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 0.12.2
*/


YAHOO.util.CustomEvent=function(type,oScope,silent,signature){this.type=type;this.scope=oScope||window;this.silent=silent;this.signature=signature||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}
var onsubscribeType="_YUICEOnSubscribe";if(type!==onsubscribeType){this.subscribeEvent=new YAHOO.util.CustomEvent(onsubscribeType,this,true);}};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(fn,obj,override){if(this.subscribeEvent){this.subscribeEvent.fire(fn,obj,override);}
this.subscribers.push(new YAHOO.util.Subscriber(fn,obj,override));},unsubscribe:function(fn,obj){var found=false;for(var i=0,len=this.subscribers.length;i<len;++i){var s=this.subscribers[i];if(s&&s.contains(fn,obj)){this._delete(i);found=true;}}
return found;},fire:function(){var len=this.subscribers.length;if(!len&&this.silent){return true;}
var args=[],ret=true,i;for(i=0;i<arguments.length;++i){args.push(arguments[i]);}
var argslength=args.length;if(!this.silent){}
for(i=0;i<len;++i){var s=this.subscribers[i];if(s){if(!this.silent){}
var scope=s.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var param=null;if(args.length>0){param=args[0];}
ret=s.fn.call(scope,param,s.obj);}else{ret=s.fn.call(scope,this.type,args,s.obj);}
if(false===ret){if(!this.silent){}
return false;}}}
return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i<len;++i){this._delete(len-1-i);}},_delete:function(index){var s=this.subscribers[index];if(s){delete s.fn;delete s.obj;}
this.subscribers.splice(index,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(fn,obj,override){this.fn=fn;this.obj=obj||null;this.override=override;};YAHOO.util.Subscriber.prototype.getScope=function(defaultScope){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}
return defaultScope;};YAHOO.util.Subscriber.prototype.contains=function(fn,obj){if(obj){return(this.fn==fn&&this.obj==obj);}else{return(this.fn==fn);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+(this.obj||"")+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var loadComplete=false;var listeners=[];var unloadListeners=[];var legacyEvents=[];var legacyHandlers=[];var retryCount=0;var onAvailStack=[];var legacyMap=[];var counter=0;return{POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ: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)),_interval:null,startInterval:function(){if(!this._interval){var self=this;var callback=function(){self._tryPreloadAttach();};this._interval=setInterval(callback,this.POLL_INTERVAL);}},onAvailable:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:false});retryCount=this.POLL_RETRYS;this.startInterval();},onContentReady:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:true});retryCount=this.POLL_RETRYS;this.startInterval();},addListener:function(el,sType,fn,obj,override){if(!fn||!fn.call){return false;}
if(this._isValidCollection(el)){var ok=true;for(var i=0,len=el.length;i<len;++i){ok=this.on(el[i],sType,fn,obj,override)&&ok;}
return ok;}else if(typeof el=="string"){var oEl=this.getEl(el);if(oEl){el=oEl;}else{this.onAvailable(el,function(){YAHOO.util.Event.on(el,sType,fn,obj,override);});return true;}}
if(!el){return false;}
if("unload"==sType&&obj!==this){unloadListeners[unloadListeners.length]=[el,sType,fn,obj,override];return true;}
var scope=el;if(override){if(override===true){scope=obj;}else{scope=override;}}
var wrappedFn=function(e){return fn.call(scope,YAHOO.util.Event.getEvent(e),obj);};var li=[el,sType,fn,wrappedFn,scope];var index=listeners.length;listeners[index]=li;if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);if(legacyIndex==-1||el!=legacyEvents[legacyIndex][0]){legacyIndex=legacyEvents.length;legacyMap[el.id+sType]=legacyIndex;legacyEvents[legacyIndex]=[el,sType,el["on"+sType]];legacyHandlers[legacyIndex]=[];el["on"+sType]=function(e){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(e),legacyIndex);};}
legacyHandlers[legacyIndex].push(li);}else{try{this._simpleAdd(el,sType,wrappedFn,false);}catch(e){this.removeListener(el,sType,fn);return false;}}
return true;},fireLegacyEvent:function(e,legacyIndex){var ok=true;var le=legacyHandlers[legacyIndex];for(var i=0,len=le.length;i<len;++i){var li=le[i];if(li&&li[this.WFN]){var scope=li[this.ADJ_SCOPE];var ret=li[this.WFN].call(scope,e);ok=(ok&&ret);}}
return ok;},getLegacyIndex:function(el,sType){var key=this.generateId(el)+sType;if(typeof legacyMap[key]=="undefined"){return-1;}else{return legacyMap[key];}},useLegacyEvent:function(el,sType){if(!el.addEventListener&&!el.attachEvent){return true;}else if(this.isSafari){if("click"==sType||"dblclick"==sType){return true;}}
return false;},removeListener:function(el,sType,fn){var i,len;if(typeof el=="string"){el=this.getEl(el);}else if(this._isValidCollection(el)){var ok=true;for(i=0,len=el.length;i<len;++i){ok=(this.removeListener(el[i],sType,fn)&&ok);}
return ok;}
if(!fn||!fn.call){return this.purgeElement(el,false,sType);}
if("unload"==sType){for(i=0,len=unloadListeners.length;i<len;i++){var li=unloadListeners[i];if(li&&li[0]==el&&li[1]==sType&&li[2]==fn){unloadListeners.splice(i,1);return true;}}
return false;}
var cacheItem=null;var index=arguments[3];if("undefined"==typeof index){index=this._getCacheIndex(el,sType,fn);}
if(index>=0){cacheItem=listeners[index];}
if(!el||!cacheItem){return false;}
if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);var llist=legacyHandlers[legacyIndex];if(llist){for(i=0,len=llist.length;i<len;++i){li=llist[i];if(li&&li[this.EL]==el&&li[this.TYPE]==sType&&li[this.FN]==fn){llist.splice(i,1);break;}}}}else{try{this._simpleRemove(el,sType,cacheItem[this.WFN],false);}catch(e){return false;}}
delete listeners[index][this.WFN];delete listeners[index][this.FN];listeners.splice(index,1);return true;},getTarget:function(ev,resolveTextNode){var t=ev.target||ev.srcElement;return this.resolveTextNode(t);},resolveTextNode:function(node){if(node&&3==node.nodeType){return node.parentNode;}else{return node;}},getPageX:function(ev){var x=ev.pageX;if(!x&&0!==x){x=ev.clientX||0;if(this.isIE){x+=this._getScrollLeft();}}
return x;},getPageY:function(ev){var y=ev.pageY;if(!y&&0!==y){y=ev.clientY||0;if(this.isIE){y+=this._getScrollTop();}}
return y;},getXY:function(ev){return[this.getPageX(ev),this.getPageY(ev)];},getRelatedTarget:function(ev){var t=ev.relatedTarget;if(!t){if(ev.type=="mouseout"){t=ev.toElement;}else if(ev.type=="mouseover"){t=ev.fromElement;}}
return this.resolveTextNode(t);},getTime:function(ev){if(!ev.time){var t=new Date().getTime();try{ev.time=t;}catch(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.keyCode||0;},_getCacheIndex:function(el,sType,fn){for(var i=0,len=listeners.length;i<len;++i){var li=listeners[i];if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==sType){return i;}}
return-1;},generateId:function(el){var id=el.id;if(!id){id="yuievtautoid-"+counter;++counter;el.id=id;}
return id;},_isValidCollection:function(o){return(o&&o.length&&typeof o!="string"&&!o.tagName&&!o.alert&&typeof o[0]!="undefined");},elCache:{},getEl:function(id){return document.getElementById(id);},clearCache:function(){},_load:function(e){loadComplete=true;var EU=YAHOO.util.Event;if(this.isIE){EU._simpleRemove(window,"load",EU._load);}},_tryPreloadAttach:function(){if(this.locked){return false;}
this.locked=true;var tryAgain=!loadComplete;if(!tryAgain){tryAgain=(retryCount>0);}
var notAvail=[];for(var i=0,len=onAvailStack.length;i<len;++i){var item=onAvailStack[i];if(item){var el=this.getEl(item.id);if(el){if(!item.checkReady||loadComplete||el.nextSibling||(document&&document.body)){var scope=el;if(item.override){if(item.override===true){scope=item.obj;}else{scope=item.override;}}
item.fn.call(scope,item.obj);onAvailStack[i]=null;}}else{notAvail.push(item);}}}
retryCount=(notAvail.length===0)?0:retryCount-1;if(tryAgain){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}
this.locked=false;return true;},purgeElement:function(el,recurse,sType){var elListeners=this.getListeners(el,sType);if(elListeners){for(var i=0,len=elListeners.length;i<len;++i){var l=elListeners[i];this.removeListener(el,l.type,l.fn);}}
if(recurse&&el&&el.childNodes){for(i=0,len=el.childNodes.length;i<len;++i){this.purgeElement(el.childNodes[i],recurse,sType);}}},getListeners:function(el,sType){var elListeners=[];if(listeners&&listeners.length>0){for(var i=0,len=listeners.length;i<len;++i){var l=listeners[i];if(l&&l[this.EL]===el&&(!sType||sType===l[this.TYPE])){elListeners.push({type:l[this.TYPE],fn:l[this.FN],obj:l[this.OBJ],adjust:l[this.ADJ_SCOPE],index:i});}}}
return(elListeners.length)?elListeners:null;},_unload:function(e){var EU=YAHOO.util.Event,i,j,l,len,index;for(i=0,len=unloadListeners.length;i<len;++i){l=unloadListeners[i];if(l){var scope=window;if(l[EU.ADJ_SCOPE]){if(l[EU.ADJ_SCOPE]===true){scope=l[EU.OBJ];}else{scope=l[EU.ADJ_SCOPE];}}
l[EU.FN].call(scope,EU.getEvent(e),l[EU.OBJ]);unloadListeners[i]=null;l=null;scope=null;}}
unloadListeners=null;if(listeners&&listeners.length>0){j=listeners.length;while(j){index=j-1;l=listeners[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);}
j=j-1;}
l=null;EU.clearCache();}
for(i=0,len=legacyEvents.length;i<len;++i){legacyEvents[i][0]=null;legacyEvents[i]=null;}
legacyEvents=null;EU._simpleRemove(window,"unload",EU._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var dd=document.documentElement,db=document.body;if(dd&&(dd.scrollTop||dd.scrollLeft)){return[dd.scrollTop,dd.scrollLeft];}else if(db){return[db.scrollTop,db.scrollLeft];}else{return[0,0];}},_simpleAdd:function(){if(window.addEventListener){return function(el,sType,fn,capture){el.addEventListener(sType,fn,(capture));};}else if(window.attachEvent){return function(el,sType,fn,capture){el.attachEvent("on"+sType,fn);};}else{return function(){};}}(),_simpleRemove:function(){if(window.removeEventListener){return function(el,sType,fn,capture){el.removeEventListener(sType,fn,(capture));};}else if(window.detachEvent){return function(el,sType,fn){el.detachEvent("on"+sType,fn);};}else{return function(){};}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;if(document&&document.body){EU._load();}else{EU._simpleAdd(window,"load",EU._load);}
EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}
YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(p_type,p_fn,p_obj,p_override){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[p_type];if(ce){ce.subscribe(p_fn,p_obj,p_override);}else{this.__yui_subscribers=this.__yui_subscribers||{};var subs=this.__yui_subscribers;if(!subs[p_type]){subs[p_type]=[];}
subs[p_type].push({fn:p_fn,obj:p_obj,override:p_override});}},unsubscribe:function(p_type,p_fn,p_obj){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[p_type];if(ce){return ce.unsubscribe(p_fn,p_obj);}else{return false;}},createEvent:function(p_type,p_config){this.__yui_events=this.__yui_events||{};var opts=p_config||{};var events=this.__yui_events;if(events[p_type]){}else{var scope=opts.scope||this;var silent=opts.silent||null;var ce=new YAHOO.util.CustomEvent(p_type,scope,silent,YAHOO.util.CustomEvent.FLAT);events[p_type]=ce;if(opts.onSubscribeCallback){ce.subscribeEvent.subscribe(opts.onSubscribeCallback);}
this.__yui_subscribers=this.__yui_subscribers||{};var qs=this.__yui_subscribers[p_type];if(qs){for(var i=0;i<qs.length;++i){ce.subscribe(qs[i].fn,qs[i].obj,qs[i].override);}}}
return events[p_type];},fireEvent:function(p_type,arg1,arg2,etc){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[p_type];if(ce){var args=[];for(var i=1;i<arguments.length;++i){args.push(arguments[i]);}
return ce.fire.apply(ce,args);}else{return null;}},hasEvent:function(type){if(this.__yui_events){if(this.__yui_events[type]){return true;}}
return false;}};
Require.isLoaded['library.yui.event.event'] = true;
/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 0.12.2
*/
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,postData);this.releaseObject(o);return;}
if(method=='GET'){if(this._sFormData.length!=0){uri+=((uri.indexOf('?')==-1)?'?':'&')+this._sFormData;}
else{uri+="?"+this._sFormData;}}
else if(method=='POST'){postData=postData?this._sFormData+"&"+postData: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.resetFormState();}}
if(this._has_http_headers){this.setHeader(o);}
this.handleReadyState(o,callback);o.conn.send(postData||null);return o;}},handleReadyState:function(o,callback)
{var oConn=this;if(callback&&callback.timeout){this._timeOut[o.tId]=window.setTimeout(function(){oConn.abort(o,callback,true);},callback.timeout);}
this._poll[o.tId]=window.setInterval(function(){if(o.conn&&o.conn.readyState==4){window.clearInterval(oConn._poll[o.tId]);delete oConn._poll[o.tId];if(callback&&callback.timeout){delete oConn._timeOut[o.tId];}
oConn.handleTransactionResponse(o,callback);}},this._polling_interval);},handleTransactionResponse:function(o,callback,isAbort)
{if(!callback){this.releaseObject(o);return;}
var httpStatus,responseObject;try
{if(o.conn.status!==undefined&&o.conn.status!=0){httpStatus=o.conn.status;}
else{httpStatus=13030;}}
catch(e){httpStatus=13030;}
if(httpStatus>=200&&httpStatus<300){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.resetFormState();var oForm;if(typeof formId=='string'){oForm=(document.getElementById(formId)||document.forms[formId]);}
else if(typeof formId=='object'){oForm=formId;}
else{return;}
if(isUpload){this.createFrame(secureUri?secureUri:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=oForm;return;}
var oElement,oName,oValue,oDisabled;var hasSubmit=false;for(var i=0;i<oForm.elements.length;i++){oElement=oForm.elements[i];oDisabled=oForm.elements[i].disabled;oName=oForm.elements[i].name;oValue=oForm.elements[i].value;if(!oDisabled&&oName)
{switch(oElement.type)
{case'select-one':case'select-multiple':for(var j=0;j<oElement.options.length;j++){if(oElement.options[j].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text)+'&';}
else{this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text)+'&';}}}
break;case'radio':case'checkbox':if(oElement.checked){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';}
break;case'file':case undefined:case'reset':case'button':break;case'submit':if(hasSubmit==false){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';hasSubmit=true;}
break;default:this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';break;}}}
this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(secureUri){var frameId='yuiIO'+this._transaction_id;if(window.ActiveXObject){var io=document.createElement('<iframe id="'+frameId+'" name="'+frameId+'" />');if(typeof secureUri=='boolean'){io.src='javascript:false';}
else if(typeof secureURI=='string'){io.src=secureUri;}}
else{var io=document.createElement('iframe');io.id=frameId;io.name=frameId;}
io.style.position='absolute';io.style.top='-1000px';io.style.left='-1000px';document.body.appendChild(io);},appendPostData:function(postData)
{var formElements=[];var postMessage=postData.split('&');for(var i=0;i<postMessage.length;i++){var delimitPos=postMessage[i].indexOf('=');if(delimitPos!=-1){formElements[i]=document.createElement('input');formElements[i].type='hidden';formElements[i].name=postMessage[i].substring(0,delimitPos);formElements[i].value=postMessage[i].substring(delimitPos+1);this._formNode.appendChild(formElements[i]);}}
return formElements;},uploadFile:function(id,callback,uri,postData){var frameId='yuiIO'+id;var io=document.getElementById(frameId);this._formNode.action=uri;this._formNode.method='POST';this._formNode.target=frameId;if(this._formNode.encoding){this._formNode.encoding='multipart/form-data';}
else{this._formNode.enctype='multipart/form-data';}
if(postData){var oElements=this.appendPostData(postData);}
this._formNode.submit();if(oElements&&oElements.length>0){try
{for(var i=0;i<oElements.length;i++){this._formNode.removeChild(oElements[i]);}}
catch(e){}}
this.resetFormState();var uploadCallback=function()
{var obj={};obj.tId=id;obj.argument=callback.argument;try
{obj.responseText=io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;obj.responseXML=io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;}
catch(e){}
if(callback.upload){if(!callback.scope){callback.upload(obj);}
else{callback.upload.apply(callback.scope,[obj]);}}
if(YAHOO.util.Event){YAHOO.util.Event.removeListener(io,"load",uploadCallback);}
else if(window.detachEvent){io.detachEvent('onload',uploadCallback);}
else{io.removeEventListener('load',uploadCallback,false);}
setTimeout(function(){document.body.removeChild(io);},100);};if(YAHOO.util.Event){YAHOO.util.Event.addListener(io,"load",uploadCallback);}
else if(window.attachEvent){io.attachEvent('onload',uploadCallback);}
else{io.addEventListener('load',uploadCallback,false);}},abort:function(o,callback,isTimeout)
{if(this.isCallInProgress(o)){o.conn.abort();window.clearInterval(this._poll[o.tId]);delete this._poll[o.tId];if(isTimeout){delete this._timeOut[o.tId];}
this.handleTransactionResponse(o,callback,true);return true;}
else{return false;}},isCallInProgress:function(o)
{if(o.conn){return o.conn.readyState!=4&&o.conn.readyState!=0;}
else{return false;}},releaseObject:function(o)
{o.conn=null;o=null;}};
Require.isLoaded['library.yui.connection.connection'] = true;
/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 0.12.2
*/

YAHOO.util.Anim=function(el,attributes,duration,method){if(el){this.init(el,attributes,duration,method);}};YAHOO.util.Anim.prototype={toString:function(){var el=this.getEl();var id=el.id||el.tagName;return("Anim "+id);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(attr,start,end){return this.method(this.currentFrame,start,end-start,this.totalFrames);},setAttribute:function(attr,val,unit){if(this.patterns.noNegatives.test(attr)){val=(val>0)?val:0;}
YAHOO.util.Dom.setStyle(this.getEl(),attr,val+unit);},getAttribute:function(attr){var el=this.getEl();var val=YAHOO.util.Dom.getStyle(el,attr);if(val!=='auto'&&!this.patterns.offsetUnit.test(val)){return parseFloat(val);}
var a=this.patterns.offsetAttribute.exec(attr)||[];var pos=!!(a[3]);var box=!!(a[2]);if(box||(YAHOO.util.Dom.getStyle(el,'position')=='absolute'&&pos)){val=el['offset'+a[0].charAt(0).toUpperCase()+a[0].substr(1)];}else{val=0;}
return val;},getDefaultUnit:function(attr){if(this.patterns.defaultUnit.test(attr)){return'px';}
return'';},setRuntimeAttribute:function(attr){var start;var end;var attributes=this.attributes;this.runtimeAttributes[attr]={};var isset=function(prop){return(typeof prop!=='undefined');};if(!isset(attributes[attr]['to'])&&!isset(attributes[attr]['by'])){return false;}
start=(isset(attributes[attr]['from']))?attributes[attr]['from']:this.getAttribute(attr);if(isset(attributes[attr]['to'])){end=attributes[attr]['to'];}else if(isset(attributes[attr]['by'])){if(start.constructor==Array){end=[];for(var i=0,len=start.length;i<len;++i){end[i]=start[i]+attributes[attr]['by'][i];}}else{end=start+attributes[attr]['by'];}}
this.runtimeAttributes[attr].start=start;this.runtimeAttributes[attr].end=end;this.runtimeAttributes[attr].unit=(isset(attributes[attr].unit))?attributes[attr]['unit']:this.getDefaultUnit(attr);},init:function(el,attributes,duration,method){var isAnimated=false;var startTime=null;var actualFrames=0;el=YAHOO.util.Dom.get(el);this.attributes=attributes||{};this.duration=duration||1;this.method=method||YAHOO.util.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=YAHOO.util.AnimMgr.fps;this.getEl=function(){return el;};this.isAnimated=function(){return isAnimated;};this.getStartTime=function(){return startTime;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}
this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(YAHOO.util.AnimMgr.fps*this.duration):this.duration;YAHOO.util.AnimMgr.registerElement(this);};this.stop=function(finish){if(finish){this.currentFrame=this.totalFrames;this._onTween.fire();}
YAHOO.util.AnimMgr.stop(this);};var onStart=function(){this.onStart.fire();this.runtimeAttributes={};for(var attr in this.attributes){this.setRuntimeAttribute(attr);}
isAnimated=true;actualFrames=0;startTime=new Date();};var onTween=function(){var data={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};data.toString=function(){return('duration: '+data.duration+', currentFrame: '+data.currentFrame);};this.onTween.fire(data);var runtimeAttributes=this.runtimeAttributes;for(var attr in runtimeAttributes){this.setAttribute(attr,this.doMethod(attr,runtimeAttributes[attr].start,runtimeAttributes[attr].end),runtimeAttributes[attr].unit);}
actualFrames+=1;};var onComplete=function(){var actual_duration=(new Date()-startTime)/1000;var data={duration:actual_duration,frames:actualFrames,fps:actualFrames/actual_duration};data.toString=function(){return('duration: '+data.duration+', frames: '+data.frames+', fps: '+data.fps);};isAnimated=false;actualFrames=0;this.onComplete.fire(data);};this._onStart=new YAHOO.util.CustomEvent('_start',this,true);this.onStart=new YAHOO.util.CustomEvent('start',this);this.onTween=new YAHOO.util.CustomEvent('tween',this);this._onTween=new YAHOO.util.CustomEvent('_tween',this,true);this.onComplete=new YAHOO.util.CustomEvent('complete',this);this._onComplete=new YAHOO.util.CustomEvent('_complete',this,true);this._onStart.subscribe(onStart);this._onTween.subscribe(onTween);this._onComplete.subscribe(onComplete);}};YAHOO.util.AnimMgr=new function(){var thread=null;var queue=[];var tweenCount=0;this.fps=1000;this.delay=1;this.registerElement=function(tween){queue[queue.length]=tween;tweenCount+=1;tween._onStart.fire();this.start();};this.unRegister=function(tween,index){tween._onComplete.fire();index=index||getIndex(tween);if(index!=-1){queue.splice(index,1);}
tweenCount-=1;if(tweenCount<=0){this.stop();}};this.start=function(){if(thread===null){thread=setInterval(this.run,this.delay);}};this.stop=function(tween){if(!tween){clearInterval(thread);for(var i=0,len=queue.length;i<len;++i){if(queue[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.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;proto.parseColor=function(s){if(s.length==3){return s;}
var c=this.patterns.hex.exec(s);if(c&&c.length==4){return[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)];}
c=this.patterns.rgb.exec(s);if(c&&c.length==4){return[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)];}
c=this.patterns.hex3.exec(s);if(c&&c.length==4){return[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)];}
return null;};proto.getAttribute=function(attr){var el=this.getEl();if(this.patterns.color.test(attr)){var val=YAHOO.util.Dom.getStyle(el,attr);if(this.patterns.transparent.test(val)){var parent=el.parentNode;val=Y.Dom.getStyle(parent,attr);while(parent&&this.patterns.transparent.test(val)){parent=parent.parentNode;val=Y.Dom.getStyle(parent,attr);if(parent.tagName.toUpperCase()=='HTML'){val='#fff';}}}}else{val=superclass.getAttribute.call(this,attr);}
return val;};proto.doMethod=function(attr,start,end){var val;if(this.patterns.color.test(attr)){val=[];for(var i=0,len=start.length;i<len;++i){val[i]=superclass.doMethod.call(this,attr,start[i],end[i]);}
val='rgb('+Math.floor(val[0])+','+Math.floor(val[1])+','+Math.floor(val[2])+')';}
else{val=superclass.doMethod.call(this,attr,start,end);}
return val;};proto.setRuntimeAttribute=function(attr){superclass.setRuntimeAttribute.call(this,attr);if(this.patterns.color.test(attr)){var attributes=this.attributes;var start=this.parseColor(this.runtimeAttributes[attr].start);var end=this.parseColor(this.runtimeAttributes[attr].end);if(typeof attributes[attr]['to']==='undefined'&&typeof attributes[attr]['by']!=='undefined'){end=this.parseColor(attributes[attr].by);for(var i=0,len=start.length;i<len;++i){end[i]=start[i]+end[i];}}
this.runtimeAttributes[attr].start=start;this.runtimeAttributes[attr].end=end;}};})();YAHOO.util.Easing={easeNone:function(t,b,c,d){return c*t/d+b;},easeIn:function(t,b,c,d){return c*(t/=d)*t+b;},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeBoth:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t+b;}
return-c/2*((--t)*(t-2)-1)+b;},easeInStrong:function(t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutStrong:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeBothStrong:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t*t*t+b;}
return-c/2*((t-=2)*t*t*t-2)+b;},elasticIn:function(t,b,c,d,a,p){if(t==0){return b;}
if((t/=d)==1){return b+c;}
if(!p){p=d*.3;}
if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else{var s=p/(2*Math.PI)*Math.asin(c/a);}
return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},elasticOut:function(t,b,c,d,a,p){if(t==0){return b;}
if((t/=d)==1){return b+c;}
if(!p){p=d*.3;}
if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else{var s=p/(2*Math.PI)*Math.asin(c/a);}
return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},elasticBoth:function(t,b,c,d,a,p){if(t==0){return b;}
if((t/=d/2)==2){return b+c;}
if(!p){p=d*(.3*1.5);}
if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else{var s=p/(2*Math.PI)*Math.asin(c/a);}
if(t<1){return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;}
return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},backIn:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
return c*(t/=d)*t*((s+1)*t-s)+b;},backOut:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},backBoth:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
if((t/=d/2)<1){return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;}
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},bounceIn:function(t,b,c,d){return c-YAHOO.util.Easing.bounceOut(d-t,0,c,d)+b;},bounceOut:function(t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}
return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;},bounceBoth:function(t,b,c,d){if(t<d/2){return YAHOO.util.Easing.bounceIn(t*2,0,c,d)*.5+b;}
return YAHOO.util.Easing.bounceOut(t*2-d,0,c,d)*.5+c*.5+b;}};(function(){YAHOO.util.Motion=function(el,attributes,duration,method){if(el){YAHOO.util.Motion.superclass.constructor.call(this,el,attributes,duration,method);}};YAHOO.extend(YAHOO.util.Motion,YAHOO.util.ColorAnim);var Y=YAHOO.util;var superclass=Y.Motion.superclass;var proto=Y.Motion.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Motion "+id);};proto.patterns.points=/^points$/i;proto.setAttribute=function(attr,val,unit){if(this.patterns.points.test(attr)){unit=unit||'px';superclass.setAttribute.call(this,'left',val[0],unit);superclass.setAttribute.call(this,'top',val[1],unit);}else{superclass.setAttribute.call(this,attr,val,unit);}};proto.getAttribute=function(attr){if(this.patterns.points.test(attr)){var val=[superclass.getAttribute.call(this,'left'),superclass.getAttribute.call(this,'top')];}else{val=superclass.getAttribute.call(this,attr);}
return val;};proto.doMethod=function(attr,start,end){var val=null;if(this.patterns.points.test(attr)){var t=this.method(this.currentFrame,0,100,this.totalFrames)/100;val=Y.Bezier.getPosition(this.runtimeAttributes[attr],t);}else{val=superclass.doMethod.call(this,attr,start,end);}
return val;};proto.setRuntimeAttribute=function(attr){if(this.patterns.points.test(attr)){var el=this.getEl();var attributes=this.attributes;var start;var control=attributes['points']['control']||[];var end;var i,len;if(control.length>0&&!(control[0]instanceof Array)){control=[control];}else{var tmp=[];for(i=0,len=control.length;i<len;++i){tmp[i]=control[i];}
control=tmp;}
if(Y.Dom.getStyle(el,'position')=='static'){Y.Dom.setStyle(el,'position','relative');}
if(isset(attributes['points']['from'])){Y.Dom.setXY(el,attributes['points']['from']);}
else{Y.Dom.setXY(el,Y.Dom.getXY(el));}
start=this.getAttribute('points');if(isset(attributes['points']['to'])){end=translateValues.call(this,attributes['points']['to'],start);var pageXY=Y.Dom.getXY(this.getEl());for(i=0,len=control.length;i<len;++i){control[i]=translateValues.call(this,control[i],start);}}else if(isset(attributes['points']['by'])){end=[start[0]+attributes['points']['by'][0],start[1]+attributes['points']['by'][1]];for(i=0,len=control.length;i<len;++i){control[i]=[start[0]+control[i][0],start[1]+control[i][1]];}}
this.runtimeAttributes[attr]=[start];if(control.length>0){this.runtimeAttributes[attr]=this.runtimeAttributes[attr].concat(control);}
this.runtimeAttributes[attr][this.runtimeAttributes[attr].length]=end;}
else{superclass.setRuntimeAttribute.call(this,attr);}};var translateValues=function(val,start){var pageXY=Y.Dom.getXY(this.getEl());val=[val[0]-pageXY[0]+start[0],val[1]-pageXY[1]+start[1]];return val;};var isset=function(prop){return(typeof prop!=='undefined');};})();(function(){YAHOO.util.Scroll=function(el,attributes,duration,method){if(el){YAHOO.util.Scroll.superclass.constructor.call(this,el,attributes,duration,method);}};YAHOO.extend(YAHOO.util.Scroll,YAHOO.util.ColorAnim);var Y=YAHOO.util;var superclass=Y.Scroll.superclass;var proto=Y.Scroll.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Scroll "+id);};proto.doMethod=function(attr,start,end){var val=null;if(attr=='scroll'){val=[this.method(this.currentFrame,start[0],end[0]-start[0],this.totalFrames),this.method(this.currentFrame,start[1],end[1]-start[1],this.totalFrames)];}else{val=superclass.doMethod.call(this,attr,start,end);}
return val;};proto.getAttribute=function(attr){var val=null;var el=this.getEl();if(attr=='scroll'){val=[el.scrollLeft,el.scrollTop];}else{val=superclass.getAttribute.call(this,attr);}
return val;};proto.setAttribute=function(attr,val,unit){var el=this.getEl();if(attr=='scroll'){el.scrollLeft=val[0];el.scrollTop=val[1];}else{superclass.setAttribute.call(this,attr,val,unit);}};})();
Require.isLoaded['library.yui.animation.animation'] = true;
/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 0.12.2
*/


(function(){var Event=YAHOO.util.Event;var Dom=YAHOO.util.Dom;YAHOO.util.DragDrop=function(id,sGroup,config){if(id){this.init(id,sGroup,config);}};YAHOO.util.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(x,y){},startDrag:function(x,y){},b4Drag:function(e){},onDrag:function(e){},onDragEnter:function(e,id){},b4DragOver:function(e){},onDragOver:function(e,id){},b4DragOut:function(e){},onDragOut:function(e,id){},b4DragDrop:function(e){},onDragDrop:function(e,id){},onInvalidDrop:function(e){},b4EndDrag:function(e){},endDrag:function(e){},b4MouseDown:function(e){},onMouseDown:function(e){},onMouseUp:function(e){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=Dom.get(this.id);}
return this._domRef;},getDragEl:function(){return Dom.get(this.dragElId);},init:function(id,sGroup,config){this.initTarget(id,sGroup,config);Event.on(this.id,"mousedown",this.handleMouseDown,this,true);},initTarget:function(id,sGroup,config){this.config=config||{};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof id!=="string"){YAHOO.log("id is not a string, assuming it is an HTMLElement");id=Dom.generateId(id);}
this.id=id;this.addToGroup((sGroup)?sGroup:"default");this.handleElId=id;Event.onAvailable(id,this.handleOnAvailable,this,true);this.setDragElId(id);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(iTop,iRight,iBot,iLeft){if(!iRight&&0!==iRight){this.padding=[iTop,iTop,iTop,iTop];}else if(!iBot&&0!==iBot){this.padding=[iTop,iRight,iTop,iRight];}else{this.padding=[iTop,iRight,iBot,iLeft];}},setInitPosition:function(diffX,diffY){var el=this.getEl();if(!this.DDM.verifyEl(el)){return;}
var dx=diffX||0;var dy=diffY||0;var p=Dom.getXY(el);this.initPageX=p[0]-dx;this.initPageY=p[1]-dy;this.lastPageX=p[0];this.lastPageY=p[1];this.setStartPosition(p);},setStartPosition:function(pos){var p=pos||Dom.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=p[0];this.startPageY=p[1];},addToGroup:function(sGroup){this.groups[sGroup]=true;this.DDM.regDragDrop(this,sGroup);},removeFromGroup:function(sGroup){if(this.groups[sGroup]){delete this.groups[sGroup];}
this.DDM.removeDDFromGroup(this,sGroup);},setDragElId:function(id){this.dragElId=id;},setHandleElId:function(id){if(typeof id!=="string"){YAHOO.log("id is not a string, assuming it is an HTMLElement");id=Dom.generateId(id);}
this.handleElId=id;this.DDM.regHandle(this.id,id);},setOuterHandleElId:function(id){if(typeof id!=="string"){YAHOO.log("id is not a string, assuming it is an HTMLElement");id=Dom.generateId(id);}
Event.on(id,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(id);this.hasOuterHandles=true;},unreg:function(){Event.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(e,oDD){var button=e.which||e.button;if(this.primaryButtonOnly&&button>1){return;}
if(this.isLocked()){return;}
this.DDM.refreshCache(this.groups);var pt=new YAHOO.util.Point(Event.getPageX(e),Event.getPageY(e));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(pt,this)){}else{if(this.clickValidator(e)){this.setStartPosition();this.b4MouseDown(e);this.onMouseDown(e);this.DDM.handleMouseDown(e,this);this.DDM.stopEvent(e);}else{}}},clickValidator:function(e){var target=Event.getTarget(e);return(this.isValidHandleChild(target)&&(this.id==this.handleElId||this.DDM.handleWasClicked(target,this.id)));},addInvalidHandleType:function(tagName){var type=tagName.toUpperCase();this.invalidHandleTypes[type]=type;},addInvalidHandleId:function(id){if(typeof id!=="string"){YAHOO.log("id is not a string, assuming it is an HTMLElement");id=Dom.generateId(id);}
this.invalidHandleIds[id]=id;},addInvalidHandleClass:function(cssClass){this.invalidHandleClasses.push(cssClass);},removeInvalidHandleType:function(tagName){var type=tagName.toUpperCase();delete this.invalidHandleTypes[type];},removeInvalidHandleId:function(id){if(typeof id!=="string"){YAHOO.log("id is not a string, assuming it is an HTMLElement");id=Dom.generateId(id);}
delete this.invalidHandleIds[id];},removeInvalidHandleClass:function(cssClass){for(var i=0,len=this.invalidHandleClasses.length;i<len;++i){if(this.invalidHandleClasses[i]==cssClass){delete this.invalidHandleClasses[i];}}},isValidHandleChild:function(node){var valid=true;var nodeName;try{nodeName=node.nodeName.toUpperCase();}catch(e){nodeName=node.nodeName;}
valid=valid&&!this.invalidHandleTypes[nodeName];valid=valid&&!this.invalidHandleIds[node.id];for(var i=0,len=this.invalidHandleClasses.length;valid&&i<len;++i){valid=!Dom.hasClass(node,this.invalidHandleClasses[i]);}
return valid;},setXTicks:function(iStartX,iTickSize){this.xTicks=[];this.xTickSize=iTickSize;var tickMap={};for(var i=this.initPageX;i>=this.minX;i=i-iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true;}}
for(i=this.initPageX;i<=this.maxX;i=i+iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true;}}
this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(iStartY,iTickSize){this.yTicks=[];this.yTickSize=iTickSize;var tickMap={};for(var i=this.initPageY;i>=this.minY;i=i-iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true;}}
for(i=this.initPageY;i<=this.maxY;i=i+iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true;}}
this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(iLeft,iRight,iTickSize){this.leftConstraint=iLeft;this.rightConstraint=iRight;this.minX=this.initPageX-iLeft;this.maxX=this.initPageX+iRight;if(iTickSize){this.setXTicks(this.initPageX,iTickSize);}
this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(iUp,iDown,iTickSize){this.topConstraint=iUp;this.bottomConstraint=iDown;this.minY=this.initPageY-iUp;this.maxY=this.initPageY+iDown;if(iTickSize){this.setYTicks(this.initPageY,iTickSize);}
this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var dx=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var dy=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(dx,dy);}else{this.setInitPosition();}
if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}
if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(val,tickArray){if(!tickArray){return val;}else if(tickArray[0]>=val){return tickArray[0];}else{for(var i=0,len=tickArray.length;i<len;++i){var next=i+1;if(tickArray[next]&&tickArray[next]>=val){var diff1=val-tickArray[i];var diff2=tickArray[next]-val;return(diff2>diff1)?tickArray[i]:tickArray[next];}}
return tickArray[tickArray.length-1];}},toString:function(){return("DragDrop "+this.id);}};})();if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var Event=YAHOO.util.Event;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initalized:false,locked:false,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(sMethod,args){for(var i in this.ids){for(var j in this.ids[i]){var oDD=this.ids[i][j];if(!this.isTypeOfDD(oDD)){continue;}
oDD[sMethod].apply(oDD,args);}}},_onLoad:function(){this.init();Event.on(document,"mouseup",this.handleMouseUp,this,true);Event.on(document,"mousemove",this.handleMouseMove,this,true);Event.on(window,"unload",this._onUnload,this,true);Event.on(window,"resize",this._onResize,this,true);},_onResize:function(e){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(oDD,sGroup){if(!this.initialized){this.init();}
if(!this.ids[sGroup]){this.ids[sGroup]={};}
this.ids[sGroup][oDD.id]=oDD;},removeDDFromGroup:function(oDD,sGroup){if(!this.ids[sGroup]){this.ids[sGroup]={};}
var obj=this.ids[sGroup];if(obj&&obj[oDD.id]){delete obj[oDD.id];}},_remove:function(oDD){for(var g in oDD.groups){if(g&&this.ids[g][oDD.id]){delete this.ids[g][oDD.id];}}
delete this.handleIds[oDD.id];},regHandle:function(sDDId,sHandleId){if(!this.handleIds[sDDId]){this.handleIds[sDDId]={};}
this.handleIds[sDDId][sHandleId]=sHandleId;},isDragDrop:function(id){return(this.getDDById(id))?true:false;},getRelated:function(p_oDD,bTargetsOnly){var oDDs=[];for(var i in p_oDD.groups){for(j in this.ids[i]){var dd=this.ids[i][j];if(!this.isTypeOfDD(dd)){continue;}
if(!bTargetsOnly||dd.isTarget){oDDs[oDDs.length]=dd;}}}
return oDDs;},isLegalTarget:function(oDD,oTargetDD){var targets=this.getRelated(oDD,true);for(var i=0,len=targets.length;i<len;++i){if(targets[i].id==oTargetDD.id){return true;}}
return false;},isTypeOfDD:function(oDD){return(oDD&&oDD.__ygDragDrop);},isHandle:function(sDDId,sHandleId){return(this.handleIds[sDDId]&&this.handleIds[sDDId][sHandleId]);},getDDById:function(id){for(var i in this.ids){if(this.ids[i][id]){return this.ids[i][id];}}
return null;},handleMouseDown:function(e,oDD){this.currentTarget=YAHOO.util.Event.getTarget(e);this.dragCurrent=oDD;var el=oDD.getEl();this.startX=YAHOO.util.Event.getPageX(e);this.startY=YAHOO.util.Event.getPageY(e);this.deltaX=this.startX-el.offsetLeft;this.deltaY=this.startY-el.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var DDM=YAHOO.util.DDM;DDM.startDrag(DDM.startX,DDM.startY);},this.clickTimeThresh);},startDrag:function(x,y){clearTimeout(this.clickTimeout);if(this.dragCurrent){this.dragCurrent.b4StartDrag(x,y);this.dragCurrent.startDrag(x,y);}
this.dragThreshMet=true;},handleMouseUp:function(e){if(!this.dragCurrent){return;}
clearTimeout(this.clickTimeout);if(this.dragThreshMet){this.fireEvents(e,true);}else{}
this.stopDrag(e);this.stopEvent(e);},stopEvent:function(e){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(e);}
if(this.preventDefault){YAHOO.util.Event.preventDefault(e);}},stopDrag:function(e){if(this.dragCurrent){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(e);this.dragCurrent.endDrag(e);}
this.dragCurrent.onMouseUp(e);}
this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(e){if(!this.dragCurrent){return true;}
if(YAHOO.util.Event.isIE&&!e.button){this.stopEvent(e);return this.handleMouseUp(e);}
if(!this.dragThreshMet){var diffX=Math.abs(this.startX-YAHOO.util.Event.getPageX(e));var diffY=Math.abs(this.startY-YAHOO.util.Event.getPageY(e));if(diffX>this.clickPixelThresh||diffY>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}
if(this.dragThreshMet){this.dragCurrent.b4Drag(e);this.dragCurrent.onDrag(e);this.fireEvents(e,false);}
this.stopEvent(e);return true;},fireEvents:function(e,isDrop){var dc=this.dragCurrent;if(!dc||dc.isLocked()){return;}
var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);var pt=new YAHOO.util.Point(x,y);var oldOvers=[];var outEvts=[];var overEvts=[];var dropEvts=[];var enterEvts=[];for(var i in this.dragOvers){var ddo=this.dragOvers[i];if(!this.isTypeOfDD(ddo)){continue;}
if(!this.isOverTarget(pt,ddo,this.mode)){outEvts.push(ddo);}
oldOvers[i]=true;delete this.dragOvers[i];}
for(var sGroup in dc.groups){if("string"!=typeof sGroup){continue;}
for(i in this.ids[sGroup]){var oDD=this.ids[sGroup][i];if(!this.isTypeOfDD(oDD)){continue;}
if(oDD.isTarget&&!oDD.isLocked()&&oDD!=dc){if(this.isOverTarget(pt,oDD,this.mode)){if(isDrop){dropEvts.push(oDD);}else{if(!oldOvers[oDD.id]){enterEvts.push(oDD);}else{overEvts.push(oDD);}
this.dragOvers[oDD.id]=oDD;}}}}}
if(this.mode){if(outEvts.length){dc.b4DragOut(e,outEvts);dc.onDragOut(e,outEvts);}
if(enterEvts.length){dc.onDragEnter(e,enterEvts);}
if(overEvts.length){dc.b4DragOver(e,overEvts);dc.onDragOver(e,overEvts);}
if(dropEvts.length){dc.b4DragDrop(e,dropEvts);dc.onDragDrop(e,dropEvts);}}else{var len=0;for(i=0,len=outEvts.length;i<len;++i){dc.b4DragOut(e,outEvts[i].id);dc.onDragOut(e,outEvts[i].id);}
for(i=0,len=enterEvts.length;i<len;++i){dc.onDragEnter(e,enterEvts[i].id);}
for(i=0,len=overEvts.length;i<len;++i){dc.b4DragOver(e,overEvts[i].id);dc.onDragOver(e,overEvts[i].id);}
for(i=0,len=dropEvts.length;i<len;++i){dc.b4DragDrop(e,dropEvts[i].id);dc.onDragDrop(e,dropEvts[i].id);}}
if(isDrop&&!dropEvts.length){dc.onInvalidDrop(e);}},getBestMatch:function(dds){var winner=null;var len=dds.length;if(len==1){winner=dds[0];}else{for(var i=0;i<len;++i){var dd=dds[i];if(this.mode==this.INTERSECT&&dd.cursorIsOver){winner=dd;break;}else{if(!winner||!winner.overlap||(dd.overlap&&winner.overlap.getArea()<dd.overlap.getArea())){winner=dd;}}}}
return winner;},refreshCache:function(groups){for(var sGroup in groups){if("string"!=typeof sGroup){continue;}
for(var i in this.ids[sGroup]){var oDD=this.ids[sGroup][i];if(this.isTypeOfDD(oDD)){var loc=this.getLocation(oDD);if(loc){this.locationCache[oDD.id]=loc;}else{delete this.locationCache[oDD.id];}}}}},verifyEl:function(el){try{if(el){var parent=el.offsetParent;if(parent){return true;}}}catch(e){}
return false;},getLocation:function(oDD){if(!this.isTypeOfDD(oDD)){return null;}
var el=oDD.getEl(),pos,x1,x2,y1,y2,t,r,b,l;try{pos=YAHOO.util.Dom.getXY(el);}catch(e){}
if(!pos){return null;}
x1=pos[0];x2=x1+el.offsetWidth;y1=pos[1];y2=y1+el.offsetHeight;t=y1-oDD.padding[0];r=x2+oDD.padding[1];b=y2+oDD.padding[2];l=x1-oDD.padding[3];return new YAHOO.util.Region(t,r,b,l);},isOverTarget:function(pt,oTarget,intersect){var loc=this.locationCache[oTarget.id];if(!loc||!this.useCache){loc=this.getLocation(oTarget);this.locationCache[oTarget.id]=loc;}
if(!loc){return false;}
oTarget.cursorIsOver=loc.contains(pt);var dc=this.dragCurrent;if(!dc||!dc.getTargetCoord||(!intersect&&!dc.constrainX&&!dc.constrainY)){return oTarget.cursorIsOver;}
oTarget.overlap=null;var pos=dc.getTargetCoord(pt.x,pt.y);var el=dc.getDragEl();var curRegion=new YAHOO.util.Region(pos.y,pos.x+el.offsetWidth,pos.y+el.offsetHeight,pos.x);var overlap=curRegion.intersect(loc);if(overlap){oTarget.overlap=overlap;return(intersect)?true:oTarget.cursorIsOver;}else{return false;}},_onUnload:function(e,me){this.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}
this._execOnAll("unreg",[]);for(i in this.elementCache){delete this.elementCache[i];}
this.elementCache={};this.ids={};},elementCache:{},getElWrapper:function(id){var oWrapper=this.elementCache[id];if(!oWrapper||!oWrapper.el){oWrapper=this.elementCache[id]=new this.ElementWrapper(YAHOO.util.Dom.get(id));}
return oWrapper;},getElement:function(id){return YAHOO.util.Dom.get(id);},getCss:function(id){var el=YAHOO.util.Dom.get(id);return(el)?el.style:null;},ElementWrapper:function(el){this.el=el||null;this.id=this.el&&el.id;this.css=this.el&&el.style;},getPosX:function(el){return YAHOO.util.Dom.getX(el);},getPosY:function(el){return YAHOO.util.Dom.getY(el);},swapNode:function(n1,n2){if(n1.swapNode){n1.swapNode(n2);}else{var p=n2.parentNode;var s=n2.nextSibling;if(s==n1){p.insertBefore(n1,n2);}else if(n2==n1.nextSibling){p.insertBefore(n2,n1);}else{n1.parentNode.replaceChild(n2,n1);p.insertBefore(n1,s);}}},getScroll:function(){var t,l,dde=document.documentElement,db=document.body;if(dde&&(dde.scrollTop||dde.scrollLeft)){t=dde.scrollTop;l=dde.scrollLeft;}else if(db){t=db.scrollTop;l=db.scrollLeft;}else{YAHOO.log("could not get scroll property");}
return{top:t,left:l};},getStyle:function(el,styleProp){return YAHOO.util.Dom.getStyle(el,styleProp);},getScrollTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(moveEl,targetEl){var aCoord=YAHOO.util.Dom.getXY(targetEl);YAHOO.util.Dom.setXY(moveEl,aCoord);},getClientHeight:function(){return YAHOO.util.Dom.getViewportHeight();},getClientWidth:function(){return YAHOO.util.Dom.getViewportWidth();},numericSort:function(a,b){return(a-b);},_timeoutCount:0,_addListeners:function(){var DDM=YAHOO.util.DDM;if(YAHOO.util.Event&&document){DDM._onLoad();}else{if(DDM._timeoutCount>2000){}else{setTimeout(DDM._addListeners,10);if(document&&document.body){DDM._timeoutCount+=1;}}}},handleWasClicked:function(node,id){if(this.isHandle(id,node.id)){return true;}else{var p=node.parentNode;while(p){if(this.isHandle(id,p.id)){return true;}else{p=p.parentNode;}}}
return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}
YAHOO.util.DD=function(id,sGroup,config){if(id){this.init(id,sGroup,config);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(iPageX,iPageY){var x=iPageX-this.startPageX;var y=iPageY-this.startPageY;this.setDelta(x,y);},setDelta:function(iDeltaX,iDeltaY){this.deltaX=iDeltaX;this.deltaY=iDeltaY;},setDragElPos:function(iPageX,iPageY){var el=this.getDragEl();this.alignElWithMouse(el,iPageX,iPageY);},alignElWithMouse:function(el,iPageX,iPageY){var oCoord=this.getTargetCoord(iPageX,iPageY);if(!this.deltaSetXY){var aCoord=[oCoord.x,oCoord.y];YAHOO.util.Dom.setXY(el,aCoord);var newLeft=parseInt(YAHOO.util.Dom.getStyle(el,"left"),10);var newTop=parseInt(YAHOO.util.Dom.getStyle(el,"top"),10);this.deltaSetXY=[newLeft-oCoord.x,newTop-oCoord.y];}else{YAHOO.util.Dom.setStyle(el,"left",(oCoord.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(el,"top",(oCoord.y+this.deltaSetXY[1])+"px");}
this.cachePosition(oCoord.x,oCoord.y);this.autoScroll(oCoord.x,oCoord.y,el.offsetHeight,el.offsetWidth);},cachePosition:function(iPageX,iPageY){if(iPageX){this.lastPageX=iPageX;this.lastPageY=iPageY;}else{var aCoord=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=aCoord[0];this.lastPageY=aCoord[1];}},autoScroll:function(x,y,h,w){if(this.scroll){var clientH=this.DDM.getClientHeight();var clientW=this.DDM.getClientWidth();var st=this.DDM.getScrollTop();var sl=this.DDM.getScrollLeft();var bot=h+y;var right=w+x;var toBot=(clientH+st-y-this.deltaY);var toRight=(clientW+sl-x-this.deltaX);var thresh=40;var scrAmt=(document.all)?80:30;if(bot>clientH&&toBot<thresh){window.scrollTo(sl,st+scrAmt);}
if(y<st&&st>0&&y-st<thresh){window.scrollTo(sl,st-scrAmt);}
if(right>clientW&&toRight<thresh){window.scrollTo(sl+scrAmt,st);}
if(x<sl&&sl>0&&x-sl<thresh){window.scrollTo(sl-scrAmt,st);}}},getTargetCoord:function(iPageX,iPageY){var x=iPageX-this.deltaX;var y=iPageY-this.deltaY;if(this.constrainX){if(x<this.minX){x=this.minX;}
if(x>this.maxX){x=this.maxX;}}
if(this.constrainY){if(y<this.minY){y=this.minY;}
if(y>this.maxY){y=this.maxY;}}
x=this.getTick(x,this.xTicks);y=this.getTick(y,this.yTicks);return{x:x,y:y};},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(e){this.autoOffset(YAHOO.util.Event.getPageX(e),YAHOO.util.Event.getPageY(e));},b4Drag:function(e){this.setDragElPos(YAHOO.util.Event.getPageX(e),YAHOO.util.Event.getPageY(e));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(id,sGroup,config){if(id){this.init(id,sGroup,config);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var self=this;var body=document.body;if(!body||!body.firstChild){setTimeout(function(){self.createFrame();},50);return;}
var div=this.getDragEl();if(!div){div=document.createElement("div");div.id=this.dragElId;var s=div.style;s.position="absolute";s.visibility="hidden";s.cursor="move";s.border="2px solid #aaa";s.zIndex=999;body.insertBefore(div,body.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(iPageX,iPageY){var el=this.getEl();var dragEl=this.getDragEl();var s=dragEl.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(s.width,10)/2),Math.round(parseInt(s.height,10)/2));}
this.setDragElPos(iPageX,iPageY);YAHOO.util.Dom.setStyle(dragEl,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var DOM=YAHOO.util.Dom;var el=this.getEl();var dragEl=this.getDragEl();var bt=parseInt(DOM.getStyle(dragEl,"borderTopWidth"),10);var br=parseInt(DOM.getStyle(dragEl,"borderRightWidth"),10);var bb=parseInt(DOM.getStyle(dragEl,"borderBottomWidth"),10);var bl=parseInt(DOM.getStyle(dragEl,"borderLeftWidth"),10);if(isNaN(bt)){bt=0;}
if(isNaN(br)){br=0;}
if(isNaN(bb)){bb=0;}
if(isNaN(bl)){bl=0;}
var newWidth=Math.max(0,el.offsetWidth-br-bl);var newHeight=Math.max(0,el.offsetHeight-bt-bb);DOM.setStyle(dragEl,"width",newWidth+"px");DOM.setStyle(dragEl,"height",newHeight+"px");}},b4MouseDown:function(e){var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);this.autoOffset(x,y);this.setDragElPos(x,y);},b4StartDrag:function(x,y){this.showFrame(x,y);},b4EndDrag:function(e){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(e){var DOM=YAHOO.util.Dom;var lel=this.getEl();var del=this.getDragEl();DOM.setStyle(del,"visibility","");DOM.setStyle(lel,"visibility","hidden");YAHOO.util.DDM.moveToEl(lel,del);DOM.setStyle(del,"visibility","hidden");DOM.setStyle(lel,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(id,sGroup,config){if(id){this.initTarget(id,sGroup,config);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});
Require.isLoaded['library.yui.dragdrop.dragdrop'] = true;
/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 0.12.2
*/


YAHOO.widget.Slider=function(sElementId,sGroup,oThumb,sType){if(sElementId){this.init(sElementId,sGroup,true);this.initSlider(sType);this.initThumb(oThumb);}};YAHOO.widget.Slider.getHorizSlider=function(sBGElId,sHandleElId,iLeft,iRight,iTickSize){return new YAHOO.widget.Slider(sBGElId,sBGElId,new YAHOO.widget.SliderThumb(sHandleElId,sBGElId,iLeft,iRight,0,0,iTickSize),"horiz");};YAHOO.widget.Slider.getVertSlider=function(sBGElId,sHandleElId,iUp,iDown,iTickSize){return new YAHOO.widget.Slider(sBGElId,sBGElId,new YAHOO.widget.SliderThumb(sHandleElId,sBGElId,0,0,iUp,iDown,iTickSize),"vert");};YAHOO.widget.Slider.getSliderRegion=function(sBGElId,sHandleElId,iLeft,iRight,iUp,iDown,iTickSize){return new YAHOO.widget.Slider(sBGElId,sBGElId,new YAHOO.widget.SliderThumb(sHandleElId,sBGElId,iLeft,iRight,iUp,iDown,iTickSize),"region");};YAHOO.widget.Slider.ANIM_AVAIL=true;YAHOO.extend(YAHOO.widget.Slider,YAHOO.util.DragDrop,{initSlider:function(sType){this.type=sType;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=YAHOO.widget.Slider.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncrement=20;this.moveComplete=true;this.animationDuration=0.2;},initThumb:function(t){var self=this;this.thumb=t;t.cacheBetweenDrags=true;t.onChange=function(){self.handleThumbChange();};if(t._isHoriz&&t.xTicks&&t.xTicks.length){this.tickPause=Math.round(360/t.xTicks.length);}else if(t.yTicks&&t.yTicks.length){this.tickPause=Math.round(360/t.yTicks.length);}
t.onMouseDown=function(){return self.focus();};t.onMouseUp=function(){self.thumbMouseUp();};t.onDrag=function(){self.fireEvents(true);};t.onAvailable=function(){return self.setStartSliderState();};},onAvailable:function(){var Event=YAHOO.util.Event;Event.on(this.id,"keydown",this.handleKeyDown,this,true);Event.on(this.id,"keypress",this.handleKeyPress,this,true);},handleKeyPress:function(e){if(this.enableKeys){var Event=YAHOO.util.Event;var kc=Event.getCharCode(e);switch(kc){case 0x25:case 0x26:case 0x27:case 0x28:case 0x24:case 0x23:Event.preventDefault(e);break;default:}}},handleKeyDown:function(e){if(this.enableKeys){var Event=YAHOO.util.Event;var kc=Event.getCharCode(e),t=this.thumb;var h=this.getXValue(),v=this.getYValue();var horiz=false;var changeValue=true;switch(kc){case 0x25:h-=this.keyIncrement;break;case 0x26:v-=this.keyIncrement;break;case 0x27:h+=this.keyIncrement;break;case 0x28:v+=this.keyIncrement;break;case 0x24:h=t.leftConstraint;v=t.topConstraint;break;case 0x23:h=t.rightConstraint;v=t.bottomConstraint;break;default:changeValue=false;}
if(changeValue){if(t._isRegion){this.setRegionValue(h,v,true);}else{var newVal=(t._isHoriz)?h:v;this.setValue(newVal,true);}
Event.stopEvent(e);}}},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);this.deferredSetRegionValue=null;}else{this.setRegionValue(0,0,true,true);}}else{if(this.deferredSetValue){this.setValue.apply(this,this.deferredSetValue,true);this.deferredSetValue=null;}else{this.setValue(0,true,true);}}},setThumbCenterPoint:function(){var el=this.thumb.getEl();if(el){this.thumbCenterPoint={x:parseInt(el.offsetWidth/2,10),y:parseInt(el.offsetHeight/2,10)};}},lock:function(){this.thumb.lock();this.locked=true;},unlock:function(){this.thumb.unlock();this.locked=false;},thumbMouseUp:function(){if(!this.isLocked()&&!this.moveComplete){this.endMove();}},getThumb:function(){return this.thumb;},focus:function(){var el=this.getEl();if(el.focus){try{el.focus();}catch(e){}}
this.verifyOffset();if(this.isLocked()){return false;}else{this.onSlideStart();return true;}},onChange:function(firstOffset,secondOffset){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue();},getXValue:function(){return this.thumb.getXValue();},getYValue:function(){return this.thumb.getYValue();},handleThumbChange:function(){var t=this.thumb;if(t._isRegion){t.onChange(t.getXValue(),t.getYValue());this.fireEvent("change",{x:t.getXValue(),y:t.getYValue()});}else{t.onChange(t.getValue());this.fireEvent("change",t.getValue());}},setValue:function(newOffset,skipAnim,force){if(!this.thumb.available){this.deferredSetValue=arguments;return false;}
if(this.isLocked()&&!force){return false;}
if(isNaN(newOffset)){return false;}
var t=this.thumb;var newX,newY;this.verifyOffset(true);if(t._isRegion){return false;}else if(t._isHoriz){this.onSlideStart();newX=t.initPageX+newOffset+this.thumbCenterPoint.x;this.moveThumb(newX,t.initPageY,skipAnim);}else{this.onSlideStart();newY=t.initPageY+newOffset+this.thumbCenterPoint.y;this.moveThumb(t.initPageX,newY,skipAnim);}
return true;},setRegionValue:function(newOffset,newOffset2,skipAnim,force){if(!this.thumb.available){this.deferredSetRegionValue=arguments;return false;}
if(this.isLocked()&&!force){return false;}
if(isNaN(newOffset)){return false;}
var t=this.thumb;if(t._isRegion){this.onSlideStart();var newX=t.initPageX+newOffset+this.thumbCenterPoint.x;var newY=t.initPageY+newOffset2+this.thumbCenterPoint.y;this.moveThumb(newX,newY,skipAnim);return true;}
return false;},verifyOffset:function(checkPos){var newPos=YAHOO.util.Dom.getXY(this.getEl());if(newPos[0]!=this.baselinePos[0]||newPos[1]!=this.baselinePos[1]){this.thumb.resetConstraints();this.baselinePos=newPos;return false;}
return true;},moveThumb:function(x,y,skipAnim){var t=this.thumb;var self=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];this.fireEvent("slideStart");if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&t._graduated&&!skipAnim){this.lock();this.curCoord=YAHOO.util.Dom.getXY(this.thumb.getEl());setTimeout(function(){self.moveOneTick(p);},this.tickPause);}else if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&!skipAnim){this.lock();var oAnim=new YAHOO.util.Motion(t.id,{points:{to:p}},this.animationDuration,YAHOO.util.Easing.easeOut);oAnim.onComplete.subscribe(function(){self.endMove();});oAnim.animate();}else{t.setDragElPos(x,y);this.endMove();}},moveOneTick:function(finalCoord){var t=this.thumb,tmp;var nextCoord=null;if(t._isRegion){nextCoord=this._getNextX(this.curCoord,finalCoord);var tmpX=(nextCoord)?nextCoord[0]:this.curCoord[0];nextCoord=this._getNextY([tmpX,this.curCoord[1]],finalCoord);}else if(t._isHoriz){nextCoord=this._getNextX(this.curCoord,finalCoord);}else{nextCoord=this._getNextY(this.curCoord,finalCoord);}
if(nextCoord){this.curCoord=nextCoord;this.thumb.alignElWithMouse(t.getEl(),nextCoord[0],nextCoord[1]);if(!(nextCoord[0]==finalCoord[0]&&nextCoord[1]==finalCoord[1])){var self=this;setTimeout(function(){self.moveOneTick(finalCoord);},this.tickPause);}else{this.endMove();}}else{this.endMove();}},_getNextX:function(curCoord,finalCoord){var t=this.thumb;var thresh;var tmp=[];var nextCoord=null;if(curCoord[0]>finalCoord[0]){thresh=t.tickSize-this.thumbCenterPoint.x;tmp=t.getTargetCoord(curCoord[0]-thresh,curCoord[1]);nextCoord=[tmp.x,tmp.y];}else if(curCoord[0]<finalCoord[0]){thresh=t.tickSize+this.thumbCenterPoint.x;tmp=t.getTargetCoord(curCoord[0]+thresh,curCoord[1]);nextCoord=[tmp.x,tmp.y];}else{}
return nextCoord;},_getNextY:function(curCoord,finalCoord){var t=this.thumb;var thresh;var tmp=[];var nextCoord=null;if(curCoord[1]>finalCoord[1]){thresh=t.tickSize-this.thumbCenterPoint.y;tmp=t.getTargetCoord(curCoord[0],curCoord[1]-thresh);nextCoord=[tmp.x,tmp.y];}else if(curCoord[1]<finalCoord[1]){thresh=t.tickSize+this.thumbCenterPoint.y;tmp=t.getTargetCoord(curCoord[0],curCoord[1]+thresh);nextCoord=[tmp.x,tmp.y];}else{}
return nextCoord;},b4MouseDown:function(e){this.thumb.autoOffset();this.thumb.resetConstraints();},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);}},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);}},endMove:function(){this.unlock();this.moveComplete=true;this.fireEvents();},fireEvents:function(thumbEvent){var t=this.thumb;if(!thumbEvent){t.cachePosition();}
if(!this.isLocked()){if(t._isRegion){var newX=t.getXValue();var newY=t.getYValue();if(newX!=this.previousX||newY!=this.previousY){this.onChange(newX,newY);this.fireEvent("change",{x:newX,y:newY});}
this.previousX=newX;this.previousY=newY;}else{var newVal=t.getValue();if(newVal!=this.previousVal){this.onChange(newVal);this.fireEvent("change",newVal);}
this.previousVal=newVal;}
if(this.moveComplete){this.onSlideEnd();this.fireEvent("slideEnd");this.moveComplete=false;}}},toString:function(){return("Slider ("+this.type+") "+this.id);}});YAHOO.augment(YAHOO.widget.Slider,YAHOO.util.EventProvider);YAHOO.widget.SliderThumb=function(id,sGroup,iLeft,iRight,iUp,iDown,iTickSize){if(id){YAHOO.widget.SliderThumb.superclass.constructor.call(this,id,sGroup);this.parentElId=sGroup;}
this.isTarget=false;this.tickSize=iTickSize;this.maintainOffset=true;this.initSlider(iLeft,iRight,iUp,iDown,iTickSize);this.scroll=false;};YAHOO.extend(YAHOO.widget.SliderThumb,YAHOO.util.DD,{startOffset:null,_isHoriz:false,_prevVal:0,_graduated:false,getOffsetFromParent0:function(parentPos){var myPos=YAHOO.util.Dom.getXY(this.getEl());var ppos=parentPos||YAHOO.util.Dom.getXY(this.parentElId);return[(myPos[0]-ppos[0]),(myPos[1]-ppos[1])];},getOffsetFromParent:function(parentPos){var el=this.getEl();if(!this.deltaOffset){var myPos=YAHOO.util.Dom.getXY(el);var ppos=parentPos||YAHOO.util.Dom.getXY(this.parentElId);var newOffset=[(myPos[0]-ppos[0]),(myPos[1]-ppos[1])];var l=parseInt(YAHOO.util.Dom.getStyle(el,"left"),10);var t=parseInt(YAHOO.util.Dom.getStyle(el,"top"),10);var deltaX=l-newOffset[0];var deltaY=t-newOffset[1];if(isNaN(deltaX)||isNaN(deltaY)){}else{this.deltaOffset=[deltaX,deltaY];}}else{var newLeft=parseInt(YAHOO.util.Dom.getStyle(el,"left"),10);var newTop=parseInt(YAHOO.util.Dom.getStyle(el,"top"),10);newOffset=[newLeft+this.deltaOffset[0],newTop+this.deltaOffset[1]];}
return newOffset;},initSlider:function(iLeft,iRight,iUp,iDown,iTickSize){this.initLeft=iLeft;this.initRight=iRight;this.initUp=iUp;this.initDown=iDown;this.setXConstraint(iLeft,iRight,iTickSize);this.setYConstraint(iUp,iDown,iTickSize);if(iTickSize&&iTickSize>1){this._graduated=true;}
this._isHoriz=(iLeft||iRight);this._isVert=(iUp||iDown);this._isRegion=(this._isHoriz&&this._isVert);},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this);this.tickSize=0;this._graduated=false;},getValue:function(){if(!this.available){return 0;}
var val=(this._isHoriz)?this.getXValue():this.getYValue();return val;},getXValue:function(){if(!this.available){return 0;}
var newOffset=this.getOffsetFromParent();return(newOffset[0]-this.startOffset[0]);},getYValue:function(){if(!this.available){return 0;}
var newOffset=this.getOffsetFromParent();return(newOffset[1]-this.startOffset[1]);},toString:function(){return"SliderThumb "+this.id;},onChange:function(x,y){}});if("undefined"==typeof YAHOO.util.Anim){YAHOO.widget.Slider.ANIM_AVAIL=false;}
Require.isLoaded['library.yui.slider.slider'] = true;
/*
 * json.js
 * 2006-04-28
 *
 * This file adds these methods to JavaScript:
 *
 *    object.toJSONString()
 *        This method produces a JSON text from an object. The
 *        object must not contain any cyclical references.
 *
 *    array.toJSONString()
 *        This method produces a JSON text from an array. The
 *        array must not contain any cyclical references.
 *
 *    string.parseJSON()
 *        This method parses a JSON text to produce an object or
 *        array. It will return false if there is an error.
 */

(function () {
	var m = {
		'\b': '\\b',
		'\t': '\\t',
		'\n': '\\n',
		'\f': '\\f',
		'\r': '\\r',
		'"' : '\\"',
		'\\': '\\\\'
	},

	s = {
		array: function (x) {
			var a = ['['], b, f, i, l = x.length, v;
			for (i = 0; i < l; i += 1) {
				v = x[i];
				f = s[typeof v];
				if (f) {
					v = f(v);
					if (typeof v == 'string') {
						if (b) { a[a.length] = ','; }
						a[a.length] = v;
						b = true;
					}
				}
			}
			a[a.length] = ']';
			return a.join('');
		},

		'boolean': function (x) { return String(x); },

		'null': function (x) { return "null"; },

		number: function (x) { return isFinite(x)? String(x) : 'null'; },

		object: function (x) {
			if (x) {
				if (x instanceof Array) { return s.array(x); }
				var a = ['{'], b, f, i, v;
				for (i in x) {
					v = x[i];
					f = s[typeof v];
					if (f) {
						v = f(v);
						if (typeof v == 'string') {
							if (b) { a[a.length] = ','; }
							a.push(s.string(i), ':', v);
							b = true;
						}
					}
				}
				a[a.length] = '}';
				return a.join();
			}
			return 'null';
		},

		string: function (x) {
			if (/["\\\x00-\x1f]/.test(x)) {
				x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
					var c = m[b];
					if (c) { return c; }
					c = b.charCodeAt();
					return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
				});
			}
			return '"' + x + '"';
		}
	};

	Object.prototype.toJSONString = function () {
		return s.object(this);
	};

	Array.prototype.toJSONString = function () {
		return s.array(this);
	};
})();

String.prototype.parseJSON = function () {
	try {
		return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(this.replace(/"(\\.|[^"\\])*"/g, ''))) && eval('(' + this + ')');
	} catch (e) {
		return false;
	}
};
Require.isLoaded['library.json'] = true;

/*
 * Some rights reserved (cc) 2006, TPI - Telefonica Publicidade e Informatica Ltda
 * @autor: Flavio Crispim dos Santos / TPI 2006
 * http://creativecommons.org/licenses/by-sa/2.5/
 */

/**
 * The TPI global namespace
 * @constructor
 */
window.TPI = window.TPI || {};
TPI.util = {};

/**
 * Class providing static helper methods.
 *
 * requires YAHOO.util.Dom Dom utility
 * requires YAHOO.util.Event Event utility
 */
TPI.util = {

	/**
	 * Always returns an array, if obj is an array, return obj.
	 * If obj isn?t an array return a new single element array.
	 * Otherwise return an empty array.
	 * 
	 * @param {Object} obj
	 * @return array
	 */
	getArray : function(obj){
		if(!obj) return [];
		if (obj.toArray) {
			return obj.toArray();
		} else {
			var ar = [];
			for (var i = 0; i < obj.length; i++) ar.push(obj[i]);
			return ar;
		}
	},
	
	getBorderWidth: function(el, pos){
		if(pos){
			pos = pos.toLowerCase();
			pos = pos.charAt(0).toUpperCase() + pos.substring(1, pos.length);
			var w = parseInt(YAHOO.util.Dom.getStyle(el, 'border' + pos + 'Width').replace('\px', ''));
			if(isNaN(w)){ w = 0; }
			return w;
		}else{
			var o = {};
			var s = ['top', 'right', 'bottom', 'left'];
			for(var i = 0; i < s.length; i++){
				o[s[i]] = TPI.util.getBorderWidth(el, s[i]);
			}
			return o;
		}
	},
	
	getStyleInt: function(el, pos){
		var w = YAHOO.util.Dom.getStyle(el, pos);
		if(w){ w = parseInt(w.replace('\px', '')) };
		if(isNaN(w)){ w = 0; }
		return w;
	},
	
	scriptRegex: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',
	
	executeScripts: function(param) {
		var matchAll = new RegExp(TPI.util.scriptRegex, 'img');
		var matchOne = new RegExp(TPI.util.scriptRegex, 'im');
		var m = (param.match(matchAll) || []);
		for(var i = 0; i < m.length; i++){
			eval((m[i].match(matchOne) || ['', ''])[1]);
		}
	}
}

/**
 * Class providing static helper methods.
 *
 * requires YAHOO.util.Dom Dom utility
 * requires YAHOO.util.Event Event utility
 */
TPI.util.Class = {

	/**
	 * Create a new Object Class whose constructor is 'init()'.
	 * The init method have a reference to the arguments of the 'new' 
	 *
	 * @type number
	 * @type object
	 */
	create : function() {
		return function() {
			this.init.apply(this, arguments);
		}
	},

	/**
	 * Copies all prototype properties from src to dest.
	 * 
	 * @param {Object} dest
	 * @param {Object} src
	 * @type void
	 */
	copy : function(dest, src){
		if(!src) src = TPI.util.Class.create();
		for (var x in src) dest.prototype[x] = src[x];
		return dest;
	},

	/**
	 * Shortcut method used to obtain an object method/function.
	 * Intended for api internal use only.
	 * 
	 * @param {Object} obj
	 * @param {Object} mName
	 * @type function
	 */
	getMethod : function(obj,mName){
		if(mName){
			switch(typeof(mName)){
				case 'string':
					if(!obj[mName]) return function(){}
					return obj[mName];
				case 'function':
					return mName;
				default: // empty
					return function(){};
			}
		}else if(typeof(obj) === 'function'){
			return obj;
		}else{
			return function(){};
		}
	},

	/**
	 * Return a function scoped to the specified object
	 * 
	 * @param {Object} obj
	 * @param {Object} mName
	 * @param {Object} arguments
	 * @type function
	 */
	scopeMethod : function(obj, mName, arguments){
		var _method = this.getMethod(obj, mName);
		var args = TPI.util.getArray(arguments).slice(2);
		return function() {
			return _method.apply(obj, args.concat(TPI.util.getArray(arguments)));
		}			
	}
	
}

/**
 * Class providing static helper methods.
 *
 * requires YAHOO.util.Dom Dom utility
 * requires YAHOO.util.Event Event utility
 */
TPI.util.Event = {

	/**
	 * Helper method to add an event handler.
	 * Useful and straightforward will to add an object method as event listener.
	 * 
	 * Example:
	 * \t var anObj = function(){
	 * \t\t     this.objState = 1; 
	 * \t\t 	this.getValue = function(){ alert(this.objState); }
	 * \t }
	 * \t Use:
	 * \t TPI.util.Event.observe('divId', 'click', 'getValue', anObj);
	 * \n\t Intead of:
	 * \t TPI.util.Event.addListener('divId', 'click', anObj.getValue, anObj, true);
	 * 
	 * In both cases getValue() will cause a alert to display the number 1.
	 * 
	 * @param {string|el ref|arr el) observable
	 * @param {string} eventType
	 * @param {string|function) observer
	 * @param {object} observerContext
	 * @type void
	 */
	observe : function(observable, eventType, observer, observerContext){
		var _observer = TPI.util.Class.getMethod(observerContext, observer);
		if(eventType === 'mousewheel') this._observeMouseWheel(observable, observer, observerContext);
		else YAHOO.util.Event.addListener(observable, eventType, _observer, observerContext, true);
	},

	/**
	 * Add listener to the mouse-scroll event.
	 * Based on: http://adomas.org/javascript-mouse-wheel/
	 * 
	 * @param {Object} e
	 */
	_observeMouseWheel : function(observable, observer, observerContext){
		var _et = (document.all)?'mousewheel':'DOMMouseScroll';
		var _scrollHandler = function(e){
			var _observer = TPI.util.Class.scopeMethod(observerContext, observer);
			var delta = 0;
			if (!e) e = window.event;
			if (e.wheelDelta) {
				delta = e.wheelDelta/120;
				if (window.opera) delta = -delta;
			} else if (e.detail) delta = -e.detail/3;
			if (delta) _observer(-delta);
			YAHOO.util.Event.stopEvent(e);
		}
		YAHOO.util.Event.addListener(observable, _et, _scrollHandler);
	}

}

/**
 * 
 * @param {Object} obj
 */
TPI.util.UIUtil = function(obj){

	/*
	 * Imports
	 */
	var $Dom = YAHOO.util.Dom;

	/*
	 * Private variables
	 */
	var _name = obj.getName();
	var _styleClass = obj.getStyleClass();
	var registry = {};
	
	this.toString = function(){
		return "TPI.util.UIUtil@instance:(" + obj.getName() + ")";
	}
	
	this.getClassName = function(suffix){
		var rClass = '';
		if(typeof(_styleClass) !== 'undefined'){
			rClass += _styleClass + '_' + suffix + ' ' + suffix;
		}else{
			rClass += suffix;
		}
		return rClass;
	}

	this.setObject = function(id, objId){
		registry[id] = objId;			
	}

	this.getObjectName = function(id){
		return registry[id];
	}

	this.getObject = function(id){
		return $Dom.get(this.getObjectName(id));
	}
	this.getWH = function(el){
		var region = $Dom.getRegion(el);
		return ({w:(region.right-region.left), h:(region.bottom-region.top)});
	}

	this.getWHByNick = function(id){
		return this.getWH(this.getObjectName(id));
	}

	this.getDiv = function(id, properties, parentEl){
		var elId = _name + "_" + id;
		var el = YAHOO.util.Dom.get(elId);
		if(!el){
			el = document.createElement('div');
			el.id = elId;
			$Dom.addClass(el, this.getClassName(id))
			if(parentEl) { parentEl.appendChild(el); }
		}
		for (x in properties) { $Dom.setStyle(el, x, properties[x]); }
		this.setObject(id, el.id);
		return el;
	}

	this.setObject('root', _name);
}
Require.isLoaded['Classes.tpiUtil'] = true;
/*
 * Some rights reserved (cc) 2006, TPI - Telefonica Publicidade e Informatica Ltda
 * @autor: Flavio Crispim dos Santos / TPI 2006
 * http://creativecommons.org/licenses/by-sa/2.5/
 */

/**
 * The TPI global namespace
 * @constructor
 */
window.TPI = window.TPI || {};
TPI.scroll = {};

/*
 * TODO: Implement a consistent automatic frame-skiping alg. to the sliders onChange
 * handler.
 * 
 * TODO: Implement quick-search logic to the scroll position computation.
 */
TPI.scroll.ScrollConstraints = function(){
	var _state_ = this.state;
	if(!_state_){
		if(YAHOO && YAHOO.util && YAHOO.widget && 
		   YAHOO.util.Dom && YAHOO.util.Event &&
		   YAHOO.widget.Slider){
			_state_ = "OK";
		}else{
			throw new Error("ScrollWidget@sanityFailed: check basic YAHOO contraints: YAHOO.util.Dom, YAHOO.util.Event and YAHOO.widget.Slider");
		}
	}
}

/**
 * 
 */
TPI.scroll.Scroll = function(name, styleClass, maxSliderHeight){

	/*
	 * SANITY CHECK
	 */ 
	TPI.scroll.ScrollConstraints();

	/*
	 * Imports
	 */
	var $Event = YAHOO.util.Event;

	/*
	 * Public methods
	 */
	this.toString = function(){
		return "TPI.scroll.Scroll@instance:(" + this.getName() + ")";
	}

	/* Getters */
	this.getName = function(){ return name; }
	this.getStyleClass = function(){ return styleClass; }
	this.getUtil = function(){ return _util; }
	this.getDrawUtil = function(){ return _drawUtil; }
	this.getHandler = function(){ return _handler; }
	this.getMaxSliderHeight = function(){ return maxSliderHeight; }
	this.setIsHidden = function(pValue){ _isHidden = pValue || false; }
	this.isHidden = function(){ return _isHidden; }
	
	/*
	 * Private members
	 */
	try{
		var _util = new TPI.util.UIUtil(this);
	}catch(e){
		alert(e.message);
	}
	var _drawUtil = new TPI.scroll.ScrollDrawUtil(this);
	var _handler = new TPI.scroll.ScrollHandler(this);
	var _memento = new TPI.scroll.Memento(name);
	var _isHidden = true;

	this.fit = function (pWidth){
		_memento.override('width', pWidth);
		this.reset();
	}

	this.draw = function(){
		_memento.backup();
		var rValue = _drawUtil.draw();
		if(this.isHidden()){ _memento.restore(); }
		return rValue;
	}

	this.start = function(){
		return _handler.handle();
	}

	this.reset = function(){
		_handler.stopHandle();
		_memento.restore();
		_drawUtil.update();
		_handler.resetHandle();
		if(this.isHidden()){ _memento.restore(); }
	}

	this.destroy = function(){
		_handler.stopHandle(true);
		_drawUtil.destroy();
		_memento.restore();
	}
	
	this.getCoef = function(){
		var contentEl = _util.getObject('root');
		var contentArea = (_util.getWHByNick('sliderArea').h - _util.getWHByNick('slider').h);
		var scrollArea = (contentEl.scrollHeight - _util.getWH(contentEl).h);
		contentEl = null;
		return(contentArea / scrollArea);
	}
}

/**
 * Global scroll registry.
 * Holds a reference to every Sroll object.
 */
TPI.scroll.registry = {};

TPI.scroll.Scroll.getInstance = function(id, style){
	if(!TPI.scroll.registry[id]){
		var scroll = new TPI.scroll.Scroll(id, style)
		TPI.scroll.registry[id] = scroll;
		if(scroll.draw()){
			scroll.start();
		}
	}
	return TPI.scroll.registry[id];
}

TPI.scroll.Scroll.destroy = function(id){
	var scroll = TPI.scroll.registry[id];
	if(scroll){
		scroll.destroy();
		TPI.scroll.registry[id] = null;
	}
}

TPI.scroll.Scroll.destroyAll = function(){
	for(var x in TPI.scroll.registry){
		TPI.scroll.Scroll.destroy(x);
	}
}

TPI.scroll.resetSemaphore = {};
TPI.scroll.Scroll.reset = function(id){
	var scroll = TPI.scroll.registry[id];
	if(scroll){
		var semaphore = TPI.scroll.resetSemaphore[id];
		if(semaphore) clearTimeout(semaphore);
		var fctn = function(){
			TPI.scroll.resetSemaphore[id] = null;
			scroll.reset();
		}
		TPI.scroll.resetSemaphore[id] = setTimeout(fctn, 25);
	}
}

TPI.scroll.Scroll.newInstance = function(id, style){
    if(!TPI.scroll.registry[id]){ TPI.scroll.Scroll.destroy(id); }
	return TPI.scroll.Scroll.getInstance(id, style);
}

TPI.scroll.Scroll.fit = function(id, pWidth){
	var scroll = TPI.scroll.registry[id];
	if(scroll){
		scroll.fit(pWidth);
	}
}

TPI.scroll.Memento = function(scrollName){
	
	/*
	 * Imports
	 */
	$Dom = YAHOO.util.Dom;
	
	/*
	 * Private members
	 */
	var _styleprops = {};
	
	/*
	 * Public methods
	 */
	this.toString = function(){
		return "TPI.scroll.Memento@instance:(" + scrollName + ")";
	}

	this.backup = function(){
		_styleprops['marginRight'] = $Dom.getStyle(scrollName, 'marginRight');
		_styleprops['width'] = $Dom.getStyle(scrollName, 'width');
	}

	this.restore = function(){
		for(x in _styleprops){
			$Dom.setStyle(scrollName, x, _styleprops[x]);
		}
	}
	
	this.override = function(pName, pValue){
		_styleprops[pName] = pValue;
	}
}

/**
 * 
 * @param {Object} scroll
 */
TPI.scroll.ScrollDrawUtil = function(scroll){

	/*
	 * Imports
	 */
	var $Dom = YAHOO.util.Dom;
	var $Event = YAHOO.util.Event;
	var $TpiClass = TPI.util.Class;
	var $TpiEvent = TPI.util.Event;

	var _scroll = scroll;
	var _util = _scroll.getUtil();
	
	var _maxSliderHeight = scroll.getMaxSliderHeight();

	var _contentEl = _util.getObject('root');
	var _parentEl = _contentEl.parentNode;
	var _contentWH = _util.getWH(_contentEl);
	var _contentXY = $Dom.getXY(_contentEl);
	var _parentXY = $Dom.getXY(_parentEl);
	var _parentWH = _util.getWH(_parentEl);
	var _borderHeight = parseInt((_contentWH.h - _contentEl.clientHeight)/2);
	var _zzIndex = (_contentEl.style.zIndex?parseInt(_contentEl.style.zIndex):0);
	_contentEl = null;
	_parentEl = null;

	/*
	 * Public Methods.
	 */
	this.draw = function(){
		_getScrollDiv();
		_getScrollButtonsDiv();
		_getScrollSliderAreaDiv();
		_getScrollSliderDiv();
		return true;
	}

	this.destroy = function (){
		if(parent){
			var contentEl = _util.getObject('root');
			var parentEl = contentEl.parentNode;
			var scrollEl = _util.getObject('scroll')
			parentEl.removeChild(scrollEl);
			while(scrollEl.firstChild) scrollEl.removeChild(scrollEl.firstChild);
			contentEl.scrollTop = 0;
			contentEl = null;
			parentEl = null;
			scrollEl = null;
		}
	}

	this.update = function(){
		var _contentEl = _util.getObject('root');
		var _parentEl = _contentEl.parentNode;
		_contentXY = $Dom.getXY(_contentEl);
		_parentXY = $Dom.getXY(_parentEl);
		_contentWH = _util.getWH(_contentEl);
		_borderHeight = parseInt((_contentWH.h - _contentEl.clientHeight)/2);
		_contentEl = _parentEl = null;
		
		var _upWH = 0;
		// Redimensiona slider
		_getScrollDiv();
		_getScrollSliderAreaDiv();
		_getScrollSliderDiv();
	}

	/*
	 * Private methods
	 */
	var _getScrollDiv = function(){
try{
		var contentEl = _util.getObject('root');
		var parentEl = contentEl.parentNode;

		var contentTopBorder = 0;
		var contentLeftBorder = 0;
		var parentTopBorder = 0;
		var parentLeftBorder = 0;
		if(document.all){
			contentTopBorder = TPI.util.getBorderWidth(contentEl, 'top');
			contentLeftBorder = TPI.util.getBorderWidth(contentEl, 'left');
			parentTopBorder = TPI.util.getBorderWidth(contentEl.parentNode, 'top');
			parentLeftBorder = TPI.util.getBorderWidth(contentEl.parentNode, 'left');
		}

		var scrollProps = {
			height:(_contentWH.h - _borderHeight*2) + 'px',
			top:(_contentXY[1] - _parentXY[1] - parentTopBorder + contentTopBorder) + 'px',
			zIndex:(_zzIndex + 1),
			position:'absolute' };

		var scrollEl = _util.getDiv("scroll", scrollProps, null);
		if(!document.getElementById(_util.getObjectName('scroll'))){
			parentEl.insertBefore(scrollEl, contentEl.nextSibling);
		}

		var scrollWH = _util.getWH(scrollEl);
		var borderHeight   = (_contentWH.h - contentEl.clientHeight)/2;
		var borderWidth    = (_contentWH.w - contentEl.clientWidth)/2;
		var contentWidth   = contentEl.clientWidth - scrollWH.w;
		var contentMargin  = scrollWH.w;
 		var scrollLeft     = (_contentWH.w - scrollWH.w + _contentXY[0] - _parentXY[0]) - parentLeftBorder + contentLeftBorder;

		$Dom.setStyle(contentEl, 'marginRight', contentMargin + 'px');
		$Dom.setStyle(contentEl, 'width', contentWidth + 'px');
 		$Dom.setStyle(scrollEl, 'left', scrollLeft + 'px');

		contentEl = parentEl = scrollEl = null;
		
}catch(e) { /* flavinho, arruma por favor =) */ }
	}

	var _getScrollButtonsDiv = function(){
		// Move Up
		var scrollEl = _util.getObject('scroll');
		var zzIndex = (_zzIndex + 2);
		_util.getDiv('moveUp', {top: '0px', left:'0px', right:'0px', zIndex: zzIndex, position:'absolute'}, scrollEl);
		_util.getDiv('moveDown', {bottom: '0px', left:'0px', right:'0px', zIndex: zzIndex, position:'absolute'}, scrollEl);
		_upWH = _util.getWHByNick('moveUp');
		scrollEl = null;
	}
	
	var _getScrollSliderAreaDiv = function(){
		// Slider Area
		var scrollEl = _util.getObject('scroll');
		var areaHeight = (_contentWH.h - (_upWH.h * 2)-(2*_borderHeight));
		var areaProps = {top:_upWH.h + 'px', height: areaHeight + 'px', left: '0px', zIndex: (_zzIndex + 2), position:'absolute'};
		_util.getDiv('sliderArea', areaProps, scrollEl);
		scrollEl = null;
	}
	
	var _getScrollSliderDiv = function(){
		
		var scrollEl = _util.getObject('scroll');
		var contentEl = _util.getObject('root');
		var sliderAreaEl = _util.getObject('sliderArea');
		
		var areaHeight = (_contentWH.h - (_upWH.h * 2)-(2*_borderHeight));

		var sliderHeight = 0;
			
		sliderHeight = Math.round(areaHeight * scrollEl.scrollHeight / contentEl.scrollHeight)+2;

		if (contentEl.id == 'resultListContainer'){
			$Dom.setStyle(scrollEl, 'visibility', 'hidden');
			scroll.setIsHidden(true);
		}		
		else{
			if(sliderHeight < areaHeight){
				$Dom.setStyle(scrollEl, 'visibility', 'visible');
				scroll.setIsHidden(false);
			}else{
				$Dom.setStyle(scrollEl, 'visibility', 'hidden');
				scroll.setIsHidden(true);
			}
		}	
			
		if(sliderHeight < 14){ sliderHeight = 14; }
		
		if(_maxSliderHeight){
			sliderHeight = _maxSliderHeight;
		}
		
		var sliderProps = {height: sliderHeight + 'px', left: '0px', zIndex: (_zzIndex + 3)};
		var sliderEl = _util.getDiv("slider", sliderProps, sliderAreaEl);
		
		scrollEl = null;
		contentEl = null;
		sliderAreaEl = null;
		sliderEl = null;
	}
}

TPI.scroll.ScrollHandler = function(scroll){
	/*
	 * Imports
	 */
	var $Dom = YAHOO.util.Dom;
	var $Event = YAHOO.util.Event;
	var $CustomEvent = YAHOO.util.CustomEvent;
	var $TpiClass = TPI.util.Class;
	var $TpiEvent = TPI.util.Event;

	/*
	 * Private members
	 */
	var _util = scroll.getUtil();
	var _drawUtil = scroll.getDrawUtil();
	var _$Yslider = null;
	var _maxTop = 0;
	var _topEvent = new $CustomEvent("onTop");
	var _bottomEvent = new $CustomEvent("onBottom");
	var _changeEvent = new $CustomEvent("onChange");
	
	/*
	 * Public members.
	 */
	this.addTopListener = function(f){
		_topEvent.subscribe(f);
	}

	this.addBottomListener = function(f){
		_bottomEvent.subscribe(f);
	}

	this.addChangeListener = function(f){
		_changeEvent.subscribe(f);
	}

	this.removeTopListener = function(f){
		return _topEvent.unsubscribe(f);
	}

	this.removeBottomListener = function(f){
		return _bottomEvent.unsubscribe(f);
	}

	this.removeChangeListener = function(f){
		return _changeEvent.unsubscribe(f);
	}
	
	this.buttomUp = function(){
		_buttomUp();
	}

	this.buttomDown = function(){
		_buttomDown();
	}

	this.handle = function(){
		try{
			_setEvents();
			_setSlider();
		}catch(e){
			throw new Error("HandleError: " + scroll.getName() + ". Error while attaching event handlers. Failed with message:" + e.message);
		}
		return true;
	}

	this.resetHandle = function(){
		try{
			_checkBottom();
			_setEvents();
			_unsetSlider(true);
			_resetSlider();
			_handleMove();
		}catch(e){
			throw new Error("HandleError: " + scroll.getName() + ". Error while attaching event handlers. Failed with message:" + e.message);
		}
	}

	
	this.stopHandle = function(flag){
		var contentEl = _util.getObject('root');
		contentEl.onmouseover = '';
		var scrollId = _util.getObjectName('scroll');
		YAHOO.util.Event.purgeElement(contentEl, false, 'mousewheel');
		YAHOO.util.Event.purgeElement(contentEl, false, 'DOMMouseScroll');
		YAHOO.util.Event.purgeElement(scrollId);
		if(flag) _unsetSlider();
		contentEl = null;
	}

	/*
	 * Private functions.
	 */
	var _checkBottom = function(){
		var contentHeight = _util.getObject('root').scrollHeight;
		var parentHeight = _util.getObject('root').parentNode.scrollHeight;
		if(contentHeight <= parentHeight){
			_bottomEvent.fire(null); // onBottom
		}
	}
	
	var _setEvents = function(){
		var contentEl = _util.getObject('root');
		var scrollEl = _util.getObject('scroll');

		contentEl.onmouseover = "this.focus()";
		// $TpiEvent.observe(contentEl, 'keydown', _onKeyEvent);

		$TpiEvent.observe(contentEl, 'mousewheel', _slideUpDown);
		$TpiEvent.observe(scrollEl, 'mousewheel', _slideUpDown);
		
		var upId = _util.getObjectName('moveUp');
		$TpiEvent.observe(upId, 'mousedown', _buttomUp);

		var downId = _util.getObjectName('moveDown');
		$TpiEvent.observe(downId, 'mousedown', _buttomDown);

		contentEl = null;
		scrollEl = null;
	}
	
	var _lastYValue = 0;
	var _slideInterval = null;
	var _setSlider = function(){
		
		var areaId = _util.getObjectName('sliderArea');
		var sliderId = _util.getObjectName('slider');
		
		$Dom.setStyle(sliderId, 'top', '0px');

		var areaWH = _util.getWH(areaId);
		var sliderWH = _util.getWH(sliderId);
		_maxTop = (areaWH.h - sliderWH.h);
		_$Yslider = YAHOO.widget.Slider.getVertSlider(areaId, sliderId, 0, _maxTop);
		_handleMove();
		_$Yslider.animate = false;
	}

	var _resetSlider = function(){
		_$Yslider.lock();
		var areaWH = _util.getWHByNick('sliderArea');
		var sliderWH = _util.getWHByNick('slider');
		_maxTop = (areaWH.h - sliderWH.h);
		_$Yslider.getThumb().setYConstraint(0, _maxTop);
		
		var contentEl = _util.getObject('root');
		_$Yslider.unlock();
		_$Yslider.setValue(contentEl.scrollTop*scroll.getCoef());
		_$Yslider.animate = false;
		contentEl = null;
	}
	
	var _handleMove = function(){
		if(document.all){
			_$Yslider.onSlideStart = function(){ this._slideInterval = setInterval(_computeSlide, 30); }
			_$Yslider.onSlideEnd = function(){ clearInterval(this._slideInterval); };

			var areaId = _util.getObjectName('sliderArea');
			$Event.addListener(areaId, 'mousedown', function(){ 
				_$Yslider.onChange = $TpiClass.scopeMethod(this, _computeSlide); 
			});
			$Event.addListener(areaId, 'mouseup', function(){ 
				delete _$Yslider.onChange; 
			});
		}else{
			_$Yslider.onChange = $TpiClass.scopeMethod(this, _computeSlide);
		}
	}
	
	var _computeSlide = function(){
		var yValue = _$Yslider.getYValue();
		if(yValue != _lastYValue){
			_lastYValue = yValue;
			_moveTo(yValue/_maxTop);
		}
	}
	
	var _unsetSlider = function(flag){
		if(_$Yslider){
			_$Yslider.lock();
			var f = function(){}
			_$Yslider.onChange = f;
			_$Yslider.onSlideStart = f;
			_$Yslider.onSlideEnd = f;
		}
		if(!flag){
			_maxTop = _$Yslider = null;
		}
	}

	var _onKeyEvent = function(){

		var l_kCode;
		if (!e) var e = window.event;
		if (e.keyCode) l_kCode = e.keyCode;
		else if (e.which) l_kCode = e.which;

		switch(l_kCode){
			// Page Up/Down
			case 33: { _pageUpDown(-1); break; }
			case 34: { _pageUpDown(1); break; }
			// Arrow Up/Down
			case 38: { _slideUpDown(-1); break; }
			case 40: { _slideUpDown(1); break; }
		}
		return false;
	}

	var _slideUpDown = function(direction){
		var contentEl = _util.getObject('root');
		contentEl.scrollTop += (25 * direction); // step

		var coef = scroll.getCoef();

		var sliderId = _util.getObjectName("slider");
		
		var sliderArea = (_util.getWHByNick('sliderArea').h - _util.getWHByNick('slider').h);
		var contentArea = (contentEl.scrollHeight - _util.getWH(contentEl).h);
		
		var sliderTop = Math.round(contentEl.scrollTop * coef);
		if(contentArea < contentEl.scrollTop){
			sliderTop = sliderArea * coef;
		}

		_changeEvent.fire(null);
		if(sliderTop == 0){
			clearInterval(this.tid); this.tid = null;
			_topEvent.fire(null); // onTop
		}else if(sliderTop == sliderArea){
			clearInterval(this.tid); this.tid = null;
			_bottomEvent.fire(null); // onBottom
		}

		_$Yslider.setValue(sliderTop);
		
		contentEl = null;
	}

	var _moveTo = function(pos){
		var contentEl = _util.getObject('root');
		var t = (Math.round((contentEl.scrollHeight - contentEl.clientHeight) * pos));
		if(t != this.currentTop){
			contentEl.scrollTop = this.currentTop = t;
			if(pos == 0){ _topEvent.fire(null); } // onTop
			else if(pos == 1){ _bottomEvent.fire(null); } // onBottom
			_changeEvent.fire(null);
		}

		// TODO: fixme.
		//try{ contentEl.focus(); }catch(e){}
	}
	
	var _pageUpDown = function(direction){
		_slideUpDown(7 * direction);
	}
	
	var _buttomUp = function(event){
		_buttomUpDown(event, -1);
	}

	var _buttomDown = function(event){
		_buttomUpDown(event, 1);
	}
	
	var _buttomUpDown = function(event, direction){
		var btn = 'moveUp';
		if(direction > 0){ btn = 'moveDown'; }
		var btnId = _util.getObjectName(btn);

		if(this.tid) clearInterval(this.tid);
		var fctn = function(){ _slideUpDown(direction); }
		var _method_ = $TpiClass.scopeMethod(this, fctn);
		this.tid = setInterval(_method_, 50);

		var fctn = function(){ clearInterval(this.tid); this.tid = null; }
		$TpiEvent.observe(btnId, 'mouseup', fctn, this);
//		$TpiEvent.observe(btnId, 'mouseout', fctn, this);
		$TpiEvent.observe(document, 'mouseup', fctn, this);
	}

}

//YAHOO.util.Event.addListener(window, 'unload', TPI.scroll.Scroll.destroyAll);
Require.isLoaded['Classes.tpiScroll'] = true;
/*
 * Some rights reserved (cc) 2006, TPI - Telefonica Publicidade e Informatica Ltda
 * @autor: Flavio Crispim dos Santos / TPI 2006
 * http://creativecommons.org/licenses/by-sa/2.5/
 */

/**
 * The TPI global namespace
 * @constructor
 */
window.TPI = window.TPI || {};
TPI.live = {};

/**
 * {
 * 		url:'index.html', status: function(first, last, count){ alert(first) }, maxCount:'250', pageLenght: '15', styleClass:'style'
 * }
 * 
 * @param {Object} name
 * @param {Object} param
 */
TPI.live.Live = function(name, obj){

	/*
	 * Imports
	 */

	var _url = null;
	var _maxCount = null;
	var _pageLenght = null;
	var _styleClass = null;
	var _status = null;
	var _skipStatus = null;
	var _success = function(){};
	if(obj){
		if(obj.url){ _url = obj.url; }
		if(obj.maxCount){ _maxCount = obj.maxCount; }
		if(obj.pageLenght){ _pageLenght = obj.pageLenght; }
		<!--else{ _pageLenght = 10; }-->
		if(obj.styleClass){ _styleClass = obj.styleClass; }
		if(obj.status){ _status = obj.status; }
		if(obj.skipStatus){ _skipStatus = obj.skipStatus; }
		if(obj.success){ _success = obj.success; }
	}

	/*
	 * Public methods
	 */
	this.toString = function(){
		return "TPI.live.Live@instance:(" + this.getName() + ")";
	}

	/* Getters */
	this.getName = function(){ return name; }
	this.getStyleClass = function(){ return _styleClass; }
	this.getUtil = function(){ return _util; }
	this.getScroll = function(){ return _scroll; }
	this.getUrl = function(){ return _url; }
	this.getCount = function(){ return _maxCount; }
	this.getPageLenght = function(){ return _pageLenght; }
	this.getSkipStatus = function(){ return _skipStatus; }
	this.getSuccess = function(){ return _success; }
	this.getPageState = function(){
		return {'initial':0, 'final': (_handler.getToIndex())};
	}

	this.setPageState = function(toIndex){
		_handler.setToIndex(toIndex  + _pageLenght);
	}
	
	this.fit = function(pWidth){
		_scroll.fit(pWidth);
	}
	
	this.updateStatus = function(first, last){
		if(typeof(_status) === 'function'){
			_status(first, last, this.getCount());
		}
	}
	
	/*
	 * Private members
	 */
	var _util = new TPI.util.UIUtil(this);
	var _scroll = new TPI.scroll.Scroll(name, _styleClass, 94);
	var _drawUtil = new TPI.live.LiveDrawUtil(this);
	var _handler = new TPI.live.LiveHandler(this);
	
	this.draw = function(){
		return _drawUtil.draw();
	}

	this.start = function(){
		return _handler.handle();
	}

	this.reset = function(){
		_scroll.reset();
		_drawUtil.update();
		_handler.resetHandle();
	}

	/* cambio de pagina */
	this.page = function ( page ){
		 _handler.changePage(page);			
	}
	/* pagina actual */
	this.getPage = function()	{ 
		return _handler.getPage();
	}
	/* Total de paginas */
	this.getPageTotal = function()	{ 
		return _handler.getPageTotal();
	}
	/* Total de Registros por pagina */
	this.getRegistrosTotal = function()	{   
		return _handler.getRegxPag();		
	}
	/* Total de registros por pagina */
    this.getMaxPerPag = function()	{  	    
		return _handler.getPageLenght();
	}
	/* Maximo numero de link mostrados para pagina */
	this.maxPagLink = function (valor)	{
		_handler.maxPagLink(valor);	
	}
	/* Posicion del registro inicial por pagina */
	this.getFromIndex = function(){
		return _handler.getFromIndex();
	}

	this.destroy = function(){
		_drawUtil.destroy();
	}
}

/**
 * Global scroll registry.
 * Holds a reference to every Sroll object.
 */
TPI.live.registry = {};

TPI.live.Live.getInstance = function(id, options){
	if(!TPI.live.registry[id]){
		var live = new TPI.live.Live(id, options)
		TPI.live.registry[id] = live;
		if(live.draw()){
			live.start();
		}
	}
	return TPI.live.registry[id];
}

TPI.live.resetSemaphore = {};
TPI.live.Live.reset = function(id){
	var live = TPI.live.registry[id];
	if(live){
		var semaphore = TPI.live.resetSemaphore[id];
		if(semaphore) clearTimeout(semaphore);
		var fctn = function(){
			TPI.live.resetSemaphore[id] = null;
			live.reset();
		}
		TPI.live.resetSemaphore[id] = setTimeout(fctn, 25);
	}
}

TPI.live.Live.fit = function(id, pWidth){
	var live = TPI.live.registry[id];
	if(live){
		live.fit(pWidth);
	}
}

/**
 * 
 * @param {Object} scroll
 */
TPI.live.LiveDrawUtil = function(live){

	/*
	 * Imports
	 */
	
	var _live = live;
	var _util = _live.getUtil();
	var _scroll = _live.getScroll();

	/*
	 * Public Methods.
	 */
	this.draw = function(){
		if(_scroll.draw()){
			_getLiveTip();
			return true;
		}
		return false;
	}

	this.destroy = function (){
		if(parent){
			var contentEl = _util.getObject('root');
			contentEl.parentNode.removeChild(_util.getObject('tip'), true);
			contentEl = null;
			_scroll.destroy();
		}
	}

	this.update = function(){
		_getLiveTip();
	}

	/*
	 * Private methods
	 */
	var _getLiveTip = function(){
		/* Draw tip element.
		var contentEl = _util.getObject('root');
		var tipEl = _util.getDiv('tip', { position:'absolute', right:'15px', cursor:'pointer' }, null);
		var contentWH = _util.getWH(contentEl);
		if(!$Dom.get(_util.getObjectName('tip'))){
			contentEl.parentNode.insertBefore(tipEl, contentEl.nextSibling);	
		}
		
		var contentId = _util.getObjectName('root');
		if(_scroll.isHidden()){
			$Dom.setStyle(tipEl, 'visibility', 'hidden');
			$Dom.removeClass(contentId, 'scrollOn');
		}else{
			var contentId = _util.getObjectName('root');
			$Dom.addClass(contentId, 'scrollOn');
		}
		
		var tipWH = _util.getWH(tipEl);
		var tipTop = contentWH.h-tipWH.h;
		$Dom.setStyle(tipEl, 'top', tipTop + 'px');
		contentEl = null;*/
	}
}

TPI.live.LiveHandler = function(live){
	/*
	 * Imports
	 */
	var $Dom = YAHOO.util.Dom;
	var $TpiEvent = TPI.util.Event;

	/*
	 * Private members
	 */
	var _live = live;
	var _util = live.getUtil();
	var _scroll = live.getScroll();
	var _url = live.getUrl();
	var _pageLenght = live.getPageLenght();
	var _fromIndex = (1 + _pageLenght);
	var _toIndex   = (_fromIndex + _pageLenght -1);
	var _page =1;
	var _pagTotal = 0;
	var _maxPageLink = 0;	
	
	this.getFromIndex = function(){
		return _fromIndex;
	}

	this.getToIndex = function(){
		return _toIndex;
	}
	
	this.setToIndex = function(pValue){
		_fromIndex = pValue - _pageLenght + 1;
		_toIndex = pValue;
	}
	
	//Paginacion : Pagina actual
	this.getPage = function(){
		return _page;
	}	
	
	//Paginacion : Total de paginas
		this.getPageTotal = function(){ 
		 var count = _live.getCount();
		 var cociente = count / _pageLenght;
		 var residuo = count % _pageLenght;
		 var _pagTotal=0;

		 if (residuo==0) {		 	 
		 	_pagTotal =  cociente;
		 }else{
     		 cociente = parseFloat(cociente.toString().substring(0,cociente.toString().indexOf(".") ));
		    _pagTotal =  cociente + 1;
		 }
		 return _pagTotal;
	}
	
	//Paginacion : Total de registros consultados
	this.getCount = function(){
		 var count = _live.getCount();		 
		 return count;
	}	 
	
	//Paginacion : Total de registros por pagina
	this.getPageLenght = function(){
		 var pageLenght = _live.getPageLenght();		 
		 return pageLenght;		 
	}
	
	//Paginacion : Maximo numero de links mostrados en una pagina
	this.maxPagLink = function(valor) {		
		_maxPageLink = valor;
	}	
	
	//Paginacion : Total de registros por pagina
	this.getRegxPag = function() {   
	   var pagina = this.getPage();
	   var maxRegxPag = this.getPageLenght();
	   var paginaTotal = this.getPageTotal();	   
	   var regTotal = this.getCount();
	   var regxPag=0;
	   
	   if (pagina==paginaTotal){
	   	   regxPag = regTotal - ( (pagina - 1) * maxRegxPag );
	   }else{
	   	   regxPag = maxRegxPag;
	   }	   
	   return regxPag;		
	}
	
	this.handle = function(){
		try{
			var tipId = _util.getObjectName('tip');
			var scrollHandler = _scroll.getHandler();
			$TpiEvent.observe(tipId, 'mousedown', scrollHandler.buttomDown, scrollHandler);
			
			var changeListener = TPI.util.Class.scopeMethod(this, _computeStatus);
			scrollHandler.addChangeListener(changeListener);
			
			//var bottomListener = TPI.util.Class.scopeMethod(this, _scrollBottomListener);
			//scrollHandler.addBottomListener(bottomListener);
			
			_scroll.start();
		}catch(e){
			throw new Error("HandleError: " + live.getName() + ". Error while attaching event handlers. Failed with message:" + e.message);
		}
		return true;
	}

	this.resetHandle = function(){
		_computeStatus();
	}
	
	this.stopHandle = function(flag){
	}

	//Paginacion : Cambio de pagina
	this.changePage = function( page )
	{ 
	    _page = page;
	    _toIndex=page*_pageLenght;
	    _fromIndex=_toIndex - (_pageLenght - 1 );		 
		_scrollBottomListener();
	}

	/*
	 * Private functions.
	 */
	this._lock = false;
	var _scrollBottomListener = function(){
		//if(this._lock === false){
			this._lock = true;
			var count = _live.getCount();
			if((count > _pageLenght) && (count >= _fromIndex)){
				if(_url){
					var url = _url + '&fromIndex=' + _fromIndex + '&toIndex=' + _toIndex;
					var callback = { success:_appendCall, failure:_handleFailure, scope:this };
					YAHOO.util.Connect.asyncRequest('GET', url, callback);
					//_beforeLoad();
				}
				_fromIndex += _pageLenght;
				_toIndex += _pageLenght;
			}else{
				$Dom.setStyle(_util.getObjectName('tip'), 'visibility', 'hidden');
				this._lock = false;
			}
		//}
	}

	/**
	 * TODO: For sure, isnt the best we could do.
	 * Refactory needed.
	 */
	var _computeStatus = function(){
		var contentEl = _util.getObject('root');
		var skipStatus = live.getSkipStatus();
		var scrollTop = contentEl.scrollTop;
		var scrollHeight = contentEl.scrollHeight;
		var clientHeight = contentEl.clientHeight;
		var firstEl = 0;
		var lastEl = 0;
		var cumulativeHeight = 0;
		var advNumber = 0;
		var nodesLenght = contentEl.childNodes.length;
		loop:
			for(var i = 0; i < nodesLenght; i++){
				var childNode = contentEl.childNodes[i];
				if(!childNode.offsetHeight || childNode.offsetHeight < 2){ continue loop; }
				var nextElHeight = 0;
				for(var a = (i+1); nodesLenght != a && nextElHeight != 0; a++){
					nextElHeight = (contentEl.childNodes[i+1].offsetHeight/2);
				}
				cumulativeHeight += childNode.offsetHeight;
				if(childNode.className !== skipStatus){
					advNumber++;
					if(cumulativeHeight >= (scrollTop+(childNode.offsetHeight/2))){
						if(firstEl == 0){ firstEl = (advNumber); }
						if(cumulativeHeight >= (scrollTop+clientHeight-nextElHeight)){
							lastEl = (advNumber);
							break loop;
						}else if(scrollHeight < clientHeight){ lastEl = (advNumber); }
					}
				}
			}
		
		if(lastEl < firstEl){ lastEl = firstEl; }
		contentEl = null;
		live.updateStatus(firstEl, lastEl);
		
		if(parseInt(lastEl, 10) < live.getCount()){ 
			$Dom.setStyle(_util.getObjectName('tip'), 'visibility', 'visible');
		}
	}
	
	var _handleFailure = function(o) {
		if (o.responseText !== undefined) {
			trace('' +
				'Error: ' + 'Transaction id: ' + o.tId + '\n' +
				'HTTP status: ' + o.status + '\n' +
				'Status code message: ' + o.statusText +
			'');
		}
	}
	
	var _appendCall = function(originalRequest){
		
		var contentEl = _util.getObject('root');

		// Create a temp container.
		var tempEl = document.createElement('div');

		/* Se adicionaran registros en el contenedor sin aumentar a los que ya existen*/		
		contentEl.innerHTML = '';
		
		// Set the response as temp containers content.
		tempEl.innerHTML = originalRequest.responseText;

		// Copy each already rendered child to the real container.
		while(tempEl.firstChild){
			contentEl.appendChild(tempEl.firstChild.cloneNode(true));
			tempEl.removeChild(tempEl.firstChild);
		}

		TPI.util.executeScripts(originalRequest.responseText);

		// null out div reference.
		contentEl = tempEl = null;

		_scroll.reset();

		var fctn = function(){
			_afterLoad(); 
		}
		this._lock = false;
		var _method_ = TPI.util.Class.scopeMethod(this, fctn);
		setTimeout(_method_, 10);

		// Success
		setTimeout(live.getSuccess(), 10);
	}
	
	var _beforeLoad = function(){
		//var sliderId = _scroll.getUtil().getObjectName('slider');
		//YAHOO.util.Dom.addClass(sliderId, 'resultList_loading');
	}

	var _afterLoad = function(){
		//var sliderId = _scroll.getUtil().getObjectName('slider');
		//YAHOO.util.Dom.removeClass(sliderId, 'resultList_loading');
	}
}

Require.isLoaded['Classes.tpiLive'] = true;
/*
 * Some rights reserved (cc) 2006, TPI - Telefonica Publicidade e Informatica Ltda
 * http://creativecommons.org/licenses/by-sa/2.5/
 */

Certifica = function() {
	this.callCertificaByPath = function (sitio, path) {
		var _browser = navigator.appName || 'otro';
		var _resolucion = screen.width || 'otro';
		var _colores = (_browser != 'Netscape')? screen.colorDepth || 'otro' : screen.pixelDepth || 'otro';
		var _java_activado = navigator.javaEnabled() || 'otro';
		var _desde = escape(document.referrer) || 'otro';
		var _idioma_sistema = navigator.userLanguage || 'otro';
		var _cpu_XXXX = navigator.cpuClass || 'otro';
		var _version_navegador = (navigator.appVersion.charAt(0) + navigator.appVersion.charAt(1) + navigator.appVersion.charAt(2)) || 'otro';
		var _NS2Ch_a = (navigator.appName == 'Netscape' && navigator.appVersion.charAt(0) == '2')? 1 : 0;

		if (_NS2Ch_a == 0) {
			var _url_source = [];
			_url_source.push(CTF_URL + '?sitio_id=' + sitio + '&path=' + path +'&vc=2.05');
			_url_source.push('&size=' + _resolucion + '&colors=' + _colores);
			_url_source.push('&java=' + _java_activado + '&referer=' + _desde);
			_url_source.push('&idio=' + _idioma_sistema + '&cpu=' + _cpu_XXXX + '&vers=' + _version_navegador);
			_url_source.push('&rnd1=' + (new Date()).getTime());
			_url_source.push('&rnd2=' + Math.random());

			// Debug only
//			alert('Certifica > callCertificaByPath ' + _url_source.join(''));
			var im = new Image();
			im.src = _url_source.join('');
		}
	}
}
Require.isLoaded['Classes.Certifica'] = true;
/**
 * 
 * @contructor
 */
function SuggestManager() {
	var _suggests = [];


	this.addSuggest = function(pACDS, pAutoComp) {
		var suggest = new Suggest();
		var ACDSConfig = pACDS;
		var autoCompConfig = pAutoComp;

		suggest.createACDS(ACDSConfig);

		autoCompConfig.oACDS = suggest.getACDS();
		suggest.createAutoComp(autoCompConfig);
		_suggests.push(suggest);
	}

	this.getSuggest = function(pId) {
		for (var cI = 0, lS = _suggests.length; cI < lS; cI++) {
			if (_suggests[cI].getAutoComp().toString().toLowerCase().indexOf(pId.toLowerCase()) > -1) {
				return _suggests[cI];
			}
		}

		return false;
	}
}


/**
 * 
 * @contructor
 */
function Suggest() {
	var _self = this;
	var _oACDS = {}, _oAutoComp = {};
	var cont = 0;


	this.getAutoComp = function() { return _oAutoComp; }
	this.getACDS = function() { return _oACDS; }

	this.createACDS = function(pConfig) {
		var oACDS = new YAHOO.widget.DS_XHR(pConfig.uri, pConfig.schema, pConfig.config);

		for (var cA in pConfig) {
			if (cA != 'uri' && cA != 'schema' && cA != 'config' && cA != 'toJSONString') { oACDS[cA] = pConfig[cA]; }
		}

		_oACDS = oACDS;
	}

	this.createAutoComp = function(pConfig) {
		var oAutoComp = new YAHOO.widget.AutoComplete(pConfig.input, pConfig.container, pConfig.oACDS);

		for (var cA in pConfig) {
			if (cA != 'input' && cA != 'container' && cA != 'oACDS' && cA != 'toJSONString') { oAutoComp[cA] = pConfig[cA]; }
		}

		if(oAutoComp.onDataReturn){
			oAutoComp.dataReturnEvent.subscribe(oAutoComp.onDataReturn);
		}

		oAutoComp.formatResult = function(oResultItem, sQuery) {
			var sKeyWord = _self.parseToBold(oResultItem, sQuery);

			var tbl = [];
			tbl.push('<div id="s' + cont++ + '" style="position:relative;padding-left:5px;width:100%;height:14px;overflow:hidden;text-overflow:elepsis;">' + sKeyWord + '</div>');

			return tbl.join('');
		}

		oAutoComp.populateResult = function(oResultItem) { return oResultItem[0]; }

		_oAutoComp = oAutoComp;
	}

	this.parseToBold = function(pResult, pStr) {
		if (_oAutoComp.parseToBold) { return _oAutoComp.parseToBold(pResult, pStr); }
		else { return pResult[0]; }
	}
}
Require.isLoaded['Classes.SuggestManager'] = true;
/*
 * Some rights reserved (cc) 2006, TPI - Telefonica Publicidade e Informatica Ltda
 * http://creativecommons.org/licenses/by-sa/2.5/
 */

// Estes dados, se modificados, precisam ser atualizados no HtmlUtil.formatStateCity
var EMPTYMESSAGE = 'Selecciona Dpto/Distrito';
var SUFFIXMESSGE = 'Buscar en: ';

/**
 * 
 */
function Locality(pContainer) {
	var _self = this;

	var _container = $Y.Dom.get(pContainer);
	var _filter = (pContainer.toLowerCase().indexOf('filter') == -1)? false : true;
	var _tOut = 0;
	var _stadeCombo = '', _cityCombo = '', _suburbCombo = '', _txtLocation = '';
	var _localityLabel = {}, _localityLabelTxt = {}, _localityContainer = {}, _localityCombos = {};
	var _changeCityFlag = false, _changeSuburbFlag = false;

	function _openSuggest() {
		if ($Y.Dom.hasClass(_localityContainer, 'offv')) {
			if (_localityLabelTxt.innerHTML == EMPTYMESSAGE) {
				$Y.Dom.get(_txtLocation).value = '';
			} else {
				$Y.Dom.get(_txtLocation).value = _localityLabelTxt.innerHTML.substr(SUFFIXMESSGE.length);
			}

			$Y.Dom.replaceClass(_localityContainer, 'offv', 'onv');
			$Y.Dom.replaceClass(_localityLabel, 'onv', 'offv');

			$Y.Event.addListener(document, 'click', _clickOut);
		} else {
			$Y.Dom.replaceClass(_localityContainer, 'onv', 'offv');
			$Y.Dom.replaceClass(_localityLabel, 'offv', 'onv');

			_updateLabel();
			$Y.Event.removeListener(document, 'click', _clickOut);
		}
	}

	function _openCombos() {
		if ($Y.Dom.hasClass(_localityCombos, 'offv')) {
			$Y.Dom.replaceClass(_localityCombos, 'offv', 'onv');

			setTimeout(function() {
				$Y.Event.addListener(document, 'click', _clickOut);
			}, 10);
		} else {
			$Y.Dom.replaceClass(_localityCombos, 'onv', 'offv');

			_updateLabel();
			$Y.Event.removeListener(document, 'click', _clickOut);
		}
	}

	function _openLocality() {
		if ($Y.Dom.hasClass(_localityContainer, 'offv')) {
			if (_localityLabelTxt.innerHTML == EMPTYMESSAGE) {
				$Y.Dom.get(_txtLocation).value = '';
			} else {
				$Y.Dom.get(_txtLocation).value = _localityLabelTxt.innerHTML.substr(SUFFIXMESSGE.length);
			}

			$Y.Dom.replaceClass(_localityContainer, 'offv', 'onv');
			$Y.Dom.replaceClass(_localityCombos, 'offv', 'onv');
			$Y.Dom.replaceClass(_localityLabel, 'onv', 'offv');

			setTimeout(function() {
				$Y.Event.addListener(document, 'click', _clickOut);
			}, 1);
		} else {
			_closeLocality();
			_updateLabel();
		}
	}

	function _closeLocality() {
		$Y.Dom.get(_txtLocation).blur();

		$Y.Dom.replaceClass([_localityContainer, _localityCombos], 'onv', 'offv');
		$Y.Dom.replaceClass(_localityLabel, 'offv', 'onv');

		_updateLabel();
		$Y.Event.removeListener(document, 'click', _clickOut);
	}

	function _clickOut(e) {
		var _e = $Y.Event.getEvent(e);
		var _t = $Y.Event.getTarget(_e);
		var _n = (!_filter)? _localityContainer : _localityCombos;

		if (!$Y.Dom.isAncestor(_n, _t)) {
			if (!_filter) { _closeLocality(); }
			else {
				if (TPI.stateId != $Y.Dom.get(_stateCombo).options[$Y.