var Prototype={Version:"1.5.1.2",Browser:{IE:!!(window.attachEvent&&!window.opera),Opera:!!window.opera,WebKit:navigator.userAgent.indexOf("AppleWebKit/")>-1,Gecko:navigator.userAgent.indexOf("Gecko")>-1&&navigator.userAgent.indexOf("KHTML")==-1},BrowserFeatures:{XPath:!!document.evaluate,ElementExtensions:!!window.HTMLElement,SpecificElementExtensions:(document.createElement("div").__proto__!==document.createElement("form").__proto__)},ScriptFragment:"<script[^>]*>([\\S\\s]*?)<\/script>",JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x}};var Class={create:function(){return function(){this.initialize.apply(this,arguments)}}};var Abstract=new Object();Object.extend=function(destination,source){for(var property in source){destination[property]=source[property]}return destination};Object.extend(Object,{inspect:function(object){try{if(object===undefined){return"undefined"}if(object===null){return"null"}return object.inspect?object.inspect():object.toString()
}catch(e){if(e instanceof RangeError){return"..."}throw e}},toJSON:function(object){var type=typeof object;switch(type){case"undefined":case"function":case"unknown":return ;case"boolean":return object.toString()}if(object===null){return"null"}if(object.toJSON){return object.toJSON()}if(object.ownerDocument===document){return }var results=[];for(var property in object){var value=Object.toJSON(object[property]);if(value!==undefined){results.push(property.toJSON()+": "+value)}}return"{"+results.join(", ")+"}"},keys:function(object){var keys=[];for(var property in object){keys.push(property)}return keys},values:function(object){var values=[];for(var property in object){values.push(object[property])}return values},clone:function(object){return Object.extend({},object)}});Function.prototype.bind=function(){var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)))}};Function.prototype.bindAsEventListener=function(object){var __method=this,args=$A(arguments),object=args.shift();
return function(event){return __method.apply(object,[event||window.event].concat(args))}};Object.extend(Number.prototype,{toColorPart:function(){return this.toPaddedString(2,16)},succ:function(){return this+1},times:function(iterator){$R(0,this,true).each(iterator);return this},toPaddedString:function(length,radix){var string=this.toString(radix||10);return"0".times(length-string.length)+string},toJSON:function(){return isFinite(this)?this.toString():"null"}});Date.prototype.toJSON=function(){return'"'+this.getFullYear()+"-"+(this.getMonth()+1).toPaddedString(2)+"-"+this.getDate().toPaddedString(2)+"T"+this.getHours().toPaddedString(2)+":"+this.getMinutes().toPaddedString(2)+":"+this.getSeconds().toPaddedString(2)+'"'};var Try={these:function(){var returnValue;for(var i=0,length=arguments.length;i<length;i++){var lambda=arguments[i];try{returnValue=lambda();break}catch(e){}}return returnValue}};var PeriodicalExecuter=Class.create();PeriodicalExecuter.prototype={initialize:function(callback,frequency){this.callback=callback;
this.frequency=frequency;this.currentlyExecuting=false;this.registerCallback()},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000)},stop:function(){if(!this.timer){return }clearInterval(this.timer);this.timer=null},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback(this)}finally{this.currentlyExecuting=false}}}};Object.extend(String,{interpret:function(value){return value==null?"":String(value)},specialChar:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\\":"\\\\"}});Object.extend(String.prototype,{gsub:function(pattern,replacement){var result="",source=this,match;replacement=arguments.callee.prepareReplacement(replacement);while(source.length>0){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=count===undefined?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 this},truncate:function(length,truncation){length=length||30;truncation=truncation===undefined?"...":truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation: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=document.createElement("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(hash[key].constructor!=Array){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){var result="";for(var i=0;i<count;i++){result+=this}return result
},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<len;i++){camelized+=parts[i].charAt(0).toUpperCase()+parts[i].substring(1)}return camelized},capitalize:function(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase()},underscore:function(){return this.gsub(/::/,"/").gsub(/([A-Z]+)([A-Z][a-z])/,"#{1}_#{2}").gsub(/([a-z\d])([A-Z])/,"#{1}_#{2}").gsub(/-/,"_").toLowerCase()},dasherize:function(){return this.gsub(/_/,"-")},inspect:function(useDoubleQuotes){var escapedString=this.gsub(/[\x00-\x1f\\]/,function(match){var character=String.specialChar[match[0]];return character?character:"\\u00"+match[0].charCodeAt().toPaddedString(2,16)});if(useDoubleQuotes){return'"'+escapedString.replace(/"/g,'\\"')+'"'}return"'"+escapedString.replace(/'/g,"\\'")+"'"},toJSON:function(){return this.inspect(true)},unfilterJSON:function(filter){return this.sub(filter||Prototype.JSONFilter,"#{1}")
},isJSON:function(){var str=this.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,"");return(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str)},evalJSON:function(sanitize){var json=this.unfilterJSON();try{if(!sanitize||json.isJSON()){return eval("("+json+")")}}catch(e){}throw new SyntaxError("Badly formed JSON string: "+this.inspect())},include:function(pattern){return this.indexOf(pattern)>-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)}});if(Prototype.Browser.WebKit||Prototype.Browser.IE){Object.extend(String.prototype,{escapeHTML:function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},unescapeHTML:function(){return this.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">")}})}String.prototype.gsub.prepareReplacement=function(replacement){if(typeof replacement=="function"){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("")});with(String.prototype.escapeHTML){div.appendChild(text)}var Template=Class.create();Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;Template.prototype={initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern},evaluate:function(object){return this.template.gsub(this.pattern,function(match){var before=match[1];if(before=="\\"){return match[2]}return before+String.interpret(object[match[3]])})}};var $break={},$continue=new Error('"throw $continue" is deprecated, use "return" instead');var Enumerable={each:function(iterator){var index=0;try{this._each(function(value){iterator(value,index++)})}catch(e){if(e!=$break){throw e}}return this},eachSlice:function(number,iterator){var index=-number,slices=[],array=this.toArray();
while((index+=number)<array.length){slices.push(array.slice(index,index+number))}return slices.map(iterator)},all:function(iterator){var result=true;this.each(function(value,index){result=result&&!!(iterator||Prototype.K)(value,index);if(!result){throw $break}});return result},any:function(iterator){var result=false;this.each(function(value,index){if(result=!!(iterator||Prototype.K)(value,index)){throw $break}});return result},collect:function(iterator){var results=[];this.each(function(value,index){results.push((iterator||Prototype.K)(value,index))});return results},detect:function(iterator){var result;this.each(function(value,index){if(iterator(value,index)){result=value;throw $break}});return result},findAll:function(iterator){var results=[];this.each(function(value,index){if(iterator(value,index)){results.push(value)}});return results},grep:function(pattern,iterator){var results=[];this.each(function(value,index){var stringValue=value.toString();if(stringValue.match(pattern)){results.push((iterator||Prototype.K)(value,index))
}});return results},include:function(object){var found=false;this.each(function(value){if(value==object){found=true;throw $break}});return found},inGroupsOf:function(number,fillWith){fillWith=fillWith===undefined?null:fillWith;return this.eachSlice(number,function(slice){while(slice.length<number){slice.push(fillWith)}return slice})},inject:function(memo,iterator){this.each(function(value,index){memo=iterator(memo,value,index)});return memo},invoke:function(method){var args=$A(arguments).slice(1);return this.map(function(value){return value[method].apply(value,args)})},max:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(result==undefined||value>=result){result=value}});return result},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(result==undefined||value<result){result=value}});return result},partition:function(iterator){var trues=[],falses=[];this.each(function(value,index){((iterator||Prototype.K)(value,index)?trues:falses).push(value)
});return[trues,falses]},pluck:function(property){var results=[];this.each(function(value,index){results.push(value[property])});return results},reject:function(iterator){var results=[];this.each(function(value,index){if(!iterator(value,index)){results.push(value)}});return results},sortBy:function(iterator){return this.map(function(value,index){return{value:value,criteria:iterator(value,index)}}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0}).pluck("value")},toArray:function(){return this.map()},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(typeof args.last()=="function"){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"#<Enumerable:"+this.toArray().inspect()+">"}};Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});
var $A=Array.from=function(iterable){if(!iterable){return[]}if(iterable.toArray){return iterable.toArray()}else{var results=[];for(var i=0,length=iterable.length;i<length;i++){results.push(iterable[i])}return results}};if(Prototype.Browser.WebKit){$A=Array.from=function(iterable){if(!iterable){return[]}if(!(typeof iterable=="function"&&iterable=="[object NodeList]")&&iterable.toArray){return iterable.toArray()}else{var results=[];for(var i=0,length=iterable.length;i<length;i++){results.push(iterable[i])}return results}}}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;i<length;i++){iterator(this[i])}},clear:function(){this.length=0;return this},first:function(){return this[0]},last:function(){return this[this.length-1]},compact:function(){return this.select(function(value){return value!=null})},flatten:function(){return this.inject([],function(array,value){return array.concat(value&&value.constructor==Array?value.flatten():[value])
})},without:function(){var values=$A(arguments);return this.select(function(value){return !values.include(value)})},indexOf:function(object){for(var i=0,length=this.length;i<length;i++){if(this[i]==object){return i}}return -1},reverse:function(inline){return(inline!==false?this:this.toArray())._reverse()},reduce:function(){return this.length>1?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})},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(value!==undefined){results.push(value)}});return"["+results.join(", ")+"]"}});Array.prototype.toArray=Array.prototype.clone;function $w(string){string=string.strip();return string?string.split(/\s+/):[]}if(Prototype.Browser.Opera){Array.prototype.concat=function(){var array=[];
for(var i=0,length=this.length;i<length;i++){array.push(this[i])}for(var i=0,length=arguments.length;i<length;i++){if(arguments[i].constructor==Array){for(var j=0,arrayLength=arguments[i].length;j<arrayLength;j++){array.push(arguments[i][j])}}else{array.push(arguments[i])}}return array}}var Hash=function(object){if(object instanceof Hash){this.merge(object)}else{Object.extend(this,object||{})}};Object.extend(Hash,{toQueryString:function(obj){var parts=[];parts.add=arguments.callee.addPair;this.prototype._each.call(obj,function(pair){if(!pair.key){return }var value=pair.value;if(value&&typeof value=="object"){if(value.constructor==Array){value.each(function(value){parts.add(pair.key,value)})}return }parts.add(pair.key,value)});return parts.join("&")},toJSON:function(object){var results=[];this.prototype._each.call(object,function(pair){var value=Object.toJSON(pair.value);if(value!==undefined){results.push(pair.key.toJSON()+": "+value)}});return"{"+results.join(", ")+"}"}});Hash.toQueryString.addPair=function(key,value,prefix){key=encodeURIComponent(key);
if(value===undefined){this.push(key)}else{this.push(key+"="+(value==null?"":encodeURIComponent(value)))}};Object.extend(Hash.prototype,Enumerable);Object.extend(Hash.prototype,{_each:function(iterator){for(var key in this){var value=this[key];if(value&&value==Hash.prototype[key]){continue}var pair=[key,value];pair.key=key;pair.value=value;iterator(pair)}},keys:function(){return this.pluck("key")},values:function(){return this.pluck("value")},merge:function(hash){return $H(hash).inject(this,function(mergedHash,pair){mergedHash[pair.key]=pair.value;return mergedHash})},remove:function(){var result;for(var i=0,length=arguments.length;i<length;i++){var value=this[arguments[i]];if(value!==undefined){if(result===undefined){result=value}else{if(result.constructor!=Array){result=[result]}result.push(value)}}delete this[arguments[i]]}return result},toQueryString:function(){return Hash.toQueryString(this)},inspect:function(){return"#<Hash:{"+this.map(function(pair){return pair.map(Object.inspect).join(": ")
}).join(", ")+"}>"},toJSON:function(){return Hash.toJSON(this)}});function $H(object){if(object instanceof Hash){return object}return new Hash(object)}if(function(){var i=0,Test=function(value){this.key=value};Test.prototype.key="foo";for(var property in new Test("bar")){i++}return i>1}()){Hash.prototype._each=function(iterator){var cache=[];for(var key in this){var value=this[key];if((value&&value==Hash.prototype[key])||cache.include(key)){continue}cache.push(key);var pair=[key,value];pair.key=key;pair.value=value;iterator(pair)}}}ObjectRange=Class.create();Object.extend(ObjectRange.prototype,Enumerable);Object.extend(ObjectRange.prototype,{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(value<this.start){return false}if(this.exclusive){return value<this.end}return value<=this.end}});var $R=function(start,end,exclusive){return new ObjectRange(start,end,exclusive)
};var Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest()},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")})||false},activeRequestCount:0};Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator)},register:function(responder){if(!this.include(responder)){this.responders.push(responder)}},unregister:function(responder){this.responders=this.responders.without(responder)},dispatch:function(callback,request,transport,json){this.each(function(responder){if(typeof responder[callback]=="function"){try{responder[callback].apply(responder,[request,transport,json])}catch(e){}}})}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++},onComplete:function(){Ajax.activeRequestCount--}});Ajax.Base=function(){};Ajax.Base.prototype={setOptions:function(options){this.options={method:"post",asynchronous:true,contentType:"application/x-www-form-urlencoded",encoding:"UTF-8",parameters:""};
Object.extend(this.options,options||{});this.options.method=this.options.method.toLowerCase();if(typeof this.options.parameters=="string"){this.options.parameters=this.options.parameters.toQueryParams()}}};Ajax.Request=Class.create();Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];Ajax.Request.prototype=Object.extend(new Ajax.Base(),{_complete:false,initialize:function(url,options){this.transport=Ajax.getTransport();this.setOptions(options);this.request(url)},request:function(url){this.url=url;this.method=this.options.method;var params=Object.clone(this.options.parameters);if(!["get","post"].include(this.method)){params["_method"]=this.method;this.method="post"}this.parameters=params;if(params=Hash.toQueryString(params)){if(this.method=="get"){this.url+=(this.url.include("?")?"&":"?")+params}else{if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){params+="&_="}}}try{if(this.options.onCreate){this.options.onCreate(this.transport)}Ajax.Responders.dispatch("onCreate",this,this.transport);
this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous){setTimeout(function(){this.respondToReadyState(1)}.bind(this),10)}this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();this.body=this.method=="post"?(this.options.postBody||params):null;this.transport.send(this.body);if(!this.options.asynchronous&&this.transport.overrideMimeType){this.onStateChange()}}catch(e){this.dispatchException(e)}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1&&!((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(typeof extras.push=="function"){for(var i=0,length=extras.length;i<length;i+=2){headers[extras[i]]=extras[i+1]}}else{$H(extras).each(function(pair){headers[pair.key]=pair.value})}}$H(headers).each(function(pair){this.transport.setRequestHeader(pair.key,pair.value)}.bind(this))},success:function(){return !this.transport.status||(this.transport.status>=200&&this.transport.status<300)},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState];var transport=this.transport,json=this.evalJSON();if(state=="Complete"){try{this._complete=true;(this.options["on"+this.transport.status]||this.options["on"+(this.success()?"Success":"Failure")]||Prototype.emptyFunction)(transport,json)}catch(e){this.dispatchException(e)}var contentType=this.getHeader("Content-type");if(contentType&&this.isSameOrigin()&&contentType.strip().match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i)){this.evalResponse()
}}try{(this.options["on"+state]||Prototype.emptyFunction)(transport,json);Ajax.Responders.dispatch("on"+state,this,transport,json)}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]==new Template("#{protocol}//#{domain}#{port}").evaluate({protocol:location.protocol,domain:document.domain,port:location.port?":"+location.port:""}))},getHeader:function(name){try{return this.transport.getResponseHeader(name)}catch(e){return null}},evalJSON:function(){try{var json=this.getHeader("X-JSON");return json?json.evalJSON(!this.isSameOrigin()):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.Updater=Class.create();Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))};this.transport=Ajax.getTransport();this.setOptions(options);var onComplete=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(transport,param){this.updateContent();onComplete(transport,param)}).bind(this);this.request(url)},updateContent:function(){var receiver=this.container[this.success()?"success":"failure"];var response=this.transport.responseText;if(!this.options.evalScripts){response=response.stripScripts()}if(receiver=$(receiver)){if(this.options.insertion){new this.options.insertion(receiver,response)}else{receiver.update(response)}}if(this.success()){if(this.onComplete){setTimeout(this.onComplete.bind(this),10)}}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(container,url,options){this.setOptions(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(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText}this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000)},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<length;i++){elements.push($(arguments[i]))}return elements}if(typeof element=="string"){element=document.getElementById(element)}return Element.extend(element)
}if(Prototype.BrowserFeatures.XPath){document._getElementsByXPath=function(expression,parentElement){var results=[];var query=document.evaluate(expression,$(parentElement)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,length=query.snapshotLength;i<length;i++){results.push(query.snapshotItem(i))}return results};document.getElementsByClassName=function(className,parentElement){var q=".//*[contains(concat(' ', @class, ' '), ' "+className+" ')]";return document._getElementsByXPath(q,parentElement)}}else{document.getElementsByClassName=function(className,parentElement){var children=($(parentElement)||document.body).getElementsByTagName("*");var elements=[],child,pattern=new RegExp("(^|\\s)"+className+"(\\s|$)");for(var i=0,length=children.length;i<length;i++){child=children[i];var elementClassName=child.className;if(elementClassName.length==0){continue}if(elementClassName==className||elementClassName.match(pattern)){elements.push(Element.extend(child))}}return elements
}}if(!window.Element){var Element={}}Element.extend=function(element){var F=Prototype.BrowserFeatures;if(!element||!element.tagName||element.nodeType==3||element._extended||F.SpecificElementExtensions||element==window){return element}var methods={},tagName=element.tagName,cache=Element.extend.cache,T=Element.Methods.ByTag;if(!F.ElementExtensions){Object.extend(methods,Element.Methods),Object.extend(methods,Element.Methods.Simulated)}if(T[tagName]){Object.extend(methods,T[tagName])}for(var property in methods){var value=methods[property];if(typeof value=="function"&&!(property in element)){element[property]=cache.findOrStore(value)}}element._extended=Prototype.emptyFunction;return element};Element.extend.cache={findOrStore:function(value){return this[value]=this[value]||function(){return value.apply(null,[this].concat($A(arguments)))}}};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).style.display="none";return element},show:function(element){$(element).style.display="";return element},remove:function(element){element=$(element);element.parentNode.removeChild(element);return element},update:function(element,html){html=typeof html=="undefined"?"":html.toString();$(element).innerHTML=html.stripScripts();setTimeout(function(){html.evalScripts()},10);return element},replace:function(element,html){element=$(element);html=typeof html=="undefined"?"":html.toString();if(element.outerHTML){element.outerHTML=html.stripScripts()}else{var range=element.ownerDocument.createRange();range.selectNodeContents(element);element.parentNode.replaceChild(range.createContextualFragment(html.stripScripts()),element)}setTimeout(function(){html.evalScripts()},10);return element},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 $A($(element).getElementsByTagName("*")).each(Element.extend)},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(typeof selector=="string"){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 expression?Selector.findElement(ancestors,expression,index):ancestors[index||0]},down:function(element,expression,index){element=$(element);if(arguments.length==1){return element.firstDescendant()}var descendants=element.descendants();return expression?Selector.findElement(descendants,expression,index):descendants[index||0]},previous:function(element,expression,index){element=$(element);if(arguments.length==1){return $(Selector.handlers.previousElementSibling(element))}var previousSiblings=element.previousSiblings();return expression?Selector.findElement(previousSiblings,expression,index):previousSiblings[index||0]
},next:function(element,expression,index){element=$(element);if(arguments.length==1){return $(Selector.handlers.nextElementSibling(element))}var nextSiblings=element.nextSiblings();return expression?Selector.findElement(nextSiblings,expression,index):nextSiblings[index||0]},getElementsBySelector:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element,args)},getElementsByClassName:function(element,className){return document.getElementsByClassName(className,element)},readAttribute:function(element,name){element=$(element);if(Prototype.Browser.IE){if(!element.attributes){return null}var t=Element._attributeTranslations;if(t.values[name]){return t.values[name](element,name)}if(t.names[name]){name=t.names[name]}var attribute=element.attributes[name];return attribute?attribute.nodeValue:null}return element.getAttribute(name)},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;if(elementClassName.length==0){return false}if(elementClassName==className||elementClassName.match(new RegExp("(^|\\s)"+className+"(\\s|$)"))){return true}return false},addClassName:function(element,className){if(!(element=$(element))){return }Element.classNames(element).add(className);return element},removeClassName:function(element,className){if(!(element=$(element))){return }Element.classNames(element).remove(className);return element},toggleClassName:function(element,className){if(!(element=$(element))){return }Element.classNames(element)[element.hasClassName(className)?"remove":"add"](className);return element},observe:function(){Event.observe.apply(Event,arguments);return $A(arguments).first()},stopObserving:function(){Event.stopObserving.apply(Event,arguments);return $A(arguments).first()},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);while(element=element.parentNode){if(element==ancestor){return true}}return false},scrollTo:function(element){element=$(element);var pos=Position.cumulativeOffset(element);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){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null}if(style=="opacity"){return value?parseFloat(value):1}return value=="auto"?null:value},getOpacity:function(element){return $(element).getStyle("opacity")},setStyle:function(element,styles,camelized){element=$(element);var elementStyle=element.style;
for(var property in styles){if(property=="opacity"){element.setOpacity(styles[property])}else{elementStyle[(property=="float"||property=="cssFloat")?(elementStyle.styleFloat===undefined?"cssFloat":"styleFloat"):(camelized?property:property.camelize())]=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(window.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.style.overflow||"auto";if((Element.getStyle(element,"overflow")||"visible")!="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}};Object.extend(Element.Methods,{childOf:Element.Methods.descendantOf,childElements:Element.Methods.immediateDescendants});
if(Prototype.Browser.Opera){Element.Methods._getStyle=Element.Methods.getStyle;Element.Methods.getStyle=function(element,style){switch(style){case"left":case"top":case"right":case"bottom":if(Element._getStyle(element,"position")=="static"){return null}default:return Element._getStyle(element,style)}}}else{if(Prototype.Browser.IE){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}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){element=$(element);var filter=element.getStyle("filter"),style=element.style;
if(value==1||value===""){style.filter=filter.replace(/alpha\([^\)]*\)/gi,"");return element}else{if(value<0.00001){value=0}}style.filter=filter.replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+(value*100)+")";return element};Element.Methods.update=function(element,html){element=$(element);html=typeof html=="undefined"?"":html.toString();var tagName=element.tagName.toUpperCase();if(["THEAD","TBODY","TR","TD"].include(tagName)){var div=document.createElement("div");switch(tagName){case"THEAD":case"TBODY":div.innerHTML="<table><tbody>"+html.stripScripts()+"</tbody></table>";depth=2;break;case"TR":div.innerHTML="<table><tbody><tr>"+html.stripScripts()+"</tr></tbody></table>";depth=3;break;case"TD":div.innerHTML="<table><tbody><tr><td>"+html.stripScripts()+"</td></tr></tbody></table>";depth=4}$A(element.childNodes).each(function(node){element.removeChild(node)});depth.times(function(){div=div.firstChild});$A(div.childNodes).each(function(node){element.appendChild(node)})}else{element.innerHTML=html.stripScripts()
}setTimeout(function(){html.evalScripts()},10);return element}}else{if(Prototype.Browser.Gecko){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1)?0.999999:(value==="")?"":(value<0.00001)?0:value;return element}}}}Element._attributeTranslations={names:{colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",datetime:"dateTime",accesskey:"accessKey",tabindex:"tabIndex",enctype:"encType",maxlength:"maxLength",readonly:"readOnly",longdesc:"longDesc"},values:{_getAttr:function(element,attribute){return element.getAttribute(attribute,2)},_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null},style:function(element){return element.style.cssText.toLowerCase()},title:function(element){var node=element.getAttributeNode("title");return node.specified?node.nodeValue:null}}};(function(){Object.extend(this,{href:this._getAttr,src:this._getAttr,type:this._getAttr,disabled:this._flag,checked:this._flag,readonly:this._flag,multiple:this._flag})
}).call(Element._attributeTranslations.values);Element.Methods.Simulated={hasAttribute:function(element,attribute){var t=Element._attributeTranslations,node;attribute=t.names[attribute]||attribute;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.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(tagName.constructor==Array){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;var cache=Element.extend.cache;for(var property in methods){var value=methods[property];if(!onlyIfAbsent||!(property in destination)){destination[property]=cache.findOrStore(value)}}}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(typeof klass=="undefined"){continue}copy(T[tag],klass.prototype)}}Object.extend(Element,Element.Methods);delete Element.ByTag};var Toggle={display:Element.toggle};Abstract.Insertion=function(adjacency){this.adjacency=adjacency};Abstract.Insertion.prototype={initialize:function(element,content){this.element=$(element);this.content=content.stripScripts();if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content)
}catch(e){var tagName=this.element.tagName.toUpperCase();if(["TBODY","TR"].include(tagName)){this.insertContent(this.contentFromAnonymousTable())}else{throw e}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange){this.initializeRange()}this.insertContent([this.range.createContextualFragment(this.content)])}setTimeout(function(){content.evalScripts()},10)},contentFromAnonymousTable:function(){var div=document.createElement("div");div.innerHTML="<table><tbody>"+this.content+"</tbody></table>";return $A(div.childNodes[0].childNodes[0].childNodes)}};var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion("beforeBegin"),{initializeRange:function(){this.range.setStartBefore(this.element)},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element)}).bind(this))}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion("afterBegin"),{initializeRange:function(){this.range.selectNodeContents(this.element);
this.range.collapse(true)},insertContent:function(fragments){fragments.reverse(false).each((function(fragment){this.element.insertBefore(fragment,this.element.firstChild)}).bind(this))}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion("beforeEnd"),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element)},insertContent:function(fragments){fragments.each((function(fragment){this.element.appendChild(fragment)}).bind(this))}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion("afterEnd"),{initializeRange:function(){this.range.setStartAfter(this.element)},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element.nextSibling)}).bind(this))}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element)},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0
})._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);var Selector=Class.create();Selector.prototype={initialize:function(expression){this.expression=expression.strip();this.compileMatcher()},compileMatcher:function(){if(Prototype.BrowserFeatures.XPath&&!(/\[[\w-]*?:/).test(this.expression)){return this.compileXPathMatcher()}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(typeof c[i]=="function"?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(typeof x[i]=="function"?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;if(this.xpath){return document._getElementsByXPath(this.xpath,root)}return this.matcher(root)},match:function(element){return this.findElements(document).include(element)},toString:function(){return this.expression},inspect:function(){return"#<Selector:"+this.expression.inspect()+">"
}};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:"[@#{1}]",attr:function(m){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(typeof h==="function"){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 or translate(text(), ' \t\r\n', '') = '')]","checked":"[@checked]","disabled":"[@disabled]","enabled":"[not(@disabled)]","not":function(m){var e=m[6],p=Selector.patterns,x=Selector.xpath,le,m,v;
var exclusion=[];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in p){if(m=e.match(p[i])){v=typeof x[i]=="function"?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 = false;',attr:function(m){m[3]=(m[5]||m[6]);return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); 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]+)\]/,attr:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\]]*?)\4|([^'"][^\]]*?)))?\]/},handlers:{concat:function(a,b){for(var i=0,node;
node=b[i];i++){a.push(node)}return a},mark:function(nodes){for(var i=0,node;node=nodes[i];i++){node._counted=true}return nodes},unmark:function(nodes){for(var i=0,node;node=nodes[i];i++){node._counted=undefined}return nodes},index:function(parentNode,reverse,ofType){parentNode._counted=true;if(reverse){for(var nodes=parentNode.childNodes,i=nodes.length-1,j=1;i>=0;i--){node=nodes[i];if(node.nodeType==1&&(!ofType||node._counted)){node.nodeIndex=j++}}}else{for(var i=0,j=1,nodes=parentNode.childNodes;node=nodes[i];i++){if(node.nodeType==1&&(!ofType||node._counted)){node.nodeIndex=j++}}}},unique:function(nodes){if(nodes.length==0){return nodes}var results=[],n;for(var i=0,l=nodes.length;i<l;i++){if(!(n=nodes[i])._counted){n._counted=true;results.push(Element.extend(n))}}return Selector.handlers.unmark(results)},descendant:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++){h.concat(results,node.getElementsByTagName("*"))}return results},child:function(nodes){var h=Selector.handlers;
for(var i=0,results=[],node;node=nodes[i];i++){for(var j=0,children=[],child;child=node.childNodes[j];j++){if(child.nodeType==1&&child.tagName!="!"){results.push(child)}}}return results},adjacent:function(nodes){for(var i=0,results=[],node;node=nodes[i];i++){var next=this.nextElementSibling(node);if(next){results.push(next)}}return results},laterSibling:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++){h.concat(results,Element.nextSiblings(node))}return results},nextElementSibling:function(node){while(node=node.nextSibling){if(node.nodeType==1){return node}}return null},previousElementSibling:function(node){while(node=node.previousSibling){if(node.nodeType==1){return node}}return null},tagName:function(nodes,root,tagName,combinator){tagName=tagName.toUpperCase();var results=[],h=Selector.handlers;if(nodes){if(combinator){if(combinator=="descendant"){for(var i=0,node;node=nodes[i];i++){h.concat(results,node.getElementsByTagName(tagName))}return results
}else{nodes=this[combinator](nodes)}if(tagName=="*"){return nodes}}for(var i=0,node;node=nodes[i];i++){if(node.tagName.toUpperCase()==tagName){results.push(node)}}return results}else{return root.getElementsByTagName(tagName)}},id:function(nodes,root,id,combinator){var targetNode=$(id),h=Selector.handlers;if(!nodes&&root==document){return targetNode?[targetNode]:[]}if(nodes){if(combinator){if(combinator=="child"){for(var i=0,node;node=nodes[i];i++){if(targetNode.parentNode==node){return[targetNode]}}}else{if(combinator=="descendant"){for(var i=0,node;node=nodes[i];i++){if(Element.descendantOf(targetNode,node)){return[targetNode]}}}else{if(combinator=="adjacent"){for(var i=0,node;node=nodes[i];i++){if(Selector.handlers.previousElementSibling(targetNode)==node){return[targetNode]}}}else{nodes=h[combinator](nodes)}}}}for(var i=0,node;node=nodes[i];i++){if(node==targetNode){return[targetNode]}}return[]}return(targetNode&&Element.descendantOf(targetNode,root))?[targetNode]:[]},className:function(nodes,root,className,combinator){if(nodes&&combinator){nodes=this[combinator](nodes)
}return Selector.handlers.byClassName(nodes,root,className)},byClassName:function(nodes,root,className){if(!nodes){nodes=Selector.handlers.descendant([root])}var needle=" "+className+" ";for(var i=0,results=[],node,nodeClassName;node=nodes[i];i++){nodeClassName=node.className;if(nodeClassName.length==0){continue}if(nodeClassName==className||(" "+nodeClassName+" ").include(needle)){results.push(node)}}return results},attrPresence:function(nodes,root,attr){var results=[];for(var i=0,node;node=nodes[i];i++){if(Element.hasAttribute(node,attr)){results.push(node)}}return results},attr:function(nodes,root,attr,value,operator){if(!nodes){nodes=root.getElementsByTagName("*")}var handler=Selector.operators[operator],results=[];for(var i=0,node;node=nodes[i];i++){var nodeValue=Element.readAttribute(node,attr);if(nodeValue===null){continue}if(handler(nodeValue,value)){results.push(node)}}return results},pseudo:function(nodes,name,value,root,combinator){if(nodes&&combinator){nodes=this[combinator](nodes)
}if(!nodes){nodes=root.getElementsByTagName("*")}return Selector.pseudos[name](nodes,value,root)}},pseudos:{"first-child":function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.previousElementSibling(node)){continue}results.push(node)}return results},"last-child":function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.nextElementSibling(node)){continue}results.push(node)}return results},"only-child":function(nodes,value,root){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++){if(!h.previousElementSibling(node)&&!h.nextElementSibling(node)){results.push(node)}}return results},"nth-child":function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root)},"nth-last-child":function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true)},"nth-of-type":function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,false,true)},"nth-last-of-type":function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true,true)
},"first-of-type":function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,false,true)},"last-of-type":function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,true,true)},"only-of-type":function(nodes,formula,root){var p=Selector.pseudos;return p["last-of-type"](p["first-of-type"](nodes,formula,root),formula,root)},getIndices:function(a,b,total){if(a==0){return b>0?[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._counted){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<l;j++){if(node.nodeIndex==indices[j]){results.push(node)}}}}}h.unmark(nodes);h.unmark(indexed);return results},"empty":function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(node.tagName=="!"||(node.firstChild&&!node.innerHTML.match(/^\s*$/))){continue}results.push(node)}return results},"not":function(nodes,selector,root){var h=Selector.handlers,selectorType,m;var exclusions=new Selector(selector).findElements(root);h.mark(exclusions);for(var i=0,results=[],node;node=nodes[i];i++){if(!node._counted){results.push(node)}}h.unmark(exclusions);return results},"enabled":function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(!node.disabled){results.push(node)}}return results},"disabled":function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(node.disabled){results.push(node)
}}return results},"checked":function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(node.checked){results.push(node)}}return results}},operators:{"=":function(nv,v){return nv==v},"!=":function(nv,v){return nv!=v},"^=":function(nv,v){return nv.startsWith(v)},"$=":function(nv,v){return nv.endsWith(v)},"*=":function(nv,v){return nv.include(v)},"~=":function(nv,v){return(" "+nv+" ").include(" "+v+" ")},"|=":function(nv,v){return("-"+nv.toUpperCase()+"-").include("-"+v.toUpperCase()+"-")}},matchElements:function(elements,expression){var matches=new Selector(expression).findElements(),h=Selector.handlers;h.mark(matches);for(var i=0,results=[],element;element=elements[i];i++){if(element._counted){results.push(element)}}h.unmark(matches);return results},findElement:function(elements,expression,index){if(typeof expression=="number"){index=expression;expression=false}return Selector.matchElements(elements,expression||"*")[index||0]},findChildElements:function(element,expressions){var exprs=expressions.join(","),expressions=[];
exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){expressions.push(m[1].strip())});var results=[],h=Selector.handlers;for(var i=0,l=expressions.length,selector;i<l;i++){selector=new Selector(expressions[i].strip());h.concat(results,selector.findElements(element))}return(l>1)?h.unique(results):results}});function $$(){return Selector.findChildElements(document,$A(arguments))}var Form={reset:function(form){$(form).reset();return form},serializeElements:function(elements,getHash){var data=elements.inject({},function(result,element){if(!element.disabled&&element.name){var key=element.name,value=$(element).getValue();if(value!=null){if(key in result){if(result[key].constructor!=Array){result[key]=[result[key]]}result[key].push(value)}else{result[key]=value}}}return result});return getHash?data:Hash.toQueryString(data)}};Form.Methods={serialize:function(form,getHash){return Form.serializeElements(Form.getElements(form),getHash)},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<length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name)){continue}matchingInputs.push(Element.extend(input))}return matchingInputs},disable:function(form){form=$(form);Form.getElements(form).invoke("disable");return form},enable:function(form){form=$(form);Form.getElements(form).invoke("enable");return form},findFirstElement:function(form){return $(form).getElements().find(function(element){return element.type!="hidden"&&!element.disabled&&["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;options.parameters=form.serialize(true);
if(params){if(typeof params=="string"){params=params.toQueryParams()}Object.extend(options.parameters,params)}if(form.hasAttribute("method")&&!options.method){options.method=form.method}return new Ajax.Request(form.readAttribute("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 Hash.toQueryString(pair)}}return""},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();return Form.Element.Serializers[method](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.blur();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){switch(element.type.toLowerCase()){case"checkbox":case"radio":return Form.Element.Serializers.inputSelector(element);default:return Form.Element.Serializers.textarea(element)}},inputSelector:function(element){return element.checked?element.value:null},textarea:function(element){return element.value},select:function(element){return this[element.type=="select-one"?"selectOne":"selectMany"](element)},selectOne:function(element){var index=element.selectedIndex;return index>=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<length;i++){var opt=element.options[i];if(opt.selected){values.push(this.optionValue(opt))
}}return values},optionValue:function(opt){return Element.extend(opt).hasAttribute("value")?opt.value:opt.text}};Abstract.TimedObserver=function(){};Abstract.TimedObserver.prototype={initialize:function(element,frequency,callback){this.frequency=frequency;this.element=$(element);this.callback=callback;this.lastValue=this.getValue();this.registerCallback()},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000)},onTimerEvent:function(){var value=this.getValue();var changed=("string"==typeof this.lastValue&&"string"==typeof value?this.lastValue!=value:String(this.lastValue)!=String(value));if(changed){this.callback(this.element,value);this.lastValue=value}}};Form.Element.Observer=Class.create();Form.Element.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.Element.getValue(this.element)}});Form.Observer=Class.create();Form.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.serialize(this.element)
}});Abstract.EventObserver=function(){};Abstract.EventObserver.prototype={initialize:function(element,callback){this.element=$(element);this.callback=callback;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=="form"){this.registerFormCallbacks()}else{this.registerCallback(this.element)}},onElementEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value}},registerFormCallbacks:function(){Form.getElements(this.element).each(this.registerCallback.bind(this))},registerCallback:function(element){if(element.type){switch(element.type.toLowerCase()){case"checkbox":case"radio":Event.observe(element,"click",this.onElementEvent.bind(this));break;default:Event.observe(element,"change",this.onElementEvent.bind(this));break}}}};Form.Element.EventObserver=Class.create();Form.Element.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.Element.getValue(this.element)}});Form.EventObserver=Class.create();
Form.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.serialize(this.element)}});if(!window.Event){var Event=new Object()}Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,element:function(event){return $(event.target||event.srcElement)},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)))},pointerX:function(event){return event.pageX||(event.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft))},pointerY:function(event){return event.pageY||(event.clientY+(document.documentElement.scrollTop||document.body.scrollTop))},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation()}else{event.returnValue=false;event.cancelBubble=true}},findElement:function(event,tagName){var element=Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase()))){element=element.parentNode
}return element},observers:false,_observeAndCache:function(element,name,observer,useCapture){if(!this.observers){this.observers=[]}if(element.addEventListener){this.observers.push([element,name,observer,useCapture]);element.addEventListener(name,observer,useCapture)}else{if(element.attachEvent){this.observers.push([element,name,observer,useCapture]);element.attachEvent("on"+name,observer)}}},unloadCache:function(){if(!Event.observers){return }for(var i=0,length=Event.observers.length;i<length;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null}Event.observers=false},observe:function(element,name,observer,useCapture){element=$(element);useCapture=useCapture||false;if(name=="keypress"&&(Prototype.Browser.WebKit||element.attachEvent)){name="keydown"}Event._observeAndCache(element,name,observer,useCapture)},stopObserving:function(element,name,observer,useCapture){element=$(element);useCapture=useCapture||false;if(name=="keypress"&&(Prototype.Browser.WebKit||element.attachEvent)){name="keydown"
}if(element.removeEventListener){element.removeEventListener(name,observer,useCapture)}else{if(element.detachEvent){try{element.detachEvent("on"+name,observer)}catch(e){}}}}});if(Prototype.Browser.IE){Event.observe(window,"unload",Event.unloadCache,false)}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},realOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode}while(element);return[valueL,valueT]},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent}while(element);return[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=="BODY"){break}var p=Element.getStyle(element,"position");if(p=="relative"||p=="absolute"){break}}}while(element);return[valueL,valueT]},offsetParent: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},within:function(element,x,y){if(this.includeScrollOffsets){return this.withinIncludingScrolloffsets(element,x,y)}this.xcomp=x;this.ycomp=y;this.offset=this.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth)},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=this.realOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=this.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth)
},overlap:function(mode,element){if(!mode){return 0}if(mode=="vertical"){return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight}if(mode=="horizontal"){return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth}},page:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body){if(Element.getStyle(element,"position")=="absolute"){break}}}while(element=element.offsetParent);element=forElement;do{if(!window.opera||element.tagName=="BODY"){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0}}while(element=element.parentNode);return[valueL,valueT]},clone:function(source,target){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});source=$(source);var p=Position.page(source);target=$(target);var delta=[0,0];var parent=null;if(Element.getStyle(target,"position")=="absolute"){parent=Position.offsetParent(target);
delta=Position.page(parent)}if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop}if(options.setLeft){target.style.left=(p[0]-delta[0]+options.offsetLeft)+"px"}if(options.setTop){target.style.top=(p[1]-delta[1]+options.offsetTop)+"px"}if(options.setWidth){target.style.width=source.offsetWidth+"px"}if(options.setHeight){target.style.height=source.offsetHeight+"px"}},absolutize:function(element){element=$(element);if(element.style.position=="absolute"){return }Position.prepare();var offsets=Position.positionedOffset(element);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"
},relativize:function(element){element=$(element);if(element.style.position=="relative"){return }Position.prepare();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}};if(Prototype.Browser.WebKit){Position.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[valueL,valueT]}}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){}};Array.prototype.call=function(){var args=arguments;this.each(function(f){f.apply(this,args)})};var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},tagifyText:function(element){if(typeof Builder=="undefined"){throw ("Effect.tagifyText requires including script.aculo.us' builder.js library")}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(Builder.node("span",{style:tagifyStyle},character==" "?String.fromCharCode(160):character),child)});Element.remove(child)}})},multiple:function(element,effect){var elements;if(((typeof element=="object")||(typeof element=="function"))&&(element.length)){elements=element
}else{elements=$(element).childNodes}var options=Object.extend({speed:0.1,delay: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)}};var Effect2=Effect;Effect.Transitions={linear:Prototype.K,sinoidal:function(pos){return(-Math.cos(pos*Math.PI)/2)+0.5},reverse:function(pos){return 1-pos},flicker:function(pos){var pos=((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;return(pos>1?1:pos)},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+0.5},pulse:function(pos,pulses){pulses=pulses||5;
return(Math.round((pos%(1/pulses))*pulses)==0?((pos*pulses*2)-Math.floor(pos*pulses*2)):1-((pos*pulses*2)-Math.floor(pos*pulses*2)))},none:function(pos){return 0},full:function(pos){return 1}};Effect.ScopedQueue=Class.create();Object.extend(Object.extend(Effect.ScopedQueue.prototype,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=(typeof effect.options.queue=="string")?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<effect.options.queue.limit)){this.effects.push(effect)
}if(!this.interval){this.interval=setInterval(this.loop.bind(this),15)}},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null}},loop:function(){var timePos=new Date().getTime();for(var i=0,len=this.effects.length;i<len;i++){this.effects[i]&&this.effects[i].loop(timePos)}}});Effect.Queues={instances:$H(),get:function(queueName){if(typeof queueName!="string"){return queueName}if(!this.instances[queueName]){this.instances[queueName]=new Effect.ScopedQueue()}return this.instances[queueName]}};Effect.Queue=Effect.Queues.get("global");Effect.DefaultOptions={transition:Effect.Transitions.sinoidal,duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"};Effect.Base=function(){};Effect.Base.prototype={position:null,start:function(options){function codeForEvent(options,eventName){return((options[eventName+"Internal"]?"this.options."+eventName+"Internal(this);":"")+(options[eventName]?"this.options."+eventName+"(this);":""))
}if(options.transition===false){options.transition=Effect.Transitions.linear}this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;eval('this.render = function(pos){ if(this.state=="idle"){this.state="running";'+codeForEvent(options,"beforeSetup")+(this.setup?"this.setup();":"")+codeForEvent(options,"afterSetup")+'};if(this.state=="running"){pos=this.options.transition(pos)*'+this.fromToDelta+"+"+this.options.from+";this.position=pos;"+codeForEvent(options,"beforeUpdate")+(this.update?"this.update(pos);":"")+codeForEvent(options,"afterUpdate")+"}}");this.event("beforeStart");if(!this.options.sync){Effect.Queues.get(typeof this.options.queue=="string"?"global":this.options.queue.scope).add(this)
}},loop:function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");if(this.finish){this.finish()}this.event("afterFinish");return }var pos=(timePos-this.startOn)/this.totalTime,frame=Math.round(pos*this.totalFrames);if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame}}},cancel:function(){if(!this.options.sync){Effect.Queues.get(typeof this.options.queue=="string"?"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(typeof this[property]!="function"){data[property]=this[property]}}return"#<Effect:"+data.inspect()+",options:"+$H(this.options).inspect()+">"}};Effect.Parallel=Class.create();Object.extend(Object.extend(Effect.Parallel.prototype,Effect.Base.prototype),{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);effect.cancel();effect.event("beforeFinish");if(effect.finish){effect.finish(position)}effect.event("afterFinish")})}});Effect.Event=Class.create();Object.extend(Object.extend(Effect.Event.prototype,Effect.Base.prototype),{initialize:function(){var options=Object.extend({duration:0},arguments[0]||{});this.start(options)},update:Prototype.emptyFunction});Effect.Opacity=Class.create();Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{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,to:1},arguments[1]||{});this.start(options)},update:function(position){this.element.setOpacity(position)
}});Effect.Move=Class.create();Object.extend(Object.extend(Effect.Move.prototype,Effect.Base.prototype),{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:Math.round(this.options.x*position+this.originalLeft)+"px",top:Math.round(this.options.y*position+this.originalTop)+"px"})}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}))};Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{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,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)+(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=Math.round(width)+"px"}if(this.options.scaleY){d.height=Math.round(height)+"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();Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{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+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart())}.bind(this))})},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});Effect.ScrollTo=Class.create();Object.extend(Object.extend(Effect.ScrollTo.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);this.start(arguments[1]||{})},setup:function(){Position.prepare();var offsets=Position.cumulativeOffset(this.element);if(this.options.offset){offsets[1]+=this.options.offset}var max=window.innerHeight?window.height-window.innerHeight:document.body.scrollHeight-(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight);this.scrollStart=Position.deltaY;this.delta=(offsets[1]>max?max:offsets[1])-this.scrollStart},update:function(position){Position.prepare();window.scrollTo(Position.deltaX,this.scrollStart+(position*this.delta))
}});Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1,to: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:element.getOpacity()||0),to:1,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})],Object.extend({duration:1,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})],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 oldStyle={top:element.getStyle("top"),left:element.getStyle("left")};return new Effect.Move(element,{x:20,y:0,duration:0.05,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-20,y:0,duration:0.05,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");return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal: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().setStyle({bottom:oldInnerBottom});effect.element.down().undoPositioned()}},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,from: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,from:1,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]||{};var oldOpacity=element.getInlineOpacity();
var transition=options.transition||Effect.Transitions.sinoidal;var reverser=function(pos){return transition(1-Effect.Transitions.pulse(pos,options.pulses))};reverser.bind(transition);return new Effect.Opacity(element,Object.extend(Object.extend({duration:2,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();Object.extend(Object.extend(Effect.Morph.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);
if(!this.element){throw (Effect._elementDoesNotExistError)}var options=Object.extend({style:{}},arguments[1]||{});if(typeof options.style=="string"){if(options.style.indexOf(":")==-1){var cssText="",selector="."+options.style;$A(document.styleSheets).reverse().each(function(styleSheet){if(styleSheet.cssRules){cssRules=styleSheet.cssRules}else{if(styleSheet.rules){cssRules=styleSheet.rules}}$A(cssRules).reverse().each(function(rule){if(selector==rule.selectorText){cssText=rule.style.cssText;throw $break}});if(cssText){throw $break}});this.style=cssText.parseStyle();options.afterFinishInternal=function(effect){effect.element.addClassName(effect.options.style);effect.transforms.each(function(transform){if(transform.style!="opacity"){effect.element.style[transform.style]=""}})}}else{this.style=options.style.parseStyle()}}else{this.style=$H(options.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+Math.round(((transform.targetValue-transform.originalValue)*position)*1000)/1000+transform.unit}this.element.setStyle(style,true)}});Effect.Transform=Class.create();Object.extend(Effect.Transform.prototype,{initialize:function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks)},addTracks:function(tracks){tracks.each(function(track){var data=$H(track).values().first();this.tracks.push($H({ids:$H(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 elements=[$(track.ids)||$$(track.ids)].flatten();return elements.map(function(e){return new track.effect(e,Object.extend({sync:true},track.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.prototype.parseStyle=function(){var element=document.createElement("div");
element.innerHTML='<div style="'+this+'"></div>';var style=element.childNodes[0].style,styleRules=$H();Element.CSS_PROPERTIES.each(function(property){if(style[property]){styleRules[property]=style[property]}});if(Prototype.Browser.IE&&this.indexOf("opacity")>-1){styleRules.opacity=this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]}return styleRules};Element.morph=function(element,style){new Effect.Morph(element,Object.extend({style:style},arguments[2]||{}));return element};["getInlineOpacity","forceRerendering","setContentZoom","collectTextNodes","collectTextNodesIgnoreClass","morph"].each(function(f){Element.Methods[f]=Element[f]});Element.Methods.visualEffect=function(element,effect,options){s=effect.dasherize().camelize();effect_class=s.charAt(0).toUpperCase()+s.substring(1);new Effect[effect_class](element,options);return $(element)};Element.addMethods();if(typeof Effect=="undefined"){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((typeof containment=="object")&&(containment.constructor==Array)){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;i<drops.length;++i){if(Element.isParent(drops[i].element,deepest.element)){deepest=drops[i]}}return deepest},isContained:function(element,drop){var containmentNode;if(drop.tree){containmentNode=element.treeNode}else{containmentNode=element.parentNode}return drop._containers.detect(function(c){return containmentNode==c})},isAffected:function(point,element,drop){return((drop.element!=element)&&((!drop._containers)||this.isContained(element,drop))&&((!drop.accept)||(Element.classNames(element).detect(function(v){return drop.accept.include(v)
})))&&Position.within(drop.element,point[0],point[1]))},deactivate:function(drop){if(drop.hoverclass){Element.removeClassName(drop.element,drop.hoverclass)}this.last_active=null},activate:function(drop){if(drop.hoverclass){Element.addClassName(drop.element,drop.hoverclass)}this.last_active=drop},show:function(point,element){if(!this.drops.length){return }var affected=[];if(this.last_active){this.deactivate(this.last_active)}this.drops.each(function(drop){if(Droppables.isAffected(point,element,drop)){affected.push(drop)}});if(affected.length>0){drop=Droppables.findDeepestChild(affected);Position.within(drop.element,point[0],point[1]);if(drop.onHover){drop.onHover(element,drop.element,Position.overlap(drop.overlap,drop.element))}Droppables.activate(drop)}},fire:function(event,element){if(!this.last_active){return }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();Draggable._revertCache={};Draggable._dragging={};Draggable.prototype={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;element._revert=new Effect.Move(element,{x:-left_offset,y:-top_offset,duration:dur});Draggable._revertCache[element]=new Effect.Move(element,{x:-left_offset,y:-top_offset,duration:dur})},endeffect:function(element){var toOpacity=typeof element._opacity=="number"?element._opacity:1;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]||typeof arguments[1].endeffect=="undefined"){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&&(typeof options.handle=="string")){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.delta=this.currentDelta();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(typeof Draggable._dragging[this.element]!="undefined"&&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 }if(this.element._revert){this.element._revert.cancel();this.element._revert=null;if(Draggable._revertCache[this.element]){Draggable._revertCache[this.element].cancel();Draggable._revertCache[this.element]=null}}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.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);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){var pointer=[Event.pointerX(event),Event.pointerY(event)];Droppables.show(pointer,this.element)}if(this.options.ghosting){Position.relativize(this.element);Element.remove(this._clone);this._clone=null}var dropped=false;if(success){dropped=Droppables.fire(event,this.element);if(!dropped){dropped=false}}var el,elementX,elementY,screenW,screenH,centerX,centerY,offsetX,offsetY;var offscreen=false;elementX=this.element.offsetLeft;elementY=this.element.offsetTop;if(dropped&&this.options.onDropped){this.options.onDropped(this.element)}Draggables.notify("onEnd",this,event);var revert=this.options.revert;if(revert&&typeof revert=="function"){revert=revert(this.element)}var d=this.currentDelta();if(!revert&&elementX<-100){revert=true}if(revert&&this.options.reverteffect){if(dropped==0||revert!="failure"){el=this.element;while(el=el.offsetParent){elementX+=el.offsetLeft;elementY+=el.offsetTop}screenW=(self.innerWidth||document.documentElement.clientWidth);screenH=(self.innerHeight||document.documentElement.clientHeight);
elementW=parseInt(this.element.offsetWidth);elementH=parseInt(this.element.offsetHeight);centerX=parseInt((screenW-elementW)/2);centerY=parseInt((screenH-elementH)/2);offsetX=elementX-centerX;offsetY=elementY-centerY;this.options.reverteffect(this.element,offsetY,offsetX)}}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(typeof this.options.snap=="function"){p=this.options.snap(p[0],p[1],this)}else{if(this.options.snap instanceof Array){p=p.map(function(v,i){return Math.round(v/this.options.snap[i])*this.options.snap[i]}.bind(this))}else{p=p.map(function(v){return Math.round(v/this.options.snap)*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}}};var SortableObserver=Class.create();SortableObserver.prototype={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){var s=Sortable.options(element);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,revert:true,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(element);var options_for_draggable={revert:function(element){element.style.top=0;element.style.left=0},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)}(this.findElements(element,options)||[]).each(function(e){var handle=options.handle?$(e).down("."+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>0.33&&overlap<0.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-overlap);for(index=0;index<children.length;index+=1){if(offset-Element.offsetSize(children[index],droponOptions.overlap)>=0){offset-=Element.offsetSize(children[index],droponOptions.overlap)
}else{if(offset-(Element.offsetSize(children[index],droponOptions.overlap)/2)>=0){child=index+1<children.length?children[index+1]:null;break}else{child=children[index];break}}}}dropon.insertBefore(element,child);Sortable.options(oldParentNode).onChange(element);droponOptions.onChange(element)}},unmark:function(){if(Sortable._marker){Sortable._marker.hide()}},mark:function(dropon,position){var sortable=Sortable.options(dropon.parentNode);if(sortable&&!sortable.ghosting){return }if(!Sortable._marker){Sortable._marker=($("dropmarker")||Element.extend(document.createElement("DIV"))).hide().addClassName("dropmarker").setStyle({position:"absolute"});document.getElementsByTagName("body").item(0).appendChild(Sortable._marker)}var offsets=Position.cumulativeOffset(dropon);Sortable._marker.setStyle({left:offsets[0]+"px",top:offsets[1]+"px"});if(position=="after"){if(sortable.overlap=="horizontal"){Sortable._marker.setStyle({left:(offsets[0]+dropon.clientWidth)+"px"})}else{Sortable._marker.setStyle({top:(offsets[1]+dropon.clientHeight)+"px"})
}}Sortable._marker.show()},_tree:function(element,options,parent){var children=Sortable.findElements(element,options)||[];for(var i=0;i<children.length;++i){var match=children[i].id.match(options.format);if(!match){continue}var child={id:encodeURIComponent(match?match[1]:null),element:element,parent:parent,children:[],position:parent.children.length,container:$(children[i]).down(options.treeTag)};if(child.container){this._tree(child.container,options,child)}parent.children.push(child)}return parent},tree:function(element){element=$(element);var sortableOptions=this.options(element);var options=Object.extend({tag:sortableOptions.tag,treeTag:sortableOptions.treeTag,only:sortableOptions.only,name:element.id,format:sortableOptions.format},arguments[1]||{});var root={id:null,parent:null,children:[],container:element,position:0};return Sortable._tree(element,options,root)},_constructIndex:function(node){var index="";do{if(node.id){index="["+node.position+"]"+index}}while((node=node.parent)!=null);
return index},sequence:function(element){element=$(element);var options=Object.extend(this.options(element),arguments[1]||{});return $(this.findElements(element,options)||[]).map(function(item){return item.id.match(options.format)?item.id.match(options.format)[1]:""})},setSequence:function(element,new_sequence){element=$(element);var options=Object.extend(this.options(element),arguments[2]||{});var nodeMap={};this.findElements(element,options).each(function(n){if(n.id.match(options.format)){nodeMap[n.id.match(options.format)[1]]=[n,n.parentNode]}n.parentNode.removeChild(n)});new_sequence.each(function(ident){var n=nodeMap[ident];if(n){n[1].appendChild(n[0]);delete nodeMap[ident]}})},serialize:function(element){element=$(element);var options=Object.extend(Sortable.options(element),arguments[1]||{});var name=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:element.id);if(options.tree){return Sortable.tree(element,arguments[1]).children.map(function(item){return[name+Sortable._constructIndex(item)+"[id]="+encodeURIComponent(item.id)].concat(item.children.map(arguments.callee))
}).flatten().join("&")}else{return Sortable.sequence(element,arguments[1]).map(function(item){return name+"[]="+encodeURIComponent(item)}).join("&")}}};Element.isParent=function(child,element){if(!child.parentNode||child==element){return false}if(child.parentNode==element){return true}return Element.isParent(child.parentNode,element)};Element.findChildren=function(element,only,recursive,tagName){if(!element.hasChildNodes()){return null}tagName=tagName.toUpperCase();if(only){only=[only].flatten()}var elements=[];$A(element.childNodes).each(function(e){if(e.tagName&&e.tagName.toUpperCase()==tagName&&(!only||(Element.classNames(e).detect(function(v){return only.include(v)})))){elements.push(e)}if(recursive){var grandchildren=Element.findChildren(e,only,recursive,tagName);if(grandchildren){elements.push(grandchildren)}}});return(elements.length>0?elements.flatten():[])};Element.offsetSize=function(element,type){return element["offset"+((type=="vertical"||type=="height")?"Height":"Width")]};
$T=function(){var functions={isNull:function(object){return object===null},isReal:function(object){return !$T.isUndefined(object)&&!$T.isNull(object)},isSimple:function(object){return $T.isNumber(object)||$T.isString(object)},isArray:function(object){return $T.isReal(object)&&$T.isFunction(object.sort)},isNode:function(object){return $T.isReal(object)&&!$T.isUndefined(object.nodeName)}};$w("String Number Object Undefined Function Boolean").each(function(type){functions["is"+type]=function(object){return typeof object===type.toLowerCase()}});return functions}();Object.extend(Object,{toXML:function(object,elName){var type=typeof object;var children=[];var attrs=[];switch(type){case"undefined":case"function":case"unknown":return ;case"boolean":case"string":case"number":children.push(object.toString().escapeXML());elName=elName||type;break;case"object":if(object===null||object.ownerDocument===document){return }if($T.isArray(object)){object.each(function(arrayItem){children.push(Object.toXML(arrayItem,null))
})}else{for(var property in object){if(property.startsWith("@")){attrs.push(" "+property.substring(1)+'="'+object[property].escapeXML()+'"')}else{if(property.startsWith("textNode")){children.push(object[property].escapeXML())}else{children.push(Object.toXML(object[property],property))}}}}break}if(elName){if(children.length===0){return"<"+elName+attrs.join("")+"/>"}else{return"<"+elName+attrs.join("")+">"+children.join("")+"</"+elName+">"}}else{return children.join("")}}});Object.extend(Number,{fromHexString:function(string){var value=0;for(i=0;i<string.length;i++){value=(value*16)+"0123456789ABCDEF".indexOf(string.substr(i,1).toUpperCase())}return value},toHexString:function(value){var string="";return 0}});String.prototype._split=String.prototype.split;Object.extend(String.prototype,{empty:function(){return this===""},autoCast:function(){var s=this+"";if(s===""){return""}else{if(s==="true"){return true}else{if(s==="false"){return false}else{if(!isNaN(s*1)){return s*1}else{var matches=s.match(/%[0-9A-F]{2}/g);
if(!matches){return s}return s.split(/%[0-9A-F]{2}/).collect(function(text,i){return text+(matches[i]?unescape(matches[i]):"")}).join("")}}}}},substringAfter:function(c){var pos=this.indexOf(c);if(pos!=-1){return this.substring(pos+c.length,this.length)}return""},substringBefore:function(c){var pos=this.indexOf(c);if(pos!=-1){return this.substring(0,pos)}return""},updateQueryString:function(params){var parts=this.split(/[#?]/);if(this.include("?")){parts[1]=Hash.toQueryString(Object.extend(parts[1].toQueryParams(),params));parts[2]=parts[2]||""}else{parts[2]=parts[1]||"";parts[1]=Hash.toQueryString(params);parts[0]=parts[0]||""}if(parts[1]!==""){parts[1]="?"+parts[1]}if(parts[2]!==""){parts[2]="#"+parts[2]}var url=parts[0]+parts[1]+parts[2];return(url==="")?"#":url},escapeXML:function(){return this.escapeHTML().replace(/"/g,"&quot;").replace(/'/g,"&apos;")},trim:function(){return this.replace(/^\s*|\s*$/g,"")},normalize_space:function(){return this.replace(/^\s*|\s(?=\s)|\s*$/g,"")},split:function(s,limit){var flags,match,s2,output=[],lastLastIndex=0,i=0;
if(s instanceof RegExp){flags=(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiline?"m":"");if(!s.global){s=new RegExp(s.source,"g"+flags)}}else{return this._split.apply(this,arguments)}if(limit===undefined||+limit<0){limit=false}else{limit=Math.floor(+limit);if(!limit){return[]}}s2=new RegExp("^"+s.source+"$",flags);while((!limit||i++<=limit)&&(match=s.exec(this))){var zeroLengthMatch=!match[0].length;if(zeroLengthMatch&&s.lastIndex>match.index){s.lastIndex=match.index}if(s.lastIndex>lastLastIndex){if(match.length>1){match[0].replace(s2,function(){for(var j=1;j<arguments.length-2;j++){if(arguments[j]===undefined){match[j]=undefined}}})}output=output.concat(this.substring(lastLastIndex,match.index),(match.index===this.length?[]:match.slice(1)));lastLastIndex=s.lastIndex}if(zeroLengthMatch){s.lastIndex++}}return(lastLastIndex===this.length)?(s.test("")?output:output.concat("")):(limit?output:output.concat(this.substring(lastLastIndex)))}});Object.extend(Event,{_observeAndCache:function(el,name,observer,useCapture){var cache=[el,name,observer,useCapture];
if(el.addEventListener||el.attachEvent){if(!this.observers){this.observers=[]}this.observers.push(cache);if(!el._observers){el._observers=[]}el._observers.push(cache);if(el.addEventListener){el.addEventListener(name,observer,useCapture)}else{if(el.attachEvent){el.attachEvent("on"+name,observer)}}}},unloadElementCache:function(el){var i,length;el=$(el);if(el._observers){for(i=0,length=el._observers.length;i<length;i++){if(el._observers[i][0]!==null){Event.stopObserving.apply(this,el._observers[i]);el._observers[i][0]=null}}el._observers=null}}});Element.PurgingFunction=[Event.unloadElementCache];Element.PurgingElements=[];Element.addMethods({superclass:Object.extend({},Element.Methods),queuePurgingFunction:function(el,missSelf){if(!el.hasClassName("noEvent")){if(!missSelf){Element.PurgingElements.push(el)}if(el.getElementsByTagName){var els=el.getElementsByTagName("*");for(var i=0,len=els.length;i<len;i++){if(els[i]._observers){Element.PurgingElements.push(els[i])}}}setTimeout(Element.runPurgingFunction,100)
}},runPurgingFunction:function(){while(Element.PurgingElements.length>0){var els=Element.PurgingElements.shift();els=(els.nodeType)?[els]:els;for(var j=0,elsLength=els.length;j<elsLength;j++){for(var i=0,functionLength=Element.PurgingFunction.length;i<functionLength;i++){Element.PurgingFunction[i](els[j])}}}Event.observers=Event.observers.collect(function(cache){return(cache[0]!==null)?cache:null}).compact()},remove:function(el){Element.queuePurgingFunction(el);return Element.superclass.remove(el)},replace:function(el,html){Element.queuePurgingFunction(el);if(html.nodeName){return el.parentNode.replaceChild(html,el)}else{return Element.superclass.replace(el,html)}},update:function(el,html){Element.queuePurgingFunction(el,true);return Element.superclass.update(el,html)},innerString:function(el){if(!el||$T.isString(el)){return el}if(el.innerText){return el.innerText}var str="";var cs=el.childNodes;var l=cs.length;for(var i=0;i<l;i++){switch(cs[i].nodeType){case 1:str+=Element.innerString(cs[i]);
break;case 3:str+=cs[i].nodeValue;break}}return str},insertAfter:function(el,newElement,relativeElement){if(relativeElement.parentNode!=el){return }if(relativeElement.nextSibling){el.insertBefore(newElement,relativeElement.nextSibling)}else{el.appendChild(newElement)}},up:function(element,expression,index){element=$(element);if(arguments.length==1){return $(element.parentNode)}var ancestors=element.ancestors();if(arguments.length==2&&expression.match(/^[a-z]*.[\w-_]+$/)){var tagName=expression.toString().split(".")[0]||"";var clsName=expression.toString().split(".")[1]||"";for(var i=0;i<ancestors.length;i++){if((tagName=="")||(tagName!=""&&ancestors[i].nodeName.toLowerCase()==tagName)){if((clsName=="")||(clsName!=""&&ancestors[i].hasClassName(clsName))){return ancestors[i]}}}}return expression?Selector.findElement(ancestors,expression,index):ancestors[index||0]},down:function(element,expression,index){element=$(element);if(arguments.length==1){return element.firstDescendant()}return element.getElementsBySelector(expression)[index||0]
},hasClassParam:function(el,param){el=$(el);if(elClassName.length===0){return false}if(elClassName.match(new RegExp("(^|\\s)"+param+"\\|"))){return true}return false},getClassParam:function(el,key){el=$(el);return Element.getClassParams(el)[key]},addClassParam:function(el,param){el=$(el);el.className=Element.getClassParams(el).merge(param).collect(function(pair){if(pair.value===null){return pair.key}return[pair.key].concat(pair.value).collect(function(value){return(value===null||typeof value==="undefined")?"":encodeURI(value)}).join("|")}).join(" ")},getClassParams:function(el){el=$(el);return $H(el.classNames().inject({},function(parameters,className){var values=className.split("|");var key=values.shift();try{values.each(function(v,i){values[i]=decodeURI(v)})}catch(e){}parameters[key]=(values.length===0)?null:((values.length===1)?values[0].autoCast():values.invoke("autoCast"));return parameters}))},matchAncestor:function(el,selector,stopAt){var el=$(el);stopAt=$(stopAt||document.getElementsByTagName("body")[0]);
while(el!=stopAt){if(el.match(selector)){return el}el=$(el.parentNode)}return null}});var $C=Element.Methods.getClassParams;Object.extend(Form,{populate:function(form,hash,conditionFunction){form=$(form);hash=($T.isString(hash))?hash.evalJSON():hash;form.getElementsBySelector("input, select, textarea").each(function(field){var value=conditionFunction?conditionFunction(hash,field):hash[field.name];if(typeof value!="undefined"){switch(field.type){case"checkbox":if($T.isArray(value)){field.checked=(value.include(field.value))?true:false}else{field.checked=(field.value==String(value))?true:false}break;case"radio":field.checked=(field.value==String(value))?true:false;break;case"select-one":if(String(value).startsWith("<option")){for(i=0,len=field.options.length;i<len;i++){field.remove(field.options[i])}var values=String(value).replace(/<option value="/g,"").replace(/">/g,",").replace(/<\/option>/g,",");var arr=values.split(",");for(i=0,len=arr.length-2;i<len;i+=2){field.appendChild($N.option({value:arr[i]},arr[i+1]))
}}else{field.value=value}break;case"file":break;default:field.value=value;break}}})}});Object.extend(Form.Methods,{populate:Form.populate});Element.addMethods();$N=function(tagName){var createElement=function(el){var newEl;if($T.isString(el)||$T.isNumber(el)){return document.createTextNode(el)}else{if($T.isNode(el)){return el}else{if($T.isReal(el)&&!$T.isUndefined(el.tagName)){newEl=document.createElement(el.tagName);if($T.isReal(el.attributes)){setAttributes(newEl,el.attributes)}if($T.isReal(el.children)){addChildren(newEl,el.children)}return $(newEl)}}}return null};var setAttributes=function(el,attributes){for(var attr in attributes){if(attr=="style"){$(el).setStyle(attributes[attr])}else{el[attr]=attributes[attr]}}};var addChildren=function(el,children){var child;if($T.isArray(children)){$A(children).each(function(child){addChildren(el,child)})}else{child=createElement(children);if(!$T.isNull(child)){el.appendChild(child)}}};var jsdom={tagName:tagName};if(arguments.length>1){if(!$T.isUndefined(arguments[1].nodeName)||$T.isFunction(arguments[1].sort)||$T.isString(arguments[1])||$T.isNumber(arguments[1])){jsdom.children=[].slice.call(arguments,1)
}else{jsdom.attributes=arguments[1];jsdom.children=[].slice.call(arguments,2)}}return createElement(jsdom)};$w("a abbr acronym address applet area b base basefont bdo big blockquote body br button caption center cite code col colgroup dd del dfn dir div dl dt em fieldset font form frame frameset h1 h2 h3 h4 h5 h6 head hr html i iframe img input ins isindex kbd label legend li link map menu meta noframes noscript object ol optgroup option p param pre q s samp script select small span strike strong style sub sup table tbody td textarea tfoot th thead title tr tt u ul var").each(function(tagName){$N[tagName]=$N.bind(this,tagName)});if(typeof Effect!=="undefined"){Object.extend(Effect,{BlindToggle:function(el,opts){opts=Object.extend({duration:0.4},opts||{});if($(el).visible()){Effect.BlindUp(el,opts)}else{Effect.BlindDown(el,opts)}},BlindLeft:function(el){el=$(el);el.makeClipping();return new Effect.Scale(el,16,Object.extend({scaleContent:false,scaleY:false,restoreAfterFinish:false},arguments[1]||{}))
},BlindRight:function(el){el=$(el);var elDimensions=el.getDimensions();return new Effect.Scale(el,(10000/16),Object.extend({scaleContent:false,scaleY:false,scaleFrom:100,scaleMode:{originalHeight:elDimensions.height,originalWidth:elDimensions.width},restoreAfterFinish:false},arguments[1]||{}))},FadeToggle:function(el,opts){opts=Object.extend({duration:0.4},opts||{});if($(el).visible()){Effect.Fade(el,opts)}else{Effect.Appear(el,opts)}}})}Object.extend(Form.Element.Serializers,{input:function(el){switch(el.type.toLowerCase()){case"checkbox":case"radio":return Form.Element.Serializers.inputSelector(el);case"submit":if(el.clicked){el.clicked=false;return el.value}else{return null}default:return Form.Element.Serializers.textarea(el)}},select:function(el){if($T.isFunction(el.customSerializer)){return el.customSerializer()}else{return this[el.hasClassName("select-all")?"selectAll":(el.type=="select-one"?"selectOne":"selectMany")](el)}},selectAll:function(el){var i,opt,values,length=el.length;
if(!length){return null}for(i=0,values=[];i<length;i++){opt=el.options[i];values.push(this.optionValue(opt))}return values}});Object.extend(Array.prototype,{randomize:function(){var i=this.length,j,temp;if(i===0){return false}while(--i){j=Math.floor(Math.random()*(i+1));temp=this[i];this[i]=this[j];this[j]=temp}return this}});Object.extend(Date,{i18n:{dateFormat:"dd/MM/yyyy HH:mm:ss",month_abbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],month_long:["January","Febuary","March","April","May","June","July","August","September","October","November","December"],week_abbr:["Sun","Mon","Tues","Wed","Thur","Fri","Sat"],week_long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},pattern:{"dddd":{format:function(date){return Date.i18n.week_long[date.getDay()]},parse:Prototype.emptyFunction},"ddd":{format:function(date){return Date.i18n.week_abbr[date.getDay()]},parse:Prototype.emptyFunction},"dd":{format:function(date){return date.getDate().toPaddedString(2)
},parse:function(date,part){date.setDate(part)}},"d":{format:function(date){return date.getDate()},parse:function(date,part){date.setDate(part)}},"ss":{format:function(date){return date.getSeconds().toPaddedString(2)},parse:function(date,part){date.setSeconds(part)}},"s":{format:function(date){return date.getMilliseconds()},parse:function(date,part){date.setMilliseconds(part)}},"mm":{format:function(date){return date.getMinutes().toPaddedString(2)},parse:function(date,part){date.setMinutes(part)}},"m":{format:function(date){return date.getMinutes()},parse:function(date,part){date.setMinutes(part)}},"kk":{format:function(date){return(date.getHours()%12).toPaddedString(2)},parse:function(date,part){date.setHours(part)}},"k":{format:function(date){return(date.getHours()%12)},parse:function(date,part){date.setHours(part)}},"HH":{format:function(date){return date.getHours().toPaddedString(2)},parse:function(date,part){date.setHours(part)}},"H":{format:function(date){return date.getHours()},parse:function(date,part){date.setHours(part)
}},"h":{format:function(date){return date.getHours()%12},parse:function(date,part){date.setHours(part)}},"yyyy":{format:function(date){return date.getFullYear()},parse:function(date,part){date.setFullYear(part)}},"yy":{format:function(date){return String(date.getFullYear()).substr(2,2)},parse:function(date,part){var year=String(new Date().getFullYear());var century=year.substr(0,2);date.setFullYear(((part-year.substr(2,2)<=20)?century:century-1)+part)}},"y":{format:function(date){return String(date.getFullYear()).substr(3,1)},parse:function(date,part){var year=String(new Date().getFullYear());var century=year.substr(0,2);date.setFullYear(((part-year.substr(2,2)<=20)?century:century-1)+"0"+part)}},"MMMM":{format:function(date){return Date.i18n.month_long[date.getMonth()]},parse:function(date,part){date.setMonth(Date.i18n.month_long.indexOf(part))}},"MMM":{format:function(date){return Date.i18n.month_abbr[date.getMonth()]},parse:function(date,part){date.setMonth(Date.i18n.month_abbr.indexOf(part))
}},"MM":{format:function(date){return(date.getMonth()+1).toPaddedString(2)},parse:function(date,part){date.setMonth(Number(part)-1)}},"M":{format:function(date){return date.getMonth()+1},parse:function(date,part){date.setMonth(Number(part)-1)}},"z":{format:function(date){return(date.getTimezoneOffset()+1)}},"a":{format:function(date){return(date.getHours()<12)?"AM":"PM"},parse:function(date,part){if(part=="PM"){date.setHours(date.getHours()+12)}}}},formatfunction:null,parsefunction:null,createFormatFunction:function(evalString){var separators=evalString.split(/[a-zA-Z0-9]+/);var code=evalString.match(/[a-zA-Z0-9]+/g).collect(function(match,i){return'"'+separators[i]+'" + Date.pattern.'+match+".format(now) + "}).join("");code+='"'+separators[separators.length-1]+'"';eval("var result = function (now){ return "+code+";};");return result},createParsefunction:function(evalString){var code=evalString.match(/[a-zA-Z0-9]+/g).collect(function(match,i){return"Date.pattern."+match+".parse(date, dateParts["+i+"]); "
}).join("");eval("var result = function (dateString){ var dateParts = dateString.match(/[a-zA-Z0-9]+/g); var date = new Date(2000,0,1,0,0,0); "+code+"return date;};");return result},setFormat:function(formats){this.i18n=formats;this.formatfunction=this.createFormatFunction(this.i18n.dateFormat);this.parsefunction=this.createParsefunction(this.i18n.dateFormat)},getFormat:function(){return this.i18n.dateFormat},getFormattedString:function(date,pattern){if($T.isReal(pattern)){return this.createFormatFunction(pattern)(date)}return this.formatfunction(date)},parse:function(dateString,pattern){if($T.isReal(pattern)){return this.createParsefunction(pattern)(dateString)}return this.parsefunction(dateString)}});Object.extend(Selector,{findChildElements:function(element,expressions){if(expressions.length===1&&expressions[0].match(/^[a-z]*$/)){return $A(element.getElementsByTagName(expressions[0])).collect(Element.extend)}var exprs=expressions.join(","),expressions=[];exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){expressions.push(m[1].strip())
});var results=[],h=Selector.handlers;for(var i=0,l=expressions.length,selector;i<l;i++){selector=new Selector(expressions[i].strip());h.concat(results,selector.findElements(element))}return(l>1)?h.unique(results):results}});Object.extend(Date.prototype,{format:function(pattern){return Date.getFormattedString(this,pattern)},sameDay:function(date){return this.getFullYear()===date.getFullYear()&&this.getMonth()===date.getMonth()&&this.getDate()===date.getDate()}});if(Prototype.Browser.IE){Prototype.Browser.version=parseFloat(navigator.appVersion.split("MSIE")[1]);Prototype.Browser.string="IE "+Prototype.Browser.version}else{if(Prototype.Browser.Gecko){Prototype.Browser.version=parseFloat(navigator.appVersion.split(" ")[0]);Prototype.Browser.string="Gecko "+Prototype.Browser.version}else{if(Prototype.Browser.Opera){Prototype.Browser.version=parseFloat(navigator.appVersion.split("Opera/")[0]);Prototype.Browser.string="Opera "+Prototype.Browser.version}else{if(Prototype.Browser.WebKit){Prototype.Browser.version=parseFloat(navigator.appVersion.split("Safari/")[1]);
Prototype.Browser.string="Safari "+Prototype.Browser.version}}}}var Cookie={test:function(cName,length,expires,path){var value="";var abc="abcdefghijklmnopqrstuvwxyz";for(i=0;i<length;i++){value=value+abc.substr(i%26,1)}return this.set(cName,value,expires,path)},set:function(cName,value,expires,path){cName=escape(cName);value=escape(value)||"";var values=$H({});var count=1;while(cName.length+value.length>2000){var thisName=cName;cName="_"+cName;var split=2000-(thisName.length+cName.length);values[thisName]=value.substring(0,split)+cName;value=value.substring(split,value.length);count++}values[cName]=value;if(expires){var d=new Date();d.setTime(d.getTime()+(86400000*parseFloat(expires)));expires="; expires="+d.toGMTString()}else{expires=""}path=(path)?"; path="+escape(path):"";return values.collect(function(pair){return document.cookie=pair.key+"="+pair.value+expires+path})},get:function(cName,remove){var cookie=document.cookie.match(new RegExp("(^|;)\\s*"+escape(cName)+"=([^;\\s]*)"));var value=(cookie?unescape(cookie[2]):null);
var nextName="_"+cName;if(value&&value.endsWith(nextName)){value=value.substringBefore(nextName)+this.get(nextName,remove)}if(remove){Cookie.set(cName,"",-1)}return value},has:function(cName){return(this.get(cName)!==null)},erase:function(cName){return Cookie.get(cName,true)||true},accept:function(){if(typeof navigator.cookieEnabled=="boolean"){return navigator.cookieEnabled}Cookie.set("_test","1");return(Cookie.erase("_test")=="1")}};var waitFor=function(expr,scope,method){eval("var test = "+expr+";");if(typeof test==="undefined"){setTimeout(waitFor.bind(window,expr,scope,method),1000)}else{method.call(scope,test)}};var $context=$context||"";var LHS={Version:"0.1",Copyright:"Limehouse Software 2007",Author:"Mark Gabriel",Url:"http://www.limehousesoftware.co.uk",Globals:{i18n:$H({dateFormat:"dd/MM/yyyy HH:mm:ss",month_abbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],month_long:["January","February","March","April","May","June","July","August","September","October","November","December"],week_abbr:["Sun","Mon","Tues","Wed","Thur","Fri","Sat"],week_long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],prev:"Prev",next:"Next",selectDate:"Select Date",sortableColumn:"Sortable Column"})}};
$nbsp=String.fromCharCode(160);LHS.Logger={logger:null,log:function(str){if(!this.logger){LHS.PopupWidget.createPopup("logger","Logger",{width:200,height:100});this.logger=$("logger")}this.logger.appendChild($N.p(String(str)))}};LHS.Dev={showlog:false,log:function(msg){if(this.showlog){console.log(msg)}}};LHS.Toggler={initToggler:function(element){var target=$(element.href.substringAfter("#"));if(target&&target.hasClassName("jsHidden")){target.removeClassName("jsHidden");target.hide()}Event.observe(element,"click",LHS.Toggler.toggle.bindAsEventListener(element))},toggle:function(event){if(!this.hasClassName("disabled")){var target=$(this.href.substringAfter("#"));if(this.hasClassName("onlyOne")){$$(".togglerOpen").each(function(elem){elem=$(elem.href.substringAfter("#"));if(elem!=target){elem.hide();elem.removeClassName("togglerOpen");elem.removeClassName("open")}})}this[target.visible()?"removeClassName":"addClassName"]("togglerOpen");this[target.visible()?"removeClassName":"addClassName"]("open");
if(this.hasClassName("blind")){Effect.BlindToggle(target)}else{if(this.hasClassName("fade")){Effect.FadeToggle(target)}else{target.toggle()}}}if(LHS.MarthaApplet){LHS.MarthaApplet.resize()}this.blur();Event.stop(event)}};LHS.Admin={setMinWidthIE6:function(){var tabBody,application,sidebar;if(Prototype.Browser.IE&&(Prototype.Browser.version>=5.5)&&(Prototype.Browser.version<7)){tabBody=$("tabSetBody");application=$("application");sidebar=$("sidebar");if(!(tabBody&&application&&sidebar)){return }if(document.body.clientWidth<1025){application.style.width="995px";tabBody.style.width=((990-sidebar.getWidth())-(document.body.hasClassName("closed")?30:36))+"px"}else{application.style.width=null;tabBody.style.width=null}}}};LHS.Sizer={stripPX:function(value){return(value.replace)?Number(value.replace("px","")):value},windowSize:function(){var width,height;if(self.innerWidth){width=self.innerWidth;height=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientWidth){width=document.documentElement.clientWidth;
height=document.documentElement.clientHeight}else{if(document.body){width=document.body.clientWidth;height=document.body.clientHeight}}}return{width:width,height:height}},elementSize:function(el){var pleft=this.stripPX(el.style.left);var pwidth=this.stripPX(el.style.width);var ptop=this.stripPX(el.style.top);var pheight=this.stripPX(el.style.height);return{left:pleft,width:pwidth,top:ptop,height:pheight}},resizeToBottom:function(el,container,IEoffset,MozOffset,propName){if(!el){return null}var height;if(el.className&&!IEoffset&&!MozOffset){var cParams=$C(el);IEoffset=(cParams.ieOffset)?cParams.ieOffset:IEoffset;MozOffset=(cParams.mozOffset)?cParams.mozOffset:MozOffset;container=(cParams.container)?cParams.container:container}var offset=(Prototype.Browser.IE?IEoffset:MozOffset)||0;if(!container||typeof container.getHeight==="undefined"){height=LHS.Sizer.windowSize().height}else{height=container.clientHeight}propName=propName||(Prototype.Browser.IE&&Prototype.Browser.version<7)?"height":"minHeight";
el.style[propName]=Math.max(0,offset+height-Position.cumulativeOffset(el)[1])+"px";return el}};LHS.Effects={kill:function(element){var cParams=$C(element);var timeout=(cParams.timeout)?cParams.timeout:3000;setTimeout(function(){var effect=new Effect[(element.hasClassName("fade"))?"Fade":"BlindUp"](element,{duration:1,afterFinish:function(effect){if(element.parentNode){element.remove()}}})},timeout)},addLoading:function(thisIsAboutToChange){thisIsAboutToChange=$(thisIsAboutToChange);var down=thisIsAboutToChange.down();var loading=thisIsAboutToChange.down(".jsLoader");if(loading){loading.show()}else{var newNode=$N.div({className:"absolute100 loader-big jsLoader",style:{zIndex:"10100"}});if(down){thisIsAboutToChange.insertBefore(newNode,down)}else{thisIsAboutToChange.appendChild(newNode)}newNode.setOpacity(0.5)}},removeLoading:function(thisHasChanged){var loading=$(thisHasChanged).down(".jsLoader");if(loading){loading.hide()}}};LHS.fixPNG={init:function(element){element=$(element);if(document.body.filters){var imgID=element.id?"id='"+element.id+"' ":"";
var imgClass=(element.className)?"class='"+element.className+"' ":"";var imgTitle=(element.title)?"title='"+element.title+"' ":"title='"+element.alt+"' ";var imgStyle="display:inline-block;"+element.style.cssText;var strNewHTML="<span "+imgID+imgClass+imgTitle+' style=" width:'+element.getStyle("width")+"; height:"+element.getStyle("height")+"; "+imgStyle+"; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+element.src+"', sizingMethod='scale');\"></span>";element.outerHTML=strNewHTML}}};LHS.Navigation={hover:function(el){var target=$(el.href.substringAfter("#"));Event.observe(el,"mouseover",function(){if(!$(target).hasClassName("visible")){$(target).addClassName("visible")}});Event.observe(target,"mouseout",function(){if($(target).hasClassName("visible")){$(target).removeClassName("visible")}})}};LHS.NewWindow={windowOpts:"resizable=yes,scrollbars=yes,status=no,width=800px,height=600px",windowName:"_blank",set:function(el){el=$(el);if(el.nodeName.toLowerCase()==="a"){el.title=((el.title!=="")?el.title+" - ":"")+($C(el).title||LHS.Globals.i18n["prompt.portal.new-window.tooltip"]);
Event.observe(el,"click",function(e){var w=window.open(this.href,$C(this).name||LHS.NewWindow.windowName,$C(this).opts||LHS.NewWindow.windowOpts);w.focus();Event.stop(e)}.bind(el))}if(el.nodeName.toLowerCase()==="form"){Event.observe(el,"submit",function(e){var w=window.open("",$C(this).name||LHS.NewWindow.windowName,$C(this).opts||LHS.NewWindow.windowOpts);this.target=$C(this).name||LHS.NewWindow.windowName;this.submit();w.focus();Event.stop(e)}.bind(el))}}};LHS.HTMLTemplate={all:$H({}),ID:0,add:function(el){var me=LHS.HTMLTemplate;var key=$C(el).tm||"";if(key===""||((key!=="")&&me.all[key])){return }me.all[key]=el.getElementsByTagName("*")[0].cloneNode(true)},getControls:function(template){var ctrls=$H({});var els=$(template).getElementsBySelector("*[class*=tm|]");els.each(function(el){var key=$C(el).tm||"";if(key===""){return }el.removeClassName("tm|"+key);ctrls[key]=el});return ctrls},getId:function(){return LHS.HTMLTemplate.ID++},getTemplate:function(key){var t=LHS.HTMLTemplate.all[key];
return(t)?t.cloneNode(true):null}};LHS.ItemDelete={initialize:function(element){Event.observe(element,"click",function(){var del=false;element=$(element);$(element).up("div.container").getElementsBySelector("input.itemSelect").each(function(item){if(item.checked===true){del=true}});if(del===true){LHS.Remoting.invoke(element.up("form"))}}.bindAsEventListener(element))}};LHS.FormFocus={initialize:function(element){var input=$(element).down(".selectedQ");if(input===null){input=$(element).down('input:[type!="hidden"], select, textarea')}if(input){setTimeout(function(){input.focus()},500)}}};LHS.SelectBox=Class.create();LHS.SelectBox.prototype={selectedItem:null,selectBoxes:[],element:null,initialize:function(el){this.set(el)},set:function(el){el=$(el);this.element=el;el.selectBox=this;this.clearBox();if(el.down("div.select")){el.down("div.select").show();el.getElementsBySelector("a.featureCreator").each(function(a){Event.observe(a,"click",function(){var parentNode=this.element;this.selectedItem=a.cloneNode(true);
parentNode.down("div.select").innerHTML="";parentNode.down("div.select").appendChild(this.selectedItem);parentNode.down("div.options").hide();parentNode.down("div.options").removeClassName("open")}.bind(this))}.bind(this));Event.observe(el,"click",function(e){var el=Event.element(e);if(el.hasClassName("select")||el.hasClassName("selectContainer")){if(!el.up(".LHSradioSelect").hasClassName("disabled")){if(this.down("div.options").hasClassName("open")){this.down("div.options").removeClassName("open");this.down("div.options").hide()}else{this.down("div.options").addClassName("open");this.down("div.options").setStyle({position:"absolute",background:"white"});this.down("div.options").show()}}}return }.bind(el))}},clearBox:function(){var parentNode=this.element;parentNode.down("div.select").innerHTML=LHS.Globals.i18n["prompt.maps.please-select"]},toggleDisable:function(disable){if(disable){this.element.addClassName("disabled")}else{this.element.removeClassName("disabled")}}};Object.extend(LHS.SelectBox,{attach:function(el){var newSelect=new LHS.SelectBox(el)
}});LHS.EventManager=Class.create();LHS.EventManager.prototype={initialize:function(element){var eventNames=["click","dblclick"];for(var x=0;x<eventNames.length;x++){Event.observe(element,eventNames[x],function(event){var el=Event.element(event);var className=el.className.split(" ");className.push(el.tagName);for(var i=0;i<className.length;i++){func=this.actions[className[i]];if(func&&func[event.type]){func[event.type](el,event);break}}}.bind(this))}},actions:{"browseAction":{"click":function(el,event){el=el.tagName==="LI"?el:el.up("li");browse.onClick(el,event)},"dblclick":function(el,event){el=el.tagName==="LI"?el:el.up("li");browse.onDblClick(el,event)}}}};LHS.translateForm={initialize:function(el){var popup=el.up("div");el.getElementsBySelector(".moveValue").each(function(a){Event.observe(a,"click",function(event){var td=a.up("td");var inputField=td.next("td").getElementsBySelector("input, textarea")[0];inputField.value=td.down("span").innerHTML;if(inputField.hasClassName("formatted")){var editor=tinymce.EditorManager.editors[inputField.id];
editor.setContent(inputField.value)}else{inputField.value=inputField.value.unescapeHTML()}Event.element(event).blur();Event.stop(event)})});Event.observe(popup.down(".addAll"),"click",function(event){LHS.translateForm.replaceValues(false,this);Event.element(event).up("a").blur();Event.stop(event)}.bind(el));Event.observe(popup.down(".addEmpty"),"click",function(event){LHS.translateForm.replaceValues(true,this);Event.element(event).up("a").blur();Event.stop(event)}.bind(el))},replaceValues:function(empty,form){form.getElementsBySelector(".moveValue").each(function(a){var td=a.up("td");var inputField=td.next("td").getElementsBySelector("input, textarea")[0];inputField.value=(empty&&inputField.value=="")?td.down("span").innerHTML:(empty)?inputField.value:td.down("span").innerHTML;if(inputField.hasClassName("formatted")){var editor=tinymce.EditorManager.editors[inputField.id];editor.setContent(inputField.value)}else{inputField.value=inputField.value.unescapeHTML()}})}};LHS.Loader={loaders:$H({}),load:function(element){element=$(element)?$(element):document;
a=new Date();var output="";this.loaders.each(function(pair){var startTime=new Date().getTime();var elems=Selector.findChildElements(element,pair.key.split(","));elems.each(pair.value);var endTime=new Date().getTime();output+=pair.key+" "+elems.length+" "+(endTime-startTime)+"\n"});b=new Date();return true},addLoadMethod:function(selector,method){this.loaders[selector]=method}};LHS.Loader.addLoadMethod("form.translateForm",LHS.translateForm.initialize);LHS.Loader.addLoadMethod("form.formBuilder:not(.validate)",LHS.FormFocus.initialize);LHS.Loader.addLoadMethod("a.navHover[href*=#]",LHS.Navigation.hover);LHS.Loader.addLoadMethod("a.toggler[href*=#]",LHS.Toggler.initToggler);LHS.Loader.addLoadMethod("div.killer",LHS.Effects.kill);LHS.Loader.addLoadMethod("div.LHSradioSelect",LHS.SelectBox.attach);LHS.Loader.addLoadMethod("input.itemDel",LHS.ItemDelete.initialize);LHS.Loader.addLoadMethod("a.newWindow,form.newWindow",LHS.NewWindow.set);LHS.Loader.addLoadMethod("div.LHSTemplate",LHS.HTMLTemplate.add);
LHS.Loader.addLoadMethod(".resizeToBottom",LHS.Sizer.resizeToBottom);if(Prototype.Browser.IE&&Prototype.Browser.version<7){LHS.Loader.addLoadMethod('img[src$=".png"]',LHS.fixPNG.init)}LHS.init=function(){if(arguments.callee.done){return }arguments.callee.done=true;var loadingScreen=$("loadingScreen");if(LHS.Loader.load()&&loadingScreen&&loadingScreen.className!=="error"){var addDot=function(){loadingScreen.update(loadingScreen.innerHTML+".")};setTimeout(addDot,500);setTimeout(addDot,750);setTimeout(addDot,1000);setTimeout(addDot,1250);setTimeout(function(){loadingScreen.remove();Effect.Appear("application",{afterFinish:function(){$("application").style.opacity=""}})},1500)}if(typeof LHS.URLManager!=="undefined"){LHS.URLManager.init()}LHS.Admin.setMinWidthIE6();if(typeof LHS.Bubbles!=="undefined"){LHS.bubbles=new LHS.Bubbles()}};Event.observe(window,"load",LHS.init);document.write("<style>\n.jsHidden{display:none;}\n.jsShow{display:block;}\n</style>");LHS.Remoting=function(){function getResponse(event,ajaxOptions){if(this.blur){this.blur()
}var thisC=$C(this);if(!this.hasClassName("disabled")){var ajaxEvent={from:this,url:thisC.url||this.href,target:thisC.target||this.target};if(ajaxEvent.target!="this"){handleTabsAndPopups(this,ajaxEvent)}if(thisC.insertion){ajaxEvent.insertion=thisC.insertion}Object.extend(ajaxEvent,ajaxOptions);runAjaxEvent(ajaxEvent)}if(event&&!thisC.continueEvent){Event.stop(event)}}function submitResponse(event){this.clicked=true}function postResponse(event,ajaxOptions){if(!LHS.FormRules.runRules(event,this)){Event.stop(event);return false}var thisC=$C(this);var ajaxEvent={from:this,url:thisC.url||this.action,target:thisC.target||this.target,method:this.method,parameters:Form.serialize(this,true),parentEvent:this.rev};if(ajaxEvent.target!="this"){handleTabsAndPopups(this,ajaxEvent)}if(thisC.insertion){ajaxEvent.insertion=thisC.insertion}if(thisC.mapId){if(!ajaxOptions){ajaxOptions={}}ajaxOptions.onComplete=thisC.onComplete;ajaxOptions.mapId=thisC.mapId}Object.extend(ajaxEvent,ajaxOptions);runAjaxEvent(ajaxEvent);
if(event){Event.stop(event)}}function handleTabsAndPopups(element,ajaxEvent){element=$(element);var title=(element.title=="")?element.innerString():String(element.title);if(element.hasClassName("popup")){var opts=$C(element);opts.modal=element.hasClassName("modal");if(element.hasClassName("dialog")){Object.extend(opts,LHS.DialogWidget.returnDefaultOptions())}if(window.inExtDemoWorld){MyDesktop.createANewWindow(element.target,title)}else{LHS.PopupWidget.createPopup(element.target,title,opts)}}else{if(ajaxEvent.target&&!$(ajaxEvent.target)){if(window.inExtDemoWorld){MyDesktop.createANewWindow(element.target,title)}else{if(LHS.TabWidget.getTabSet("Remoting")){LHS.TabWidget.getTabSet("Remoting").createTab(element.target,title,{className:Element.classNames(element).findAll(function(classname){return classname.indexOf("Icon")!=-1}).join(" ").replace("Large","").replace("Reg","").replace("Tab","")})}}}else{if(ajaxEvent.target&&$(ajaxEvent.target)&&LHS.TabWidget.getTabSet("Remoting")){LHS.TabWidget.getTabSet("Remoting").selectTab(ajaxEvent.target)
}}}if(element.hasClassName("close")){ajaxEvent.closeable=element.up(".closeable")}}function confirmWithDialog(element,action,runnow,ajaxOptions){if(element.hasClassName("confirmWithDialog")){var boundFunction=function(event){var cParams=$C(element);var cls=(cParams.close&&cParams.close.toString()=="false")?false:true;var message=cParams.msg;var binItems;var deleteConfirm=element.hasClassName("confirmDelete");if(deleteConfirm){binItems=element.getElementsBySelector("input.inBin");binItems=(binItems?binItems.findAll(function(el){return el.checked}):null);if(binItems&&binItems.length>0){message+="<br/><br/>"+LHS.Globals.i18n["prompt.content.delete.permanent-list"]+"<ul>";$A(binItems).each(function(item){message+="<li>"+$C(item).name+"</li>"});message+="</ul>";message="<div>"+message+"</div>"}}if(!element.hasClassName("disabled")){yesNo(message,"",function(result){if(result==="ok"){if(element.action){postResponse.bindAsEventListener(element,ajaxOptions)()}else{getResponse.bindAsEventListener(element,ajaxOptions)()
}}else{if(cParams.reset){Form.reset(element)}}},cls,deleteConfirm)}if(event){Event.stop(event)}element.blur()}.bindAsEventListener(element);if(runnow){boundFunction()}else{Event.observe(element,action,boundFunction)}return true}return false}function runAjaxEvent(ajaxEvent){var origTarget=(ajaxEvent.target=="this")?$(ajaxEvent.from).up("div.ajaxResult").up():$(ajaxEvent.target);if(origTarget===null){return }var url=ajaxEvent.url.replace(/&amp;/g,"&");if($(origTarget.id).hasClassName("tabPage")&&(typeof LHS.URLManager!=="undefined")){LHS.URLManager.update(origTarget.id,url)}var timeStamp=(new Date()).getTime();var myAjax=new Ajax.Request(url.split("#")[0]+(url.split("#")[0].include("?")?"&":"?")+"output:nocache="+timeStamp+(url.split("#")[1]?("#"+url.split("#")[1]):""),{method:(ajaxEvent.method||"get"),parameters:(ajaxEvent.parameters||""),onComplete:function(transport){if(ajaxEvent.insertion=="bottom"){origTarget=origTarget.appendChild($N.div({id:"ID"+timeStamp}))}origTarget.update(transport.responseText);
if(ajaxEvent.from&&$(ajaxEvent.from)&&$(ajaxEvent.from).hasClassName("once")){ajaxEvent.from.href="#"+ajaxEvent.from.target;ajaxEvent.from.removeAttribute("target")}if($(origTarget.id)){LHS.Loader.load(origTarget)}if(ajaxEvent.onComplete){if(ajaxEvent.mapId){LHS.Map.store[ajaxEvent.mapId][ajaxEvent.onComplete](null,origTarget)}else{ajaxEvent.onComplete(origTarget)}}if(ajaxEvent.closeable){if(ajaxEvent.closeable.hasClassName("tabPage")){LHS.TabWidget.getTabSet("Remoting").closeTabId(null,false,ajaxEvent.closeable.id)}else{if(ajaxEvent.closeable.hasClassName("popupPage")){LHS.PopupWidget.closePopup(ajaxEvent.closeable.id)}else{ajaxEvent.closeable.remove()}}}}})}return{runAjaxEvent:runAjaxEvent,addLink:function(element){if(!element.hasClassName("browseControl")&&!element.hasClassName("jsDontAddLink")){var constantTargets=$w("_blank _parent _self _top");if(!constantTargets.include(element.target)){if(!confirmWithDialog(element,"click")){Event.observe(element,"click",getResponse.bindAsEventListener(element))
}if(element.hasClassName("include")){getResponse.bindAsEventListener(element)()}}}},addSubmits:function(element){Event.observe(element,"click",submitResponse.bindAsEventListener(element))},addForm:function(element){if(element.enctype!="multipart/form-data"&&!confirmWithDialog(element,"submit")){element.addClassName("ajax");Event.observe(element,"submit",postResponse.bindAsEventListener(element))}},include:function(url,target,insertion,onlyiftargetexists){if(onlyiftargetexists&&!$(target)){return }if(target&&!$(target)){if(LHS.TabWidget.getTabSet("Remoting")){LHS.TabWidget.getTabSet("Remoting").createTab(target,target)}}if($T.isString(url)&&$T.isString(target)){runAjaxEvent({url:url,target:target,insertion:insertion})}else{if($T.isObject(url)&&url.url&&url.target){runAjaxEvent(url)}}},invoke:function(element,ajaxOptions){element=$(element);if(!confirmWithDialog(element,"click",true,ajaxOptions)){if(element.action){postResponse.bindAsEventListener(element,ajaxOptions)()}else{getResponse.bindAsEventListener(element,ajaxOptions)()
}}}}}();var GLOBAL_LOADER=$N.div({style:{position:"absolute",display:"none"}},$N.span({className:"unvisible"},"Loading"),$nbsp);Ajax.Responders.register({onCreate:function(request){var element=request.container.success;var className="loading";var tabPage=element.hasClassName("tabPage");if(!GLOBAL_LOADER.appended){document.body.appendChild(GLOBAL_LOADER);GLOBAL_LOADER.appended=true}if(tabPage||element.hasClassName("popupPage")){className="loader-big";if(tabPage){LHS.Sizer.resizeToBottom(element,window,-28,-4)}}var height=element.getHeight();var width=element.getWidth();var offset=Position.page(element);var minHeight=(className=="loader-big"?80:32);if(height<minHeight){var node=element;while(node=node.parentNode){if(Element.getHeight(node)>minHeight){height=Element.getHeight(node);break}}}GLOBAL_LOADER.className=className;GLOBAL_LOADER.style.height=height+"px";GLOBAL_LOADER.style.width=(width?width+"px":"100%");GLOBAL_LOADER.style.left=offset[0]+"px";GLOBAL_LOADER.style.top=offset[1]+(window.pageYOffset||document.documentElement.scrollTop)+"px";
GLOBAL_LOADER.style.zIndex=(tabPage?900:1000);if(!element.hasClassName("noLoader")&&typeof request.options.insertion=="undefined"){element.setOpacity(0.3);GLOBAL_LOADER.show()}},onComplete:function(request){var element=request.container.success;element.setOpacity(1);GLOBAL_LOADER.hide()},onInteractive:function(request){var element=request.container.success;if(!document.getElementById(element.id)){GLOBAL_LOADER.hide()}},onException:function(request,e){LHS.Dev.log("Hoop dog says that there has been an Ajax.onException error ("+e.message+") on line "+e.lineNumber+" ("+e.filename+")")}});LHS.Loader.addLoadMethod("a[target],a.ajax,input.ajax,button.ajax",LHS.Remoting.addLink);LHS.Loader.addLoadMethod("form[target],form.ajax",LHS.Remoting.addForm);LHS.Loader.addLoadMethod('input[type="submit"]',LHS.Remoting.addSubmits);LHS.TabWidget={tabLists:$H({}),addTabSet:function(element){LHS.TabWidget.tabLists[element.id]=new LHS.TabSet(element)},getTabSet:function(tabSetId){return LHS.TabWidget.tabLists[tabSetId]
},addTabListener:function(tabId,eventName,handler){var tab=LHS.TabWidget.tabLists.Remoting.tabs[tabId];if(!tab["on"+eventName]){tab["on"+eventName]=[]}tab["on"+eventName].push(handler)},unload:function(element){if(element.id&&LHS.TabWidget.tabLists[element.id]){LHS.TabWidget.tabLists[element.id]=null;delete LHS.TabWidget.tabLists[element.id]}}};Element.PurgingFunction.push(LHS.TabWidget.unload);LHS.TabSet=Class.create();LHS.TabSet.prototype={tabList:null,tabPages:null,selectedTab:null,tabs:null,initialize:function(element){var setName=$C(element).set||"";$(element).addClassName("observed");this.tabList=(setName=="")?element.getElementsBySelector(".tabList")[0]:element.getElementsBySelector("ul[class~=tabList][class~="+setName+"]")[0];if(!this.tabList){this.tabList=element.appendChild($N.ul({className:"tabList "+setName}))}this.tabPages=(setName=="")?element.getElementsBySelector(".tabPages")[0]:element.getElementsBySelector("div[class~=tabPages][class~="+setName+"]")[0];if(!this.tabPages){this.tabPages=element.appendChild($N.div({className:"tabPages "+setName}))
}var tabSet=this;this.tabList.getElementsBySelector("a.closeTab, a.nextTab, a.prevTab").each(function(alink){Event.observe(alink,"click",tabSet[alink.className].bindAsEventListener(tabSet))});this.tabs=$H({});this.tabList.getElementsBySelector('a[href*="#"]').each(function(alink){var tabId=alink.href.substringAfter("#");if(tabId!==""){tabSet.tabs[tabId]=new LHS.Tab(alink,tabSet)}});var next=(setName=="")?element.getElementsBySelector(".nextButton"):element.getElementsBySelector("a[class~=nextButton][class~="+setName+"]");next.each(function(el){Event.observe(el,"click",function(e){var mainTabs=$("main_tabs");tabSet.nextTab(e);if(mainTabs){mainTabs.scrollTo()}}.bindAsEventListener(el))});var prev=(setName=="")?element.getElementsBySelector(".prevButton"):element.getElementsBySelector("a[class~=prevButton][class~="+setName+"]");prev.each(function(el){Event.observe(el,"click",function(e){var mainTabs=$("main_tabs");tabSet.prevTab(e);if(mainTabs){mainTabs.scrollTo()}}.bindAsEventListener(el))
})},createTab:function(id,title,options){options=Object.extend({className:"",truncate:15},options);var tabPage=$(id)||options.page||$N.div({id:id});if(tabPage){tabPage.addClassName("tabPage");var titleLink=$N.a({href:"#"+id,className:options.className.replace("hidden",""),title:title},title.truncate(options.truncate).gsub(" ",$nbsp));var closeLink=$N.a({href:"#",className:"closeTab"},"X");this.tabList.appendChild($N.li($N.span({className:"rightCorner"},titleLink,closeLink)));this.tabPages.appendChild(tabPage);Event.observe(closeLink,"click",this.closeTab.bindAsEventListener(this));this.tabs[id]=new LHS.Tab(titleLink,this)}this.selectTab(id)},selectTab:function(newtabId){var newtab=this.tabs[newtabId];var oldTab=this.selectedTab;if(newtab&&newtab!=oldTab){this.selectedTab=newtab;if(oldTab.page&&oldTab.li){oldTab.page.hide();oldTab.li.removeClassName("selected")}if(oldTab.onblur){oldTab.onblur.each(function(onblur){onblur(oldTab,newtab)})}if(newtab.onfocus){newtab.onfocus.each(function(onfocus){onfocus(oldTab,newtab)
})}newtab.page.show();newtab.li.addClassName("selected")}},closeTabId:function(event,keepPage,tabId){var tab=this.tabs[tabId];if(event&&tab.confirmOnClose!==undefined&&tab.confirmOnClose.result==null&&tab.confirmOnClose.func){if(tab.confirmOnClose.func(tab)){Event.stop(event);return }}tab.onblur=null;var newTab=this.tabs[tab.next()?tab.next().id:tab.previous().id];if(tab.onclose){tab.onclose.each(function(onclose){onclose(tab,newTab)})}this.selectTab(newTab.id);tab.li.remove();if(!keepPage){tab.page.remove()}delete this.tabs[tab.id];LHS.URLManager.update();if(event){Event.stop(event)}},closeTab:function(event,keepPage){var formatted=$(this.selectedTab.id).getElementsBySelector(".formatted");formatted.each(function(mce){var editor=tinymce.EditorManager.editors[mce.id];if(editor){editor.remove()}});this.closeTabId(event,keepPage,this.selectedTab.id)},toPopup:function(options){options=Object.extend({page:this.selectedTab.page,tabSet:this},options||{});LHS.PopupWidget.createPopup(this.selectedTab.id,this.selectedTab.label,options);
this.closeTab(this.selectedTab,true)},nextTab:function(event){var t=this.selectedTab.next();while(t&&t.page.hasClassName("skip")){t=t.next()}if(t){this.selectTab(t.id)}Event.stop(event)},prevTab:function(event){var t=this.selectedTab.previous();while(t&&t.page.hasClassName("skip")){t=t.previous()}if(t){this.selectTab(t.id)}Event.stop(event)}};LHS.Tab=Class.create();LHS.Tab.prototype={initialize:function(alink,tabSet){var aLinkTarget=alink.href.substringAfter("#");this.alink=alink;this.url="";this.icon=Element.classNames(alink).findAll(function(classname){return classname.indexOf("Icon")!=-1})[0]||"";this.id=aLinkTarget;this.li=alink.up("li");this.label=alink.title||alink.innerString();this.page=$(aLinkTarget);this.tabSet=tabSet;this.position=tabSet.tabs.length;alink.addClassName("tab");this.action=alink.hasClassName("hoverClick")?"mouseover":"click";Event.observe(alink,this.action,this.select.bindAsEventListener(this));if(this.page&&this.li.hasClassName("selected")){tabSet.selectedTab=this;
this.page.show()}else{if(this.page&&!this.alink.hasClassName("fakeTab")){this.page.hide()}}},select:function(event){if(!this.li.hasClassName("disabled")){this.tabSet.selectTab(this.id)}this.alink.blur();Event.stop(event)},previous:function(){var previousLi=this.li.previous("li");return previousLi?this.tabSet.tabs[previousLi.down("a.tab").href.substringAfter("#")]:null},next:function(){var nextLi=this.li.next("li");return nextLi?this.tabSet.tabs[nextLi.down("a.tab").href.substringAfter("#")]:null},rename:function(nm){this.alink.update(nm)}};LHS.Loader.addLoadMethod("div.tabSet[id]",LHS.TabWidget.addTabSet);LHS.PopupWidget={openPopups:{},modalScreens:{},popupOptions:{},currentlyOpen:[],currentlyOpenModal:[],events:{},lastPopupIndex:0,TITLEBAR_HEIGHT:25,BORDER_DOUBLE:2,POPUP_BASE_INDEX:1008,addPopupListener:function(action,method){if(!this.events[action]){this.events[action]=[]}this.events[action].push(method)},defaultOptions:{page:null,tabSet:null,width:640,height:480,resizable:false,minWidth:640,minHeight:480,closeable:true,minimizable:true,overflow:"scroll",padding:0,center:false,helpBarWidth:240,maximiseOn:true,fixed:false},createPopup:function(id,title,options){if(window.inExtDemoWorld){MyDesktop.createANewWindow(id,title);
return true}var classNames="default";var popupContainer;var container;var popupTitleBar;var helpBarIframe;var helpCloseButton;var helpButton;var helpBar;var sizerImg;var sizerHandle;var content;var min;var modalScreen;var modalIndex;var popupIndex;if(!this.lastPopupIndex){this.lastPopupIndex=this.POPUP_BASE_INDEX}if(!$(id)){this.currentlyOpen.push(id);if(this.currentlyOpen.length===1&&this.events.openFirst){this.events.openFirst.each(function(method){method()})}Position.prepare();options=Object.extend(Object.clone(this.defaultOptions),options||{});options.width=LHS.Sizer.stripPX(options.width);options.height=LHS.Sizer.stripPX(options.height);options.top=(LHS.Sizer.windowSize().height-options.height)/2+Position.deltaY;options.left=(LHS.Sizer.windowSize().width-options.width)/2;content=options.page||"";if(!options.dialog){classNames="bbl popupWindow";helpButton=(options.helpTagNames?$N.a({href:$context+"/creationService/help/findByTagNameInDocument?documentId="+helpDocumentId+"&tagNames="+options.helpTagNames+"&mode=popup",className:"helpButton helpTbIcon once",target:id+"_helpBar",title:LHS.Globals.i18n["prompt.help"]},$nbsp):"");
helpBarIframe=(options.helpTagNames?$N.iframe({className:"helpBar",src:"javascript:false;",style:{display:"none","width":(options.helpBarWidth+1)+"px","height":(options.height+this.TITLEBAR_HEIGHT+2)+"px","border-width":"0"}}):"");helpCloseButton=(options.helpTagNames?$N.a({href:"#",className:"closeSidebar closeSidebarIcon",title:LHS.Globals.i18n["prompt.window.close"]},$nbsp):"");helpTitleBar=(options.helpTagNames?$N.div({className:"popup-tb"},$N.div({className:"holder"},helpCloseButton)):"");helpBar=(options.helpTagNames?$N.div({className:"helpBar",style:{display:"none","width":options.helpBarWidth+"px","height":(options.height)+"px","border-width":"1px 1px 1px 0","paddingTop":this.TITLEBAR_HEIGHT+"px"}},helpTitleBar,$N.div({className:"scrollToFill"},$N.div({id:id+"_helpBar"}))):"");popupTitleBar=$N.div({className:"popup-tb"},$N.div({className:"bbl holder"},(options.closeable?$N.a({href:"#",className:"close closeIcon",title:LHS.Globals.i18n["prompt.window.close"]},$nbsp):""),(options.sizer?$N.a({href:"#",className:"maximise maximiseOnIcon",title:LHS.Globals.i18n["prompt.window.maximise-on"]},$nbsp):""),((options.minimizable&&!options.modal)?$N.a({href:"#",className:"minimise miniIcon",title:LHS.Globals.i18n["prompt.window.minimise"]},$nbsp):""),helpButton,$N.span({className:"popup-title"},title)));
sizerImg=(options.sizer?$N.img({className:"sizer",src:$context+"/images/titleBar/resize.gif"}):"");sizerHandle=(options.sizer?$N.div({className:"sizer",style:{zIndex:1010,height:"10px",width:"10px"}}):"");sizerBox=(options.sizer?$N.div({className:"sizerBox",style:{display:"none"}}):"");if(options.sizer){sizerBox.setOpacity(0.6)}container=$N.div({className:"popupPage closeable "},content);popupContainer=$N.div({className:"popupContainer ",style:{padding:options.padding+"px"}},container);if(options.overflow!="scroll"){popupContainer.style.overflow=options.overflow}}else{classNames="dialogPopup noStyle ";classNames+=(!$T.isUndefined(options.type))?options.type:"warning";popupTitleBar=LHS.DialogWidget.titleBar();popupContainer=LHS.DialogWidget.container(id,content);sizerBox=""}var iframe=$N.iframe({frameBorder:"0",id:"frame_"+id,src:"javascript:false;",style:{position:"absolute",border:"0px",top:"0px",left:"0px",background:"transparent",height:options.height+(options.dialog?0:25)+this.BORDER_DOUBLE+"px",width:"100%"}});
var body=$N.div({className:(options.dialog?"":"popup-border"),style:{height:(options.dialog?"auto":options.height+"px")}},popupTitleBar,popupContainer,sizerImg,sizerHandle);if(options.modal){this.currentlyOpenModal.push(id);modalIndex=this.lastPopupIndex+this.currentlyOpenModal.length;popupIndex=modalIndex+1;this.lastPopupIndex=popupIndex}else{popupIndex=++this.lastPopupIndex}this.openPopups[id]=$N.div({className:classNames,style:{position:options.fixed?"fixed":"absolute",width:options.width+"px",top:Math.max(options.top,20)+"px",left:options.left+"px",zIndex:popupIndex,display:"none"}},iframe,helpBarIframe,helpBar,body,sizerBox);if(!$(id)&&typeof (options.dialog)=="undefined"){container.id=id}var onRevert=function(element){var el=LHS.Sizer.elementSize(element);var doc=LHS.Sizer.windowSize();var result=el.left+el.width>doc.width||el.top+el.height>doc.height||el.left+el.width<100||el.top<0;if(result){window.setTimeout(LHS.PopupWidget.resizeModalScreen,1000)}return result};var draggable=new Draggable(this.openPopups[id],{zindex:this.lastPopupIndex+1,handle:popupTitleBar,revert:onRevert,starteffect:null,endeffect:null,onDrag:function(d){var el=$(d.element);
if(options.maximiseOn){options.left=Position.page(el)[0];options.top=Position.page(el)[1]}if(options.modal){LHS.PopupWidget.resizeModalScreen()}}});if(options.modal){this.modalScreens[id]=$N.div({id:"modalScreen",style:{width:"100%",height:"100%",position:"absolute",top:"0px",left:"0px",display:"none",backgroundColor:"black",zIndex:modalIndex}});modalScreen=this.modalScreens[id];document.body.appendChild(modalScreen);modalScreen.setStyle({width:"100%",height:"100%"});modalScreen.setStyle({width:(document.documentElement.scrollWidth||document.body.scrollWidth)+"px",height:(document.documentElement.scrollHeight||document.body.scrollHeight)+"px"});modalScreen.setOpacity(0.2);modalScreen.show()}document.body.appendChild(this.openPopups[id]);if(options.url){LHS.Remoting.include($context+options.url,id)}this.popupOptions[id]=options;if(typeof sizerImg==="object"){this.initResizer(id,body)}if(options.sizer){Event.observe(popupTitleBar,"dblclick",function(event){LHS.PopupWidget.fullScreen(event,id);
Event.stop(event)}.bindAsEventListener(popupTitleBar))}Event.observe(popupTitleBar,"click",function(event){var el=Event.element(event);var actions=el.className;if(actions.indexOf("close")!=-1){LHS.PopupWidget.closePopup(id);var fireOnThis=$("tempTinyMCE_bold");if(fireOnThis){if(document.createEventObject){fireOnThis.fireEvent("onclick")}}Event.stop(event)}else{if(actions.indexOf("minimise")!=-1){LHS.PopupWidget.minimisePopup(event,id)}else{if(actions.indexOf("helpButton")!=-1){if(el.target){LHS.Remoting.invoke(el)}if(helpBar.visible()){helpBar.hide();helpBarIframe.hide()}else{helpBar.show();helpBarIframe.show()}Event.stop(event)}else{if(actions.indexOf("maximise")!=-1){LHS.PopupWidget.fullScreen(event,id);Event.stop(event)}else{if(LHS.PopupWidget.minimised(id)){LHS.PopupWidget.maximizePopup(id)}}}}}}.bindAsEventListener(popupTitleBar));Event.observe(popupTitleBar,"mouseover",function(){if(LHS.PopupWidget.minimised(id)){popupTitleBar.setStyle({backgroundColor:"#0000CB",color:"white"})}});
Event.observe(popupTitleBar,"mouseout",function(){if(LHS.PopupWidget.minimised(id)){popupTitleBar.setStyle({backgroundColor:"transparent",color:""})}});if(helpCloseButton){Event.observe(helpCloseButton,"click",function(e){helpBar.hide();helpBarIframe.hide();Event.stop(e)}.bindAsEventListener(helpCloseButton))}this.openPopups[id].show()}else{this.maximizePopup(id)}},rename:function(id,title){var popup=this.openPopups[id];if(popup){popup.getElementsBySelector("span.popup-title")[0].update(title)}},minimised:function(id){if(!$(id)){return false}return $(id).up("#popups")?true:false},minimisePopup:function(event,id){var popup=$("popupCount");var pwindow=$(id).up(".popupWindow");popup.update((Number(popup.innerHTML)+1));$("popups").appendChild(pwindow);pwindow.setStyle({position:"static",width:"100%"});Event.stop(event)},resizeModalScreen:function(){if(LHS.PopupWidget.currentlyOpenModal.length>0){for(var screenId in this.modalScreens){this.modalScreens[screenId].setStyle({width:"100%",height:"100%"});
this.modalScreens[screenId].setStyle({width:(document.documentElement.scrollWidth||document.body.scrollWidth)+"px",height:(document.documentElement.scrollHeight||document.body.scrollHeight)+"px"})}}},maximizePopup:function(id){var popup,pwindow;if(this.minimised(id)){popup=$("popupCount");pwindow=$(id).up(".popupWindow");popup.update((Number(popup.innerHTML)-1));document.body.appendChild(pwindow);pwindow.setStyle({position:"absolute",width:this.popupOptions[id].width+"px"})}},closeThis:function(el){Event.observe(el,"click",function(event){var id=this.up(".popupPage").id;LHS.PopupWidget.closePopup(id);if(!el.hasClassName("continue")){Event.stop(event)}}.bindAsEventListener(el))},closePopup:function(id){id=id.id?id.id:id;var popup=this.openPopups[id];if(popup){var dialog=popup.up(".dialogPopup");var obj=dialog||popup;if(this.popupOptions[id].modal){this.currentlyOpenModal=this.currentlyOpenModal.without(id);this.modalScreens[id].remove()}obj.remove();if(typeof this.popupOptions[id].onClose==="function"){this.popupOptions[id].onClose()
}this.openPopups[id]=null;this.popupOptions[id]=null;this.currentlyOpen=this.currentlyOpen.without(id);if(this.currentlyOpen.length===0){if(this.events.closeLast){this.events.closeLast.each(function(method){method()})}this.openPopups={};this.popupOptions={};if(this.currentlyOpenModal.length===0){this.lastPopupIndex=this.POPUP_BASE_INDEX}}}},resize:function(id,dims,resizeChildren,rememberSize){var popup=this.openPopups[id];var options=this.popupOptions[id];var popupContainer=popup.getElementsBySelector("div.popupContainer")[0];var popupBorder=popup.getElementsBySelector("div.popup-border")[0];var iframe=popup.getElementsBySelector("iframe")[0];var body=popup.getElementsBySelector("div")[0];var diff=[0,0];if(dims.height){if(rememberSize){options.height=dims.height}diff=[popupContainer.getWidth()-dims.width,popupContainer.getHeight()-(dims.height-this.TITLEBAR_HEIGHT)];popupContainer.style.height=(dims.height-this.TITLEBAR_HEIGHT)+"px";if(popupBorder){popupBorder.style.height=(dims.height-this.TITLEBAR_HEIGHT)+"px"
}iframe.style.height=dims.height+this.BORDER_DOUBLE+"px"}if(dims.width){if(rememberSize){options.width=dims.width}popup.style.width=dims.width+"px"}if(resizeChildren){if(popupContainer.hasClassName("layoutBoxContainer")){LHS.Layout.Boxes[$C(popupContainer).childBoxID].setSize(0,0,popupContainer.getDimensions().width,popupContainer.getDimensions().height)}else{var resizable=popupContainer.getElementsBySelector(".resize");for(var i=0;i<resizable.length;i++){if(resizable[i].resizeHandle){resizable[i].resizeHandle(diff)}else{resizable[i].style.height=((popupContainer.getDimensions().height-resizable[i].offsetTop)-10)+"px";resizable[i].style.overflow="auto"}}var resizable=popupContainer.getElementsBySelector(".resizeFull");for(var i=0;i<resizable.length;i++){if(resizable[i].resizeHandle){resizable[i].resizeHandle(diff)}else{resizable[i].style.height=(resizable[i].getDimensions().height-diff[1])+"px"}}}}},fullScreen:function(event,id){var popup=this.openPopups[id];var options=this.popupOptions[id];
var on=options.maximiseOn;var els=popup.getElementsBySelector(".sizer");for(var i=0;i<els.length;i++){if(on){els[i].hide()}else{els[i].show()}}this.resize(id,{width:(on)?(LHS.Sizer.windowSize().width-40):options.width,height:(on)?(LHS.Sizer.windowSize().height-40):options.height},true,false);popup.setStyle({"top":((on)?10:options.top)+"px","left":((on)?10:options.left)+"px"});options.maximiseOn=on=!on;var el=popup.getElementsBySelector(".maximise")[0];el.title=LHS.Globals.i18n["prompt.window.maximise-"+((on)?"on":"off")];el.removeClassName("maximiseOnIcon");el.removeClassName("maximiseOffIcon");el.addClassName("maximise"+((on)?"On":"Off")+"Icon");Event.stop(event)},initResizer:function(id,popupBody){var popup=this.openPopups[id];var options=this.popupOptions[id];var sizerImg=popup.getElementsBySelector("img.sizer")[0];var sizerHandle=popup.getElementsBySelector("div.sizer")[0];sizerHandle.setOpacity(0);sizerHandle.shadow=sizerImg;sizerHandle.startPos={x:sizerHandle.style.left,y:sizerHandle.style.top};
var drag=function(draggable){var el=draggable.element;var sizerBox=this.openPopups[id].getElementsBySelector(".sizerBox")[0];sizerBox.show();var calcx=((Position.page(el)[0]-Position.page(el.parentNode)[0])+10);var calcy=((Position.page(el)[1]-Position.page(el.parentNode)[1])+10);calcx=(calcx!==NaN)?(calcx>=options.minWidth)?(calcx):options.minWidth:null;calcy=(calcy!==NaN)?(calcy>=options.minHeight)?(calcy):options.minHeight:null;sizerBox.style.width=calcx+"px";sizerBox.style.height=calcy+"px"};var dragEnd=function(draggable){var el=draggable.element;this.openPopups[id].getElementsBySelector(".sizerBox")[0].hide();var calcx=((Position.page(el)[0]-Position.page(el.parentNode)[0])+10);var calcy=((Position.page(el)[1]-Position.page(el.parentNode)[1])+10);calcx=(calcx!==NaN)?(calcx>=options.minWidth)?(calcx):options.minWidth:null;calcy=(calcy!==NaN)?(calcy>=options.minHeight)?(calcy):options.minHeight:null;this.resize(id,{width:calcx,height:calcy},true,true);el.style.top=el.style.left=""};
var d=new Draggable(sizerHandle,{zindex:1010,onDrag:drag.bind(this),onEnd:dragEnd.bind(this)})}};Event.observe(window,"resize",LHS.PopupWidget.resizeModalScreen);LHS.Loader.addLoadMethod("button.closePopup, a.closePopup",LHS.PopupWidget.closeThis);LHS.DialogWidget=Class.create();Object.extend(LHS.DialogWidget,{id:"dialogPopup",create:function(message,title,type,buttons,method,escaped,scrolling){var dw=new LHS.DialogWidget(message,title,type,buttons,method,escaped,scrolling)},titleBar:function(){return $N.div({className:"title",id:LHS.DialogWidget.id+"_title"},{})},container:function(id,content){return $N.div({className:"body"},$N.div({className:"padding"},$N.div({className:"content",id:id},content?content:"")))},returnDefaultOptions:function(){return{modal:true,dialog:true,type:"warning",resizable:false,closeable:true,minimizable:false,width:520+"px",height:180+"px"}}});LHS.DialogWidget.prototype={defaultOptions:{},initialize:function(message,title,type,buttons,method,escaped,options){this.defaultOptions=Object.extend(LHS.DialogWidget.returnDefaultOptions(),options||{});
this.defaultOptions.type=type;LHS.PopupWidget.createPopup(LHS.DialogWidget.id,"",this.defaultOptions);var dialog=$(LHS.DialogWidget.id);dialog.update("");if(message){if(!escaped){message=unescape(message).unescapeHTML()}var msgEl=$N.div();dialog.appendChild($N("div",{className:(this.defaultOptions.scrolling)?"":"message",style:{height:(this.defaultOptions.height)?parseFloat(this.defaultOptions.height)-73+"px":"auto"}},title!==""?$N("h2",{},title.unescapeHTML()):"",msgEl));msgEl.update(message)}var buttonHolder=$N.div({className:"buttons"});dialog.appendChild(buttonHolder);buttons.each(function(button){var element=buttonHolder.appendChild($N.a({className:button.type,id:button.id},button.label));Event.observe(element,"click",function(){if(method){method(button.result)}if(button.close===true){LHS.PopupWidget.closePopup(LHS.DialogWidget.id)}})})}};LHS.QTree=Class.create();LHS.QTree.prototype={initialize:function(root){root=$(root);if(!root){return false}var nodes=root.getElementsByTagName("li");
for(var i=0;i<nodes.length;i++){this.redrawNode(nodes[i],i,root)}Event.observe(root,"click",this.onClick.bindAsEventListener(this))},plusMinus:$N("a",{href:"#",className:"plusMinus"},$nbsp),redrawNode:function(liNode,i,root){liNode=$(liNode);var childUl=liNode.getElementsByTagName("ul")[0];if(childUl){if(i!==0){childUl.style.display="none"}if(Element.qHasClassName(childUl,"jsHidden")){Element.qRemoveClassName(childUl,"jsHidden")}var tocItem=liNode.getElementsByTagName("div")[0];var plusMinusClone=liNode.getElementsByTagName("a")[0];if(!plusMinusClone||plusMinusClone.parentNode!=liNode){plusMinusClone=$(this.plusMinus.cloneNode(true));liNode.insertBefore(plusMinusClone,liNode.firstChild)}if(Element.qHasClassName(tocItem,"open")||i===0){Element.qAddClassName(plusMinusClone,"open");Element.qAddClassName(liNode,"open");Element.qAddClassName(tocItem,"firstNode")}}if(Element.qHasClassName(liNode,"selected")){this.openToItem(root,liNode)}var checkBox=liNode.down("input[type=checkbox]");if(liNode.hasClassName("selectParent")&&checkBox){Event.observe(checkBox,"click",function(){if(this.checked===true){liNode.ancestors().each(function(el){var elCB=el.down("input[type=checkbox]");
if(el.hasClassName("selectParent")&&elCB){elCB.checked=true}})}else{liNode.descendants().each(function(el){var elCB=el.down("input[type=checkbox]");if(el.hasClassName("selectParent")&&elCB){elCB.checked=false}})}}.bind(checkBox))}},onClick:function(event){var element=Event.element(event);if(Element.qHasClassName(element,"plusMinus")){var liNode=element.parentNode;var childUl=liNode.getElementsByTagName("ul")[0];var tocItem=liNode.getElementsByTagName("div")[0];if(Element.qHasClassName(element,"open")){Effect.BlindUp(childUl,{duration:0.2,afterFinish:function(){Element.qRemoveClassName(liNode,"open");Element.qRemoveClassName(element,"open");Element.qRemoveClassName(tocItem,"firstNode")}})}else{if(Element.qHasClassName(childUl,"toLoad")){var autoLoadLink=childUl.getElementsByTagName("a")[0];var redrawNode=this.redrawNode;LHS.Remoting.invoke(autoLoadLink,{onComplete:function(element){element.down("ul").immediateDescendants().each(function(newLi){childUl.appendChild(newLi)});element.remove();
autoLoadLink.up("li").remove();Element.qRemoveClassName(childUl,"toLoad");var nodes=childUl.getElementsByTagName("li");for(var i=0;i<nodes.length;i++){redrawNode(nodes[i],i)}}})}Effect.BlindDown(childUl,{duration:0.2});Element.qAddClassName(liNode,"open");Element.qAddClassName(element,"open");Element.qAddClassName(tocItem,"firstNode")}element.blur();Event.stop(event)}},openToItem:function(root,liNode){var parentUl=liNode.parentNode,parentLi;var childUl=liNode.getElementsByTagName("ul")[0];if(childUl){childUl.style.display="block"}while(parentUl!=root){parentLi=parentUl.parentNode;parentUl.style.display="";Element.qAddClassName(parentLi,"open");Element.qAddClassName(parentLi.getElementsByTagName("a")[0],"open");Element.qAddClassName(parentLi.getElementsByTagName("div")[0],"firstNode");parentUl=parentLi.parentNode}}};Object.extend(LHS.QTree,{trees:[],initTree:function(element){LHS.QTree.trees.push(new LHS.QTree(element))}});Element.qHasClassName=function(element,className){return(" "+element.className+" ").indexOf(" "+className+" ")!==-1
};Element.qAddClassName=function(element,className){if(!Element.qHasClassName(element,className)){element.className=element.className+" "+className}};Element.qRemoveClassName=function(element,className){element.className=(" "+element.className+" ").replace(" "+className+" "," ").trim()};if(typeof LHS.Tree==="undefined"){LHS.Loader.addLoadMethod("ul.LHStree",LHS.QTree.initTree)}LHS.Datepicker=Class.create();LHS.Datepicker.prototype={opts:null,initialize:function(element,opts){this.inputField=$(element);this.opts=opts?opts:{};if(!this.inputField||this.inputField.value===""){this.currentDate=new Date();if(opts.startingDate){this.currentDate=Date.parse(opts.startingDate)}}else{var tryDate=Date.parse(this.inputField.value);this.currentDate=isNaN(tryDate.getTime())?new Date():tryDate}this.startDate=new Date(this.currentDate);this.today=new Date();LHS.PopupWidget.createPopup("datePicker",LHS.Globals.i18n.selectDate,{width:252,height:162,modal:true});this.datePicker=$("datePicker");this.dateTable=this.makeMonth(this.currentDate);
this.datePicker.appendChild(this.dateTable);Event.observe(this.datePicker,"click",this.clickDate.bindAsEventListener(this))},clickDate:function(event){var element=Event.element(event);if(element.up(".next")){this.currentDate.setMonth(this.currentDate.getMonth()+1);this.dateTable=this.makeMonth(this.currentDate);this.datePicker.update("");this.datePicker.appendChild(this.dateTable)}else{if(element.up(".prev")){this.currentDate.setMonth(this.currentDate.getMonth()-1);this.dateTable=this.makeMonth(this.currentDate);this.datePicker.update("");this.datePicker.appendChild(this.dateTable)}else{if(element.hasClassName("dayRtn")){this.inputField.value=(this.opts.format)?element.title.substringBefore(" ")+" 0:00":element.title;if(this.opts.updateEl){var updateEl=$$('input[name="'+this.opts.updateEl+'"]')[0];if(updateEl){$(updateEl).addClassParam({startingDate:element.title})}}if(typeof this.inputField.runRules=="function"){this.inputField.runRules()}LHS.PopupWidget.closePopup("datePicker")}}}Event.stop(event)
},makeMonth:function(date){var headers=LHS.Globals.i18n.week_abbr.collect(function(day){return $N.th({className:"days"},day)});date.setSeconds(0);date.setMilliseconds(0);var weeks=[];var m=date.getMonth(),d=1;for(var i=0;i<6;i++){var weekdate=new Date(date);weekdate.setDate(d+(i*7));weeks.push(this.makeWeek(weekdate,m))}return $N.table($N.thead($N.tr($N.th({className:"prev"},$N.img({alt:"Previous",src:$context+"/images/icons/small/arrow-left.gif"})),$N.th({colSpan:5,className:"month"},LHS.Globals.i18n.month_long[date.getMonth()]," ",date.getFullYear()),$N.th({className:"next"},$N.img({alt:"Next",src:$context+"/images/icons/small/arrow-right.gif"}))),$N.tr(headers)),$N.tbody(weeks))},makeWeek:function(date,month){var days=[];var d=date.getDate()-date.getDay();for(var i=0;i<7;i++){var daydate=new Date(date);daydate.setDate(d+i);days.push(this.makeDay(new Date(daydate),month))}return $N.tr(days)},makeDay:function(date,month){var min=this.opts.minimum?date>=new Date(this.opts.minimum).setSeconds(date.getSeconds()):true;
var max=this.opts.maximum?date<=new Date(this.opts.maximum).setSeconds(date.getSeconds()):true;var td=$N.td({className:"days "+(min&&max?"dayRtn":""),title:date.format()},date.getDate());if(date.getMonth()!=month){td.addClassName("notThisMonth")}if(date.sameDay(this.today)){td.addClassName("today")}else{if(date.sameDay(this.startDate)){td.addClassName("selected")}}return td}};Object.extend(LHS.Datepicker,{attach:function(element){element.addClassName("dropdown");var button=$N.a({href:"#"},$N.img({className:"dropdown",src:$context+"/images/icons/small/date.gif",title:LHS.Globals.i18n["prompt.date.select"]}));element.parentNode.insertBefore(button,element.nextSibling);Event.observe(button,"click",function(event){var opts=$C(element);var picker=new LHS.Datepicker(element,opts);Event.stop(event)}.bindAsEventListener(button))}});LHS.Loader.addLoadMethod("input.date",LHS.Datepicker.attach);LHS.FormControl={initHighlightRow:function(element){Event.observe(element,"click",LHS.FormControl.highlightRow.bindAsEventListener(element))
},highlightRow:function(event){var row=this.up("tr");row[this.checked?"addClassName":"removeClassName"]("selected")},initOverride:function(element){var question=element.up(".question");var controls=question.getElementsBySelector("ul.buttonStrip");if(controls){controls.invoke(element.checked?"hide":"show")}Event.observe(element,"click",LHS.FormControl.override.bind(element))},override:function(event){var checkbox=this;var form=checkbox.up("form");var question=checkbox.up(".question");var fields=question.getElementsBySelector("input, select, textarea").without(checkbox);var labels=question.getElementsBySelector("label, a.browseControl");var controls=question.getElementsBySelector("ul.buttonStrip");fields.invoke("enable");var oldValue={};var questionName=$C(question).qName;oldValue[questionName]=Form.serialize(form,true)[questionName];fields.invoke(checkbox.checked?"disable":"enable");labels.invoke(checkbox.checked?"addClassName":"removeClassName","disabled");if(controls){controls.invoke(checkbox.checked?"hide":"show")
}var values=$C(checkbox);delete values.defaultOverRide;form.populate(values);fields.each(function(element){if(element.updateDisplay){element.updateDisplay()}});checkbox.addClassParam(oldValue)},initSelectAll:function(element){Event.observe(element,"click",LHS.FormControl.selectAll.bindAsEventListener(element))},selectAll:function(event){var checkbox=this;checkbox.up("form").getElementsBySelector('input[type="checkbox"]').each(function(field){field.checked=checkbox.checked;var row=field.up("tr");if(row){row[checkbox.checked?"addClassName":"removeClassName"]("selected")}})},initHighlight:function(element){if(!$w("image submit checkbox radio button").include(element.type)){var promptEl=$("prompt_"+element.id);if(element.hasClassName("titleText")){if(element.value===""){element.value=element.title}eval("element."+(element.value==element.title?"add":"remove")+"ClassName('suggestedValue')")}if(!element.hasAttribute("readonly")){element.addClassName("unselected")}Event.observe(element,"focus",LHS.FormControl.inputFocus.bindAsEventListener(element,promptEl));
Event.observe(element,"blur",LHS.FormControl.inputBlur.bindAsEventListener(element,promptEl))}},initFormPopulator:function(element){Event.observe(element,"click",LHS.FormControl.formPopulator.bindAsEventListener(element,element))},formPopulator:function(event,element){var form=element.up("form");form.populate($C(element),function(hash,field){if(field.hasClassName("defaultOverRide")){if(!field.checked){var classParams=$C(field);delete classParams.defaultOverRide;var fieldName=classParams.keys()[0];var newValue={};newValue[fieldName]=hash[fieldName];field.addClassParam(newValue);return }}if(!field.disabled){return }return hash[field.name]});form.getElements().each(function(element){if(element.updateDisplay){element.updateDisplay()}})},inputFocus:function(event,promptEl){if(!this.hasAttribute("readonly")){this.removeClassName("unselected");this.addClassName("selected");if(this.hasClassName("titleText")&&this.value==this.title){this.removeClassName("suggestedValue");this.value=""}if(promptEl!==null){Effect.Appear(promptEl,{duration:0.2})
}}},inputBlur:function(event,promptEl){if(!this.hasAttribute("readonly")){this.addClassName("unselected");this.removeClassName("selected");if(this.hasClassName("titleText")&&this.value===""){this.value=this.title;this.addClassName("suggestedValue");if($C(this).reset){toReset=$C(this).reset.replace(/ /g,"_");$(toReset).value="0"}}if(promptEl!==null){Effect.Fade(promptEl,{duration:0.2})}}},changeAction:function(element){Event.observe(element,(element.tagName==="SELECT"?"change":"click"),function(event){var url,target,urlParams,formParams,form,cParams,changeBefore,breaker;if(!element.hasClassName("disabled")){cParams=$C(element);form=$(cParams.form)||element.up("form");if(cParams.inputToChange){form[cParams.inputToChange].value=element.value;if(typeof cParams.doNothingIfValueIs!="undefined"&&(cParams.doNothingIfValueIs==element.value)){return false}}formParams=form.serialize(true);if(cParams.mandatory){$A([].concat(cParams.mandatory)).each(function(field){if(!formParams[field]){breaker=true
}$break})}if(breaker){return false}urlParams=$H(formParams);target=(typeof cParams.target!="undefined")?cParams.target:form.target;$A(cParams.exclude).each(function(excl){if(formParams[excl]!=null){urlParams.remove(excl)}});url=cParams.url+(cParams.url.indexOf("?")>-1?"&":"?")+urlParams.toQueryString();if(cParams.popup){var popObj=cParams;delete popObj.url;delete popObj.target;LHS.PopupWidget.createPopup(target,element.title,popObj)}else{if(!$(target)){LHS.TabWidget.getTabSet("Remoting").createTab(target,element.title)}}if(cParams.confirm){yesNo(cParams.confirmMsg,"",function(result){if(result==="ok"){LHS.Remoting.include(url,target)}},true)}else{LHS.Remoting.include(url,target)}}Event.stop(event)})},onChangeSubmit:function(element){Event.observe(element,"change",function(){var form=element.up("form");if(form){if(form.match("form[target],form.ajax")){LHS.Remoting.invoke(form)}else{form.submit()}}})},call:function(element){var cParams=$C(element);var action=cParams.action?cParams.action:"click";
cParams.each(function(pair){if(pair.key!=="action"&&typeof LHS.FormControl[pair.key]=="function"){Event.observe(element,action,function(){LHS.FormControl[pair.key].bind(element)(pair.value)})}})},clearStringAndSubmit:function(el){var cParams=$C(el);$(el).value=cParams.defaultVal?cParams.defaultVal:"";LHS.Remoting.invoke($(el).up("form"))},clearIntAndSubmit:function(el){var cParams=$C(el);$(el).value=cParams.defaultVal?Number(cParams.defaultVal):0;LHS.Remoting.invoke($(el).up("form"))},clearListAndSubmit:function(fieldName){var cParams=$C(this);var form=$(cParams.form);var inputs=Form.getInputs(form,"",fieldName);inputs.each(function(input){if(input.value==cParams.value){if(cParams.remove==="true"){Element.remove(input)}else{if(input.type=="checkbox"){input.checked=false}else{input.value=cParams.defaultVal||""}}}});LHS.Remoting.invoke(form)},submit:function(el){LHS.Remoting.invoke($(el))},checkAll:function(el){$A($(el).getElementsBySelector("input[type=checkbox]")).each(function(el){var row=el.up("tr");
el.checked=this.checked;if(row){row[el.checked?"addClassName":"removeClassName"]("selected")}}.bind(this))},initSelectFirst:function(el){Event.observe(el,"click",LHS.FormControl.selectFirst.bindAsEventListener(el))},selectFirst:function(e){var selected=false;var form=this.up("form");var method=null;var els=form.getElementsBySelector("input[type=checkbox]");for(var i=0;i<els.length;i++){if(els[i].checked&&!els[i].hasClassName("selectAll")){selected=true;break}}if(!selected){alert($C(this).msg);Event.stop(e)}else{if(this.name=="method"&&(method=form.down("input[type=hidden][name=method]"))){method.value=this.value}}},charLimiter:function(el){if(!$("application")){var charFunc=function(){var cParams=$C(this);var minlength=cParams.minlength?cParams.minlength:null;var maxlength=cParams.maxlength?cParams.maxlength:null;var charLength=$F(this).length;var td=this.up("tr.question").down("td");var msg=new Template(LHS.Globals.i18n["errors.validation.character-count"]);if(td.down("div.errorCount")){td.down("div.errorCount").remove()
}if(maxlength){if(charLength<maxlength){td.appendChild($N.div({className:"error errorCount"},msg.evaluate({maxlength:maxlength,left:Number(maxlength-charLength)})))}else{this.value=this.value.substring(0,maxlength)}}};Event.observe(el,"focus",charFunc.bindAsEventListener(el));Event.observe(el,"blur",function(){var td=this.up("tr.question").down("td");if(td.down("div.errorCount")){td.down("div.errorCount").remove()}}.bindAsEventListener(el));Event.observe(el,"keyup",charFunc.bindAsEventListener(el))}},focusFirstPopupFormField:function(form){if(form.up("div.popupWindow")){var field=form.getElementsBySelector("input[type!=hidden],select,textarea").find(function(field){return field.disabled==false});if(field&&typeof field.focus=="function"){field.focus()}}}};LHS.Loader.addLoadMethod("input,textarea",LHS.FormControl.initHighlight);LHS.Loader.addLoadMethod('input.defaultOverRide[type="checkbox"]',LHS.FormControl.initOverride);LHS.Loader.addLoadMethod('input.selectAll[type="checkbox"]',LHS.FormControl.initSelectAll);
LHS.Loader.addLoadMethod("input.formPopulator",LHS.FormControl.initFormPopulator);LHS.Loader.addLoadMethod("select.onChangeSubmit,input.onChangeSubmit",LHS.FormControl.onChangeSubmit);LHS.Loader.addLoadMethod("button.doOnClick, input.doOnClick",LHS.FormControl.call);LHS.Loader.addLoadMethod('table.listTable tr input[type="checkbox"]',LHS.FormControl.initHighlightRow);LHS.Loader.addLoadMethod("button.formChange, select.formChange",LHS.FormControl.changeAction);LHS.Loader.addLoadMethod("input.selectFirst",LHS.FormControl.initSelectFirst);LHS.Loader.addLoadMethod("textarea.charLimiter",LHS.FormControl.charLimiter);LHS.Loader.addLoadMethod("form",LHS.FormControl.focusFirstPopupFormField);LHS.FormRules={getQuestion:function(param,question){if(!question.getQuestion){question.getQuestion={}}if(!question.getQuestion[param]){var qElementId=$C(question).id;switch(param){case"this":question.getQuestion[param]=$(qElementId);break;case"nextQuestion":question.getQuestion[param]=$(qElementId).down("fieldset.question")|$(qElementId).next(".question");
break;case"nextGroup":question.getQuestion[param]=$$('a[href="#'+$(qElementId).up(".formPage").next(".formPage").id+'"]')[0].up("li");break;default:question.getQuestion[param]=$(qElementId.substringBefore("_")+"_"+param)||$("formPage_"+param);break}}return question.getQuestion[param]},getFields:function(fieldset,type){if(!fieldset.fields){if(type==="filetypes"){fieldset.fields=fieldset.getElementsBySelector('input[type="file"]')}else{var idString=fieldset.id.substringAfter("_");fieldset.fields=fieldset.getElementsBySelector('input[name^="'+idString+'"], select[name^="'+idString+'"], textarea[name^="'+idString+'"]')}}return fieldset.fields},value:function(param,question,type){var fieldset=this.getQuestion(param,question);return this.getFields(fieldset,type).collect($F).join("")},length:function(param,question){return this.value(param,question,null).length},count:function(param,question){var fieldset=this.getQuestion(param,question);return this.getFields(fieldset).findAll(function(field){if(field.options){return(field.options[field.selectedIndex].value!="")
}return field.checked===true||field.selected===true||(["text","textarea"].include(field.type)&&field.value!=="")}).length},allvalues:function(param,question){var fieldset=this.getQuestion(param,question);return this.getFields(fieldset)},string:function(param,question){return param},answer:function(param,question){return param},number:function(param,question){return Number(param)},show:function(param,question){var fieldset=this.getQuestion(param,question);if(fieldset.hasClassName("formPage")){var pageLink=$$("a[href=#"+fieldset.id+"]")[0];if(pageLink){pageLink.up("li").show()}fieldset.removeClassName("skip")}else{if(fieldset.up("div.fieldsetWrapper")){fieldset.up("div.fieldsetWrapper").show()}fieldset.show()}this.getFields(fieldset).invoke("enable");return true},hide:function(param,question){var fieldset=this.getQuestion(param,question);if(fieldset.hasClassName("formPage")){var pageLink=$$("a[href=#"+fieldset.id+"]")[0];if(pageLink){pageLink.up("li").hide()}fieldset.addClassName("skip")}else{if(fieldset.up("div.fieldsetWrapper")){fieldset.up("div.fieldsetWrapper").hide()
}fieldset.hide()}this.getFields(fieldset).invoke("disable");return true},defaultValue:function(param,question){var fieldset=this.getQuestion(param,question);fieldset.hide();this.getFields(fieldset).each(function(field){if(field.hasClassName("isCurValue")){field.checked=true}else{if(field.getAttribute("value")!==null){field.value=field.getAttribute("value")}}});return true},error:function(param,question,ruleId,classParam){var questionField=this.getFields(question)[0];if(questionField&&!questionField.disabled){try{question.down(".qStatus").removeClassName("qStatusCorrect")}catch(e){}try{question.down(".qStatus").addClassName("qStatusError")}catch(e){}question.addClassName("error");if(typeof LHSPortal!="undefined"){LHSPortal.submitButton.reset()}var errorBox=$(question).down(".errors");if(errorBox&&!errorBox.down("."+ruleId)){if(param.include("{")){if(classParam.length>1){classParam=$A(classParam).map(function(i){return" "+i})}if(ruleId==="filetypes"){var val=question.down("input.upload").value.split(".").pop();
param=(new Template(param.replace(/{/g,"#{"))).evaluate([val])}else{param=(new Template(param.replace(/{/g,"#{"))).evaluate([classParam])}}errorBox.appendChild($N.div({className:ruleId+" error"},param))}return false}else{return true}},message:function(param,question){alert(param);return true},ok:function(question,ruleId){if(errorBox=$(question).down(".errors")){if(error=errorBox.down("."+ruleId)){error.remove()}}return true},and:function(exps){for(var i=0;i<exps.length;i++){if(!exps[i]){return false}}return true},compare:function(value1,using,value2){var result;switch(using){case"contains":result=String(value1).include(String(value2));break;case"!contains":result=!String(value1).include(String(value2));break;case"matches":result=(new RegExp(value2)).test(value1);break;case"!matches":result=!(new RegExp(value2)).test(value1);break;case"java":result=false;break;case"password":result=false;break;case"dateAfter":if(value1.replace(/ /g,"")==""||value2.replace(/ /g,"")==""){return result=false
}var d1=(new Date(Date.parse(value1))).getTime();var d2=(new Date(Date.parse(value2))).getTime();return result=(isNaN(d1)||isNaN(d2))?true:(d1<d2);break;case"dateBefore":if(value1.replace(/ /g,"")==""||value2.replace(/ /g,"")==""){return result=false}var d1=(new Date(Date.parse(value1))).getTime();var d2=(new Date(Date.parse(value2))).getTime();return result=(isNaN(d1)||isNaN(d2))?true:(d1>=d2);break;case"matchFileExtension":var val=String(value1).split(".").pop().strip().toLowerCase();result=(String(value1)===""?false:(value2.indexOf(val)===-1));break;case"testfilesize":result=false;break;case"dangerousFileTypes":result=false;break;case"notunique":var testArray=new Array();for(var i=0;i<value1.length;i++){if(value1[i].options[value1[i].selectedIndex].value!=""){testArray.push(value1[i].options[value1[i].selectedIndex].value)}}result=(testArray.length!=testArray.uniq().length);break;case"captcha":result=false;break;default:value1=($T.isString(value1))?'"'+value1.replace(/"/g,"|").replace(/\r|\n/g,"")+'"':value1;
value2=($T.isString(value2))?'"'+value2.replace(/"/g,"|").replace(/\r|\n/g,"")+'"':value2;result=false;try{eval("result = "+value1+using.unescapeHTML()+value2)}catch(e){}break}return result},rules:$H({}),createRule:function(ruleName,outcomes,rule){this.rules[ruleName]={method:rule,results:outcomes}},attachRules:function(form,run,func){form=$(form);if(form){var rule,boundFunction,question,element=null,toRunNow=[];var types={"text":"change","file":"change","password":"change","textarea":"change","radio":"click","checkbox":"click","select-one":"change"};if(!form.rules){form.rules=[];if(!form.hasClassName("ajax")){Event.observe(form,"submit",LHS.FormRules.runRules.bindAsEventListener(form,form,func));var skipValidation=form.getElementsBySelector("input.skipValidation")[0];if(skipValidation){Event.observe(skipValidation,"click",function(){form.skipValidation=true}.bindAsEventListener(form))}}}LHS.FormRules.rules.each(function(rule){form.getElementsBySelector("."+rule.key).each(function(element){question=element.up(".question");
if(!element.rules){element.rules=[];element.runRules=LHS.FormRules.runQRules.bindAsEventListener(element,element,question,func);Event.observe(element,types[element.type],element.runRules)}boundFunction=rule.value.method.bind(element,question,rule.value);element.rules.push(boundFunction);if(rule.value.results.include("hide")||rule.value.results.include("show")){boundFunction()}if(rule.value.results.include("error")){form.rules.push(boundFunction)}if(run||form.runOnLoad){LHS.FormRules.runQRules(null,element,question,func)}})})}},runRules:function(event,form,func){var valid=true;if(form.skipValidation!==true&&form.rules&&form.rules.length>0){form.rules.each(function(rule){valid=rule()&&valid});if(!valid){var firstError=form.down(".error");try{if(form.hasClassName("formPages")){var page=firstError.up(".formPage");if(typeof LHSPortal!=="undefined"){LHSPortal.MultiPageForm.show(page,0,null)}else{if(LHS.TabWidget.getTabSet(form.down(".tabSet").id)){LHS.TabWidget.getTabSet(form.down(".tabSet").id).selectTab(page.id)
}}}errorInput=this.getFields(firstError.up(".question"))[0];if(errorInput){errorInput.focus()}if(event){Event.stop(event)}}catch(e){LHS.Dev.log(e)}}}if(func){func(valid)}if(!valid){Event.stop(event)}return valid},runQRules:function(event,element,question,func){var valid=true;try{question.down("span.bad").remove()}catch(e){}try{question.down("span.good").remove()}catch(e){}if(element.rules&&element.rules.length>0){element.rules.each(function(rule){valid=rule()&&valid});if(valid){try{question.down(".qStatus").removeClassName("qStatusError")}catch(e){}question.removeClassName("error");try{question.down(".qStatus").addClassName("qStatusCorrect")}catch(e){}}if(func){func(valid)}}}};LHS.AddressLookup={};LHS.AddressLookup.Methods={populate:function(formVals,formId){var form=$(formId);var input,row;if(form){$H(formVals).each(function(pair){input=form.getElementsBySelector("input[name="+pair.key+"]")[0];if(input){row=input.up(".question");if(row){row.show()}input.value=(pair.value)?pair.value:(pair.key!="metadata:organisation")?"":input.value
}})}}};LHS.AddressLookup.Configs={DEFAULT:null,US:function(){var stages=function(initValue){return[{nm:"ByStreetResult",url:$context+"/gazetteerService?action=byStreet&street=&town=code="+initValue,fieldName:"streetKey",selector:"InterimResult"},{nm:"ByStreetKeyResult",url:$context+"/gazetteerService?action=byStreetKey",fieldName:"streetKey",selector:"InterimResult"},{nm:"FetchAddressResult",url:$context+"/gazetteerService?action=fetchAddress",fieldName:"id",selector:"Address"}]};var onComplete=function(json,target,formId){var formVals={"metadata:organisation":json.OrganisationName||null,"metadata:addressLine1":json.Line1||null,"metadata:addressLine2":json.Line2||null,"metadata:addressLine3":json.Line3||null,"metadata:addressLine4":json.Building||null,"metadata:addressLine5":json.State||null,"metadata:postTown":json.City||null,"metadata:postCounty":json.State||null,"metadata:postCode":json.Zip4||json.Zip||null};LHS.AddressLookup.Methods.populate(formVals,formId);var request=new Ajax.Request($context+"/gazetteerService?action=geocodeAddressId&id="+json.Id,{onSuccess:function(transport){var json=eval("("+transport.responseText+").GeocodeAddressIdResult.Results.GeocodeResult");
var formVals={"metadata:longitude":json.Longitude,"metadata:latitude":json.Latitude};LHS.AddressLookup.Methods.populate(formVals,formId)}});LHS.PopupWidget.closePopup(target)};return{stages:stages,onComplete:onComplete}},international:function(){var stages=function(initValue){return[{nm:"FetchStreetsResult",url:$context+"/gazetteerService?action=byStreet&street=&town="+initValue,fieldName:"address",selector:"StreetResult"}]};var onComplete=function(selected,target,formId){var json=selected.value.toQueryParams();var formVals={"metadata:addressLine1":json.Street||null,"metadata:addressLine2":json.District||null,"metadata:addressLine3":json.State||null,"metadata:postTown":json.City||null,"metadata:postCode":json.Postcode||null};LHS.AddressLookup.Methods.populate(formVals,formId);var request=new Ajax.Request($context+"/gazetteerService?action=geocodeAddressId&id="+Object.values(formVals).toString().replace(/,/g," "),{onSuccess:function(transport){var json=eval("("+transport.responseText+").GeocodeAddressResult.Results.GeocodeResult");
json=json[0]||json;var formVals={"metadata:longitude":json.Longitude,"metadata:latitude":json.Latitude};LHS.AddressLookup.Methods.populate(formVals,formId)},onComplete:function(){LHS.PopupWidget.closePopup(target)}})};var addValue=function(obj){return Hash.toQueryString(obj)};return{stages:stages,onComplete:onComplete,addValue:addValue,runOnComplete:0}},UK:function(){var stages=function(initValue){return[{nm:"ByPostcodeResult",url:$context+"/gazetteerService?action=byPostcode&postcode="+initValue,fieldName:"id",selector:"InterimResult"},{nm:"FetchAddressResult",url:$context+"/gazetteerService?action=fetchAddress",fieldName:"id",selector:"Address"}]};var onComplete=function(json,target,formId){var formVals={"metadata:organisation":json.OrganisationName||null,"metadata:addressLine1":json.Line1||null,"metadata:addressLine2":json.Line2||null,"metadata:addressLine3":json.Line3||null,"metadata:addressLine4":json.Line4||null,"metadata:addressLine5":json.Line5||null,"metadata:postTown":json.PostTown||null,"metadata:postCounty":json.County||null,"metadata:postCode":json.Postcode||null,"metadata:mailsort":json.Mailsort||null,"metadata:barcode":json.Barcode||null};
LHS.AddressLookup.Methods.populate(formVals,formId);var request=new Ajax.Request($context+"/gazetteerService?action=geocodeAddressId&id="+json.Id,{onSuccess:function(transport){var json=eval("("+transport.responseText+").GeocodeAddressIdResult.Results.GeocodeResult");var formVals={"metadata:longitude":json.Wgs84Longitude,"metadata:latitude":json.Wgs84Latitude};LHS.AddressLookup.Methods.populate(formVals,formId)}});LHS.PopupWidget.closePopup(target)};return{stages:stages,onComplete:onComplete}}};LHS.AddressLookup.Instance=Class.create();LHS.AddressLookup.Instance.prototype={initialize:function(obj){Object.extend(this,obj);this.submit=$N.input({type:"submit",value:LHS.Globals.i18n["prompt.okay"],className:"right",style:{marginTop:"8px"}});this.select=$N.select({size:"13",name:"Id",style:{width:"680px"},className:"paddingSmall"});this.selectHolder=$N.div({},this.select);this.form=$N.form({action:this.stages[0].url,target:this.target,style:{padding:"10px"}},this.selectHolder,this.submit);LHS.PopupWidget.createPopup(this.target,LHS.Globals.i18n["prompt.gazetteer.addresses"],{modal:true,width:"700px",height:"270px",page:this.form,minimizable:false});
this.populate(this.stages[0].url);Event.observe(this.selectHolder,"dblclick",this.ajaxNextStage.bind(this));Event.observe(this.submit,"click",this.ajaxNextStage.bind(this))},populate:function(url){var action=this.stages[0].nm;var selector=this.stages[0].selector;this.select.update("");var request=new Ajax.Request(url,{onSuccess:function(transport){var rawJson=eval("("+transport.responseText+")");var json=rawJson[action];if(this.stages.length===1&&!(this.runOnComplete||this.runOnComplete===0)){this[json.IsError==="true"?"onFail":"onComplete"](json.Results[selector],this.target,this.addressFormId)}else{this.render(json.Results?($T.isArray(json.Results[selector]))?json.Results[selector]:[json.Results[selector]]:null)}this.stages.shift();if($(this.target)){LHS.Effects.removeLoading(this.target);this.submit.style.display=this.select.style.display="block"}}.bind(this)})},ajaxNextStage:function(event){if(this.select.selectedIndex!==-1){var thisStage,url;var selected=this.select.options[this.select.selectedIndex];
this.submit.style.display=this.select.style.display="none";LHS.Effects.addLoading(this.target);if(this.runOnComplete===this.stages.length){this.onComplete(selected,this.target,this.addressFormId)}else{thisStage=this.stages[0];url=thisStage.url+"&"+(this.select.name=thisStage.fieldName)+"="+selected.value;this.populate(url)}}Event.stop(event)},render:function(jsonArray){var value,desc,opt;var newSelect;if(jsonArray){newSelect=this.selectHolder.innerHTML.replace(/<\/select>/i,"");for(var i=0,len=jsonArray.length;i<len;i++){if(this.addValue){value=this.addValue(jsonArray[i]);desc=Object.values(jsonArray[i]).toString().replace(/,/g,", ")}newSelect+='<option value="'+(value||jsonArray[i].Id)+'" >'+(desc||jsonArray[i].Description)+"</option>";value=desc=null}this.selectHolder.update(newSelect+"</select>");this.select=this.selectHolder.down("select")}else{this.selectHolder.update('<p class="information">'+LHS.Globals.i18n["prompt.gazetteer.no-address"]+"</p>");this.submit.remove()}}};LHS.ConsulteeForm={form:null,initUsernameCheck:function(usernameField,context,userId){usernameField=$(usernameField);
userId=userId|0;if($T.isReal(usernameField)&&usernameField.type!="hidden"){var button=(usernameField.up(".popupContainer"))?$N.button({},LHS.Globals.i18n["images.check.alt"]):$N.input({type:"image",className:"image",src:$context+"/"+LHS.Globals.i18n["images.check"],alt:LHS.Globals.i18n["images.check.alt"]});usernameField.up("td").appendChild(button);Event.observe(usernameField,"change",function(event){usernameField.up(".question").down("div.errors").appendChild($N.span({id:"usernameValid"},""))}.bindAsEventListener(usernameField));Event.observe(button,"click",function(event){if(usernameField.value!==""){LHS.Remoting.include(context+"/commonService/registration/checkUsername?id="+userId+"&username="+usernameField.value+"&$resultElement=span","usernameValid")}usernameField.focus();Event.stop(event)}.bindAsEventListener(button));usernameField.up(".question").down("div.errors").appendChild($N.span({id:"usernameValid"},""))}},selectAddress:function(selectField){selectField=$(selectField);eval("var jsonFields = "+selectField.options[selectField.selectedIndex].value);
LHS.ConsulteeForm.form.populate(jsonFields);LHS.PopupWidget.closePopup("addresses");this.rowsToHide.invoke("show")},initPostcodeLookup:function(postField,showFields,country){postField=$(postField);var btnDiv;if($T.isReal(postField)){LHS.ConsulteeForm.form=postField.up("form");var findButton=null;if(typeof LHSPortal!="undefined"){findButton=postField.up("td").appendChild($N.a({href:"#"},$N.img({className:"image",src:$context+"/"+LHS.Globals.i18n["images.find-address"],alt:LHS.Globals.i18n["prompt.gazetteer.find-address"]})))}else{btnDiv=$N.div({className:"btnContainer"});postField.up("td").appendChild(btnDiv);findButton=postField.up("td").down("div.btnContainer").appendChild($N.button({},LHS.Globals.i18n["prompt.gazetteer.find-address"]))}Event.observe(findButton,"click",function(event){if(postField.value!=""){var alc=LHS.AddressLookup.Configs.DEFAULT;var key="UK";if(!alc){if(country==="US"){key="US"}else{if(country!="GB"){key="international"}}alc=LHS.AddressLookup.Configs.DEFAULT=LHS.AddressLookup.Configs[key]()
}var ali=new LHS.AddressLookup.Instance({target:"addresses",addressFormId:$C(LHS.ConsulteeForm.form).id,stages:alc.stages(postField.value),onComplete:alc.onComplete,runOnComplete:alc.runOnComplete,addValue:alc.addValue})}Event.stop(event)});if(!showFields){this.rowsToHide=$w("metadata:addressLine1 metadata:addressLine2 metadata:addressLine3 metadata:postTown metadata:postCounty metadata:latitude metadata:longitude metadata:easting metadata:northing metadata:UPRN metadata:barcode metadata:mailsort").collect(function(field){return LHS.ConsulteeForm.form.getElementsBySelector("input[name="+field+"]")[0].up(".question")}).compact().invoke("hide");var addButton=null;if(typeof LHSPortal!="undefined"){addButton=postField.up("td").appendChild($N.a({href:"#"},$N.img({id:"addressesAdd",className:"image",src:$context+"/"+LHS.Globals.i18n["images.add-manually"],alt:LHS.Globals.i18n["prompt.gazetteer.add-manually"]})))}else{addButton=postField.up("td").down("div.btnContainer").appendChild($N.button({id:"addressesAdd"},LHS.Globals.i18n["prompt.gazetteer.add-manually"]))
}Event.observe(addButton,"click",function(event){this.rowsToHide.invoke("show");addButton.hide();Event.stop(event)}.bind(this))}Event.observe(LHS.ConsulteeForm.form,"submit",function(event){if(LHS.ConsulteeForm.rowsToHide){LHS.ConsulteeForm.rowsToHide.invoke("show")}if(addButton){addButton.hide()}})}},initPostcodeDemo:function(postField){if($T.isReal(postField)){LHS.ConsulteeForm.form=postField.up("form");var btnDiv=$N.div({className:"btnContainer"});postField.up("td").appendChild(btnDiv);var findButton=postField.up("td").down("div.btnContainer").appendChild($N.button({},LHS.Globals.i18n["prompt.gazetteer.find-address"]));Event.observe(findButton,"click",function(event){LHS.PopupWidget.createPopup("addresses",LHS.Globals.i18n["prompt.gazetteer.addresses"],{modal:false,width:"700px",height:"270px",minimizable:false});LHS.Remoting.include($context+"/creation/engage/noGazeteer.jsp","addresses");Event.stop(event)})}}};LHS.Colour=Class.create();LHS.Colour.prototype={initialize:function(c){this.red=255;
this.blue=255;this.green=255;this.cyan=0;this.magenta=0;this.yellow=0;this.black=0;this.hue=0;this.saturation=0;this.value=100;this.hex="FFFFFF";this.pantone="";this.tintP=1;if(c){this.setColour(c)}},getRoundedValues:function(dp){dp=Math.pow(10,dp)||100;return{red:Math.round(this.red),blue:Math.round(this.blue),green:Math.round(this.green),cyan:Math.round(this.cyan*dp)/dp,magenta:Math.round(this.magenta*dp)/dp,yellow:Math.round(this.yellow*dp)/dp,black:Math.round(this.black*dp)/dp,hue:Math.round(this.hue),saturation:Math.round(this.saturation*dp)/dp,value:Math.round(this.value*dp)/dp,hex:this.hex}},setColour:function(c){if(c.cyan>=0||c.magenta>=0||c.yellow>=0||c.black>=0){this.setCmyk(c.cyan,c.magenta,c.yellow,c.black)}else{if(c.hue>=0||c.saturation>=0||c.value>=0){this.setHsv(c.hue,c.saturation,c.value)}else{if(c.red>=0||c.blue>=0||c.green>=0){this.setRgb(c.red,c.green,c.blue)}else{if(c.hex){this.setHex(c.hex)}}}}},checkValue:function(type,value){var maximum={red:255,blue:255,green:255,cyan:100,magenta:100,yellow:100,black:100,hue:359,saturation:100,value:100};
if(type==="hex"){value=value.toUpperCase();if(value.match(/^[0-9A-F]{6}$/)){return value}}if($T.isString(value)){value=value.autoCast()}if($T.isNumber(value)&&maximum[type]>0){return Math.min(Math.max(0,value),maximum[type])}return this[type]},setRgb:function(r,g,b){this.mode="rgb";this.red=this.checkValue("red",r);this.blue=this.checkValue("blue",b);this.green=this.checkValue("green",g);this._makeHexFromRgb();this._makeHsvFromRgb();this._makeCmykFromRgb()},setCmyk:function(c,m,y,k){this.mode="cmyk";this.cyan=this.checkValue("cyan",c);this.magenta=this.checkValue("magenta",m);this.yellow=this.checkValue("yellow",y);this.black=this.checkValue("black",k);this.tint(1)},setPantone:function(pantone,tint,c,m,y,k){this.mode="pantone";this.pantone=pantone;this.tintP=tint;this.cyan=this.checkValue("cyan",c);this.magenta=this.checkValue("magenta",m);this.yellow=this.checkValue("yellow",y);this.black=this.checkValue("black",k);this.cyanP=this.cyan;this.magentaP=this.magenta;this.yellowP=this.yellow;
this.blackP=this.black;this.tint(tint)},setHsv:function(h,s,v){this.mode="rgb";this.hue=this.checkValue("hue",h);this.saturation=this.checkValue("saturation",s);this.value=this.checkValue("value",v);this._makeRgbFromHsv();this._makeHexFromRgb();this._makeCmykFromRgb()},setHex:function(hex){this.mode="rgb";this.hex=this.checkValue("hex",hex);this._makeRgbFromHex();this._makeHsvFromRgb();this._makeCmykFromRgb()},setIcc:function(icc){var match=icc.replace(/%/g,"").substringAfter("(").substringBefore(")").split(",").invoke("trim");if(match.length<3){this.setHex("ffffff")}else{if(match.length===3){this.setRgb(match[0],match[1],match[2])}else{if(match.length===4){this.setCmyk(match[0],match[1],match[2],match[3])}else{if(match.length===8){this.setCmyk(match[4],match[5],match[6],match[7])}else{if(match.length===11){eval("var pantone = "+match[4]);try{pantone=pantone.split("_").join(" ")}catch(e){}this.setPantone(pantone,match[5],match[7],match[8],match[9],match[10])}}}}}},getIcc:function(mode){mode=mode||this.mode;
var o=this.getRoundedValues(2);if(mode==="rgb"){return"rgb("+[o.red,o.green,o.blue].join(", ")+")"}else{if(mode==="cmyk"){return"rgb-icc("+[o.red,o.green,o.blue,"#CMYK",o.cyan+"%",o.magenta+"%",o.yellow+"%",o.black+"%"].join(", ")+")"}else{return"rgb-icc("+[o.red,o.green,o.blue,"#SpotColor","'"+this.pantone.split(" ").join("_")+"'",this.tintP,"#CMYK",this.cyanP+"%",this.magentaP+"%",this.yellowP+"%",this.blackP+"%"].join(", ")+")"}}},tint:function(percent){this.cyan=Math.min(this.cyan*percent,100);this.magenta=Math.min(this.magenta*percent,100);this.yellow=Math.min(this.yellow*percent,100);this.black=Math.min(this.black*percent,100);this.red=Math.round(Math.max(100-(this.cyan+this.black),0)*25.5)/10;this.green=Math.round(Math.max(100-(this.magenta+this.black),0)*25.5)/10;this.blue=Math.round(Math.max(100-(this.yellow+this.black),0)*25.5)/10;this._makeHexFromRgb();this._makeHsvFromRgb()},_makeRgbFromHex:function(){this.red=Number.fromHexString(this.hex.substring(0,2));this.green=Number.fromHexString(this.hex.substring(2,4));
this.blue=Number.fromHexString(this.hex.substring(4,6))},_makeHexFromRgb:function(){var toHex=function(digit){return"0123456789ABCDEF".split("")[digit]};var r=Math.round(this.red);var g=Math.round(this.green);var b=Math.round(this.blue);r=toHex(Math.floor(r/16))+toHex(r%16);g=toHex(Math.floor(g/16))+toHex(g%16);b=toHex(Math.floor(b/16))+toHex(b%16);this.hex=""+r+g+b},_makeCmykFromRgb:function(){this.cyan=Math.round((255-this.red)/0.255)/10;this.magenta=Math.round((255-this.green)/0.255)/10;this.yellow=Math.round((255-this.blue)/0.255)/10;this.black=0;this._normalize()},_normalize:function(){var minimumColour=Math.min(this.cyan,this.magenta,this.yellow);if(minimumColour+this.black>100){minimumColour=100-this.black}this.cyan=this.cyan-minimumColour;this.magenta=this.magenta-minimumColour;this.yellow=this.yellow-minimumColour;this.black=this.black+minimumColour},_makeHsvFromRgb:function(){var r=this.red/255;var g=this.green/255;var b=this.blue/255;var max=Math.max(r,g,b);var min=Math.min(r,g,b);
var diff=max-min;if(diff===0){this.hue=0}else{if(max===r){this.hue=60*(g-b)/diff}else{if(max===g){this.hue=60*(b-r)/diff+120}else{if(max===b){this.hue=60*(r-g)/diff+240}}}}if(this.hue<0){this.hue+=360}this.saturation=(max===0)?0:100-(100*min/max);this.value=max*100},_makeRgbFromHsv:function(){var H,f,p,q,t,s,v,matrix;H=Math.floor(this.hue/60)%6;s=this.saturation/100;v=this.value/100;if(s<=0){this.red=this.green=this.blue=v*255}else{f=(this.hue/60)-H;p=v*(1-s);q=v*(1-(s*f));t=v*(1-(s*(1-f)));matrix=[{r:v,g:t,b:p},{r:q,g:v,b:p},{r:p,g:v,b:t},{r:p,g:q,b:v},{r:t,g:p,b:v},{r:v,g:p,b:q}];this.red=matrix[H].r*255;this.green=matrix[H].g*255;this.blue=matrix[H].b*255}},"toString":function(){return"R="+this.red+" G="+this.green+" B="+this.blue+" - H="+this.hue+" S="+this.saturation+" V="+this.value+" - C="+this.cyan+" M="+this.magenta+" Y="+this.yellow+" K="+this.black+" - H="+this.hex}};LHS.ColourPicker=Class.create();Object.extend(LHS.ColourPicker,{attach:function(element){element.setStyle({display:"none"});
var button=$N.label({className:"colourPicker",htmlFor:element.id},$nbsp);if(element.disabled){button.addClassName("disabled")}element.updateDisplay=function(){var displayColour=new LHS.Colour();if(element.hasClassName("hex")){displayColour.setHex(element.value)}else{displayColour.setIcc(element.value)}button.setStyle({backgroundColor:"#"+displayColour.hex})};element.updateDisplay();element.parentNode.insertBefore(button,element.nextSibling);Event.observe(button,"click",function(){if(!button.hasClassName("disabled")){LHS.PopupWidget.createPopup("colourPicker","Pick",{width:560,height:360,helpTagNames:"PPColourPicker"});LHS.Remoting.include({url:$context+"/common/colour.jsp",target:"colourPicker",onComplete:function(){setTimeout(function(){var colourPicker=new LHS.ColourPicker(element,button)},200)}})}})}});LHS.ColourPicker.prototype={initialize:function(inputField,prevDiv){var colour=new LHS.Colour({saturation:0,value:100});var colourDivPick=new LHS.Colour({saturation:100,value:100});var colourForm=$("colourForm");
var colourHandle=colourForm.getElementsBySelector(".handleColour")[0];var colourPick=colourForm.getElementsBySelector(".colour")[0];var colourBG=colourForm.getElementsBySelector(".picker")[0];var handlePick=colourForm.getElementsBySelector(".huePicker")[0];var handleHue=handlePick.getElementsBySelector(".sliderHandle")[0];var colourPreview=colourForm.getElementsBySelector(".colourDisplay")[0];var pick=colourForm.getElementsBySelector("button.pick")[0];var optimise=colourForm.getElementsBySelector("button.optimise")[0];var transparent=colourForm.getElementsBySelector("button.transparent")[0];var openColourLib=colourForm.getElementsBySelector(".openColourLib")[0];var updateColourValues=true;var updateUI=function(newColour){if(updateColourValues){colour.setColour(newColour);colourForm.populate(colour.getRoundedValues())}colourPreview.style.background="#"+colour.hex};var updateSliders=function(){updateColourValues=false;hueSlider.setValue(359-colour.hue);satSlider.setValue(colour.saturation);
valueSlider.setValue(100-colour.value);updateColourValues=true};var valueFunction=function(value){updateUI({value:100-value})};var valueSlider=new Control.Slider(colourHandle,colourPick,{range:$R(0,100),values:$R(0,100),axis:"vertical",onSlide:valueFunction,onChange:valueFunction});var saturationFunction=function(saturation){updateUI({saturation:saturation})};var satSlider=new Control.Slider(colourHandle,colourPick,{range:$R(0,100),values:$R(0,100),onSlide:saturationFunction,onChange:saturationFunction});var hueFunction=function(hue){hue=359-hue;colourDivPick.setColour({hue:hue});colourBG.style.backgroundColor="#"+colourDivPick.hex;updateUI({hue:hue})};var hueSlider=new Control.Slider(handleHue,handlePick,{axis:"vertical",range:$R(0,360),values:$R(0,360),onSlide:hueFunction,onChange:hueFunction});Event.observe(pick,"click",function(e){if(inputField.hasClassName("hex")){inputField.value=colour.hex}else{inputField.value=colour.getIcc()}prevDiv.style.backgroundColor="#"+colour.hex;LHS.PopupWidget.closePopup("colourPicker");
Event.stop(e)}.bindAsEventListener(pick));var inputChangeFunction=function(event,element){var newValue={};newValue[element.name]=element.value;colour.setColour(newValue);colourForm.populate(colour.getRoundedValues());updateSliders();Event.stop(event)};colourForm.getElementsBySelector("input").each(function(element){Event.observe(element,"change",inputChangeFunction.bindAsEventListener(this,element))}.bind(this));if(inputField.value!==""){if(inputField.hasClassName("hex")){colour.setHex(inputField.value)}else{colour.setIcc(inputField.value)}colourForm.populate(colour.getRoundedValues());updateSliders()}Event.observe(optimise,"click",function(event){colour._normalize();colourForm.populate(colour.getRoundedValues());Event.stop(event)}.bindAsEventListener(optimise));Event.observe(transparent,"click",function(event){inputField.value="";prevDiv.style.backgroundColor="#fff";LHS.PopupWidget.closePopup("colourPicker");Event.stop(event)}.bindAsEventListener(transparent));Event.observe(openColourLib,"click",function(e){if(!LHS.ColourPicker.pantones){var ajax=new Ajax.Request($context+"/javascript/libs/SpotColours.json",{onSuccess:function(transport){eval("var soap = "+transport.responseText);
LHS.ColourPicker.coatingCodes=soap.coatingCodes?soap.coatingCodes:[];LHS.ColourPicker.pantones=$H(soap.pantones?soap.pantones:{});setupPantone()}.bind(this)})}else{if(!this.pantoneLoaded){setupPantone()}}}.bindAsEventListener(this));var setupPantone=function(){this.pantoneLoaded=true;var names=LHS.ColourPicker.pantones.keys();var groups=[];for(var i=0;i<names.length;i+=7){groups.push(names.slice(i,i+7))}var makeBar=function(n){$("pantoneGroupsBar").update("");$("pantoneGroupsBar").appendChild($N.div({},groups.collect(function(group,i){var c=new LHS.Colour();c.setCmyk.apply(c,LHS.ColourPicker.pantones[group[n]]);return $N.div({style:{height:"1px",background:"#"+c.hex}})})))};var makeGroup=function(n){$("pantoneGroupDisplay").update("");$("pantoneGroupDisplay").appendChild($N.div(groups[n].collect(function(pantone){if(LHS.ColourPicker.pantones[pantone]===null){return }var c=new LHS.Colour();c.setCmyk.apply(c,LHS.ColourPicker.pantones[pantone]);return $N.div({className:"pantone",title:pantone,style:{textAlign:"center",padding:"2px 2px 0 2px",fontSize:"7pt"}},$N.div({style:{height:"22px",background:"#"+c.hex}}),$N.div("PANTONE "+pantone))
})))};makeBar(2);makeGroup(0);var pantoneSlider=new Control.Slider("pantoneGroupsHandle","pantoneGroupsSlider",{axis:"vertical",range:$R(0,groups.length-1),values:$R(0,groups.length-1),onSlide:makeGroup,onChange:makeGroup});Event.observe("pantoneUpGroup","click",function(){pantoneSlider.setValue((groups.length+pantoneSlider.value-1)%groups.length)});Event.observe("pantoneDownGroup","click",function(){pantoneSlider.setValue((pantoneSlider.value+1)%groups.length)});var setTransparency=function(value){value=100-value;$("pantonePreview").setOpacity(value/100);$("transparencyValue").value=value;colour.setPantone(colour.pantone,value/100,colour.cyanP,colour.magentaP,colour.yellowP,colour.blackP);colourForm.populate(colour.getRoundedValues());updateSliders()}.bind(this);var transparencySlider=new Control.Slider("transparencyHandle","transparencySlider",{axis:"vertical",range:$R(0,100),values:$R(0,100),onSlide:setTransparency,onChange:setTransparency});Event.observe("transparencyUp","click",function(){transparencySlider.setValue((100+transparencySlider.value-1)%100)
});Event.observe("transparencyDown","click",function(){transparencySlider.setValue((transparencySlider.value+1)%100)});Event.observe("transparencyValue","change",function(){transparencySlider.setValue(100-$("transparencyValue").value)});var pantoneSelect=function(event,pantone){if(typeof pantone==="undefined"){var oldElement=$("pantoneGroupDisplay").down(".selected");if(oldElement){oldElement.removeClassName("selected")}var element=Event.element(event).up(".pantone");element.addClassName("selected");pantone=element.title}else{$("pantoneGroupDisplay").down("*[title="+pantone+"]").addClassName("selected")}var cmyk=LHS.ColourPicker.pantones[pantone];colour.setPantone("PANTONE "+pantone+" "+$F("pantoneCoating"),$("transparencyValue").value/100,cmyk[0],cmyk[1],cmyk[2],cmyk[3]);$("pantoneCyan").value=colour.cyanP;$("pantoneMagenta").value=colour.magentaP;$("pantoneYellow").value=colour.yellowP;$("pantoneBlack").value=colour.blackP;$("pantonePreview").style.background="#"+colour.hex;$("transparencyBar").style.background="#"+colour.hex;
colourForm.populate(colour.getRoundedValues());updateSliders()}.bind(this);Event.observe("pantoneGroupDisplay","click",pantoneSelect.bindAsEventListener(this));var coatingSelect=function(event){var pantone=$("pantoneGroupDisplay").down(".selected").title;colour.setPantone("PANTONE "+pantone+" "+$F("pantoneCoating"),colour.tintP,colour.cyanP,colour.magentaP,colour.yellowP,colour.blackP)}.bind(this);Event.observe("pantoneCoating","change",coatingSelect.bindAsEventListener(this));if(colour.mode==="pantone"){var parts=colour.pantone.match(/PANTONE| ([a-z0-9 ]+) |UP|EC|PC/gi);var pantone=parts[1].trim();var coating=parts[2];var group=Math.floor(names.indexOf(pantone)/7);pantoneSlider.setValue(group);transparencySlider.setValue(100-(colour.tintP*100));pantoneSelect(null,pantone);$("pantoneCoating").selectedIndex=$A($("pantoneCoating").options).pluck("value").indexOf(coating)}}.bind(this)}};LHS.Loader.addLoadMethod("input.colour",LHS.ColourPicker.attach);LHS.Utilities={set:function(el){el=$(el);
switch($C(el)["fn:method"]){case"closeWindow":LHS.Utilities.methods["closeWindow"](el,{});break;case"print":LHS.Utilities.methods["print"](el,{type:$C(el)["fn:type"]});break;case"fav":LHS.Utilities.methods["fav"](el,{});break;case"submitFormOnEnter":LHS.Utilities.methods["submitFormOnEnter"](el,{});break;case"slider":LHS.Utilities.methods["slider"](el,{"length":$C(el)["fn:length"]});break;case"shut":LHS.Utilities.methods["shut"](el,{});break}},methods:{"closeWindow":function(el,args){Event.observe(el,"click",function(e){window.close();Event.stop(e)}.bindAsEventListener(el))},"print":function(el,args){if(args["type"]=="onLoad"){setTimeout("window.print(); window.close();",10)}else{Event.observe(el,"click",function(e){window.print();Event.stop(e)}.bind(el))}},fav:function(el,args){if(!el.href||el.href==""){return }var icon=$N.a({className:"favIcon",title:LHS.Globals.i18n["prompt.portal.fav"],href:el.href,target:"_blank"},$N.span(" "));var url=el.href;var title=el.innerHTML.replace(/<(.|\n)+?>/g,"");
$(el.parentNode).insertAfter(icon,el);Event.observe(icon,"click",function(e){if(document.all){window.external.AddFavorite(url,title)}else{if(window.sidebar){window.sidebar.addPanel(title,url,"_content")}else{alert(LHS.Globals.i18n["prompt.portal.fav.tooltip"+((Prototype.Browser.Opera)?"-opera":"")]);return }}Event.stop(e)}.bind(icon))},submitFormOnEnter:function(el,args){if(el.nodeName.toLowerCase()=="textarea"&&el.up("form")){Event.observe(el,"keydown",function(e){if(!e.shiftKey&&e.keyCode==13){LHS.Remoting.invoke(this.up("form"))}}.bindAsEventListener(el))}},slider:function(el,args){var left=el.previous();var right=el.next();if(!left||!right){return }var left_w=null;var rigth_m=null;var lng=args["length"]||180;var track=$N("div",{className:"track"});var handle=$N("div",{className:"handle"});track.appendChild(handle);el.appendChild(track);el.addClassName("LHSslider");el.show();var s=new Control.Slider(handle,track,{onSlide:function(v){if(!left_w){left_w=left.getWidth();rigth_m=right.offsetLeft;
s.trackLength=lng}left.hide();left.setStyle({width:(left_w+handle.offsetLeft)+"px"});right.setStyle({marginLeft:(rigth_m+handle.offsetLeft)+"px"});left.show()}})},shut:function(el,args){el.addClassName("toggleTab");el=el.appendChild($N.a());Event.observe(el,"click",function(){var left=this.up("div.leftBlock");var right=left.next();if(left.hasClassName("shut")){left.removeClassName("shut");right.removeClassName("shutR")}else{left.addClassName("shut");right.addClassName("shutR")}}.bind(el))}}};LHS.Loader.addLoadMethod(".fn",LHS.Utilities.set);LHS.Map=Class.create();LHS.Map.prototype={id:null,map:null,layers:null,userShapes:null,drawer:null,selectedLayer:null,selectedShapeBox:null,options:null,drawOptions:{width:2,colour:"FF0000"},controls:{newFeatureButtons:null,stepBackButton:null,clearFeatureButton:null,finishFeatureButton:null,findDiv:null},options:{width:100,height:400},multiple:true,initialize:function(){},updateOptions:function(options){this.options=Object.extend(this.options,options)
},setupMapQuestion:function(){},setupResetMap:function(){this.controls.resetViewButton=$();Event.observe(this.controls.resetViewButton,"click",this.resetView.bindAsEventListener(this))},setupAreaSearch:function(){this.controls.findDiv=this.holder.getElementsBySelector(".findLoc")[0];var viewReset,where;if(this.controls.findDiv&&!this.controls.findDiv.hasClassName("esri")){where=this.controls.findDiv.down('input[type="text"]');var button=this.controls.findDiv.down('input[type="image"]');viewReset=this.controls.findDiv.down("a.resetView");if(this.controls.findDiv.tagName==="DIV"){Event.observe(button,"click",this.findAddress.bindAsEventListener(this,where));Event.observe(where,"keydown",function(e){if(e.keyCode===96){this.findAddress(e,where)}}.bind(this))}else{Event.observe(viewReset,"click",this.resetView.bindAsEventListener(this,viewReset));Event.observe(this.controls.findDiv,"submit",this.findAddress.bindAsEventListener(this,where))}}else{if(this.controls.findDiv){viewReset=this.controls.findDiv.down("a.resetView");
where=this.controls.findDiv.down('input[type="text"]');Event.observe(where,"keydown",function(e){if(e.keyCode===96){where.up("form").submit()}}.bind(this));Event.observe(viewReset,"click",this.resetView.bindAsEventListener(this,viewReset))}}},setupLayerToggles:function(){this.controls.layerToggles=this.holder.getElementsBySelector('input[type="checkbox"].existingLayers');this.controls.layerToggles.each(function(checkBox){if((!checkBox.up("li.tile"))&&(!checkBox.hasClassName("esri"))){checkBox.checked=false}Event.observe(checkBox,"click",this.toggleLayer.bindAsEventListener(this,checkBox,false))}.bind(this));this.controls.layerGroupToggles=this.holder.getElementsBySelector('input[type="checkbox"].existingLayersGroup');this.controls.layerGroupToggles.each(function(checkBox){if(!checkBox.hasClassName("esri")){checkBox.checked=false}Event.observe(checkBox,"click",this.layerGroupToggles.bindAsEventListener(this,checkBox))}.bind(this))},layerGroupToggles:function(event,groupCheckbox){$(groupCheckbox.value).getElementsBySelector('input[type="checkbox"]').each(function(checkbox){if(checkbox.checked!==groupCheckbox.checked){checkbox.click()
}})},setupFeatureCreation:function(){this.controls.newFeatureButtons=this.holder.getElementsBySelector("a.featureCreator");this.controls.newFeatureButtons.each(function(button){var options=$C(button);Object.extend(options,{title:button.innerString(),description:button.title,hideBackNext:true});Event.observe(button,"click",this.draw.bindAsEventListener(this,options,button))}.bind(this));this.controls.geometryForm=this.holder.getElementsBySelector("div.geometryForm")[0];this.controls.helpDescriptions=this.holder.getElementsBySelector("div.helpDescription")[0];this.controls.selectBox=this.holder.getElementsBySelector(".LHSradioSelect")[0];this.controls.currentEditDescription=this.holder.getElementsBySelector("p.mapAnswerBody")[0];this.controls.submitButton=this.holder.getElementsBySelector(".mapNavButton")[0];this.controls.btnGroup=this.holder.getElementsBySelector("div.btnGroup")[0];this.controls.zoomControls=this.holder.getElementsBySelector(".zoomControl");this.controls.pointPopup=$("mapPopup");
this.controls.setBoundingBox=this.holder.getElementsBySelector(".setBoundingBox")[0];this.controls.removeBoundingBox=this.holder.getElementsBySelector(".removeBoundingBox")[0];this.controls.frmFind=this.holder.getElementsBySelector("form.mapFind")[0];this.controls.singleFeature=this.holder.getElementsBySelector(".singleFeatureCreator")[0];this.controls.zoomControls.each(function(element){Event.observe(element,"click",this.zoomTo.bindAsEventListener(this,element))}.bind(this));this.controls.allLayers=this.holder.getElementsBySelector(".allLayers")[0];if(this.controls.allLayers){Event.observe(this.controls.allLayers,"click",function(e){var table=this.controls.allLayers.up("table");if(table){table.getElementsBySelector("input.existingLayers").each(function(checkbox){if(checkbox.checked!==this.controls.allLayers.checked){checkbox.click()}}.bind(this))}}.bind(this))}if(this.controls.frmFind){this.controls.frmFind.addClassName("mapId|"+this.id)}if(this.controls.setBoundingBox){Event.observe(this.controls.setBoundingBox,"click",function(e){this.captureExtent();
Event.element(e).blur();Event.stop(e)}.bind(this));Event.observe(this.controls.removeBoundingBox,"click",function(e){this.removeExtent();Event.element(e).blur();Event.stop(e)}.bind(this))}if(this.controls.pointPopup){Event.observe(this.controls.pointPopup.down("button.OKMsg"),"click",function(e){this.controls.pointPopup.getElementsBySelector(".OKMsg").invoke("hide");this.controls.pointPopup.hide();Event.stop(e)}.bind(this));Event.observe(this.controls.pointPopup.getElementsBySelector(".YesNoMsg.Yes")[0],"click",function(e){this.controls.pointPopup.getElementsBySelector(".YesNoMsg").invoke("hide");this.controls.pointPopup.hide()}.bind(this));Event.observe(this.controls.pointPopup.getElementsBySelector(".YesNoMsg.No")[0],"click",function(e){this.controls.pointPopup.getElementsBySelector(".YesNoMsg").invoke("hide");this.controls.pointPopup.hide();Event.stop(e)}.bind(this));Event.observe(this.controls.pointPopup.getElementsBySelector(".deleteMsg.No")[0],"click",function(e){this.controls.pointPopup.getElementsBySelector(".deleteMsg").invoke("hide");
this.controls.pointPopup.hide();Event.stop(e)}.bind(this))}this.controls.stepBackButton=this.holder.getElementsBySelector(".mapStepBack")[0];if(this.controls.stepBackButton){Event.observe(this.controls.stepBackButton,"click",this.stepBack.bindAsEventListener(this))}this.controls.addNew=this.holder.getElementsBySelector("button.addNew")[0];if(this.controls.addNew){Event.observe(this.controls.addNew,"click",function(e){if(this.controls.singleFeature){var button=this.controls.singleFeature.up("a");var options=$C(button);Object.extend(options,{title:button.innerString(),description:button.title,hideBackNext:true});this.draw(this,options,button)}else{if(this.controls.addNew){this.controls.addNew.hide()}}Event.stop(e)}.bind(this))}this.controls.cancelBtn=this.holder.getElementsBySelector("button.cancelBtn")[0];if(this.controls.cancelBtn&&this.controls.pointPopup){Event.observe(this.controls.cancelBtn,"click",function(e){this.togglePopup(true,"cancelMsg");Event.stop(e)}.bind(this));Event.observe(this.controls.pointPopup.getElementsBySelector(".cancelMsg.No")[0],"click",function(e){this.controls.pointPopup.getElementsBySelector(".cancelMsg").invoke("hide");
this.controls.pointPopup.hide();Event.stop(e)}.bind(this));Event.observe(this.controls.pointPopup.getElementsBySelector(".cancelMsg.Yes")[0],"click",function(e){this.controls.pointPopup.getElementsBySelector(".cancelMsg").invoke("hide");this.controls.pointPopup.hide();$("myShapes").getElementsBySelector("li").each(function(li){li.remove()});$$("fieldset.mapQuestion")[0].getElementsBySelector('input[type="hidden"]').each(function(kml){kml.remove()});this.userShapes.each(function(layer){this.unloadLayer(layer)}.bind(this));if(this.removeAllShapes){this.removeAllShapes()}if(this.controls.btnGroup){this.controls.btnGroup.hide()}Event.stop(e)}.bind(this))}this.controls.clearFeatureButton=this.holder.getElementsBySelector(".mapClear")[0];if(this.controls.clearFeatureButton){Event.observe(this.controls.clearFeatureButton,"click",this.clear.bindAsEventListener(this))}this.controls.finishFeatureButton=this.holder.getElementsBySelector(".mapOK")[0];if(this.controls.finishFeatureButton){Event.observe(this.controls.finishFeatureButton,"click",this.finish.bindAsEventListener(this))
}this.controls.mapForm=$("mapForm-"+this.id.substringAfter("-"));if(this.controls.mapForm){this.addMapForm(this.controls.mapForm.down("form"))}this.toggleControls(false);if(this.controls.btnGroup){this.controls.btnGroup.hide()}},createLayer:function(id,url,callback,zoomTo,format,options){if(format==="rss"){this.layers[id]=this.loadRSS(url,callback,zoomTo,options)}else{if(format==="json"){this.layers[id]=this.loadJSON(url,callback,zoomTo)}else{if(format==="tile"){this.tileLayers[id]=this.loadTiles('[{"id": "'+id+'", "href": "'+url+'", "opacity": "'+options+'"}]');return this.tileLayers[id]}else{this.layers[id]=this.loadKML(url,callback,zoomTo)}}}return this.layers[id]},deleteLayer:function(id){if(this.layers[id]){this.unloadLayer(this.layers[id]);delete this.layers[id]}},toggleDrawing:function(disable){if(this.controls.selectBox){this.controls.selectBox.selectBox.toggleDisable(disable)}},toggleLayer:function(event,checkBox,zoomTo,callback,reload){var visible=checkBox.checked;var id=checkBox.id.substringAfter("-");
var url=checkBox.value;var format=(checkBox.hasClassName("json"))?"json":null;var method=(visible)?"showLayer":"hideLayer";var layer;if(checkBox.up("li.tile")){layer=this.tileLayers[id];var opacity=$C(checkBox.up("li.tile")).opacity;if(layer&&!visible){this.hideTiles(layer)}else{if(layer&&visible){this.showTiles(layer)}else{if(!visible&&url){layer=this.createLayer(id,url,null,null,"tile",opacity)}}}return layer}else{if(checkBox.hasClassName("esri")){if(checkBox.hasClassName("esriLayer")){layer=this.layers[id];if(layer&&reload){this.unloadLayer(layer)}if(layer){this[method](layer,zoomTo,true)}else{if(visible&&url){layer=this.createLayer(id,url,callback,zoomTo,format)}}return layer}else{if(checkBox.hasClassName("layer")){var layerId=url.substring(url.lastIndexOf("/")+1,url.length);url=url.substring(0,url.lastIndexOf("/"));this[method](url,layerId,zoomTo)}else{var map=this.maps[url];if(map){var toggle=this.toggleMap(map);checkBox.up("li").getElementsBySelector("input.existingLayers").each(function(CB){CB.checked=toggle
})}}}}else{layer=this.layers[id];if(layer&&reload){this.unloadLayer(layer)}if(layer&&!reload){this[method](layer,zoomTo)}else{if(visible&&url){layer=this.createLayer(id,url,callback,zoomTo,format)}}return layer}}},toggleNextBack:function(visible){visible=(visible)?"show":"hide";$$(".mapNavButton .mapButton").invoke(visible)},togglePopup:function(visible,type){var display=(visible)?"show":"hide";if(this.controls.pointPopup){if(visible){if(type==="startMsg"){this.positionPopup(type);this.controls.pointPopup.getElementsBySelector(".OKMsg").invoke(display);this.controls.pointPopup.down(".pointMsg").hide()}else{this.controls.pointPopup.getElementsBySelector(".findMsg").invoke("hide");this.controls.pointPopup.getElementsBySelector("."+type).invoke(display);if(type==="YesNoMsg"){this.controls.pointPopup.getElementsBySelector(".deleteMsg").invoke("hide")}if(type==="findMsg"){this.controls.pointPopup.getElementsBySelector(".OKMsg").invoke(display);this.controls.pointPopup.down(".pointMsg").hide()
}this.positionPopup(type);this.controls.pointPopup.down("div.startMsg").hide()}this.controls.pointPopup.show()}else{this.controls.pointPopup.getElementsBySelector("."+type).invoke(display);this.controls.pointPopup.hide()}}},draw:function(event,options,button){if(this.drawer!==null){this.finish(event,true)}var enabled=true;var mapType=(this.type==="ESRI")?"MapESRI":"MapVE";if(this.controls.selectBox){enabled=(this.controls.selectBox.hasClassName("disabled"))?false:true}if(this.controls.helpDescriptions){this.controls.helpDescriptions.down(".itemFinish").hide()}if(enabled){this.toggleControls(true,options);button.addClassName("selected");switch(options.type){case LHS.Map.CREATE_POINT:this.drawer=new LHS[mapType].PointDrawer(this,options);break;case LHS.Map.CREATE_LINE:this.drawer=new LHS[mapType].LineDrawer(this,options);break;case LHS.Map.CREATE_POLYGON:this.drawer=new LHS[mapType].PolygonDrawer(this,options);break}}button.blur();Event.stop(event)},clear:function(event){if(this.drawer!==null){this.toggleControls(false);
this.drawer.clear();this.drawer=null;if(this.controls.selectBox){this.controls.selectBox.selectBox.clearBox()}}if(this.userShapes.length<1){this.toggleNextBack(false);if(this.controls.helpDescriptions){this.controls.btnGroup.hide();this.controls.helpDescriptions.down(".itemFinish").hide()}}else{if(this.controls.helpDescriptions){this.toggleNextBack(true);this.controls.helpDescriptions.down(".itemFinish").show()}}Event.element(event).blur();Event.stop(event)},stepBack:function(event){if(this.drawer!==null){this.drawer.stepBack()}Event.element(event).blur();Event.stop(event)},finish:function(event,selSwitch){if(this.controls.submitButton){var button=this.controls.submitButton.getElementsBySelector('[name="submit"]')[0];if(button){Event.observe(button,"click",function(e){this.togglePopup(true,"YesNoMsg");Event.stop(e);return false}.bind(this));this.controls.submitButton=null}}if(this.drawer!==null){var kml=this.drawer.finish(this.selectedLayer);this.togglePopup(false,"OKMsg");if(kml!==null){this.toggleNextBack(true);
if(this.controls.geometryForm){var geometryDetails=Form.serialize(this.controls.geometryForm,true);kml='<Placemark xmlns="http://earth.google.com/kml/2.2" layerId="'+this.drawer.options.layerId+'"><name>'+geometryDetails.title.escapeXML()+"</name><description>"+geometryDetails.description.escapeXML()+"</description>"+kml+"</Placemark>";var kmlField=$N.input({type:"hidden",name:this.options.fieldName,value:kml});var mapDiv=$(this.id);mapDiv.parentNode.insertAfter(kmlField,mapDiv)}else{var id="addFeature";LHS.PopupWidget.createPopup(id,this.controls.finishFeatureButton.title);LHS.Remoting.include({target:id,url:this.controls.finishFeatureButton.href,onComplete:function(){$(id).down("form").populate({contentXml:kml})}})}var myShapes=$("myShapes");if(myShapes){var checkBox=$N.input({id:"someId",type:"checkbox",checked:"checked"});var delIcon=$N.a({href:"#",className:"rightMapIcon"},$N.img({src:$context+"/images/icons/small/delete.gif",alt:"Remove Shape"}));var newLayer=$N.li({className:"layerStyle clear"},[checkBox,$N.label({forHtml:"someId",title:geometryDetails.description},[$N.span({className:"colourPrev",style:{backgroundColor:"#"+this.drawer.options.colour,backgroundImage:"url("+this.drawer.options.icon+")"}}),$N.span(geometryDetails.title)]),delIcon]);
this.userShapes.push(this.drawer.layer);checkBox.checked=true;myShapes.appendChild(newLayer);Event.observe(checkBox,"click",function(event,checkBox,layer){if(this.type==="ESRI"){this[(checkBox.checked)?"showLayer":"hideLayer"](layer,null,true)}else{this[(checkBox.checked)?"showLayer":"hideLayer"](layer)}}.bindAsEventListener(this,checkBox,this.drawer.layer));Event.observe(delIcon,"click",function(event,kmlField,layer){this.togglePopup(true,"deleteMsg");var delMe=function(e,kmlField,layer){this.unloadLayer(layer);newLayer.remove();kmlField.remove();this.toggleDrawing(false);this.userShapes.pop(layer);if(this.userShapes.length<1){this.toggleNextBack(false);this.controls.btnGroup.hide();if(this.controls.helpDescriptions){this.controls.helpDescriptions.down(".itemFinish").hide()}}this.controls.pointPopup.getElementsBySelector(".deleteMsg").invoke("hide");this.controls.pointPopup.hide();Event.stopObserving(this.controls.pointPopup.getElementsBySelector(".deleteMsg.Yes")[0],"click",delMe);Event.stop(e)
}.bindAsEventListener(this,kmlField,layer);Event.observe(this.controls.pointPopup.getElementsBySelector(".deleteMsg.Yes")[0],"click",delMe);Event.stop(event)}.bindAsEventListener(this,kmlField,this.drawer.layer))}if(this.controls.helpDescriptions){this.controls.helpDescriptions.down(".itemFinish").show()}}this.toggleControls(false);if(this.controls.selectBox&&!selSwitch){this.controls.selectBox.selectBox.clearBox()}this.drawer=null}Event.element(event).blur();Event.stop(event)},toggleControls:function(visible,options){if(this.controls.helpDescriptions){this.controls.helpDescriptions.getElementsBySelector(".typeDependant").invoke("hide");if(options){this.controls.helpDescriptions.getElementsBySelector("."+options.type).invoke("show")}}this.controls.newFeatureButtons.each(function(element){element.removeClassName("selected")});if(visible){if(options.hideBackNext){this.toggleNextBack(false)}if(this.controls.currentEditDescription&&options.description!==""){this.controls.currentEditDescription.appendChild($N.span({className:"answer"},options.description))
}if(this.controls.geometryForm){this.controls.btnGroup.show();this.controls.geometryForm.show();this.controls.geometryForm.getElementsBySelector("input, textarea, select").invoke("enable");Form.populate(this.controls.geometryForm,options);if(this.controls.geometryForm.down("input").visible()){var mapButton=$$("button.mapButton")[0];mapButton.show();mapButton.focus();mapButton.blur()}}if(this.controls.stepBackButton){this.controls.stepBackButton.removeClassName("disabled");this.controls.clearFeatureButton.removeClassName("disabled");this.controls.finishFeatureButton.removeClassName("disabled")}}else{if(this.controls.currentEditDescription){this.controls.currentEditDescription.update("")}if(this.controls.geometryForm){this.controls.geometryForm.hide();this.controls.geometryForm.getElementsBySelector("input, textarea, select").invoke("disable")}if(this.userShapes.length<1&&this.controls.helpDescriptions){this.controls.btnGroup.hide();this.toggleNextBack(false);this.controls.helpDescriptions.down(".itemFinish").hide()
}else{if(this.controls.btnGroup&&this.controls.helpDescriptions){this.controls.btnGroup.show();this.toggleNextBack(true);this.controls.helpDescriptions.down(".itemFinish").show()}}if(this.controls.stepBackButton){this.controls.stepBackButton.addClassName("disabled");this.controls.clearFeatureButton.addClassName("disabled");this.controls.finishFeatureButton.addClassName("disabled")}}},createMap:function(){},findAddress:function(){},resetView:function(){},loadJSON:function(url,callback,zoomTo){},loadKML:function(url,callback,zoomTo){},loadRSS:function(url,callback,zoomTo){}};Object.extend(LHS.Map,{VIEW_MODE:"view",CREATE_POINT:"point",CREATE_LINE:"line",CREATE_POLYGON:"polygon",store:{},drawMap:function(element){var options={};element=$(element);var id=element.id;element.getElementsBySelector("param").each(function(paramElem){if(options[paramElem.name]){if($T.isString(options[paramElem.name])){options[paramElem.name]=[options[paramElem.name]]}options[paramElem.name].push(paramElem.value)}else{if(paramElem.name.startsWith("extent:")){if(!options.extent){options.extent={}
}options.extent[paramElem.name.substringAfter(":")]=paramElem.value}else{options[paramElem.name]=paramElem.value}}});options.height=(options.height)?options.height:"400";var mapNode=$N.div({style:{position:"relative",height:options.height+"px",width:"100%",backgroundImage:"url("+$context+"/images/admin/large-spinner.gif)",backgroundPosition:"center",backgroundColor:"#FFFFFF",backgroundRepeat:"no-repeat"}});var beforeNode=element.up("p")||element;beforeNode.parentNode.insertBefore(mapNode,beforeNode);element.remove();mapNode.id=id;var map;if(LHS.Map.store[id]){delete LHS.Map.store[id]}if(options.type==="esri"){LHS.Map.store[id]=new LHS.MapESRI(id,options)}else{LHS.Map.store[id]=new LHS.MapVE(id,options)}map=LHS.Map.store[id];if(map&&map.controls.btnGroup){map.controls.btnGroup.hide()}var mapImg=$("mapMe");if(mapImg){mapImg.hide()}}});LHS.Map.Drawer=Class.create();LHS.Map.Drawer.prototype={initialize:function(){},redraw:function(){},stepBack:function(){},clear:function(){},finish:function(){}};
LHS.Loader.addLoadMethod("object.map",LHS.Map.drawMap);LHS.AutoMover={move:function(element){var target=$(element.target);var newContent=$(element.href.substringAfter("#"));if($T.isReal(target)&&$T.isReal(newContent)){target.replace(newContent);newContent.id=element.target}$(element.parentNode).remove()}};LHS.Loader.addLoadMethod("a.autoMover",LHS.AutoMover.move);LHS.RankingQuestion=Class.create();LHS.RankingQuestion.prototype={nonjscontainer:null,jscontainer:null,questions:null,answers:null,rankings:null,currank:0,initialize:function(element){this.nonjscontainer=element;this.jscontainer=element.getElementsBySelector(".rankingJS")[0];this.answers=new Array();this.questions=new Array();this.rankings=new Array();if($A(this.nonjscontainer.getElementsBySelector("select")).length==0){return }$A(this.nonjscontainer.getElementsBySelector("select")).each(this.addQuestion.bind(this));$A(this.questions[0].element.options).each(this.addAnswer.bind(this));this.answers.each(this.reCalc.bind(this))},addQuestion:function(s){var newquestion={id:this.questions.length,element:s,startIndex:s.selectedIndex,startValue:s.options[s.selectedIndex].value,ranking:this.questions.length+1};
this.questions.push(newquestion)},addAnswer:function(s){if(s.value!=""){var theranking=0;for(var i=0;i<this.questions.length;i++){if(this.questions[i].startValue==s.value){theranking=this.questions[i].ranking}}if(theranking>this.currank){this.currank=theranking}var newanswer={id:this.answers.length,surroundblock:$N.div({className:"rq_surround"}),textblock:$N.a(s.text),noblock:$N.a(),text:s.text,value:s.value,ranking:theranking};if(theranking>0){this.rankings[theranking]=newanswer.id}newanswer.surroundblock.appendChild(newanswer.noblock);newanswer.surroundblock.appendChild(newanswer.textblock);this.jscontainer.appendChild(newanswer.surroundblock);newanswer.textblock.addClassParam({answerid:newanswer.id});newanswer.textblock.onselectstart=function(){return false};newanswer.noblock.addClassParam({answerid:newanswer.id});newanswer.noblock.onselectstart=function(){return false};Event.observe(newanswer.textblock,"click",this.clickCurrent.bindAsEventListener(this,newanswer.textblock));Event.observe(newanswer.noblock,"click",this.clickCurrent.bindAsEventListener(this,newanswer.noblock));
this.answers.push(newanswer)}},clickCurrent:function(evt,element){a=this.answers;var clickedid=$C(element).answerid;if(a[clickedid].ranking>0){this.currank-=1;for(var i=0;i<a.length;i++){if(a[i].ranking>a[clickedid].ranking){a[i].ranking-=1}}a[clickedid].ranking=0}else{if(this.currank>=this.questions.length){return }this.currank+=1;a[clickedid].ranking=this.currank}this.questions.each(function(q){q.element.selectedIndex=q.startIndex});this.answers.each(this.reCalc.bind(this));LHS.FormRules.runQRules(null,this.questions[0].element,this.questions[0].element.up(".question"),null)},reCalc:function(s){s.textblock.removeClassName("rq_ranked");s.textblock.removeClassName("rq_unranked");s.textblock.removeClassName("rq_unrankable");s.noblock.removeClassName("rqno_ranked");s.noblock.removeClassName("rqno_unranked");s.noblock.removeClassName("rqno_unrankable");if(s.ranking>0){s.textblock.addClassName("rq_ranked");s.noblock.addClassName("rqno_ranked");s.noblock.innerHTML=s.ranking;for(var i=0;i<this.questions[s.ranking-1].element.options.length;
i++){if(this.questions[s.ranking-1].element.options[i].value==s.value){this.questions[s.ranking-1].element.selectedIndex=i;break}}}else{s.noblock.innerHTML="&nbsp;";if(this.currank<this.questions.length){s.textblock.addClassName("rq_unranked");s.noblock.addClassName("rqno_unranked")}else{s.textblock.addClassName("rq_unrankable");s.noblock.addClassName("rqno_unrankable")}}}};Object.extend(LHS.RankingQuestion,{init:function(element){var newRankingQuestion=new LHS.RankingQuestion(element)}});LHS.Loader.addLoadMethod("table.rankingQ",LHS.RankingQuestion.init);var LHSPortal={Version:"0.1",Copyright:"Limehouse Software 2007",Author:"Mark Gabriel",Url:"http://www.limehousesoftware.co.uk",Globals:{}};LHSPortal.ScaleImage={scaleIn:1.25,scaleOut:0.8,set:function(el){var el=$(el);if(!el){return }var elIn=el.getElementsBySelector("a.in")[0];var elOut=el.getElementsBySelector("a.out")[0];var elTitle=el.down(".title");if(!elIn||!elOut||!elTitle){return }Event.observe(elIn,"click",function(e){LHSPortal.ScaleImage.scale(this.up("div.scaleImage").down(".image"),LHSPortal.ScaleImage.scaleIn);
Event.stop(e)}.bind(elIn));Event.observe(elOut,"click",function(e){LHSPortal.ScaleImage.scale(this.up("div.scaleImage").down(".image"),LHSPortal.ScaleImage.scaleOut);Event.stop(e)}.bind(elOut));elTitle.show()},scale:function(el,scaleBy){var image=$(el);image.width=image.width*scaleBy;if(image.useMap!=null&image.useMap!=""){var mapId=image.useMap.substring(1,image.useMap.length);var imageMap=document.getElementById(mapId);if(imageMap!=null){var as=imageMap.getElementsByTagName("area");for(a in as){var area=as[a];if(area.coords!=null){var scaledCoords="";var scaledCoordsArray=area.coords.split(",");for(i=0;i<scaledCoordsArray.length;i++){scaledCoords+=scaledCoordsArray[i]*scaleBy;if(i!=scaledCoordsArray.length-1){scaledCoords+=","}}area.coords=scaledCoords}}}}}};LHS.Loader.addLoadMethod("div.scaleImage",LHSPortal.ScaleImage.set);LHSPortal.Toggler={init:function(el){var me=LHSPortal.Toggler;if(el.href.split("#")[1]){var target=$(el.href.split("#")[1]);target.removeClassName("jsHidden");if(!el.hasClassName("visible")){el.addClassName("toggleOpenIcon");
target.hide()}else{el.addClassName("toggleCloseIcon")}Event.observe(el,"click",me.toggle.bindAsEventListener(el))}},toggle:function(e){var target=$(this.href.split("#")[1]);if(target.visible()){target.hide()}else{target.show()}LHSPortal.Toggler.swapIcon(this);this.blur();Event.stop(e)},initToggleComment:function(el){var me=LHSPortal.Toggler;if($C(el).target){Event.observe(el,"click",me.toggleComment.bindAsEventListener(el))}},toggleComment:function(e){var target=$C(this).target;var tr=this.up("tr");var tbody=$(tr.parentNode);if(!$(target)){tbody.insertAfter($N.tr({id:target},$N.td({"className":"only","colSpan":tr.cells.length},$N.div({id:target+"-load"},$N.img({src:$context+"/images/admin/loading.gif",alt:""})))),tr);LHS.Remoting.include(this.href,target+"-load")}var show=!tbody.hasClassName("open");var prev=tbody.previousSibling;tbody=tbody.parentNode.removeChild(tbody);eval("tbody."+((show)?"add":"remove")+"ClassName('open')");eval("tr.nextSibling."+((show)?"show":"hide")+"()");prev.parentNode.insertAfter(tbody,prev);
Event.stop(e)},swapIcon:function(el){if(el.hasClassName("toggleOpenIcon")){el.removeClassName("toggleOpenIcon");el.addClassName("toggleCloseIcon")}else{el.removeClassName("toggleCloseIcon");el.addClassName("toggleOpenIcon")}}};LHS.Loader.addLoadMethod("a.detailsToggler, a.onGoingToggler",LHSPortal.Toggler.init.bind(LHSPortal.Toggler));LHS.Loader.addLoadMethod("a.commentToggler",LHSPortal.Toggler.initToggleComment.bind(LHSPortal.Toggler));LHSPortal.SubmitButtonFix={set:function(el){var btnContainer=document.createElement("div");var visible=($(el).visible())?"":' style="display: none" ';btnContainer.innerHTML='<button type="submit" class="'+el.className+'" name="'+el.name+'"'+visible+' value="'+el.value+'" ></button>';var btn=btnContainer.firstChild;var span=$N.span({className:$C(el).icon},el.value);btn.appendChild(span);el.replace(btn);Event.observe(btn,"click",function(){var formEl=this.up("form");if(!formEl){return }var inputEl=formEl.down("input[name = activeButton]");if(!inputEl){inputEl=$N.input({type:"hidden",name:"activeButton"});
formEl.appendChild(inputEl)}inputEl.value=this.name}.bind(btn))}};LHS.Loader.addLoadMethod("input[type=submit].displayIconFix",LHSPortal.SubmitButtonFix.set);LHSPortal.commentsToggler={set:function(el){if(el.rel=="nofollow"){return }Event.observe(el,"click",function(event){var classParams=$C(el);var url=classParams.url;var containerId=classParams.container;var targetId=classParams.target;var targetClass=classParams.className;var container=$(containerId);var target=$(targetId);if(!container){return }if(!target){target=container.appendChild($N.div({id:targetId,className:targetClass,style:{display:"none"}}));LHS.Remoting.include({url:url,target:targetId,onComplete:function(){var cancelBtns=target.getElementsBySelector("a.cancel");cancelBtns.each(function(cancel){Event.observe(cancel,"click",function(e){LHSPortal.commentsToggler.toggle(el,container,target,false);target.remove();Event.stop(e)})})}})}LHSPortal.commentsToggler.toggle(el,container,target);el.blur();Event.stop(event)}.bindAsEventListener(el))
},toggle:function(el,container,target,show){show=(typeof show==="undefined")?!(container.visible()&&target.visible()):show;var item=el.up(".item");container.hide();container.childElements().invoke("hide");item.removeClassName("open");item.getElementsBySelector("li.selected").invoke("removeClassName",["selected"]);if(show){target.show();container.show();el.up("li").addClassName("selected");item.addClassName("open")}}};LHS.Loader.addLoadMethod("a.commentsToggler",LHSPortal.commentsToggler.set);LHSPortal.submitButton={set:function(el){Event.observe(el,"click",function(event){setTimeout(function(){el.disabled=true;el.setStyle({backgroundPosition:"0 102px"});el.blur()},500)})},reset:function(){var btns=$$("input[name=submit].submitBtn");btns.each(function(btn){setTimeout(function(){btn.disabled=false;btn.setStyle({backgroundPosition:"0 0"})},700)})}};LHS.Loader.addLoadMethod("input[name=submit].submitBtn",LHSPortal.submitButton.set);if(Prototype.Browser.IE){var version=parseFloat(navigator.appVersion.split("MSIE")[1]);
if((version>=5.5)&&(version<7)){LHSPortal.MinWidthFix={set:function(el){LHSPortal.MinWidthFix.resize(el);Event.observe(window,"resize",function(){LHSPortal.MinWidthFix.resize(this)}.bindAsEventListener(el))},resize:function(el){if(el.hasClassName("noMinWidth")){return }var w=LHS.Sizer.windowSize().width;var minW=el.className.match("minWidth[0-9]+");minW=(minW)?minW[0].toString().substring(8):999;el.style.width=((w<parseInt(minW))?minW:w)+"px"}};LHS.Loader.addLoadMethod("body",LHSPortal.MinWidthFix.set)}}LHSPortal.PopupMenu=Class.create();LHSPortal.PopupMenu.prototype={menu:null,dims:{},build:function(content,placeholder){var iframe=$N.iframe({frameborder:"0",src:"javascript:false;"});this.content=$N.div({className:"menuContent"},content,$N.a({className:"close",href:"#"},LHS.Globals.i18n["prompt.close"]));var menu=$N.div({className:"menu",style:{display:"none"}},iframe,this.content);placeholder.replace(menu);var dims=this.content.getDimensions();iframe.style.height=(Prototype.Browser.IE)?dims.height+"px":0;
this.menu=menu;this.dims=dims},show:function(){this.menu.show();var dims=this.content.getDimensions();Position.prepare();var offsetTop=parseInt((LHS.Sizer.windowSize().height-dims.height)/2)+Position.deltaY;this.menu.style.top=((offsetTop>100)?offsetTop:100)+"px";this.menu.style.left=parseInt((LHS.Sizer.windowSize().width-dims.width)/2+Position.deltaX)+"px";this.menu.show();try{this.menu.getElementsBySelector("input[class=checked]")[0].focus()}catch(ex){}},hide:function(){this.menu.hide()},toggle:function(){if(this.menu.visible()){this.hide();LHSPortal.PopupMenu.sel=null}else{if(LHSPortal.PopupMenu.sel!=null){LHSPortal.PopupMenu.sel.hide()}this.show();LHSPortal.PopupMenu.sel=this}},initialize:function(el,placeholder){if(!el){return }this.build(el,placeholder);this.menu.style.position="absolute"}};LHSPortal.DropdownMenu=Class.create();LHSPortal.DropdownMenu.prototype=Object.extend(new LHSPortal.PopupMenu(),{show:function(){var parentNode=$(this.menu.parentNode);parentNode.addClassName("selected");
this.menu.show();parentNode.style.backgroundPosition="0 0";parentNode.next("li.ddItem").style.backgroundPosition="-10px 0px"},hide:function(){var parentNode=$(this.menu.parentNode);parentNode.removeClassName("selected");this.menu.hide();parentNode.style.backgroundPosition="0 3px";parentNode.next("li.ddItem").style.backgroundPosition="0 3px"},initialize:function(el,lnk){if(!el){return }var ph=lnk.parentNode.appendChild($N.div());this.build(el,ph)}});LHSPortal.SelectMenu=Class.create();LHSPortal.SelectMenu.prototype=Object.extend(new LHSPortal.PopupMenu(),{build:function(content,placeholder){var iframe=$N.iframe({frameborder:"0",src:"javascript:false;"});var content=$N.div({className:"menuContent"},content);var menu=$N.div({className:"menu"},iframe,content);placeholder.replace(menu);var dims=content.getDimensions();var height=(dims.height>200)?200:dims.height;content.style.height=height+"px";iframe.style.height=(Prototype.Browser.IE)?height+"px":0;this.dims=menu;this.menu=menu;this.hide()
},show:function(){this.menu.show()},hide:function(){this.menu.hide()},initialize:function(el,lnk){el.removeClassName("jsHidden");var ph=lnk.parentNode.appendChild($N.div());this.build(el,ph)}});Object.extend(LHSPortal.PopupMenu,{init:false,menus:$H({}),sel:null,initialize:function(el){if(!this.init){var body=$$("body")[0];body.appendChild($N.div({id:"popupMenu",style:{display:"none"}}));body.appendChild($N.div({id:"dropdownMenu",style:{display:"none"}}));Event.observe(document,"click",this.onClick.bindAsEventListener(this));this.init=true}if(el.hasClassName("popupMenu")){this.initPopupMenu(el)}if(el.hasClassName("ddMenu")){this.initDropdownMenu(el)}if(el.id=="selectMenu"){this.initSelectMenu(el)}},initPopupMenu:function(el){var onClick=function(e){var url=$C(el).url;var target=$C(el).target;if(!$(target)){var ph=$("popupMenu").appendChild($N.div({id:target}));var onComplete=function(o){$("popupMenu").show();this.menus[target]=new LHSPortal.PopupMenu(o.down("div"),$(ph));this.menus[target].toggle()
};LHS.Remoting.invoke(el,{url:url,target:target,onComplete:onComplete.bind(this)})}else{if(this.menus[target]){this.menus[target].toggle()}}el.blur();Event.stop(e)};Event.observe(el,"click",onClick.bindAsEventListener(this))},initDropdownMenu:function(el){if(!$C(el).url){return }var me=this;el.getElementsBySelector("li > a").each(function(lnk){if($C(lnk).dd){var id=$C(lnk).dd;me.menus[id]=new LHSPortal.DropdownMenu($(id),lnk);Event.observe(lnk,"click",function(e){me.menus[id].toggle();lnk.blur();Event.stop(e)}.bindAsEventListener(me))}else{Event.observe(lnk,"click",function(){if(me.sel){me.sel.hide()}})}})},initSelectMenu:function(el){var id=el.id;var lnk=$(el.getElementsByTagName("span")[0]);var el=$(el.getElementsByTagName("div")[0]);this.menus[id]=new LHSPortal.SelectMenu(el,lnk);lnk.addClassName("menuLnk");Event.observe(lnk,"click",this.menus[id].toggle.bindAsEventListener(this.menus[id]))},onClick:function(event){if(!this.sel){return }var el=Event.element(event);var menu=this.sel;if(!(el.descendantOf(menu.menu)||el.hasClassName("menuLnk"))||el.hasClassName("close")){menu.hide();
if(el.hasClassName("close")){Event.stop(event)}return }if(el.name=="lookingFor"){menu.menu.getElementsBySelector("input[name=searchQuery]")[0].parentNode.style.display=(el.checked&&el.value=="representations")?"block":"none";menu.menu.getElementsBySelector("input[name=letters]")[0].parentNode.style.display=(el.checked&&el.value=="representations")?"none":"block";return }if(el.match("input[class*=tab]")){menu.menu.getElementsBySelector("input[name=tab]")[0].value=$C(el).tab;return }if(el.name=="output:option"){var form=menu.menu.getElementsBySelector("form")[0];form.action=$C(el).url;form.target=(typeof $C(el).target==="undefined")?"":$C(el).target;form.getElementsBySelector("input[name=file]").each(function(input){if(!input.hasClassName("disabled")){input[el.value=="sections"?"enable":"disable"]()}});var els=form.getElementsBySelector("a.toLoad");for(var i=0;i<els.length;i++){var href=els[i].href;var param="output:disabled";els[i].href=href.replace("&"+param+"="+href.toQueryParams()[param],"")+"&"+param+"="+(el.value!="sections").toString()
}return }if(el.name==="file"){var childUl=el.up("li").down("ul");if(childUl){childUl.getElementsBySelector("input[name=file]").each(function(input){input[el.checked?"addClassName":"removeClassName"]("disabled");input.disabled=el.checked;input.checked=el.checked})}var form=menu.menu.getElementsBySelector("form")[0];var btn=menu.menu.getElementsBySelector("input[name=submit]")[0];var formValues=Form.serialize(form,true);btn.disabled=(typeof formValues.file==="undefined"&&formValues["output:option"]==="sections");return }}});LHS.Loader.addLoadMethod("a.popupMenu, ul.ddMenu, #selectMenu",LHSPortal.PopupMenu.initialize.bind(LHSPortal.PopupMenu));LHSPortal.MultiPageForm={set:function(el){Object.extend(LHSPortal.MultiPageForm,{form:el,nextBtn:$N.input({type:"image",className:"go right",alt:LHS.Globals.i18n["images.next.alt"],src:$context+"/"+LHS.Globals.i18n["images.next"]}),prevBtn:$N.input({type:"image",className:"back left",alt:LHS.Globals.i18n["images.prev.alt"],src:$context+"/"+LHS.Globals.i18n["images.prev"]}),imgs:[],progressBar:($("surveyProgressBar"))?new LHSPortal.ProgressBar($("surveyProgressBar")):null});
var el=$(el);var pages=el.getElementsBySelector("div.formPage");var nav=$("formNav");var start=document.location.hash.substringAfter("#");var startPage=null;pages.each(function(page,i){var btns=page.down(".btnGroup");if(btns){if(!page.hasClassName("mapPage")){btns.show()}var prevPage=btns.getElementsBySelector("input.prevPage")[0];if(prevPage){Event.observe(prevPage,"click",this.prevPageFunc.bindAsEventListener(this,prevPage))}var nextPage=btns.getElementsBySelector("input.nextPage")[0];if(nextPage){Event.observe(nextPage,"click",this.nextPageFunc.bindAsEventListener(this,nextPage))}}if(nav){var link=nav.getElementsBySelector("a[href=#"+page.id+"]")[0];if(link){Event.observe(link,"click",this.selectPage.bindAsEventListener(this,link))}}if(page.id==start){startPage=page}}.bind(this));this.show(startPage?startPage:pages[0],0,null)},createButton:function(container,el,fn){var btn=container.getElementsBySelector("input[."+el.className+"]")[0];if(btn){Event.observe(btn,"click",fn.bindAsEventListener(this,btn))
}},selectPage:function(event,el){var page=$(el.href.substringAfter("#"));this.show(page,0,event)},hideMap:function(page){var mapQuestionHeader=$$(".mapQuestionHeader")[0];var mapQuestionKey=$$(".mapQuestionKey")[0];var loginArea=$$("div.loginArea")[0];var surveyNavHeader=$$(".surveyNavHeader")[0];var formNav=$$("#formNav")[0];if(page.hasClassName("mapPage")){if(mapQuestionHeader){mapQuestionHeader.removeClassName("jsHidden")}if(mapQuestionKey){mapQuestionKey.removeClassName("jsHidden")}if(loginArea){loginArea.down("a.toggler").removeClassName("open")}if(surveyNavHeader&&formNav){formNav.hide();surveyNavHeader.hide()}}else{if(mapQuestionHeader){mapQuestionHeader.addClassName("jsHidden")}if(mapQuestionKey){mapQuestionKey.addClassName("jsHidden")}if(loginArea){loginArea.down("a.toggler").addClassName("open")}}},prevPageFunc:function(event,el){this.show(el.up("div.formPage"),-1,event);Event.stop(event)},nextPageFunc:function(event,el){this.show(el.up("div.formPage"),+1,event);Event.stop(event)
},findPage:function(page,pages,go){var next=page;if(go==1){next=pages[Math.min(pages.indexOf(page)+1,pages.length-1)]}if(go==0){next=pages[Math.max(pages.indexOf(page),0)]}if(go==-1){next=pages[Math.max(pages.indexOf(page)-1,0)]}return next},show:function(page,go,event){var el=page.up("form.formPages")||page.up("div#main").down("form.formPages");var pages=el.getElementsBySelector("div.formPage");var nav=$("formNav");var next=this.findPage(page,pages,go);while(next.hasClassName("skip")&&go!==0){next=this.findPage(next,pages,go)}pages.each(function(page){page.hide()});next.removeClassName("jsHidden");next.show();this.hideMap(next);this.imgLoadInit(next);next.getElementsBySelector("textarea[id].formatted").each(LHS.MCE.loadTinyMCE);if(nav){var links=$A(nav.getElementsByTagName("a"));links.each(function(link){link.removeClassName("selected")});var link=nav.getElementsBySelector("a[href=#"+next.id+"]")[0];if(link){link.addClassName("selected")}if($$("div.header")[0]){$$("div.header")[0].scrollTo()
}}if(this.progressBar){this.progressBar.showPercents((pages.indexOf(next)*100)/(pages.length-1));if($$("div.header")[0]){$$("div.header")[0].scrollTo()}}if(go==+1||go==-1){var elScrollTo=this.progressBar?$$("div.header")[0]:el.up(".item");if(elScrollTo){elScrollTo.scrollTo()}}if(event){Event.stop(event)}},imgLoad:function(el){if(el){el.removeClassName("jsLoad")}if(this.imgs.length==0){return }var el=this.imgs.shift();var img=el.getElementsBySelector("img.qImage")[0];if(img&&img.src==""){Event.observe(img,"load",this.imgLoad.bind(this,el));img.src=$C(img)["src"]}},imgLoadInit:function(page){var pgs=[];this.imgs=page.getElementsBySelector("div.jsLoad");this.form.getElementsBySelector("div.formPage").each(function(pg){if(pg==page){return }var els=pg.getElementsBySelector("img.qImage");el=(els[0])?els[0].up("div.jsLoad"):null;if(el){this.imgs.push(el)}if(els.length>2){pgs.push(pg)}}.bind(this));pgs.each(function(pg){var els=pg.getElementsBySelector("img.qImage");for(var i=1;i<els.length;i++){el=els[i];
el=(el)?el.up("div.jsLoad"):null;if(el){this.imgs.push(el)}}}.bind(this));this.imgLoad()}};LHS.Loader.addLoadMethod("form.formPages",LHSPortal.MultiPageForm.set.bind(LHSPortal.MultiPageForm));LHSPortal.ProgressBar=Class.create();LHSPortal.ProgressBar.prototype={initialize:function(el){el.appendChild($(this.bar));el.show()},bar:$N.ul({className:"progressBar"},$N.li({className:"start"},$N.span("0%")),$N.li({className:"bar"},$N.span({className:"barOut"},$N.span({className:"barIn"}))),$N.li({className:"end"},$N.span("100%"))),showPercents:function(value){var el=this.bar.getElementsBySelector("span.barIn")[0];el.style.width=value+"%"}};LHS.RegistrationForm={init:function(el){Object.extend(this,{main:el,form:el.down(".rfLeft"),info:$("rfInfo"),errs:$("rfErrs")});this.main.addClassName("rfStatus");this.getTips();this.getErrors();try{}catch(ex){}var els=el.getElementsBySelector(".rfHide");for(var i=0;i<els.length;i++){els[i].up(".question").addClassName("jsHidden")}},getTips:function(){this.main.addClassName("rfStatusInfo");
var els=this.form.getElementsBySelector(".qTip");if(els.length==0){return }els.each(function(el,count){if(el.innerHTML.truncate()==""){el.remove();return }var new_el=this.info.down(".content").appendChild(el.cloneNode(true));new_el.hide();el.update("");Object.extend(el,{className:"qTip qTip|"+el.id,title:LHS.Globals.i18n["prompt.register.information.tooltip"]});Event.observe(el,"click",function(e){LHS.RegistrationForm.showTip(e,this)}.bindAsEventListener(el))}.bind(this))},showTip:function(e,el){this.reset(false);this.info.getElementsBySelector(".qTip")[0].hide();el.up(".rfItem").addClassName("select");var tip=this.info.getElementsBySelector("*[id="+((el.name)?("prompt_"+el.name):$C(el)["qTip"])+"]")[0];tip.setStyle({"position":"relative","margin":"0px","top":Math.max(Position.cumulativeOffset(el)[1]-(tip.getHeight()/2)-Position.cumulativeOffset($("rfInfo"))[1]-25,0-5)+"px"});tip.show();Event.stop(e)},getErrors:function(){var els=this.form.getElementsBySelector(".error");if(els.length==0){this.reset(false);
return }this.reset(true);els.each(function(el,count){el.up(".rfItem").addClassName("select");this.errs.getElementsBySelector(".content ol")[0].appendChild($N.li(el.innerHTML));el.hide()}.bind(this))},reset:function(err){this.main.removeClassName("rfStatusInfo");this.main.removeClassName("rfStatusErrs");this.main.addClassName((err)?"rfStatusErrs":"rfStatusInfo");this.info.getElementsBySelector(".qTip").each(function(el,count){if(count==0){$(el).show()}else{$(el).hide()}});this.errs.getElementsBySelector(".content ol")[0].update("");this.form.getElementsBySelector(".rfItem").each(function(el){$(el).removeClassName("select")})},nextForm:function(url){if(typeof url==="string"&&url!=""){window.location.replace(url)}else{try{window.location.replace($("rfNav").down(".selected").up("li").next("li").down("a").href)}catch(e){window.location.replace($context+(Cookie.get("loginForward")||"/portal"))}}}};LHS.Loader.addLoadMethod("#RegistrationForm",LHS.RegistrationForm.init.bind(LHS.RegistrationForm));
LHS.Captcha={init:function(el){var code=el.getElementsBySelector("div.code img")[0]||((Prototype.Browser.IE)?el.getElementsBySelector("div.code object")[0]:el.getElementsBySelector("div.code embed")[0]);if(!code){return }Object.extend(this,{code:code,refresh:el.getElementsBySelector("li a")[0],toggler:el.getElementsBySelector("li a")[1],response:el.getElementsBySelector("input[name=response]")[0],url:code.src.substringBefore("&type=")});Event.observe(this.refresh,"click",this.update.bindAsEventListener(this,false));Event.observe(this.toggler,"click",this.update.bindAsEventListener(this,true))},"update":function(e,swap){var parent_el=this.code.up("div");var type=(!swap&&!this.toggler.hasClassName("audio"))||(swap&&this.toggler.hasClassName("audio"))?"image":"audio";var url=this.url+"&type="+type+"&output:nocache="+(new Date()).getTime();var toggler_img=this.toggler.down("img");if(type==="image"){parent_el.update('<img src="'+url+'" alt="" />');parent_el.addClassName("code");this.toggler.removeClassName("audio");
toggler_img.src=toggler_img.src.replace("image.gif","audio.gif")}else{if(Prototype.Browser.IE&&Prototype.Browser.version){parent_el.update('<object height="40" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" src="'+url+'" ><param name="url" value="'+url+'"><param name="autoStart" value="true"><param name="uimode" value="mini"></object>')}else{parent_el.update('<embed type="audio/mpeg" src="'+url+'" height="45" autostart="true" />')}parent_el.removeClassName("code");this.toggler.addClassName("audio");toggler_img.src=toggler_img.src.replace("audio.gif","image.gif")}this.code=parent_el.getElementsBySelector("*")[0];this.response.value="";this.response.focus();Event.stop(e)}};LHS.Loader.addLoadMethod("div.captchaBox",LHS.Captcha.init.bind(LHS.Captcha));LHSPortal.Events=Class.create();LHSPortal.Events.prototype={initialize:function(el){if(el.getElementsBySelector("col.name")[0]){var period=$C(el).period||12;var start=($C(el).start)?Date.parse($C(el).start):new Date();Object.extend(this,{el:el,eventCol:el.getElementsBySelector("col.name")[0],period:period,scale:$C(el).scale||1,showWeeks:$C(el).showWeeks,start:new Date(start.getFullYear(),start.getMonth()),end:new Date(start.getFullYear(),start.getMonth()+period)});
this.end.setDate(this.end.getDate()-1);this.resize();Event.observe(window,"resize",this.resize.bind(this))}},populate:function(step){this.start.setMonth(this.start.getMonth()+step);this.end=new Date(this.start.getFullYear(),this.start.getMonth()+this.period);this.end.setDate(this.end.getDate()-1);var parentNode=this.el.parentNode;var sibling=this.el.next();var docFragment=document.createDocumentFragment();parentNode.removeChild(this.el);docFragment.appendChild(this.el);var rows=this.el.rows;var cellToMove=(step>0)?2:13;var position=(step>0)?14:2;for(var i=0;i<rows.length;i++){var date=(step<0)?new Date(this.start.getFullYear(),this.start.getMonth()):new Date(this.end.getFullYear(),this.end.getMonth());if(i==0){this.makeHeader(rows[i])}else{var cell=rows[i].cells[cellToMove];rows[i].insertBefore(cell,rows[i].cells[position]);if(i>1){this.makeWeekMonth(date,cell,Date.parse($C(rows[i]).reading),Date.parse($C(rows[i]).start),Date.parse($C(rows[i]).end),Date.parse($C(rows[i]).archive))}}}parentNode.insertBefore(docFragment,sibling)
},makeHeader:function(row){row=$(row);var cell=row.down("div.yearText");var text=this.start.getFullYear()+((this.end.getFullYear()>this.start.getFullYear())?(" - "+this.end.getFullYear()):"");cell.update("");cell.appendChild($N.div(text))},makeSubHeader:function(date,row){var ph=row.getElementsBySelector("*[class=forward]")[0];var daysInMonth=this.daysInMonth(date);if(this.showWeeks){var days=((daysInMonth-date.getDate())<7)?daysInMonth-date.getDate():(7-date.getDay());var cls="week";var text=date.getDate()}else{var days=daysInMonth;var cls="month";var text=LHS.Globals.i18n.month_abbr[date.getMonth()]}var width=days*this.scale+1;var cell=$N.th({className:cls,style:{width:width+"px"}},$N.div((width>28)?text:""));return row.insertBefore(cell,ph)},compareDates:function(dates){var a=new Date();var returnValue;var finished=false;function dateCheck(dates){if(dates.length==2){finished=true;returnValue=(dates[0]<=dates[1])}else{if(dates[0]<=dates[1]){dateCheck(dates.without(dates[0]))}else{finished=true;
returnValue=false}}}dateCheck(dates);var b=new Date();if(finished){return returnValue}},makeWeekMonth:function(date,cell,eReading,eStart,eEnd,eArchive){cell=$(cell);var days=this.daysInMonth(date);var start=new Date(date);var end=new Date(date);end.setDate(end.getDate()+days);cell.update("");var gapTest=this.compareDates([start,eReading,end]);var pendingTest=(this.compareDates([eReading,end])&&this.compareDates([start,eStart]));var activeTest=(this.compareDates([eStart,end])&&this.compareDates([start,eEnd]));var closedTest=(this.compareDates([eEnd,end])&&this.compareDates([start,eArchive]));var day=1000*60*60*24;var divWidth,gapFix,minDate,maxDate,border,activeCloseFix,borderRight,closedFix;if(gapTest){gapFix=(pendingTest)?1:0;divWidth=Math.round(((eReading.getTime()-start.getTime())/(day)-gapFix));cell.appendChild($N.div({className:"gap",style:{width:(divWidth!=-1)?divWidth+"px":"0px"}},$N.span({})))}if(pendingTest){minDate=(end>eStart)?eStart:end;maxDate=(start>eReading)?start:eReading;
divWidth=Math.round(((minDate.getTime()-maxDate.getTime())/day));if(divWidth==days&&gapFix){divWidth=divWidth-1}if(gapFix||divWidth>1){cell.appendChild($N.div({className:"pending",style:{width:(divWidth!=-1)?divWidth+"px":"0px",borderLeftWidth:(gapFix)?"1px":"0px"}},$N.span({})))}else{pendingTest=false}}if(activeTest){minDate=(end>eEnd)?eEnd:end;maxDate=(start>eStart)?start:eStart;divWidth=Math.round((minDate.getTime()-maxDate.getTime())/day);if(divWidth==days&&pendingTest){divWidth=divWidth-1}cell.appendChild($N.div({className:"active",style:{width:divWidth+"px"}},$N.span({})))}if(closedTest){minDate=(end>eArchive)?eArchive:end;maxDate=(start>eEnd)?start:eEnd;borderRight=this.compareDates([start,eArchive,end]);activeCloseFix=(borderRight)?1:0;closedFix=(activeTest&&pendingTest&&gapTest)?1:0;divWidth=(Math.round((minDate.getTime()-maxDate.getTime())/day)-activeCloseFix)-closedFix;cell.appendChild($N.div({className:"closed",style:{width:(divWidth==-1)?"0px":divWidth+"px",borderRightWidth:(borderRight&&divWidth!=-1)?"1px":"0"}},$N.span({})))
}},daysInMonth:function(date){return 32-new Date(date.getFullYear(),date.getMonth(),32).getDate()},resize:function(){this.eventCol.style.width=(this.el.getWidth()-440)+"px"}};Object.extend(LHSPortal.Events,{obj:null,initialize:function(el){this.obj=new LHSPortal.Events(el);Event.observe(el,"click",this.onClick.bindAsEventListener(this))},onClick:function(event){var el=Event.element(event);if(el.match("a[class*=step]")){this.obj.populate($C(el).step);Event.element(event).blur();Event.stop(event)}Event.element(event).blur()}});LHS.Loader.addLoadMethod("table.eventList",LHSPortal.Events.initialize.bind(LHSPortal.Events));LHSPortal.EventFinder={initialize:function(el){Event.observe(el,"submit",function(e){var advanced=this.getElementsBySelector("#eventFinder_advanced")[0].visible();this.getElementsBySelector("input[name=q:advanced]")[0].value=advanced?"true":"false";if(!advanced){var sels=this.getElementsBySelector("#eventFinder_advanced select");if(sels){sels.each(function(s){s.selectedIndex=0
})}}}.bindAsEventListener(el))}};LHS.Loader.addLoadMethod("#eventFinder form",LHSPortal.EventFinder.initialize.bind(LHSPortal.EventFinder));LHS.CookieSaver={form:null,initCookieSaver:function(form){LHS.CookieSaver.form=form;LHS.CookieSaver.loadForm();LHS.CookieSaver.saveForm();Event.observe(form,"submit",LHS.CookieSaver.removeForm);var cancel=form.getElementsBySelector("a[id^=cancel_]")[0];if(cancel){Event.observe(cancel,"click",LHS.CookieSaver.removeForm)}},saveForm:function(){var saveKey=$C(LHS.CookieSaver.form).saveKey;if(saveKey!=""){var code=LHS.CookieSaver.form.serialize();code=code.replace(/representationXml%3Aquestion-/g,"RxQ-");Cookie.set(saveKey,code,7);window.setTimeout(LHS.CookieSaver.saveForm,60000)}},loadForm:function(){var saveKey=$C(LHS.CookieSaver.form).saveKey;if(saveKey!=""&&Cookie.has(saveKey)){var code=Cookie.get(saveKey);code=code.replace(/RxQ-/g,"representationXml%3Aquestion-");var form=LHS.CookieSaver.form;form.populate(code.toQueryParams())}},removeForm:function(){var saveKey=$C(LHS.CookieSaver.form).saveKey;
Cookie.erase(saveKey)}}