/* Clientcide Copyright (c) 2006-2009, http://www.clientcide.com/wiki/cnet-libraries#license*/

//Contents: Clientcide, dbug, FixPNG, Popup, Fx.Marquee, ObjectBrowser, Class.ToElement, StyleWriter, StickyWin, PopupDetails, StickyWin.Fx, StickyWin.UI, StickyWin.Ajax, StickyWin.Modal, StickyWin.Alert, StickyWin.Confirm, StickyWin.Prompt, StickyWin.UI.Pointy, StickyWin.PointyTip, Tips.Pointy, Confirmer, StickyWin.Drag, DatePicker, DatePicker.Extras, Form.Validator.Tips, Autocompleter.Observer, Autocompleter, Autocompleter.Local, Autocompleter.Remote, Autocompleter.Clientcide, Browser.Extras.Compat, Class.Refactor.Compat, Date.Compat, Element.Forms.Compat, Element.MouseOvers.Compat, Element.Position.Compat, Element.Shortcuts.Compat, IframeShim.Compat, OverText.Compat, Request.Queue.Compat, String.Extras.Compat, Waiter.Compat

//This lib: http://www.clientcide.com/js/build.php?excludeLibs[]=mootools-core&excludeLibs[]=mootools-more&require[]=Clientcide&require[]=dbug&require[]=FixPNG&require[]=Popup&require[]=Fx.Marquee&require[]=ObjectBrowser&require[]=PopupDetails&require[]=StickyWin.Fx&require[]=StickyWin.Ajax&require[]=StickyWin.Confirm&require[]=StickyWin.Prompt&require[]=Tips.Pointy&require[]=Confirmer&require[]=DatePicker&require[]=DatePicker.Extras&require[]=Form.Validator.Tips&require[]=Autocompleter.Local&require[]=Autocompleter.Remote&require[]=Autocompleter.Clientcide&require[]=Browser.Extras.Compat&require[]=Class.Refactor.Compat&require[]=Date.Compat&require[]=Element.Forms.Compat&require[]=Element.MouseOvers.Compat&require[]=Element.Position.Compat&require[]=Element.Shortcuts.Compat&require[]=IframeShim.Compat&require[]=OverText.Compat&require[]=Request.Queue.Compat&require[]=String.Extras.Compat&require[]=Waiter.Compat&compression=jsmin


var Clientcide={version:'%build%',assetLocation:"http://github.com/anutron/clientcide/raw/master/Assets",setAssetLocation:function(baseHref){Clientcide.assetLocation=baseHref;if(Clientcide.preloaded)Clientcide.preLoadCss();},preLoadCss:function(){if(window.StickyWin&&StickyWin.ui)StickyWin.ui();if(window.StickyWin&&StickyWin.pointy)StickyWin.pointy();Clientcide.preloaded=true;return true;},preloaded:false};(function(){if(!window.addEvent)return;var preload=function(){if(window.dbug)dbug.log('preloading clientcide css');if(!Clientcide.preloaded)Clientcide.preLoadCss();};window.addEvent('domready',preload);window.addEvent('load',preload);})();setCNETAssetBaseHref=Clientcide.setAssetLocation;
var dbug={logged:[],timers:{},firebug:false,enabled:false,log:function(){dbug.logged.push(arguments);},nolog:function(msg){dbug.logged.push(arguments);},time:function(name){dbug.timers[name]=new Date().getTime();},timeEnd:function(name){if(dbug.timers[name]){var end=new Date().getTime()-dbug.timers[name];dbug.timers[name]=false;dbug.log('%s: %s',name,end);}else dbug.log('no such timer: %s',name);},enable:function(silent){var con=window.firebug?firebug.d.console.cmd:window.console;if((!!window.console&&!!window.console.warn)||window.firebug){try{dbug.enabled=true;dbug.log=function(){try{(con.debug||con.log).apply(con,arguments);}catch(e){console.log(Array.slice(arguments));}};dbug.time=function(){con.time.apply(con,arguments);};dbug.timeEnd=function(){con.timeEnd.apply(con,arguments);};if(!silent)dbug.log('enabling dbug');for(var i=0;i<dbug.logged.length;i++){dbug.log.apply(con,dbug.logged[i]);}
dbug.logged=[];}catch(e){dbug.enable.delay(400);}}},disable:function(){if(dbug.firebug)dbug.enabled=false;dbug.log=dbug.nolog;dbug.time=function(){};dbug.timeEnd=function(){};},cookie:function(set){var value=document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');var debugCookie=value?unescape(value[1]):false;if((!$defined(set)&&debugCookie!='true')||($defined(set)&&set)){dbug.enable();dbug.log('setting debugging cookie');var date=new Date();date.setTime(date.getTime()+(24*60*60*1000));document.cookie='jsdebug=true;expires='+date.toGMTString()+';path=/;';}else dbug.disableCookie();},disableCookie:function(){dbug.log('disabling debugging cookie');document.cookie='jsdebug=false;path=/;';}};(function(){var fb=!!window.console||!!window.firebug;var con=window.firebug?window.firebug.d.console.cmd:window.console;var debugMethods=['debug','info','warn','error','assert','dir','dirxml'];var otherMethods=['trace','group','groupEnd','profile','profileEnd','count'];function set(methodList,defaultFunction){for(var i=0;i<methodList.length;i++){dbug[methodList[i]]=(fb&&con[methodList[i]])?con[methodList[i]]:defaultFunction;}};set(debugMethods,dbug.log);set(otherMethods,function(){});})();if((!!window.console&&!!window.console.warn)||window.firebug){dbug.firebug=true;var value=document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');var debugCookie=value?unescape(value[1]):false;if(window.location.href.indexOf("jsdebug=true")>0||debugCookie=='true')dbug.enable();if(debugCookie=='true')dbug.log('debugging cookie enabled');if(window.location.href.indexOf("jsdebugCookie=true")>0){dbug.cookie();if(!dbug.enabled)dbug.enable();}
if(window.location.href.indexOf("jsdebugCookie=false")>0)dbug.disableCookie();}
$extend(Browser,{fixPNG:function(el){try{if(Browser.Engine.trident4){el=document.id(el);if(!el)return el;if(el.get('tag')=="img"&&el.get('src').test(".png")){var vis=el.isDisplayed();try{dim=el.getSize();}catch(e){}
if(!vis){var before={};['visibility','display','position'].each(function(style){before[style]=this.style[style]||'';},this);this.setStyles({visibility:'hidden',display:'block',position:'absolute'});dim=el.getSize();this.setStyles(before);el.hide();}
var replacement=new Element('span',{id:(el.id)?el.id:'','class':(el.className)?el.className:'',title:(el.title)?el.title:(el.alt)?el.alt:'',styles:{display:vis?'inline-block':'none',width:dim.x,height:dim.y,filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader (src='"
+el.src+"', sizingMethod='scale');"},src:el.src});if(el.style.cssText){try{var styles={};var s=el.style.cssText.split(';');s.each(function(style){var n=style.split(':');styles[n[0]]=n[1];});replacement.setStyle(styles);}catch(e){dbug.log('fixPNG1: ',e)}}
if(replacement.cloneEvents)replacement.cloneEvents(el);replacement.replaces(el);}else if(el.get('tag')!="img"){var imgURL=el.getStyle('background-image');if(imgURL.test(/\((.+)\)/)){el.setStyles({background:'',filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='crop', src="+imgURL.match(/\((.+)\)/)[1]+")"});};}}}catch(e){dbug.log('fixPNG2: ',e)}},pngTest:/\.png$/,scanForPngs:function(el,className){className=className||'fixPNG';if(document.getElements){el=document.id(el||document.body);el.getElements('img[src$=.png]').addClass(className);}else{var els=$$('img').each(function(img){if(Browser.pngTest(img.src)){img.addClass(className);}});}}});if(Browser.Engine.trident4)window.addEvent('domready',function(){$$('img.fixPNG').each(Browser.fixPNG)});
Browser.Popup=new Class({Implements:[Options,Events],options:{width:500,height:300,x:50,y:50,toolbar:0,location:0,directories:0,status:0,scrollbars:'yes',resizable:1,name:'popup'},initialize:function(url,options){this.url=url||false;this.setOptions(options);if(this.options.x=='center')this.options.x=Math.floor((screen.availWidth-this.options.width)/2);if(this.options.y=='center')this.options.y=Math.floor((screen.availHeight-this.options.height)/2);if(this.url)this.openWin();},openWin:function(url){url=url||this.url;var options='toolbar='+this.options.toolbar+',location='+this.options.location+',directories='+this.options.directories+',status='+this.options.status+',scrollbars='+this.options.scrollbars+',resizable='+this.options.resizable+',width='+this.options.width+',height='+this.options.height+',top='+this.options.y+',left='+this.options.x;this.window=window.open(url,this.options.name,options);if(!this.window){this.window=window.open('',this.options.name,options);this.window.location.href=url;}
this.focus.delay(100,this);return this;},focus:function(){if(this.window)this.window.focus();else if(this.focusTries<10)this.focus.delay(100,this);else{this.blocked=true;this.fireEvent('onBlock');}
return this;},focusTries:0,blocked:null,close:function(){this.window.close();return this;}});
Fx.Marquee=new Class({Extends:Fx.Morph,options:{mode:'horizontal',message:'',revert:true,delay:5000,cssClass:'msg',showEffect:{opacity:1},hideEffect:{opacity:0},revertEffect:{opacity:[0,1]},currentMessage:null},initialize:function(container,options){container=document.id(container);var msg=this.options.currentMessage||(container.getChildren().length==1)?container.getFirst():'';var wrapper=new Element('div',{styles:{position:'relative'},'class':'fxMarqueeWrapper'}).inject(container);this.parent(wrapper,options);this.current=this.wrapMessage(msg);},wrapMessage:function(msg){if(document.id(msg)&&document.id(msg).hasClass('fxMarquee')){var wrapper=document.id(msg);}else{var wrapper=new Element('span',{'class':'fxMarquee',styles:{position:'relative'}});if(document.id(msg))wrapper.grab(document.id(msg));else if($type(msg)=="string")wrapper.set('html',msg);}
return wrapper.inject(this.element);},announce:function(options){this.setOptions(options).showMessage();return this;},showMessage:function(reverting){(function(){var chain=this.$chain?$A(this.$chain):[];this.clearChain();this.element=document.id(this.element);this.current=document.id(this.current);this.message=document.id(this.message);this.start(this.options.hideEffect).chain(function(){if(reverting){this.message.hide();if(this.current)this.current.show();}else{if(this.message)this.message.dispose();this.message=this.wrapMessage(this.options.message);if(this.current)this.current.hide();}
this.start((reverting)?this.options.revertEffect:this.options.showEffect).chain(function(){if(this.$chain)this.$chain.combine(chain);else this.$chain=chain;this.fireEvent((reverting)?'onRevert':'onMessage');if(!reverting&&this.options.revert)this.showMessage(true);else this.callChain.delay(this.options.delay,this);}.bind(this));}.bind(this));}).delay((reverting)?this.options.delay:10,this);return this;}});
var ObjectBrowser=new Class({Implements:[Options,Events],options:{onBranchClick:function(data){this.showLevel(data.path?data.path+'.'+data.key:data.key,data.nodePath);},initPath:'',buildOnInit:true,data:{},excludeKeys:[],includeKeys:[]},initialize:function(container,options){this.container=document.id(container);this.setOptions(options);this.data=$H(this.options.data);this.levels={};this.elements={};if(this.options.buildOnInit)this.showLevel(this.options.initPath,this.container);},toElement:function(){return this.container;},getMemberByPath:function(path,parent){if(path===""||path=="top")return this.data.getClean();var h=parent?$H(parent):this.data;return h.getFromPath(path);},replaceMemberByPath:function(path,value){if(path===""||path=="top")return this.data=$H(value);var parentObj=this.getMemberByPath(path,true);parentObj[path.split(".").pop()]=value;return this.data;},getPathByNode:function(el){return $H(this.elements).keyOf(el);},validLevel:function(key){return(!this.options.excludeKeys.contains(key)&&(!this.options.includeKeys.length||this.options.includeKeys.contains(key)));},buildLevel:function(path){if(path.test(".$"))path=path.substring(0,path.length);var level=this.getMemberByPath(path);if(this.levels[path])return this.levels[path];var section=new Element('ul');switch($type(level)){case"function":this.buildNode(level,"function()",section,path,true);break;case"string":case"number":this.buildNode(level,null,section,path,true);break;case"array":level.each(function(node,index){this.buildNode(node,index,section,path,["string","function"].contains($type(node)));}.bind(this));break;default:$H(level).each(function(value,key){var db=false;if(key=="element_dimensions")db=true;if(db)dbug.log(key);if(this.validLevel(key)){if(db)dbug.log('is valid level');var isLeaf;if($type(value)=="object"){isLeaf=false;$each(value,function(v,k){if(this.validLevel(k)){if(db)dbug.log('not a leaf!');isLeaf=false;}else{isLeaf=true;}},this);if(isLeaf)value=false;}
if(db)dbug.log(value,key,section,path,$chk(isLeaf)?isLeaf:null);this.buildNode(value,key,section,path,$chk(isLeaf)?isLeaf:null);}},this);}
this.levels[path]=section;return section;},getParentFromPath:function(path){return this.elements[(path||"top")+'NODE'];},showLevel:function(path,target,method){target=target||path;if(!this.elements[path])
this.elements[path]=this.buildLevel(path)[method||"inject"](this.elements[target]||this.container);else this.elements[path].toggle();dbug.log('toggle class');this.elements[path].getParent().toggleClass('collapsed');return this;},buildNode:function(value,key,section,path,leaf){if(key===""||value==="")leaf=true;if(!this.validLevel(key))return null;var nodePath=(path?path+'.'+key:key)+'NODE';var lnk=this.buildLink((leaf)?value||key:$chk(key)?key:value,leaf);var li=new Element('li').addClass((leaf)?'leaf':'branch collapsed').adopt(lnk).inject(section);lnk.addEvent('click',function(e){e.stopPropagation();if(leaf){this.fireEvent('onLeafClick',{li:li,key:key,value:value,path:path,nodePath:nodePath,event:e});}else{this.fireEvent('onBranchClick',{li:li,key:key,value:value,path:path,nodePath:nodePath,event:e});}}.bind(this));this.elements[nodePath]=li;return li;},buildLink:function(key){if($type(key)=="function"){key=key.toString();key=key.substring(0,key.indexOf("{")+1)+"...";}
return new Element('a',{href:"javascript: void(0);"}).set('html',key);}});
Class.ToElement=new Class({toElement:function(){return this.element;}});var ToElement=Class.ToElement;
var StyleWriter=new Class({createStyle:function(css,id){window.addEvent('domready',function(){try{if(document.id(id)&&id)return;var style=new Element('style',{id:id||''}).inject($$('head')[0]);if(Browser.Engine.trident)style.styleSheet.cssText=css;else style.set('text',css);}catch(e){dbug.log('error: %s',e);}}.bind(this));}});
var StickyWin=new Class({Binds:['destroy','hide','togglepin','esc'],Implements:[Options,Events,StyleWriter,Class.ToElement],options:{closeClassName:'closeSticky',pinClassName:'pinSticky',content:'',zIndex:10000,className:'',width:false,height:false,timeout:-1,allowMultipleByClass:true,allowMultiple:true,showNow:true,useIframeShim:true,iframeShimSelector:'',destroyOnClose:false,closeOnClickOut:false,closeOnEsc:false,getWindowManager:function(){return StickyWin.WM;}},css:'.SWclearfix:after {content: "."; display: block; height: 0; clear: both; visibility: hidden;}'+'.SWclearfix {display: inline-table;} * html .SWclearfix {height: 1%;} .SWclearfix {display: block;}',initialize:function(options){this.options.inject=this.options.inject||{target:document.body,where:'bottom'};this.setOptions(options);this.windowManager=this.options.getWindowManager();this.id=this.options.id||'StickyWin_'+new Date().getTime();this.makeWindow();if(this.windowManager)this.windowManager.add(this);if(this.options.content)this.setContent(this.options.content);if(this.options.timeout>0){this.addEvent('onDisplay',function(){this.hide.delay(this.options.timeout,this);}.bind(this));}
this.createStyle(this.css,'StickyWinClearFix');if(this.options.closeOnClickOut||this.options.closeOnEsc)this.attach();if(this.options.destroyOnClose)this.addEvent('close',this.destroy);if(this.options.showNow)this.show();},attach:function(attach){var method=$pick(attach,true)?'addEvents':'removeEvents';var events={};if(this.options.closeOnClickOut)events.click=this.esc;if(this.options.closeOnEsc)events.keyup=this.esc;document[method](events);},esc:function(e){if(e.key=="esc")this.hide();if(e.type=="click"&&this.element!=e.target&&!this.element.hasChild(e.target))this.hide();},makeWindow:function(){this.destroyOthers();if(!document.id(this.id)){this.win=new Element('div',{id:this.id}).addClass(this.options.className).addClass('StickyWinInstance').addClass('SWclearfix').setStyles({display:'none',position:'absolute',zIndex:this.options.zIndex}).inject(this.options.inject.target,this.options.inject.where).store('StickyWin',this);}else this.win=document.id(this.id);this.element=this.win;if(this.options.width&&$type(this.options.width.toInt())=="number")this.win.setStyle('width',this.options.width.toInt());if(this.options.height&&$type(this.options.height.toInt())=="number")this.win.setStyle('height',this.options.height.toInt());return this;},show:function(suppressEvent){this.showWin();if(!suppressEvent)this.fireEvent('display');if(this.options.useIframeShim)this.showIframeShim();this.visible=true;return this;},showWin:function(){if(this.windowManager)this.windowManager.focus(this);if(!this.positioned)this.position();this.win.show();},hide:function(suppressEvent){if($type(suppressEvent)=="event"||!suppressEvent)this.fireEvent('close');this.hideWin();if(this.options.useIframeShim)this.hideIframeShim();this.visible=false;return this;},hideWin:function(){this.win.setStyle('display','none');},destroyOthers:function(){if(!this.options.allowMultipleByClass||!this.options.allowMultiple){$$('div.StickyWinInstance').each(function(sw){if(!this.options.allowMultiple||(!this.options.allowMultipleByClass&&sw.hasClass(this.options.className)))
sw.retrieve('StickyWin').destroy();},this);}},setContent:function(html){if(this.win.getChildren().length>0)this.win.empty();if($type(html)=="string")this.win.set('html',html);else if(document.id(html))this.win.adopt(html);this.win.getElements('.'+this.options.closeClassName).each(function(el){el.addEvent('click',this.hide);},this);this.win.getElements('.'+this.options.pinClassName).each(function(el){el.addEvent('click',this.togglepin);},this);return this;},position:function(options){this.positioned=true;this.setOptions(options);this.win.position({allowNegative:$pick(this.options.allowNegative,this.options.relativeTo!=document.body),relativeTo:this.options.relativeTo,position:this.options.position,offset:this.options.offset,edge:this.options.edge});if(this.shim)this.shim.position();return this;},pin:function(pin){if(!this.win.pin){dbug.log('you must include element.pin.js!');return this;}
this.pinned=$pick(pin,true);this.win.pin(pin);return this;},unpin:function(){return this.pin(false);},togglepin:function(){return this.pin(!this.pinned);},makeIframeShim:function(){if(!this.shim){var el=(this.options.iframeShimSelector)?this.win.getElement(this.options.iframeShimSelector):this.win;this.shim=new IframeShim(el,{display:false,name:'StickyWinShim'});}},showIframeShim:function(){if(this.options.useIframeShim){this.makeIframeShim();this.shim.show();}},hideIframeShim:function(){if(this.shim)this.shim.hide();},destroy:function(){if(this.windowManager)this.windowManager.remove(this);if(this.win)this.win.destroy();if(this.options.useIframeShim&&this.shim)this.shim.destroy();if(document.id('modalOverlay'))document.id('modalOverlay').destroy();this.fireEvent('destroy');}});StickyWin.Stacker=new Class({Implements:[Options,Events],Binds:['click'],instances:[],options:{zIndexBase:9000},initialize:function(options){this.setOptions(options);this.zIndex=this.options.zIndex;},add:function(sw){this.instances.include(sw);$(sw).addEvent('mousedown',this.click);},click:function(e){this.instances.each(function(sw){var el=$(sw);if(el==e.target||el.hasChild($(e.target)))this.focus(sw);},this);},focus:function(instance){if(this.focused==instance)return;this.focused=instance;if(instance)this.instances.erase(instance).push(instance);this.instances.each(function(current,i){$(current).setStyle('z-index',this.options.zIndexBase+i);},this);this.focused=instance;},remove:function(sw){this.instances.erase(sw);$(sw).removeEvent('click',this.click);}});StickyWin.WM=new StickyWin.Stacker();
var PopupDetail=new Class({Implements:[Options,Events],visible:false,observed:false,hasData:false,options:{observerAction:'mouseenter',closeOnMouseOut:true,linkPopup:false,data:{},templateOptions:{},useAjax:false,ajaxOptions:{method:'get'},ajaxLink:false,ajaxCache:{},delayOn:100,delayOff:100,stickyWinOptions:{},showNow:false,htmlResponse:false,regExp:/\\?%([^%]+)%/g},initialize:function(html,observer,options){this.setOptions({stickyWinToUse:StickyWin},options);this.observer=document.id(observer);this.html=(document.id(html))?document.id(html).get('html'):html||'';if(this.options.showNow)this.show.delay(this.options.delayOn,this);this.setUpObservers();},setUpObservers:function(){var opt=this.options;this.observer.addEvent(opt.observerAction,function(){this.observed=true;this.show.delay(opt.delayOn,this);}.bind(this));if((opt.observerAction=="mouseenter"||opt.observerAction=="mouseover")&&this.options.closeOnMouseOut){this.observer.addEvent("mouseleave",function(){this.observed=false;this.hide.delay(opt.delayOff,this);}.bind(this));}
return this;},parseTemplate:function(string,values){return string.substitute(values,this.options.regExp);},makePopup:function(){if(!this.stickyWin){var opt=this.options;if(opt.htmlResponse)this.content=this.data;else this.content=this.parseTemplate(this.html,opt.data);this.stickyWin=new opt.stickyWinToUse($merge(opt.stickyWinOptions,{relativeTo:this.observer,showNow:false,content:this.content,allowMultipleByClass:true}));if(document.id(opt.linkPopup)||$type(opt.linkPopup)=='string'){this.stickyWin.win.setStyle('cursor','pointer').addEvent('click',function(){window.location.href=($type(url)=='string')?url:url.src;});}
this.stickyWin.win.addEvent('mouseenter',function(){this.observed=true;}.bind(this));this.stickyWin.win.addEvent('mouseleave',function(){this.observed=false;if(opt.closeOnMouseOut)this.hide.delay(opt.delayOff,this);}.bind(this));}
return this;},getContent:function(){try{new Request($merge(this.options.ajaxOptions,{url:this.options.ajaxLink||this.observer.href,onSuccess:this.show.bind(this)})).send();}catch(e){dbug.log('ajax error on PopupDetail: %s',e);}},show:function(data){var opt=this.options;if(data)this.data=data;if(this.observed&&!this.visible){if(opt.useAjax&&!this.data){var cachedVal=opt.ajaxCache[this.options.ajaxLink]||opt.ajaxCache[this.observer.href];if(cachedVal){this.fireEvent('onPopupShow',this);return this.show(cachedVal);}
this.cursorStyle=this.observer.getStyle('cursor');this.observer.setStyle('cursor','wait');this.getContent();return false;}else{if(this.cursorStyle)this.observer.setStyle('cursor',this.cursorStyle);if(opt.useAjax&&!opt.htmlResponse)opt.data=JSON.decode(this.data);this.makePopup();this.fireEvent('onPopupShow',this);this.stickyWin.show();this.visible=true;return this;}}
return this;},hide:function(){if(!this.observed){this.fireEvent('onPopupHide');if(this.stickyWin)this.stickyWin.hide();this.visible=false;}
return this;}});var PopupDetailCollection=new Class({Implements:[Options],options:{details:{},links:[],ajaxLinks:[],useCache:true,template:'',popupDetailOptions:{}},cache:{},initialize:function(observers,options){this.observers=$$(observers);this.setOptions(options);var ln=this.options.ajaxLinks.length;if(ln<=0)ln=this.options.details.length;if(this.observers.length!=ln)dbug.log("warning: observers and details are out of sync.");this.makePopupDetails();},makePopupDetails:function(){this.popupDetailObjs=this.observers.map(function(observer,index){var opt=this.options.popupDetailOptions;var pd=new PopupDetail(this.options.template,observer,$merge(opt,{data:$pick(this.options.details[index],{}),linkItem:$pick(this.options.links[index],$pick(opt.linkItem,false)),ajaxLink:$pick(this.options.ajaxLinks[index],false),ajaxCache:(this.options.useCache)?this.cache:{},useAjax:this.options.ajaxLinks.length>0}));return pd;},this);}});
StickyWin=Class.refactor(StickyWin,{options:{fade:true,fadeDuration:150},hideWin:function(){if(this.options.fade)this.fade(0);else this.previous();},showWin:function(){if(this.options.fade)this.fade(1);else this.previous();},hide:function(){this.previous(this.options.fade);},show:function(){this.previous(this.options.fade);},fade:function(to){if(!this.fadeFx){this.win.setStyles({opacity:0,display:'block'});var opts={property:'opacity',duration:this.options.fadeDuration};if(this.options.fadeTransition)opts.transition=this.options.fadeTransition;this.fadeFx=new Fx.Tween(this.win,opts);}
if(to>0){this.win.setStyle('display','block');this.position();}
this.fadeFx.clearChain();this.fadeFx.start(to).chain(function(){if(to==0){this.win.setStyle('display','none');this.fireEvent('onClose');}else{this.fireEvent('onDisplay');}}.bind(this));return this;}});StickyWin.Fx=StickyWin;
StickyWin.UI=new Class({Implements:[Options,Class.ToElement,StyleWriter],options:{width:300,css:"div.DefaultStickyWin {font-family:verdana; font-size:11px; line-height: 13px;position: relative;}"+"div.DefaultStickyWin div.top{-moz-user-select: none;-khtml-user-select: none;}"+"div.DefaultStickyWin div.top_ul{background:url({%baseHref%}full.png) top left no-repeat; height:30px; width:15px; float:left}"+"div.DefaultStickyWin div.top_ur{position:relative; left:0px !important; left:-4px; background:url({%baseHref%}full.png) top right !important; height:30px; margin:0px 0px 0px 15px !important; margin-right:-4px; padding:0px}"+"div.DefaultStickyWin h1.caption{clear: none !important; margin:0px !important; overflow: hidden; padding:0 !important; font-weight:bold; color:#555; font-size:14px !important; position:relative; top:8px !important; left:5px !important; float: left; height: 22px !important;}"+"div.DefaultStickyWin div.middle, div.DefaultStickyWin div.closeBody {background:url({%baseHref%}body.png) top left repeat-y; margin:0px 20px 0px 0px !important; margin-bottom: -3px; position: relative; top: 0px !important; top: -3px;}"+"div.DefaultStickyWin div.body{background:url({%baseHref%}body.png) top right repeat-y; padding:8px 23px 8px 0px !important; margin-left:5px !important; position:relative; right:-20px !important; z-index: 1;}"+"div.DefaultStickyWin div.bottom{clear:both;}"+"div.DefaultStickyWin div.bottom_ll{background:url({%baseHref%}full.png) bottom left no-repeat; width:15px; height:15px; float:left}"+"div.DefaultStickyWin div.bottom_lr{background:url({%baseHref%}full.png) bottom right; position:relative; left:0px !important; left:-4px; margin:0px 0px 0px 15px !important; margin-right:-4px; height:15px}"+"div.DefaultStickyWin div.closeButtons{text-align: center; background:url({%baseHref%}body.png) top right repeat-y; padding: 4px 30px 8px 0px; margin-left:5px; position:relative; right:-20px}"+"div.DefaultStickyWin a.button:hover{background:url({%baseHref%}big_button_over.gif) repeat-x}"+"div.DefaultStickyWin a.button {background:url({%baseHref%}big_button.gif) repeat-x; margin: 2px 8px 2px 8px; padding: 2px 12px; cursor:pointer; border: 1px solid #999 !important; text-decoration:none; color: #000 !important;}"+"div.DefaultStickyWin div.closeButton{width:13px; height:13px; background:url({%baseHref%}closebtn.gif) no-repeat; position: absolute; right: 0px; margin:10px 15px 0px 0px !important; cursor:pointer;top:0px}"+"div.DefaultStickyWin div.dragHandle { width: 11px; height: 25px; position: relative; top: 5px; left: -3px; cursor: move; background: url({%baseHref%}drag_corner.gif); float: left;}",cornerHandle:false,cssClass:'',buttons:[],cssId:'defaultStickyWinStyle',cssClassName:'DefaultStickyWin',closeButton:true},initialize:function(){var args=this.getArgs(arguments);this.setOptions(args.options);this.legacy();var css=this.options.css.substitute({baseHref:this.options.baseHref||Clientcide.assetLocation+'/stickyWinHTML/'},/\\?\{%([^}]+)%\}/g);if(Browser.Engine.trident4)css=css.replace(/png/g,'gif');this.createStyle(css,this.options.cssId);this.build();if(args.caption||args.body)this.setContent(args.caption,args.body);},getArgs:function(){return StickyWin.UI.getArgs.apply(this,arguments);},legacy:function(){var opt=this.options;if(opt.confirmTxt)opt.buttons.push({text:opt.confirmTxt,onClick:opt.onConfirm||$empty});if(opt.closeTxt)opt.buttons.push({text:opt.closeTxt,onClick:opt.onClose||$empty});},build:function(){var opt=this.options;var container=new Element('div',{'class':opt.cssClassName});if(opt.width)container.setStyle('width',opt.width);this.element=container;this.element.store('StickyWinUI',this);if(opt.cssClass)container.addClass(opt.cssClass);var bodyDiv=new Element('div').addClass('body');this.body=bodyDiv;var top_ur=new Element('div').addClass('top_ur');this.top_ur=top_ur;this.top=new Element('div').addClass('top').adopt(new Element('div').addClass('top_ul')).adopt(top_ur);container.adopt(this.top);if(opt.cornerHandle)new Element('div').addClass('dragHandle').inject(top_ur,'top');container.adopt(new Element('div').addClass('middle').adopt(bodyDiv));if(opt.buttons.length>0){var closeButtons=new Element('div').addClass('closeButtons');opt.buttons.each(function(button){if(button.properties&&button.properties.className){button.properties['class']=button.properties.className;delete button.properties.className;}
var properties=$merge({'class':'closeSticky'},button.properties);new Element('a').addEvent('click',button.onClick||$empty).appendText(button.text).inject(closeButtons).set(properties).addClass('button');});container.adopt(new Element('div').addClass('closeBody').adopt(closeButtons));}
container.adopt(new Element('div').addClass('bottom').adopt(new Element('div').addClass('bottom_ll')).adopt(new Element('div').addClass('bottom_lr')));if(this.options.closeButton)container.adopt(new Element('div').addClass('closeButton').addClass('closeSticky'));return this;},setCaption:function(caption){this.caption=caption;if(!this.h1){this.makeCaption(caption);}else{if(document.id(caption))this.h1.adopt(caption);else this.h1.set('html',caption);}
return this;},makeCaption:function(caption){if(!caption)return this.destroyCaption();var opt=this.options;this.h1=new Element('h1').addClass('caption');if(opt.width)this.h1.setStyle('width',(opt.width-(opt.cornerHandle?55:40)-(opt.closeButton?10:0)));this.setCaption(caption);this.top_ur.adopt(this.h1);if(!this.options.cornerHandle)this.h1.addClass('dragHandle');return this;},destroyCaption:function(){if(this.h1){this.h1.destroy();this.h1=null;}
return this;},setContent:function(){var args=this.getArgs.apply(this,arguments);var caption=args.caption;var body=args.body;this.setCaption(caption);if(document.id(body))this.body.empty().adopt(body);else this.body.set('html',body);return this;}});StickyWin.UI.getArgs=function(){var input=$type(arguments[0])=="arguments"?arguments[0]:arguments;if(Browser.Engine.presto&&1===input.length)input=input[0];var cap=input[0],bod=input[1];var args=Array.link(input,{options:Object.type});if(input.length==3||(!args.options&&input.length==2)){args.caption=cap;args.body=bod;}else if(($type(bod)=='object'||!bod)&&cap&&$type(cap)!='object'){args.body=cap;}
return args;};StickyWin.ui=function(caption,body,options){return document.id(new StickyWin.UI(caption,body,options));};
(function(){var SWA=function(extend){return{Extends:extend,options:{url:'',showNow:false,requestOptions:{method:'get',evalScripts:true},wrapWithUi:false,caption:'',uiOptions:{},handleResponse:function(response){var responseScript="";this.Request.response.text.stripScripts(function(script){responseScript+=script;});if(this.options.wrapWithUi)response=StickyWin.ui(this.options.caption,response,this.options.uiOptions);this.setContent(response);this.show();if(this.evalScripts)$exec(responseScript);this.fireEvent('update');}},initialize:function(options){var showNow;if(options&&options.showNow){showNow=true;options.showNow=false;}
this.parent(options);this.evalScripts=this.options.requestOptions.evalScripts;this.options.requestOptions.evalScripts=false;this.createRequest();if(showNow)this.update();},createRequest:function(){this.Request=new Request(this.options.requestOptions).addEvent('onSuccess',this.options.handleResponse.bind(this));},update:function(url,options){this.Request.setOptions(options).send({url:url||this.options.url});return this;}};};try{StickyWin.Ajax=new Class(SWA(StickyWin));}catch(e){}
try{StickyWin.Modal.Ajax=new Class(SWA(StickyWin.Modal));}catch(e){}})();
StickyWin.Modal=new Class({Extends:StickyWin,options:{modalize:true,maskOptions:{style:{'background-color':'#333',opacity:0.8}},hideOnClick:true,getWindowManager:function(){return StickyWin.ModalWM;}},initialize:function(options){this.options.maskTarget=this.options.maskTarget||document.body;this.setOptions(options);this.mask=new Mask(this.options.maskTarget,this.options.maskOptions).addEvent('click',function(){if(this.options.hideOnClick)this.hide();}.bind(this));this.parent(options);},show:function(showModal){if($pick(showModal,this.options.modalize))this.mask.show();this.parent();},hide:function(hideModal){if($pick(hideModal,true))this.mask.hide();this.parent();}});StickyWin.ModalWM=new StickyWin.Stacker({zIndexBase:11000});if(StickyWin.Fx)StickyWin.Fx.Modal=StickyWin.Modal;
StickyWin.Alert=new Class({Implements:Options,Extends:StickyWin.Modal,options:{destroyOnClose:true,modalOptions:{modalStyle:{zIndex:11000}},zIndex:110001,uiOptions:{width:250,buttons:[{text:'Ok'}]},getWindowManager:$empty},initialize:function(caption,message,options){this.message=message;this.caption=caption;this.setOptions(options);this.setOptions({content:this.build()});this.parent(options);},makeMessage:function(){return new Element('p',{'class':'errorMsg SWclearfix',styles:{margin:0,minHeight:10},html:this.message});},build:function(){return StickyWin.ui(this.caption,this.makeMessage(),this.options.uiOptions);}});StickyWin.Error=new Class({Extends:StickyWin.Alert,makeMessage:function(){var message=this.parent();new Element('img',{src:(this.options.baseHref||Clientcide.assetLocation+'/simple.error.popup')+'/icon_problems_sm.gif','class':'bang clearfix',styles:{'float':'left',width:30,height:30,margin:'3px 5px 5px 0px'}}).inject(message,'top');return message;}});StickyWin.alert=function(caption,message,options){if($type(options)=="string")options={baseHref:options};return new StickyWin.Alert(caption,message,options);};StickyWin.error=function(caption,message,options){return new StickyWin.Error(caption,message,options);};
StickyWin.Confirm=new Class({Extends:StickyWin.Alert,options:{uiOptions:{width:250}},build:function(callback){this.setOptions({uiOptions:{buttons:[{text:'Cancel'},{text:'Ok',onClick:callback||function(){this.fireEvent('confirm');}.bind(this)}]}});return this.parent();}});StickyWin.confirm=function(caption,message,callback,options){return new StickyWin.Confirm(caption,message,options).addEvent('confirm',callback);};
StickyWin.Prompt=new Class({Extends:StickyWin.Confirm,options:{defaultValue:''},initialize:function(message,header,options){this.addEvent('display',function(){this.input.select();}.bind(this));this.parent.apply(this,arguments);},makeMessage:function(){this.input=new Element('input',{value:this.options.defaultValue,type:'text',id:'foo',styles:{width:'100%'},events:{keyup:function(e){if(e.key=='enter'){this.fireEvent('confirm',this.input.get('value'));this.hide();}}.bind(this)}});return new Element('div').adopt(this.parent()).adopt(this.input);},build:function(){return this.parent(function(){this.fireEvent('confirm',this.input.get('value'));}.bind(this));}});StickyWin.prompt=function(caption,message,callback,options){return new StickyWin.Prompt(caption,message,options).addEvent('confirm',callback);};
StickyWin.UI.Pointy=new Class({Extends:StickyWin.UI,options:{theme:'dark',themes:{dark:{bgColor:'#333',fgColor:'#ddd',imgset:'dark'},light:{bgColor:'#ccc',fgColor:'#333',imgset:'light'}},css:"div.DefaultPointyTip {vertical-align: auto; position: relative;}"+"div.DefaultPointyTip * {text-align:left !important}"+"div.DefaultPointyTip .pointyWrapper div.body{background: {%bgColor%}; color: {%fgColor%}; left: 0px; right: 0px !important;padding:  0px 10px !important;margin-left: 0px !important;font-family: verdana;font-size: 11px;line-height: 13px;position: relative;}"+"div.DefaultPointyTip .pointyWrapper div.top {position: relative;height: 25px; overflow: visible;}"+"div.DefaultPointyTip .pointyWrapper div.top_ul{background: url({%baseHref%}{%imgset%}_back.png) top left no-repeat;width: 8px;height: 25px; position: absolute; left: 0px;}"+"div.DefaultPointyTip .pointyWrapper div.top_ur{background: url({%baseHref%}{%imgset%}_back.png) top right !important;margin: 0 0 0 8px !important;height: 25px;position: relative;left: 0px !important;padding: 0;}"+"div.DefaultPointyTip .pointyWrapper h1.caption{color: {%fgColor%};left: 0px !important;top: 4px !important;clear: none !important;overflow: hidden;font-weight: 700;font-size: 12px !important;position: relative;float: left;height: 22px !important;margin: 0 !important;padding: 0 !important;}"+"div.DefaultPointyTip .pointyWrapper div.middle, div.DefaultPointyTip .pointyWrapper div.closeBody{background:  {%bgColor%};margin: 0 0px 0 0 !important;position: relative;top: 0 !important;}"+"div.DefaultPointyTip .pointyWrapper div.bottom {clear: both; width: 100% !important; background: none; height: 6px} "+"div.DefaultPointyTip .pointyWrapper div.bottom_ll{font-size:1; background: url({%baseHref%}{%imgset%}_back.png) bottom left no-repeat;width: 6px;height: 6px;position: absolute; left: 0px;}"+"div.DefaultPointyTip .pointyWrapper div.bottom_lr{font-size:1; background: url({%baseHref%}{%imgset%}_back.png) bottom right;height: 6px;margin: 0 0 0 6px !important;position: relative;left: 0 !important;}"+"div.DefaultPointyTip .pointyWrapper div.noCaption{ height: 6px; overflow: hidden}"+"div.DefaultPointyTip .pointyWrapper div.closeButton{width:13px; height:13px; background:url({%baseHref%}{%imgset%}_x.png) no-repeat; position: absolute; right: 0px; margin:0px !important; cursor:pointer; z-index: 1; top: 4px;}"+"div.DefaultPointyTip .pointyWrapper div.pointyDivot {background: url({%divot%}) no-repeat;}",divot:'{%baseHref%}{%imgset%}_divot.png',divotSize:22,direction:12,cssId:'defaultPointyTipStyle',cssClassName:'DefaultPointyTip'},initialize:function(){var args=this.getArgs(arguments);this.setOptions(args.options);$extend(this.options,this.options.themes[this.options.theme]);this.options.baseHref=this.options.baseHref||Clientcide.assetLocation+'/PointyTip/';this.options.divot=this.options.divot.substitute(this.options,/\\?\{%([^}]+)%\}/g);if(Browser.Engine.trident4)this.options.divot=this.options.divot.replace(/png/g,'gif');this.options.css=this.options.css.substitute(this.options,/\\?\{%([^}]+)%\}/g);if(args.options&&args.options.theme){while(!this.id){var id=$random(0,999999999);if(!StickyWin.UI.Pointy[id]){StickyWin.UI.Pointy[id]=this;this.id=id;}}
this.options.css=this.options.css.replace(/div\.DefaultPointyTip/g,"div#pointy_"+this.id);this.options.cssId="pointyTipStyle_"+this.id;}
if($type(this.options.direction)=='string'){var map={left:9,right:3,up:12,down:6};this.options.direction=map[this.options.direction];}
this.parent(args.caption,args.body,this.options);if(this.id)document.id(this).set('id',"pointy_"+this.id);},build:function(){this.parent();var opt=this.options;this.pointyWrapper=new Element('div',{'class':'pointyWrapper'}).inject(document.id(this));document.id(this).getChildren().each(function(el){if(el!=this.pointyWrapper)this.pointyWrapper.grab(el);},this);var w=opt.divotSize;var h=w;var left=(opt.width-opt.divotSize)/2;var orient=function(){switch(opt.direction){case 12:case 1:case 11:return{height:h/2};case 5:case 6:case 7:return{height:h/2,backgroundPosition:'0 -'+h/2+'px'};case 8:case 9:case 10:return{width:w/2};case 2:case 3:case 4:return{width:w/2,backgroundPosition:'100%'};};};this.pointer=new Element('div',{styles:$extend({width:w,height:h,overflow:'hidden'},orient()),'class':'pointyDivot pointy_'+opt.direction}).inject(this.pointyWrapper);},expose:function(){if(document.id(this).getStyle('display')!='none'&&document.id(document.body).hasChild(document.id(this)))return $empty;document.id(this).setStyles({visibility:'hidden',position:'absolute'});var dispose;if(!document.body.hasChild(document.id(this))){document.id(this).inject(document.body);dispose=true;}
return(function(){if(dispose)document.id(this).dispose();document.id(this).setStyles({visibility:'visible',position:'relative'});}).bind(this);},positionPointer:function(options){if(!this.pointer)return;var opt=options||this.options;var pos;var d=opt.direction;switch(d){case 12:case 1:case 11:pos={edge:{x:'center',y:'bottom'},position:{x:d==12?'center':d==1?'right':'left',y:'top'},offset:{x:(d==12?0:d==1?-1:1)*opt.divotSize,y:1}};break;case 2:case 3:case 4:pos={edge:{x:'left',y:'center'},position:{x:'right',y:d==3?'center':d==2?'top':'bottom'},offset:{x:-1,y:(d==3?0:d==4?-1:1)*opt.divotSize}};break;case 5:case 6:case 7:pos={edge:{x:'center',y:'top'},position:{x:d==6?'center':d==5?'right':'left',y:'bottom'},offset:{x:(d==6?0:d==5?-1:1)*opt.divotSize,y:-1}};break;case 8:case 9:case 10:pos={edge:{x:'right',y:'center'},position:{x:'left',y:d==9?'center':d==10?'top':'bottom'},offset:{x:1,y:(d==9?0:d==8?-1:1)*opt.divotSize}};break;};var putItBack=this.expose();this.pointer.position($extend({relativeTo:this.pointyWrapper},pos,options));putItBack();},setContent:function(a1,a2){this.parent(a1,a2);this.top[this.h1?'removeClass':'addClass']('noCaption');if(Browser.Engine.trident4)document.id(this).getElements('.bottom_ll, .bottom_lr').setStyle('font-size',1);if(this.options.closeButton)this.body.setStyle('margin-right',6);this.positionPointer();return this;},makeCaption:function(caption){this.parent(caption);if(this.options.width&&this.h1)this.h1.setStyle('width',(this.options.width-(this.options.closeButton?25:15)));}});StickyWin.UI.pointy=function(caption,body,options){return document.id(new StickyWin.UI.Pointy(caption,body,options));};StickyWin.ui.pointy=StickyWin.UI.pointy;
StickyWin.PointyTip=new Class({Extends:StickyWin,options:{point:"left",pointyOptions:{}},initialize:function(){var args=this.getArgs(arguments);this.setOptions(args.options);var popts=this.options.pointyOptions;var d=popts.direction;if(!d){var map={left:9,right:3,up:12,down:6};d=map[this.options.point];if(!d)d=this.options.point;popts.direction=d;}
if(!popts.width)popts.width=this.options.width;this.pointy=new StickyWin.UI.Pointy(args.caption,args.body,popts);this.options.content=null;this.setOptions(args.options,this.getPositionSettings());this.parent(this.options);this.win.empty().adopt(document.id(this.pointy));this.attachHandlers(this.win);if(this.options.showNow)this.position();},getArgs:function(){return StickyWin.UI.getArgs.apply(this,arguments);},getPositionSettings:function(){var s=this.pointy.options.divotSize;var d=this.options.point;var offset=this.options.offset||{};switch(d){case"left":case 8:case 9:case 10:return{edge:{x:'left',y:d==10?'top':d==8?'bottom':'center'},position:{x:'right',y:'center'},offset:{x:s+(offset.x||0),y:offset.y||0}};case"right":case 2:case 3:case 4:return{edge:{x:'right',y:(d==2?'top':d==4?'bottom':'center')+(offset.y||0)},position:{x:'left',y:'center'},offset:{x:-s+(offset.x||0),y:offset.y||0}};case"up":case 11:case 12:case 1:return{edge:{x:d==11?'left':d==1?'right':'center',y:'top'},position:{x:'center',y:'bottom'},offset:{y:s+(offset.y||0),x:(d==11?-s:d==1?s:0)+(offset.x||0)}};case"down":case 5:case 6:case 7:return{edge:{x:(d==7?'left':d==5?'right':'center')+(offset.x||0),y:'bottom'},position:{x:'center',y:'top'},offset:{y:-s+(offset.y||0),x:(d==7?-s:d==5?s:0)+(offset.x||0)}};};},setContent:function(){var args=this.getArgs(arguments);this.pointy.setContent(args.caption,args.body);[this.pointy.h1,this.pointy.body].each(this.attachHandlers,this);if(this.visible)this.position();return this;},showWin:function(){this.parent();this.pointy.positionPointer();},position:function(options){this.parent(options);this.pointy.positionPointer();},attachHandlers:function(content){if(!content)return;content.getElements('.'+this.options.closeClassName).addEvent('click',function(){this.hide();}.bind(this));content.getElements('.'+this.options.pinClassName).addEvent('click',function(){this.togglepin();}.bind(this));}});
Tips.Pointy=new Class({Extends:Tips,options:{onShow:function(tip,stickyWin){stickyWin.show();},onHide:function(tip,stickyWin){stickyWin.hide();},pointyTipOptions:{point:11,width:150,pointyOptions:{closeButton:false}}},initialize:function(){var params=Array.link(arguments,{options:Object.type,elements:$defined});this.setOptions(params.options);this.tip=new StickyWin.PointyTip($extend(this.options.pointyTipOptions,{showNow:false}));if(this.options.className)document.id(this.tip).addClass(this.options.className);if(params.elements)this.attach(params.elements);},elementEnter:function(event,element){var title=element.retrieve('tip:title');var text=element.retrieve('tip:text');this.tip.setContent(title,text);this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);this.position(element);},elementLeave:function(event){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this);},elementMove:function(event){return;},position:function(element){this.tip.setOptions({relativeTo:element});this.tip.position();},show:function(){this.fireEvent('show',[document.id(this.tip),this.tip]);},hide:function(){this.fireEvent('hide',[document.id(this.tip),this.tip]);}});
var Confirmer=new Class({Implements:[Options,Events],options:{reposition:true,positionOptions:{relativeTo:false,position:'upperRight',offset:{x:-225,y:0},zIndex:9999},msg:'your changes have been saved',msgContainerSelector:'.body',delay:250,pause:1000,effectOptions:{duration:500},prompterStyle:{padding:'2px 6px',border:'1px solid #9f0000',backgroundColor:'#f9d0d0',fontWeight:'bold',color:'#000',width:210}},initialize:function(options){this.setOptions(options);this.options.positionOptions.relativeTo=document.id(this.options.positionOptions.relativeTo)||document.body;this.prompter=(document.id(this.options.msg))?document.id(this.options.msg):this.makePrompter(this.options.msg);if(this.options.reposition){this.prompter.setStyles({position:'absolute',display:'none',zIndex:this.options.positionOptions.zIndex});if(!Browser.Engine.trident4)this.prompter.setStyle('opacity',0);}else if(!Browser.Engine.trident4)this.prompter.setStyle('opacity',0);else this.prompter.setStyle('visibility','hidden');if(!this.prompter.getParent()){window.addEvent('domready',function(){this.prompter.inject(document.body);}.bind(this));}
try{this.msgHolder=this.prompter.getElement(this.options.msgContainerSelector);if(!this.msgHolder)this.msgHolder=this.prompter;}catch(e){dbug.log(e)}},makePrompter:function(msg){return new Element('div').setStyles(this.options.prompterStyle).appendText(msg);},prompt:function(options){if(!this.paused)this.stop();var msg=(options)?options.msg:false;options=$merge(this.options,{saveAsDefault:false},options||{});if(document.id(options.msg)&&msg)this.msgHolder.empty().adopt(options.msg);else if(!document.id(options.msg)&&options.msg)this.msgHolder.empty().appendText(options.msg);if(!this.paused){if(options.reposition)this.position(options.positionOptions);(function(){this.timer=this.fade(options.pause);}).delay(options.delay,this);}
if(options.saveAsDefault)this.setOptions(options);return this;},fade:function(pause){this.paused=true;pause=$pick(pause,this.options.pause);if(!this.fx&&!Browser.Engine.trident4)
this.fx=new Fx.Tween(this.prompter,$merge({property:'opacity'},this.options.effectOptions));if(this.options.reposition)this.prompter.setStyle('display','block');if(!Browser.Engine.trident4){this.prompter.setStyle('visibility','visible');this.fx.start(0,1).chain(function(){this.timer=(function(){this.fx.start(0).chain(function(){if(this.options.reposition)this.prompter.hide();this.paused=false;}.bind(this));}).delay(pause,this);}.bind(this));}else{this.prompter.setStyle('visibility','visible');this.timer=(function(){this.prompter.setStyle('visibility','hidden');this.fireEvent('onComplete');this.paused=false;}).delay(pause+this.options.effectOptions.duration,this);}
return this;},stop:function(){this.paused=false;$clear(this.timer);if(this.fx)this.fx.set(0);if(this.options.reposition)this.prompter.hide();return this;},position:function(positionOptions){this.prompter.position($merge(this.options.positionOptions,positionOptions));return this;}});
StickyWin=Class.refactor(StickyWin,{options:{draggable:false,dragOptions:{},dragHandleSelector:'.dragHandle',resizable:false,resizeOptions:{},resizeHandleSelector:''},setContent:function(){this.previous.apply(this,arguments);if(this.options.draggable)this.makeDraggable();if(this.options.resizable)this.makeResizable();return this;},makeDraggable:function(){var toggled=this.toggleVisible(true);if(this.options.useIframeShim){this.makeIframeShim();var onComplete=(this.options.dragOptions.onComplete||$empty);this.options.dragOptions.onComplete=function(){onComplete();this.shim.position();}.bind(this);}
if(this.options.dragHandleSelector){var handle=this.win.getElement(this.options.dragHandleSelector);if(handle){handle.setStyle('cursor','move');this.options.dragOptions.handle=handle;}}
this.win.makeDraggable(this.options.dragOptions);if(toggled)this.toggleVisible(false);},makeResizable:function(){var toggled=this.toggleVisible(true);if(this.options.useIframeShim){this.makeIframeShim();var onComplete=(this.options.resizeOptions.onComplete||$empty);this.options.resizeOptions.onComplete=function(){onComplete();this.shim.position();}.bind(this);}
if(this.options.resizeHandleSelector){var handle=this.win.getElement(this.options.resizeHandleSelector);if(handle)this.options.resizeOptions.handle=this.win.getElement(this.options.resizeHandleSelector);}
this.win.makeResizable(this.options.resizeOptions);if(toggled)this.toggleVisible(false);},toggleVisible:function(show){if(!this.visible&&Browser.Engine.webkit&&$pick(show,true)){this.win.setStyles({display:'block',opacity:0});return true;}else if(!$pick(show,false)){this.win.setStyles({display:'none',opacity:1});return false;}
return false;}});StickyWin.Fx=StickyWin;
var DatePicker;(function(){var DPglobal=function(){if(DatePicker.pickers)return;DatePicker.pickers=[];DatePicker.hideAll=function(){DatePicker.pickers.each(function(picker){picker.hide();});};};DatePicker=new Class({Implements:[Options,Events,StyleWriter],options:{format:"%x",defaultCss:'div.calendarHolder {height:177px;position: absolute;top: -21px !important;top: -27px;left: -3px;width: 100%;}'+'div.calendarHolder table.cal {margin-right: 15px !important;margin-right: 8px;width: 205px;}'+'div.calendarHolder td {text-align:center;}'+'div.calendarHolder tr.dayRow td {padding: 2px;width: 22px;cursor: pointer;}'+'div.calendarHolder table.datePicker * {font-size:11px;line-height:16px;}'+'div.calendarHolder table.datePicker {margin: 0;padding:0 5px;float: left;}'+'div.calendarHolder table.datePicker table.cal td {cursor:pointer;}'+'div.calendarHolder tr.dateNav {font-weight: bold;height:22px;margin-top:8px;}'+'div.calendarHolder tr.dayNames {height: 23px;}'+'div.calendarHolder tr.dayNames td {color:#666;font-weight:700;border-bottom:1px solid #ddd;}'+'div.calendarHolder table.datePicker tr.dayRow td:hover {background:#ccc;}'+'div.calendarHolder table.datePicker tr.dayRow td {margin: 1px;}'+'div.calendarHolder td.today {color:#bb0904;}'+'div.calendarHolder td.otherMonthDate {border:1px solid #fff;color:#ccc;background:#f3f3f3 !important;margin: 0px !important;}'+'div.calendarHolder td.selectedDate {border: 1px solid #20397b;background:#dcddef;margin: 0px !important;}'+'div.calendarHolder a.leftScroll, div.calendarHolder a.rightScroll {cursor: pointer; color: #000}'+'div.datePickerSW div.body {height: 160px !important;height: 149px;}'+'div.datePickerSW .clearfix:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;}'+'div.datePickerSW .clearfix {display: inline-table;}'+'* html div.datePickerSW .clearfix {height: 1%;}'+'div.datePickerSW .clearfix {display: block;}',calendarId:false,stickyWinOptions:{draggable:true,dragOptions:{},position:"bottomLeft",offset:{x:10,y:10},fadeDuration:400},stickyWinUiOptions:{},updateOnBlur:true,additionalShowLinks:[],showOnInputFocus:true,useDefaultCss:true,hideCalendarOnPick:true,weekStartOffset:0,showMoreThanOne:true,stickyWinToUse:StickyWin},initialize:function(input,options){DPglobal();if(document.id(input))this.inputs=$H({start:document.id(input)});this.today=new Date();this.setOptions(options);if(this.options.useDefaultCss)this.createStyle(this.options.defaultCss,'datePickerStyle');if(!this.inputs)return;this.whens=this.whens||['start'];if(!this.calendarId)this.calendarId="popupCalendar"+new Date().getTime();this.setUpObservers();this.getCalendar();this.formValidatorInterface();DatePicker.pickers.push(this);},formValidatorInterface:function(){this.inputs.each(function(input){var props;if(input.get('validatorProps'))props=input.get('validatorProps');if(props&&props.dateFormat){dbug.log('using date format specified in validatorProps property of element to play nice with Form.Validator');this.setOptions({format:props.dateFormat});}else{if(!props)props={};props.dateFormat=this.options.format;input.set('validatorProps',props);}},this);},calWidth:280,inputDates:{},selectedDates:{},setUpObservers:function(){this.inputs.each(function(input){if(this.options.showOnInputFocus)input.addEvent('focus',this.show.bind(this));input.addEvent('blur',function(e){if(e){this.selectedDates=this.getDates(null,true);this.fillCalendar(this.selectedDates.start);if(this.options.updateOnBlur)this.updateInput();}}.bind(this));},this);this.options.additionalShowLinks.each(function(lnk){document.id(lnk).addEvent('click',this.show.bind(this));},this);},getDates:function(dates,getFromInputs){var d={};if(!getFromInputs)dates=dates||this.selectedDates;var getFromInput=function(when){var input=this.inputs.get(when);if(input)d[when]=this.validDate(input.get('value'));}.bind(this);this.whens.each(function(when){switch($type(dates)){case"object":if(dates)d[when]=dates[when]?dates[when]:dates;if(!d[when]&&!d[when].format)getFromInput(when);break;default:getFromInput(when);break;}
if(!d[when])d[when]=this.selectedDates[when]||new Date();},this);return d;},updateInput:function(){var d={};$each(this.getDates(),function(value,key){var input=this.inputs.get(key);if(!input)return;input.set('value',(value)?this.formatDate(value)||"":"");},this);return this;},validDate:function(val){if(!$chk(val))return null;var date=Date.parse(val.trim());return isNaN(date)?null:date;},formatDate:function(date){return date.format(this.options.format);},getCalendar:function(){if(!this.calendar){var cal=new Element("table",{'id':this.options.calendarId||'','border':'0','cellpadding':'0','cellspacing':'0','class':'datePicker'});var tbody=new Element('tbody').inject(cal);var rows=[];(8).times(function(i){var row=new Element('tr').inject(tbody);(7).times(function(i){var td=new Element('td').inject(row).set('html','&nbsp;');});});rows=tbody.getElements('tr');rows[0].addClass('dateNav');rows[1].addClass('dayNames');(6).times(function(i){rows[i+2].addClass('dayRow');});this.rows=rows;var dayCells=rows[1].getElements('td');dayCells.each(function(cell,i){cell.firstChild.data=Date.getMsg('days')[(i+this.options.weekStartOffset)%7].substring(0,3);},this);[6,5,4,3].each(function(i){rows[0].getElements('td')[i].dispose();});this.prevLnk=rows[0].getElement('td').setStyle('text-align','right');this.prevLnk.adopt(new Element('a').set('html',"&lt;").addClass('rightScroll'));this.month=rows[0].getElements('td')[1];this.month.set('colspan',5);this.nextLnk=rows[0].getElements('td')[2].setStyle('text-align','left');this.nextLnk.adopt(new Element('a').set('html','&gt;').addClass('leftScroll'));cal.addEvent('click',this.clickCalendar.bind(this));this.calendar=cal;this.container=new Element('div').adopt(cal).addClass('calendarHolder');this.content=StickyWin.ui('',this.container,$merge(this.options.stickyWinUiOptions,{cornerHandle:this.options.stickyWinOptions.draggable,width:this.calWidth}));var opts=$merge(this.options.stickyWinOptions,{content:this.content,className:'datePickerSW',allowMultipleByClass:true,showNow:false,relativeTo:this.inputs.get('start')});this.stickyWin=new this.options.stickyWinToUse(opts);this.stickyWin.addEvent('onDisplay',this.positionClose.bind(this));}
return this.calendar;},positionClose:function(){if(this.closePositioned)return;var closer=this.content.getElement('div.closeButton');if(closer){closer.inject(this.container,'after').setStyle('z-index',this.stickyWin.win.getStyle('z-index').toInt()+2);(function(){this.content.setStyle('width',this.calendar.getSize().x+(this.options.time?240:40));closer.position({relativeTo:this.stickyWin.win.getElement('.top'),position:'upperRight',edge:'upperRight'});}).delay(3,this);}
this.closePositioned=true;},hide:function(){this.stickyWin.hide();this.fireEvent('onHide');return this;},hideOthers:function(){DatePicker.pickers.each(function(picker){if(picker!=this)picker.hide();});return this;},show:function(){this.selectedDates={};var dates=this.getDates(null,true);this.whens.each(function(when){this.inputDates[when]=dates[when]?dates[when].clone():dates.start?dates.start.clone():this.today;this.selectedDates[when]=!this.inputDates[when]||isNaN(this.inputDates[when])?this.today:this.inputDates[when].clone();this.getCalendar(when);},this);this.fillCalendar(this.selectedDates.start);if(!this.options.showMoreThanOne)this.hideOthers();this.stickyWin.show();this.fireEvent('onShow');return this;},handleScroll:function(e){if(e.target.hasClass('rightScroll')||e.target.hasClass('leftScroll')){var newRef=e.target.hasClass('rightScroll')?this.rows[2].getElement('td').refDate-Date.units.day():this.rows[7].getElements('td')[6].refDate+Date.units.day();this.fillCalendar(new Date(newRef));return true;}
return false;},setSelectedDates:function(e,newDate){this.selectedDates.start=newDate;},onPick:function(){this.updateSelectors();this.inputs.each(function(input){input.fireEvent("change");input.fireEvent("blur");});this.fireEvent('onPick');if(this.options.hideCalendarOnPick)this.hide();},clickCalendar:function(e){if(this.handleScroll(e))return;if(!e.target.firstChild||!e.target.firstChild.data)return;var val=e.target.firstChild.data;if(e.target.refDate){var newDate=new Date(e.target.refDate);this.setSelectedDates(e,newDate);this.updateInput();this.onPick();}},fillCalendar:function(date){if($type(date)=="string")date=new Date(date);var startDate=(date)?new Date(date.getTime()):new Date();var hours=startDate.get('hours');startDate.setDate(1);var startDay=startDate.getDay();if(startDay<this.options.weekStartOffset)startDay+=7;startDate.setTime((startDate.getTime()-(Date.units.day()*(startDay)))+
(Date.units.day()*this.options.weekStartOffset));var monthyr=new Element('span',{html:Date.getMsg('months')[date.getMonth()]+" "+date.getFullYear()});document.id(this.rows[0].getElements('td')[1]).empty().adopt(monthyr);var atDate=startDate.clone();this.rows.each(function(row,i){if(i<2)return;row.getElements('td').each(function(td){atDate.set('hours',hours);td.firstChild.data=atDate.getDate();td.refDate=atDate.getTime();atDate.setTime(atDate.getTime()+Date.units.day());},this);},this);this.updateSelectors();},updateSelectors:function(){var atDate;var month=new Date(this.rows[5].getElement('td').refDate).getMonth();this.rows.each(function(row,i){if(i<2)return;row.getElements('td').each(function(td){td.className='';atDate=new Date(td.refDate);if(atDate.format("%x")==this.today.format("%x"))td.addClass('today');this.whens.each(function(when){var date=this.selectedDates[when];if(date&&atDate.format("%x")==date.format("%x")){td.addClass('selectedDate');this.fireEvent('selectedDateMatch',[td,when]);}},this);this.fireEvent('rowDateEvaluated',[atDate,td]);if(atDate.getMonth()!=month)td.addClass('otherMonthDate');atDate.setTime(atDate.getTime()+Date.units.day());},this);},this);}});})();
DatePicker=Class.refactor(DatePicker,{options:{extraCSS:'a.finish {position: relative;height: 13px !important;top: -31px !important;left: 85px !important;top: -34px;left: 77px;height: 16px;display:block;float: left;padding: 1px 12px 3px !important;}'+'div.calendarHolder div.time {border: #999 1px solid;width: 55px;position: relative;left: 3px;height: 17px;}'+'div.calendarHolder td.timeTD {width: 140px;} div.calendarHolder td.label{width:35px; text-align:right}'+'div.calendarHolder div.time select {font-size: 10px !important; font-size: 15px;padding: 0px;left:60px;position:absolute;top:-1px !important; width: auto !important;}'+'div.calendarHolder div.time input {width: 16px !important;width: 12px;padding: 2px;height: 13px;border: none !important;border: 1px solid #fff;}'+'div.calendarHolder div.timeSub {clear:both;position: relative;width: 65px;}'+'div.calendarHolder div.timeSub span {text-align: center;color: #999;margin: 5px;}'+'div.calendarHolder span.seperator {position:relative;top:-3px;}'+'div.calendarHolder table.stamp {position:relative;top: 35px !important;top: 50px;left: 0px;}'+'div.calendarHolder table.stamp a {left:123px;position:relative;top:9px;}'+'div.calendarHolder table.stamp td {border: none !important;}'+'div.calendarHolder td.selected_end {border-width: 1px 1px 1px 0px !important;margin: 0px 0px 0px 1px !important;}'+'div.calendarHolder td.selected_start {border-width: 1px 0px 1px 1px !important;margin: 0px 1px 0px 0px !important;}'+'div.calendarHolder table.datePicker td.range {background: #dcddef;border: solid #20397b;border-width: 1px 0px;margin: 0px 1px !important;}',range:false,time:false},initialize:function(inputs,options){if(options&&(options.range||options.time)){options=$merge({hideCalendarOnPick:false},options);}
if(options&&options.time&&!options.format){options.format="%x %X";}
this.setOptions(options);this.whens=(this.options.range)?['start','end']:['start'];if($type(inputs)=='object'){this.inputs=$H(inputs);}else if($type(document.id(inputs))=="element"){this.inputs=$H({'start':document.id(inputs)});}else if($type(inputs)=="array"){inputs=$$(inputs);this.inputs=$H({});this.whens.each(function(when,i){this.inputs.set(when,inputs[i]);},this);}
if(this.options.time)this.calWidth=460;this.previous(inputs,this.options);this.createStyle(this.options.extraCSS,'datePickerPlusStyle');this.addEvent('rowDateEvaluated',function(atDate,td){if(this.options.range&&this.selectedDates.start.diff(atDate,'minute')>0&&this.selectedDates.end.diff(atDate,'minute')<0)td.addClass('range');}.bind(this));this.addEvent('selectedDateMatch',function(td,when){if(this.options.range)td.addClass('selected_'+when);}.bind(this));},updateInput:function(){this.previous();if(this.options.time)this.updateView();},updateView:function(){this.whens.each(function(when){var stamp=this.stamps[when];var date=this.getDates()[when];stamp.date.set('html',date?date.format("%b. %d, %Y"):"");if(stamp.hr){stamp.hr.set('value',date?date.format("%I"):"");stamp.min.set('value',date?date.format("%M"):"");}},this);},stamps:{},setupWideView:function(){var timeStampMap={hr:'%I','min':'%M'};timeSetMap={hr:'setHours','min':'setMinutes'};var dates=this.getDates();if(!this.options.range&&!this.options.time)return;this.stamps.table=new Element('table',{'class':'stamp'}).inject(this.container);this.stamps.tbody=new Element('tbody').inject(this.stamps.table);this.whens.each(function(when){this.stamps[when]={};var s=this.stamps[when];s.container=new Element('tr').addClass(when+'_stamp').inject(this.stamps.tbody);s.label=new Element('td').inject(s.container).addClass('label');if(this.whens.length==1){s.label.set('html','date:');}else{s.label.set('html',when=="start"?"from:":"to:");}
s.date=new Element('td').inject(s.container);if(this.options.time){currentWhen=dates[when]||new Date();s.time=new Element('tr').inject(this.stamps.tbody);new Element('td').inject(s.time);s.timeTD=new Element('td').inject(s.time);s.timeInputs=new Element('div').addClass('time clearfix').inject(s.timeTD);s.timeSub=new Element('div',{'class':'timeSub'}).inject(s.timeTD);['hr','min'].each(function(t,i){s[t]=new Element('input',{type:'text','class':t,name:t,events:{focus:function(){this.select();},change:function(){this.selectedDates[when][timeSetMap[t]](s[t].get('value'));this.selectedDates[when].setAMPM(s.ampm.get('value'));this.updateInput();}.bind(this)}}).inject(s.timeInputs);s[t].set('value',currentWhen.format(timeStampMap[t]));if(i<1)s.timeInputs.adopt(new Element('span',{'class':'seperator'}).set('html',":"));new Element('span',{'class':t}).set('html',t).inject(s.timeSub);},this);s.ampm=new Element('select').inject(s.timeInputs);['AM','PM'].each(function(ampm){var opt=new Element('option',{value:ampm,text:ampm.toLowerCase()}).set('html',ampm).inject(s.ampm);if(ampm==currentWhen.format("%p"))opt.selected=true;});s.ampm.addEvent('change',function(){var date=this.getDates()[when];var ampm=s.ampm.get('value');if(ampm!=date.format("%p")){date.setAMPM(ampm);this.updateInput();}}.bind(this));}},this);new Element('tr').inject(this.stamps.tbody).adopt(new Element('td',{colspan:2}).adopt(new Element('a',{'class':'closeSticky button',events:{click:function(){this.hide();}.bind(this)}}).set('html','Ok')));},show:function(){this.previous();if(this.options.time){if(!this.stamps.table)this.setupWideView();this.updateView();}},startSet:false,onPick:function(){if((this.options.range&&this.selectedDates.start&&this.selectedDates.end)||!this.options.range){this.previous();}},setSelectedDates:function(e,newDate){if(this.options.range){if(this.selectedDates.start&&this.startSet){if(this.selectedDates.start.getTime()>newDate.getTime()){this.selectedDates.end=new Date(this.selectedDates.start);this.selectedDates.start=newDate;}else{this.selectedDates.end=newDate;}
this.startSet=false;}else{this.selectedDates.start=newDate;if(this.selectedDates.end&&this.selectedDates.start.getTime()>this.selectedDates.end.getTime())
this.selectedDates.end=new Date(newDate);this.startSet=true;}}else{this.previous(e,newDate);}
if(this.options.time){this.whens.each(function(when){var hr=this.stamps[when].hr.get('value').toInt();if(this.stamps[when].ampm.get('value')=="PM"&&hr<12)hr+=12;this.selectedDates[when].setHours(hr);this.selectedDates[when].setMinutes(this.stamps[when]['min'].get('value')||"0");this.selectedDates[when].setAMPM(this.stamps[when].ampm.get('value')||"AM");},this);}}});
Form.Validator.Tips=new Class({Extends:Form.Validator.Inline,options:{pointyTipOptions:{point:"left",width:250}},showAdvice:function(className,field){var advice=this.getAdvice(field);if(advice&&!advice.visible){advice.show();advice.position();advice.pointy.positionPointer();}},hideAdvice:function(className,field){var advice=this.getAdvice(field);if(advice&&advice.visible)advice.show();},getAdvice:function(className,field){var params=Array.link(arguments,{field:Element.type});return params.field.retrieve('PointyTip');},advices:[],makeAdvice:function(className,field,error,warn){if(!error&&!warn)return;var advice=field.retrieve('PointyTip');if(!advice){var cssClass=warn?'warning-advice':'validation-advice';var msg=new Element('ul',{styles:{margin:0,padding:0,listStyle:'none'}});var li=this.makeAdviceItem(className,field);if(li)msg.adopt(li);field.store('validationMsgs',msg);advice=new StickyWin.PointyTip(this.options.tipCaption,msg,$merge(this.options.pointyTipOptions,{showNow:false,relativeTo:field,inject:{target:this.element}}));this.advices.push(advice);advice.msgs={};field.store('PointyTip',advice);document.id(advice).addClass(cssClass).set('id','advice-'+className+'-'+this.getFieldId(field));}
field.store('advice-'+className,advice);this.appendAdvice(className,field,error,warn);advice.pointy.positionPointer();return advice;},validateField:function(field,force){var advice=this.getAdvice(field);var anyVis=this.advices.some(function(a){return a.visible;});if(anyVis&&this.options.serial){if(advice&&advice.visible){var passed=this.parent(field,force);if(!field.hasClass('validation-failed'))advice.hide();}
return passed;}
var msgs=field.retrieve('validationMsgs');if(msgs)msgs.getChildren().hide();if((field.hasClass('validation-failed')||field.hasClass('warning'))&&advice)advice.show();if(this.options.serial){var fields=this.element.getElements('.validation-failed, .warning');if(fields.length){fields.each(function(f,i){var adv=this.getAdvice(f);if(adv)adv.hide();},this);}}
return this.parent(field,force);},makeAdviceItem:function(className,field,error,warn){if(!error&&!warn)return;var advice=this.getAdvice(field);var errorMsg=this.makeAdviceMsg(field,error,warn);if(advice&&advice.msgs[className])return advice.msgs[className].set('html',errorMsg);return new Element('li',{html:errorMsg,style:{display:'none'}});},makeAdviceMsg:function(field,error,warn){var errorMsg=(warn)?this.warningPrefix:this.errorPrefix;errorMsg+=(this.options.useTitles)?field.title||error:error;return errorMsg;},appendAdvice:function(className,field,error,warn){var advice=this.getAdvice(field);if(advice.msgs[className])return advice.msgs[className].set('html',this.makeAdviceMsg(field,error,warn)).show();var li=this.makeAdviceItem(className,field,error,warn);if(!li)return;li.inject(field.retrieve('validationMsgs')).show();advice.msgs[className]=li;},insertAdvice:function(advice,field){var props=field.get('validatorProps');if(!props.msgPos||!document.id(props.msgPos)){switch(field.type.toLowerCase()){case'radio':var p=field.getParent().adopt(advice);break;default:document.id(advice).inject(document.id(field),'after');};}else{document.id(props.msgPos).grab(advice);}
advice.position();}});if(window.FormValidator)FormValidator.Tips=Form.Validator.Tips;
var Observer=new Class({Implements:[Options,Events],options:{periodical:false,delay:1000},initialize:function(el,onFired,options){this.setOptions(options);this.addEvent('onFired',onFired);this.element=document.id(el)||$$(el);this.boundChange=this.changed.bind(this);this.resume();},changed:function(){var value=this.element.get('value');if($equals(this.value,value))return;this.clear();this.value=value;this.timeout=this.onFired.delay(this.options.delay,this);},setValue:function(value){this.value=value;this.element.set('value',value);return this.clear();},onFired:function(){this.fireEvent('onFired',[this.value,this.element]);},clear:function(){$clear(this.timeout||null);return this;},pause:function(){$clear(this.timeout);$clear(this.timer);this.element.removeEvent('keyup',this.boundChange);return this;},resume:function(){this.value=this.element.get('value');if(this.options.periodical)this.timer=this.changed.periodical(this.options.periodical,this);else this.element.addEvent('keyup',this.boundChange);return this;}});var $equals=function(obj1,obj2){return(obj1==obj2||JSON.encode(obj1)==JSON.encode(obj2));};
var Autocompleter={};var OverlayFix=IframeShim;Autocompleter.Base=new Class({Implements:[Options,Events],options:{minLength:1,markQuery:true,width:'inherit',maxChoices:10,className:'autocompleter-choices',zIndex:42,delay:400,observerOptions:{},fxOptions:{},autoSubmit:false,overflow:false,overflowMargin:25,selectFirst:false,filter:null,filterCase:false,filterSubset:false,forceSelect:false,selectMode:true,choicesMatch:null,multiple:false,separator:', ',autoTrim:true,allowDupes:false,cache:true,relative:false},initialize:function(element,options){this.element=document.id(element);this.setOptions(options);this.options.separatorSplit=new RegExp("\s*["+this.options.separator.trim()+"]\s*/");this.build();this.observer=new Observer(this.element,this.prefetch.bind(this),$merge({'delay':this.options.delay},this.options.observerOptions));this.queryValue=null;if(this.options.filter)this.filter=this.options.filter.bind(this);var mode=this.options.selectMode;this.typeAhead=(mode=='type-ahead');this.selectMode=(mode===true)?'selection':mode;this.cached=[];},build:function(){if(document.id(this.options.customChoices)){this.choices=this.options.customChoices;}else{this.choices=new Element('ul',{'class':this.options.className,'styles':{'zIndex':this.options.zIndex}}).inject(document.body);this.relative=false;if(this.options.relative||this.element.getOffsetParent()!=document.body){this.choices.inject(this.element,'after');this.relative=this.element.getOffsetParent();}
this.fix=new OverlayFix(this.choices);}
if(!this.options.separator.test(this.options.separatorSplit)){this.options.separatorSplit=this.options.separator;}
this.fx=(!this.options.fxOptions)?null:new Fx.Tween(this.choices,$merge({'property':'opacity','link':'cancel','duration':200},this.options.fxOptions)).addEvent('onStart',Chain.prototype.clearChain).set(0);this.element.setProperty('autocomplete','off').addEvent((Browser.Engine.trident||Browser.Engine.webkit)?'keydown':'keypress',this.onCommand.bind(this)).addEvent('click',this.onCommand.bind(this,[false])).addEvent('focus',this.toggleFocus.create({bind:this,arguments:true,delay:100}));document.addEvent('click',function(e){if(e.target!=this.choices)this.toggleFocus(false);}.bind(this));},destroy:function(){if(this.fix)this.fix.dispose();this.choices=this.selected=this.choices.destroy();},toggleFocus:function(state){this.focussed=state;if(!state)this.hideChoices(true);this.fireEvent((state)?'onFocus':'onBlur',[this.element]);},onCommand:function(e){if(!e&&this.focussed)return this.prefetch();if(e&&e.key&&!e.shift){switch(e.key){case'enter':if(this.element.value!=this.opted)return true;if(this.selected&&this.visible){this.choiceSelect(this.selected);return!!(this.options.autoSubmit);}
break;case'up':case'down':if(!this.prefetch()&&this.queryValue!==null){var up=(e.key=='up');this.choiceOver((this.selected||this.choices)[(this.selected)?((up)?'getPrevious':'getNext'):((up)?'getLast':'getFirst')](this.options.choicesMatch),true);}
return false;case'esc':case'tab':this.hideChoices(true);break;}}
return true;},setSelection:function(finish){var input=this.selected.inputValue,value=input;var start=this.queryValue.length,end=input.length;if(input.substr(0,start).toLowerCase()!=this.queryValue.toLowerCase())start=0;if(this.options.multiple){var split=this.options.separatorSplit;value=this.element.value;start+=this.queryIndex;end+=this.queryIndex;var old=value.substr(this.queryIndex).split(split,1)[0];value=value.substr(0,this.queryIndex)+input+value.substr(this.queryIndex+old.length);if(finish){var space=/[^\s,]+/;var tokens=value.split(this.options.separatorSplit).filter(space.test,space);if(!this.options.allowDupes)tokens=[].combine(tokens);var sep=this.options.separator;value=tokens.join(sep)+sep;end=value.length;}}
this.observer.setValue(value);this.opted=value;if(finish||this.selectMode=='pick')start=end;this.element.selectRange(start,end);this.fireEvent('onSelection',[this.element,this.selected,value,input]);},showChoices:function(){var match=this.options.choicesMatch,first=this.choices.getFirst(match);this.selected=this.selectedValue=null;if(this.fix){var pos=this.element.getCoordinates(this.relative),width=this.options.width||'auto';this.choices.setStyles({'left':pos.left,'top':pos.bottom,'width':(width===true||width=='inherit')?pos.width:width});}
if(!first)return;if(!this.visible){this.visible=true;this.choices.setStyle('display','');if(this.fx)this.fx.start(1);this.fireEvent('onShow',[this.element,this.choices]);}
if(this.options.selectFirst||this.typeAhead||first.inputValue==this.queryValue)this.choiceOver(first,this.typeAhead);var items=this.choices.getChildren(match),max=this.options.maxChoices;var styles={'overflowY':'hidden','height':''};this.overflown=false;if(items.length>max){var item=items[max-1];styles.overflowY='scroll';styles.height=item.getCoordinates(this.choices).bottom;this.overflown=true;};this.choices.setStyles(styles);this.fix.show();},hideChoices:function(clear){if(clear){var value=this.element.value;if(this.options.forceSelect)value=this.opted;if(this.options.autoTrim){value=value.split(this.options.separatorSplit).filter($arguments(0)).join(this.options.separator);}
this.observer.setValue(value);}
if(!this.visible)return;this.visible=false;this.observer.clear();var hide=function(){this.choices.setStyle('display','none');this.fix.hide();}.bind(this);if(this.fx)this.fx.start(0).chain(hide);else hide();this.fireEvent('onHide',[this.element,this.choices]);},prefetch:function(){var value=this.element.value,query=value;if(this.options.multiple){var split=this.options.separatorSplit;var values=value.split(split);var index=this.element.getCaretPosition();var toIndex=value.substr(0,index).split(split);var last=toIndex.length-1;index-=toIndex[last].length;query=values[last];}
if(query.length<this.options.minLength){this.hideChoices();}else{if(query===this.queryValue||(this.visible&&query==this.selectedValue)){if(this.visible)return false;this.showChoices();}else{this.queryValue=query;this.queryIndex=index;if(!this.fetchCached())this.query();}}
return true;},fetchCached:function(){return false;if(!this.options.cache||!this.cached||!this.cached.length||this.cached.length>=this.options.maxChoices||this.queryValue)return false;this.update(this.filter(this.cached));return true;},update:function(tokens){this.choices.empty();this.cached=tokens;if(!tokens||!tokens.length){this.hideChoices();}else{if(this.options.maxChoices<tokens.length&&!this.options.overflow)tokens.length=this.options.maxChoices;tokens.each(this.options.injectChoice||function(token){var choice=new Element('li',{'html':this.markQueryValue(token)});choice.inputValue=token;this.addChoiceEvents(choice).inject(this.choices);},this);this.showChoices();}},choiceOver:function(choice,selection){if(!choice||choice==this.selected)return;if(this.selected)this.selected.removeClass('autocompleter-selected');this.selected=choice.addClass('autocompleter-selected');this.fireEvent('onSelect',[this.element,this.selected,selection]);if(!selection)return;this.selectedValue=this.selected.inputValue;if(this.overflown){var coords=this.selected.getCoordinates(this.choices),margin=this.options.overflowMargin,top=this.choices.scrollTop,height=this.choices.offsetHeight,bottom=top+height;if(coords.top-margin<top&&top)this.choices.scrollTop=Math.max(coords.top-margin,0);else if(coords.bottom+margin>bottom)this.choices.scrollTop=Math.min(coords.bottom-height+margin,bottom);}
if(this.selectMode)this.setSelection();},choiceSelect:function(choice){if(choice)this.choiceOver(choice);this.setSelection(true);this.queryValue=false;this.hideChoices();},filter:function(tokens){return(tokens||this.tokens).filter(function(token){return this.test(token);},new RegExp(((this.options.filterSubset)?'':'^')+this.queryValue.escapeRegExp(),(this.options.filterCase)?'':'i'));},markQueryValue:function(str){return(!this.options.markQuery||!this.queryValue)?str:str.replace(new RegExp('('+((this.options.filterSubset)?'':'^')+this.queryValue.escapeRegExp()+')',(this.options.filterCase)?'':'i'),'<span class="autocompleter-queried">$1</span>');},addChoiceEvents:function(el){return el.addEvents({'mouseover':this.choiceOver.bind(this,[el]),'click':this.choiceSelect.bind(this,[el])});}});
Autocompleter.Local=new Class({Extends:Autocompleter.Base,options:{minLength:0,delay:200},initialize:function(element,tokens,options){this.parent(element,options);this.tokens=tokens;},query:function(){this.update(this.filter());}});
Autocompleter.Ajax={};Autocompleter.Ajax.Base=new Class({Extends:Autocompleter.Base,options:{postVar:'value',postData:{},ajaxOptions:{},onRequest:$empty,onComplete:$empty},initialize:function(element,options){this.parent(element,options);var indicator=document.id(this.options.indicator);if(indicator){this.addEvents({'onRequest':indicator.show.bind(indicator),'onComplete':indicator.hide.bind(indicator)},true);}},query:function(){var data=$unlink(this.options.postData);data[this.options.postVar]=this.queryValue;this.fireEvent('onRequest',[this.element,this.request,data,this.queryValue]);this.request.send({'data':data});},queryResponse:function(){this.fireEvent('onComplete',[this.element,this.request,this.response]);}});Autocompleter.Ajax.Json=new Class({Extends:Autocompleter.Ajax.Base,initialize:function(el,url,options){this.parent(el,options);this.request=new Request.JSON($merge({'url':url,'link':'cancel'},this.options.ajaxOptions)).addEvent('onComplete',this.queryResponse.bind(this));},queryResponse:function(response){this.parent();this.update(response);}});Autocompleter.Ajax.Xhtml=new Class({Extends:Autocompleter.Ajax.Base,initialize:function(el,url,options){this.parent(el,options);this.request=new Request.HTML($merge({'url':url,'link':'cancel','update':this.choices},this.options.ajaxOptions)).addEvent('onComplete',this.queryResponse.bind(this));},queryResponse:function(tree,elements){this.parent();if(!elements||!elements.length){this.hideChoices();}else{this.choices.getChildren(this.options.choicesMatch).each(this.options.injectChoice||function(choice){var value=choice.innerHTML;choice.inputValue=value;this.addChoiceEvents(choice.set('html',this.markQueryValue(value)));},this);this.showChoices();}}});
(function(){Autocompleter.Base=Class.refactor(Autocompleter.Base,{initialize:function(a1,a2,a3){this.previous(a1,a2,a3);this.writeStyle();},writeStyle:function(){window.addEvent('domready',function(){if(document.id('AutocompleterCss'))return;new Element('link',{rel:'stylesheet',media:'screen',type:'text/css',href:(this.options.baseHref||Clientcide.assetLocation+'/autocompleter')+'/Autocompleter.css',id:'AutocompleterCss'}).inject(document.head);}.bind(this));}});})();
$extend(Browser,{getHost:function(url){return new URI(url).get('host');},getQueryStringValue:function(key,url){return new URI(url).getData(key);},getQueryStringValues:function(url){return new URI(url).getData();},getPort:function(url){return new URI(url).get('port');},redraw:function(element){var n=document.createTextNode(' ');this.adopt(n);(function(){n.dispose()}).delay(1);return this;}});window.addEvent('domready',function(){var count=0;function setQs(){function retry(){count++;if(count<20)setQs.delay(50);};try{if(!Browser.getQueryStringValues())retry();else Browser.qs=Browser.getQueryStringValues();}catch(e){retry();}}
setQs();});
$extend(Class.prototype,{refactor:function(props){this.prototype=Class.refactor(this,props).prototype;return this;}});
Number.implement({zeroise:function(length){return String(this).zeroise(length);}});String.implement({zeroise:function(length){return'0'.repeat(length-this.length)+this;}});Date.prototype.compare=Date.prototype.diff;Date.prototype.strftime=Date.prototype.format;
Element.Properties.inputValue={get:function(){switch(this.get('tag')){case'select':vals=this.getSelected().map(function(op){var v=$pick(op.get('value'),op.get('text'));return(v=="")?op.get('text'):v;});return this.get('multiple')?vals:vals[0];case'input':switch(this.get('type')){case'checkbox':return this.get('checked')?this.get('value'):false;case'radio':var checked;if(this.get('checked'))return this.get('value');document.id(this.getParent('form')||document.body).getElements('input').each(function(input){if(input.get('name')==this.get('name')&&input.get('checked'))checked=input.get('value');},this);return checked||null;}
case'input':case'textarea':return this.get('value');default:return this.get('inputValue');}},set:function(value){switch(this.get('tag')){case'select':this.getElements('option').each(function(op){var v=$pick(op.get('value'),op.get('text'));if(v=="")v=op.get('text');op.set('selected',$splat(value).contains(v));});break;case'input':if(['radio','checkbox'].contains(this.get('type'))){this.set('checked',$type(value)=="boolean"?value:$splat(value).contains(this.get('value')));break;}
case'textarea':case'input':this.set('value',value);break;default:this.set('inputValue',value);}
return this;},erase:function(){switch(this.get('tag')){case'select':this.getElements('option').each(function(op){op.erase('selected');});break;case'input':if(['radio','checkbox'].contains(this.get('type'))){this.set('checked',false);break;}
case'input':case'textarea':this.set('value','');break;default:this.set('inputValue','');}
return this;}};
Element.implement({autoMouseOvers:function(options){options=$extend({outString:'_out',overString:'_over',cssOver:'hover',cssOut:'hoverOut',subSelector:'',applyToBoth:false},options);el=this;if(options.subSelector){el=this.getElements(options.subSelector);if(el.every(function(kid){return kid.retrieve('autoMouseOverSetup');}))return this;}
el.store('autoMouseOverSetup',true);return el.addEvents({mouseenter:function(){this.swapClass(options.cssOut,options.cssOver);if(this.src&&this.src.contains(options.outString))
this.src=this.src.replace(options.outString,options.overString);if(options.applyToBoth&&options.subSelector){this.getElements(options.subSelector).each(function(el){el.swapClass(options.cssOut,options.cssOver);});}}.bind(this),mouseleave:function(){this.swapClass(options.cssOver,options.cssOut);if(this.src&&this.src.contains(options.overString))
this.src=this.src.replace(options.overString,options.outString);if(options.applyToBoth&&options.subSelector){this.getElements(options.subSelector).each(function(el){el.swapClass(options.cssOver,options.cssOut);});}}.bind(this)}).swapClass(options.cssOver,options.cssOut);el=null;}});window.addEvent('domready',function(){$$('img.autoMouseOver').each(function(img){img.autoMouseOvers();});});
(function(){var orig=Element.prototype.setPosition;Element.implement({setPosition:function(options){if(options&&($defined(options.x)||$defined(options.y)))return orig.apply(this,arguments);else return this.position(options);}});})();
Element.alias('isDisplayed','isVisible');
IframeShim=Class.refactor(IframeShim,{initialize:function(element,options){if(options&&options.zindex)options.zIndex=options.zindex;this.previous(element,options);}});
OverText=Class.refactor(OverText,{initialize:function(inputs,options){this.instances=[];if(['array','string'].contains($type(inputs))){this.setOptions(options);$$(inputs).each(this.addElement,this);}else{return this.previous.apply(this,arguments);}},addElement:function(el){this.instances.push(new OverText(el,this.options))},startPolling:function(){if(!this.instances||!this.instances.length)return this.previous.apply(this,arguments);this.instances.each(function(instance){instance.startPolling();});},stopPolling:function(){if(!this.instances.length)return this.previous.apply(this,arguments);this.instances.each(function(instance){instance.stopPolling();});},hideTxt:function(el){var ot=el.retrieve('OverText');if(ot)ot.hide();},showTxt:function(el){var ot=el.retrieve('OverText');if(ot)ot.show();},testOverTxt:function(el){var ot=el.retrieve('OverText');if(ot)ot.test();},repositionAll:function(){this.instances.each(function(instance){instance.reposition();});},repositionOverTxt:function(el){var ot=el.retrieve('OverText');if(ot)ot.reposition();}});
Request.Queue=Class.refactor(Request.Queue,{initialize:function(options){if(options){$each({onRequestStart:'onRequest',onRequestSuccess:'onSuccess',onRequestComplete:'onComplete',onRequestCancel:'onCancel',onRequestException:'onException',onRequestFailure:'onFailure'},function(value,key){if(options[key])options[value]=options[key];});}
this.previous(options);}});
String.implement({findAllEmails:function(){return this.match(new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?","gi"))||[];}});String.alias('parseQueryString','parseQuery');
var Waiter=new Class({Extends:Spinner,options:{baseHref:'http://www.cnet.com/html/rb/assets/global/waiter/',containerProps:{styles:{position:'absolute','text-align':'center'},'class':'waiterContainer'},containerPosition:{},msg:false,msgProps:{styles:{'text-align':'center',fontWeight:'bold'},'class':'waiterMsg'},img:{src:'waiter.gif',styles:{width:24,height:24},'class':'waiterImg'},layer:{styles:{width:0,height:0,position:'absolute',zIndex:999,display:'none',opacity:0.9,background:'#fff'},'class':'waitingDiv'},useIframeShim:true,fxOptions:{},injectWhere:null},render:function(){this.parent();this.waiterContainer=this.element.set(this.options.containerProps);if(this.msgContainer)this.msgContainer=this.content.set(this.options.msgProps);if(this.options.img)this.waiterImg=document.id(this.options.img.id)||new Element('img',$merge(this.options.img,{src:this.options.baseHref+this.options.img.src})).inject(this.img);this.element.set(this.options.layer);},place:function(){this.inject.apply(this,arguments);},reset:function(){return this.hide();},start:function(element){return this.show();},stop:function(callback){return this.hide();}});if(window.Request){Request=Class.refactor(Request,{options:{useWaiter:false,waiterOptions:{},waiterTarget:false},initialize:function(options){if(options){if(options.useWaiter)options.useSpinner=options.useWaiter;if(options.waiterOptions)options.spinnerOptions=options.waiterOptions;if(options.waiterTarget)options.spinnerTarget=options.waiterTarget;}
this.previous(options);}});}
Element.Properties.waiter={set:function(options){return this.set('spinner',options);},get:function(options){return this.get('spinner',options);}};Element.implement({wait:function(options){return this.spin(options);},release:function(){return this.unspin(options);}});
