var Prototype={Version:'1.6.1',Browser:(function(){var ua=navigator.userAgent,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'),form=document.createElement('form'),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={},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}},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,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'),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()),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],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={},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}})()),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=[],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"),elInput=document.createElement("input"),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})(),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})(),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}})(),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(),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,originalVisibility=els.visibility,originalPosition=els.position,originalDisplay=els.display;els.visibility='hidden';if(originalPosition!='fixed')els.position='absolute';els.display='block';var originalWidth=element.clientWidth,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),top=offsets[1],left=offsets[0],width=element.clientWidth,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),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,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],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',forProp='for',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'),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(),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),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,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,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),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']",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,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,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,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(),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,b=m[2]?Number(m[2]):0,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,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,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}),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,$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:{}},docEl=document.documentElement,MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED='onmouseenter' in docEl&&'onmouseleave' in docEl,_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})}},$continue=new Error('"throw $continue" is deprecated, use "return" instead'),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)
var Prototip={Version:'2.0.1.4'},Tips={options:{images:'http://www.holiday-chateau.com/fileadmin/templates/scripts/prototip/images/prototip/',zIndex:6000}};Prototip.Styles={'default':{border:6,borderColor:'#c7c7c7',className:'default',closeButton:false,hideAfter:false,hideOn:'mouseleave',hook:false,radius:6,showOn:'mousemove',stem:{height:12,width:15}},protoblue:{className:'protoblue',border:6,borderColor:'#116497',radius:6,stem:{height:12,width:15}},darkgrey:{className:'darkgrey',border:6,borderColor:'#363636',radius:6,stem:{height:12,width:15}},creamy:{className:'creamy',border:6,borderColor:'#ebe4b4',radius:6,stem:{height:12,width:15}},protogrey:{className:'protogrey',border:6,borderColor:'#606060',radius:6,stem:{height:12,width:15}},holidaychateau:{border:6,borderColor:'#D0CE9F',className:'holidaychateau',closeButton:false,hideAfter:false,hideOn:'mouseleave',hook:false,radius:6,showOn:'mousemove',stem:{height:12,width:15}},portal_search:{border:6,borderColor:'#D0CE9F',className:'portal_search',closeButton:false,hideAfter:false,hideOn:'mouseleave',hook:false,radius:6,showOn:'mousemove',stem:{height:12,width:15}},amenity:{border:6,borderColor:'#D0CE9F',className:'amenity',closeButton:false,hideAfter:false,hideOn:'mouseleave',hook:false,radius:6,showOn:'mousemove',stem:{height:12,width:15}}};eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('N.10(U,{5G:"1.6.0.2",3N:b(){3.3B("1V");9(f.8.W.2I("://")){f.W=f.8.W}12{c A=/1P(?:-[\\w\\d.]+)?\\.4B(.*)/;f.W=(($$("4y 4u[2h]").3v(b(B){Q B.2h.2i(A)})||{}).2h||"").3k(A,"")+f.8.W}9(1V.2N.3f&&!1g.3U.v){1g.3U.38("v","5F:5u-5o-5j:5a");1g.1e("4Y:4R",b(){1g.4L().4E("v\\\\:*","4C: 33(#32#4x);")})}f.2p();q.1e(2Z,"2X",3.2X)},3B:b(A){9((4r 2Z[A]=="4o")||(3.2T(2Z[A].4k)<3.2T(3["3t"+A]))){4e("U 6l "+A+" >= "+3["3t"+A]);}},2T:b(A){c B=A.3k(/4b.*|\\./g,"");B=6b(B+"0".68(4-B.2u));Q A.5W("4b")>-1?B-1:B},43:$w("41 5T"),1Z:b(A){9(1V.2N.3f){Q A}A=A.2H(b(G,F){c E=N.2B(3)?3:3.k,B=F.5z;5t{c D=E.2y,C=B.2y}5i(H){Q}9(U.43.2K(E.2y.20())){9(B!=E&&!B.54(E)){G(F)}}12{9(B!=E&&!$A(E.2M("*")).2K(B)){G(F)}}});Q A},3h:b(A){Q(A>0)?(-1*A):(A).4U()},2X:b(){f.3E()}});N.10(f,{1u:[],1d:[],2p:b(){3.2Q=3.1q},1n:(b(A){Q{1j:(A?"1W":"1j"),18:(A?"1J":"18"),1W:(A?"1W":"1j"),1J:(A?"1J":"18")}})(1V.2N.3f),3C:{1j:"1j",18:"18",1W:"1j",1J:"18"},2b:{j:"31",31:"j",h:"1s",1s:"h",1U:"1U",1b:"1h",1h:"1b"},3w:{p:"1b",o:"1h"},2V:b(A){Q!!23[1]?3.2b[A]:A},1k:(b(B){c A=r 4m("4l ([\\\\d.]+)").4j(B);Q A?(3u(A[1])<7):Y})(6p.6n),3q:(1V.2N.6g&&!1g.6e),38:b(A){3.1u.2k(A)},1B:b(A){c B=3.1u.3v(b(C){Q C.k==$(A)});9(B){B.4a();9(B.13){B.n.1B();9(f.1k){B.1r.1B()}}3.1u=3.1u.47(B)}A.1P=2a},3E:b(){3.1u.3i(b(A){3.1B(A.k)}.1f(3))},2L:b(B){9(B.3g){Q}9(3.1d.2u==0){3.2Q=3.8.1q;2t(c A=0;A<3.1u.2u;A++){3.1u[A].n.e({1q:3.8.1q})}}B.n.e({1q:3.2Q++});9(B.T){B.T.e({1q:3.2Q})}2t(c A=0;A<3.1u.2u;A++){3.1u[A].3g=Y}B.3g=1m},3Z:b(A){3.3l(A);3.1d.2k(A)},3l:b(A){3.1d=3.1d.47(A)},X:b(B,F){B=$(B),F=$(F);c K=N.10({1c:{x:0,y:0},O:Y},23[2]||{});c D=K.1x||F.2F();D.j+=K.1c.x;D.h+=K.1c.y;c C=K.1x?[0,0]:F.3R(),A=1g.1F.2C(),G=K.1x?"21":"15";D.j+=(-1*(C[0]-A[0]));D.h+=(-1*(C[1]-A[1]));9(K.1x){c E=[0,0];E.p=0;E.o=0}c I={k:B.22()},J={k:N.2e(D)};I[G]=K.1x?E:F.22();J[G]=N.2e(D);2t(c H 3K J){3I(K[H]){S"5p":S"5n":J[H].j+=I[H].p;17;S"5l":J[H].j+=(I[H].p/2);17;S"5k":J[H].j+=I[H].p;J[H].h+=(I[H].o/2);17;S"5h":S"5e":J[H].h+=I[H].o;17;S"5d":S"5b":J[H].j+=I[H].p;J[H].h+=I[H].o;17;S"59":J[H].j+=(I[H].p/2);J[H].h+=I[H].o;17;S"57":J[H].h+=(I[H].o/2);17}}D.j+=-1*(J.k.j-J[G].j);D.h+=-1*(J.k.h-J[G].h);9(K.O){B.e({j:D.j+"i",h:D.h+"i"})}Q D}});f.2p();c 56=53.3Y({2p:b(C,E){3.k=$(C);9(!3.k){4e("U: q 52 4Z, 4X 3Y a 13.");Q}f.1B(3.k);c A=(N.2r(E)||N.2B(E)),B=A?23[2]||[]:E;3.1v=A?E:2a;9(B.27){B=N.10(N.2e(U.35[B.27]),B)}3.8=N.10(N.10({1l:Y,1i:0,3m:"#4I",1o:0,u:f.8.u,1a:f.8.4D,1w:!(B.19&&B.19=="1X")?0.14:Y,1C:Y,1I:"1J",X:B.X,1c:B.X?{x:0,y:0}:{x:16,y:16},1K:(B.X&&!B.X.1x)?1m:Y,19:"2q",m:Y,27:"32",15:3.k,11:Y,1F:(B.X&&!B.X.1x)?Y:1m,p:Y},U.35["32"]),B);3.15=$(3.8.15);3.1o=3.8.1o;3.1i=(3.1o>3.8.1i)?3.1o:3.8.1i;9(3.8.W){3.W=3.8.W.2I("://")?3.8.W:f.W+3.8.W}12{3.W=f.W+"4A/"+(3.8.27||"")+"/"}9(!3.W.4z("/")){3.W+="/"}9(N.2r(3.8.m)){3.8.m={O:3.8.m}}9(3.8.m.O){3.8.m=N.10(N.2e(U.35[3.8.27].m)||{},3.8.m);3.8.m.O=[3.8.m.O.2i(/[a-z]+/)[0].20(),3.8.m.O.2i(/[A-Z][a-z]+/)[0].20()];3.8.m.1D=["j","31"].2K(3.8.m.O[0])?"1b":"1h";3.1p={1b:Y,1h:Y}}9(3.8.1l){3.8.1l.8=N.10({30:1V.4w},3.8.1l.8||{})}3.1n=$w("4v 41").2K(3.k.2y.20())?f.3C:f.1n;9(3.8.X.1x){c D=3.8.X.1t.2i(/[a-z]+/)[0].20();3.21=f.2b[D]+f.2b[3.8.X.1t.2i(/[A-Z][a-z]+/)[0].20()].2o()}3.3A=(f.3q&&3.1o);3.3z();f.38(3);3.3y();U.10(3)},3z:b(){3.n=r q("R",{u:"1P"}).e({1q:f.8.1q});9(3.3A){3.n.V=b(){3.e("j:-3x;h:-3x;1M:2E;");Q 3};3.n.P=b(){3.e("1M:1d");Q 3};3.n.1d=b(){Q(3.2Y("1M")=="1d"&&3u(3.2Y("h").3k("i",""))>-4t)}}3.n.V();9(f.1k){3.1r=r q("4s",{u:"1r",2h:"4q:Y;",4p:0}).e({2n:"2g",1q:f.8.1q-1,4n:0})}9(3.8.1l){3.1T=3.1T.2H(3.2U)}3.1t=r q("R",{u:"1v"});3.11=r q("R",{u:"11"}).V();9(3.8.1a||(3.8.1I.k&&3.8.1I.k=="1a")){3.1a=r q("R",{u:"2m"}).24(3.W+"2m.2l")}},2J:b(){$(1g.2S).s(3.n);9(f.1k){$(1g.2S).s(3.1r)}9(3.8.1l){$(1g.2S).s(3.T=r q("R",{u:"4i"}).24(3.W+"T.4h").V())}c G="n";9(3.8.m.O){3.m=r q("R",{u:"4g"}).e({o:3.8.m[3.8.m.1D=="1h"?"o":"p"]+"i"});c B=3.8.m.1D=="1b";3[G].s(3.2R=r q("R",{u:"4f 2P"}).s(3.3s=r q("R",{u:"6o 2P"})));3.m.s(3.1R=r q("R",{u:"6m"}).e({o:3.8.m[B?"p":"o"]+"i",p:3.8.m[B?"o":"p"]+"i"}));9(f.1k&&!3.8.m.O[1].4d().2I("6i")){3.1R.e({2n:"6h"})}G="3s"}9(3.1i){c D=3.1i,F;3[G].s(3.28=r q("6f",{u:"28"}).s(3.26=r q("3o",{u:"26 3n"}).e("o: "+D+"i").s(r q("R",{u:"2j 6d"}).s(r q("R",{u:"1S"}))).s(F=r q("R",{u:"6c"}).e({o:D+"i"}).s(r q("R",{u:"49"}).e({1A:"0 "+D+"i",o:D+"i"}))).s(r q("R",{u:"2j 6a"}).s(r q("R",{u:"1S"})))).s(3.3j=r q("3o",{u:"3j 3n"}).s(3.2W=r q("R",{u:"2W"}).e("2O: 0 "+D+"i"))).s(3.48=r q("3o",{u:"48 3n"}).e("o: "+D+"i").s(r q("R",{u:"2j 66"}).s(r q("R",{u:"1S"}))).s(F.65(1m)).s(r q("R",{u:"2j 63"}).s(r q("R",{u:"1S"})))));G="2W";c C=3.28.2M(".1S");$w("60 5Z 5Y 5X").3i(b(I,H){9(3.1o>0){U.45(C[H],I,{1L:3.8.3m,1i:D,1o:3.8.1o})}12{C[H].2s("44")}C[H].e({p:D+"i",o:D+"i"}).2s("1S"+I.2o())}.1f(3));3.28.2M(".49",".3j",".44").25("e",{1L:3.8.3m})}3[G].s(3.13=r q("R",{u:"13 "+3.8.u}).s(3.1Y=r q("R",{u:"1Y"}).s(3.11)));9(3.8.p){c E=3.8.p;9(N.5V(E)){E+="i"}3.13.e("p:"+E)}9(3.m){c A={};A[3.8.m.1D=="1b"?"h":"1s"]=3.m;3.n.s(A);3.2c()}3.13.s(3.1t);9(!3.8.1l){3.3e({11:3.8.11,1v:3.1v})}},3e:b(E){c A=3.n.2Y("1M");3.n.e("o:1Q;p:1Q;1M:2E").P();9(3.1i){3.26.e("o:0");3.26.e("o:0")}9(E.11){3.11.P().42(E.11);3.1Y.P()}12{9(!3.1a){3.11.V();3.1Y.V()}}9(N.2B(E.1v)){E.1v.P()}9(N.2r(E.1v)||N.2B(E.1v)){3.1t.42(E.1v)}3.13.e({p:3.13.40()+"i"});3.n.e("1M:1d").P();3.13.P();c C=3.13.22(),B={p:C.p+"i"},D=[3.n];9(f.1k){D.2k(3.1r)}9(3.1a){3.11.P().s({h:3.1a});3.1Y.P()}9(E.11||3.1a){3.1Y.e("p: 3d%")}B.o=2a;3.n.e({1M:A});3.1t.2s("2P");9(E.11||3.1a){3.11.2s("2P")}9(3.1i){3.26.e("o:"+3.1i+"i");3.26.e("o:"+3.1i+"i");B="p: "+(C.p+2*3.1i)+"i";D.2k(3.28)}D.25("e",B);9(3.m){3.2c();9(3.8.m.1D=="1b"){3.n.e({p:3.n.40()+3.8.m.o+"i"})}}3.n.V()},3y:b(){3.36=3.1T.1z(3);3.3X=3.V.1z(3);9(3.8.1K&&3.8.19=="2q"){3.8.19="1j"}9(3.8.19==3.8.1I){3.1N=3.3W.1z(3);3.k.1e(3.8.19,3.1N)}9(3.1a){3.1a.1e("1j",b(E){E.24(3.W+"5S.2l")}.1f(3,3.1a)).1e("18",b(E){E.24(3.W+"2m.2l")}.1f(3,3.1a))}c C={k:3.1N?[]:[3.k],15:3.1N?[]:[3.15],1t:3.1N?[]:[3.n],1a:[],2g:[]},A=3.8.1I.k;3.3c=A||(!3.8.1I?"2g":"k");3.1O=C[3.3c];9(!3.1O&&A&&N.2r(A)){3.1O=3.1t.2M(A)}c D={1W:"1j",1J:"18"};$w("P V").3i(b(H){c G=H.2o(),F=(3.8[H+"3V"].3b||3.8[H+"3V"]);3[H+"3T"]=F;9(["1W","1J","1j","18"].2I(F)){3[H+"3T"]=(3.1n[F]||F);3["3b"+G]=U.1Z(3["3b"+G])}}.1f(3));9(!3.1N){3.k.1e(3.8.19,3.36)}9(3.1O){3.1O.25("1e",3.5R,3.3X)}9(!3.8.1K&&3.8.19=="1X"){3.2v=3.O.1z(3);3.k.1e("2q",3.2v)}3.3S=3.V.2H(b(G,F){c E=F.5Q(".2m");9(E){E.5N();F.5J();G(F)}}).1z(3);9(3.1a){3.n.1e("1X",3.3S)}9(3.8.19!="1X"&&(3.3c!="k")){3.2G=U.1Z(b(){3.1E("P")}).1z(3);3.k.1e(3.1n.18,3.2G)}c B=[3.k,3.n];3.3a=U.1Z(b(){f.2L(3);3.2w()}).1z(3);3.39=U.1Z(3.1C).1z(3);B.25("1e",3.1n.1j,3.3a).25("1e",3.1n.18,3.39);9(3.8.1l&&3.8.19!="1X"){3.2D=U.1Z(3.3P).1z(3);3.k.1e(3.1n.18,3.2D)}},4a:b(){9(3.8.19==3.8.1I){3.k.1y(3.8.19,3.1N)}12{3.k.1y(3.8.19,3.36);9(3.1O){3.1O.25("1y")}}9(3.2v){3.k.1y("2q",3.2v)}9(3.2G){3.k.1y("18",3.2G)}3.n.1y();3.k.1y(3.1n.1j,3.3a).1y(3.1n.18,3.39);9(3.2D){3.k.1y(3.1n.18,3.2D)}},2U:b(C,B){9(!3.13){3.2J()}3.O(B);9(3.2x){Q}12{9(3.3O){C(B);Q}}3.2x=1m;c D={2f:{1G:29.1G(B),1H:29.1H(B)}};c A=N.2e(3.8.1l.8);A.30=A.30.2H(b(F,E){3.3e({11:3.8.11,1v:E.5D});3.O(D);(b(){F(E);c G=(3.T&&3.T.1d());9(3.T){3.1E("T");3.T.1B();3.T=2a}9(G){3.P()}3.3O=1m;3.2x=2a}.1f(3)).1w(0.6)}.1f(3));3.5C=q.P.1w(3.8.1w,3.T);3.n.V();3.2x=1m;3.T.P();3.5B=(b(){r 5y.5x(3.8.1l.33,A)}.1f(3)).1w(3.8.1w);Q Y},3P:b(){3.1E("T")},1T:b(A){9(!3.13){3.2J()}3.O(A);9(3.n.1d()){Q}3.1E("P");3.5v=3.P.1f(3).1w(3.8.1w)},1E:b(A){9(3[A+"3L"]){5s(3[A+"3L"])}},P:b(){9(3.n.1d()){Q}9(f.1k){3.1r.P()}f.3Z(3.n);3.13.P();3.n.P();9(3.m){3.m.P()}3.k.3J("1P:5r")},1C:b(A){9(3.8.1l){9(3.T&&3.8.19!="1X"){3.T.V()}}9(!3.8.1C){Q}3.2w();3.5q=3.V.1f(3).1w(3.8.1C)},2w:b(){9(3.8.1C){3.1E("1C")}},V:b(){3.1E("P");3.1E("T");9(!3.n.1d()){Q}3.3H()},3H:b(){9(f.1k){3.1r.V()}9(3.T){3.T.V()}3.n.V();(3.28||3.13).P();f.3l(3.n);3.k.3J("1P:2E")},3W:b(A){9(3.n&&3.n.1d()){3.V(A)}12{3.1T(A)}},2c:b(){c C=3.8.m,B=23[0]||3.1p,D=f.2V(C.O[0],B[C.1D]),F=f.2V(C.O[1],B[f.2b[C.1D]]),A=3.1o||0;3.1R.24(3.W+D+F+".2l");9(C.1D=="1b"){c E=(D=="j")?C.o:0;3.2R.e("j: "+E+"i;");3.1R.e({"2z":D});3.m.e({j:0,h:(F=="1s"?"3d%":F=="1U"?"50%":0),5w:(F=="1s"?-1*C.p:F=="1U"?-0.5*C.p:0)+(F=="1s"?-1*A:F=="h"?A:0)+"i"})}12{3.2R.e(D=="h"?"1A: 0; 2O: "+C.o+"i 0 0 0;":"2O: 0; 1A: 0 0 "+C.o+"i 0;");3.m.e(D=="h"?"h: 0; 1s: 1Q;":"h: 1Q; 1s: 0;");3.1R.e({1A:0,"2z":F!="1U"?F:"2g"});9(F=="1U"){3.1R.e("1A: 0 1Q;")}12{3.1R.e("1A-"+F+": "+A+"i;")}9(f.3q){9(D=="1s"){3.m.e({O:"3Q",5m:"5A",h:"1Q",1s:"1Q","2z":"j",p:"3d%",1A:(-1*C.o)+"i 0 0 0"});3.m.27.2n="3G"}12{3.m.e({O:"3M","2z":"2g",1A:0})}}}3.1p=B},O:b(B){9(!3.13){3.2J()}f.2L(3);9(f.1k){c A=3.n.22();9(!3.2A||3.2A.o!=A.o||3.2A.p!=A.p){3.1r.e({p:A.p+"i",o:A.o+"i"})}3.2A=A}9(3.8.X){c J,H;9(3.21){c K=1g.1F.2C(),C=B.2f||{};c G,I=2;3I(3.21.4d()){S"5E":S"5g":G={x:0-I,y:0-I};17;S"5f":G={x:0,y:0-I};17;S"5H":S"5I":G={x:I,y:0-I};17;S"5c":G={x:I,y:0};17;S"5K":S"5L":G={x:I,y:I};17;S"5M":G={x:0,y:I};17;S"58":S"5O":G={x:0-I,y:I};17;S"5P":G={x:0-I,y:0};17}G.x+=3.8.1c.x;G.y+=3.8.1c.y;J=N.10({1c:G},{k:3.8.X.1t,21:3.21,1x:{h:C.1H||29.1H(B)-K.h,j:C.1G||29.1G(B)-K.j}});H=f.X(3.n,3.15,J);9(3.8.1F){c M=3.37(H),L=M.1p;H=M.O;H.j+=L.1h?2*U.3h(G.x-3.8.1c.x):0;H.h+=L.1h?2*U.3h(G.y-3.8.1c.y):0;9(3.m&&(3.1p.1b!=L.1b||3.1p.1h!=L.1h)){3.2c(L)}}H={j:H.j+"i",h:H.h+"i"};3.n.e(H)}12{J=N.10({1c:3.8.1c},{k:3.8.X.1t,15:3.8.X.15});H=f.X(3.n,3.15,N.10({O:1m},J));H={j:H.j+"i",h:H.h+"i"}}9(3.T){c E=f.X(3.T,3.15,N.10({O:1m},J))}9(f.1k){3.1r.e(H)}}12{c F=3.15.2F(),C=B.2f||{},H={j:((3.8.1K)?F[0]:C.1G||29.1G(B))+3.8.1c.x,h:((3.8.1K)?F[1]:C.1H||29.1H(B))+3.8.1c.y};9(!3.8.1K&&3.k!==3.15){c D=3.k.2F();H.j+=-1*(D[0]-F[0]);H.h+=-1*(D[1]-F[1])}9(!3.8.1K&&3.8.1F){c M=3.37(H),L=M.1p;H=M.O;9(3.m&&(3.1p.1b!=L.1b||3.1p.1h!=L.1h)){3.2c(L)}}H={j:H.j+"i",h:H.h+"i"};3.n.e(H);9(3.T){3.T.e(H)}9(f.1k){3.1r.e(H)}}},37:b(C){c E={1b:Y,1h:Y},D=3.n.22(),B=1g.1F.2C(),A=1g.1F.22(),G={j:"p",h:"o"};2t(c F 3K G){9((C[F]+D[G[F]]-B[F])>A[G[F]]){C[F]=C[F]-(D[G[F]]+(2*3.8.1c[F=="j"?"x":"y"]));9(3.m){E[f.3w[G[F]]]=1m}}}Q{O:C,1p:E}}});N.10(U,{45:b(G,H){c F=23[2]||3.8,B=F.1o,E=F.1i,D=r q("55",{u:"5U"+H.2o(),p:E+"i",o:E+"i"}),A={h:(H.3F(0)=="t"),j:(H.3F(1)=="l")};9(D&&D.3r&&D.3r("2d")){G.s(D);c C=D.3r("2d");C.51=F.1L;C.61((A.j?B:E-B),(A.h?B:E-B),B,0,62.4W*2,1m);C.64();C.46((A.j?B:0),0,E-B,E);C.46(0,(A.h?B:0),E,E-B)}12{G.s(r q("R").e({p:E+"i",o:E+"i",1A:0,2O:0,2n:"3G",O:"3Q",4V:"2E"}).s(r q("v:4T",{67:F.1L,4S:"69",4Q:F.1L,4P:(B/E*0.5).4O(2)}).e({p:2*E-1+"i",o:2*E-1+"i",O:"3M",j:(A.j?0:(-1*E))+"i",h:(A.h?0:(-1*E))+"i"})))}}});q.4N({24:b(C,B){C=$(C);c A=N.10({3D:"h j",3p:"4M-3p",34:"4K",1L:""},23[2]||{});C.e(f.1k?{4J:"6j:6k.4H.4G(2h=\'"+B+"\'\', 34=\'"+A.34+"\')"}:{4F:A.1L+" 33("+B+") "+A.3D+" "+A.3p});Q C}});U.4c={P:b(){f.2L(3);3.2w();c D={};9(3.8.X){D.2f={1G:0,1H:0}}12{c A=3.15.2F(),C=3.15.3R(),B=1g.1F.2C();A.j+=(-1*(C[0]-B[0]));A.h+=(-1*(C[1]-B[1]));D.2f={1G:A.j,1H:A.h}}9(3.8.1l){3.2U(D)}12{3.1T(D)}3.1C()}};U.10=b(A){A.k.1P={};N.10(A.k.1P,{P:U.4c.P.1f(A),V:A.V.1f(A),1B:f.1B.1f(f,A.k)})};U.3N();',62,398,'|||this|||||options|if||function|var||setStyle|Tips||top|px|left|element||stem|wrapper|height|width|Element|new|insert||className|||||||||||||||||||Object|position|show|return|div|case|loader|Prototip|hide|images|hook|false||extend|title|else|tooltip||target||break|mouseout|showOn|closeButton|horizontal|offset|visible|observe|bind|document|vertical|border|mouseover|fixIE|ajax|true|useEvent|radius|stemInverse|zIndex|iframeShim|bottom|tip|tips|content|delay|mouse|stopObserving|bindAsEventListener|margin|remove|hideAfter|orientation|clearTimer|viewport|pointerX|pointerY|hideOn|mouseleave|fixed|backgroundColor|visibility|eventToggle|hideTargets|prototip|auto|stemImage|prototip_Corner|showDelayed|middle|Prototype|mouseenter|click|toolbar|capture|toLowerCase|mouseHook|getDimensions|arguments|setPngBackground|invoke|borderTop|style|borderFrame|Event|null|_inverse|positionStem||clone|fakePointer|none|src|match|prototip_CornerWrapper|push|png|close|display|capitalize|initialize|mousemove|isString|addClassName|for|length|eventPosition|cancelHideAfter|ajaxContentLoading|tagName|float|iframeShimDimensions|isElement|getScrollOffsets|ajaxHideEvent|hidden|cumulativeOffset|eventCheckDelay|wrap|include|build|member|raise|select|Browser|padding|clearfix|zIndexTop|stemWrapper|body|convertVersionString|ajaxShow|inverseStem|borderCenter|unload|getStyle|window|onComplete|right|default|url|sizingMethod|Styles|eventShow|getPositionWithinViewport|add|activityLeave|activityEnter|event|hideElement|100|_update|IE|highest|toggleInt|each|borderMiddle|replace|removeVisible|borderColor|borderRow|li|repeat|WebKit419|getContext|stemBox|REQUIRED_|parseFloat|find|_stemTranslation|9500px|activate|setup|fixSafari2|require|specialEvent|align|removeAll|charAt|block|afterHide|switch|fire|in|Timer|absolute|start|ajaxContentLoaded|ajaxHide|relative|cumulativeScrollOffset|buttonEvent|Action|namespaces|On|toggle|eventHide|create|addVisibile|getWidth|input|update|_captureTroubleElements|prototip_Fill|createCorner|fillRect|without|borderBottom|prototip_Between|deactivate|_|Methods|toUpperCase|throw|prototip_StemWrapper|prototip_Stem|gif|prototipLoader|exec|Version|MSIE|RegExp|opacity|undefined|frameBorder|javascript|typeof|iframe|9500|script|area|emptyFunction|VML|head|endsWith|styles|js|behavior|closeButtons|addRule|background|AlphaImageLoader|Microsoft|000000|filter|scale|createStyleSheet|no|addMethods|toFixed|arcSize|strokeColor|loaded|strokeWeight|roundrect|abs|overflow|PI|cannot|dom|available||fillStyle|not|Class|descendantOf|canvas|Tip|leftMiddle|BOTTOMLEFT|bottomMiddle|vml|rightBottom|RIGHTMIDDLE|bottomRight|leftBottom|TOPMIDDLE|TOPLEFT|bottomLeft|catch|com|rightMiddle|topMiddle|clear|rightTop|microsoft|topRight|hideAfterTimer|shown|clearTimeout|try|schemas|showTimer|marginTop|Request|Ajax|relatedTarget|both|ajaxTimer|loaderTimer|responseText|LEFTTOP|urn|REQUIRED_Prototype|TOPRIGHT|RIGHTTOP|stop|RIGHTBOTTOM|BOTTOMRIGHT|BOTTOMMIDDLE|blur|LEFTBOTTOM|LEFTMIDDLE|findElement|hideAction|close_hover|textarea|cornerCanvas|isNumber|indexOf|br|bl|tr|tl|arc|Math|prototip_CornerWrapperBottomRight|fill|cloneNode|prototip_CornerWrapperBottomLeft|fillcolor|times|1px|prototip_CornerWrapperTopRight|parseInt|prototip_BetweenCorners|prototip_CornerWrapperTopLeft|evaluate|ul|WebKit|inline|MIDDLE|progid|DXImageTransform|requires|prototip_StemImage|userAgent|prototip_StemBox|navigator'.split('|'),0,{}))
var canvascheck=document.createElement('canvas'),isIE=window.navigator.systemLanguage?1:0,isVM=document.namespaces?1:0,isCV=canvascheck.getContext?1:0,isJG=0,jg=[]
function showCoords(I,i,O,o,l,c){}
function getClassValue(i,I){var l=0,o=I.length;for(var O=0;O<i.length;O++)if(i[O].indexOf(I)==0){l=Math.min(i[O].substring(o),100);break};return Math.max(0,l)}
function getClassRGBColor(i,o,O){var c,l=O,C=o.length;for(var X=0;X<i.length;X++)if(i[X].indexOf(o)==0){c=i[X].substring(C);l=c.toLowerCase();break};if(!l.match(/^[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i))l=O||'000000';if(!isCV){return l}else{function I(i){return(Math.max(0,Math.min(parseInt(i,16),255)))};var V=I(l.substr(0,2)),v=I(l.substr(2,2)),x=I(l.substr(4,2));return V+','+v+','+x}}
function performRGBColor(I,l){if(!I.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i))I=l||'#000000';if(!isCV){return I.substr(1,6)}else{function i(I){return(Math.max(0,Math.min(parseInt(I,16),255)))};var c=i(I.substr(1,2)),o=i(I.substr(3,2)),O=i(I.substr(5,2));return c+','+o+','+O}}
function getClassAttribute(i,I){var l=0,o=I.length;for(var O=0;O<i.length;O++)if(i[O].indexOf(I)==0){l=1;break};return l}
function fadeCanvas(id,opac){var obj=document.getElementById(id);if(obj.fading==1&&opac<=100){obj.style.opacity=opac/100;opac+=10;window.setTimeout("fadeCanvas('"+id+"',"+opac+")",10)}}
function setAreaOver(l,O,v,c,C,V,t,y){var T,s,R,K,W,x,r,e,k,S,w,X,z,Z,E,i,Q=0,q='',S=l.getAttribute('rel'),I=document.getElementById(O);if(S!=null){K=S.split(",");w=K.unshift(l.id)}else K=new Array(l.id)
function o(){if(k.indexOf('forcegroup')!=-1){Q=getClassAttribute(X,"forcegroup")}else Q=0;if(k.indexOf('iopacity')!=-1){x=getClassValue(X,"iopacity")/100}else x=C;if(k.indexOf('iborder')!=-1){r=getClassRGBColor(X,"iborder",v)}else r=v;if(k.indexOf('icolor')!=-1){W=getClassRGBColor(X,"icolor",c)}else W=c;if(k.indexOf('noborder')!=-1){e=getClassAttribute(X,"noborder")}else e=V};if(isVM){for(T=0;T<K.length;T++){l=document.getElementById(K[T]);E='',k=l.className,X=k.split(" "),w=l.coords.split(",");if(Q==0)o();if(l.shape.toLowerCase()=='rect'){q+='<v:rect unselectable="on" strokeweight="1" filled="t" stroked="'+(e<1?"t":"f")+'" strokecolor="#'+r+'" style="zoom:1;margin:0;padding:0;display:block;position:absolute;left:'+parseInt(w[0])+'px;top:'+parseInt(w[1])+'px;width:'+parseInt(w[2]-w[0])+'px;height:'+parseInt(w[3]-w[1])+'px;"><v:fill color="#'+W+'" opacity="'+x+'" /></v:rect>'}else if(l.shape.toLowerCase()=='circle'){q+='<v:oval unselectable="on" strokeweight="1" filled="t" stroked="'+(e<1?"t":"f")+'" strokecolor="#'+r+'" style="zoom:1;margin:0;padding:0;display:block;position:absolute;left:'+parseInt(w[0]-w[2])+'px;top:'+parseInt(w[1]-w[2])+'px;width:'+(parseInt(w[2])*2)+'px;height:'+(parseInt(w[2])*2)+'px;"><v:fill color="#'+W+'" opacity="'+x+'" /></v:oval>'}else{for(R=2;R<w.length;R+=2)E+=parseInt(w[R])+','+parseInt(w[R+1])+',';q+='<v:shape unselectable="on" strokeweight="1" filled="t" stroked="'+(e<1?"t":"f")+'" strokecolor="#'+r+'" coordorigin="0,0" coordsize="'+I.width+','+I.height+'" path="m '+parseInt(w[0])+','+parseInt(w[1])+' l '+E+' x e" style="zoom:1;margin:0;padding:0;display:block;position:absolute;top:0px;left:0px;width:'+I.width+'px;height:'+I.height+'px;"><v:fill color="#'+W+'" opacity="'+x+'" /></v:shape>'}};I.innerHTML=q}else if(isCV){if(t<1){I.fading=0;I.style.opacity=0};i=I.getContext("2d");for(T=0;T<K.length;T++){l=document.getElementById(K[T]);k=l.className,X=k.split(" "),w=l.coords.split(",");if(Q==0)o();i.beginPath();if(l.shape.toLowerCase()=='rect'){i.rect(0.5+parseInt(w[0]),0.5+parseInt(w[1]),parseInt(w[2]-w[0]),parseInt(w[3]-w[1]));i.closePath()}else if(l.shape.toLowerCase()=='circle'){i.arc(0.5+parseInt(w[0]),0.5+parseInt(w[1]),parseInt(w[2]),0,(Math.PI/180)*360,false)}else{i.moveTo(parseInt(w[0]),parseInt(w[1]));for(R=2;R<w.length;R+=2)i.lineTo(parseInt(w[R]),parseInt(w[R+1]));i.closePath()};i.fillStyle='rgba('+W+','+x+')';i.strokeStyle='rgba('+r+',1)';i.fill();if(e<1)i.stroke()};if(t<1){I.fading=1;fadeCanvas(O,0)}}else{x=C;k=l.className;X=k.split(" ");if(k.indexOf('forcegroup')!=-1){Q=getClassAttribute(X,"forcegroup");if(Q!=0)if(k.indexOf('iopacity')!=-1){x=getClassValue(X,"iopacity")/100;Q=0}};if(isIE){I.style.filter="Alpha(opacity="+(x*100)+")"}else{I.style.opacity=x;I.style.MozOpacity=x;I.style.KhtmlOpacity=x};for(T=0;T<K.length;T++){l=document.getElementById(K[T]);k=l.className,X=k.split(" "),w=l.coords.split(",");if(Q==0){if(k.indexOf('forcegroup')!=-1){Q=getClassAttribute(X,"forcegroup")}else Q=0;if(k.indexOf('icolor')!=-1){W=getClassRGBColor(X,"icolor",c)}else W=c};jg[y].setColor("#"+W);if(l.shape.toLowerCase()=='rect'){jg[y].fillRect(parseInt(w[0]),parseInt(w[1]),parseInt(w[2]-w[0])+1,parseInt(w[3]-w[1])+1)}else if(l.shape.toLowerCase()=='circle'){jg[y].fillEllipse(parseInt(w[0]-w[2]),parseInt(w[1]-w[2]),parseInt(w[2])*2+1,parseInt(w[2])*2+1)}else{z=[];Z=[];s=0;for(R=0;R<w.length;R+=2){z[s]=parseInt(w[R]);Z[s]=parseInt(w[R+1]);s++};jg[y].fillPolygon(z,Z)};jg[y].paint()}}}
function setAreaOut(o,l,O,c){var i=document.getElementById(l);if(isVM){i.innerHTML=''}else if(isJG){jg[c].clear()}else if(isCV){var I=i.getContext("2d");I.clearRect(0,0,i.width,i.height)}}
function extAreaOver(I,o){var i=document.getElementById(I),l=document.getElementById(o),O=document.getElementById(i.canvasid),v=performRGBColor(i.options['bordercolor'],'#0000ff'),C=performRGBColor(i.options['areacolor'],'#000000'),c=i.options['opacity']/100;if(i&&l&&O)setAreaOver(l,i.canvasid,v,C,c,i.options['noborder'],i.options['nofade'],i.jg)}
function extAreaOut(I,o){var i=document.getElementById(I),l=document.getElementById(o),O=document.getElementById(i.canvasid);if(i&&l&&O)setAreaOut(l,i.canvasid,i.options['nofade'],i.jg)}
function getCoords(w,z,X,Z,K,k,S,s,V,x){var q,W,I,i,l,o,c,C,v=0,O=0;if(!w)w=window.event;if(w.pageX||w.pageY){v=w.pageX;O=w.pageY};l=w.clientX;o=w.clientY;if(self.pageXOffset||self.pageYOffset){I=self.pageXOffset;if(I>0&&v==l)l-=I;i=self.pageYOffset;if(i>0&&O==o)o-=i}else if(document.documentElement){I=document.documentElement.scrollLeft;i=document.documentElement.scrollTop}else if(document.body){I=document.body.scrollLeft;i=document.body.scrollTop};if(document.body.scrollHeight!=x||document.body.scrollWidth!=V){var W=document.getElementById(Z),q=findPosXY(W);K=q.x;k=q.y};c=Math.min(Math.max(l+I-K,0),S);C=Math.min(Math.max(o+i-k,0),s);showCoords(z,X,c,C,S,s)}
function findPosXY(i){var l,I={x:i.offsetLeft,y:i.offsetTop};if(i.offsetParent){l=findPosXY(i.offsetParent);I.x+=l.x;I.y+=l.y};return I}
function roundedRect(o,c,C,l,I,i,O){if(!O)o.beginPath();o.moveTo(c,C+i);o.lineTo(c,C+I-i);o.quadraticCurveTo(c,C+I,c+i,C+I);o.lineTo(c+l-i,C+I);o.quadraticCurveTo(c+l,C+I,c+l,C+I-i);o.lineTo(c+l,C+i);o.quadraticCurveTo(c+l,C,c+l-i,C);o.lineTo(c+i,C);o.quadraticCurveTo(c,C,c,C+i);if(!O)o.closePath()}
function getRadius(i,l,I){var o=(Math.min(l,I)/100);i=Math.max(Math.min(100,i/o),0);return i+'%'};var cvi_map={defaultRadius:0,defaultOpacity:33,defaultBordercolor:'#0000ff',defaultAreacolor:'#000000',defaultNoborder:false,defaultNofade:false,defaultShowcoords:false,defaultImgsrc:'',defaultMapid:'',defaultDelayed:false,add:function(i,o){var V,C=i.useMap.split("#");if(C[1]!=''&&C[1].length>=1)V=document.getElementsByName(C[1])[0];if(i.tagName.toUpperCase()=="IMG"&&V){var v={radius:cvi_map.defaultRadius,opacity:cvi_map.defaultOpacity,bordercolor:cvi_map.defaultBordercolor,areacolor:cvi_map.defaultAreacolor,noborder:cvi_map.defaultNoborder,nofade:cvi_map.defaultNofade,showcoords:cvi_map.defaultShowcoords,imgsrc:cvi_map.defaultImgsrc,mapid:cvi_map.defaultMapid,delayed:cvi_map.defaultDelayed};if(o){for(var Z in v)if(!o[Z])o[Z]=v[Z]}else o=v;var X=('iwidth' in o)?parseInt(o.iwidth):i.width,x=('iheight' in o)?parseInt(o.iheight):i.height;try{var l=i.parentNode;l.style.position=(l.style.position=='static'||l.style.position==''?'relative':l.style.position);l.style.height=i.height+'px';l.style.width=i.width+'px';l.style.padding=0+'px';l.style.MozUserSelect="none";l.style.KhtmlUserSelect="none";l.unselectable="on";var c,O,I;i.jg=0;if(isVM){if(document.namespaces['v']==null){var z=document.createStyleSheet();z.addRule("v\\:*","behavior: url(#default#VML);");document.namespaces.add("v","urn:schemas-microsoft-com:vml")};I=document.createElement(['<var style="zoom:1;overflow:hidden;display:block;width:'+i.width+'px;height:'+i.height+'px;padding:0;">'].join(''));O=document.createElement(['<var style="zoom:1;overflow:hidden;display:block;width:'+i.width+'px;height:'+i.height+'px;padding:0;">'].join(''));dummy=document.createElement(['<var style="zoom:1;overflow:hidden;display:block;width:'+i.width+'px;height:'+i.height+'px;padding:0;">'].join(''))}else if(isCV){I=document.createElement('canvas');O=document.createElement('canvas')}else{I=document.createElement('div');O=document.createElement('img');O.src=i.src;if(typeof (window.jsGraphics)!=='undefined'){i.jg=parseInt(jg.length);jg[i.jg]=new jsGraphics(I);isJG=1}};I.id=i.id+'_canvas';I.style.height=i.height+'px';I.style.width=i.width+'px';I.height=i.height;I.width=i.width;I.left=0;I.top=0;I.style.position='absolute';I.style.left=0+'px';I.style.top=0+'px';I.fading=0;i.className='';i.style.cssText='';i.left=0;i.top=0;i.style.position='absolute';i.style.height=i.height+'px';i.style.width=i.width+'px';i.style.left=0+'px';i.style.top=0+'px';i.style.MozUserSelect="none";i.style.KhtmlUserSelect="none";i.unselectable="on";i.options=o;i.canvasid=i.id+'_canvas';i.dummyid=i.id+'_dummy';i.bgrndid=i.id+'_image';i.blindid=V.name+'_blind';i.mapname=V.name;i.areas=V.innerHTML;i.active=false;if(isIE){i.style.filter="Alpha(opacity=0)"}else{i.style.opacity=0;i.style.MozOpacity=0;i.style.KhtmlOpacity=0};O.id=i.bgrndid;O.left=0;O.top=0;O.style.position='absolute';O.style.height=i.height+'px';O.style.width=i.width+'px';O.style.left=0+'px';O.style.top=0+'px';O.height=i.height;O.width=i.width;c=document.createElement('div');c.id=i.blindid;c.className="blind_area";c.left=0;c.top=0;c.style.position='absolute';c.style.height=i.height+'px';c.style.width=i.width+'px';c.style.left=0+'px';c.style.top=0+'px';c.innerHTML=" ";l.insertBefore(I,i);l.insertBefore(O,I);l.insertBefore(c,i);cvi_map.modify(i,o)}catch(e){}}},modify:function(image,options){try{var radius=(typeof options.radius=='number'?options.radius:image.options['radius']);image.options['radius']=radius;var opacity=(typeof options.opacity=='number'?options.opacity:image.options['opacity']);image.options['opacity']=opacity;var bcolor=(typeof options.bordercolor=='string'?options.bordercolor:image.options['bordercolor']);image.options['bordercolor']=bcolor;var acolor=(typeof options.areacolor=='string'?options.areacolor:image.options['areacolor']);image.options['areacolor']=acolor;var noborder=(typeof options.noborder=='boolean'?options.noborder:image.options['noborder']);image.options['noborder']=noborder;var nofade=(typeof options.nofade=='boolean'?options.nofade:image.options['nofade']);image.options['nofade']=nofade;var showcoords=(typeof options.showcoords=='boolean'?options.showcoords:image.options['showcoords']);image.options['showcoords']=showcoords;var delayed=(typeof options.delayed=='boolean'?options.delayed:image.options['delayed']);image.options['delayed']=delayed;var imgsrc=(typeof options.imgsrc=='string'?options.imgsrc:image.options['imgsrc']);image.options['imgsrc']=imgsrc;var mapid=(typeof options.mapid=='string'?options.mapid:image.options['mapid']);image.options['mapid']=mapid;var context,func,ih=image.height,iw=image.width,radius=parseInt(Math.min(Math.min(iw/4,ih/4),radius)),opacity=opacity==0?0.33:opacity/100,bcolor=performRGBColor(bcolor,'#0000ff'),acolor=performRGBColor(acolor,'#000000'),canvas=document.getElementById(image.canvasid),dummy=document.getElementById(image.dummyid),bgrnd=document.getElementById(image.bgrndid),map=document.getElementsByName(image.mapname)[0],opac=100;function replace(){if(mapid!=''){var tmp=document.getElementById(mapid);if(tmp)map.innerHTML=tmp.innerHTML}else map.innerHTML=image.areas};function prepare(){if(!delayed)replace();for(var j=0;j<map.areas.length;j++)if(map.areas[j].shape.match(/(rect|poly|circle)/i))if(window.opera||map.areas[j].coords!=''){if(map.areas[j].id=='')map.areas[j].id=image.mapname+'_'+j;if(isVM||isIE){func=map.areas[j].onmouseover;if(func!=null){tmp=String(func);func=tmp.substr(23,tmp.length-25)};map.areas[j].onmouseover=new Function('setAreaOver(this,"'+canvas.id+'","'+bcolor+'","'+acolor+'",'+opacity+','+noborder+','+nofade+','+image.jg+');'+func);func=map.areas[j].onmouseout;if(func!=null){tmp=String(func);func=tmp.substr(23,tmp.length-25)};map.areas[j].onmouseout=new Function('setAreaOut(this,"'+canvas.id+'",'+nofade+','+image.jg+');'+func)}else{func=map.areas[j].getAttribute("onmouseover");map.areas[j].setAttribute("onmouseover","setAreaOver(this,'"+canvas.id+"','"+bcolor+"','"+acolor+"',"+opacity+","+noborder+","+nofade+","+image.jg+");"+func);func=map.areas[j].getAttribute("onmouseout");map.areas[j].setAttribute("onmouseout","setAreaOut(this,'"+canvas.id+"',"+nofade+","+image.jg+");"+func)}};if(showcoords){var atr,t=findPosXY(image),ph=document.body.scrollHeight,pw=document.body.scrollWidth;if(isVM||isIE){image.onmousemove=new Function('getCoords(event,"'+image.mapname+'",0,"'+image.id+'",'+t.x+','+t.y+','+iw+','+ih+','+pw+','+ph+');'+image.movefunc)}else image.setAttribute("onmousemove","getCoords(event,'"+image.mapname+"',0,'"+image.id+"',"+t.x+","+t.y+","+iw+","+ih+","+pw+","+ph+");"+image.movefunc);if(map.length>0)for(var j=0;j<map.areas.length;j++)if(map.areas[j].shape.match(/(rect|poly|circle)/i))if(window.opera||map.areas[j].coords!=''){atr=map.areas[j].id;if(isVM||isIE){func=map.areas[j].onmousemove;if(func!=null){tmp=String(func);func=tmp.substr(23,tmp.length-25)};map.areas[j].onmousemove=new Function('getCoords(event,"'+image.mapname+'","'+atr+'","'+image.id+'",'+t.x+','+t.y+','+iw+','+ih+','+pw+','+ph+');'+func)}else{func=map.areas[j].getAttribute("onmousemove");map.areas[j].setAttribute("onmousemove","getCoords(event,'"+image.mapname+"','"+atr+"','"+image.id+"',"+t.x+","+t.y+","+iw+","+ih+","+pw+","+ph+");"+func)}}}};if(canvas&&bgrnd&&map){if(isCV){context=canvas.getContext("2d");context.clearRect(0,0,canvas.width,canvas.height)}else if(isVM){canvas.innerHTML=''}else{if(isIE){canvas.style.filter="Alpha(opacity="+(opacity*100)+")"}else{canvas.style.opacity=opacity;canvas.style.MozOpacity=opacity;canvas.style.KhtmlOpacity=opacity};if(isJG)jg[image.jg].clear()};if(delayed)replace();if(isCV){if(imgsrc!=''){var img=new Image();img.onload=function(){context=bgrnd.getContext("2d");context.clearRect(0,0,bgrnd.width,bgrnd.height);context.save();if(radius>0){roundedRect(context,0,0,bgrnd.width,bgrnd.height,radius);context.clip()};context.fillStyle='rgba(0,0,0,0)';context.fillRect(0,0,bgrnd.width,bgrnd.height);context.drawImage(img,0,0,bgrnd.width,bgrnd.height);context.restore();prepare()};img.src=imgsrc}else{context=bgrnd.getContext("2d");context.clearRect(0,0,bgrnd.width,bgrnd.height);context.save();if(radius>0){roundedRect(context,0,0,bgrnd.width,bgrnd.height,radius);context.clip()};context.fillStyle='rgba(0,0,0,0)';context.fillRect(0,0,bgrnd.width,bgrnd.height);context.drawImage(image,0,0,bgrnd.width,bgrnd.height);context.restore();prepare()}}else if(isVM){if(radius>0)radius=getRadius(radius,bgrnd.width,bgrnd.height);bgrnd.innerHTML='<v:roundrect arcsize="'+radius+'" strokeweight="0" filled="t" stroked="f" fillcolor="#ffffff" style="zoom:1;margin:0;padding:0;display:block;position:absolute;left:0px;top:0px;width:'+bgrnd.width+'px;height:'+bgrnd.height+'px;"><v:fill src="'+(imgsrc!=''?imgsrc:image.src)+'" type="frame" /></v:roundrect>';prepare()}else{bgrnd.src=imgsrc!=''?imgsrc:image.src;prepare()};image.active=true;if(isVM||isIE){func=image.onmousemove;if(func!=null){tmp=String(func);func=tmp.substr(23,tmp.length-25)};image.movefunc=func}else image.movefunc=image.getAttribute("onmousemove")}}catch(e){}},remove:function(i){var I,l=i.parentNode;if(i.active){if(isIE){i.style.filter="Alpha(opacity=100)"}else{i.style.opacity=100;i.style.MozOpacity=100;i.style.KhtmlOpacity=100};I=document.getElementsByName(i.mapname)[0];I.innerHTML=i.areas;i.active=false;i.areas='';if(isVM||isIE){i.onmousemove=i.movefunc}else i.setAttribute("onmousemove",i.movefunc);I=document.getElementById(i.canvasid);if(I)l.removeChild(I);I=document.getElementById(i.blindid);if(I)l.removeChild(I);I=document.getElementById(i.bgrndid);if(I)l.removeChild(I)}}}
function showRegions(){if($('regionmenu'))$('regionmenu').setStyle({display:'block'})};Event.observe(window,"load",showRegions)
var omitformtags=["input","textarea","select"];omitformtags=omitformtags.join("|")
function disableselect(e){if(omitformtags.indexOf(e.target.tagName.toLowerCase())==-1)return false}
function reEnable(){return true};if(typeof document.onselectstart!="undefined"){document.onselectstart=new Function("return false")}else{document.onmousedown=disableselect;document.onmouseup=reEnable}
var browserName=navigator.appName,browserVer=parseInt(navigator.appVersion),version="",msie4=(browserName=="Microsoft Internet Explorer"&&browserVer>=4);if((browserName=="Netscape"&&browserVer>=3)||msie4||browserName=="Konqueror"||browserName=="Opera"){version="n3"}else version="n2"
function blurLink(theObject){if(msie4)theObject.blur()}
var hCarousel,vCarousel
function runCarousel(){if($('horizontal_carousel'))hCarousel=new UI.Carousel("horizontal_carousel",{direction:"horizontal",scrollInc:"auto"});if($('vertical_carousel'))vCarousel=new UI.Carousel("vertical_carousel",{direction:"vertical",scrollInc:"auto"})}
function IsNumeric(o){var l="0123456789.",I=true,O;for(i=0;i<o.length&&I==true;i++){O=o.charAt(i);if(l.indexOf(O)==-1)I=false};return I};if(typeof Prototype=='undefined'||!Prototype.Version.match("1.6"))throw ("Prototype-UI library require Prototype library >= 1.6.0");if(Prototype.Browser.WebKit){Prototype.Browser.WebKitVersion=parseFloat(navigator.userAgent.match(/AppleWebKit\/([\d\.\+]*)/)[1]);Prototype.Browser.Safari2=(Prototype.Browser.WebKitVersion<420)};if(Prototype.Browser.IE){Prototype.Browser.IEVersion=parseFloat(navigator.appVersion.split(';')[1].strip().split(' ')[1]);Prototype.Browser.IE6=Prototype.Browser.IEVersion==6;Prototype.Browser.IE7=Prototype.Browser.IEVersion==7};Prototype.falseFunction=function(){return false};Prototype.trueFunction=function(){return true};var UI={Abstract:{},Ajax:{}};Object.extend(Class.Methods,{extend:Object.extend.methodize(),addMethods:Class.Methods.addMethods.wrap(function(proceed,source){if(!source)return this;if(!source.hasOwnProperty('methodsAdded'))return proceed(source);var callback=source.methodsAdded;delete source.methodsAdded;proceed(source);callback.call(source,this);source.methodsAdded=callback;return this}),addMethod:function(name,lambda){var methods={};methods[name]=lambda;return this.addMethods(methods)},method:function(name){return this.prototype[name].valueOf()},classMethod:function(){$A(arguments).flatten().each(function(method){this[method]=(function(){return this[method].apply(this,arguments)}).bind(this.prototype)},this);return this},undefMethod:function(name){this.prototype[name]=undefined;return this},removeMethod:function(name){delete this.prototype[name];return this},aliasMethod:function(newName,name){this.prototype[newName]=this.prototype[name];return this},aliasMethodChain:function(target,feature){feature=feature.camelcase();this.aliasMethod(target+"Without"+feature,target);this.aliasMethod(target,target+"With"+feature);return this}});Object.extend(Number.prototype,{snap:function(round){return parseInt(round==1?this:(this/round).floor()*round)}});Object.extend(String.prototype,{camelcase:function(){var string=this.dasherize().camelize();return string.charAt(0).toUpperCase()+string.slice(1)},makeElement:function(){var wrapper=new Element('div');wrapper.innerHTML=this;return wrapper.down()}});Object.extend(Array.prototype,{empty:function(){return !this.length},extractOptions:function(){return this.last().constructor===Object?this.pop():{}},removeAt:function(index){var object=this[index];this.splice(index,1);return object},remove:function(object){var index;while((index=this.indexOf(object))!=-1)this.removeAt(index);return object},insert:function(index){var args=$A(arguments);args.shift();this.splice.apply(this,[index,0].concat(args));return this}});Element.addMethods({getScrollDimensions:function(element){return{width:element.scrollWidth,height:element.scrollHeight}},getScrollOffset:function(element){return Element._returnOffset(element.scrollLeft,element.scrollTop)},setScrollOffset:function(element,offset){element=$(element);if(arguments.length==3)offset={left:offset,top:arguments[2]};element.scrollLeft=offset.left;element.scrollTop=offset.top;return element},getNumStyle:function(element,style){var value=parseFloat($(element).getStyle(style));return isNaN(value)?null:value},appendText:function(element,text){element=$(element);text=String.interpret(text);element.appendChild(document.createTextNode(text));return element}});document.whenReady=function(callback){if(document.loaded){callback.call(document)}else document.observe('dom:loaded',callback)};Object.extend(document.viewport,{getScrollOffset:document.viewport.getScrollOffsets,setScrollOffset:function(offset){Element.setScrollOffset(Prototype.Browser.WebKit?document.body:document.documentElement,offset)},getScrollDimensions:function(){return Element.getScrollDimensions(Prototype.Browser.WebKit?document.body:document.documentElement)}});(function(){UI.Options={methodsAdded:function(klass){klass.classMethod($w(' setOptions allOptions optionsGetter optionsSetter optionsAccessor '))},setOptions:function(options){if(!this.hasOwnProperty('options'))this.options=this.allOptions();this.options=Object.extend(this.options,options||{})},allOptions:function(){var superclass=this.constructor.superclass,ancestor=superclass&&superclass.prototype;return(ancestor&&ancestor.allOptions)?Object.extend(ancestor.allOptions(),this.options):Object.clone(this.options)},optionsGetter:function(){addOptionsAccessors(this,arguments,false)},optionsSetter:function(){addOptionsAccessors(this,arguments,true)},optionsAccessor:function(){this.optionsGetter.apply(this,arguments);this.optionsSetter.apply(this,arguments)}}
function addOptionsAccessors(receiver,names,areSetters){names=$A(names).flatten();if(names.empty())names=Object.keys(receiver.allOptions());names.each(function(name){var accessorName=(areSetters?'set':'get')+name.camelcase();receiver[accessorName]=receiver[accessorName]||(areSetters?function(value){return this.options[name]=value}:function(){return this.options[name]})})}})();UI.Carousel=Class.create(UI.Options,{options:{direction:"horizontal",previousButton:".previous_button",nextButton:".next_button",container:".container",scrollInc:"auto",disabledButtonSuffix:'_disabled',overButtonSuffix:'_over'},initialize:function(element,options){this.setOptions(options);this.element=$(element);this.id=this.element.id;this.container=this.element.down(this.options.container).firstDescendant();this.elements=this.container.childElements();this.previousButton=this.options.previousButton==false?null:this.element.down(this.options.previousButton);this.nextButton=this.options.nextButton==false?null:this.element.down(this.options.nextButton);this.posAttribute=(this.options.direction=="horizontal"?"left":"top");this.dimAttribute=(this.options.direction=="horizontal"?"width":"height");this.elementSize=this.computeElementSize();this.nbVisible=this.currentSize()/this.elementSize;var scrollInc=this.options.scrollInc;if(scrollInc=="auto")scrollInc=Math.floor(this.nbVisible);[this.previousButton,this.nextButton].each(function(button){if(!button)return;var className=(button==this.nextButton?"next_button":"previous_button")+this.options.overButtonSuffix;button.clickHandler=this.scroll.bind(this,(button==this.nextButton?-1:1)*scrollInc*this.elementSize);button.observe("click",button.clickHandler).observe("mouseover",function(){button.addClassName(className)}.bind(this)).observe("mouseout",function(){button.removeClassName(className)}.bind(this))},this);this.updateButtons()},destroy:function($super){[this.previousButton,this.nextButton].each(function(button){if(!button)return;button.stopObserving("click",button.clickHandler)},this);this.element.remove();this.fire('destroyed')},fire:function(eventName,memo){memo=memo||{};memo.carousel=this;return this.element.fire('carousel:'+eventName,memo)},observe:function(eventName,handler){this.element.observe('carousel:'+eventName,handler.bind(this));return this},stopObserving:function(eventName,handler){this.element.stopObserving('carousel:'+eventName,handler);return this},checkScroll:function(position,updatePosition){if(position>0){position=0}else{var limit=this.elements.last().positionedOffset()[this.posAttribute]+this.elementSize,carouselSize=this.currentSize();if(position+limit<carouselSize)position+=carouselSize-(position+limit);position=Math.min(position,0)};if(updatePosition)this.container.style[this.posAttribute]=position+"px";return position},scroll:function(deltaPixel){if(this.animating)return this;var position=this.currentPosition()+deltaPixel;position=this.checkScroll(position,false);deltaPixel=position-this.currentPosition();if(deltaPixel!=0){this.animating=true;this.fire("scroll:started");var that=this;this.container.morph("opacity:1",{duration:0.2,afterFinish:function(){that.container.morph(that.posAttribute+": "+position+"px",{duration:0.4,delay:0.2,afterFinish:function(){that.container.morph("opacity:1",{duration:0.2,afterFinish:function(){that.animating=false;that.updateButtons().fire("scroll:ended",{shift:deltaPixel/that.currentSize()})}})}})}})};return this},scrollTo:function(index){if(this.animating||index<0||index>this.elements.length||index==this.currentIndex()||isNaN(parseInt(index)))return this;return this.scroll((this.currentIndex()-index)*this.elementSize)},updateButtons:function(){this.updatePreviousButton();this.updateNextButton();return this},updatePreviousButton:function(){var position=this.currentPosition(),previousClassName="previous_button"+this.options.disabledButtonSuffix;if(this.previousButton.hasClassName(previousClassName)&&position!=0){this.previousButton.removeClassName(previousClassName);this.fire('previousButton:enabled')};if(!this.previousButton.hasClassName(previousClassName)&&position==0){this.previousButton.addClassName(previousClassName);this.fire('previousButton:disabled')}},updateNextButton:function(){var lastPosition=this.currentLastPosition(),size=this.currentSize(),nextClassName="next_button"+this.options.disabledButtonSuffix;if(this.nextButton.hasClassName(nextClassName)&&lastPosition!=size){this.nextButton.removeClassName(nextClassName);this.fire('nextButton:enabled')};if(!this.nextButton.hasClassName(nextClassName)&&lastPosition==size){this.nextButton.addClassName(nextClassName);this.fire('nextButton:disabled')}},computeElementSize:function(){return this.elements.first().getDimensions()[this.dimAttribute]},currentIndex:function(){return -this.currentPosition()/this.elementSize},currentLastPosition:function(){if(this.container.childElements().empty())return 0;return this.currentPosition()+this.elements.last().positionedOffset()[this.posAttribute]+this.elementSize},currentPosition:function(){return this.container.getNumStyle(this.posAttribute)},currentSize:function(){return this.container.parentNode.getDimensions()[this.dimAttribute]},updateSize:function(){this.nbVisible=this.currentSize()/this.elementSize;var scrollInc=this.options.scrollInc;if(scrollInc=="auto")scrollInc=Math.floor(this.nbVisible);[this.previousButton,this.nextButton].each(function(button){if(!button)return;button.stopObserving("click",button.clickHandler);button.clickHandler=this.scroll.bind(this,(button==this.nextButton?-1:1)*scrollInc*this.elementSize);button.observe("click",button.clickHandler)},this);this.checkScroll(this.currentPosition(),true);this.updateButtons().fire('sizeUpdated');return this}});UI.Ajax.Carousel=Class.create(UI.Carousel,{options:{elementSize:-1,url:null},initialize:function($super,element,options){if(!options.url)throw ("url option is required for UI.Ajax.Carousel");if(!options.elementSize)throw ("elementSize option is required for UI.Ajax.Carousel");$super(element,options);this.endIndex=0;this.hasMore=true;this.updateHandler=this.update.bind(this);this.updateAndScrollHandler=function(nbElements,transport,json){this.update(transport,json);this.scroll(nbElements)}.bind(this);this.runRequest.bind(this).defer({parameters:{from:0,to:Math.ceil(this.nbVisible)-1},onSuccess:this.updateHandler})},runRequest:function(options){this.requestRunning=true;new Ajax.Request(this.options.url,Object.extend({method:"GET"},options));this.fire("request:started");return this},scroll:function($super,deltaPixel){if(this.animating||this.requestRunning)return this;var nbElements=(-deltaPixel)/this.elementSize;if(this.hasMore&&nbElements>0&&this.currentIndex()+this.nbVisible+nbElements-1>this.endIndex){var from=this.endIndex+1,to=Math.ceil(from+this.nbVisible-1);this.runRequest({parameters:{from:from,to:to},onSuccess:this.updateAndScrollHandler.curry(deltaPixel).bind(this)});return this}else $super(deltaPixel)},update:function(transport,json){this.requestRunning=false;this.fire("request:ended");if(!json)json=transport.responseJSON;this.hasMore=json.more;this.endIndex=Math.max(this.endIndex,json.to);this.elements=this.container.insert({bottom:json.html}).childElements();return this.updateButtons()},computeElementSize:function(){return this.options.elementSize},updateSize:function($super){var nbVisible=this.nbVisible;$super();if(Math.floor(this.nbVisible)-Math.floor(nbVisible)>=1&&this.hasMore)if(this.currentIndex()+Math.floor(this.nbVisible)>=this.endIndex){var nbNew=Math.floor(this.currentIndex()+Math.floor(this.nbVisible)-this.endIndex);this.runRequest({parameters:{from:this.endIndex+1,to:this.endIndex+nbNew},onSuccess:this.updateHandler})};return this},updateNextButton:function($super){var lastPosition=this.currentLastPosition(),size=this.currentSize(),nextClassName="next_button"+this.options.disabledButtonSuffix;if(this.nextButton.hasClassName(nextClassName)&&lastPosition!=size){this.nextButton.removeClassName(nextClassName);this.fire('nextButton:enabled')};if(!this.nextButton.hasClassName(nextClassName)&&lastPosition==size&&!this.hasMore){this.nextButton.addClassName(nextClassName);this.fire('nextButton:disabled')}}})
function getImgSize(imgSrc,el){var newImg=new Image();newImg.src=imgSrc;var w=newImg.width;el.style.width=w+'px'}
function addHCTips(){new Tip('slideshow0','Click to view property',{style:'holidaychateau',stem:'topLeft',hideAfter:2,title:'Chateau de Daumas<br />France<br />Burgundy<br />Sleeps 12<br />&pound;1527 to &pound;8141 p/w'});new Tip('slideshow1','Click to view property',{style:'holidaychateau',stem:'topLeft',hideAfter:2,title:'Domaine du Gardon<br />France<br />Normandy<br />Sleeps 26<br />&pound;1464 to &pound;8442 p/w'});new Tip('slideshow2','Click to view property',{style:'holidaychateau',stem:'topLeft',hideAfter:2,title:'Chateau Rousse<br />France<br />Dordogne<br />Sleeps 34<br />&pound;3025 to &pound;13077 p/w'});new Tip('slideshow3','Click to view property',{style:'holidaychateau',stem:'topLeft',hideAfter:2,title:'Chateau de l&prime;Alloy<br />Belgium<br />Belgium<br />Sleeps 35<br />&pound;2183 to &pound;3888 p/w'});new Tip('slideshow4','Click to view property',{style:'holidaychateau',stem:'topLeft',hideAfter:2,title:'Chateau Garence<br />France<br />Dordogne<br />Sleeps 12<br />&pound;3379 to &pound;4505 p/w'});new Tip('slideshow5','Click to view property',{style:'holidaychateau',stem:'topLeft',hideAfter:2,title:'Chateau Saint Aurel<br />France<br />Auvergne &amp; Limousin<br />Sleeps 12<br />&pound;4579 to &pound;7632 p/w'});new Tip('slideshow6','Click to view property',{style:'holidaychateau',stem:'topLeft',hideAfter:2,title:'Chateau Duchaine<br />France<br />Dordogne<br />Sleeps 8<br />&pound;8783 p/w'});new Tip('slideshow7','Click to view property',{style:'holidaychateau',stem:'topLeft',hideAfter:2,title:'Glencoe Castle<br />Ireland<br />West of Ireland<br />Sleeps 30<br />&pound;40304 p/w'});new Tip('horizontal_previous_button','Click to scroll left',{style:'holidaychateau',stem:'leftMiddle',hideAfter:2,hook:{tip:'topLeft',mouse:false},offset:{x:38,y:75}});new Tip('horizontal_next_button','Click to scroll right',{style:'holidaychateau',stem:'rightMiddle',hideAfter:2,hook:{tip:'topRight',mouse:false},offset:{x:10,y:75}})};Event.observe(window,"load",runCarousel);Event.observe(window,"load",addHCTips)
function initFoldMenu(){this.autoFold=0;this.foldCurrent=0;this.startFolded=0;this.enableCookie=0;this.cookieLifetime=0;this.direction=0;this.imagePath="fileadmin/";this.imageSwap=new Array();this.altSwap=new Array();this.prefix="foldoutMenu";this.foldMenu=function(){if(!document.getElementById&&!document.all)return;this.displayMode=(this.direction)?"inline":"block";if(this.enableCookie){this.foldout_expand=this.parseString(this.prefix+'_expand');this.foldout_collapse=this.parseString(this.prefix+'_collapse')};var id=arguments[0].split(',');for(var k=0;k<id.length;k++){var el=this.getElById(id[k]);if(this.autoFold){var els=el.parentNode.parentNode.childNodes;for(var i=0;i<els.length;i++)if(els[i].nodeName=="LI"&&(els[i].lastChild.nodeName=="UL"||els[i].lastChild.nodeName=="OL")){var cel=els[i].lastChild,cidParts=cel.id.split('-');if(cel==el){this.fold(cel,cidParts[1],(cel.style.display==this.displayMode&&this.foldCurrent)?0:1)}else if(cel.style.display==this.displayMode)this.fold(cel,cidParts[1],0)}}else{var idParts=id[k].split('-'),foldMode=arguments[1];this.fold(el,idParts[1],isNaN(foldMode)?(el.style.display=="none"?1:0):foldMode)};if(this.enableCookie){this.saveString(this.prefix+'_expand',this.foldout_expand);this.saveString(this.prefix+'_collapse',this.foldout_collapse)}}};this.fold=function(el,uid,mode){el.style.display=(mode)?this.displayMode:"none";this.swapImage(el.id,mode);this.foldout_expand[uid]=mode;this.foldout_collapse[uid]=!mode};this.swapImage=function(id,mo){for(var j=0;j<this.imageSwap.length;j++)if(imgEl=this.getElById(id+"-"+j)){imgEl.setAttribute("src",this.imagePath+this.imageSwap[j][mo]);if(this.altSwap.length>=j&&isNaN(this.altSwap)){imgEl.setAttribute("alt",this.altSwap[j][mo]);imgEl.setAttribute("title",this.altSwap[j][mo])}}};this.getElById=function(idVal){return(document.getElementById)?document.getElementById(idVal):(document.all)?document.all[idVal]:null};this.setMenu=function(uids){this.foldout_expand=this.parseString(this.prefix+'_expand');this.foldout_collapse=this.parseString(this.prefix+'_collapse');this.displayMode=(this.direction)?"inline":"block";var uid=uids.split(",");for(var i=0;i<uid.length;i++){var el=this.getElById(this.prefix+"-"+uid[i]);if(this.foldout_expand[uid[i]]==1&&this.enableCookie){this.fold(el,uid[i],1)}else if(el.style.display!=this.displayMode)this.fold(el,uid[i],(!this.startFolded&&!this.autoFold)?1:0)}};this.setCookie=function(name,value,lifespan,access_path){var CookieString=name+"="+escape(value);if(lifespan>0){var today=expiredate=new Date();expiredate.setTime(today.getTime()+1000*60*60*24*lifespan);CookieString+="; expires="+expiredate.toGMTString()};CookieString+="; PATH="+((access_path!=null)?access_path:"");document.cookie=CookieString};this.getCookie=function(name){var search=name+"=",CookieString=document.cookie,result=null;if(CookieString.length>0){var offset=CookieString.indexOf(search);if(offset!=-1){offset+=search.length;end=CookieString.indexOf(";",offset);if(end==-1)end=CookieString.length;result=unescape(CookieString.substring(offset,end))}};return result};this.deleteCookie=function(name,path){this.setCookie(name,"Deleted",-1,path)};this.parseString=function(cookieName){var cookieString=this.getCookie(cookieName),uids=new Array();if(cookieString){var uid=cookieString.split('|');for(var i=0;i<uid.length-1;i++)uids[uid[i]]=1};return uids};this.saveString=function(cookieName,uids){var cookieString='';for(var i=0;i<uids.length;i++)if(uids[i]==1)cookieString+=i+'|';this.setCookie(cookieName,cookieString,this.cookieLifetime,'/')}}
function addHelpTips(){new Tip('help_step_1',"Narrow your search by selecting which countries you'd like to look for a property in. You can hold the CTRL button on your keyboard whilst clicking the list to select multiple countries.",{title:'Search by availability help',style:'portal_search',hideAfter:2,stem:'leftMiddle',hook:{target:'rightMiddle',tip:'leftMiddle'},offset:{x:0,y:0}});new Tip('help_step_2',"If you'd like a 10 day booking but would accept a 7 day booking if nothing else is available, please enter 7 and 10 respectively, then select \'Prefer 10 days\' when prompted to. <br /><br />	If you know you can only stay for 7 days, for example, click the \'My duration is fixed\' checkbox and enter 7 days.",{title:'Search by availability help',style:'portal_search',hideAfter:2,stem:'leftMiddle',hook:{target:'rightMiddle',tip:'leftMiddle'},offset:{x:0,y:0}});new Tip('help_step_3',"If you know you'd like to stay sometime in the summer holidays, you can enter a wide date range to search for availability right across the period. <br /><br />If your holiday dates are fixed, please tick the check box and select your dates.",{title:'Search by availability help',style:'portal_search',hideAfter:2,stem:'leftMiddle',hook:{target:'rightMiddle',tip:'leftMiddle'},offset:{x:0,y:0}});new Tip('help_step_4',"For short breaks, if you'd like your stay to include a Friday and Saturday at least, please tick the Friday and Saturday check boxes. <br /><br />For longer breaks, if you'd perfer to have two weekends in your 10 day booking, for example, please tick Saturday and Sunday. <br /><br /> You can tick as many or as few boxes as you like in order to help us get the right booking for you.",{title:'Search by availability help',style:'portal_search',hideAfter:2,stem:'leftMiddle',hook:{target:'rightMiddle',tip:'leftMiddle'},offset:{x:0,y:0}});new Tip('help_step_5',"This step helps us understand the make up of your party and will avoid returning results that don't meet your needs.",{title:'Search by availability help',style:'portal_search',hideAfter:2,stem:'leftMiddle',hook:{target:'rightMiddle',tip:'leftMiddle'},offset:{x:0,y:0}})};var errorElement=$('error'),currentStep=1,t,calendarObjForForm
function addCalendar(){calendarObjForForm=new DHTMLSuite.calendar({minuteDropDownInterval:10,numberOfRowsInHourDropDown:5,callbackFunctionOnDayClick:'getDateFromCalendar',isDragable:false,displayTimeBar:false})}
function pickDate(buttonObj,inputObject){calendarObjForForm.setCalendarPositionByHTMLElement(inputObject,0,inputObject.offsetHeight+2);calendarObjForForm.setInitialDateFromInput(inputObject,'dd/mm/yyyy');calendarObjForForm.addHtmlElementReference('myDate',inputObject);if(calendarObjForForm.isVisible()){calendarObjForForm.hide()}else{calendarObjForForm.resetViewDisplayedMonth();calendarObjForForm.display()}}
function displayPref(){var minRadio=$('prefer_min_radio'),maxRadio=$('prefer_max_radio'),preferMin=$('preferMin'),preferMax=$('preferMax');if(document.forms[0]){if(parseInt(document.forms[0].minStay.value)>parseInt(document.forms[0].maxStay.value)){var temp=document.forms[0].minStay.value;document.forms[0].minStay.value=document.forms[0].maxStay.value;document.forms[0].maxStay.value=temp};if(isNumeric(document.forms[0].minStay.value)&&isNumeric(document.forms[0].maxStay.value)){if(document.forms[0].minStay.value==document.forms[0].maxStay.value){preferMin.style.display="none";preferMax.style.display="none";maxRadio.innerHTML="";minRadio.innerHTML="";maxRadio.style.display="none";minRadio.style.display="none"}else{preferMin.style.display="";preferMax.style.display="";minRadio.innerHTML="Prefer "+document.forms[0].minStay.value+" days";minRadio.style.display="";maxRadio.innerHTML="Prefer "+document.forms[0].maxStay.value+" days";maxRadio.style.display="";var error=$('error');error.style.display="none";error.innerHTML=""}}else{preferMin.style.display="none";preferMax.style.display="none";maxRadio.innerHTML="";minRadio.innerHTML="";maxRadio.style.display="none";minRadio.style.display="none"}}}
function getDateFromCalendar(inputArray){references=calendarObjForForm.getHtmlElementReferences();references.myDate.value=inputArray.day+'/'+inputArray.month+'/'+inputArray.year;calendarObjForForm.hide()}
function changeColours(){var elements=$$('.portal_search_step_number'),count=elements.length-1;do{elements[count].style.color="#D1D1D1"}while(count--)}
function prevStep(){currentStep--;if(currentStep==1){$('prev_step').style.display="none";$('portal_search_step_'+(currentStep+1)).style.display="none";$('portal_search_step_'+currentStep).style.display=""}else{$('prev_step').style.display="";$('portal_search_step_'+(currentStep+1)).style.display="none";$('portal_search_step_'+currentStep).style.display=""};changeColours();$('display_step_'+currentStep).style.color="#919191";$('next_step').style.display="";$('finish_step').style.display="none";errorElement=$('error');errorElement.style.display="none";errorElement.innerHTML=""}
function validateStep(step){errorElement=$('error');switch(step){case 1:el=$('select_country');if(el.selectedIndex==-1){errorElement.innerHTML="Please select at least one country to search";errorElement.style.display="";return false}else{errorElement.style.display="none";errorElement.innerHTML="";return true};break;case 2:if($('fixed_duration_check').checked==false){if(!isNumeric($('minStay').value)||!isNumeric($('maxStay').value)){errorElement.innerHTML="Please enter numeric values in both fields";errorElement.style.display="";return false};var maxElement=$('preferMax'),minElement=$('preferMin');if(maxElement.style.display!="none"&&maxElement.checked==false&&minElement.style.display!="none"&&minElement.checked==false){errorElement.innerHTML="Please select your preferred duration";errorElement.style.display="";return false}else{errorElement.innerHTML="";errorElement.style.display="none"};var minStayValue=parseInt($('minStay').value),maxStayValue=parseInt($('maxStay').value);if(minStayValue>maxStayValue){var minTemp=minStayValue,maxTemp=maxStayValue;$('minStay').value=maxTemp;$('maxStay').value=minTemp}else if((maxStayValue-minStayValue)>7){errorElement.innerHTML="The difference between your min and max stay must be no more than 7 days";errorElement.style.display="";return false}else{errorElement.style.display="none";errorElement.innerHTML="";return true}}else if(!isNumeric($('duration').value)){errorElement.innerHTML="Please enter a numeric value the duration field";errorElement.style.display="";return false}else{errorElement.style.display="none";errorElement.innerHTML="";return true};break;case 3:if(document.forms[0].fixedDate.checked==true){if(document.forms[0].fixedDuration.checked==true){if(calcDays(document.forms[0].startDate.value,document.forms[0].endDate.value)!=parseInt(document.forms[0].duration.value)){errorElement.innerHTML="Your selected dates need to be "+document.forms[0].duration.value+" days apart";errorElement.style.display="";return false}}else if(calcDays(document.forms[0].startDate.value,document.forms[0].endDate.value)<parseInt(document.forms[0].maxStay.value)){errorElement.innerHTML="Your selected dates need to be at least "+document.forms[0].maxStay.value+" days apart";errorElement.style.display="";return false};if(isDate(document.forms[0].startDate.value)&&isDate(document.forms[0].endDate.value)){errorElement.style.display="none";errorElement.innerHTML="";return true}else if(Date.parse(document.forms[0].startDate.value)>Date.parse(document.forms[0].endDate.value)){errorElement.innerHTML="Your end date must be after your start date";errorElement.style.display="";return false}else{errorElement.innerHTML="Please enter a valid date in both fields - dd/mm/yyyy";errorElement.style.display="";return false}}else{if(document.forms[0].fixedDuration.checked==true){if(calcDays(document.forms[0].minDate.value,document.forms[0].maxDate.value)<parseInt(document.forms[0].duration.value)){errorElement.innerHTML="Your selected dates need to be at least "+document.forms[0].duration.value+" days apart";errorElement.style.display="";return false}}else if(calcDays(document.forms[0].minDate.value,document.forms[0].maxDate.value)<parseInt(document.forms[0].maxStay.value)){errorElement.innerHTML="Your selected dates need to be at least "+document.forms[0].maxStay.value+" days apart";errorElement.style.display="";return false};if(isDate(document.forms[0].minDate.value)&&isDate(document.forms[0].maxDate.value)){errorElement.style.display="none";errorElement.innerHTML="";return true}else if(Date.parse(document.forms[0].minDate.value)>Date.parse(document.forms[0].maxDate.value)){errorElement.innerHTML="Your end date must be after your start date";errorElement.style.display="";return false}else{errorElement.innerHTML="Please enter a valid date in both fields - dd/mm/yyyy";errorElement.style.display="";return false}};return true;break;case 4:validValuesString="0,1,2,3,4,6,7,8,12,14,15,16,24,28,30,31,32,48,56,60,62,63,64,65,67,71,79,95,96,97,99,103,111,112,113,119,120,121,123,124,125,126,127";validValuesArray=validValuesString.split(",");var checkValue=0;if(document.forms[0].dayofweek[0].checked==true)checkValue=checkValue+1;if(document.forms[0].dayofweek[1].checked==true)checkValue=checkValue+2;if(document.forms[0].dayofweek[2].checked==true)checkValue=checkValue+4;if(document.forms[0].dayofweek[3].checked==true)checkValue=checkValue+8;if(document.forms[0].dayofweek[4].checked==true)checkValue=checkValue+16;if(document.forms[0].dayofweek[5].checked==true)checkValue=checkValue+32;if(document.forms[0].dayofweek[6].checked==true)checkValue=checkValue+64;count=validValuesArray.length-1;do{if(checkValue==validValuesArray[count]){errorElement.innerHTML="";errorElement.style.display="none";return true}}while(count--);errorElement.innerHTML="Please only tick consecutive days";errorElement.style.display="";return false;break;case 5:if(!isNumeric(document.forms[0].total_guests.value)){errorElement.innerHTML="You must enter a numeric value in the Total Guests field";errorElement.style.display="";return false}else if(document.forms[0].bunks.value!=""&&!isNumeric(document.forms[0].bunks.value)){errorElement.innerHTML="You must enter a numeric value in the Total Guests field";errorElement.style.display="";return false};return true;break}}
function calcDays(startDate,endDate){var date1=startDate.split("/"),date2=endDate.split("/"),sDate=new Date(date1[1]+"/"+date1[0]+"/"+date1[2]),eDate=new Date(date2[1]+"/"+date2[0]+"/"+date2[2]),daysApart=Math.abs(Math.round((sDate-eDate)/86400000));return daysApart}
function isDate(dateStr){var datePat=/^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/,matchArray=dateStr.match(datePat);if(matchArray==null)return false;month=matchArray[3];day=matchArray[1];year=matchArray[5];if(month<1||month>12)return false;if(day<1||day>31)return false;if((month==4||month==6||month==9||month==11)&&day==31)return false;if(month==2){var isleap=(year%4==0&&(year%100!=0||year%400==0));if(day>29||(day==29&&!isleap))return false};return true}
function isNumeric(sText){var oldstring=sText,newstring=parseFloat(oldstring).toString(),InpValid=1;if(oldstring.length==newstring.length&&newstring!="NaN"){return true}else return false}
function nextStep(){var totalSteps=$$('.portal_search_step').length;if(validateStep(currentStep)){currentStep++;if(currentStep<totalSteps){$('next_step').style.display="";$('portal_search_step_'+(currentStep-1)).style.display="none";$('portal_search_step_'+currentStep).style.display=""}else if(currentStep==totalSteps){$('next_step').style.display="none";$('finish_step').style.display="";$('portal_search_step_'+(currentStep-1)).style.display="none";$('portal_search_step_'+currentStep).style.display=""}else{$('next_step').style.display="none";$('portal_search_step_'+(currentStep-1)).style.display="none";$('portal_search_step_'+currentStep).style.display=""};changeColours();$('display_step_'+currentStep).style.color="#919191";$('prev_step').style.display="";pageTracker._trackPageview('/portal_search_step_'+(currentStep-1)+'/')}}
function addTimer(){t=setTimeout('displayPref()',0)}
function fixDuration(state){errorElement=$('error');errorElement.innerHTML="";errorElement.style.display="";if(state){$('variable_duration').style.display="none";$('fixed_duration').style.display=""}else{$('variable_duration').style.display="";$('fixed_duration').style.display="none"};errorElement.innerHTML="";errorElement.style.display="none"}
function fixDate(state){errorElement=$('error');errorElement.innerHTML="";errorElement.style.display="";if(state){$('variable_dates').style.display="none";$('fixed_dates').style.display=""}else{$('variable_dates').style.display="";$('fixed_dates').style.display="none"}}
function variableDurationPref(){if($('minStay').value!=""&&$('maxStay').value!=""){$('preferMin').style.display="";$('preferMax').style.display=""}else{$('preferMin').style.display="none";$('preferMax').style.display="none"}}
function newSearch(){errorElement=$('error');var count=document.forms[0].elements.length-1;do{document.forms[0].elements[count].value=""}while(count--);errorElement.innerHTML="";errorElement.style.display="";$('portal_search_step_1').style.display="";$('portal_search_step_2').style.display="none";$('portal_search_step_3').style.display="none";$('portal_search_step_4').style.display="none";$('portal_search_step_5').style.display="none";$('preferMin').style.display="";$('preferMax').style.display="";$('preferMin').style.display="none";$('preferMax').style.display="none";$('prefer_min_radio').innerHTML="";$('prefer_max_radio').innerHTML="";$('finish_step').style.display="none";$('next_step').style.display="";document.forms[0].fixedDate.checked=false;document.forms[0].fixedDuration.checked=false;currentStep=1}
function openWindow(url){window.open(pageTracker._getLinkerUrl(url),'PortalSearch','height=732,width=1002, menubar=no, location=no, resizable=no, scrollbars=no, status=no')}
function changeSearch(type){switch(type){case'A':$('a1').style.display="";$('a2').style.display="none";$('aSearchButton').src="/fileadmin/templates/images/aSearchButtonDisabled.gif";$('qSearchButton').src="/fileadmin/templates/images/qSearchButton.gif";break;case'Q':$('a1').style.display="none";$('a2').style.display="";$('aSearchButton').src="/fileadmin/templates/images/aSearchButton.gif";$('qSearchButton').src="/fileadmin/templates/images/qSearchButtonDisabled.gif"}};Event.observe(window,'load',addTimer);Event.observe(window,'load',addCalendar);Event.observe(window,'load',addHelpTips)
if(!window.DHTMLSuite)var DHTMLSuite=new Object();if(!String.trim)String.prototype.trim=function(){return this.replace(/^\s+|\s+$/,'')};var DHTMLSuite_funcs=new Object();if(!window.DHTML_SUITE_THEME)var DHTML_SUITE_THEME='blue';if(!window.DHTML_SUITE_THEME_FOLDER)var DHTML_SUITE_THEME_FOLDER='../themes/';if(!window.DHTML_SUITE_JS_FOLDER)var DHTML_SUITE_JS_FOLDER='../js/separateFiles/';var DHTMLSuite=new Object(),standardObjectsCreated=false;DHTMLSuite.eventEls=new Array();var widgetDep=new Object();widgetDep.formValidator=['dhtmlSuite-formUtil.js'];widgetDep.paneSplitter=['dhtmlSuite-paneSplitter.js','dhtmlSuite-paneSplitterModel.js','dhtmlSuite-dynamicContent.js','ajax.js'];widgetDep.menuBar=['dhtmlSuite-menuBar.js','dhtmlSuite-menuItem.js','dhtmlSuite-menuModel.js'];widgetDep.windowWidget=['dhtmlSuite-windowWidget.js','dhtmlSuite-resize.js','dhtmlSuite-dragDropSimple.js','ajax.js','dhtmlSuite-dynamicContent.js'];widgetDep.colorWidget=['dhtmlSuite-colorWidgets.js','dhtmlSuite-colorUtil.js'];widgetDep.colorSlider=['dhtmlSuite-colorWidgets.js','dhtmlSuite-colorUtil.js','dhtmlSuite-slider.js'];widgetDep.colorPalette=['dhtmlSuite-colorWidgets.js','dhtmlSuite-colorUtil.js'];widgetDep.calendar=['dhtmlSuite-calendar.js','dhtmlSuite-dragDropSimple.js'];widgetDep.dragDropTree=['dhtmlSuite-dragDropTree.js'];widgetDep.slider=['dhtmlSuite-slider.js'];widgetDep.dragDrop=['dhtmlSuite-dragDrop.js'];widgetDep.imageEnlarger=['dhtmlSuite-imageEnlarger.js','dhtmlSuite-dragDropSimple.js'];widgetDep.imageSelection=['dhtmlSuite-imageSelection.js'];widgetDep.floatingGallery=['dhtmlSuite-floatingGallery.js','dhtmlSuite-mediaModel.js'];widgetDep.contextMenu=['dhtmlSuite-contextMenu.js','dhtmlSuite-menuBar.js','dhtmlSuite-menuItem.js','dhtmlSuite-menuModel.js'];widgetDep.dynamicContent=['dhtmlSuite-dynamicContent.js','ajax.js'];widgetDep.textEdit=['dhtmlSuite-textEdit.js','dhtmlSuite-textEditModel.js','dhtmlSuite-listModel.js'];widgetDep.listModel=['dhtmlSuite-listModel.js'];widgetDep.resize=['dhtmlSuite-resize.js'];widgetDep.dragDropSimple=['dhtmlSuite-dragDropSimple.js'];widgetDep.dynamicTooltip=['dhtmlSuite-dynamicTooltip.js','dhtmlSuite-dynamicContent.js','ajax.js'];widgetDep.modalMessage=['dhtmlSuite-modalMessage.js','dhtmlSuite-dynamicContent.js','ajax.js'];widgetDep.tableWidget=['dhtmlSuite-tableWidget.js','ajax.js'];widgetDep.progressBar=['dhtmlSuite-progressBar.js'];widgetDep.tabView=['dhtmlSuite-tabView.js','dhtmlSuite-dynamicContent.js','ajax.js'];widgetDep.infoPanel=['dhtmlSuite-infoPanel.js','dhtmlSuite-dynamicContent.js','ajax.js'];widgetDep.form=['dhtmlSuite-formUtil.js','dhtmlSuite-dynamicContent.js','ajax.js'];widgetDep.autoComplete=['dhtmlSuite-autoComplete.js','ajax.js'];widgetDep.chainedSelect=['dhtmlSuite-chainedSelect.js','ajax.js'];var depCache=new Object();DHTMLSuite.include=function(widget){if(!widgetDep[widget]){alert('Cannot find the files for widget '+widget+'. Please verify that the name is correct');return};var files=widgetDep[widget];for(var no=0;no<files.length;no++)if(!depCache[files[no]]){document.write('<script');document.write(' language="javascript"');document.write(' type="text/javascript"');document.write(' src="'+DHTML_SUITE_JS_FOLDER+files[no]+'">');document.write('</script>');depCache[files[no]]=true}};DHTMLSuite.discardElement=function(element){element=DHTMLSuite.commonObj.getEl(element);var gBin=document.getElementById('IELeakGBin');if(!gBin){gBin=document.createElement('DIV');gBin.id='IELeakGBin';gBin.style.display='none';document.body.appendChild(gBin)};gBin.appendChild(element);gBin.innerHTML=''};DHTMLSuite.createStandardObjects=function(){DHTMLSuite.clientInfoObj=new DHTMLSuite.clientInfo();DHTMLSuite.clientInfoObj.init();if(!DHTMLSuite.configObj){DHTMLSuite.configObj=new DHTMLSuite.config();DHTMLSuite.configObj.init()};DHTMLSuite.commonObj=new DHTMLSuite.common();DHTMLSuite.variableStorage=new DHTMLSuite.globalVariableStorage();DHTMLSuite.commonObj.init();DHTMLSuite.domQueryObj=new DHTMLSuite.domQuery();DHTMLSuite.commonObj.addEvent(window,'unload',function(){DHTMLSuite.commonObj.__clearMemoryGarbage()});standardObjectsCreated=true};DHTMLSuite.config=function(){var imagePath,cssPath,defaultCssPath,defaultImagePath};DHTMLSuite.config.prototype={init:function(){this.imagePath=DHTML_SUITE_THEME_FOLDER+DHTML_SUITE_THEME+'/images/';this.cssPath=DHTML_SUITE_THEME_FOLDER+DHTML_SUITE_THEME+'/css/';this.defaultCssPath=this.cssPath;this.defaultImagePath=this.imagePath},setCssPath:function(newCssPath){this.cssPath=newCssPath},resetCssPath:function(){this.cssPath=this.defaultCssPath},resetImagePath:function(){this.imagePath=this.defaultImagePath},setImagePath:function(newImagePath){this.imagePath=newImagePath}};DHTMLSuite.globalVariableStorage=function(){var menuBar_highlightedItems;this.menuBar_highlightedItems=new Array();var arrayDSObjects,arrayOfDhtmlSuiteObjects;this.arrayDSObjects=new Array();this.arrayOfDhtmlSuiteObjects=this.arrayDSObjects;var ajaxObjects;this.ajaxObjects=new Array()};DHTMLSuite.globalVariableStorage.prototype={};DHTMLSuite.common=function(){var loadedCSSFiles,cssCacheStatus,eventEls,isOkToSelect;this.okToSelect=true;this.cssCacheStatus=true;this.eventEls=new Array()};DHTMLSuite.common.prototype={init:function(){this.loadedCSSFiles=new Array()},loadCSS:function(cssFile,prefixConfigPath){if(!prefixConfigPath&&prefixConfigPath!==false)prefixConfigPath=true;if(!this.loadedCSSFiles[cssFile]){this.loadedCSSFiles[cssFile]=true;var lt=document.createElement('LINK');if(!this.cssCacheStatus){if(cssFile.indexOf('?')>=0){cssFile=cssFile+'&'}else cssFile=cssFile+'?';cssFile=cssFile+'rand='+Math.random()};if(prefixConfigPath){lt.href=DHTMLSuite.configObj.cssPath+cssFile}else lt.href=cssFile;lt.rel='stylesheet';lt.media='screen';lt.type='text/css';document.getElementsByTagName('HEAD')[0].appendChild(lt)}},__setTextSelOk:function(okToSelect){this.okToSelect=okToSelect},__isTextSelOk:function(){return this.okToSelect},setCssCacheStatus:function(cssCacheStatus){this.cssCacheStatus=cssCacheStatus},getEl:function(elRef){if(typeof elRef=='string'){if(document.getElementById(elRef))return document.getElementById(elRef);if(document.forms[elRef])return document.forms[elRef];if(document[elRef])return document[elRef];if(window[elRef])return window[elRef]};return elRef},isArray:function(el){if(el.constructor.toString().indexOf("Array")!=-1)return true;return false},getStyle:function(el,property){el=this.getEl(el);if(document.defaultView&&document.defaultView.getComputedStyle){var retVal=null,comp=document.defaultView.getComputedStyle(el,'');if(comp)retVal=comp[property];return el.style[property]||retVal};if(document.documentElement.currentStyle&&DHTMLSuite.clientInfoObj.isMSIE){var retVal=null;if(el.currentStyle)value=el.currentStyle[property];return(el.style[property]||retVal)};return el.style[property]},getLeftPos:function(el){if(document.getBoxObjectFor)if(el.tagName!='INPUT'&&el.tagName!='SELECT'&&el.tagName!='TEXTAREA')return document.getBoxObjectFor(el).x;var returnValue=el.offsetLeft;while((el=el.offsetParent)!=null)if(el.tagName!='HTML'){returnValue+=el.offsetLeft;if(document.all)returnValue+=el.clientLeft};return returnValue},getTopPos:function(el){if(document.getBoxObjectFor)if(el.tagName!='INPUT'&&el.tagName!='SELECT'&&el.tagName!='TEXTAREA')return document.getBoxObjectFor(el).y;var returnValue=el.offsetTop;while((el=el.offsetParent)!=null)if(el.tagName!='HTML'){returnValue+=(el.offsetTop-el.scrollTop);if(document.all)returnValue+=el.clientTop};return returnValue},getCookie:function(name){var start=document.cookie.indexOf(name+"="),len=start+name.length+1;if((!start)&&(name!=document.cookie.substring(0,name.length)))return null;if(start==-1)return null;var end=document.cookie.indexOf(";",len);if(end==-1)end=document.cookie.length;return unescape(document.cookie.substring(len,end))},setCookie:function(name,value,expires,path,domain,secure){expires=expires*60*60*24*1000;var today=new Date(),expires_date=new Date(today.getTime()+(expires)),cookieString=name+"="+escape(value)+((expires)?";expires="+expires_date.toGMTString():"")+((path)?";path="+path:"")+((domain)?";domain="+domain:"")+((secure)?";secure":"");document.cookie=cookieString},deleteCookie:function(name,path,domain){if(this.getCookie(name))document.cookie=name+"="+((path)?";path="+path:"")+((domain)?";domain="+domain:"")+";expires=Thu,01-Jan-1970 00:00:01 GMT"},cancelEvent:function(){return false},addEvent:function(obj,type,fn,suffix){if(!suffix)suffix='';if(obj.attachEvent){if(typeof DHTMLSuite_funcs[type+fn+suffix]!='function'){DHTMLSuite_funcs[type+fn+suffix]=function(){fn.apply(window.event.srcElement)};obj.attachEvent('on'+type,DHTMLSuite_funcs[type+fn+suffix])};obj=null}else obj.addEventListener(type,fn,false);this.__addEventEl(obj)},removeEvent:function(obj,type,fn,suffix){if(obj.detachEvent){obj.detachEvent('on'+type,DHTMLSuite_funcs[type+fn+suffix]);DHTMLSuite_funcs[type+fn+suffix]=null;obj=null}else obj.removeEventListener(type,fn,false)},__clearMemoryGarbage:function(){if(!DHTMLSuite.clientInfoObj.isMSIE)return;for(var no=0;no<DHTMLSuite.eventEls.length;no++)try{var el=DHTMLSuite.eventEls[no];el.onclick=null;el.onmousedown=null;el.onmousemove=null;el.onmouseout=null;el.onmouseover=null;el.onmouseup=null;el.onfocus=null;el.onblur=null;el.onkeydown=null;el.onkeypress=null;el.onkeyup=null;el.onselectstart=null;el.ondragstart=null;el.oncontextmenu=null;el.onscroll=null;el=null}catch(e){};for(var no in DHTMLSuite.variableStorage.arrayDSObjects)DHTMLSuite.variableStorage.arrayDSObjects[no]=null;window.onbeforeunload=null;window.onunload=null;DHTMLSuite=null},__addEventEl:function(el){DHTMLSuite.eventEls[DHTMLSuite.eventEls.length]=el},getSrcElement:function(e){var el;if(e.target){el=e.target}else if(e.srcElement)el=e.srcElement;if(el.nodeType==3)el=el.parentNode;return el},getKeyFromEvent:function(e){var code=this.getKeyCode(e);return String.fromCharCode(code)},getKeyCode:function(e){if(e.keyCode){code=e.keyCode}else if(e.which)code=e.which;return code},isObjectClicked:function(obj,e){var src=this.getSrcElement(e),string=src.tagName+'('+src.className+')';if(src==obj)return true;while(src.parentNode&&src.tagName.toLowerCase()!='html'){src=src.parentNode;string=string+','+src.tagName+'('+src.className+')';if(src==obj)return true};return false},getObjectByClassName:function(e,className){var src=this.getSrcElement(e);if(src.className==className)return src;while(src&&src.tagName.toLowerCase()!='html'){src=src.parentNode;if(src.className==className)return src};return false},getObjectByAttribute:function(e,attribute){var src=this.getSrcElement(e),att=src.getAttribute(attribute);if(!att)att=src[attribute];if(att)return src;while(src&&src.tagName.toLowerCase()!='html'){src=src.parentNode;var att=src.getAttribute('attribute');if(!att)att=src[attribute];if(att)return src};return false},getUniqueId:function(){var no=Math.random()+'';no=no.replace('.','');var no2=Math.random()+'';no2=no2.replace('.','');return no+no2},getAssociativeArrayFromString:function(propertyString){if(!propertyString)return;var retArray=new Array(),items=propertyString.split(/,/g);for(var no=0;no<items.length;no++){var tokens=items[no].split(/:/);retArray[tokens[0]]=tokens[1]};return retArray},correctPng:function(el){el=DHTMLSuite.commonObj.getEl(el);var img=el,width=img.width,height=img.height,html='<span style="display:inline-block;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+img.src+'\',sizingMethod=\'scale\');width:'+width+';height:'+height+'"></span>';img.outerHTML=html},__evaluateJs:function(obj){obj=this.getEl(obj);var scriptTags=obj.getElementsByTagName('SCRIPT'),string='',jsCode='';for(var no=0;no<scriptTags.length;no++)if(scriptTags[no].src){var head=document.getElementsByTagName("head")[0],scriptObj=document.createElement("script");scriptObj.setAttribute("type","text/javascript");scriptObj.setAttribute("src",scriptTags[no].src)}else if(DHTMLSuite.clientInfoObj.isOpera){jsCode=jsCode+scriptTags[no].text+'\n'}else jsCode=jsCode+scriptTags[no].innerHTML;if(jsCode)this.__installScript(jsCode)},__installScript:function(script){try{if(!script)return;if(window.execScript){window.execScript(script)}else if(window.jQuery&&jQuery.browser.safari){window.setTimeout(script,0)}else window.setTimeout(script,0)}catch(e){}},__evaluateCss:function(obj){obj=this.getEl(obj);var cssTags=obj.getElementsByTagName('STYLE'),head=document.getElementsByTagName('HEAD')[0];for(var no=0;no<cssTags.length;no++)head.appendChild(cssTags[no])}};DHTMLSuite.clientInfo=function(){var browser,isOpera,isMSIE,isOldMSIE,isFirefox,navigatorVersion,isOldMSIE};DHTMLSuite.clientInfo.prototype={init:function(){this.browser=navigator.userAgent;this.isOpera=(this.browser.toLowerCase().indexOf('opera')>=0)?true:false;this.isFirefox=(this.browser.toLowerCase().indexOf('firefox')>=0)?true:false;this.isMSIE=(this.browser.toLowerCase().indexOf('msie')>=0)?true:false;this.isOldMSIE=(this.browser.toLowerCase().match(/msie\s[0-6]/gi))?true:false;this.isSafari=(this.browser.toLowerCase().indexOf('safari')>=0)?true:false;this.navigatorVersion=navigator.appVersion.replace(/.*?MSIE\s(\d\.\d).*/g,'$1')/1;this.isOldMSIE=(this.isMSIE&&this.navigatorVersion<7)?true:false},getBrowserWidth:function(){if(self.innerWidth)return self.innerWidth;return document.documentElement.offsetWidth},getBrowserHeight:function(){if(self.innerHeight)return self.innerHeight;return document.documentElement.offsetHeight}};DHTMLSuite.domQuery=function(){document.getElementsByClassName=this.getElementsByClassName;document.getElementsByAttribute=this.getElementsByAttribute};DHTMLSuite.domQuery.prototype={}
if(!window.DHTMLSuite)var DHTMLSuite=new Object();DHTMLSuite.calendarLanguageModel=function(languageCode){var monthArray,monthArrayShort,dayArray,weekString,todayString,todayIsString,timeString;this.monthArray=new Array();this.monthArrayShort=new Array();this.dayArray=new Array();if(!languageCode)languageCode='en';this.languageCode=languageCode;this.__setCalendarProperties()};DHTMLSuite.calendarLanguageModel.prototype={__setCalendarProperties:function(){switch(this.languageCode){case"fi":this.monthArray=['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kes&auml;kuu','Hein&auml;kuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'];this.monthArrayShort=['Tam','Hel','Maa','Huh','Tou','Kes','Hei','Elo','Syy','Lok','Mar','Jou'];this.dayArray=['Maa','Tii','Kes','Tor','Per','Lau','Sun'];this.weekString='Viikko';this.todayIsString='T&auml;n&auml;&auml;n on';this.todayString='T&auml;n&auml;&auml;n';this.timeString='Kello';break;case"ge":this.monthArray=['Januar','Februar','M�rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];this.monthArrayShort=['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'];this.dayArray=['Mon','Die','Mit','Don','Fre','Sam','Son'];this.weekString='Woche';this.todayIsString='Heute';this.todayString='Heute';this.timeString='';break;case"no":this.monthArray=['Januar','Februar','Mars','April','Mai','Juni','Juli','August','September','Oktober','November','Desember'];this.monthArrayShort=['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Des'];this.dayArray=['Man','Tir','Ons','Tor','Fre','L&oslash;r','S&oslash;n'];this.weekString='Uke';this.todayIsString='Dagen i dag er';this.todayString='I dag';this.timeString='Tid';break;case"nl":this.monthArray=['Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December'];this.monthArrayShort=['Jan','Feb','Mar','Apr','Mei','Jun','Jul','Aug','Sep','Okt','Nov','Dec'];this.dayArray=['Ma','Di','Wo','Do','Vr','Za','Zo'];this.weekString='Week';this.todayIsString='Vandaag';this.todayString='Vandaag';this.timeString='';break;case"es":this.monthArray=['Enero','Febrero','Marzo','April','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];this.monthArrayShort=['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'];this.dayArray=['Lun','Mar','Mie','Jue','Vie','Sab','Dom'];this.weekString='Semana';this.todayIsString='Hoy es';this.todayString='Hoy';this.timeString='';break;case"pt-br":this.monthArray=['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'];this.monthArrayShort=['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'];this.dayArray=['Seg','Ter','Qua','Qui','Sex','S&aacute;b','Dom'];this.weekString='Sem.';this.todayIsString='Hoje &eacute;';this.todayString='Hoje';this.timeString='';break;case"fr":this.monthArray=['Janvier','F�vrier','Mars','Avril','Mai','Juin','Juillet','Ao�t','Septembre','Octobre','Novembre','D�cembre'];this.monthArrayShort=['Jan','Fev','Mar','Avr','Mai','Jun','Jul','Aou','Sep','Oct','Nov','Dec'];this.dayArray=['Lun','Mar','Mer','Jeu','Ven','Sam','Dim'];this.weekString='Sem';this.todayIsString="Aujourd'hui";this.todayString='Aujourd';this.timeString='';break;case"da":this.monthArray=['januar','februar','marts','april','maj','juni','juli','august','september','oktober','november','december'];this.monthArrayShort=['jan','feb','mar','apr','maj','jun','jul','aug','sep','okt','nov','dec'];this.dayArray=['man','tirs','ons','tors','fre','l&oslash;r','s&oslash;n'];this.weekString='Uge';this.todayIsString='I dag er den';this.todayString='I dag';this.timeString='Tid';break;case"it":this.monthArray=['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];this.monthArrayShort=['Gen','Feb','Mar','Apr','Mag','Giu','Lugl','Ago','Set','Ott','Nov','Dic'];this.dayArray=['Lun','Mar','Mer','Gio','Ven','Sab','Dom'];this.weekString='Sett';this.todayIsString='Oggi &egrave;il';this.todayString='Oggi &egrave;il';this.timeString='';break;case"sv":this.monthArray=['Januari','Februari','Mars','April','Maj','Juni','Juli','Augusti','September','Oktober','November','December'];this.monthArrayShort=['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec'];this.dayArray=['M&aring;n','Tis','Ons','Tor','Fre','L&ouml;r','S&ouml;n'];this.weekString='Vecka';this.todayIsString='Idag &auml;r det den';this.todayString='Idag &auml;r det den';this.timeString='';break;default:this.monthArray=['January','February','March','April','May','June','July','August','September','October','November','December'];this.monthArrayShort=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];this.dayArray=['Mon','Tue','Wed','Thu','Fri','Sat','Sun'];this.weekString='Week';this.todayIsString='';this.todayString='Today';this.timeString='Time';break}}};DHTMLSuite.calendarModel=function(inputArray){var initialDay,initialMonth,initialYear,initialHour,initialMinute,displayedDay,displayedMonth,displayedYear,displayedMinute,displayedHour,languageCode,languageModel,invalidDateRange,weekStartsOnMonday;this.weekStartsOnMonday=true;this.languageCode='en';this.invalidDateRange=new Array();this.__createDefaultModel(inputArray)};DHTMLSuite.calendarModel.prototype={setCallbackFunctionOnMonthChange:function(functionName){this.callbackFunctionOnMonthChange=functionName},addInvalidDateRange:function(fromDateAsArray,toDateAsArray){var index=this.invalidDateRange.length;this.invalidDateRange[index]=new Object();if(fromDateAsArray){fromDateAsArray.day=fromDateAsArray.day+'';fromDateAsArray.month=fromDateAsArray.month+'';fromDateAsArray.year=fromDateAsArray.year+'';if(!fromDateAsArray.month)fromDateAsArray.month=fromDateAsArray.month='1';if(!fromDateAsArray.day)fromDateAsArray.day=fromDateAsArray.day='1';if(fromDateAsArray.day.length==1)fromDateAsArray.day='0'+fromDateAsArray.day;if(fromDateAsArray.month.length==1)fromDateAsArray.month='0'+fromDateAsArray.month;this.invalidDateRange[index].fromDate=fromDateAsArray.year+fromDateAsArray.month+fromDateAsArray.day}else this.invalidDateRange[index].fromDate=false;if(toDateAsArray){toDateAsArray.day=toDateAsArray.day+'';toDateAsArray.month=toDateAsArray.month+'';toDateAsArray.year=toDateAsArray.year+'';if(!toDateAsArray.month)toDateAsArray.month=toDateAsArray.month='1';if(!toDateAsArray.day)toDateAsArray.day=toDateAsArray.day='1';if(toDateAsArray.day.length==1)toDateAsArray.day='0'+toDateAsArray.day;if(toDateAsArray.month.length==1)toDateAsArray.month='0'+toDateAsArray.month;this.invalidDateRange[index].toDate=toDateAsArray.year+toDateAsArray.month+toDateAsArray.day}else this.invalidDateRange[index].toDate=false},isDateWithinValidRange:function(inputDate){if(this.invalidDateRange.length==0)return true;var month=inputDate.month+'';if(month.length==1)month='0'+month;var day=inputDate.day+'';if(day.length==1)day='0'+day;var dateToCheck=inputDate.year+month+day;for(var no=0;no<this.invalidDateRange.length;no++){if(!this.invalidDateRange[no].fromDate&&this.invalidDateRange[no].toDate>=dateToCheck)return false;if(!this.invalidDateRange[no].toDate&&this.invalidDateRange[no].fromDate<=dateToCheck)return false;if(this.invalidDateRange[no].fromDate<=dateToCheck&&this.invalidDateRange[no].toDate>=dateToCheck)return false};return true},setInitialDateFromInput:function(inputReference,format){if(inputReference.value.length>0)if(!format.match(/^[0-9]*?$/gi)){var items=inputReference.value.split(/[^0-9]/gi),positionArray=new Object();positionArray.m=format.indexOf('mm');if(positionArray.m==-1)positionArray.m=format.indexOf('m');positionArray.d=format.indexOf('dd');if(positionArray.d==-1)positionArray.d=format.indexOf('d');positionArray.y=format.indexOf('yyyy');positionArray.h=format.indexOf('hh');positionArray.i=format.indexOf('ii');var positionArrayNumeric=Array();positionArrayNumeric[0]=positionArray.m;positionArrayNumeric[1]=positionArray.d;positionArrayNumeric[2]=positionArray.y;positionArrayNumeric[3]=positionArray.h;positionArrayNumeric[4]=positionArray.i;positionArrayNumeric=positionArrayNumeric.sort(this.__calendarSortItems);var itemIndex=-1;this.initialHour='00';this.initialMinute='00';for(var no=0;no<positionArrayNumeric.length;no++){if(positionArrayNumeric[no]==-1)continue;itemIndex++;if(positionArrayNumeric[no]==positionArray.m){this.initialMonth=items[itemIndex];continue};if(positionArrayNumeric[no]==positionArray.y){this.initialYear=items[itemIndex];continue};if(positionArrayNumeric[no]==positionArray.d){tmpDay=items[itemIndex];continue};if(positionArrayNumeric[no]==positionArray.h){this.initialHour=items[itemIndex];continue};if(positionArrayNumeric[no]==positionArray.i){this.initialMinute=items[itemIndex];continue}};this.initialMonth=this.initialMonth/1;tmpDay=tmpDay/1;this.initialDay=tmpDay}else{var monthPos=format.indexOf('mm');this.initialMonth=inputReference.value.substr(monthPos,2)/1;var yearPos=format.indexOf('yyyy');this.initialYear=inputReference.value.substr(yearPos,4);var dayPos=format.indexOf('dd');tmpDay=inputReference.value.substr(dayPos,2);this.initialDay=tmpDay;var hourPos=format.indexOf('hh');if(hourPos>=0){tmpHour=inputReference.value.substr(hourPos,2);this.initialHour=tmpHour}else this.initialHour='00';var minutePos=format.indexOf('ii');if(minutePos>=0){tmpMinute=inputReference.value.substr(minutePos,2);this.initialMinute=tmpMinute}else this.initialMinute='00'};this.__setDisplayedDateToInitialData()},__setDisplayedDateToInitialData:function(){this.displayedYear=this.initialYear;this.displayedMonth=this.initialMonth;this.displayedDay=this.initialDay;this.displayedHour=this.initialHour;this.displayedMinute=this.initialMinute},__calendarSortItems:function(a,b){return a/1-b/1},setWeekStartsOnMonday:function(weekStartsOnMonday){this.weekStartsOnMonday=weekStartsOnMonday},setLanguageCode:function(languageCode){this.languageModel=new DHTMLSuite.calendarLanguageModel(languageCode)},__isLeapYear:function(inputYear){if(inputYear%400==0||(inputYear%4==0&&inputYear%100!=0))return true;return false},getWeekStartsOnMonday:function(){return this.weekStartsOnMonday},__createDefaultModel:function(inputArray){var d=new Date();this.initialYear=d.getFullYear();this.initialMonth=d.getMonth()+1;this.initialDay=d.getDate();this.initialHour=d.getHours();if(inputArray){if(inputArray.initialYear)this.initialYear=inputArray.initialYear;if(inputArray.initialMonth)this.initialMonth=inputArray.initialMonth;if(inputArray.initialDay)this.initialDay=inputArray.initialDay;if(inputArray.initialHour)this.initialHour=inputArray.initialHour;if(inputArray.initialMinute)this.initialMinute=inputArray.initialMinute;if(inputArray.languageCode)this.languageCode=inputArray.languageCode};this.displayedYear=this.initialYear;this.displayedMonth=this.initialMonth;this.displayedDay=this.initialDay;this.displayedHour=this.initialHour;this.displayedMinute=this.initialMinute;this.languageModel=new DHTMLSuite.calendarLanguageModel()},__getDisplayedDay:function(){return this.displayedDay},__getDisplayedHourWithLeadingZeros:function(){var retVal=this.__getDisplayedHour()+'';if(retVal.length==1)retVal='0'+retVal;return retVal},__getDisplayedMinuteWithLeadingZeros:function(){var retVal=this.__getDisplayedMinute()+'';if(retVal.length==1)retVal='0'+retVal;return retVal},__getDisplayedDayWithLeadingZeros:function(){var retVal=this.__getDisplayedDay()+'';if(retVal.length==1)retVal='0'+retVal;return retVal},__getDisplayedMonthNumberWithLeadingZeros:function(){var retVal=this.__getDisplayedMonthNumber()+'';if(retVal.length==1)retVal='0'+retVal;return retVal},__getDisplayedYear:function(){return this.displayedYear},__getDisplayedHour:function(){if(!this.displayedHour)this.displayedHour=0;return this.displayedHour},__getDisplayedMinute:function(){if(!this.displayedMinute)this.displayedMinute=0;return this.displayedMinute},__getDisplayedMonthNumber:function(){return this.displayedMonth},__getInitialDay:function(){return this.initialDay},__getInitialYear:function(){return this.initialYear},__getInitialMonthNumber:function(){return this.initialMonth},__getMonthNameByMonthNumber:function(monthNumber){return this.languageModel.monthArray[monthNumber-1]},__moveOneYearBack:function(){this.displayedYear--},__moveOneYearForward:function(){this.displayedYear++},__moveOneMonthBack:function(){this.displayedMonth--;if(this.displayedMonth<1){this.displayedMonth=12;this.displayedYear--}},__moveOneMonthForward:function(){this.displayedMonth++;if(this.displayedMonth>12){this.displayedMonth=1;this.displayedYear++}},__setDisplayedYear:function(year){var success=year!=this.displayedYear;this.displayedYear=year;return success},__setDisplayedMonth:function(month){var success=month!=this.displayedMonth;this.displayedMonth=month;return success},__setDisplayedDay:function(day){this.displayedDay=day},__setDisplayedHour:function(hour){this.displayedHour=hour/1},__setDisplayedMinute:function(minute){this.displayedMinute=minute/1},__getPreviousYearAndMonthAsArray:function(){var month=this.displayedMonth-1,year=this.displayedYear;if(month==0){month=12;year=year-1};var retArray=[year,month];return retArray},__getNumberOfDaysInCurrentDisplayedMonth:function(){return this.__getNumberOfDaysInAMonthByMonthAndYear(this.displayedYear,this.displayedMonth)},__getNumberOfDaysInAMonthByMonthAndYear:function(year,month){var daysInMonthArray=[31,28,31,30,31,30,31,31,30,31,30,31],daysInMonth=daysInMonthArray[month-1];if(daysInMonth==28)if(this.__isLeapYear(year))daysInMonth=29;return daysInMonth/1},__getStringWeek:function(){return this.languageModel.weekString},__getDaysMondayToSunday:function(){return this.languageModel.dayArray},__getDaysSundayToSaturday:function(){var retArray=this.languageModel.dayArray.concat(),lastDay=new Array(retArray[retArray.length-1]);retArray.pop();return lastDay.concat(retArray)},__getWeekNumberFromDayMonthAndYear:function(year,month,day){day=day/1;year=year/1;month=month/1;if(!this.weekStartsOnMonday)return this.__getWeekNumberFromDayMonthAndYear_S(year,month,day);var a=Math.floor((14-(month))/12),y=year+4800-a,m=(month)+(12*a)-3,jd=day+Math.floor(((153*m)+2)/5)+(365*y)+Math.floor(y/4)-Math.floor(y/100)+Math.floor(y/400)-32045,d4=(jd+31741-(jd%7))%146097%36524%1461,L=Math.floor(d4/1460),d1=((d4-L)%365)+L;NumberOfWeek=Math.floor(d1/7)+1;return NumberOfWeek},__getWeekNumberFromDayMonthAndYear_S:function(year,month,day){month--;now=Date.UTC(year,month,day+1,0,0,0);var firstDay=new Date();firstDay.setYear(year);firstDay.setMonth(0);firstDay.setDate(1);then=Date.UTC(year,0,1,0,0,0);var Compensation=firstDay.getDay();if(Compensation>3){Compensation-=4}else Compensation+=3;NumberOfWeek=Math.round((((now-then)/86400000)+Compensation)/7);return NumberOfWeek},__getDayNumberFirstDayInYear:function(year){var d=new Date();d.setFullYear(year);d.setDate(1);d.setMonth(0);return d.getDay()},__getRemainingDaysInPreviousMonthAsArray:function(){var d=new Date();d.setFullYear(this.displayedYear);d.setDate(1);d.setMonth(this.displayedMonth-1);var dayStartOfMonth=d.getDay();if(this.weekStartsOnMonday){if(dayStartOfMonth==0)dayStartOfMonth=7;dayStartOfMonth--};var previousMonthArray=this.__getPreviousYearAndMonthAsArray(),daysInPreviousMonth=this.__getNumberOfDaysInAMonthByMonthAndYear(previousMonthArray[0],previousMonthArray[1]),returnArray=new Array();for(var no=0;no<dayStartOfMonth;no++)returnArray[returnArray.length]=daysInPreviousMonth-dayStartOfMonth+no+1;return returnArray},__getMonthNames:function(){return this.languageModel.monthArray},__getTodayAsString:function(){return this.languageModel.todayString},__getTimeAsString:function(){return this.languageModel.timeString}};DHTMLSuite.calendar=function(propertyArray){var id,divElement,divElContent,divElHeading,divElNavBar,divElMonthView,divElMonthNInHead,divElYearInHeading,divElBtnPreviousYear,divElBtnNextYear,divElBtnPrvMonth,divElBtnNextMonth,divElYearDropdown,divElYearDropdownParentYears,divElHourDropdownParentHours,divElHourDropdown,divElMinuteDropdownParent,divElMinuteDropdown,divElTodayInNavBar,divElHrInTimeBar,divElMinInTimeBar,divElTimeStringInTimeBar,iframeEl,iframeElDropDowns,calendarModelReference,objectIndex,targetReference,layoutCSS,isDragable,referenceToDragDropObject,scrollInYearDropDownActive,scrollInHourDropDownActive,scrollInMinuteDropDownActive,yearDropDownOffsetInYear,hourDropDownOffsetInHour,minuteDropDownOffsetInHour,displayCloseButton,displayNavigationBar,displayTodaysDateInNavigationBar,displayTimeBar,posRefToHtmlEl,positioningOffsetXInPixels,positioningOffsetYInPixels,htmlElementReferences,minuteDropDownInterval,numberOfRowsInMinuteDropDown,numberOfRowsInHourDropDown,numberOfRowsInYearDropDown;this.displayTimeBar=false;this.minuteDropDownInterval=5;this.htmlElementReferences=new Object();this.posRefToHtmlEl=false;this.displayCloseButton=true;this.displayNavigationBar=true;this.displayTodaysDateInNavigationBar=true;this.yearDropDownOffsetInYear=0;this.hourDropDownOffsetInHour=0;this.minuteDropDownOffsetInHour=0;this.minuteDropDownOffsetInMinute=0;this.layoutCSS='calendar.css';this.isDragable=false;this.scrollInYearDropDownActive=false;this.scrollInHourDropDownActive=false;this.scrollInMinuteDropDownActive=false;this.numberOfRowsInMinuteDropDown=10;this.numberOfRowsInHourDropDown=10;this.numberOfRowsInYearDropDown=10;var callbackFunctionOnDayClick,callbackFunctionOnClose,callbackFunctionOnMonthChange,dateOfToday;this.dateOfToday=new Date();try{if(!standardObjectsCreated)DHTMLSuite.createStandardObjects()}catch(e){alert('Include the dhtmlSuite-common.js file')};this.objectIndex=DHTMLSuite.variableStorage.arrayDSObjects.length;DHTMLSuite.variableStorage.arrayDSObjects[this.objectIndex]=this;if(propertyArray)this.__setInitialData(propertyArray)};DHTMLSuite.calendar.prototype={setCallbackFunctionOnDayClick:function(functionName){this.callbackFunctionOnDayClick=functionName},setCallbackFunctionOnMonthChange:function(functionName){if(!this.calendarModelReference)this.calendarModelReference=new DHTMLSuite.calendarModel();this.callbackFunctionOnMonthChange=functionName},setCallbackFunctionOnClose:function(functionName){this.callbackFunctionOnClose=functionName},setCalendarModelReference:function(calendarModelReference){this.calendarModelReference=calendarModelReference},setCalendarPositionByHTMLElement:function(refToHtmlEl,offsetXInPx,offsetYInPx){refToHtmlEl=DHTMLSuite.commonObj.getEl(refToHtmlEl);this.posRefToHtmlEl=refToHtmlEl;if(!offsetXInPx)offsetXInPx=0;if(!offsetYInPx)offsetYInPx=0;this.positioningOffsetXInPixels=offsetXInPx;this.positioningOffsetYInPixels=offsetYInPx},addHtmlElementReference:function(key,referenceToHtmlEl){referenceToHtmlEl=DHTMLSuite.commonObj.getEl(referenceToHtmlEl);if(key)this.htmlElementReferences[key]=referenceToHtmlEl},getHtmlElementReferences:function(){return this.htmlElementReferences},setDisplayCloseButton:function(displayCloseButton){this.displayCloseButton=displayCloseButton},setTargetReference:function(targetRef){targetRef=DHTMLSuite.commonObj.getEl(targetRef);this.targetReference=targetRef},setIsDragable:function(isDragable){this.isDragable=isDragable},resetViewDisplayedMonth:function(){if(!this.divElement)return;if(!this.calendarModelReference)this.calendarModelReference=new DHTMLSuite.calendarModel();this.calendarModelReference.__setDisplayedDateToInitialData();this.__populateCalHeading();this.__populateMonthView()},setLayoutCss:function(nameOfCssFile){this.layoutCSS=nameOfCssFile},__init:function(){if(!this.divElement){DHTMLSuite.commonObj.loadCSS(this.layoutCSS);if(!this.calendarModelReference)this.calendarModelReference=new DHTMLSuite.calendarModel();this.__createMainHtmlEls();this.__createHeadingElements();this.__createNavigationBar();this.__populateNavigationBar();this.__populateCalHeading();this.__createCalMonthView();this.__populateMonthView();this.__createTimeBar();this.__populateTimeBar();this.__createDropDownYears();this.__populateDropDownYears();this.__positionDropDownYears();this.__createDropDownMonth();this.__populateDropDownMonths();this.__positionDropDownMonths();this.__createDropDownHours();this.__populateDropDownHours();this.__positionDropDownHours();this.__createDropDownMinutes();this.__populateDropDownMinutes();this.__positionDropDownMinutes();this.__addEvents()}else{this.divElement.style.display='block';this.__populateCalHeading();this.__populateMonthView()};this.__resizePrimaryiframeEl()},display:function(){if(!this.divElement)this.__init();this.__positionCalendar();this.divElement.style.display='block';this.__resizePrimaryiframeEl()},hide:function(){if(this.__handleCalendarCallBack('calendarClose')===false)return false;this.divElement.style.display='none';this.divElYearDropdown.style.display='none';this.divElMonthDropdown.style.display='none'},isVisible:function(){if(!this.divElement)return false;return this.divElement.style.display=='block'?true:false},setInitialDateFromInput:function(inputReference,format){if(!this.calendarModelReference)this.calendarModelReference=new DHTMLSuite.calendarModel();this.calendarModelReference.setInitialDateFromInput(inputReference,format)},setDisplayedYear:function(year){var success=this.calendarModelReference.__setDisplayedYear(year);this.__populateCalHeading();this.__populateMonthView();if(success)this.__handleCalendarCallBack('monthChange')},setDisplayedMonth:function(month){var success=this.calendarModelReference.__setDisplayedMonth(month);this.__populateCalHeading();this.__populateMonthView();if(success)this.__handleCalendarCallBack('monthChange')},setDisplayedHour:function(hour){this.calendarModelReference.__setDisplayedHour(hour);this.__populateTimeBar()},setDisplayedMinute:function(minute){this.calendarModelReference.__setDisplayedMinute(minute);this.__populateTimeBar()},__createDropDownMonth:function(){this.divElMonthDropdown=document.createElement('DIV');this.divElMonthDropdown.style.display='none';this.divElMonthDropdown.className='DHTMLSuite_calendar_monthDropDown';document.body.appendChild(this.divElMonthDropdown)},__populateDropDownMonths:function(){this.divElMonthDropdown.innerHTML='';var ind=this.objectIndex,months=this.calendarModelReference.__getMonthNames();for(var no=0;no<months.length;no++){var div=document.createElement('DIV');div.className='DHTMLSuite_calendar_dropDownAMonth';if((no+1)==this.calendarModelReference.__getDisplayedMonthNumber())div.className='DHTMLSuite_calendar_yearDropDownCurrentMonth';div.innerHTML=months[no];div.id='DHTMLSuite_calendarMonthPicker'+(no+1);div.onmouseover=this.__mouseoverMonthInDropDown;div.onmouseout=this.__mouseoutMonthInDropDown;div.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__setMonthFromDropdown(e)};this.divElMonthDropdown.appendChild(div);DHTMLSuite.commonObj.__addEventEl(div)}},__createDropDownYears:function(){this.divElYearDropdown=document.createElement('DIV');this.divElYearDropdown.style.display='none';this.divElYearDropdown.className='DHTMLSuite_calendar_yearDropDown';document.body.appendChild(this.divElYearDropdown)},__createDropDownHours:function(){this.divElHourDropdown=document.createElement('DIV');this.divElHourDropdown.style.display='none';this.divElHourDropdown.className='DHTMLSuite_calendar_hourDropDown';document.body.appendChild(this.divElHourDropdown)},__createDropDownMinutes:function(){this.divElMinuteDropdown=document.createElement('DIV');this.divElMinuteDropdown.style.display='none';this.divElMinuteDropdown.className='DHTMLSuite_calendar_minuteDropDown';document.body.appendChild(this.divElMinuteDropdown)},__populateDropDownMinutes:function(){var ind=this.objectIndex;this.divElMinuteDropdown.innerHTML='';var divPrevious=document.createElement('DIV');divPrevious.className='DHTMLSuite_calendar_dropDown_arrowUp';divPrevious.onmouseover=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoverUpAndDownArrowsInDropDownMinutes(e)};divPrevious.onmouseout=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoutUpAndDownArrowsInDropDownMinutes(e)};this.divElMinuteDropdown.appendChild(divPrevious);DHTMLSuite.commonObj.__addEventEl(divPrevious);this.divElMinuteDropdownParent=document.createElement('DIV');this.divElMinuteDropdown.appendChild(this.divElMinuteDropdownParent);this.__populateMinutesInsideDropDownMinutes(this.divElMinuteDropdownParent);var divNext=document.createElement('DIV');divNext.className='DHTMLSuite_calendar_dropDown_arrowDown';divNext.innerHTML='<span></span>';divNext.onmouseover=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoverUpAndDownArrowsInDropDownMinutes(e)};divNext.onmouseout=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoutUpAndDownArrowsInDropDownMinutes(e)};DHTMLSuite.commonObj.__addEventEl(divNext);this.divElMinuteDropdown.appendChild(divNext);if(60/this.minuteDropDownInterval<this.numberOfRowsInMinuteDropDown){divPrevious.style.display='none';divNext.style.display='none'}},__populateMinutesInsideDropDownMinutes:function(){var ind=this.objectIndex;this.divElMinuteDropdownParent.innerHTML='';if(60/this.minuteDropDownInterval<this.numberOfRowsInMinuteDropDown){startMinute=0}else{var startMinute=Math.max(0,(this.calendarModelReference.__getDisplayedMinute()-Math.round(this.numberOfRowsInMinuteDropDown/2)));startMinute+=(this.minuteDropDownOffsetInMinute*this.minuteDropDownInterval);if(startMinute<0){startMinute+=this.minuteDropDownInterval;this.minuteDropDownOffsetInMinute++};if(startMinute+(this.numberOfRowsInMinuteDropDown*this.minuteDropDownInterval)>60){startMinute-=this.minuteDropDownInterval;this.minuteDropDownOffsetInMinute--}};for(var no=startMinute;no<Math.min(60,startMinute+this.numberOfRowsInMinuteDropDown*(this.minuteDropDownInterval));no+=this.minuteDropDownInterval){var div=document.createElement('DIV');div.className='DHTMLSuite_calendar_dropDownAMinute';if(no==this.calendarModelReference.__getDisplayedMinute())div.className='DHTMLSuite_calendar_minuteDropDownCurrentMinute';var prefix="";if(no<10)prefix="0";div.innerHTML=prefix+no;div.onmouseover=this.__mouseoverMinuteInDropDown;div.onmouseout=this.__mouseoutMinuteInDropDown;div.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__setMinuteFromDropdown(e)};this.divElMinuteDropdownParent.appendChild(div);DHTMLSuite.commonObj.__addEventEl(div)}},__populateDropDownHours:function(){var ind=this.objectIndex;this.divElHourDropdown.innerHTML='';var div=document.createElement('DIV');div.className='DHTMLSuite_calendar_dropDown_arrowUp';div.onmouseover=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoverUpAndDownArrowsInDropDownHours(e)};div.onmouseout=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoutUpAndDownArrowsInDropDownHours(e)};this.divElHourDropdown.appendChild(div);DHTMLSuite.commonObj.__addEventEl(div);this.divElHourDropdownParentHours=document.createElement('DIV');this.divElHourDropdown.appendChild(this.divElHourDropdownParentHours);this.__populateHoursInsideDropDownHours(this.divElHourDropdownParentHours);var div=document.createElement('DIV');div.className='DHTMLSuite_calendar_dropDown_arrowDown';div.innerHTML='<span></span>';div.onmouseover=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoverUpAndDownArrowsInDropDownHours(e)};div.onmouseout=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoutUpAndDownArrowsInDropDownHours(e)};DHTMLSuite.commonObj.__addEventEl(div);this.divElHourDropdown.appendChild(div)},__populateHoursInsideDropDownHours:function(){var ind=this.objectIndex;this.divElHourDropdownParentHours.innerHTML='';var startHour=Math.max(0,(this.calendarModelReference.__getDisplayedHour()-Math.round(this.numberOfRowsInHourDropDown/2)));startHour=Math.min(14,startHour);if((startHour+this.hourDropDownOffsetInHour+this.numberOfRowsInHourDropDown)>24)this.hourDropDownOffsetInHour=(24-startHour-this.numberOfRowsInHourDropDown);if((startHour+this.hourDropDownOffsetInHour)<0)this.hourDropDownOffsetInHour=startHour*-1;startHour+=this.hourDropDownOffsetInHour;if(startHour<0)startHour=0;if(startHour>(24-this.numberOfRowsInHourDropDown))startHour=(24-this.numberOfRowsInHourDropDown);for(var no=startHour;no<startHour+this.numberOfRowsInHourDropDown;no++){var div=document.createElement('DIV');div.className='DHTMLSuite_calendar_dropDownAnHour';if(no==this.calendarModelReference.__getDisplayedHour())div.className='DHTMLSuite_calendar_hourDropDownCurrentHour';var prefix="";if(no<10)prefix="0";div.innerHTML=prefix+no;div.onmouseover=this.__mouseoverHourInDropDown;div.onmouseout=this.__mouseoutHourInDropDown;div.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__setHourFromDropdown(e)};this.divElHourDropdownParentHours.appendChild(div);DHTMLSuite.commonObj.__addEventEl(div)}},__populateDropDownYears:function(){var ind=this.objectIndex;this.divElYearDropdown.innerHTML='';var div=document.createElement('DIV');div.className='DHTMLSuite_calendar_dropDown_arrowUp';div.onmouseover=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoverUpAndDownArrowsInDropDownYears(e)};div.onmouseout=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoutUpAndDownArrowsInDropDownYears(e)};this.divElYearDropdown.appendChild(div);DHTMLSuite.commonObj.__addEventEl(div);this.divElYearDropdownParentYears=document.createElement('DIV');this.divElYearDropdown.appendChild(this.divElYearDropdownParentYears);this.__populateYearsInsideDropDownYears(this.divElYearDropdownParentYears);var div=document.createElement('DIV');div.className='DHTMLSuite_calendar_dropDown_arrowDown';div.innerHTML='<span></span>';div.onmouseover=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoverUpAndDownArrowsInDropDownYears(e)};div.onmouseout=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mouseoutUpAndDownArrowsInDropDownYears(e)};DHTMLSuite.commonObj.__addEventEl(div);this.divElYearDropdown.appendChild(div)},__populateYearsInsideDropDownYears:function(divElementToPopulate){var ind=this.objectIndex;this.divElYearDropdownParentYears.innerHTML='';var startYear=this.calendarModelReference.__getDisplayedYear()-5+this.yearDropDownOffsetInYear;for(var no=startYear;no<startYear+this.numberOfRowsInYearDropDown;no++){var div=document.createElement('DIV');div.className='DHTMLSuite_calendar_dropDownAYear';if(no==this.calendarModelReference.__getDisplayedYear())div.className='DHTMLSuite_calendar_yearDropDownCurrentYear';div.innerHTML=no;div.onmouseover=this.__mouseoverYearInDropDown;div.onmouseout=this.__mouseoutYearInDropDown;div.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__setYearFromDropdown(e)};this.divElYearDropdownParentYears.appendChild(div);DHTMLSuite.commonObj.__addEventEl(div)}},__positionDropDownMonths:function(){this.divElMonthDropdown.style.left=DHTMLSuite.commonObj.getLeftPos(this.divElMonthNInHead)+'px';this.divElMonthDropdown.style.top=(DHTMLSuite.commonObj.getTopPos(this.divElMonthNInHead)+this.divElMonthNInHead.offsetHeight)+'px';if(this.iframeElDropDowns){var st=this.iframeElDropDowns.style;st.left=this.divElMonthDropdown.style.left;st.top=this.divElMonthDropdown.style.top;st.width=(this.divElMonthDropdown.clientWidth)+'px';st.height=this.divElMonthDropdown.clientHeight+'px';st.display=this.divElMonthDropdown.style.display}},__positionDropDownYears:function(){this.divElYearDropdown.style.left=DHTMLSuite.commonObj.getLeftPos(this.divElYearInHeading)+'px';this.divElYearDropdown.style.top=(DHTMLSuite.commonObj.getTopPos(this.divElYearInHeading)+this.divElYearInHeading.offsetHeight)+'px';if(this.iframeElDropDowns){var st=this.iframeElDropDowns.style;st.left=this.divElYearDropdown.style.left;st.top=this.divElYearDropdown.style.top;st.width=(this.divElYearDropdown.clientWidth)+'px';st.height=this.divElYearDropdown.clientHeight+'px';st.display=this.divElYearDropdown.style.display}},__positionDropDownHours:function(){this.divElHourDropdown.style.left=DHTMLSuite.commonObj.getLeftPos(this.divElHrInTimeBar)+'px';this.divElHourDropdown.style.top=(DHTMLSuite.commonObj.getTopPos(this.divElHrInTimeBar)+this.divElHrInTimeBar.offsetHeight)+'px';if(this.iframeElDropDowns){var st=this.iframeElDropDowns.style;st.left=this.divElHourDropdown.style.left;st.top=this.divElHourDropdown.style.top;st.width=(this.divElHourDropdown.clientWidth)+'px';st.height=this.divElHourDropdown.clientHeight+'px';st.display=this.divElHourDropdown.style.display}},__positionDropDownMinutes:function(){this.divElMinuteDropdown.style.left=DHTMLSuite.commonObj.getLeftPos(this.divElMinInTimeBar)+'px';this.divElMinuteDropdown.style.top=(DHTMLSuite.commonObj.getTopPos(this.divElMinInTimeBar)+this.divElMinInTimeBar.offsetHeight)+'px';if(this.iframeElDropDowns){var st=this.iframeElDropDowns.style;st.left=this.divElMinuteDropdown.style.left;st.top=this.divElMinuteDropdown.style.top;st.width=(this.divElMinuteDropdown.clientWidth)+'px';st.height=this.divElMinuteDropdown.clientHeight+'px';st.display=this.divElMinuteDropdown.style.display}},__setMonthFromDropdown:function(e){if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e);this.__showHideDropDownBoxMonth();this.setDisplayedMonth(src.id.replace(/[^0-9]/gi,''))},__setYearFromDropdown:function(e){if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e);this.__showHideDropDownBoxYear();this.setDisplayedYear(src.innerHTML)},__setHourFromDropdown:function(e){if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e);this.__showHideDropDownBoxHour();this.setDisplayedHour(src.innerHTML)},__setMinuteFromDropdown:function(e){if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e);this.__showHideDropDownBoxMinute();this.setDisplayedMinute(src.innerHTML)},__autoHideDropDownBoxes:function(e){if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e);if(src.className.indexOf('MonthAndYear')>=0||src.className.indexOf('HourAndMinute')>=0)if(DHTMLSuite.commonObj.isObjectClicked(this.divElement,e))return;this.__showHideDropDownBoxMonth('none');this.__showHideDropDownBoxYear('none');this.__showHideDropDownBoxHour('none');this.__showHideDropDownBoxMinute('none')},__showHideDropDownBoxMonth:function(forcedDisplayAttribute){if(!forcedDisplayAttribute){this.__showHideDropDownBoxYear('none');this.__showHideDropDownBoxHour('none')};if(forcedDisplayAttribute){this.divElMonthDropdown.style.display=forcedDisplayAttribute}else this.divElMonthDropdown.style.display=(this.divElMonthDropdown.style.display=='block'?'none':'block');this.__populateDropDownMonths();this.__positionDropDownMonths()},__showHideDropDownBoxYear:function(forcedDisplayAttribute){if(!forcedDisplayAttribute){this.__showHideDropDownBoxMonth('none');this.__showHideDropDownBoxHour('none');this.__showHideDropDownBoxMinute('none')};if(forcedDisplayAttribute){this.divElYearDropdown.style.display=forcedDisplayAttribute}else this.divElYearDropdown.style.display=(this.divElYearDropdown.style.display=='block'?'none':'block');if(this.divElYearDropdown.style.display=='none'){this.yearDropDownOffsetInYear=0}else this.__populateDropDownYears();this.__positionDropDownYears()},__showHideDropDownBoxHour:function(forcedDisplayAttribute){if(!forcedDisplayAttribute){this.__showHideDropDownBoxYear('none');this.__showHideDropDownBoxMonth('none');this.__showHideDropDownBoxMinute('none')};if(forcedDisplayAttribute){this.divElHourDropdown.style.display=forcedDisplayAttribute}else this.divElHourDropdown.style.display=(this.divElHourDropdown.style.display=='block'?'none':'block');if(this.divElHourDropdown.style.display=='none'){this.hourDropDownOffsetInHour=0}else this.__populateDropDownHours();this.__positionDropDownHours()},__showHideDropDownBoxMinute:function(forcedDisplayAttribute){if(!forcedDisplayAttribute){this.__showHideDropDownBoxYear('none');this.__showHideDropDownBoxMonth('none');this.__showHideDropDownBoxHour('none')};if(forcedDisplayAttribute){this.divElMinuteDropdown.style.display=forcedDisplayAttribute}else this.divElMinuteDropdown.style.display=(this.divElMinuteDropdown.style.display=='block'?'none':'block');if(this.divElMinuteDropdown.style.display=='none'){this.minuteDropDownOffsetInMinute=0}else this.__populateDropDownMinutes();this.__positionDropDownMinutes()},__createMainHtmlEls:function(){this.divElement=document.createElement('DIV');this.divElement.className='DHTMLSuite_calendar';this.divElContent=document.createElement('DIV');this.divElement.appendChild(this.divElContent);this.divElContent.className='DHTMLSuite_calendarContent';if(this.targetReference){this.targetReference.appendChild(this.divElement)}else document.body.appendChild(this.divElement);if(this.isDragable)try{this.referenceToDragDropObject=new DHTMLSuite.dragDropSimple({elementReference:this.divElement})}catch(e){alert('Include DHTMLSuite-dragDropSimple.js for the drag feature')};if(DHTMLSuite.clientInfoObj.isMSIE&&DHTMLSuite.clientInfoObj.navigatorVersion<8){this.iframeEl=document.createElement('<iframe src="about:blank" frameborder="0">');this.iframeEl.className='DHTMLSuite_calendar_iframe';this.iframeEl.style.left='0px';this.iframeEl.style.top='0px';this.iframeEl.style.position='absolute';this.divElement.appendChild(this.iframeEl);this.iframeElDropDowns=document.createElement('<iframe src="about:blank" frameborder="0">');this.iframeElDropDowns.className='DHTMLSuite_calendar_iframe';this.iframeElDropDowns.style.display='none';document.body.appendChild(this.iframeElDropDowns)}},__createHeadingElements:function(){this.divElHeading=document.createElement('DIV');if(this.isDragable){this.referenceToDragDropObject.addDragHandle(this.divElHeading);this.divElHeading.style.cursor='move'};this.divElHeading.className='DHTMLSuite_calendarHeading';this.divElContent.appendChild(this.divElHeading);this.divElHeading.style.position='relative';this.divElClose=document.createElement('DIV');this.divElClose.innerHTML='<span></span>';this.divElClose.className='DHTMLSuite_calendarCloseButton';this.divElHeading.appendChild(this.divElClose);if(!this.displayCloseButton)this.divElClose.style.display='none';this.divElHeadingTxt=document.createElement('DIV');this.divElHeadingTxt.className='DHTMLSuite_calendarHeadingTxt';if(DHTMLSuite.clientInfoObj.isMSIE){var table=document.createElement('<TABLE cellpadding="0" cellspacing="0" border="0">')}else{var table=document.createElement('TABLE');table.setAttribute('cellpadding',0);table.setAttribute('cellspacing',0);table.setAttribute('border',0)};table.style.margin='0 auto';var tbody=document.createElement('TBODY');table.appendChild(tbody);this.divElHeadingTxt.appendChild(table);var row=tbody.insertRow(0),cell=row.insertCell(-1);this.divElMonthNInHead=document.createElement('DIV');this.divElMonthNInHead.className='DHTMLSuite_calendarHeaderMonthAndYear';cell.appendChild(this.divElMonthNInHead);var cell=row.insertCell(-1),span=document.createElement('SPAN');span.innerHTML=',';cell.appendChild(span);var cell=row.insertCell(-1);this.divElYearInHeading=document.createElement('DIV');this.divElYearInHeading.className='DHTMLSuite_calendarHeaderMonthAndYear';cell.appendChild(this.divElYearInHeading);this.divElHeading.appendChild(this.divElHeadingTxt)},__createNavigationBar:function(){this.divElNavBar=document.createElement('DIV');this.divElNavBar.className='DHTMLSuite_calendar_navigationBar';this.divElContent.appendChild(this.divElNavBar);this.divElBtnPreviousYear=document.createElement('DIV');this.divElBtnPreviousYear.className='DHTMLSuite_calendar_btnPreviousYear';this.divElBtnPreviousYear.innerHTML='<span></span>';this.divElNavBar.appendChild(this.divElBtnPreviousYear);this.divElBtnNextYear=document.createElement('DIV');this.divElBtnNextYear.className='DHTMLSuite_calendar_btnNextYear';this.divElBtnNextYear.innerHTML='<span></span>';this.divElNavBar.appendChild(this.divElBtnNextYear);this.divElBtnPrvMonth=document.createElement('DIV');this.divElBtnPrvMonth.className='DHTMLSuite_calendar_btnPreviousMonth';this.divElBtnPrvMonth.innerHTML='<span></span>';this.divElNavBar.appendChild(this.divElBtnPrvMonth);this.divElBtnNextMonth=document.createElement('DIV');this.divElBtnNextMonth.className='DHTMLSuite_calendar_btnNextMonth';this.divElBtnNextMonth.innerHTML='<span></span>';this.divElNavBar.appendChild(this.divElBtnNextMonth);this.divElTodayInNavBar=document.createElement('DIV');this.divElTodayInNavBar.className='DHTMLSuite_calendar_navigationBarToday';this.divElNavBar.appendChild(this.divElTodayInNavBar);if(!this.displayNavigationBar)this.divElNavBar.style.display='none';if(!this.displayTodaysDateInNavigationBar)this.divElTodayInNavBar.style.display='none'},__populateNavigationBar:function(){var ind=this.objectIndex;this.divElTodayInNavBar.innerHTML='';var span=document.createElement('SPAN');span.innerHTML=this.calendarModelReference.__getTodayAsString();span.onclick=function(){DHTMLSuite.variableStorage.arrayDSObjects[ind].__displayMonthOfToday()};this.divElTodayInNavBar.appendChild(span);DHTMLSuite.commonObj.__addEventEl(span)},__createCalMonthView:function(){this.divElMonthView=document.createElement('DIV');this.divElMonthView.className='DHTMLSuite_calendar_monthView';this.divElContent.appendChild(this.divElMonthView)},__populateMonthView:function(){var ind=this.objectIndex;this.divElMonthView.innerHTML='';var modelRef=this.calendarModelReference;if(DHTMLSuite.clientInfoObj.isMSIE){var table=document.createElement('<TABLE cellpadding="1" cellspacing="0" border="0" width="100%">')}else{var table=document.createElement('TABLE');table.setAttribute('cellpadding',1);table.setAttribute('cellspacing',0);table.setAttribute('border',0);table.width='100%'};var tbody=document.createElement('TBODY');table.appendChild(tbody);this.divElMonthView.appendChild(table);var row=tbody.insertRow(-1);row.className='DHTMLSuite_calendar_monthView_headerRow';var cell=row.insertCell(-1);cell.className='DHTMLSuite_calendar_monthView_firstColumn';cell.innerHTML=modelRef.__getStringWeek();if(modelRef.getWeekStartsOnMonday()){var days=modelRef.__getDaysMondayToSunday()}else var days=modelRef.__getDaysSundayToSaturday();for(var no=0;no<days.length;no++){var cell=row.insertCell(-1);cell.innerHTML=days[no];cell.className='DHTMLSuite_calendar_monthView_headerCell';if(modelRef.getWeekStartsOnMonday()&&no==6)cell.className='DHTMLSuite_calendar_monthView_headerSunday';if(!modelRef.getWeekStartsOnMonday()&&no==0)cell.className='DHTMLSuite_calendar_monthView_headerSunday'};var row=tbody.insertRow(-1),cell=row.insertCell(-1);cell.className='DHTMLSuite_calendar_monthView_firstColumn';var week=modelRef.__getWeekNumberFromDayMonthAndYear(modelRef.__getDisplayedYear(),modelRef.__getDisplayedMonthNumber(),1);cell.innerHTML=week>0?week:53;var daysRemainingInPreviousMonth=modelRef.__getRemainingDaysInPreviousMonthAsArray();for(var no=0;no<daysRemainingInPreviousMonth.length;no++){var cell=row.insertCell(-1);cell.innerHTML=daysRemainingInPreviousMonth[no];cell.className='DHTMLSuite_calendar_monthView_daysInOtherMonths'};var daysInCurrentMonth=modelRef.__getNumberOfDaysInCurrentDisplayedMonth(),cellCounter=daysRemainingInPreviousMonth.length+1;for(var no=1;no<=daysInCurrentMonth;no++){var cell=row.insertCell(-1);cell.innerHTML=no;cell.className='DHTMLSuite_calendar_monthView_daysInThisMonth';DHTMLSuite.commonObj.__addEventEl(cell);if(cellCounter%7==0&&modelRef.getWeekStartsOnMonday())cell.className='DHTMLSuite_calendar_monthView_sundayInThisMonth';if(cellCounter%7==1&&!modelRef.getWeekStartsOnMonday())cell.className='DHTMLSuite_calendar_monthView_sundayInThisMonth';if(no==modelRef.__getInitialDay()&&modelRef.__getDisplayedYear()==modelRef.__getInitialYear()&&modelRef.__getDisplayedMonthNumber()==modelRef.__getInitialMonthNumber())cell.className='DHTMLSuite_calendar_monthView_initialDate';if(!modelRef.isDateWithinValidRange({year:modelRef.__getDisplayedYear(),month:modelRef.__getDisplayedMonthNumber(),day:no})){cell.className='DHTMLSuite_calendar_monthView_invalidDate'}else{cell.onmousedown=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__mousedownOnDayInCalendar(e)};cell.onmouseover=this.__mouseoverCalendarDay;cell.onmouseout=this.__mouseoutCalendarDay;DHTMLSuite.commonObj.__addEventEl(cell)};if(no==this.dateOfToday.getDate()&&modelRef.__getDisplayedYear()==this.dateOfToday.getFullYear()&&modelRef.__getDisplayedMonthNumber()==(this.dateOfToday.getMonth()+1))cell.className='DHTMLSuite_calendar_monthView_currentDate';if(cellCounter%7==0&&no<daysInCurrentMonth){var row=tbody.insertRow(-1),cell=row.insertCell(-1);cell.className='DHTMLSuite_calendar_monthView_firstColumn';week++;cell.innerHTML=week};cellCounter++};if((cellCounter-1)%7>0){var dayCounter=1;for(var no=(cellCounter-1)%7;no<7;no++){var cell=row.insertCell(-1);cell.innerHTML=dayCounter;cell.className='DHTMLSuite_calendar_monthView_daysInOtherMonths';dayCounter++}}},__createTimeBar:function(){this.divElTimeBar=document.createElement('DIV');this.divElTimeBar.className='DHTMLSuite_calendar_timeBar';this.divElContent.appendChild(this.divElTimeBar);if(DHTMLSuite.clientInfoObj.isMSIE){var table=document.createElement('<TABLE cellpadding="0" cellspacing="0" border="0">')}else{var table=document.createElement('TABLE');table.setAttribute('cellpadding',0);table.setAttribute('cellspacing',0);table.setAttribute('border',0)};table.style.margin='0 auto';this.divElTimeBar.appendChild(table);var row=table.insertRow(0),cell=row.insertCell(-1);this.divElHrInTimeBar=document.createElement('DIV');this.divElHrInTimeBar.className='DHTMLSuite_calendar_timeBarHourAndMinute';cell.appendChild(this.divElHrInTimeBar);var cell=row.insertCell(-1),span=document.createElement('SPAN');span.innerHTML=':';cell.appendChild(span);var cell=row.insertCell(-1);this.divElMinInTimeBar=document.createElement('DIV');this.divElMinInTimeBar.className='DHTMLSuite_calendar_timeBarHourAndMinute';cell.appendChild(this.divElMinInTimeBar);this.divElTimeStringInTimeBar=document.createElement('DIV');this.divElTimeStringInTimeBar.className='DHTMLSuite_calendarTimeBarTimeString';this.divElTimeBar.appendChild(this.divElTimeStringInTimeBar);if(!this.displayTimeBar)this.divElTimeBar.style.display='none'},__populateTimeBar:function(){this.divElHrInTimeBar.innerHTML=this.calendarModelReference.__getDisplayedHourWithLeadingZeros();this.divElMinInTimeBar.innerHTML=this.calendarModelReference.__getDisplayedMinuteWithLeadingZeros();this.divElTimeStringInTimeBar.innerHTML=this.calendarModelReference.__getTimeAsString()+':'},__populateCalHeading:function(){this.divElMonthNInHead.innerHTML=this.calendarModelReference.__getMonthNameByMonthNumber(this.calendarModelReference.__getDisplayedMonthNumber());this.divElYearInHeading.innerHTML=this.calendarModelReference.__getDisplayedYear()},__mousedownOnDayInCalendar:function(e){if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e);this.calendarModelReference.__setDisplayedDay(src.innerHTML);this.__handleCalendarCallBack('dayClick')},__handleCalendarCallBack:function(action){var callbackString='';switch(action){case'dayClick':if(this.callbackFunctionOnDayClick)callbackString=this.callbackFunctionOnDayClick;break;case"monthChange":if(this.callbackFunctionOnMonthChange)callbackString=this.callbackFunctionOnMonthChange;break;case"calendarClose":if(this.callbackFunctionOnClose)callbackString=this.callbackFunctionOnClose;break};if(callbackString){callbackString=callbackString+'({ year:'+this.calendarModelReference.__getDisplayedYear()+',month:"'+this.calendarModelReference.__getDisplayedMonthNumberWithLeadingZeros()+'",day:"'+this.calendarModelReference.__getDisplayedDayWithLeadingZeros()+'",hour:"'+this.calendarModelReference.__getDisplayedHourWithLeadingZeros()+'",minute:"'+this.calendarModelReference.__getDisplayedMinuteWithLeadingZeros()+'",calendarRef:this';callbackString=callbackString+'})'};if(callbackString)return this.__evaluateCallBackString(callbackString)},__evaluateCallBackString:function(callbackString){try{return eval(callbackString)}catch(e){alert('Could not excute call back function '+callbackString+'\n'+e.message)}},__displayMonthOfToday:function(){var d=new Date(),month=d.getMonth()+1,year=d.getFullYear();this.setDisplayedYear(year);this.setDisplayedMonth(month)},__moveOneYearBack:function(){this.calendarModelReference.__moveOneYearBack();this.__populateCalHeading();this.__populateMonthView();this.__handleCalendarCallBack('monthChange')},__moveOneYearForward:function(){this.calendarModelReference.__moveOneYearForward();this.__populateCalHeading();this.__populateMonthView();this.__handleCalendarCallBack('monthChange')},__moveOneMonthBack:function(){this.calendarModelReference.__moveOneMonthBack();this.__populateCalHeading();this.__populateMonthView();this.__handleCalendarCallBack('monthChange')},__moveOneMonthForward:function(){this.calendarModelReference.__moveOneMonthForward();this.__populateCalHeading();this.__populateMonthView();this.__handleCalendarCallBack('monthChange')},__addEvents:function(){var ind=this.objectIndex;this.divElClose.onmouseover=this.__mouseoverCalendarButton;this.divElClose.onmouseout=this.__mouseoutCalendarButton;this.divElClose.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].hide()};DHTMLSuite.commonObj.__addEventEl(this.divElClose);this.divElBtnPreviousYear.onmouseover=this.__mouseoverCalendarButton;this.divElBtnPreviousYear.onmouseout=this.__mouseoutCalendarButton;this.divElBtnPreviousYear.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__moveOneYearBack()};DHTMLSuite.commonObj.__addEventEl(this.divElBtnPreviousYear);this.divElBtnNextYear.onmouseover=this.__mouseoverCalendarButton;this.divElBtnNextYear.onmouseout=this.__mouseoutCalendarButton;this.divElBtnNextYear.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__moveOneYearForward()};DHTMLSuite.commonObj.__addEventEl(this.divElBtnNextYear);this.divElBtnPrvMonth.onmouseover=this.__mouseoverCalendarButton;this.divElBtnPrvMonth.onmouseout=this.__mouseoutCalendarButton;this.divElBtnPrvMonth.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__moveOneMonthBack()};DHTMLSuite.commonObj.__addEventEl(this.divElBtnPrvMonth);this.divElBtnNextMonth.onmouseover=this.__mouseoverCalendarButton;this.divElBtnNextMonth.onmouseout=this.__mouseoutCalendarButton;this.divElBtnNextMonth.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__moveOneMonthForward()};DHTMLSuite.commonObj.__addEventEl(this.divElBtnNextMonth);this.divElYearInHeading.onmouseover=this.__mouseoverMonthAndYear;this.divElYearInHeading.onmouseout=this.__mouseoutMonthAndYear;this.divElYearInHeading.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__showHideDropDownBoxYear()};DHTMLSuite.commonObj.__addEventEl(this.divElYearInHeading);this.divElMonthNInHead.onmouseover=this.__mouseoverMonthAndYear;this.divElMonthNInHead.onmouseout=this.__mouseoutMonthAndYear;this.divElMonthNInHead.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__showHideDropDownBoxMonth()};DHTMLSuite.commonObj.__addEventEl(this.divElMonthNInHead);this.divElHrInTimeBar.onmouseover=this.__mouseoverHourAndMinute;this.divElHrInTimeBar.onmouseout=this.__mouseoutHourAndMinute;this.divElHrInTimeBar.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__showHideDropDownBoxHour()};DHTMLSuite.commonObj.__addEventEl(this.divElHrInTimeBar);this.divElMinInTimeBar.onmouseover=this.__mouseoverHourAndMinute;this.divElMinInTimeBar.onmouseout=this.__mouseoutHourAndMinute;this.divElMinInTimeBar.onclick=function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__showHideDropDownBoxMinute()};DHTMLSuite.commonObj.__addEventEl(this.divElMinInTimeBar);this.divElHeading.onselectstart=function(){return false};DHTMLSuite.commonObj.__addEventEl(this.divElHeading);DHTMLSuite.commonObj.addEvent(document.documentElement,'click',function(e){DHTMLSuite.variableStorage.arrayDSObjects[ind].__autoHideDropDownBoxes(e)},ind+'')},__resizePrimaryiframeEl:function(){if(!this.iframeEl)return;this.iframeEl.style.width=this.divElement.clientWidth+'px';this.iframeEl.style.height=this.divElement.clientHeight+'px'},__scrollInYearDropDown:function(scrollDirection){if(!this.scrollInYearDropDownActive)return;var ind=this.objectIndex;this.yearDropDownOffsetInYear+=scrollDirection;this.__populateYearsInsideDropDownYears();setTimeout('DHTMLSuite.variableStorage.arrayDSObjects['+ind+'].__scrollInYearDropDown('+scrollDirection+')',150)},__mouseoverUpAndDownArrowsInDropDownYears:function(e){var ind=this.objectIndex;if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e),scrollDirection=(src.className.toLowerCase().indexOf('up')>=0?-1:1);src.className=src.className+' DHTMLSuite_calendarDropDown_dropDownArrowOver';this.scrollInYearDropDownActive=true;setTimeout('DHTMLSuite.variableStorage.arrayDSObjects['+ind+'].__scrollInYearDropDown('+scrollDirection+')',100)},__mouseoutUpAndDownArrowsInDropDownYears:function(e){if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e);src.className=src.className.replace(' DHTMLSuite_calendarDropDown_dropDownArrowOver','');this.scrollInYearDropDownActive=false},__scrollInHourDropDown:function(scrollDirection){if(!this.scrollInHourDropDownActive)return;var ind=this.objectIndex;this.hourDropDownOffsetInHour+=scrollDirection;this.__populateHoursInsideDropDownHours();setTimeout('DHTMLSuite.variableStorage.arrayDSObjects['+ind+'].__scrollInHourDropDown('+scrollDirection+')',150)},__mouseoverUpAndDownArrowsInDropDownHours:function(e){var ind=this.objectIndex;if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e),scrollDirection=(src.className.toLowerCase().indexOf('up')>=0?-1:1);src.className=src.className+' DHTMLSuite_calendarDropDown_dropDownArrowOver';this.scrollInHourDropDownActive=true;setTimeout('DHTMLSuite.variableStorage.arrayDSObjects['+ind+'].__scrollInHourDropDown('+scrollDirection+')',100)},__mouseoutUpAndDownArrowsInDropDownHours:function(e){if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e);src.className=src.className.replace(' DHTMLSuite_calendarDropDown_dropDownArrowOver','');this.scrollInHourDropDownActive=false},__scrollInMinuteDropDown:function(scrollDirection){if(!this.scrollInMinuteDropDownActive)return;var ind=this.objectIndex;this.minuteDropDownOffsetInMinute+=scrollDirection;this.__populateMinutesInsideDropDownMinutes();setTimeout('DHTMLSuite.variableStorage.arrayDSObjects['+ind+'].__scrollInMinuteDropDown('+scrollDirection+')',150)},__mouseoverUpAndDownArrowsInDropDownMinutes:function(e){var ind=this.objectIndex;if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e),scrollDirection=(src.className.toLowerCase().indexOf('up')>=0?-1:1);src.className=src.className+' DHTMLSuite_calendarDropDown_dropDownArrowOver';this.scrollInMinuteDropDownActive=true;setTimeout('DHTMLSuite.variableStorage.arrayDSObjects['+ind+'].__scrollInMinuteDropDown('+scrollDirection+')',100)},__mouseoutUpAndDownArrowsInDropDownMinutes:function(e){if(document.all)e=event;var src=DHTMLSuite.commonObj.getSrcElement(e);src.className=src.className.replace(' DHTMLSuite_calendarDropDown_dropDownArrowOver','');this.scrollInMinuteDropDownActive=false},__mouseoverYearInDropDown:function(){this.className=this.className+' DHTMLSuite_calendar_dropdownAYearOver'},__mouseoutYearInDropDown:function(){this.className=this.className.replace(' DHTMLSuite_calendar_dropdownAYearOver','')},__mouseoverHourInDropDown:function(){this.className=this.className+' DHTMLSuite_calendar_dropdownAnHourOver'},__mouseoutHourInDropDown:function(){this.className=this.className.replace(' DHTMLSuite_calendar_dropdownAnHourOver','')},__mouseoverMinuteInDropDown:function(){this.className=this.className+' DHTMLSuite_calendar_dropdownAMinuteOver'},__mouseoutMinuteInDropDown:function(){this.className=this.className.replace(' DHTMLSuite_calendar_dropdownAMinuteOver','')},__mouseoverMonthInDropDown:function(){this.className=this.className+' DHTMLSuite_calendar_dropdownAMonthOver'},__mouseoutMonthInDropDown:function(){this.className=this.className.replace(' DHTMLSuite_calendar_dropdownAMonthOver','')},__mouseoverCalendarDay:function(){this.className=this.className+' DHTMLSuite_calendarDayOver'},__mouseoutCalendarDay:function(){this.className=this.className.replace(' DHTMLSuite_calendarDayOver','')},__mouseoverCalendarButton:function(){this.className=this.className+' DHTMLSuite_calendarButtonOver'},__mouseoutCalendarButton:function(){this.className=this.className.replace(' DHTMLSuite_calendarButtonOver','')},__mouseoverMonthAndYear:function(){this.className=this.className+' DHTMLSuite_calendarHeaderMonthAndYearOver'},__mouseoutMonthAndYear:function(){this.className=this.className.replace(' DHTMLSuite_calendarHeaderMonthAndYearOver','')},__mouseoverHourAndMinute:function(){this.className=this.className+' DHTMLSuite_calendarTimeBarHourAndMinuteOver'},__mouseoutHourAndMinute:function(){this.className=this.className.replace(' DHTMLSuite_calendarTimeBarHourAndMinuteOver','')},__positionCalendar:function(){if(!this.posRefToHtmlEl)return;if(this.divElement.parentNode!=document.body)document.body.appendChild(this.divElement);this.divElement.style.position='absolute';this.divElement.style.left=(DHTMLSuite.commonObj.getLeftPos(this.posRefToHtmlEl)+this.positioningOffsetXInPixels)+'px';this.divElement.style.top=(DHTMLSuite.commonObj.getTopPos(this.posRefToHtmlEl)+this.positioningOffsetYInPixels)+'px'},__setInitialData:function(props){if(props.id)this.id=props.id;if(props.targetReference)this.targetReference=props.targetReference;if(props.calendarModelReference)this.calendarModelReference=props.calendarModelReference;if(props.callbackFunctionOnDayClick)this.callbackFunctionOnDayClick=props.callbackFunctionOnDayClick;if(props.callbackFunctionOnMonthChange)this.callbackFunctionOnMonthChange=props.callbackFunctionOnMonthChange;if(props.callbackFunctionOnClose)this.callbackFunctionOnClose=props.callbackFunctionOnClose;if(props.displayCloseButton||props.displayCloseButton===false)this.displayCloseButton=props.displayCloseButton;if(props.displayNavigationBar||props.displayNavigationBar===false)this.displayNavigationBar=props.displayNavigationBar;if(props.displayTodaysDateInNavigationBar||props.displayTodaysDateInNavigationBar===false)this.displayTodaysDateInNavigationBar=props.displayTodaysDateInNavigationBar;if(props.minuteDropDownInterval)this.minuteDropDownInterval=props.minuteDropDownInterval;if(props.numberOfRowsInHourDropDown)this.numberOfRowsInHourDropDown=props.numberOfRowsInHourDropDown;if(props.numberOfRowsInMinuteDropDown)this.numberOfRowsInHourDropDown=props.numberOfRowsInMinuteDropDown;if(props.numberOfRowsInYearDropDown)this.numberOfRowsInYearDropDown=props.numberOfRowsInYearDropDown;if(props.isDragable||props.isDragable===false)this.isDragable=props.isDragable;if(props.displayTimeBar||props.displayTimeBar===false)this.displayTimeBar=props.displayTimeBar}}
function tickCountries(countryID){if($(countryID).checked==true)$(countryID).checked=false}
function tickRegions(countryID,checkedV){var boxArray=$$('input.'+countryID);boxArray.each(function(s){s.checked=checkedV})}
function loopSelected(){var selectedArray=new Array(),returnString='',selObj=$('select_country'),i,count=0,len=selObj.options.length;for(i=0;i<len;i++)if(selObj.options[i].selected){returnString+=selObj.options[i].value+',';selectedArray[count]=selObj.options[i].value;count++};return returnString.substr(0,returnString.length-1)}
function finalStep(){if(validateStep(5)){var criteriaString="pmid="+140,countryStr=loopSelected();criteriaString+="&country="+countryStr;pageTracker._trackEvent("Availability search","Selected countries",countryStr);if(document.forms[0].fixedDuration.checked==true){criteriaString+="&duration="+document.forms[0].duration.value;criteriaString+="&isFixedDuration=1";criteriaString+="&minStay=na";criteriaString+="&maxStay=na";criteriaString+="&durationPreference=na";pageTracker._trackEvent("Availability search","Fixed duration",document.forms[0].duration.value)}else{criteriaString+="&minStay="+document.forms[0].minStay.value;criteriaString+="&maxStay="+document.forms[0].maxStay.value;criteriaString+="&duration=na";criteriaString+="&isFixedDuration=0";if(document.forms[0].durationPreference[0].checked==false){criteriaString+="&durationPreference=1"}else criteriaString+="&durationPreference=0";pageTracker._trackEvent("Availability search","Flexible duration",document.forms[0].minStay.value+" to "+document.forms[0].maxStay.value)};if(document.forms[0].fixedDate.checked==true){criteriaString+="&minDate=na";criteriaString+="&maxDate=na";criteriaString+="&isFixedDates=1";var startDateArray=document.forms[0].startDate.value.split("/"),endDateArray=document.forms[0].endDate.value.split("/");criteriaString+="&startDate="+startDateArray[2]+"-"+startDateArray[1]+"-"+startDateArray[0];criteriaString+="&endDate="+endDateArray[2]+"-"+endDateArray[1]+"-"+endDateArray[0];pageTracker._trackEvent("Availability search","Fixed dates",startDateArray[2]+"-"+startDateArray[1]+"-"+startDateArray[0]+" to &endDate="+endDateArray[2]+"-"+endDateArray[1]+"-"+endDateArray[0])}else{var minDateArray=document.forms[0].minDate.value.split("/"),maxDateArray=document.forms[0].maxDate.value.split("/");criteriaString+="&minDate="+minDateArray[2]+"-"+minDateArray[1]+"-"+minDateArray[0];criteriaString+="&maxDate="+maxDateArray[2]+"-"+maxDateArray[1]+"-"+maxDateArray[0];criteriaString+="&isFixedDates=0";criteriaString+="&startDate=na";criteriaString+="&endDate=na";pageTracker._trackEvent("Availability search","Flexible dates",minDateArray[2]+"-"+minDateArray[1]+"-"+minDateArray[0]+" to "+maxDateArray[2]+"-"+maxDateArray[1]+"-"+maxDateArray[0])};var count=document.forms[0].dayofweek.length-1,daysString="";for(var i=0;i<document.forms[0].dayofweek.length;i++)if(document.forms[0].dayofweek[i].checked){daysString+="1"}else daysString+="0";criteriaString+="&dayofweek="+daysString;pageTracker._trackEvent("Availability search","Days of week",daysString);criteriaString+="&total_guests="+document.forms[0].total_guests.value;pageTracker._trackEvent("Availability search","Total guests",document.forms[0].total_guests.value);if(!isNumeric(document.forms[0].bunks.value)){criteriaString+="&bunks=0";pageTracker._trackEvent("Availability search","Bunk beds","0")}else{criteriaString+="&bunks="+document.forms[0].bunks.value;pageTracker._trackEvent("Availability search","Bunk beds",document.forms[0].bunks.value)};pageTracker._trackPageview('/portal_search_step_5/');openWindow("https://bookings.five-star-systems.co.uk/AvailabilityPortalSearch.aspx?"+criteriaString)}}
var FULL_PARAGRAPH=0,FULL_SENTENCE=1,FULL_WORD=2,pages,currentPage=0,debug=0
function jspagination_main(){var i=document.getElementById("pageContainer"),I=document.getElementById("tempContent");pages=[];pages=paginate(I,pag_currentMode,pag_width,pag_height);if(i.childNodes.length>0)for(var l=(i.childNodes.length-1);l>=0;l--)i.removeChild(i.childNodes[l]);if(pages.length==0)pages[0]=createPage(0);switchPage(undefined,0)}
function changeMode(i){currentMode=i;main()}
function paraBreak(l,o){var i=document.getElementById("scratchpad"),I=""+l;i.innerHTML=I;var O=i.offsetHeight;if(O>o.getRemainingHeight()){if(O>o.pageHeight){wordBreak(I,o);return}else{o.flushPage();o.addContentToPage(I);return}}else{o.addContentToPage(I);return}}
function sentenceBreak(C,o){var l=document.getElementById("scratchpad"),c=""+C;oneLineHeight=o.oneLineHeight;var v=0,i=new_explode(c);if(i.length<=3){l.innerHTML=C;var z=l.offsetHeight;if(z>o.getRemainingHeight()){if(z>o.pageHeight){wordBreak(c,o);return}else{o.flushPage();o.addContentToPage(c);return}}else{o.addContentToPage(c);return}};l.innerHTML=i[0]+i[1];var V=l.offsetHeight;if(V>o.getRemainingHeight()){if(V>o.pageHeight){wordBreak(i[0]+i[1],o)}else{o.flushPage();o.addContentToPage(i[0]+i[1])}}else o.addContentToPage(i[0]+i[1]);var O=i.length-2;for(var I=0;I<O;I++){l.innerHTML=i[I+2];var X=l.offsetHeight;if(X>o.getRemainingHeight()){if(X>o.pageHeight){wordBreak(i[I+2],o)}else{o.flushPage();o.addContentToPage(i[I+2])}}else o.addContentToPage(i[I+2])};l.innerHTML=i[i.length-2]+i[i.length-1];var x=l.offsetHeight;if(x>o.getRemainingHeight()){if(x>o.pageHeight){wordBreak(i[i.length-2]+i[i.length-1],o)}else{o.flushPage();o.addContentToPage(i[i.length-2]+i[i.length-1])}}else o.addContentToPage(i[i.length-2]+i[i.length-1]);return}
function wordBreak(l,c){var o=document.getElementById("scratchpad");oneLineHeight=c.oneLineHeight;var x=""+l;o.innerHTML="";var I=x.split(" "),i=0,V="",X="",O=false;while(i<I.length){o.innerHTML=I.slice(0,i+1).join(" ")+"...";var z=o.offsetHeight;if(z>c.getRemainingHeight()){V=I.slice(0,i).join(" ")+"...";X="..."+I.slice(i,I.length+1).join(" ");O=true;break};i++};if(V==""){V=l;c.addContentToPage(V);c.tryFlushPage();return}else{if(c.testIfOneLine(V)){c.flushPage();wordBreak(l,c);return};if(c.testIfOneLine(X)){var C=c.howManyLine(V);if(C<=2){c.flushPage();wordBreak(l,c);return}else{var v=i-1;while(0<v){if(c.howManyLine(I.slice(0,v+1).join(" ")+"...")==(C-1)){V=I.slice(0,v).join(" ")+"...";X="..."+I.slice(v,I.length+1).join(" ");O=true;break};v--}}};c.addContentToPage(V);if(X!=""){c.flushPage()}else c.tryFlushPage();if(O)wordBreak(X,c)}}
function pgVat(Z,l){var k=this,s=Z,W=l,V=[],S,i=document.getElementById("scratchpad");i.innerHTML="AgBCDj^";var c=i.offsetHeight;i.innerHTML="";X(V.length);k.getRemainingHeight=I;k.addContentToPage=o;k.tryFlushPage=C;k.finalFlush=x;k.getPages=w;k.testIfOneLine=O;k.howManyLine=v;k.flushPage=z;k.pageHeight=l
function I(){i.innerHTML=S.innerHTML;if(i.innerHTML==""){return W}else return(W-i.offsetHeight)}
function O(I){i.innerHTML=I;return(i.offsetHeight<=c)}
function v(I){i.innerHTML=I;return(parseInt(i.offsetHeight/c))}
function C(){if(I()<c){V[V.length]=S;X(V.length)}}
function z(){if(trimString(S.innerHTML)=="")return;V[V.length]=S;X(V.length)}
function x(){if((""+S.innerHTML).split(" ").length!=1)V[V.length]=S}
function X(i){S=document.createElement("DIV");S.id="page"+i;S.className="paginatedContent"}
function o(i){var I=trimString(""+i);if(S.innerHTML==""){if(I=="&nbsp;"||I=="<br>"){return 0}else S.innerHTML+=i}else{if(I=="<br>")if(endsWith(S.innerHTML,"<br>"))return 0;S.innerHTML+=i};return 100}
function w(){return V}}
function pag_2(C,O,v,o,X,V){var c=document.getElementById("scratchpad"),l=document.getElementById("scratchpad"),I=parseToParagraphs(C),Z=0;for(var i=0;i<I.length;i++){l.innerHTML=I[i];var x=l.offsetHeight;if(x<=O.getRemainingHeight()){var z=O.addContentToPage(I[i]);if(z>0)O.addContentToPage("<br>");O.tryFlushPage()}else{if(o==FULL_WORD)wordBreak(I[i],O);if(o==FULL_SENTENCE)sentenceBreak(I[i],O);if(o==FULL_PARAGRAPH)paraBreak(I[i],O);O.addContentToPage("<br>");O.tryFlushPage()}}}
function paginate(l,z,C,O){var q=new pgVat(C,O),R=18,s=document.getElementById("scratchpad"),K=document.getElementById("scratchpad"),E=l.innerHTML;removeElement(l);var S=E,V="{staytogether}",v="{/staytogether}",X="{breakhere}",Z="{/breakhere}";S=S.replace(V,"</p>"+V+"<p>").replace(v,"</p>"+v+"<p>").replace(X,"</p>"+X+"<p>").replace(Z,"</p>"+Z+"<p>");V=V.toUpperCase();v=v.toUpperCase();X=X.toUpperCase();Z=Z.toUpperCase();var W=S.toUpperCase(),I=0,x=W.indexOf(V,I),w=W.indexOf(X,I);while(x!=-1||w!=-1){var e=false,Q=false;if(x==-1){Q=true}else if(w==-1){e=true}else if(x<w){e=true}else Q=true;if(e){var o=S.substr(I,x-I);if(o.length!=0)pag_2(o,q,l,z,C,O);var k=W.indexOf(v,x);if(k==-1){alert("error, missing end tag : "+v);return};var c=S.substr(x+V.length,k-x-V.length);if(c.length!=0){K.innerHTML=c;var r=K.offsetHeight;if(r>q.getRemainingHeight()){if(r>q.pageHeight){q.flushPage();pag_2(c,q,l,z,C,O)}else{q.flushPage();pag_2(c,q,l,z,C,O)}}else pag_2(c,q,l,z,C,O)};I=k+v.length};if(Q){var o=S.substr(I,w-I);if(o.length!=0)pag_2(o,q,l,z,C,O);q.flushPage();I=w+X.length};x=W.indexOf(V,I);w=W.indexOf(X,I)};pag_2(S.substr(I),q,l,z,C,O);q.finalFlush();pages=q.getPages();for(i=0;i<pages.length;i++){pages[i].innerHTML=pages[i].innerHTML.replace(/<br>\s*\.\.\.\s*/i,"<br>");pages[i].innerHTML=pages[i].innerHTML.replace(/(<br>|\s)*$/i,"");pages[i].innerHTML=pages[i].innerHTML.replace(/^(<br>|\s)*/i,"");pages[i].innerHTML=pages[i].innerHTML.replace(/\$\$spc/i," ")};removeElement(s);return pages}
function parseToParagraphs(I){var i=[];if(I.match(/<p>/i)){I=I.replace(/<p>/gi,"");i=I.split(/<\/p>/gi)}else if(I.match(/<br>/i)){var i=I.split(/<br>/i)}else i[i.length]=I;return i}
function new_explode(V){var c="text",C="",I=0,l,v="",o="",O=[],x=true;for(i=0;i<V.length;i++){if(!I){l=v}else{l="";I=0};v=V.charAt(i);switch(c){case"text":if(v==" "&&(l=="."||l==";"||l=="?"||l=="!")){o=o.replace(/<a\$\$spcname.*>/i,"");O[O.length]=o+" ";o=""}else o+=v;if(v=="<"){c="inblock";block_end_char=">"};if(v=="&"){c="inblock";block_end_char=";"};break;case"inblock":if(v==block_end_char){c="text";I=1};if(v==" "){o+="$$spc"}else o+=v;break}};if(o.replace(/(^\s*)|(\s*$)/g,"")!="")O[O.length]=o+" ";return O}
function trimString(i){return i.replace(/(^\s*)|(\s*$)/g,"")}
function explode(delimiter,copy){if(typeof delimiter=="string")delimiter=new RegExp(delimiter);var pieces=new Array(),lastIndex=0,index=0;while(copy.length>0){var a=delimiter.exec(copy),temp;if(a==null&&copy.length>0){temp=copy;copy=""}else{var delim=new String(a);temp=copy.substr(0,a.index+delim.length);copy=copy.substr(a.index+ +delim.length)};pieces[pieces.length]=temp};return pieces}
function createPage(I){var i=document.createElement("DIV");i.id="page"+I;i.className="paginatedContent";return i}
function switchPage(O,o){var i=document.getElementById("previousLink"),l=document.getElementById("nextLink"),I=document.getElementById("pageContainer");I.innerHTML=pages[o].innerHTML;if(o==pages.length-1){l.style.visibility="hidden"}else l.style.visibility="visible";if(o==0){i.style.visibility="hidden"}else i.style.visibility="visible"}
function nextPage(){if(pages[currentPage+1]!=undefined)switchPage(currentPage,++currentPage)}
function previousPage(){if(pages[currentPage-1]!=undefined)switchPage(currentPage,--currentPage)}
function getDivision(I){var i;if(document.getElementById){i=document.getElementById(I)}else if(document.all){i=document.all[I]}else if(document.layers)i=getN4Division(I);return i}
function getN4Division(o,i){var l=null;if(i==undefined)i=document.layers;var I=false,O=0;while((O<i.length)&&(!I)){if(i[O].id==o){l=i[O];I=true}else if(i[O].layers.length>0){l=getDivision(o,i[O].layers);if(l!=undefined)I=true};O++};return l}
function removeElement(i){i.style.visibility="hidden";i.style.height="1px"}
function openPopup(){var i=window.open("","_blank","toolbar=no,menubar=no,location=no,scrollbars=yes");return i}
function startsWith(o,i,I,l){if(arguments.length<2)throw new TypeError('startsWith() requires at least 2 arguments');if((I==null)||(isNaN(new Number(I))))I=0;if((l==null)||(isNaN(new Number(l))))l=Number.MAX_VALUE;if(typeof i=="object"){for(var C=0,c=i.length;C<c;C++){var O=_stringTailMatch(o,i[C],I,l,true);if(O)return true};return false};return _stringTailMatch(o,i,I,l,true)}
function endsWith(o,i,I,l){if(arguments.length<2)throw new TypeError('endsWith() requires at least 2 arguments');if((I==null)||(isNaN(new Number(I))))I=0;if((l==null)||(isNaN(new Number(l))))l=Number.MAX_VALUE;if(typeof i=="object"){for(var C=0,c=i.length;C<c;C++){var O=_stringTailMatch(o,i[C],I,l,false);if(O)return true};return false};return _stringTailMatch(o,i,I,l,false)}
function _stringTailMatch(v,O,i,c,o){var C=v.length,l=O.length,I=_adjustIndices(i,c,C);i=I[0];c=I[1];C=I[2];if(o){if(i+l>C)return false}else{if(c-i<l||i>C)return false;if(c-l>i)i=c-l};if(c-i>=l)return v.substr(i,l)==O;return false}
function _adjustIndices(i,I,l){if(I>l){I=l}else if(I<0)I+=l;if(I<0)I=0;if(i<0)i+=l;if(i<0)i=0;return[i,I,l]}
var pag_currentMode=2,pag_width=398,pag_height=520
// requirements:

// 1. vistors going to chez nous and then vrbo before making a booking should overwrite chez nous with vrbo - no change from existing functionality - but the local cookie should update with the last referral
// 2. vsitors going to chez nous and then finding the site using google (or another search engine) should have the cookie values overwritten with chez nous values


function GetSourceFromUTMZCookie() 
{
// getting the value from the original Google Analytics cookie
    var str = document.cookie;
    var source = "";
    var a = str.indexOf("utmcsr=");
    if (a > -1) 
	{
        var val = str.substring(a);
        var b = val.indexOf("|");
        source = val.substring(7,b);
    }
    return source;

}

function getMediumFromUTMZCookie()
{
	var str = document.cookie;
	var medium = "";
	var a = str.indexOf("utmcmd=");
	if (a > -1)
	{
		var val = str.substring(a);
		var b = val.indexOf("|");
		if ( b == -1 ) 
		{
			c = val.indexOf(";");
			medium = val.substring(7, c);
		}
		else
		{
			medium = val.substring(7, b);
		}
	}
	return medium;
}

function GetValuesFromLocalCookie() 
{
// Getting the historical values from local cookie
    var str = document.cookie;
    var val = "";
    var a = str.indexOf("MyGoogleTracker=");
    if (a > -1) 
	{
		val = str.substring(a+16);
		var b = val.indexOf(";");
		val = val.substring(0, b);
    }
    return val;

}

function getPropertyFromLocalCookie()
{
    var str = document.cookie;
    var property = "";
    var b = str.indexOf("MyGoogleTrackerProperty=");
	var val = "";
	// if b is -1 here then there's no property defined in the link - it was linking to home page
	if ( b > -1 )
	{
		property = str.substring(b+24);
		var c = property.indexOf(";");
		if (c > -1)
		{
			val = property.substring(0, c);
		}
		else
		{
			val = property;
		}
	}
	
    return val;
}

function getPropertyFromUTMZCookie()
{
    var str = document.cookie;
    var val = "";
	var property = "";
    var b = str.indexOf("utmcct=");
	
	// if b is -1 here then there's no property defined in the link - it was linking to home page
	if ( b > -1 )
	{
		property = str.substring(b+7);
		var c = property.indexOf(";");
		var d = property.indexOf("|");
		
		if (d == -1)
		{
			if (c == -1)
			{
				val = "";
			}
			else
			{
				val = property.substring(0, c);
			}
		}
		else if (c == -1)
		{
			if (d == -1)
			{
				val = "";
			}
			else
			{
				val = property.substring(0, d);
			}
		}
		else if (d > c)
		{
			val = property.substring(0, c);
		}
	}
	
    return val;
}

function getUpdatedUserDefined(source) 
{
	var val;
	val = source;
	
    var str = document.cookie;
    var property = "";
    var b = str.indexOf("utmcct=");
	
	// if b is -1 here then there's no property defined in the link - it was linking to home page
	if ( b > -1 )
	{
		property = str.substring(b+7);
		
		var c = property.indexOf(";");
		
		val += ", " + property.substring(0, c);
	}
	else 
	{
		property = getPropertyFromLocalCookie();
		if (property.length > 0)
		{
			val += ", " + property;
		}
	}
	
    return val;

}

function updateTrackingCookie()
{
	var date = new Date();
	date.setTime(date.getTime()+(365*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	document.cookie ='_MyGoogleTracker='+source+';expires='+expires+'; path=/';
	var property = getPropertyFromUTMZCookie();
	document.cookie ='_MyGoogleTrackerProperty='+property+';expires='+expires+'; path=/';
}

function CreateMyTrackingCookie(source) 
{
// create the local cookie and append old values
    var existing = GetValuesFromLocalCookie();
	var value;
    if (existing != source) 
	{
        if (existing != "") 
		{
			var medium = getMediumFromUTMZCookie();
			switch (medium)
			{
				case "Affiliate+Referral":
					value = getUpdatedUserDefined(source);
					// do a global replace on the value to get rid of %2B and replace it with +
					value = value.replace(/%252B/g, "+");
					value = value.replace(/%2B/g, "+");
					//__utmSetVar(value);
					pageTracker._setVar(value);
					updateTrackingCookie();
					break;
				case "Affiliate%2BReferral":
					value = getUpdatedUserDefined(source);
					// do a global replace on the value to get rid of %2B and replace it with +
					value = value.replace(/%252B/g, "+");
					value = value.replace(/%2B/g, "+");
					//__utmSetVar(value);
					pageTracker._setVar(value);
					updateTrackingCookie();
					break;
				case "Paid+Email+Referral":
					value = getUpdatedUserDefined(source);
					// do a global replace on the value to get rid of %2B and replace it with +
					value = value.replace(/%252B/g, "+");
					value = value.replace(/%2B/g, "+");
					//__utmSetVar(value);
					pageTracker._setVar(value);
					updateTrackingCookie();
					break;
				case "Paid%2BEmail%2BReferral":
					value = getUpdatedUserDefined(source);
					// do a global replace on the value to get rid of %2B and replace it with +
					value = value.replace(/%252B/g, "+");
					value = value.replace(/%2B/g, "+");
					//__utmSetVar(value);
					pageTracker._setVar(value);
					updateTrackingCookie();
					break;
				case "Paid+Referral":
					value = getUpdatedUserDefined(source);
					// do a global replace on the value to get rid of %2B and replace it with +
					value = value.replace(/%252B/g, "+");
					value = value.replace(/%2B/g, "+");
					//__utmSetVar(value); 
					pageTracker._setVar(value);
					updateTrackingCookie();
					break;
				case "Paid%2BReferral":
					value = getUpdatedUserDefined(source);
					// do a global replace on the value to get rid of %2B and replace it with +
					value = value.replace(/%252B/g, "+");
					value = value.replace(/%2B/g, "+");
					//__utmSetVar(value); 
					pageTracker._setVar(value);
					updateTrackingCookie();
					break;
				case "Paid+Availability+Referral":
					value = getUpdatedUserDefined(source);
					// do a global replace on the value to get rid of %2B and replace it with +
					value = value.replace(/%252B/g, "+");
					value = value.replace(/%2B/g, "+");
					//__utmSetVar(value); 
					pageTracker._setVar(value);
					updateTrackingCookie();
					break;
				case "Paid%2BAvailability%2BReferral":
					value = getUpdatedUserDefined(source);
					// do a global replace on the value to get rid of %2B and replace it with +
					value = value.replace(/%252B/g, "+");
					value = value.replace(/%2B/g, "+");
					//__utmSetVar(value); 
					pageTracker._setVar(value);
					updateTrackingCookie();
					break;
				case "organic":
					//__utmSetVar(existing); 
					pageTracker._setVar(existing);
					updateTrackingCookie();
					break;				
				// if there's no medium from the above then this is a direct link from a search engine following a previous visit from a tagged link
				default:
					value = getUpdatedUserDefined(existing);
					// do a global replace on the value to get rid of %2B and replace it with +
					value = value.replace(/%252B/g, "+");
					value = value.replace(/%2B/g, "+");
					//__utmSetVar(value); 
					pageTracker._setVar(value);
			}
        }
		else
		{
			updateTrackingCookie();
		}
	}
	// this is if you have the same channel but we need to determine whether it's the same property before we update the tracking cookie
	else
	{
		var existingProperty = getPropertyFromLocalCookie();
		var currentProperty = getPropertyFromUTMZCookie();
		if (existingProperty == "")
		{
			updateTrackingCookie();
		}
		else if (existingProperty != currentProperty)		// if the properties don't match then use the original property
		{
			// nothing needs updating so just sort the utmSetVar
			value = existing + ", " + existingProperty;
			// do a global replace on the value to get rid of %2B and replace it with +
			value = value.replace(/%252B/g, "+");
			value = value.replace(/%2B/g, "+");
			pageTracker._setVar(value);
			//__utmSetVar(value); 
		}
		else
		{
			// nothing needs updating so just sort the utmSetVar
			value = existing + ", " + currentProperty;
			// do a global replace on the value to get rid of %2B and replace it with +
			value = value.replace(/%252B/g, "+");
			value = value.replace(/%2B/g, "+");
			//__utmSetVar(value); 
			pageTracker._setVar(value);
		}
	}
}




