bplist00}_WebSubresources_WebMainResource_WebSubframeArchives"',16;@GMSY_dinsx ^WebResourceURL_WebResourceData_WebResourceMIMEType_WebResourceResponse_@http://science.jrank.org/javascripts/base_packaged.js?1288898414Oڹvar Prototype={Version:'1.6.0.3',Browser:{IE:!!(window.attachEvent&&navigator.userAgent.indexOf('Opera')===-1),Opera:navigator.userAgent.indexOf('Opera')>-1,WebKit:navigator.userAgent.indexOf('AppleWebKit/')>-1,Gecko:navigator.userAgent.indexOf('Gecko')>-1&&navigator.userAgent.indexOf('KHTML')===-1,MobileSafari:!!navigator.userAgent.match(/Apple.*Mobile.*Safari/)},BrowserFeatures:{XPath:!!document.evaluate,SelectorsAPI:!!document.querySelector,ElementExtensions:!!window.HTMLElement,SpecificElementExtensions:document.createElement('div')['__proto__']&&document.createElement('div')['__proto__']!==document.createElement('form')['__proto__']},ScriptFragment:']*>([\\S\\s]*?)<\/script>',JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x}};if(Prototype.Browser.MobileSafari) Prototype.BrowserFeatures.SpecificElementExtensions=false;var Class={create:function(){var parent=null,properties=$A(arguments);if(Object.isFunction(properties[0])) parent=properties.shift();function klass(){this.initialize.apply(this,arguments);} Object.extend(klass,Class.Methods);klass.superclass=parent;klass.subclasses=[];if(parent){var subclass=function(){};subclass.prototype=parent.prototype;klass.prototype=new subclass;parent.subclasses.push(klass);} for(var i=0;i0){if(match=source.match(pattern)){result+=source.slice(0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0].length);}else{result+=source,source='';}} return result;},sub:function(pattern,replacement,count){replacement=this.gsub.prepareReplacement(replacement);count=Object.isUndefined(count)?1:count;return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match);});},scan:function(pattern,iterator){this.gsub(pattern,iterator);return String(this);},truncate:function(length,truncation){length=length||30;truncation=Object.isUndefined(truncation)?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:String(this);},strip:function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'');},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');},extractScripts:function(){var matchAll=new RegExp(Prototype.ScriptFragment,'img');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});},evalScripts:function(){return this.extractScripts().map(function(script){return eval(script)});},escapeHTML:function(){var self=arguments.callee;self.text.data=this;return self.div.innerHTML;},unescapeHTML:function(){var div=new Element('div');div.innerHTML=this.stripTags();return div.childNodes[0]?(div.childNodes.length>1?$A(div.childNodes).inject('',function(memo,node){return memo+node.nodeValue}):div.childNodes[0].nodeValue):'';},toQueryParams:function(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1].split(separator||'&').inject({},function(hash,pair){if((pair=pair.split('='))[0]){var key=decodeURIComponent(pair.shift());var value=pair.length>1?pair.join('='):pair[0];if(value!=undefined)value=decodeURIComponent(value);if(key in hash){if(!Object.isArray(hash[key]))hash[key]=[hash[key]];hash[key].push(value);} else hash[key]=value;} return hash;});},toArray:function(){return this.split('');},succ:function(){return this.slice(0,this.length-1)+ String.fromCharCode(this.charCodeAt(this.length-1)+1);},times:function(count){return count<1?'':new Array(count+1).join(this);},camelize:function(){var parts=this.split('-'),len=parts.length;if(len==1)return parts[0];var camelized=this.charAt(0)=='-'?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i-1;},startsWith:function(pattern){return this.indexOf(pattern)===0;},endsWith:function(pattern){var d=this.length-pattern.length;return d>=0&&this.lastIndexOf(pattern)===d;},empty:function(){return this=='';},blank:function(){return/^\s*$/.test(this);},interpolate:function(object,pattern){return new Template(this,pattern).evaluate(object);}});if(Prototype.Browser.WebKit||Prototype.Browser.IE)Object.extend(String.prototype,{escapeHTML:function(){return this.replace(/&/g,'&').replace(//g,'>');},unescapeHTML:function(){return this.stripTags().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');}});String.prototype.gsub.prepareReplacement=function(replacement){if(Object.isFunction(replacement))return replacement;var template=new Template(replacement);return function(match){return template.evaluate(match)};};String.prototype.parseQuery=String.prototype.toQueryParams;Object.extend(String.prototype.escapeHTML,{div:document.createElement('div'),text:document.createTextNode('')});String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);var Template=Class.create({initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern;},evaluate:function(object){if(Object.isFunction(object.toTemplateReplacements)) object=object.toTemplateReplacements();return this.template.gsub(this.pattern,function(match){if(object==null)return'';var before=match[1]||'';if(before=='\\')return match[2];var ctx=object,expr=match[3];var pattern=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;match=pattern.exec(expr);if(match==null)return before;while(match!=null){var comp=match[1].startsWith('[')?match[2].gsub('\\\\]',']'):match[1];ctx=ctx[comp];if(null==ctx||''==match[3])break;expr=expr.substring('['==match[3]?match[1].length:match[0].length);match=pattern.exec(expr);} return before+String.interpret(ctx);});}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;var $break={};var Enumerable={each:function(iterator,context){var index=0;try{this._each(function(value){iterator.call(context,value,index++);});}catch(e){if(e!=$break)throw e;} return this;},eachSlice:function(number,iterator,context){var index=-number,slices=[],array=this.toArray();if(number<1)return array;while((index+=number)=result) result=value;});return result;},min:function(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index);if(result==null||valueb?1:0;}).pluck('value');},toArray:function(){return this.map();},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(Object.isFunction(args.last())) iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index));});},size:function(){return this.toArray().length;},inspect:function(){return'#';}};Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,filter:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray,every:Enumerable.all,some:Enumerable.any});function $A(iterable){if(!iterable)return[];if(iterable.toArray)return iterable.toArray();var length=iterable.length||0,results=new Array(length);while(length--)results[length]=iterable[length];return results;} if(Prototype.Browser.WebKit){$A=function(iterable){if(!iterable)return[];if(!(typeof iterable==='function'&&typeof iterable.length==='number'&&typeof iterable.item==='function')&&iterable.toArray) return iterable.toArray();var length=iterable.length||0,results=new Array(length);while(length--)results[length]=iterable[length];return results;};} Array.from=$A;Object.extend(Array.prototype,Enumerable);if(!Array.prototype._reverse)Array.prototype._reverse=Array.prototype.reverse;Object.extend(Array.prototype,{_each:function(iterator){for(var i=0,length=this.length;i1?this:this[0];},uniq:function(sorted){return this.inject([],function(array,value,index){if(0==index||(sorted?array.last()!=value:!array.include(value))) array.push(value);return array;});},intersect:function(array){return this.uniq().findAll(function(item){return array.detect(function(value){return item===value});});},clone:function(){return[].concat(this);},size:function(){return this.length;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';},toJSON:function(){var results=[];this.each(function(object){var value=Object.toJSON(object);if(!Object.isUndefined(value))results.push(value);});return'['+results.join(', ')+']';}});if(Object.isFunction(Array.prototype.forEach)) Array.prototype._each=Array.prototype.forEach;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(item,i){i||(i=0);var length=this.length;if(i<0)i=length+i;for(;i';},toJSON:function(){return Object.toJSON(this.toObject());},clone:function(){return new Hash(this);}}})());Hash.prototype.toTemplateReplacements=Hash.prototype.toObject;Hash.from=$H;var ObjectRange=Class.create(Enumerable,{initialize:function(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;},_each:function(iterator){var value=this.start;while(this.include(value)){iterator(value);value=value.succ();}},include:function(value){if(value1&&!((readyState==4)&&this._complete)) this.respondToReadyState(this.transport.readyState);},setRequestHeaders:function(){var headers={'X-Requested-With':'XMLHttpRequest','X-Prototype-Version':Prototype.Version,'Accept':'text/javascript, text/html, application/xml, text/xml, */*'};if(this.method=='post'){headers['Content-type']=this.options.contentType+ (this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005) headers['Connection']='close';} if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(Object.isFunction(extras.push)) for(var i=0,length=extras.length;i=200&&status<300);},getStatus:function(){try{return this.transport.status||0;}catch(e){return 0}},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState],response=new Ajax.Response(this);if(state=='Complete'){try{this._complete=true;(this.options['on'+response.status]||this.options['on'+(this.success()?'Success':'Failure')]||Prototype.emptyFunction)(response,response.headerJSON);}catch(e){this.dispatchException(e);} var contentType=response.getHeader('Content-type');if(this.options.evalJS=='force'||(this.options.evalJS&&this.isSameOrigin()&&contentType&&contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) this.evalResponse();} try{(this.options['on'+state]||Prototype.emptyFunction)(response,response.headerJSON);Ajax.Responders.dispatch('on'+state,this,response,response.headerJSON);}catch(e){this.dispatchException(e);} if(state=='Complete'){this.transport.onreadystatechange=Prototype.emptyFunction;}},isSameOrigin:function(){var m=this.url.match(/^\s*https?:\/\/[^\/]*/);return!m||(m[0]=='#{protocol}//#{domain}#{port}'.interpolate({protocol:location.protocol,domain:document.domain,port:location.port?':'+location.port:''}));},getHeader:function(name){try{return this.transport.getResponseHeader(name)||null;}catch(e){return null}},evalResponse:function(){try{return eval((this.transport.responseText||'').unfilterJSON());}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Response=Class.create({initialize:function(request){this.request=request;var transport=this.transport=request.transport,readyState=this.readyState=transport.readyState;if((readyState>2&&!Prototype.Browser.IE)||readyState==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(transport.responseText);this.headerJSON=this._getHeaderJSON();} if(readyState==4){var xml=transport.responseXML;this.responseXML=Object.isUndefined(xml)?null:xml;this.responseJSON=this._getResponseJSON();}},status:0,statusText:'',getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||'';}catch(e){return''}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders();}catch(e){return null}},getResponseHeader:function(name){return this.transport.getResponseHeader(name);},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders();},_getHeaderJSON:function(){var json=this.getHeader('X-JSON');if(!json)return null;json=decodeURIComponent(escape(json));try{return json.evalJSON(this.request.options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}},_getResponseJSON:function(){var options=this.request.options;if(!options.evalJSON||(options.evalJSON!='force'&&!(this.getHeader('Content-type')||'').include('application/json'))||this.responseText.blank()) return null;try{return this.responseText.evalJSON(options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}}});Ajax.Updater=Class.create(Ajax.Request,{initialize:function($super,container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))};options=Object.clone(options);var onComplete=options.onComplete;options.onComplete=(function(response,json){this.updateContent(response.responseText);if(Object.isFunction(onComplete))onComplete(response,json);}).bind(this);$super(url,options);},updateContent:function(responseText){var receiver=this.container[this.success()?'success':'failure'],options=this.options;if(!options.evalScripts)responseText=responseText.stripScripts();if(receiver=$(receiver)){if(options.insertion){if(Object.isString(options.insertion)){var insertion={};insertion[options.insertion]=responseText;receiver.insert(insertion);} else options.insertion(receiver,responseText);} else receiver.update(responseText);}}});Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,container,url,options){$super(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(response){if(this.options.decay){this.decay=(response.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=response.responseText;} this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});function $(element){if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i';delete attributes.name;return Element.writeAttribute(document.createElement(tagName),attributes);} if(!cache[tagName])cache[tagName]=Element.extend(document.createElement(tagName));return Element.writeAttribute(cache[tagName].cloneNode(false),attributes);};Object.extend(this.Element,element||{});if(element)this.Element.prototype=element.prototype;}).call(window);Element.cache={};Element.Methods={visible:function(element){return $(element).style.display!='none';},toggle:function(element){element=$(element);Element[Element.visible(element)?'hide':'show'](element);return element;},hide:function(element){element=$(element);element.style.display='none';return element;},show:function(element){element=$(element);element.style.display='';return element;},remove:function(element){element=$(element);element.parentNode.removeChild(element);return element;},update:function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content))return element.update().insert(content);content=Object.toHTML(content);element.innerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;},replace:function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();else if(!Object.isElement(content)){content=Object.toHTML(content);var range=element.ownerDocument.createRange();range.selectNode(element);content.evalScripts.bind(content).defer();content=range.createContextualFragment(content.stripScripts());} element.parentNode.replaceChild(content,element);return element;},insert:function(element,insertions){element=$(element);if(Object.isString(insertions)||Object.isNumber(insertions)||Object.isElement(insertions)||(insertions&&(insertions.toElement||insertions.toHTML))) insertions={bottom:insertions};var content,insert,tagName,childNodes;for(var position in insertions){content=insertions[position];position=position.toLowerCase();insert=Element._insertionTranslations[position];if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){insert(element,content);continue;} content=Object.toHTML(content);tagName=((position=='before'||position=='after')?element.parentNode:element).tagName.toUpperCase();childNodes=Element._getContentFromAnonymousElement(tagName,content.stripScripts());if(position=='top'||position=='after')childNodes.reverse();childNodes.each(insert.curry(element));content.evalScripts.bind(content).defer();} return element;},wrap:function(element,wrapper,attributes){element=$(element);if(Object.isElement(wrapper)) $(wrapper).writeAttribute(attributes||{});else if(Object.isString(wrapper))wrapper=new Element(wrapper,attributes);else wrapper=new Element('div',wrapper);if(element.parentNode) element.parentNode.replaceChild(wrapper,element);wrapper.appendChild(element);return wrapper;},inspect:function(element){element=$(element);var result='<'+element.tagName.toLowerCase();$H({'id':'id','className':'class'}).each(function(pair){var property=pair.first(),attribute=pair.last();var value=(element[property]||'').toString();if(value)result+=' '+attribute+'='+value.inspect(true);});return result+'>';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property]) if(element.nodeType==1) elements.push(Element.extend(element));return elements;},ancestors:function(element){return $(element).recursivelyCollect('parentNode');},descendants:function(element){return $(element).select("*");},firstDescendant:function(element){element=$(element).firstChild;while(element&&element.nodeType!=1)element=element.nextSibling;return $(element);},immediateDescendants:function(element){if(!(element=$(element).firstChild))return[];while(element&&element.nodeType!=1)element=element.nextSibling;if(element)return[element].concat($(element).nextSiblings());return[];},previousSiblings:function(element){return $(element).recursivelyCollect('previousSibling');},nextSiblings:function(element){return $(element).recursivelyCollect('nextSibling');},siblings:function(element){element=$(element);return element.previousSiblings().reverse().concat(element.nextSiblings());},match:function(element,selector){if(Object.isString(selector)) selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){element=$(element);if(arguments.length==1)return $(element.parentNode);var ancestors=element.ancestors();return Object.isNumber(expression)?ancestors[expression]:Selector.findElement(ancestors,expression,index);},down:function(element,expression,index){element=$(element);if(arguments.length==1)return element.firstDescendant();return Object.isNumber(expression)?element.descendants()[expression]:Element.select(element,expression)[index||0];},previous:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.previousElementSibling(element));var previousSiblings=element.previousSiblings();return Object.isNumber(expression)?previousSiblings[expression]:Selector.findElement(previousSiblings,expression,index);},next:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.nextElementSibling(element));var nextSiblings=element.nextSiblings();return Object.isNumber(expression)?nextSiblings[expression]:Selector.findElement(nextSiblings,expression,index);},select:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element,args);},adjacent:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element.parentNode,args).without(element);},identify:function(element){element=$(element);var id=element.readAttribute('id'),self=arguments.callee;if(id)return id;do{id='anonymous_element_'+self.counter++}while($(id));element.writeAttribute('id',id);return id;},readAttribute:function(element,name){element=$(element);if(Prototype.Browser.IE){var t=Element._attributeTranslations.read;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];if(name.include(':')){return(!element.attributes||!element.attributes[name])?null:element.attributes[name].value;}} return element.getAttribute(name);},writeAttribute:function(element,name,value){element=$(element);var attributes={},t=Element._attributeTranslations.write;if(typeof name=='object')attributes=name;else attributes[name]=Object.isUndefined(value)?true:value;for(var attr in attributes){name=t.names[attr]||attr;value=attributes[attr];if(t.values[attr])name=t.values[attr](element,value);if(value===false||value===null) element.removeAttribute(name);else if(value===true) element.setAttribute(name,name);else element.setAttribute(name,value);} return element;},getHeight:function(element){return $(element).getDimensions().height;},getWidth:function(element){return $(element).getDimensions().width;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;var elementClassName=element.className;return(elementClassName.length>0&&(elementClassName==className||new RegExp("(^|\\s)"+className+"(\\s|$)").test(elementClassName)));},addClassName:function(element,className){if(!(element=$(element)))return;if(!element.hasClassName(className)) element.className+=(element.className?' ':'')+className;return element;},removeClassName:function(element,className){if(!(element=$(element)))return;element.className=element.className.replace(new RegExp("(^|\\s+)"+className+"(\\s+|$)"),' ').strip();return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;return element[element.hasClassName(className)?'removeClassName':'addClassName'](className);},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue)) element.removeChild(node);node=nextNode;} return element;},empty:function(element){return $(element).innerHTML.blank();},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);if(element.compareDocumentPosition) return(element.compareDocumentPosition(ancestor)&8)===8;if(ancestor.contains) return ancestor.contains(element)&&ancestor!==element;while(element=element.parentNode) if(element==ancestor)return true;return false;},scrollTo:function(element){element=$(element);var pos=element.cumulativeOffset();window.scrollTo(pos[0],pos[1]);return element;},getStyle:function(element,style){element=$(element);style=style=='float'?'cssFloat':style.camelize();var value=element.style[style];if(!value||value=='auto'){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;} if(style=='opacity')return value?parseFloat(value):1.0;return value=='auto'?null:value;},getOpacity:function(element){return $(element).getStyle('opacity');},setStyle:function(element,styles){element=$(element);var elementStyle=element.style,match;if(Object.isString(styles)){element.style.cssText+=';'+styles;return styles.include('opacity')?element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]):element;} for(var property in styles) if(property=='opacity')element.setOpacity(styles[property]);else elementStyle[(property=='float'||property=='cssFloat')?(Object.isUndefined(elementStyle.styleFloat)?'cssFloat':'styleFloat'):property]=styles[property];return element;},setOpacity:function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;return element;},getDimensions:function(element){element=$(element);var display=element.getStyle('display');if(display!='none'&&display!=null) return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(Prototype.Browser.Opera){element.style.top=0;element.style.left=0;}} return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';} return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=Element.getStyle(element,'overflow')||'auto';if(element._overflow!=='hidden') element.style.overflow='hidden';return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=='auto'?'':element._overflow;element._overflow=null;return element;},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return Element._returnOffset(valueL,valueT);},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){if(element.tagName.toUpperCase()=='BODY')break;var p=Element.getStyle(element,'position');if(p!=='static')break;}}while(element);return Element._returnOffset(valueL,valueT);},absolutize:function(element){element=$(element);if(element.getStyle('position')=='absolute')return element;var offsets=element.positionedOffset();var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';element.style.left=left+'px';element.style.width=width+'px';element.style.height=height+'px';return element;},relativize:function(element){element=$(element);if(element.getStyle('position')=='relative')return element;element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;return element;},cumulativeScrollOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return Element._returnOffset(valueL,valueT);},getOffsetParent:function(element){if(element.offsetParent)return $(element.offsetParent);if(element==document.body)return $(element);while((element=element.parentNode)&&element!=document.body) if(Element.getStyle(element,'position')!='static') return $(element);return $(document.body);},viewportOffset:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body&&Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{if(!Prototype.Browser.Opera||(element.tagName&&(element.tagName.toUpperCase()=='BODY'))){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}}while(element=element.parentNode);return Element._returnOffset(valueL,valueT);},clonePosition:function(element,source){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});source=$(source);var p=source.viewportOffset();element=$(element);var delta=[0,0];var parent=null;if(Element.getStyle(element,'position')=='absolute'){parent=element.getOffsetParent();delta=parent.viewportOffset();} if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;} if(options.setLeft)element.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)element.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)element.style.width=source.offsetWidth+'px';if(options.setHeight)element.style.height=source.offsetHeight+'px';return element;}};Element.Methods.identify.counter=1;Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});Element._attributeTranslations={write:{names:{className:'class',htmlFor:'for'},values:{}}};if(Prototype.Browser.Opera){Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(proceed,element,style){switch(style){case'left':case'top':case'right':case'bottom':if(proceed(element,'position')==='static')return null;case'height':case'width':if(!Element.visible(element))return null;var dim=parseInt(proceed(element,style),10);if(dim!==element['offset'+style.capitalize()]) return dim+'px';var properties;if(style==='height'){properties=['border-top-width','padding-top','padding-bottom','border-bottom-width'];} else{properties=['border-left-width','padding-left','padding-right','border-right-width'];} return properties.inject(dim,function(memo,property){var val=proceed(element,property);return val===null?memo:memo-parseInt(val,10);})+'px';default:return proceed(element,style);}});Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(proceed,element,attribute){if(attribute==='title')return element.title;return proceed(element,attribute);});} else if(Prototype.Browser.IE){Element.Methods.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(proceed,element){element=$(element);try{element.offsetParent} catch(e){return $(document.body)} var position=element.getStyle('position');if(position!=='static')return proceed(element);element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});$w('positionedOffset viewportOffset').each(function(method){Element.Methods[method]=Element.Methods[method].wrap(function(proceed,element){element=$(element);try{element.offsetParent} catch(e){return Element._returnOffset(0,0)} var position=element.getStyle('position');if(position!=='static')return proceed(element);var offsetParent=element.getOffsetParent();if(offsetParent&&offsetParent.getStyle('position')==='fixed') offsetParent.setStyle({zoom:1});element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});});Element.Methods.cumulativeOffset=Element.Methods.cumulativeOffset.wrap(function(proceed,element){try{element.offsetParent} catch(e){return Element._returnOffset(0,0)} return proceed(element);});Element.Methods.getStyle=function(element,style){element=$(element);style=(style=='float'||style=='cssFloat')?'styleFloat':style.camelize();var value=element.style[style];if(!value&&element.currentStyle)value=element.currentStyle[style];if(style=='opacity'){if(value=(element.getStyle('filter')||'').match(/alpha\(opacity=(.*)\)/)) if(value[1])return parseFloat(value[1])/100;return 1.0;} if(value=='auto'){if((style=='width'||style=='height')&&(element.getStyle('display')!='none')) return element['offset'+style.capitalize()]+'px';return null;} return value;};Element.Methods.setOpacity=function(element,value){function stripAlpha(filter){return filter.replace(/alpha\([^\)]*\)/gi,'');} element=$(element);var currentStyle=element.currentStyle;if((currentStyle&&!currentStyle.hasLayout)||(!currentStyle&&element.style.zoom=='normal')) element.style.zoom=1;var filter=element.getStyle('filter'),style=element.style;if(value==1||value===''){(filter=stripAlpha(filter))?style.filter=filter:style.removeAttribute('filter');return element;}else if(value<0.00001)value=0;style.filter=stripAlpha(filter)+'alpha(opacity='+(value*100)+')';return element;};Element._attributeTranslations={read:{names:{'class':'className','for':'htmlFor'},values:{_getAttr:function(element,attribute){return element.getAttribute(attribute,2);},_getAttrNode:function(element,attribute){var node=element.getAttributeNode(attribute);return node?node.value:"";},_getEv:function(element,attribute){attribute=element.getAttribute(attribute);return attribute?attribute.toString().slice(23,-2):null;},_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){return element.title;}}}};Element._attributeTranslations.write={names:Object.extend({cellpadding:'cellPadding',cellspacing:'cellSpacing'},Element._attributeTranslations.read.names),values:{checked:function(element,value){element.checked=!!value;},style:function(element,value){element.style.cssText=value?value:'';}}};Element._attributeTranslations.has={};$w('colSpan rowSpan vAlign dateTime accessKey tabIndex '+'encType maxLength readOnly longDesc frameBorder').each(function(attr){Element._attributeTranslations.write.names[attr.toLowerCase()]=attr;Element._attributeTranslations.has[attr.toLowerCase()]=attr;});(function(v){Object.extend(v,{href:v._getAttr,src:v._getAttr,type:v._getAttr,action:v._getAttrNode,disabled:v._flag,checked:v._flag,readonly:v._flag,multiple:v._flag,onload:v._getEv,onunload:v._getEv,onclick:v._getEv,ondblclick:v._getEv,onmousedown:v._getEv,onmouseup:v._getEv,onmouseover:v._getEv,onmousemove:v._getEv,onmouseout:v._getEv,onfocus:v._getEv,onblur:v._getEv,onkeypress:v._getEv,onkeydown:v._getEv,onkeyup:v._getEv,onsubmit:v._getEv,onreset:v._getEv,onselect:v._getEv,onchange:v._getEv});})(Element._attributeTranslations.read.values);} else if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1)?0.999999:(value==='')?'':(value<0.00001)?0:value;return element;};} else if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;if(value==1) if(element.tagName.toUpperCase()=='IMG'&&element.width){element.width++;element.width--;}else try{var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){} return element;};Element.Methods.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body) if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return Element._returnOffset(valueL,valueT);};} if(Prototype.Browser.IE||Prototype.Browser.Opera){Element.Methods.update=function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content))return element.update().insert(content);content=Object.toHTML(content);var tagName=element.tagName.toUpperCase();if(tagName in Element._insertionTranslations.tags){$A(element.childNodes).each(function(node){element.removeChild(node)});Element._getContentFromAnonymousElement(tagName,content.stripScripts()).each(function(node){element.appendChild(node)});} else element.innerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;};} if('outerHTML'in document.createElement('div')){Element.Methods.replace=function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){element.parentNode.replaceChild(content,element);return element;} content=Object.toHTML(content);var parent=element.parentNode,tagName=parent.tagName.toUpperCase();if(Element._insertionTranslations.tags[tagName]){var nextSibling=element.next();var fragments=Element._getContentFromAnonymousElement(tagName,content.stripScripts());parent.removeChild(element);if(nextSibling) fragments.each(function(node){parent.insertBefore(node,nextSibling)});else fragments.each(function(node){parent.appendChild(node)});} else element.outerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;};} Element._returnOffset=function(l,t){var result=[l,t];result.left=l;result.top=t;return result;};Element._getContentFromAnonymousElement=function(tagName,html){var div=new Element('div'),t=Element._insertionTranslations.tags[tagName];if(t){div.innerHTML=t[0]+html+t[1];t[2].times(function(){div=div.firstChild});}else div.innerHTML=html;return $A(div.childNodes);};Element._insertionTranslations={before:function(element,node){element.parentNode.insertBefore(node,element);},top:function(element,node){element.insertBefore(node,element.firstChild);},bottom:function(element,node){element.appendChild(node);},after:function(element,node){element.parentNode.insertBefore(node,element.nextSibling);},tags:{TABLE:['','
',1],TBODY:['','
',2],TR:['','
',3],TD:['
','
',4],SELECT:['',1]}};(function(){Object.extend(this.tags,{THEAD:this.tags.TBODY,TFOOT:this.tags.TBODY,TH:this.tags.TD});}).call(Element._insertionTranslations);Element.Methods.Simulated={hasAttribute:function(element,attribute){attribute=Element._attributeTranslations.has[attribute]||attribute;var node=$(element).getAttributeNode(attribute);return!!(node&&node.specified);}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);if(!Prototype.BrowserFeatures.ElementExtensions&&document.createElement('div')['__proto__']){window.HTMLElement={};window.HTMLElement.prototype=document.createElement('div')['__proto__'];Prototype.BrowserFeatures.ElementExtensions=true;} Element.extend=(function(){if(Prototype.BrowserFeatures.SpecificElementExtensions) return Prototype.K;var Methods={},ByTag=Element.Methods.ByTag;var extend=Object.extend(function(element){if(!element||element._extendedByPrototype||element.nodeType!=1||element==window)return element;var methods=Object.clone(Methods),tagName=element.tagName.toUpperCase(),property,value;if(ByTag[tagName])Object.extend(methods,ByTag[tagName]);for(property in methods){value=methods[property];if(Object.isFunction(value)&&!(property in element)) element[property]=value.methodize();} element._extendedByPrototype=Prototype.emptyFunction;return element;},{refresh:function(){if(!Prototype.BrowserFeatures.ElementExtensions){Object.extend(Methods,Element.Methods);Object.extend(Methods,Element.Methods.Simulated);}}});extend.refresh();return extend;})();Element.hasAttribute=function(element,attribute){if(element.hasAttribute)return element.hasAttribute(attribute);return Element.Methods.Simulated.hasAttribute(element,attribute);};Element.addMethods=function(methods){var F=Prototype.BrowserFeatures,T=Element.Methods.ByTag;if(!methods){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{"FORM":Object.clone(Form.Methods),"INPUT":Object.clone(Form.Element.Methods),"SELECT":Object.clone(Form.Element.Methods),"TEXTAREA":Object.clone(Form.Element.Methods)});} if(arguments.length==2){var tagName=methods;methods=arguments[1];} if(!tagName)Object.extend(Element.Methods,methods||{});else{if(Object.isArray(tagName))tagName.each(extend);else extend(tagName);} function extend(tagName){tagName=tagName.toUpperCase();if(!Element.Methods.ByTag[tagName]) Element.Methods.ByTag[tagName]={};Object.extend(Element.Methods.ByTag[tagName],methods);} function copy(methods,destination,onlyIfAbsent){onlyIfAbsent=onlyIfAbsent||false;for(var property in methods){var value=methods[property];if(!Object.isFunction(value))continue;if(!onlyIfAbsent||!(property in destination)) destination[property]=value.methodize();}} function findDOMClass(tagName){var klass;var trans={"OPTGROUP":"OptGroup","TEXTAREA":"TextArea","P":"Paragraph","FIELDSET":"FieldSet","UL":"UList","OL":"OList","DL":"DList","DIR":"Directory","H1":"Heading","H2":"Heading","H3":"Heading","H4":"Heading","H5":"Heading","H6":"Heading","Q":"Quote","INS":"Mod","DEL":"Mod","A":"Anchor","IMG":"Image","CAPTION":"TableCaption","COL":"TableCol","COLGROUP":"TableCol","THEAD":"TableSection","TFOOT":"TableSection","TBODY":"TableSection","TR":"TableRow","TH":"TableCell","TD":"TableCell","FRAMESET":"FrameSet","IFRAME":"IFrame"};if(trans[tagName])klass='HTML'+trans[tagName]+'Element';if(window[klass])return window[klass];klass='HTML'+tagName+'Element';if(window[klass])return window[klass];klass='HTML'+tagName.capitalize()+'Element';if(window[klass])return window[klass];window[klass]={};window[klass].prototype=document.createElement(tagName)['__proto__'];return window[klass];} if(F.ElementExtensions){copy(Element.Methods,HTMLElement.prototype);copy(Element.Methods.Simulated,HTMLElement.prototype,true);} if(F.SpecificElementExtensions){for(var tag in Element.Methods.ByTag){var klass=findDOMClass(tag);if(Object.isUndefined(klass))continue;copy(T[tag],klass.prototype);}} Object.extend(Element,Element.Methods);delete Element.ByTag;if(Element.extend.refresh)Element.extend.refresh();Element.cache={};};document.viewport={getDimensions:function(){var dimensions={},B=Prototype.Browser;$w('width height').each(function(d){var D=d.capitalize();if(B.WebKit&&!document.evaluate){dimensions[d]=self['inner'+D];}else if(B.Opera&&parseFloat(window.opera.version())<9.5){dimensions[d]=document.body['client'+D]}else{dimensions[d]=document.documentElement['client'+D];}});return dimensions;},getWidth:function(){return this.getDimensions().width;},getHeight:function(){return this.getDimensions().height;},getScrollOffsets:function(){return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop);}};var Selector=Class.create({initialize:function(expression){this.expression=expression.strip();if(this.shouldUseSelectorsAPI()){this.mode='selectorsAPI';}else if(this.shouldUseXPath()){this.mode='xpath';this.compileXPathMatcher();}else{this.mode="normal";this.compileMatcher();}},shouldUseXPath:function(){if(!Prototype.BrowserFeatures.XPath)return false;var e=this.expression;if(Prototype.Browser.WebKit&&(e.include("-of-type")||e.include(":empty"))) return false;if((/(\[[\w-]*?:|:checked)/).test(e)) return false;return true;},shouldUseSelectorsAPI:function(){if(!Prototype.BrowserFeatures.SelectorsAPI)return false;if(!Selector._div)Selector._div=new Element('div');try{Selector._div.querySelector(this.expression);}catch(e){return false;} return true;},compileMatcher:function(){var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m;if(Selector._cache[e]){this.matcher=Selector._cache[e];return;} this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){p=ps[i];if(m=e.match(p)){this.matcher.push(Object.isFunction(c[i])?c[i](m):new Template(c[i]).evaluate(m));e=e.replace(m[0],'');break;}}} this.matcher.push("return h.unique(n);\n}");eval(this.matcher.join('\n'));Selector._cache[this.expression]=this.matcher;},compileXPathMatcher:function(){var e=this.expression,ps=Selector.patterns,x=Selector.xpath,le,m;if(Selector._cache[e]){this.xpath=Selector._cache[e];return;} this.matcher=['.//*'];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){if(m=e.match(ps[i])){this.matcher.push(Object.isFunction(x[i])?x[i](m):new Template(x[i]).evaluate(m));e=e.replace(m[0],'');break;}}} this.xpath=this.matcher.join('');Selector._cache[this.expression]=this.xpath;},findElements:function(root){root=root||document;var e=this.expression,results;switch(this.mode){case'selectorsAPI':if(root!==document){var oldId=root.id,id=$(root).identify();e="#"+id+" "+e;} results=$A(root.querySelectorAll(e)).map(Element.extend);root.id=oldId;return results;case'xpath':return document._getElementsByXPath(this.xpath,root);default:return this.matcher(root);}},match:function(element){this.tokens=[];var e=this.expression,ps=Selector.patterns,as=Selector.assertions;var le,p,m;while(e&&le!==e&&(/\S/).test(e)){le=e;for(var i in ps){p=ps[i];if(m=e.match(p)){if(as[i]){this.tokens.push([i,Object.clone(m)]);e=e.replace(m[0],'');}else{return this.findElements(document).include(element);}}}} var match=true,name,matches;for(var i=0,token;token=this.tokens[i];i++){name=token[0],matches=token[1];if(!Selector.assertions[name](element,matches)){match=false;break;}} return match;},toString:function(){return this.expression;},inspect:function(){return"#";}});Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:'/following-sibling::*',tagName:function(m){if(m[1]=='*')return'';return"[local-name()='"+m[1].toLowerCase()+"' or local-name()='"+m[1].toUpperCase()+"']";},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(m){m[1]=m[1].toLowerCase();return new Template("[@#{1}]").evaluate(m);},attr:function(m){m[1]=m[1].toLowerCase();m[3]=m[5]||m[6];return new Template(Selector.xpath.operators[m[2]]).evaluate(m);},pseudo:function(m){var h=Selector.xpath.pseudos[m[1]];if(!h)return'';if(Object.isFunction(h))return h(m);return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);},operators:{'=':"[@#{1}='#{3}']",'!=':"[@#{1}!='#{3}']",'^=':"[starts-with(@#{1}, '#{3}')]",'$=':"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",'*=':"[contains(@#{1}, '#{3}')]",'~=':"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",'|=':"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{'first-child':'[not(preceding-sibling::*)]','last-child':'[not(following-sibling::*)]','only-child':'[not(preceding-sibling::* or following-sibling::*)]','empty':"[count(*) = 0 and (count(text()) = 0)]",'checked':"[@checked]",'disabled':"[(@disabled) and (@type!='hidden')]",'enabled':"[not(@disabled) and (@type!='hidden')]",'not':function(m){var e=m[6],p=Selector.patterns,x=Selector.xpath,le,v;var exclusion=[];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in p){if(m=e.match(p[i])){v=Object.isFunction(x[i])?x[i](m):new Template(x[i]).evaluate(m);exclusion.push("("+v.substring(1,v.length-1)+")");e=e.replace(m[0],'');break;}}} return"[not("+exclusion.join(" and ")+")]";},'nth-child':function(m){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",m);},'nth-last-child':function(m){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",m);},'nth-of-type':function(m){return Selector.xpath.pseudos.nth("position() ",m);},'nth-last-of-type':function(m){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",m);},'first-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-of-type'](m);},'last-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-last-of-type'](m);},'only-of-type':function(m){var p=Selector.xpath.pseudos;return p['first-of-type'](m)+p['last-of-type'](m);},nth:function(fragment,m){var mm,formula=m[6],predicate;if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';if(mm=formula.match(/^(\d+)$/)) return'['+fragment+"= "+mm[1]+']';if(mm=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(mm[1]=="-")mm[1]=-1;var a=mm[1]?Number(mm[1]):1;var b=mm[2]?Number(mm[2]):0;predicate="[((#{fragment} - #{b}) mod #{a} = 0) and "+"((#{fragment} - #{b}) div #{a} >= 0)]";return new Template(predicate).evaluate({fragment:fragment,a:a,b:b});}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c); c = false;',className:'n = h.className(n, r, "#{1}", c); c = false;',id:'n = h.id(n, r, "#{1}", c); c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}", c); c = false;',attr:function(m){m[3]=(m[5]||m[6]);return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);},pseudo:function(m){if(m[6])m[6]=m[6].replace(/"/g,'\\"');return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:{laterSibling:/^\s*~\s*/,child:/^\s*>\s*/,adjacent:/^\s*\+\s*/,descendant:/^\s/,tagName:/^\s*(\*|[\w\-]+)(\b|$)?/,id:/^#([\w\-\*]+)(\b|$)/,className:/^\.([\w\-\*]+)(\b|$)/,pseudo:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,attrPresence:/^\[((?:[\w]+:)?[\w]+)\]/,attr:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/},assertions:{tagName:function(element,matches){return matches[1].toUpperCase()==element.tagName.toUpperCase();},className:function(element,matches){return Element.hasClassName(element,matches[1]);},id:function(element,matches){return element.id===matches[1];},attrPresence:function(element,matches){return Element.hasAttribute(element,matches[1]);},attr:function(element,matches){var nodeValue=Element.readAttribute(element,matches[1]);return nodeValue&&Selector.operators[matches[2]](nodeValue,matches[5]||matches[6]);}},handlers:{concat:function(a,b){for(var i=0,node;node=b[i];i++) a.push(node);return a;},mark:function(nodes){var _true=Prototype.emptyFunction;for(var i=0,node;node=nodes[i];i++) node._countedByPrototype=_true;return nodes;},unmark:function(nodes){for(var i=0,node;node=nodes[i];i++) node._countedByPrototype=undefined;return nodes;},index:function(parentNode,reverse,ofType){parentNode._countedByPrototype=Prototype.emptyFunction;if(reverse){for(var nodes=parentNode.childNodes,i=nodes.length-1,j=1;i>=0;i--){var node=nodes[i];if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}}else{for(var i=0,j=1,nodes=parentNode.childNodes;node=nodes[i];i++) if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}},unique:function(nodes){if(nodes.length==0)return nodes;var results=[],n;for(var i=0,l=nodes.length;i0?[b]:[];return $R(1,total).inject([],function(memo,i){if(0==(i-b)%a&&(i-b)/a>=0)memo.push(i);return memo;});},nth:function(nodes,formula,root,reverse,ofType){if(nodes.length==0)return[];if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';var h=Selector.handlers,results=[],indexed=[],m;h.mark(nodes);for(var i=0,node;node=nodes[i];i++){if(!node.parentNode._countedByPrototype){h.index(node.parentNode,reverse,ofType);indexed.push(node.parentNode);}} if(formula.match(/^\d+$/)){formula=Number(formula);for(var i=0,node;node=nodes[i];i++) if(node.nodeIndex==formula)results.push(node);}else if(m=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(m[1]=="-")m[1]=-1;var a=m[1]?Number(m[1]):1;var b=m[2]?Number(m[2]):0;var indices=Selector.pseudos.getIndices(a,b,nodes.length);for(var i=0,node,l=indices.length;node=nodes[i];i++){for(var j=0;j+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){expressions.push(m[1].strip());});return expressions;},matchElements:function(elements,expression){var matches=$$(expression),h=Selector.handlers;h.mark(matches);for(var i=0,results=[],element;element=elements[i];i++) if(element._countedByPrototype)results.push(element);h.unmark(matches);return results;},findElement:function(elements,expression,index){if(Object.isNumber(expression)){index=expression;expression=false;} return Selector.matchElements(elements,expression||'*')[index||0];},findChildElements:function(element,expressions){expressions=Selector.split(expressions.join(','));var results=[],h=Selector.handlers;for(var i=0,l=expressions.length,selector;i1)?h.unique(results):results;}});if(Prototype.Browser.IE){Object.extend(Selector.handlers,{concat:function(a,b){for(var i=0,node;node=b[i];i++) if(node.tagName!=="!")a.push(node);return a;},unmark:function(nodes){for(var i=0,node;node=nodes[i];i++) node.removeAttribute('_countedByPrototype');return nodes;}});} function $$(){return Selector.findChildElements(document,$A(arguments));} var Form={reset:function(form){$(form).reset();return form;},serializeElements:function(elements,options){if(typeof options!='object')options={hash:!!options};else if(Object.isUndefined(options.hash))options.hash=true;var key,value,submitted=false,submit=options.submit;var data=elements.inject({},function(result,element){if(!element.disabled&&element.name){key=element.name;value=$(element).getValue();if(value!=null&&element.type!='file'&&(element.type!='submit'||(!submitted&&submit!==false&&(!submit||key==submit)&&(submitted=true)))){if(key in result){if(!Object.isArray(result[key]))result[key]=[result[key]];result[key].push(value);} else result[key]=value;}} return result;});return options.hash?data:Object.toQueryString(data);}};Form.Methods={serialize:function(form,options){return Form.serializeElements(Form.getElements(form),options);},getElements:function(form){return $A($(form).getElementsByTagName('*')).inject([],function(elements,child){if(Form.Element.Serializers[child.tagName.toLowerCase()]) elements.push(Element.extend(child));return elements;});},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)return $A(inputs).map(Element.extend);for(var i=0,matchingInputs=[],length=inputs.length;i=0;}).sortBy(function(element){return element.tabIndex}).first();return firstByIndex?firstByIndex:elements.find(function(element){return['input','select','textarea'].include(element.tagName.toLowerCase());});},focusFirstElement:function(form){form=$(form);form.findFirstElement().activate();return form;},request:function(form,options){form=$(form),options=Object.clone(options||{});var params=options.parameters,action=form.readAttribute('action')||'';if(action.blank())action=window.location.href;options.parameters=form.serialize(true);if(params){if(Object.isString(params))params=params.toQueryParams();Object.extend(options.parameters,params);} if(form.hasAttribute('method')&&!options.method) options.method=form.method;return new Ajax.Request(action,options);}};Form.Element={focus:function(element){$(element).focus();return element;},select:function(element){$(element).select();return element;}};Form.Element.Methods={serialize:function(element){element=$(element);if(!element.disabled&&element.name){var value=element.getValue();if(value!=undefined){var pair={};pair[element.name]=value;return Object.toQueryString(pair);}} return'';},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();return Form.Element.Serializers[method](element);},setValue:function(element,value){element=$(element);var method=element.tagName.toLowerCase();Form.Element.Serializers[method](element,value);return element;},clear:function(element){$(element).value='';return element;},present:function(element){return $(element).value!='';},activate:function(element){element=$(element);try{element.focus();if(element.select&&(element.tagName.toLowerCase()!='input'||!['button','reset','submit'].include(element.type))) element.select();}catch(e){} return element;},disable:function(element){element=$(element);element.disabled=true;return element;},enable:function(element){element=$(element);element.disabled=false;return element;}};var Field=Form.Element;var $F=Form.Element.Methods.getValue;Form.Element.Serializers={input:function(element,value){switch(element.type.toLowerCase()){case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element,value);default:return Form.Element.Serializers.textarea(element,value);}},inputSelector:function(element,value){if(Object.isUndefined(value))return element.checked?element.value:null;else element.checked=!!value;},textarea:function(element,value){if(Object.isUndefined(value))return element.value;else element.value=value;},select:function(element,value){if(Object.isUndefined(value)) return this[element.type=='select-one'?'selectOne':'selectMany'](element);else{var opt,currentValue,single=!Object.isArray(value);for(var i=0,length=element.length;i=0?this.optionValue(element.options[index]):null;},selectMany:function(element){var values,length=element.length;if(!length)return null;for(var i=0,values=[];i<\/script>");$("__onDOMContentLoaded").onreadystatechange=function(){if(this.readyState=="complete"){this.onreadystatechange=null;fireContentLoadedEvent();}};}})();Hash.toQueryString=Object.toQueryString;var Toggle={display:Element.toggle};Element.Methods.childOf=Element.Methods.descendantOf;var Insertion={Before:function(element,content){return Element.insert(element,{before:content});},Top:function(element,content){return Element.insert(element,{top:content});},Bottom:function(element,content){return Element.insert(element,{bottom:content});},After:function(element,content){return Element.insert(element,{after:content});}};var $continue=new Error('"throw $continue" is deprecated, use "return" instead');var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},within:function(element,x,y){if(this.includeScrollOffsets) return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=Element.cumulativeOffset(element);return(y>=this.offset[1]&&y=this.offset[0]&&x=this.offset[1]&&this.ycomp=this.offset[0]&&this.xcomp0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set($A(this).concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set($A(this).without(classNameToRemove).join(' '));},toString:function(){return $A(this).join(' ');}};Object.extend(Element.ClassNames.prototype,Enumerable);Element.addMethods();String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase();}} return(color.length==7?color:(arguments[0]||this));};Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''));}).flatten().join('');};Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''));}).flatten().join('');};Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+'em'});if(Prototype.Browser.WebKit)window.scrollBy(0,0);return element;};Element.getInlineOpacity=function(element){return $(element).style.opacity||'';};Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}};var Effect={_elementDoesNotExistError:{name:'ElementDoesNotExistError',message:'The specified DOM element does not exist, but is required for this effect to operate'},Transitions:{linear:Prototype.K,sinoidal:function(pos){return(-Math.cos(pos*Math.PI)/2)+.5;},reverse:function(pos){return 1-pos;},flicker:function(pos){var pos=((-Math.cos(pos*Math.PI)/4)+.75)+Math.random()/4;return pos>1?1:pos;},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+.5;},pulse:function(pos,pulses){return(-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2)+.5;},spring:function(pos){return 1-(Math.cos(pos*4.5*Math.PI)*Math.exp(-pos*6));},none:function(pos){return 0;},full:function(pos){return 1;}},DefaultOptions:{duration:1.0,fps:100,sync:false,from:0.0,to:1.0,delay:0.0,queue:'parallel'},tagifyText:function(element){var tagifyStyle='position:relative';if(Prototype.Browser.IE)tagifyStyle+=';zoom:1';element=$(element);$A(element.childNodes).each(function(child){if(child.nodeType==3){child.nodeValue.toArray().each(function(character){element.insertBefore(new Element('span',{style:tagifyStyle}).update(character==' '?String.fromCharCode(160):character),child);});Element.remove(child);}});},multiple:function(element,effect){var elements;if(((typeof element=='object')||Object.isFunction(element))&&(element.length)) elements=element;else elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}));});},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle:function(element,effect){element=$(element);effect=(effect||'appear').toLowerCase();var options=Object.extend({queue:{position:'end',scope:(element.id||'global'),limit:1}},arguments[2]||{});Effect[element.visible()?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,options);}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null;},_each:function(iterator){this.effects._each(iterator);},add:function(effect){var timestamp=new Date().getTime();var position=Object.isString(effect.options.queue)?effect.options.queue:effect.options.queue.position;switch(position){case'front':this.effects.findAll(function(e){return e.state=='idle'}).each(function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn;});break;case'with-last':timestamp=this.effects.pluck('startOn').max()||timestamp;break;case'end':timestamp=this.effects.pluck('finishOn').max()||timestamp;break;} effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length=this.startOn){if(timePos>=this.finishOn){this.render(1.0);this.cancel();this.event('beforeFinish');if(this.finish)this.finish();this.event('afterFinish');return;} var pos=(timePos-this.startOn)/this.totalTime,frame=(pos*this.totalFrames).round();if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame;}}},cancel:function(){if(!this.options.sync) Effect.Queues.get(Object.isString(this.options.queue)?'global':this.options.queue.scope).remove(this);this.state='finished';},event:function(eventName){if(this.options[eventName+'Internal'])this.options[eventName+'Internal'](this);if(this.options[eventName])this.options[eventName](this);},inspect:function(){var data=$H();for(property in this) if(!Object.isFunction(this[property]))data.set(property,this[property]);return'#';}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(effects){this.effects=effects||[];this.start(arguments[1]);},update:function(position){this.effects.invoke('render',position);},finish:function(position){this.effects.each(function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish)effect.finish(position);effect.event('afterFinish');});}});Effect.Tween=Class.create(Effect.Base,{initialize:function(object,from,to){object=Object.isString(object)?$(object):object;var args=$A(arguments),method=args.last(),options=args.length==5?args[3]:null;this.method=Object.isFunction(method)?method.bind(object):Object.isFunction(object[method])?object[method].bind(object):function(value){object[method]=value};this.start(Object.extend({from:from,to:to},options||{}));},update:function(position){this.method(position);}});Effect.Event=Class.create(Effect.Base,{initialize:function(){this.start(Object.extend({duration:0},arguments[0]||{}));},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)) this.element.setStyle({zoom:1});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1]||{});this.start(options);},update:function(position){this.element.setOpacity(position);}});Effect.Move=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({x:0,y:0,mode:'relative'},arguments[1]||{});this.start(options);},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle('left')||'0');this.originalTop=parseFloat(this.element.getStyle('top')||'0');if(this.options.mode=='absolute'){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop;}},update:function(position){this.element.setStyle({left:(this.options.x*position+this.originalLeft).round()+'px',top:(this.options.y*position+this.originalTop).round()+'px'});}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}));};Effect.Scale=Class.create(Effect.Base,{initialize:function(element,percent){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});this.start(options);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle('position');this.originalStyle={};['top','left','width','height','fontSize'].each(function(k){this.originalStyle[k]=this.element.style[k];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=this.element.getStyle('font-size')||'100%';['em','px','%','pt'].each(function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box') this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode)) this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims) this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];},update:function(position){var currentScale=(this.options.scaleFrom/100.0)+(this.factor*position);if(this.options.scaleContent&&this.fontSize) this.element.setStyle({fontSize:this.fontSize*currentScale+this.fontSizeType});this.setDimensions(this.dims[0]*currentScale,this.dims[1]*currentScale);},finish:function(position){if(this.restoreAfterFinish)this.element.setStyle(this.originalStyle);},setDimensions:function(height,width){var d={};if(this.options.scaleX)d.width=width.round()+'px';if(this.options.scaleY)d.height=height.round()+'px';if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY)d.top=this.originalTop-topd+'px';if(this.options.scaleX)d.left=this.originalLeft-leftd+'px';}else{if(this.options.scaleY)d.top=-topd+'px';if(this.options.scaleX)d.left=-leftd+'px';}} this.element.setStyle(d);}});Effect.Highlight=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({startcolor:'#ffff99'},arguments[1]||{});this.start(options);},setup:function(){if(this.element.getStyle('display')=='none'){this.cancel();return;} this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle('background-image');this.element.setStyle({backgroundImage:'none'});} if(!this.options.endcolor) this.options.endcolor=this.element.getStyle('background-color').parseColor('#ffffff');if(!this.options.restorecolor) this.options.restorecolor=this.element.getStyle('background-color');this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]}.bind(this));},update:function(position){this.element.setStyle({backgroundColor:$R(0,2).inject('#',function(m,v,i){return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart());}.bind(this))});},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));}});Effect.ScrollTo=function(element){var options=arguments[1]||{},scrollOffsets=document.viewport.getScrollOffsets(),elementOffsets=$(element).cumulativeOffset();if(options.offset)elementOffsets[1]+=options.offset;return new Effect.Tween(null,scrollOffsets.top,elementOffsets[1],options,function(p){scrollTo(scrollOffsets.left,p.round());});};Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1.0,to:0.0,afterFinishInternal:function(effect){if(effect.options.to!=0)return;effect.element.hide().setStyle({opacity:oldOpacity});}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle('display')=='none'?0.0:element.getOpacity()||0.0),to:1.0,afterFinishInternal:function(effect){effect.element.forceRerendering();},beforeSetup:function(effect){effect.element.setOpacity(effect.options.from).show();}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Puff=function(element){element=$(element);var oldStyle={opacity:element.getInlineOpacity(),position:element.getStyle('position'),top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};return new Effect.Parallel([new Effect.Scale(element,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:1.0,beforeSetupInternal:function(effect){Position.absolutize(effect.effects[0].element);},afterFinishInternal:function(effect){effect.effects[0].element.hide().setStyle(oldStyle);}},arguments[1]||{}));};Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(effect){effect.element.hide().undoClipping();}},arguments[1]||{}));};Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makeClipping().setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.element.undoClipping();}},arguments[1]||{}));};Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({opacity:oldOpacity});}});}},arguments[1]||{}));};Effect.DropOut=function(element){element=$(element);var oldStyle={top:element.getStyle('top'),left:element.getStyle('left'),opacity:element.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(element,{x:0,y:100,sync:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:0.5,beforeSetup:function(effect){effect.effects[0].element.makePositioned();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);}},arguments[1]||{}));};Effect.Shake=function(element){element=$(element);var options=Object.extend({distance:20,duration:0.5},arguments[1]||{});var distance=parseFloat(options.distance);var split=parseFloat(options.duration)/10.0;var oldStyle={top:element.getStyle('top'),left:element.getStyle('left')};return new Effect.Move(element,{x:distance,y:0,duration:split,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance,y:0,duration:split,afterFinishInternal:function(effect){effect.element.undoPositioned().setStyle(oldStyle);}});}});}});}});}});}});};Effect.SlideDown=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().setStyle({height:'0px'}).show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};Effect.SlideUp=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:'box',scaleFrom:100,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping();}});};Effect.Grow=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case'top-left':initialMoveX=initialMoveY=moveX=moveY=0;break;case'top-right':initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case'bottom-left':initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case'bottom-right':initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case'center':initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break;} return new Effect.Move(element,{x:initialMoveX,y:initialMoveY,duration:0.01,beforeSetup:function(effect){effect.element.hide().makeClipping().makePositioned();},afterFinishInternal:function(effect){new Effect.Parallel([new Effect.Opacity(effect.element,{sync:true,to:1.0,from:0.0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition}),new Effect.Scale(effect.element,100,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(effect){effect.effects[0].element.setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);}},options));}});};Effect.Shrink=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var moveX,moveY;switch(options.direction){case'top-left':moveX=moveY=0;break;case'top-right':moveX=dims.width;moveY=0;break;case'bottom-left':moveX=0;moveY=dims.height;break;case'bottom-right':moveX=dims.width;moveY=dims.height;break;case'center':moveX=dims.width/2;moveY=dims.height/2;break;} return new Effect.Parallel([new Effect.Opacity(element,{sync:true,to:0.0,from:1.0,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1:0,{sync:true,transition:options.scaleTransition,restoreAfterFinish:true}),new Effect.Move(element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition})],Object.extend({beforeStartInternal:function(effect){effect.effects[0].element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle);}},options));};Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{},oldOpacity=element.getInlineOpacity(),transition=options.transition||Effect.Transitions.linear,reverser=function(pos){return 1-transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2)+.5);};return new Effect.Opacity(element,Object.extend(Object.extend({duration:2.0,from:0,afterFinishInternal:function(effect){effect.element.setStyle({opacity:oldOpacity});}},options),{transition:reverser}));};Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};element.makeClipping();return new Effect.Scale(element,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(effect){new Effect.Scale(element,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(effect){effect.element.hide().undoClipping().setStyle(oldStyle);}});}},arguments[1]||{}));};Effect.Morph=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(options.style))this.style=$H(options.style);else{if(options.style.include(':')) this.style=options.style.parseStyle();else{this.element.addClassName(options.style);this.style=$H(this.element.getStyles());this.element.removeClassName(options.style);var css=this.element.getStyles();this.style=this.style.reject(function(style){return style.value==css[style.key];});options.afterFinishInternal=function(effect){effect.element.addClassName(effect.options.style);effect.transforms.each(function(transform){effect.element.style[transform.style]='';});};}} this.start(options);},setup:function(){function parseColor(color){if(!color||['rgba(0, 0, 0, 0)','transparent'].include(color))color='#ffffff';color=color.parseColor();return $R(0,2).map(function(i){return parseInt(color.slice(i*2+1,i*2+3),16);});} this.transforms=this.style.map(function(pair){var property=pair[0],value=pair[1],unit=null;if(value.parseColor('#zzzzzz')!='#zzzzzz'){value=value.parseColor();unit='color';}else if(property=='opacity'){value=parseFloat(value);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)) this.element.setStyle({zoom:1});}else if(Element.CSS_LENGTH.test(value)){var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/);value=parseFloat(components[1]);unit=(components.length==3)?components[2]:null;} var originalValue=this.element.getStyle(property);return{style:property.camelize(),originalValue:unit=='color'?parseColor(originalValue):parseFloat(originalValue||0),targetValue:unit=='color'?parseColor(value):value,unit:unit};}.bind(this)).reject(function(transform){return((transform.originalValue==transform.targetValue)||(transform.unit!='color'&&(isNaN(transform.originalValue)||isNaN(transform.targetValue))));});},update:function(position){var style={},transform,i=this.transforms.length;while(i--) style[(transform=this.transforms[i]).style]=transform.unit=='color'?'#'+ (Math.round(transform.originalValue[0]+ (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart()+ (Math.round(transform.originalValue[1]+ (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart()+ (Math.round(transform.originalValue[2]+ (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart():(transform.originalValue+ (transform.targetValue-transform.originalValue)*position).toFixed(3)+ (transform.unit===null?'':transform.unit);this.element.setStyle(style,true);}});Effect.Transform=Class.create({initialize:function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks);},addTracks:function(tracks){tracks.each(function(track){track=$H(track);var data=track.values().first();this.tracks.push($H({ids:track.keys().first(),effect:Effect.Morph,options:{style:data}}));}.bind(this));return this;},play:function(){return new Effect.Parallel(this.tracks.map(function(track){var ids=track.get('ids'),effect=track.get('effect'),options=track.get('options');var elements=[$(ids)||$$(ids)].flatten();return elements.map(function(e){return new effect(e,Object.extend({sync:true},options))});}).flatten(),this.options);}});Element.CSS_PROPERTIES=$w('backgroundColor backgroundPosition borderBottomColor borderBottomStyle '+'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth '+'borderRightColor borderRightStyle borderRightWidth borderSpacing '+'borderTopColor borderTopStyle borderTopWidth bottom clip color '+'fontSize fontWeight height left letterSpacing lineHeight '+'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+'maxWidth minHeight minWidth opacity outlineColor outlineOffset '+'outlineWidth paddingBottom paddingLeft paddingRight paddingTop '+'right textIndent top width wordSpacing zIndex');Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement('div');String.prototype.parseStyle=function(){var style,styleRules=$H();if(Prototype.Browser.WebKit) style=new Element('div',{style:this}).style;else{String.__parseStyleElement.innerHTML='
';style=String.__parseStyleElement.childNodes[0].style;} Element.CSS_PROPERTIES.each(function(property){if(style[property])styleRules.set(property,style[property]);});if(Prototype.Browser.IE&&this.include('opacity')) styleRules.set('opacity',this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);return styleRules;};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(element){var css=document.defaultView.getComputedStyle($(element),null);return Element.CSS_PROPERTIES.inject({},function(styles,property){styles[property]=css[property];return styles;});};}else{Element.getStyles=function(element){element=$(element);var css=element.currentStyle,styles;styles=Element.CSS_PROPERTIES.inject({},function(results,property){results[property]=css[property];return results;});if(!styles.opacity)styles.opacity=element.getOpacity();return styles;};} Effect.Methods={morph:function(element,style){element=$(element);new Effect.Morph(element,Object.extend({style:style},arguments[2]||{}));return element;},visualEffect:function(element,effect,options){element=$(element);var s=effect.dasherize().camelize(),klass=s.charAt(0).toUpperCase()+s.substring(1);new Effect[klass](element,options);return element;},highlight:function(element,options){element=$(element);new Effect.Highlight(element,options);return element;}};$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+'pulsate shake puff squish switchOff dropOut').each(function(effect){Effect.Methods[effect]=function(element,options){element=$(element);Effect[effect.charAt(0).toUpperCase()+effect.substring(1)](element,options);return element;};});$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(function(f){Effect.Methods[f]=Element[f];});Element.addMethods(Effect.Methods);if(Object.isUndefined(Effect)) throw("dragdrop.js requires including script.aculo.us' effects.js library");var Droppables={drops:[],remove:function(element){this.drops=this.drops.reject(function(d){return d.element==$(element)});},add:function(element){element=$(element);var options=Object.extend({greedy:true,hoverclass:null,tree:false},arguments[1]||{});if(options.containment){options._containers=[];var containment=options.containment;if(Object.isArray(containment)){containment.each(function(c){options._containers.push($(c))});}else{options._containers.push($(containment));}} if(options.accept)options.accept=[options.accept].flatten();Element.makePositioned(element);options.element=element;this.drops.push(options);},findDeepestChild:function(drops){deepest=drops[0];for(i=1;i0) drop=Droppables.findDeepestChild(affected);if(this.last_active&&this.last_active!=drop)this.deactivate(this.last_active);if(drop){Position.within(drop.element,point[0],point[1]);if(drop.onHover) drop.onHover(element,drop.element,Position.overlap(drop.overlap,drop.element));if(drop!=this.last_active)Droppables.activate(drop);}},fire:function(event,element){if(!this.last_active)return;Position.prepare();if(this.isAffected([Event.pointerX(event),Event.pointerY(event)],element,this.last_active)) if(this.last_active.onDrop){this.last_active.onDrop(element,this.last_active.element,event);return true;}},reset:function(){if(this.last_active) this.deactivate(this.last_active);}};var Draggables={drags:[],observers:[],register:function(draggable){if(this.drags.length==0){this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress);} this.drags.push(draggable);},unregister:function(draggable){this.drags=this.drags.reject(function(d){return d==draggable});if(this.drags.length==0){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);Event.stopObserving(document,"keypress",this.eventKeypress);}},activate:function(draggable){if(draggable.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=draggable;}.bind(this),draggable.options.delay);}else{window.focus();this.activeDraggable=draggable;}},deactivate:function(){this.activeDraggable=null;},updateDrag:function(event){if(!this.activeDraggable)return;var pointer=[Event.pointerX(event),Event.pointerY(event)];if(this._lastPointer&&(this._lastPointer.inspect()==pointer.inspect()))return;this._lastPointer=pointer;this.activeDraggable.updateDrag(event,pointer);},endDrag:function(event){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;} if(!this.activeDraggable)return;this._lastPointer=null;this.activeDraggable.endDrag(event);this.activeDraggable=null;},keyPress:function(event){if(this.activeDraggable) this.activeDraggable.keyPress(event);},addObserver:function(observer){this.observers.push(observer);this._cacheObserverCallbacks();},removeObserver:function(element){this.observers=this.observers.reject(function(o){return o.element==element});this._cacheObserverCallbacks();},notify:function(eventName,draggable,event){if(this[eventName+'Count']>0) this.observers.each(function(o){if(o[eventName])o[eventName](eventName,draggable,event);});if(draggable.options[eventName])draggable.options[eventName](draggable,event);},_cacheObserverCallbacks:function(){['onStart','onEnd','onDrag'].each(function(eventName){Draggables[eventName+'Count']=Draggables.observers.select(function(o){return o[eventName];}).length;});}};var Draggable=Class.create({initialize:function(element){var defaults={handle:false,reverteffect:function(element,top_offset,left_offset){var dur=Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;new Effect.Move(element,{x:-left_offset,y:-top_offset,duration:dur,queue:{scope:'_draggable',position:'end'}});},endeffect:function(element){var toOpacity=Object.isNumber(element._opacity)?element._opacity:1.0;new Effect.Opacity(element,{duration:0.2,from:0.7,to:toOpacity,queue:{scope:'_draggable',position:'end'},afterFinish:function(){Draggable._dragging[element]=false}});},zindex:1000,revert:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!arguments[1]||Object.isUndefined(arguments[1].endeffect)) Object.extend(defaults,{starteffect:function(element){element._opacity=Element.getOpacity(element);Draggable._dragging[element]=true;new Effect.Opacity(element,{duration:0.2,from:element._opacity,to:0.7});}});var options=Object.extend(defaults,arguments[1]||{});this.element=$(element);if(options.handle&&Object.isString(options.handle)) this.handle=this.element.down('.'+options.handle,0);if(!this.handle)this.handle=$(options.handle);if(!this.handle)this.handle=this.element;if(options.scroll&&!options.scroll.scrollTo&&!options.scroll.outerHTML){options.scroll=$(options.scroll);this._isScrollChild=Element.childOf(this.element,options.scroll);} Element.makePositioned(this.element);this.options=options;this.dragging=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this);},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);Draggables.unregister(this);},currentDelta:function(){return([parseInt(Element.getStyle(this.element,'left')||'0'),parseInt(Element.getStyle(this.element,'top')||'0')]);},initDrag:function(event){if(!Object.isUndefined(Draggable._dragging[this.element])&&Draggable._dragging[this.element])return;if(Event.isLeftClick(event)){var src=Event.element(event);if((tag_name=src.tagName.toUpperCase())&&(tag_name=='INPUT'||tag_name=='SELECT'||tag_name=='OPTION'||tag_name=='BUTTON'||tag_name=='TEXTAREA'))return;var pointer=[Event.pointerX(event),Event.pointerY(event)];var pos=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(i){return(pointer[i]-pos[i])});Draggables.activate(this);Event.stop(event);}},startDrag:function(event){this.dragging=true;if(!this.delta) this.delta=this.currentDelta();if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,'z-index')||0);this.element.style.zIndex=this.options.zindex;} if(this.options.ghosting){this._clone=this.element.cloneNode(true);this._originallyAbsolute=(this.element.getStyle('position')=='absolute');if(!this._originallyAbsolute) Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone,this.element);} if(this.options.scroll){if(this.options.scroll==window){var where=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=where.left;this.originalScrollTop=where.top;}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop;}} Draggables.notify('onStart',this,event);if(this.options.starteffect)this.options.starteffect(this.element);},updateDrag:function(event,pointer){if(!this.dragging)this.startDrag(event);if(!this.options.quiet){Position.prepare();Droppables.show(pointer,this.element);} Draggables.notify('onDrag',this,event);this.draw(pointer);if(this.options.change)this.options.change(this);if(this.options.scroll){this.stopScrolling();var p;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){p=[left,top,left+width,top+height];}}else{p=Position.page(this.options.scroll);p[0]+=this.options.scroll.scrollLeft+Position.deltaX;p[1]+=this.options.scroll.scrollTop+Position.deltaY;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight);} var speed=[0,0];if(pointer[0]<(p[0]+this.options.scrollSensitivity))speed[0]=pointer[0]-(p[0]+this.options.scrollSensitivity);if(pointer[1]<(p[1]+this.options.scrollSensitivity))speed[1]=pointer[1]-(p[1]+this.options.scrollSensitivity);if(pointer[0]>(p[2]-this.options.scrollSensitivity))speed[0]=pointer[0]-(p[2]-this.options.scrollSensitivity);if(pointer[1]>(p[3]-this.options.scrollSensitivity))speed[1]=pointer[1]-(p[3]-this.options.scrollSensitivity);this.startScrolling(speed);} if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event);},finishDrag:function(event,success){this.dragging=false;if(this.options.quiet){Position.prepare();var pointer=[Event.pointerX(event),Event.pointerY(event)];Droppables.show(pointer,this.element);} if(this.options.ghosting){if(!this._originallyAbsolute) Position.relativize(this.element);delete this._originallyAbsolute;Element.remove(this._clone);this._clone=null;} var dropped=false;if(success){dropped=Droppables.fire(event,this.element);if(!dropped)dropped=false;} if(dropped&&this.options.onDropped)this.options.onDropped(this.element);Draggables.notify('onEnd',this,event);var revert=this.options.revert;if(revert&&Object.isFunction(revert))revert=revert(this.element);var d=this.currentDelta();if(revert&&this.options.reverteffect){if(dropped==0||revert!='failure') this.options.reverteffect(this.element,d[1]-this.delta[1],d[0]-this.delta[0]);}else{this.delta=d;} if(this.options.zindex) this.element.style.zIndex=this.originalZ;if(this.options.endeffect) this.options.endeffect(this.element);Draggables.deactivate(this);Droppables.reset();},keyPress:function(event){if(event.keyCode!=Event.KEY_ESC)return;this.finishDrag(event,false);Event.stop(event);},endDrag:function(event){if(!this.dragging)return;this.stopScrolling();this.finishDrag(event,true);Event.stop(event);},draw:function(point){var pos=Position.cumulativeOffset(this.element);if(this.options.ghosting){var r=Position.realOffset(this.element);pos[0]+=r[0]-Position.deltaX;pos[1]+=r[1]-Position.deltaY;} var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){pos[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;pos[1]-=this.options.scroll.scrollTop-this.originalScrollTop;} var p=[0,1].map(function(i){return(point[i]-pos[i]-this.offset[i])}.bind(this));if(this.options.snap){if(Object.isFunction(this.options.snap)){p=this.options.snap(p[0],p[1],this);}else{if(Object.isArray(this.options.snap)){p=p.map(function(v,i){return(v/this.options.snap[i]).round()*this.options.snap[i]}.bind(this));}else{p=p.map(function(v){return(v/this.options.snap).round()*this.options.snap}.bind(this));}}} var style=this.element.style;if((!this.options.constraint)||(this.options.constraint=='horizontal')) style.left=p[0]+"px";if((!this.options.constraint)||(this.options.constraint=='vertical')) style.top=p[1]+"px";if(style.visibility=="hidden")style.visibility="";},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null;}},startScrolling:function(speed){if(!(speed[0]||speed[1]))return;this.scrollSpeed=[speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10);},scroll:function(){var current=new Date();var delta=current-this.lastScrolled;this.lastScrolled=current;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=delta/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1]);}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*delta/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*delta/1000;} Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify('onDrag',this);if(this._isScrollChild){Draggables._lastScrollPointer=Draggables._lastScrollPointer||$A(Draggables._lastPointer);Draggables._lastScrollPointer[0]+=this.scrollSpeed[0]*delta/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*delta/1000;if(Draggables._lastScrollPointer[0]<0) Draggables._lastScrollPointer[0]=0;if(Draggables._lastScrollPointer[1]<0) Draggables._lastScrollPointer[1]=0;this.draw(Draggables._lastScrollPointer);} if(this.options.change)this.options.change(this);},_getWindowScroll:function(w){var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft;}else if(w.document.body){T=body.scrollTop;L=body.scrollLeft;} if(w.innerWidth){W=w.innerWidth;H=w.innerHeight;}else if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight;}else{W=body.offsetWidth;H=body.offsetHeight;}} return{top:T,left:L,width:W,height:H};}});Draggable._dragging={};var SortableObserver=Class.create({initialize:function(element,observer){this.element=$(element);this.observer=observer;this.lastValue=Sortable.serialize(this.element);},onStart:function(){this.lastValue=Sortable.serialize(this.element);},onEnd:function(){Sortable.unmark();if(this.lastValue!=Sortable.serialize(this.element)) this.observer(this.element)}});var Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(element){while(element.tagName.toUpperCase()!="BODY"){if(element.id&&Sortable.sortables[element.id])return element;element=element.parentNode;}},options:function(element){element=Sortable._findRootElement($(element));if(!element)return;return Sortable.sortables[element.id];},destroy:function(element){element=$(element);var s=Sortable.sortables[element.id];if(s){Draggables.removeObserver(s.element);s.droppables.each(function(d){Droppables.remove(d)});s.draggables.invoke('destroy');delete Sortable.sortables[s.element.id];}},create:function(element){element=$(element);var options=Object.extend({element:element,tag:'li',dropOnEmpty:false,tree:false,treeTag:'ul',overlap:'vertical',constraint:'vertical',containment:element,handle:false,only:false,delay:0,hoverclass:null,ghosting:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,elements:false,handles:false,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(element);var options_for_draggable={revert:true,quiet:options.quiet,scroll:options.scroll,scrollSpeed:options.scrollSpeed,scrollSensitivity:options.scrollSensitivity,delay:options.delay,ghosting:options.ghosting,constraint:options.constraint,handle:options.handle};if(options.starteffect) options_for_draggable.starteffect=options.starteffect;if(options.reverteffect) options_for_draggable.reverteffect=options.reverteffect;else if(options.ghosting)options_for_draggable.reverteffect=function(element){element.style.top=0;element.style.left=0;};if(options.endeffect) options_for_draggable.endeffect=options.endeffect;if(options.zindex) options_for_draggable.zindex=options.zindex;var options_for_droppable={overlap:options.overlap,containment:options.containment,tree:options.tree,hoverclass:options.hoverclass,onHover:Sortable.onHover};var options_for_tree={onHover:Sortable.onEmptyHover,overlap:options.overlap,containment:options.containment,hoverclass:options.hoverclass};Element.cleanWhitespace(element);options.draggables=[];options.droppables=[];if(options.dropOnEmpty||options.tree){Droppables.add(element,options_for_tree);options.droppables.push(element);} (options.elements||this.findElements(element,options)||[]).each(function(e,i){var handle=options.handles?$(options.handles[i]):(options.handle?$(e).select('.'+options.handle)[0]:e);options.draggables.push(new Draggable(e,Object.extend(options_for_draggable,{handle:handle})));Droppables.add(e,options_for_droppable);if(options.tree)e.treeNode=element;options.droppables.push(e);});if(options.tree){(Sortable.findTreeElements(element,options)||[]).each(function(e){Droppables.add(e,options_for_tree);e.treeNode=element;options.droppables.push(e);});} this.sortables[element.id]=options;Draggables.addObserver(new SortableObserver(element,options.onUpdate));},findElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.tag);},findTreeElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.treeTag);},onHover:function(element,dropon,overlap){if(Element.isParent(dropon,element))return;if(overlap>.33&&overlap<.66&&Sortable.options(dropon).tree){return;}else if(overlap>0.5){Sortable.mark(dropon,'before');if(dropon.previousSibling!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,dropon);if(dropon.parentNode!=oldParentNode) Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}else{Sortable.mark(dropon,'after');var nextElement=dropon.nextSibling||null;if(nextElement!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,nextElement);if(dropon.parentNode!=oldParentNode) Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}},onEmptyHover:function(element,dropon,overlap){var oldParentNode=element.parentNode;var droponOptions=Sortable.options(dropon);if(!Element.isParent(dropon,element)){var index;var children=Sortable.findElements(dropon,{tag:droponOptions.tag,only:droponOptions.only});var child=null;if(children){var offset=Element.offsetSize(dropon,droponOptions.overlap)*(1.0-overlap);for(index=0;index=0){offset-=Element.offsetSize(children[index],droponOptions.overlap);}else if(offset-(Element.offsetSize(children[index],droponOptions.overlap)/2)>=0){child=index+1');this.iefix=$(this.update.id+'_iefix');} if(this.iefix)setTimeout(this.fixIEOverlapping.bind(this),50);},fixIEOverlapping:function(){Position.clone(this.update,this.iefix,{setTop:(!this.update.style.height)});this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix);},hide:function(){this.stopIndicator();if(Element.getStyle(this.update,'display')!='none')this.options.onHide(this.element,this.update);if(this.iefix)Element.hide(this.iefix);},startIndicator:function(){if(this.options.indicator)Element.show(this.options.indicator);},stopIndicator:function(){if(this.options.indicator)Element.hide(this.options.indicator);},onKeyPress:function(event){if(this.active) switch(event.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(event);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(event);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(event);return;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(event);return;} else if(event.keyCode==Event.KEY_TAB||event.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&event.keyCode==0))return;this.changed=true;this.hasFocus=true;if(this.observer)clearTimeout(this.observer);this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000);},activate:function(){this.changed=false;this.hasFocus=true;this.getUpdatedChoices();},onHover:function(event){var element=Event.findElement(event,'LI');if(this.index!=element.autocompleteIndex) {this.index=element.autocompleteIndex;this.render();} Event.stop(event);},onClick:function(event){var element=Event.findElement(event,'LI');this.index=element.autocompleteIndex;this.selectEntry();this.hide();},onBlur:function(event){setTimeout(this.hide.bind(this),250);this.hasFocus=false;this.active=false;},render:function(){if(this.entryCount>0){for(var i=0;i0)this.index--;else this.index=this.entryCount-1;this.getEntry(this.index).scrollIntoView(true);},markNext:function(){if(this.index0)value=Element.collectTextNodes(nodes[0],this.options.select);}else value=Element.collectTextNodesIgnoreClass(selectedElement,'informal');var bounds=this.getTokenBounds();if(bounds[0]!=-1){var newValue=this.element.value.substr(0,bounds[0]);var whitespace=this.element.value.substr(bounds[0]).match(/^\s+/);if(whitespace) newValue+=whitespace[0];this.element.value=newValue+value+this.element.value.substr(bounds[1]);}else{this.element.value=value;} this.oldElementValue=this.element.value;this.element.focus();if(this.options.afterUpdateElement) this.options.afterUpdateElement(this.element,selectedElement);},updateChoices:function(choices){if(!this.changed&&this.hasFocus){this.update.innerHTML=choices;Element.cleanWhitespace(this.update);Element.cleanWhitespace(this.update.down());if(this.update.firstChild&&this.update.down().childNodes){this.entryCount=this.update.down().childNodes.length;for(var i=0;i=this.options.minChars){this.getUpdatedChoices();}else{this.active=false;this.hide();} this.oldElementValue=this.element.value;},getToken:function(){var bounds=this.getTokenBounds();return this.element.value.substring(bounds[0],bounds[1]).strip();},getTokenBounds:function(){if(null!=this.tokenBounds)return this.tokenBounds;var value=this.element.value;if(value.strip().empty())return[-1,0];var diff=arguments.callee.getFirstDifferencePos(value,this.oldElementValue);var offset=(diff==this.oldElementValue.length?1:0);var prevTokenPos=-1,nextTokenPos=value.length;var tp;for(var index=0,l=this.options.tokens.length;indexprevTokenPos)prevTokenPos=tp;tp=value.indexOf(this.options.tokens[index],diff+offset);if(-1!=tp&&tp"+elem.substr(0,entry.length)+""+ elem.substr(entry.length)+"");break;}else if(entry.length>=instance.options.partialChars&&instance.options.partialSearch&&foundPos!=-1){if(instance.options.fullSearch||/\s/.test(elem.substr(foundPos-1,1))){partial.push("
  • "+elem.substr(0,foundPos)+""+ elem.substr(foundPos,entry.length)+""+elem.substr(foundPos+entry.length)+"
  • ");break;}} foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase(),foundPos+1):elem.indexOf(entry,foundPos+1);}} if(partial.length) ret=ret.concat(partial.slice(0,instance.options.choices-ret.length));return"
      "+ret.join('')+"
    ";}},options||{});}});Field.scrollFreeActivate=function(field){setTimeout(function(){Field.activate(field);},1);};Ajax.InPlaceEditor=Class.create({initialize:function(element,url,options){this.url=url;this.element=element=$(element);this.prepareOptions();this._controls={};arguments.callee.dealWithDeprecatedOptions(options);Object.extend(this.options,options||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+'-inplaceeditor';if($(this.options.formId)) this.options.formId='';} if(this.options.externalControl) this.options.externalControl=$(this.options.externalControl);if(!this.options.externalControl) this.options.externalControlOnly=false;this._originalBackground=this.element.getStyle('background-color')||'transparent';this.element.title=this.options.clickToEditText;this._boundCancelHandler=this.handleFormCancellation.bind(this);this._boundComplete=(this.options.onComplete||Prototype.emptyFunction).bind(this);this._boundFailureHandler=this.handleAJAXFailure.bind(this);this._boundSubmitHandler=this.handleFormSubmission.bind(this);this._boundWrapperHandler=this.wrapUp.bind(this);this.registerListeners();},checkForEscapeOrReturn:function(e){if(!this._editing||e.ctrlKey||e.altKey||e.shiftKey)return;if(Event.KEY_ESC==e.keyCode) this.handleFormCancellation(e);else if(Event.KEY_RETURN==e.keyCode) this.handleFormSubmission(e);},createControl:function(mode,handler,extraClasses){var control=this.options[mode+'Control'];var text=this.options[mode+'Text'];if('button'==control){var btn=document.createElement('input');btn.type='submit';btn.value=text;btn.className='editor_'+mode+'_button';if('cancel'==mode) btn.onclick=this._boundCancelHandler;this._form.appendChild(btn);this._controls[mode]=btn;}else if('link'==control){var link=document.createElement('a');link.href='#';link.appendChild(document.createTextNode(text));link.onclick='cancel'==mode?this._boundCancelHandler:this._boundSubmitHandler;link.className='editor_'+mode+'_link';if(extraClasses) link.className+=' '+extraClasses;this._form.appendChild(link);this._controls[mode]=link;}},createEditField:function(){var text=(this.options.loadTextURL?this.options.loadingText:this.getText());var fld;if(1>=this.options.rows&&!/\r|\n/.test(this.getText())){fld=document.createElement('input');fld.type='text';var size=this.options.size||this.options.cols||0;if(0=this.options.rows?this.options.autoRows:this.options.rows);fld.cols=this.options.cols||40;} fld.name=this.options.paramName;fld.value=text;fld.className='editor_field';if(this.options.submitOnBlur) fld.onblur=this._boundSubmitHandler;this._controls.editor=fld;if(this.options.loadTextURL) this.loadExternalText();this._form.appendChild(this._controls.editor);},createForm:function(){var ipe=this;function addText(mode,condition){var text=ipe.options['text'+mode+'Controls'];if(!text||condition===false)return;ipe._form.appendChild(document.createTextNode(text));};this._form=$(document.createElement('form'));this._form.id=this.options.formId;this._form.addClassName(this.options.formClassName);this._form.onsubmit=this._boundSubmitHandler;this.createEditField();if('textarea'==this._controls.editor.tagName.toLowerCase()) this._form.appendChild(document.createElement('br'));if(this.options.onFormCustomization) this.options.onFormCustomization(this,this._form);addText('Before',this.options.okControl||this.options.cancelControl);this.createControl('ok',this._boundSubmitHandler);addText('Between',this.options.okControl&&this.options.cancelControl);this.createControl('cancel',this._boundCancelHandler,'editor_cancel');addText('After',this.options.okControl||this.options.cancelControl);},destroy:function(){if(this._oldInnerHTML) this.element.innerHTML=this._oldInnerHTML;this.leaveEditMode();this.unregisterListeners();},enterEditMode:function(e){if(this._saving||this._editing)return;this._editing=true;this.triggerCallback('onEnterEditMode');if(this.options.externalControl) this.options.externalControl.hide();this.element.hide();this.createForm();this.element.parentNode.insertBefore(this._form,this.element);if(!this.options.loadTextURL) this.postProcessEditField();if(e)Event.stop(e);},enterHover:function(e){if(this.options.hoverClassName) this.element.addClassName(this.options.hoverClassName);if(this._saving)return;this.triggerCallback('onEnterHover');},getText:function(){return this.element.innerHTML.unescapeHTML();},handleAJAXFailure:function(transport){this.triggerCallback('onFailure',transport);if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML;this._oldInnerHTML=null;}},handleFormCancellation:function(e){this.wrapUp();if(e)Event.stop(e);},handleFormSubmission:function(e){var form=this._form;var value=$F(this._controls.editor);this.prepareSubmission();var params=this.options.callback(form,value)||'';if(Object.isString(params)) params=params.toQueryParams();params.editorId=this.element.id;if(this.options.htmlResponse){var options=Object.extend({evalScripts:true},this.options.ajaxOptions);Object.extend(options,{parameters:params,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Updater({success:this.element},this.url,options);}else{var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:params,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Request(this.url,options);} if(e)Event.stop(e);},leaveEditMode:function(){this.element.removeClassName(this.options.savingClassName);this.removeForm();this.leaveHover();this.element.style.backgroundColor=this._originalBackground;this.element.show();if(this.options.externalControl) this.options.externalControl.show();this._saving=false;this._editing=false;this._oldInnerHTML=null;this.triggerCallback('onLeaveEditMode');},leaveHover:function(e){if(this.options.hoverClassName) this.element.removeClassName(this.options.hoverClassName);if(this._saving)return;this.triggerCallback('onLeaveHover');},loadExternalText:function(){this._form.addClassName(this.options.loadingClassName);this._controls.editor.disabled=true;var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){this._form.removeClassName(this.options.loadingClassName);var text=transport.responseText;if(this.options.stripLoadedTextTags) text=text.stripTags();this._controls.editor.value=text;this._controls.editor.disabled=false;this.postProcessEditField();}.bind(this),onFailure:this._boundFailureHandler});new Ajax.Request(this.options.loadTextURL,options);},postProcessEditField:function(){var fpc=this.options.fieldPostCreation;if(fpc) $(this._controls.editor)['focus'==fpc?'focus':'activate']();},prepareOptions:function(){this.options=Object.clone(Ajax.InPlaceEditor.DefaultOptions);Object.extend(this.options,Ajax.InPlaceEditor.DefaultCallbacks);[this._extraDefaultOptions].flatten().compact().each(function(defs){Object.extend(this.options,defs);}.bind(this));},prepareSubmission:function(){this._saving=true;this.removeForm();this.leaveHover();this.showSaving();},registerListeners:function(){this._listeners={};var listener;$H(Ajax.InPlaceEditor.Listeners).each(function(pair){listener=this[pair.value].bind(this);this._listeners[pair.key]=listener;if(!this.options.externalControlOnly) this.element.observe(pair.key,listener);if(this.options.externalControl) this.options.externalControl.observe(pair.key,listener);}.bind(this));},removeForm:function(){if(!this._form)return;this._form.remove();this._form=null;this._controls={};},showSaving:function(){this._oldInnerHTML=this.element.innerHTML;this.element.innerHTML=this.options.savingText;this.element.addClassName(this.options.savingClassName);this.element.style.backgroundColor=this._originalBackground;this.element.show();},triggerCallback:function(cbName,arg){if('function'==typeof this.options[cbName]){this.options[cbName](this,arg);}},unregisterListeners:function(){$H(this._listeners).each(function(pair){if(!this.options.externalControlOnly) this.element.stopObserving(pair.key,pair.value);if(this.options.externalControl) this.options.externalControl.stopObserving(pair.key,pair.value);}.bind(this));},wrapUp:function(transport){this.leaveEditMode();this._boundComplete(transport,this.element);}});Object.extend(Ajax.InPlaceEditor.prototype,{dispose:Ajax.InPlaceEditor.prototype.destroy});Ajax.InPlaceCollectionEditor=Class.create(Ajax.InPlaceEditor,{initialize:function($super,element,url,options){this._extraDefaultOptions=Ajax.InPlaceCollectionEditor.DefaultOptions;$super(element,url,options);},createEditField:function(){var list=document.createElement('select');list.name=this.options.paramName;list.size=1;this._controls.editor=list;this._collection=this.options.collection||[];if(this.options.loadCollectionURL) this.loadCollection();else this.checkForExternalText();this._form.appendChild(this._controls.editor);},loadCollection:function(){this._form.addClassName(this.options.loadingClassName);this.showLoadingText(this.options.loadingCollectionText);var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){var js=transport.responseText.strip();if(!/^\[.*\]$/.test(js)) throw('Server returned an invalid collection representation.');this._collection=eval(js);this.checkForExternalText();}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadCollectionURL,options);},showLoadingText:function(text){this._controls.editor.disabled=true;var tempOption=this._controls.editor.firstChild;if(!tempOption){tempOption=document.createElement('option');tempOption.value='';this._controls.editor.appendChild(tempOption);tempOption.selected=true;} tempOption.update((text||'').stripScripts().stripTags());},checkForExternalText:function(){this._text=this.getText();if(this.options.loadTextURL) this.loadExternalText();else this.buildOptionList();},loadExternalText:function(){this.showLoadingText(this.options.loadingText);var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){this._text=transport.responseText.strip();this.buildOptionList();}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadTextURL,options);},buildOptionList:function(){this._form.removeClassName(this.options.loadingClassName);this._collection=this._collection.map(function(entry){return 2===entry.length?entry:[entry,entry].flatten();});var marker=('value'in this.options)?this.options.value:this._text;var textFound=this._collection.any(function(entry){return entry[0]==marker;}.bind(this));this._controls.editor.update('');var option;this._collection.each(function(entry,index){option=document.createElement('option');option.value=entry[0];option.selected=textFound?entry[0]==marker:0==index;option.appendChild(document.createTextNode(entry[1]));this._controls.editor.appendChild(option);}.bind(this));this._controls.editor.disabled=false;Field.scrollFreeActivate(this._controls.editor);}});Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions=function(options){if(!options)return;function fallback(name,expr){if(name in options||expr===undefined)return;options[name]=expr;};fallback('cancelControl',(options.cancelLink?'link':(options.cancelButton?'button':options.cancelLink==options.cancelButton==false?false:undefined)));fallback('okControl',(options.okLink?'link':(options.okButton?'button':options.okLink==options.okButton==false?false:undefined)));fallback('highlightColor',options.highlightcolor);fallback('highlightEndColor',options.highlightendcolor);};Object.extend(Ajax.InPlaceEditor,{DefaultOptions:{ajaxOptions:{},autoRows:3,cancelControl:'link',cancelText:'cancel',clickToEditText:'Click to edit',externalControl:null,externalControlOnly:false,fieldPostCreation:'activate',formClassName:'inplaceeditor-form',formId:null,highlightColor:'#ffff99',highlightEndColor:'#ffffff',hoverClassName:'',htmlResponse:true,loadingClassName:'inplaceeditor-loading',loadingText:'Loading...',okControl:'button',okText:'ok',paramName:'value',rows:1,savingClassName:'inplaceeditor-saving',savingText:'Saving...',size:0,stripLoadedTextTags:false,submitOnBlur:false,textAfterControls:'',textBeforeControls:'',textBetweenControls:''},DefaultCallbacks:{callback:function(form){return Form.serialize(form);},onComplete:function(transport,element){new Effect.Highlight(element,{startcolor:this.options.highlightColor,keepBackgroundImage:true});},onEnterEditMode:null,onEnterHover:function(ipe){ipe.element.style.backgroundColor=ipe.options.highlightColor;if(ipe._effect) ipe._effect.cancel();},onFailure:function(transport,ipe){alert('Error communication with the server: '+transport.responseText.stripTags());},onFormCustomization:null,onLeaveEditMode:null,onLeaveHover:function(ipe){ipe._effect=new Effect.Highlight(ipe.element,{startcolor:ipe.options.highlightColor,endcolor:ipe.options.highlightEndColor,restorecolor:ipe._originalBackground,keepBackgroundImage:true});}},Listeners:{click:'enterEditMode',keydown:'checkForEscapeOrReturn',mouseover:'enterHover',mouseout:'leaveHover'}});Ajax.InPlaceCollectionEditor.DefaultOptions={loadingCollectionText:'Loading options...'};Form.Element.DelayedObserver=Class.create({initialize:function(element,delay,callback){this.delay=delay||0.5;this.element=$(element);this.callback=callback;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));},delayedListener:function(event){if(this.lastValue==$F(this.element))return;if(this.timer)clearTimeout(this.timer);this.timer=setTimeout(this.onTimerEvent.bind(this),this.delay*1000);this.lastValue=$F(this.element);},onTimerEvent:function(){this.timer=null;this.callback(this.element,$F(this.element));}});Object.extend(Form,{submit_to:function(form,action){form=$(form);form.action=action;form.submit();}});function google_ad_request_done(google_ads){out='';if(google_ads.length==0){return;} out+='';if(google_ads[0].type=="flash"){out+=collect_flash_ad(google_ads[0]);}else if(google_ads[0].type=="image"){out+=collect_image_ad(google_ads[0]);}else if(google_ads[0].type=="html"){out+=google_ads[0].snippet;}else{out+=collect_unit_ads(google_ads);} if(google_ads[0].bidtype=="CPC"){google_adnum=google_adnum+google_ads.length;} document.write('
    '+out+'
    ');} function default_max_adsense_ads(){var ad_unit_size=4;var viewport=document.viewport.getDimensions();if(viewport.height>800)ad_unit_size=5;return ad_unit_size;} function collect_flash_ad(google_ad){out=' '+''+''+'';return out;} function collect_image_ad(google_ad){out='';return out;} function collect_unit_ads(google_ads){out='';for(var i=0;i '+'
    '+google_ads[i].line2+'
    '+'
    '+google_ads[i].line3+'
    '+' ';} return out;} window.onload=function(){if(!document.getElementsByTagName)return true;ourForms=document.getElementsByTagName('form');var numForms=ourForms.length;for(var i=0;i10){resizeSpeed=10;} if(resizeSpeed<1){resizeSpeed=1;} resizeDuration=(11-resizeSpeed)*0.15;Object.extend(Element,{getWidth:function(element){element=$(element);return element.offsetWidth;},setWidth:function(element,w){element=$(element);element.style.width=w+"px";},setHeight:function(element,h){element=$(element);element.style.height=h+"px";},setTop:function(element,t){element=$(element);element.style.top=t+"px";},setSrc:function(element,src){element=$(element);element.src=src;},setHref:function(element,href){element=$(element);element.href=href;},setInnerHTML:function(element,content){element=$(element);element.innerHTML=content;}});Array.prototype.removeDuplicates=function(){for(i=1;i1){Element.show('numberDisplay');Element.setInnerHTML('numberDisplay',"Image "+eval(activeImage+1)+" of "+imageArray.length);} new Effect.Parallel([new Effect.SlideDown('imageDataContainer',{sync:true,duration:resizeDuration+0.25,from:0.0,to:1.0}),new Effect.Appear('imageDataContainer',{sync:true,duration:1.0})],{duration:0.65,afterFinish:function(){myLightbox.updateNav();}});},updateNav:function(){Element.show('hoverNav');if(activeImage!=0){Element.show('prevLink');document.getElementById('prevLink').onclick=function(){myLightbox.changeImage(activeImage-1);return false;}} if(activeImage!=(imageArray.length-1)){Element.show('nextLink');document.getElementById('nextLink').onclick=function(){myLightbox.changeImage(activeImage+1);return false;}} this.enableKeyboardNav();},enableKeyboardNav:function(){document.onkeydown=this.keyboardAction;},disableKeyboardNav:function(){document.onkeydown='';},keyboardAction:function(e){if(e==null){keycode=event.keyCode;}else{keycode=e.which;} key=String.fromCharCode(keycode).toLowerCase();if((key=='x')||(key=='o')||(key=='c')){myLightbox.end();}else if(key=='p'){if(activeImage!=0){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage-1);}}else if(key=='n'){if(activeImage!=(imageArray.length-1)){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage+1);}}},preloadNeighborImages:function(){if((imageArray.length-1)>activeImage){preloadNextImage=new Image();preloadNextImage.src=imageArray[activeImage+1][0];} if(activeImage>0){preloadPrevImage=new Image();preloadPrevImage.src=imageArray[activeImage-1][0];}},end:function(){this.disableKeyboardNav();Element.hide('lightbox');new Effect.Fade('overlay',{duration:0.2});showSelectBoxes();}} function getPageScroll(){var yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;}else if(document.body){yScroll=document.body.scrollTop;} arrayPageScroll=new Array('',yScroll) return arrayPageScroll;} function getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;} var windowWidth,windowHeight;if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;} if(yScrollexitTime) return;}} function initLightbox(){myLightbox=new Lightbox();} Event.observe(window,'load',initLightbox,false);_application/x-javascriptO\bplist00fgX$versionX$objectsY$archiverT$top"()012JKLMNOPQRSTUVWXYZ[\`aU$null  !R$6S$10R$2R$7R$3S$11R$8V$classR$4R$9R$0R$5R$1#$%&[NS.relativeWNS.base_@http://science.jrank.org/javascripts/base_packaged.js?1288898414*+,-Z$classnameX$classesUNSURL./UNSURLXNSObject#AP[b3456@WNS.keysZNS.objects789:;<=>? ABCDEFGHIVServer_Transfer-EncodingZConnection\Content-TypeTDate]Last-ModifiedWExpires]Cache-Control_Content-Encoding\nginx/0.8.52XIdentityUclose_application/x-javascript_Mon, 15 Nov 2010 11:26:19 GMT_Thu, 04 Nov 2010 19:20:14 GMT_Mon, 15 Nov 2010 17:26:19 GMT]max-age=21600Tgzip*+]^_NSMutableDictionary]_/\NSDictionaryڹ*+bc_NSHTTPURLResponsede/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiverhi_WebResourceResponse#-27X^y|"'2;ADJS\^emxz!.7=Xx-;MPfjh _Ahttp://science.jrank.org/stylesheets/base_packaged.css?1288898414O?body {text-align: center; font-family: Georgia, "Times New Roman", Times, serif} body#index, body#collection, body#page {background-color: rgb(239, 236, 230)} h1, h2, h3, h4, h5, h6, div#parent_nav, div#sibling_nav {font-family: sans-serif} a img {border: none} li {padding-bottom: 0.4em; padding-right: 4em; font-size: 0.95em} h1 {margin: 0.25em 0} h2 {padding-top: 0.5em} hr {border: none; border-bottom: 1px dotted rgb(180, 180, 180); height: 1px; margin: 0 0 10px 0} p span.highlight {background-color: rgb(255, 255, 80)} p span.highlight a {color: rgb(210, 0, 0); font-family: sans-serif; padding: 0.25em} input.catch_bots {display: inline; visibility: hidden; height: 0; padding: 0; margin: 0} div#container {margin: 0 auto; text-align: left; width: 980px; background-color: rgb(255, 255, 255); border-bottom: 1px solid rgb(180, 180, 180); -webkit-box-shadow: 3px 3px 7px rgba(0,0,0,.1); -moz-box-shadow: 3px 3px 7px rgba(0,0,0,.1); box-shadow: 3px 3px 7px rgba(0,0,0,.1)} body#admin div#container {border-bottom: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none} body#index div#container, body#index div#parent_nav, body#index div#footer {width: 780px} body#page div#container, body#collection div#container, body#page div#parent_nav, body#collection div#parent_nav, body#page div#footer, body#collection div#footer {width: 920px} div#parent_nav {clear: both; border-bottom: 1px solid rgb(60, 60, 60); font-size: 0.75em; margin: 0 auto; padding: 0 0 1em 0} div#parent_nav p {margin: 0; padding: 1px 0 0 0; text-align: left} body#page div#parent_nav {border-bottom: 1px solid rgb(180, 180, 180)} div#sibling_nav {clear: both; font-size: 0.75em; min-height: 1.25em; margin: 0; padding: 1em 1em 0.5em 1em; background-color: rgb(255, 255, 255)} div#sibling_nav span.prev {float: left; text-align: left; width: 50%; display: block} div#sibling_nav span.next {float: right; text-align: right; width: 50%; display: block} div#sibling_nav span.next span, div#sibling_nav span.prev {color: rgb(100, 100, 100)} a {color: #009; text-decoration: none} a:hover {color: #333; text-decoration: underline} div#description {margin: 0 1em} div#description p {padding: 0 1em} div#content, div#comments, div#collection_links, div#page_links, div#link_code, div#ext_links {padding: 0 1em 0.5em 1em} body#page div#page_links div.page_link {font-size: 0.75em; padding-left: 1em} div#content h2, div.page_link h2, div.collection_link h2 {margin: 0.5em 0 0.25em 0; padding: 0} div.page_link h2, div.collection_link h2 {font-size: 1.25em} div#description {clear: both; height: 170px; margin: 0 0 1px 0; padding: 0; border-bottom: 1px solid rgb(180, 180, 180)} div#description div {text-align: right; position: relative; top: 125px; left: 0px; height: 45px; background-color: silver; opacity:.75; filter: alpha(opacity=75); -moz-opacity: 0.75} div#description div h1 {margin: 0 14px; padding: 0; font-family: Arial Black, sans-serif; font-size: 20pt; font-weight: normal; color: black; text-shadow: 0px 1px 1px rgb(240, 240, 240)} div#description div p {margin: 0 14px; padding: 0; font-family: Verdana, sans-serif; font-size: 9pt; font-weight: bold} div#content {margin: 0; padding-top: 0.25em; line-height: 1.65em; background: rgb(255, 255, 255)} div#content h1, div#content h2, div#content h3, div#content h4, div#content h5, div#content h6 {font-family: Georgia, "Times New Roman", Times, serif; color: rgb(76, 73, 65)} div#content h1 {color: rgb(0, 0, 0); font-size: 1.5em; text-shadow: 0px 2px 3px rgb(175, 175, 175)} div#content h2 {margin-top: 0; padding-top: 0; font-size: 1.25em} div#content h3 {margin: 0 0 0.5em 0; padding: 0} div#content h3 span.taglist {min-height: 18px; display: block} div#content h3 span.tag {margin: 0 0.25em 0 0; padding: 0 0.25em 0 10px; font-weight: normal; color: rgb(255, 255, 255); text-shadow: 1px 1px 1px rgb(90, 80, 70); background: transparent url('../images/tag_bg.png') no-repeat top left; font-size: 12px; line-height: 18px; display: block; float: left} div#content p, div.page_link p, div.collection_link p {margin: 0 0 1.5em 0; padding: 0} div#content p.note {font-style: italic} div#content em.tec, div#content em.emb {margin: 0; padding: 0; color: rgb(60, 60, 60)} div#content strong.bi {font-style: italic} div#content ul li.header {font-weight: bold} div#content ul li.caption {font-style: italic} div#content div.verse ul {list-style-type: none} div#content div.verse p.title {font-weight: bold} div#content ul.bibliography {list-style-type: disc} div#content span.era, div#content span.sc {font-variant: small-caps} div#content span.ctx {font-style: italic} div#content span.sense_num {padding-right: 0.25em; font-weight: bold} div#content table {width: 100%; clear: both; margin: 1em 0 2em 0; border-bottom: 1px solid rgb(180, 180, 180)} div#content table caption {font-weight: bold; font-size: 0.95em} div#content table caption em {font-weight: normal} div#content table thead {font-family: sans-serif; font-size: 0.75em} div#content table thead tr td {border-bottom: 1px solid rgb(180, 180, 180)} div#content table tbody, div#content table tfoot {font-family: monospace; font-size: 0.95em} .image_group {clear: both; display: block; width: 100%; text-align: center} .image_group.left {float: left; width: auto} .image_group.right {float: right; width: auto} span.image_group.oup, .image_group.inline {display: inline} .image_group img {margin: 1em 0.5em 0 1em; border: 1px solid rgb(100, 100, 100)} .image_group.left img {margin: 0.5em 1em 0 0} .image_group.right img {margin: 0.5em 0 0 1em} .image_group span.caption {display: block; width: 300px; margin: 0.25em auto 1em auto; padding: 0; text-align: left; font-family: sans-serif; font-size: 0.8em} div#content blockquote, div#content div.netind_sidebar, div#content div.equation, div#content div.bibl {margin: 0.5em 3em 0.5em 2em; padding: 0; text-align: justify} div#content div.netind_sidebar div.google_ad {width: 728px; text-indent: 0; margin: 0 0 0 -25px} div#content blockquote {text-indent: 25px; background: url('../images/quotes1.png'); background-position: 0 2px; background-repeat: no-repeat} div#content blockquote p {display: inline; margin: 0; padding: 0 24px 0 0; background: url('../images/quotes2.png'); background-position: bottom right; background-repeat: no-repeat; font-size: 0.9em} div#content blockquote.right {text-align: right; background: none; text-indent: 0} div#content blockquote.right p {padding: 0; background: none} div#content div.attribution, div#content blockquote > span.name {color: rgb(90, 90, 90) font-style: italic; font-size: 0.75em; padding: 0 0 1em 0} body#index div#container div.google_ad, div#content div.google_ad, div#content div.chitika_ad {margin: 0 0 1em 0; padding: 4px 0 0 0; text-align: center; border-top: 1px dotted rgb(170, 170, 170); border-bottom: 1px dotted rgb(170, 170, 170)} div.google_ad_wide {margin: 0 0 1em 0; padding: 4px 0 0 0; border-top: 1px dotted rgb(75, 75, 75); border-bottom: 1px dotted rgb(75, 75, 75); line-height: 120%; clear: both} div.google_ad_tall {clear: left; float: left; width: 290px; margin: 0 1em 0 0; padding: 0 4px 0 0; border-right: 1px dotted rgb(75, 75, 75); line-height: 120%} div.google_ad_leftbox {clear: left; float: left; width: 350px; margin: 0 1em 0 0; padding: 4px 4px 4px 0; border-right: 1px dotted rgb(75, 75, 75); line-height: 120%} div.google_ad_wide, div.google_ad_tall, div.google_ad_leftbox {background-color: rgb(254, 248, 250)} div#content div.google_ad.stock {text-align: left} div.ad_unit {padding: 0 0.25em} div.google_ad_wide div.ad_placement {text-align:left} div.google_ad_wide div.ad_placement div {display: inline} div.google_ad_tall div.ad_placement div, div.google_ad_leftbox div.ad_placement div {display: block} div.google_ad_wide div.about, div.google_ad_tall div.about, div.google_ad_leftbox div.about {margin: 0 0 0.5em 0} div.google_ad_wide div.about a, div.google_ad_tall div.about a, div.google_ad_leftbox div.about a {color: black; font-weight: bold; text-decoration: none} div.google_ad_wide div.ad_placement, div.google_ad_tall div.ad_placement, div.google_ad_leftbox div.ad_placement {margin: 0 0 1em 0} div.google_ad_wide div.ad_placement div.ad_title, div.google_ad_tall div.ad_placement div.ad_title, div.google_ad_leftbox div.ad_placement div.ad_title {font-weight: bold} div.google_ad_wide div.ad_placement div.ad_url, div.google_ad_tall div.ad_placement div.ad_url, div.google_ad_leftbox div.ad_placement div.ad_url {font-size: 10pt} body#index div#container div.google_ad {margin: 0 1em; clear: left} div#content div.google_ad_float, div#content div.chitika_ad_float {float: left; margin: 0 1em 0 0; padding: 0.5em 0.5em 0 0; border-right: 1px dotted rgb(175, 175, 175)} div#content div.content_ad {float: right; margin: 0 0 0 1em; padding: 0.5em 0 0 0.5em; border-left: 1px dotted rgb(175, 175, 175)} body#index div#content, body#collection div#content {line-height: 120%} body#index div#content p, body#collection div#content p {margin: 0.5em 0} body#index div#content ul li, body#collection div#content ul li {padding: 0} div#comments, div#link_code {clear: both; border-top: 1px solid rgb(180, 180, 180); margin: 0 auto 1em auto} div#comments h2, div#link_code h2, div#page_links h2 {margin: 0.5em 0; padding: 0} div#link_code p {color: rgb(60, 60, 60)} div#comments h2 span.action {font-size: 0.50em; padding-left: 1em} div#comments div.comment {clear: both; width: 80%; margin: 0 auto 1em auto; border-top: 1px solid rgb(157, 169, 190)} div#comments div.comment p, div#comments div.comment_header p {margin: 0; padding: 0} div#comments div.comment_header {padding: 0 2px; background-color: rgb(231, 234, 239)} div#comments div.comment_header p.created_at {padding: 0.2em 0; float: right; font-size: 0.78em; color: rgb(100, 100, 100)} div#comments div.comment_header p.byline {padding: 0.2em 0; font-size: 0.78em} div#comments div.comment_header p.byline span.email {color: rgb(100, 100, 100)} div#comments div.comment div.comment_body {background: rgb(245, 245, 250); clear: left; padding: 0.25em 0.5em; font-size: 0.9em} div.form_container {clear: both; width: 500px; margin: 0 auto; border-top: 1px solid rgb(180, 180, 180); background: rgb(240, 240, 240)} div.form_container form {margin: 0; padding: 0} div.form_container form p {margin: 0.5em 0; padding: 0 1em; font-family: sans-serif; font-size: 9pt; clear: both; text-align: left} div.form_container form p.supplemental {margin-left: 140px; font-weight: normal; font-family: sans-serif; font-size: 8pt; width: 300px} div.form_container form label {display: block; float: left; width: 125px; text-align: right; font-family: sans-serif; font-weight: bold; font-size: 9pt; margin-right: 10px; padding-top: 0.2em} div.form_container form input, div.form_container form select {} div.form_container form textarea {width: 65%; height: 200px} div.form_container form div.errorExplanation {width: 450px; margin: 0 auto; padding: 0 25px; border-top: 1px solid rgb(255, 0, 0); background: rgb(255, 220, 220); text-align: left} div.form_container form div.errorExplanation h2 {font-size: 0.9em; font-family: sans-serif} div.form_container form div.errorExplanation p, div.form_container form div.errorExplanation ul li {font-size: 0.8em; font-family: sans-serif} div.form_container form div.fieldWithErrors {margin-left: 135px; text-align: left} div.form_container form div.fieldWithErrors input, div.form_container form div.fieldWithErrors select, div.form_container form div.fieldWithErrors textarea {border: 2px solid rgb(255, 0, 0)} div.form_container form p.notice {width: 100%; margin: 0; padding: 0.1em 0; background: rgb(220, 255, 220); border-top: 1px solid rgb(0, 255, 0); border-bottom: 1px solid rgb(0, 255, 0); font-size: 0.8em; font-family: sans-serif} div.form_container form p.submit {width: 100%; margin: 0; padding: 0.25em 0 0.5em 0; border-top: 1px dashed rgb(180, 180, 180); background-image: url('/images/form_bg.gif'); text-align: right; font-family: sans-serif; font-size: 0.75em} div.form_container form input#comment_captcha_validation {vertical-align: top; width: 10em} div.form_container form p.submit input {margin: 0 1em 0 0.25em} div#disclaimer {width: 100%; padding: 0; margin: 0 auto; clear: both; background-color: rgb(255, 255, 150)} div#disclaimer p {margin: 0; padding: 2px 4px; font-size: 8pt; font-family: arial; line-height: 120%; text-align: center; color: #333} div#ext_links {clear: both; padding-top: 0.25em} div#ext_links p {margin: 0; padding: 0; font-size: 0.70em} div#footer {clear: both; margin: 0 auto; padding: 2px 0 6px 0; text-align: left} div#footer p {text-align: center; font-family: sans-serif; font-size: 0.6em; margin: 0; padding: 2px 0 1em 0; color: rgb(100, 100, 100)} div.social_links {float: right} div.social_links > div {float: left; line-height: 100%} div.social_links div.facebook {margin: 0 10px 0 0} div.social_links div.twitter {} div.jrank_search {float: right; width: 250px; margin: 0 auto; padding: 0; text-align: center} div.jrank_search form {margin: 0; padding: 0} div.jrank_search fieldset {margin: 0; padding: 0; border: none} div.jrank_search input {vertical-align: middle} div.jrank_search .queryText input {border: 1px solid #555; display: inline} body#index div#content div.jrank_search, body#index div#collection_links div.jrank_search, body#collection div#content div.jrank_search {clear: both; float: none; padding: 0.25em 0.5em 0.5em 0.5em; border: 1px solid rgb(175, 175, 175); background-color: rgb(240, 240, 240)} div#campusexplorer_widget {width: 300px; float: left; margin-right: 1em} @media print {body#index, body#collection, body#page {margin: 0; padding: 0; background: rgb(255, 255, 255)} div#container {width: 100%; margin: 1em} div#parent_nav, div#sibling_nav, div#description {display: none} div#content, div#collection_links, div#page_links {border-top: none} div#description {background: none; height: 45px} div#description div {position: static} div.google_ad, div.google_ad_float, div.google_ad_wide {display: none} div.social_links {display: none} div.form_container {display: none} } body {margin: 0; padding: 0} @media print {div#super_nav {display: none} div#user_session {display: none} } div#super_nav {margin: 0 0 20px 0; padding: 0; background: rgb(255, 255, 255) url('/images/super_nav_bg.gif') repeat-x; border-bottom: 1px solid rgb(144, 100, 100); font-family: "Lucida Grande",verdana,arial,helvetica,sans-serif; font-weight: bold; font-size: 10px; line-height: 25px; height: 25px; width: 100%; min-width: 980px; text-align: left; position: relative; top: 0; left: 0} div#super_nav div.menu {margin: 0; padding: 0; height: 25px} div#super_nav div.search {margin: 0; padding: 0 4px; float: right} div#super_nav div.menu ul {margin: 0; padding: 0} div#super_nav div.menu ul li {margin: 0; padding: 0; list-style-type: none; display: inline; float: left; position: relative; color: rgb(144, 100, 100)} div#super_nav div.menu ul li a, div#super_nav div.menu ul li span {text-decoration: none; line-height: 25px; padding: 5px 4px} div#super_nav div.menu ul li a {color: rgb(144, 0, 0)} div#super_nav div.menu ul li a.active {color: rgb(144, 0, 0); text-decoration: none} div#super_nav div.menu ul li a:hover {color: rgb(144, 0, 0); text-decoration: none; background: rgb(241, 222, 222)} div#super_nav div.menu ul li a.logo, div#super_nav div.menu ul li span.logo {height: 22px; float: left; padding: 3px 5px 0 5px} div#super_nav div.menu ul li a.logo img, div#super_nav div.menu ul li span.logo img {border: none} div#super_nav div.menu ul li ul {position: absolute; top: 28px; right: 0; z-index: 2000; border: 1px solid rgb(144, 100, 100); background: rgb(255, 255, 255)} div#super_nav div.menu ul li ul li {display: block; margin: 0; padding: 0 5px; position: static; width: 10em} div#super_nav div.menu ul li ul li a {line-height: 14px; display: block} div#super_nav div.search form {margin: 0; padding: 0} div#super_nav div.search form select, div#super_nav div.search form input.submit {margin: 1px 2px 0 0; padding: 0 2px; font-size: 9px; line-height: 14px; display: inline; overflow: visible; width: auto; } div#user_session {position: absolute; right: 0; top: 26px} div#user_session iframe {overflow: hidden; padding: 0; width: 350px; height: 20px}Xtext/cssOIbplist00fgX$versionX$objectsY$archiverT$top"()012JKLMNOPQRSTUVWXYZ[\`aU$null  !R$6S$10R$2R$7R$3S$11R$8V$classR$4R$9R$0R$5R$1#$%&[NS.relativeWNS.base_Ahttp://science.jrank.org/stylesheets/base_packaged.css?1288898414*+,-Z$classnameX$classesUNSURL./UNSURLXNSObject#AP[ek3456@WNS.keysZNS.objects789:;<=>? ABCDEFGHIVServer_Transfer-EncodingZConnection\Content-TypeTDate]Last-ModifiedWExpires]Cache-Control_Content-Encoding\nginx/0.8.52XIdentityUcloseXtext/css_Mon, 15 Nov 2010 11:26:19 GMT_Thu, 04 Nov 2010 19:20:14 GMT_Mon, 15 Nov 2010 17:26:19 GMT]max-age=21600Tgzip*+]^_NSMutableDictionary]_/\NSDictionary?*+bc_NSHTTPURLResponsede/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiverhi_WebResourceResponse#-27X^y|#(3<BEKT]_fny{"/8>Gg(:=SjU _*http://science.jrank.org/images/tag_bg.pngO PNG  IHDR` DiCCPICC ProfilexwTl/]"e齷.H& KYe7D"V$(bh(+X "J F;'Nw>}w(!a@P"f'0D6p(h@_63u_ -Z[3C+K;?r!YLD)c#c1 ʪ2N|bO h{yIHD.VV>RV:|{ [RF ”"MF1L1[Te'Jx%C%_%RJ#4GcӸu:(G73%Ie%e{SC add1T4UT*TTTUzUUUoScemUkS{Q7UPWߣ~A}b}9Հ5L5"5iјi<9Ъ:5MvhWh~Tfz1U.椎NTgNΌ|ݵͺHz,T NI}mPw ,tӆF -5j4oL50^l\k|g24mr6u0M713fͱBZA EEŰ%2res+}VV(٬Ԗk[c{Îjgʮ=~mCNNb&q'}d]N,:+Uʺuv^|o]5˟[7wM׍mȝ}CǃQSϓY9eu빷ػ{^>*}7l6 8`k`f 7!p2)hEPW0%8*:Qi8# z<ἶ0-AQ#p5#m"GvGѢG.7xt~g|LbLCtOlyPU܊|BLB}&:$%Zh`EꋲJO$O&&N~ rRSvLrgIsKۖ6^>!` /22fLge̜͊j&d'g* 3]9Z99"3Qhh'\(wanLHyy5yoc( z.ٴdloaqu.Yf WB+SVv[UjtCkHk2zmWbuj.Y￾HH\4uލ6W|ĺ})76T}39usocٞ---zl=TX|d[ fEqūI/WWA!1TRվS疝ӫox4صin={j-n`[k k+x\S-ۆzEjpjh8qn6Ik:8w7ޜw[nn?uݼ3V/~ڟM~nr:53(ѽȳ_ry?ZrL{퓓~מ.x:LlfW_w=7~oLM˃_uNO=|zfڛCoYož_CgggI) pHYs  VIDAThAk1'AJ+XjY,ZۋCs(*j(˲u f29/? ABCDEFGHIVServer]Accept-RangesZConnection\Content-TypeTDate]Last-Modified^Content-LengthWExpires]Cache-Control\nginx/0.8.52UbytesUcloseYimage/png_Mon, 15 Nov 2010 11:26:19 GMT_Thu, 04 Nov 2010 19:19:58 GMTT3060_Mon, 15 Nov 2010 17:26:19 GMT]max-age=21600*+]^_NSMutableDictionary]_/\NSDictionary *+bc_NSHTTPURLResponsede/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiverhi_WebResourceResponse#-27X^y| %+.4=FHOWbdnprtvxz|~$Ddi0j2 _+http://science.jrank.org/images/form_bg.gifOGIF89a !, Lf|br +Ș+q7x-oTҫ==l!nK`SC֌ e*dw ǷoY|&kt{Ssw].M{?'GxeWh5UYeu%IH9X Hz*  ;*8zk[ ɪ +k*Q;Yimage/gifO&bplist00fgX$versionX$objectsY$archiverT$top"()012JKLMNOPQRSTUVWXYZ[\`aU$null  !R$6S$10R$2R$7R$3S$11R$8V$classR$4R$9R$0R$5R$1#$%&[NS.relativeWNS.base_+http://science.jrank.org/images/form_bg.gif*+,-Z$classnameX$classesUNSURL./UNSURLXNSObject#AP]:3456@WNS.keysZNS.objects789:;<=>? ABCDEFGHIVServer]Accept-RangesZConnection\Content-TypeTDate]Last-Modified^Content-LengthWExpires]Cache-Control\nginx/0.8.52UbytesUcloseYimage/gif_Mon, 15 Nov 2010 11:26:21 GMT_Thu, 04 Nov 2010 19:19:58 GMTS264_Mon, 15 Nov 2010 17:26:21 GMT]max-age=21600*+]^_NSMutableDictionary]_/\NSDictionary*+bc_NSHTTPURLResponsede/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiverhi_WebResourceResponse#-27X^y| &,/5>GIPXceoqsuwy{}%Eei0j2  !_Chttp://science.jrank.org/stylesheets/iphone_packaged.css?1288898414O* {-webkit-text-size-adjust: none} body {width: 480px !important; background: rgb(255, 255, 255)} img {max-width: 100%; height: auto} div#container, div#parent_nav, div#footer {width: 100% !important; margin: 0 !important; padding: 0 !important} div#description {display: none} div#content, div#collection_links, div#page_links {border-top: none} div#parent_nav {padding: 5px} div#description {background: none; height: 45px} div#description div {position: static} div.form_container {display: none} div.jrank_search {float: none}Xtext/cssO=bplist00fgX$versionX$objectsY$archiverT$top"()012JKLMNOPQRSTUVWXYZ[\`aU$null  !R$6S$10R$2R$7R$3S$11R$8V$classR$4R$9R$0R$5R$1#$%&[NS.relativeWNS.base_Chttp://science.jrank.org/stylesheets/iphone_packaged.css?1288898414*+,-Z$classnameX$classesUNSURL./UNSURLXNSObject#AP[_#63456@WNS.keysZNS.objects789:;<=>? ABCDEFGHIVServer]Accept-RangesZConnection\Content-TypeTDate]Last-Modified^Content-LengthWExpires]Cache-Control\nginx/0.8.52UbytesUcloseXtext/css_Mon, 15 Nov 2010 11:26:19 GMT_Thu, 04 Nov 2010 19:20:14 GMTS530_Mon, 15 Nov 2010 17:26:19 GMT]max-age=21600*+]^_NSMutableDictionary]_/\NSDictionary*+bc_NSHTTPURLResponsede/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiverhi_WebResourceResponse#-27X^y|%*5>DGMV_ahp{} '-3<\|.1GjI #$%&_Whttp://tcr.tynt.com/javascripts/Tracer.js?user=d1CwI4pPar3PzPacn9QLBk&s=50&st=1O;E//v10 © 2010 Tynt var Tynt=Tynt||[]; if(typeof Tynt.TIL=="undefined"){(function(){var Da=function(){var i=document,k=i.body,o=i.documentElement,O=eval("/*@cc_on!@*/false"),w="w."+(Tynt.e||"")+"ic.tynt.com",Z="p."+(Tynt.e||"")+"ic.tynt.com",$=function(a,b){for(var c="",d=0;d-1&&typeof Tynt.b=="string")j+="&b="+Tynt.b;j=q("img",{width:0,height:0,src:j},{position:"absolute",top:"0"});if(window.addEventListener){j.addEventListener("load",function(l){l.target.parentNode.removeChild(l.target)},false);j.addEventListener("error",function(l){g&&g();l.target.parentNode.removeChild(l.target)},false)}else{j.attachEvent("onload",function(l){l.srcElement.parentNode.removeChild(l.srcElement)});j.attachEvent("onerror", function(l){g&&g();l.srcElement.parentNode.removeChild(l.srcElement)})}k.insertBefore(j,k.firstChild)};if(i.readyState=="complete")m=e;else{m=d;E(window,"load",function(){setTimeout(function(){if(typeof i.readyState=="undefined"&&!O)i.readyState="complete";m=e;for(var f=0;f=62?ca(b)+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(a):"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(b)+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(a)}},ba= function(a,b){var c=ca(a);return $("0",b-c.length)+c},da=function(a){return(a=D(a))?a.split(/\s+/i).length:0},Q=D((i.title||location.hostname).toString()).replace(RegExp(location.hash,"g"),""),ea=function(){for(var a=i.getElementsByTagName("link"),b=0;b-1)b=b.slice(0,c)}else{c=b.lastIndexOf("/");if(c>9)b=b.slice(0,c+1);else b+="/"}a=b+a}return a}return""},H=function(a){return a.replace(/^https?:\/\//,"")},R=function(a,b){for(var c=b+"=",d=a.split(";"),e=0;e=0;c--)if(a[c]==b)return false;a.unshift(b);a.length> 3&&a.pop();return true}},ma=z(),na=z(),oa=function(){var a,b=function(){window.removeEventListener("blur",b,false);S(a);return true};return function(c){a=c.target||c.srcElement;window.removeEventListener("blur",b,false);if(a.nodeName=="IMG"&&a.parentNode.nodeName!="A"){window.addEventListener("blur",b,false);setTimeout(function(){i.removeEventListener("blur",b,false)},1E4)}return true}}(),ga=function(a){S(a.target||a.srcElement)},I=null,ha=function(a){a=a.target||a.srcElement;I=a.nodeName=="IMG"? a:null},T=function(){var a=function(g){return{x:typeof g.pageX=="number"?g.pageX-(o.scrollLeft?o.scrollLeft:k.scrollLeft):g.clientX,y:typeof g.pageY=="number"?g.pageY-(o.scrollTop?o.scrollTop:k.scrollTop):g.clientY}},b=function(g){g=a(g);return g.x<=0||g.y<=0||g.x>=k.clientWidth||g.y>=k.clientHeight},c=function(g){g=a(g);return g.x<=0||g.y<=0||g.x>=o.clientWidth||g.y>=o.clientHeight},d=function(g){return g.target.nodeName=="#document"},e=function(g){g=a(g);return g.x<=4||g.y<=4||g.x>=o.clientWidth- 4||g.y>=o.clientHeight-4},f=function(g){f=navigator.userAgent.match("MSIE")?!i.compatMode||i.compatMode.indexOf("CSS")==-1?b:c:navigator.userAgent.match("Firefox")?d:e;f(g)};return function(g){if(I&&f(g)){S(I);I=null}return true}}(),r;if(Tynt.c)r=function(){};else{Tynt.c=true;r=function(){var a=true,b,c=function(d,e){var f={id:y,wc:da(e),c:e,f:a?1:0,t:Q};for(var g in d)if(d.hasOwnProperty(g))f[g]=d[g];a=false;g=f.trace_type;delete f.trace_type;var j=f.g;delete f.g;for(var l=[],n=["id","wc","f","w", "h","t","c"],p=0;p0){n=t.substring(u,u+J);K=n.slice(-2).indexOf("%");if(K>-1){n=t.substring(u,u+J-2+K);x+=K+2}x+= n.length+V;u+=n.length;f[L][U]=n}else x=p;if(x>=p){f[++L]={g:j,p:L};x=0}if(u>=t.length){s++;u=0}}f[0].tp=f.length;m(w+"/b/t/"+g+"?"+aa(f[0]));for(j=1;j=0;b--){var c=a[b];c.parentNode.removeChild(c)}},h,qa="r."+(Tynt.e||"")+"id.tynt.com",ra={t:3,p:6,w:7}, v,W,X,sa=["","Attribution","Attribution Share Alike","Attribution No Derivatives","Attribution Non-Commercial","Attribution Non-Commercial Share Alike","Attribution Non-Commercial No Derivatives"],ta=["","http://creativecommons.org/licenses/by/3.0","http://creativecommons.org/licenses/by-sa/3.0","http://creativecommons.org/licenses/by-nd/3.0","http://creativecommons.org/licenses/by-nc/3.0","http://creativecommons.org/licenses/by-nc-sa/3.0","http://creativecommons.org/licenses/by-nc-nd/3.0"],ia=function(a){a= a.match(/ixzz=?([^?$#]*)/);if(!a)return null;a=a[1].match(/&([^?$]*)/);if(Tynt.k)return Tynt.k.charAt(1);if(!a||!a[1])return null;return a[1]},Y=function(a){return(a=a.match(/axzz([^?$]*)/))&&a.length==2?a[1]:null},ua=function(a){var b=ea();b=b?b:location.href;b=b.replace(/#(i|a)xzz=?(.*)$/g,"");return b+"#"+("ixzz"+a)};z=function(a){var b=new Date;b.setTime(b.getTime()+864E5);G("tracertraffic="+a.toString(),"expires="+b.toUTCString())};var va=function(){var a=location.href.match(/ixzz=?([^?&$#]*)/); if(a=(a&&a.length==2?a[1]:null)||Tynt.h){var b=ia(location.href);a=w+"/b/v?g="+a+(/\?trace_owner_view/.test(location.href)?"&o=y":"")+"&id="+y+(b?"&s="+b:"")+"&r="+encodeURIComponent(H(i.referrer))+"&ts="+(new Date).getTime();m(a);return true}return false},wa=function(a){m(w+"/b/a?g="+a+"&id="+y+"&r="+encodeURIComponent(H(i.referrer))+"&ts="+(new Date).getTime(),function(){})},ja=function(a){return a.replace(/&/g,"&").replace(//g,">")},B=false,xa=function(a){if(B)return false; B=true;var b="";if(h.a){var c=ua(a),d=''+ja(Q)+" ";if(h.su)b=b+d+c+'">'+ja(c)+"";if(h.as.length>0)b=b+"\n
    "+h.as+" ";if(h.cc>0)b=b+"\n
    Under Creative Commons License: "+d+ta[h.cc]+'">'+sa[h.cc]+""}if(h.el){if(b.length>0)b+="\n
    ";b+=h.el}if(v){if(b.length>0)b+="\n
    ";b=X?b+W+d+"http://tcr"+h.s+".tynt.com/ads/"+X+"/"+a+'">'+v+"":b+W+d+"http://tcr"+h.s+".tynt.com/ads/"+v+"/"+C+"/"+a+'">'+v+""}var e,f;e=q("div", {},{overflow:"hidden",color:"#000000",backgroundColor:"transparent",textAlign:"left",textDecoration:"none",border:"none"});if(typeof getSelection!="undefined"){var g=getSelection();if(g.toString()){var j=g.getRangeAt(0);a=q("span",{innerHTML:b});if(h.t){a.innerHTML+="

    ";e.appendChild(a);e.appendChild(j.cloneContents())}else{e.appendChild(j.cloneContents());a.innerHTML="

    "+a.innerHTML;e.appendChild(a)}pa(e);if(typeof g.setBaseAndExtent!="undefined"){e.style.width=0.1;e.style.height= 0.1;e.style.position="absolute";e.style.top="-1000px";e.style.left="-1001px";e.appendChild(i.createElement("br"));a=e.innerText.length;k.insertBefore(e,k.firstChild);if(e.innerText.length!=a)e.style.overflow="";g.selectAllChildren(e);setTimeout(function(){e.parentNode.removeChild(e);getSelection().setBaseAndExtent(j.startContainer,j.startOffset,j.endContainer,j.endOffset);B=false},0)}else{f=q("div");k.appendChild(f);f.appendChild(e);a=i.createRange();a.selectNode(e);g.removeAllRanges();g.addRange(a); setTimeout(function(){f.parentNode.removeChild(f);g.removeAllRanges();g.addRange(j);B=false},0)}}}else{var l=o.scrollLeft||k.scrollLeft,n=o.scrollTop||k.scrollTop;f=q("div",{},{visibility:"hidden",overflow:"hidden",position:"absolute",left:l+20+"px",top:n+20+"px",width:"1px",height:"1px"});k.insertBefore(f,k.firstChild);var p=i.selection.createRange();e.innerHTML=h.t?b+"

    "+p.htmlText:p.htmlText+"

    "+b;f.appendChild(i.createElement("br"));f.appendChild(e);a=k.createTextRange();a.moveToElementText(e); a.select();setTimeout(function(){f.parentNode.removeChild(f);if(p.text!=""){p.select();o.scrollLeft=l;k.scrollLeft=l;o.scrollTop=n;k.scrollTop=n}B=false},0)}return true},ya=function(a,b){var c=true;if(h.a||v||h.el){var d;d=D(b);if((d=d.length>=2?M(d.charAt(0))||M(d.charAt(d.length-1))||M(d.charAt(d.length/2)):M(d))&&b.length>14||!d&&da(b)>7)if(h.a||v||h.el){c=xa(a.g);if(h.a)a.trace_type=0}}return c},za=function(){for(var a=i.getElementsByTagName("script"),b=0;b=0;c--){var d=h.ba[c],e=d.indexOf("/");if(e!=0){b=d.slice(0,e);d=d.slice(e)}if(!b||a.host==b)if(d.charAt(d.length-1)=="#"){if(a.pathname.indexOf(d.slice(0,-1))==0)return false}else if(a.pathname==d)return false}return true},Ba=function(a){h=Tynt.i||window.tyntVariables||{};h.s=a.s||1;h.a=!(h.a==0||a.a==0);h.cc=h.cc||a.cc||0;if(h.cc>6)h.cc=0;h.b=!!(h.b|| a.b);if(h.a){h.ap=(h.ap||(typeof tyntAP!="undefined"?tyntAP:null)||"Read more:")+" ";h.as=h.as||(typeof tyntAS!="undefined"?tyntAS:null)||"";h.st=!!(h.st||a.st);h.su=!(h.su==0||a.su==0);h.sp=h.sp||a.sp;if(h.sp){X=h.spid;W=(h.spt||decodeURIComponent(a.spt||""))+" ";v=h.sp||decodeURIComponent(a.sp||"")}}},ka=function(){var a=i.title.indexOf("#ixzz");if(a>-1)i.title=i.title.substring(0,a);a=i.title.indexOf("#axzz");if(a>-1)i.title=i.title.substring(0,a)},Ca=function(){for(var a=0;aYou may close this window.";k.insertBefore(b,k.firstChild);return true}if((a=R(i.cookie,"disableTracer"))&&a==C)return true;return false}()){if(O){ka();i.attachEvent("onpropertychange",ka)}Ba(N);var S=r();r=ra[ia(location.href)];if(va()){r||(r=/tynt.com/.test(i.referrer)?3:1);z(r)}if(!navigator.userAgent.match("Firefox/4"))Tynt.m= ya;if(h.b){if(Y=Y(location.href)){if(R(i.cookie,"tracerurl")!=location.href){wa(Y);z(2)}}else if(!za()&&Aa(location)){Tynt.b=P(location.href);location.replace(location.href+"#axzz"+Tynt.b)}F()}}};Tynt.TIL=function(){document.body?Da():setTimeout(Tynt.TIL,300)}})();Tynt.TIL()}; _application/x-javascriptObplist00jkX$versionX$objectsY$archiverT$top "()012LMNOPQRSTUVWXYZ[\]^_`deU$null  !R$6S$10R$2R$7R$3S$11R$8V$classR$4R$9R$0R$5R$1#$%&[NS.relativeWNS.base_Whttp://tcr.tynt.com/javascripts/Tracer.js?user=d1CwI4pPar3PzPacn9QLBk&s=50&st=1*+,-Z$classnameX$classesUNSURL./UNSURLXNSObject#AP[Ҁ3456AWNS.keysZNS.objects789:;<=>?@ BCDEFGHIJKVServer]Accept-RangesZConnection\Content-TypeTDate]Last-Modified^Content-Length_Content-EncodingTVaryTEtagVApacheUbytesZkeep-alive_application/x-javascript_Mon, 15 Nov 2010 11:26:19 GMT_Mon, 01 Nov 2010 21:14:40 GMTT5757Tgzip_Accept-Encoding_-"88156ad914b7280cfa4ff026eb7c94bc:1289410103"*+ab_NSMutableDictionaryac/\NSDictionary;E*+fg_NSHTTPURLResponsehi/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiverlm_WebResourceResponse#-27Z`{~;@KTZ]cluw~ 38=DJUp(+0DH\j|n ()*+_#http://edge.quantserve.com/quant.jsOif(!__qc){var __qc={qcdst:function(){if(__qc.qctzoff(0)!=__qc.qctzoff(6))return 1;return 0;},qctzoff:function(m){var d1=new Date(2000,m,1,0,0,0,0);var t=d1.toGMTString();var d3=new Date(t.substring(0,t.lastIndexOf(" ")-1));return d1-d3;},qceuc:function(s){if(typeof(encodeURIComponent)=='function'){return encodeURIComponent(s);} else{return escape(s);}},qcrnd:function(){return Math.round(Math.random()*2147483647);},qcgc:function(n){var v='';var c=document.cookie;if(!c)return v;var i=c.indexOf(n+"=");var len=i+n.length+1;if(i>-1){var end=c.indexOf(";",len);if(end<0)end=c.length;v=c.substring(len,end);} return v;},qcdomain:function(){var d=document.domain;if(d.substring(0,4)=="www.")d=d.substring(4,d.length);var a=d.split(".");var len=a.length;if(len<3)return d;var e=a[len-1];if(e.length<3)return d;d=a[len-2]+"."+a[len-1];return d;},qhash2:function(h,s){for(var i=0;i0){s+=";fpan=0;fpa="+a;} else{var da=new Date();a='P0-'+__qc.qcrnd()+'-'+da.getTime();u.cookie="__qca="+a+"; expires=Sun, 18 Jan 2038 00:00:00 GMT; path=/; domain="+d;a=__qc.qcgc("__qca");if(a.length>0){s+=";fpan=1;fpa="+a;} else{s+=";fpan=u;fpa=";}} return s;},qcdc:function(n){document.cookie=n+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain="+__qc.qcdomain();},qpxload:function(img){if(img&&typeof(img.width)=="number"&&img.width==3){__qc.qcdc("__qca");}},qcp:function(p,myqo){var s='',a=null;var media='webpage',event='load';if(myqo!=null){for(var k in myqo){if(typeof(k)!='string'){continue;} if(typeof(myqo[k])!='string'){continue;} if(k=='qacct'){a=myqo[k];continue;} s+=';'+k+p+'='+__qc.qceuc(myqo[k]);if(k=='media'){media=myqo[k];} if(k=='event'){event=myqo[k];}}} if(typeof a!="string"){if((typeof _qacct=="undefined")||(_qacct.length==0))return'';a=_qacct;} if(media=='webpage'&&event=='load'){for(var i=0;i<__qc.qpixelsent.length;i++){if(__qc.qpixelsent[i]==a)return'';} __qc.qpixelsent.push(a);} if(media=='ad'){__qc.qad=1;} s=';a'+p+'='+a+s;return s;},qcesc:function(s){return s.replace(/\./g,'%2E').replace(/,/g,'%2C');},qcd:function(o){return(typeof(o)!="undefined"&&o!=null);},qcogl:function(){var m=document.getElementsByTagName('meta');var o='';for(var i=0;i=1000)return o;if(__qc.qcd(m[i])&&__qc.qcd(m[i].attributes)&&__qc.qcd(m[i].attributes.property)&&__qc.qcd(m[i].attributes.property.value)&&__qc.qcd(m[i].content)){var p=m[i].attributes.property.value;var c=m[i].content;if(p.length>3&&p.substring(0,3)=='og:'){if(o.length>0)o+=',';var l=(c.length>80)?80:c.length;o+=__qc.qcesc(p.substring(3,p.length))+'.'+__qc.qcesc(c.substring(0,l));}}} return __qc.qceuc(o);},firepixel:function(qoptions){var e=(typeof(encodeURIComponent)=='function')?"n":"s";var r=__qc.qcrnd();var sr='',qo='',qm='',url='',ref='',je='u',ns='1';var qocount=0;__qc.qad=0;if(typeof __qc.qpixelsent=="undefined"){__qc.qpixelsent=new Array();} if(typeof qoptions!="undefined"&&qoptions!=null){__qc.qopts=qoptions;for(var k in __qc.qopts){if(typeof(__qc.qopts[k])=='string'){qo=__qc.qcp("",__qc.qopts);break;}else if(typeof(__qc.qopts[k])=='object'&&__qc.qopts[k]!=null){++qocount;qo+=__qc.qcp("."+qocount,__qc.qopts[k]);}}}else if(typeof _qacct=="string"){qo=__qc.qcp("",null);} if(qo.length==0)return;var ce=(navigator.cookieEnabled)?"1":"0";if(typeof navigator.javaEnabled!='undefined')je=(navigator.javaEnabled())?"1":"0";if(typeof _qmeta!="undefined"&&_qmeta!=null){qm=';m='+__qc.qceuc(_qmeta);_qmeta=null;} if(self.screen){sr=screen.width+"x"+screen.height+"x"+screen.colorDepth;} var d=new Date();var dst=__qc.qcdst();var qs='http';if(window.location.protocol=='https:'){qs+='s';} qs+="://pixel.quantserve.com";var fp=__qc.qcsc();if(window.location&&window.location.href)url=__qc.qceuc(window.location.href);if(window.document&&window.document.referrer)ref=__qc.qceuc(window.document.referrer);if(self==top)ns='0';var ogl=__qc.qcogl();var img=new Image();img.alt="";img.src=qs+'/pixel'+';r='+r+fp+';ns='+ns+';url='+url+';ref='+ref+';ce='+ce+';je='+je+';sr='+sr+';enc='+e+';ogl='+ogl+';dst='+dst+';et='+d.getTime()+';tzo='+d.getTimezoneOffset()+qo+qm;img.onload=function(){__qc.qpxload(img);}},quantserve:function(){if(typeof _qevents=='undefined'){_qevents=[];} if(typeof _qoptions!="undefined"&&_qoptions!=null){__qc.firepixel(_qoptions);_qoptions=null;}else if(!_qevents.length&&typeof _qacct!="undefined"){__qc.firepixel(null);} if(!__qc.evts){for(var k in _qevents){__qc.firepixel(_qevents[k]);} _qevents={push:function(){var a=arguments;for(var i=0;i? ABCDEFGHIVServer]Cache-Control\Content-TypeWExpiresTDate^Content-LengthZConnection_Content-EncodingTVaryVApache_private, max-age=86400_application/x-javascript_Tue, 16 Nov 2010 11:26:19 GMT_Mon, 15 Nov 2010 11:26:19 GMTT2157Zkeep-aliveTgzip_Accept-Encoding*+]^_NSMutableDictionary]_/\NSDictionary*+bc_NSHTTPURLResponsede/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiverhi_WebResourceResponse#-27X^y| $'-6?AHP[]gikmoqsuwy1Qqv1j3 -./0_Lhttp://c.compete.com/bootstrap/197e39a0b655b0eda08274e2455f3a4a/bootstrap.jsO_fanpid='738-027422';(function(){var pixpath=(/^https/i.test(window.location.protocol)?'https://trgc.opt.fimserve.com':'http://trgc.opt.fimserve.com')+'/fp.gif'+'?',pixel=function(pid){var a={};var fields={};fields.pixelid=pid;a.setKW=function(s){if(typeof s!="string")return false;fields.sdrowyek=s;return true;};a.setUID=function(s){if((typeof s!="number")&&(typeof s!="string"))return false;fields.diresu=s;return true;};a.setUA=function(s){if(typeof s!="number")return false;fields.egaresu=s;return true;};a.setUG=function(s){if(typeof s!="number")return false;fields.rednegresu=s;return true;};a.setD=function(s){fields.atad=s;return true;};a.persistEvent=function(){var query=[];fields.rnd=Math.round(Math.random()*(new Date()).valueOf());for(var i in fields){if(fields.hasOwnProperty(i)){query.push(i+'='+encodeURIComponent(fields[i]));}} (new Image(1,1)).src=pixpath+query.join('&');};return a;};try{if("undefined"!=typeof _fanpid){var p=pixel(_fanpid);if("undefined"!=typeof _fankw) p.setKW(_fankw);if("undefined"!=typeof _fanuid) p.setUID(_fanuid);if("undefined"!=typeof _fanua) p.setUA(_fanua);if("undefined"!=typeof _fanug) p.setUG(_fanug);if("undefined"!=typeof _fand) p.setD(_fand);p.persistEvent();}}catch(err){}}());_text/javascriptObplist00Z[X$versionX$objectsY$archiverT$top"()012DEFGHIJKLMNOPTUU$null  !R$6S$10R$2R$7R$3S$11R$8V$classR$4R$9R$0R$5R$1#$%&[NS.relativeWNS.base_Lhttp://c.compete.com/bootstrap/197e39a0b655b0eda08274e2455f3a4a/bootstrap.js*+,-Z$classnameX$classesUNSURL./UNSURLXNSObject#AP[3456=WNS.keysZNS.objects789:;< >?@ABCZConnectionVServer]Cache-ControlTDate\Content-Type^Content-LengthZkeep-aliveVApache[max-age=600_Mon, 15 Nov 2010 11:26:19 GMT_text/javascriptT1232*+QR_NSMutableDictionaryQS/\NSDictionary*+VW_NSHTTPURLResponseXY/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiver\]_WebResourceResponse#-27RXsvz}(-8AGJPYbdks~%7<AW[hkp^ 2345_%http://www.google-analytics.com/ga.jsO_(function(){var s=true,t=false,aa=window,u=undefined,v=Math,ba="push",fa="slice",ga="cookie",y="charAt",z="indexOf",A="gaGlobal",ha="getTime",ja="toString",B="window",D="length",E="document",F="split",G="location",ka="href",H="substring",I="join",L="toLowerCase";var la="_gat",ma="_gaq",na="4.8.6",oa="_gaUserPrefs",pa="ioo",M="&",N="=",O="__utma=",qa="__utmb=",ra="__utmc=",sa="__utmk=",ta="__utmv=",ua="__utmz=",va="__utmx=",wa="GASO=";var xa=function(){var j=this,h=[],k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";j.uc=function(m){h[m]=s};j.Nb=function(){for(var m=[],i=0;i-1){k=j[z](k,i);if(k<0)k=j[D];m=j[H](i+h[z](N)+1,k)}}return m},Ba=function(j){var h=t,k=0,m,i;if(!S(j)){h=s;for(m=0;m-1)}}return h},U=function(j,h){var k=encodeURIComponent;if(k instanceof Function)return h? encodeURI(j):k(j);else{Q(68);return escape(j)}},Ca=function(j,h){var k=decodeURIComponent,m;j=j[F]("+")[I](" ");if(k instanceof Function)try{m=h?decodeURI(j):k(j)}catch(i){Q(97);m=unescape(j)}else{Q(68);m=unescape(j)}return m},V=function(j,h){return j[z](h)>-1};function Da(j){if(!j||""==j)return"";for(;j[y](0)[D]>0&&" \n\r\t"[z](j[y](0))>-1;)j=j[H](1);for(;j[y](j[D]-1)[D]>0&&" \n\r\t"[z](j[y](j[D]-1))>-1;)j=j[H](0,j[D]-1);return j} var X=function(j,h){j[ba]||Q(94);j[j[D]]=h},Ea=function(j){var h=1,k=0,m;if(!S(j)){h=0;for(m=j[D]-1;m>=0;m--){k=j.charCodeAt(m);h=(h<<6&268435455)+k+(k<<14);k=h&266338304;h=k!=0?h^k>>21:h}}return h},Fa=function(){return v.round(v.random()*2147483647)},Ga=function(){};var Ha=function(j,h){this.Na=j;this.$a=h},Ia=function(){function j(k){var m=[];k=k[F](",");for(var i,p=0;p0)e=e[F]("^")[0];f=e[F](":");e=f[1];q=parseInt(f[0],10);if(!d&&q0?m(f):"";if(p.l){c=i.bc(R[E][ga],a,p.l,c,f);a="2"+a;d=f>0?m(p.u):""}a=a+c;d=d;if(a[D]>2E3){Q(69);a=a[H](0,2E3)}d=a+"; path="+p.f+"; "+d+i.Qa();R[E].cookie=d};i.bc=function(a,c,f,d,e){var q="";e=e||p.u;d=k([d,i.q+e*1],f);q=T(a,"2"+c,";");if(!S(q)){a=k(h(a,c,f,s),f);q=q[F](a)[I]("");return q=d+q}return d};i.Qa=function(){return S(p.a)?"":"domain="+p.a+";"}};var Ka=function(j){function h(b){b=b instanceof Array?b[I]("."):"";return S(b)?"-":b}function k(b,g){var o=[],n;if(!S(b)){o=b[F](".");if(g)for(n=0;n2037)k=m+"&err=len&max=2037&len="+k[D];j.Kb(h+k,i)};j.Kb=function(h,k){var m=new Image(1,1);m.src=h;m.onload=function(){m.onload=null;(k||Ga)()}}};var Ma=function(j){var h=this,k=j,m=new Ka(k),i=new La,p=!Y.Ic(),l=function(){};h.$c=function(a){var c=a[F](".");if(!c||c[D]<5)return a;if((a=c[fa](4)[I]("."))&&a[z]("=")==-1)a=Ca(a);c=c[fa](0,4);X(c,a);return c[I](".")};h.$b=function(){return"https:"==R[E][G].protocol?"https://ssl.google-analytics.com/__utm.gif":"http://www.google-analytics.com/__utm.gif"};h.P=function(a,c,f,d,e,q){var x=k.B,b=R[E][G];m.ja(f);var g=m.z()[F](".");if(g[1]<500||d){if(e){g=g;var o=(new Date)[ha](),n;n=(o-g[3])*(k.Ec/ 1E3);if(n>=1){g[2]=v.min(v.floor(g[2]*1+n),k.Fb);g[3]=o}g=g}if(d||!e||g[2]>=1){if(!d&&e)g[2]=g[2]*1-1;g[1]=g[1]*1+1;e="?utmwv="+na;o="&utmn="+Fa();d=e+"e"+o;a=e+o+(S(b.hostname)?"":"&utmhn="+U(b.hostname))+(k.O==100?"":"&utmsp="+U(k.O))+a;if(0==x||2==x){b=2==x?l:q||l;p&&i.jb(k.ga,a,d,b,s)}if(1==x||2==x){c="&utmac="+c;d+=c;a+=c+"&utmcc="+h.Tb(f);if(Y.Ma){f="&aip=1";d+=f;a+=f}a+="&utmu="+ya.Nb();p&&i.jb(h.$b(),a,d,q)}}}m.la(g[I]("."));m.qa()};h.Tb=function(a){for(var c=[],f=[O,ua,ta,va],d=m.h(),e,q= 0;q0)for(c=0;c0;)c+=f--^d++;return Ea(c)}};var Z=function(j,h,k,m){function i(a){var c="";c=a[F]("://")[1][L]();if(V(c,"/"))c=c[F]("/")[0];return c}var p=m,l=this;l.b=j;l.fb=h;l.q=k;l.Ua=function(a){var c=l.aa();return new Z.r(T(a,p.va+N,M),T(a,p.ya+N,M),T(a,p.Aa+N,M),l.J(a,p.ta,"(not set)"),l.J(a,p.wa,"(not set)"),l.J(a,p.za,c&&!S(c.C)?Ca(c.C):u),l.J(a,p.ua,u))};l.Wa=function(a){var c=i(a),f;f=a;var d="";f=f[F]("://")[1][L]();if(V(f,"/")){f=f[F]("/")[1];if(V(f,"?"))d=f[F]("?")[0]}f=d;if(V(c,"google")){a=a[F]("?")[I](M);if(V(a,M+p.gc+N))if(f== p.fc)return s}return t};l.aa=function(){var a,c=l.fb,f,d=p.M;if(!(S(c)||"0"==c||!V(c,"://")||l.Wa(c))){a=i(c);for(var e=0;e9?b[H](x+1)*1:0;q++;b=0==b?1:b;a.ob([g,l.q,b,q,e.D()][I]("."));a.sa()}}}}}}; Z.r=function(j,h,k,m,i,p,l){var a=this;a.n=j;a.Q=h;a.V=k;a.o=m;a.L=i;a.C=p;a.Ja=l;a.D=function(){var c=[],f=[["cid",a.n],["csr",a.Q],["gclid",a.V],["ccn",a.o],["cmd",a.L],["ctr",a.C],["cct",a.Ja]],d,e;if(a.Ya())for(d=0;d0&&f<=a.bb){d=U(d);e=U(e);if(d[D]+e[D]<=64){i.m[f]=[d,e,q];i.T();x=s}}return x};i.ec=function(f){if((f=i.m[f])&&1===f[2])return f[1]};i.Lb=function(f){var d=i.m;if(d[f]){delete d[f];i.T()}};i.Gb=function(){c.w(8);c.w(9);c.w(11);var f=i.m,d,e;for(e in f)if(d=f[e]){c.p(8,e,d[0]);c.p(9,e,d[1]);(d=d[2])&&3!=d&&c.p(11,e,""+d)}}};var Qa=function(){function j(n,r,w,J){if(u==l[n])l[n]={};if(u==l[n][r])l[n][r]=[];l[n][r][w]=J}function h(n,r,w){if(u!=l[n]&&u!=l[n][r])return l[n][r][w]}function k(n,r){if(u!=l[n]&&u!=l[n][r]){l[n][r]=u;var w=s,J;for(J=0;J-1}function p(b,g,o){if(S(b)||S(g)||S(o))return"-";b=T(b,O+a.b+".",g);if(!S(b)){b=b[F](".");b[5]=""+(b[5]?b[5]*1+1:1);b[3]=b[4];b[4]=o;b=b[I](".")}return b}function l(){return"file:"!=R[E][G].protocol&&i()}var a=this,c=Aa(a),f=u,d=new Ia,e=d.a,q=t,x=u;a.o=j;a.q= v.round((new Date)[ha]()/1E3);a.s=h||"UA-XXXXX-X";a.La=R[E].referrer;a.$=u;a.d=u;a.A=t;a.G=u;a.e=u;a.Oa=u;a.b=u;a.j=u;d.l=k?U(k):u;a.ac=function(){return Fa()^a.G.Sb()&2147483647};a.Wb=function(){if(!d.a||""==d.a||"none"==d.a){d.a="";return 1}m();return d.Da?Ea(d.a):1};a.Rb=function(b,g){if(S(b))b="-";else{g+=d.f&&"/"!=d.f?d.f:"";var o=b[z](g);b=o>=0&&o<=8?"0":"["==b[y](0)&&"]"==b[y](b[D]-1)?"-":b}return b};a.gb=function(b){var g="";g+=d.W?a.G.Cc():"";g+=d.Y&&!S(R[E].title)?"&utmdt="+U(R[E].title): "";g=g;var o;o=u;if(R[B]&&R[B][A]&&R[B][A].hid)o=R[B][A].hid;else{o=Fa();R[B].gaGlobal=R[B][A]?R[B][A]:{};R[B][A].hid=o}o=o;return g=g+("&utmhid="+o+"&utmr="+U(a.$)+"&utmp="+U(a.sc(b)))};a.sc=function(b){var g=R[E][G];return b=u!=b&&""!=b?U(b,s):U(g.pathname+g.search,s)};a.Fc=function(b){if(a.R()){var g="";if(a.e!=u&&a.e.N()[D]>0)g+="&utme="+U(a.e.N());g+=a.gb(b);f.P(g,a.s,a.b)}};a.Jb=function(){var b=new Ka(d);return b.ja(a.b)?b.Bc():u};a.Ra=c("_getLinkerUrl",52,function(b,g){var o=b[F]("#"),n=b, r=a.Jb();if(r)if(g&&1>=o[D])n+="#"+r;else if(!g||1>=o[D])if(1>=o[D])n+=(V(b,"?")?M:"?")+r;else n=o[0]+(V(b,"?")?M:"?")+r+"#"+o[1];return n});a.hc=function(){var b=a.q,g=a.j,o=g.h(),n=a.b+"",r=R[B]?R[B][A]:u,w,J=V(o,O+n+"."),P=V(o,qa+n),ia=V(o,ra+n),C,K=[],W="",ca=t;o=S(o)?"":o;if(d.v){w=R[E][G]&&R[E][G].hash?R[E][G][ka][H](R[E][G][ka][z]("#")):"";if(d.U&&!S(w))W=w+M;W+=R[E][G].search;if(!S(W)&&V(W,O)){g.qc(W);g.Xa()||g.Ib();C=g.ba()}w=g.ea;var da=g.nb,ea=g.zb;if(!S(w())){da(Ca(w()));V(w(),";")||ea()}w= g.da;da=g.na;ea=g.ra;if(!S(w())){da(w());V(w(),";")||ea()}}if(S(C))if(J)if(!P||!ia||0){C=p(o,";",b);a.A=s}else{C=T(o,O+n+".",";");K=T(o,qa+n,";")[F](".")}else{C=[n,a.ac(),b,b,b,1][I](".");ca=a.A=s}else if(S(g.z())||S(g.ca())){C=p(W,M,b);a.A=s}else{K=g.z()[F](".");n=K[0]}C=C[F](".");if(R[B]&&r&&r.dh==n&&!d.l){C[4]=r.sid?r.sid:C[4];if(ca){C[3]=r.sid?r.sid:C[4];if(r.vid){b=r.vid[F](".");C[1]=b[0];C[2]=b[1]}}}g.lb(C[I]("."));K[0]=n;K[1]=K[1]?K[1]:0;K[2]=u!=K[2]?K[2]:d.Dc;K[3]=K[3]?K[3]:C[4];g.la(K[I](".")); g.mb(n);S(g.cc())||g.ma(g.I());g.xb();g.qa();g.yb()};a.jc=function(){f=new Ma(d)};a.getName=c("_getName",58,function(){return a.o});a.c=c("_initData",2,function(){var b;if(!q){if(!a.G)a.G=new Oa(d.Z);a.b=a.Wb();a.j=new Ka(d);a.e=new Qa;x=new Pa(d,a.b,a.j,a.e);a.jc()}if(l()){if(!q){a.$=a.Rb(a.La,R[E].domain);b=new Z(a.b,a.$,a.q,d)}a.hc(b);x.kc()}if(!q){l()&&b.Ub(a.j,a.A);a.Oa=new Qa;$.load(d,a.j);q=s}});a.Jc=c("_visitCode",54,function(){a.c();var b=T(a.j.h(),O+a.b+".",";");b=b[F](".");return b[D]< 4?"":b[1]});a.Vc=c("_cookiePathCopy",30,function(b){a.c();a.j&&a.j.Hc(a.b,b)});a.R=function(){return a.Jc()%1E40){p=l[H](0,a);l=l[H](a+1)}var c=p==la?Y:p==ma?Va:Y.Ta(p);c[l].apply(c,k[i][fa](1))}}catch(f){m++}return m}};var Y=new Ta;var Xa=aa[la];if(Xa&&typeof Xa._getTracker=="function")Y=Xa;else aa[la]=Y;var Va=new Wa;a:{var Ya=aa[ma],Za=t;if(Ya&&typeof Ya[ba]=="function"){Za=Ya.constructor==Array;if(!Za)break a}aa[ma]=Va;Za&&Va[ba].apply(Va,Ya)};})() _text/javascriptObplist00noX$versionX$objectsY$archiverT$top""()012NOPQRSTUVWXYZ[\]^_`abcdhiU$null  !R$6S$10R$2R$7R$3S$11R$8V$classR$4R$9R$0R$5R$1 !#$%&[NS.relativeWNS.base_%http://www.google-analytics.com/ga.js*+,-Z$classnameX$classesUNSURL./UNSURLXNSObject#AD4a3456BWNS.keysZNS.objects789:;<=>?@A CDEFGHIJKLMVServer]Cache-Control\Content-TypeWExpires]Last-ModifiedTDate^Content-Length_Content-Encoding_X-Content-Type-OptionsTVarySAgeUGolfe_max-age=86400, public_text/javascript_Tue, 16 Nov 2010 10:36:27 GMT_Mon, 08 Nov 2010 08:48:36 GMT_Mon, 15 Nov 2010 10:36:27 GMTU10657TgzipWnosniff_Accept-EncodingR68*+ef_NSMutableDictionaryeg/\NSDictionary_*+jk_NSHTTPURLResponselm/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiverpq_WebResourceResponse#-27\b} $*-3<EGNVacoqsuwy{}$(.FXx (,@N`cyr{ 789:_(http://b.scorecardresearch.com/beacon.jsOif(typeof COMSCORE=="undefined"){var COMSCORE={}}if(typeof _comscore!="object"){var _comscore=[]}COMSCORE.beacon=function(m){try{if(!m){return}var j=1.9,n=m.options||{},l=n.doc||document,b=n.nav||navigator,h=l.location,g=512,k=function(o){var p=encodeURIComponent||escape;return p(o)},c=function(e,o){if(o){e=e.substr(0,o)}return e},f=function(e,o){if(e==null){return""}return c(k(e),o)},a=[(h.protocol=="https:"?"https://sb":"http://b"),".scorecardresearch.com/b?","c1=",f(m.c1),"&c2=",f(m.c2),"&rn=",Math.random(),"&c7=",(function(){var e=h.href,o=g;if(n.url_append){o=g-k(["?",n.url_append].join("")).length;e=f(e,o)+k([/\?/.test(e)?"&":"?",n.url_append].join(""))}else{e=f(e,g)}return e})(),"&c3=",f(m.c3),"&c4=",f(m.c4,g),"&c5=",f(m.c5),"&c6=",f(m.c6),"&c10=",f(m.c10),"&c15=",f(m.c15),"&c16=",f(m.c16),"&c8=",f(l.title),"&c9=",f(l.referrer,g),"&cv=",j,m.r?"&r="+f(m.r,g):""].join("");a=a.length>2080?a.substr(0,2075)+"&ct=1":a;if(!/BlackBerry.*?\/([1-3]\.|4\.[0-5])/.test(b.userAgent)){var d=new Image();d.onload=function(){};d.src=a}else{a=a.replace(/\/b\?/,"/p?");l.write("")}return a}catch(i){}};COMSCORE.purge=function(a){try{var c=[],f,b;a=a||_comscore;for(b=a.length-1;b>=0;b--){f=COMSCORE.beacon(a[b]);a.splice(b,1);if(f){c.push(f)}}return c}catch(d){}};COMSCORE.purge(); _application/x-javascriptO6bplist00fgX$versionX$objectsY$archiverT$top"()012JKLMNOPQRSTUVWXYZ[\`aU$null  !R$6S$10R$2R$7R$3S$11R$8V$classR$4R$9R$0R$5R$1#$%&[NS.relativeWNS.base_(http://b.scorecardresearch.com/beacon.js*+,-Z$classnameX$classesUNSURL./UNSURLXNSObject#AP^}|3456@WNS.keysZNS.objects789:;<=>? ABCDEFGHIVServerZConnection\Content-TypeWExpiresTDate^Content-Length]Cache-Control_Content-EncodingTVaryRCSZkeep-alive_application/x-javascript_Mon, 22 Nov 2010 11:26:22 GMT_Mon, 15 Nov 2010 11:26:22 GMTS746_%private, no-transform, max-age=604800Tgzip_Accept-Encoding*+]^_NSMutableDictionary]_/\NSDictionary*+bc_NSHTTPURLResponsede/_NSHTTPURLResponse]NSURLResponse_NSKeyedArchiverhi_WebResourceResponse#-27X^y| #),2;DFMU`blnprtvxz|~ $Ddh'*@jB <=>?_&http://platform.twitter.com/widgets.jsOUvar twttr=window.twttr||{};(function(){if(!twttr.widgets){twttr.widgets={}}if(!twttr.widgets.host){twttr.widgets.host="platform{i}.twitter.com"}if(typeof twttr.widgets.ignoreSSL==="undefined"){twttr.widgets.ignoreSSL=false}function T(X){var Z=M(X);var Y=twttr.widgets.host;var W=Y.replace("{i}",G++);if(G==3){G=0}return Z+"://"+W}function M(W){return(window.location.protocol.match(/s\:$/)||W)&&!twttr.widgets.ignoreSSL?"https":"http"}function S(a){var X;for(var W in a){X=N.apply(this,W.split("."));for(var Y=0,Z;(Z=X[Y]);Y++){new a[W](Z).render()}}}function I(b){var Y;var Z;var X=function(){if(document.readyState=="complete"){Y()}};var W;var a=function(){try{document.documentElement.doScroll("left");Y()}catch(c){}};if(window.addEventListener){Y=function(){if(!Z){Z=true;b()}window.removeEventListener("DOMContentLoaded",Y,false);window.removeEventListener("load",Y,false)};window.addEventListener("DOMContentLoaded",Y,false);window.addEventListener("load",Y,false)}else{if(window.attachEvent){W=window.setInterval(a,13);Y=function(){if(!Z){Z=true;b()}window.clearInterval(W);window.detachEvent("onreadystatechange",X);window.detachEvent("onload",Y)};window.attachEvent("onreadystatechange",X);window.attachEvent("onload",Y)}}}function N(W,a){var Z,b=[],X,Y;try{if(document.querySelectorAll){b=document.querySelectorAll(W+"."+a)}else{if(document.getElementsByClassName){Z=document.getElementsByClassName(a);for(X=0;(Y=Z[X]);X++){if(Y.tagName.toLowerCase()==W){b.push(Y)}}}else{Z=document.getElementsByTagName(W);var d=new RegExp("\\b"+a+"\\b");for(X=0;(Y=Z[X]);X++){if(Y.className.match(d)){b.push(Y)}}}}}catch(c){}return b}function Q(W){return encodeURIComponent(W).replace(/\+/g,"%2B")}function D(W){return decodeURIComponent(W)}function J(Y){var X=[];for(var W in Y){if(Y[W]!==null&&typeof Y[W]!=="undefined"){X.push(Q(W)+"="+Q(Y[W]))}}return X.sort().join("&")}function P(Z){var b={},Y,a,X,W;if(Z){Y=Z.split("&");for(W=0;(X=Y[W]);W++){a=X.split("=");if(a.length==2){b[D(a[0])]=D(a[1])}}}return b}function F(X,Y){for(var W in Y){X[W]=Y[W]}return X}function R(X){var W;if(X.match(/^https?:\/\//)){return X}else{W=location.host;if(location.port.length>0){W+=":"+location.port}return[location.protocol,"//",W,X].join("")}}function A(){var W=document.getElementsByTagName("link");for(var X=0,Y;(Y=W[X]);X++){if(Y.getAttribute("rel")=="canonical"){return R(Y.getAttribute("href"))}}return null}function K(Y){var Z=[];for(var X=0,W=Y.length;X