//mootools base javascript (moo.base.js), cnet.base.js, cnet.global.utils.js
//see readme.txt in parent directory for details
//dbugScripts - will include non-compressed versions of this code if "jsdebug=true" is in the url of this page,
//otherwise it will execute this code.
//example: dbugScripts("/the/location/of/my/scripts/",["script1.js","script2.js","etc"])
//returns true if scripts are included, otherwise false.
function dbugScripts(baseurl,libs){var value=document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');var debugCookie=value?unescape(value[1]):false;if(window.location.href.indexOf("basePath=this")>0){var path=baseurl.substring(baseurl.substring(7,baseurl.length).indexOf("/")+8,baseurl.length);var href=window.location.href;baseurl=href.substring(href.substring(7,href.length).indexOf("/")+8,href.length)}if(window.location.href.indexOf("jsdebug=true")>0||window.location.href.indexOf("jsdebugCookie=true")>0||debugCookie=='true'){for(i=0;i<libs.length;i++){document.write("<scri"+"pt src=\""+baseurl+libs[i]+"\" type=\"text/javascript\"></script>")}return true}return false};
if(!dbugScripts("http://clientside.cnet.com/wp-content/themes/clientsidev2/js/",["clientside.moo.v1.1.js", "Debugger.cnet.js"])){
/*	clientside.moo.v1.1.packed.js - packed	*/

var dbug={logged:[],timers:{},firebug:false,debug:false,log:function(){dbug.logged.push(arguments)},nolog:function(a){dbug.logged.push(arguments)},time:function(a){dbug.timers[a]=new Date().getTime()},timeEnd:function(a){if(dbug.timers[a]){var b=new Date().getTime()-dbug.timers[a];dbug.timers[a]=false;dbug.log('%s: %s',a,b)}else dbug.log('no such timer: %s',a)},enable:function(){if(dbug.firebug){try{dbug.debug=true;dbug.log=console.debug||console.log;dbug.time=console.time;dbug.timeEnd=console.timeEnd;dbug.log('enabling dbug');for(var i=0;i<dbug.logged.length;i++){dbug.log.apply(console,dbug.logged[i])}dbug.logged=[]}catch(e){dbug.enable.delay(400)}}},disable:function(){if(dbug.firebug)dbug.debug=false;dbug.log=dbug.nolog;dbug.time=function(){};dbug.timeEnd=function(){}},cookie:function(a){var b=document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');var c=b?unescape(b[1]):false;if((c!='true'||a)&&!a){dbug.enable();dbug.log('setting debugging cookie');var d=new Date();d.setTime(d.getTime()+(24*60*60*1000));document.cookie='jsdebug=true;expires='+d.toGMTString()}else dbug.disableCookie()},disableCookie:function(){dbug.log('disabling debugging cookie');document.cookie='jsdebug=false'}};dbug.setMethods=function(){var c=typeof console!="undefined";var d=['debug','info','warn','error','assert','dir','dirxml'];var e=['trace','group','groupEnd','profile','profileEnd','count'];function set(a,b){for(var i=0;i<a.length;i++){dbug[a[i]]=(c&&console[a[i]])?console[a[i]]:b}};set(d,dbug.log);set(e,function(){})};dbug.setMethods();if(typeof console!="undefined"&&console.warn){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.debug)dbug.enable()}if(window.location.href.indexOf("jsdebugCookie=false")>0)dbug.disableCookie()}var MooTools={version:'1.11'};function $defined(a){return(a!=undefined)};function $type(a){if(!$defined(a))return false;if(a.htmlElement)return'element';var b=typeof a;if(b=='object'&&a.nodeName){switch(a.nodeType){case 1:return'element';case 3:return(/\S/).test(a.nodeValue)?'textnode':'whitespace'}}if(b=='object'||b=='function'){switch(a.constructor){case Array:return'array';case RegExp:return'regexp';case Class:return'class'}if(typeof a.length=='number'){if(a.item)return'collection';if(a.callee)return'arguments'}}return b};function $merge(){var a={};for(var i=0;i<arguments.length;i++){for(var b in arguments[i]){var c=arguments[i][b];var d=a[b];if(d&&$type(c)=='object'&&$type(d)=='object')a[b]=$merge(d,c);else a[b]=c}}return a};var $extend=function(){var a=arguments;if(!a[1])a=[this,a[0]];for(var b in a[1])a[0][b]=a[1][b];return a[0]};var $native=function(){for(var i=0,l=arguments.length;i<l;i++){arguments[i].extend=function(a){for(var b in a){if(!this.prototype[b])this.prototype[b]=a[b];if(!this[b])this[b]=$native.generic(b)}}}};$native.generic=function(b){return function(a){return this.prototype[b].apply(a,Array.prototype.slice.call(arguments,1))}};$native(Function,Array,String,Number);function $chk(a){return!!(a||a===0)};function $pick(a,b){return $defined(a)?a:b};function $random(a,b){return Math.floor(Math.random()*(b-a+1)+a)};function $time(){return new Date().getTime()};function $clear(a){clearTimeout(a);clearInterval(a);return null};var Abstract=function(a){a=a||{};a.extend=$extend;return a};var Window=new Abstract(window);var Document=new Abstract(document);document.head=document.getElementsByTagName('head')[0];window.xpath=!!(document.evaluate);if(window.ActiveXObject)window.ie=window[window.XMLHttpRequest?'ie7':'ie6']=true;else if(document.childNodes&&!document.all&&!navigator.taintEnabled)window.webkit=window[window.xpath?'webkit420':'webkit419']=true;else if(document.getBoxObjectFor!=null)window.gecko=true;window.khtml=window.webkit;Object.extend=$extend;if(typeof HTMLElement=='undefined'){var HTMLElement=function(){};if(window.webkit)document.createElement("iframe");HTMLElement.prototype=(window.webkit)?window["[[DOMElement.prototype]]"]:{}}HTMLElement.prototype.htmlElement=function(){};if(window.ie6)try{document.execCommand("BackgroundImageCache",false,true)}catch(e){};var Class=function(a){var b=function(){return(arguments[0]!==null&&this.initialize&&$type(this.initialize)=='function')?this.initialize.apply(this,arguments):this};$extend(b,this);b.prototype=a;b.constructor=Class;return b};Class.empty=function(){};Class.prototype={extend:function(a){var b=new this(null);for(var c in a){var d=b[c];b[c]=Class.Merge(d,a[c])}return new Class(b)},implement:function(){for(var i=0,l=arguments.length;i<l;i++)$extend(this.prototype,arguments[i])}};Class.Merge=function(a,b){if(a&&a!=b){var c=$type(b);if(c!=$type(a))return b;switch(c){case'function':var d=function(){this.parent=arguments.callee.parent;return b.apply(this,arguments)};d.parent=a;return d;case'object':return $merge(a,b)}}return b};var Chain=new Class({chain:function(a){this.chains=this.chains||[];this.chains.push(a);return this},callChain:function(){if(this.chains&&this.chains.length)this.chains.shift().delay(10,this)},clearChain:function(){this.chains=[]}});var Events=new Class({addEvent:function(a,b){if(b!=Class.empty){this.$events=this.$events||{};this.$events[a]=this.$events[a]||[];this.$events[a].include(b)}return this},fireEvent:function(b,c,d){if(this.$events&&this.$events[b]){this.$events[b].each(function(a){a.create({'bind':this,'delay':d,'arguments':c})()},this)}return this},removeEvent:function(a,b){if(this.$events&&this.$events[a])this.$events[a].remove(b);return this}});var Options=new Class({setOptions:function(){this.options=$merge.apply(null,[this.options].extend(arguments));if(this.addEvent){for(var a in this.options){if($type(this.options[a]=='function')&&(/^on[A-Z]/).test(a))this.addEvent(a,this.options[a])}}return this}});Array.extend({forEach:function(a,b){for(var i=0,j=this.length;i<j;i++)a.call(b,this[i],i,this)},filter:function(a,b){var c=[];for(var i=0,j=this.length;i<j;i++){if(a.call(b,this[i],i,this))c.push(this[i])}return c},map:function(a,b){var c=[];for(var i=0,j=this.length;i<j;i++)c[i]=a.call(b,this[i],i,this);return c},every:function(a,b){for(var i=0,j=this.length;i<j;i++){if(!a.call(b,this[i],i,this))return false}return true},some:function(a,b){for(var i=0,j=this.length;i<j;i++){if(a.call(b,this[i],i,this))return true}return false},indexOf:function(a,b){var c=this.length;for(var i=(b<0)?Math.max(0,c+b):b||0;i<c;i++){if(this[i]===a)return i}return-1},copy:function(a,b){a=a||0;if(a<0)a=this.length+a;b=b||(this.length-a);var c=[];for(var i=0;i<b;i++)c[i]=this[a++];return c},remove:function(a){var i=0;var b=this.length;while(i<b){if(this[i]===a){this.splice(i,1);b--}else{i++}}return this},contains:function(a,b){return this.indexOf(a,b)!=-1},associate:function(a){var b={},length=Math.min(this.length,a.length);for(var i=0;i<length;i++)b[a[i]]=this[i];return b},extend:function(a){for(var i=0,j=a.length;i<j;i++)this.push(a[i]);return this},merge:function(a){for(var i=0,l=a.length;i<l;i++)this.include(a[i]);return this},include:function(a){if(!this.contains(a))this.push(a);return this},getRandom:function(){return this[$random(0,this.length-1)]||null},getLast:function(){return this[this.length-1]||null}});Array.prototype.each=Array.prototype.forEach;Array.each=Array.forEach;function $A(a){return Array.copy(a)};function $each(a,b,c){if(a&&typeof a.length=='number'&&$type(a)!='object'){Array.forEach(a,b,c)}else{for(var d in a)b.call(c||a,a[d],d)}};Array.prototype.test=Array.prototype.contains;String.extend({test:function(a,b){return(($type(a)=='string')?new RegExp(a,b):a).test(this)},toInt:function(){return parseInt(this,10)},toFloat:function(){return parseFloat(this)},camelCase:function(){return this.replace(/-\D/g,function(a){return a.charAt(1).toUpperCase()})},hyphenate:function(){return this.replace(/\w[A-Z]/g,function(a){return(a.charAt(0)+'-'+a.charAt(1).toLowerCase())})},capitalize:function(){return this.replace(/\b[a-z]/g,function(a){return a.toUpperCase()})},trim:function(){return this.replace(/^\s+|\s+$/g,'')},clean:function(){return this.replace(/\s{2,}/g,' ').trim()},rgbToHex:function(a){var b=this.match(/\d{1,3}/g);return(b)?b.rgbToHex(a):false},hexToRgb:function(a){var b=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(b)?b.slice(1).hexToRgb(a):false},contains:function(a,s){return(s)?(s+this+s).indexOf(s+a+s)>-1:this.indexOf(a)>-1},escapeRegExp:function(){return this.replace(/([.*+?^${}()|[\]\/\\])/g,'\\$1')}});Array.extend({rgbToHex:function(a){if(this.length<3)return false;if(this.length==4&&this[3]==0&&!a)return'transparent';var b=[];for(var i=0;i<3;i++){var c=(this[i]-0).toString(16);b.push((c.length==1)?'0'+c:c)}return a?b:'#'+b.join('')},hexToRgb:function(a){if(this.length!=3)return false;var b=[];for(var i=0;i<3;i++){b.push(parseInt((this[i].length==1)?this[i]+this[i]:this[i],16))}return a?b:'rgb('+b.join(',')+')'}});Function.extend({create:function(d){var e=this;d=$merge({'bind':e,'event':false,'arguments':null,'delay':false,'periodical':false,'attempt':false},d);if($chk(d.arguments)&&$type(d.arguments)!='array')d.arguments=[d.arguments];return function(a){var b;if(d.event){a=a||window.event;b=[(d.event===true)?a:new d.event(a)];if(d.arguments)b.extend(d.arguments)}else b=d.arguments||arguments;var c=function(){return e.apply($pick(d.bind,e),b)};if(d.delay)return setTimeout(c,d.delay);if(d.periodical)return setInterval(c,d.periodical);if(d.attempt)try{return c()}catch(err){return false};return c()}},pass:function(a,b){return this.create({'arguments':a,'bind':b})},attempt:function(a,b){return this.create({'arguments':a,'bind':b,'attempt':true})()},bind:function(a,b){return this.create({'bind':a,'arguments':b})},bindAsEventListener:function(a,b){return this.create({'bind':a,'event':true,'arguments':b})},delay:function(a,b,c){return this.create({'delay':a,'bind':b,'arguments':c})()},periodical:function(a,b,c){return this.create({'periodical':a,'bind':b,'arguments':c})()}});Number.extend({toInt:function(){return parseInt(this)},toFloat:function(){return parseFloat(this)},limit:function(a,b){return Math.min(b,Math.max(a,this))},round:function(a){a=Math.pow(10,a||0);return Math.round(this*a)/a},times:function(a){for(var i=0;i<this;i++)a(i)}});var Element=new Class({initialize:function(a,b){if($type(a)=='string'){if(window.ie&&b&&(b.name||b.type)){var c=(b.name)?' name="'+b.name+'"':'';var d=(b.type)?' type="'+b.type+'"':'';delete b.name;delete b.type;a='<'+a+c+d+'>'}a=document.createElement(a)}a=$(a);return(!b||!a)?a:a.set(b)}});var Elements=new Class({initialize:function(a){return(a)?$extend(a,this):this}});Elements.extend=function(a){for(var b in a){this.prototype[b]=a[b];this[b]=$native.generic(b)}};function $(a){if(!a)return null;if(a.htmlElement)return Garbage.collect(a);if([window,document].contains(a))return a;var b=$type(a);if(b=='string'){a=document.getElementById(a);b=(a)?'element':false}if(b!='element')return null;if(a.htmlElement)return Garbage.collect(a);if(['object','embed'].contains(a.tagName.toLowerCase()))return a;$extend(a,Element.prototype);a.htmlElement=function(){};return Garbage.collect(a)};document.getElementsBySelector=document.getElementsByTagName;function $$(){var a=[];for(var i=0,j=arguments.length;i<j;i++){var b=arguments[i];switch($type(b)){case'element':a.push(b);case'boolean':break;case false:break;case'string':b=document.getElementsBySelector(b,true);default:a.extend(b)}}return $$.unique(a)};$$.unique=function(a){var b=[];for(var i=0,l=a.length;i<l;i++){if(a[i].$included)continue;var c=$(a[i]);if(c&&!c.$included){c.$included=true;b.push(c)}}for(var n=0,d=b.length;n<d;n++)b[n].$included=null;return new Elements(b)};Elements.Multi=function(d){return function(){var a=arguments;var b=[];var c=true;for(var i=0,j=this.length,returns;i<j;i++){returns=this[i][d].apply(this[i],a);if($type(returns)!='element')c=false;b.push(returns)};return(c)?$$.unique(b):b}};Element.extend=function(a){for(var b in a){HTMLElement.prototype[b]=a[b];Element.prototype[b]=a[b];Element[b]=$native.generic(b);var c=(Array.prototype[b])?b+'Elements':b;Elements.prototype[c]=Elements.Multi(b)}};Element.extend({set:function(a){for(var b in a){var c=a[b];switch(b){case'styles':this.setStyles(c);break;case'events':if(this.addEvents)this.addEvents(c);break;case'properties':this.setProperties(c);break;default:this.setProperty(b,c)}}return this},inject:function(a,b){a=$(a);switch(b){case'before':a.parentNode.insertBefore(this,a);break;case'after':var c=a.getNext();if(!c)a.parentNode.appendChild(this);else a.parentNode.insertBefore(this,c);break;case'top':var d=a.firstChild;if(d){a.insertBefore(this,d);break}default:a.appendChild(this)}return this},injectBefore:function(a){return this.inject(a,'before')},injectAfter:function(a){return this.inject(a,'after')},injectInside:function(a){return this.inject(a,'bottom')},injectTop:function(a){return this.inject(a,'top')},adopt:function(){var b=[];$each(arguments,function(a){b=b.concat(a)});$$(b).inject(this);return this},remove:function(){return this.parentNode.removeChild(this)},clone:function(a){var b=$(this.cloneNode(a!==false));if(!b.$events)return b;b.$events={};for(var c in this.$events)b.$events[c]={'keys':$A(this.$events[c].keys),'values':$A(this.$events[c].values)};return b.removeEvents()},replaceWith:function(a){a=$(a);this.parentNode.replaceChild(a,this);return a},appendText:function(a){this.appendChild(document.createTextNode(a));return this},hasClass:function(a){return this.className.contains(a,' ')},addClass:function(a){if(!this.hasClass(a))this.className=(this.className+' '+a).clean();return this},removeClass:function(a){this.className=this.className.replace(new RegExp('(^|\\s)'+a+'(?:\\s|$)'),'$1').clean();return this},toggleClass:function(a){return this.hasClass(a)?this.removeClass(a):this.addClass(a)},setStyle:function(a,b){switch(a){case'opacity':return this.setOpacity(parseFloat(b));case'float':a=(window.ie)?'styleFloat':'cssFloat'}a=a.camelCase();switch($type(b)){case'number':if(!['zIndex','zoom'].contains(a))b+='px';break;case'array':b='rgb('+b.join(',')+')'}this.style[a]=b;return this},setStyles:function(a){switch($type(a)){case'object':Element.setMany(this,'setStyle',a);break;case'string':this.style.cssText=a}return this},setOpacity:function(a){if(a==0){if(this.style.visibility!="hidden")this.style.visibility="hidden"}else{if(this.style.visibility!="visible")this.style.visibility="visible"}if(!this.currentStyle||!this.currentStyle.hasLayout)this.style.zoom=1;if(window.ie)this.style.filter=(a==1)?'':"alpha(opacity="+a*100+")";this.style.opacity=this.$tmp.opacity=a;return this},getStyle:function(b){b=b.camelCase();var c=this.style[b];if(!$chk(c)){if(b=='opacity')return this.$tmp.opacity;c=[];for(var d in Element.Styles){if(b==d){Element.Styles[d].each(function(s){var a=this.getStyle(s);c.push(parseInt(a)?a:'0px')},this);if(b=='border'){var e=c.every(function(a){return(a==c[0])});return(e)?c[0]:false}return c.join(' ')}}if(b.contains('border')){if(Element.Styles.border.contains(b)){return['Width','Style','Color'].map(function(p){return this.getStyle(b+p)},this).join(' ')}else if(Element.borderShort.contains(b)){return['Top','Right','Bottom','Left'].map(function(p){return this.getStyle('border'+p+b.replace('border',''))},this).join(' ')}}if(document.defaultView)c=document.defaultView.getComputedStyle(this,null).getPropertyValue(b.hyphenate());else if(this.currentStyle)c=this.currentStyle[b]}if(window.ie)c=Element.fixStyle(b,c,this);if(c&&b.test(/color/i)&&c.contains('rgb')){return c.split('rgb').splice(1,4).map(function(a){return a.rgbToHex()}).join(' ')}return c},getStyles:function(){return Element.getMany(this,'getStyle',arguments)},walk:function(a,b){a+='Sibling';var c=(b)?this[b]:this[a];while(c&&$type(c)!='element')c=c[a];return $(c)},getPrevious:function(){return this.walk('previous')},getNext:function(){return this.walk('next')},getFirst:function(){return this.walk('next','firstChild')},getLast:function(){return this.walk('previous','lastChild')},getParent:function(){return $(this.parentNode)},getChildren:function(){return $$(this.childNodes)},hasChild:function(a){return!!$A(this.getElementsByTagName('*')).contains(a)},getProperty:function(a){var b=Element.Properties[a];if(b)return this[b];var c=Element.PropertiesIFlag[a]||0;if(!window.ie||c)return this.getAttribute(a,c);var d=this.attributes[a];return(d)?d.nodeValue:null},removeProperty:function(a){var b=Element.Properties[a];if(b)this[b]='';else this.removeAttribute(a);return this},getProperties:function(){return Element.getMany(this,'getProperty',arguments)},setProperty:function(a,b){var c=Element.Properties[a];if(c)this[c]=b;else this.setAttribute(a,b);return this},setProperties:function(a){return Element.setMany(this,'setProperty',a)},setHTML:function(){this.innerHTML=$A(arguments).join('');return this},setText:function(a){var b=this.getTag();if(['style','script'].contains(b)){if(window.ie){if(b=='style')this.styleSheet.cssText=a;else if(b=='script')this.setProperty('text',a);return this}else{if(this.firstChild)this.removeChild(this.firstChild);return this.appendText(a)}}this[$defined(this.innerText)?'innerText':'textContent']=a;return this},getText:function(){var a=this.getTag();if(['style','script'].contains(a)){if(window.ie){if(a=='style')return this.styleSheet.cssText;else if(a=='script')return this.getProperty('text')}else{return this.innerHTML}}return($pick(this.innerText,this.textContent))},getTag:function(){return this.tagName.toLowerCase()},empty:function(){Garbage.trash(this.getElementsByTagName('*'));return this.setHTML('')}});Element.fixStyle=function(b,c,d){if($chk(parseInt(c)))return c;if(['height','width'].contains(b)){var e=(b=='width')?['left','right']:['top','bottom'];var f=0;e.each(function(a){f+=d.getStyle('border-'+a+'-width').toInt()+d.getStyle('padding-'+a).toInt()});return d['offset'+b.capitalize()]-f+'px'}else if(b.test(/border(.+)Width|margin|padding/)){return'0px'}return c};Element.Styles={'border':[],'padding':[],'margin':[]};['Top','Right','Bottom','Left'].each(function(a){for(var b in Element.Styles)Element.Styles[b].push(b+a)});Element.borderShort=['borderWidth','borderStyle','borderColor'];Element.getMany=function(b,c,d){var e={};$each(d,function(a){e[a]=b[c](a)});return e};Element.setMany=function(a,b,c){for(var d in c)a[b](d,c[d]);return a};Element.Properties=new Abstract({'class':'className','for':'htmlFor','colspan':'colSpan','rowspan':'rowSpan','accesskey':'accessKey','tabindex':'tabIndex','maxlength':'maxLength','readonly':'readOnly','frameborder':'frameBorder','value':'value','disabled':'disabled','checked':'checked','multiple':'multiple','selected':'selected'});Element.PropertiesIFlag={'href':2,'src':2};Element.Methods={Listeners:{addListener:function(a,b){if(this.addEventListener)this.addEventListener(a,b,false);else this.attachEvent('on'+a,b);return this},removeListener:function(a,b){if(this.removeEventListener)this.removeEventListener(a,b,false);else this.detachEvent('on'+a,b);return this}}};window.extend(Element.Methods.Listeners);document.extend(Element.Methods.Listeners);Element.extend(Element.Methods.Listeners);var Garbage={elements:[],collect:function(a){if(!a.$tmp){Garbage.elements.push(a);a.$tmp={'opacity':1}}return a},trash:function(a){for(var i=0,j=a.length,el;i<j;i++){if(!(el=a[i])||!el.$tmp)continue;if(el.$events)el.fireEvent('trash').removeEvents();for(var p in el.$tmp)el.$tmp[p]=null;for(var d in Element.prototype)el[d]=null;Garbage.elements[Garbage.elements.indexOf(el)]=null;el.htmlElement=el.$tmp=el=null}Garbage.elements.remove(null)},empty:function(){Garbage.collect(window);Garbage.collect(document);Garbage.trash(Garbage.elements)}};window.addListener('beforeunload',function(){window.addListener('unload',Garbage.empty);if(window.ie)window.addListener('unload',CollectGarbage)});var Event=new Class({initialize:function(a){if(a&&a.$extended)return a;this.$extended=true;a=a||window.event;this.event=a;this.type=a.type;this.target=a.target||a.srcElement;if(this.target.nodeType==3)this.target=this.target.parentNode;this.shift=a.shiftKey;this.control=a.ctrlKey;this.alt=a.altKey;this.meta=a.metaKey;if(['DOMMouseScroll','mousewheel'].contains(this.type)){this.wheel=(a.wheelDelta)?a.wheelDelta/120:-(a.detail||0)/3}else if(this.type.contains('key')){this.code=a.which||a.keyCode;for(var b in Event.keys){if(Event.keys[b]==this.code){this.key=b;break}}if(this.type=='keydown'){var c=this.code-111;if(c>0&&c<13)this.key='f'+c}this.key=this.key||String.fromCharCode(this.code).toLowerCase()}else if(this.type.test(/(click|mouse|menu)/)){this.page={'x':a.pageX||a.clientX+document.documentElement.scrollLeft,'y':a.pageY||a.clientY+document.documentElement.scrollTop};this.client={'x':a.pageX?a.pageX-window.pageXOffset:a.clientX,'y':a.pageY?a.pageY-window.pageYOffset:a.clientY};this.rightClick=(a.which==3)||(a.button==2);switch(this.type){case'mouseover':this.relatedTarget=a.relatedTarget||a.fromElement;break;case'mouseout':this.relatedTarget=a.relatedTarget||a.toElement}this.fixRelatedTarget()}return this},stop:function(){return this.stopPropagation().preventDefault()},stopPropagation:function(){if(this.event.stopPropagation)this.event.stopPropagation();else this.event.cancelBubble=true;return this},preventDefault:function(){if(this.event.preventDefault)this.event.preventDefault();else this.event.returnValue=false;return this}});Event.fix={relatedTarget:function(){if(this.relatedTarget&&this.relatedTarget.nodeType==3)this.relatedTarget=this.relatedTarget.parentNode},relatedTargetGecko:function(){try{Event.fix.relatedTarget.call(this)}catch(e){this.relatedTarget=this.target}}};Event.prototype.fixRelatedTarget=(window.gecko)?Event.fix.relatedTargetGecko:Event.fix.relatedTarget;Event.keys=new Abstract({'enter':13,'up':38,'down':40,'left':37,'right':39,'esc':27,'space':32,'backspace':8,'tab':9,'delete':46});Element.Methods.Events={addEvent:function(a,b){this.$events=this.$events||{};this.$events[a]=this.$events[a]||{'keys':[],'values':[]};if(this.$events[a].keys.contains(b))return this;this.$events[a].keys.push(b);var c=a;var d=Element.Events[a];if(d){if(d.add)d.add.call(this,b);if(d.map)b=d.map;if(d.type)c=d.type}if(!this.addEventListener)b=b.create({'bind':this,'event':true});this.$events[a].values.push(b);return(Element.NativeEvents.contains(c))?this.addListener(c,b):this},removeEvent:function(a,b){if(!this.$events||!this.$events[a])return this;var c=this.$events[a].keys.indexOf(b);if(c==-1)return this;var d=this.$events[a].keys.splice(c,1)[0];var e=this.$events[a].values.splice(c,1)[0];var f=Element.Events[a];if(f){if(f.remove)f.remove.call(this,b);if(f.type)a=f.type}return(Element.NativeEvents.contains(a))?this.removeListener(a,e):this},addEvents:function(a){return Element.setMany(this,'addEvent',a)},removeEvents:function(b){if(!this.$events)return this;if(!b){for(var c in this.$events)this.removeEvents(c);this.$events=null}else if(this.$events[b]){this.$events[b].keys.each(function(a){this.removeEvent(b,a)},this);this.$events[b]=null}return this},fireEvent:function(b,c,d){if(this.$events&&this.$events[b]){this.$events[b].keys.each(function(a){a.create({'bind':this,'delay':d,'arguments':c})()},this)}return this},cloneEvents:function(b,c){if(!b.$events)return this;if(!c){for(var d in b.$events)this.cloneEvents(b,d)}else if(b.$events[c]){b.$events[c].keys.each(function(a){this.addEvent(c,a)},this)}return this}};window.extend(Element.Methods.Events);document.extend(Element.Methods.Events);Element.extend(Element.Methods.Events);Element.Events=new Abstract({'mouseenter':{type:'mouseover',map:function(a){a=new Event(a);if(a.relatedTarget!=this&&!this.hasChild(a.relatedTarget))this.fireEvent('mouseenter',a)}},'mouseleave':{type:'mouseout',map:function(a){a=new Event(a);if(a.relatedTarget!=this&&!this.hasChild(a.relatedTarget))this.fireEvent('mouseleave',a)}},'mousewheel':{type:(window.gecko)?'DOMMouseScroll':'mousewheel'}});Element.NativeEvents=['click','dblclick','mouseup','mousedown','mousewheel','DOMMouseScroll','mouseover','mouseout','mousemove','keydown','keypress','keyup','load','unload','beforeunload','resize','move','focus','blur','change','submit','reset','select','error','abort','contextmenu','scroll'];Function.extend({bindWithEvent:function(a,b){return this.create({'bind':a,'arguments':b,'event':Event})}});Elements.extend({filterByTag:function(b){return new Elements(this.filter(function(a){return(Element.getTag(a)==b)}))},filterByClass:function(b,c){var d=this.filter(function(a){return(a.className&&a.className.contains(b,' '))});return(c)?d:new Elements(d)},filterById:function(b,c){var d=this.filter(function(a){return(a.id==b)});return(c)?d:new Elements(d)},filterByAttribute:function(c,d,e,f){var g=this.filter(function(a){var b=Element.getProperty(a,c);if(!b)return false;if(!d)return true;switch(d){case'=':return(b==e);case'*=':return(b.contains(e));case'^=':return(b.substr(0,e.length)==e);case'$=':return(b.substr(b.length-e.length)==e);case'!=':return(b!=e);case'~=':return b.contains(e,' ')}return false});return(f)?g:new Elements(g)}});function $E(a,b){return($(b)||document).getElement(a)};function $ES(a,b){return($(b)||document).getElementsBySelector(a)};$$.shared={'regexp':/^(\w*|\*)(?:#([\w-]+)|\.([\w-]+))?(?:\[(\w+)(?:([!*^$]?=)["']?([^"'\]]*)["']?)?])?$/,'xpath':{getParam:function(a,b,c,i){var d=[b.namespaceURI?'xhtml:':'',c[1]];if(c[2])d.push('[@id="',c[2],'"]');if(c[3])d.push('[contains(concat(" ", @class, " "), " ',c[3],' ")]');if(c[4]){if(c[5]&&c[6]){switch(c[5]){case'*=':d.push('[contains(@',c[4],', "',c[6],'")]');break;case'^=':d.push('[starts-with(@',c[4],', "',c[6],'")]');break;case'$=':d.push('[substring(@',c[4],', string-length(@',c[4],') - ',c[6].length,' + 1) = "',c[6],'"]');break;case'=':d.push('[@',c[4],'="',c[6],'"]');break;case'!=':d.push('[@',c[4],'!="',c[6],'"]')}}else{d.push('[@',c[4],']')}}a.push(d.join(''));return a},getItems:function(a,b,c){var d=[];var e=document.evaluate('.//'+a.join('//'),b,$$.shared.resolver,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,j=e.snapshotLength;i<j;i++)d.push(e.snapshotItem(i));return(c)?d:new Elements(d.map($))}},'normal':{getParam:function(a,b,c,i){if(i==0){if(c[2]){var d=b.getElementById(c[2]);if(!d||((c[1]!='*')&&(Element.getTag(d)!=c[1])))return false;a=[d]}else{a=$A(b.getElementsByTagName(c[1]))}}else{a=$$.shared.getElementsByTagName(a,c[1]);if(c[2])a=Elements.filterById(a,c[2],true)}if(c[3])a=Elements.filterByClass(a,c[3],true);if(c[4])a=Elements.filterByAttribute(a,c[4],c[5],c[6],true);return a},getItems:function(a,b,c){return(c)?a:$$.unique(a)}},resolver:function(a){return(a=='xhtml')?'http://www.w3.org/1999/xhtml':false},getElementsByTagName:function(a,b){var c=[];for(var i=0,j=a.length;i<j;i++)c.extend(a[i].getElementsByTagName(b));return c}};$$.shared.method=(window.xpath)?'xpath':'normal';Element.Methods.Dom={getElements:function(a,b){var c=[];a=a.trim().split(' ');for(var i=0,j=a.length;i<j;i++){var d=a[i];var e=d.match($$.shared.regexp);if(!e)break;e[1]=e[1]||'*';var f=$$.shared[$$.shared.method].getParam(c,this,e,i);if(!f)break;c=f}return $$.shared[$$.shared.method].getItems(c,this,b)},getElement:function(a){return $(this.getElements(a,true)[0]||false)},getElementsBySelector:function(a,b){var c=[];a=a.split(',');for(var i=0,j=a.length;i<j;i++)c=c.concat(this.getElements(a[i],true));return(b)?c:$$.unique(c)}};Element.extend({getElementById:function(a){var b=document.getElementById(a);if(!b)return false;for(var c=b.parentNode;c!=this;c=c.parentNode){if(!c)return false}return b},getElementsByClassName:function(a){return this.getElements('.'+a)}});document.extend(Element.Methods.Dom);Element.extend(Element.Methods.Dom);Element.extend({getValue:function(){switch(this.getTag()){case'select':var b=[];$each(this.options,function(a){if(a.selected)b.push($pick(a.value,a.text))});return(this.multiple)?b:b[0];case'input':if(!(this.checked&&['checkbox','radio'].contains(this.type))&&!['hidden','text','password'].contains(this.type))break;case'textarea':return this.value}return false},getFormElements:function(){return $$(this.getElementsByTagName('input'),this.getElementsByTagName('select'),this.getElementsByTagName('textarea'))},toQueryString:function(){var f=[];this.getFormElements().each(function(b){var c=b.name;var d=b.getValue();if(d===false||!c||b.disabled)return;var e=function(a){f.push(c+'='+encodeURIComponent(a))};if($type(d)=='array')d.each(e);else e(d)});return f.join('&')}});Element.extend({scrollTo:function(x,y){this.scrollLeft=x;this.scrollTop=y},getSize:function(){return{'scroll':{'x':this.scrollLeft,'y':this.scrollTop},'size':{'x':this.offsetWidth,'y':this.offsetHeight},'scrollSize':{'x':this.scrollWidth,'y':this.scrollHeight}}},getPosition:function(b){b=b||[];var c=this,left=0,top=0;do{left+=c.offsetLeft||0;top+=c.offsetTop||0;c=c.offsetParent}while(c);b.each(function(a){left-=a.scrollLeft||0;top-=a.scrollTop||0});return{'x':left,'y':top}},getTop:function(a){return this.getPosition(a).y},getLeft:function(a){return this.getPosition(a).x},getCoordinates:function(a){var b=this.getPosition(a);var c={'width':this.offsetWidth,'height':this.offsetHeight,'left':b.x,'top':b.y};c.right=c.left+c.width;c.bottom=c.top+c.height;return c}});Element.Events.domready={add:function(a){if(window.loaded){a.call(this);return}var b=function(){if(window.loaded)return;window.loaded=true;window.timer=$clear(window.timer);this.fireEvent('domready')}.bind(this);if(document.readyState&&window.webkit){window.timer=function(){if(['loaded','complete'].contains(document.readyState))b()}.periodical(50)}else if(document.readyState&&window.ie){if(!$('ie_ready')){var c=(window.location.protocol=='https:')?'://0':'javascript:void(0)';document.write('<script id="ie_ready" defer src="'+c+'"><\/script>');$('ie_ready').onreadystatechange=function(){if(this.readyState=='complete')b()}}}else{window.addListener("load",b);document.addListener("DOMContentLoaded",b)}}};window.onDomReady=function(a){return this.addEvent('domready',a)};window.extend({getWidth:function(){if(this.webkit419)return this.innerWidth;if(this.opera)return document.body.clientWidth;return document.documentElement.clientWidth},getHeight:function(){if(this.webkit419)return this.innerHeight;if(this.opera)return document.body.clientHeight;return document.documentElement.clientHeight},getScrollWidth:function(){if(this.ie)return Math.max(document.documentElement.offsetWidth,document.documentElement.scrollWidth);if(this.webkit)return document.body.scrollWidth;return document.documentElement.scrollWidth},getScrollHeight:function(){if(this.ie)return Math.max(document.documentElement.offsetHeight,document.documentElement.scrollHeight);if(this.webkit)return document.body.scrollHeight;return document.documentElement.scrollHeight},getScrollLeft:function(){return this.pageXOffset||document.documentElement.scrollLeft},getScrollTop:function(){return this.pageYOffset||document.documentElement.scrollTop},getSize:function(){return{'size':{'x':this.getWidth(),'y':this.getHeight()},'scrollSize':{'x':this.getScrollWidth(),'y':this.getScrollHeight()},'scroll':{'x':this.getScrollLeft(),'y':this.getScrollTop()}}},getPosition:function(){return{'x':0,'y':0}}});var Fx={};Fx.Base=new Class({options:{onStart:Class.empty,onComplete:Class.empty,onCancel:Class.empty,transition:function(p){return-(Math.cos(Math.PI*p)-1)/2},duration:500,unit:'px',wait:true,fps:50},initialize:function(a){this.element=this.element||null;this.setOptions(a);if(this.options.initialize)this.options.initialize.call(this)},step:function(){var a=$time();if(a<this.time+this.options.duration){this.delta=this.options.transition((a-this.time)/this.options.duration);this.setNow();this.increase()}else{this.stop(true);this.set(this.to);this.fireEvent('onComplete',this.element,10);this.callChain()}},set:function(a){this.now=a;this.increase();return this},setNow:function(){this.now=this.compute(this.from,this.to)},compute:function(a,b){return(b-a)*this.delta+a},start:function(a,b){if(!this.options.wait)this.stop();else if(this.timer)return this;this.from=a;this.to=b;this.change=this.to-this.from;this.time=$time();this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);this.fireEvent('onStart',this.element);return this},stop:function(a){if(!this.timer)return this;this.timer=$clear(this.timer);if(!a)this.fireEvent('onCancel',this.element);return this},custom:function(a,b){return this.start(a,b)},clearTimer:function(a){return this.stop(a)}});Fx.Base.implement(new Chain,new Events,new Options);Fx.CSS={select:function(a,b){if(a.test(/color/i))return this.Color;var c=$type(b);if((c=='array')||(c=='string'&&b.contains(' ')))return this.Multi;return this.Single},parse:function(a,b,c){if(!c.push)c=[c];var d=c[0],to=c[1];if(!$chk(to)){to=d;d=a.getStyle(b)}var e=this.select(b,to);return{'from':e.parse(d),'to':e.parse(to),'css':e}}};Fx.CSS.Single={parse:function(a){return parseFloat(a)},getNow:function(a,b,c){return c.compute(a,b)},getValue:function(a,b,c){if(b=='px'&&c!='opacity')a=Math.round(a);return a+b}};Fx.CSS.Multi={parse:function(a){return a.push?a:a.split(' ').map(function(v){return parseFloat(v)})},getNow:function(a,b,c){var d=[];for(var i=0;i<a.length;i++)d[i]=c.compute(a[i],b[i]);return d},getValue:function(a,b,c){if(b=='px'&&c!='opacity')a=a.map(Math.round);return a.join(b+' ')+b}};Fx.CSS.Color={parse:function(a){return a.push?a:a.hexToRgb(true)},getNow:function(a,b,c){var d=[];for(var i=0;i<a.length;i++)d[i]=Math.round(c.compute(a[i],b[i]));return d},getValue:function(a){return'rgb('+a.join(',')+')'}};Fx.Style=Fx.Base.extend({initialize:function(a,b,c){this.element=$(a);this.property=b;this.parent(c)},hide:function(){return this.set(0)},setNow:function(){this.now=this.css.getNow(this.from,this.to,this)},set:function(a){this.css=Fx.CSS.select(this.property,a);return this.parent(this.css.parse(a))},start:function(a,b){if(this.timer&&this.options.wait)return this;var c=Fx.CSS.parse(this.element,this.property,[a,b]);this.css=c.css;return this.parent(c.from,c.to)},increase:function(){this.element.setStyle(this.property,this.css.getValue(this.now,this.options.unit,this.property))}});Element.extend({effect:function(a,b){return new Fx.Style(this,a,b)}});Fx.Styles=Fx.Base.extend({initialize:function(a,b){this.element=$(a);this.parent(b)},setNow:function(){for(var p in this.from)this.now[p]=this.css[p].getNow(this.from[p],this.to[p],this)},set:function(a){var b={};this.css={};for(var p in a){this.css[p]=Fx.CSS.select(p,a[p]);b[p]=this.css[p].parse(a[p])}return this.parent(b)},start:function(a){if(this.timer&&this.options.wait)return this;this.now={};this.css={};var b={},to={};for(var p in a){var c=Fx.CSS.parse(this.element,p,a[p]);b[p]=c.from;to[p]=c.to;this.css[p]=c.css}return this.parent(b,to)},increase:function(){for(var p in this.now)this.element.setStyle(p,this.css[p].getValue(this.now[p],this.options.unit,p))}});Element.extend({effects:function(a){return new Fx.Styles(this,a)}});Fx.Elements=Fx.Base.extend({initialize:function(a,b){this.elements=$$(a);this.parent(b)},setNow:function(){for(var i in this.from){var a=this.from[i],iTo=this.to[i],iCss=this.css[i],iNow=this.now[i]={};for(var p in a)iNow[p]=iCss[p].getNow(a[p],iTo[p],this)}},set:function(a){var b={};this.css={};for(var i in a){var c=a[i],iCss=this.css[i]={},iParsed=b[i]={};for(var p in c){iCss[p]=Fx.CSS.select(p,c[p]);iParsed[p]=iCss[p].parse(c[p])}}return this.parent(b)},start:function(a){if(this.timer&&this.options.wait)return this;this.now={};this.css={};var b={},to={};for(var i in a){var c=a[i],iFrom=b[i]={},iTo=to[i]={},iCss=this.css[i]={};for(var p in c){var d=Fx.CSS.parse(this.elements[i],p,c[p]);iFrom[p]=d.from;iTo[p]=d.to;iCss[p]=d.css}}return this.parent(b,to)},increase:function(){for(var i in this.now){var a=this.now[i],iCss=this.css[i];for(var p in a)this.elements[i].setStyle(p,iCss[p].getValue(a[p],this.options.unit,p))}}});Fx.Scroll=Fx.Base.extend({options:{overflown:[],offset:{'x':0,'y':0},wheelStops:true},initialize:function(a,b){this.now=[];this.element=$(a);this.bound={'stop':this.stop.bind(this,false)};this.parent(b);if(this.options.wheelStops){this.addEvent('onStart',function(){document.addEvent('mousewheel',this.bound.stop)}.bind(this));this.addEvent('onComplete',function(){document.removeEvent('mousewheel',this.bound.stop)}.bind(this))}},setNow:function(){for(var i=0;i<2;i++)this.now[i]=this.compute(this.from[i],this.to[i])},scrollTo:function(x,y){if(this.timer&&this.options.wait)return this;var a=this.element.getSize();var b={'x':x,'y':y};for(var z in a.size){var c=a.scrollSize[z]-a.size[z];if($chk(b[z]))b[z]=($type(b[z])=='number')?b[z].limit(0,c):c;else b[z]=a.scroll[z];b[z]+=this.options.offset[z]}return this.start([a.scroll.x,a.scroll.y],[b.x,b.y])},toTop:function(){return this.scrollTo(false,0)},toBottom:function(){return this.scrollTo(false,'full')},toLeft:function(){return this.scrollTo(0,false)},toRight:function(){return this.scrollTo('full',false)},toElement:function(a){var b=this.element.getPosition(this.options.overflown);var c=$(a).getPosition(this.options.overflown);return this.scrollTo(c.x-b.x,c.y-b.y)},increase:function(){this.element.scrollTo(this.now[0],this.now[1])}});Fx.Slide=Fx.Base.extend({options:{mode:'vertical'},initialize:function(a,b){this.element=$(a);this.wrapper=new Element('div',{'styles':$extend(this.element.getStyles('margin'),{'overflow':'hidden'})}).injectAfter(this.element).adopt(this.element);this.element.setStyle('margin',0);this.setOptions(b);this.now=[];this.parent(this.options);this.open=true;this.addEvent('onComplete',function(){this.open=(this.now[0]===0)});if(window.webkit419)this.addEvent('onComplete',function(){if(this.open)this.element.remove().inject(this.wrapper)})},setNow:function(){for(var i=0;i<2;i++)this.now[i]=this.compute(this.from[i],this.to[i])},vertical:function(){this.margin='margin-top';this.layout='height';this.offset=this.element.offsetHeight},horizontal:function(){this.margin='margin-left';this.layout='width';this.offset=this.element.offsetWidth},slideIn:function(a){this[a||this.options.mode]();return this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[0,this.offset])},slideOut:function(a){this[a||this.options.mode]();return this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[-this.offset,0])},hide:function(a){this[a||this.options.mode]();this.open=false;return this.set([-this.offset,0])},show:function(a){this[a||this.options.mode]();this.open=true;return this.set([0,this.offset])},toggle:function(a){if(this.wrapper.offsetHeight==0||this.wrapper.offsetWidth==0)return this.slideIn(a);return this.slideOut(a)},increase:function(){this.element.setStyle(this.margin,this.now[0]+this.options.unit);this.wrapper.setStyle(this.layout,this.now[1]+this.options.unit)}});Fx.Transition=function(b,c){c=c||[];if($type(c)!='array')c=[c];return $extend(b,{easeIn:function(a){return b(a,c)},easeOut:function(a){return 1-b(1-a,c)},easeInOut:function(a){return(a<=0.5)?b(2*a,c)/2:(2-b(2*(1-a),c))/2}})};Fx.Transitions=new Abstract({linear:function(p){return p}});Fx.Transitions.extend=function(a){for(var b in a){Fx.Transitions[b]=new Fx.Transition(a[b]);Fx.Transitions.compat(b)}};Fx.Transitions.compat=function(b){['In','Out','InOut'].each(function(a){Fx.Transitions[b.toLowerCase()+a]=Fx.Transitions[b]['ease'+a]})};Fx.Transitions.extend({Pow:function(p,x){return Math.pow(p,x[0]||6)},Expo:function(p){return Math.pow(2,8*(p-1))},Circ:function(p){return 1-Math.sin(Math.acos(p))},Sine:function(p){return 1-Math.sin((1-p)*Math.PI/2)},Back:function(p,x){x=x[0]||1.618;return Math.pow(p,2)*((x+1)*p-x)},Bounce:function(p){var c;for(var a=0,b=1;1;a+=b,b/=2){if(p>=(7-4*a)/11){c=-Math.pow((11-6*a-11*p)/4,2)+b*b;break}}return c},Elastic:function(p,x){return Math.pow(2,10*--p)*Math.cos(20*p*Math.PI*(x[0]||1)/3)}});['Quad','Cubic','Quart','Quint'].each(function(a,i){Fx.Transitions[a]=new Fx.Transition(function(p){return Math.pow(p,[i+2])});Fx.Transitions.compat(a)});var Drag={};Drag.Base=new Class({options:{handle:false,unit:'px',onStart:Class.empty,onBeforeStart:Class.empty,onComplete:Class.empty,onSnap:Class.empty,onDrag:Class.empty,limit:false,modifiers:{x:'left',y:'top'},grid:false,snap:6},initialize:function(a,b){this.setOptions(b);this.element=$(a);this.handle=$(this.options.handle)||this.element;this.mouse={'now':{},'pos':{}};this.value={'start':{},'now':{}};this.bound={'start':this.start.bindWithEvent(this),'check':this.check.bindWithEvent(this),'drag':this.drag.bindWithEvent(this),'stop':this.stop.bind(this)};this.attach();if(this.options.initialize)this.options.initialize.call(this)},attach:function(){this.handle.addEvent('mousedown',this.bound.start);return this},detach:function(){this.handle.removeEvent('mousedown',this.bound.start);return this},start:function(a){this.fireEvent('onBeforeStart',this.element);this.mouse.start=a.page;var b=this.options.limit;this.limit={'x':[],'y':[]};for(var z in this.options.modifiers){if(!this.options.modifiers[z])continue;this.value.now[z]=this.element.getStyle(this.options.modifiers[z]).toInt();this.mouse.pos[z]=a.page[z]-this.value.now[z];if(b&&b[z]){for(var i=0;i<2;i++){if($chk(b[z][i]))this.limit[z][i]=($type(b[z][i])=='function')?b[z][i]():b[z][i]}}}if($type(this.options.grid)=='number')this.options.grid={'x':this.options.grid,'y':this.options.grid};document.addListener('mousemove',this.bound.check);document.addListener('mouseup',this.bound.stop);this.fireEvent('onStart',this.element);a.stop()},check:function(a){var b=Math.round(Math.sqrt(Math.pow(a.page.x-this.mouse.start.x,2)+Math.pow(a.page.y-this.mouse.start.y,2)));if(b>this.options.snap){document.removeListener('mousemove',this.bound.check);document.addListener('mousemove',this.bound.drag);this.drag(a);this.fireEvent('onSnap',this.element)}a.stop()},drag:function(a){this.out=false;this.mouse.now=a.page;for(var z in this.options.modifiers){if(!this.options.modifiers[z])continue;this.value.now[z]=this.mouse.now[z]-this.mouse.pos[z];if(this.limit[z]){if($chk(this.limit[z][1])&&(this.value.now[z]>this.limit[z][1])){this.value.now[z]=this.limit[z][1];this.out=true}else if($chk(this.limit[z][0])&&(this.value.now[z]<this.limit[z][0])){this.value.now[z]=this.limit[z][0];this.out=true}}if(this.options.grid[z])this.value.now[z]-=(this.value.now[z]%this.options.grid[z]);this.element.setStyle(this.options.modifiers[z],this.value.now[z]+this.options.unit)}this.fireEvent('onDrag',this.element);a.stop()},stop:function(){document.removeListener('mousemove',this.bound.check);document.removeListener('mousemove',this.bound.drag);document.removeListener('mouseup',this.bound.stop);this.fireEvent('onComplete',this.element)}});Drag.Base.implement(new Events,new Options);Element.extend({makeResizable:function(a){return new Drag.Base(this,$merge({modifiers:{x:'width',y:'height'}},a))}});Drag.Move=Drag.Base.extend({options:{droppables:[],container:false,overflown:[]},initialize:function(a,b){this.setOptions(b);this.element=$(a);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);this.position={'element':this.element.getStyle('position'),'container':false};if(this.container)this.position.container=this.container.getStyle('position');if(!['relative','absolute','fixed'].contains(this.position.element))this.position.element='absolute';var c=this.element.getStyle('top').toInt();var d=this.element.getStyle('left').toInt();if(this.position.element=='absolute'&&!['relative','absolute','fixed'].contains(this.position.container)){c=$chk(c)?c:this.element.getTop(this.options.overflown);d=$chk(d)?d:this.element.getLeft(this.options.overflown)}else{c=$chk(c)?c:0;d=$chk(d)?d:0}this.element.setStyles({'top':c,'left':d,'position':this.position.element});this.parent(this.element)},start:function(a){this.overed=null;if(this.container){var b=this.container.getCoordinates();var c=this.element.getCoordinates();if(this.position.element=='absolute'&&!['relative','absolute','fixed'].contains(this.position.container)){this.options.limit={'x':[b.left,b.right-c.width],'y':[b.top,b.bottom-c.height]}}else{this.options.limit={'y':[0,b.height-c.height],'x':[0,b.width-c.width]}}}this.parent(a)},drag:function(a){this.parent(a);var b=this.out?false:this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=b){if(this.overed)this.overed.fireEvent('leave',[this.element,this]);this.overed=b?b.fireEvent('over',[this.element,this]):null}return this},checkAgainst:function(a){a=a.getCoordinates(this.options.overflown);var b=this.mouse.now;return(b.x>a.left&&b.x<a.right&&b.y<a.bottom&&b.y>a.top)},stop:function(){if(this.overed&&!this.out)this.overed.fireEvent('drop',[this.element,this]);else this.element.fireEvent('emptydrop',this);this.parent();return this}});Element.extend({makeDraggable:function(a){return new Drag.Move(this,a)}});var XHR=new Class({options:{method:'post',async:true,onRequest:Class.empty,onSuccess:Class.empty,onFailure:Class.empty,urlEncoded:true,encoding:'utf-8',autoCancel:false,headers:{}},setTransport:function(){this.transport=(window.XMLHttpRequest)?new XMLHttpRequest():(window.ie?new ActiveXObject('Microsoft.XMLHTTP'):false);return this},initialize:function(a){this.setTransport().setOptions(a);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers={};if(this.options.urlEncoded&&this.options.method=='post'){var b=(this.options.encoding)?'; charset='+this.options.encoding:'';this.setHeader('Content-type','application/x-www-form-urlencoded'+b)}if(this.options.initialize)this.options.initialize.call(this)},onStateChange:function(){if(this.transport.readyState!=4||!this.running)return;this.running=false;var a=0;try{a=this.transport.status}catch(e){};if(this.options.isSuccess.call(this,a))this.onSuccess();else this.onFailure();this.transport.onreadystatechange=Class.empty},isSuccess:function(a){return((a>=200)&&(a<300))},onSuccess:function(){this.response={'text':this.transport.responseText,'xml':this.transport.responseXML};this.fireEvent('onSuccess',[this.response.text,this.response.xml]);this.callChain()},onFailure:function(){this.fireEvent('onFailure',this.transport)},setHeader:function(a,b){this.headers[a]=b;return this},send:function(a,b){if(this.options.autoCancel)this.cancel();else if(this.running)return this;this.running=true;if(b&&this.options.method=='get'){a=a+(a.contains('?')?'&':'?')+b;b=null}this.transport.open(this.options.method.toUpperCase(),a,this.options.async);this.transport.onreadystatechange=this.onStateChange.bind(this);if((this.options.method=='post')&&this.transport.overrideMimeType)this.setHeader('Connection','close');$extend(this.headers,this.options.headers);for(var c in this.headers)try{this.transport.setRequestHeader(c,this.headers[c])}catch(e){};this.fireEvent('onRequest');this.transport.send($pick(b,null));return this},cancel:function(){if(!this.running)return this;this.running=false;this.transport.abort();this.transport.onreadystatechange=Class.empty;this.setTransport();this.fireEvent('onCancel');return this}});XHR.implement(new Chain,new Events,new Options);var Ajax=XHR.extend({options:{data:null,update:null,onComplete:Class.empty,evalScripts:false,evalResponse:false},initialize:function(a,b){this.addEvent('onSuccess',this.onComplete);this.setOptions(b);this.options.data=this.options.data||this.options.postBody;if(!['post','get'].contains(this.options.method)){this._method='_method='+this.options.method;this.options.method='post'}this.parent();this.setHeader('X-Requested-With','XMLHttpRequest');this.setHeader('Accept','text/javascript, text/html, application/xml, text/xml, */*');this.url=a},onComplete:function(){if(this.options.update)$(this.options.update).empty().setHTML(this.response.text);if(this.options.evalScripts||this.options.evalResponse)this.evalScripts();this.fireEvent('onComplete',[this.response.text,this.response.xml],20)},request:function(a){a=a||this.options.data;switch($type(a)){case'element':a=$(a).toQueryString();break;case'object':a=Object.toQueryString(a)}if(this._method)a=(a)?[this._method,a].join('&'):this._method;return this.send(this.url,a)},evalScripts:function(){var a,scripts;if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader('Content-type')))scripts=this.response.text;else{scripts=[];var b=/<script[^>]*>([\s\S]*?)<\/script>/gi;while((a=b.exec(this.response.text)))scripts.push(a[1]);scripts=scripts.join('\n')}if(scripts)(window.execScript)?window.execScript(scripts):window.setTimeout(scripts,0)},getHeader:function(a){try{return this.transport.getResponseHeader(a)}catch(e){};return null}});Object.toQueryString=function(a){var b=[];for(var c in a)b.push(encodeURIComponent(c)+'='+encodeURIComponent(a[c]));return b.join('&')};Element.extend({send:function(a){return new Ajax(this.getProperty('action'),$merge({data:this.toQueryString()},a,{method:'post'})).request()}});var Cookie=new Abstract({options:{domain:false,path:false,duration:false,secure:false},set:function(a,b,c){c=$merge(this.options,c);b=encodeURIComponent(b);if(c.domain)b+='; domain='+c.domain;if(c.path)b+='; path='+c.path;if(c.duration){var d=new Date();d.setTime(d.getTime()+c.duration*24*60*60*1000);b+='; expires='+d.toGMTString()}if(c.secure)b+='; secure';document.cookie=a+'='+b;return $extend(c,{'key':a,'value':b})},get:function(a){var b=document.cookie.match('(?:^|;)\\s*'+a.escapeRegExp()+'=([^;]*)');return b?decodeURIComponent(b[1]):false},remove:function(a,b){if($type(a)=='object')this.set(a.key,'',$merge(a,{duration:-1}));else this.set(a,'',$merge(b,{duration:-1}))}});var Json={toString:function(a){switch($type(a)){case'string':return'"'+a.replace(/(["\\])/g,'\\$1')+'"';case'array':return'['+a.map(Json.toString).join(',')+']';case'object':var b=[];for(var c in a)b.push(Json.toString(c)+':'+Json.toString(a[c]));return'{'+b.join(',')+'}';case'number':if(isFinite(a))break;case false:return'null'}return String(a)},evaluate:function(a,b){return(($type(a)!='string')||(b&&!a.test(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/)))?null:eval('('+a+')')}};Json.Remote=XHR.extend({initialize:function(a,b){this.url=a;this.addEvent('onSuccess',this.onComplete);this.parent(b);this.setHeader('X-Request','JSON')},send:function(a){return this.parent(this.url,'json='+Json.toString(a))},onComplete:function(){this.fireEvent('onComplete',[Json.evaluate(this.response.text,this.options.secure)])}});var Asset=new Abstract({javascript:function(a,b){b=$merge({'onload':Class.empty},b);var c=new Element('script',{'src':a}).addEvents({'load':b.onload,'readystatechange':function(){if(this.readyState=='complete')this.fireEvent('load')}});delete b.onload;return c.setProperties(b).inject(document.head)},css:function(a,b){return new Element('link',$merge({'rel':'stylesheet','media':'screen','type':'text/css','href':a},b)).inject(document.head)},image:function(c,d){d=$merge({'onload':Class.empty,'onabort':Class.empty,'onerror':Class.empty},d);var e=new Image();e.src=c;var f=new Element('img',{'src':c});['load','abort','error'].each(function(a){var b=d['on'+a];delete d['on'+a];f.addEvent(a,function(){this.removeEvent(a,arguments.callee);b.call(this)})});if(e.width&&e.height)f.fireEvent('load',f,1);return f.setProperties(d)},images:function(c,d){d=$merge({onComplete:Class.empty,onProgress:Class.empty},d);if(!c.push)c=[c];var e=[];var f=0;c.each(function(a){var b=new Asset.image(a,{'onload':function(){d.onProgress.call(this,f);f++;if(f==c.length)d.onComplete()}});e.push(b)});return new Elements(e)}});var Accordion=Fx.Elements.extend({options:{onActive:Class.empty,onBackground:Class.empty,display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var c,togglers,elements,container;$each(arguments,function(a,i){switch($type(a)){case'object':c=a;break;case'element':container=$(a);break;default:var b=$$(a);if(!togglers)togglers=b;else elements=b}});this.togglers=togglers||[];this.elements=elements||[];this.container=$(container);this.setOptions(c);this.previous=-1;if(this.options.alwaysHide)this.options.wait=true;if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show}if(this.options.start){this.options.display=false;this.options.show=false}this.effects={};if(this.options.opacity)this.effects.opacity='fullOpacity';if(this.options.width)this.effects.width=this.options.fixedWidth?'fullWidth':'offsetWidth';if(this.options.height)this.effects.height=this.options.fixedHeight?'fullHeight':'scrollHeight';for(var i=0,l=this.togglers.length;i<l;i++)this.addSection(this.togglers[i],this.elements[i]);this.elements.each(function(a,i){if(this.options.show===i){this.fireEvent('onActive',[this.togglers[i],a])}else{for(var b in this.effects)a.setStyle(b,0)}},this);this.parent(this.elements);if($chk(this.options.display))this.display(this.options.display)},addSection:function(a,b,c){a=$(a);b=$(b);var d=this.togglers.contains(a);var e=this.togglers.length;this.togglers.include(a);this.elements.include(b);if(e&&(!d||c)){c=$pick(c,e-1);a.injectBefore(this.togglers[c]);b.injectAfter(a)}else if(this.container&&!d){a.inject(this.container);b.inject(this.container)}var f=this.togglers.indexOf(a);a.addEvent('click',this.display.bind(this,f));if(this.options.height)b.setStyles({'padding-top':0,'border-top':'none','padding-bottom':0,'border-bottom':'none'});if(this.options.width)b.setStyles({'padding-left':0,'border-left':'none','padding-right':0,'border-right':'none'});b.fullOpacity=1;if(this.options.fixedWidth)b.fullWidth=this.options.fixedWidth;if(this.options.fixedHeight)b.fullHeight=this.options.fixedHeight;b.setStyle('overflow','hidden');if(!d){for(var g in this.effects)b.setStyle(g,0)}return this},display:function(d){d=($type(d)=='element')?this.elements.indexOf(d):d;if((this.timer&&this.options.wait)||(d===this.previous&&!this.options.alwaysHide))return this;this.previous=d;var e={};this.elements.each(function(a,i){e[i]={};var b=(i!=d)||(this.options.alwaysHide&&(a.offsetHeight>0));this.fireEvent(b?'onBackground':'onActive',[this.togglers[i],a]);for(var c in this.effects)e[i][c]=b?0:a[this.effects[c]]},this);return this.start(e)},showThisHideOpen:function(a){return this.display(a)}});Fx.Accordion=Accordion;var Color=new Class({initialize:function(a,b){b=b||(a.push?'rgb':'hex');var c,hsb;switch(b){case'rgb':c=a;hsb=c.rgbToHsb();break;case'hsb':c=a.hsbToRgb();hsb=a;break;default:c=a.hexToRgb(true);hsb=c.rgbToHsb()}c.hsb=hsb;c.hex=c.rgbToHex();return $extend(c,Color.prototype)},mix:function(){var b=$A(arguments);var c=($type(b[b.length-1])=='number')?b.pop():50;var d=this.copy();b.each(function(a){a=new Color(a);for(var i=0;i<3;i++)d[i]=Math.round((d[i]/100*(100-c))+(a[i]/100*c))});return new Color(d,'rgb')},invert:function(){return new Color(this.map(function(a){return 255-a}))},setHue:function(a){return new Color([a,this.hsb[1],this.hsb[2]],'hsb')},setSaturation:function(a){return new Color([this.hsb[0],a,this.hsb[2]],'hsb')},setBrightness:function(a){return new Color([this.hsb[0],this.hsb[1],a],'hsb')}});function $RGB(r,g,b){return new Color([r,g,b],'rgb')};function $HSB(h,s,b){return new Color([h,s,b],'hsb')};Array.extend({rgbToHsb:function(){var a=this[0],green=this[1],blue=this[2];var b,saturation,brightness;var c=Math.max(a,green,blue),min=Math.min(a,green,blue);var d=c-min;brightness=c/255;saturation=(c!=0)?d/c:0;if(saturation==0){b=0}else{var e=(c-a)/d;var f=(c-green)/d;var g=(c-blue)/d;if(a==c)b=g-f;else if(green==c)b=2+e-g;else b=4+f-e;b/=6;if(b<0)b++}return[Math.round(b*360),Math.round(saturation*100),Math.round(brightness*100)]},hsbToRgb:function(){var a=Math.round(this[2]/100*255);if(this[1]==0){return[a,a,a]}else{var b=this[0]%360;var f=b%60;var p=Math.round((this[2]*(100-this[1]))/10000*255);var q=Math.round((this[2]*(6000-this[1]*f))/600000*255);var t=Math.round((this[2]*(6000-this[1]*(60-f)))/600000*255);switch(Math.floor(b/60)){case 0:return[a,t,p];case 1:return[q,a,p];case 2:return[p,a,t];case 3:return[p,q,a];case 4:return[t,p,a];case 5:return[a,p,q]}}return false}});var Group=new Class({initialize:function(){this.instances=$A(arguments);this.events={};this.checker={}},addEvent:function(b,c){this.checker[b]=this.checker[b]||{};this.events[b]=this.events[b]||[];if(this.events[b].contains(c))return false;else this.events[b].push(c);this.instances.each(function(a,i){a.addEvent(b,this.check.bind(this,[b,a,i]))},this);return this},check:function(b,c,i){this.checker[b][i]=true;var d=this.instances.every(function(a,j){return this.checker[b][j]||false},this);if(!d)return;this.checker[b]={};this.events[b].each(function(a){a.call(this,this.instances,c)},this)}});var Hash=new Class({length:0,initialize:function(a){this.obj=a||{};this.setLength()},get:function(a){return(this.hasKey(a))?this.obj[a]:null},hasKey:function(a){return(a in this.obj)},set:function(a,b){if(!this.hasKey(a))this.length++;this.obj[a]=b;return this},setLength:function(){this.length=0;for(var p in this.obj)this.length++;return this},remove:function(a){if(this.hasKey(a)){delete this.obj[a];this.length--}return this},each:function(a,b){$each(this.obj,a,b)},extend:function(a){$extend(this.obj,a);return this.setLength()},merge:function(){this.obj=$merge.apply(null,[this.obj].extend(arguments));return this.setLength()},empty:function(){this.obj={};this.length=0;return this},keys:function(){var a=[];for(var b in this.obj)a.push(b);return a},values:function(){var a=[];for(var b in this.obj)a.push(this.obj[b]);return a}});function $H(a){return new Hash(a)};Hash.Cookie=Hash.extend({initialize:function(a,b){this.name=a;this.options=$extend({'autoSave':true},b||{});this.load()},save:function(){if(this.length==0){Cookie.remove(this.name,this.options);return true}var a=Json.toString(this.obj);if(a.length>4096)return false;Cookie.set(this.name,a,this.options);return true},load:function(){this.obj=Json.evaluate(Cookie.get(this.name),true)||{};this.setLength()}});Hash.Cookie.Methods={};['extend','set','merge','empty','remove'].each(function(a){Hash.Cookie.Methods[a]=function(){Hash.prototype[a].apply(this,arguments);if(this.options.autoSave)this.save();return this}});Hash.Cookie.implement(Hash.Cookie.Methods);var Scroller=new Class({options:{area:20,velocity:1,onChange:function(x,y){this.element.scrollTo(x,y)}},initialize:function(a,b){this.setOptions(b);this.element=$(a);this.mousemover=([window,document].contains(a))?$(document.body):this.element},start:function(){this.coord=this.getCoords.bindWithEvent(this);this.mousemover.addListener('mousemove',this.coord)},stop:function(){this.mousemover.removeListener('mousemove',this.coord);this.timer=$clear(this.timer)},getCoords:function(a){this.page=(this.element==window)?a.client:a.page;if(!this.timer)this.timer=this.scroll.periodical(50,this)},scroll:function(){var a=this.element.getSize();var b=this.element.getPosition();var c={'x':0,'y':0};for(var z in this.page){if(this.page[z]<(this.options.area+b[z])&&a.scroll[z]!=0)c[z]=(this.page[z]-this.options.area-b[z])*this.options.velocity;else if(this.page[z]+this.options.area>(a.size[z]+b[z])&&a.scroll[z]+a.size[z]!=a.scrollSize[z])c[z]=(this.page[z]-a.size[z]+this.options.area-b[z])*this.options.velocity}if(c.y||c.x)this.fireEvent('onChange',[a.scroll.x+c.x,a.scroll.y+c.y])}});Scroller.implement(new Events,new Options);var Slider=new Class({options:{onChange:Class.empty,onComplete:Class.empty,onTick:function(a){this.knob.setStyle(this.p,a)},mode:'horizontal',steps:100,offset:0},initialize:function(a,b,c){this.element=$(a);this.knob=$(b);this.setOptions(c);this.previousChange=-1;this.previousEnd=-1;this.step=-1;this.element.addEvent('mousedown',this.clickedElement.bindWithEvent(this));var d,offset;switch(this.options.mode){case'horizontal':this.z='x';this.p='left';d={'x':'left','y':false};offset='offsetWidth';break;case'vertical':this.z='y';this.p='top';d={'x':false,'y':'top'};offset='offsetHeight'}this.max=this.element[offset]-this.knob[offset]+(this.options.offset*2);this.half=this.knob[offset]/2;this.getPos=this.element['get'+this.p.capitalize()].bind(this.element);this.knob.setStyle('position','relative').setStyle(this.p,-this.options.offset);var e={};e[this.z]=[-this.options.offset,this.max-this.options.offset];this.drag=new Drag.Base(this.knob,{limit:e,modifiers:d,snap:0,onStart:function(){this.draggedKnob()}.bind(this),onDrag:function(){this.draggedKnob()}.bind(this),onComplete:function(){this.draggedKnob();this.end()}.bind(this)});if(this.options.initialize)this.options.initialize.call(this)},set:function(a){this.step=a.limit(0,this.options.steps);this.checkStep();this.end();this.fireEvent('onTick',this.toPosition(this.step));return this},clickedElement:function(a){var b=a.page[this.z]-this.getPos()-this.half;b=b.limit(-this.options.offset,this.max-this.options.offset);this.step=this.toStep(b);this.checkStep();this.end();this.fireEvent('onTick',b)},draggedKnob:function(){this.step=this.toStep(this.drag.value.now[this.z]);this.checkStep()},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent('onChange',this.step)}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent('onComplete',this.step+'')}},toStep:function(a){return Math.round((a+this.options.offset)/this.max*this.options.steps)},toPosition:function(a){return this.max*a/this.options.steps}});Slider.implement(new Events);Slider.implement(new Options);var SmoothScroll=Fx.Scroll.extend({initialize:function(c){this.parent(window,c);this.links=(this.options.links)?$$(this.options.links):$$(document.links);var d=window.location.href.match(/^[^#]*/)[0]+'#';this.links.each(function(a){if(a.href.indexOf(d)!=0)return;var b=a.href.substr(d.length);if(b&&$(b))this.useLink(a,b)},this);if(!window.webkit419)this.addEvent('onComplete',function(){window.location.hash=this.anchor})},useLink:function(b,c){b.addEvent('click',function(a){this.anchor=c;this.toElement(c);a.stop()}.bindWithEvent(this))}});var Sortables=new Class({options:{handles:false,onStart:Class.empty,onComplete:Class.empty,ghost:true,snap:3,onDragStart:function(a,b){b.setStyle('opacity',0.7);a.setStyle('opacity',0.7)},onDragComplete:function(a,b){a.setStyle('opacity',1);b.remove();this.trash.remove()}},initialize:function(a,b){this.setOptions(b);this.list=$(a);this.elements=this.list.getChildren();this.handles=(this.options.handles)?$$(this.options.handles):this.elements;this.bound={'start':[],'moveGhost':this.moveGhost.bindWithEvent(this)};for(var i=0,l=this.handles.length;i<l;i++){this.bound.start[i]=this.start.bindWithEvent(this,this.elements[i])}this.attach();if(this.options.initialize)this.options.initialize.call(this);this.bound.move=this.move.bindWithEvent(this);this.bound.end=this.end.bind(this)},attach:function(){this.handles.each(function(a,i){a.addEvent('mousedown',this.bound.start[i])},this)},detach:function(){this.handles.each(function(a,i){a.removeEvent('mousedown',this.bound.start[i])},this)},start:function(a,b){this.active=b;this.coordinates=this.list.getCoordinates();if(this.options.ghost){var c=b.getPosition();this.offset=a.page.y-c.y;this.trash=new Element('div').inject(document.body);this.ghost=b.clone().inject(this.trash).setStyles({'position':'absolute','left':c.x,'top':a.page.y-this.offset});document.addListener('mousemove',this.bound.moveGhost);this.fireEvent('onDragStart',[b,this.ghost])}document.addListener('mousemove',this.bound.move);document.addListener('mouseup',this.bound.end);this.fireEvent('onStart',b);a.stop()},moveGhost:function(a){var b=a.page.y-this.offset;b=b.limit(this.coordinates.top,this.coordinates.bottom-this.ghost.offsetHeight);this.ghost.setStyle('top',b);a.stop()},move:function(a){var b=a.page.y;this.previous=this.previous||b;var c=((this.previous-b)>0);var d=this.active.getPrevious();var e=this.active.getNext();if(d&&c&&b<d.getCoordinates().bottom)this.active.injectBefore(d);if(e&&!c&&b>e.getCoordinates().top)this.active.injectAfter(e);this.previous=b},serialize:function(b){return this.list.getChildren().map(b||function(a){return this.elements.indexOf(a)},this)},end:function(){this.previous=null;document.removeListener('mousemove',this.bound.move);document.removeListener('mouseup',this.bound.end);if(this.options.ghost){document.removeListener('mousemove',this.bound.moveGhost);this.fireEvent('onDragComplete',[this.active,this.ghost])}this.fireEvent('onComplete',this.active)}});Sortables.implement(new Events,new Options);var Tips=new Class({options:{onShow:function(a){a.setStyle('visibility','visible')},onHide:function(a){a.setStyle('visibility','hidden')},maxTitleChars:30,showDelay:100,hideDelay:100,className:'tool',offsets:{'x':16,'y':16},fixed:false},initialize:function(a,b){this.setOptions(b);this.toolTip=new Element('div',{'class':this.options.className+'-tip','styles':{'position':'absolute','top':'0','left':'0','visibility':'hidden'}}).inject(document.body);this.wrapper=new Element('div').inject(this.toolTip);$$(a).each(this.build,this);if(this.options.initialize)this.options.initialize.call(this)},build:function(b){b.$tmp.myTitle=(b.href&&b.getTag()=='a')?b.href.replace('http://',''):(b.rel||false);if(b.title){var c=b.title.split('::');if(c.length>1){b.$tmp.myTitle=c[0].trim();b.$tmp.myText=c[1].trim()}else{b.$tmp.myText=b.title}b.removeAttribute('title')}else{b.$tmp.myText=false}if(b.$tmp.myTitle&&b.$tmp.myTitle.length>this.options.maxTitleChars)b.$tmp.myTitle=b.$tmp.myTitle.substr(0,this.options.maxTitleChars-1)+"&hellip;";b.addEvent('mouseenter',function(a){this.start(b);if(!this.options.fixed)this.locate(a);else this.position(b)}.bind(this));if(!this.options.fixed)b.addEvent('mousemove',this.locate.bindWithEvent(this));var d=this.end.bind(this);b.addEvent('mouseleave',d);b.addEvent('trash',d)},start:function(a){this.wrapper.empty();if(a.$tmp.myTitle){this.title=new Element('span').inject(new Element('div',{'class':this.options.className+'-title'}).inject(this.wrapper)).setHTML(a.$tmp.myTitle)}if(a.$tmp.myText){this.text=new Element('span').inject(new Element('div',{'class':this.options.className+'-text'}).inject(this.wrapper)).setHTML(a.$tmp.myText)}$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this)},end:function(a){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this)},position:function(a){var b=a.getPosition();this.toolTip.setStyles({'left':b.x+this.options.offsets.x,'top':b.y+this.options.offsets.y})},locate:function(a){var b={'x':window.getWidth(),'y':window.getHeight()};var c={'x':window.getScrollLeft(),'y':window.getScrollTop()};var d={'x':this.toolTip.offsetWidth,'y':this.toolTip.offsetHeight};var e={'x':'left','y':'top'};for(var z in e){var f=a.page[z]+this.options.offsets[z];if((f+d[z]-c[z])>b[z])f=a.page[z]-this.options.offsets[z]-d[z];this.toolTip.setStyle(e[z],f)}},show:function(){if(this.options.timeout)this.timer=this.hide.delay(this.options.timeout,this);this.fireEvent('onShow',[this.toolTip])},hide:function(){this.fireEvent('onHide',[this.toolTip])}});Tips.implement(new Events,new Options);String.extend({stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'')},stripScripts:function(){return this.replace(/<script[^>]*?>.*?<\/script>/img,'')},evalScripts:function(){var b=this.match(/<script[^>]*?>.*?<\/script>/g);if(b)b.each(function(a){eval(a.replace(/^<script[^>]*?>/,'').replace(/<\/script>$/,''))})},replaceAll:function(a,b,c){return this.replace(new RegExp(a,$pick(c,'gi')),b)},urlEncode:function(){if(this.indexOf('%')>-1)return this;else return escape(this)},parseQuery:function(){var c=this.split(/[&;]/);var d={};if(c.length)c.each(function(a){var b=a.split('=');if(b.length&&b.length==2)d[encodeURIComponent(b[0])]=encodeURIComponent(b[1])});return d},tidy:function(){var c=this.toString();$each({"[\xa0\u2002\u2003\u2009]":" ","\xb7":"*","[\u2018\u2019]":"'","[\u201c\u201d]":'"',"\u2026":"...","\u2013":"-","\u2014":"--"},function(a,b){c=c.replace(new RegExp(b,'g'),a)});return c}});window.extend({isLoaded:window.loaded,getHost:function(a){a=$pick(a,window.location.href);var b=a;if(a.test('http://')){a=a.substring(a.indexOf('http://')+7,a.length);if(a.test(':'))a=a.substring(0,a.indexOf(":"));if(a.test('/'))return a.substring(0,a.indexOf('/'));return a}return false},getQueryStringValue:function(a,b){try{return window.getQueryStringValues(b)[a]}catch(e){return null}},getQueryStringValues:function(a){var b=$pick(a,$pick(window.location.search,''));if(b=="")return[];if(b.indexOf("?")>=0)b=b.substring(b.indexOf("?")+1,b.length);return b.parseQuery()},getPort:function(b){b=$pick(b,window.location.href);var c=new RegExp(':([0-9]{4})');var m=c.exec(b);if(m==null)return false;else{var d=false;m.each(function(a){if($chk(parseInt(a)))d=a})}return d},qs:{}});window.qs=window.getQueryStringValues();window.popup=new Class({options:{width:500,height:300,x:50,y:50,toolbar:0,location:0,directories:0,status:0,scrollbars:'auto',resizable:1,name:'popup',onBlock:Class.empty},initialize:function(a,b){this.url=a||false;this.setOptions(b);if(this.url)this.openWin();return this},openWin:function(a){a=a||this.url;var b='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.popupWindow=window.open(a,this.options.name,b);this.focus.delay(100,this);return this.popupWindow},focus:function(){if(this.popupWindow)this.popupWindow.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.popupWindow.close()}});window.popup.implement(new Options);window.popup.implement(new Events);var legacyPopup=window.popup.extend({setOptions:function(){this.parent();this.options=Object.extend({width:516,height:350},this.options)}});function openPop(a){return new legacyPopup(a)}var GetValue=window.getQueryStringValue;Element.extend({isVisible:function(){return this.getStyle('display')!='none'},toggle:function(){return this[this.isVisible()?'hide':'show']()},hide:function(){this.originalDisplay=this.getStyle('display');this.setStyle('display','none');return this},show:function(a){this.originalDisplay=(this.originalDisplay=="none")?'block':this.originalDisplay;this.setStyle('display',(a||this.originalDisplay||'block'));return this},tidy:function(){try{if(this.getValue().tidy())this.value=this.getValue().tidy()}catch(e){dbug.log('element.tidy error: %o',e)}},fxOpacityOk:function(){if(!window.ie6)return true;var a=false;try{if(new Color(this.getStyle('backgroundColor')))a=true}catch(e){}return a}});Element.visible=Element.isVisible;if(!Element.empty){Element.extend({empty:function(){return this.setHTML('')}})}var $S=$$;Element.extend({getDimensions:function(c){c=$merge({computeSize:false},c);var d={};function getSize(a,b){if(b.computeSize)d=a.getComputedSize(b);else{d.width=a.getSize().size.x;d.height=a.getSize().size.y}return d}try{d=getSize(this,c)}catch(e){}if(this.getStyle('display')=='none'){var f={};['visibility','display','position'].each(function(a){f[a]=this.style[a]||''},this);this.setStyles({visibility:'hidden',display:'block',position:'absolute'});d=getSize(this,c);this.setStyles(f)}return $merge(d,{x:d.width,y:d.height})},getComputedSize:function(e){e=$merge({styles:['padding','border'],plains:{height:['top','bottom'],width:['left','right']},mode:'both'},e);var f={width:0,height:0};switch(e.mode){case'vertical':delete f.width;delete e.plains.width;break;case'horizontal':delete f.height;delete e.plains.height;break}var g=[];$each(e.plains,function(c,d){c.each(function(b){e.styles.each(function(a){g.push((a=="border")?a+'-'+b+'-'+'width':a+'-'+b)})})});var h=this.getStyles.apply(this,g);var j=[];$each(e.plains,function(c,d){f['total'+d.capitalize()]=0;f['computed'+d.capitalize()]=0;c.each(function(b){f['computed'+b.capitalize()]=0;g.each(function(a,i){if(a.test(b)){h[a]=h[a].toInt();if(isNaN(h[a]))h[a]=0;f['total'+d.capitalize()]=f['total'+d.capitalize()]+h[a];f['computed'+b.capitalize()]=f['computed'+b.capitalize()]+h[a]}if(a.test(b)&&d!=a&&(a.test('border')||a.test('padding'))&&!j.test(a)){j.push(a);f['computed'+d.capitalize()]=f['computed'+d.capitalize()]-h[a]}})})});if($chk(f.width)){f.width=f.width+this.offsetWidth+f.computedWidth;f.totalWidth=f.width+f.totalWidth;delete f.computedWidth}if($chk(f.height)){f.height=f.height+this.offsetHeight+f.computedHeight;f.totalHeight=f.height+f.totalHeight;delete f.computedHeight}return $merge(h,f)}});Element.extend({getTextInRange:function(a,b){return this.getValue().substring(a,b)},getSelectedText:function(){if(window.ie)return document.selection.createRange().text;return this.getValue().substring(this.getSelectionStart(),this.getSelectionEnd())},getSelectionStart:function(){if(window.ie){this.focus();var a=document.selection.createRange();var b=a.duplicate();b.moveToElementText(this);b.setEndPoint('EndToEnd',a);return b.text.length-a.text.length}return this.selectionStart},getSelectionEnd:function(){if(window.ie){this.focus();var a=document.selection.createRange();var b=a.duplicate();b.moveToElementText(this);b.setEndPoint('EndToEnd',a);return this.getSelectionStart()+a.text.length}return this.selectionEnd},getSelectedRange:function(){return{start:this.getSelectionStart(),end:this.getSelectionEnd()}},setCaretPosition:function(a){if(a=='end')a=this.getValue().length;this.selectRange(a,a);return this},getCaretPosition:function(){return this.getSelectedRange().start},selectRange:function(a,b){this.focus();if(window.ie){var c=this.createTextRange();c.collapse(true);c.moveStart('character',a);c.moveEnd('character',b-a);c.select();return this}this.setSelectionRange(a,b);return this},insertAtCursor:function(a,b){var c=this.getSelectionStart();var d=this.getSelectionEnd();this.value=this.getValue().substring(0,c)+a+this.getValue().substring(d,this.getValue().length);if($pick(b,true))this.selectRange(c,c+a.length);else this.setCaretPosition(c+a.length);return this},insertAroundCursor:function(a,b){a=$merge({before:'',defaultMiddle:'SOMETHING HERE',after:''},a);value=this.getSelectedText()||a.defaultMiddle;var c=this.getSelectionStart();var d=this.getSelectionEnd();if(c==d){var e=this.getValue();this.value=e.substring(0,c)+a.before+value+a.after+e.substring(d,e.length);this.selectRange(c+a.before.length,d+a.before.length+value.length);e=null}else{e=this.getValue().substring(c,d);this.value=this.getValue().substring(0,c)+a.before+e+a.after+this.getValue().substring(d,this.getValue().length);var f=c+a.before.length;if($pick(b,true))this.selectRange(f,f+e.length);else this.setCaretPosition(f+e.length)}return this}});window.extend({supportsPositionFixed:function(){if(!window.loaded)return null;var a=new Element('div').setStyles({position:'fixed',top:'0px',right:'0px'}).injectInside(document.body);var b=(a.offsetTop===0);a.remove();return b}});Element.extend({pin:function(b){var p=this.getPosition();if(b!==false){if(!this.pinned){var c={top:(p.y-window.getScrollTop())+'px',left:(p.x-window.getScrollLeft())+'px'};if(window.supportsPositionFixed()){this.setStyle('position','fixed').setStyles(c)}else{this.setStyles({position:'absolute',top:p.y+'px',left:p.x+'px'});window.addEvent('scroll',function(){if(this.pinned){var a={top:(c.top.toInt()+window.getScrollTop())+'px',left:(c.left.toInt()+window.getScrollLeft())+'px'};this.setStyles(a)}}.bind(this))}this.pinned=true}}else{this.pinned=false;var d={top:p.y+'px',left:p.x+'px',position:'absolute'};this.setStyles(d)}return this},unpin:function(){return this.pin(false)},togglepin:function(){this.pin(!this.pinned)}});Element.extend({setPosition:function(c){c=$merge({relativeTo:document.body,position:{x:'center',y:'center'},edge:false,offset:{x:0,y:0},returnPos:false,relFixedPosition:false,overflown:[]},c);var d={x:0,y:0};if(this.getParent()!=document.body){var e=this.getParent();while(e!=document.body&&e.getStyle('position')=="static"){e=e.getParent()}if(e!=document.body)d=e.getPosition();c.offset.x=c.offset.x-d.x;c.offset.y=c.offset.y-d.y}if(c.position=="center"&&!c.edge)c.edge=="center";function fixValue(a){if($type(a)!="string")return a;a=a.toLowerCase();var b={};if(a.test('left'))b.x='left';else if(a.test('right'))b.x='right';else b.x='center';if(a.test('upper')||a.test('top'))b.y='top';else if(a.test('bottom'))b.y='bottom';else b.y='center';return b};c.position=fixValue(c.position);if(!c.edge){if(c.position.x=='center'&&c.position.y=='center')c.edge='center';else c.edge='upperLeft'}this.setStyle('position','absolute');var f=$(c.relativeTo)||document.body;if(window.opera){var g=(f==document.body)?window.getScrollTop():f.getTop();var h=(f==document.body)?window.getScrollLeft():f.getLeft()}else{var g=(f==document.body)?window.getScrollTop():f.getTop(c.overflown);var h=(f==document.body)?window.getScrollLeft():f.getLeft(c.overflown)}if(g<0)g=0;if(h<0)h=0;var i=this.getDimensions({computeSize:true});var j={};var k=c.offset.y.toInt();var l=c.offset.x.toInt();switch(c.position.x){case'left':j.x=h+l;break;case'right':j.x=h+l+f.offsetWidth;break;default:j.x=h+(((f==document.body)?window.getWidth():f.offsetWidth)/2)+l;break};switch(c.position.y){case'top':j.y=g+k;break;case'bottom':j.y=g+k+f.offsetHeight;break;default:j.y=g+(((f==document.body)?window.getHeight():f.offsetHeight)/2)+k;break};if(c.edge){c.edge=fixValue(c.edge);var m={};switch(c.edge.x){case'left':m.x=0;break;case'right':m.x=-i.x-i.computedRight-i.computedLeft;break;default:m.x=-(i.x/2);break};switch(c.edge.y){case'top':m.y=0;break;case'bottom':m.y=-i.y-i.computedTop-i.computedBottom;break;default:m.y=-(i.y/2);break};j.x=j.x+m.x;j.y=j.y+m.y}j={left:((j.x>=0)?j.x:0).toInt()+'px',top:((j.y>=0)?j.y:0).toInt()+'px'};if(f.getStyle('position')=="fixed"||c.relFixedPosition){j.top=j.top.toInt()+window.getScrollTop()+'px';j.left=j.left.toInt()+window.getScrollLeft()+'px'}if(c.returnPos)return j;if(c.smoothMove)new Fx.SmoothMove(this,c).start();else this.setStyles(j);return this}});Fx.Marquee=Fx.Styles.extend({options:{mode:'horizontal',message:'',revert:true,delay:5000,cssClass:'msg',showEffect:{opacity:1},hideEffect:{opacity:0},revertEffect:{opacity:[0,1]},currentMessage:null,onRevert:Class.empty,onMessage:Class.empty},initialize:function(a,b){a=$(a);var c=this.options.currentMessage||(a.getChildren().length==1)?a.getFirst():'';var d=new Element('div',{styles:{position:'relative'},'class':'fxMarqueeWrapper'}).injectInside(a);this.parent(d,b);this.current=this.wrapMessage(c)},wrapMessage:function(a){if($(a)&&$(a).hasClass('fxMarquee')){var b=$(a)}else{var b=new Element('span',{'class':'fxMarquee',styles:{position:'relative'}});if($(a))b.adopt($(a));else if($type(a)=="string")b.setHTML(a)}return b.injectInside(this.element)},announce:function(a){this.setOptions(a).showMessage();return this},showMessage:function(b){(function(){var a=this.chains?this.chains.copy():[];this.clearChain();this.element=$(this.element);this.current=$(this.current);this.message=$(this.message);this.start(this.options.hideEffect).chain(function(){if(b){this.message.hide();if(this.current)this.current.show()}else{if(this.message)this.message.remove();this.message=this.wrapMessage(this.options.message);if(this.current)this.current.hide()}this.start((b)?this.options.revertEffect:this.options.showEffect).chain(function(){this.chains.merge(a);this.fireEvent((b)?'onRevert':'onMessage');if(!b&&this.options.revert)this.showMessage(true);else this.callChain.delay(this.options.delay,this)}.bind(this))}.bind(this))}).delay((b)?this.options.delay:10,this);return this}});Fx.SmoothShow=Fx.Styles.extend({options:{styles:['padding','border','margin'],transitionOpacity:true,mode:'vertical',heightOverride:null,widthOverride:null},initialize:function(a,b){this.parent(a,b);if(!this.element)return false},fixStyle:function(b,c){if(!$type(b)=="number")return b;var d=['margin','padding','width','height'].some(function(a){return c.test(a,'i')});return(d)?b+'px':b},hide:function(){if(!this.hiding&&!this.showing){if(this.element.getStyle('display')!='none'){this.hiding=true;this.showing=false;this.hidden=true;var c=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});if(this.element.fxOpacityOk()&&this.options.transitionOpacity)c.opacity=1;var d={};$each(c,function(a,b){d[b]=this.fixStyle(0,b)},this);this.addEvent('onComplete',function(){if(this.hidden){this.hiding=false;$each(c,function(a,b){c[b]=this.fixStyle(a,b)},this);this.element.setStyles(c).setStyle('display','none')}}.bind(this));this.start(d)}else{this.callChain();this.fireEvent('onComplete',this.element)}}return this},show:function(){if(!this.showing&&!this.hiding){if(this.element.getStyle('display')=="none"||this.element.getStyle('visiblity')=="hidden"||this.element.getStyle('opacity')==0){this.showing=true;this.hiding=false;this.hidden=false;var c=this.element.getStyles('visibility','display','position');this.element.setStyles({visibility:'hidden',display:'block',position:'absolute'});if(this.element.fxOpacityOk()&&this.options.transitionOpacity)this.element.setStyle('opacity',0);var d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});this.element.setStyles(c);$each(d,function(a,b){d[b]=this.fixStyle(a,b)},this);if($chk(this.options.heightOverride))d['height']=this.options.heightOverride.toInt()+'px';if($chk(this.options.widthOverride))d['width']=this.options.widthOverride.toInt()+'px';if(this.element.fxOpacityOk()&&this.options.transitionOpacity)d.opacity=1;var e={height:'0px',display:'block'};$each(d,function(a,b){e[b]=this.fixStyle(0,b)},this);this.element.setStyles(e);this.start(d);this.addEvent('onComplete',function(){if(!this.hidden)this.showing=false}.bind(this))}else{this.callChain();this.fireEvent('onComplete',this.element)}}return this},toggle:function(){if(this.element.getStyle('display')=="none"||this.element.getStyle('visiblity')=="hidden"||this.element.getStyle('opacity')==0){this.show()}else this.hide();return this}});Fx.SmoothShow.implement(new Options);Fx.SmoothShow.implement(new Events);Element.extend({smoothShow:function(a){if(arguments[1]){a.heightOverride=arguments[1]}return new Fx.SmoothShow(this,a).show()},smoothHide:function(a){if(arguments[1]){a.heightOverride=arguments[1]}return new Fx.SmoothShow(this,a).hide()}});Fx.SmoothMove=Fx.Styles.extend({options:{relativeTo:document.body,position:'center',edge:false,offset:{x:0,y:0}},initialize:function(a,b){this.parent(a,b);if(!this.element)return false},start:function(a){return this.parent(this.element.setPosition($merge(this.options,a,{returnPos:true})))}});Element.extend({smoothMove:function(a){return new Fx.SmoothMove(this,a).start()}});Fx.Sort=Fx.Elements.extend({options:{mode:'vertical'},initialize:function(b,c){this.parent(b,c);this.elements.each(function(a){if(a.getStyle('position')=='static')a.setStyle('position','relative')});this.setDefaultOrder()},setDefaultOrder:function(){this.currentOrder=this.elements.map(function(a,b){return b})},sort:function(g){if($type(g)!='array')return;var h=0;var j=0;var k={};var l=this.options.mode=="vertical";var m=this.elements.map(function(a,b){var c=a.getComputedSize({styles:['border','padding','margin']});var d;if(l){d={top:h,margin:c['margin-top'],height:c.totalHeight};h+=d.height-c['margin-top']}else{d={left:j,margin:c['margin-left'],width:c.totalWidth};j+=d.width}var e=l?'top':'left';k[b]={};var f=a.getStyle(e).toInt();k[b][e]=($chk(f))?f:0;return d},this);this.set(k);g=g.map(function(i){return i.toInt()});if(g.length!=this.elements.length){this.currentOrder.each(function(a){if(!g.contains(a))g.push(a)});if(g.length>this.elements.length){g.splice(this.elements.length-1,g.length-this.elements.length)}}var h=0;var j=0;var n=0;var o={};g.each(function(a,b){var c={};if(l){c.top=h-m[a].top-n;h+=m[a].height}else{c.left=j-m[a].left;j+=m[a].width}n=n+m[a].margin;o[a]=c},this);var p={};g.sort().each(function(a){p[a]=o[a]});this.start(p);this.currentOrder=g;return this},rearrangeDOM:function(b){b=b||this.currentOrder;var c=this.elements[0].getParent();var d=[];this.elements.setStyle('opacity',0);b.each(function(a){d.push(this.elements[a].injectInside(c).setStyles({top:0,left:0}))},this);this.elements.setStyle('opacity',1);this.elements=d;this.setDefaultOrder();return this},getDefaultOrder:function(){return this.elements.map(function(a,b){return b})},forward:function(){return this.sort(this.getDefaultOrder())},backward:function(){return this.sort(this.getDefaultOrder().reverse())},reverse:function(){return this.sort(this.currentOrder.reverse())},sortByElements:function(b){return this.sort(b.map(function(a){return this.elements.indexOf(a)}))},swap:function(a,b){if($type(a)=='element'){a=this.elements.indexOf(a);b=this.elements.indexOf(b)}var c=this.currentOrder.indexOf(a);var d=this.currentOrder.indexOf(b);var e=this.currentOrder.copy();e[c]=b;e[d]=a;this.sort(e)}});var RandomValueCookieMaker=new Class({options:{cookieName:false,limit:10,days:999,domain:false},initialize:function(a){this.setOptions(a);if(this.options.cookieName)this.verify();else{dbug.log('you must specify a cookie name.');return}},verify:function(){this.val=Cookie.get(this.options.cookieName);if(!$chk(parseInt(this.val))){this.val=this.makeRand();this.saveVal()}},saveVal:function(a){this.val=$pick(a,this.val);if(this.options.domain)Cookie.set(this.options.cookieName,this.val,{duration:this.options.days,domain:this.options.domain});else Cookie.set(this.options.cookieName,this.val,this.options.days)},makeSeed:function(){return((new Date().getTime()*9301+49297)%233280)/(233280.0)},makeRand:function(){return Math.ceil(this.makeSeed()*this.options.limit)}});RandomValueCookieMaker.implement(new Options);var randomValueCookieMaker=RandomValueCookieMaker;var simpleTemplateParser={STP:{},parseTemplate:function(a,b,c,d){var e=this.STP;e.template=a;e.object=b;e.regexOptions=$pick(c,'ig');e.wrappers=$pick(d,{before:'%',after:'%'});return e.result=this.runParser(e.object,e.template,e.regexOptions)},runParser:function(a,b,c){for(value in a){switch($type(a[value])){case'string':b=this.tmplSubst(value,a[value],b,c);break;case'number':b=this.tmplSubst(value,a[value],b,c);break;case'object':b=this.runParser(a[value]);break;case'array':b=this.tmplSubst(value,a[value].toString(),b,c);break}}return b},tmplSubst:function(a,b,c,d){return c.replace(new RegExp(this.STP.wrappers.before+a+this.STP.wrappers.after,'gi'),b)}};function fixPNG(b){try{if(window.ie6){b=$(b);var c=b.getStyle('display')!='none';if(!c)b.setStyle('display','block');var d=$(b).offsetWidth;var f=$(b).offsetHeight;if(!c)b.hide();var g=new Element('span',{id:(b.id)?b.id:'','class':(b.className)?b.className:'',title:(b.title)?b.title:(b.alt)?b.alt:'',styles:{display:'inline-block',width:d,height:f,filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader (src='"+b.src+"', sizingMethod='scale');"},src:b.src});if(b.style.cssText){try{var h={};var s=b.style.cssText.split(';');s.each(function(a){var n=a.split(':');h[n[0]]=n[1]});g.setStyle(h)}catch(e){dbug.log('fixPNG1: ',e)}}if(g.cloneEvents)g.cloneEvents(b);b.replaceWith(g)}}catch(e){dbug.log('fixPNG2: ',e)}};if(window.ie6)window.addEvent('domready',function(){$$('img.fixPNG').each(function(a){fixPNG(a)})});var IframeShim=new Class({options:{element:false,name:'',className:'iframeShim',display:false,name:'',zindex:false,margin:0,offset:{x:0,y:0},browsers:(window.ie6||(window.gecko&&navigator.userAgent.test('mac','i')))},initialize:function(a){this.setOptions(a);if(this.options.offset&&this.options.offset.top)this.options.offset.y=this.options.offset.top;if(this.options.offset&&this.options.offset.left)this.options.offset.x=this.options.offset.left;this.element=$(this.options.element);if(!this.element)return;else this.makeShim();return},makeShim:function(){this.shim=new Element('iframe');this.id=(this.options.name||new Date().getTime())+"_shim";if(this.element.getStyle('z-Index').toInt()<1||isNaN(this.element.getStyle('z-Index').toInt()))this.element.setStyle('z-Index',5);var z=this.element.getStyle('z-Index')-1;if($chk(this.options.zindex)&&this.element.getStyle('z-Index').toInt()>this.options.zindex)z=this.options.zindex;this.shim.setStyles({'position':'absolute','zIndex':z,'border':'none','filter':'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'}).setProperties({'src':'javascript:void(0);','frameborder':'0','scrolling':'no','id':this.id}).addClass(this.options.className);var a=function(){this.shim.injectInside(document.body);if(this.options.display)this.show();else this.hide();this.fireEvent('onInject')};if(this.options.browsers){if(window.ie&&!IframeShim.ready){window.addEvent('load',a.bind(this))}else{a.bind(this)()}}},position:function(a){if(!this.options.browsers||!IframeShim.ready)return;var b=this.element.getStyle('display')!='none';if(!b)this.element.setStyle('display','block');var c=this.element.getSize().size;var d=this.element.getPosition();if(!b)this.element.setStyle('display','none');if($type(this.options.margin)){c.x=c.x-(this.options.margin*2);c.y=c.y-(this.options.margin*2);this.options.offset.x+=this.options.margin;this.options.offset.y+=this.options.margin}this.shim.setStyles({'width':c.x+'px','height':c.y+'px'}).setPosition({relativeTo:this.element,offset:this.options.offset})},hide:function(){if(!this.options.browsers)return;this.shim.setStyle('display','none')},show:function(){if(!this.options.browsers)return;this.shim.setStyle('display','block');this.position()},remove:function(){if(!this.options.browsers)return;this.shim.remove()}});IframeShim.implement(new Options);IframeShim.implement(new Events);var iframeShim=IframeShim;window.addEvent('load',function(){IframeShim.ready=true});var InputValidator=new Class({initialize:function(b,c){this.setOptions({errorMsg:'Validation failed.',test:function(a){return true}},c);this.className=b},test:function(a){if($(a))return this.options.test($(a),this.getProps(a));else return false},getError:function(a){var b=this.options.errorMsg;if($type(b)=="function")b=b($(a),this.getProps(a));return b},getProps:function(a){if($(a)&&$(a).getProperty('validatorProps')){try{return Json.evaluate($(a).getProperty('validatorProps'))}catch(e){return{}}}else{return{}}}});InputValidator.implement(new Options);var FormValidator=new Class({options:{fieldSelectors:"input, select, textarea",useTitles:false,evaluateOnSubmit:true,evaluateFieldsOnBlur:true,evaluateFieldsOnChange:true,serial:true,warningPrefix:"Warning: ",errorPrefix:"Error: ",onFormValidate:function(a,b){},onElementValidate:function(a,b){}},initialize:function(a,b){this.setOptions(b);try{this.form=$(a);if(this.options.evaluateOnSubmit)this.form.addEvent('submit',this.onSubmit.bind(this));if(this.options.evaluateFieldsOnBlur)this.watchFields()}catch(e){}},getFields:function(){return this.fields=this.form.getElementsBySelector(this.options.fieldSelectors)},watchFields:function(){try{this.getFields().each(function(a){a.addEvent('blur',this.validateField.pass([a,false],this));if(this.options.evaluateFieldsOnChange)a.addEvent('change',this.validateField.pass([a,true],this))},this)}catch(e){}},onSubmit:function(a){if(!this.validate())new Event(a).stop();else{this.stop();this.reset()}},reset:function(){this.getFields().each(this.resetField,this)},validate:function(){var b=this.getFields().map(function(a){return this.validateField(a,true)},this);b=b.every(function(a){return a});this.fireEvent('onFormValidate',[b,this.form]);return b},validateField:function(b,c){if(this.paused)return true;b=$(b);var d=true;var e=this.form.getElement('.validation-failed');var f=this.form.getElement('.warning');if(b&&(!e||c||(e&&!this.options.serial))){var g=b.className.split(" ").some(function(a){return this.getValidator(a)},this);d=b.className.split(" ").map(function(a){return this.test(a,b)},this);d=d.every(function(a){return a});if(g&&!b.hasClass('warnOnly')){if(d)b.addClass('validation-passed').removeClass('validation-failed');else b.addClass('validation-failed').removeClass('validation-passed')}if(!f||c||(f&&!this.options.serial)){var h=b.className.split(" ").some(function(a){if(a.test('^warn-')||b.hasClass('warnOnly'))return this.getValidator(a.replace(/^warn-/,""))},this);b.removeClass('warning');var i=b.className.split(" ").map(function(a){if(a.test('^warn-')||b.hasClass('warnOnly'))return this.test(a.replace(/^warn-/,""),b,true)},this)}}return d},getPropName:function(a){return'__advice'+a},test:function(a,b,c){if(b.hasClass('ignoreValidation'))return true;c=$pick(c,false);if(b.hasClass('warnOnly'))c=true;b=$(b);var d=true;if(b){var e=this.getValidator(a);if(e&&this.isVisible(b)){d=e.test(b);if(!d&&e.getError(b)){if(c)b.addClass('warning');var f=this.makeAdvice(a,b,e.getError(b),c);this.insertAdvice(f,b);this.showAdvice(a,b)}else this.hideAdvice(a,b);this.fireEvent('onElementValidate',[d,b])}}if(c)return true;return d},showAdvice:function(a,b){var c=this.getAdvice(a,b);if(c&&!b[this.getPropName(a)]&&(c.getStyle('display')=="none"||c.getStyle('visiblity')=="hidden"||c.getStyle('opacity')==0)){b[this.getPropName(a)]=true;if(c.smoothShow)c.smoothShow();else c.setStyle('display','block')}},hideAdvice:function(a,b){var c=this.getAdvice(a,b);if(c&&b[this.getPropName(a)]){b[this.getPropName(a)]=false;if(c.smoothHide)c.smoothHide();else c.setStyle('display','none')}},isVisible:function(a){while(a.tagName!='BODY'){if($(a).getStyle('display')=="none")return false;a=a.parentNode}return true},getAdvice:function(a,b){return $('advice-'+a+'-'+this.getFieldId(b))},makeAdvice:function(a,b,c,d){var e=(d)?this.options.warningPrefix:this.options.errorPrefix;e+=(this.options.useTitles)?$pick(b.title,c):c;var f=this.getAdvice(a,b);if(!f){var g=(d)?'warning-advice':'validation-advice';f=new Element('div').addClass(g).setProperty('id','advice-'+a+'-'+this.getFieldId(b)).setStyle('display','none').appendText(e)}else{f.setHTML(e)}return f},insertAdvice:function(a,b){switch(b.type.toLowerCase()){case'radio':var p=$(b.parentNode);if(p){p.adopt(a);break}default:a.injectAfter($(b))}},getFieldId:function(a){return a.id?a.id:a.id="input_"+a.name},resetField:function(c){c=$(c);if(c){var d=c.className.split(" ");d.each(function(a){if(a.test('^warn-'))a=a.replace(/^warn-/,"");var b=this.getPropName(a);if(c[b])this.hideAdvice(a,c);c.removeClass('validation-failed');c.removeClass('warning');c.removeClass('validation-passed')},this)}},stop:function(){this.paused=true},start:function(){this.paused=false},ignoreField:function(a,b){if(a=$(a)){this.enforceField(a);if(b)a.addClass('warnOnly');else a.addClass('ignoreValidation')}},enforceField:function(a){if(a=$(a)){a.removeClass('warnOnly');a.removeClass('ignoreValidation')}}});FormValidator.implement(new Options);FormValidator.implement(new Events);FormValidator.adders={validators:{},add:function(a,b){this.validators[a]=new InputValidator(a,b);if(!this.initialize){this.implement({validators:this.validators})}},addAllThese:function(b){$A(b).each(function(a){this.add(a[0],a[1])},this)},getValidator:function(a){return this.validators[a]}};Object.extend(FormValidator,FormValidator.adders);FormValidator.implement(FormValidator.adders);FormValidator.add('IsEmpty',{errorMsg:false,test:function(a){if(a.type=="select-one"||a.type=="select")return!(a.selectedIndex>=0&&a.options[a.selectedIndex].value!="");else return((a.getValue()==null)||(a.getValue().length==0))}});FormValidator.addAllThese([['required',{errorMsg:function(a){return'This field is required.'},test:function(a){return!FormValidator.getValidator('IsEmpty').test(a)}}],['minLength',{errorMsg:function(a,b){if($type(b.minLength))return'Please enter at least '+b.minLength+' characters (you entered '+a.getValue().length+' characters).';else return''},test:function(a,b){if($type(b.minLength))return(a.getValue().length>=$pick(b.minLength,0));else return true}}],['maxLength',{errorMsg:function(a,b){if($type(b.maxLength))return'Please enter no more than '+b.maxLength+' characters (you entered '+a.getValue().length+' characters).';else return''},test:function(a,b){return(a.getValue().length<=$pick(b.maxLength,10000))}}],['validate-number',{errorMsg:'Please enter a valid number in this field.',test:function(a){return FormValidator.getValidator('IsEmpty').test(a)||!/[^\d+$]/.test(a.getValue())}}],['validate-digits',{errorMsg:'Please use numbers only in this field. Please avoid spaces or other characters such as dots or commas.',test:function(a){return FormValidator.getValidator('IsEmpty').test(a)||(!/[^a-zA-Z]/.test(a.getValue())&&/[\d]/.test(a.getValue()))}}],['validate-alpha',{errorMsg:'Please use letters only (a-z) in this field.',test:function(a){return FormValidator.getValidator('IsEmpty').test(a)||/^[a-zA-Z]+$/.test(a.getValue())}}],['validate-alphanum',{errorMsg:'Please use only letters (a-z) or numbers (0-9) only in this field. No spaces or other characters are allowed.',test:function(a){return FormValidator.getValidator('IsEmpty').test(a)||!/\W/.test(a.getValue())}}],['validate-date',{errorMsg:'Please use this date format: mm/dd/yyyy. For example 03/17/2006 for the 17th of March, 2006.',test:function(a){if(FormValidator.getValidator('IsEmpty').test(a))return true;var b=/^(\d{2})\/(\d{2})\/(\d{4})$/;if(!b.test(a.getValue()))return false;var d=new Date(a.getValue().replace(b,'$1/$2/$3'));return(parseInt(RegExp.$1,10)==(1+d.getMonth()))&&(parseInt(RegExp.$2,10)==d.getDate())&&(parseInt(RegExp.$3,10)==d.getFullYear())}}],['validate-email',{errorMsg:'Please enter a valid email address. For example fred@domain.com .',test:function(a){return FormValidator.getValidator('IsEmpty').test(a)||/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(a.getValue())}}],['validate-url',{errorMsg:'Please enter a valid URL.',test:function(a){return FormValidator.getValidator('IsEmpty').test(a)||/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(a.getValue())}}],['validate-date-au',{errorMsg:'Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.',test:function(a){if(FormValidator.getValidator('IsEmpty').test(a))return true;var b=/^(\d{2})\/(\d{2})\/(\d{4})$/;if(!b.test(a.getValue()))return false;var d=new Date(a.getValue().replace(b,'$2/$1/$3'));return(parseInt(RegExp.$2,10)==(1+d.getMonth()))&&(parseInt(RegExp.$1,10)==d.getDate())&&(parseInt(RegExp.$3,10)==d.getFullYear())}}],['validate-currency-dollar',{errorMsg:'Please enter a valid $ amount. For example $100.00 .',test:function(a){return FormValidator.getValidator('IsEmpty').test(a)||/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(a.getValue())}}],['validate-one-required',{errorMsg:'Please enter something for at least one of the above options.',test:function(b){var p=b.parentNode;var c=p.getElements('input');return $A(c).some(function(a){return a.getValue()})}}]]);var IconMenu=new Class({options:{container:document,images:".iconImgs",captions:".iconCaptions",removeLinks:'',clearLinks:'',useAxis:'x',onFocus:Class.empty,onFocusDelay:0,initialFocusDelay:250,onBlur:Class.empty,onEmpty:Class.empty,onBlurDelay:0,onRemoveItem:Class.empty,onRemoveItems:Class.empty,length:'auto',iconPadding:1,scrollFxOptions:{duration:1800,transition:Fx.Transitions.Cubic.easeInOut},onScroll:Class.empty,onPageForward:Class.empty,onPageBack:Class.empty,backScrollButtons:'#scrollLeft',forwardScrollButtons:'#scrollRight',onSelect:function(a,b){if(!this.borderFx[b.getProperty('id')])this.borderFx[b.getProperty('id')]=b.effects({duration:800});this.borderFx[b.getProperty('id')].start({'border-top-color':'#00A0C6','border-left-color':'#00A0C6','border-right-color':'#00A0C6','border-bottom-color':'#00A0C6'})},onDeSelect:function(a,b){if(!this.borderFx[b.getProperty('id')])this.borderFx[b.getProperty('id')]=b.effects({duration:800});this.borderFx[b.getProperty('id')].start({'border-top-color':'#555','border-left-color':'#555','border-right-color':'#555','border-bottom-color':'#555'})}},initialize:function(c){this.setOptions(c);this.container=$(this.options.container);this.imgs=[];this.captions=[];this.selected=[];var d=($type(this.options.captions)=="string")?this.container.getElements(this.options.captions):this.options.captions;var e=($type(this.options.images)=="string")?this.container.getElements(this.options.images):this.options.images;e.each(function(a,b){this.addItem(a,d[b],null)},this);this.fireEvent('onItemsAdded',this.imgs,50);this.side=(this.options.useAxis=='x')?'left':'top';this.container.setStyle(this.side,this.container.getStyle(this.side).toInt()||0);this.onFocusDelay=this.options.initialFocusDelay;this.setupEvents()},scrollTo:function(a,b){b=$pick(b,true);var c=this.calculateRange();if(a==c.start)return;var d=this.calculateRange(a);if(!d.elements.length)return;if(this.container.getStyle('position')=='static')this.container.setStyle('position','relative');if(!this.scrollerFx)this.scrollerFx=this.container.effect(this.side,$merge(this.options.scrollFxOptions,{wait:false}));if(b){this.scrollerFx.start(-d.elements[0].offset).chain(function(){this.fireEvent('onScroll',[a,d])}.bind(this))}else{this.scrollerFx.set(-d.elements[0].offset);this.fireEvent('onScroll',[a,d])}this.currentOffset=a},pageForward:function(a){var b=this.calculateRange();this.scrollTo(($type(a)=="number")?b.start+a:b.end)},pageBack:function(a){this.scrollTo(($type(a)=="number")?this.currentOffset-a:this.calculateRange(this.currentOffset,true).start)},addItem:function(a,b,c){c=($defined(c))?c:this.imgs.length;if(this.imgs.contains(a))this.removeItems([a],true);this.imgs.splice(c,0,$(a));this.captions.splice(c,0,$(b));var d=a.getProperty('src');if(!a.getProperty('id'))a.setProperty('id',d.substring(d.lastIndexOf('/')+1,d.lastIndexOf('.')));if(a.getProperty("src").test("$png")&&window.ie&&!a.hasClass('fixPNG'))fixPNG(a);this.setupIconEvents(a,b);this.fireEvent('onAdd',[a,b])},removeItems:function(f,g){var h=this.calculateRange();if(!f.length)return;f=f.copy();g=$pick(g,true);var i=[];var j={width:0,'border-width':0};var k={};var l={before:[],after:[]};var m=[];f.each(function(a){var b=this.imgs.indexOf(a);if(b>=h.end){l.after.push(a.getParent())}else if(b<h.start){l.before.push(a.getParent())}else{i.push(a.getParent());k[i.length-1]=$merge(j)}this.selected.remove(a);m.push(b)},this);this.captions=this.captions.filter(function(a,b){return!m.contains(b)});this.imgs=this.imgs.filter(function(a,b){return!m.contains(b)});var n=[];if(l.before.length){var o=this.imgs.indexOf(h.elements[0].image);l.before.each(function(a){this.fireEvent('onRemoveItem',[a]);var b=a.getElement('img');n.push(b.id);try{a.remove()}catch(e){dbug.log('before: error removing element %o, %o',a,e)}},this);this.scrollTo(o,false)}l.after.each(function(a){this.fireEvent('onRemoveItem',[a]);n.push(a.getElement('img').id);try{a.remove()}catch(e){dbug.log('after: error removing element %o, %o',a,e)}});function clean(b,c){var d=[];i.each(function(a){this.fireEvent('onRemoveItem',[a]);d.push(a.getElement('img').id);try{a.remove()}catch(e){dbug.log('fade: error removing element %o, %o',a,e)}},this);d.merge(c);this.fireEvent('onRemoveItems',[d]);var b=this.calculateRange();if(b.elements==0&&b.start>0)this.pageBack();if(!this.imgs.length)this.fireEvent('onEmpty')}if(g)new Fx.Elements(i).start(k).chain(clean.bind(this,[h,n]));else clean.apply(this,[h,n])},removeSelected:function(a){this.removeItems(this.selected,a)},empty:function(c){var d={};var e=[];this.imgs.each(function(a,b){e.push(a.getParent());d[b]={opacity:0}});new Fx.Elements(e).start(d).chain(function(){this.removeItems(this.imgs,false);if(!c)this.fireEvent('onEmpty')}.bind(this))},selectItem:function(a,b){if(!this.borderFx)this.borderFx={};var c=this.imgs[a];var d=c.getProperty('id');if($defined(b)){if(b)c.addClass('selected');else c.removeClass('selected')}else{c.toggleClass('selected')}if(c.hasClass('selected')){this.selected.push(c);this.fireEvent('onSelect',[a,c])}else{this.selected.remove(c);this.fireEvent('onDeSelect',[a,c])}},getDefaultWidth:function(){if($type(this.options.length)=="number")return this.options.length;var a=$(this.options.length);if(!a)a=this.container.getParent();return a.getSize().size[this.options.useAxis]},getIconPositions:function(){var d=[];var e=0;var f;this.imgs.each(function(a,b){var c=a.getParent();e+=(f)?a.offsetLeft-f.offsetLeft:0;f=a;d.push({image:a,size:c.getSize().size[this.options.useAxis],offset:e,container:c})},this);return d},calculateRange:function(b,c){if(!this.imgs.length)return{start:0,end:0,elements:[]};b=$pick(b,this.currentOffset||0);if(b<0)b=0;var d=this.getDefaultWidth();var e=this.getIconPositions();var f;if(e[b]){f=e[b].offset}else{var g=this.imgs.getLast().getParent();var h=g.getCoordinates();f=h.width+h.left-g.getParent().getPosition().x}var j=e.filter(function(a,i){if(c)return i<b&&a.offset<f&&a.offset>=f-d;else return i>=b&&a.offset+a.size<d+e[b].offset});return(c)?{start:b-j.length,end:b,elements:j}:{start:b,end:j.length+b,elements:j}},inRange:function(a){var b=this.calculateRange();return a<b.end&&a>=b.start},setupEvents:function(){$(this.options.container).addEvents({"mouseleave":function(){if(this.inFocus)this.inFocus=null;this.imgOut(null,true)}.bind(this)});$$(this.options.backScrollButtons).each(function(a){a.addEvent('click',this.pageBack.bind(this))},this);$$(this.options.forwardScrollButtons).each(function(a){a.addEvent('click',this.pageForward.bind(this))},this);$$(this.options.clearLinks).each(function(a){a.addEvent('click',this.empty.bind(this))},this);$$(this.options.removeLinks).each(function(a){a.addEvent('click',this.removeSelected.bind(this))},this)},imgOver:function(a){this.inFocus=a;$clear(this.overTimeout);this.overTimeout=(function(){this.onFocusDelay=this.options.onFocusDelay;if(this.inFocus==a)this.fireEvent("onFocus",[a,this.imgs.indexOf(a)])}).delay(this.onFocusDelay,this)},imgOut:function(a,b){if(!$defined(a)&&b)a=this.prevFocus||this.imgs[0];if(this.inFocus==a&&a){this.inFocus=null;$clear(this.outTimeout);this.outTimeout=(function(){this.prevFocus=a;if(this.inFocus!=a||(a==null&&b))this.fireEvent("onBlur",[a,this.imgs.indexOf(a)]);if(!this.inFocus)this.onFocusDelay=this.options.initialFocusDelay}).delay(this.options.onBlurDelay,this)}},setupIconEvents:function(a,b){a.addEvents({click:function(e){e=new Event(e);if(e.control){this.selectItem(this.imgs.indexOf(a));e.stop()}}.bind(this)});a.getParent().addEvents({mouseover:this.imgOver.bind(this,a),mouseout:this.imgOut.bind(this,a)})}});IconMenu.implement(new Events);IconMenu.implement(new Options);var Modalizer=new Class({defaultModalStyle:{display:'block',position:'fixed',top:'0px',left:'0px','z-index':5000,'background-color':'#333',opacity:.8},setModalOptions:function(a){this.modalOptions=$merge({width:(window.getScrollWidth()+300)+'px',height:(window.getScrollHeight()+300)+'px',elementsToHide:'select',onModalHide:Class.empty,onModalShow:Class.empty,hideOnClick:true,modalStyle:{}},this.modalOptions,a||{})},setModalStyle:function(a){this.modalOptions.modalStyle=a;this.modalStyle=$merge(this.defaultModalStyle,{width:this.modalOptions.width,height:this.modalOptions.height},a);if($('modalOverlay'))$('modalOverlay').setStyles(this.modalStyle);return(this.modalStyle)},modalShow:function(a){this.setModalOptions(a||{});var b=null;if($('modalOverlay'))b=$('modalOverlay');if(!b)b=new Element('div').setProperty('id','modalOverlay').injectInside(document.body);b.setStyles(this.setModalStyle(this.modalOptions.modalStyle));if(window.ie6)b.setStyle('position','absolute');$('modalOverlay').removeEvents('click').addEvent('click',function(){this.modalHide(this.modalOptions.hideOnClick)}.bind(this));this.modalOptions.onModalShow();this.togglePopThroughElements(0);b.setStyle('display','block');return this},modalHide:function(a){if(a===false)return;this.togglePopThroughElements(1);this.modalOptions.onModalHide();if($('modalOverlay'))$('modalOverlay').setStyle('display','none');return this},togglePopThroughElements:function(b){if((window.ie6||(window.gecko&&navigator.userAgent.test('mac','i')))){$$(this.modalOptions.elementsToHide).each(function(a){a.setStyle('opacity',b)})}}});var modalizer=Modalizer;function stickyWinHTML(c,d,f){this.options=$merge({width:'300px',css:"div.DefaultStickyWin div.body{font-family:verdana; font-size:11px; line-height: 13px;}"+"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{margin:0px 35px 0px 0px; overflow: hidden; padding:0; font-weight:bold; color:#555; font-size:14px; position:relative; top:8px; left:5px; float: left; height: 22px;}"+"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 30px 8px 0px; margin-left:5px; position:relative; right:-20px}"+"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: 0px 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}",cssClass:'',baseHref:'http://www.cnet.com/html/rb/assets/global/stickyWinHTML/',buttons:[]},f);if(this.options.confirmTxt)this.options.buttons.push({text:this.options.confirmTxt,onClick:this.options.onConfirm||Class.empty});if(this.options.closeTxt)this.options.buttons.push({text:this.options.closeTxt,onClick:this.options.onClose||Class.empty});window.addEvent('domready',function(){try{if(!$('defaultStickyWinStyle')){var a=simpleTemplateParser.parseTemplate(this.options.css,this.options);if(window.ie)a=a.replace(new RegExp('png','gi'),'gif');var b=new Element('style').setProperty('id','defaultStickyWinStyle').injectInside($$('head')[0]);if(!b.setText.attempt(a,b))b.appendText(a)}}catch(e){dbug.log('error: %s',e)}}.bind(this));c=$pick(c,'%caption%');d=$pick(d,'%body');var g=new Element('div').setStyle('width',this.options.width).addClass('DefaultStickyWin');if(this.options.cssClass)g.addClass(this.options.cssClass);var h=new Element('h1').addClass('caption');if($(c))h.adopt(c);else h.setHTML(c);var i=new Element('div').addClass('body');if($(d))i.adopt(d);else i.setHTML(d);g.adopt(new Element('div').addClass('top').adopt(new Element('div').addClass('top_ul')).adopt(new Element('div').addClass('top_ur').adopt(new Element('div').addClass('closeButton').addClass('closeSticky')).adopt(h)));g.adopt(new Element('div').addClass('middle').adopt(i));if(this.options.buttons.length>0){var j=new Element('div').addClass('closeButtons');this.options.buttons.each(function(a){if(a.properties&&a.properties.className){a.properties['class']=a.properties.className;delete a.properties.className}var b=$merge({'class':'closeSticky'},a.properties);new Element('a').addEvent('click',a.onClick||Class.empty).appendText(a.text).injectInside(j).setProperties(b).addClass('button')});g.adopt(new Element('div').addClass('closeBody').adopt(j))}g.adopt(new Element('div').addClass('bottom').adopt(new Element('div').addClass('bottom_ll')).adopt(new Element('div').addClass('bottom_lr')));return g};var StickyWin=new Class({options:{onDisplay:Class.empty,onClose:Class.empty,closeClassName:'closeSticky',pinClassName:'pinSticky',content:'',zIndex:10000,className:'',edge:false,position:'center',offset:{x:0,y:0},relativeTo:document.body,width:false,height:false,timeout:-1,allowMultipleByClass:false,allowMultiple:true,showNow:true,useIframeShim:true,iframeShimSelector:''},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(b){b.id=b.id||'StickyWin_'+new Date().getTime();this.setOptions(b);this.makeWindow();if(this.options.content)this.setContent(this.options.content);if(this.options.showNow)this.show();window.addEvent('domready',function(){try{if(!$('StickyWinClearfix')){var a=new Element('style').setProperty('id','StickyWinClearfix').injectInside($$('head')[0]);if(!a.setText.attempt(this.css,a))a.appendText(this.css)}}catch(e){dbug.log('error: %s',e)}}.bind(this))},makeWindow:function(){this.destroyOthers();if(!$(this.options.id)){this.win=new Element('div').setProperty('id',this.options.id).addClass(this.options.className).addClass('StickyWinInstance').addClass('SWclearfix').setStyles({'display':'none','position':'absolute','zIndex':this.options.zIndex}).injectInside(document.body)}else this.win=$(this.options.id);if(this.options.width&&$type(this.options.width.toInt())=="number")this.win.setStyle('width',this.options.width.toInt()+'px');if(this.options.height&&$type(this.options.height.toInt())=="number")this.win.setStyle('height',this.options.height.toInt()+'px');return this},show:function(){this.fireEvent('onDisplay');if(!this.positioned)this.position();this.showWin();if(this.options.useIframeShim)this.showIframeShim();this.visible=true;return this},showWin:function(){this.win.setStyle('display','block')},hide:function(){this.fireEvent('onClose');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(a){if(!this.options.allowMultiple||(!this.options.allowMultipleByClass&&a.hasClass(this.options.className)))a.remove()},this)}},setContent:function(b){if(this.win.getChildren().length>0)this.win.empty();if($type(b)=="string")this.win.setHTML(b);else if($(b))this.win.adopt(b);this.win.getElements('.'+this.options.closeClassName).each(function(a){a.addEvent('click',this.hide.bind(this))},this);this.win.getElements('.'+this.options.pinClassName).each(function(a){a.addEvent('click',this.togglepin.bind(this))},this);return this},position:function(){this.positioned=true;this.win.setPosition({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(a){if(!this.win.pin){dbug.log('you must include element.pin.js!');return false}this.pinned=$pick(a,true);return this.win.pin(a)},unpin:function(){this.pin(false)},togglepin:function(){this.pin(!this.pinned)},makeIframeShim:function(){if(!this.shim){this.shim=new IframeShim({element:(this.options.iframeShimSelector)?this.win.getElement(this.options.iframeShimSelector):$('StickyWinOverlay')||this.win,display:false,name:'StickyWinShim'})}},showIframeShim:function(){if(this.options.useIframeShim){this.makeIframeShim();this.shim.show()}},hideIframeShim:function(){if(this.options.useIframeShim)this.shim.hide()},destroy:function(){this.win.remove();if(this.options.useIframeShim)this.shim.remove();if($('StickyWinOverlay'))$('StickyWinOverlay').remove()}});StickyWin.implement(new Options);StickyWin.implement(new Events);var stickyWin=StickyWin;var StickyWinFx=StickyWin.extend({options:{fade:true,fadeDuration:150,fadeTransition:Fx.Transitions.sineInOut,draggable:false,dragOptions:{},dragHandleSelector:'h1.caption',resizable:false,resizeOptions:{},resizeHandleSelector:''},setContent:function(a){this.parent(a);if(this.options.draggable)this.makeDraggable();if(this.options.resizable)this.makeResizable();return this},hideWin:function(){if(this.options.fade)this.fade(1,0);else this.win.hide()},showWin:function(){if(this.options.fade){this.fade(0,1)}else this.win.show()},fade:function(a,b){if(!this.fadeFx){this.win.setStyles({opacity:'0',display:'block'});this.fadeFx=this.win.effect('opacity',{duration:this.options.fadeDuration,transition:this.options.fadeTransition})}if(b>0)this.win.setStyle('display','block');this.fadeFx.custom(a,b).chain(function(){if(b==0)this.win.setStyle('display','none')}.bind(this));return this},makeDraggable:function(){dbug.log('you must include Drag.js, cannot make draggable')},makeResizable:function(){dbug.log('you must include Drag.js, cannot make resizable')}});if(typeof Drag!="undefined"){StickyWinFx.implement({makeDraggable:function(){var a=this.toggleVisible(true);if(this.options.useIframeShim){this.makeIframeShim();var b=this.options.dragOptions.onComplete||Class.empty;this.options.dragOptions.onComplete=function(){b();this.shim.position()}.bind(this)}if(this.options.dragHandleSelector){var c=this.win.getElement(this.options.dragHandleSelector);if(c){c.setStyle('cursor','move');this.options.dragOptions.handle=c}}this.win.makeDraggable(this.options.dragOptions);if(a)this.toggleVisible(false)},makeResizable:function(){var a=this.toggleVisible(true);if(this.options.useIframeShim){this.makeIframeShim();var b=this.options.resizeOptions.onComplete||Class.empty;this.options.resizeOptions.onComplete=function(){b();this.shim.position()}.bind(this)}if(this.options.resizeHandleSelector){var c=this.win.getElement(this.options.resizeHandleSelector);if(c)this.options.resizeOptions.handle=this.win.getElement(this.options.resizeHandleSelector)}this.win.makeResizable(this.options.resizeOptions);if(a)this.toggleVisible(false)},toggleVisible:function(a){if(!this.visible&&window.khtml&&$pick(a,true)){this.win.setStyles({display:'block',opacity:0});return true}else if(!$pick(a,false)){this.win.setStyles({display:'none',opacity:1});return false}return false}})}var modalWinBase={initialize:function(a){a=a||{};this.setModalOptions($merge(a.modalOptions||{},{onModalHide:function(){this.hide(false)}.bind(this)}));this.parent(a)},show:function(a){if($pick(a,true))this.modalShow();this.parent()},hide:function(a){if($pick(a,true))this.modalHide();this.parent()}};var StickyWinModal=StickyWin.extend(modalWinBase);StickyWinModal.implement(new Modalizer);var StickyWinFxModal=(typeof StickyWinFx!="undefined")?StickyWinFx.extend(modalWinBase):Class.empty;try{StickyWinFxModal.implement(new Modalizer())}catch(e){}var simpleErrorPopup=function(a,b){b='<p class="errorMsg SWclearfix">'+'<img src="http://www.cnet.com/html/rb/assets/global/simple.error.popup/icon_problems_sm.gif"'+' class="bang clearfix" style="float: left; width: 30px; height: 30px; margin: 3px 5px 5px 0px;">'+b+'</p>';var c=stickyWinHTML(a,b,{width:'250px'});return new StickyWinModal({modalOptions:{modalStyle:{zIndex:11000}},zIndex:110001,content:c,position:'center'})};var DatePicker=new Class({defaultCss:'div.calendarHolder{width:210px; height:182px; padding-left:8px; padding-top:1px; '+'background:url(http://www.cnet.com/html/rb/assets/global/datePicker/calendar.back.png) no-repeat} '+'* html div.calendarHolder {background:url(http://www.cnet.com/html/rb/assets/global/datePicker/calendar.back.gif) no-repeat}'+'table.datePicker * {font-size:11px; line-height:16px;} '+'table.datePicker{margin:6px 0px 0px 0px; width:190px; padding:0px 5px 0px 5px} '+'table.datePicker td{cursor:pointer; text-align:center} '+'table.datePicker img.closebtn{margin-top:2px} '+'tr.dateNav{height:22px; margin-top:8px} '+'tr.dayNames td{color:#666; font-weight:bold; border-bottom:1px solid #ddd} '+'table.datePicker tr.dayRow td:hover{background:#ccc} '+'td.today{color:#bb0904} '+'td.otherMonthDate{border:1px solid #fff; color:#666; background:#f3f3f3} '+'td.selectedDate{border:1px solid #20397b; background:#dcddef}',fullDay:86400000,initialize:function(a,b){var c=(typeof StickyWinFx=="undefined")?StickyWin:StickyWinFx;this.setOptions({calendarId:false,months:["January","February","March","April","May","June","July","August","September","October","November","December"],days:["Su","Mo","Tu","We","Th","Fr","Sa"],stickyWinOptions:{position:"bottomLeft",offset:{x:10,y:10},fadeDuration:400},stickyWinToUse:c,draggable:true,dragOptions:{},additionalShowLinks:[],showOnInputFocus:true,useDefaultCss:true,hideCalendarOnPick:true,onPick:Class.empty,onShow:Class.empty,onHide:Class.empty},b);if(!this.options.calendarId)this.options.calendarId="popupCalendar"+new Date().getTime();this.input=$(a);if(this.options.useDefaultCss)this.writeCss();this.setUpObservers();this.getCalendar()},setUpObservers:function(){if(this.options.showOnInputFocus)this.input.addEvent('focus',this.show.bind(this));try{this.input.addEvent('blur',this.updateInput.bind(this))}catch(e){}this.options.additionalShowLinks.each(function(a){$(a).addEvent('click',this.show.bind(this))},this)},writeCss:function(b){b=$pick(b,this.defaultCss);window.addEvent('domready',function(){try{if(!$('datePickerStyle')){var a=new Element('style').setProperty('id','datePickerStyle').injectInside($$('head')[0]);if(!a.setText.attempt(b,a))a.appendText(b)}}catch(e){dbug.log('error: %s',e)}})},updateInput:function(a){if(!$type(a)=="string"||(a&&!a.getTime))a=this.input.getValue();var b=this.formatDate(this.validDate(a));if($type(b)=="string"){this.input.value=b;return b}return a},validDate:function(a){a=$pick(a,this.input.getValue());a=a.replace(/^\s+|\s+$/g,"");var b=Date.parse(a);if(isNaN(b))b=Date.parse(a.replace(/[^\w\s]/g,"/"));if(isNaN(b))b=Date.parse(a.replace(/[^\w\s]/g,"/")+"/"+new Date().getFullYear());if(!isNaN(b)){var c=new Date(b);if(c.getFullYear()<2000&&a.indexOf(c.getFullYear())<0){c.setFullYear(c.getFullYear()+100)}return c}else return b},formatDate:function(a){try{var b=((a.getUTCMonth()<9)?"0":"")+(a.getUTCMonth()+1)+"/";b+=((a.getUTCDate()<10)?"0":"")+a.getUTCDate()+"/";b+=a.getUTCFullYear();return b}catch(e){return a}},zeroHourGMT:function(a){a.setTime(a.getTime()-a.getTime()%86400000);return a},getCalendar:function(){if(!this.calendar){var a=new Element("table").setProperties({'id':this.options.calendarId,'border':'0','cellpadding':'0','cellspacing':'0'});a.addClass('datePicker');$(a.insertRow(0).insertCell(0)).appendText("x");for(var c=0;c<6;c++)$(a.rows[0]).adopt(a.rows[0].cells[0].cloneNode(true));for(var r=0;r<7;r++)$(a.rows[0].parentNode).adopt(a.rows[0].cloneNode(true));$(a.rows[1]).addClass('dayNames');for(var r=2;r<8;r++)$(a.rows[r]).addClass('dayRow');for(var d=0;d<7;d++)a.rows[1].cells[d].firstChild.data=this.options.days[d];for(var t=6;t>3;t--)a.rows[0].deleteCell(t);$(a.rows[0]).addClass('dateNav');if(!window.ie6)a.rows[0].cells[0].firstChild.data=String.fromCharCode(9668);else a.rows[0].cells[0].firstChild.data="<";a.rows[0].cells[1].colSpan=4;if(!window.ie6)a.rows[0].cells[2].firstChild.data=String.fromCharCode(9658);else a.rows[0].cells[2].firstChild.data=">";a.rows[0].cells[3].firstChild.data=String.fromCharCode(215);$(a.rows[0].cells[3].setHTML('')).adopt(this.getCloseImg());a.addEvent('click',this.clickCalendar.bind(this));this.calendar=a;this.container=new Element('div').adopt(a).addClass('calendarHolder');this.options.stickyWinOptions.content=this.container;this.options.stickyWinOptions.showNow=false;this.options.stickyWinOptions.relativeTo=this.input;this.stickyWin=new this.options.stickyWinToUse(this.options.stickyWinOptions);if(this.options.draggable){try{this.stickyWin.win.makeDraggable(Object.extend(this.options.dragOptions,{handle:a.rows[0].cells[1],onDrag:function(){if(this.stickyWin.shim)this.stickyWin.shim.show.bind(this.stickyWin)}.bind(this)}));a.rows[0].cells[1].setStyle('cursor','move')}catch(e){}}}return this.calendar},getCloseImg:function(){var a=new Element("img").setProperty('src','http://www.cnet.com/html/rb/assets/global/simple.error.popup/closebtn.gif');a.addEvents({'mouseover':function(){a.src=a.src.replace('.gif','_over.gif')},'mouseout':function(){a.src=a.src.replace('_over.gif','.gif')},'click':this.hide.bind(this)}).setStyles({width:'13px',height:'13px'}).addClass('closebtn');return a},hide:function(){this.stickyWin.hide();this.fireEvent('onHide')},show:function(){this.today=this.zeroHourGMT(new Date());this.inputDate=new Date(this.updateInput());this.refDate=isNaN(this.inputDate)?this.today:this.zeroHourGMT(new Date(this.inputDate));this.getCalendar();this.fillCalendar(this.refDate);this.stickyWin.show();this.fireEvent('onShow')},clickCalendar:function(e){e=new Event(e);if(!e.target.firstChild||!e.target.firstChild.data)return;var a=e.target.firstChild.data;if(a.charCodeAt(0)>9600||a=="<"||a==">"){var b=this.calendar.rows[2].cells[0].refDate-this.fullDay;if(a.charCodeAt(0)!=9668&&a!="<")b=this.calendar.rows[7].cells[6].refDate+this.fullDay;this.fillCalendar(new Date(b));return}if(e.target.refDate){var c=new Date(e.target.refDate);this.input.value=this.formatDate(c);this.input.fireEvent("change");this.input.fireEvent("blur");this.fireEvent('onPick');if(this.options.hideCalendarOnPick)this.hide()}},fillCalendar:function(b){var c=new Date(b.getTime());c.setUTCDate(1);c.setTime(c.getTime()-(this.fullDay*c.getUTCDay()));this.calendar.rows[0].cells[1].firstChild.data=this.options.months[b.getUTCMonth()]+" "+b.getUTCFullYear();var e=c;this.calendar.getElements('td').each(function(a){a.removeClass('selectedDate').removeClass('otherMonthDate').removeClass('today')});for(var w=2;w<8;w++)for(var d=0;d<7;d++){var f=this.calendar.rows[w].cells[d];f.firstChild.data=e.getUTCDate();f.refDate=e.getTime();if(e.getTime()==this.today.getTime())f.addClass('today');if(e.getTime()==this.refDate.getTime())f.addClass('selectedDate');if(e.getUTCMonth()!=b.getUTCMonth())f.addClass('otherMonthDate');e.setTime(e.getTime()+this.fullDay)}}});DatePicker.implement(new Options);DatePicker.implement(new Events);var PopupDetail=new Class({visible:false,observed:false,hasData:false,initialize:function(a,b){this.setOptions({observer:false,observerAction:'mouseover',closeOnMouseOut:true,linkPopup:false,data:{},templateOptions:{},useAjax:false,ajaxOptions:{},ajaxLink:false,delayOn:100,delayOff:100,stickyWinOptions:{},stickyWinToUse:StickyWinFx,showNow:false},b);this.html=($(a))?$(a).innerHTML:a;if(this.options.showNow)this.show.delay(this.options.delayOn,this);this.setUpObservers()},setUpObservers:function(){var a=this.options;if($(a.observer)&&a.observerAction){$(a.observer).addEvent(a.observerAction,function(){this.observed=true;this.show.delay(a.delayOn,this)}.bind(this));if(a.observerAction=="mouseover"&&this.options.closeOnMouseOut){$(a.observer).addEvent("mouseout",function(){this.observed=false;this.hide.delay(a.delayOff,this)}.bind(this))}}return this},makePopup:function(){if(!this.stickyWin){var a=this.options;this.content=this.parseTemplate(this.html,a.data);this.stickyWin=new a.stickyWinToUse($merge(a.stickyWinOptions,{relativeTo:a.observer||document.body,showNow:false,content:this.content,allowMultipleByClass:true}));if($(a.linkPopup)||$type(a.linkPopup)=='string'){this.stickyWin.win.setStyle('cursor','pointer').addEvent('click',function(){window.location.href=($type(url)=='string')?url:url.src})}this.stickyWin.win.addEvent('mouseover',function(){this.observed=true}.bind(this));this.stickyWin.win.addEvent('mouseout',function(){this.observed=false;if(a.closeOnMouseOut)this.hide.delay(a.delayOff,this)}.bind(this))}return this},getContent:function(){try{new Ajax((this.options.ajaxLink||this.options.observer.href),$merge(this.options.ajaxOptions,{onComplete:this.show.bind(this)})).request()}catch(e){dbug.log('ajax error on PopupDetail: %s',e)}},show:function(a){var b=this.options;if(a)this.jsonData=a;if(this.observed&&!this.visible){if(b.useAjax&&!this.jsonData){this.cursorStyle=$(b.observer).getStyle('cursor');$(b.observer).setStyle('cursor','wait');this.getContent();return false}else{if(this.cursorStyle)$(b.observer).setStyle('cursor',this.cursorStyle);if(b.useAjax)b.data=Json.evaluate(this.jsonData);this.makePopup();this.stickyWin.show();this.visible=true;return this}}return this},hide:function(){if(!this.observed){if(this.stickyWin)this.stickyWin.hide();this.visible=false}return this}});PopupDetail.implement(simpleTemplateParser);PopupDetail.implement(new Options);var popupDetail=PopupDetail;var PopupDetailCollection=new Class({popupDetailObjs:[],initialize:function(a){this.setOptions({details:[],observers:[],links:[],ajaxLinks:[],template:'',popupDetailOptions:{}},a);var b=this.options.ajaxLinks.length;if(b<=0)b=this.options.details.length;if(this.options.observers.length!=b)dbug.log("warning: observers and details are out of synch");this.makePopupDetails()},makePopupDetails:function(){this.popupDetailObjs=this.options.observers.map(function(a,b){var c=this.options.popupDetailOptions;var d=new PopupDetail(this.options.template,$merge(c,{data:$pick(this.options.details[b],{}),observer:this.options.observers[b],linkItem:$pick(this.options.links[b],$pick(c.linkItem,false)),ajaxLink:$pick(this.options.ajaxLinks[b],false)}));return d},this)}});PopupDetailCollection.implement(new Options);var popupDetails=new Class({initialize:function(a){var b=Object.extend(a,{popupDetailOptions:{stickyWinOptions:{position:$pick(a.observeCorner,'upperLeft'),offset:{x:a.offsetx||0,y:a.offsety||0},useIframeShim:(a.iframeShimSelector)?true:false}},delayOn:$pick(a.effectDelayOn,0),delayOff:$pick(a.effectDelayOff,0)});var c=new popupDetailCollection(b);return c}});var popDetailsList=popupDetails;var CNETcarousel=new Class({initialize:function(a,b){this.container=$(a);if(!this.container.hasClass('hasCarousel')){this.container.addClass('hasCarousel');this.slides=[];this.buttons=[];this.setOptions({onRotate:Class.empty,onStop:Class.empty,onAutoPlay:Class.empty,onShowSlide:Class.empty,slidesSelector:".slide",buttonsSelector:".button",slideInterval:4000,transitionDuration:700,startIndex:0,buttonOnClass:"selected",buttonOffClass:"off",rotateAction:"none",rotateActionDuration:100,autoplay:true},b);this.slides=$(a).getElements(this.options.slidesSelector);this.buttons=$(a).getElements(this.options.buttonsSelector);this.createFx();this.showSlide(this.options.startIndex);if(this.options.autoplay)this.autoplay();if(this.options.rotateAction!='none')this.setupAction(this.options.rotateAction);return this}else return false},setupAction:function(c){this.buttons.each(function(a,b){$(a).addEvent(c,function(){this.slideFx.setOptions(this.slideFx.options,{duration:this.options.rotateActionDuration});if(this.currentSlide!=b)this.showSlide(b);this.stop()}.bind(this))},this)},createFx:function(){this.slideFx=new Fx.Elements(this.slides,{duration:this.options.transitionDuration});this.slides.each(function(a){a.setStyle('opacity',0)})},showSlide:function(c){var d={};this.slides.each(function(a,b){if(b==c&&b!=this.currentSlide){$(this.buttons[b]).removeClass(this.options.buttonOffClass).addClass(this.options.buttonOnClass);d[b.toString()]={'opacity':[1]}}else{$(this.buttons[b]).removeClass(this.options.buttonOnClass).addClass(this.options.buttonOffClass);d[b.toString()]={'opacity':[0]}}},this);this.fireEvent('onShowSlide',c);this.currentSlide=c;this.slideFx.start(d)},autoplay:function(){this.createFx();this.slideshowInt=this.rotate.periodical(this.options.slideInterval,this);this.fireEvent('onAutoPlay')},stop:function(){clearInterval(this.slideshowInt);this.fireEvent('onStop')},rotate:function(){current=this.currentSlide;next=(current+1>=this.slides.length)?0:current+1;this.showSlide(next);this.fireEvent('onRotate')},show:function(){$(this.options.carouselContainer).setStyle('visibility','visible');if(!$(this.options.carouselContainer).isVisible())$(this.options.carouselContainer).setStyle('display','block')},hide:function(){$(this.options.carouselContainer).setStyle('visibility','hidden')}});CNETcarousel.implement(new Options);CNETcarousel.implement(new Events);var CNETcarouselWithButtons=CNETcarousel.extend({initialize:function(a,b){this.parent(a,$merge({bubbleButtonBGImgSelector:'.bbg',buttonOnGifSrc:'http://i.i.com.com/cnwk.1d/i/fd/c/green_button.gif',buttonOffGifSrc:'http://i.i.com.com/cnwk.1d/i/fd/c/gray_button.gif'},b))},showSlide:function(c){this.buttons.each(function(a,b){$(a).getElement(this.options.bubbleButtonBGImgSelector).src=(b==c)?this.options.buttonOnGifSrc:this.options.buttonOffGifSrc},this);this.parent(c)}});var carousel=null;window.addEvent('domready',function(){if($('Carousel')){carousel=new CNETcarouselWithButtons($('Carousel'),{buttonsSelector:'.bubble',rotateAction:'mouseover'})}});var MultipleOpenAccordion=Fx.Elements.extend({options:{openAll:true,allowMultipleOpen:true,firstElementsOpen:[0],start:'open-first',fixedHeight:false,fixedWidth:false,alwaysHide:true,wait:false,onActive:Class.empty,onBackground:Class.empty,height:true,opacity:true,width:false},initialize:function(b,c,d){this.parent(c,d);this.setOptions(d);this.previousClick=null;this.elementsVisible=[];b.each(function(a,i){$(a).addEvent('click',function(){this.toggleSection(i)}.bind(this))},this);this.togglers=b;this.h={};this.w={};this.o={};this.now=[];this.elements.each(function(a,i){a=$(a);this.now[i]={};a.setStyle('overflow','hidden');if(!(this.options.openAll&&this.options.allowMultipleOpen))a.setStyle('height',0)},this);if(!this.options.openAll||!this.options.allowMultipleOpen){switch(this.options.start){case'first-open':this.showSection(this.options.firstElementsOpen[0]);break;case'open-first':this.toggleSection(this.options.firstElementsOpen[0]);break}}if(this.options.openAll&&this.options.allowMultipleOpen)this.showAll();else if(this.options.allowMultipleOpen)this.openSections(this.options.firstElementsOpen)},hideThis:function(i){this.elementsVisible[i]=false;if(this.options.height)this.h={'height':[this.elements[i].offsetHeight,0]};if(this.options.width)this.w={'width':[this.elements[i].offsetWidth,0]};if(this.options.opacity)this.o={'opacity':[this.now[i]['opacity']||1,0]};this.fireEvent("onBackground",[this.togglers[i],this.elements[i]])},showThis:function(i){this.elementsVisible[i]=true;if(this.options.height)this.h={'height':[this.elements[i].offsetHeight,this.options.fixedHeight||this.elements[i].scrollHeight]};if(this.options.width)this.w={'width':[this.elements[i].offsetWidth,this.options.fixedWidth||this.elements[i].scrollWidth]};if(this.options.opacity)this.o={'opacity':[this.now[i]['opacity']||0,1]};this.fireEvent("onActive",[this.togglers[i],this.elements[i]])},toggleSection:function(c){if(c!=this.previousClick||this.options.alwaysHide||this.options.allowMultipleOpen){this.previousClick=c;var d={};var e=false;this.elements.each(function(a,i){var b=false;this.now[i]=this.now[i]||{};if(i==c){if(this.elementsVisible[i]&&(this.options.allowMultipleOpen||this.options.alwaysHide)){if(!(this.options.wait&&this.timer)){b=true;this.hideThis(i)}else{this.previousClick=null;e=true}}else if(!this.elementsVisible[i]){if(!(this.options.wait&&this.timer)){b=true;this.showThis(i)}else{this.previousClick=null;e=true}}}else if(this.elementsVisible[i]&&!this.options.allowMultipleOpen){if(!(this.options.wait&&this.timer)){b=true;this.hideThis(i)}else{this.previousClick=null;e=true}}if(b)d[i]=$merge(this.h,$merge(this.o,this.w))},this);if(e)return false;return this.custom(d)}return false},showSection:function(i,a){if($pick(a,false)){if(!this.elementsVisible[i])this.toggleSection(i)}else{this.setSectionStyle(i,$(this.elements[i]).scrollWidth,$(this.elements[i]).scrollHeight,1);this.elementsVisible[i]=true;this.fireEvent("onActive",[this.togglers[i],this.elements[i]])}},hideSection:function(i,a){if($pick(a,false)){if(this.elementsVisible[i])this.toggleSection(i)}else{this.setSectionStyle(i,0,0,0);this.elementsVisible[i]=false;this.fireEvent("onBackground",[this.togglers[i],this.elements[i]])}},setSectionStyle:function(i,w,h,o){if(this.options.opacity)$(this.elements[i]).setOpacity(o);if(this.options.height)$(this.elements[i]).setStyle('height',h+'px');if(this.options.width)$(this.elements[i]).setStyle('width',w+'px')},showAll:function(){if(this.options.allowMultipleOpen){this.elements.each(function(a,b){this.showSection(b,false)},this)}},hideAll:function(){if(this.options.allowMultipleOpen){this.elements.each(function(a,b){this.hideSection(b,false)},this)}},openSections:function(c){if(this.options.allowMultipleOpen){this.elements.each(function(a,b){if(c.test(b))this.showSection(b,false);else this.hideSection(b,false)},this)}}});MultipleOpenAccordion.implement(new Options);MultipleOpenAccordion.implement(new Events);var MooScroller=new Class({options:{mode:'vertical',width:0,scrollSteps:10,wheel:true,scrollLinks:{forward:'scrollForward',back:'scrollBack'},onScroll:Class.empty},initialize:function(c,d,e){this.setOptions(e);this.horz=(this.options.mode=="horizontal");this.container=$(c).setStyle('overflow','hidden');this.content=new Element('div',{'class':'ScrollerWrapper',styles:{overflow:'visible'}}).injectInside(this.container);this.container.getChildren().each(function(a){if(a==this.content)return;this.content.adopt(a)},this);this.scrollBar=$(d);this.sizeScrollBar();this.makeSlider();this.setupWheel();var f;['forward','back'].each(function(a){var b=$(this.options.scrollLinks[a]);if(b){b.addEvents({mousedown:function(){f=this[a].periodical(50,this)}.bind(this),mouseup:function(){$clear(f)}.bind(this)})}},this);var g=(this.horz?"offsetWidth":"offsetHeight");var h=this.content[g]},sizeScrollBar:function(){if(!this.isOverFlown())return this.scrollBar.hide();else this.scrollBar.show();var a=(this.horz)?"width":"height";if(this.horz){this.scrollBar.setStyle("width",(this.scrollBar.getParent().getCoordinates().width/(this.options.width/this.container.getCoordinates().width)).toInt()+'px')}else{this.scrollBar.setStyle("height",(this.scrollBar.getParent().getCoordinates().height/(this.content.getCoordinates().height/this.container.getCoordinates().height)).toInt()+'px')}return this.scrollBar},scroll:function(a,b){b=b||this.options.scrollSteps;this.slider.set(this.slider.step+((a=="forward")?+b:-b))},forward:function(a){this.scroll("forward",a)},back:function(a){this.scroll("back",a)},page:function(a){this.fireEvent('onPage',a);this.scroll(($pick(a,true))?"forward":"back",(this.horz)?this.options.width:this.container.offsetHeight)},setupWheel:function(){if(this.options.wheel){var a=function(e){e=new Event(e);if(e.wheel<0)this.forward();else if(e.wheel>0)this.back();e.stop()};this.container.addEvent('mousewheel',a.bind(this));this.scrollBar.getParent().addEvent('mousewheel',a.bind(this))}},isOverFlown:function(){var a=(this.horz)?"width":"height";return(this.horz)?this.options.width>this.container.getCoordinates().width:this.content.getCoordinates().height>this.container.getCoordinates().height},makeSlider:function(){var c=Slider.extend({clickedElement:function(a){var b=a.page[this.z]-this.getPos()-this.half;b=b.limit(-this.options.offset,this.max-this.options.offset);this.fireEvent('onPage',[this.toStep(b),this.step])}});var d=(this.horz)?"width":"height";this.slider=new c(this.scrollBar.getParent(),this.scrollBar,{steps:(this.horz)?this.options.width-this.container['offset'+d.capitalize()]:this.content['offset'+d.capitalize()]-this.container['offset'+d.capitalize()],mode:this.options.mode,onChange:function(a){this.content.setStyle((this.horz)?'margin-left':'margin-top',((this.isOverFlown())?a-(a*2):0)+'px');this.fireEvent('onScroll',a)}.bind(this),onPage:function(a,b){this.page(a>(b||0))}.bind(this)});if(this.isOverFlown())this.slider.set(0)},update:function(){this.sizeScrollBar();var s=this.slider;var a=(this.horz)?'Width':'Height';s.options.steps=(this.horz)?this.options.width-this.container['offset'+a]:this.content['offset'+a]-this.container['offset'+a];s.max=s.element['offset'+a]-s.knob['offset'+a];s.half=s.knob['offset'+a]/2;s.getPos=s.element['get'+((a=="Width")?'Left':'Top')].bind(s.element);s.drag.options.limit[(a=="Width")?'x':'y']=[0,s.max];this.slider.set(this.slider.step||0)}});MooScroller.implement(new Options);MooScroller.implement(new Events);function imgMouseOverEvents(b,c,d){$$(d).each(function(a){a=$(a);if($type(a.src)){if(a.src.indexOf(b)>0){a.addEvent('mouseover',function(){a.src=a.src.replace(b,c)}).addEvent('mouseout',function(){a.src=a.src.replace(c,b)})}}})};window.addEvent('domready',function(){imgMouseOverEvents('_off','_over','img.autoMouseOverOff, input.autoMouseOverOff')});window.addEvent('domready',function(){imgMouseOverEvents('_off','_on','img.autoMouseOver, input.autoMouseOver')});function tabMouseOvers(c,d,e,f,g){$$(e).each(function(b){b.applyToBoth=$pick(g,false);if(g&&f){b.getElementsBySelector(f).each(function(a){a.addClass(d).removeClass(c)})}b.addClass(d).removeClass(c);b.addEvent('mouseover',function(){this.addClass(c).removeClass(d);if(g&&f){this.getElementsBySelector(f).each(function(a){a.addClass(c).removeClass(d)})}});b.addEvent('mouseout',function(){this.addClass(d).removeClass(c);if(g&&f){$A(this.getElementsBySelector(f)).each(function(a){a.addClass(d).removeClass(c)})}})})};var TabSwapper=new Class({options:{selectedClass:'tabSelected',mouseoverClass:'tabOver',deselectedClass:'',rearrangeDOM:true,tabs:[],clickers:[],sections:[],initPanel:0,smooth:false,effectOptions:{duration:500},cookieName:null,cookieDays:999,onActive:Class.empty,onActiveAfterFx:Class.empty,onBackground:Class.empty},initialize:function(a){this.tabs=[];this.sections=[];this.clickers=[];a=this.compatability(a);this.setOptions(a);this.sectionOpacities=[];this.setup();if(this.options.cookieName&&this.recall())this.swap(this.recall().toInt());else this.swap(this.options.initPanel)},compatability:function(a){if(a.tabSelector){a.tabs=$$(a.tabSelector);a.sections=$$(a.sectionSelector);a.clickers=$$(a.clickSelector)}return a},setup:function(){var c=this.options;sections=$$(c.sections);tabs=$$(c.tabs);clickers=$$(c.clickers);tabs.each(function(a,b){this.addTab(a,sections[b],clickers[b],b)},this)},addTab:function(a,b,c,d){a=$(a);c=$(c);b=$(b);if(this.tabs.indexOf(a)>=0&&a.getProperty('tabbered')&&this.tabs.indexOf(a)!=d&&this.options.rearrangeDOM){this.moveTab(this.tabs.indexOf(a),d);return}if(!$defined(d))d=this.tabs.length;if(d>0&&this.tabs[d-1]&&this.options.rearrangeDOM){a.injectAfter(this.tabs[d-1]);b.injectAfter(this.sections[d-1])}this.tabs.splice(d,0,a);this.sections.splice(d,0,b);c=c||a;this.clickers.splice(d,0,c);a.addEvent('mouseout',function(){a.removeClass(this.options.mouseoverClass)}.bind(this)).addEvent('mouseover',function(){a.addClass(this.options.mouseoverClass)}.bind(this));c.addEvent('click',function(){this.swap(this.clickers.indexOf(c))}.bind(this));a.setProperty('tabbered',true);this.hideSection(d);return},removeTab:function(a){var b=this.tabs[this.now];if(this.now==a){if(a>0)this.swap(a-1);else if(a<this.tabs.length)this.swap(a+1)}this.sections.splice(a,1);this.tabs.splice(a,1);this.clickers.splice(a,1);this.sectionOpacities.splice(a,1);this.now=this.tabs.indexOf(b)},moveTab:function(a,b){var c=this.tabs[a];var d=this.clickers[a];var e=this.sections[a];var f=this.tabs[b];var g=this.clickers[b];var h=this.sections[b];this.tabs.remove(c).splice(b,0,c);this.clickers.remove(d).splice(b,0,d);this.sections.remove(e).splice(b,0,e);c.injectBefore(f);d.injectBefore(g);e.injectBefore(h)},swap:function(c){this.sections.each(function(a,b){if(c==b)this.showSection(b);else this.hideSection(b)},this);if(this.options.cookieName)this.save(c)},save:function(a){Cookie.set(this.options.cookieName,a,{duration:this.options.cookieDays})},recall:function(){return $pick(Cookie.get(this.options.cookieName),false)},hideSection:function(a){this.sections[a].setStyle('display','none');this.tabs[a].removeClass(this.options.selectedClass).addClass(this.options.deselectedClass);this.fireEvent('onBackground',[a,this.sections[a],this.tabs[a]])},showSection:function(a){var b=this.sections[a];if(this.now!=a){if(!this.sectionOpacities[a])this.sectionOpacities[a]=this.sections[a].effect('opacity',this.options.effectOptions);b.setStyles({display:'block',opacity:0});if(this.options.smooth&&(!window.ie6||(window.ie6&&b.fxOpacityOk())))this.sectionOpacities[a].start(0,1).chain(function(){this.fireEvent('onActiveAfterFx',[a,this.sections[a],this.tabs[a]])}.bind(this));else if(b.getStyle('opacity')<1){this.sectionOpacities[a].set(1);this.fireEvent('onActiveAfterFx',[a,this.sections[a],this.tabs[a]])}this.now=a;this.fireEvent('onActive',[a,this.sections[a],this.tabs[a]])}this.tabs[a].addClass(this.options.selectedClass).removeClass(this.options.deselectedClass)}});TabSwapper.implement(new Options);TabSwapper.implement(new Events);var tabSwapper=TabSwapper;var SimpleSlideShow=new Class({options:{startIndex:0,slides:[],currentSlideClass:'currentSlide',currentIndexContainer:false,maxContainer:false,nextLink:false,prevLink:false,wrap:true,disabledLinkClass:'disabled',onNext:Class.empty,onPrev:Class.empty,onSlideClick:Class.empty,crossFadeOptions:{}},initialize:function(a){this.setOptions(a);this.slides=this.options.slides;this.makeSlides();this.setCounters();this.setUpNav();this.now=this.options.startIndex;if(this.slides.length>0)this.showSlide(this.now)},setCounters:function(){if($(this.options.currentIndexContainer))$(this.options.currentIndexContainer).setHTML(this.now+1);if($(this.options.maxContainer))$(this.options.maxContainer).setHTML(this.slides.length)},makeSlides:function(){this.slides.each(function(a,b){if(b!=this.now)a.setStyle('display','none');else a.setStyle('display','block');this.makeSlide(a)},this)},makeSlide:function(a){a.addEvent('click',function(){this.fireEvent('onSlideClick')}.bind(this))},setUpNav:function(){if($(this.options.nextLink))$(this.options.nextLink).addEvent('click',function(){this.cycleForward()}.bind(this));if($(this.options.prevLink))$(this.options.prevLink).addEvent('click',function(){this.cycleBack()}.bind(this))},cycleForward:function(){if($type(this.now)&&this.now<this.slides.length-1)this.showSlide(this.now+1);else if($type(this.now)&&this.options.wrap)this.showSlide(0);else this.showSlide(this.options.startIndex);this.fireEvent('onNext');if(this.now==this.slides.length&&!this.options.wrap&&$(this.options.nextLink))$(this.options.nextLink).addClass(this.options.disabledLinkClass);else if($(this.options.nextLink))$(this.options.nextLink).removeClass(this.options.disabledLinkClass)},cycleBack:function(){if(this.now>0)this.showSlide(this.now-1);else if(this.options.wrap)this.showSlide(this.slides.length-1);this.fireEvent('onPrev');if(this.now==0&&!this.options.wrap&&$(this.options.prevSlide))$(this.options.prevSlide).addClass(this.options.disabledLinkClass);else if($(this.options.prevSlide))$(this.options.prevSlide).removeClass(this.options.disabledLinkClass)},showSlide:function(b){var c=this.now;var s=this.slides[b];function fadeIn(s,a){s.setStyle('display','block');if(s.fxOpacityOk()){if(a)s.setStyle('opacity',0);s.effect('opacity',this.options.crossFadeOptions).start(1)}};if(s){if($type(this.now)&&this.now!=b){if(s.fxOpacityOk()){this.slides[this.now].effect('opacity',this.options.crossFadeOptions).start(0).chain(function(){this.slides[c].setStyle('display','none');s.addClass(this.options.currentSlideClass);fadeIn.bind(this,[s,true])()}.bind(this))}else{this.slides[this.now].setStyle('display','none');fadeIn.bind(this,s)()}}else fadeIn.bind(this,s)();this.now=b;this.setCounters()}},slideClick:function(){this.fireEvent('onSlideClick',[this.slides[this.now],this.now])}});SimpleSlideShow.implement(new Events);SimpleSlideShow.implement(new Options);var SimpleImageSlideShow=SimpleSlideShow.extend({options:{imgUrls:[],imgClass:'screenshot',container:false},initialize:function(b){this.parent(b);this.options.imgUrls.each(function(a){this.addImg(a)},this);this.showSlide(this.options.startIndex)},addImg:function(a){if($(this.options.container)){var b=new Element('img').setProperties({'src':a,'id':this.options.imgClass+this.slides.length}).addClass(this.options.imgClass).setStyle('display','none').injectInside($(this.options.container)).addEvent('click',this.slideClick.bind(this));this.slides.push(b);this.makeSlide(b);this.setCounters()}}});var JsonP=new Class({options:{onComplete:Class.empty,callBackKey:"callback",queryString:"",data:{},timeout:5000,retries:0},initialize:function(a,b){this.setOptions(b);this.url=this.makeUrl(a).url;this.fired=false;this.scripts=[];this.requests=0;this.triesRemaining=[]},request:function(b,c){var u=this.makeUrl(b);if(!$chk(c)){c=this.requests;this.requests++}if(!$chk(this.triesRemaining[c]))this.triesRemaining[c]=this.options.retries;var d=this.triesRemaining[c];dbug.log('retrieving by json script method: %s',u.url);var f=(window.ie)?50:0;(function(){var a=new Asset.javascript(u.url,{id:'jsonp_'+u.index+'_'+c});this.fired=true;this.addEvent('onComplete',function(){try{a.remove()}catch(e){}}.bind(this));if(d){(function(){this.triesRemaining[c]=d-1;if(a.getParent()&&d){dbug.log('removing script (%o) and retrying: try: %s, remaining: %s',c,d);a.remove();this.request(b,c)}}).delay(this.options.timeout,this)}}.bind(this)).delay(f)},makeUrl:function(a){var b=(JsonP.requestors.contains(this))?JsonP.requestors.indexOf(this):JsonP.requestors.push(this)-1;if(a){var c=(a.test('\\?'))?'&':'?';var d=a+c+this.options.callBackKey+"=JsonP.requestors["+b+"].handleResults";if(this.options.queryString)d+="&"+this.options.queryString;d+="&"+Object.toQueryString(this.options.data)}else var d=this.url;return{url:d,index:b}},handleResults:function(a){dbug.log('jsonp received: ',a);this.fireEvent('onComplete',a)}});JsonP.requestors=[];JsonP.implement(new Options);JsonP.implement(new Events);var Picklet=new Class({initialize:function(a,b){this.setOptions(b);this.className=a;this.getQuery=this.options.getQuery}});Picklet.implement(new Options);var ProductPicker=new Class({options:{onShow:Class.empty,onPick:Class.empty,title:'Product picker',showOnFocus:true,additionalShowLinks:[],stickyWinToUse:StickyWinFx,stickyWinOptions:{fadeDuration:200,draggable:true},moveIntoView:true},initialize:function(a,b,c){this.setOptions(c);this.input=$(a);this.picklets=b;this.setUpObservers();this.writeCss()},writeCss:function(){var a="div.productPickerProductDiv div.results { overflow: 'auto'; width: 100%; margin-top: 4px }"+"div.productPickerProductDiv select { margin: 4px 0px 4px 0px}"+"div.pickerPreview div.sliderContent img {border: 1px solid #000}"+"div.pickerPreview div.sliderContent a {color: #0d63a0}";try{if(!$('pickerStyles')){var b=new Element('style').setProperty('id','pickerStyles').injectInside($$('head')[0]);if(!b.setText.attempt(a,b))b.appendText(a)}}catch(e){dbug.log('error: %s',e)}},getPickletList:function(){if(this.picklets.length>1){var d=new Element('select').setStyle('width','399px');this.picklets.each(function(a,b){var c=new Element('option').setProperty('value',b);c.text=a.options.descriptiveName;d.adopt(c)},this);d.addEvent('change',function(){this.showForm(this.picklets[d.getValue()]);this.focusInput(true)}.bind(this));return d}else return false},buildPicker:function(a){var b=new Element('div');this.formBody=new Element('div');this.pickletList=this.getPickletList();if(this.pickletList)b.adopt(this.pickletList);b.adopt(this.formBody);var c=stickyWinHTML(this.options.title,b,{width:'450px',closeTxt:'close'}).addClass('productPickerProductDiv');this.showForm();return c},showForm:function(a){this.form=this.makeSearchForm(a||this.picklets[0]);this.formBody.setHTML('').adopt(this.form);this.results=new Element('div').addClass('results');this.formBody.adopt(this.results);this.sliderFx=null},makeSlider:function(){var a=(window.ie)?'gif':'png';this.slider=new Element('div').addClass('pickerPreview').setStyles({background:'url(http://www.cnet.com/html/rb/assets/global/Picker/slider.'+a+') top right no-repeat',display:'none',height:'250px',left:'439px',position:'absolute',top:'25px',width:'0px',overflow:'hidden'}).injectInside(this.swin.win).addEvent('mouseover',function(){this.previewHover=true}.bind(this)).addEvent('mouseout',function(){this.previewHover=false;(function(){if(!this.previewHover)this.hidePreview()}).delay(400,this)}.bind(this));this.sliderContent=new Element('div').injectInside(this.slider).setStyles({width:'130px',height:'200px',padding:'10px',margin:'10px 10px 0px 0px',overflow:'auto',cssFloat:'right'}).addClass('sliderContent')},makeSearchForm:function(c){this.currentPicklet=c;var d=new Element('table').setStyle('width','100%').setProperties({cellpadding:'0',cellspacing:'0'});var f=new Element('tbody').injectInside(d);var g=new Element('form').addEvent('submit',function(e){this.getResults(new Event(e).target,c)}.bind(this)).adopt(d).setProperty('action','javascript:void(0);');$each(c.options.inputs,function(a,b){f.adopt(this.getSearchInputTr(a,b))},this);return g},getSearchInputTr:function(d,f){try{var g=($type(d.style))?d.style:{};var h=(window.ie)?new Element('<'+d.tagName+' name="'+f+'" />'):new Element(d.tagName).setProperty('name',f);h.setStyles(g);if(d.type)h.setProperty('type',d.type);if(d.tip&&Tips){h.setProperty('title',d.tip);new Tips([h],{onShow:function(a){this.shown=true;(function(){if(this.shown)$(a).setStyles({display:'block',opacity:0}).effect('opacity',{duration:300}).start(0,.9)}).delay(500,this)},onHide:function(a){a.setStyle('visibility','hidden');this.shown=false}})}if(d.tagName=="select"){d.value.each(function(a,b){var c=new Element('option').setProperty('value',a);c.text=(d.optionNames&&d.optionNames[b])?$pick(d.optionNames[b],a):a;h.adopt(c)})}else h.value=$pick(d.value,"");var i=new Element('tr');var j=0;if(d.instructions)i.adopt(new Element('td').setHTML(d.instructions));else j=2;var k=new Element('td').adopt(h);if(j)k.setProperty('colspan',j);i.adopt(k);return i}catch(e){dbug.log(e);return false}},getResults:function(a,b){var c=b.getQuery(a.toQueryString().parseQuery());c.addEvent('onComplete',this.showResults.bind(this));c.request()},showResults:function(e){var f=false;if(this.results.innerHTML==''){f=true;this.results.setStyles({height:'0px',border:'1px solid #666',padding:'0px',overflow:'auto',opacity:0})}else this.results.setHTML('');this.items=this.currentPicklet.options.resultsList(e);if(this.items&&this.items.length>0){this.items.each(function(a,b){var c=this.currentPicklet.options.listItemName(a);var d=this.currentPicklet.options.listItemValue(a);this.results.adopt(this.makeProductListEntry(c,d,b))},this)}else this.results.setHTML("Sorry, there don't seem to be any items for that search");this.results.effects().start({height:200,opacity:1});this.listStyles();this.getOnScreen.delay(500,this)},getOnScreen:function(){if(document.compatMode=="BackCompat")return;var s=this.swin.win.getCoordinates();if(s.top<window.getScrollTop()){this.swin.win.effect('top').start(window.getScrollTop()+50);return}if(s.top+s.height>window.getScrollTop()+window.getHeight()&&window.getHeight()>s.height){this.swin.win.effect('top').start(window.getScrollTop()+window.getHeight()-s.height-100);return}try{this.swin.shim.show.delay(500,this.swin.shim)}catch(e){}return},listStyles:function(){var b={cursor:'pointer',borderBottom:'1px solid #ddd',padding:'2px 8px 2px 8px',backgroundColor:'#fff',color:'#000',fontWeight:'normal'};var c={backgroundColor:'#fcfbd1',color:'#d56a00'};var d=$merge(b,{color:'#D00000',fontWeight:'bold',backgroundColor:'#eee'});this.results.getElements('div.productPickerProductDiv').each(function(p){var a=(this.input.value.toInt()==p.getProperty('val').toInt())?d:b;p.setStyles(a);if(!window.ie){p.addEvent('mouseover',function(){p.setStyles(c)}.bind(this));p.addEvent('mouseout',function(){p.setStyles(a)})}},this)},makeProductListEntry:function(b,c,d){var f=new Element("div").addClass('productPickerProductDiv').adopt(new Element("div").setHTML(b)).setProperty('val',c);f.addEvent('mouseover',function(e){this.preview=true;this.sliderContent.setHTML("");var a=this.getPreview(d);if($type(a)=="string")this.sliderContent.setHTML(a);else if($(a))this.sliderContent.adopt(a);this.showPreview.delay(200,this)}.bind(this));f.addEvent('mouseout',function(e){this.preview=false;(function(){if(!this.previewHover)this.hidePreview()}).delay(400,this)}.bind(this));f.addEvent('click',function(){this.currentPicklet.options.updateInput(this.input,this.items[d]);this.fireEvent('onPick',[this.input,this.items[d],this]);this.hide();this.listStyles.delay(200,this)}.bind(this));return f},makeStickyWin:function(){if(document.compatMode=="BackCompat")this.options.stickyWinOptions.relativeTo=this.input;this.swin=new this.options.stickyWinToUse($merge(this.options.stickyWinOptions,{draggable:true,content:this.buildPicker()}))},focusInput:function(a){if((!this.focused||$pick(a,false))&&this.form.getElement('input')){this.focused=true;try{this.form.getElement('input').focus()}catch(e){}}},show:function(){if(!this.swin)this.makeStickyWin();if(!this.slider)this.makeSlider();if(!this.swin.visible)this.swin.show();this.focusInput()},hide:function(){$$('.tool-tip').hide();this.swin.hide();this.focused=false},setUpObservers:function(){try{if(this.options.showOnFocus)this.input.addEvent('focus',this.show.bind(this));if(this.options.additionalShowLinks.length>0){this.options.additionalShowLinks.each(function(a){$(a).addEvent('click',this.show.bind(this))},this)}}catch(e){dbug.log(e)}},showPreview:function(a){width=this.currentPicklet.options.previewWidth||150;this.sliderContent.setStyle('width',(width-30)+'px');if(!this.sliderFx)this.sliderFx=new Fx.Elements([this.slider,this.swin.win]);$extend(this.sliderFx.options,{duration:1000,transition:Fx.Transitions.elasticOut});if(this.preview&&this.slider.getStyle('width').toInt()<width-5){this.slider.show('block');this.sliderFx.start({'0':{'width':width},'1':{'width':width+450}})}},hidePreview:function(){if(!this.preview){$extend(this.sliderFx.options,{duration:250,transition:Fx.Transitions.backIn});this.sliderFx.start({'0':{'width':[this.slider.getStyle('width').toInt(),0]},'1':{'width':[this.swin.win.getStyle('width').toInt(),450]}}).chain(function(){this.slider.hide()}.bind(this))}},getPreview:function(a){return this.currentPicklet.options.previewHtml(this.items[a])}});ProductPicker.implement(new Options);ProductPicker.implement(new Events);$extend(ProductPicker,{picklets:[],add:function(a){if(!a.className){dbug.log('error: cannot add Picklet %o; missing className: %s',a,a.className);return}this.picklets[a.className]=a},addAllThese:function(b){b.each(function(a){this.add(a)},this)},getPicklet:function(a){return ProductPicker.picklets[a]||false}});var FormPickers=new Class({options:{inputs:'input',additionalShowLinkClass:'openPicker',pickletOptions:{}},initialize:function(a,b){this.setOptions(b);this.form=$(a);this.inputs=this.form.getElementsBySelector(this.options.inputs);this.setUpInputs()},setUpInputs:function(a){a=$pick(a,this.inputs);a.each(this.addPickers.bind(this))},addPickers:function(b){var c=[];b.className.split(" ").each(function(a){if(ProductPicker.getPicklet(a))c.push(ProductPicker.getPicklet(a))},this);if(b.getNext()&&b.getNext().hasClass(this.options.additionalShowLinkClass))this.options.pickletOptions.additionalShowLinks=[b.getNext()];if(c.length>0)new ProductPicker(b,c,this.options.pickletOptions)}});FormPickers.implement(new Options);var CNETProductPickerBase={previewWidth:150,descriptiveName:'CNET Product Picker',url:'http://api.cnet.com/restApi/v1.0/techProductSearch',callBackKey:'callback',data:{partKey:'19926949750937665684988687810562',iod:'hlPrice',viewType:'json'},getQuery:function(c){$each(c,function(a,b){c[b]=unescape(a)});return new JsonP(this.options.url,{callBackKey:this.options.callBackKey,data:$merge(this.options.data,c)})},inputs:{query:{tagName:'input',type:'text',instructions:'',tip:'cnet product search::input a product name and hit &lt;enter&gt; to get results',value:'',style:{width:'100%'}}},previewHtml:function(a){var b="";var c='<div class="dataId" style="color: #999; font-weight:bold; margin: 0px; padding: 0px;">id: '+a['@id']+'</div>'+'<div class="dataDetails" style="font-size: 10px;"><a href="'+a.ReviewURL.$+'"><img height="45" width="'+a.ImageURL[0]["@width"]+'" style="margin-left: 10px" src="'+a.ImageURL[1].$+'"/></a><br /><b><a href="'+a.ReviewURL.$+'">'+a.Name.$+'</a></b>';if(a.EditorsRating&&a.EditorsRating.$)c+="<br/>editors' rating: "+a.EditorsRating.$;c+="<div>";if(a.LowPrice&&a.LowPrice.$)c+="<span class='productPickerPrices'>"+a.LowPrice.$+"</span>";if(a.HighPrice&&a.HighPrice.$&&(a.LowPrice.$!=a.HighPrice.$))c+=" to <span class='productPickerPrices'>"+a.HighPrice.$+"</span>";c+="</div></div>";c+="<div>";if(a.Offers&&a.Offers['@numFound']>0)c+="resellers: "+a.Offers["@numFound"];c+="</div>";return c},resultsList:function(a){if(a.CNETResponse.TechProducts&&a.CNETResponse.TechProducts["@numFound"]>0){if(a.CNETResponse.TechProducts["@numFound"]>1)return a.CNETResponse.TechProducts.TechProduct;else return[a.CNETResponse.TechProducts.TechProduct]}return false},listItemName:function(a){return a.Name.$},listItemValue:function(a){return a['@id']},updateInput:function(a,b){a.value=b['@id'];a.fireEvent('change')}};var CNETProductPicker=new Picklet('CNETProductPicker',CNETProductPickerBase);ProductPicker.add(CNETProductPicker);var CNETProductPicker_ReviewPath=new Picklet('CNETProductPicker_ReviewPath',$merge(CNETProductPickerBase,{descriptiveName:'CNET Product Picker: Review URL',updateInput:function(a,b){var c=b.ReviewURL.$;if(c.indexOf("?")>=0)c=c.substring(0,c.indexOf("?"));a.value=c;a.fireEvent('change')}}));ProductPicker.add(CNETProductPicker_ReviewPath);var CNETProductPicker_PricePath=new Picklet('CNETProductPicker_ReviewPath',$merge(CNETProductPickerBase,{descriptiveName:'CNET Product Picker: Price URL',updateInput:function(a,b){var c=b.PriceURL.$;if(c.indexOf("?")>=0)c=c.substring(0,c.indexOf("?"));a.value=c;a.fireEvent('change')}}));ProductPicker.add(CNETProductPicker_PricePath);var Confirmer=new Class({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:500,effectOptions:{duration:500},prompterStyle:{padding:'2px 6px',border:'1px solid #9f0000',backgroundColor:'#f9d0d0',fontWeight:'bold',color:'#000',width:'210px'},onComplete:Class.empty},initialize:function(a){this.setOptions(a);this.options.positionOptions.relativeTo=this.options.positionOptions.relativeTo||document.body;this.prompter=($(this.options.msg))?$(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(this.prompter.fxOpacityOk())this.prompter.setStyle('opacity',0)}else if(this.prompter.fxOpacityOk())this.prompter.setStyle('opacity',0);else this.prompter.setStyle('visibility','hidden');if(!this.prompter.getParent())window.addEvent('domready',function(){this.prompter.injectInside(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(a){try{return new Element('div').setStyles(this.options.prompterStyle).appendText(a)}catch(e){dbug.log(e);return prompter}},prompt:function(a){if(!this.paused)this.stop();var b=(a)?a.msg:false;a=$merge(this.options,{saveAsDefault:false},a||{});if($(a.msg)&&b)this.msgHolder.empty().adopt(a.msg);else if(!$(a.msg)&&a.msg)this.msgHolder.empty().appendText(a.msg);if(!this.paused){if(a.reposition)this.position(a.positionOptions);(function(){this.timer=this.fade(a.pause)}).delay(a.delay,this)}if(a.saveAsDefault)this.setOptions(a)},fade:function(a){this.paused=true;a=$pick(a,this.options.pause);if(!this.fx&&this.prompter.fxOpacityOk()){this.fx=this.prompter.effect('opacity',this.options.effectOptions);this.fx.clearChain()}if(this.options.reposition)this.prompter.setStyle('display','block');if(this.prompter.fxOpacityOk()){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(a,this)}.bind(this))}else{this.prompter.setStyle('visibility','visible');this.timer=(function(){this.prompter.setStyle('visibility','hidden');this.fireEvent('onComplete');this.paused=false}).delay(a+this.options.effectOptions.duration,this)}},stop:function(){this.paused=false;$clear($pick(this.timer,false));if(this.fx)this.fx.set(0);if(this.options.reposition)this.prompter.hide()},position:function(a){this.prompter.setPosition($merge(this.options.positionOptions,a))}});Confirmer.implement(new Options);Confirmer.implement(new Events);var Clipboard={swfLocation:'http://www.cnet.com/html/rb/assets/global/clipboard/_clipboard.swf',copyFromElement:function(b){b=$(b);if(!b)return null;if(window.ie){try{window.addEvent('domready',function(){var a=b.createTextRange();if(a)a.execCommand('Copy')})}catch(e){dbug.log('cannot copy to clipboard: %s',o)}}else{var c=(b.getSelectedText)?b.getSelectedText():b.getValue();if(c)Clipboard.copy(c)}},copy:function(b){if(window.ie){window.addEvent('domready',function(){var a=new Element('textarea',{styles:{display:'none'}}).injectInside(document.body);a.setProperty('value',b).select();Clipboard.copyFromElement(a);a.remove()})}else{var c=($('flashcopier'))?$('flashcopier'):new Element('div').setProperty('id','flashcopier').injectInside(document.body);c.empty();c.setHTML('<embed src="'+this.swfLocation+'" FlashVars="clipboard='+escape(b)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>')}}};var HtmlTable=new Class({options:{properties:{cellpadding:0,cellspacing:0,border:0},rows:[]},initialize:function(a){this.setOptions(a);if(this.options.properties.className){this.options.properties['class']=this.options.properties.className;delete this.options.properties.className}this.table=new Element('table').setProperties(this.options.properties);this.tbody=new Element('tbody').injectInside(this.table);this.options.rows.each(this.push.bind(this))},push:function(d){var e=new Element('tr').injectInside(this.tbody);var f=d.map(function(b){var c=new Element('td').injectInside(e);if(b.properties){if(b.properties.className){b.properties['class']=b.properties.className;delete b.properties.className}c.setProperties(b.properties)}function setContent(a){if($(a))c.adopt($(a));else c.setHTML(a)};if(b.content)setContent(b.content);else setContent(b);return c},this);return{tr:e,tds:f}}});HtmlTable.implement(new Options);var Autocompleter={};Autocompleter.Base=new Class({options:{minLength:1,useSelection:true,markQuery:true,inheritWidth:true,dropDownWidth:100,maxChoices:10,injectChoice:null,onSelect:Class.empty,onShow:Class.empty,onHide:Class.empty,customTarget:null,className:'autocompleter-choices',zIndex:42,observerOptions:{},fxOptions:{},multi:false,delimeter:', ',autotrim:true,allowDupes:false,baseHref:'http://www.cnet.com/html/rb/assets/global/autocompleter/'},initialize:function(a,b){this.setOptions(b);if(!$('AutocompleterCss'))window.addEvent('domready',function(){new Asset.css(this.options.baseHref+'Autocompleter.css',{id:'AutocompleterCss'})}.bind(this));this.element=$(a);this.build();this.observer=new Observer(this.element,this.prefetch.bind(this),$merge({delay:400},this.options.observerOptions));this.value=this.observer.value;this.queryValue=null;this.element.addEvent('blur',function(e){this.autoTrim.delay(50,this,e)}.bind(this));this.addEvent('onSelect',function(){this.element.focus();this.userChose=true;(function(){this.userChose=false}).delay(100,this)}.bind(this))},build:function(){if($(this.options.customTarget))this.choices=this.options.customTarget;else{this.choices=new Element('ul',{'class':this.options.className,'styles':{zIndex:this.options.zIndex}}).injectInside(document.body);this.fix=new OverlayFix(this.choices)}this.fx=this.choices.effect('opacity',$merge({wait:false,duration:200},this.options.fxOptions)).addEvent('onStart',function(){if(this.fx.now)return;this.choices.setStyle('display','');this.fix.show()}.bind(this)).addEvent('onComplete',function(){if(this.fx.now)return;this.choices.setStyle('display','none');this.fix.hide()}.bind(this)).set(0);this.element.setProperty('autocomplete','off').addEvent(window.ie?'keydown':'keypress',this.onCommand.bindWithEvent(this)).addEvent('mousedown',this.onCommand.bindWithEvent(this,[true])).addEvent('focus',this.toggleFocus.bind(this,[true])).addEvent('blur',this.toggleFocus.bind(this,[false])).addEvent('trash',this.destroy.bind(this))},autoTrim:function(e){if(this.userChose)return this.userChose=false;var a=this.options.delimeter;var b=this.element.getValue();if(this.options.autotrim&&b.test(a+"$")){e=new Event(e);this.observer.value=this.element.value=b.substring(0,b.length-a.length)}},getQueryValue:function(a){a=$pick(a,this.observer.value);return(this.options.multi)?a.lastElement(this.options.delimeter):a||''},destroy:function(){this.choices.remove()},toggleFocus:function(a){this.focussed=a;if(!a)this.hideChoices()},onCommand:function(e,a){var b=this.getQueryValue();if(a&&this.focussed)this.prefetch();if(e.key)switch(e.key){case'enter':if(this.selected&&this.visible){this.choiceSelect(this.selected);e.stop()}return;case'up':case'down':if(this.getQueryValue()!=(b||this.queryValue))this.prefetch();else if(this.queryValue===null)break;else if(!this.visible)this.showChoices();else{this.choiceOver((e.key=='up')?this.selected.getPrevious()||this.choices.getLast():this.selected.getNext()||this.choices.getFirst());this.setSelection()}e.stop();return;case'esc':case'tab':this.hideChoices();if(this.options.multi)this.element.value=this.element.getValue().trimLastElement();return}this.value=false},setSelection:function(){if(!this.options.useSelection)return;var a=this.options.delimeter;var b=this.getQueryValue(this.queryValue);var c=this.getQueryValue(this.element.getValue());var d;if(this.options.multi){var e=this.queryValue.lastIndexOf(a);var f=(e<0)?0:a.length;d=b.length+(e<0?0:e)+f}else d=b.length;if(c.indexOf(b)!=0)return;var g=this.selected.inputValue.substr(d);if(window.ie){var h=document.selection.createRange();h.text=g;h.move("character",-g.length);h.findText(g);h.select()}else{var i=(this.options.multi&&this.element.value.test(a))?this.element.getValue().length-c.length+b.length:this.queryValue.length;this.element.value=this.element.value.substring(0,i)+g;this.element.selectionStart=i;this.element.selectionEnd=this.element.value.length}this.value=this.observer.value=this.element.value},hideChoices:function(){if(!this.visible)return;this.visible=this.value=false;this.observer.clear();this.fx.start(0);this.fireEvent('onHide',[this.element,this.choices])},showChoices:function(){if(this.visible||!this.choices.getFirst())return;this.visible=true;var a=this.element.getCoordinates(this.options.overflown);this.choices.setStyles({'left':a.left,'top':a.bottom});this.choices.setStyle('width',(this.options.inheritWidth)?a.width:this.options.dropDownWidth);this.fx.start(1);this.choiceOver(this.choices.getFirst());this.fireEvent('onShow',[this.element,this.choices])},prefetch:function(){var a=this.getQueryValue(this.element.getValue());if(a.length<this.options.minLength)this.hideChoices();else if(a==this.queryValue)this.showChoices();else this.query()},updateChoices:function(c){this.choices.empty();this.selected=null;if(!c||!c.length)return;if(this.options.maxChoices<c.length)c.length=this.options.maxChoices;c.each(this.options.injectChoice||function(a,i){var b=new Element('li').setHTML(this.markQueryValue(a));b.inputValue=a;this.addChoiceEvents(b).injectInside(this.choices)},this);this.showChoices()},choiceOver:function(a){if(this.selected)this.selected.removeClass('autocompleter-selected');this.selected=a.addClass('autocompleter-selected')},choiceSelect:function(b){if(this.options.multi){var c=this.options.delimeter;var d=(this.element.value.trimLastElement(c)+b.inputValue).split(c);var e=[];if(!this.options.allowDupes){d.each(function(a){if(e.contains(a))e.remove(a);e.include(a)})}else e=d;this.observer.value=this.element.value=e.join(c)+c}else this.observer.value=this.element.value=b.inputValue;this.hideChoices();this.fireEvent('onSelect',[this.element,b.inputValue],20)},markQueryValue:function(a){var b=(this.options.mult)?this.lastQueryElementValue:this.queryValue;return(this.options.markQuery&&b)?a.replace(new RegExp('^('+b.escapeRegExp()+')','i'),'<span class="autocompleter-queried">$1</span>'):a},addChoiceEvents:function(a){return a.addEvents({'mouseover':this.choiceOver.bind(this,[a]),'mousedown':this.choiceSelect.bind(this,[a])})},query:Class.empty});Autocompleter.Base.implement(new Events);Autocompleter.Base.implement(new Options);var OverlayFix=new Class({initialize:function(a){this.element=$(a);if(window.ie){this.element.addEvent('trash',this.destroy.bind(this));this.fix=new Element('iframe',{'properties':{'frameborder':'0','scrolling':'no','src':'javascript:false;'},'styles':{'position':'absolute','border':'none','display':'none','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'}}).injectAfter(this.element)}},show:function(){if(this.fix)this.fix.setStyles($extend(this.element.getCoordinates(),{'display':'','zIndex':(this.element.getStyle('zIndex')||1)-1}));return this},hide:function(){if(this.fix)this.fix.setStyle('display','none');return this},destroy:function(){this.fix.remove()}});String.extend({lastElement:function(a){a=a||' ';var b=this;var c=b.lastIndexOf(a);var d=(c==-1)?b:b.substr(c+a.length,b.length);return d},trimLastElement:function(a){a=a||' ';var b=this;var c=this.lastIndexOf(a);return(c==-1)?"":b.substr(0,c+a.length)}});Autocompleter.JsonP=Autocompleter.Base.extend({options:{postVar:'query',jsonpOptions:{},onRequest:Class.empty,onComplete:Class.empty,minLength:1,filterResponse:null},initialize:function(a,b,c){this.url=b;this.parent(a,c);if(this.options.filterResponse)this.filterResponse=this.options.filterResponse.bind(this)},query:function(){var a=this.options.multi;var b=$extend({},this.options.jsonpOptions.data);if(a)this.lastQueryElementValue=this.element.value.lastElement(this.options.delimeter);b[this.options.postVar]=(a)?this.lastQueryElementValue:this.element.value;this.jsonp=new JsonP(this.url,$merge({data:b},this.options.jsonpOptions));this.jsonp.addEvent('onComplete',this.queryResponse.bind(this));this.fireEvent('onRequest',[this.element,this.jsonp]);this.jsonp.request()},queryResponse:function(a){try{this.value=this.queryValue=this.element.value;var b=this.filterResponse(a);this.selected=false;this.hideChoices()}catch(e){try{dbug.log('jsonp request error: ',e)}catch(e){}}this.fireEvent(b?'onComplete':'onFailure',[this.element,b],20);if(!b||!b.length)return;this.updateChoices(b)},filterResponse:function(b){var c=new RegExp('^'+this.queryValue.escapeRegExp(),'i');return this.tokens.filter(function(a){return c.test(a)})}});Autocompleter.Local=Autocompleter.Base.extend({options:{minLength:0,filterTokens:null},initialize:function(a,b,c){this.parent(a,c);this.tokens=b;if(this.options.filterTokens)this.filterTokens=this.options.filterTokens.bind(this)},query:function(){this.hideChoices();this.queryValue=(this.options.multi)?this.element.value.lastElement(this.options.delimeter).trim():this.element.value;this.updateChoices(this.filterTokens())},filterTokens:function(b){var c=new RegExp('^'+this.queryValue.escapeRegExp(),'i');return this.tokens.filter(function(a){return c.test(a)})}});Autocompleter.Ajax={};Autocompleter.Ajax.Base=Autocompleter.Base.extend({options:{postVar:'value',postData:{},ajaxOptions:{},onRequest:Class.empty,onComplete:Class.empty},initialize:function(a,b,c){this.parent(a,c);this.ajax=new Ajax(b,$merge({autoCancel:true},this.options.ajaxOptions));this.ajax.addEvent('onComplete',this.queryResponse.bind(this));this.ajax.addEvent('onFailure',this.queryResponse.bind(this,[false]))},query:function(){var a=this.options.multi;var b=$extend({},this.options.postData);if(a)this.lastQueryElementValue=this.element.value.lastElement(this.options.delimeter);b[this.options.postVar]=(a)?this.lastQueryElementValue:this.element.value;this.fireEvent('onRequest',[this.element,this.ajax]);this.ajax.request(b)},queryResponse:function(a){this.value=this.queryValue=this.element.value;this.selected=false;this.hideChoices();this.fireEvent(a?'onComplete':'onFailure',[this.element,this.ajax],20)}});Autocompleter.Ajax.Json=Autocompleter.Ajax.Base.extend({queryResponse:function(a){this.parent(a);var b=Json.evaluate(a||false);if(!b||!b.length)return;this.updateChoices(b)}});Autocompleter.Ajax.Xhtml=Autocompleter.Ajax.Base.extend({options:{parseChoices:null},queryResponse:function(a){this.parent(a);if(!a)return;this.choices.setHTML(a).getChildren().each(this.options.parseChoices||this.parseChoices,this);this.showChoices()},parseChoices:function(a){var b=a.innerHTML;a.inputValue=b;a.setHTML(this.markQueryValue(b))}});var Observer=new Class({options:{periodical:false,delay:1000},initialize:function(a,b,c){this.setOptions(c);this.addEvent('onFired',b);this.element=$(a);this.listener=this.fired.bind(this);this.value=this.element.getValue();if(this.options.periodical)this.timer=this.listener.periodical(this.options.periodical);else this.element.addEvent('keyup',this.listener)},fired:function(){var a=this.element.getValue();if(this.value==a)return;this.clear();this.value=a;this.timeout=this.fireEvent.delay(this.options.delay,this,['onFired',[a]])},clear:function(){$clear(this.timeout);return this}});Observer.implement(new Options);Observer.implement(new Events);var Lightbox=new Class({options:{resizeDuration:400,resizeTransition:false,initialWidth:250,initialHeight:250,zIndex:10,animateCaption:true,showCounter:true,autoScanLinks:true,relString:'lightbox',useDefaultCss:true,assetBaseUrl:'http://www.cnet.com/html/rb/assets/global/slimbox/',onImageShow:Class.empty,onDisplay:Class.empty,onHide:Class.empty,overlayStyles:{}},initialize:function(b,c){this.setOptions(b);this.anchors=c||[];if(this.options.autoScanLinks){$$('a').each(function(a){if(a.getProperty('rel')&&a.getProperty('rel').test("^"+this.options.relString,'i')){if(!a.getProperty('lightboxed'))this.anchors.push(a)}},this)}if(!$$(this.anchors).length)return;if(this.options.useDefaultCss)this.addCss();$$(this.anchors).each(function(a){if(!a.getProperty('lightboxed')){a.setProperty('lightboxed',true);a.addEvent('click',function(e){new Event(e).stop();this.click(a)}.bind(this))}}.bind(this));this.eventKeyDown=this.keyboardListener.bindAsEventListener(this);this.eventPosition=this.position.bind(this);window.addEvent('domready',this.addHtmlElements.bind(this))},addHtmlElements:function(){this.overlay=new Element('div',{'class':'lbOverlay',styles:{'z-index':this.options.zIndex}}).injectInside(document.body).setStyles(this.options.overlayStyles);this.center=new Element('div',{styles:{width:this.options.initialWidth+'px',height:this.options.initialHeight+'px','margin-left':(-(this.options.initialWidth/2))+'px','display':'none','z-index':this.options.zIndex+1}}).injectInside(document.body).addClass('lbCenter');this.image=new Element('div',{'class':'lbImage'}).injectInside(this.center);this.prevLink=new Element('a',{'class':'lbPrevLink','href':'javascript:void(0);','styles':{'display':'none'}}).injectInside(this.image);this.nextLink=this.prevLink.clone().removeClass('lbPrevLink').addClass('lbNextLink').injectInside(this.image);this.prevLink.addEvent('click',this.previous.bind(this));this.nextLink.addEvent('click',this.next.bind(this));this.bottomContainer=new Element('div',{'class':'lbBottomContainer','styles':{'display':'none','z-index':this.options.zIndex+1}}).injectInside(document.body);this.bottom=new Element('div',{'class':'lbBottom'}).injectInside(this.bottomContainer);new Element('a',{'class':'lbCloseLink','href':'#'}).injectInside(this.bottom).onclick=this.overlay.onclick=this.close.bind(this);this.caption=new Element('div',{'class':'lbCaption'}).injectInside(this.bottom);this.number=new Element('div',{'class':'lbNumber'}).injectInside(this.bottom);new Element('div',{'styles':{'clear':'both'}}).injectInside(this.bottom);var a=this.nextEffect.bind(this);this.fx={overlay:this.overlay.effect('opacity',{duration:500}).hide(),resize:this.center.effects($extend({duration:this.options.resizeDuration,onComplete:a},this.options.resizeTransition?{transition:this.options.resizeTransition}:{})),image:this.image.effect('opacity',{duration:500,onComplete:a}),bottom:this.bottom.effect('margin-top',{duration:400,onComplete:a})};this.preloadPrev=new Element('img');this.preloadNext=new Element('img')},addCss:function(){window.addEvent('domready',function(){if(!$('SlimboxCss'))new Asset.css(this.options.assetBaseUrl+'slimbox.css',{id:'SlimboxCss'})}.bind(this))},click:function(b){b=$(b);var c=b.getProperty('rel')||this.options.relString;if(c==this.options.relString)return this.show(b.href,b.title);var j,imageNum,images=[];this.anchors.each(function(a){if(a.getProperty('rel')==b.getProperty('rel')){for(j=0;j<images.length;j++)if(images[j][0]==a.href)break;if(j==images.length){images.push([a.href,a.title]);if(a.href==b.href)imageNum=j}}},this);return this.open(images,imageNum)},show:function(a,b){return this.open([[a,b]],0)},open:function(a,b){this.fireEvent('onDisplay');this.images=a;this.position();this.setup(true);this.top=(window.getScrollTop()+(window.getHeight()/15)).toInt();this.center.setStyles({top:this.top+'px',display:''});this.fx.overlay.start(0.8);return this.changeImage(b)},position:function(){this.overlay.setStyles({'top':window.getScrollTop()+'px','height':window.getHeight()+'px'})},setup:function(c){var d=$$('object, iframe');d.extend($$(window.ie?'select':'embed'));d.each(function(a){if(c)a.lbBackupStyle=a.getStyle('visibility');var b=(c?'hidden':a.lbBackupStyle);a.setStyle('visibility',b)});var e=c?'addEvent':'removeEvent';window[e]('scroll',this.eventPosition)[e]('resize',this.eventPosition);document[e]('keydown',this.eventKeyDown);this.step=0},keyboardListener:function(a){switch(a.keyCode){case 27:case 88:case 67:this.close();break;case 37:case 80:this.previous();break;case 39:case 78:this.next()}},previous:function(){return this.changeImage(this.activeImage-1)},next:function(){return this.changeImage(this.activeImage+1)},changeImage:function(a){this.fireEvent('onImageShow',a);if(this.step||(a<0)||(a>=this.images.length))return false;this.step=1;this.activeImage=a;this.center.setStyle('backgroundColor','');this.bottomContainer.setStyle('display','none');this.prevLink.setStyle('display','none');this.nextLink.setStyle('display','none');this.fx.image.hide();this.center.addClass('lbLoading');this.preload=new Element('img').addEvent('load',this.nextEffect.bind(this)).setProperty('src',this.images[a][0]);return false},nextEffect:function(){switch(this.step++){case 1:this.image.setStyle('backgroundImage','url('+this.images[this.activeImage][0]+')');this.image.setStyle('width',this.preload.width+'px');this.bottom.setStyle('width',this.preload.width+'px');this.image.setStyle('height',this.preload.height+'px');this.prevLink.setStyle('height',this.preload.height+'px');this.nextLink.setStyle('height',this.preload.height+'px');this.caption.setHTML(this.images[this.activeImage][1]||'');this.number.setHTML((!this.options.showCounter||(this.images.length==1))?'':'Image '+(this.activeImage+1)+' of '+this.images.length);if(this.activeImage)$(this.preloadPrev).setProperty('src',this.images[this.activeImage-1][0]);if(this.activeImage!=(this.images.length-1))$(this.preloadNext).setProperty('src',this.images[this.activeImage+1][0]);if(this.center.clientHeight!=this.image.offsetHeight){this.fx.resize.start({height:this.image.offsetHeight});break}this.step++;case 2:if(this.center.clientWidth!=this.image.offsetWidth){this.fx.resize.start({width:this.image.offsetWidth,marginLeft:-this.image.offsetWidth/2});break}this.step++;case 3:this.bottomContainer.setStyles({top:(this.top+this.center.getSize().size.y)+'px',height:'0px',marginLeft:this.center.getStyle('margin-left'),display:''});this.fx.image.start(1);break;case 4:this.center.style.backgroundColor='#000';if(this.options.animateCaption){this.fx.bottom.set(-this.bottom.offsetHeight);this.bottomContainer.setStyle('height','');this.fx.bottom.start(0);break}this.bottomContainer.style.height='';case 5:if(this.activeImage)this.prevLink.setStyle('display','');if(this.activeImage!=(this.images.length-1))this.nextLink.setStyle('display','');this.step=0}},close:function(){this.fireEvent('onHide');if(this.step<0)return;this.step=-1;if(this.preload){this.preload.onload=Class.empty;this.preload=null}for(var f in this.fx)this.fx[f].stop();this.center.setStyle('display','none');this.bottomContainer.setStyle('display','none');this.fx.overlay.chain(this.setup.pass(false,this)).start(0);return false}});Lightbox.implement(new Options);Lightbox.implement(new Events);window.addEvent('domready',function(){new Lightbox()});var SimpleEditor=new Class({initialize:function(b,c,d){this.commands=new Hash($merge(SimpleEditor.commands,d||{}));this.input=$(b);this.buttons=$$(c);this.buttons.each(function(a){a.addEvent('click',function(){this.exec(a.getProperty('rel'))}.bind(this))}.bind(this));this.input.addEvent('keydown',function(e){e=new Event(e);if(e.control){var a=this.shortCutToKey(e.key);if(a){e.stop();this.exec(a)}}}.bind(this))},shortCutToKey:function(c){var d=false;this.commands.each(function(a,b){if(a.shortcut==c)d=b});return d},addCommand:function(a,b,c){this.commands.set(a,{command:b,shortcut:c})},addCommands:function(a){this.commands.extend(a)},exec:function(a){if(this.commands.hasKey(a))this.commands.get(a).command(this.input)}});$extend(SimpleEditor,{commands:{},addCommand:function(a,b,c){SimpleEditor.commands[a]={command:b,shortcut:c}},addCommands:function(a){$extend(SimpleEditor.commands,a)}});SimpleEditor.addCommands({bold:{shortcut:'b',command:function(a){a.insertAroundCursor({before:'<b>',after:'</b>'})}},underline:{shortcut:'u',command:function(a){a.insertAroundCursor({before:'<u>',after:'</u>'})}},anchor:{shortcut:'l',command:function(c){function simpleLinker(){var a=window.prompt('The URL for the link');var b={before:'<a href="'+a+'">',after:'</a>'};if(!c.getSelectedText())b.defaultMiddle=window.prompt('The link text');c.insertAroundCursor(b)}try{if(Trinket){if(!this.linkBulder){var d=Trinket.available.filter(function(a){return a.name=='Link Builder'});this.linkBuilder=(d.length)?d[0]:new Trinket.LinkBuilder({context:'default'});this.linkBuilder.clickPrompt(c)}}else simpleLinker()}catch(e){simpleLinker()}}},copy:{shortcut:false,command:function(a){if(Clipboard)Clipboard.copyFromElement(a);else simpleErrorPopup('Woops','Sorry, this function doesn\'t work here; use ctrl+c.');a.focus()}},cut:{shortcut:false,command:function(a){if(Clipboard){Clipboard.copyFromElement(a);a.insertAtCursor('')}else simpleErrorPopup('Woops','Sorry, this function doesn\'t work here; use ctrl+x.')}},hr:{shortcut:'-',command:function(a){a.insertAtCursor('\n<hr/>\n')}},img:{shortcut:'g',command:function(a){a.insertAtCursor('<img src="'+window.prompt('The url to the image')+'" />')}},stripTags:{shortcut:'\\',command:function(a){a.insertAtCursor(a.getSelectedText().stripTags())}},sup:{shortcut:false,command:function(a){a.insertAroundCursor({before:'<sup>',after:'</sup>'})}},sub:{shortcut:false,command:function(a){a.insertAroundCursor({before:'<sub>',after:'</sub>'})}},paragraph:{shortcut:'enter',command:function(a){a.insertAroundCursor({before:'\n<p>\n',after:'\n</p>\n'})}},strike:{shortcut:'k',command:function(a){a.insertAroundCursor({before:'<strike>',after:'</strike>'})}},italics:{shortcut:'i',command:function(a){a.insertAroundCursor({before:'<i>',after:'</i>'})}},bullets:{shortcut:'8',command:function(a){a.insertAroundCursor({before:'<ul>\n  <li>',after:'</li>\n</ul>'})}},numberList:{shortcut:'=',command:function(a){a.insertAroundCursor({before:'<ol>\n  <li>',after:'</li>\n</ol>'})}},clean:{shortcut:false,command:function(a){a.tidy()}},preview:{shortcut:false,command:function(a){try{if(!this.container){this.container=new Element('div',{styles:{border:'1px solid black',padding:8,height:300,overflow:'auto'}});this.preview=new StickyWinModal({content:stickyWinHTML("preview",this.container,{width:600,buttons:[{text:'close',onClick:function(){this.container.empty()}.bind(this)}]}),showNow:false})}this.container.setHTML(a.getValue());this.preview.show()}catch(e){dbug.log('you need StickyWinModal and stickyWinHTML')}}}});

/*	end packed code	*/
}