var sysUrl='/jumpchart/core/';var ajaxUrl=sysUrl+'ajax/';var Prototype={Version:'1.6.1',Browser:(function(){var ua=navigator.userAgent;var isOpera=Object.prototype.toString.call(window.opera)=='[object Opera]';return{IE:!!window.attachEvent&&!isOpera,Opera:isOpera,WebKit:ua.indexOf('AppleWebKit/')>-1,Gecko:ua.indexOf('Gecko')>-1&&ua.indexOf('KHTML')===-1,MobileSafari:/Apple.*Mobile.*Safari/.test(ua)}})(),BrowserFeatures:{XPath:!!document.evaluate,SelectorsAPI:!!document.querySelector,ElementExtensions:(function(){var constructor=window.Element||window.HTMLElement;return!!(constructor&&constructor.prototype);})(),SpecificElementExtensions:(function(){if(typeof window.HTMLDivElement!=='undefined')
return true;var div=document.createElement('div');var form=document.createElement('form');var isSupported=false;if(div['__proto__']&&(div['__proto__']!==form['__proto__'])){isSupported=true;}
div=form=null;return isSupported;})()},ScriptFragment:'<script[^>]*>([\\S\\s]*?)<\/script>',JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x}};if(Prototype.Browser.MobileSafari)
Prototype.BrowserFeatures.SpecificElementExtensions=false;var Abstract={};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 Class=(function(){function subclass(){};function create(){var parent=null,properties=$A(arguments);if(Object.isFunction(properties[0]))
parent=properties.shift();function klass(){this.initialize.apply(this,arguments);}
Object.extend(klass,Class.Methods);klass.superclass=parent;klass.subclasses=[];if(parent){subclass.prototype=parent.prototype;klass.prototype=new subclass;parent.subclasses.push(klass);}
for(var i=0;i<properties.length;i++)
klass.addMethods(properties[i]);if(!klass.prototype.initialize)
klass.prototype.initialize=Prototype.emptyFunction;klass.prototype.constructor=klass;return klass;}
function addMethods(source){var ancestor=this.superclass&&this.superclass.prototype;var properties=Object.keys(source);if(!Object.keys({toString:true}).length){if(source.toString!=Object.prototype.toString)
properties.push("toString");if(source.valueOf!=Object.prototype.valueOf)
properties.push("valueOf");}
for(var i=0,length=properties.length;i<length;i++){var property=properties[i],value=source[property];if(ancestor&&Object.isFunction(value)&&value.argumentNames().first()=="$super"){var method=value;value=(function(m){return function(){return ancestor[m].apply(this,arguments);};})(property).wrap(method);value.valueOf=method.valueOf.bind(method);value.toString=method.toString.bind(method);}
this.prototype[property]=value;}
return this;}
return{create:create,Methods:{addMethods:addMethods}};})();(function(){var _toString=Object.prototype.toString;function extend(destination,source){for(var property in source)
destination[property]=source[property];return destination;}
function inspect(object){try{if(isUndefined(object))return'undefined';if(object===null)return'null';return object.inspect?object.inspect():String(object);}catch(e){if(e instanceof RangeError)return'...';throw e;}}
function toJSON(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(isElement(object))return;var results=[];for(var property in object){var value=toJSON(object[property]);if(!isUndefined(value))
results.push(property.toJSON()+': '+value);}
return'{'+results.join(', ')+'}';}
function toQueryString(object){return $H(object).toQueryString();}
function toHTML(object){return object&&object.toHTML?object.toHTML():String.interpret(object);}
function keys(object){var results=[];for(var property in object)
results.push(property);return results;}
function values(object){var results=[];for(var property in object)
results.push(object[property]);return results;}
function clone(object){return extend({},object);}
function isElement(object){return!!(object&&object.nodeType==1);}
function isArray(object){return _toString.call(object)=="[object Array]";}
function isHash(object){return object instanceof Hash;}
function isFunction(object){return typeof object==="function";}
function isString(object){return _toString.call(object)=="[object String]";}
function isNumber(object){return _toString.call(object)=="[object Number]";}
function isUndefined(object){return typeof object==="undefined";}
extend(Object,{extend:extend,inspect:inspect,toJSON:toJSON,toQueryString:toQueryString,toHTML:toHTML,keys:keys,values:values,clone:clone,isElement:isElement,isArray:isArray,isHash:isHash,isFunction:isFunction,isString:isString,isNumber:isNumber,isUndefined:isUndefined});})();Object.extend(Function.prototype,(function(){var slice=Array.prototype.slice;function update(array,args){var arrayLength=array.length,length=args.length;while(length--)array[arrayLength+length]=args[length];return array;}
function merge(array,args){array=slice.call(array,0);return update(array,args);}
function argumentNames(){var names=this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1].replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g,'').replace(/\s+/g,'').split(',');return names.length==1&&!names[0]?[]:names;}
function bind(context){if(arguments.length<2&&Object.isUndefined(arguments[0]))return this;var __method=this,args=slice.call(arguments,1);return function(){var a=merge(args,arguments);return __method.apply(context,a);}}
function bindAsEventListener(context){var __method=this,args=slice.call(arguments,1);return function(event){var a=update([event||window.event],args);return __method.apply(context,a);}}
function curry(){if(!arguments.length)return this;var __method=this,args=slice.call(arguments,0);return function(){var a=merge(args,arguments);return __method.apply(this,a);}}
function delay(timeout){var __method=this,args=slice.call(arguments,1);timeout=timeout*1000
return window.setTimeout(function(){return __method.apply(__method,args);},timeout);}
function defer(){var args=update([0.01],arguments);return this.delay.apply(this,args);}
function wrap(wrapper){var __method=this;return function(){var a=update([__method.bind(this)],arguments);return wrapper.apply(this,a);}}
function methodize(){if(this._methodized)return this._methodized;var __method=this;return this._methodized=function(){var a=update([this],arguments);return __method.apply(null,a);};}
return{argumentNames:argumentNames,bind:bind,bindAsEventListener:bindAsEventListener,curry:curry,delay:delay,defer:defer,wrap:wrap,methodize:methodize}})());Date.prototype.toJSON=function(){return'"'+this.getUTCFullYear()+'-'+
(this.getUTCMonth()+1).toPaddedString(2)+'-'+
this.getUTCDate().toPaddedString(2)+'T'+
this.getUTCHours().toPaddedString(2)+':'+
this.getUTCMinutes().toPaddedString(2)+':'+
this.getUTCSeconds().toPaddedString(2)+'Z"';};RegExp.prototype.match=RegExp.prototype.test;RegExp.escape=function(str){return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g,'\\$1');};var PeriodicalExecuter=Class.create({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);},execute:function(){this.callback(this);},stop:function(){if(!this.timer)return;clearInterval(this.timer);this.timer=null;},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.execute();this.currentlyExecuting=false;}catch(e){this.currentlyExecuting=false;throw e;}}}});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,(function(){function prepareReplacement(replacement){if(Object.isFunction(replacement))return replacement;var template=new Template(replacement);return function(match){return template.evaluate(match)};}
function gsub(pattern,replacement){var result='',source=this,match;replacement=prepareReplacement(replacement);if(Object.isString(pattern))
pattern=RegExp.escape(pattern);if(!(pattern.length||pattern.source)){replacement=replacement('');return replacement+source.split('').join(replacement)+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;}
function sub(pattern,replacement,count){replacement=prepareReplacement(replacement);count=Object.isUndefined(count)?1:count;return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match);});}
function scan(pattern,iterator){this.gsub(pattern,iterator);return String(this);}
function truncate(length,truncation){length=length||30;truncation=Object.isUndefined(truncation)?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:String(this);}
function strip(){return this.replace(/^\s+/,'').replace(/\s+$/,'');}
function stripTags(){return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi,'');}
function stripScripts(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');}
function extractScripts(){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];});}
function evalScripts(){return this.extractScripts().map(function(script){return eval(script)});}
function escapeHTML(){return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');}
function unescapeHTML(){return this.stripTags().replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');}
function toQueryParams(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1].split(separator||'&').inject({},function(hash,pair){if((pair=pair.split('='))[0]){var key=decodeURIComponent(pair.shift());var value=pair.length>1?pair.join('='):pair[0];if(value!=undefined)value=decodeURIComponent(value);if(key in hash){if(!Object.isArray(hash[key]))hash[key]=[hash[key]];hash[key].push(value);}
else hash[key]=value;}
return hash;});}
function toArray(){return this.split('');}
function succ(){return this.slice(0,this.length-1)+
String.fromCharCode(this.charCodeAt(this.length-1)+1);}
function times(count){return count<1?'':new Array(count+1).join(this);}
function camelize(){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;}
function capitalize(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase();}
function underscore(){return this.replace(/::/g,'/').replace(/([A-Z]+)([A-Z][a-z])/g,'$1_$2').replace(/([a-z\d])([A-Z])/g,'$1_$2').replace(/-/g,'_').toLowerCase();}
function dasherize(){return this.replace(/_/g,'-');}
function inspect(useDoubleQuotes){var escapedString=this.replace(/[\x00-\x1f\\]/g,function(character){if(character in String.specialChar){return String.specialChar[character];}
return'\\u00'+character.charCodeAt().toPaddedString(2,16);});if(useDoubleQuotes)return'"'+escapedString.replace(/"/g,'\\"')+'"';return"'"+escapedString.replace(/'/g,'\\\'')+"'";}
function toJSON(){return this.inspect(true);}
function unfilterJSON(filter){return this.replace(filter||Prototype.JSONFilter,'$1');}
function isJSON(){var str=this;if(str.blank())return false;str=this.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'');return(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);}
function evalJSON(sanitize){var json=this.unfilterJSON();try{if(!sanitize||json.isJSON())return eval('('+json+')');}catch(e){}
throw new SyntaxError('Badly formed JSON string: '+this.inspect());}
function include(pattern){return this.indexOf(pattern)>-1;}
function startsWith(pattern){return this.indexOf(pattern)===0;}
function endsWith(pattern){var d=this.length-pattern.length;return d>=0&&this.lastIndexOf(pattern)===d;}
function empty(){return this=='';}
function blank(){return/^\s*$/.test(this);}
function interpolate(object,pattern){return new Template(this,pattern).evaluate(object);}
return{gsub:gsub,sub:sub,scan:scan,truncate:truncate,strip:String.prototype.trim?String.prototype.trim:strip,stripTags:stripTags,stripScripts:stripScripts,extractScripts:extractScripts,evalScripts:evalScripts,escapeHTML:escapeHTML,unescapeHTML:unescapeHTML,toQueryParams:toQueryParams,parseQuery:toQueryParams,toArray:toArray,succ:succ,times:times,camelize:camelize,capitalize:capitalize,underscore:underscore,dasherize:dasherize,inspect:inspect,toJSON:toJSON,unfilterJSON:unfilterJSON,isJSON:isJSON,evalJSON:evalJSON,include:include,startsWith:startsWith,endsWith:endsWith,empty:empty,blank:blank,interpolate:interpolate};})());var Template=Class.create({initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern;},evaluate:function(object){if(object&&Object.isFunction(object.toTemplateReplacements))
object=object.toTemplateReplacements();return this.template.gsub(this.pattern,function(match){if(object==null)return(match[1]+'');var before=match[1]||'';if(before=='\\')return match[2];var ctx=object,expr=match[3];var pattern=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;match=pattern.exec(expr);if(match==null)return before;while(match!=null){var comp=match[1].startsWith('[')?match[2].replace(/\\\\]/g,']'):match[1];ctx=ctx[comp];if(null==ctx||''==match[3])break;expr=expr.substring('['==match[3]?match[1].length:match[0].length);match=pattern.exec(expr);}
return before+String.interpret(ctx);});}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;var $break={};var Enumerable=(function(){function each(iterator,context){var index=0;try{this._each(function(value){iterator.call(context,value,index++);});}catch(e){if(e!=$break)throw e;}
return this;}
function eachSlice(number,iterator,context){var index=-number,slices=[],array=this.toArray();if(number<1)return array;while((index+=number)<array.length)
slices.push(array.slice(index,index+number));return slices.collect(iterator,context);}
function all(iterator,context){iterator=iterator||Prototype.K;var result=true;this.each(function(value,index){result=result&&!!iterator.call(context,value,index);if(!result)throw $break;});return result;}
function any(iterator,context){iterator=iterator||Prototype.K;var result=false;this.each(function(value,index){if(result=!!iterator.call(context,value,index))
throw $break;});return result;}
function collect(iterator,context){iterator=iterator||Prototype.K;var results=[];this.each(function(value,index){results.push(iterator.call(context,value,index));});return results;}
function detect(iterator,context){var result;this.each(function(value,index){if(iterator.call(context,value,index)){result=value;throw $break;}});return result;}
function findAll(iterator,context){var results=[];this.each(function(value,index){if(iterator.call(context,value,index))
results.push(value);});return results;}
function grep(filter,iterator,context){iterator=iterator||Prototype.K;var results=[];if(Object.isString(filter))
filter=new RegExp(RegExp.escape(filter));this.each(function(value,index){if(filter.match(value))
results.push(iterator.call(context,value,index));});return results;}
function include(object){if(Object.isFunction(this.indexOf))
if(this.indexOf(object)!=-1)return true;var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;}
function inGroupsOf(number,fillWith){fillWith=Object.isUndefined(fillWith)?null:fillWith;return this.eachSlice(number,function(slice){while(slice.length<number)slice.push(fillWith);return slice;});}
function inject(memo,iterator,context){this.each(function(value,index){memo=iterator.call(context,memo,value,index);});return memo;}
function invoke(method){var args=$A(arguments).slice(1);return this.map(function(value){return value[method].apply(value,args);});}
function max(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index);if(result==null||value>=result)
result=value;});return result;}
function min(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index);if(result==null||value<result)
result=value;});return result;}
function partition(iterator,context){iterator=iterator||Prototype.K;var trues=[],falses=[];this.each(function(value,index){(iterator.call(context,value,index)?trues:falses).push(value);});return[trues,falses];}
function pluck(property){var results=[];this.each(function(value){results.push(value[property]);});return results;}
function reject(iterator,context){var results=[];this.each(function(value,index){if(!iterator.call(context,value,index))
results.push(value);});return results;}
function sortBy(iterator,context){return this.map(function(value,index){return{value:value,criteria:iterator.call(context,value,index)};}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0;}).pluck('value');}
function toArray(){return this.map();}
function zip(){var iterator=Prototype.K,args=$A(arguments);if(Object.isFunction(args.last()))
iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index));});}
function size(){return this.toArray().length;}
function inspect(){return'#<Enumerable:'+this.toArray().inspect()+'>';}
return{each:each,eachSlice:eachSlice,all:all,every:all,any:any,some:any,collect:collect,map:collect,detect:detect,findAll:findAll,select:findAll,filter:findAll,grep:grep,include:include,member:include,inGroupsOf:inGroupsOf,inject:inject,invoke:invoke,max:max,min:min,partition:partition,pluck:pluck,reject:reject,sortBy:sortBy,toArray:toArray,entries:toArray,zip:zip,size:size,inspect:inspect,find:detect};})();function $A(iterable){if(!iterable)return[];if('toArray'in Object(iterable))return iterable.toArray();var length=iterable.length||0,results=new Array(length);while(length--)results[length]=iterable[length];return results;}
function $w(string){if(!Object.isString(string))return[];string=string.strip();return string?string.split(/\s+/):[];}
Array.from=$A;(function(){var arrayProto=Array.prototype,slice=arrayProto.slice,_each=arrayProto.forEach;function each(iterator){for(var i=0,length=this.length;i<length;i++)
iterator(this[i]);}
if(!_each)_each=each;function clear(){this.length=0;return this;}
function first(){return this[0];}
function last(){return this[this.length-1];}
function compact(){return this.select(function(value){return value!=null;});}
function flatten(){return this.inject([],function(array,value){if(Object.isArray(value))
return array.concat(value.flatten());array.push(value);return array;});}
function without(){var values=slice.call(arguments,0);return this.select(function(value){return!values.include(value);});}
function reverse(inline){return(inline!==false?this:this.toArray())._reverse();}
function uniq(sorted){return this.inject([],function(array,value,index){if(0==index||(sorted?array.last()!=value:!array.include(value)))
array.push(value);return array;});}
function intersect(array){return this.uniq().findAll(function(item){return array.detect(function(value){return item===value});});}
function clone(){return slice.call(this,0);}
function size(){return this.length;}
function inspect(){return'['+this.map(Object.inspect).join(', ')+']';}
function toJSON(){var results=[];this.each(function(object){var value=Object.toJSON(object);if(!Object.isUndefined(value))results.push(value);});return'['+results.join(', ')+']';}
function indexOf(item,i){i||(i=0);var length=this.length;if(i<0)i=length+i;for(;i<length;i++)
if(this[i]===item)return i;return-1;}
function lastIndexOf(item,i){i=isNaN(i)?this.length:(i<0?this.length+i:i)+1;var n=this.slice(0,i).reverse().indexOf(item);return(n<0)?n:i-n-1;}
function concat(){var array=slice.call(this,0),item;for(var i=0,length=arguments.length;i<length;i++){item=arguments[i];if(Object.isArray(item)&&!('callee'in item)){for(var j=0,arrayLength=item.length;j<arrayLength;j++)
array.push(item[j]);}else{array.push(item);}}
return array;}
Object.extend(arrayProto,Enumerable);if(!arrayProto._reverse)
arrayProto._reverse=arrayProto.reverse;Object.extend(arrayProto,{_each:_each,clear:clear,first:first,last:last,compact:compact,flatten:flatten,without:without,reverse:reverse,uniq:uniq,intersect:intersect,clone:clone,toArray:clone,size:size,inspect:inspect,toJSON:toJSON});var CONCAT_ARGUMENTS_BUGGY=(function(){return[].concat(arguments)[0][0]!==1;})(1,2)
if(CONCAT_ARGUMENTS_BUGGY)arrayProto.concat=concat;if(!arrayProto.indexOf)arrayProto.indexOf=indexOf;if(!arrayProto.lastIndexOf)arrayProto.lastIndexOf=lastIndexOf;})();function $H(object){return new Hash(object);};var Hash=Class.create(Enumerable,(function(){function initialize(object){this._object=Object.isHash(object)?object.toObject():Object.clone(object);}
function _each(iterator){for(var key in this._object){var value=this._object[key],pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}}
function set(key,value){return this._object[key]=value;}
function get(key){if(this._object[key]!==Object.prototype[key])
return this._object[key];}
function unset(key){var value=this._object[key];delete this._object[key];return value;}
function toObject(){return Object.clone(this._object);}
function keys(){return this.pluck('key');}
function values(){return this.pluck('value');}
function index(value){var match=this.detect(function(pair){return pair.value===value;});return match&&match.key;}
function merge(object){return this.clone().update(object);}
function update(object){return new Hash(object).inject(this,function(result,pair){result.set(pair.key,pair.value);return result;});}
function toQueryPair(key,value){if(Object.isUndefined(value))return key;return key+'='+encodeURIComponent(String.interpret(value));}
function toQueryString(){return this.inject([],function(results,pair){var key=encodeURIComponent(pair.key),values=pair.value;if(values&&typeof values=='object'){if(Object.isArray(values))
return results.concat(values.map(toQueryPair.curry(key)));}else results.push(toQueryPair(key,values));return results;}).join('&');}
function inspect(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';}
function toJSON(){return Object.toJSON(this.toObject());}
function clone(){return new Hash(this);}
return{initialize:initialize,_each:_each,set:set,get:get,unset:unset,toObject:toObject,toTemplateReplacements:toObject,keys:keys,values:values,index:index,merge:merge,update:update,toQueryString:toQueryString,inspect:inspect,toJSON:toJSON,clone:clone};})());Hash.from=$H;Object.extend(Number.prototype,(function(){function toColorPart(){return this.toPaddedString(2,16);}
function succ(){return this+1;}
function times(iterator,context){$R(0,this,true).each(iterator,context);return this;}
function toPaddedString(length,radix){var string=this.toString(radix||10);return'0'.times(length-string.length)+string;}
function toJSON(){return isFinite(this)?this.toString():'null';}
function abs(){return Math.abs(this);}
function round(){return Math.round(this);}
function ceil(){return Math.ceil(this);}
function floor(){return Math.floor(this);}
return{toColorPart:toColorPart,succ:succ,times:times,toPaddedString:toPaddedString,toJSON:toJSON,abs:abs,round:round,ceil:ceil,floor:floor};})());function $R(start,end,exclusive){return new ObjectRange(start,end,exclusive);}
var ObjectRange=Class.create(Enumerable,(function(){function initialize(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;}
function _each(iterator){var value=this.start;while(this.include(value)){iterator(value);value=value.succ();}}
function include(value){if(value<this.start)
return false;if(this.exclusive)
return value<this.end;return value<=this.end;}
return{initialize:initialize,_each:_each,include:include};})());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(Object.isFunction(responder[callback])){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=Class.create({initialize:function(options){this.options={method:'post',asynchronous:true,contentType:'application/x-www-form-urlencoded',encoding:'UTF-8',parameters:'',evalJSON:true,evalJS:true};Object.extend(this.options,options||{});this.options.method=this.options.method.toLowerCase();if(Object.isString(this.options.parameters))
this.options.parameters=this.options.parameters.toQueryParams();else if(Object.isHash(this.options.parameters))
this.options.parameters=this.options.parameters.toObject();}});Ajax.Request=Class.create(Ajax.Base,{_complete:false,initialize:function($super,url,options){$super(options);this.transport=Ajax.getTransport();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=Object.toQueryString(params)){if(this.method=='get')
this.url+=(this.url.include('?')?'&':'?')+params;else if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
params+='&_=';}
try{var response=new Ajax.Response(this);if(this.options.onCreate)this.options.onCreate(response);Ajax.Responders.dispatch('onCreate',this,response);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous)this.respondToReadyState.bind(this).defer(1);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(Object.isFunction(extras.push))
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});}
for(var name in headers)
this.transport.setRequestHeader(name,headers[name]);},success:function(){var status=this.getStatus();return!status||(status>=200&&status<300);},getStatus:function(){try{return this.transport.status||0;}catch(e){return 0}},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState],response=new Ajax.Response(this);if(state=='Complete'){try{this._complete=true;(this.options['on'+response.status]||this.options['on'+(this.success()?'Success':'Failure')]||Prototype.emptyFunction)(response,response.headerJSON);}catch(e){this.dispatchException(e);}
var contentType=response.getHeader('Content-type');if(this.options.evalJS=='force'||(this.options.evalJS&&this.isSameOrigin()&&contentType&&contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
this.evalResponse();}
try{(this.options['on'+state]||Prototype.emptyFunction)(response,response.headerJSON);Ajax.Responders.dispatch('on'+state,this,response,response.headerJSON);}catch(e){this.dispatchException(e);}
if(state=='Complete'){this.transport.onreadystatechange=Prototype.emptyFunction;}},isSameOrigin:function(){var m=this.url.match(/^\s*https?:\/\/[^\/]*/);return!m||(m[0]=='#{protocol}//#{domain}#{port}'.interpolate({protocol:location.protocol,domain:document.domain,port:location.port?':'+location.port:''}));},getHeader:function(name){try{return this.transport.getResponseHeader(name)||null;}catch(e){return null;}},evalResponse:function(){try{return eval((this.transport.responseText||'').unfilterJSON());}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Response=Class.create({initialize:function(request){this.request=request;var transport=this.transport=request.transport,readyState=this.readyState=transport.readyState;if((readyState>2&&!Prototype.Browser.IE)||readyState==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(transport.responseText);this.headerJSON=this._getHeaderJSON();}
if(readyState==4){var xml=transport.responseXML;this.responseXML=Object.isUndefined(xml)?null:xml;this.responseJSON=this._getResponseJSON();}},status:0,statusText:'',getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||'';}catch(e){return''}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders();}catch(e){return null}},getResponseHeader:function(name){return this.transport.getResponseHeader(name);},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders();},_getHeaderJSON:function(){var json=this.getHeader('X-JSON');if(!json)return null;json=decodeURIComponent(escape(json));try{return json.evalJSON(this.request.options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}},_getResponseJSON:function(){var options=this.request.options;if(!options.evalJSON||(options.evalJSON!='force'&&!(this.getHeader('Content-type')||'').include('application/json'))||this.responseText.blank())
return null;try{return this.responseText.evalJSON(options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}}});Ajax.Updater=Class.create(Ajax.Request,{initialize:function($super,container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))};options=Object.clone(options);var onComplete=options.onComplete;options.onComplete=(function(response,json){this.updateContent(response.responseText);if(Object.isFunction(onComplete))onComplete(response,json);}).bind(this);$super(url,options);},updateContent:function(responseText){var receiver=this.container[this.success()?'success':'failure'],options=this.options;if(!options.evalScripts)responseText=responseText.stripScripts();if(receiver=$(receiver)){if(options.insertion){if(Object.isString(options.insertion)){var insertion={};insertion[options.insertion]=responseText;receiver.insert(insertion);}
else options.insertion(receiver,responseText);}
else receiver.update(responseText);}}});Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,container,url,options){$super(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(response){if(this.options.decay){this.decay=(response.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=response.responseText;}
this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});function $(element){if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i<length;i++)
elements.push($(arguments[i]));return elements;}
if(Object.isString(element))
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(Element.extend(query.snapshotItem(i)));return results;};}
if(!window.Node)var Node={};if(!Node.ELEMENT_NODE){Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12});}
(function(global){var SETATTRIBUTE_IGNORES_NAME=(function(){var elForm=document.createElement("form");var elInput=document.createElement("input");var root=document.documentElement;elInput.setAttribute("name","test");elForm.appendChild(elInput);root.appendChild(elForm);var isBuggy=elForm.elements?(typeof elForm.elements.test=="undefined"):null;root.removeChild(elForm);elForm=elInput=null;return isBuggy;})();var element=global.Element;global.Element=function(tagName,attributes){attributes=attributes||{};tagName=tagName.toLowerCase();var cache=Element.cache;if(SETATTRIBUTE_IGNORES_NAME&&attributes.name){tagName='<'+tagName+' name="'+attributes.name+'">';delete attributes.name;return Element.writeAttribute(document.createElement(tagName),attributes);}
if(!cache[tagName])cache[tagName]=Element.extend(document.createElement(tagName));return Element.writeAttribute(cache[tagName].cloneNode(false),attributes);};Object.extend(global.Element,element||{});if(element)global.Element.prototype=element.prototype;})(this);Element.cache={};Element.idCounter=1;Element.Methods={visible:function(element){return $(element).style.display!='none';},toggle:function(element){element=$(element);Element[Element.visible(element)?'hide':'show'](element);return element;},hide:function(element){element=$(element);element.style.display='none';return element;},show:function(element){element=$(element);element.style.display='';return element;},remove:function(element){element=$(element);element.parentNode.removeChild(element);return element;},update:(function(){var SELECT_ELEMENT_INNERHTML_BUGGY=(function(){var el=document.createElement("select"),isBuggy=true;el.innerHTML="<option value=\"test\">test</option>";if(el.options&&el.options[0]){isBuggy=el.options[0].nodeName.toUpperCase()!=="OPTION";}
el=null;return isBuggy;})();var TABLE_ELEMENT_INNERHTML_BUGGY=(function(){try{var el=document.createElement("table");if(el&&el.tBodies){el.innerHTML="<tbody><tr><td>test</td></tr></tbody>";var isBuggy=typeof el.tBodies[0]=="undefined";el=null;return isBuggy;}}catch(e){return true;}})();var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING=(function(){var s=document.createElement("script"),isBuggy=false;try{s.appendChild(document.createTextNode(""));isBuggy=!s.firstChild||s.firstChild&&s.firstChild.nodeType!==3;}catch(e){isBuggy=true;}
s=null;return isBuggy;})();function update(element,content){element=$(element);if(content&&content.toElement)
content=content.toElement();if(Object.isElement(content))
return element.update().insert(content);content=Object.toHTML(content);var tagName=element.tagName.toUpperCase();if(tagName==='SCRIPT'&&SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING){element.text=content;return element;}
if(SELECT_ELEMENT_INNERHTML_BUGGY||TABLE_ELEMENT_INNERHTML_BUGGY){if(tagName in Element._insertionTranslations.tags){while(element.firstChild){element.removeChild(element.firstChild);}
Element._getContentFromAnonymousElement(tagName,content.stripScripts()).each(function(node){element.appendChild(node)});}
else{element.innerHTML=content.stripScripts();}}
else{element.innerHTML=content.stripScripts();}
content.evalScripts.bind(content).defer();return element;}
return update;})(),replace:function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();else if(!Object.isElement(content)){content=Object.toHTML(content);var range=element.ownerDocument.createRange();range.selectNode(element);content.evalScripts.bind(content).defer();content=range.createContextualFragment(content.stripScripts());}
element.parentNode.replaceChild(content,element);return element;},insert:function(element,insertions){element=$(element);if(Object.isString(insertions)||Object.isNumber(insertions)||Object.isElement(insertions)||(insertions&&(insertions.toElement||insertions.toHTML)))
insertions={bottom:insertions};var content,insert,tagName,childNodes;for(var position in insertions){content=insertions[position];position=position.toLowerCase();insert=Element._insertionTranslations[position];if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){insert(element,content);continue;}
content=Object.toHTML(content);tagName=((position=='before'||position=='after')?element.parentNode:element).tagName.toUpperCase();childNodes=Element._getContentFromAnonymousElement(tagName,content.stripScripts());if(position=='top'||position=='after')childNodes.reverse();childNodes.each(insert.curry(element));content.evalScripts.bind(content).defer();}
return element;},wrap:function(element,wrapper,attributes){element=$(element);if(Object.isElement(wrapper))
$(wrapper).writeAttribute(attributes||{});else if(Object.isString(wrapper))wrapper=new Element(wrapper,attributes);else wrapper=new Element('div',wrapper);if(element.parentNode)
element.parentNode.replaceChild(wrapper,element);wrapper.appendChild(element);return wrapper;},inspect:function(element){element=$(element);var result='<'+element.tagName.toLowerCase();$H({'id':'id','className':'class'}).each(function(pair){var property=pair.first(),attribute=pair.last();var value=(element[property]||'').toString();if(value)result+=' '+attribute+'='+value.inspect(true);});return result+'>';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property])
if(element.nodeType==1)
elements.push(Element.extend(element));return elements;},ancestors:function(element){return Element.recursivelyCollect(element,'parentNode');},descendants:function(element){return Element.select(element,"*");},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(element,'previousSibling');},nextSiblings:function(element){return Element.recursivelyCollect(element,'nextSibling');},siblings:function(element){element=$(element);return Element.previousSiblings(element).reverse().concat(Element.nextSiblings(element));},match:function(element,selector){if(Object.isString(selector))
selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){element=$(element);if(arguments.length==1)return $(element.parentNode);var ancestors=Element.ancestors(element);return Object.isNumber(expression)?ancestors[expression]:Selector.findElement(ancestors,expression,index);},down:function(element,expression,index){element=$(element);if(arguments.length==1)return Element.firstDescendant(element);return Object.isNumber(expression)?Element.descendants(element)[expression]:Element.select(element,expression)[index||0];},previous:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.previousElementSibling(element));var previousSiblings=Element.previousSiblings(element);return Object.isNumber(expression)?previousSiblings[expression]:Selector.findElement(previousSiblings,expression,index);},next:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.nextElementSibling(element));var nextSiblings=Element.nextSiblings(element);return Object.isNumber(expression)?nextSiblings[expression]:Selector.findElement(nextSiblings,expression,index);},select:function(element){var args=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(element,args);},adjacent:function(element){var args=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(element.parentNode,args).without(element);},identify:function(element){element=$(element);var id=Element.readAttribute(element,'id');if(id)return id;do{id='anonymous_element_'+Element.idCounter++}while($(id));Element.writeAttribute(element,'id',id);return id;},readAttribute:function(element,name){element=$(element);if(Prototype.Browser.IE){var t=Element._attributeTranslations.read;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];if(name.include(':')){return(!element.attributes||!element.attributes[name])?null:element.attributes[name].value;}}
return element.getAttribute(name);},writeAttribute:function(element,name,value){element=$(element);var attributes={},t=Element._attributeTranslations.write;if(typeof name=='object')attributes=name;else attributes[name]=Object.isUndefined(value)?true:value;for(var attr in attributes){name=t.names[attr]||attr;value=attributes[attr];if(t.values[attr])name=t.values[attr](element,value);if(value===false||value===null)
element.removeAttribute(name);else if(value===true)
element.setAttribute(name,name);else element.setAttribute(name,value);}
return element;},getHeight:function(element){return Element.getDimensions(element).height;},getWidth:function(element){return Element.getDimensions(element).width;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;var elementClassName=element.className;return(elementClassName.length>0&&(elementClassName==className||new RegExp("(^|\\s)"+className+"(\\s|$)").test(elementClassName)));},addClassName:function(element,className){if(!(element=$(element)))return;if(!Element.hasClassName(element,className))
element.className+=(element.className?' ':'')+className;return element;},removeClassName:function(element,className){if(!(element=$(element)))return;element.className=element.className.replace(new RegExp("(^|\\s+)"+className+"(\\s+|$)"),' ').strip();return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;return Element[Element.hasClassName(element,className)?'removeClassName':'addClassName'](element,className);},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue))
element.removeChild(node);node=nextNode;}
return element;},empty:function(element){return $(element).innerHTML.blank();},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);if(element.compareDocumentPosition)
return(element.compareDocumentPosition(ancestor)&8)===8;if(ancestor.contains)
return ancestor.contains(element)&&ancestor!==element;while(element=element.parentNode)
if(element==ancestor)return true;return false;},scrollTo:function(element){element=$(element);var pos=Element.cumulativeOffset(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||value=='auto'){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;}
if(style=='opacity')return value?parseFloat(value):1.0;return value=='auto'?null:value;},getOpacity:function(element){return $(element).getStyle('opacity');},setStyle:function(element,styles){element=$(element);var elementStyle=element.style,match;if(Object.isString(styles)){element.style.cssText+=';'+styles;return styles.include('opacity')?element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]):element;}
for(var property in styles)
if(property=='opacity')element.setOpacity(styles[property]);else
elementStyle[(property=='float'||property=='cssFloat')?(Object.isUndefined(elementStyle.styleFloat)?'cssFloat':'styleFloat'):property]=styles[property];return element;},setOpacity:function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;return element;},getDimensions:function(element){element=$(element);var display=Element.getStyle(element,'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';if(originalPosition!='fixed')
els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(Prototype.Browser.Opera){element.style.top=0;element.style.left=0;}}
return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}
return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=Element.getStyle(element,'overflow')||'auto';if(element._overflow!=='hidden')
element.style.overflow='hidden';return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=='auto'?'':element._overflow;element._overflow=null;return element;},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return Element._returnOffset(valueL,valueT);},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){if(element.tagName.toUpperCase()=='BODY')break;var p=Element.getStyle(element,'position');if(p!=='static')break;}}while(element);return Element._returnOffset(valueL,valueT);},absolutize:function(element){element=$(element);if(Element.getStyle(element,'position')=='absolute')return element;var offsets=Element.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';return element;},relativize:function(element){element=$(element);if(Element.getStyle(element,'position')=='relative')return element;element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;return element;},cumulativeScrollOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return Element._returnOffset(valueL,valueT);},getOffsetParent:function(element){if(element.offsetParent)return $(element.offsetParent);if(element==document.body)return $(element);while((element=element.parentNode)&&element!=document.body)
if(Element.getStyle(element,'position')!='static')
return $(element);return $(document.body);},viewportOffset:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body&&Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{if(!Prototype.Browser.Opera||(element.tagName&&(element.tagName.toUpperCase()=='BODY'))){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}}while(element=element.parentNode);return Element._returnOffset(valueL,valueT);},clonePosition:function(element,source){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});source=$(source);var p=Element.viewportOffset(source);element=$(element);var delta=[0,0];var parent=null;if(Element.getStyle(element,'position')=='absolute'){parent=Element.getOffsetParent(element);delta=Element.viewportOffset(parent);}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)element.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)element.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)element.style.width=source.offsetWidth+'px';if(options.setHeight)element.style.height=source.offsetHeight+'px';return element;}};Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});Element._attributeTranslations={write:{names:{className:'class',htmlFor:'for'},values:{}}};if(Prototype.Browser.Opera){Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(proceed,element,style){switch(style){case'left':case'top':case'right':case'bottom':if(proceed(element,'position')==='static')return null;case'height':case'width':if(!Element.visible(element))return null;var dim=parseInt(proceed(element,style),10);if(dim!==element['offset'+style.capitalize()])
return dim+'px';var properties;if(style==='height'){properties=['border-top-width','padding-top','padding-bottom','border-bottom-width'];}
else{properties=['border-left-width','padding-left','padding-right','border-right-width'];}
return properties.inject(dim,function(memo,property){var val=proceed(element,property);return val===null?memo:memo-parseInt(val,10);})+'px';default:return proceed(element,style);}});Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(proceed,element,attribute){if(attribute==='title')return element.title;return proceed(element,attribute);});}
else if(Prototype.Browser.IE){Element.Methods.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(proceed,element){element=$(element);try{element.offsetParent}
catch(e){return $(document.body)}
var position=element.getStyle('position');if(position!=='static')return proceed(element);element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});$w('positionedOffset viewportOffset').each(function(method){Element.Methods[method]=Element.Methods[method].wrap(function(proceed,element){element=$(element);try{element.offsetParent}
catch(e){return Element._returnOffset(0,0)}
var position=element.getStyle('position');if(position!=='static')return proceed(element);var offsetParent=element.getOffsetParent();if(offsetParent&&offsetParent.getStyle('position')==='fixed')
offsetParent.setStyle({zoom:1});element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});});Element.Methods.cumulativeOffset=Element.Methods.cumulativeOffset.wrap(function(proceed,element){try{element.offsetParent}
catch(e){return Element._returnOffset(0,0)}
return proceed(element);});Element.Methods.getStyle=function(element,style){element=$(element);style=(style=='float'||style=='cssFloat')?'styleFloat':style.camelize();var value=element.style[style];if(!value&&element.currentStyle)value=element.currentStyle[style];if(style=='opacity'){if(value=(element.getStyle('filter')||'').match(/alpha\(opacity=(.*)\)/))
if(value[1])return parseFloat(value[1])/100;return 1.0;}
if(value=='auto'){if((style=='width'||style=='height')&&(element.getStyle('display')!='none'))
return element['offset'+style.capitalize()]+'px';return null;}
return value;};Element.Methods.setOpacity=function(element,value){function stripAlpha(filter){return filter.replace(/alpha\([^\)]*\)/gi,'');}
element=$(element);var currentStyle=element.currentStyle;if((currentStyle&&!currentStyle.hasLayout)||(!currentStyle&&element.style.zoom=='normal'))
element.style.zoom=1;var filter=element.getStyle('filter'),style=element.style;if(value==1||value===''){(filter=stripAlpha(filter))?style.filter=filter:style.removeAttribute('filter');return element;}else if(value<0.00001)value=0;style.filter=stripAlpha(filter)+'alpha(opacity='+(value*100)+')';return element;};Element._attributeTranslations=(function(){var classProp='className';var forProp='for';var el=document.createElement('div');el.setAttribute(classProp,'x');if(el.className!=='x'){el.setAttribute('class','x');if(el.className==='x'){classProp='class';}}
el=null;el=document.createElement('label');el.setAttribute(forProp,'x');if(el.htmlFor!=='x'){el.setAttribute('htmlFor','x');if(el.htmlFor==='x'){forProp='htmlFor';}}
el=null;return{read:{names:{'class':classProp,'className':classProp,'for':forProp,'htmlFor':forProp},values:{_getAttr:function(element,attribute){return element.getAttribute(attribute);},_getAttr2:function(element,attribute){return element.getAttribute(attribute,2);},_getAttrNode:function(element,attribute){var node=element.getAttributeNode(attribute);return node?node.value:"";},_getEv:(function(){var el=document.createElement('div');el.onclick=Prototype.emptyFunction;var value=el.getAttribute('onclick');var f;if(String(value).indexOf('{')>-1){f=function(element,attribute){attribute=element.getAttribute(attribute);if(!attribute)return null;attribute=attribute.toString();attribute=attribute.split('{')[1];attribute=attribute.split('}')[0];return attribute.strip();};}
else if(value===''){f=function(element,attribute){attribute=element.getAttribute(attribute);if(!attribute)return null;return attribute.strip();};}
el=null;return f;})(),_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){return element.title;}}}}})();Element._attributeTranslations.write={names:Object.extend({cellpadding:'cellPadding',cellspacing:'cellSpacing'},Element._attributeTranslations.read.names),values:{checked:function(element,value){element.checked=!!value;},style:function(element,value){element.style.cssText=value?value:'';}}};Element._attributeTranslations.has={};$w('colSpan rowSpan vAlign dateTime accessKey tabIndex '+'encType maxLength readOnly longDesc frameBorder').each(function(attr){Element._attributeTranslations.write.names[attr.toLowerCase()]=attr;Element._attributeTranslations.has[attr.toLowerCase()]=attr;});(function(v){Object.extend(v,{href:v._getAttr2,src:v._getAttr2,type:v._getAttr,action:v._getAttrNode,disabled:v._flag,checked:v._flag,readonly:v._flag,multiple:v._flag,onload:v._getEv,onunload:v._getEv,onclick:v._getEv,ondblclick:v._getEv,onmousedown:v._getEv,onmouseup:v._getEv,onmouseover:v._getEv,onmousemove:v._getEv,onmouseout:v._getEv,onfocus:v._getEv,onblur:v._getEv,onkeypress:v._getEv,onkeydown:v._getEv,onkeyup:v._getEv,onsubmit:v._getEv,onreset:v._getEv,onselect:v._getEv,onchange:v._getEv});})(Element._attributeTranslations.read.values);if(Prototype.BrowserFeatures.ElementExtensions){(function(){function _descendants(element){var nodes=element.getElementsByTagName('*'),results=[];for(var i=0,node;node=nodes[i];i++)
if(node.tagName!=="!")
results.push(node);return results;}
Element.Methods.down=function(element,expression,index){element=$(element);if(arguments.length==1)return element.firstDescendant();return Object.isNumber(expression)?_descendants(element)[expression]:Element.select(element,expression)[index||0];}})();}}
else if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1)?0.999999:(value==='')?'':(value<0.00001)?0:value;return element;};}
else if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;if(value==1)
if(element.tagName.toUpperCase()=='IMG'&&element.width){element.width++;element.width--;}else try{var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}
return element;};Element.Methods.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return Element._returnOffset(valueL,valueT);};}
if('outerHTML'in document.documentElement){Element.Methods.replace=function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){element.parentNode.replaceChild(content,element);return element;}
content=Object.toHTML(content);var parent=element.parentNode,tagName=parent.tagName.toUpperCase();if(Element._insertionTranslations.tags[tagName]){var nextSibling=element.next();var fragments=Element._getContentFromAnonymousElement(tagName,content.stripScripts());parent.removeChild(element);if(nextSibling)
fragments.each(function(node){parent.insertBefore(node,nextSibling)});else
fragments.each(function(node){parent.appendChild(node)});}
else element.outerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;};}
Element._returnOffset=function(l,t){var result=[l,t];result.left=l;result.top=t;return result;};Element._getContentFromAnonymousElement=function(tagName,html){var div=new Element('div'),t=Element._insertionTranslations.tags[tagName];if(t){div.innerHTML=t[0]+html+t[1];t[2].times(function(){div=div.firstChild});}else div.innerHTML=html;return $A(div.childNodes);};Element._insertionTranslations={before:function(element,node){element.parentNode.insertBefore(node,element);},top:function(element,node){element.insertBefore(node,element.firstChild);},bottom:function(element,node){element.appendChild(node);},after:function(element,node){element.parentNode.insertBefore(node,element.nextSibling);},tags:{TABLE:['<table>','</table>',1],TBODY:['<table><tbody>','</tbody></table>',2],TR:['<table><tbody><tr>','</tr></tbody></table>',3],TD:['<table><tbody><tr><td>','</td></tr></tbody></table>',4],SELECT:['<select>','</select>',1]}};(function(){var tags=Element._insertionTranslations.tags;Object.extend(tags,{THEAD:tags.TBODY,TFOOT:tags.TBODY,TH:tags.TD});})();Element.Methods.Simulated={hasAttribute:function(element,attribute){attribute=Element._attributeTranslations.has[attribute]||attribute;var node=$(element).getAttributeNode(attribute);return!!(node&&node.specified);}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);(function(div){if(!Prototype.BrowserFeatures.ElementExtensions&&div['__proto__']){window.HTMLElement={};window.HTMLElement.prototype=div['__proto__'];Prototype.BrowserFeatures.ElementExtensions=true;}
div=null;})(document.createElement('div'))
Element.extend=(function(){function checkDeficiency(tagName){if(typeof window.Element!='undefined'){var proto=window.Element.prototype;if(proto){var id='_'+(Math.random()+'').slice(2);var el=document.createElement(tagName);proto[id]='x';var isBuggy=(el[id]!=='x');delete proto[id];el=null;return isBuggy;}}
return false;}
function extendElementWith(element,methods){for(var property in methods){var value=methods[property];if(Object.isFunction(value)&&!(property in element))
element[property]=value.methodize();}}
var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY=checkDeficiency('object');if(Prototype.BrowserFeatures.SpecificElementExtensions){if(HTMLOBJECTELEMENT_PROTOTYPE_BUGGY){return function(element){if(element&&typeof element._extendedByPrototype=='undefined'){var t=element.tagName;if(t&&(/^(?:object|applet|embed)$/i.test(t))){extendElementWith(element,Element.Methods);extendElementWith(element,Element.Methods.Simulated);extendElementWith(element,Element.Methods.ByTag[t.toUpperCase()]);}}
return element;}}
return Prototype.K;}
var Methods={},ByTag=Element.Methods.ByTag;var extend=Object.extend(function(element){if(!element||typeof element._extendedByPrototype!='undefined'||element.nodeType!=1||element==window)return element;var methods=Object.clone(Methods),tagName=element.tagName.toUpperCase();if(ByTag[tagName])Object.extend(methods,ByTag[tagName]);extendElementWith(element,methods);element._extendedByPrototype=Prototype.emptyFunction;return element;},{refresh:function(){if(!Prototype.BrowserFeatures.ElementExtensions){Object.extend(Methods,Element.Methods);Object.extend(Methods,Element.Methods.Simulated);}}});extend.refresh();return extend;})();Element.hasAttribute=function(element,attribute){if(element.hasAttribute)return element.hasAttribute(attribute);return Element.Methods.Simulated.hasAttribute(element,attribute);};Element.addMethods=function(methods){var F=Prototype.BrowserFeatures,T=Element.Methods.ByTag;if(!methods){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{"FORM":Object.clone(Form.Methods),"INPUT":Object.clone(Form.Element.Methods),"SELECT":Object.clone(Form.Element.Methods),"TEXTAREA":Object.clone(Form.Element.Methods)});}
if(arguments.length==2){var tagName=methods;methods=arguments[1];}
if(!tagName)Object.extend(Element.Methods,methods||{});else{if(Object.isArray(tagName))tagName.each(extend);else extend(tagName);}
function extend(tagName){tagName=tagName.toUpperCase();if(!Element.Methods.ByTag[tagName])
Element.Methods.ByTag[tagName]={};Object.extend(Element.Methods.ByTag[tagName],methods);}
function copy(methods,destination,onlyIfAbsent){onlyIfAbsent=onlyIfAbsent||false;for(var property in methods){var value=methods[property];if(!Object.isFunction(value))continue;if(!onlyIfAbsent||!(property in destination))
destination[property]=value.methodize();}}
function findDOMClass(tagName){var klass;var trans={"OPTGROUP":"OptGroup","TEXTAREA":"TextArea","P":"Paragraph","FIELDSET":"FieldSet","UL":"UList","OL":"OList","DL":"DList","DIR":"Directory","H1":"Heading","H2":"Heading","H3":"Heading","H4":"Heading","H5":"Heading","H6":"Heading","Q":"Quote","INS":"Mod","DEL":"Mod","A":"Anchor","IMG":"Image","CAPTION":"TableCaption","COL":"TableCol","COLGROUP":"TableCol","THEAD":"TableSection","TFOOT":"TableSection","TBODY":"TableSection","TR":"TableRow","TH":"TableCell","TD":"TableCell","FRAMESET":"FrameSet","IFRAME":"IFrame"};if(trans[tagName])klass='HTML'+trans[tagName]+'Element';if(window[klass])return window[klass];klass='HTML'+tagName+'Element';if(window[klass])return window[klass];klass='HTML'+tagName.capitalize()+'Element';if(window[klass])return window[klass];var element=document.createElement(tagName);var proto=element['__proto__']||element.constructor.prototype;element=null;return proto;}
var elementPrototype=window.HTMLElement?HTMLElement.prototype:Element.prototype;if(F.ElementExtensions){copy(Element.Methods,elementPrototype);copy(Element.Methods.Simulated,elementPrototype,true);}
if(F.SpecificElementExtensions){for(var tag in Element.Methods.ByTag){var klass=findDOMClass(tag);if(Object.isUndefined(klass))continue;copy(T[tag],klass.prototype);}}
Object.extend(Element,Element.Methods);delete Element.ByTag;if(Element.extend.refresh)Element.extend.refresh();Element.cache={};};document.viewport={getDimensions:function(){return{width:this.getWidth(),height:this.getHeight()};},getScrollOffsets:function(){return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop);}};(function(viewport){var B=Prototype.Browser,doc=document,element,property={};function getRootElement(){if(B.WebKit&&!doc.evaluate)
return document;if(B.Opera&&window.parseFloat(window.opera.version())<9.5)
return document.body;return document.documentElement;}
function define(D){if(!element)element=getRootElement();property[D]='client'+D;viewport['get'+D]=function(){return element[property[D]]};return viewport['get'+D]();}
viewport.getWidth=define.curry('Width');viewport.getHeight=define.curry('Height');})(document.viewport);Element.Storage={UID:1};Element.addMethods({getStorage:function(element){if(!(element=$(element)))return;var uid;if(element===window){uid=0;}else{if(typeof element._prototypeUID==="undefined")
element._prototypeUID=[Element.Storage.UID++];uid=element._prototypeUID[0];}
if(!Element.Storage[uid])
Element.Storage[uid]=$H();return Element.Storage[uid];},store:function(element,key,value){if(!(element=$(element)))return;if(arguments.length===2){Element.getStorage(element).update(key);}else{Element.getStorage(element).set(key,value);}
return element;},retrieve:function(element,key,defaultValue){if(!(element=$(element)))return;var hash=Element.getStorage(element),value=hash.get(key);if(Object.isUndefined(value)){hash.set(key,defaultValue);value=defaultValue;}
return value;},clone:function(element,deep){if(!(element=$(element)))return;var clone=element.cloneNode(deep);clone._prototypeUID=void 0;if(deep){var descendants=Element.select(clone,'*'),i=descendants.length;while(i--){descendants[i]._prototypeUID=void 0;}}
return Element.extend(clone);}});var Selector=Class.create({initialize:function(expression){this.expression=expression.strip();if(this.shouldUseSelectorsAPI()){this.mode='selectorsAPI';}else if(this.shouldUseXPath()){this.mode='xpath';this.compileXPathMatcher();}else{this.mode="normal";this.compileMatcher();}},shouldUseXPath:(function(){var IS_DESCENDANT_SELECTOR_BUGGY=(function(){var isBuggy=false;if(document.evaluate&&window.XPathResult){var el=document.createElement('div');el.innerHTML='<ul><li></li></ul><div><ul><li></li></ul></div>';var xpath=".//*[local-name()='ul' or local-name()='UL']"+"//*[local-name()='li' or local-name()='LI']";var result=document.evaluate(xpath,el,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);isBuggy=(result.snapshotLength!==2);el=null;}
return isBuggy;})();return function(){if(!Prototype.BrowserFeatures.XPath)return false;var e=this.expression;if(Prototype.Browser.WebKit&&(e.include("-of-type")||e.include(":empty")))
return false;if((/(\[[\w-]*?:|:checked)/).test(e))
return false;if(IS_DESCENDANT_SELECTOR_BUGGY)return false;return true;}})(),shouldUseSelectorsAPI:function(){if(!Prototype.BrowserFeatures.SelectorsAPI)return false;if(Selector.CASE_INSENSITIVE_CLASS_NAMES)return false;if(!Selector._div)Selector._div=new Element('div');try{Selector._div.querySelector(this.expression);}catch(e){return false;}
return true;},compileMatcher:function(){var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m,len=ps.length,name;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=0;i<len;i++){p=ps[i].re;name=ps[i].name;if(m=e.match(p)){this.matcher.push(Object.isFunction(c[name])?c[name](m):new Template(c[name]).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,len=ps.length,name;if(Selector._cache[e]){this.xpath=Selector._cache[e];return;}
this.matcher=['.//*'];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){name=ps[i].name;if(m=e.match(ps[i].re)){this.matcher.push(Object.isFunction(x[name])?x[name](m):new Template(x[name]).evaluate(m));e=e.replace(m[0],'');break;}}}
this.xpath=this.matcher.join('');Selector._cache[this.expression]=this.xpath;},findElements:function(root){root=root||document;var e=this.expression,results;switch(this.mode){case'selectorsAPI':if(root!==document){var oldId=root.id,id=$(root).identify();id=id.replace(/([\.:])/g,"\\$1");e="#"+id+" "+e;}
results=$A(root.querySelectorAll(e)).map(Element.extend);root.id=oldId;return results;case'xpath':return document._getElementsByXPath(this.xpath,root);default:return this.matcher(root);}},match:function(element){this.tokens=[];var e=this.expression,ps=Selector.patterns,as=Selector.assertions;var le,p,m,len=ps.length,name;while(e&&le!==e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){p=ps[i].re;name=ps[i].name;if(m=e.match(p)){if(as[name]){this.tokens.push([name,Object.clone(m)]);e=e.replace(m[0],'');}else{return this.findElements(document).include(element);}}}}
var match=true,name,matches;for(var i=0,token;token=this.tokens[i];i++){name=token[0],matches=token[1];if(!Selector.assertions[name](element,matches)){match=false;break;}}
return match;},toString:function(){return this.expression;},inspect:function(){return"#<Selector:"+this.expression.inspect()+">";}});if(Prototype.BrowserFeatures.SelectorsAPI&&document.compatMode==='BackCompat'){Selector.CASE_INSENSITIVE_CLASS_NAMES=(function(){var div=document.createElement('div'),span=document.createElement('span');div.id="prototype_test_id";span.className='Test';div.appendChild(span);var isIgnored=(div.querySelector('#prototype_test_id .test')!==null);div=span=null;return isIgnored;})();}
Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:'/following-sibling::*',tagName:function(m){if(m[1]=='*')return'';return"[local-name()='"+m[1].toLowerCase()+"' or local-name()='"+m[1].toUpperCase()+"']";},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(m){m[1]=m[1].toLowerCase();return new Template("[@#{1}]").evaluate(m);},attr:function(m){m[1]=m[1].toLowerCase();m[3]=m[5]||m[6];return new Template(Selector.xpath.operators[m[2]]).evaluate(m);},pseudo:function(m){var h=Selector.xpath.pseudos[m[1]];if(!h)return'';if(Object.isFunction(h))return h(m);return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);},operators:{'=':"[@#{1}='#{3}']",'!=':"[@#{1}!='#{3}']",'^=':"[starts-with(@#{1}, '#{3}')]",'$=':"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",'*=':"[contains(@#{1}, '#{3}')]",'~=':"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",'|=':"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{'first-child':'[not(preceding-sibling::*)]','last-child':'[not(following-sibling::*)]','only-child':'[not(preceding-sibling::* or following-sibling::*)]','empty':"[count(*) = 0 and (count(text()) = 0)]",'checked':"[@checked]",'disabled':"[(@disabled) and (@type!='hidden')]",'enabled':"[not(@disabled) and (@type!='hidden')]",'not':function(m){var e=m[6],p=Selector.patterns,x=Selector.xpath,le,v,len=p.length,name;var exclusion=[];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){name=p[i].name
if(m=e.match(p[i].re)){v=Object.isFunction(x[name])?x[name](m):new Template(x[name]).evaluate(m);exclusion.push("("+v.substring(1,v.length-1)+")");e=e.replace(m[0],'');break;}}}
return"[not("+exclusion.join(" and ")+")]";},'nth-child':function(m){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",m);},'nth-last-child':function(m){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",m);},'nth-of-type':function(m){return Selector.xpath.pseudos.nth("position() ",m);},'nth-last-of-type':function(m){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",m);},'first-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-of-type'](m);},'last-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-last-of-type'](m);},'only-of-type':function(m){var p=Selector.xpath.pseudos;return p['first-of-type'](m)+p['last-of-type'](m);},nth:function(fragment,m){var mm,formula=m[6],predicate;if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';if(mm=formula.match(/^(\d+)$/))
return'['+fragment+"= "+mm[1]+']';if(mm=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(mm[1]=="-")mm[1]=-1;var a=mm[1]?Number(mm[1]):1;var b=mm[2]?Number(mm[2]):0;predicate="[((#{fragment} - #{b}) mod #{a} = 0) and "+"((#{fragment} - #{b}) div #{a} >= 0)]";return new Template(predicate).evaluate({fragment:fragment,a:a,b:b});}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c);      c = false;',className:'n = h.className(n, r, "#{1}", c);    c = false;',id:'n = h.id(n, r, "#{1}", c);           c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}", c); c = false;',attr:function(m){m[3]=(m[5]||m[6]);return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);},pseudo:function(m){if(m[6])m[6]=m[6].replace(/"/g,'\\"');return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:[{name:'laterSibling',re:/^\s*~\s*/},{name:'child',re:/^\s*>\s*/},{name:'adjacent',re:/^\s*\+\s*/},{name:'descendant',re:/^\s/},{name:'tagName',re:/^\s*(\*|[\w\-]+)(\b|$)?/},{name:'id',re:/^#([\w\-\*]+)(\b|$)/},{name:'className',re:/^\.([\w\-\*]+)(\b|$)/},{name:'pseudo',re:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/},{name:'attrPresence',re:/^\[((?:[\w-]+:)?[\w-]+)\]/},{name:'attr',re:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/}],assertions:{tagName:function(element,matches){return matches[1].toUpperCase()==element.tagName.toUpperCase();},className:function(element,matches){return Element.hasClassName(element,matches[1]);},id:function(element,matches){return element.id===matches[1];},attrPresence:function(element,matches){return Element.hasAttribute(element,matches[1]);},attr:function(element,matches){var nodeValue=Element.readAttribute(element,matches[1]);return nodeValue&&Selector.operators[matches[2]](nodeValue,matches[5]||matches[6]);}},handlers:{concat:function(a,b){for(var i=0,node;node=b[i];i++)
a.push(node);return a;},mark:function(nodes){var _true=Prototype.emptyFunction;for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=_true;return nodes;},unmark:(function(){var PROPERTIES_ATTRIBUTES_MAP=(function(){var el=document.createElement('div'),isBuggy=false,propName='_countedByPrototype',value='x'
el[propName]=value;isBuggy=(el.getAttribute(propName)===value);el=null;return isBuggy;})();return PROPERTIES_ATTRIBUTES_MAP?function(nodes){for(var i=0,node;node=nodes[i];i++)
node.removeAttribute('_countedByPrototype');return nodes;}:function(nodes){for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=void 0;return nodes;}})(),index:function(parentNode,reverse,ofType){parentNode._countedByPrototype=Prototype.emptyFunction;if(reverse){for(var nodes=parentNode.childNodes,i=nodes.length-1,j=1;i>=0;i--){var node=nodes[i];if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}}else{for(var i=0,j=1,nodes=parentNode.childNodes;node=nodes[i];i++)
if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}},unique:function(nodes){if(nodes.length==0)return nodes;var results=[],n;for(var i=0,l=nodes.length;i<l;i++)
if(typeof(n=nodes[i])._countedByPrototype=='undefined'){n._countedByPrototype=Prototype.emptyFunction;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,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){var uTagName=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()===uTagName)results.push(node);return results;}else return root.getElementsByTagName(tagName);},id:function(nodes,root,id,combinator){var targetNode=$(id),h=Selector.handlers;if(root==document){if(!targetNode)return[];if(!nodes)return[targetNode];}else{if(!root.sourceIndex||root.sourceIndex<1){var nodes=root.getElementsByTagName('*');for(var j=0,node;node=nodes[j];j++){if(node.id===id)return[node];}}}
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,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);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,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);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._countedByPrototype){h.index(node.parentNode,reverse,ofType);indexed.push(node.parentNode);}}
if(formula.match(/^\d+$/)){formula=Number(formula);for(var i=0,node;node=nodes[i];i++)
if(node.nodeIndex==formula)results.push(node);}else if(m=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(m[1]=="-")m[1]=-1;var a=m[1]?Number(m[1]):1;var b=m[2]?Number(m[2]):0;var indices=Selector.pseudos.getIndices(a,b,nodes.length);for(var i=0,node,l=indices.length;node=nodes[i];i++){for(var j=0;j<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)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._countedByPrototype)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&&(!node.type||node.type!=='hidden'))
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==v||nv&&nv.startsWith(v);},'$=':function(nv,v){return nv==v||nv&&nv.endsWith(v);},'*=':function(nv,v){return nv==v||nv&&nv.include(v);},'~=':function(nv,v){return(' '+nv+' ').include(' '+v+' ');},'|=':function(nv,v){return('-'+(nv||"").toUpperCase()+'-').include('-'+(v||"").toUpperCase()+'-');}},split:function(expression){var expressions=[];expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){expressions.push(m[1].strip());});return expressions;},matchElements:function(elements,expression){var matches=$$(expression),h=Selector.handlers;h.mark(matches);for(var i=0,results=[],element;element=elements[i];i++)
if(element._countedByPrototype)results.push(element);h.unmark(matches);return results;},findElement:function(elements,expression,index){if(Object.isNumber(expression)){index=expression;expression=false;}
return Selector.matchElements(elements,expression||'*')[index||0];},findChildElements:function(element,expressions){expressions=Selector.split(expressions.join(','));var results=[],h=Selector.handlers;for(var i=0,l=expressions.length,selector;i<l;i++){selector=new Selector(expressions[i].strip());h.concat(results,selector.findElements(element));}
return(l>1)?h.unique(results):results;}});if(Prototype.Browser.IE){Object.extend(Selector.handlers,{concat:function(a,b){for(var i=0,node;node=b[i];i++)
if(node.tagName!=="!")a.push(node);return a;}});}
function $$(){return Selector.findChildElements(document,$A(arguments));}
var Form={reset:function(form){form=$(form);form.reset();return form;},serializeElements:function(elements,options){if(typeof options!='object')options={hash:!!options};else if(Object.isUndefined(options.hash))options.hash=true;var key,value,submitted=false,submit=options.submit;var data=elements.inject({},function(result,element){if(!element.disabled&&element.name){key=element.name;value=$(element).getValue();if(value!=null&&element.type!='file'&&(element.type!='submit'||(!submitted&&submit!==false&&(!submit||key==submit)&&(submitted=true)))){if(key in result){if(!Object.isArray(result[key]))result[key]=[result[key]];result[key].push(value);}
else result[key]=value;}}
return result;});return options.hash?data:Object.toQueryString(data);}};Form.Methods={serialize:function(form,options){return Form.serializeElements(Form.getElements(form),options);},getElements:function(form){var elements=$(form).getElementsByTagName('*'),element,arr=[],serializers=Form.Element.Serializers;for(var i=0;element=elements[i];i++){arr.push(element);}
return arr.inject([],function(elements,child){if(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){var elements=$(form).getElements().findAll(function(element){return'hidden'!=element.type&&!element.disabled;});var firstByIndex=elements.findAll(function(element){return element.hasAttribute('tabIndex')&&element.tabIndex>=0;}).sortBy(function(element){return element.tabIndex}).first();return firstByIndex?firstByIndex:elements.find(function(element){return/^(?:input|select|textarea)$/i.test(element.tagName);});},focusFirstElement:function(form){form=$(form);form.findFirstElement().activate();return form;},request:function(form,options){form=$(form),options=Object.clone(options||{});var params=options.parameters,action=form.readAttribute('action')||'';if(action.blank())action=window.location.href;options.parameters=form.serialize(true);if(params){if(Object.isString(params))params=params.toQueryParams();Object.extend(options.parameters,params);}
if(form.hasAttribute('method')&&!options.method)
options.method=form.method;return new Ajax.Request(action,options);}};Form.Element={focus:function(element){$(element).focus();return element;},select:function(element){$(element).select();return element;}};Form.Element.Methods={serialize:function(element){element=$(element);if(!element.disabled&&element.name){var value=element.getValue();if(value!=undefined){var pair={};pair[element.name]=value;return Object.toQueryString(pair);}}
return'';},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();return Form.Element.Serializers[method](element);},setValue:function(element,value){element=$(element);var method=element.tagName.toLowerCase();Form.Element.Serializers[method](element,value);return element;},clear:function(element){$(element).value='';return element;},present:function(element){return $(element).value!='';},activate:function(element){element=$(element);try{element.focus();if(element.select&&(element.tagName.toLowerCase()!='input'||!(/^(?:button|reset|submit)$/i.test(element.type))))
element.select();}catch(e){}
return element;},disable:function(element){element=$(element);element.disabled=true;return element;},enable:function(element){element=$(element);element.disabled=false;return element;}};var Field=Form.Element;var $F=Form.Element.Methods.getValue;Form.Element.Serializers={input:function(element,value){switch(element.type.toLowerCase()){case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element,value);default:return Form.Element.Serializers.textarea(element,value);}},inputSelector:function(element,value){if(Object.isUndefined(value))return element.checked?element.value:null;else element.checked=!!value;},textarea:function(element,value){if(Object.isUndefined(value))return element.value;else element.value=value;},select:function(element,value){if(Object.isUndefined(value))
return this[element.type=='select-one'?'selectOne':'selectMany'](element);else{var opt,currentValue,single=!Object.isArray(value);for(var i=0,length=element.length;i<length;i++){opt=element.options[i];currentValue=this.optionValue(opt);if(single){if(currentValue==value){opt.selected=true;return;}}
else opt.selected=value.include(currentValue);}}},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=Class.create(PeriodicalExecuter,{initialize:function($super,element,frequency,callback){$super(callback,frequency);this.element=$(element);this.lastValue=this.getValue();},execute:function(){var value=this.getValue();if(Object.isString(this.lastValue)&&Object.isString(value)?this.lastValue!=value:String(this.lastValue)!=String(value)){this.callback(this.element,value);this.lastValue=value;}}});Form.Element.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=Class.create({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,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(Abstract.EventObserver,{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.serialize(this.element);}});(function(){var 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,KEY_INSERT:45,cache:{}};var docEl=document.documentElement;var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED='onmouseenter'in docEl&&'onmouseleave'in docEl;var _isButton;if(Prototype.Browser.IE){var buttonMap={0:1,1:4,2:2};_isButton=function(event,code){return event.button===buttonMap[code];};}else if(Prototype.Browser.WebKit){_isButton=function(event,code){switch(code){case 0:return event.which==1&&!event.metaKey;case 1:return event.which==1&&event.metaKey;default:return false;}};}else{_isButton=function(event,code){return event.which?(event.which===code+1):(event.button===code);};}
function isLeftClick(event){return _isButton(event,0)}
function isMiddleClick(event){return _isButton(event,1)}
function isRightClick(event){return _isButton(event,2)}
function element(event){event=Event.extend(event);var node=event.target,type=event.type,currentTarget=event.currentTarget;if(currentTarget&&currentTarget.tagName){if(type==='load'||type==='error'||(type==='click'&&currentTarget.tagName.toLowerCase()==='input'&&currentTarget.type==='radio'))
node=currentTarget;}
if(node.nodeType==Node.TEXT_NODE)
node=node.parentNode;return Element.extend(node);}
function findElement(event,expression){var element=Event.element(event);if(!expression)return element;var elements=[element].concat(element.ancestors());return Selector.findElement(elements,expression,0);}
function pointer(event){return{x:pointerX(event),y:pointerY(event)};}
function pointerX(event){var docElement=document.documentElement,body=document.body||{scrollLeft:0};return event.pageX||(event.clientX+
(docElement.scrollLeft||body.scrollLeft)-
(docElement.clientLeft||0));}
function pointerY(event){var docElement=document.documentElement,body=document.body||{scrollTop:0};return event.pageY||(event.clientY+
(docElement.scrollTop||body.scrollTop)-
(docElement.clientTop||0));}
function stop(event){Event.extend(event);event.preventDefault();event.stopPropagation();event.stopped=true;}
Event.Methods={isLeftClick:isLeftClick,isMiddleClick:isMiddleClick,isRightClick:isRightClick,element:element,findElement:findElement,pointer:pointer,pointerX:pointerX,pointerY:pointerY,stop:stop};var methods=Object.keys(Event.Methods).inject({},function(m,name){m[name]=Event.Methods[name].methodize();return m;});if(Prototype.Browser.IE){function _relatedTarget(event){var element;switch(event.type){case'mouseover':element=event.fromElement;break;case'mouseout':element=event.toElement;break;default:return null;}
return Element.extend(element);}
Object.extend(methods,{stopPropagation:function(){this.cancelBubble=true},preventDefault:function(){this.returnValue=false},inspect:function(){return'[object Event]'}});Event.extend=function(event,element){if(!event)return false;if(event._extendedByPrototype)return event;event._extendedByPrototype=Prototype.emptyFunction;var pointer=Event.pointer(event);Object.extend(event,{target:event.srcElement||element,relatedTarget:_relatedTarget(event),pageX:pointer.x,pageY:pointer.y});return Object.extend(event,methods);};}else{Event.prototype=window.Event.prototype||document.createEvent('HTMLEvents').__proto__;Object.extend(Event.prototype,methods);Event.extend=Prototype.K;}
function _createResponder(element,eventName,handler){var registry=Element.retrieve(element,'prototype_event_registry');if(Object.isUndefined(registry)){CACHE.push(element);registry=Element.retrieve(element,'prototype_event_registry',$H());}
var respondersForEvent=registry.get(eventName);if(Object.isUndefined(respondersForEvent)){respondersForEvent=[];registry.set(eventName,respondersForEvent);}
if(respondersForEvent.pluck('handler').include(handler))return false;var responder;if(eventName.include(":")){responder=function(event){if(Object.isUndefined(event.eventName))
return false;if(event.eventName!==eventName)
return false;Event.extend(event,element);handler.call(element,event);};}else{if(!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED&&(eventName==="mouseenter"||eventName==="mouseleave")){if(eventName==="mouseenter"||eventName==="mouseleave"){responder=function(event){Event.extend(event,element);var parent=event.relatedTarget;while(parent&&parent!==element){try{parent=parent.parentNode;}
catch(e){parent=element;}}
if(parent===element)return;handler.call(element,event);};}}else{responder=function(event){Event.extend(event,element);handler.call(element,event);};}}
responder.handler=handler;respondersForEvent.push(responder);return responder;}
function _destroyCache(){for(var i=0,length=CACHE.length;i<length;i++){Event.stopObserving(CACHE[i]);CACHE[i]=null;}}
var CACHE=[];if(Prototype.Browser.IE)
window.attachEvent('onunload',_destroyCache);if(Prototype.Browser.WebKit)
window.addEventListener('unload',Prototype.emptyFunction,false);var _getDOMEventName=Prototype.K;if(!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED){_getDOMEventName=function(eventName){var translations={mouseenter:"mouseover",mouseleave:"mouseout"};return eventName in translations?translations[eventName]:eventName;};}
function observe(element,eventName,handler){element=$(element);var responder=_createResponder(element,eventName,handler);if(!responder)return element;if(eventName.include(':')){if(element.addEventListener)
element.addEventListener("dataavailable",responder,false);else{element.attachEvent("ondataavailable",responder);element.attachEvent("onfilterchange",responder);}}else{var actualEventName=_getDOMEventName(eventName);if(element.addEventListener)
element.addEventListener(actualEventName,responder,false);else
element.attachEvent("on"+actualEventName,responder);}
return element;}
function stopObserving(element,eventName,handler){element=$(element);var registry=Element.retrieve(element,'prototype_event_registry');if(Object.isUndefined(registry))return element;if(eventName&&!handler){var responders=registry.get(eventName);if(Object.isUndefined(responders))return element;responders.each(function(r){Element.stopObserving(element,eventName,r.handler);});return element;}else if(!eventName){registry.each(function(pair){var eventName=pair.key,responders=pair.value;responders.each(function(r){Element.stopObserving(element,eventName,r.handler);});});return element;}
var responders=registry.get(eventName);if(!responders)return;var responder=responders.find(function(r){return r.handler===handler;});if(!responder)return element;var actualEventName=_getDOMEventName(eventName);if(eventName.include(':')){if(element.removeEventListener)
element.removeEventListener("dataavailable",responder,false);else{element.detachEvent("ondataavailable",responder);element.detachEvent("onfilterchange",responder);}}else{if(element.removeEventListener)
element.removeEventListener(actualEventName,responder,false);else
element.detachEvent('on'+actualEventName,responder);}
registry.set(eventName,responders.without(responder));return element;}
function fire(element,eventName,memo,bubble){element=$(element);if(Object.isUndefined(bubble))
bubble=true;if(element==document&&document.createEvent&&!element.dispatchEvent)
element=document.documentElement;var event;if(document.createEvent){event=document.createEvent('HTMLEvents');event.initEvent('dataavailable',true,true);}else{event=document.createEventObject();event.eventType=bubble?'ondataavailable':'onfilterchange';}
event.eventName=eventName;event.memo=memo||{};if(document.createEvent)
element.dispatchEvent(event);else
element.fireEvent(event.eventType,event);return Event.extend(event);}
Object.extend(Event,Event.Methods);Object.extend(Event,{fire:fire,observe:observe,stopObserving:stopObserving});Element.addMethods({fire:fire,observe:observe,stopObserving:stopObserving});Object.extend(document,{fire:fire.methodize(),observe:observe.methodize(),stopObserving:stopObserving.methodize(),loaded:false});if(window.Event)Object.extend(window.Event,Event);else window.Event=Event;})();(function(){var timer;function fireContentLoadedEvent(){if(document.loaded)return;if(timer)window.clearTimeout(timer);document.loaded=true;document.fire('dom:loaded');}
function checkReadyState(){if(document.readyState==='complete'){document.stopObserving('readystatechange',checkReadyState);fireContentLoadedEvent();}}
function pollDoScroll(){try{document.documentElement.doScroll('left');}
catch(e){timer=pollDoScroll.defer();return;}
fireContentLoadedEvent();}
if(document.addEventListener){document.addEventListener('DOMContentLoaded',fireContentLoadedEvent,false);}else{document.observe('readystatechange',checkReadyState);if(window==top)
timer=pollDoScroll.defer();}
Event.observe(window,'load',fireContentLoadedEvent);})();Element.addMethods();Hash.toQueryString=Object.toQueryString;var Toggle={display:Element.toggle};Element.Methods.childOf=Element.Methods.descendantOf;var Insertion={Before:function(element,content){return Element.insert(element,{before:content});},Top:function(element,content){return Element.insert(element,{top:content});},Bottom:function(element,content){return Element.insert(element,{bottom:content});},After:function(element,content){return Element.insert(element,{after:content});}};var $continue=new Error('"throw $continue" is deprecated, use "return" instead');var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=Element.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=Element.cumulativeScrollOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=Element.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;},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(element){Position.prepare();return Element.absolutize(element);},relativize:function(element){Position.prepare();return Element.relativize(element);},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(source,target,options){options=options||{};return Element.clonePosition(target,source,options);}};if(!document.getElementsByClassName)document.getElementsByClassName=function(instanceMethods){function iter(name){return name.blank()?null:"[contains(concat(' ', @class, ' '), ' "+name+" ')]";}
instanceMethods.getElementsByClassName=Prototype.BrowserFeatures.XPath?function(element,className){className=className.toString().strip();var cond=/\s/.test(className)?$w(className).map(iter).join(''):iter(className);return cond?document._getElementsByXPath('.//*'+cond,element):[];}:function(element,className){className=className.toString().strip();var elements=[],classNames=(/\s/.test(className)?$w(className):null);if(!classNames&&!className)return elements;var nodes=$(element).getElementsByTagName('*');className=' '+className+' ';for(var i=0,child,cn;child=nodes[i];i++){if(child.className&&(cn=' '+child.className+' ')&&(cn.include(className)||(classNames&&classNames.all(function(name){return!name.toString().blank()&&cn.include(' '+name+' ');}))))
elements.push(Element.extend(child));}
return elements;};return function(className,parentElement){return $(parentElement||document.body).getElementsByClassName(className);};}(Element.Methods);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);Form.check=function(form){var isValid=true;$(form).getElements().each(function(e){if(e.className=='required'&&!e.present())
{new Effect.Shake(e);isValid=false;}});return isValid;};Position.getWindowSize=function(w){w=w?w:window;var width=w.innerWidth||(w.document.documentElement.clientWidth||w.document.body.clientWidth);var height=w.innerHeight||(w.document.documentElement.clientHeight||w.document.body.clientHeight);return[width,height];}
Object.extend(Event,{_domReady:function(){if(arguments.callee.done)return;arguments.callee.done=true;if(this._timer)clearInterval(this._timer);this._readyCallbacks.each(function(f){f()});this._readyCallbacks=null;},onDOMReady:function(f){if(!this._readyCallbacks){var domReady=this._domReady.bind(this);if(document.addEventListener)
document.addEventListener("DOMContentLoaded",domReady,false);if(/WebKit/i.test(navigator.userAgent)){this._timer=setInterval(function(){if(/loaded|complete/.test(document.readyState))domReady();},10);}
Event.observe(window,'load',domReady);Event._readyCallbacks=[];}
Event._readyCallbacks.push(f);}});var Scriptaculous={Version:"1.8.1",require:function(A){document.write('<script type="text/javascript" src="'+A+'"><\/script>')},REQUIRED_PROTOTYPE:"1.6.0",load:function(){function A(B){var C=B.split(".");return parseInt(C[0])*100000+parseInt(C[1])*1000+parseInt(C[2])}if((typeof Prototype=="undefined")||(typeof Element=="undefined")||(typeof Element.Methods=="undefined")||(A(Prototype.Version)<A(Scriptaculous.REQUIRED_PROTOTYPE))){throw("script.aculo.us requires the Prototype JavaScript framework >= "+Scriptaculous.REQUIRED_PROTOTYPE)}}};Scriptaculous.load();var Builder={NODEMAP:{AREA:"map",CAPTION:"table",COL:"table",COLGROUP:"table",LEGEND:"fieldset",OPTGROUP:"select",OPTION:"select",PARAM:"object",TBODY:"table",TD:"table",TFOOT:"table",TH:"table",THEAD:"table",TR:"table"},node:function(A){A=A.toUpperCase();var F=this.NODEMAP[A]||"div";var B=document.createElement(F);try{B.innerHTML="<"+A+"></"+A+">"}catch(E){}var D=B.firstChild||null;if(D&&(D.tagName.toUpperCase()!=A)){D=D.getElementsByTagName(A)[0]}if(!D){D=document.createElement(A)}if(!D){return}if(arguments[1]){if(this._isStringOrNumber(arguments[1])||(arguments[1]instanceof Array)||arguments[1].tagName){this._children(D,arguments[1])}else{var C=this._attributes(arguments[1]);if(C.length){try{B.innerHTML="<"+A+" "+C+"></"+A+">"}catch(E){}D=B.firstChild||null;if(!D){D=document.createElement(A);for(attr in arguments[1]){D[attr=="class"?"className":attr]=arguments[1][attr]}}if(D.tagName.toUpperCase()!=A){D=B.getElementsByTagName(A)[0]}}}}if(arguments[2]){this._children(D,arguments[2])}return D},_text:function(A){return document.createTextNode(A)},ATTR_MAP:{className:"class",htmlFor:"for"},_attributes:function(A){var B=[];for(attribute in A){B.push((attribute in this.ATTR_MAP?this.ATTR_MAP[attribute]:attribute)+'="'+A[attribute].toString().escapeHTML().gsub(/"/,"&quot;")+'"')}return B.join(" ")},_children:function(B,A){if(A.tagName){B.appendChild(A);return}if(typeof A=="object"){A.flatten().each(function(C){if(typeof C=="object"){B.appendChild(C)}else{if(Builder._isStringOrNumber(C)){B.appendChild(Builder._text(C))}}})}else{if(Builder._isStringOrNumber(A)){B.appendChild(Builder._text(A))}}},_isStringOrNumber:function(A){return(typeof A=="string"||typeof A=="number")},build:function(B){var A=this.node("div");$(A).update(B.strip());return A.down()},dump:function(B){if(typeof B!="object"&&typeof B!="function"){B=window}var A=("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").split(/\s+/);A.each(function(C){B[C]=function(){return Builder.node.apply(Builder,[C].concat($A(arguments)))}})}};String.prototype.parseColor=function(){var A="#";if(this.slice(0,4)=="rgb("){var C=this.slice(4,this.length-1).split(",");var B=0;do{A+=parseInt(C[B]).toColorPart()}while(++B<3)}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var B=1;B<4;B++){A+=(this.charAt(B)+this.charAt(B)).toLowerCase()}}if(this.length==7){A=this.toLowerCase()}}}return(A.length==7?A:(arguments[0]||this))};Element.collectTextNodes=function(A){return $A($(A).childNodes).collect(function(B){return(B.nodeType==3?B.nodeValue:(B.hasChildNodes()?Element.collectTextNodes(B):""))}).flatten().join("")};Element.collectTextNodesIgnoreClass=function(A,B){return $A($(A).childNodes).collect(function(C){return(C.nodeType==3?C.nodeValue:((C.hasChildNodes()&&!Element.hasClassName(C,B))?Element.collectTextNodesIgnoreClass(C,B):""))}).flatten().join("")};Element.setContentZoom=function(A,B){A=$(A);A.setStyle({fontSize:(B/100)+"em"});if(Prototype.Browser.WebKit){window.scrollBy(0,0)}return A};Element.getInlineOpacity=function(A){return $(A).style.opacity||""};Element.forceRerendering=function(A){try{A=$(A);var C=document.createTextNode(" ");A.appendChild(C);A.removeChild(C)}catch(B){}};var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},Transitions:{linear:Prototype.K,sinoidal:function(A){return(-Math.cos(A*Math.PI)/2)+0.5},reverse:function(A){return 1-A},flicker:function(A){var A=((-Math.cos(A*Math.PI)/4)+0.75)+Math.random()/4;return A>1?1:A},wobble:function(A){return(-Math.cos(A*Math.PI*(9*A))/2)+0.5},pulse:function(B,A){A=A||5;return(((B%(1/A))*A).round()==0?((B*A*2)-(B*A*2).floor()):1-((B*A*2)-(B*A*2).floor()))},spring:function(A){return 1-(Math.cos(A*4.5*Math.PI)*Math.exp(-A*6))},none:function(A){return 0},full:function(A){return 1}},DefaultOptions:{duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"},tagifyText:function(A){var B="position:relative";if(Prototype.Browser.IE){B+=";zoom:1"}A=$(A);$A(A.childNodes).each(function(C){if(C.nodeType==3){C.nodeValue.toArray().each(function(D){A.insertBefore(new Element("span",{style:B}).update(D==" "?String.fromCharCode(160):D),C)});Element.remove(C)}})},multiple:function(B,C){var E;if(((typeof B=="object")||Object.isFunction(B))&&(B.length)){E=B}else{E=$(B).childNodes}var A=Object.extend({speed:0.1,delay:0},arguments[2]||{});var D=A.delay;$A(E).each(function(G,F){new C(G,Object.extend(A,{delay:F*A.speed+D}))})},PAIRS:{slide:["SlideDown","SlideUp"],blind:["BlindDown","BlindUp"],appear:["Appear","Fade"]},toggle:function(B,C){B=$(B);C=(C||"appear").toLowerCase();var A=Object.extend({queue:{position:"end",scope:(B.id||"global"),limit:1}},arguments[2]||{});Effect[B.visible()?Effect.PAIRS[C][1]:Effect.PAIRS[C][0]](B,A)}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null},_each:function(A){this.effects._each(A)},add:function(B){var C=new Date().getTime();var A=Object.isString(B.options.queue)?B.options.queue:B.options.queue.position;switch(A){case"front":this.effects.findAll(function(D){return D.state=="idle"}).each(function(D){D.startOn+=B.finishOn;D.finishOn+=B.finishOn});break;case"with-last":C=this.effects.pluck("startOn").max()||C;break;case"end":C=this.effects.pluck("finishOn").max()||C;break}B.startOn+=C;B.finishOn+=C;if(!B.options.queue.limit||(this.effects.length<B.options.queue.limit)){this.effects.push(B)}if(!this.interval){this.interval=setInterval(this.loop.bind(this),15)}},remove:function(A){this.effects=this.effects.reject(function(B){return B==A});if(this.effects.length==0){clearInterval(this.interval);this.interval=null}},loop:function(){var C=new Date().getTime();for(var B=0,A=this.effects.length;B<A;B++){this.effects[B]&&this.effects[B].loop(C)}}});Effect.Queues={instances:$H(),get:function(A){if(!Object.isString(A)){return A}return this.instances.get(A)||this.instances.set(A,new Effect.ScopedQueue())}};Effect.Queue=Effect.Queues.get("global");Effect.Base=Class.create({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&&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(this.options,"beforeSetup")+(this.setup?"this.setup();":"")+codeForEvent(this.options,"afterSetup")+'};if (this.state=="running"){pos=this.options.transition(pos)*'+this.fromToDelta+"+"+this.options.from+";this.position=pos;"+codeForEvent(this.options,"beforeUpdate")+(this.update?"this.update(pos);":"")+codeForEvent(this.options,"afterUpdate")+"}}");this.event("beforeStart");if(!this.options.sync){Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).add(this)}},loop:function(C){if(C>=this.startOn){if(C>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");if(this.finish){this.finish()}this.event("afterFinish");return}var B=(C-this.startOn)/this.totalTime,A=(B*this.totalFrames).round();if(A>this.currentFrame){this.render(B);this.currentFrame=A}}},cancel:function(){if(!this.options.sync){Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).remove(this)}this.state="finished"},event:function(A){if(this.options[A+"Internal"]){this.options[A+"Internal"](this)}if(this.options[A]){this.options[A](this)}},inspect:function(){var A=$H();for(property in this){if(!Object.isFunction(this[property])){A.set(property,this[property])}}return"#<Effect:"+A.inspect()+",options:"+$H(this.options).inspect()+">"}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(A){this.effects=A||[];this.start(arguments[1])},update:function(A){this.effects.invoke("render",A)},finish:function(A){this.effects.each(function(B){B.render(1);B.cancel();B.event("beforeFinish");if(B.finish){B.finish(A)}B.event("afterFinish")})}});Effect.Tween=Class.create(Effect.Base,{initialize:function(C,F,E){C=Object.isString(C)?$(C):C;var B=$A(arguments),D=B.last(),A=B.length==5?B[3]:null;this.method=Object.isFunction(D)?D.bind(C):Object.isFunction(C[D])?C[D].bind(C):function(G){C[D]=G};this.start(Object.extend({from:F,to:E},A||{}))},update:function(A){this.method(A)}});Effect.Event=Class.create(Effect.Base,{initialize:function(){this.start(Object.extend({duration:0},arguments[0]||{}))},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize:function(B){this.element=$(B);if(!this.element){throw(Effect._elementDoesNotExistError)}if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1})}var A=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});this.start(A)},update:function(A){this.element.setOpacity(A)}});Effect.Move=Class.create(Effect.Base,{initialize:function(B){this.element=$(B);if(!this.element){throw(Effect._elementDoesNotExistError)}var A=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});this.start(A)},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(A){this.element.setStyle({left:(this.options.x*A+this.originalLeft).round()+"px",top:(this.options.y*A+this.originalTop).round()+"px"})}});Effect.MoveBy=function(B,A,C){return new Effect.Move(B,Object.extend({x:C,y:A},arguments[3]||{}))};Effect.Scale=Class.create(Effect.Base,{initialize:function(B,C){this.element=$(B);if(!this.element){throw(Effect._elementDoesNotExistError)}var A=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:C},arguments[2]||{});this.start(A)},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(B){this.originalStyle[B]=this.element.style[B]}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var A=this.element.getStyle("font-size")||"100%";["em","px","%","pt"].each(function(B){if(A.indexOf(B)>0){this.fontSize=parseFloat(A);this.fontSizeType=B}}.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(A){var B=(this.options.scaleFrom/100)+(this.factor*A);if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*B+this.fontSizeType})}this.setDimensions(this.dims[0]*B,this.dims[1]*B)},finish:function(A){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle)}},setDimensions:function(A,D){var E={};if(this.options.scaleX){E.width=D.round()+"px"}if(this.options.scaleY){E.height=A.round()+"px"}if(this.options.scaleFromCenter){var C=(A-this.dims[0])/2;var B=(D-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){E.top=this.originalTop-C+"px"}if(this.options.scaleX){E.left=this.originalLeft-B+"px"}}else{if(this.options.scaleY){E.top=-C+"px"}if(this.options.scaleX){E.left=-B+"px"}}}this.element.setStyle(E)}});Effect.Highlight=Class.create(Effect.Base,{initialize:function(B){this.element=$(B);if(!this.element){throw(Effect._elementDoesNotExistError)}var A=Object.extend({startcolor:"#ffff99"},arguments[1]||{});this.start(A)},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(A){return parseInt(this.options.startcolor.slice(A*2+1,A*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(A){return parseInt(this.options.endcolor.slice(A*2+1,A*2+3),16)-this._base[A]}.bind(this))},update:function(A){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(B,C,D){return B+((this._base[D]+(this._delta[D]*A)).round().toColorPart())}.bind(this))})},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});Effect.ScrollTo=function(D){var C=arguments[1]||{},B=document.viewport.getScrollOffsets(),E=$(D).cumulativeOffset(),A=(window.height||document.body.scrollHeight)-document.viewport.getHeight();if(C.offset){E[1]+=C.offset}return new Effect.Tween(null,B.top,E[1]>A?A:E[1],C,function(F){scrollTo(B.left,F.round())})};Effect.Fade=function(C){C=$(C);var A=C.getInlineOpacity();var B=Object.extend({from:C.getOpacity()||1,to:0,afterFinishInternal:function(D){if(D.options.to!=0){return}D.element.hide().setStyle({opacity:A})}},arguments[1]||{});return new Effect.Opacity(C,B)};Effect.Appear=function(B){B=$(B);var A=Object.extend({from:(B.getStyle("display")=="none"?0:B.getOpacity()||0),to:1,afterFinishInternal:function(C){C.element.forceRerendering()},beforeSetup:function(C){C.element.setOpacity(C.options.from).show()}},arguments[1]||{});return new Effect.Opacity(B,A)};Effect.Puff=function(B){B=$(B);var A={opacity:B.getInlineOpacity(),position:B.getStyle("position"),top:B.style.top,left:B.style.left,width:B.style.width,height:B.style.height};return new Effect.Parallel([new Effect.Scale(B,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(B,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(C){Position.absolutize(C.effects[0].element)},afterFinishInternal:function(C){C.effects[0].element.hide().setStyle(A)}},arguments[1]||{}))};Effect.BlindUp=function(A){A=$(A);A.makeClipping();return new Effect.Scale(A,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(B){B.element.hide().undoClipping()}},arguments[1]||{}))};Effect.BlindDown=function(B){B=$(B);var A=B.getDimensions();return new Effect.Scale(B,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:A.height,originalWidth:A.width},restoreAfterFinish:true,afterSetup:function(C){C.element.makeClipping().setStyle({height:"0px"}).show()},afterFinishInternal:function(C){C.element.undoClipping()}},arguments[1]||{}))};Effect.SwitchOff=function(B){B=$(B);var A=B.getInlineOpacity();return new Effect.Appear(B,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(C){new Effect.Scale(C.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(D){D.element.makePositioned().makeClipping()},afterFinishInternal:function(D){D.element.hide().undoClipping().undoPositioned().setStyle({opacity:A})}})}},arguments[1]||{}))};Effect.DropOut=function(B){B=$(B);var A={top:B.getStyle("top"),left:B.getStyle("left"),opacity:B.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(B,{x:0,y:100,sync:true}),new Effect.Opacity(B,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(C){C.effects[0].element.makePositioned()},afterFinishInternal:function(C){C.effects[0].element.hide().undoPositioned().setStyle(A)}},arguments[1]||{}))};Effect.Shake=function(D){D=$(D);var B=Object.extend({distance:20,duration:0.5},arguments[1]||{});var E=parseFloat(B.distance);var C=parseFloat(B.duration)/10;var A={top:D.getStyle("top"),left:D.getStyle("left")};return new Effect.Move(D,{x:E,y:0,duration:C,afterFinishInternal:function(F){new Effect.Move(F.element,{x:-E*2,y:0,duration:C*2,afterFinishInternal:function(G){new Effect.Move(G.element,{x:E*2,y:0,duration:C*2,afterFinishInternal:function(H){new Effect.Move(H.element,{x:-E*2,y:0,duration:C*2,afterFinishInternal:function(I){new Effect.Move(I.element,{x:E*2,y:0,duration:C*2,afterFinishInternal:function(J){new Effect.Move(J.element,{x:-E,y:0,duration:C,afterFinishInternal:function(K){K.element.undoPositioned().setStyle(A)}})}})}})}})}})}})};Effect.SlideDown=function(C){C=$(C).cleanWhitespace();var A=C.down().getStyle("bottom");var B=C.getDimensions();return new Effect.Scale(C,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:B.height,originalWidth:B.width},restoreAfterFinish:true,afterSetup:function(D){D.element.makePositioned();D.element.down().makePositioned();if(window.opera){D.element.setStyle({top:""})}D.element.makeClipping().setStyle({height:"0px"}).show()},afterUpdateInternal:function(D){D.element.down().setStyle({bottom:(D.dims[0]-D.element.clientHeight)+"px"})},afterFinishInternal:function(D){D.element.undoClipping().undoPositioned();D.element.down().undoPositioned().setStyle({bottom:A})}},arguments[1]||{}))};Effect.SlideUp=function(C){C=$(C).cleanWhitespace();var A=C.down().getStyle("bottom");var B=C.getDimensions();return new Effect.Scale(C,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,scaleMode:{originalHeight:B.height,originalWidth:B.width},restoreAfterFinish:true,afterSetup:function(D){D.element.makePositioned();D.element.down().makePositioned();if(window.opera){D.element.setStyle({top:""})}D.element.makeClipping().show()},afterUpdateInternal:function(D){D.element.down().setStyle({bottom:(D.dims[0]-D.element.clientHeight)+"px"})},afterFinishInternal:function(D){D.element.hide().undoClipping().undoPositioned();D.element.down().undoPositioned().setStyle({bottom:A})}},arguments[1]||{}))};Effect.Squish=function(A){return new Effect.Scale(A,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(B){B.element.makeClipping()},afterFinishInternal:function(B){B.element.hide().undoClipping()}})};Effect.Grow=function(C){C=$(C);var B=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var A={top:C.style.top,left:C.style.left,height:C.style.height,width:C.style.width,opacity:C.getInlineOpacity()};var G=C.getDimensions();var H,F;var E,D;switch(B.direction){case"top-left":H=F=E=D=0;break;case"top-right":H=G.width;F=D=0;E=-G.width;break;case"bottom-left":H=E=0;F=G.height;D=-G.height;break;case"bottom-right":H=G.width;F=G.height;E=-G.width;D=-G.height;break;case"center":H=G.width/2;F=G.height/2;E=-G.width/2;D=-G.height/2;break}return new Effect.Move(C,{x:H,y:F,duration:0.01,beforeSetup:function(I){I.element.hide().makeClipping().makePositioned()},afterFinishInternal:function(I){new Effect.Parallel([new Effect.Opacity(I.element,{sync:true,to:1,from:0,transition:B.opacityTransition}),new Effect.Move(I.element,{x:E,y:D,sync:true,transition:B.moveTransition}),new Effect.Scale(I.element,100,{scaleMode:{originalHeight:G.height,originalWidth:G.width},sync:true,scaleFrom:window.opera?1:0,transition:B.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(J){J.effects[0].element.setStyle({height:"0px"}).show()},afterFinishInternal:function(J){J.effects[0].element.undoClipping().undoPositioned().setStyle(A)}},B))}})};Effect.Shrink=function(C){C=$(C);var B=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var A={top:C.style.top,left:C.style.left,height:C.style.height,width:C.style.width,opacity:C.getInlineOpacity()};var F=C.getDimensions();var E,D;switch(B.direction){case"top-left":E=D=0;break;case"top-right":E=F.width;D=0;break;case"bottom-left":E=0;D=F.height;break;case"bottom-right":E=F.width;D=F.height;break;case"center":E=F.width/2;D=F.height/2;break}return new Effect.Parallel([new Effect.Opacity(C,{sync:true,to:0,from:1,transition:B.opacityTransition}),new Effect.Scale(C,window.opera?1:0,{sync:true,transition:B.scaleTransition,restoreAfterFinish:true}),new Effect.Move(C,{x:E,y:D,sync:true,transition:B.moveTransition})],Object.extend({beforeStartInternal:function(G){G.effects[0].element.makePositioned().makeClipping()},afterFinishInternal:function(G){G.effects[0].element.hide().undoClipping().undoPositioned().setStyle(A)}},B))};Effect.Pulsate=function(C){C=$(C);var B=arguments[1]||{};var A=C.getInlineOpacity();var E=B.transition||Effect.Transitions.sinoidal;var D=function(F){return E(1-Effect.Transitions.pulse(F,B.pulses))};D.bind(E);return new Effect.Opacity(C,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(F){F.element.setStyle({opacity:A})}},B),{transition:D}))};Effect.Fold=function(B){B=$(B);var A={top:B.style.top,left:B.style.left,width:B.style.width,height:B.style.height};B.makeClipping();return new Effect.Scale(B,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(C){new Effect.Scale(B,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(D){D.element.hide().undoClipping().setStyle(A)}})}},arguments[1]||{}))};Effect.Morph=Class.create(Effect.Base,{initialize:function(C){this.element=$(C);if(!this.element){throw(Effect._elementDoesNotExistError)}var A=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(A.style)){this.style=$H(A.style)}else{if(A.style.include(":")){this.style=A.style.parseStyle()}else{this.element.addClassName(A.style);this.style=$H(this.element.getStyles());this.element.removeClassName(A.style);var B=this.element.getStyles();this.style=this.style.reject(function(D){return D.value==B[D.key]});A.afterFinishInternal=function(D){D.element.addClassName(D.options.style);D.transforms.each(function(E){D.element.style[E.style]=""})}}}this.start(A)},setup:function(){function A(B){if(!B||["rgba(0, 0, 0, 0)","transparent"].include(B)){B="#ffffff"}B=B.parseColor();return $R(0,2).map(function(C){return parseInt(B.slice(C*2+1,C*2+3),16)})}this.transforms=this.style.map(function(G){var F=G[0],E=G[1],D=null;if(E.parseColor("#zzzzzz")!="#zzzzzz"){E=E.parseColor();D="color"}else{if(F=="opacity"){E=parseFloat(E);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1})}}else{if(Element.CSS_LENGTH.test(E)){var C=E.match(/^([\+\-]?[0-9\.]+)(.*)$/);E=parseFloat(C[1]);D=(C.length==3)?C[2]:null}}}var B=this.element.getStyle(F);return{style:F.camelize(),originalValue:D=="color"?A(B):parseFloat(B||0),targetValue:D=="color"?A(E):E,unit:D}}.bind(this)).reject(function(B){return((B.originalValue==B.targetValue)||(B.unit!="color"&&(isNaN(B.originalValue)||isNaN(B.targetValue))))})},update:function(A){var D={},B,C=this.transforms.length;while(C--){D[(B=this.transforms[C]).style]=B.unit=="color"?"#"+(Math.round(B.originalValue[0]+(B.targetValue[0]-B.originalValue[0])*A)).toColorPart()+(Math.round(B.originalValue[1]+(B.targetValue[1]-B.originalValue[1])*A)).toColorPart()+(Math.round(B.originalValue[2]+(B.targetValue[2]-B.originalValue[2])*A)).toColorPart():(B.originalValue+(B.targetValue-B.originalValue)*A).toFixed(3)+(B.unit===null?"":B.unit)}this.element.setStyle(D,true)}});Effect.Transform=Class.create({initialize:function(A){this.tracks=[];this.options=arguments[1]||{};this.addTracks(A)},addTracks:function(A){A.each(function(B){B=$H(B);var C=B.values().first();this.tracks.push($H({ids:B.keys().first(),effect:Effect.Morph,options:{style:C}}))}.bind(this));return this},play:function(){return new Effect.Parallel(this.tracks.map(function(A){var D=A.get("ids"),C=A.get("effect"),B=A.get("options");var E=[$(D)||$$(D)].flatten();return E.map(function(F){return new C(F,Object.extend({sync:true},B))})}).flatten(),this.options)}});Element.CSS_PROPERTIES=$w("backgroundColor backgroundPosition borderBottomColor borderBottomStyle borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderSpacing borderTopColor borderTopStyle borderTopWidth bottom clip color fontSize fontWeight height left letterSpacing lineHeight marginBottom marginLeft marginRight marginTop markerOffset maxHeight maxWidth minHeight minWidth opacity outlineColor outlineOffset outlineWidth paddingBottom paddingLeft paddingRight paddingTop right textIndent top width wordSpacing zIndex");Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement("div");String.prototype.parseStyle=function(){var B,A=$H();if(Prototype.Browser.WebKit){B=new Element("div",{style:this}).style}else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';B=String.__parseStyleElement.childNodes[0].style}Element.CSS_PROPERTIES.each(function(C){if(B[C]){A.set(C,B[C])}});if(Prototype.Browser.IE&&this.include("opacity")){A.set("opacity",this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1])}return A};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(B){var A=document.defaultView.getComputedStyle($(B),null);return Element.CSS_PROPERTIES.inject({},function(C,D){C[D]=A[D];return C})}}else{Element.getStyles=function(B){B=$(B);var A=B.currentStyle,C;C=Element.CSS_PROPERTIES.inject({},function(D,E){D[E]=A[E];return D});if(!C.opacity){C.opacity=B.getOpacity()}return C}}Effect.Methods={morph:function(A,B){A=$(A);new Effect.Morph(A,Object.extend({style:B},arguments[2]||{}));return A},visualEffect:function(C,E,B){C=$(C);var D=E.dasherize().camelize(),A=D.charAt(0).toUpperCase()+D.substring(1);new Effect[A](C,B);return C},highlight:function(B,A){B=$(B);new Effect.Highlight(B,A);return B}};$w("fade appear grow shrink fold blindUp blindDown slideUp slideDown pulsate shake puff squish switchOff dropOut").each(function(A){Effect.Methods[A]=function(C,B){C=$(C);Effect[A.charAt(0).toUpperCase()+A.substring(1)](C,B);return C}});$w("getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles").each(function(A){Effect.Methods[A]=Element[A]});Element.addMethods(Effect.Methods);if(Object.isUndefined(Effect)){throw("dragdrop.js requires including script.aculo.us' effects.js library")}var Droppables={drops:[],remove:function(A){this.drops=this.drops.reject(function(B){return B.element==$(A)})},add:function(B){B=$(B);var A=Object.extend({greedy:true,hoverclass:null,tree:false},arguments[1]||{});if(A.containment){A._containers=[];var C=A.containment;if(Object.isArray(C)){C.each(function(D){A._containers.push($(D))})}else{A._containers.push($(C))}}if(A.accept){A.accept=[A.accept].flatten()}Element.makePositioned(B);A.element=B;this.drops.push(A)},findDeepestChild:function(A){deepest=A[0];for(i=1;i<A.length;++i){if(Element.isParent(A[i].element,deepest.element)){deepest=A[i]}}return deepest},isContained:function(B,A){var C;if(A.tree){C=B.treeNode}else{C=B.parentNode}return A._containers.detect(function(D){return C==D})},isAffected:function(A,C,B){return((B.element!=C)&&((!B._containers)||this.isContained(C,B))&&((!B.accept)||(Element.classNames(C).detect(function(D){return B.accept.include(D)})))&&Position.within(B.element,A[0],A[1]))},deactivate:function(A){if(A.hoverclass){Element.removeClassName(A.element,A.hoverclass)}this.last_active=null},activate:function(A){if(A.hoverclass){Element.addClassName(A.element,A.hoverclass)}this.last_active=A},show:function(A,C){if(!this.drops.length){return}var B,D=[];this.drops.each(function(E){if(Droppables.isAffected(A,C,E)){D.push(E)}});if(D.length>0){B=Droppables.findDeepestChild(D)}if(this.last_active&&this.last_active!=B){this.deactivate(this.last_active)}if(B){Position.within(B.element,A[0],A[1]);if(B.onHover){B.onHover(C,B.element,Position.overlap(B.overlap,B.element))}if(B!=this.last_active){Droppables.activate(B)}}},fire:function(B,A){if(!this.last_active){return}Position.prepare();if(this.isAffected([Event.pointerX(B),Event.pointerY(B)],A,this.last_active)){if(this.last_active.onDrop){this.last_active.onDrop(A,this.last_active.element,B);return true}}},reset:function(){if(this.last_active){this.deactivate(this.last_active)}}};var Draggables={drags:[],observers:[],register:function(A){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(A)},unregister:function(A){this.drags=this.drags.reject(function(B){return B==A});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(A){if(A.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=A}.bind(this),A.options.delay)}else{window.focus();this.activeDraggable=A}},deactivate:function(){this.activeDraggable=null},updateDrag:function(A){if(!this.activeDraggable){return}var B=[Event.pointerX(A),Event.pointerY(A)];if(this._lastPointer&&(this._lastPointer.inspect()==B.inspect())){return}this._lastPointer=B;this.activeDraggable.updateDrag(A,B)},endDrag:function(A){if(this._timeout){clearTimeout(this._timeout);this._timeout=null}if(!this.activeDraggable){return}this._lastPointer=null;this.activeDraggable.endDrag(A);this.activeDraggable=null},keyPress:function(A){if(this.activeDraggable){this.activeDraggable.keyPress(A)}},addObserver:function(A){this.observers.push(A);this._cacheObserverCallbacks()},removeObserver:function(A){this.observers=this.observers.reject(function(B){return B.element==A});this._cacheObserverCallbacks()},notify:function(B,A,C){if(this[B+"Count"]>0){this.observers.each(function(D){if(D[B]){D[B](B,A,C)}})}if(A.options[B]){A.options[B](A,C)}},_cacheObserverCallbacks:function(){["onStart","onEnd","onDrag"].each(function(A){Draggables[A+"Count"]=Draggables.observers.select(function(B){return B[A]}).length})}};var Draggable=Class.create({initialize:function(B){var C={handle:false,reverteffect:function(F,E,D){var G=Math.sqrt(Math.abs(E^2)+Math.abs(D^2))*0.02;new Effect.Move(F,{x:-D,y:-E,duration:G,queue:{scope:"_draggable",position:"end"}})},endeffect:function(E){var D=Object.isNumber(E._opacity)?E._opacity:1;new Effect.Opacity(E,{duration:0.2,from:0.7,to:D,queue:{scope:"_draggable",position:"end"},afterFinish:function(){Draggable._dragging[E]=false}})},zindex:1000,revert:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!arguments[1]||Object.isUndefined(arguments[1].endeffect)){Object.extend(C,{starteffect:function(D){D._opacity=Element.getOpacity(D);Draggable._dragging[D]=true;new Effect.Opacity(D,{duration:0.2,from:D._opacity,to:0.7})}})}var A=Object.extend(C,arguments[1]||{});this.element=$(B);if(A.handle&&Object.isString(A.handle)){this.handle=this.element.down("."+A.handle,0)}if(!this.handle){this.handle=$(A.handle)}if(!this.handle){this.handle=this.element}if(A.scroll&&!A.scroll.scrollTo&&!A.scroll.outerHTML){A.scroll=$(A.scroll);this._isScrollChild=Element.childOf(this.element,A.scroll)}Element.makePositioned(this.element);this.options=A;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(A){if(!Object.isUndefined(Draggable._dragging[this.element])&&Draggable._dragging[this.element]){return}if(Event.isLeftClick(A)){var C=Event.element(A);if((tag_name=C.tagName.toUpperCase())&&(tag_name=="INPUT"||tag_name=="SELECT"||tag_name=="OPTION"||tag_name=="BUTTON"||tag_name=="TEXTAREA")){return}var B=[Event.pointerX(A),Event.pointerY(A)];var D=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(E){return(B[E]-D[E])});Draggables.activate(this);Event.stop(A)}},startDrag:function(B){this.dragging=true;if(!this.delta){this.delta=this.currentDelta()}if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,"z-index")||0);this.element.style.zIndex=this.options.zindex}if(this.options.ghosting){this._clone=this.element.cloneNode(true);this.element._originallyAbsolute=(this.element.getStyle("position")=="absolute");if(!this.element._originallyAbsolute){Position.absolutize(this.element)}this.element.parentNode.insertBefore(this._clone,this.element)}if(this.options.scroll){if(this.options.scroll==window){var A=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=A.left;this.originalScrollTop=A.top}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop}}Draggables.notify("onStart",this,B);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(B,E){this.dragging=false;if(this.options.quiet){Position.prepare();var D=[Event.pointerX(B),Event.pointerY(B)];Droppables.show(D,this.element)}if(this.options.ghosting){if(!this.element._originallyAbsolute){Position.relativize(this.element)}delete this.element._originallyAbsolute;Element.remove(this._clone);this._clone=null}var F=false;if(E){F=Droppables.fire(B,this.element);if(!F){F=false}}if(F&&this.options.onDropped){this.options.onDropped(this.element)}Draggables.notify("onEnd",this,B);var A=this.options.revert;if(A&&Object.isFunction(A)){A=A(this.element)}var C=this.currentDelta();if(A&&this.options.reverteffect){if(F==0||A!="failure"){this.options.reverteffect(this.element,C[1]-this.delta[1],C[0]-this.delta[0])}}else{this.delta=C}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(A){if(A.keyCode!=Event.KEY_ESC){return}this.finishDrag(A,false);Event.stop(A)},endDrag:function(A){if(!this.dragging){return}this.stopScrolling();this.finishDrag(A,true);Event.stop(A)},draw:function(A){var F=Position.cumulativeOffset(this.element);if(this.options.ghosting){var C=Position.realOffset(this.element);F[0]+=C[0]-Position.deltaX;F[1]+=C[1]-Position.deltaY}var E=this.currentDelta();F[0]-=E[0];F[1]-=E[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){F[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;F[1]-=this.options.scroll.scrollTop-this.originalScrollTop}var D=[0,1].map(function(G){return(A[G]-F[G]-this.offset[G])}.bind(this));if(this.options.snap){if(Object.isFunction(this.options.snap)){D=this.options.snap(D[0],D[1],this)}else{if(Object.isArray(this.options.snap)){D=D.map(function(G,H){return(G/this.options.snap[H]).round()*this.options.snap[H]}.bind(this))}else{D=D.map(function(G){return(G/this.options.snap).round()*this.options.snap}.bind(this))}}}var B=this.element.style;if((!this.options.constraint)||(this.options.constraint=="horizontal")){B.left=D[0]+"px"}if((!this.options.constraint)||(this.options.constraint=="vertical")){B.top=D[1]+"px"}if(B.visibility=="hidden"){B.visibility=""}},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null}},startScrolling:function(A){if(!(A[0]||A[1])){return}this.scrollSpeed=[A[0]*this.options.scrollSpeed,A[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10)},scroll:function(){var current=new Date();var delta=current-this.lastScrolled;this.lastScrolled=current;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=delta/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1])}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*delta/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*delta/1000}Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify("onDrag",this);if(this._isScrollChild){Draggables._lastScrollPointer=Draggables._lastScrollPointer||$A(Draggables._lastPointer);Draggables._lastScrollPointer[0]+=this.scrollSpeed[0]*delta/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*delta/1000;if(Draggables._lastScrollPointer[0]<0){Draggables._lastScrollPointer[0]=0}if(Draggables._lastScrollPointer[1]<0){Draggables._lastScrollPointer[1]=0}this.draw(Draggables._lastScrollPointer)}if(this.options.change){this.options.change(this)}},_getWindowScroll:function(w){var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft}else{if(w.document.body){T=body.scrollTop;L=body.scrollLeft}}if(w.innerWidth){W=w.innerWidth;H=w.innerHeight}else{if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight}else{W=body.offsetWidth;H=body.offsetHeight}}}return{top:T,left:L,width:W,height:H}}});Draggable._dragging={};var SortableObserver=Class.create({initialize:function(B,A){this.element=$(B);this.observer=A;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(A){while(A.tagName.toUpperCase()!="BODY"){if(A.id&&Sortable.sortables[A.id]){return A}A=A.parentNode}},options:function(A){A=Sortable._findRootElement($(A));if(!A){return}return Sortable.sortables[A.id]},destroy:function(A){var B=Sortable.options(A);if(B){Draggables.removeObserver(B.element);B.droppables.each(function(C){Droppables.remove(C)});B.draggables.invoke("destroy");delete Sortable.sortables[B.element.id]}},create:function(C){C=$(C);var B=Object.extend({element:C,tag:"li",dropOnEmpty:false,tree:false,treeTag:"ul",overlap:"vertical",constraint:"vertical",containment:C,handle:false,only:false,delay:0,hoverclass:null,ghosting:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,elements:false,handles:false,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(C);var A={revert:true,quiet:B.quiet,scroll:B.scroll,scrollSpeed:B.scrollSpeed,scrollSensitivity:B.scrollSensitivity,delay:B.delay,ghosting:B.ghosting,constraint:B.constraint,handle:B.handle};if(B.starteffect){A.starteffect=B.starteffect}if(B.reverteffect){A.reverteffect=B.reverteffect}else{if(B.ghosting){A.reverteffect=function(F){F.style.top=0;F.style.left=0}}}if(B.endeffect){A.endeffect=B.endeffect}if(B.zindex){A.zindex=B.zindex}var D={overlap:B.overlap,containment:B.containment,tree:B.tree,hoverclass:B.hoverclass,onHover:Sortable.onHover};var E={onHover:Sortable.onEmptyHover,overlap:B.overlap,containment:B.containment,hoverclass:B.hoverclass};Element.cleanWhitespace(C);B.draggables=[];B.droppables=[];if(B.dropOnEmpty||B.tree){Droppables.add(C,E);B.droppables.push(C)}(B.elements||this.findElements(C,B)||[]).each(function(H,F){var G=B.handles?$(B.handles[F]):(B.handle?$(H).select("."+B.handle)[0]:H);B.draggables.push(new Draggable(H,Object.extend(A,{handle:G})));Droppables.add(H,D);if(B.tree){H.treeNode=C}B.droppables.push(H)});if(B.tree){(Sortable.findTreeElements(C,B)||[]).each(function(F){Droppables.add(F,E);F.treeNode=C;B.droppables.push(F)})}this.sortables[C.id]=B;Draggables.addObserver(new SortableObserver(C,B.onUpdate))},findElements:function(B,A){return Element.findChildren(B,A.only,A.tree?true:false,A.tag)},findTreeElements:function(B,A){return Element.findChildren(B,A.only,A.tree?true:false,A.treeTag)},onHover:function(E,D,A){if(Element.isParent(D,E)){return}if(A>0.33&&A<0.66&&Sortable.options(D).tree){return}else{if(A>0.5){Sortable.mark(D,"before");if(D.previousSibling!=E){var B=E.parentNode;E.style.visibility="hidden";D.parentNode.insertBefore(E,D);if(D.parentNode!=B){Sortable.options(B).onChange(E)}Sortable.options(D.parentNode).onChange(E)}}else{Sortable.mark(D,"after");var C=D.nextSibling||null;if(C!=E){var B=E.parentNode;E.style.visibility="hidden";D.parentNode.insertBefore(E,C);if(D.parentNode!=B){Sortable.options(B).onChange(E)}Sortable.options(D.parentNode).onChange(E)}}}},onEmptyHover:function(E,G,H){var I=E.parentNode;var A=Sortable.options(G);if(!Element.isParent(G,E)){var F;var C=Sortable.findElements(G,{tag:A.tag,only:A.only});var B=null;if(C){var D=Element.offsetSize(G,A.overlap)*(1-H);for(F=0;F<C.length;F+=1){if(D-Element.offsetSize(C[F],A.overlap)>=0){D-=Element.offsetSize(C[F],A.overlap)}else{if(D-(Element.offsetSize(C[F],A.overlap)/2)>=0){B=F+1<C.length?C[F+1]:null;break}else{B=C[F];break}}}}G.insertBefore(E,B);Sortable.options(I).onChange(E);A.onChange(E)}},unmark:function(){if(Sortable._marker){Sortable._marker.hide()}},mark:function(B,A){var D=Sortable.options(B.parentNode);if(D&&!D.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 C=Position.cumulativeOffset(B);Sortable._marker.setStyle({left:C[0]+"px",top:C[1]+"px"});if(A=="after"){if(D.overlap=="horizontal"){Sortable._marker.setStyle({left:(C[0]+B.clientWidth)+"px"})}else{Sortable._marker.setStyle({top:(C[1]+B.clientHeight)+"px"})}}Sortable._marker.show()},_tree:function(E,B,F){var D=Sortable.findElements(E,B)||[];for(var C=0;C<D.length;++C){var A=D[C].id.match(B.format);if(!A){continue}var G={id:encodeURIComponent(A?A[1]:null),element:E,parent:F,children:[],position:F.children.length,container:$(D[C]).down(B.treeTag)};if(G.container){this._tree(G.container,B,G)}F.children.push(G)}return F},tree:function(D){D=$(D);var C=this.options(D);var B=Object.extend({tag:C.tag,treeTag:C.treeTag,only:C.only,name:D.id,format:C.format},arguments[1]||{});var A={id:null,parent:null,children:[],container:D,position:0};return Sortable._tree(D,B,A)},_constructIndex:function(B){var A="";do{if(B.id){A="["+B.position+"]"+A}}while((B=B.parent)!=null);return A},sequence:function(B){B=$(B);var A=Object.extend(this.options(B),arguments[1]||{});return $(this.findElements(B,A)||[]).map(function(C){return C.id.match(A.format)?C.id.match(A.format)[1]:""})},setSequence:function(B,C){B=$(B);var A=Object.extend(this.options(B),arguments[2]||{});var D={};this.findElements(B,A).each(function(E){if(E.id.match(A.format)){D[E.id.match(A.format)[1]]=[E,E.parentNode]}E.parentNode.removeChild(E)});C.each(function(E){var F=D[E];if(F){F[1].appendChild(F[0]);delete D[E]}})},serialize:function(C){C=$(C);var B=Object.extend(Sortable.options(C),arguments[1]||{});var A=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:C.id);if(B.tree){return Sortable.tree(C,arguments[1]).children.map(function(D){return[A+Sortable._constructIndex(D)+"[id]="+encodeURIComponent(D.id)].concat(D.children.map(arguments.callee))}).flatten().join("&")}else{return Sortable.sequence(C,arguments[1]).map(function(D){return A+"[]="+encodeURIComponent(D)}).join("&")}}};Element.isParent=function(B,A){if(!B.parentNode||B==A){return false}if(B.parentNode==A){return true}return Element.isParent(B.parentNode,A)};Element.findChildren=function(D,B,A,C){if(!D.hasChildNodes()){return null}C=C.toUpperCase();if(B){B=[B].flatten()}var E=[];$A(D.childNodes).each(function(G){if(G.tagName&&G.tagName.toUpperCase()==C&&(!B||(Element.classNames(G).detect(function(H){return B.include(H)})))){E.push(G)}if(A){var F=Element.findChildren(G,B,A,C);if(F){E.push(F)}}});return(E.length>0?E.flatten():[])};Element.offsetSize=function(A,B){return A["offset"+((B=="vertical"||B=="height")?"Height":"Width")]};if(typeof Effect=="undefined"){throw("controls.js requires including script.aculo.us' effects.js library")}var Autocompleter={};Autocompleter.Base=Class.create({baseInitialize:function(B,C,A){B=$(B);this.element=B;this.update=$(C);this.hasFocus=false;this.changed=false;this.active=false;this.index=0;this.entryCount=0;this.oldElementValue=this.element.value;if(this.setOptions){this.setOptions(A)}else{this.options=A||{}}this.options.paramName=this.options.paramName||this.element.name;this.options.tokens=this.options.tokens||[];this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.onShow=this.options.onShow||function(D,E){if(!E.style.position||E.style.position=="absolute"){E.style.position="absolute";Position.clone(D,E,{setHeight:false,offsetTop:D.offsetHeight})}Effect.Appear(E,{duration:0.15})};this.options.onHide=this.options.onHide||function(D,E){new Effect.Fade(E,{duration:0.15})};if(typeof(this.options.tokens)=="string"){this.options.tokens=new Array(this.options.tokens)}if(!this.options.tokens.include("\n")){this.options.tokens.push("\n")}this.observer=null;this.element.setAttribute("autocomplete","off");Element.hide(this.update);Event.observe(this.element,"blur",this.onBlur.bindAsEventListener(this));Event.observe(this.element,"keydown",this.onKeyPress.bindAsEventListener(this))},show:function(){if(Element.getStyle(this.update,"display")=="none"){this.options.onShow(this.element,this.update)}if(!this.iefix&&(Prototype.Browser.IE)&&(Element.getStyle(this.update,"position")=="absolute")){new Insertion.After(this.update,'<iframe id="'+this.update.id+'_iefix" style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.update.id+"_iefix")}if(this.iefix){setTimeout(this.fixIEOverlapping.bind(this),50)}},fixIEOverlapping:function(){Position.clone(this.update,this.iefix,{setTop:(!this.update.style.height)});this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix)},hide:function(){this.stopIndicator();if(Element.getStyle(this.update,"display")!="none"){this.options.onHide(this.element,this.update)}if(this.iefix){Element.hide(this.iefix)}},startIndicator:function(){if(this.options.indicator){Element.show(this.options.indicator)}},stopIndicator:function(){if(this.options.indicator){Element.hide(this.options.indicator)}},onKeyPress:function(A){if(this.active){switch(A.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(A);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(A);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(A);return;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(A);return}}else{if(A.keyCode==Event.KEY_TAB||A.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&A.keyCode==0)){return}}this.changed=true;this.hasFocus=true;if(this.observer){clearTimeout(this.observer)}this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000)},activate:function(){this.changed=false;this.hasFocus=true;this.getUpdatedChoices()},onHover:function(B){var A=Event.findElement(B,"LI");if(this.index!=A.autocompleteIndex){this.index=A.autocompleteIndex;this.render()}Event.stop(B)},onClick:function(B){var A=Event.findElement(B,"LI");this.index=A.autocompleteIndex;this.selectEntry();this.hide()},onBlur:function(A){setTimeout(this.hide.bind(this),250);this.hasFocus=false;this.active=false},render:function(){if(this.entryCount>0){for(var A=0;A<this.entryCount;A++){this.index==A?Element.addClassName(this.getEntry(A),"selected"):Element.removeClassName(this.getEntry(A),"selected")}if(this.hasFocus){this.show();this.active=true}}else{this.active=false;this.hide()}},markPrevious:function(){if(this.index>0){this.index--}else{this.index=this.entryCount-1}this.getEntry(this.index).scrollIntoView(true)},markNext:function(){if(this.index<this.entryCount-1){this.index++}else{this.index=0}this.getEntry(this.index).scrollIntoView(false)},getEntry:function(A){return this.update.firstChild.childNodes[A]},getCurrentEntry:function(){return this.getEntry(this.index)},selectEntry:function(){this.active=false;this.updateElement(this.getCurrentEntry())},updateElement:function(F){if(this.options.updateElement){this.options.updateElement(F);return}var D="";if(this.options.select){var A=$(F).select("."+this.options.select)||[];if(A.length>0){D=Element.collectTextNodes(A[0],this.options.select)}}else{D=Element.collectTextNodesIgnoreClass(F,"informal")}var C=this.getTokenBounds();if(C[0]!=-1){var E=this.element.value.substr(0,C[0]);var B=this.element.value.substr(C[0]).match(/^\s+/);if(B){E+=B[0]}this.element.value=E+D+this.element.value.substr(C[1])}else{this.element.value=D}this.oldElementValue=this.element.value;this.element.focus();if(this.options.afterUpdateElement){this.options.afterUpdateElement(this.element,F)}},updateChoices:function(C){if(!this.changed&&this.hasFocus){this.update.innerHTML=C;Element.cleanWhitespace(this.update);Element.cleanWhitespace(this.update.down());if(this.update.firstChild&&this.update.down().childNodes){this.entryCount=this.update.down().childNodes.length;for(var A=0;A<this.entryCount;A++){var B=this.getEntry(A);B.autocompleteIndex=A;this.addObservers(B)}}else{this.entryCount=0}this.stopIndicator();this.index=0;if(this.entryCount==1&&this.options.autoSelect){this.selectEntry();this.hide()}else{this.render()}}},addObservers:function(A){Event.observe(A,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(A,"click",this.onClick.bindAsEventListener(this))},onObserverEvent:function(){this.changed=false;this.tokenBounds=null;if(this.getToken().length>=this.options.minChars){this.getUpdatedChoices()}else{this.active=false;this.hide()}this.oldElementValue=this.element.value},getToken:function(){var A=this.getTokenBounds();return this.element.value.substring(A[0],A[1]).strip()},getTokenBounds:function(){if(null!=this.tokenBounds){return this.tokenBounds}var E=this.element.value;if(E.strip().empty()){return[-1,0]}var F=arguments.callee.getFirstDifferencePos(E,this.oldElementValue);var H=(F==this.oldElementValue.length?1:0);var D=-1,C=E.length;var G;for(var B=0,A=this.options.tokens.length;B<A;++B){G=E.lastIndexOf(this.options.tokens[B],F+H-1);if(G>D){D=G}G=E.indexOf(this.options.tokens[B],F+H);if(-1!=G&&G<C){C=G}}return(this.tokenBounds=[D+1,C])}});Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(C,A){var D=Math.min(C.length,A.length);for(var B=0;B<D;++B){if(C[B]!=A[B]){return B}}return D};Ajax.Autocompleter=Class.create(Autocompleter.Base,{initialize:function(C,D,B,A){this.baseInitialize(C,D,A);this.options.asynchronous=true;this.options.onComplete=this.onComplete.bind(this);this.options.defaultParams=this.options.parameters||null;this.url=B},getUpdatedChoices:function(){this.startIndicator();var A=encodeURIComponent(this.options.paramName)+"="+encodeURIComponent(this.getToken());this.options.parameters=this.options.callback?this.options.callback(this.element,A):A;if(this.options.defaultParams){this.options.parameters+="&"+this.options.defaultParams}new Ajax.Request(this.url,this.options)},onComplete:function(A){this.updateChoices(A.responseText)}});Autocompleter.Local=Class.create(Autocompleter.Base,{initialize:function(B,D,C,A){this.baseInitialize(B,D,A);this.options.array=C},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this))},setOptions:function(A){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(B){var D=[];var C=[];var H=B.getToken();var G=0;for(var E=0;E<B.options.array.length&&D.length<B.options.choices;E++){var F=B.options.array[E];var I=B.options.ignoreCase?F.toLowerCase().indexOf(H.toLowerCase()):F.indexOf(H);while(I!=-1){if(I==0&&F.length!=H.length){D.push("<li><strong>"+F.substr(0,H.length)+"</strong>"+F.substr(H.length)+"</li>");break}else{if(H.length>=B.options.partialChars&&B.options.partialSearch&&I!=-1){if(B.options.fullSearch||/\s/.test(F.substr(I-1,1))){C.push("<li>"+F.substr(0,I)+"<strong>"+F.substr(I,H.length)+"</strong>"+F.substr(I+H.length)+"</li>");break}}}I=B.options.ignoreCase?F.toLowerCase().indexOf(H.toLowerCase(),I+1):F.indexOf(H,I+1)}}if(C.length){D=D.concat(C.slice(0,B.options.choices-D.length))}return"<ul>"+D.join("")+"</ul>"}},A||{})}});Field.scrollFreeActivate=function(A){setTimeout(function(){Field.activate(A)},1)};Ajax.InPlaceEditor=Class.create({initialize:function(C,B,A){this.url=B;this.element=C=$(C);this.prepareOptions();this._controls={};arguments.callee.dealWithDeprecatedOptions(A);Object.extend(this.options,A||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+"-inplaceeditor";if($(this.options.formId)){this.options.formId=""}}if(this.options.externalControl){this.options.externalControl=$(this.options.externalControl)}if(!this.options.externalControl){this.options.externalControlOnly=false}this._originalBackground=this.element.getStyle("background-color")||"transparent";this.element.title=this.options.clickToEditText;this._boundCancelHandler=this.handleFormCancellation.bind(this);this._boundComplete=(this.options.onComplete||Prototype.emptyFunction).bind(this);this._boundFailureHandler=this.handleAJAXFailure.bind(this);this._boundSubmitHandler=this.handleFormSubmission.bind(this);this._boundWrapperHandler=this.wrapUp.bind(this);this.registerListeners()},checkForEscapeOrReturn:function(A){if(!this._editing||A.ctrlKey||A.altKey||A.shiftKey){return}if(Event.KEY_ESC==A.keyCode){this.handleFormCancellation(A)}else{if(Event.KEY_RETURN==A.keyCode){this.handleFormSubmission(A)}}},createControl:function(G,C,B){var E=this.options[G+"Control"];var F=this.options[G+"Text"];if("button"==E){var A=document.createElement("input");A.type="submit";A.value=F;A.className="editor_"+G+"_button";if("cancel"==G){A.onclick=this._boundCancelHandler}this._form.appendChild(A);this._controls[G]=A}else{if("link"==E){var D=document.createElement("a");D.href="#";D.appendChild(document.createTextNode(F));D.onclick="cancel"==G?this._boundCancelHandler:this._boundSubmitHandler;D.className="editor_"+G+"_link";if(B){D.className+=" "+B}this._form.appendChild(D);this._controls[G]=D}}},createEditField:function(){var C=(this.options.loadTextURL?this.options.loadingText:this.getText());var B;if(1>=this.options.rows&&!/\r|\n/.test(this.getText())){B=document.createElement("input");B.type="text";var A=this.options.size||this.options.cols||0;if(0<A){B.size=A}}else{B=document.createElement("textarea");B.rows=(1>=this.options.rows?this.options.autoRows:this.options.rows);B.cols=this.options.cols||40}B.name=this.options.paramName;B.value=C;B.className="editor_field";if(this.options.submitOnBlur){B.onblur=this._boundSubmitHandler}this._controls.editor=B;if(this.options.loadTextURL){this.loadExternalText()}this._form.appendChild(this._controls.editor)},createForm:function(){var B=this;function A(D,E){var C=B.options["text"+D+"Controls"];if(!C||E===false){return}B._form.appendChild(document.createTextNode(C))}this._form=$(document.createElement("form"));this._form.id=this.options.formId;this._form.addClassName(this.options.formClassName);this._form.onsubmit=this._boundSubmitHandler;this.createEditField();if("textarea"==this._controls.editor.tagName.toLowerCase()){this._form.appendChild(document.createElement("br"))}if(this.options.onFormCustomization){this.options.onFormCustomization(this,this._form)}A("Before",this.options.okControl||this.options.cancelControl);this.createControl("ok",this._boundSubmitHandler);A("Between",this.options.okControl&&this.options.cancelControl);this.createControl("cancel",this._boundCancelHandler,"editor_cancel");A("After",this.options.okControl||this.options.cancelControl)},destroy:function(){if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML}this.leaveEditMode();this.unregisterListeners()},enterEditMode:function(A){if(this._saving||this._editing){return}this._editing=true;this.triggerCallback("onEnterEditMode");if(this.options.externalControl){this.options.externalControl.hide()}this.element.hide();this.createForm();this.element.parentNode.insertBefore(this._form,this.element);if(!this.options.loadTextURL){this.postProcessEditField()}if(A){Event.stop(A)}},enterHover:function(A){if(this.options.hoverClassName){this.element.addClassName(this.options.hoverClassName)}if(this._saving){return}this.triggerCallback("onEnterHover")},getText:function(){return this.element.innerHTML},handleAJAXFailure:function(A){this.triggerCallback("onFailure",A);if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML;this._oldInnerHTML=null}},handleFormCancellation:function(A){this.wrapUp();if(A){Event.stop(A)}},handleFormSubmission:function(D){var B=this._form;var C=$F(this._controls.editor);this.prepareSubmission();var E=this.options.callback(B,C)||"";if(Object.isString(E)){E=E.toQueryParams()}E.editorId=this.element.id;if(this.options.htmlResponse){var A=Object.extend({evalScripts:true},this.options.ajaxOptions);Object.extend(A,{parameters:E,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Updater({success:this.element},this.url,A)}else{var A=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(A,{parameters:E,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Request(this.url,A)}if(D){Event.stop(D)}},leaveEditMode:function(){this.element.removeClassName(this.options.savingClassName);this.removeForm();this.leaveHover();this.element.style.backgroundColor=this._originalBackground;this.element.show();if(this.options.externalControl){this.options.externalControl.show()}this._saving=false;this._editing=false;this._oldInnerHTML=null;this.triggerCallback("onLeaveEditMode")},leaveHover:function(A){if(this.options.hoverClassName){this.element.removeClassName(this.options.hoverClassName)}if(this._saving){return}this.triggerCallback("onLeaveHover")},loadExternalText:function(){this._form.addClassName(this.options.loadingClassName);this._controls.editor.disabled=true;var A=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(A,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(C){this._form.removeClassName(this.options.loadingClassName);var B=C.responseText;if(this.options.stripLoadedTextTags){B=B.stripTags()}this._controls.editor.value=B;this._controls.editor.disabled=false;this.postProcessEditField()}.bind(this),onFailure:this._boundFailureHandler});new Ajax.Request(this.options.loadTextURL,A)},postProcessEditField:function(){var A=this.options.fieldPostCreation;if(A){$(this._controls.editor)["focus"==A?"focus":"activate"]()}},prepareOptions:function(){this.options=Object.clone(Ajax.InPlaceEditor.DefaultOptions);Object.extend(this.options,Ajax.InPlaceEditor.DefaultCallbacks);[this._extraDefaultOptions].flatten().compact().each(function(A){Object.extend(this.options,A)}.bind(this))},prepareSubmission:function(){this._saving=true;this.removeForm();this.leaveHover();this.showSaving()},registerListeners:function(){this._listeners={};var A;$H(Ajax.InPlaceEditor.Listeners).each(function(B){A=this[B.value].bind(this);this._listeners[B.key]=A;if(!this.options.externalControlOnly){this.element.observe(B.key,A)}if(this.options.externalControl){this.options.externalControl.observe(B.key,A)}}.bind(this))},removeForm:function(){if(!this._form){return}this._form.remove();this._form=null;this._controls={}},showSaving:function(){this._oldInnerHTML=this.element.innerHTML;this.element.innerHTML=this.options.savingText;this.element.addClassName(this.options.savingClassName);this.element.style.backgroundColor=this._originalBackground;this.element.show()},triggerCallback:function(B,A){if("function"==typeof this.options[B]){this.options[B](this,A)}},unregisterListeners:function(){$H(this._listeners).each(function(A){if(!this.options.externalControlOnly){this.element.stopObserving(A.key,A.value)}if(this.options.externalControl){this.options.externalControl.stopObserving(A.key,A.value)}}.bind(this))},wrapUp:function(A){this.leaveEditMode();this._boundComplete(A,this.element)}});Object.extend(Ajax.InPlaceEditor.prototype,{dispose:Ajax.InPlaceEditor.prototype.destroy});Ajax.InPlaceCollectionEditor=Class.create(Ajax.InPlaceEditor,{initialize:function($super,C,B,A){this._extraDefaultOptions=Ajax.InPlaceCollectionEditor.DefaultOptions;$super(C,B,A)},createEditField:function(){var A=document.createElement("select");A.name=this.options.paramName;A.size=1;this._controls.editor=A;this._collection=this.options.collection||[];if(this.options.loadCollectionURL){this.loadCollection()}else{this.checkForExternalText()}this._form.appendChild(this._controls.editor)},loadCollection:function(){this._form.addClassName(this.options.loadingClassName);this.showLoadingText(this.options.loadingCollectionText);var options=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(options,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){var js=transport.responseText.strip();if(!/^\[.*\]$/.test(js)){throw"Server returned an invalid collection representation."}this._collection=eval(js);this.checkForExternalText()}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadCollectionURL,options)},showLoadingText:function(B){this._controls.editor.disabled=true;var A=this._controls.editor.firstChild;if(!A){A=document.createElement("option");A.value="";this._controls.editor.appendChild(A);A.selected=true}A.update((B||"").stripScripts().stripTags())},checkForExternalText:function(){this._text=this.getText();if(this.options.loadTextURL){this.loadExternalText()}else{this.buildOptionList()}},loadExternalText:function(){this.showLoadingText(this.options.loadingText);var A=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(A,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(B){this._text=B.responseText.strip();this.buildOptionList()}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadTextURL,A)},buildOptionList:function(){this._form.removeClassName(this.options.loadingClassName);this._collection=this._collection.map(function(D){return 2===D.length?D:[D,D].flatten()});var B=("value"in this.options)?this.options.value:this._text;var A=this._collection.any(function(D){return D[0]==B}.bind(this));this._controls.editor.update("");var C;this._collection.each(function(E,D){C=document.createElement("option");C.value=E[0];C.selected=A?E[0]==B:0==D;C.appendChild(document.createTextNode(E[1]));this._controls.editor.appendChild(C)}.bind(this));this._controls.editor.disabled=false;Field.scrollFreeActivate(this._controls.editor)}});Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions=function(A){if(!A){return}function B(C,D){if(C in A||D===undefined){return}A[C]=D}B("cancelControl",(A.cancelLink?"link":(A.cancelButton?"button":A.cancelLink==A.cancelButton==false?false:undefined)));B("okControl",(A.okLink?"link":(A.okButton?"button":A.okLink==A.okButton==false?false:undefined)));B("highlightColor",A.highlightcolor);B("highlightEndColor",A.highlightendcolor)};Object.extend(Ajax.InPlaceEditor,{DefaultOptions:{ajaxOptions:{},autoRows:3,cancelControl:"link",cancelText:"cancel",clickToEditText:"Click to edit",externalControl:null,externalControlOnly:false,fieldPostCreation:"activate",formClassName:"inplaceeditor-form",formId:null,highlightColor:"#ffff99",highlightEndColor:"#ffffff",hoverClassName:"",htmlResponse:true,loadingClassName:"inplaceeditor-loading",loadingText:"Loading...",okControl:"button",okText:"ok",paramName:"value",rows:1,savingClassName:"inplaceeditor-saving",savingText:"Saving...",size:0,stripLoadedTextTags:false,submitOnBlur:false,textAfterControls:"",textBeforeControls:"",textBetweenControls:""},DefaultCallbacks:{callback:function(A){return Form.serialize(A)},onComplete:function(B,A){new Effect.Highlight(A,{startcolor:this.options.highlightColor,keepBackgroundImage:true})},onEnterEditMode:null,onEnterHover:function(A){A.element.style.backgroundColor=A.options.highlightColor;if(A._effect){A._effect.cancel()}},onFailure:function(B,A){alert("Error communication with the server: "+B.responseText.stripTags())},onFormCustomization:null,onLeaveEditMode:null,onLeaveHover:function(A){A._effect=new Effect.Highlight(A.element,{startcolor:A.options.highlightColor,endcolor:A.options.highlightEndColor,restorecolor:A._originalBackground,keepBackgroundImage:true})}},Listeners:{click:"enterEditMode",keydown:"checkForEscapeOrReturn",mouseover:"enterHover",mouseout:"leaveHover"}});Ajax.InPlaceCollectionEditor.DefaultOptions={loadingCollectionText:"Loading options..."};Form.Element.DelayedObserver=Class.create({initialize:function(B,A,C){this.delay=A||0.5;this.element=$(B);this.callback=C;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,"keyup",this.delayedListener.bindAsEventListener(this))},delayedListener:function(A){if(this.lastValue==$F(this.element)){return}if(this.timer){clearTimeout(this.timer)}this.timer=setTimeout(this.onTimerEvent.bind(this),this.delay*1000);this.lastValue=$F(this.element)},onTimerEvent:function(){this.timer=null;this.callback(this.element,$F(this.element))}});if(!Control){var Control={}}Control.Slider=Class.create({initialize:function(D,A,B){var C=this;if(Object.isArray(D)){this.handles=D.collect(function(E){return $(E)})}else{this.handles=[$(D)]}this.track=$(A);this.options=B||{};this.axis=this.options.axis||"horizontal";this.increment=this.options.increment||1;this.step=parseInt(this.options.step||"1");this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(E){return $(E)}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||"0");this.alignY=parseInt(this.options.alignY||"0");this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled){this.setDisabled()}this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max()}this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(F,E){E=C.handles.length-1-E;C.setValue(parseFloat((Object.isArray(C.options.sliderValue)?C.options.sliderValue[E]:C.options.sliderValue)||C.range.start),E);F.makePositioned().observe("mousedown",C.eventMouseDown)});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=true},dispose:function(){var A=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(B){Event.stopObserving(B,"mousedown",A.eventMouseDown)})},setDisabled:function(){this.disabled=true},setEnabled:function(){this.disabled=false},getNearestValue:function(A){if(this.allowedValues){if(A>=this.allowedValues.max()){return(this.allowedValues.max())}if(A<=this.allowedValues.min()){return(this.allowedValues.min())}var C=Math.abs(this.allowedValues[0]-A);var B=this.allowedValues[0];this.allowedValues.each(function(D){var E=Math.abs(D-A);if(E<=C){B=D;C=E}});return B}if(A>this.range.end){return this.range.end}if(A<this.range.start){return this.range.start}return A},setValue:function(B,A){if(!this.active){this.activeHandleIdx=A||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles()}A=A||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((A>0)&&(B<this.values[A-1])){B=this.values[A-1]}if((A<(this.handles.length-1))&&(B>this.values[A+1])){B=this.values[A+1]}}B=this.getNearestValue(B);this.values[A]=B;this.value=this.values[0];this.handles[A].style[this.isVertical()?"top":"left"]=this.translateToPx(B);this.drawSpans();if(!this.dragging||!this.event){this.updateFinished()}},setValueBy:function(B,A){this.setValue(this.values[A||this.activeHandleIdx||0]+B,A||this.activeHandleIdx||0)},translateToPx:function(A){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(A-this.range.start))+"px"},translateToValue:function(A){return((A/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start)},getRange:function(B){var A=this.values.sortBy(Prototype.K);B=B||0;return $R(A[B],A[B+1])},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX)},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX)},isVertical:function(){return(this.axis=="vertical")},drawSpans:function(){var A=this;if(this.spans){$R(0,this.spans.length-1).each(function(B){A.setSpan(A.spans[B],A.getRange(B))})}if(this.options.startSpan){this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value))}if(this.options.endSpan){this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum))}},setSpan:function(B,A){if(this.isVertical()){B.style.top=this.translateToPx(A.start);B.style.height=this.translateToPx(A.end-A.start+this.range.start)}else{B.style.left=this.translateToPx(A.start);B.style.width=this.translateToPx(A.end-A.start+this.range.start)}},updateStyles:function(){this.handles.each(function(A){Element.removeClassName(A,"selected")});Element.addClassName(this.activeHandle,"selected")},startDrag:function(C){if(Event.isLeftClick(C)){if(!this.disabled){this.active=true;var D=Event.element(C);var E=[Event.pointerX(C),Event.pointerY(C)];var A=D;if(A==this.track){var B=Position.cumulativeOffset(this.track);this.event=C;this.setValue(this.translateToValue((this.isVertical()?E[1]-B[1]:E[0]-B[0])-(this.handleLength/2)));var B=Position.cumulativeOffset(this.activeHandle);this.offsetX=(E[0]-B[0]);this.offsetY=(E[1]-B[1])}else{while((this.handles.indexOf(D)==-1)&&D.parentNode){D=D.parentNode}if(this.handles.indexOf(D)!=-1){this.activeHandle=D;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var B=Position.cumulativeOffset(this.activeHandle);this.offsetX=(E[0]-B[0]);this.offsetY=(E[1]-B[1])}}}Event.stop(C)}},update:function(A){if(this.active){if(!this.dragging){this.dragging=true}this.draw(A);if(Prototype.Browser.WebKit){window.scrollBy(0,0)}Event.stop(A)}},draw:function(B){var C=[Event.pointerX(B),Event.pointerY(B)];var A=Position.cumulativeOffset(this.track);C[0]-=this.offsetX+A[0];C[1]-=this.offsetY+A[1];this.event=B;this.setValue(this.translateToValue(this.isVertical()?C[1]:C[0]));if(this.initialized&&this.options.onSlide){this.options.onSlide(this.values.length>1?this.values:this.value,this)}},endDrag:function(A){if(this.active&&this.dragging){this.finishDrag(A,true);Event.stop(A)}this.active=false;this.dragging=false},finishDrag:function(A,B){this.active=false;this.dragging=false;this.updateFinished()},updateFinished:function(){if(this.initialized&&this.options.onChange){this.options.onChange(this.values.length>1?this.values:this.value,this)}this.event=null}});Sound={tracks:{},_enabled:true,template:new Template('<embed style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>'),enable:function(){Sound._enabled=true},disable:function(){Sound._enabled=false},play:function(B){if(!Sound._enabled){return}var A=Object.extend({track:"global",url:B,replace:false},arguments[1]||{});if(A.replace&&this.tracks[A.track]){$R(0,this.tracks[A.track].id).each(function(D){var C=$("sound_"+A.track+"_"+D);C.Stop&&C.Stop();C.remove()});this.tracks[A.track]=null}if(!this.tracks[A.track]){this.tracks[A.track]={id:0}}else{this.tracks[A.track].id++}A.id=this.tracks[A.track].id;$$("body")[0].insert(Prototype.Browser.IE?new Element("bgsound",{id:"sound_"+A.track+"_"+A.id,src:A.url,loop:1,autostart:true}):Sound.template.evaluate(A))}};if(Prototype.Browser.Gecko&&navigator.userAgent.indexOf("Win")>0){if(navigator.plugins&&$A(navigator.plugins).detect(function(A){return A.name.indexOf("QuickTime")!=-1})){Sound.template=new Template('<object id="sound_#{track}_#{id}" width="0" height="0" type="audio/mpeg" data="#{url}"/>')}else{Sound.play=function(){}}};function inputFocus(el,zeroState)
{if($F(el)==zeroState)
el.value='';}
function inputBlur(el,zeroState)
{if($F(el)=='')
el.value=zeroState;}
function findNodeBehindByTagName(el,tag)
{tag=tag.toUpperCase();if(el.parentNode.tagName==tag)
return el.parentNode;else
return findNodeBehindByTagName(el.parentNode,tag);}
function newEl(type){return document.createElement(type);}
function newTxt(content){return document.createTextNode(content);}
function getByTag(tag){return document.getElementsByTagName(tag);}
function newInput(type,name,id,value)
{var i=newEl('input');i.type=type;if(name)i.name=name;if(id)i.id=id;if(value)i.value=value;return i;}
function newPage(id,containerToAppend)
{if(typeof(containerToAppend)=='string')
containerToAppend=$(containerToAppend);var title=newEl('input');title.type='text';title.name='pages['+id+'][title]';title.className='text';title.value='Title';if(id==0)
{title.id='newpageTitle';}
var div=newEl('span');div.id='page'+id;div.appendChild(title);containerToAppend.appendChild(div);window.setTimeout(function(){title.focus();},1);}
function showLoading(elName,destroyContainerBefore)
{if(typeof(destroyContainerBefore)!='undefined'&&destroyContainerBefore==true)
$(elName).update('');$(elName).appendChild(Builder.build('<img src="'+sysUrl+'template/images/spinner.gif" alt="loading..." id="loading'+elName+'" />'));$(elName).appendChild(document.createTextNode(' '));}function hideLoading(elName){$(elName).removeChild($('loading'+elName));}
function CreateInPlaceEditor(editableContainer,multiLine,table,field,id,inputFieldsOnReturn)
{Ajax.InPlaceEditor.defaultHighlightColor='#f1f1f1';if(!multiLine)
{if(field=='title')
var r=new Ajax.InPlaceEditor(editableContainer,ajaxUrl+'?ajaxAction=saveInPlaceEditing&table='+table+'&field='+field+'&id='+id,{okText:'Save',onComplete:function(){$('jumpchartNav').innerHTML='';showLoading('jumpchartNav');new Ajax.Updater('jumpchartNav',ajaxUrl+'?ajaxAction=buildNavbar&projectId='+$F('pageProjectId'));}});else
var r=new Ajax.InPlaceEditor(editableContainer,ajaxUrl+'?ajaxAction=saveInPlaceEditing&table='+table+'&field='+field+'&id='+id,{okText:'Save'});}
else
{if(!inputFieldsOnReturn)
var inputFieldsOnReturn=0;else
var inputFieldsOnReturn=1;var height=Element.getHeight(editableContainer);var colsRows=Math.round(height/14)+3;if(colsRows<10)
colsRows=10;var r=new Ajax.InPlaceEditor(editableContainer,ajaxUrl+'?ajaxAction=saveInPlaceEditing&table='+table+'&field='+field+'&id='+id+'&multiLine'+'&inputFieldsOnReturn='+inputFieldsOnReturn,{okText:'Save',rows:colsRows,cols:70,loadTextURL:ajaxUrl+'?ajaxAction=loadTextForInPlaceEditing&table='+table+'&field='+field+'&id='+id});}
return r;}
function Down(el){new Effect.SlideDown(el,{duration:0.4});}
function Up(el){new Effect.SlideUp(el,{duration:0.4});}
function Shake(el){new Effect.Shake(el);}
function Scroll(el){new Effect.ScrollTo(el,{offset:-10});}
function Fade(el){new Effect.Fade(el,{duration:0.4});}
function openPopUp(el,width,height,appendix)
{if(!appendix)appendix='resizable=yes,toolbar=no,location=no,status=no';if(!width)width='600';if(!height)height='500';window.open(el.href,'','scrollbars=yes,menubar=no,height='+height+',width='+width+','+appendix);}
function px(str)
{var pxStr=str.split('px');if(pxStr)
return pxStr[0]*1;else
return str;}
function focusFirst(formName){window.setTimeout(function(){if($(formName)&&$(formName).findFirstElement())
$(formName).focusFirstElement();},10);}
function pageChangeConfirmationOn()
{if(!Prototype.Browser.IE)
window.onbeforeunload=function(){return"You're trying to leave a page that could have unsaved content.";};}
function pageChangeConfirmationOff()
{if(!Prototype.Browser.IE)
window.onbeforeunload=function(){};}
(function(){if(typeof jQuery!="undefined")
var _jQuery=jQuery;var jQuery=window.jQuery=function(a,c){if(window==this||!this.init)
return new jQuery(a,c);return this.init(a,c);};if(typeof $!="undefined")
var _$=$;window.$=jQuery;var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;jQuery.fn=jQuery.prototype={init:function(a,c){a=a||document;if(typeof a=="string"){var m=quickExpr.exec(a);if(m&&(m[1]||!c)){if(m[1])
a=jQuery.clean([m[1]]);else{var tmp=document.getElementById(m[3]);if(tmp)
if(tmp.id!=m[3])
return jQuery().find(a);else{this[0]=tmp;this.length=1;return this;}
else
a=[];}}else
return new jQuery(c).find(a);}else if(jQuery.isFunction(a))
return new jQuery(document)[jQuery.fn.ready?"ready":"load"](a);return this.setArray(a.constructor==Array&&a||(a.jquery||a.length&&a!=window&&!a.nodeType&&a[0]!=undefined&&a[0].nodeType)&&jQuery.makeArray(a)||[a]);},jquery:"1.1.4",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(a){var ret=jQuery(a);ret.prevObject=this;return ret;},setArray:function(a){this.length=0;Array.prototype.push.apply(this,a);return this;},each:function(fn,args){return jQuery.each(this,fn,args);},index:function(obj){var pos=-1;this.each(function(i){if(this==obj)pos=i;});return pos;},attr:function(key,value,type){var obj=key;if(key.constructor==String)
if(value==undefined)
return this.length&&jQuery[type||"attr"](this[0],key)||undefined;else{obj={};obj[key]=value;}
return this.each(function(index){for(var prop in obj)
jQuery.attr(type?this.style:this,prop,jQuery.prop(this,obj[prop],type,index,prop));});},css:function(key,value){return this.attr(key,value,"curCSS");},text:function(e){if(typeof e!="object"&&e!=null)
return this.empty().append(document.createTextNode(e));var t="";jQuery.each(e||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)
t+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return t;},wrap:function(){var a,args=arguments;return this.each(function(){if(!a)
a=jQuery.clean(args,this.ownerDocument);var b=a[0].cloneNode(true);this.parentNode.insertBefore(b,this);while(b.firstChild)
b=b.firstChild;b.appendChild(this);});},append:function(){return this.domManip(arguments,true,1,function(a){this.appendChild(a);});},prepend:function(){return this.domManip(arguments,true,-1,function(a){this.insertBefore(a,this.firstChild);});},before:function(){return this.domManip(arguments,false,1,function(a){this.parentNode.insertBefore(a,this);});},after:function(){return this.domManip(arguments,false,-1,function(a){this.parentNode.insertBefore(a,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(t){var data=jQuery.map(this,function(a){return jQuery.find(t,a);});return this.pushStack(/[^+>] [^+>]/.test(t)||t.indexOf("..")>-1?jQuery.unique(data):data);},clone:function(deep){deep=deep!=undefined?deep:true;var $this=this.add(this.find("*"));if(jQuery.browser.msie){$this.each(function(){this._$events={};for(var type in this.$events)
this._$events[type]=jQuery.extend({},this.$events[type]);}).unbind();}
var r=this.pushStack(jQuery.map(this,function(a){return a.cloneNode(deep);}));if(jQuery.browser.msie){$this.each(function(){var events=this._$events;for(var type in events)
for(var handler in events[type])
jQuery.event.add(this,type,events[type][handler],events[type][handler].data);this._$events=null;});}
if(deep){var inputs=r.add(r.find('*')).filter('select,input[@type=checkbox]');$this.filter('select,input[@type=checkbox]').each(function(i){if(this.selectedIndex)
inputs[i].selectedIndex=this.selectedIndex;if(this.checked)
inputs[i].checked=true;});}
return r;},filter:function(t){return this.pushStack(jQuery.isFunction(t)&&jQuery.grep(this,function(el,index){return t.apply(el,[index]);})||jQuery.multiFilter(t,this));},not:function(t){return this.pushStack(t.constructor==String&&jQuery.multiFilter(t,this,true)||jQuery.grep(this,function(a){return(t.constructor==Array||t.jquery)?jQuery.inArray(a,t)<0:a!=t;}));},add:function(t){return this.pushStack(jQuery.merge(this.get(),t.constructor==String?jQuery(t).get():t.length!=undefined&&(!t.nodeName||t.nodeName=="FORM")?t:[t]));},is:function(expr){return expr?jQuery.multiFilter(expr,this).length>0:false;},val:function(val){return val==undefined?(this.length?this[0].value:null):this.attr("value",val);},html:function(val){return val==undefined?(this.length?this[0].innerHTML:null):this.empty().append(val);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},domManip:function(args,table,dir,fn){var clone=this.length>1,a;return this.each(function(){if(!a){a=jQuery.clean(args,this.ownerDocument);if(dir<0)
a.reverse();}
var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(a[0],"tr"))
obj=this.getElementsByTagName("tbody")[0]||this.appendChild(document.createElement("tbody"));jQuery.each(a,function(){if(jQuery.nodeName(this,"script")){if(this.src)
jQuery.ajax({url:this.src,async:false,dataType:"script"});else
jQuery.globalEval(this.text||this.textContent||this.innerHTML||"");}else
fn.apply(obj,[clone?this.cloneNode(true):this]);});});}};jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},a=1,al=arguments.length,deep=false;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};}
if(al==1){target=this;a=0;}
var prop;for(;a<al;a++)
if((prop=arguments[a])!=null)
for(var i in prop){if(target==prop[i])
continue;if(deep&&typeof prop[i]=='object'&&target[i])
jQuery.extend(target[i],prop[i]);else if(prop[i]!=undefined)
target[i]=prop[i];}
return target;};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)
window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/function/i.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){if(window.execScript)
window.execScript(data);else if(jQuery.browser.safari)
window.setTimeout(data,0);else
eval.call(window,data);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},each:function(obj,fn,args){if(args){if(obj.length==undefined)
for(var i in obj)
fn.apply(obj[i],args);else
for(var i=0,ol=obj.length;i<ol;i++)
if(fn.apply(obj[i],args)===false)break;}else{if(obj.length==undefined)
for(var i in obj)
fn.call(obj[i],i,obj[i]);else
for(var i=0,ol=obj.length,val=obj[0];i<ol&&fn.call(val,i,val)!==false;val=obj[++i]){}}
return obj;},prop:function(elem,value,type,index,prop){if(jQuery.isFunction(value))
value=value.call(elem,[index]);var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i;return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(prop)?value+"px":value;},className:{add:function(elem,c){jQuery.each((c||"").split(/\s+/),function(i,cur){if(!jQuery.className.has(elem.className,cur))
elem.className+=(elem.className?" ":"")+cur;});},remove:function(elem,c){elem.className=c!=undefined?jQuery.grep(elem.className.split(/\s+/),function(cur){return!jQuery.className.has(c,cur);}).join(" "):"";},has:function(t,c){return jQuery.inArray(c,(t.className||t).toString().split(/\s+/))>-1;}},swap:function(e,o,f){for(var i in o){e.style["old"+i]=e.style[i];e.style[i]=o[i];}
f.apply(e,[]);for(var i in o)
e.style[i]=e.style["old"+i];},css:function(e,p){if(p=="height"||p=="width"){var old={},oHeight,oWidth,d=["Top","Bottom","Right","Left"];jQuery.each(d,function(){old["padding"+this]=0;old["border"+this+"Width"]=0;});jQuery.swap(e,old,function(){if(jQuery(e).is(':visible')){oHeight=e.offsetHeight;oWidth=e.offsetWidth;}else{e=jQuery(e.cloneNode(true)).find(":radio").removeAttr("checked").end().css({visibility:"hidden",position:"absolute",display:"block",right:"0",left:"0"}).appendTo(e.parentNode)[0];var parPos=jQuery.css(e.parentNode,"position")||"static";if(parPos=="static")
e.parentNode.style.position="relative";oHeight=e.clientHeight;oWidth=e.clientWidth;if(parPos=="static")
e.parentNode.style.position="static";e.parentNode.removeChild(e);}});return p=="height"?oHeight:oWidth;}
return jQuery.curCSS(e,p);},curCSS:function(elem,prop,force){var ret,stack=[],swap=[];function color(a){if(!jQuery.browser.safari)
return false;var ret=document.defaultView.getComputedStyle(a,null);return!ret||ret.getPropertyValue("color")=="";}
if(prop=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(elem.style,"opacity");return ret==""?"1":ret;}
if(prop.match(/float/i))
prop=styleFloat;if(!force&&elem.style[prop])
ret=elem.style[prop];else if(document.defaultView&&document.defaultView.getComputedStyle){if(prop.match(/float/i))
prop="float";prop=prop.replace(/([A-Z])/g,"-$1").toLowerCase();var cur=document.defaultView.getComputedStyle(elem,null);if(cur&&!color(elem))
ret=cur.getPropertyValue(prop);else{for(var a=elem;a&&color(a);a=a.parentNode)
stack.unshift(a);for(a=0;a<stack.length;a++)
if(color(stack[a])){swap[a]=stack[a].style.display;stack[a].style.display="block";}
ret=prop=="display"&&swap[stack.length-1]!=null?"none":document.defaultView.getComputedStyle(elem,null).getPropertyValue(prop)||"";for(a=0;a<swap.length;a++)
if(swap[a]!=null)
stack[a].style.display=swap[a];}
if(prop=="opacity"&&ret=="")
ret="1";}else if(elem.currentStyle){var newProp=prop.replace(/\-(\w)/g,function(m,c){return c.toUpperCase();});ret=elem.currentStyle[prop]||elem.currentStyle[newProp];}
return ret;},clean:function(a,doc){var r=[];doc=doc||document;jQuery.each(a,function(i,arg){if(!arg)return;if(arg.constructor==Number)
arg=arg.toString();if(typeof arg=="string"){var s=jQuery.trim(arg).toLowerCase(),div=doc.createElement("div"),tb=[];var wrap=!s.indexOf("<opt")&&[1,"<select>","</select>"]||!s.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||s.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!s.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!s.indexOf("<td")||!s.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!s.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+arg+wrap[2];while(wrap[0]--)
div=div.lastChild;if(jQuery.browser.msie){if(!s.indexOf("<table")&&s.indexOf("<tbody")<0)
tb=div.firstChild&&div.firstChild.childNodes;else if(wrap[1]=="<table>"&&s.indexOf("<tbody")<0)
tb=div.childNodes;for(var n=tb.length-1;n>=0;--n)
if(jQuery.nodeName(tb[n],"tbody")&&!tb[n].childNodes.length)
tb[n].parentNode.removeChild(tb[n]);if(/^\s/.test(arg))
div.insertBefore(doc.createTextNode(arg.match(/^\s*/)[0]),div.firstChild);}
arg=jQuery.makeArray(div.childNodes);}
if(0===arg.length&&(!jQuery.nodeName(arg,"form")&&!jQuery.nodeName(arg,"select")))
return;if(arg[0]==undefined||jQuery.nodeName(arg,"form")||arg.options)
r.push(arg);else
r=jQuery.merge(r,arg);});return r;},attr:function(elem,name,value){var fix=jQuery.isXMLDoc(elem)?{}:jQuery.props;if(name=="selected"&&jQuery.browser.safari)
elem.parentNode.selectedIndex;if(fix[name]){if(value!=undefined)elem[fix[name]]=value;return elem[fix[name]];}else if(jQuery.browser.msie&&name=="style")
return jQuery.attr(elem.style,"cssText",value);else if(value==undefined&&jQuery.browser.msie&&jQuery.nodeName(elem,"form")&&(name=="action"||name=="method"))
return elem.getAttributeNode(name).nodeValue;else if(elem.tagName){if(value!=undefined)elem.setAttribute(name,value);if(jQuery.browser.msie&&/href|src/.test(name)&&!jQuery.isXMLDoc(elem))
return elem.getAttribute(name,2);return elem.getAttribute(name);}else{if(name=="opacity"&&jQuery.browser.msie){if(value!=undefined){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+
(parseFloat(value).toString()=="NaN"?"":"alpha(opacity="+value*100+")");}
return elem.filter?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100).toString():"";}
name=name.replace(/-([a-z])/ig,function(z,b){return b.toUpperCase();});if(value!=undefined)elem[name]=value;return elem[name];}},trim:function(t){return(t||"").replace(/^\s+|\s+$/g,"");},makeArray:function(a){var r=[];if(typeof a!="array")
for(var i=0,al=a.length;i<al;i++)
r.push(a[i]);else
r=a.slice(0);return r;},inArray:function(b,a){for(var i=0,al=a.length;i<al;i++)
if(a[i]==b)
return i;return-1;},merge:function(first,second){if(jQuery.browser.msie){for(var i=0;second[i];i++)
if(second[i].nodeType!=8)
first.push(second[i]);}else
for(var i=0;second[i];i++)
first.push(second[i]);return first;},unique:function(first){var r=[],num=jQuery.mergeNum++;try{for(var i=0,fl=first.length;i<fl;i++)
if(num!=first[i].mergeNum){first[i].mergeNum=num;r.push(first[i]);}}catch(e){r=first;}
return r;},mergeNum:0,grep:function(elems,fn,inv){if(typeof fn=="string")
fn=eval("false||function(a,i){return "+fn+"}");var result=[];for(var i=0,el=elems.length;i<el;i++)
if(!inv&&fn(elems[i],i)||inv&&!fn(elems[i],i))
result.push(elems[i]);return result;},map:function(elems,fn){if(typeof fn=="string")
fn=eval("false||function(a){return "+fn+"}");var result=[];for(var i=0,el=elems.length;i<el;i++){var val=fn(elems[i],i);if(val!==null&&val!=undefined){if(val.constructor!=Array)val=[val];result=result.concat(val);}}
return result;}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",styleFloat:jQuery.browser.msie?"styleFloat":"cssFloat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,innerHTML:"innerHTML",className:"className",value:"value",disabled:"disabled",checked:"checked",readonly:"readOnly",selected:"selected",maxlength:"maxLength"}});jQuery.each({parent:"a.parentNode",parents:"jQuery.parents(a)",next:"jQuery.nth(a,2,'nextSibling')",prev:"jQuery.nth(a,2,'previousSibling')",siblings:"jQuery.sibling(a.parentNode.firstChild,a)",children:"jQuery.sibling(a.firstChild)"},function(i,n){jQuery.fn[i]=function(a){var ret=jQuery.map(this,n);if(a&&typeof a=="string")
ret=jQuery.multiFilter(a,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after"},function(i,n){jQuery.fn[i]=function(){var a=arguments;return this.each(function(){for(var j=0,al=a.length;j<al;j++)
jQuery(a[j])[n](this);});};});jQuery.each({removeAttr:function(key){jQuery.attr(this,key,"");this.removeAttribute(key);},addClass:function(c){jQuery.className.add(this,c);},removeClass:function(c){jQuery.className.remove(this,c);},toggleClass:function(c){jQuery.className[jQuery.className.has(this,c)?"remove":"add"](this,c);},remove:function(a){if(!a||jQuery.filter(a,[this]).r.length)
this.parentNode.removeChild(this);},empty:function(){while(this.firstChild)
this.removeChild(this.firstChild);}},function(i,n){jQuery.fn[i]=function(){return this.each(n,arguments);};});jQuery.each(["eq","lt","gt","contains"],function(i,n){jQuery.fn[n]=function(num,fn){return this.filter(":"+n+"("+num+")",fn);};});jQuery.each(["height","width"],function(i,n){jQuery.fn[n]=function(h){return h==undefined?(this.length?jQuery.css(this[0],n):null):this.css(n,h.constructor==String?h:h+"px");};});var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^[/>]\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":"m[2]=='*'||jQuery.nodeName(a,m[2])","#":"a.getAttribute('id')==m[2]",":":{lt:"i<m[3]-0",gt:"i>m[3]-0",nth:"m[3]-0==i",eq:"m[3]-0==i",first:"i==0",last:"i==r.length-1",even:"i%2==0",odd:"i%2","first-child":"a.parentNode.getElementsByTagName('*')[0]==a","last-child":"jQuery.nth(a.parentNode.lastChild,1,'previousSibling')==a","only-child":"!jQuery.nth(a.parentNode.lastChild,2,'previousSibling')",parent:"a.firstChild",empty:"!a.firstChild",contains:"(a.textContent||a.innerText||'').indexOf(m[3])>=0",visible:'"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden"',hidden:'"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden"',enabled:"!a.disabled",disabled:"a.disabled",checked:"a.checked",selected:"a.selected||jQuery.attr(a,'selected')",text:"'text'==a.type",radio:"'radio'==a.type",checkbox:"'checkbox'==a.type",file:"'file'==a.type",password:"'password'==a.type",submit:"'submit'==a.type",image:"'image'==a.type",reset:"'reset'==a.type",button:'"button"==a.type||jQuery.nodeName(a,"button")',input:"/input|select|textarea|button/i.test(a.nodeName)",has:"jQuery.find(m[3],a).length"},"[":"jQuery.find(m[2],a).length"},parse:[/^\[ *(@)([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(\[)\s*(.*?(\[.*?\])?[^[]*?)\s*\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}
return cur;},find:function(t,context){if(typeof t!="string")
return[t];if(context&&!context.nodeType)
context=null;context=context||document;if(!t.indexOf("//")){t=t.substr(2,t.length);}else if(!t.indexOf("/")&&!context.ownerDocument){context=context.documentElement;t=t.substr(1,t.length);if(t.indexOf("/")>=1)
t=t.substr(t.indexOf("/"),t.length);}
var ret=[context],done=[],last;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t).replace(/^\/\//,"");var foundToken=false;var re=quickChild;var m=re.exec(t);if(m){var nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)
for(var c=ret[i].firstChild;c;c=c.nextSibling)
if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName.toUpperCase()))
r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^((\/?\.\.)|([>\/+~]))\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var nodeName=m[4],mergeNum=jQuery.mergeNum++;m=m[1];for(var j=0,rl=ret.length;j<rl;j++)
if(m.indexOf("..")<0){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)
if(n.nodeType==1){if(m=="~"&&n.mergeNum==mergeNum)break;if(!nodeName||n.nodeName.toUpperCase()==nodeName.toUpperCase()){if(m=="~")n.mergeNum=mergeNum;r.push(n);}
if(m=="+")break;}}else
r.push(ret[j].parentNode);ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}
if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}
m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])
oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")
tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}
if(m[1]==".")
r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)
if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}
r=tmp;}
ret=r;}
t=t.replace(re2,"");}}
if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}
if(t)
ret=[];if(ret&&context==ret[0])
ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)
tmp.push(r[i]);}
return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}
if(!m)
break;if(m[1]==":"&&m[2]=="not")
r=jQuery.filter(m[3],r,true).r;else if(m[1]==".")
r=jQuery.classFilter(r,m[2],not);else if(m[1]=="@"){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))
z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)
tmp.push(a);}
r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var num=jQuery.mergeNum++,tmp=[],test=/(\d*)n\+?(\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"n+"+m[3]||m[3]),first=(test[1]||1)-0,last=test[2]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode;if(num!=parentNode.mergeNum){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)
if(n.nodeType==1)
n.nodeIndex=c++;parentNode.mergeNum=num;}
var add=false;if(first==1){if(last==0||node.nodeIndex==last)
add=true;}else if((node.nodeIndex+last)%first==0)
add=true;if(add^not)
tmp.push(node);}
r=tmp;}else{var f=jQuery.expr[m[1]];if(typeof f!="string")
f=jQuery.expr[m[1]][m[2]];f=eval("false||function(a,i){return "+f+"}");r=jQuery.grep(r,f,not);}}
return{r:r,t:t};},parents:function(elem){var matched=[];var cur=elem.parentNode;while(cur&&cur!=document){matched.push(cur);cur=cur.parentNode;}
return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])
if(cur.nodeType==1&&++num==result)
break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&(!elem||n!=elem))
r.push(n);}
return r;}});jQuery.event={add:function(element,type,handler,data){if(jQuery.browser.msie&&element.setInterval!=undefined)
element=window;if(!handler.guid)
handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=function(){return fn.apply(this,arguments);};handler.data=data;handler.guid=fn.guid;}
if(!element.$events)
element.$events={};if(!element.$handle)
element.$handle=function(){var val;if(typeof jQuery=="undefined"||jQuery.event.triggered)
return val;val=jQuery.event.handle.apply(element,arguments);return val;};var handlers=element.$events[type];if(!handlers){handlers=element.$events[type]={};if(element.addEventListener)
element.addEventListener(type,element.$handle,false);else
element.attachEvent("on"+type,element.$handle);}
handlers[handler.guid]=handler;this.global[type]=true;},guid:1,global:{},remove:function(element,type,handler){var events=element.$events,ret,index;if(events){if(type&&type.type){handler=type.handler;type=type.type;}
if(!type){for(type in events)
this.remove(element,type);}else if(events[type]){if(handler)
delete events[type][handler.guid];else
for(handler in element.$events[type])
delete events[type][handler];for(ret in events[type])break;if(!ret){if(element.removeEventListener)
element.removeEventListener(type,element.$handle,false);else
element.detachEvent("on"+type,element.$handle);ret=null;delete events[type];}}
for(ret in events)break;if(!ret)
element.$handle=element.$events=null;}},trigger:function(type,data,element){data=jQuery.makeArray(data||[]);if(!element){if(this.global[type])
jQuery("*").add([window,document]).trigger(type,data);}else{var val,ret,fn=jQuery.isFunction(element[type]||null);data.unshift(this.fix({type:type,target:element}));if(jQuery.isFunction(element.$handle))
val=element.$handle.apply(element,data);if(!fn&&element["on"+type]&&element["on"+type].apply(element,data)===false)
val=false;if(fn&&val!==false&&!(jQuery.nodeName(element,'a')&&type=="click")){this.triggered=true;element[type]();}
this.triggered=false;}},handle:function(event){var val;event=jQuery.event.fix(event||window.event||{});var c=this.$events&&this.$events[event.type],args=Array.prototype.slice.call(arguments,1);args.unshift(event);for(var j in c){args[0].handler=c[j];args[0].data=c[j].data;if(c[j].apply(this,args)===false){event.preventDefault();event.stopPropagation();val=false;}}
if(jQuery.browser.msie)
event.target=event.preventDefault=event.stopPropagation=event.handler=event.data=null;return val;},fix:function(event){var originalEvent=event;event=jQuery.extend({},originalEvent);event.preventDefault=function(){if(originalEvent.preventDefault)
originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)
originalEvent.stopPropagation();originalEvent.cancelBubble=true;};if(!event.target&&event.srcElement)
event.target=event.srcElement;if(jQuery.browser.safari&&event.target.nodeType==3)
event.target=originalEvent.target.parentNode;if(!event.relatedTarget&&event.fromElement)
event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var e=document.documentElement,b=document.body;event.pageX=event.clientX+(e&&e.scrollLeft||b.scrollLeft||0);event.pageY=event.clientY+(e&&e.scrollTop||b.scrollTop||0);}
if(!event.which&&(event.charCode||event.keyCode))
event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)
event.metaKey=event.ctrlKey;if(!event.which&&event.button)
event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){return this.each(function(){jQuery.event.add(this,type,function(event){jQuery(this).unbind(event);return(fn||data).apply(this,arguments);},fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},toggle:function(){var a=arguments;return this.click(function(e){this.lastToggle=0==this.lastToggle?1:0;e.preventDefault();return a[this.lastToggle].apply(this,[e])||false;});},hover:function(f,g){function handleHover(e){var p=e.relatedTarget;while(p&&p!=this)try{p=p.parentNode;}catch(e){p=this;};if(p==this)return false;return(e.type=="mouseover"?f:g).apply(this,[e]);}
return this.mouseover(handleHover).mouseout(handleHover);},ready:function(f){bindReady();if(jQuery.isReady)
f.apply(document,[jQuery]);else
jQuery.readyList.push(function(){return f.apply(this,[jQuery]);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.apply(document);});jQuery.readyList=null;}
if(jQuery.browser.mozilla||jQuery.browser.opera)
document.removeEventListener("DOMContentLoaded",jQuery.ready,false);if(!window.frames.length)
jQuery(window).load(function(){jQuery("#__ie_init").remove();});}}});jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,o){jQuery.fn[o]=function(f){return f?this.bind(o,f):this.trigger(o);};});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(jQuery.browser.mozilla||jQuery.browser.opera)
document.addEventListener("DOMContentLoaded",jQuery.ready,false);else if(jQuery.browser.msie){document.write("<scr"+"ipt id=__ie_init defer=true "+"src=//:><\/script>");var script=document.getElementById("__ie_init");if(script)
script.onreadystatechange=function(){if(document.readyState!="complete")return;jQuery.ready();};script=null;}else if(jQuery.browser.safari)
jQuery.safariTimer=setInterval(function(){if(document.readyState=="loaded"||document.readyState=="complete"){clearInterval(jQuery.safariTimer);jQuery.safariTimer=null;jQuery.ready();}},10);jQuery.event.add(window,"load",jQuery.ready);}
jQuery.fn.extend({loadIfModified:function(url,params,callback){this.load(url,params,callback,1);},load:function(url,params,callback,ifModified){if(jQuery.isFunction(url))
return this.bind("load",url);callback=callback||function(){};var type="GET";if(params)
if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}
var self=this;jQuery.ajax({url:url,type:type,data:params,ifModified:ifModified,complete:function(res,status){if(status=="success"||!ifModified&&status=="notmodified")
self.html(res.responseText);setTimeout(function(){self.each(callback,[res.responseText,status,res]);},13);}});return this;},serialize:function(){return jQuery.param(this);},evalScripts:function(){}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});jQuery.extend({get:function(url,data,callback,type,ifModified){if(jQuery.isFunction(data)){callback=data;data=null;}
return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type,ifModified:ifModified});},getIfModified:function(url,data,callback,type){return jQuery.get(url,data,callback,type,1);},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}
return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxTimeout:function(timeout){jQuery.ajaxSettings.timeout=timeout;},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));if(s.data){if(s.processData&&typeof s.data!="string")
s.data=jQuery.param(s.data);if(s.type.toLowerCase()=="get"){s.url+=(s.url.indexOf("?")>-1?"&":"?")+s.data;s.data=null;}}
if(s.global&&!jQuery.active++)
jQuery.event.trigger("ajaxStart");var requestDone=false;var xml=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();xml.open(s.type,s.url,s.async);if(s.data)
xml.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)
xml.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xml.setRequestHeader("X-Requested-With","XMLHttpRequest");if(s.beforeSend)
s.beforeSend(xml);if(s.global)
jQuery.event.trigger("ajaxSend",[xml,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xml&&(xml.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}
var status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xml)&&"error"||s.ifModified&&jQuery.httpNotModified(xml,s.url)&&"notmodified"||"success";if(status=="success"){try{var data=jQuery.httpData(xml,s.dataType);}catch(e){status="parsererror";}}
if(status=="success"){var modRes;try{modRes=xml.getResponseHeader("Last-Modified");}catch(e){}
if(s.ifModified&&modRes)
jQuery.lastModified[s.url]=modRes;if(s.success)
s.success(data,status);if(s.global)
jQuery.event.trigger("ajaxSuccess",[xml,s]);}else
jQuery.handleError(s,xml,status);if(s.global)
jQuery.event.trigger("ajaxComplete",[xml,s]);if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");if(s.complete)
s.complete(xml,status);if(s.async)
xml=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)
setTimeout(function(){if(xml){xml.abort();if(!requestDone)
onreadystatechange("timeout");}},s.timeout);}
try{xml.send(s.data);}catch(e){jQuery.handleError(s,xml,null,e);}
if(!s.async)
onreadystatechange();return xml;},handleError:function(s,xml,status,e){if(s.error)s.error(xml,status,e);if(s.global)
jQuery.event.trigger("ajaxError",[xml,s,e]);},active:0,httpSuccess:function(r){try{return!r.status&&location.protocol=="file:"||(r.status>=200&&r.status<300)||r.status==304||jQuery.browser.safari&&r.status==undefined;}catch(e){}
return false;},httpNotModified:function(xml,url){try{var xmlRes=xml.getResponseHeader("Last-Modified");return xml.status==304||xmlRes==jQuery.lastModified[url]||jQuery.browser.safari&&xml.status==undefined;}catch(e){}
return false;},httpData:function(r,type){var ct=r.getResponseHeader("content-type");var xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0;data=xml?r.responseXML:r.responseText;if(xml&&data.documentElement.tagName=="parsererror")
throw"parsererror";if(type=="script")
jQuery.globalEval(data);if(type=="json")
data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)
jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
for(var j in a)
if(a[j]&&a[j].constructor==Array)
jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
s.push(encodeURIComponent(j)+"="+encodeURIComponent(a[j]));return s.join("&");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock?this.oldblock:"";if(jQuery.css(this,"display")=="none")
this.style.display="block";}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");if(this.oldblock=="none")
this.oldblock="block";this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle(fn,fn2):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){return this.queue(function(){var hidden=jQuery(this).is(":hidden"),opt=jQuery.speed(speed,easing,callback),self=this;for(var p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)
return jQuery.isFunction(opt.complete)&&opt.complete.apply(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}
if(opt.overflow!=null)
this.style.overflow="hidden";this.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(val.constructor==Number)
e.custom(e.cur()||0,val);else
e[val=="toggle"?hidden?"show":"hide":val](prop);});return true;});},queue:function(type,fn){if(!fn){fn=type;type="fx";}
return this.each(function(){if(!this.queue)
this.queue={};if(!this.queue[type])
this.queue[type]=[];this.queue[type].push(fn);if(this.queue[type].length==1)
fn.apply(this);});}});jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:{slow:600,fast:200}[opt.duration])||400;opt.old=opt.complete;opt.complete=function(){jQuery.dequeue(this,"fx");if(jQuery.isFunction(opt.old))
opt.old.apply(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},queue:{},dequeue:function(elem,type){type=type||"fx";if(elem.queue&&elem.queue[type]){elem.queue[type].shift();var f=elem.queue[type][0];if(f)f.apply(elem);}},timers:[],fx:function(elem,options,prop){var z=this;var y=elem.style;z.a=function(){if(options.step)
options.step.apply(elem,[z.now]);if(prop=="opacity")
jQuery.attr(y,"opacity",z.now);else{y[prop]=parseInt(z.now)+"px";if(prop=="height"||prop=="width")
y.display="block";}};z.max=function(){return parseFloat(jQuery.css(elem,prop));};z.cur=function(){var r=parseFloat(jQuery.curCSS(elem,prop));return r&&r>-10000?r:z.max();};z.custom=function(from,to){z.startTime=(new Date()).getTime();z.now=from;z.a();jQuery.timers.push(function(){return z.step(from,to);});if(jQuery.timers.length==1){var timer=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)
if(!timers[i]())
timers.splice(i--,1);if(!timers.length)
clearInterval(timer);},13);}};z.show=function(){if(!elem.orig)elem.orig={};elem.orig[prop]=jQuery.attr(elem.style,prop);options.show=true;z.custom(0,this.cur());if(prop!="opacity")
y[prop]="1px";jQuery(elem).show();};z.hide=function(){if(!elem.orig)elem.orig={};elem.orig[prop]=jQuery.attr(elem.style,prop);options.hide=true;z.custom(this.cur(),0);};z.step=function(firstNum,lastNum){var t=(new Date()).getTime();if(t>options.duration+z.startTime){z.now=lastNum;z.a();if(elem.curAnim)elem.curAnim[prop]=true;var done=true;for(var i in elem.curAnim)
if(elem.curAnim[i]!==true)
done=false;if(done){if(options.display!=null){y.overflow=options.overflow;y.display=options.display;if(jQuery.css(elem,"display")=="none")
y.display="block";}
if(options.hide)
y.display="none";if(options.hide||options.show)
for(var p in elem.curAnim)
jQuery.attr(y,p,elem.orig[p]);}
if(done&&jQuery.isFunction(options.complete))
options.complete.apply(elem);return false;}else{var n=t-this.startTime;var p=n/options.duration;z.now=jQuery.easing[options.easing||(jQuery.easing.swing?"swing":"linear")](p,n,firstNum,(lastNum-firstNum),options.duration);z.a();}
return true;};}});})();jQuery.iUtil={getPosition:function(e)
{var x=0;var y=0;var es=e.style;var restoreStyles=false;if(jQuery(e).css('display')=='none'){var oldVisibility=es.visibility;var oldPosition=es.position;restoreStyles=true;es.visibility='hidden';es.display='block';es.position='absolute';}
var el=e;while(el){x+=el.offsetLeft+(el.currentStyle&&!jQuery.browser.opera?parseInt(el.currentStyle.borderLeftWidth)||0:0);y+=el.offsetTop+(el.currentStyle&&!jQuery.browser.opera?parseInt(el.currentStyle.borderTopWidth)||0:0);el=el.offsetParent;}
el=e;while(el&&el.tagName&&el.tagName.toLowerCase()!='body')
{x-=el.scrollLeft||0;y-=el.scrollTop||0;el=el.parentNode;}
if(restoreStyles==true){es.display='none';es.position=oldPosition;es.visibility=oldVisibility;}
return{x:x,y:y};},getPositionLite:function(el)
{var x=0,y=0;while(el){x+=el.offsetLeft||0;y+=el.offsetTop||0;el=el.offsetParent;}
return{x:x,y:y};},getSize:function(e)
{var w=jQuery.css(e,'width');var h=jQuery.css(e,'height');var wb=0;var hb=0;var es=e.style;if(jQuery(e).css('display')!='none'){wb=e.offsetWidth;hb=e.offsetHeight;}else{var oldVisibility=es.visibility;var oldPosition=es.position;es.visibility='hidden';es.display='block';es.position='absolute';wb=e.offsetWidth;hb=e.offsetHeight;es.display='none';es.position=oldPosition;es.visibility=oldVisibility;}
return{w:w,h:h,wb:wb,hb:hb};},getSizeLite:function(el)
{return{wb:el.offsetWidth||0,hb:el.offsetHeight||0};},getClient:function(e)
{var h,w,de;if(e){w=e.clientWidth;h=e.clientHeight;}else{de=document.documentElement;w=window.innerWidth||self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth;h=window.innerHeight||self.innerHeight||(de&&de.clientHeight)||document.body.clientHeight;}
return{w:w,h:h};},getScroll:function(e)
{var t=0,l=0,w=0,h=0,iw=0,ih=0;if(e&&e.nodeName.toLowerCase()!='body'){t=e.scrollTop;l=e.scrollLeft;w=e.scrollWidth;h=e.scrollHeight;iw=0;ih=0;}else{if(document.documentElement){t=document.documentElement.scrollTop;l=document.documentElement.scrollLeft;w=document.documentElement.scrollWidth;h=document.documentElement.scrollHeight;}else if(document.body){t=document.body.scrollTop;l=document.body.scrollLeft;w=document.body.scrollWidth;h=document.body.scrollHeight;}
iw=self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;ih=self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;}
return{t:t,l:l,w:w,h:h,iw:iw,ih:ih};},getMargins:function(e,toInteger)
{var el=jQuery(e);var t=el.css('marginTop')||'';var r=el.css('marginRight')||'';var b=el.css('marginBottom')||'';var l=el.css('marginLeft')||'';if(toInteger)
return{t:parseInt(t)||0,r:parseInt(r)||0,b:parseInt(b)||0,l:parseInt(l)};else
return{t:t,r:r,b:b,l:l};},getPadding:function(e,toInteger)
{var el=jQuery(e);var t=el.css('paddingTop')||'';var r=el.css('paddingRight')||'';var b=el.css('paddingBottom')||'';var l=el.css('paddingLeft')||'';if(toInteger)
return{t:parseInt(t)||0,r:parseInt(r)||0,b:parseInt(b)||0,l:parseInt(l)};else
return{t:t,r:r,b:b,l:l};},getBorder:function(e,toInteger)
{var el=jQuery(e);var t=el.css('borderTopWidth')||'';var r=el.css('borderRightWidth')||'';var b=el.css('borderBottomWidth')||'';var l=el.css('borderLeftWidth')||'';if(toInteger)
return{t:parseInt(t)||0,r:parseInt(r)||0,b:parseInt(b)||0,l:parseInt(l)||0};else
return{t:t,r:r,b:b,l:l};},getPointer:function(event)
{var x=event.pageX||(event.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft))||0;var y=event.pageY||(event.clientY+(document.documentElement.scrollTop||document.body.scrollTop))||0;return{x:x,y:y};},traverseDOM:function(nodeEl,func)
{func(nodeEl);nodeEl=nodeEl.firstChild;while(nodeEl){jQuery.iUtil.traverseDOM(nodeEl,func);nodeEl=nodeEl.nextSibling;}},purgeEvents:function(nodeEl)
{jQuery.iUtil.traverseDOM(nodeEl,function(el)
{for(var attr in el){if(typeof el[attr]==='function'){el[attr]=null;}}});},centerEl:function(el,axis)
{var clientScroll=jQuery.iUtil.getScroll();var windowSize=jQuery.iUtil.getSize(el);if(!axis||axis=='vertically')
jQuery(el).css({top:clientScroll.t+((Math.max(clientScroll.h,clientScroll.ih)-clientScroll.t-windowSize.hb)/2)+'px'});if(!axis||axis=='horizontally')
jQuery(el).css({left:clientScroll.l+((Math.max(clientScroll.w,clientScroll.iw)-clientScroll.l-windowSize.wb)/2)+'px'});},fixPNG:function(el,emptyGIF){var images=jQuery('img[@src*="png"]',el||document),png;images.each(function(){png=this.src;this.src=emptyGIF;this.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+png+"')";});}};[].indexOf||(Array.prototype.indexOf=function(v,n){n=(n==null)?0:n;var m=this.length;for(var i=n;i<m;i++)
if(this[i]==v)
return i;return-1;});jQuery.iDrag={helper:null,dragged:null,destroy:function()
{return this.each(function()
{if(this.isDraggable){this.dragCfg.dhe.unbind('mousedown',jQuery.iDrag.draginit);this.dragCfg=null;this.isDraggable=false;if(jQuery.browser.msie){this.unselectable="off";}else{this.style.MozUserSelect='';this.style.KhtmlUserSelect='';this.style.userSelect='';}}});},draginit:function(e)
{if(jQuery.iDrag.dragged!=null){jQuery.iDrag.dragstop(e);return false;}
var elm=this.dragElem;jQuery(document).bind('mousemove',jQuery.iDrag.dragmove).bind('mouseup',jQuery.iDrag.dragstop);elm.dragCfg.pointer=jQuery.iUtil.getPointer(e);elm.dragCfg.currentPointer=elm.dragCfg.pointer;elm.dragCfg.init=false;elm.dragCfg.fromHandler=this!=this.dragElem;jQuery.iDrag.dragged=elm;if(elm.dragCfg.si&&this!=this.dragElem){parentPos=jQuery.iUtil.getPosition(elm.parentNode);sliderSize=jQuery.iUtil.getSize(elm);sliderPos={x:parseInt(jQuery.css(elm,'left'))||0,y:parseInt(jQuery.css(elm,'top'))||0};dx=elm.dragCfg.currentPointer.x-parentPos.x-sliderSize.wb/2-sliderPos.x;dy=elm.dragCfg.currentPointer.y-parentPos.y-sliderSize.hb/2-sliderPos.y;jQuery.iSlider.dragmoveBy(elm,[dx,dy]);}
return jQuery.selectKeyHelper||false;},dragstart:function(e)
{var elm=jQuery.iDrag.dragged;elm.dragCfg.init=true;var dEs=elm.style;elm.dragCfg.oD=jQuery.css(elm,'display');elm.dragCfg.oP=jQuery.css(elm,'position');if(!elm.dragCfg.initialPosition)
elm.dragCfg.initialPosition=elm.dragCfg.oP;elm.dragCfg.oR={x:parseInt(jQuery.css(elm,'left'))||0,y:parseInt(jQuery.css(elm,'top'))||0};elm.dragCfg.diffX=0;elm.dragCfg.diffY=0;if(jQuery.browser.msie){var oldBorder=jQuery.iUtil.getBorder(elm,true);elm.dragCfg.diffX=oldBorder.l||0;elm.dragCfg.diffY=oldBorder.t||0;}
elm.dragCfg.oC=jQuery.extend(jQuery.iUtil.getPosition(elm),jQuery.iUtil.getSize(elm));if(elm.dragCfg.oP!='relative'&&elm.dragCfg.oP!='absolute'){dEs.position='relative';}
jQuery.iDrag.helper.empty();var clonedEl=elm.cloneNode(true);jQuery(clonedEl).css({display:'block',left:'0px',top:'0px'});clonedEl.style.marginTop='0';clonedEl.style.marginRight='0';clonedEl.style.marginBottom='0';clonedEl.style.marginLeft='0';jQuery.iDrag.helper.append(clonedEl);var dhs=jQuery.iDrag.helper.get(0).style;if(elm.dragCfg.autoSize){dhs.width='auto';dhs.height='auto';}else{dhs.height=elm.dragCfg.oC.hb+'px';dhs.width=elm.dragCfg.oC.wb+'px';}
dhs.display='block';dhs.marginTop='0px';dhs.marginRight='0px';dhs.marginBottom='0px';dhs.marginLeft='0px';jQuery.extend(elm.dragCfg.oC,jQuery.iUtil.getSize(clonedEl));if(elm.dragCfg.cursorAt){if(elm.dragCfg.cursorAt.left){elm.dragCfg.oR.x+=elm.dragCfg.pointer.x-elm.dragCfg.oC.x-elm.dragCfg.cursorAt.left;elm.dragCfg.oC.x=elm.dragCfg.pointer.x-elm.dragCfg.cursorAt.left;}
if(elm.dragCfg.cursorAt.top){elm.dragCfg.oR.y+=elm.dragCfg.pointer.y-elm.dragCfg.oC.y-elm.dragCfg.cursorAt.top;elm.dragCfg.oC.y=elm.dragCfg.pointer.y-elm.dragCfg.cursorAt.top;}
if(elm.dragCfg.cursorAt.right){elm.dragCfg.oR.x+=elm.dragCfg.pointer.x-elm.dragCfg.oC.x-elm.dragCfg.oC.hb+elm.dragCfg.cursorAt.right;elm.dragCfg.oC.x=elm.dragCfg.pointer.x-elm.dragCfg.oC.wb+elm.dragCfg.cursorAt.right;}
if(elm.dragCfg.cursorAt.bottom){elm.dragCfg.oR.y+=elm.dragCfg.pointer.y-elm.dragCfg.oC.y-elm.dragCfg.oC.hb+elm.dragCfg.cursorAt.bottom;elm.dragCfg.oC.y=elm.dragCfg.pointer.y-elm.dragCfg.oC.hb+elm.dragCfg.cursorAt.bottom;}}
elm.dragCfg.nx=elm.dragCfg.oR.x;elm.dragCfg.ny=elm.dragCfg.oR.y;if(elm.dragCfg.insideParent||elm.dragCfg.containment=='parent'){parentBorders=jQuery.iUtil.getBorder(elm.parentNode,true);elm.dragCfg.oC.x=elm.offsetLeft+(jQuery.browser.msie?0:jQuery.browser.opera?-parentBorders.l:parentBorders.l);elm.dragCfg.oC.y=elm.offsetTop+(jQuery.browser.msie?0:jQuery.browser.opera?-parentBorders.t:parentBorders.t);jQuery(elm.parentNode).append(jQuery.iDrag.helper.get(0));}
if(elm.dragCfg.containment){jQuery.iDrag.getContainment(elm);elm.dragCfg.onDragModifier.containment=jQuery.iDrag.fitToContainer;}
if(elm.dragCfg.si){jQuery.iSlider.modifyContainer(elm);}
dhs.left=elm.dragCfg.oC.x-elm.dragCfg.diffX+'px';dhs.top=elm.dragCfg.oC.y-elm.dragCfg.diffY+'px';dhs.width=elm.dragCfg.oC.wb+'px';dhs.height=elm.dragCfg.oC.hb+'px';jQuery.iDrag.dragged.dragCfg.prot=false;if(elm.dragCfg.gx){elm.dragCfg.onDragModifier.grid=jQuery.iDrag.snapToGrid;}
if(elm.dragCfg.zIndex!=false){jQuery.iDrag.helper.css('zIndex',elm.dragCfg.zIndex);}
if(elm.dragCfg.opacity){jQuery.iDrag.helper.css('opacity',elm.dragCfg.opacity);if(window.ActiveXObject){jQuery.iDrag.helper.css('filter','alpha(opacity='+elm.dragCfg.opacity*100+')');}}
if(elm.dragCfg.frameClass){jQuery.iDrag.helper.addClass(elm.dragCfg.frameClass);jQuery.iDrag.helper.get(0).firstChild.style.display='none';}
if(elm.dragCfg.onStart)
elm.dragCfg.onStart.apply(elm,[clonedEl,elm.dragCfg.oR.x,elm.dragCfg.oR.y]);if(jQuery.iDrop&&jQuery.iDrop.count>0){jQuery.iDrop.highlight(elm);}
if(elm.dragCfg.ghosting==false){dEs.display='none';}
return false;},getContainment:function(elm)
{if(elm.dragCfg.containment.constructor==String){if(elm.dragCfg.containment=='parent'){elm.dragCfg.cont=jQuery.extend({x:0,y:0},jQuery.iUtil.getSize(elm.parentNode));var contBorders=jQuery.iUtil.getBorder(elm.parentNode,true);elm.dragCfg.cont.w=elm.dragCfg.cont.wb-contBorders.l-contBorders.r;elm.dragCfg.cont.h=elm.dragCfg.cont.hb-contBorders.t-contBorders.b;}else if(elm.dragCfg.containment=='document'){var clnt=jQuery.iUtil.getClient();elm.dragCfg.cont={x:0,y:0,w:clnt.w,h:clnt.h};}}else if(elm.dragCfg.containment.constructor==Array){elm.dragCfg.cont={x:parseInt(elm.dragCfg.containment[0])||0,y:parseInt(elm.dragCfg.containment[1])||0,w:parseInt(elm.dragCfg.containment[2])||0,h:parseInt(elm.dragCfg.containment[3])||0};}
elm.dragCfg.cont.dx=elm.dragCfg.cont.x-elm.dragCfg.oC.x;elm.dragCfg.cont.dy=elm.dragCfg.cont.y-elm.dragCfg.oC.y;},hidehelper:function(dragged)
{if(dragged.dragCfg.insideParent||dragged.dragCfg.containment=='parent'){jQuery('body',document).append(jQuery.iDrag.helper.get(0));}
jQuery.iDrag.helper.empty().hide().css('opacity',1);if(window.ActiveXObject){jQuery.iDrag.helper.css('filter','alpha(opacity=100)');}},dragstop:function(e)
{jQuery(document).unbind('mousemove',jQuery.iDrag.dragmove).unbind('mouseup',jQuery.iDrag.dragstop);if(jQuery.iDrag.dragged==null){return;}
var dragged=jQuery.iDrag.dragged;jQuery.iDrag.dragged=null;if(dragged.dragCfg.init==false){return false;}
if(dragged.dragCfg.so==true){jQuery(dragged).css('position',dragged.dragCfg.oP);}
var dEs=dragged.style;if(dragged.si){jQuery.iDrag.helper.css('cursor','move');}
if(dragged.dragCfg.frameClass){jQuery.iDrag.helper.removeClass(dragged.dragCfg.frameClass);}
if(dragged.dragCfg.revert==false){if(dragged.dragCfg.fx>0){if(!dragged.dragCfg.axis||dragged.dragCfg.axis=='horizontally'){var x=new jQuery.fx(dragged,{duration:dragged.dragCfg.fx},'left');x.custom(dragged.dragCfg.oR.x,dragged.dragCfg.nRx);}
if(!dragged.dragCfg.axis||dragged.dragCfg.axis=='vertically'){var y=new jQuery.fx(dragged,{duration:dragged.dragCfg.fx},'top');y.custom(dragged.dragCfg.oR.y,dragged.dragCfg.nRy);}}else{if(!dragged.dragCfg.axis||dragged.dragCfg.axis=='horizontally')
dragged.style.left=dragged.dragCfg.nRx+'px';if(!dragged.dragCfg.axis||dragged.dragCfg.axis=='vertically')
dragged.style.top=dragged.dragCfg.nRy+'px';}
jQuery.iDrag.hidehelper(dragged);if(dragged.dragCfg.ghosting==false){jQuery(dragged).css('display',dragged.dragCfg.oD);}}else if(dragged.dragCfg.fx>0){dragged.dragCfg.prot=true;var dh=false;if(jQuery.iDrop&&jQuery.iSort&&dragged.dragCfg.so){dh=jQuery.iUtil.getPosition(jQuery.iSort.helper.get(0));}
jQuery.iDrag.helper.animate({left:dh?dh.x:dragged.dragCfg.oC.x,top:dh?dh.y:dragged.dragCfg.oC.y},dragged.dragCfg.fx,function()
{dragged.dragCfg.prot=false;if(dragged.dragCfg.ghosting==false){dragged.style.display=dragged.dragCfg.oD;}
jQuery.iDrag.hidehelper(dragged);});}else{jQuery.iDrag.hidehelper(dragged);if(dragged.dragCfg.ghosting==false){jQuery(dragged).css('display',dragged.dragCfg.oD);}}
if(jQuery.iDrop&&jQuery.iDrop.count>0){jQuery.iDrop.checkdrop(dragged);}
if(jQuery.iSort&&dragged.dragCfg.so){jQuery.iSort.check(dragged);}
if(dragged.dragCfg.onChange&&(dragged.dragCfg.nRx!=dragged.dragCfg.oR.x||dragged.dragCfg.nRy!=dragged.dragCfg.oR.y)){dragged.dragCfg.onChange.apply(dragged,dragged.dragCfg.lastSi||[0,0,dragged.dragCfg.nRx,dragged.dragCfg.nRy]);}
if(dragged.dragCfg.onStop)
dragged.dragCfg.onStop.apply(dragged);return false;},snapToGrid:function(x,y,dx,dy)
{if(dx!=0)
dx=parseInt((dx+(this.dragCfg.gx*dx/Math.abs(dx))/2)/this.dragCfg.gx)*this.dragCfg.gx;if(dy!=0)
dy=parseInt((dy+(this.dragCfg.gy*dy/Math.abs(dy))/2)/this.dragCfg.gy)*this.dragCfg.gy;return{dx:dx,dy:dy,x:0,y:0};},fitToContainer:function(x,y,dx,dy)
{dx=Math.min(Math.max(dx,this.dragCfg.cont.dx),this.dragCfg.cont.w+this.dragCfg.cont.dx-this.dragCfg.oC.wb);dy=Math.min(Math.max(dy,this.dragCfg.cont.dy),this.dragCfg.cont.h+this.dragCfg.cont.dy-this.dragCfg.oC.hb);return{dx:dx,dy:dy,x:0,y:0}},dragmove:function(e)
{if(jQuery.iDrag.dragged==null||jQuery.iDrag.dragged.dragCfg.prot==true){return;}
var dragged=jQuery.iDrag.dragged;dragged.dragCfg.currentPointer=jQuery.iUtil.getPointer(e);if(dragged.dragCfg.init==false){distance=Math.sqrt(Math.pow(dragged.dragCfg.pointer.x-dragged.dragCfg.currentPointer.x,2)+Math.pow(dragged.dragCfg.pointer.y-dragged.dragCfg.currentPointer.y,2));if(distance<dragged.dragCfg.snapDistance){return;}else{jQuery.iDrag.dragstart(e);}}
var dx=dragged.dragCfg.currentPointer.x-dragged.dragCfg.pointer.x;var dy=dragged.dragCfg.currentPointer.y-dragged.dragCfg.pointer.y;for(var i in dragged.dragCfg.onDragModifier){var newCoords=dragged.dragCfg.onDragModifier[i].apply(dragged,[dragged.dragCfg.oR.x+dx,dragged.dragCfg.oR.y+dy,dx,dy]);if(newCoords&&newCoords.constructor==Object){dx=i!='user'?newCoords.dx:(newCoords.x-dragged.dragCfg.oR.x);dy=i!='user'?newCoords.dy:(newCoords.y-dragged.dragCfg.oR.y);}}
if(typeof(dragged.dragCfg.oC)!='undefined')
{dragged.dragCfg.nx=dragged.dragCfg.oC.x+dx-dragged.dragCfg.diffX;dragged.dragCfg.ny=dragged.dragCfg.oC.y+dy-dragged.dragCfg.diffY;}
else
{dragged.dragCfg.nx=dx-dragged.dragCfg.diffX;dragged.dragCfg.ny=dy-dragged.dragCfg.diffY;}
if(dragged.dragCfg.si&&(dragged.dragCfg.onSlide||dragged.dragCfg.onChange)){jQuery.iSlider.onSlide(dragged,dragged.dragCfg.nx,dragged.dragCfg.ny);}
if(dragged.dragCfg.onDrag)
dragged.dragCfg.onDrag.apply(dragged,[dragged.dragCfg.oR.x+dx,dragged.dragCfg.oR.y+dy]);if(!dragged.dragCfg.axis||dragged.dragCfg.axis=='horizontally'){dragged.dragCfg.nRx=dragged.dragCfg.oR.x+dx;jQuery.iDrag.helper.get(0).style.left=dragged.dragCfg.nx+'px';}
if(!dragged.dragCfg.axis||dragged.dragCfg.axis=='vertically'){dragged.dragCfg.nRy=dragged.dragCfg.oR.y+dy;jQuery.iDrag.helper.get(0).style.top=dragged.dragCfg.ny+'px';}
if(jQuery.iDrop&&jQuery.iDrop.count>0){jQuery.iDrop.checkhover(dragged);}
return false;},build:function(o)
{if(!jQuery.iDrag.helper){jQuery('body',document).append('<div id="dragHelper"></div>');jQuery.iDrag.helper=jQuery('#dragHelper');var el=jQuery.iDrag.helper.get(0);var els=el.style;els.position='absolute';els.display='none';els.cursor='move';els.listStyle='none';els.overflow='hidden';if(window.ActiveXObject){el.unselectable="on";}else{els.mozUserSelect='none';els.userSelect='none';els.KhtmlUserSelect='none';}}
if(!o){o={};}
return this.each(function()
{if(this.isDraggable||!jQuery.iUtil)
return;if(window.ActiveXObject){this.onselectstart=function(){return false;};this.ondragstart=function(){return false;};}
var el=this;var dhe=o.handle?jQuery(this).find(o.handle):jQuery(this);if(jQuery.browser.msie){dhe.each(function()
{this.unselectable="on";});}else{dhe.css('-moz-user-select','none');dhe.css('user-select','none');dhe.css('-khtml-user-select','none');}
this.dragCfg={dhe:dhe,revert:o.revert?true:false,ghosting:o.ghosting?true:false,so:o.so?o.so:false,si:o.si?o.si:false,insideParent:o.insideParent?o.insideParent:false,zIndex:o.zIndex?parseInt(o.zIndex)||0:false,opacity:o.opacity?parseFloat(o.opacity):false,fx:parseInt(o.fx)||null,hpc:o.hpc?o.hpc:false,onDragModifier:{},pointer:{},onStart:o.onStart&&o.onStart.constructor==Function?o.onStart:false,onStop:o.onStop&&o.onStop.constructor==Function?o.onStop:false,onChange:o.onChange&&o.onChange.constructor==Function?o.onChange:false,axis:/vertically|horizontally/.test(o.axis)?o.axis:false,snapDistance:o.snapDistance?parseInt(o.snapDistance)||0:0,cursorAt:o.cursorAt?o.cursorAt:false,autoSize:o.autoSize?true:false,frameClass:o.frameClass||false};if(o.onDragModifier&&o.onDragModifier.constructor==Function)
this.dragCfg.onDragModifier.user=o.onDragModifier;if(o.onDrag&&o.onDrag.constructor==Function)
this.dragCfg.onDrag=o.onDrag;if(o.containment&&((o.containment.constructor==String&&(o.containment=='parent'||o.containment=='document'))||(o.containment.constructor==Array&&o.containment.length==4))){this.dragCfg.containment=o.containment;}
if(o.fractions){this.dragCfg.fractions=o.fractions;}
if(o.grid){if(typeof o.grid=='number'){this.dragCfg.gx=parseInt(o.grid)||1;this.dragCfg.gy=parseInt(o.grid)||1;}else if(o.grid.length==2){this.dragCfg.gx=parseInt(o.grid[0])||1;this.dragCfg.gy=parseInt(o.grid[1])||1;}}
if(o.onSlide&&o.onSlide.constructor==Function){this.dragCfg.onSlide=o.onSlide;}
this.isDraggable=true;dhe.each(function(){this.dragElem=el;});dhe.bind('mousedown',jQuery.iDrag.draginit);})}};jQuery.fn.extend({DraggableDestroy:jQuery.iDrag.destroy,Draggable:jQuery.iDrag.build});jQuery.iDrop={fit:function(zonex,zoney,zonew,zoneh)
{return zonex<=jQuery.iDrag.dragged.dragCfg.nx&&(zonex+zonew)>=(jQuery.iDrag.dragged.dragCfg.nx+jQuery.iDrag.dragged.dragCfg.oC.w)&&zoney<=jQuery.iDrag.dragged.dragCfg.ny&&(zoney+zoneh)>=(jQuery.iDrag.dragged.dragCfg.ny+jQuery.iDrag.dragged.dragCfg.oC.h)?true:false;},intersect:function(zonex,zoney,zonew,zoneh)
{return!(zonex>(jQuery.iDrag.dragged.dragCfg.nx+jQuery.iDrag.dragged.dragCfg.oC.w)||(zonex+zonew)<jQuery.iDrag.dragged.dragCfg.nx||zoney>(jQuery.iDrag.dragged.dragCfg.ny+jQuery.iDrag.dragged.dragCfg.oC.h)||(zoney+zoneh)<jQuery.iDrag.dragged.dragCfg.ny)?true:false;},pointer:function(zonex,zoney,zonew,zoneh)
{return zonex<jQuery.iDrag.dragged.dragCfg.currentPointer.x&&(zonex+zonew)>jQuery.iDrag.dragged.dragCfg.currentPointer.x&&zoney<jQuery.iDrag.dragged.dragCfg.currentPointer.y&&(zoney+zoneh)>jQuery.iDrag.dragged.dragCfg.currentPointer.y?true:false;},overzone:false,highlighted:{},count:0,zones:{},highlight:function(elm)
{if(jQuery.iDrag.dragged==null){return;}
var i;jQuery.iDrop.highlighted={};var oneIsSortable=false;for(i in jQuery.iDrop.zones){if(jQuery.iDrop.zones[i]!=null){var iEL=jQuery.iDrop.zones[i].get(0);if(jQuery(jQuery.iDrag.dragged).is('.'+iEL.dropCfg.a)){if(iEL.dropCfg.m==false){iEL.dropCfg.p=jQuery.extend(jQuery.iUtil.getPositionLite(iEL),jQuery.iUtil.getSizeLite(iEL));iEL.dropCfg.m=true;}
if(iEL.dropCfg.ac){jQuery.iDrop.zones[i].addClass(iEL.dropCfg.ac);}
jQuery.iDrop.highlighted[i]=jQuery.iDrop.zones[i];if(jQuery.iSort&&iEL.dropCfg.s&&jQuery.iDrag.dragged.dragCfg.so){iEL.dropCfg.el=jQuery('.'+iEL.dropCfg.a,iEL);elm.style.display='none';jQuery.iSort.measure(iEL);iEL.dropCfg.os=jQuery.iSort.serialize(jQuery.attr(iEL,'id')).hash;elm.style.display=elm.dragCfg.oD;oneIsSortable=true;}
if(iEL.dropCfg.onActivate){iEL.dropCfg.onActivate.apply(jQuery.iDrop.zones[i].get(0),[jQuery.iDrag.dragged]);}}}}
if(oneIsSortable){jQuery.iSort.start();}},remeasure:function()
{jQuery.iDrop.highlighted={};for(i in jQuery.iDrop.zones){if(jQuery.iDrop.zones[i]!=null){var iEL=jQuery.iDrop.zones[i].get(0);if(jQuery(jQuery.iDrag.dragged).is('.'+iEL.dropCfg.a)){iEL.dropCfg.p=jQuery.extend(jQuery.iUtil.getPositionLite(iEL),jQuery.iUtil.getSizeLite(iEL));if(iEL.dropCfg.ac){jQuery.iDrop.zones[i].addClass(iEL.dropCfg.ac);}
jQuery.iDrop.highlighted[i]=jQuery.iDrop.zones[i];if(jQuery.iSort&&iEL.dropCfg.s&&jQuery.iDrag.dragged.dragCfg.so){iEL.dropCfg.el=jQuery('.'+iEL.dropCfg.a,iEL);elm.style.display='none';jQuery.iSort.measure(iEL);elm.style.display=elm.dragCfg.oD;}}}}},checkhover:function(e)
{if(jQuery.iDrag.dragged==null){return;}
jQuery.iDrop.overzone=false;var i;var applyOnHover=false;var hlt=0;for(i in jQuery.iDrop.highlighted)
{var iEL=jQuery.iDrop.highlighted[i].get(0);if(jQuery.iDrop.overzone==false&&jQuery.iDrop[iEL.dropCfg.t](iEL.dropCfg.p.x,iEL.dropCfg.p.y,iEL.dropCfg.p.wb,iEL.dropCfg.p.hb)){if(iEL.dropCfg.hc&&iEL.dropCfg.h==false){jQuery.iDrop.highlighted[i].addClass(iEL.dropCfg.hc);}
if(iEL.dropCfg.h==false&&iEL.dropCfg.onHover){applyOnHover=true;}
iEL.dropCfg.h=true;jQuery.iDrop.overzone=iEL;if(jQuery.iSort&&iEL.dropCfg.s&&jQuery.iDrag.dragged.dragCfg.so){jQuery.iSort.helper.get(0).className=iEL.dropCfg.shc;jQuery.iSort.checkhover(iEL);}
hlt++;}else if(iEL.dropCfg.h==true){if(iEL.dropCfg.onOut){iEL.dropCfg.onOut.apply(iEL,[e,jQuery.iDrag.helper.get(0).firstChild,iEL.dropCfg.fx]);}
if(iEL.dropCfg.hc){jQuery.iDrop.highlighted[i].removeClass(iEL.dropCfg.hc);}
iEL.dropCfg.h=false;}}
if(jQuery.iSort&&!jQuery.iDrop.overzone&&jQuery.iDrag.dragged.so){jQuery.iSort.helper.get(0).style.display='none';}
if(applyOnHover){jQuery.iDrop.overzone.dropCfg.onHover.apply(jQuery.iDrop.overzone,[e,jQuery.iDrag.helper.get(0).firstChild]);}},checkdrop:function(e)
{var i;for(i in jQuery.iDrop.highlighted){var iEL=jQuery.iDrop.highlighted[i].get(0);if(iEL.dropCfg.ac){jQuery.iDrop.highlighted[i].removeClass(iEL.dropCfg.ac);}
if(iEL.dropCfg.hc){jQuery.iDrop.highlighted[i].removeClass(iEL.dropCfg.hc);}
if(iEL.dropCfg.s){jQuery.iSort.changed[jQuery.iSort.changed.length]=i;}
if(iEL.dropCfg.onDrop&&iEL.dropCfg.h==true){iEL.dropCfg.h=false;iEL.dropCfg.onDrop.apply(iEL,[e,iEL.dropCfg.fx]);}
iEL.dropCfg.m=false;iEL.dropCfg.h=false;}
jQuery.iDrop.highlighted={};},destroy:function()
{jQuery.iDrop.zones={};jQuery.iDrop.count=0;if(typeof(this.each)!='undefined')
return this.each(function()
{if(this.isDroppable){if(this.dropCfg.s){id=jQuery.attr(this,'id');jQuery.iSort.collected[id]=null;jQuery('.'+this.dropCfg.a,this).DraggableDestroy();}
jQuery.iDrop.zones['d'+this.idsa]=null;this.isDroppable=false;this.f=null;}});},build:function(o)
{return this.each(function()
{if(this.isDroppable==true||!o.accept||!jQuery.iUtil||!jQuery.iDrag){return;}
this.dropCfg={a:o.accept,ac:o.activeclass||false,hc:o.hoverclass||false,shc:o.helperclass||false,onDrop:o.ondrop||o.onDrop||false,onHover:o.onHover||o.onhover||false,onOut:o.onOut||o.onout||false,onActivate:o.onActivate||false,t:o.tolerance&&(o.tolerance=='fit'||o.tolerance=='intersect')?o.tolerance:'pointer',fx:o.fx?o.fx:false,m:false,h:false};if(o.sortable==true&&jQuery.iSort){id=jQuery.attr(this,'id');jQuery.iSort.collected[id]=this.dropCfg.a;this.dropCfg.s=true;if(o.onChange){this.dropCfg.onChange=o.onChange;this.dropCfg.os=jQuery.iSort.serialize(id).hash;}}
this.isDroppable=true;this.idsa=parseInt(Math.random()*10000);jQuery.iDrop.zones['d'+this.idsa]=jQuery(this);jQuery.iDrop.count++;});}};jQuery.fn.extend({DroppableDestroy:jQuery.iDrop.destroy,Droppable:jQuery.iDrop.build});jQuery.recallDroppables=jQuery.iDrop.remeasure;jQuery.iSort={changed:[],collected:{},helper:false,inFrontOf:null,start:function()
{if(jQuery.iDrag.dragged==null){return;}
var shs,margins,c,cs;jQuery.iSort.helper.get(0).className=jQuery.iDrag.dragged.dragCfg.hpc;shs=jQuery.iSort.helper.get(0).style;shs.display='block';jQuery.iSort.helper.oC=jQuery.extend(jQuery.iUtil.getPosition(jQuery.iSort.helper.get(0)),jQuery.iUtil.getSize(jQuery.iSort.helper.get(0)));shs.width=jQuery.iDrag.dragged.dragCfg.oC.wb+'px';shs.height=jQuery.iDrag.dragged.dragCfg.oC.hb+'px';margins=jQuery.iUtil.getMargins(jQuery.iDrag.dragged);shs.marginTop=margins.t;shs.marginRight=margins.r;shs.marginBottom=margins.b;shs.marginLeft=margins.l;if(jQuery.iDrag.dragged.dragCfg.ghosting==true){c=jQuery.iDrag.dragged.cloneNode(true);cs=c.style;cs.marginTop='0px';cs.marginRight='0px';cs.marginBottom='0px';cs.marginLeft='0px';cs.display='block';jQuery.iSort.helper.empty().append(c);}
jQuery(jQuery.iDrag.dragged).after(jQuery.iSort.helper.get(0));jQuery.iDrag.dragged.style.display='none';},check:function(e)
{if(!e.dragCfg.so&&jQuery.iDrop.overzone.sortable){if(e.dragCfg.onStop)
e.dragCfg.onStop.apply(dragged);jQuery(e).css('position',e.dragCfg.initialPosition||e.dragCfg.oP);jQuery(e).DraggableDestroy();jQuery(jQuery.iDrop.overzone).SortableAddItem(e);}
jQuery.iSort.helper.removeClass(e.dragCfg.hpc).html('&nbsp;');jQuery.iSort.inFrontOf=null;var shs=jQuery.iSort.helper.get(0).style;shs.display='none';jQuery.iSort.helper.after(e);if(e.dragCfg.fx>0){jQuery(e).fadeIn(e.dragCfg.fx);}
jQuery('body').append(jQuery.iSort.helper.get(0));var ts=[];var fnc=false;for(var i=0;i<jQuery.iSort.changed.length;i++){var iEL=jQuery.iDrop.zones[jQuery.iSort.changed[i]].get(0);var id=jQuery.attr(iEL,'id');var ser=jQuery.iSort.serialize(id);if(iEL.dropCfg.os!=ser.hash){iEL.dropCfg.os=ser.hash;if(fnc==false&&iEL.dropCfg.onChange){fnc=iEL.dropCfg.onChange;}
ser.id=id;ts[ts.length]=ser;}}
jQuery.iSort.changed=[];if(fnc!=false&&ts.length>0){fnc(ts);}},checkhover:function(e,o)
{if(!jQuery.iDrag.dragged)
return;var cur=false;var i=0;if(e.dropCfg.el.size()>0){for(i=e.dropCfg.el.size();i>0;i--){if(e.dropCfg.el.get(i-1)!=jQuery.iDrag.dragged){if(!e.sortCfg.floats){if((e.dropCfg.el.get(i-1).pos.y+e.dropCfg.el.get(i-1).pos.hb/2)>jQuery.iDrag.dragged.dragCfg.ny){cur=e.dropCfg.el.get(i-1);}else{break;}}else{if((e.dropCfg.el.get(i-1).pos.x+e.dropCfg.el.get(i-1).pos.wb/2)>jQuery.iDrag.dragged.dragCfg.nx&&(e.dropCfg.el.get(i-1).pos.y+e.dropCfg.el.get(i-1).pos.hb/2)>jQuery.iDrag.dragged.dragCfg.ny){cur=e.dropCfg.el.get(i-1);}}}}}
if(cur&&jQuery.iSort.inFrontOf!=cur){jQuery.iSort.inFrontOf=cur;jQuery(cur).before(jQuery.iSort.helper.get(0));}else if(!cur&&(jQuery.iSort.inFrontOf!=null||jQuery.iSort.helper.get(0).parentNode!=e)){jQuery.iSort.inFrontOf=null;jQuery(e).append(jQuery.iSort.helper.get(0));}
jQuery.iSort.helper.get(0).style.display='block';},measure:function(e)
{if(jQuery.iDrag.dragged==null){return;}
e.dropCfg.el.each(function()
{this.pos=jQuery.extend(jQuery.iUtil.getSizeLite(this),jQuery.iUtil.getPositionLite(this));});},serialize:function(s)
{var i;var h='';var o={};if(s){if(jQuery.iSort.collected[s]){o[s]=[];jQuery('#'+s+' .'+jQuery.iSort.collected[s]).each(function()
{if(h.length>0){h+='&';}
h+=s+'[]='+jQuery.attr(this,'id');o[s][o[s].length]=jQuery.attr(this,'id');});}else{for(a in s){if(jQuery.iSort.collected[s[a]]){o[s[a]]=[];jQuery('#'+s[a]+' .'+jQuery.iSort.collected[s[a]]).each(function()
{if(h.length>0){h+='&';}
h+=s[a]+'[]='+jQuery.attr(this,'id');o[s[a]][o[s[a]].length]=jQuery.attr(this,'id');});}}}}else{for(i in jQuery.iSort.collected){o[i]=[];jQuery('#'+i+' .'+jQuery.iSort.collected[i]).each(function()
{if(h.length>0){h+='&';}
h+=i+'[]='+jQuery.attr(this,'id');o[i][o[i].length]=jQuery.attr(this,'id');});}}
return{hash:h,o:o};},addItem:function(e)
{if(!e.childNodes){return;}
return this.each(function()
{if(!this.sortCfg||!jQuery(e).is('.'+this.sortCfg.accept))
jQuery(e).addClass(this.sortCfg.accept);jQuery(e).Draggable(this.sortCfg.dragCfg);});},destroy:function()
{return this.each(function()
{jQuery('.'+this.sortCfg.accept).DraggableDestroy();jQuery(this).DroppableDestroy();this.sortCfg=null;this.isSortable=null;});},build:function(o)
{if(o.accept&&jQuery.iUtil&&jQuery.iDrag&&jQuery.iDrop){if(!jQuery.iSort.helper){jQuery('body',document).append('<div id="sortHelper">&nbsp;</div>');jQuery.iSort.helper=jQuery('#sortHelper');jQuery.iSort.helper.get(0).style.display='none';}
this.Droppable({accept:o.accept,activeclass:o.activeclass?o.activeclass:false,hoverclass:o.hoverclass?o.hoverclass:false,helperclass:o.helperclass?o.helperclass:false,onHover:o.onHover||o.onhover,onOut:o.onOut||o.onout,sortable:true,onChange:o.onChange||o.onchange,fx:o.fx?o.fx:false,ghosting:o.ghosting?true:false,tolerance:o.tolerance?o.tolerance:'intersect'});return this.each(function()
{var dragCfg={revert:o.revert?true:false,zindex:3000,opacity:o.opacity?parseFloat(o.opacity):false,hpc:o.helperclass?o.helperclass:false,fx:o.fx?o.fx:false,so:true,ghosting:o.ghosting?true:false,handle:o.handle?o.handle:null,containment:o.containment?o.containment:null,onStart:o.onStart&&o.onStart.constructor==Function?o.onStart:false,onDrag:o.onDrag&&o.onDrag.constructor==Function?o.onDrag:false,onStop:o.onStop&&o.onStop.constructor==Function?o.onStop:false,axis:/vertically|horizontally/.test(o.axis)?o.axis:false,snapDistance:o.snapDistance?parseInt(o.snapDistance)||0:false,cursorAt:o.cursorAt?o.cursorAt:false};jQuery('.'+o.accept,this).Draggable(dragCfg);this.isSortable=true;this.sortCfg={accept:o.accept,revert:o.revert?true:false,zindex:3000,opacity:o.opacity?parseFloat(o.opacity):false,hpc:o.helperclass?o.helperclass:false,fx:o.fx?o.fx:false,so:true,ghosting:o.ghosting?true:false,handle:o.handle?o.handle:null,containment:o.containment?o.containment:null,floats:o.floats?true:false,dragCfg:dragCfg}});}}};jQuery.fn.extend({Sortable:jQuery.iSort.build,SortableAddItem:jQuery.iSort.addItem,SortableDestroy:jQuery.iSort.destroy});jQuery.SortSerialize=jQuery.iSort.serialize;var isIE7=false;jQuery.iNestedSortable={checkHover:function(e,o){if(e.isNestedSortable){jQuery.iNestedSortable.scroll(e);return jQuery.iNestedSortable.newCheckHover(e);}else{return jQuery.iNestedSortable.oldCheckHover(e,o);}},oldCheckHover:jQuery.iSort.checkhover,newCheckHover:function(e){if(!jQuery.iDrag.dragged){return;}
if(!(e.dropCfg.el.size()>0)){return;}
if(!e.nestedSortCfg.remeasured){jQuery.iSort.measure(e);e.nestedSortCfg.remeasured=true;}
var precItem=jQuery.iNestedSortable.findPrecedingItem(e);var shouldNest=jQuery.iNestedSortable.shouldNestItem(e,precItem);var touchingFirst=(!precItem)?jQuery.iNestedSortable.isTouchingFirstItem(e):false;var quit=false;if(precItem){if(e.nestedSortCfg.lastPrecedingItem===precItem&&e.nestedSortCfg.lastShouldNest===shouldNest){quit=true;}}
else{if(e.nestedSortCfg.lastPrecedingItem===precItem&&e.nestedSortCfg.lastTouchingFirst===touchingFirst){quit=true;}}
e.nestedSortCfg.lastPrecedingItem=precItem;e.nestedSortCfg.lastShouldNest=shouldNest;e.nestedSortCfg.lastTouchingFirst=touchingFirst;if(quit){return;}
if(precItem!==null){if(shouldNest){jQuery.iNestedSortable.nestItem(e,precItem);}else{jQuery.iNestedSortable.appendItem(e,precItem);}}else if(touchingFirst){jQuery.iNestedSortable.insertOnTop(e);}},scroll:function(e){if(!e.nestedSortCfg.autoScroll){return false;}
var sensitivity=e.nestedSortCfg.scrollSensitivity;var speed=e.nestedSortCfg.scrollSpeed;var pointer=jQuery.iDrag.dragged.dragCfg.currentPointer;var docDim=jQuery.iUtil.getScroll();if((pointer.y-docDim.ih)-docDim.t>-sensitivity){window.scrollBy(0,speed);}
if(pointer.y-docDim.t<sensitivity){window.scrollBy(0,-speed);}},check:function(dragged){var nestingElProto=$$('.reorderCurrentNesting')[0];if(nestingElProto)nestingElProto.style.paddingLeft='12px';jQuery.iNestedSortable.newCheck(dragged);return jQuery.iNestedSortable.oldCheck(dragged);},oldCheck:jQuery.iSort.check,newCheck:function(dragged){if(jQuery.iNestedSortable.latestNestingClass&&jQuery.iNestedSortable.currentNesting)
{jQuery.iNestedSortable.currentNesting.removeClass(jQuery.iNestedSortable.latestNestingClass);jQuery.iNestedSortable.currentNesting=null;jQuery.iNestedSortable.latestNestingClass="";}
if(jQuery.iDrop.overzone.isNestedSortable){jQuery.iDrop.overzone.nestedSortCfg.remeasured=false;}},serialize:function(s){if(jQuery('#'+s).get(0).isNestedSortable){return jQuery.iNestedSortable.newSerialize(s);}else{return jQuery.iNestedSortable.oldSerialize(s);}},oldSerialize:jQuery.iSort.serialize,newSerialize:function(s){var i;var h='';var currentPath='';var o={};var e;var buildHierarchySer=function(context){var retVal=[];thisChildren=jQuery(context).children('.'+jQuery.iSort.collected[s]);thisChildren.each(function(i){var serId=jQuery.attr(this,'id');if(serId&&serId.match){serId=serId.match(e.nestedSortCfg.serializeRegExp)[0];}
if(h.length>0){h+='&';}
h+=s+currentPath+'['+i+'][id]='+serId;retVal[i]={id:serId};var newContext=jQuery(this).children(e.nestedSortCfg.nestingTag+"."+e.nestedSortCfg.nestingTagClass.split(" ").join(".")).get(0);var oldPath=currentPath;currentPath+='['+i+'][children]';var thisChildren=buildHierarchySer(newContext);if(thisChildren.length>0){retVal[i].children=thisChildren;}
currentPath=oldPath;});return retVal;};if(s){if(jQuery.iSort.collected[s]){e=jQuery('#'+s).get(0);o[s]=buildHierarchySer(e);}else{for(a in s){if(jQuery.iSort.collected[s[a]]){e=jQuery('#'+s[a]).get(0);o[s[a]]=buildHierarchySer(e);}}}}else{for(i in jQuery.iSort.collected){e=jQuery('#'+i).get(0);o[i]=buildHierarchySer(e);}}
return{hash:h,o:o};},findPrecedingItem:function(e){var largestY=0;var preceding=jQuery.grep(e.dropCfg.el,function(i){var isOnTop=(i.pos.y<jQuery.iDrag.dragged.dragCfg.ny)&&(i.pos.y>largestY);if(!isOnTop){return false;}
var isSameLevel;if(e.nestedSortCfg.rightToLeft){isSameLevel=(i.pos.x+i.pos.wb+e.nestedSortCfg.snapTolerance>jQuery.iDrag.dragged.dragCfg.nx+jQuery.iDrag.dragged.dragCfg.oC.wb);}else{isSameLevel=(i.pos.x-e.nestedSortCfg.snapTolerance<jQuery.iDrag.dragged.dragCfg.nx);}
if(!isSameLevel){return false;}
var isBeingDragged=jQuery.iNestedSortable.isBeingDragged(e,i);if(isBeingDragged){return false;}
if(isIE7)
{if($(i.id).up('.collapsed'))
return false;}
largestY=i.pos.y;return true;});if(preceding.length>0){return preceding[(preceding.length-1)];}else{return null;}},isTouchingFirstItem:function(e){var lowestY;if(e.id==e.nestedSortCfg.topLevelId&&jQuery.iDrag.dragged.dragCfg.ny<$(e.nestedSortCfg.topLevelId).cumulativeOffset().top)
{return true;}
else
return false;var firstItem=jQuery.grep(e.dropCfg.el,function(i){var isBefore=(lowestY===undefined||i.pos.y<lowestY);if(!isBefore){return false;}
var isBeingDragged=jQuery.iNestedSortable.isBeingDragged(e,i);if(isBeingDragged){return false;}
lowestY=i.pos.y;return true;});if(firstItem.length>0){firstItem=firstItem[(firstItem.length-1)];return firstItem.pos.y<jQuery.iDrag.dragged.dragCfg.ny+jQuery.iDrag.dragged.dragCfg.oC.hb&&firstItem.pos.y>jQuery.iDrag.dragged.dragCfg.ny;}else{return false;}},isBeingDragged:function(e,elem){var dragged=jQuery.iDrag.dragged;if(!dragged){return false;}
if(elem==dragged){return true;}
if(jQuery(elem).parents("."+e.sortCfg.accept.split(" ").join(".")).filter(function(){return this==dragged;}).length!==0){return true;}else{return false;}},shouldNestItem:function(e,precedingItem){if(!precedingItem){return false;}
var upCollapsedElement=$(precedingItem).up('.collapsed');if($(precedingItem).hasClassName('collapsed')||(upCollapsedElement&&!upCollapsedElement.visible()))
return false;if(e.nestedSortCfg.noNestingClass&&jQuery(precedingItem).filter("."+e.nestedSortCfg.noNestingClass).get(0)===precedingItem)
{return false;}
if(e.nestedSortCfg.rightToLeft){return precedingItem.pos.x+precedingItem.pos.wb-(e.nestedSortCfg.nestingPxSpace-e.nestedSortCfg.snapTolerance)>jQuery.iDrag.dragged.dragCfg.nx+jQuery.iDrag.dragged.dragCfg.oC.wb;}else{return precedingItem.pos.x+(e.nestedSortCfg.nestingPxSpace-e.nestedSortCfg.snapTolerance)<jQuery.iDrag.dragged.dragCfg.nx;}},nestItem:function(e,parent){if($(parent).hasClassName('collapsed'))
{return;}
var parentNesting=jQuery(parent).children(e.nestedSortCfg.nestingTag+"."+e.nestedSortCfg.nestingTagClass.split(" ").join("."));var helper=jQuery.iSort.helper;styleHelper=helper.get(0).style;styleHelper.width='auto';if(!parentNesting.size()){var newUl="<"+e.nestedSortCfg.nestingTag+" class='"+e.nestedSortCfg.nestingTagClass+"'></"+e.nestedSortCfg.nestingTag+">";parentNesting=jQuery(parent).append(newUl).children(e.nestedSortCfg.nestingTag).css(e.nestedSortCfg.styleToAttach);}
this.parentNesting=parentNesting;jQuery.iNestedSortable.updateCurrentNestingClass(e,parentNesting);jQuery.iNestedSortable.beforeHelperRemove(e);parentNesting.prepend(helper.get(0));jQuery.iNestedSortable.afterHelperInsert(e);},appendItem:function(e,itemBefore){jQuery.iNestedSortable.updateCurrentNestingClass(e,jQuery(itemBefore).parent());jQuery.iNestedSortable.beforeHelperRemove(e);jQuery(itemBefore).after(jQuery.iSort.helper.get(0));jQuery.iNestedSortable.afterHelperInsert(e);},insertOnTop:function(e){jQuery.iNestedSortable.updateCurrentNestingClass(e,e);jQuery.iNestedSortable.beforeHelperRemove(e);jQuery(e).prepend(jQuery.iSort.helper.get(0));jQuery.iNestedSortable.afterHelperInsert(e);},beforeHelperRemove:function(e){var parent=jQuery.iSort.helper.parent(e.nestedSortCfg.nestingTag+"."+e.nestedSortCfg.nestingTagClass.split(" ").join("."));var numSiblings=parent.children("."+e.sortCfg.accept.split(" ").join(".")+":visible").size();if(numSiblings===0&&parent.get(0)!==e){parent.hide();}},afterHelperInsert:function(e){var parent=jQuery.iSort.helper.parent();var styleHelper=jQuery.iSort.helper.get(0).style;var nestingElProto=$$('.'+e.nestedSortCfg.currentNestingClass)[0];if(nestingElProto)
{var newHelperMargin=px(nestingElProto.getStyle('paddingLeft'))*-1;styleHelper.marginLeft=newHelperMargin+'px';styleHelper.display='block';styleHelper.width='auto';}
else
styleHelper.marginLeft='0';if(parent.get(0)!==e){parent.show();}
e.nestedSortCfg.remeasured=false;},betterPositionCurrentNestingMargin:function(){},updateCurrentNestingClass:function(e,nestingElem){var nesting=jQuery(nestingElem);if((e.nestedSortCfg.currentNestingClass)&&(!jQuery.iNestedSortable.currentNesting||nesting.get(0)!=jQuery.iNestedSortable.currentNesting.get(0))){if(jQuery.iNestedSortable.currentNesting){var nestingElProto=$$('.'+e.nestedSortCfg.currentNestingClass)[0];if(nestingElProto)nestingElProto.style.paddingLeft=e.nestedSortCfg.nestingPxSpace+'px';jQuery.iNestedSortable.currentNesting.removeClass(e.nestedSortCfg.currentNestingClass);}
if(nesting.get(0)!=e){jQuery.iNestedSortable.currentNesting=nesting;nesting.addClass(e.nestedSortCfg.currentNestingClass);var nestingElProto=$$('.'+e.nestedSortCfg.currentNestingClass)[0];if(nestingElProto)
{var currentMarginLeft=px(nestingElProto.getStyle('marginLeft'));if(currentMarginLeft!=0)
{var newPaddingLeft=(currentMarginLeft*-1)+px(nestingElProto.getStyle('paddingLeft'));nestingElProto.style.paddingLeft=newPaddingLeft+'px';}}
jQuery.iNestedSortable.latestNestingClass=e.nestedSortCfg.currentNestingClass;}else{var nestingElProto=$$('.'+e.nestedSortCfg.currentNestingClass)[0];if(nestingElProto)nestingElProto.style.paddingLeft=e.nestedSortCfg.nestingPxSpace+'px';jQuery.iNestedSortable.currentNesting=null;jQuery.iNestedSortable.latestNestingClass="";}}},destroy:function(){return this.each(function(){if(this.isNestedSortable){this.nestedSortCfg=null;this.isNestedSortable=null;jQuery(this).SortableDestroy();}});},build:function(conf){if(conf.accept&&jQuery.iUtil&&jQuery.iDrag&&jQuery.iDrop&&jQuery.iSort)
{isIE7=(BrowserDetect.browser=='Explorer'&&BrowserDetect.version<=7)?true:false;this.each(function(){this.isNestedSortable=true;this.nestedSortCfg={topLevelId:conf.topLevelId?conf.topLevelId:false,noNestingClass:conf.noNestingClass?conf.noNestingClass:false,rightToLeft:conf.rightToLeft?true:false,nestingPxSpace:parseInt(conf.nestingPxSpace,10)||30,currentNestingClass:conf.currentNestingClass?conf.currentNestingClass:"",nestingLimit:conf.nestingLimit?conf.nestingLimit:false,autoScroll:conf.autoScroll!==undefined?conf.autoScroll==true:true,scrollSensitivity:conf.scrollSensitivity?conf.scrollSensitivity:20,scrollSpeed:conf.scrollSpeed?conf.scrollSpeed:20,serializeRegExp:conf.serializeRegExp?conf.serializeRegExp:/[^\-]*$/};this.nestedSortCfg.snapTolerance=parseInt(this.nestedSortCfg.nestingPxSpace*0.4,10);this.nestedSortCfg.nestingTag=this.tagName;this.nestedSortCfg.nestingTagClass=this.className;this.nestedSortCfg.styleToAttach=(this.nestedSortCfg.rightToLeft)?{"padding-left":0,"padding-right":this.nestedSortCfg.nestingPxSpace+'px'}:{"padding-left":this.nestedSortCfg.nestingPxSpace+'px',"padding-right":0};jQuery(this.nestedSortCfg.nestingTag,this).css(this.nestedSortCfg.styleToAttach);});jQuery.iSort.checkhover=jQuery.iNestedSortable.checkHover;jQuery.iSort.check=jQuery.iNestedSortable.check;jQuery.iSort.serialize=jQuery.iNestedSortable.serialize;}
return this.Sortable(conf);}};jQuery.fn.extend({NestedSortable:jQuery.iNestedSortable.build,NestedSortableDestroy:jQuery.iNestedSortable.destroy});jQuery.iUtil.getScroll=function(e)
{var t,l,w,h,iw,ih;if(e&&e.nodeName.toLowerCase()!='body'){t=e.scrollTop;l=e.scrollLeft;w=e.scrollWidth;h=e.scrollHeight;iw=0;ih=0;}else{if(document.documentElement&&document.documentElement.scrollTop){t=document.documentElement.scrollTop;l=document.documentElement.scrollLeft;w=document.documentElement.scrollWidth;h=document.documentElement.scrollHeight;}else if(document.body){t=document.body.scrollTop;l=document.body.scrollLeft;w=document.body.scrollWidth;h=document.body.scrollHeight;}
iw=self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;ih=self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;}
return{t:t,l:l,w:w,h:h,iw:iw,ih:ih};};var Account=Class.create();Account.prototype={initialize:function(){},confirmPlanChange:function(planName,fee,isYearlyBilling){var str=(isYearlyBilling)?'yearly':'monthly';if(confirm("Are you sure that you want to change your plan to the '"+planName+"' plan?\n The "+str+" fee on this plan is US$ "+fee+'.'))
return true;else
return false;},personalizedUrlStatusChange:function(newStatus){if(newStatus==1&&!$('personalizedUrlValueContainer').visible())
Effect.BlindDown('personalizedUrlValueContainer',{duration:0.3});else if($('personalizedUrlValueContainer').visible())
Effect.BlindUp('personalizedUrlValueContainer',{duration:0.3});},showPane:function(el){$$('.accountPane').each(function(openedPane){if(openedPane.visible())
{openedPane.previous('h2').removeClassName('opened');Effect.BlindUp(openedPane,{duration:0.3,queue:'end'});}});if(!$(el).up('h2').next('.accountPane').visible())
{$(el).up('h2').addClassName('opened');Effect.BlindDown($(el).up('h2').next('.accountPane'),{duration:0.3});}}};var account=new Account();isEditing=false;isSlided=false;function DestroyAjaxInnerContainer()
{if($('innerContainer'))
$('innerContainer').remove();}
function UnsetCurrentTabSelection()
{if($('current'))
$('current').id='';}
function CloseTopSlider()
{UnsetCurrentTabSelection();Effect.SlideUp('mainAjaxSlider',{duration:0.4,afterFinish:function(){DestroyAjaxInnerContainer();}});}
function CloseBottomSlider()
{Effect.SlideUp($('bottomAjaxSlider'),{duration:0.3,afterFinish:function(){$('bottomAjaxContainer').update('');}});$$('.bottomCurrent').each(function(currentEls){currentEls.removeClassName('bottomCurrent');});}
function CloseButton()
{return' <a class="cancelLink" href="javascript:;" onclick="CloseTopSlider();">Cancel</a>';}
function CloseBottomButton()
{return' <a class="cancelLink" href="javascript:;" onclick="CloseBottomSlider();">Cancel</a>';}
function dontDisplayAgain(messageId)
{new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=dontShowAgain&messageId='+messageId});Effect.BlindUp('entranceMessage',{duration:0.3});}
function showIE6Warning()
{if(BrowserDetect.browser=='Explorer'&&BrowserDetect.version==6)
$('outerWrapper').insert({'top':"<div class=\"flaggedUserWarning\"><p>It seems that you're using Internet Explorer 6; Jumpchart doesn't support this browser and <strong>functions may not work as they should</strong>. Please consider upgrading to <a target=\"_blank\" href=\"http://google.com/chrome/\">Chrome</a>, <a target=\"_blank\" href=\"http://apple.com/safari/\">Safari</a>, <a target=\"_blank\" href=\"http://getfirefox.com\">Firefox</a> or <a target=\"_blank\" href=\"http://www.microsoft.com/windows/products/winfamily/ie/default.mspx\">Explorer 8</a>.</p></div>"});}
function exportToWordpress()
{if($F('wpExportURL').empty())
Shake('wpExportURL');else
$('wpExportForm').submit();}
function initBody()
{if(BrowserDetect.browser=='Safari')
$$('body')[0].style.backgroundColor='#9A9A9A';}
var Jumpchart=Class.create();Jumpchart.prototype={initialize:function(){},add:function(){if($('mainAjaxSlider').style.display=='none')
new Effect.SlideDown('mainAjaxSlider',{duration:0.3,afterFinish:function(){focusFirst('newProjectForm');}});else
new Effect.SlideUp('mainAjaxSlider',{duration:0.3});},addVerify:function()
{if(Form.check('newProjectForm'))
new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=verifyNewProject&'+Form.serialize('newProjectForm'),onComplete:this._addVerify_callback});},_addVerify_callback:function(request)
{if(request.responseText=='limit-reached')
alert("You can't create more Jumpcharts because you've reached the limit for this plan. Feel free to upgrade your account at the Account link at the top of this page.");else if(request.responseText=='duplicate')
alert("You already have a Jumpchart with this name. Please, choose another.");else if(request.responseText=='big')
alert("The name of your Jumpchart is too big.");else if(request.responseText=='true')
$('newProjectForm').submit();},viewArchive:function(el){if($('myArchivedJumpcharts')&&$('myArchivedJumpcharts').style.display!='none')
Effect.SlideUp('myArchivedJumpcharts',{duration:0.4,afterFinish:this._cleanUpOwnerContainer.bindAsEventListener(this)});else
{if($$('.systemNotice').size()>0)
{if($('contentSpacer'))
{$('contentSpacer').style.margin='10px 0 0 0';$('contentSpacer').style.padding='5px';}
$$('.systemNotice').each(function(el){el.hide();});}
showLoading('loadingArchive');el.innerHTML='Hide archive';var myAjax=new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=viewArchivedJumpcharts',onComplete:this._viewOwnerArchive_callback.bindAsEventListener(this)});}
if($('invitedArchivedJumpcharts')&&$('invitedArchivedJumpcharts').style.display!='none')
Effect.SlideUp('invitedArchivedJumpcharts',{duration:0.4,afterFinish:this._cleanUpInvitedContainer.bindAsEventListener(this)});else
{var invitedAjax=new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=viewInvitedArchivedJumpcharts',onComplete:this._viewInvitedArchive_callback.bindAsEventListener(this)});}
if(($('myArchivedJumpcharts')&&$('myArchivedJumpcharts').style.display!='none')||($('invitedArchivedJumpcharts')&&$('invitedArchivedJumpcharts').style.display!='none'))
el.innerHTML='Show archive';},_viewOwnerArchive_callback:function(request){hideLoading('loadingArchive');if(request.responseText!='false')
{var content=Builder.build(request.responseText);var container=newEl('div');container.id='myArchivedJumpcharts';container.style.display='none';container.appendChild(content);if(!$('myJumpcharts'))
{var myJumpchartsContainer=$('myJumpchartsContainer');myJumpchartsContainer.appendChild(Builder.build("<h2>Current</h2>"));myJumpchartsContainer.appendChild(Builder.build('<div id="myJumpcharts"></div>'));$('myJumpcharts').appendChild(container);myJumpchartsContainer.style.display='none';container.style.display='block';Effect.SlideDown(myJumpchartsContainer,{duration:0.4});}
else
{$('myJumpcharts').appendChild(container);Effect.SlideDown(container,{duration:0.4});}}},_viewInvitedArchive_callback:function(request){if(request.responseText!='false')
{var content=Builder.build(request.responseText);var container=newEl('div');container.id='invitedArchivedJumpcharts';container.style.display='none';container.appendChild(content);if(!$('invitedJumpcharts'))
{var invitedJumpchartsContainer=$('invitedJumpchartsContainer');invitedJumpchartsContainer.appendChild(Builder.build("<h2>Invitations</h2>"));invitedJumpchartsContainer.appendChild(Builder.build('<div id="invitedJumpcharts"></div>'));$('invitedJumpcharts').appendChild(container);invitedJumpchartsContainer.style.display='none';container.style.display='block';Effect.SlideDown(invitedJumpchartsContainer,{duration:0.4});}
else
{$('invitedJumpcharts').appendChild(container);Effect.SlideDown(container,{duration:0.4});}}},_cleanUpOwnerContainer:function(){Element.remove('myArchivedJumpcharts');if($('myJumpcharts').childNodes.length==0)
Effect.SlideUp('myJumpchartsContainer',{duration:0.4,afterFinish:function()
{Element.remove('myJumpcharts');$('myJumpchartsContainer').removeChild($('myJumpchartsContainer').childNodes[0]);}});},_cleanUpInvitedContainer:function(){Element.remove('invitedArchivedJumpcharts');if($('invitedJumpcharts').childNodes.length==0)
Effect.SlideUp('invitedJumpchartsContainer',{duration:0.4,afterFinish:function()
{Element.remove('invitedJumpcharts');$('invitedJumpchartsContainer').removeChild($('invitedJumpchartsContainer').childNodes[0]);}});},edit:function(jumpchartId){var container=$('jumpchartEditContainer-'+jumpchartId);showLoading('jumpchartName-'+jumpchartId);if(container.style.display!='none'&&!Element.empty(container))
{hideLoading('jumpchartName-'+jumpchartId);Effect.SlideUp(container,{duration:0.4,afterFinish:function(request){Element.remove(container.childNodes[0]);}});}
else
{var pars='ajaxAction=editJumpchart&id='+jumpchartId;new Ajax.Request(ajaxUrl,{parameters:pars,onComplete:this._edit_callback.bindAsEventListener(this,jumpchartId)});}},_edit_callback:function(request,jumpchartId){var container=$('jumpchartEditContainer-'+jumpchartId);hideLoading('jumpchartName-'+jumpchartId);if(Element.empty(container))
{var content=Builder.build(request.responseText);container.appendChild(content);}
Effect.SlideDown(container,{duration:0.4,afterFinish:function(request){Scroll(container);}});},editSave:function(jumpchartId){var name=$('name-'+jumpchartId);var description=$('description-'+jumpchartId);if(!Field.present(name))
{Shake(name);return false;}
showLoading('jumpchartName-'+jumpchartId);var myAjax=new Ajax.Request(ajaxUrl+'?ajaxAction=saveEditJumpchart',{parameters:Form.serialize('jumpchartEditForm-'+jumpchartId),onComplete:this._editSave_callback.bindAsEventListener(this,jumpchartId)});},_editSave_callback:function(request,jumpchartId){hideLoading('jumpchartName-'+jumpchartId);if(request.responseText=='false')
alert("There was an error processing your request");else
{var nameContainer=$('jumpchartName-'+jumpchartId);var formContainer=$('jumpchartEditContainer-'+jumpchartId);nameContainer.childNodes[0].innerHTML=request.responseText;Effect.SlideUp(formContainer,{duration:0.4,afterFinish:function(request){Element.remove(formContainer.childNodes[0]);}});}},remove:function(jumpchartId){if(!confirm('Are your sure you want to delete this jumpchart?'))
return;else
{if($('jumpchartName-'+jumpchartId))
showLoading('jumpchartName-'+jumpchartId);var myAjax=new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=deleteJumpchart&id='+jumpchartId,onComplete:this._remove_callback.bindAsEventListener(this,jumpchartId)});}},_remove_callback:function(request,jumpchartId){if($('jumpchartName-'+jumpchartId))
hideLoading('jumpchartName-'+jumpchartId);if(request.responseText=='false')
alert("There was an error processing your request");else if(request.responseText=='no-access')
alert("You don't have permission to remove this Jumpchart.");else
new Effect.BlindUp($('jumpchartName-'+jumpchartId).up('.jumpchart'),{duration:0.2});},removeInvitation:function(jumpchartId){if(!confirm('Are your sure you want to delete this jumpchart invitation?'))
return;else
{if($('jumpchartName-'+jumpchartId))
showLoading('jumpchartName-'+jumpchartId);new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=deleteJumpchartInvitation&id='+jumpchartId,onComplete:this._removeInvitation_callback.bindAsEventListener(this,jumpchartId)});}},_removeInvitation_callback:function(request,jumpchartId){if($('jumpchartName-'+jumpchartId))
hideLoading('jumpchartName-'+jumpchartId);if(request.responseText=='false')
alert("There was an error processing your request");else if(request.responseText=='no-access')
alert("You don't have permission to remove this jumpchart invitation.");else if(request.responseText=='true')
new Effect.BlindUp($('jumpchartName-'+jumpchartId).up('.jumpchart'),{duration:0.2});},archive:function(e,jumpchartId,unarchive){if(unarchive==null)unarchive=0;showLoading('jumpchartName-'+jumpchartId);var myAjax=new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=archiveJumpchart&id='+jumpchartId+'&unarchive='+unarchive,onComplete:this._archive_callback.bindAsEventListener(this,jumpchartId,unarchive)});},_archive_callback:function(request,jumpchartId,unarchive){hideLoading('jumpchartName-'+jumpchartId);if(request.responseText=='false')
alert("There was an error processing your request");else if(request.responseText=='maxpages')
alert("We couldn't un-archive this project because it has more pages than the limit set by the current account plan. Please consider an upgrade to a bigger plan in order to continue.");else if(request.responseText=='maxprojects')
alert("We couldn't un-archive this project because your account has reached the limit of projects set by the current account plan. Please consider an upgrade to a bigger plan in order to continue.");else
{if($('myArchivedJumpcharts'))
new Effect.BlindUp($('jumpchartName-'+jumpchartId).up('.jumpchart'),{duration:0.4,afterFinish:this._showLonelyArchivedJumpchart.bindAsEventListener(this,jumpchartId,unarchive,$('jumpchartName-'+jumpchartId).up('.jumpchart'))});else
new Effect.BlindUp($('jumpchartName-'+jumpchartId).up('.jumpchart'),{duration:0.4,afterFinish:function(){$('jumpchartName-'+jumpchartId).up('.jumpchart').remove();}});if(!$('archivesLink'))
{$('rightPageActionsNav').appendChild(Builder.build('<div id="archivesLink"><ul><li><a href="javascript:void(0)" onclick="jumpchart.viewArchive(this);">Show archive</a></li></ul></div>'));}}},_showLonelyArchivedJumpchart:function(t,jumpchartId,unarchive,el){var container=$('jumpchartName-'+jumpchartId).parentNode;container.hide();if(unarchive==0)
{$('archiveLink-'+jumpchartId).update('Un-Archive');$('archiveLink-'+jumpchartId).onclick=this.archive.bindAsEventListener(this,jumpchartId,1);$('myArchivedJumpcharts').insert({'top':el});}
else
{$('archiveLink-'+jumpchartId).update('Archive');$('archiveLink-'+jumpchartId).onclick=this.archive.bindAsEventListener(this,jumpchartId,0);$('myArchivedJumpcharts').insert({'before':el});}
$(el).down('.spacer').show();new Effect.SlideDown(el,{duration:0.3,afterFinish:function(request){new Effect.Appear(el);}});},makeCopyShow:function(el){new Effect.SlideUp($(el).up('p'),{duration:0.1});new Effect.SlideDown('jumpchartCopyContainer',{duration:0.1});},expandNav:function(el,pageId,projectId){if(typeof(pageId)=='undefined'||typeof(projectId)=='undefined')
{var e=$(el).up('.pageNameAndReorderHandle').next('.pageList');var projectId=$F('pageProjectId');var pageId=e.id.split('subSections')[1];}
if(typeof(el.element)!='undefined')
el=el.element();var subSection=$('subSections'+pageId);if(!subSection)
{subSection=$(el).up('.pageNameAndReorderHandle ').next('.pageList');if(subSection&&!subSection.hasClassName('hasSubPages'))
subSection.addClassName('hasSubPages');}
if(!subSection)
return false;else
{if(subSection.visible())
{subSection.hide();$(el).removeClassName('opened');subSection.addClassName('collapsed');subSection.up('.reorderableSection').addClassName('collapsed');}
else
{subSection.show();$(el).addClassName('opened');subSection.removeClassName('collapsed');subSection.up('.reorderableSection').removeClassName('collapsed');}}
this.expandNavSaveCurrentState(projectId);},expandNavSaveCurrentState:function(projectId){var allExpandablePages=[];$$('.hasSubPages[class~=collapsed]').each(function(e,key){var eId=e.id.split('subSections')[1];if(typeof(eId)=='undefined')
{var eIdTmp=e.up('.reorderableSection');if(eIdTmp)
eId=eIdTmp.id.split('-')[1];}
allExpandablePages[key]=eId;});new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=saveExpandState&projectId='+projectId+'&collapsedElements='+allExpandablePages.toJSON(),onComplete:this.expandNav_callback.bindAsEventListener(this)});},expandNav_callback:function(request){}};var jumpchart=new Jumpchart();var Profile=Class.create();Profile.prototype={initialize:function(){},passwordReset:function(e){if(e)
Event.stop(e);if(!$('email').present())
new Effect.Shake('email');else
{showLoading('status',true);new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=passwordReset&'+$('passwordForm').serialize(),onComplete:this._passwordReset_callback.bindAsEventListener(this)});}},_passwordReset_callback:function(request){if(request.responseText=='true')
$('status').update('Your password was reset successfully. An email was sent to the address you provided with the new one.');else if(request.responseText=='no-email')
$('status').update("The email you provided isn't registered in our database.");else if(request.responseText=='false')
$('status').update('There was an undefined error while we tried to process your request. Sorry for the inconvenience. If the problem persists, please contact our support team.');}};var profile=new Profile();shortcut={'all_shortcuts':{},'add':function(shortcut_combination,callback,opt){var default_options={'type':'keydown','propagate':false,'disable_in_input':false,'target':document,'keycode':false}
if(!opt)opt=default_options;else{for(var dfo in default_options){if(typeof opt[dfo]=='undefined')opt[dfo]=default_options[dfo];}}
var ele=opt.target
if(typeof opt.target=='string')ele=document.getElementById(opt.target);var ths=this;shortcut_combination=shortcut_combination.toLowerCase();var func=function(e){e=e||window.event;if(opt['disable_in_input']){var element;if(e.target)element=e.target;else if(e.srcElement)element=e.srcElement;if(element.nodeType==3)element=element.parentNode;if(element.tagName=='INPUT'||element.tagName=='TEXTAREA')return;}
if(e.keyCode)code=e.keyCode;else if(e.which)code=e.which;var character=String.fromCharCode(code).toLowerCase();if(code==188)character=",";if(code==190)character=".";var keys=shortcut_combination.split("+");var kp=0;var shift_nums={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"}
var special_keys={'esc':27,'escape':27,'tab':9,'space':32,'return':13,'enter':13,'backspace':8,'scrolllock':145,'scroll_lock':145,'scroll':145,'capslock':20,'caps_lock':20,'caps':20,'numlock':144,'num_lock':144,'num':144,'pause':19,'break':19,'insert':45,'home':36,'delete':46,'end':35,'pageup':33,'page_up':33,'pu':33,'pagedown':34,'page_down':34,'pd':34,'left':37,'up':38,'right':39,'down':40,'f1':112,'f2':113,'f3':114,'f4':115,'f5':116,'f6':117,'f7':118,'f8':119,'f9':120,'f10':121,'f11':122,'f12':123}
var modifiers={shift:{wanted:false,pressed:false},ctrl:{wanted:false,pressed:false},alt:{wanted:false,pressed:false},meta:{wanted:false,pressed:false}};if(e.ctrlKey)modifiers.ctrl.pressed=true;if(e.shiftKey)modifiers.shift.pressed=true;if(e.altKey)modifiers.alt.pressed=true;if(e.metaKey)modifiers.meta.pressed=true;for(var i=0;k=keys[i],i<keys.length;i++){if(k=='ctrl'||k=='control'){kp++;modifiers.ctrl.wanted=true;}else if(k=='shift'){kp++;modifiers.shift.wanted=true;}else if(k=='alt'){kp++;modifiers.alt.wanted=true;}else if(k=='meta'){kp++;modifiers.meta.wanted=true;}else if(k.length>1){if(special_keys[k]==code)kp++;}else if(opt['keycode']){if(opt['keycode']==code)kp++;}else{if(character==k)kp++;else{if(shift_nums[character]&&e.shiftKey){character=shift_nums[character];if(character==k)kp++;}}}}
if(kp==keys.length&&modifiers.ctrl.pressed==modifiers.ctrl.wanted&&modifiers.shift.pressed==modifiers.shift.wanted&&modifiers.alt.pressed==modifiers.alt.wanted&&modifiers.meta.pressed==modifiers.meta.wanted){callback(e);if(!opt['propagate']){e.cancelBubble=true;e.returnValue=false;if(e.stopPropagation){e.stopPropagation();e.preventDefault();}
return false;}}}
this.all_shortcuts[shortcut_combination]={'callback':func,'target':ele,'event':opt['type']};if(ele.addEventListener)ele.addEventListener(opt['type'],func,false);else if(ele.attachEvent)ele.attachEvent('on'+opt['type'],func);else ele['on'+opt['type']]=func;},'remove':function(shortcut_combination){shortcut_combination=shortcut_combination.toLowerCase();var binding=this.all_shortcuts[shortcut_combination];delete(this.all_shortcuts[shortcut_combination])
if(!binding)return;var type=binding['event'];var ele=binding['target'];var callback=binding['callback'];if(ele.detachEvent)ele.detachEvent('on'+type,callback);else if(ele.removeEventListener)ele.removeEventListener(type,callback,false);else ele['on'+type]=false;}}
var Page=Class.create();Page.prototype={initialize:function(container){this.container=container;this.isEditing={};this.isShowingEditLink=false;this.isShowingEditLoadingSpinner=false;this.hoverCount=0;},_destroyContainer:function(){$(this.container).down('div').down().remove();},add:function(el,projectId,parentPageId,currentPageBeingViewed){if(reorder.isReorderingNow)
{alert("Sorry but you can't add new pages while you're reordering your Jumpchart. Please save or cancel your alts through the green buttons at the bottom of your sidebar.");return;}
this.projectId=projectId;if(el.hasClassName('current'))
{el.removeClassName('current');Effect.SlideUp(this.container,{duration:0.4,afterFinish:this._destroyContainer.bind(this)});return;}
$$('.current').each(function(currentEls){currentEls.removeClassName('current');});el.addClassName('current');var content='<div id="innerContainer"><span class="ajaxContainerTitle">';if(el.innerHTML.indexOf('Sub')!=-1||el.innerHTML.indexOf('sub')!=-1)
content+='Add Sub-Page';else
content+='Add Page';content+='</span> ';content+='<form id="addPageForm" onsubmit="return false;">';content+='<input class="text" type="text" name="title" value="Title" id="newpageTitle" />';content+=' <span class="topAjaxContainerButtonsAligner"><input type="submit" class="button" value="Add" />';content+=' <a class="cancelLink" href="javascript:;" id="closeContainer">Cancel</a></span>';content+='<input type="hidden" name="project_id" value="'+projectId+'" />';content+='<input type="hidden" name="current_page_id" value="'+currentPageBeingViewed+'" />';content+='<input type="hidden" name="parent_id" value="'+parentPageId+'" /></form>';if(el.innerHTML.indexOf('Sub')!=-1||el.innerHTML.indexOf('sub')!=-1)
content+="<div class=\"sliderTip\"><span class=\"question\">What's a sub-page?</span> <span class=\"answer\">A sub-page is created hierarchically beneath the one you are currently viewing.</span></div>";content+='</div>';this.newContainer=Builder.build(content);if(!$('innerContainer'))
{$(this.container).down('div').appendChild(this.newContainer);$('closeContainer').observe('click',this.closeContainer.bindAsEventListener(this,el));$('addPageForm').observe('submit',this.addSave.bindAsEventListener(this));new Effect.SlideDown(this.container,{duration:0.4,afterFinish:this._add_callback.bindAsEventListener(this)});}
else
new Effect.SlideUp(this.container,{duration:0.4,afterFinish:this._topContainerReconstruct.bind(this,el)});},_add_callback:function(){focusFirst('addPageForm');},addSave:function(){showLoading('addPage');new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=addPageSave&'+Form.serialize('addPageForm'),onComplete:this._addSave_callback.bindAsEventListener(this)});return false;},_addSave_callback:function(request){hideLoading('addPage');if(request.responseText=='no-access')
alert("You don't have permission to add a page to this project.");else if(request.responseText=='false')
alert('There was an error processing your request.');else if(request.responseText=='duplicate')
{alert("Unfortunately your Jumpchart can't have two pages with the same name and the same parent.");Form.Element.focus('newpageTitle');}
else if(request.responseText=='pages-limit')
{alert("We couldn't create the page because this jumpchart has reached its limit of pages per project, as set by the current account plan.\n\nIf you're the owner of this jumpchart, consider upgrading to a bigger plan.");}
else
{var response=request.responseText.evalJSON();if(!this.isEditing.main&&!this.isEditing.second)
location.href=sysUrl+'page/view/'+response.id;else
{var newItem='<div class="reorderableSection" id="sidebarSections-'+response.id+'"><div class="pageNameAndReorderHandle">';newItem+='<img src="'+sysUrl+'template/images/move.png" class="reorderHandle" alt="Drag to Reorder" /> ';newItem+='<a href="'+sysUrl+'page/view/'+response.id+'/'+'">'+response.title+'</a></div><div class="break"></div></div>';if(response.parent_id==0)
$('reorderablePages').insert({'bottom':newItem});else
{if($('subSections'+response.parent_id))
$('subSections'+response.parent_id).insert({'bottom':newItem});else
{var newItem='<span class="pageList" id="subSections'+response.parent_id+'">'+newItem+'</span>';$('sidebarSections-'+response.parent_id).insert({'bottom':newItem});}}
new Effect.SlideUp(this.container,{duration:0.4,afterFinish:this._destroyContainer.bindAsEventListener(this)});$('addSubPageLink').removeClassName('current');$('addPageLink').removeClassName('current');}}},rename:function(pageId){if(reorder.isReorderingNow)
{alert("Sorry but you can't rename the page while you're reordering your Jumpchart. Please save or cancel your alts through the green buttons at the bottom of your sidebar.");return;}
showLoading('pageName');new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=renamePage&pageId='+pageId,onComplete:this._rename_callback.bindAsEventListener(this)});},_rename_callback:function(request){hideLoading('pageName');if(request.responseText=='false')
alert("There was an error editing this page.");else if(request.responseText=='no-access')
alert("You don't have permission to edit this page");else
{$('pageName').update(request.responseText);focusFirst('formRenamePage');}},renameSave:function(pageId){if(Form.check('formRenamePage'))
{showLoading('pageName');new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=renamePageSave&'+$('formRenamePage').serialize(),onComplete:this._renameSave_callback.bindAsEventListener(this,pageId)});}},_renameSave_callback:function(request,pageId){hideLoading('pageName');if(request.responseText=='false')
alert("There was an error editing this page.");else if(request.responseText=='no-access')
alert("You don't have permission to edit this page");else
{$('pageName').update('');var renameLink=Builder.build('<span>'+request.responseText+' <a href="javascript:void(0)" onclick="page.rename('+pageId+')" id="pageRenameLink">Rename</a></span>');$('pageName').insert({'bottom':renameLink});$('sidebarSections-'+pageId).down('a').update(request.responseText);if(!this.isEditing.main&&!this.isEditing.second)
{this.rebuildPageContent();}}},renameCancel:function(pageId){showLoading('pageName');new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=renamePageCancel&pageId='+pageId,onComplete:this._renameCancel_callback.bindAsEventListener(this)});},_renameCancel_callback:function(request){hideLoading('pageName');if(request.responseText=='false')
alert("There was an error editing this page.");else if(request.responseText=='no-access')
alert("You don't have permission to edit this page");else
{$('pageName').update(request.responseText);}},edit:function(pageId,fragment){if(typeof(fragment)=='undefined')fragment='main';if(typeof(this.isEditing[fragment])!='undefined'&&this.isEditing[fragment])
return true;this.isEditing[fragment]=true;new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=editPage&pageId='+pageId+'&fragment='+fragment,onComplete:this._edit_callback.bindAsEventListener(this,pageId,fragment)});pageChangeConfirmationOn();},_editLinkReconstruct:function(fragment){$('editLink-'+fragment).down().show();},_edit_callback:function(request,pageId,fragment)
{var response=request.responseText.evalJSON();var pageContent=response.editPage;var syntaxHelperContent=response.syntaxHelp;var container='pageContent-'+fragment;if(pageContent=='false')
alert("There was an error editing this page.");else if(pageContent=='no-access')
alert("You don't have permission to edit this page");else
{var formName='formEditPage-content-'+fragment;var form='<form method="post" id="'+formName+'" onsubmit="return false;"></form>';form=Builder.build(form);$(container).innerHTML='';$(container).appendChild(form);form.observe('submit',this.editSave.bindAsEventListener(this,pageId,fragment));form.appendChild(Builder.build(pageContent));this._editButtons(pageId,fragment);this._resizePageTextarea(fragment);$(formName).down('textarea').focus();}},showSyntaxHelp:function(pageId){if(typeof(pageId)=='string')
this._showSyntaxHelp_callback(pageId);else
new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=showSyntaxHelp&pageId='+pageId,onComplete:this._showSyntaxHelp_callback.bindAsEventListener(this)});},_showSyntaxHelp_callback:function(request){$('main').insert({'bottom':'<div id="syntaxHelpOverlay" style="display:none">'+request+'</div>'});var pageWidth=$('wrapper').getWidth();var overlayWidth=(pageWidth-940)/2+$('rightPageActionsNav').getWidth();window.setTimeout(function(){$('syntaxHelpOverlay').style.height=($('main').getHeight()-75)+'px';},100);$('syntaxHelpOverlay').style.width=overlayWidth+'px';if(Prototype.Browser.IE)
$('syntaxHelpOverlay').show();else
new Effect.Appear('syntaxHelpOverlay',{duration:0.3,from:0,to:0.9});return;},_editButtons:function(pageId,fragment){var div='<div class="editPageButtons" id="editPageButtons-content"><input type="submit" value="Save" /> <a class="cancelLink" href="javascript:void(0);" onclick="page.editCancel(page, '+pageId+',\''+fragment+'\')">Cancel</a></div>';$('formEditPage-content-'+fragment).insert({'bottom':div});},editCancel:function(e,pageId,fragment){if(this.isEditing[fragment])
{this.isEditing[fragment]=false;this._editLinkReconstruct(fragment);var container='pageContent-'+fragment;showLoading(container);if($('syntaxHelperBar'))Effect.BlindUp('syntaxHelperBar',{duration:0.3});new Ajax.Updater(container,ajaxUrl,{parameters:'ajaxAction=editPageCancel&pageId='+pageId+'&fragment='+fragment});if(!this.isEditing.main&&!this.isEditing.second)
pageChangeConfirmationOff();}},editSave:function(e,pageId,fragment){if(this.isEditing[fragment])
{showLoading('pageContent-'+fragment);this._editLinkReconstruct(fragment);new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=editPageSave&pageId='+pageId+'&fragment='+fragment+'&'+Form.serialize('formEditPage-content-'+fragment),onComplete:this._editSave_callback.bindAsEventListener(this,pageId,fragment)});}},_editSave_callback:function(request,pageId,fragment){if(request.responseText=='false')
alert('There was an error processing your request.');else if(request.responseText=='duplicate')
{alert("Unfortunately your Jumpchart can't have two pages with the same name and the same parent.");Form.Element.focus('formPageTitle');return false;}
else
{this.isEditing[fragment]=false;if(request.responseText.strip()=='')request.responseText='<p>Content here</p>';$('pageContent-'+fragment).innerHTML=request.responseText;if($('syntaxHelperBar'))Effect.BlindUp('syntaxHelperBar',{duration:0.3});if(!this.isEditing.main&&!this.isEditing.second)
pageChangeConfirmationOff();}},remove:function(pageId){if(reorder.isReorderingNow)
{alert("Sorry but you can't delete this page while you're reordering your Jumpchart. Please save or cancel your alts through the green buttons at the bottom of your sidebar.");return;}
if(pageId==null)
alert('Error.');else
{if(confirm("Are you sure you want to remove this page?\n(all sub-pages will be removed too)"))
{var theForm=Builder.build('<form action="'+sysUrl+'page/remove/" method="post" id="removePageTempForm"></form>');$('main').appendChild(theForm);var input=Builder.build('<input type="hidden" name="pageId" value="'+pageId+'" />');theForm.appendChild(input);window.setTimeout(function(){$('removePageTempForm').submit();},1);}}},syntaxHelperInsert:function(type,el)
{var textarea=$('formPageContent');syntaxHelperBar.insert(textarea,type);},_resizePageTextarea:function(fragment){var height=Element.getHeight('formPageContentTemp')+50;if(height<400)
height=400;$('formPageContentTemp').remove();$('formPageContent-'+fragment).style.height=height+'px';},_topContainerReconstruct:function(el){this._destroyContainer();$(this.container).down('div').appendChild(this.newContainer);$('closeContainer').observe('click',this.closeContainer.bindAsEventListener(this,el));$('addPageForm').observe('submit',this.addSave.bindAsEventListener(this));new Effect.SlideDown(this.container,{duration:0.4});},closeContainer:function(event,el){if(el.hasClassName('current'))
el.removeClassName('current');new Effect.SlideUp(this.container,{duration:0.4,afterFinish:this._destroyContainer.bindAsEventListener(this)});},makePublicPreview:function(el,projectId){if(el.checked==true)
var confirmation=confirm("By making this a public preview, it will be accessible online without a login. Are you sure you want to continue?");else
var confirmation=true;if(confirmation)
{this.projectId=projectId;var checked=(el.checked)?1:0;new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=makePublicPreview&projectId='+projectId+'&checked='+checked,onComplete:this.makePublicPreview_callback});}
else
el.checked=false;},makePublicPreview_callback:function(request){if(request.responseText=='no-access')
alert("You don't have permission to access this function.");else if(request.responseText=='false')
alert("There was an error processing your request.");else if(request.responseText=='true')
{if($('shareableAt'))
new Effect.Fade('shareableAt',{afterFinish:function(){$('shareableAt').remove();}});}
else
$('previewToolbar').down().insert({'bottom':'<span id="shareableAt"> &ndash; Shareable at: <a href="'+request.responseText+'">'+request.responseText+'</a></span>'});},registerEvents:function(){var self=this;$$('.pageContent').each(function(container){Event.observe(container,'mousemove',self.showEditLink.bindAsEventListener(self,container),true);Event.observe(container,'mouseout',self.hideEditLink.bindAsEventListener(self,container),true);});$$('.editLink').each(function(linkElement){Event.observe(linkElement,'mousemove',self.showEditLink.bindAsEventListener(self,linkElement),true);Event.observe(linkElement,'mouseout',self.hideEditLink.bindAsEventListener(self,linkElement),true);});this.lastElement='';this.isShowingEditLink=false;},findFragmentOfString:function(e,el){var fragment=el.id.split('-')[1];return fragment;},showEditLink:function(e,element){var fragment=this.findFragmentOfString(e,element);var editLinkElement=$('editLink-'+fragment);if(!editLinkElement)
return;this.hoverCount++;if(this.isShowingEditLoadingSpinner)
return;else if(this.isEditing[fragment])
{this.hideEditLink(e,element);return;}
else
{if((Event.pointerY(e)<130)||(Event.pointerY(e)>($('middleContent').getHeight()+150)))
this.hideEditLink(e,element);else
{if(this.lastElement==''||this.lastElement!=Event.element(e))
this.lastElement=Event.element(e);this.isShowingEditLink=true;if($$('.flaggedUserWarning').size()==0)
var top=(Event.pointerY(e)-90)+'px';else
var top=(Event.pointerY(e)-90-$$('.flaggedUserWarning')[0].getHeight())+'px';$(editLinkElement).style.top=top;if(!$(editLinkElement).visible())
$(editLinkElement).show();}}},hideEditLink:function(e,element){var fragment=this.findFragmentOfString(e,element);var editLinkElement=$('editLink-'+fragment);if(!editLinkElement)
return;this.isShowingEditLink=false;window.setTimeout(this._hideEditLink_callback.bindAsEventListener(this,editLinkElement),500);},_hideEditLink_callback:function(t,editLinkElement){if(this.isShowingEditLink)
return;else
{if(this.isShowingEditLoadingSpinner)
return;else
$(editLinkElement).hide();}},exportShow:function(el,projectId,pageId,hasWPExport)
{isSlided=true;el=$(el);if(el.hasClassName('current'))
{el.removeClassName('current');Effect.SlideUp('mainAjaxSlider',{duration:0.4,afterFinish:this._destroyContainer.bind(this)});return;}
$$('.current').each(function(currentEls){currentEls.removeClassName('current');});el.addClassName('current');var container=$('mainAjaxContainer');var content='<div id="innerContainer">';content+='  <div class="ajaxContainerTitle" style="margin-bottom: 20px;">Export</div>';content+=' <div class="exportPane" id="exportPaneXHTML">';content+='  <div class="exportPaneTitle">XHTML / CSS</div>';content+='  <div class="exportPaneDescription">Export your jumpchart to clean XHTML and CSS</div>';content+='  <div class="exportPaneButtons">';content+='   <a href="'+sysUrl+'page/export/'+pageId+'">Export page</a>';content+='   <a href="'+sysUrl+'site/export/'+projectId+'">Export whole site</a>';content+='  </div>';content+='  <div class="break"></div>';content+=' </div>';if(location.href.indexOf('core.jumpchart.com')!=-1)
var wpLogo=sysUrl+'template/images/2/wordpress-logo.png';else
var wpLogo=sysUrl+'core/template/images/2/wordpress-logo.png';if(hasWPExport)
content+=' <div class="exportPane" id="exportPaneWP">';else
content+=' <div class="exportPane noWPSupport" id="exportPaneWP">';content+='  <div class="exportPaneTitle"><img src="'+wpLogo+'" alt="" /></div>';if(hasWPExport)
content+='  <div class="exportPaneDescription">The WordPress export format imports into most popular CMS\'s. <br /><a href="'+sysUrl+'help/article/28" target="_blank">See our guide</a>.</div>';else
content+='  <div class="exportPaneDescription">The WordPress export format imports into most popular CMS\'s.<br /> Currently the account that owns this project doesn\'t support the WordPress exports.<br /><a href="http://www.jumpchart.com/tour/wordpress/" target="_blank">Learn more</a> and consider an upgrade or talk to the account owner.</div>';content+='  <div class="exportPaneButtons">';if(hasWPExport)
{content+='   <form action="'+sysUrl+'wp-exporter-do" method="post" id="wpExportForm" onsubmit="exportToWordpress();return false;">';content+='    <p>URL for WordPress Install<br /> <input type="text" class="text" name="url" id="wpExportURL" value="" /></p>';content+='    <p>';content+='     <input type="hidden" name="project_id" value="'+projectId+'" />';content+='     <a href="javascript:void(0);" onclick="exportToWordpress()">Export to WordPress</a>';content+='     <input type="submit" value="Export &gt;" style="display: none;" />';content+='    </p>';content+='   </form>';}
content+='  </div>';content+='  <div class="break"></div>';content+=' </div>';content+=' </div>';if($('innerContainer'))
{Effect.SlideUp('mainAjaxSlider',{duration:0.4,afterFinish:function()
{DestroyAjaxInnerContainer();container.update(content);Down('mainAjaxSlider');}});}
else
{container.update(content);Down('mainAjaxSlider');}},exportShowPane:function(el,newPane){$(el).up('.exportPane').hide();$('exportPane-'+newPane).show();},startShortcuts:function(){var keyEvent='keydown';shortcut.add('Ctrl+E',function(){page.edit($F('pagePageId'));},{'propagate':false,'type':keyEvent});shortcut.add('Ctrl+A',function(){page.add($('addPageLink'),$F('pageProjectId'),$F('pageParentId'));},{'propagate':false,'disable_in_input':true,'type':keyEvent});shortcut.add('Ctrl+U',function(){page.add($('addSubPageLink'),$F('pageProjectId'),$F('pagePageId'));},{'propagate':false,'disable_in_input':true,'type':keyEvent});shortcut.add('Ctrl+D',function(){page.remove($F('pagePageId'));},{'propagate':false,'type':keyEvent});shortcut.add('Ctrl+X',function(){page.exportShow($('exportLink'),$F('pageProjectId'),$F('pagePageId'));},{'propagate':false,'disable_in_input':true,'type':keyEvent});shortcut.add('Ctrl+I',function(){files.addShow();},{'propagate':false,'type':keyEvent});shortcut.add('Ctrl+M',function(){comments.showCommentForm();},{'propagate':false,'type':keyEvent});shortcut.add('Ctrl+K',function(){page.goToNextPage($F('pagePageId'));},{'propagate':false,'type':keyEvent});shortcut.add('Ctrl+J',function(){page.goToPreviousPage($F('pagePageId'));},{'propagate':false,'type':keyEvent});},goToNextPage:function(pageId){var currentPage=$('sidebarSections-'+pageId);if(currentPage)
{var goToNext=false;var isGoing=false;$$('#reorderablePages div.reorderableSection').each(function(navEl){if(goToNext)
{var nextPageEl=navEl;isGoing=true;location.href=nextPageEl.down('a').href;throw $break;}
if(currentPage==navEl)
goToNext=true;});}
if(goToNext&&!isGoing)
location.href=$$('#reorderablePages div.reorderableSection')[0].down('a').href;},goToPreviousPage:function(pageId){var currentPage=$('sidebarSections-'+pageId);if(currentPage)
{var goToPrevious=false;var allNavEls=$$('#reorderablePages div.reorderableSection');var previousPageEl=false;if(allNavEls[0]==currentPage)
location.href=allNavEls[allNavEls.size()-1].down('a').href;else
{allNavEls.each(function(navEl,index){if(currentPage==navEl)
{goToPrevious=true;previousPageEl=allNavEls[index-1];throw $break;}});if(previousPageEl!=false&&typeof(previousPageEl)!='undefined')
location.href=previousPageEl.down('a').href;}}},settingsShow:function(el,pageId){if($(el).hasClassName('bottomCurrent'))
{$(el).removeClassName('bottomCurrent');Effect.BlindUp($('bottomAjaxSlider'),{duration:0.3,afterFinish:function(){$('bottomAjaxContainer').update('');}});return;}
$$('.bottomCurrent').each(function(currentEls){currentEls.removeClassName('bottomCurrent');});$(el).addClassName('bottomCurrent');new Ajax.Request(ajaxUrl,{postBody:'pageId='+pageId+'&ajaxAction=pageSettingsShow',onComplete:function(request){if(!$('bottomInnerContainer'))
{$('bottomAjaxContainer').update(request.responseText);new Effect.SlideDown('bottomAjaxSlider',{duration:0.3});}
else
{new Effect.SlideUp('bottomAjaxSlider',{duration:0.3,afterFinish:function()
{$('bottomAjaxContainer').update('');$('bottomAjaxContainer').update(request.responseText);new Effect.SlideDown('bottomAjaxSlider',{duration:0.3});}});}}});},settingsSave:function(form){var needsConfirmation=false;if($('pageContent-second'))
if(!$('pageContent-second').down('div').innerHTML.empty()&&$F('has_multiple_columns')=='0')
{needsConfirmation=true;}
if(!needsConfirmation)
new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=pageSettingsSave&'+$(form).serialize(),onComplete:this.settingsSave_callback.bindAsEventListener(this)});else if(confirm('When you revert to a 1 column layout, the information from column 2 is appended to the first column. Continue?'))
new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=pageSettingsSave&'+$(form).serialize(),onComplete:this.settingsSave_callback.bindAsEventListener(this)});},settingsSave_callback:function(request){if(request.responseText=='false')
alert('Sorry but there was an error saving your new settings. Please refresh the page and try again.');else
{this.isEditing.main=false;this.isEditing.second=false;if($('syntaxHelperBar')&&$('syntaxHelperBar').visible())Effect.BlindUp('syntaxHelperBar',{duration:0.3});CloseBottomSlider();this.rebuildPageContent();}},rebuildPageContent:function(){var actualPageContentDimensions=$('actualPageContent').getDimensions();$('actualPageContent').style.height=(actualPageContentDimensions.height)+'px';$('actualPageContent').style.width=actualPageContentDimensions.width+'px';$('actualPageContent').style.position='relative';var vAlignCenter=(actualPageContentDimensions.height/2)-16;$('actualPageContent').update('<div class="loadingRebuildPage" style="top:'+vAlignCenter+'px"><img src="'+sysUrl+'template/images/spinner-big.gif" alt="loading..."/></div>');new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=pageRefreshContent&pageId='+$F('pagePageId'),onComplete:function(request){$('actualPageContent').style.height='auto';$('actualPageContent').style.width='auto';$('actualPageContent').style.position='static';var response=request.responseText.evalJSON();$('actualPageContent').update(response.content);if(response.hasMultipleColumns==1&&!$('middleContent').hasClassName('multipleColumns'))
$('middleContent').addClassName('multipleColumns');else if(response.hasMultipleColumns==0)
$('middleContent').removeClassName('multipleColumns');page.registerEvents();}});},updateCurrentBreadcrumb:function(projectId){new Ajax.Request(ajaxUrl+'?ajaxAction=reorderUpdateBreadcrumb',{postBody:'projectId='+projectId+'&pageId='+$F('pagePageId'),onComplete:function(request){if(request.responseText!='false')
$('pageBreadcrumbs').update(request.responseText);}});}};var page=new Page('mainAjaxSlider');var pageTitle=new Page('mainAjaxSlider');var Comments=Class.create();Comments.prototype={initialize:function(container,list){this.container=container;this.list=list;},showCommentForm:function(){if(!$(this.container).visible())
new Effect.BlindDown(this.container,{duration:0.4,afterFinish:function(){focusFirst('formNewComment');Scroll('comments');}});else
new Effect.BlindUp(this.container,{duration:0.4});},cancelNewComment:function(){new Effect.SlideUp(this.container,{duration:0.4});},attachFile:function(){if($('attachFileToComment').visible())
{new Effect.BlindUp('attachFileToComment',{duration:0.2});new Effect.BlindDown('attachFileToCommentUpload',{duration:0.2});}
else
{new Effect.BlindDown('attachFileToComment',{duration:0.2});new Effect.BlindUp('attachFileToCommentUpload',{duration:0.2});}},checkBeforeSending:function(){var valid=true;if(!$('commentContent').present())
{new Effect.Shake('commentContent');valid=false;}
else
{showLoading($('commentSaveBox'));if($('comment_file').present())
{var pageId=$F('pagePageId');var pars='ajaxAction=checkFileBeforeUpload&pageId='+pageId+'&commentFileName='+$F('comment_file');new Ajax.Request(ajaxUrl,{parameters:pars,onComplete:this._checkBeforeSending_callback.bindAsEventListener(this)});}
else
this.sendCommentFormForReal();}},_checkBeforeSending_callback:function(request){if(request.responseText=='no-access')
{hideLoading($('commentSaveBox'));alert("You don't have permission to upload this file.");}
else if(request.responseText=='duplicate')
{hideLoading($('commentSaveBox'));alert("Unfortunately this page already contains a file attachment with this same name. Please rename the file, and upload it again.");Form.Element.focus('file_description');}
else
this.sendCommentFormForReal();},sendCommentFormForReal:function(){this.cleanUpIFrame();this.periodicalUploadInit();$('formNewComment').submit();$('formNewComment').down('input[type=submit]').disable();},cleanUpIFrame:function(){var iframeUpload=$('commentFileUploadTarget');if(iframeUpload)
{if(iframeUpload.contentDocument)
var iframeDocument=iframeUpload.contentDocument;else if(iframeUpload.contentWindow)
var iframeDocument=iframeUpload.contentWindow.document;else
var iframeDocument=window.frames[iframeName].document;}
iframeDocument.body.innerHTML='';},periodicalUploadInit:function(){new PeriodicalExecuter(function(periodicalExecuterObj){comments.periodicalUploadVerifier(periodicalExecuterObj);},1);},periodicalUploadVerifier:function(periodicalExecuterObj){var iframeUpload=$('commentFileUploadTarget');if(iframeUpload)
{if(iframeUpload.contentDocument)
var iframeDocument=iframeUpload.contentDocument;else if(iframeUpload.contentWindow)
var iframeDocument=iframeUpload.contentWindow.document;else
var iframeDocument=window.frames[iframeName].document;if(iframeDocument.body.innerHTML=='true'||iframeDocument.body.innerHTML=='false'||!iframeDocument.body.innerHTML.empty())
{periodicalExecuterObj.stop();this.commentSave(iframeDocument.body.innerHTML);}}},commentSave:function(response){hideLoading($('commentSaveBox'));var response=response.evalJSON();$('formNewComment').down('input[type=submit]').enable();if(response.status==false)
alert("There was an error processing your request. Please reload this page and try again.");else if(response.status=='account-limit')
{var alertMsg="Sorry but you can't upload this file because the project owner's account has reached its storage limit. ";if(typeof(response.ownerEmail)!='undefined')
alertMsg+='Please notify '+response.ownerEmail+' that the limit has been reached.';else
alertMsg+='Please consider an upgrade.';alert(alertMsg);}
else if(response.status==true)
{$(this.list).update(response.xhtml.unescapeHTML());if(typeof($(response.file_xhtml))!='undefined'&&$('allFiles'))
$('allFiles').insert({'bottom':response.file_xhtml.unescapeHTML()});if(typeof($(response.syntaxHelperBarItem))!='undefined'&&$('syntaxHelperBarPane-files'))
$('syntaxHelperBarPane-files').down('ul').insert({'top':response.syntaxHelperBarItem.unescapeHTML()});$('formNewComment').reset();$('attachFileToCommentUpload').hide();$('attachFileToComment').show();}},saveNewComment:function(projectId){if(!$(this.container).down('form').down('textarea').present())
new Effect.Shake(this.container);else
{showLoading($(this.container).down());new Ajax.Updater(this.list,ajaxUrl,{onComplete:this.saveNewComment_callback.bind(this),parameters:'ajaxAction=saveNewComment&projectId='+projectId+'&'+Form.serialize($(this.container).down('form')),evalScripts:true,asynchronous:true});}},saveNewComment_callback:function(request){new Effect.SlideUp(this.container,{duration:0.4});$(this.container).down('form').down('textarea').clear();hideLoading($(this.container).down());},removeComment:function(commentId,projectId){if(!confirm('Are you sure?'))
return false;else
{var isEditing=(page.isEditing.main||page.isEditing.second)?1:0;new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=removeComment&id='+commentId+'&projectId='+projectId+'&isEditing='+isEditing,onComplete:this.removeComment_callback.bindAsEventListener(this,commentId)});}},removeComment_callback:function(request,commentId){if(request.responseText=='false')
alert("There was an error removing the comment.");else if(request.responseText=='no-access')
alert("You don't have permission to remove this comment.");else if(request.responseText=='true')
{files.refreshFilesListing($F('pagePageId'),$F('pageProjectId'));new Effect.BlindUp('comment-'+commentId,{duration:0.3,afterFinish:function(){$('comment-'+commentId).remove();}});}}};var comments=new Comments('newCommentContainer','commentsList');var Files=Class.create();Files.prototype={initialize:function(){},addShow:function(el)
{if(typeof(el)=='undefined')
{var el=$('addFileLink');var needsScrolling=true;}
if($(el).hasClassName('bottomCurrent'))
{$(el).removeClassName('bottomCurrent');Effect.SlideUp($('bottomAjaxSlider'),{duration:0.3,afterFinish:function(){$('bottomAjaxContainer').update('');}});return;}
$$('.bottomCurrent').each(function(currentEls){currentEls.removeClassName('bottomCurrent');});$(el).addClassName('bottomCurrent');isEditingPage=(page.isEditing.main||page.isEditing.second)?1:0;isSlided=true;container=$('bottomAjaxContainer');var content='<div id="bottomInnerContainer">';content+='<form id="addFileForm" target="addFileUploadTarget" action="'+sysUrl+'file/upload/'+$F('pagePageId')+'" method="post" enctype="multipart/form-data" onsubmit="files.checkBeforeUpload(); return false;">';content+='<p><span class="ajaxContainerTitle">Add File</span></p>';content+='<p><input value="Name" class="text" type="text" name="description" id="file_description" maxlength="32" /> <input class="text" type="file" name="file" id="file_file" /></p>';content+='<p><input type="submit" value="Upload" class="button"  />  '+CloseBottomButton()+' <input type="hidden" name="isEditingPage" value="'+isEditingPage+'" /></p></form>';content+='<iframe id="addFileUploadTarget" name="addFileUploadTarget" src="" style="width:0px;height:0px;border:0px solid #fff;"></iframe>';content+='</div>';var newContainer=Builder.build(content);if(!$('bottomInnerContainer'))
{container.appendChild(newContainer);new Effect.SlideDown('bottomAjaxSlider',{duration:0.3,afterFinish:function()
{if(needsScrolling)
{Effect.ScrollTo('bottomAjaxContainer',{duration:0.3,afterFinish:function(){focusFirst('addFileForm');}});}
else
focusFirst('addFileForm');}});}
else
{new Effect.SlideUp('bottomAjaxSlider',{duration:0.3,afterFinish:function(){$('bottomAjaxContainer').update('');container.appendChild(newContainer);Down('bottomAjaxSlider');}});}},checkBeforeUpload:function()
{var valid=true;if(!$('file_file').present())
{valid=false;Shake('file_file');}
if(!$('file_description').present())
{valid=false;Shake('file_description');}
else
{if($('file_description').length>32)
{valid=false;alert('The filename is too big. Please make it smaller.');}
else if($F('file_description').indexOf('/')!=-1)
{valid=false;alert('Unfortunately your filename can\'t have slashes.');Shake('file_description');}}
if(!valid)
return false;var pageId=$F('pagePageId');var pars='ajaxAction=checkFileBeforeUpload&pageId='+pageId+'&'+Form.serialize('addFileForm');showLoading($('bottomAjaxContainer').down('span.ajaxContainerTitle'));new Ajax.Request(ajaxUrl,{parameters:pars,onComplete:this._checkBeforeUpload_callback.bindAsEventListener(this)});},_checkBeforeUpload_callback:function(request)
{if(request.responseText=='no-access')
{hideLoading($('bottomAjaxContainer').down('span.ajaxContainerTitle'));alert("You don't have permission to upload this file.");}
else if(request.responseText=='duplicate')
{hideLoading($('bottomAjaxContainer').down('span.ajaxContainerTitle'));alert("Unfortunately your Jumpchart can't have two files with the same name and the same parent.");Form.Element.focus('file_description');}
else
{this.cleanUpIFrame();this.periodicalUploadInit();$('addFileForm').submit();$('bottomAjaxContainer').down('form').disable();}},editShow:function(el,id)
{if($(el).hasClassName('bottomCurrent'))
{$(el).removeClassName('bottomCurrent');Effect.SlideUp($('bottomAjaxSlider'),{duration:0.3,afterFinish:function(){$('bottomAjaxContainer').update('');}});return;}
$$('.bottomCurrent').each(function(currentEls){currentEls.removeClassName('bottomCurrent');});$(el).addClassName('bottomCurrent');var container=$('bottomAjaxContainer');var pars=ajaxUrl+'?ajaxAction=editFile&id='+id;new Ajax.Request(ajaxUrl,{parameters:pars,onComplete:function(request)
{if(request.responseText=='false')
alert("There was an error requesting your file edit.");else if(request.responseText=='no-access')
alert("You don't have permission to edit this file.");else
{if(!$('bottomInnerContainer'))
{$('bottomAjaxContainer').update(request.responseText);new Effect.SlideDown('bottomAjaxSlider',{duration:0.3,afterFinish:function(){focusFirst('editFileForm-'+id);}});}
else
{new Effect.SlideUp('bottomAjaxSlider',{duration:0.3,afterFinish:function()
{$('bottomAjaxContainer').update('');$('bottomAjaxContainer').update(request.responseText);new Effect.SlideDown('bottomAjaxSlider',{duration:0.3,afterFinish:function(){focusFirst('editFileForm-'+id);}});}});}}}});},editCancel:function(id)
{var container=$('editFile-'+id);Up(container);},editSave:function(id)
{if(!Field.present('edit_file_description-'+id))
{Shake('edit_file_description-'+id);}
else
{showLoading($('bottomAjaxContainer').down('span.ajaxContainerTitle'));var myAjax=new Ajax.Request(ajaxUrl+'?ajaxAction=saveEditFile',{onComplete:this._editSave_callback.bindAsEventListener(this,id),parameters:Form.serialize('editFileForm-'+id)+'&page_id='+$F('pagePageId')});}},_editSave_callback:function(request,id)
{hideLoading($('bottomAjaxContainer').down('span.ajaxContainerTitle'));if(request.responseText=='duplicate')
{alert("Unfortunately your Jumpchart can't have two files with the same name and the same parent.");Form.Element.focus('edit_file_description');}
else
{$('allFiles').innerHTML=request.responseText;CloseBottomSlider();}},remove:function(id)
{showLoading('allFiles');var isEditing=(page.isEditing.main||page.isEditing.second)?1:0;var myAjax=new Ajax.Request(ajaxUrl+'?ajaxAction=removeFile',{parameters:'isEditing='+isEditing+'&file_id='+id+'&page_id='+$F('pagePageId')+'&project_id='+$F('pageProjectId'),onComplete:this._remove_callback.bindAsEventListener(this,id,isEditing)});},_remove_callback:function(request,id,isEditing)
{hideLoading('allFiles');if(request.responseText=='false')
Shake('pageFile-'+id);else
{if(!isEditing)page.rebuildPageContent();Fade('pageFile-'+id);if($('syntaxHelperBarFile-'+id))
$('syntaxHelperBarFile-'+id).remove();}},cleanUpIFrame:function(){var iframeUpload=$('addFileUploadTarget');if(iframeUpload)
{if(iframeUpload.contentDocument)
var iframeDocument=iframeUpload.contentDocument;else if(iframeUpload.contentWindow)
var iframeDocument=iframeUpload.contentWindow.document;else
var iframeDocument=window.frames[iframeName].document;}
iframeDocument.body.innerHTML='';},periodicalUploadInit:function(){new PeriodicalExecuter(function(periodicalExecuterObj){files.periodicalUploadVerifier(periodicalExecuterObj);},1);},periodicalUploadVerifier:function(periodicalExecuterObj){var iframeUpload=$('addFileUploadTarget');if(iframeUpload)
{if(iframeUpload.contentDocument)
var iframeDocument=iframeUpload.contentDocument;else if(iframeUpload.contentWindow)
var iframeDocument=iframeUpload.contentWindow.document;else
var iframeDocument=window.frames[iframeName].document;if(iframeDocument.body.innerHTML=='true'||iframeDocument.body.innerHTML=='false'||!iframeDocument.body.innerHTML.empty())
{periodicalExecuterObj.stop();this.filesAddSave(iframeDocument.body.innerHTML);}}},filesAddSave:function(response){var response=response.evalJSON();hideLoading($('bottomAjaxContainer').down('span.ajaxContainerTitle'));$('bottomAjaxContainer').down('form').enable();if(response.status==false)
alert("There was an error processing your request.");else if(response.status=='account-limit')
{var alertMsg="Sorry but you can't upload this file because the project owner's account has reached its storage limit. ";if(typeof(response.ownerEmail)!='undefined')
alertMsg+='Please notify '+response.ownerEmail+' that the limit has been reached.';else
alertMsg+='Please consider an upgrade.';alert(alertMsg);}
else if(response.status==true)
{$('allFiles').insert({'bottom':response.xhtmlContent.unescapeHTML()});if(page.isEditing.main||page.isEditing.second)
{var fragmentOfLastEditedColumn=$(syntaxHelperBar.lastTextarea).id.split('-')[1];$('formPageContent-'+fragmentOfLastEditedColumn).value+="\n\n("+$F('file_description')+')';}
else
page.rebuildPageContent();if($('syntaxHelperBarPane-files')&&response.syntaxHelperBarItem)
$('syntaxHelperBarPane-files').down('ul').insert({'top':response.syntaxHelperBarItem.unescapeHTML()});$('addFileForm').reset();}},refreshFilesListing:function(pageId,projectId){new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=filesRefreshList&pageId='+pageId+'&projectId='+projectId,onComplete:this.refreshFilesListing_callback.bindAsEventListener(this)});},refreshFilesListing_callback:function(request){if(request.responseText!='false')
$('allFiles').replace(request.responseText);}};var files=new Files();var Reorder=Class.create();Reorder.prototype={initialize:function(){this.currentIndex=-1;this.isScrolling=false;this.lastMovedElement=null;this.lastParent=null;this.lastStructuredNav=null;this.isReorderingNow=false;},doneReordering:function(projectId){this.cancelReordering();this.done(this,projectId);},cancelReordering:function(projectId,resetNav){this.isReorderingNow=false;if(typeof(resetNav)=='undefined')resetNav=false;$('nav').removeClassName('isReorderingPages');$('nav').addClassName('notReordering');$('reorderPageDone').hide();$('reorderPageStart').show();$$('#reorderablePages a.navPageLink').each(function(a){a.onclick=null;});if(resetNav)
$('reorderablePages').update(this.lastStructuredNav);pageChangeConfirmationOff();},startReordering:function(projectId){this.isReorderingNow=true;this.lastStructuredNav=$('reorderablePages').innerHTML;pageChangeConfirmationOn();$$('#reorderablePages a.navPageLink').each(function(a){a.onclick=function(){return false;}});$('nav').addClassName('isReorderingPages');$('nav').removeClassName('notReordering');$('reorderPageStart').hide();$('reorderPageDone').show();this.startList(projectId);},startList:function(projectId){if(typeof(this.projectId)=='undefined')this.projectId=projectId;$j('#reorderablePages').NestedSortableDestroy();jQuery.iDrop.destroy();var myNav=$j('#reorderablePages').NestedSortable({topLevelId:'reorderablePages',accept:'reorderableSection',helperclass:'reorderHelper',nestingPxSpace:12,currentNestingClass:'reorderCurrentNesting',autoScroll:true,scrollSensitivity:40,scrollSpeed:60,onStart:reorder.start.bindAsEventListener(this),onChange:this.change.bindAsEventListener(this)});if(Prototype.Browser.WebKit&&$$('.currentOpenedPage')[0].getWidth()>185)
{var i=0;var marginLeft=((this.px($$('.currentOpenedPage')[0].getStyle('margin-left'))*-1)+20);while($$('.currentOpenedPage')[0].getWidth()>185&&i<10)
{var newWidth=$$('.currentOpenedPage')[0].getWidth()-marginLeft;$$('.currentOpenedPage')[0].style.width=newWidth+'px';i++;}
if($$('.currentOpenedPage')[0].getWidth()!=185)
$$('.currentOpenedPage')[0].style.width='auto';}},change:function(){if(this.lastParent!=null)
{if(!this.lastParent.down())
{var lastParentTreeExpander=this.lastParent.previous('.pageNameAndReorderHandle').down('.treeExpander');if(lastParentTreeExpander)
{lastParentTreeExpander.remove();}}
var newParent=this.lastMovedElement.up('.reorderableSection');if(newParent)
{var newParentNameContainer=newParent.down('.pageNameAndReorderHandle');var pageId=newParent.id.split('-')[1];if(!newParentNameContainer.down('.treeExpander'))
{var treeExpanderStr='<a class="treeExpander opened" id="treeExpander'+pageId+'" href="javascript:void(0);" onclick="jumpchart.expandNav(this)">Collapse</a>';newParentNameContainer.insert({'top':treeExpanderStr});}}}},start:function(el){this.lastMovedElement=$(el.id);this.lastParent=$(el.id).up('.pageList');},px:function(str)
{return str.replace('px','')*1;},show:function(projectId,userId)
{var pars='ajaxAction=showReorder&project_id='+projectId;showLoading('jumpchartNav');var myAjax=new Ajax.Request(ajaxUrl,{method:'post',parameters:pars,onComplete:this._show_callback.bindAsEventListener(this,projectId,userId)});pageChangeConfirmationOn();},_show_callback:function(request,projectId,userId)
{hideLoading('jumpchartNav');if(request.responseText=='false')
alert("There was an error processing your request. Please reload the page and try again.");else if(request.responseText=='no-access')
alert("You don't have permission to reorder this Jumpchart");else
{$('jumpchartNav').replace(request.responseText);$('showReorderLink').style.display='none';$('pageSecondToolbar').appendChild(Builder.build('<a href="javascript:void(0);" onclick="reorder.done('+projectId+')" id="doneReorderLink">Done reordering</a>'));}},done:function(el,projectId)
{new Ajax.Request(ajaxUrl+'?ajaxAction=doReorder',{onComplete:this.done_callback.bindAsEventListener(this,projectId),parameters:'projectId='+this.projectId+'&'+jQuery.iNestedSortable.newSerialize('reorderablePages').hash,evalScripts:true,asynchronous:true});pageChangeConfirmationOff();},done_callback:function(request,projectId){$j('#reorderablePages').NestedSortableDestroy();if(request.responseText=='false')
alert("There was an error reordering the pages.");else if(request.responseText=='no-access')
alert("You don't have permission to reorder this Jumpchart.");else
{jumpchart.expandNavSaveCurrentState(projectId);page.updateCurrentBreadcrumb(projectId);}},keyboardInit:function(){shortcut.remove('Ctrl+Down');shortcut.remove('Ctrl+Up');shortcut.remove('Shift+Down');shortcut.remove('Shift+Up');shortcut.remove('Shift+Right');shortcut.remove('Shift+Left');this.allItems=$$('#jumpchartNav li[class!=dummyLI]');this.currentIndex++;this.selectItem();var keyEvent=(Prototype.Browser.Gecko)?'keypress':'keydown';shortcut.add('Ctrl+Down',function(){reorder.goToNextItem();},{'propagate':false,'type':keyEvent});shortcut.add('Ctrl+Up',function(){reorder.goToPreviousItem();},{'propagate':false,'type':keyEvent});shortcut.add('Shift+Down',function(){reorder.moveDown();},{'propagate':false,'type':keyEvent});shortcut.add('Shift+Up',function(){reorder.moveUp();},{'propagate':false,'type':keyEvent});shortcut.add('Shift+Right',function(){reorder.moveRight();},{'propagate':false,'type':keyEvent});shortcut.add('Shift+Left',function(){reorder.moveLeft();},{'propagate':false,'type':keyEvent});},selectItem:function(itemIndex){if(typeof(itemIndex)=='undefined')itemIndex=this.currentIndex;var newItem=this.allItems[itemIndex];var currentlySelected=$$('.keyboardReorderSelected');if(currentlySelected.size()>0)
currentlySelected[0].removeClassName('keyboardReorderSelected');newItem.addClassName('keyboardReorderSelected');this.scrollScreen();},scrollScreen:function(itemIndex){if(this.isScrolling)
return;if(typeof(itemIndex)=='undefined')itemIndex=this.currentIndex;var item=this.allItems[itemIndex];var viewportHeight=document.viewport.getHeight();var itemViewportOffset=item.viewportOffset()[1];var viewportBottomBoundary=viewportHeight*0.9;var viewportTopBoundary=viewportHeight*0.1;if(itemViewportOffset>viewportBottomBoundary||itemViewportOffset<viewportTopBoundary)
{this.isScrolling=true;var scrollOffset=viewportHeight/2*-1;var self=this;new Effect.ScrollTo(item,{duration:0.3,offset:scrollOffset,afterFinish:function(){self.isScrolling=false;}});}},goToNextItem:function(){if(this.allItems[this.currentIndex+1])
this.currentIndex++;else
this.currentIndex=0;this.selectItem();},goToPreviousItem:function(){if(this.allItems[this.currentIndex-1])
this.currentIndex--;else
this.currentIndex=this.allItems.size()-1;this.selectItem();},reconstructIndex:function(currentlyMovedElement,a,searchForNewCurrent){this.allItems=null;this.allItems=$$('#jumpchartNav li[class!=dummyLI]');if(!a)
{this.allItems.each(function(e,index){if(e==currentlyMovedElement)currentIndex=index;});this.currentIndex=(typeof(currentIndex)!='undefined')?currentIndex:0;}
if(typeof(searchForNewCurrent)!='undefined'&&searchForNewCurrent)
{var self=this;var currentlyHighlighted=$$('.keyboardReorderSelected')[0];this.allItems.each(function(e,index){if(e==currentlyHighlighted)
{currentlyHighlighted.removeClassName('keyboardReorderSelected');e.addClassName('keyboardReorderSelected');self.currentIndex=index;return;}});}},moveDown:function(element){var current=this.allItems[this.currentIndex];var nextInTheTree=this.allItems[this.currentIndex+1];if(nextInTheTree)
{var current=this.allItems[this.currentIndex];var isChild=current.descendants().find(function(e){if(e==nextInTheTree)return true;});if(nextInTheTree.down('ul[class!=dummyUL]')&&!isChild)
{nextInTheTree.down('ul[class!=dummyUL]').insert({'top':current});}
else if(isChild)
{if(current.next('[class!=dummyLI]'))
{if(current.next('[class!=dummyLI]').down('ul'))
{current.next('[class!=dummyLI]').down('ul').insert({'top':current});}
else
{current.next('[class!=dummyLI]').insert({'after':current});}}
else
{var closestRootLi=current.up('li');if(closestRootLi)
{var nextSubtreeFromClosestRootLi=closestRootLi.next();while(!nextSubtreeFromClosestRootLi)
{closestRootLi=closestRootLi.up('ul').up('li');if(!closestRootLi)
{nextSubtreeFromClosestRootLi=null;break;}
else
nextSubtreeFromClosestRootLi=closestRootLi.next();}
if(nextSubtreeFromClosestRootLi)
{if(!nextSubtreeFromClosestRootLi.down('ul'))
{nextSubtreeFromClosestRootLi.insert({'bottom':'<ul></ul>'});}
nextSubtreeFromClosestRootLi.down('ul').insert({'top':current});}}}}
else
{nextInTheTree.insert({'after':current});}}
this.reconstructIndex(current);this.scrollScreen();},moveUp:function(){var previousInTheTree=this.allItems[this.currentIndex-1];if(previousInTheTree)
{var current=this.allItems[this.currentIndex];previousInTheTree.insert({'before':current});}
this.reconstructIndex(current);this.scrollScreen();},moveRight:function(){var previousInTheTree=this.allItems[this.currentIndex].previous('[class!=dummyLI]');if(previousInTheTree)
{var current=this.allItems[this.currentIndex];if(previousInTheTree.tagName=='UL')
previousInTheTree.insert({'bottom':current});else
{if(!previousInTheTree.down('ul'))
previousInTheTree.insert({'bottom':'<ul></ul>'});previousInTheTree.down('ul').insert({'bottom':current});}}
this.scrollScreen();},moveLeft:function(){var previousInTheTree=this.allItems[this.currentIndex].up('li[class!=dummyLI]');if(previousInTheTree&&previousInTheTree.id!='jumpchartNav')
{var current=this.allItems[this.currentIndex];if(previousInTheTree.tagName=='UL')
previousInTheTree.insert({'after':current});else
{previousInTheTree.insert({'after':current});}}
this.scrollScreen();},keyboardSave:function(){Sortable.create('jumpchartNav',{tree:true});new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=keyboardReorderSave&'+Sortable.serialize('jumpchartNav'),onComplete:this._keyboardReorderSave_callback.bindAsEventListener(this)});},_keyboardReorderSave_callback:function(request){$('result').update(request.responseText);},_registerReorderClick:function(e){Event.observe(e,'mousedown',this._reorderMouseDown.bindAsEventListener(this,e));Event.observe(e,'mouseup',this._reorderMouseUp.bindAsEventListener(this,e));},_reorderMouseDown:function(event,element){element.addClassName('clickedReorderItem');},_reorderMouseUp:function(event,element){element.removeClassName('clickedReorderItem');},_showChange:function(e,ev){var dummyULs=$$('.dummyUL');dummyULs.each(function(ul){if(ul.immediateDescendants().size()>1)
{ul.className='';ul.immediateDescendants().each(function(li){if(li.empty())
li.remove();});}});$$('#jumpchartNav li').each(function(li){if(li.descendants().size()==0)
if(li.className!='dummyLI')
li.appendChild(Builder.build('<ul class="dummyUL-ASDF"><li class="dummyLI-ASDF"></li></ul>'));});this.reconstructIndex(null,true,true);}};var reorder=new Reorder();var People=Class.create();People.prototype={initialize:function(){},inviteShow:function(projectId,showAgain){if($('mainAjaxSlider').style.display=='none')
{if(!$('inviteUserInner'))
{var content='<div id="inviteUserInner"><div class="ajaxContainerTitle">Invite user</div><form id="inviteUserForm" method="post">';content+='<div id="inviteUserMainContent"><p><input autocomplete="off" value="Email Address" type="text" name="email" id="user_email" class="text" /> <input type="checkbox" name="view_only" id="uer_view_only" value="1" /> View only </p>';content+='<div class="autocomplete" id="previouslyInvitedEmailsList" style="display:none"></div>';content+='<p><input type="hidden" name="project_id" value="'+projectId+'" /> <input type="submit" value="Invite user" class="button" /> <a href="javascript:void(0);" class="cancelLink" onclick="people.inviteShow(0)">Cancel</a></p></div> </div>';$('mainAjaxContainer').update(content);Event.observe('inviteUserForm','submit',this.inviteSubmit.bindAsEventListener(this));new Autocompleter.LocalEnhanced('user_email','previouslyInvitedEmailsList',listOfPreviousInvitedEmails,{frequency:0.4,partialSearch:true,partialChars:2,fullSearch:true});}
new Effect.SlideDown('mainAjaxSlider',{duration:0.4,afterFinish:function(){focusFirst('inviteUserForm');}});}
else
{if(!showAgain)
new Effect.SlideUp('mainAjaxSlider',{duration:0.4,afterFinish:function(){$('inviteUserInner').remove();}});else
new Effect.SlideUp('mainAjaxSlider',{duration:0.4,afterFinish:this._inviteShowAgain_callback.bindAsEventListener(this,projectId)});}},_inviteShowAgain_callback:function(e,projectId){$('inviteUserInner').remove();this.inviteShow(projectId);},inviteSubmit:function(e){Event.stop(e);if(!Field.present('user_email'))
Shake('user_email');else
{showLoading('mainAjaxContainer');new Ajax.Updater('inviteUserMainContent',ajaxUrl,{evalScripts:true,parameters:'ajaxAction=inviteUser&'+Form.serialize('inviteUserForm'),onComplete:function(){hideLoading('mainAjaxContainer');}});}},edit:function(el,userId){var container='editPersonContainer-'+userId;if(!$(container).empty())
this.editCancel(userId);else
{showLoading(el);new Ajax.Updater(container,ajaxUrl,{parameters:'&ajaxAction=editPerson&user_id='+userId,evalScripts:true,asynchronous:true,onComplete:this._edit_callback.bindAsEventListener(this,el,userId)});}},_edit_callback:function(request,el,userId){hideLoading(el);new Effect.SlideDown('editPersonContainer-'+userId,{duration:0.4,afterFinish:function(){focusFirst('editPersonForm-'+userId);}});Event.observe('editPersonForm-'+userId,'submit',this.editSave.bindAsEventListener(this,userId));},editSave:function(e,userId)
{if(Form.check('editPersonForm-'+userId))
{showLoading('editPersonContainer-'+userId);new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=saveEditPerson&'+Form.serialize('editPersonForm-'+userId),onComplete:this._editSave_callback.bindAsEventListener(this,userId)});}
Event.stop(e);},_editSave_callback:function(request,userId){hideLoading('editPersonContainer-'+userId);if(request.responseText=='true')
this.editCancel(userId);else if(request.responseText=='duplicateLogin')
alert("The user couldn't be updated because the login you picked is already in use.");else if(request.responseText=='passwdWrong')
alert("The user couldn't be updated because the password confirmation is wrong.");else
alert('There was an error updating the user.');},editCancel:function(userId)
{new Effect.SlideUp('editPersonContainer-'+userId,{duration:0.4,afterFinish:function(){$('editPersonContainer-'+userId).update('');}});},remove:function(invitationId,userId,projectId,userHash)
{if(confirm("Are you sure you want to remove this user from this project?"))
{var el=$$('#user'+userHash+' .generalTools');if(el.size()>0)
showLoading(el[0],true);new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=peopleRemove&userId='+userId+'&projectId='+projectId+'&invitationId='+invitationId,onComplete:this._remove_callback.bindAsEventListener(this,userHash)});}},_remove_callback:function(request,userHash)
{var el=$$('#user'+userHash+' .generalTools');if(el.size()>0)
hideLoading(el[0]);if(request.responseText=='true')
new Effect.BlindUp('user'+userHash,{duration:0.3,afterFinish:function(){$('user'+userHash).remove();}});else
alert('There was an error processing your request.');},appendExistingUser:function(projectId,email)
{if($('projectUsersContainer'))
{showLoading('projectUsersContainer');new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=appendExistingUser&projectId='+projectId+'&email='+email,onComplete:this._appendExistingUser_callback.bindAsEventListener(this)});}},_appendExistingUser_callback:function(request)
{if($('projectUsersContainer')&&request.responseText!='false')
{hideLoading('projectUsersContainer');var newUserContainer=Builder.build(request.responseText);$('projectUsersContainer').appendChild(newUserContainer);new Effect.SlideDown(newUserContainer,{duration:0.3});}},appendNewUser:function(projectId,email)
{if($('projectUntakenInvitations'))
{if(!$('projectUntakenInvitations').visible())
new Effect.SlideDown('projectUntakenInvitations',{duration:0.1});showLoading('projectUntakenInvitations');new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=appendNewUser&projectId='+projectId+'&email='+email,onComplete:this._appendNewUser_callback.bindAsEventListener(this)});}},_appendNewUser_callback:function(request)
{if($('projectUntakenInvitations')&&request.responseText!='false')
{hideLoading('projectUntakenInvitations');var newUserContainer=Builder.build(request.responseText);$('projectUntakenInvitations').appendChild(newUserContainer);new Effect.SlideDown(newUserContainer,{duration:0.3});}},removeUntakenInvitation:function(invitationId){if(confirm('Are you sure you want to remove this invitation?'))
{showLoading('untakenInvitationName-'+invitationId);new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=untakenInvitationsRemove&invitationId='+invitationId,onComplete:this._removeUntakenInvitation_callback.bindAsEventListener(this,invitationId)});}},_removeUntakenInvitation_callback:function(request,invitationId){hideLoading('untakenInvitationName-'+invitationId);if(request.responseText=='no-access')
alert("Sorry but it seems that you don't have access permission to remove this invitation.");else if(request.responseText=='true')
{if($$('#projectUntakenInvitations .generalToolsContainer').size()>1)
new Effect.BlindUp('untakenInvitation-'+invitationId,{duration:0.4,afterFinish:function(){$('untakenInvitation-'+invitationId).remove();}});else
new Effect.BlindUp('projectUntakenInvitations',{duration:0.6,afterFinish:function(){$('untakenInvitation-'+invitationId).remove();}});}
else
alert('There was an error removing the invitation. Please reload the page and try again.');},permission:function(invitationId,userId,projectId,userHash)
{if($('permissionContainer-'+userHash).visible())
new Effect.SlideUp('permissionContainer-'+userHash,{duration:0.2});else
{var el=$$('#user'+userHash+' .generalTools');if(el.size()>0)
showLoading(el[0]);new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=peoplePermission&userHash='+userHash+'&userId='+userId+'&projectId='+projectId+'&invitationId='+invitationId,onComplete:this._permission_callback.bindAsEventListener(this,userHash)});}},_permission_callback:function(request,userHash)
{var el=$$('#user'+userHash+' .generalTools');if(el.size()>0)
hideLoading(el[0]);$('permissionContainer-'+userHash).update(request.responseText);new Effect.SlideDown('permissionContainer-'+userHash,{duration:0.2});},permissionSave:function(userHash){showLoading('permissionContainer-'+userHash);new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=peoplePermissionSave&'+$('permissionForm-'+userHash).serialize(),onComplete:this._permissionSave_callback.bindAsEventListener(this,userHash)});},_permissionSave_callback:function(request,userHash){hideLoading('permissionContainer-'+userHash);if(request.responseText=='false')
alert('There was an error processing your request. Please refresh the page and try again.');else
new Effect.SlideUp('permissionContainer-'+userHash,{duration:0.2,afterFinish:function(){$('permissionContainer-'+userHash).down().remove();}});}};var people=new People();var Sitemap=Class.create();Sitemap.prototype={initialize:function(){},expand:function(el,containerId){$(el);var nextTree=$('subPagesLI'+containerId).down('ul');if(nextTree)
{if(nextTree.visible())
{new Effect.BlindUp(nextTree,{duration:0.2});el.update('(+)');}
else
{new Effect.BlindDown(nextTree,{duration:0.2});el.update('(-)');}}},makePublic:function(el,projectId){if($(el).checked==true)
var confirmation=confirm("By making this a public sitemap, it will be accessible online without a login. Are you sure you want to continue?");else
var confirmation=true;if(confirmation)
{this.projectId=projectId;var checked=(el.checked)?1:0;new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=sitemapMakePublicPreview&projectId='+projectId+'&checked='+checked,onComplete:this.makePublic_callback.bindAsEventListener(this)});}
else
$(el).checked=false;},makePublic_callback:function(request){if(request.responseText=='no-access')
alert("You don't have permission to access this function.");else if(request.responseText=='false')
alert("There was an error processing your request.");else if(request.responseText=='true')
{if($('shareableAt'))
new Effect.Fade('shareableAt',{afterFinish:function(){$('shareableAt').remove();}});}
else
$('makeSitemapPublic').down().insert({'bottom':'<span id="shareableAt"> &ndash; Shareable at: <a href="'+request.responseText+'">'+request.responseText+'</a></span>'});}};var sitemap=new Sitemap();var Snippet=Class.create();Snippet.prototype={initialize:function(){this.defaultDuration=0.2;},add:function(projectId){var XHTMLContent='<div><div class="ajaxContainerTitle" class="smallCentered">Create Snippet</div>';XHTMLContent+='<form method="post"  action="" id="newSnippetForm">';XHTMLContent+='<p>Name <input type="text" name="name" maxlength="255" class="required" /></p>';XHTMLContent+='<p>Content <textarea id="formPageContent" name="content" class="required"></textarea>';XHTMLContent+='<p><input type="checkbox" name="is_global" value="1" id="is_global_checkbox" /> <label for="is_global_checkbox">Global snippet <em>(global snippets can be accessed from any project you work on)</em></label></p>';XHTMLContent+='<p><input type="hidden" name="projectId" value="'+projectId+'" /><input type="submit" value="Create &gt;" /> <a href="javascript:;" onclick="snippet.add()">Cancel</a></p>';XHTMLContent+='</form></div>';if($('mainAjaxSlider').style.display=='none')
{$$('.snippetEditForm').each(function(e){e.up().up().hide();e.up().remove();});$('mainAjaxContainer').appendChild(Builder.build(XHTMLContent));Event.observe('newSnippetForm','submit',this.addVerify.bindAsEventListener(this));new Effect.SlideDown('mainAjaxSlider',{duration:this.defaultDuration,afterFinish:this._add_callback.bindAsEventListener(this,projectId)});}
else
new Effect.SlideUp('mainAjaxSlider',{duration:this.defaultDuration,afterFinish:this._add_close_callback.bindAsEventListener(this)});},_add_close_callback:function(){$('mainAjaxContainer').down().remove();},_add_callback:function(t,projectId){focusFirst('newSnippetForm');},addVerify:function(e){Event.stop(e);if(Form.check('newSnippetForm'))
this.addSave();},addSave:function(){showLoading('snippetLoader');new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=snippetAddSave&'+$('newSnippetForm').serialize(),onComplete:this._addSave_callback.bindAsEventListener(this)});},_addSave_callback:function(request){hideLoading('snippetLoader');if(request.responseText=='duplicate')
{if($F($('newSnippetForm').down('input[type=checkbox]'))==null)
alert("Unfortunately you can't have two snippets with the same name under the same project.");else
alert("Unfortunately you already have a snippet under this project with this name. Even though you're trying to create a global snippet, the names must be unique.");}
else if(request.responseText=='duplicate-global')
{if($F($('newSnippetForm').down('input[type=checkbox]'))==null)
alert("Unfortunately you already have a global snippet with this same name. Even though you're trying to create a local snippet, the names must be unique.");else
alert("Unfortunately you can't have two global snippets with the same name.");}
else if(request.responseText=='duplicate-shared')
alert("Sorry but this project already have a shared snippet with this name. ");else if(request.responseText=='false')
alert("Sorry but there was an error creating your snippet. Reload the page an try again.");else
{if($$('.systemNotice').size()>0)
{$('contentSpacer').hide();}
var newSnippetContainer=Builder.build(request.responseText);if($F($('newSnippetForm').down('input[type=checkbox]'))==null)
{$('mySnippets').insertBefore(newSnippetContainer,$('mySnippets').down());$('snippetsTitleLocal').show();}
else
{$('globalSnippets').insertBefore(newSnippetContainer,$('globalSnippets').down());$('snippetsContainerGlobal').show();$('snippetsTitleGlobal').show();}
$(newSnippetContainer).show();this.add(0);}},view:function(snippetId){var container=$('snippetEditContainer-'+snippetId);showLoading('snippetName-'+snippetId);if(container.style.display!='none'&&!Element.empty(container))
{hideLoading('snippetName-'+snippetId);Effect.SlideUp(container,{duration:this.defaultDuration,afterFinish:this._edit_close_callback.bindAsEventListener(this,snippetId)});}
else
{var self=this;$$('#sharedSnippets .snippetEditContainer').each(function(e){if(e.visible())
new Effect.SlideUp(e,{duration:self.defaultDuration});});var pars='ajaxAction=snippetView&id='+snippetId;new Ajax.Request(ajaxUrl,{postBody:pars,onComplete:this._edit_callback.bindAsEventListener(this,snippetId)});}},edit:function(snippetId,projectId){var container=$('snippetEditContainer-'+snippetId);showLoading('snippetName-'+snippetId);if(container.style.display!='none'&&!Element.empty(container))
{hideLoading('snippetName-'+snippetId);Effect.SlideUp(container,{duration:this.defaultDuration,afterFinish:this._edit_close_callback.bindAsEventListener(this,snippetId)});}
else
{if($('mainAjaxSlider').style.display!='none')
new Effect.SlideUp('mainAjaxSlider',{duration:this.defaultDuration,afterFinish:function(){$('mainAjaxContainer').down().remove();}});var self=this;$$('.snippetEditContainer').each(function(e){if(e.visible())
new Effect.SlideUp(e,{duration:self.defaultDuration});});var pars='ajaxAction=snippetEditShow&id='+snippetId+'&projectId='+projectId;new Ajax.Request(ajaxUrl,{postBody:pars,onComplete:this._edit_callback.bindAsEventListener(this,snippetId)});}},_edit_close_callback:function(t,snippetId){$('snippetEditContainer-'+snippetId).update('');},_edit_callback:function(request,snippetId){var container=$('snippetEditContainer-'+snippetId);hideLoading('snippetName-'+snippetId);if(!$(container).visible())
{container.update(request.responseText);container.insert({'top':'<div class="break"></div>'});}
Effect.SlideDown(container,{duration:this.defaultDuration,afterFinish:this._edit_callback_helper.bindAsEventListener(this,snippetId)});},_edit_callback_helper:function(t,snippetId){focusFirst('snippetEditForm-'+snippetId);},editSave:function(snippetId){var name=$('name-'+snippetId);var description=$('content-'+snippetId);if(!Field.present(name))
{Shake(name);return false;}
showLoading('snippetName-'+snippetId);var myAjax=new Ajax.Request(ajaxUrl+'?ajaxAction=snippetEditSave',{parameters:Form.serialize('snippetEditForm-'+snippetId),onComplete:this._editSave_callback.bindAsEventListener(this,snippetId)});},_editSave_callback:function(request,snippetId){hideLoading('snippetName-'+snippetId);if(request.responseText=='duplicate')
{alert("Unfortunately you already have a local snippet with this same name");}
else if(request.responseText=='duplicate-global')
{alert("Unfortunately you already have a global snippet with the same name.");}
else if(request.responseText=='duplicate-shared')
alert("Sorry but this project already have a shared snippet with this name. ");else if(request.responseText=='false')
alert("There was an error processing your request");else
{var nameContainer=$('snippetName-'+snippetId);var formContainer=$('snippetEditContainer-'+snippetId);nameContainer.childNodes[0].innerHTML=request.responseText;Effect.SlideUp(formContainer,{duration:this.defaultDuration,afterFinish:function(request){if($F($('snippetEditContainer-'+snippetId).down('input[type=checkbox]'))==null&&$('snippetEditContainer-'+snippetId).up('#globalSnippets'))
{$('snippetsTitleLocal').show();var content=$('snippet-'+snippetId).cloneNode(true);$('snippet-'+snippetId).remove();$('mySnippets').insert({'bottom':content});if($('globalSnippets').empty())
{$('snippetsTitleGlobal').hide();$('snippetsContainerGlobal').hide();}}
else if($F($('snippetEditContainer-'+snippetId).down('input[type=checkbox]'))!=null&&!$('snippetEditContainer-'+snippetId).up('#globalSnippets'))
{$('snippetsTitleGlobal').show();$('snippetsContainerGlobal').show();var content=$('snippet-'+snippetId).cloneNode(true);$('snippet-'+snippetId).remove();$('globalSnippets').insert({'bottom':content});if($('mySnippets').empty())
$('snippetsTitleLocal').hide();}
$('snippetEditContainer-'+snippetId).update('');}});}},remove:function(snippetId){if(confirm("Are your sure you want to remove this snippet?"))
{showLoading('snippetName-'+snippetId);new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=snippetRemove&snippetId='+snippetId,onComplete:this._remove_callback.bindAsEventListener(this,snippetId)});}},_remove_callback:function(request,snippetId){if(request.responseText=='false')
alert("Sorry but we couldn't remove your snippet. Please reload the page and try again.");else
new Effect.BlindUp('snippet-'+snippetId,{duration:this.defaultDuration,afterFinish:function(){$('snippet-'+snippetId).remove();if($('globalSnippets').empty())
$('snippetsTitleGlobal').hide();if($('mySnippets').empty())
$('snippetsTitleLocal').hide();if($('mySnippets').empty()&&$('globalSnippets').empty()&&$('sharedSnippets').empty()&&$('contentSpacer'))
$('contentSpacer').show();}});},showSyntaxHelp:function(snippetId,projectId){if($('syntaxHelpOverlay'))
this.syntaxHelpUpdateHeight();else
{if(typeof(projectId)=='undefined')
new Ajax.Request(ajaxUrl,{postBody:'ajaxAction=showSyntaxHelp&isSnippet=1&snippetId='+snippetId,onComplete:this._showSyntaxHelp_callback.bindAsEventListener(this)});else
{new Ajax.Request(ajaxUrl,{parameters:'ajaxAction=showSyntaxHelp&isSnippet=1&&projectId='+projectId,onComplete:this._showSyntaxHelp_callback.bindAsEventListener(this)});}}},syntaxHelpUpdateHeight:function(){window.setTimeout(function(){$('syntaxHelpOverlay').style.height=($('main').getHeight()-75)+'px';},10);},_showSyntaxHelp_callback:function(request){var XHTMLContent=Builder.build('<div id="syntaxHelpOverlay" style="display:none"></div>');XHTMLContent.appendChild(Builder.build(request.responseText));$('main').appendChild(XHTMLContent);var pageWidth=$('wrapper').getWidth();var overlayWidth=pageWidth;XHTMLContent.style.width=overlayWidth+'px';new Effect.Appear('syntaxHelpOverlay',{duration:0.3,from:0,to:0.9});},closeSyntaxHelpOverlay:function(){if($('syntaxHelpOverlay'))
{if(!$('newSnippetForm')||$$('.snippetEditInnerContainer').size()==0)
new Effect.Fade('syntaxHelpOverlay',{duration:0.3,from:0.9,to:0,afterFinish:function(){$('syntaxHelpOverlay').remove();}});else
this.syntaxHelpUpdateHeight();}}};var snippet=new Snippet();var SyntaxHelperBar=Class.create();SyntaxHelperBar.prototype={initialize:function(){this.registerTags();this.lastTextarea='';new PeriodicalExecuter(this.repositionBar.bindAsEventListener(this),1);},registerTags:function(){this.tags=new Object();this.tags.strong={'tagStart':'*','tagEnd':'*','autoClose':true};this.tags.emphasis={'tagStart':'_','tagEnd':'_','autoClose':true};this.tags.link={'tagStart':'"','tagEnd':'":http://','tagSolo':'"":http://'};this.tags.mailLink={'tagStart':'"','tagEnd':'":mailto:','tagSolo':'"":mailto:'};this.tags.linkInternal={'tagStart':'"":[','tagEnd':']','autoClose':true};this.tags.file={'tagStart':'(','tagEnd':')','autoClose':true};this.tags.snippet={'tagStart':'[[','tagEnd':']]','autoClose':true};this.tags.input={'tagStart':'[input]','tagEnd':'','autoClose':true,'tagSolo':''};this.tags.radio={'tagStart':'[radio]','tagEnd':'','autoClose':true,'tagSolo':''};this.tags.checkbox={'tagStart':'[checkbox]','tagEnd':'','autoClose':true,'tagSolo':''};this.tags.submit={'tagStart':'[submit]','tagEnd':'','autoClose':true,'tagSolo':''};this.tags.select={'tagStart':'[select]:"Option 1, Option2, Option 3"','tagEnd':'','autoClose':true,'tagSolo':''};if(Prototype.Browser.IE)
{this.tags.bulletedList={'tagStart':'* ','tagEnd':'\n','tagSolo':'* '};this.tags.orderedList={'tagStart':'# ','tagEnd':'\n','tagSolo':'# '};this.tags.h1={'tagStart':'h1. ','tagEnd':'\n\n','autoClose':true,'tagSolo':'h1. '};this.tags.h2={'tagStart':'h2. ','tagEnd':'\n\n','autoClose':true,'tagSolo':'h2. '};this.tags.h3={'tagStart':'h3. ','tagEnd':'\n\n','autoClose':true,'tagSolo':'h3. '};this.tags.h4={'tagStart':'h4. ','tagEnd':'\n\n','autoClose':true,'tagSolo':'h4. '};this.tags.h5={'tagStart':'h5. ','tagEnd':'\n\n','autoClose':true,'tagSolo':'h5. '};this.tags.h6={'tagStart':'h6. ','tagEnd':'\n\n','autoClose':true,'tagSolo':'h6. '};}
else
{this.tags.bulletedList={'tagStart':'* ','tagEnd':'\n'};this.tags.orderedList={'tagStart':'# ','tagEnd':'\n'};this.tags.h1={'tagStart':'\nh1. ','tagEnd':'\n\n','autoClose':true};this.tags.h2={'tagStart':'\nh2. ','tagEnd':'\n\n','autoClose':true};this.tags.h3={'tagStart':'\nh3. ','tagEnd':'\n\n','autoClose':true};this.tags.h4={'tagStart':'\nh4. ','tagEnd':'\n\n','autoClose':true};this.tags.h5={'tagStart':'\nh5. ','tagEnd':'\n\n','autoClose':true};this.tags.h6={'tagStart':'\nh6. ','tagEnd':'\n\n','autoClose':true};}},showBar:function(textareaElement){if((this.lastTextarea!=$(textareaElement).id)||!$('syntaxHelperBar').visible())
{if(typeof(this.lastTopPosition)!='undefined'){this.lastTopPosition=120;}
this.lastTextarea=$(textareaElement).id;var self=this;if($('syntaxHelperBar').visible())
Effect.SlideUp('syntaxHelperBar',{duration:0.1,queue:'end',afterFinish:function(){Effect.SlideDown('syntaxHelperBar',{duration:0.3,queue:'end'});self.positionBar();}});else
{Effect.SlideDown('syntaxHelperBar',{duration:0.3,queue:'end'});this.positionBar();}
if(!$('syntaxHelperBarPane-main').visible())
{$$('.syntaxHelperBarPane').invoke('hide');Effect.SlideDown($('syntaxHelperBarPane-main'),{duration:0.2});}}},positionBar:function(){var textareaElement=this.lastTextarea;$('syntaxHelperBar').style.left=($(textareaElement).positionedOffset().left-$('syntaxHelperBar').getWidth())+'px';$('syntaxHelperBar').style.top=($(textareaElement).positionedOffset().top+60)+'px';},repositionBar:function(){var textareaElement=this.lastTextarea;if($('syntaxHelperBar')&&$('syntaxHelperBar').visible()&&$(textareaElement))
{var leftPosition=$(textareaElement).positionedOffset().left-$('syntaxHelperBar').getWidth();$('syntaxHelperBar').style.left=leftPosition+'px';var topPosition=$$('body')[0].cumulativeScrollOffset().top;if(topPosition<120)
topPosition=120;new Effect.Move('syntaxHelperBar',{y:topPosition,x:leftPosition,mode:'absolute',duration:0.2,queue:'end'});this.lastTopPosition=topPosition;if(typeof(this.lastTopPosition)=='undefined')
this.lastTopPosition=topPosition;}},showPane:function(el,newPaneName){if(!$('syntaxHelperBarPane-'+newPaneName))
return false;else
{Effect.SlideUp($(el).up('div.syntaxHelperBarPane'),{duration:0.2});Effect.SlideDown($('syntaxHelperBarPane-'+newPaneName),{duration:0.2});}},IELength:function(str){var r=0;for(i=0;i<str.length;i++)
{if(str.charAt(i)!='\n')
r++;}
return r;},insert:function(which,i,innerContent){if(!which)
myField=$(this.lastTextarea);else if(typeof(which)=='string'||(which.tagName&&which.tagName=='TEXTAREA'))
myField=$(which);else
{myField=$(which).up('div').next('textarea');}
if(typeof(innerContent)=='undefined')innerContent='';innerContent=innerContent.replace(/''/g,'"');if(document.selection){myField.focus();sel=document.selection.createRange();if(sel.text.length>0){if(i=='linkInternal')
{var tagStart='"'+sel.text+'":['+innerContent;}
else if(i=='file'||i=='snippet')
{if(i=='file')
var tagStart='('+innerContent;else
var tagStart='[['+innerContent;cursorPos+=tagStart.length-(myField.value.substring(startPos,endPos).length-1);}
else
{var tagStart=this.tags[i].tagStart+sel.text;}
sel.text=tagStart+this.tags[i].tagEnd;}
else{var tagToUse=(this.tags[i].tagSolo)?this.tags[i].tagSolo:this.tags[i].tagStart;tagToUse+=innerContent;if(this.tags[i].autoClose)tagToUse+=this.tags[i].tagEnd;sel.text=tagToUse;var stored_range=sel.duplicate();stored_range.moveToElementText(myField);stored_range.setEndPoint('EndToEnd',sel);if(i=='linkInternal')
var originalPosition=this.IELength(stored_range.text)-tagToUse.length+1;else if(this.tags[i].autoClose&&!this.tags[i].tagEnd.empty()&&i!='file'&&i!='snippet')
var originalPosition=this.IELength(stored_range.text)-this.tags[i].tagStart.length;else
var originalPosition=this.IELength(stored_range.text);var textRange=myField.createTextRange();textRange.collapse(true);textRange.moveEnd('character',originalPosition);textRange.moveStart('character',originalPosition);textRange.select();}
myField.focus();}
else if(myField.selectionStart||myField.selectionStart=='0')
{var startPos=myField.selectionStart;var endPos=myField.selectionEnd;var cursorPos=endPos;var scrollTop=myField.scrollTop;if(startPos!=endPos)
{if(i=='linkInternal')
{var tagStart='"'+myField.value.substring(startPos,endPos)+'":['+innerContent;cursorPos+=tagStart.length-(myField.value.substring(startPos,endPos).length-1);}
else if(i=='file'||i=='snippet')
{if(i=='file')
var tagStart='('+innerContent;else
var tagStart='[['+innerContent;cursorPos+=tagStart.length-(myField.value.substring(startPos,endPos).length-1);}
else
{var tagStart=this.tags[i].tagStart+myField.value.substring(startPos,endPos);cursorPos+=this.tags[i].tagStart.length+this.tags[i].tagEnd.length;}
myField.value=myField.value.substring(0,startPos)
+tagStart
+this.tags[i].tagEnd
+myField.value.substring(endPos,myField.value.length);}
else
{var tagToUse=(this.tags[i].tagSolo)?this.tags[i].tagSolo:this.tags[i].tagStart;tagToUse+=innerContent;if(this.tags[i].autoClose)tagToUse+=this.tags[i].tagEnd;myField.value=myField.value.substring(0,startPos)
+tagToUse
+myField.value.substring(endPos,myField.value.length);if(i=='linkInternal')
cursorPos=startPos+1;else if(i=='file'||i=='snippet')
cursorPos+=this.tags[i].tagStart.length+innerContent.length+this.tags[i].tagEnd.length;else
cursorPos=startPos+this.tags[i].tagStart.length;}
myField.focus();myField.selectionStart=cursorPos;myField.selectionEnd=cursorPos;myField.scrollTop=scrollTop;}
else
{}}};var syntaxHelperBar=new SyntaxHelperBar();var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS";},searchString:function(data){for(var i=0;i<data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1)
return data[i].identity;}
else if(dataProp)
return data[i].identity;}},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1)return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},dataBrowser:[{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init();Autocompleter.BaseEnhanced=Class.create(Autocompleter.Base,{baseInitialize:function(element,update,options){element=$(element);this.element=element;this.update=$(update);this.hasFocus=false;this.changed=false;this.active=false;this.index=0;this.entryCount=0;this.oldElementValue=this.element.value;if(this.setOptions)
this.setOptions(options);else
this.options=options||{};this.options.paramName=this.options.paramName||this.element.name;this.options.tokens=this.options.tokens||[];this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.onShow=this.options.onShow||function(element,update){if(!update.style.position||update.style.position=='absolute'){update.style.position='absolute';Position.clone(element,update,{setHeight:false,offsetTop:element.offsetHeight});}
Effect.Appear(update,{duration:0.15});};this.options.onHide=this.options.onHide||function(element,update){new Effect.Fade(update,{duration:0.15})};if(typeof(this.options.tokens)=='string')
this.options.tokens=new Array(this.options.tokens);if(!this.options.tokens.include('\n'))
this.options.tokens.push('\n');this.observer=null;this.element.setAttribute('autocomplete','off');Element.hide(this.update);Event.observe(this.element,'blur',this.onBlur.bindAsEventListener(this));if(Prototype.Browser.Gecko)
Event.observe(this.element,'keypress',this.onKeyPress.bindAsEventListener(this));else
Event.observe(this.element,'keydown',this.onKeyPress.bindAsEventListener(this));},markPrevious:function(){if(this.index>0)this.index--;else this.index=this.entryCount-1;},markNext:function(){if(this.index<this.entryCount-1)this.index++;else this.index=0;},onKeyPress:function(event){if(this.active)
switch(event.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(event);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(event);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(event);return;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(event);return;}
else
if(event.keyCode==Event.KEY_TAB||event.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&event.keyCode==0))return;this.changed=true;this.hasFocus=true;if(this.observer)clearTimeout(this.observer);this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*100);}});Autocompleter.LocalEnhanced=Class.create(Autocompleter.BaseEnhanced,{initialize:function(element,update,array,options){this.baseInitialize(element,update,options);this.options.array=array;},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this));},setOptions:function(options){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(instance){var ret=[];var partial=[];var entry=instance.getToken();var count=0;for(var i=0;i<instance.options.array.length&&ret.length<instance.options.choices;i++){var elem=instance.options.array[i];var foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase()):elem.indexOf(entry);while(foundPos!=-1){if(foundPos==0&&elem.length!=entry.length){ret.push("<li><strong>"+elem.substr(0,entry.length)+"</strong>"+
elem.substr(entry.length)+"</li>");break;}else if(entry.length>=instance.options.partialChars&&instance.options.partialSearch&&foundPos!=-1){if(instance.options.fullSearch||/\s/.test(elem.substr(foundPos-1,1))){partial.push("<li>"+elem.substr(0,foundPos)+"<strong>"+
elem.substr(foundPos,entry.length)+"</strong>"+elem.substr(foundPos+entry.length)+"</li>");break;}}
foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase(),foundPos+1):elem.indexOf(entry,foundPos+1);}}
if(partial.length)
ret=ret.concat(partial.slice(0,instance.options.choices-ret.length));return"<ul>"+ret.join('')+"</ul>";}},options||{});}});