var Prototype={Version:'1.6.1',Browser:(function(){var ua=navigator.userAgent;var isOpera=Object.prototype.toString.call(window.opera)=='[object Opera]';return{IE:!!window.attachEvent&&!isOpera,Opera:isOpera,WebKit:ua.indexOf('AppleWebKit/')>-1,Gecko:ua.indexOf('Gecko')>-1&&ua.indexOf('KHTML')===-1,MobileSafari:/Apple.*Mobile.*Safari/.test(ua),Firefox:ua.indexOf('Firefox/')>-1,Chrome:ua.indexOf('Chrome/')>-1}})(),BrowserFeatures:{XPath:!!document.evaluate,SelectorsAPI:!!document.querySelector,ElementExtensions:(function(){var constructor=window.Element||window.HTMLElement;return!!(constructor&&constructor.prototype);})(),SpecificElementExtensions:(function(){if(typeof window.HTMLDivElement!=='undefined')
return true;var div=document.createElement('div');var form=document.createElement('form');var isSupported=false;if(div['__proto__']&&(div['__proto__']!==form['__proto__'])){isSupported=true;}
div=form=null;return isSupported;})()},ScriptFragment:'<script[^>]*>([\\S\\s]*?)<\/script>',JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x}};if(Prototype.Browser.MobileSafari)
Prototype.BrowserFeatures.SpecificElementExtensions=false;var Abstract={};var Try={these:function(){var returnValue;for(var i=0,length=arguments.length;i<length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}};var Class=(function(){function subclass(){};function create(){var parent=null,properties=$A(arguments);if(Object.isFunction(properties[0]))
parent=properties.shift();function klass(){this.initialize.apply(this,arguments);}
Object.extend(klass,Class.Methods);klass.superclass=parent;klass.subclasses=[];if(parent){subclass.prototype=parent.prototype;klass.prototype=new subclass;parent.subclasses.push(klass);}
for(var i=0;i<properties.length;i++)
klass.addMethods(properties[i]);if(!klass.prototype.initialize)
klass.prototype.initialize=Prototype.emptyFunction;klass.prototype.constructor=klass;return klass;}
function addMethods(source){var ancestor=this.superclass&&this.superclass.prototype;var properties=Object.keys(source);if(!Object.keys({toString:true}).length){if(source.toString!=Object.prototype.toString)
properties.push("toString");if(source.valueOf!=Object.prototype.valueOf)
properties.push("valueOf");}
for(var i=0,length=properties.length;i<length;i++){var property=properties[i],value=source[property];if(ancestor&&Object.isFunction(value)&&value.argumentNames().first()=="$super"){var method=value;value=(function(m){return function(){return ancestor[m].apply(this,arguments);};})(property).wrap(method);value.valueOf=method.valueOf.bind(method);value.toString=method.toString.bind(method);}
this.prototype[property]=value;}
return this;}
return{create:create,Methods:{addMethods:addMethods}};})();(function(){var _toString=Object.prototype.toString;function extend(destination,source){for(var property in source)
destination[property]=source[property];return destination;}
function inspect(object){try{if(isUndefined(object))return'undefined';if(object===null)return'null';return object.inspect?object.inspect():String(object);}catch(e){if(e instanceof RangeError)return'...';throw e;}}
function toJSON(object){var type=typeof object;switch(type){case'undefined':case'function':case'unknown':return;case'boolean':return object.toString();}
if(object===null)return'null';if(object.toJSON)return object.toJSON();if(isElement(object))return;var results=[];for(var property in object){var value=toJSON(object[property]);if(!isUndefined(value))
results.push(property.toJSON()+': '+value);}
return'{'+results.join(', ')+'}';}
function toQueryString(object){return $H(object).toQueryString();}
function toHTML(object){return object&&object.toHTML?object.toHTML():String.interpret(object);}
function keys(object){var results=[];for(var property in object)
results.push(property);return results;}
function values(object){var results=[];for(var property in object)
results.push(object[property]);return results;}
function clone(object){return extend({},object);}
function isElement(object){return!!(object&&object.nodeType==1);}
function isArray(object){return _toString.call(object)=="[object Array]";}
function isHash(object){return object instanceof Hash;}
function isFunction(object){return typeof object==="function";}
function isString(object){return _toString.call(object)=="[object String]";}
function isNumber(object){return _toString.call(object)=="[object Number]";}
function isUndefined(object){return typeof object==="undefined";}
extend(Object,{extend:extend,inspect:inspect,toJSON:toJSON,toQueryString:toQueryString,toHTML:toHTML,keys:keys,values:values,clone:clone,isElement:isElement,isArray:isArray,isHash:isHash,isFunction:isFunction,isString:isString,isNumber:isNumber,isUndefined:isUndefined});})();Object.extend(Function.prototype,(function(){var slice=Array.prototype.slice;function update(array,args){var arrayLength=array.length,length=args.length;while(length--)array[arrayLength+length]=args[length];return array;}
function merge(array,args){array=slice.call(array,0);return update(array,args);}
function argumentNames(){var names=this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1].replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g,'').replace(/\s+/g,'').split(',');return names.length==1&&!names[0]?[]:names;}
function bind(context){if(arguments.length<2&&Object.isUndefined(arguments[0]))return this;var __method=this,args=slice.call(arguments,1);return function(){var a=merge(args,arguments);return __method.apply(context,a);}}
function bindAsEventListener(context){var __method=this,args=slice.call(arguments,1);return function(event){var a=update([event||window.event],args);return __method.apply(context,a);}}
function curry(){if(!arguments.length)return this;var __method=this,args=slice.call(arguments,0);return function(){var a=merge(args,arguments);return __method.apply(this,a);}}
function delay(timeout){var __method=this,args=slice.call(arguments,1);timeout=timeout*1000
return window.setTimeout(function(){return __method.apply(__method,args);},timeout);}
function defer(){var args=update([0.01],arguments);return this.delay.apply(this,args);}
function wrap(wrapper){var __method=this;return function(){var a=update([__method.bind(this)],arguments);return wrapper.apply(this,a);}}
function methodize(){if(this._methodized)return this._methodized;var __method=this;return this._methodized=function(){var a=update([this],arguments);return __method.apply(null,a);};}
return{argumentNames:argumentNames,bind:bind,bindAsEventListener:bindAsEventListener,curry:curry,delay:delay,defer:defer,wrap:wrap,methodize:methodize}})());Date.prototype.toJSON=function(){return'"'+this.getUTCFullYear()+'-'+
(this.getUTCMonth()+1).toPaddedString(2)+'-'+
this.getUTCDate().toPaddedString(2)+'T'+
this.getUTCHours().toPaddedString(2)+':'+
this.getUTCMinutes().toPaddedString(2)+':'+
this.getUTCSeconds().toPaddedString(2)+'Z"';};RegExp.prototype.match=RegExp.prototype.test;RegExp.escape=function(str){return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g,'\\$1');};var PeriodicalExecuter=Class.create({initialize:function(callback,frequency){this.callback=callback;this.frequency=frequency;this.currentlyExecuting=false;this.registerCallback();},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},execute:function(){this.callback(this);},stop:function(){if(!this.timer)return;clearInterval(this.timer);this.timer=null;},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.execute();this.currentlyExecuting=false;}catch(e){this.currentlyExecuting=false;throw e;}}}});Object.extend(String,{interpret:function(value){return value==null?'':String(value);},specialChar:{'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','\\':'\\\\'}});Object.extend(String.prototype,(function(){function prepareReplacement(replacement){if(Object.isFunction(replacement))return replacement;var template=new Template(replacement);return function(match){return template.evaluate(match)};}
function gsub(pattern,replacement){var result='',source=this,match;replacement=prepareReplacement(replacement);if(Object.isString(pattern))
pattern=RegExp.escape(pattern);if(!(pattern.length||pattern.source)){replacement=replacement('');return replacement+source.split('').join(replacement)+replacement;}
while(source.length>0){if(match=source.match(pattern)){result+=source.slice(0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0].length);}else{result+=source,source='';}}
return result;}
function sub(pattern,replacement,count){replacement=prepareReplacement(replacement);count=Object.isUndefined(count)?1:count;return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match);});}
function scan(pattern,iterator){this.gsub(pattern,iterator);return String(this);}
function truncate(length,truncation){length=length||30;truncation=Object.isUndefined(truncation)?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:String(this);}
function strip(){return this.replace(/^\s+/,'').replace(/\s+$/,'');}
function stripTags(){return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi,'');}
function stripScripts(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');}
function extractScripts(){var matchAll=new RegExp(Prototype.ScriptFragment,'img');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});}
function evalScripts(){return this.extractScripts().map(function(script){return eval(script)});}
function escapeHTML(){return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');}
function unescapeHTML(){return this.stripTags().replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');}
function toQueryParams(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1].split(separator||'&').inject({},function(hash,pair){if((pair=pair.split('='))[0]){var key=decodeURIComponent(pair.shift());var value=pair.length>1?pair.join('='):pair[0];if(value!=undefined)value=decodeURIComponent(value);if(key in hash){if(!Object.isArray(hash[key]))hash[key]=[hash[key]];hash[key].push(value);}
else hash[key]=value;}
return hash;});}
function toArray(){return this.split('');}
function succ(){return this.slice(0,this.length-1)+
String.fromCharCode(this.charCodeAt(this.length-1)+1);}
function times(count){return count<1?'':new Array(count+1).join(this);}
function camelize(){var parts=this.split('-'),len=parts.length;if(len==1)return parts[0];var camelized=this.charAt(0)=='-'?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i<len;i++)
camelized+=parts[i].charAt(0).toUpperCase()+parts[i].substring(1);return camelized;}
function capitalize(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase();}
function underscore(){return this.replace(/::/g,'/').replace(/([A-Z]+)([A-Z][a-z])/g,'$1_$2').replace(/([a-z\d])([A-Z])/g,'$1_$2').replace(/-/g,'_').toLowerCase();}
function dasherize(){return this.replace(/_/g,'-');}
function inspect(useDoubleQuotes){var escapedString=this.replace(/[\x00-\x1f\\]/g,function(character){if(character in String.specialChar){return String.specialChar[character];}
return'\\u00'+character.charCodeAt().toPaddedString(2,16);});if(useDoubleQuotes)return'"'+escapedString.replace(/"/g,'\\"')+'"';return"'"+escapedString.replace(/'/g,'\\\'')+"'";}
function toJSON(){return this.inspect(true);}
function unfilterJSON(filter){return this.replace(filter||Prototype.JSONFilter,'$1');}
function isJSON(){var str=this;if(str.blank())return false;str=this.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'');return(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);}
function evalJSON(sanitize){var json=this.unfilterJSON();try{if(!sanitize||json.isJSON())return eval('('+json+')');}catch(e){}
throw new SyntaxError('Badly formed JSON string: '+this.inspect());}
function include(pattern){return this.indexOf(pattern)>-1;}
function startsWith(pattern){return this.indexOf(pattern)===0;}
function endsWith(pattern){var d=this.length-pattern.length;return d>=0&&this.lastIndexOf(pattern)===d;}
function empty(){return this=='';}
function blank(){return/^\s*$/.test(this);}
function interpolate(object,pattern){return new Template(this,pattern).evaluate(object);}
return{gsub:gsub,sub:sub,scan:scan,truncate:truncate,strip:String.prototype.trim?String.prototype.trim:strip,stripTags:stripTags,stripScripts:stripScripts,extractScripts:extractScripts,evalScripts:evalScripts,escapeHTML:escapeHTML,unescapeHTML:unescapeHTML,toQueryParams:toQueryParams,parseQuery:toQueryParams,toArray:toArray,succ:succ,times:times,camelize:camelize,capitalize:capitalize,underscore:underscore,dasherize:dasherize,inspect:inspect,toJSON:toJSON,unfilterJSON:unfilterJSON,isJSON:isJSON,evalJSON:evalJSON,include:include,startsWith:startsWith,endsWith:endsWith,empty:empty,blank:blank,interpolate:interpolate};})());var Template=Class.create({initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern;},evaluate:function(object){if(object&&Object.isFunction(object.toTemplateReplacements))
object=object.toTemplateReplacements();return this.template.gsub(this.pattern,function(match){if(object==null)return(match[1]+'');var before=match[1]||'';if(before=='\\')return match[2];var ctx=object,expr=match[3];var pattern=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;match=pattern.exec(expr);if(match==null)return before;while(match!=null){var comp=match[1].startsWith('[')?match[2].replace(/\\\\]/g,']'):match[1];ctx=ctx[comp];if(null==ctx||''==match[3])break;expr=expr.substring('['==match[3]?match[1].length:match[0].length);match=pattern.exec(expr);}
return before+String.interpret(ctx);});}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;var $break={};var Enumerable=(function(){function each(iterator,context){var index=0;try{this._each(function(value){iterator.call(context,value,index++);});}catch(e){if(e!=$break)throw e;}
return this;}
function eachSlice(number,iterator,context){var index=-number,slices=[],array=this.toArray();if(number<1)return array;while((index+=number)<array.length)
slices.push(array.slice(index,index+number));return slices.collect(iterator,context);}
function all(iterator,context){iterator=iterator||Prototype.K;var result=true;this.each(function(value,index){result=result&&!!iterator.call(context,value,index);if(!result)throw $break;});return result;}
function any(iterator,context){iterator=iterator||Prototype.K;var result=false;this.each(function(value,index){if(result=!!iterator.call(context,value,index))
throw $break;});return result;}
function collect(iterator,context){iterator=iterator||Prototype.K;var results=[];this.each(function(value,index){results.push(iterator.call(context,value,index));});return results;}
function detect(iterator,context){var result;this.each(function(value,index){if(iterator.call(context,value,index)){result=value;throw $break;}});return result;}
function findAll(iterator,context){var results=[];this.each(function(value,index){if(iterator.call(context,value,index))
results.push(value);});return results;}
function grep(filter,iterator,context){iterator=iterator||Prototype.K;var results=[];if(Object.isString(filter))
filter=new RegExp(RegExp.escape(filter));this.each(function(value,index){if(filter.match(value))
results.push(iterator.call(context,value,index));});return results;}
function include(object){if(Object.isFunction(this.indexOf))
if(this.indexOf(object)!=-1)return true;var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;}
function inGroupsOf(number,fillWith){fillWith=Object.isUndefined(fillWith)?null:fillWith;return this.eachSlice(number,function(slice){while(slice.length<number)slice.push(fillWith);return slice;});}
function inject(memo,iterator,context){this.each(function(value,index){memo=iterator.call(context,memo,value,index);});return memo;}
function invoke(method){var args=$A(arguments).slice(1);return this.map(function(value){return value[method].apply(value,args);});}
function max(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index);if(result==null||value>=result)
result=value;});return result;}
function min(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index);if(result==null||value<result)
result=value;});return result;}
function partition(iterator,context){iterator=iterator||Prototype.K;var trues=[],falses=[];this.each(function(value,index){(iterator.call(context,value,index)?trues:falses).push(value);});return[trues,falses];}
function pluck(property){var results=[];this.each(function(value){results.push(value[property]);});return results;}
function reject(iterator,context){var results=[];this.each(function(value,index){if(!iterator.call(context,value,index))
results.push(value);});return results;}
function sortBy(iterator,context){return this.map(function(value,index){return{value:value,criteria:iterator.call(context,value,index)};}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0;}).pluck('value');}
function toArray(){return this.map();}
function zip(){var iterator=Prototype.K,args=$A(arguments);if(Object.isFunction(args.last()))
iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index));});}
function size(){return this.toArray().length;}
function inspect(){return'#<Enumerable:'+this.toArray().inspect()+'>';}
return{each:each,eachSlice:eachSlice,all:all,every:all,any:any,some:any,collect:collect,map:collect,detect:detect,findAll:findAll,select:findAll,filter:findAll,grep:grep,include:include,member:include,inGroupsOf:inGroupsOf,inject:inject,invoke:invoke,max:max,min:min,partition:partition,pluck:pluck,reject:reject,sortBy:sortBy,toArray:toArray,entries:toArray,zip:zip,size:size,inspect:inspect,find:detect};})();function $A(iterable){if(!iterable)return[];if('toArray'in Object(iterable))return iterable.toArray();var length=iterable.length||0,results=new Array(length);while(length--)results[length]=iterable[length];return results;}
function $w(string){if(!Object.isString(string))return[];string=string.strip();return string?string.split(/\s+/):[];}
Array.from=$A;(function(){var arrayProto=Array.prototype,slice=arrayProto.slice,_each=arrayProto.forEach;function each(iterator){for(var i=0,length=this.length;i<length;i++)
iterator(this[i]);}
if(!_each)_each=each;function clear(){this.length=0;return this;}
function first(){return this[0];}
function last(){return this[this.length-1];}
function compact(){return this.select(function(value){return value!=null;});}
function flatten(){return this.inject([],function(array,value){if(Object.isArray(value))
return array.concat(value.flatten());array.push(value);return array;});}
function without(){var values=slice.call(arguments,0);return this.select(function(value){return!values.include(value);});}
function reverse(inline){return(inline!==false?this:this.toArray())._reverse();}
function uniq(sorted){return this.inject([],function(array,value,index){if(0==index||(sorted?array.last()!=value:!array.include(value)))
array.push(value);return array;});}
function intersect(array){return this.uniq().findAll(function(item){return array.detect(function(value){return item===value});});}
function clone(){return slice.call(this,0);}
function size(){return this.length;}
function inspect(){return'['+this.map(Object.inspect).join(', ')+']';}
function toJSON(){var results=[];this.each(function(object){var value=Object.toJSON(object);if(!Object.isUndefined(value))results.push(value);});return'['+results.join(', ')+']';}
function indexOf(item,i){i||(i=0);var length=this.length;if(i<0)i=length+i;for(;i<length;i++)
if(this[i]===item)return i;return-1;}
function lastIndexOf(item,i){i=isNaN(i)?this.length:(i<0?this.length+i:i)+1;var n=this.slice(0,i).reverse().indexOf(item);return(n<0)?n:i-n-1;}
function concat(){var array=slice.call(this,0),item;for(var i=0,length=arguments.length;i<length;i++){item=arguments[i];if(Object.isArray(item)&&!('callee'in item)){for(var j=0,arrayLength=item.length;j<arrayLength;j++)
array.push(item[j]);}else{array.push(item);}}
return array;}
Object.extend(arrayProto,Enumerable);if(!arrayProto._reverse)
arrayProto._reverse=arrayProto.reverse;Object.extend(arrayProto,{_each:_each,clear:clear,first:first,last:last,compact:compact,flatten:flatten,without:without,reverse:reverse,uniq:uniq,intersect:intersect,clone:clone,toArray:clone,size:size,inspect:inspect,toJSON:toJSON});var CONCAT_ARGUMENTS_BUGGY=(function(){return[].concat(arguments)[0][0]!==1;})(1,2)
if(CONCAT_ARGUMENTS_BUGGY)arrayProto.concat=concat;if(!arrayProto.indexOf)arrayProto.indexOf=indexOf;if(!arrayProto.lastIndexOf)arrayProto.lastIndexOf=lastIndexOf;})();function $H(object){return new Hash(object);};var Hash=Class.create(Enumerable,(function(){function initialize(object){this._object=Object.isHash(object)?object.toObject():Object.clone(object);}
function _each(iterator){for(var key in this._object){var value=this._object[key],pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}}
function set(key,value){return this._object[key]=value;}
function get(key){if(this._object[key]!==Object.prototype[key])
return this._object[key];}
function unset(key){var value=this._object[key];delete this._object[key];return value;}
function toObject(){return Object.clone(this._object);}
function keys(){return this.pluck('key');}
function values(){return this.pluck('value');}
function index(value){var match=this.detect(function(pair){return pair.value===value;});return match&&match.key;}
function merge(object){return this.clone().update(object);}
function update(object){return new Hash(object).inject(this,function(result,pair){result.set(pair.key,pair.value);return result;});}
function toQueryPair(key,value){if(Object.isUndefined(value))return key;return key+'='+encodeURIComponent(String.interpret(value));}
function toQueryString(){return this.inject([],function(results,pair){var key=encodeURIComponent(pair.key),values=pair.value;if(values&&typeof values=='object'){if(Object.isArray(values))
return results.concat(values.map(toQueryPair.curry(key)));}else results.push(toQueryPair(key,values));return results;}).join('&');}
function inspect(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';}
function toJSON(){return Object.toJSON(this.toObject());}
function clone(){return new Hash(this);}
return{initialize:initialize,_each:_each,set:set,get:get,unset:unset,toObject:toObject,toTemplateReplacements:toObject,keys:keys,values:values,index:index,merge:merge,update:update,toQueryString:toQueryString,inspect:inspect,toJSON:toJSON,clone:clone};})());Hash.from=$H;Object.extend(Number.prototype,(function(){function toColorPart(){return this.toPaddedString(2,16);}
function succ(){return this+1;}
function times(iterator,context){$R(0,this,true).each(iterator,context);return this;}
function toPaddedString(length,radix){var string=this.toString(radix||10);return'0'.times(length-string.length)+string;}
function toJSON(){return isFinite(this)?this.toString():'null';}
function abs(){return Math.abs(this);}
function round(){return Math.round(this);}
function ceil(){return Math.ceil(this);}
function floor(){return Math.floor(this);}
return{toColorPart:toColorPart,succ:succ,times:times,toPaddedString:toPaddedString,toJSON:toJSON,abs:abs,round:round,ceil:ceil,floor:floor};})());function $R(start,end,exclusive){return new ObjectRange(start,end,exclusive);}
var ObjectRange=Class.create(Enumerable,(function(){function initialize(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;}
function _each(iterator){var value=this.start;while(this.include(value)){iterator(value);value=value.succ();}}
function include(value){if(value<this.start)
return false;if(this.exclusive)
return value<this.end;return value<=this.end;}
return{initialize:initialize,_each:_each,include:include};})());var Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest()},function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')})||false;},activeRequestCount:0};Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator);},register:function(responder){if(!this.include(responder))
this.responders.push(responder);},unregister:function(responder){this.responders=this.responders.without(responder);},dispatch:function(callback,request,transport,json){this.each(function(responder){if(Object.isFunction(responder[callback])){try{responder[callback].apply(responder,[request,transport,json]);}catch(e){}}});}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++},onComplete:function(){Ajax.activeRequestCount--}});Ajax.Base=Class.create({initialize:function(options){this.options={method:'post',asynchronous:true,contentType:'application/x-www-form-urlencoded',encoding:'UTF-8',parameters:'',evalJSON:true,evalJS:true};Object.extend(this.options,options||{});this.options.method=this.options.method.toLowerCase();if(Object.isString(this.options.parameters))
this.options.parameters=this.options.parameters.toQueryParams();else if(Object.isHash(this.options.parameters))
this.options.parameters=this.options.parameters.toObject();}});Ajax.Request=Class.create(Ajax.Base,{_complete:false,initialize:function($super,url,options){$super(options);this.transport=Ajax.getTransport();this.request(url);},request:function(url){this.url=url;this.method=this.options.method;var params=Object.clone(this.options.parameters);if(!['get','post'].include(this.method)){params['_method']=this.method;this.method='post';}
this.parameters=params;if(params=Object.toQueryString(params)){if(this.method=='get')
this.url+=(this.url.include('?')?'&':'?')+params;else if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
params+='&_=';}
try{var response=new Ajax.Response(this);if(this.options.onCreate)this.options.onCreate(response);Ajax.Responders.dispatch('onCreate',this,response);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous)this.respondToReadyState.bind(this).defer(1);this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();this.body=this.method=='post'?(this.options.postBody||params):null;this.transport.send(this.body);if(!this.options.asynchronous&&this.transport.overrideMimeType)
this.onStateChange();}
catch(e){this.dispatchException(e);}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1&&!((readyState==4)&&this._complete))
this.respondToReadyState(this.transport.readyState);},setRequestHeaders:function(){var headers={'X-Requested-With':'XMLHttpRequest','X-Prototype-Version':Prototype.Version,'Accept':'text/javascript, text/html, application/xml, text/xml, */*'};if(this.method=='post'){headers['Content-type']=this.options.contentType+
(this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005)
headers['Connection']='close';}
if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(Object.isFunction(extras.push))
for(var i=0,length=extras.length;i<length;i+=2)
headers[extras[i]]=extras[i+1];else
$H(extras).each(function(pair){headers[pair.key]=pair.value});}
for(var name in headers)
this.transport.setRequestHeader(name,headers[name]);},success:function(){var status=this.getStatus();return!status||(status>=200&&status<300);},getStatus:function(){try{return this.transport.status||0;}catch(e){return 0}},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState],response=new Ajax.Response(this);if(state=='Complete'){try{this._complete=true;(this.options['on'+response.status]||this.options['on'+(this.success()?'Success':'Failure')]||Prototype.emptyFunction)(response,response.headerJSON);}catch(e){this.dispatchException(e);}
var contentType=response.getHeader('Content-type');if(this.options.evalJS=='force'||(this.options.evalJS&&this.isSameOrigin()&&contentType&&contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
this.evalResponse();}
try{(this.options['on'+state]||Prototype.emptyFunction)(response,response.headerJSON);Ajax.Responders.dispatch('on'+state,this,response,response.headerJSON);}catch(e){this.dispatchException(e);}
if(state=='Complete'){this.transport.onreadystatechange=Prototype.emptyFunction;}},isSameOrigin:function(){var m=this.url.match(/^\s*https?:\/\/[^\/]*/);return!m||(m[0]=='#{protocol}//#{domain}#{port}'.interpolate({protocol:location.protocol,domain:document.domain,port:location.port?':'+location.port:''}));},getHeader:function(name){try{return this.transport.getResponseHeader(name)||null;}catch(e){return null;}},evalResponse:function(){try{return eval((this.transport.responseText||'').unfilterJSON());}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Response=Class.create({initialize:function(request){this.request=request;var transport=this.transport=request.transport,readyState=this.readyState=transport.readyState;if((readyState>2&&!Prototype.Browser.IE)||readyState==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(transport.responseText);this.headerJSON=this._getHeaderJSON();}
if(readyState==4){var xml=transport.responseXML;this.responseXML=Object.isUndefined(xml)?null:xml;this.responseJSON=this._getResponseJSON();}},status:0,statusText:'',getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||'';}catch(e){return''}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders();}catch(e){return null}},getResponseHeader:function(name){return this.transport.getResponseHeader(name);},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders();},_getHeaderJSON:function(){var json=this.getHeader('X-JSON');if(!json)return null;json=decodeURIComponent(escape(json));try{return json.evalJSON(this.request.options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}},_getResponseJSON:function(){var options=this.request.options;if(!options.evalJSON||(options.evalJSON!='force'&&!(this.getHeader('Content-type')||'').include('application/json'))||this.responseText.blank())
return null;try{return this.responseText.evalJSON(options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}}});Ajax.Updater=Class.create(Ajax.Request,{initialize:function($super,container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))};options=Object.clone(options);var onComplete=options.onComplete;options.onComplete=(function(response,json){this.updateContent(response.responseText);if(Object.isFunction(onComplete))onComplete(response,json);}).bind(this);$super(url,options);},updateContent:function(responseText){var receiver=this.container[this.success()?'success':'failure'],options=this.options;if(!options.evalScripts)responseText=responseText.stripScripts();if(receiver=$(receiver)){if(options.insertion){if(Object.isString(options.insertion)){var insertion={};insertion[options.insertion]=responseText;receiver.insert(insertion);}
else options.insertion(receiver,responseText);}
else receiver.update(responseText);}}});Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,container,url,options){$super(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(response){if(this.options.decay){this.decay=(response.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=response.responseText;}
this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});function $(element){if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i<length;i++)
elements.push($(arguments[i]));return elements;}
if(Object.isString(element))
element=document.getElementById(element);return Element.extend(element);}
if(Prototype.BrowserFeatures.XPath){document._getElementsByXPath=function(expression,parentElement){var results=[];var query=document.evaluate(expression,$(parentElement)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,length=query.snapshotLength;i<length;i++)
results.push(Element.extend(query.snapshotItem(i)));return results;};}
if(!window.Node||!Node)var Node={};if(!Node.ELEMENT_NODE){Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12});}
(function(global){var SETATTRIBUTE_IGNORES_NAME=(function(){var elForm=document.createElement("form");var elInput=document.createElement("input");var root=document.documentElement;elInput.setAttribute("name","test");elForm.appendChild(elInput);root.appendChild(elForm);var isBuggy=elForm.elements?(typeof elForm.elements.test=="undefined"):null;root.removeChild(elForm);elForm=elInput=null;return isBuggy;})();var element=global.Element;global.Element=function(tagName,attributes){attributes=attributes||{};tagName=tagName.toLowerCase();var cache=Element.cache;if(SETATTRIBUTE_IGNORES_NAME&&attributes.name){tagName='<'+tagName+' name="'+attributes.name+'">';delete attributes.name;return Element.writeAttribute(document.createElement(tagName),attributes);}
if(!cache[tagName])cache[tagName]=Element.extend(document.createElement(tagName));return Element.writeAttribute(cache[tagName].cloneNode(false),attributes);};Object.extend(global.Element,element||{});if(element)global.Element.prototype=element.prototype;})(this);Element.cache={};Element.idCounter=1;Element.Methods={visible:function(element){return $(element).style.display!='none';},toggle:function(element){element=$(element);Element[Element.visible(element)?'hide':'show'](element);return element;},hide:function(element){element=$(element);element.style.display='none';return element;},show:function(element){element=$(element);element.style.display='';return element;},remove:function(element){element=$(element);element.parentNode.removeChild(element);return element;},update:(function(){var SELECT_ELEMENT_INNERHTML_BUGGY=(function(){var el=document.createElement("select"),isBuggy=true;el.innerHTML="<option value=\"test\">test</option>";if(el.options&&el.options[0]){isBuggy=el.options[0].nodeName.toUpperCase()!=="OPTION";}
el=null;return isBuggy;})();var TABLE_ELEMENT_INNERHTML_BUGGY=(function(){try{var el=document.createElement("table");if(el&&el.tBodies){el.innerHTML="<tbody><tr><td>test</td></tr></tbody>";var isBuggy=typeof el.tBodies[0]=="undefined";el=null;return isBuggy;}}catch(e){return true;}})();var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING=(function(){var s=document.createElement("script"),isBuggy=false;try{s.appendChild(document.createTextNode(""));isBuggy=!s.firstChild||s.firstChild&&s.firstChild.nodeType!==3;}catch(e){isBuggy=true;}
s=null;return isBuggy;})();function update(element,content){element=$(element);if(content&&content.toElement)
content=content.toElement();if(Object.isElement(content))
return element.update().insert(content);content=Object.toHTML(content);var tagName=element.tagName.toUpperCase();if(tagName==='SCRIPT'&&SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING){element.text=content;return element;}
if(SELECT_ELEMENT_INNERHTML_BUGGY||TABLE_ELEMENT_INNERHTML_BUGGY){if(tagName in Element._insertionTranslations.tags){while(element.firstChild){element.removeChild(element.firstChild);}
Element._getContentFromAnonymousElement(tagName,content.stripScripts()).each(function(node){element.appendChild(node)});}
else{element.innerHTML=content.stripScripts();}}
else{element.innerHTML=content.stripScripts();}
content.evalScripts.bind(content).defer();return element;}
return update;})(),replace:function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();else if(!Object.isElement(content)){content=Object.toHTML(content);var range=element.ownerDocument.createRange();range.selectNode(element);content.evalScripts.bind(content).defer();content=range.createContextualFragment(content.stripScripts());}
element.parentNode.replaceChild(content,element);return element;},insert:function(element,insertions){element=$(element);if(Object.isString(insertions)||Object.isNumber(insertions)||Object.isElement(insertions)||(insertions&&(insertions.toElement||insertions.toHTML)))
insertions={bottom:insertions};var content,insert,tagName,childNodes;for(var position in insertions){content=insertions[position];position=position.toLowerCase();insert=Element._insertionTranslations[position];if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){insert(element,content);continue;}
content=Object.toHTML(content);tagName=((position=='before'||position=='after')?element.parentNode:element).tagName.toUpperCase();childNodes=Element._getContentFromAnonymousElement(tagName,content.stripScripts());if(position=='top'||position=='after')childNodes.reverse();if(insert)
childNodes.each(insert.curry(element));content.evalScripts.bind(content).defer();}
return element;},wrap:function(element,wrapper,attributes){element=$(element);if(Object.isElement(wrapper))
$(wrapper).writeAttribute(attributes||{});else if(Object.isString(wrapper))wrapper=new Element(wrapper,attributes);else wrapper=new Element('div',wrapper);if(element.parentNode)
element.parentNode.replaceChild(wrapper,element);wrapper.appendChild(element);return wrapper;},inspect:function(element){element=$(element);var result='<'+element.tagName.toLowerCase();$H({'id':'id','className':'class'}).each(function(pair){var property=pair.first(),attribute=pair.last();var value=(element[property]||'').toString();if(value)result+=' '+attribute+'='+value.inspect(true);});return result+'>';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property])
if(element.nodeType==1)
elements.push(Element.extend(element));return elements;},ancestors:function(element){return Element.recursivelyCollect(element,'parentNode');},descendants:function(element){return Element.select(element,"*");},firstDescendant:function(element){element=$(element).firstChild;while(element&&element.nodeType!=1)element=element.nextSibling;return $(element);},immediateDescendants:function(element){if(!(element=$(element).firstChild))return[];while(element&&element.nodeType!=1)element=element.nextSibling;if(element)return[element].concat($(element).nextSiblings());return[];},previousSiblings:function(element){return Element.recursivelyCollect(element,'previousSibling');},nextSiblings:function(element){return Element.recursivelyCollect(element,'nextSibling');},siblings:function(element){element=$(element);return Element.previousSiblings(element).reverse().concat(Element.nextSiblings(element));},match:function(element,selector){if(Object.isString(selector))
selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){element=$(element);if(arguments.length==1)return $(element.parentNode);var ancestors=Element.ancestors(element);return Object.isNumber(expression)?ancestors[expression]:Selector.findElement(ancestors,expression,index);},down:function(element,expression,index){element=$(element);if(arguments.length==1)return Element.firstDescendant(element);return Object.isNumber(expression)?Element.descendants(element)[expression]:Element.select(element,expression)[index||0];},previous:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.previousElementSibling(element));var previousSiblings=Element.previousSiblings(element);return Object.isNumber(expression)?previousSiblings[expression]:Selector.findElement(previousSiblings,expression,index);},next:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.nextElementSibling(element));var nextSiblings=Element.nextSiblings(element);return Object.isNumber(expression)?nextSiblings[expression]:Selector.findElement(nextSiblings,expression,index);},select:function(element){var args=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(element,args);},adjacent:function(element){var args=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(element.parentNode,args).without(element);},identify:function(element){element=$(element);var id=Element.readAttribute(element,'id');if(id)return id;do{id='anonymous_element_'+Element.idCounter++}while($(id));Element.writeAttribute(element,'id',id);return id;},readAttribute:function(element,name){element=$(element);if(Prototype.Browser.IE){var t=Element._attributeTranslations.read;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];if(name.include(':')){return(!element.attributes||!element.attributes[name])?null:element.attributes[name].value;}}
return element.getAttribute(name);},writeAttribute:function(element,name,value){element=$(element);var attributes={},t=Element._attributeTranslations.write;if(typeof name=='object')attributes=name;else attributes[name]=Object.isUndefined(value)?true:value;for(var attr in attributes){try{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);}catch(e){;}}
return element;},getHeight:function(element){return Element.getDimensions(element).height;},getWidth:function(element){return Element.getDimensions(element).width;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;var elementClassName=element.className;return(elementClassName.length>0&&(elementClassName==className||new RegExp("(^|\\s)"+className+"(\\s|$)").test(elementClassName)));},addClassName:function(element,className){if(!(element=$(element)))return;if(!Element.hasClassName(element,className))
element.className+=(element.className?' ':'')+className;return element;},removeClassName:function(element,className){if(!(element=$(element)))return;element.className=element.className.replace(new RegExp("(^|\\s+)"+className+"(\\s+|$)"),' ').strip();return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;return Element[Element.hasClassName(element,className)?'removeClassName':'addClassName'](element,className);},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue))
element.removeChild(node);node=nextNode;}
return element;},empty:function(element){return $(element).innerHTML.blank();},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);if(element.compareDocumentPosition)
return(element.compareDocumentPosition(ancestor)&8)===8;if(ancestor.contains)
return ancestor.contains(element)&&ancestor!==element;while(element=element.parentNode)
if(element==ancestor)return true;return false;},scrollTo:function(element){element=$(element);var pos=Element.cumulativeOffset(element);window.scrollTo(pos[0],pos[1]);return element;},getStyle:function(element,style){element=$(element);style=style=='float'?'cssFloat':style.camelize();var value=element.style[style];if(!value||value=='auto'){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;}
if(style=='opacity')return value?parseFloat(value):1.0;return value=='auto'?null:value;},getOpacity:function(element){return $(element).getStyle('opacity');},setStyle:function(element,styles){element=$(element);var elementStyle=element.style,match;if(Object.isString(styles)){element.style.cssText+=';'+styles;return styles.include('opacity')?element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]):element;}
for(var property in styles)
if(property=='opacity')element.setOpacity(styles[property]);else
elementStyle[(property=='float'||property=='cssFloat')?(Object.isUndefined(elementStyle.styleFloat)?'cssFloat':'styleFloat'):property]=styles[property];return element;},setOpacity:function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;return element;},getDimensions:function(element){element=$(element);var display=Element.getStyle(element,'display');if(display!='none'&&display!=null)
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';if(originalPosition!='fixed')
els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(Prototype.Browser.Opera){element.style.top=0;element.style.left=0;}}
return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}
return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=Element.getStyle(element,'overflow')||'auto';if(element._overflow!=='hidden')
element.style.overflow='hidden';return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=='auto'?'':element._overflow;element._overflow=null;return element;},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return Element._returnOffset(valueL,valueT);},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){if(element.tagName.toUpperCase()=='BODY')break;var p=Element.getStyle(element,'position');if(p!=='static')break;}}while(element);return Element._returnOffset(valueL,valueT);},absolutize:function(element){element=$(element);if(Element.getStyle(element,'position')=='absolute')return element;var offsets=Element.positionedOffset(element);var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';element.style.left=left+'px';element.style.width=width+'px';element.style.height=height+'px';return element;},relativize:function(element){element=$(element);if(Element.getStyle(element,'position')=='relative')return element;element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;return element;},cumulativeScrollOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return Element._returnOffset(valueL,valueT);},getOffsetParent:function(element){if(element.offsetParent)return $(element.offsetParent);if(element==document.body)return $(element);while((element=element.parentNode)&&element!=document.body)
if(Element.getStyle(element,'position')!='static')
return $(element);return $(document.body);},viewportOffset:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body&&Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{if(!Prototype.Browser.Opera||(element.tagName&&(element.tagName.toUpperCase()=='BODY'))){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}}while(element=element.parentNode);return Element._returnOffset(valueL,valueT);},clonePosition:function(element,source){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});source=$(source);var p=Element.viewportOffset(source);element=$(element);var delta=[0,0];var parent=null;if(Element.getStyle(element,'position')=='absolute'){parent=Element.getOffsetParent(element);delta=Element.viewportOffset(parent);}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)element.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)element.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)element.style.width=source.offsetWidth+'px';if(options.setHeight)element.style.height=source.offsetHeight+'px';return element;}};Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});Element._attributeTranslations={write:{names:{className:'class',htmlFor:'for'},values:{}}};if(Prototype.Browser.Opera){Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(proceed,element,style){switch(style){case'left':case'top':case'right':case'bottom':if(proceed(element,'position')==='static')return null;case'height':case'width':if(!Element.visible(element))return null;var dim=parseInt(proceed(element,style),10);if(dim!==element['offset'+style.capitalize()])
return dim+'px';var properties;if(style==='height'){properties=['border-top-width','padding-top','padding-bottom','border-bottom-width'];}
else{properties=['border-left-width','padding-left','padding-right','border-right-width'];}
return properties.inject(dim,function(memo,property){var val=proceed(element,property);return val===null?memo:memo-parseInt(val,10);})+'px';default:return proceed(element,style);}});Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(proceed,element,attribute){if(attribute==='title')return element.title;return proceed(element,attribute);});}
else if(Prototype.Browser.IE){Element.Methods.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(proceed,element){element=$(element);try{element.offsetParent}
catch(e){return $(document.body)}
var position=element.getStyle('position');if(position!=='static')return proceed(element);element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});$w('positionedOffset viewportOffset').each(function(method){Element.Methods[method]=Element.Methods[method].wrap(function(proceed,element){element=$(element);try{element.offsetParent}
catch(e){return Element._returnOffset(0,0)}
var position=element.getStyle('position');if(position!=='static')return proceed(element);var offsetParent=element.getOffsetParent();if(offsetParent&&offsetParent.getStyle('position')==='fixed')
offsetParent.setStyle({zoom:1});element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});});Element.Methods.cumulativeOffset=Element.Methods.cumulativeOffset.wrap(function(proceed,element){try{element.offsetParent}
catch(e){return Element._returnOffset(0,0)}
return proceed(element);});Element.Methods.getStyle=function(element,style){element=$(element);style=(style=='float'||style=='cssFloat')?'styleFloat':style.camelize();var value=element.style[style];if(!value&&element.currentStyle)value=element.currentStyle[style];if(style=='opacity'){if(value=(element.getStyle('filter')||'').match(/alpha\(opacity=(.*)\)/))
if(value[1])return parseFloat(value[1])/100;return 1.0;}
if(value=='auto'){if((style=='width'||style=='height')&&(element.getStyle('display')!='none'))
return element['offset'+style.capitalize()]+'px';return null;}
return value;};Element.Methods.setOpacity=function(element,value){function stripAlpha(filter){return filter.replace(/alpha\([^\)]*\)/gi,'');}
element=$(element);var currentStyle=element.currentStyle;if((currentStyle&&!currentStyle.hasLayout)||(!currentStyle&&element.style.zoom=='normal'))
element.style.zoom=1;var filter=element.getStyle('filter'),style=element.style;if(value==1||value===''){(filter=stripAlpha(filter))?style.filter=filter:style.removeAttribute('filter');return element;}else if(value<0.00001)value=0;style.filter=stripAlpha(filter)+'alpha(opacity='+(value*100)+')';return element;};Element._attributeTranslations=(function(){var classProp='className';var forProp='for';var el=document.createElement('div');el.setAttribute(classProp,'x');if(el.className!=='x'){el.setAttribute('class','x');if(el.className==='x'){classProp='class';}}
el=null;el=document.createElement('label');el.setAttribute(forProp,'x');if(el.htmlFor!=='x'){el.setAttribute('htmlFor','x');if(el.htmlFor==='x'){forProp='htmlFor';}}
el=null;return{read:{names:{'class':classProp,'className':classProp,'for':forProp,'htmlFor':forProp},values:{_getAttr:function(element,attribute){return element.getAttribute(attribute);},_getAttr2:function(element,attribute){return element.getAttribute(attribute,2);},_getAttrNode:function(element,attribute){var node=element.getAttributeNode(attribute);return node?node.value:"";},_getEv:(function(){var el=document.createElement('div');el.onclick=Prototype.emptyFunction;var value=el.getAttribute('onclick');var f;if(String(value).indexOf('{')>-1){f=function(element,attribute){attribute=element.getAttribute(attribute);if(!attribute)return null;attribute=attribute.toString();attribute=attribute.split('{')[1];attribute=attribute.split('}')[0];return attribute.strip();};}
else if(value===''){f=function(element,attribute){attribute=element.getAttribute(attribute);if(!attribute)return null;return attribute.strip();};}
el=null;return f;})(),_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){return element.title;}}}}})();Element._attributeTranslations.write={names:Object.extend({cellpadding:'cellPadding',cellspacing:'cellSpacing'},Element._attributeTranslations.read.names),values:{checked:function(element,value){element.checked=!!value;},style:function(element,value){element.style.cssText=value?value:'';}}};Element._attributeTranslations.has={};$w('colSpan rowSpan vAlign dateTime accessKey tabIndex '+'encType maxLength readOnly longDesc frameBorder').each(function(attr){Element._attributeTranslations.write.names[attr.toLowerCase()]=attr;Element._attributeTranslations.has[attr.toLowerCase()]=attr;});(function(v){Object.extend(v,{href:v._getAttr2,src:v._getAttr2,type:v._getAttr,action:v._getAttrNode,disabled:v._flag,checked:v._flag,readonly:v._flag,multiple:v._flag,onload:v._getEv,onunload:v._getEv,onclick:v._getEv,ondblclick:v._getEv,onmousedown:v._getEv,onmouseup:v._getEv,onmouseover:v._getEv,onmousemove:v._getEv,onmouseout:v._getEv,onfocus:v._getEv,onblur:v._getEv,onkeypress:v._getEv,onkeydown:v._getEv,onkeyup:v._getEv,onsubmit:v._getEv,onreset:v._getEv,onselect:v._getEv,onchange:v._getEv});})(Element._attributeTranslations.read.values);if(Prototype.BrowserFeatures.ElementExtensions){(function(){function _descendants(element){var nodes=element.getElementsByTagName('*'),results=[];for(var i=0,node;node=nodes[i];i++)
if(node.tagName!=="!")
results.push(node);return results;}
Element.Methods.down=function(element,expression,index){element=$(element);if(arguments.length==1)return element.firstDescendant();return Object.isNumber(expression)?_descendants(element)[expression]:Element.select(element,expression)[index||0];}})();}}
else if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1)?0.999999:(value==='')?'':(value<0.00001)?0:value;return element;};}
else if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;if(value==1)
if(element.tagName.toUpperCase()=='IMG'&&element.width){element.width++;element.width--;}else try{var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}
return element;};Element.Methods.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return Element._returnOffset(valueL,valueT);};}
if('outerHTML'in document.documentElement){Element.Methods.replace=function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){element.parentNode.replaceChild(content,element);return element;}
content=Object.toHTML(content);var parent=element.parentNode,tagName=parent.tagName.toUpperCase();if(Element._insertionTranslations.tags[tagName]){var nextSibling=element.next();var fragments=Element._getContentFromAnonymousElement(tagName,content.stripScripts());parent.removeChild(element);if(nextSibling)
fragments.each(function(node){parent.insertBefore(node,nextSibling)});else
fragments.each(function(node){parent.appendChild(node)});}
else element.outerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;};}
Element._returnOffset=function(l,t){var result=[l,t];result.left=l;result.top=t;return result;};Element._getContentFromAnonymousElement=function(tagName,html){var div=new Element('div'),t=Element._insertionTranslations.tags[tagName];if(t){div.innerHTML=t[0]+html+t[1];t[2].times(function(){div=div.firstChild});}else div.innerHTML=html;return $A(div.childNodes);};Element._insertionTranslations={before:function(element,node){element.parentNode.insertBefore(node,element);},top:function(element,node){element.insertBefore(node,element.firstChild);},bottom:function(element,node){element.appendChild(node);},after:function(element,node){element.parentNode.insertBefore(node,element.nextSibling);},tags:{TABLE:['<table>','</table>',1],TBODY:['<table><tbody>','</tbody></table>',2],TR:['<table><tbody><tr>','</tr></tbody></table>',3],TD:['<table><tbody><tr><td>','</td></tr></tbody></table>',4],SELECT:['<select>','</select>',1]}};(function(){var tags=Element._insertionTranslations.tags;Object.extend(tags,{THEAD:tags.TBODY,TFOOT:tags.TBODY,TH:tags.TD});})();Element.Methods.Simulated={hasAttribute:function(element,attribute){attribute=Element._attributeTranslations.has[attribute]||attribute;var node=$(element).getAttributeNode(attribute);return!!(node&&node.specified);}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);(function(div){if(!Prototype.BrowserFeatures.ElementExtensions&&div['__proto__']){window.HTMLElement={};window.HTMLElement.prototype=div['__proto__'];Prototype.BrowserFeatures.ElementExtensions=true;}
div=null;})(document.createElement('div'))
Element.extend=(function(){function checkDeficiency(tagName){if(typeof window.Element!='undefined'){var proto=window.Element.prototype;if(proto){var id='_'+(Math.random()+'').slice(2);var el=document.createElement(tagName);proto[id]='x';var isBuggy=(el[id]!=='x');delete proto[id];el=null;return isBuggy;}}
return false;}
function extendElementWith(element,methods){for(var property in methods){var value=methods[property];if(Object.isFunction(value)&&!(property in element))
element[property]=value.methodize();}}
var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY=checkDeficiency('object');if(Prototype.BrowserFeatures.SpecificElementExtensions){if(HTMLOBJECTELEMENT_PROTOTYPE_BUGGY){return function(element){if(element&&typeof element._extendedByPrototype=='undefined'){var t=element.tagName;if(t&&(/^(?:object|applet|embed)$/i.test(t))){extendElementWith(element,Element.Methods);extendElementWith(element,Element.Methods.Simulated);extendElementWith(element,Element.Methods.ByTag[t.toUpperCase()]);}}
return element;}}
return Prototype.K;}
var Methods={},ByTag=Element.Methods.ByTag;var extend=Object.extend(function(element){if(!element||typeof element._extendedByPrototype!='undefined'||element.nodeType!=1||element==window)return element;var methods=Object.clone(Methods),tagName=element.tagName.toUpperCase();if(ByTag[tagName])Object.extend(methods,ByTag[tagName]);extendElementWith(element,methods);element._extendedByPrototype=Prototype.emptyFunction;return element;},{refresh:function(){if(!Prototype.BrowserFeatures.ElementExtensions){Object.extend(Methods,Element.Methods);Object.extend(Methods,Element.Methods.Simulated);}}});extend.refresh();return extend;})();Element.hasAttribute=function(element,attribute){if(element.hasAttribute)return element.hasAttribute(attribute);return Element.Methods.Simulated.hasAttribute(element,attribute);};Element.addMethods=function(methods){var F=Prototype.BrowserFeatures,T=Element.Methods.ByTag;if(!methods){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{"FORM":Object.clone(Form.Methods),"INPUT":Object.clone(Form.Element.Methods),"SELECT":Object.clone(Form.Element.Methods),"TEXTAREA":Object.clone(Form.Element.Methods)});}
if(arguments.length==2){var tagName=methods;methods=arguments[1];}
if(!tagName)Object.extend(Element.Methods,methods||{});else{if(Object.isArray(tagName))tagName.each(extend);else extend(tagName);}
function extend(tagName){tagName=tagName.toUpperCase();if(!Element.Methods.ByTag[tagName])
Element.Methods.ByTag[tagName]={};Object.extend(Element.Methods.ByTag[tagName],methods);}
function copy(methods,destination,onlyIfAbsent){if(destination){onlyIfAbsent=onlyIfAbsent||false;for(var property in methods){var value=methods[property];if(!Object.isFunction(value))continue;if(!onlyIfAbsent||!(property in destination))
destination[property]=value.methodize();}}}
function findDOMClass(tagName){var klass;var trans={"OPTGROUP":"OptGroup","TEXTAREA":"TextArea","P":"Paragraph","FIELDSET":"FieldSet","UL":"UList","OL":"OList","DL":"DList","DIR":"Directory","H1":"Heading","H2":"Heading","H3":"Heading","H4":"Heading","H5":"Heading","H6":"Heading","Q":"Quote","INS":"Mod","DEL":"Mod","A":"Anchor","IMG":"Image","CAPTION":"TableCaption","COL":"TableCol","COLGROUP":"TableCol","THEAD":"TableSection","TFOOT":"TableSection","TBODY":"TableSection","TR":"TableRow","TH":"TableCell","TD":"TableCell","FRAMESET":"FrameSet","IFRAME":"IFrame"};if(trans[tagName])klass='HTML'+trans[tagName]+'Element';if(window[klass])return window[klass];klass='HTML'+tagName+'Element';if(window[klass])return window[klass];klass='HTML'+tagName.capitalize()+'Element';if(window[klass])return window[klass];var element=document.createElement(tagName);var proto=element['__proto__']||element.constructor.prototype;element=null;return proto;}
var elementPrototype=window.HTMLElement?HTMLElement.prototype:Element.prototype;if(F.ElementExtensions){copy(Element.Methods,elementPrototype);copy(Element.Methods.Simulated,elementPrototype,true);}
if(F.SpecificElementExtensions){for(var tag in Element.Methods.ByTag){var klass=findDOMClass(tag);if(Object.isUndefined(klass))continue;copy(T[tag],klass.prototype);}}
Object.extend(Element,Element.Methods);delete Element.ByTag;if(Element.extend.refresh)Element.extend.refresh();Element.cache={};};document.viewport={getDimensions:function(){return{width:this.getWidth(),height:this.getHeight()};},getScrollOffsets:function(){return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop);}};(function(viewport){var B=Prototype.Browser,doc=document,element,property={};function getRootElement(){if(B.WebKit&&!doc.evaluate)
return document;if(B.Opera&&window.parseFloat(window.opera.version())<9.5)
return document.body;return document.documentElement;}
function define(D){if(!element)element=getRootElement();property[D]='client'+D;viewport['get'+D]=function(){return element[property[D]]};return viewport['get'+D]();}
viewport.getWidth=define.curry('Width');viewport.getHeight=define.curry('Height');})(document.viewport);Element.Storage={UID:1};Element.addMethods({getStorage:function(element){if(!(element=$(element)))return;var uid;if(element===window){uid=0;}else{if(typeof element._prototypeUID==="undefined")
element._prototypeUID=[Element.Storage.UID++];uid=element._prototypeUID[0];}
if(!Element.Storage[uid])
Element.Storage[uid]=$H();return Element.Storage[uid];},store:function(element,key,value){if(!(element=$(element)))return;if(arguments.length===2){Element.getStorage(element).update(key);}else{Element.getStorage(element).set(key,value);}
return element;},retrieve:function(element,key,defaultValue){if(!(element=$(element)))return;var hash=Element.getStorage(element),value=hash.get(key);if(Object.isUndefined(value)){hash.set(key,defaultValue);value=defaultValue;}
return value;},clone:function(element,deep){if(!(element=$(element)))return;var clone=element.cloneNode(deep);clone._prototypeUID=void 0;if(deep){var descendants=Element.select(clone,'*'),i=descendants.length;while(i--){descendants[i]._prototypeUID=void 0;}}
return Element.extend(clone);}});var Selector=Class.create({initialize:function(expression){this.expression=expression.strip();if(this.shouldUseSelectorsAPI()){this.mode='selectorsAPI';}else if(this.shouldUseXPath()){this.mode='xpath';this.compileXPathMatcher();}else{this.mode="normal";this.compileMatcher();}},shouldUseXPath:(function(){var IS_DESCENDANT_SELECTOR_BUGGY=(function(){var isBuggy=false;if(document.evaluate&&window.XPathResult){var el=document.createElement('div');el.innerHTML='<ul><li></li></ul><div><ul><li></li></ul></div>';var xpath=".//*[local-name()='ul' or local-name()='UL']"+"//*[local-name()='li' or local-name()='LI']";var result=document.evaluate(xpath,el,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);isBuggy=(result.snapshotLength!==2);el=null;}
return isBuggy;})();return function(){if(!Prototype.BrowserFeatures.XPath)return false;var e=this.expression;if(Prototype.Browser.WebKit&&(e.include("-of-type")||e.include(":empty")))
return false;if((/(\[[\w-]*?:|:checked)/).test(e))
return false;if(IS_DESCENDANT_SELECTOR_BUGGY)return false;return true;}})(),shouldUseSelectorsAPI:function(){if(!Prototype.BrowserFeatures.SelectorsAPI)return false;if(Selector.CASE_INSENSITIVE_CLASS_NAMES)return false;if(!Selector._div)Selector._div=new Element('div');try{Selector._div.querySelector(this.expression);}catch(e){return false;}
return true;},compileMatcher:function(){var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m,len=ps.length,name;if(Selector._cache[e]){this.matcher=Selector._cache[e];return;}
this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){p=ps[i].re;name=ps[i].name;if(m=e.match(p)){this.matcher.push(Object.isFunction(c[name])?c[name](m):new Template(c[name]).evaluate(m));e=e.replace(m[0],'');break;}}}
this.matcher.push("return h.unique(n);\n}");eval(this.matcher.join('\n'));Selector._cache[this.expression]=this.matcher;},compileXPathMatcher:function(){var e=this.expression,ps=Selector.patterns,x=Selector.xpath,le,m,len=ps.length,name;if(Selector._cache[e]){this.xpath=Selector._cache[e];return;}
this.matcher=['.//*'];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){name=ps[i].name;if(m=e.match(ps[i].re)){this.matcher.push(Object.isFunction(x[name])?x[name](m):new Template(x[name]).evaluate(m));e=e.replace(m[0],'');break;}}}
this.xpath=this.matcher.join('');Selector._cache[this.expression]=this.xpath;},findElements:function(root){root=root||document;var e=this.expression,results;switch(this.mode){case'selectorsAPI':if(root!==document){var oldId=root.id,id=$(root).identify();id=id.replace(/([\.:])/g,"\\$1");e="#"+id+" "+e;}
results=$A(root.querySelectorAll(e)).map(Element.extend);root.id=oldId;return results;case'xpath':return document._getElementsByXPath(this.xpath,root);default:return this.matcher(root);}},match:function(element){this.tokens=[];var e=this.expression,ps=Selector.patterns,as=Selector.assertions;var le,p,m,len=ps.length,name;while(e&&le!==e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){p=ps[i].re;name=ps[i].name;if(m=e.match(p)){if(as[name]){this.tokens.push([name,Object.clone(m)]);e=e.replace(m[0],'');}else{return this.findElements(document).include(element);}}}}
var match=true,name,matches;for(var i=0,token;token=this.tokens[i];i++){name=token[0],matches=token[1];if(!Selector.assertions[name](element,matches)){match=false;break;}}
return match;},toString:function(){return this.expression;},inspect:function(){return"#<Selector:"+this.expression.inspect()+">";}});if(Prototype.BrowserFeatures.SelectorsAPI&&document.compatMode==='BackCompat'){Selector.CASE_INSENSITIVE_CLASS_NAMES=(function(){var div=document.createElement('div'),span=document.createElement('span');div.id="prototype_test_id";span.className='Test';div.appendChild(span);var isIgnored=(div.querySelector('#prototype_test_id .test')!==null);div=span=null;return isIgnored;})();}
Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:'/following-sibling::*',tagName:function(m){if(m[1]=='*')return'';return"[local-name()='"+m[1].toLowerCase()+"' or local-name()='"+m[1].toUpperCase()+"']";},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(m){m[1]=m[1].toLowerCase();return new Template("[@#{1}]").evaluate(m);},attr:function(m){m[1]=m[1].toLowerCase();m[3]=m[5]||m[6];return new Template(Selector.xpath.operators[m[2]]).evaluate(m);},pseudo:function(m){var h=Selector.xpath.pseudos[m[1]];if(!h)return'';if(Object.isFunction(h))return h(m);return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);},operators:{'=':"[@#{1}='#{3}']",'!=':"[@#{1}!='#{3}']",'^=':"[starts-with(@#{1}, '#{3}')]",'$=':"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",'*=':"[contains(@#{1}, '#{3}')]",'~=':"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",'|=':"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{'first-child':'[not(preceding-sibling::*)]','last-child':'[not(following-sibling::*)]','only-child':'[not(preceding-sibling::* or following-sibling::*)]','empty':"[count(*) = 0 and (count(text()) = 0)]",'checked':"[@checked]",'disabled':"[(@disabled) and (@type!='hidden')]",'enabled':"[not(@disabled) and (@type!='hidden')]",'not':function(m){var e=m[6],p=Selector.patterns,x=Selector.xpath,le,v,len=p.length,name;var exclusion=[];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){name=p[i].name
if(m=e.match(p[i].re)){v=Object.isFunction(x[name])?x[name](m):new Template(x[name]).evaluate(m);exclusion.push("("+v.substring(1,v.length-1)+")");e=e.replace(m[0],'');break;}}}
return"[not("+exclusion.join(" and ")+")]";},'nth-child':function(m){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",m);},'nth-last-child':function(m){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",m);},'nth-of-type':function(m){return Selector.xpath.pseudos.nth("position() ",m);},'nth-last-of-type':function(m){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",m);},'first-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-of-type'](m);},'last-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-last-of-type'](m);},'only-of-type':function(m){var p=Selector.xpath.pseudos;return p['first-of-type'](m)+p['last-of-type'](m);},nth:function(fragment,m){var mm,formula=m[6],predicate;if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';if(mm=formula.match(/^(\d+)$/))
return'['+fragment+"= "+mm[1]+']';if(mm=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(mm[1]=="-")mm[1]=-1;var a=mm[1]?Number(mm[1]):1;var b=mm[2]?Number(mm[2]):0;predicate="[((#{fragment} - #{b}) mod #{a} = 0) and "+"((#{fragment} - #{b}) div #{a} >= 0)]";return new Template(predicate).evaluate({fragment:fragment,a:a,b:b});}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c);      c = false;',className:'n = h.className(n, r, "#{1}", c);    c = false;',id:'n = h.id(n, r, "#{1}", c);           c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}", c); c = false;',attr:function(m){m[3]=(m[5]||m[6]);return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);},pseudo:function(m){if(m[6])m[6]=m[6].replace(/"/g,'\\"');return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:[{name:'laterSibling',re:/^\s*~\s*/},{name:'child',re:/^\s*>\s*/},{name:'adjacent',re:/^\s*\+\s*/},{name:'descendant',re:/^\s/},{name:'tagName',re:/^\s*(\*|[\w\-]+)(\b|$)?/},{name:'id',re:/^#([\w\-\*]+)(\b|$)/},{name:'className',re:/^\.([\w\-\*]+)(\b|$)/},{name:'pseudo',re:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/},{name:'attrPresence',re:/^\[((?:[\w-]+:)?[\w-]+)\]/},{name:'attr',re:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/}],assertions:{tagName:function(element,matches){return matches[1].toUpperCase()==element.tagName.toUpperCase();},className:function(element,matches){return Element.hasClassName(element,matches[1]);},id:function(element,matches){return element.id===matches[1];},attrPresence:function(element,matches){return Element.hasAttribute(element,matches[1]);},attr:function(element,matches){var nodeValue=Element.readAttribute(element,matches[1]);return nodeValue&&Selector.operators[matches[2]](nodeValue,matches[5]||matches[6]);}},handlers:{concat:function(a,b){for(var i=0,node;node=b[i];i++)
a.push(node);return a;},mark:function(nodes){var _true=Prototype.emptyFunction;for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=_true;return nodes;},unmark:(function(){var PROPERTIES_ATTRIBUTES_MAP=(function(){var el=document.createElement('div'),isBuggy=false,propName='_countedByPrototype',value='x'
el[propName]=value;isBuggy=(el.getAttribute(propName)===value);el=null;return isBuggy;})();return PROPERTIES_ATTRIBUTES_MAP?function(nodes){for(var i=0,node;node=nodes[i];i++)
node.removeAttribute('_countedByPrototype');return nodes;}:function(nodes){for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=void 0;return nodes;}})(),index:function(parentNode,reverse,ofType){parentNode._countedByPrototype=Prototype.emptyFunction;if(reverse){for(var nodes=parentNode.childNodes,i=nodes.length-1,j=1;i>=0;i--){var node=nodes[i];if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}}else{for(var i=0,j=1,nodes=parentNode.childNodes;node=nodes[i];i++)
if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}},unique:function(nodes){if(nodes.length==0)return nodes;var results=[],n;for(var i=0,l=nodes.length;i<l;i++)
if(typeof(n=nodes[i])._countedByPrototype=='undefined'){n._countedByPrototype=Prototype.emptyFunction;results.push(Element.extend(n));}
return Selector.handlers.unmark(results);},descendant:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
h.concat(results,node.getElementsByTagName('*'));return results;},child:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++){for(var j=0,child;child=node.childNodes[j];j++)
if(child.nodeType==1&&child.tagName!='!')results.push(child);}
return results;},adjacent:function(nodes){for(var i=0,results=[],node;node=nodes[i];i++){var next=this.nextElementSibling(node);if(next)results.push(next);}
return results;},laterSibling:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
h.concat(results,Element.nextSiblings(node));return results;},nextElementSibling:function(node){while(node=node.nextSibling)
if(node.nodeType==1)return node;return null;},previousElementSibling:function(node){while(node=node.previousSibling)
if(node.nodeType==1)return node;return null;},tagName:function(nodes,root,tagName,combinator){var uTagName=tagName.toUpperCase();var results=[],h=Selector.handlers;if(nodes){if(combinator){if(combinator=="descendant"){for(var i=0,node;node=nodes[i];i++)
h.concat(results,node.getElementsByTagName(tagName));return results;}else nodes=this[combinator](nodes);if(tagName=="*")return nodes;}
for(var i=0,node;node=nodes[i];i++)
if(node.tagName.toUpperCase()===uTagName)results.push(node);return results;}else return root.getElementsByTagName(tagName);},id:function(nodes,root,id,combinator){var targetNode=$(id),h=Selector.handlers;if(root==document){if(!targetNode)return[];if(!nodes)return[targetNode];}else{if(!root.sourceIndex||root.sourceIndex<1){var nodes=root.getElementsByTagName('*');for(var j=0,node;node=nodes[j];j++){if(node.id===id)return[node];}}}
if(nodes){if(combinator){if(combinator=='child'){for(var i=0,node;node=nodes[i];i++)
if(targetNode.parentNode==node)return[targetNode];}else if(combinator=='descendant'){for(var i=0,node;node=nodes[i];i++)
if(Element.descendantOf(targetNode,node))return[targetNode];}else if(combinator=='adjacent'){for(var i=0,node;node=nodes[i];i++)
if(Selector.handlers.previousElementSibling(targetNode)==node)
return[targetNode];}else nodes=h[combinator](nodes);}
for(var i=0,node;node=nodes[i];i++)
if(node==targetNode)return[targetNode];return[];}
return(targetNode&&Element.descendantOf(targetNode,root))?[targetNode]:[];},className:function(nodes,root,className,combinator){if(nodes&&combinator)nodes=this[combinator](nodes);return Selector.handlers.byClassName(nodes,root,className);},byClassName:function(nodes,root,className){if(!nodes)nodes=Selector.handlers.descendant([root]);var needle=' '+className+' ';for(var i=0,results=[],node,nodeClassName;node=nodes[i];i++){nodeClassName=node.className;if(nodeClassName.length==0)continue;if(nodeClassName==className||(' '+nodeClassName+' ').include(needle))
results.push(node);}
return results;},attrPresence:function(nodes,root,attr,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);var results=[];for(var i=0,node;node=nodes[i];i++)
if(Element.hasAttribute(node,attr))results.push(node);return results;},attr:function(nodes,root,attr,value,operator,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);var handler=Selector.operators[operator],results=[];for(var i=0,node;node=nodes[i];i++){var nodeValue=Element.readAttribute(node,attr);if(nodeValue===null)continue;if(handler(nodeValue,value))results.push(node);}
return results;},pseudo:function(nodes,name,value,root,combinator){if(nodes&&combinator)nodes=this[combinator](nodes);if(!nodes)nodes=root.getElementsByTagName("*");return Selector.pseudos[name](nodes,value,root);}},pseudos:{'first-child':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.previousElementSibling(node))continue;results.push(node);}
return results;},'last-child':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.nextElementSibling(node))continue;results.push(node);}
return results;},'only-child':function(nodes,value,root){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
if(!h.previousElementSibling(node)&&!h.nextElementSibling(node))
results.push(node);return results;},'nth-child':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root);},'nth-last-child':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true);},'nth-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,false,true);},'nth-last-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true,true);},'first-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,false,true);},'last-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,true,true);},'only-of-type':function(nodes,formula,root){var p=Selector.pseudos;return p['last-of-type'](p['first-of-type'](nodes,formula,root),formula,root);},getIndices:function(a,b,total){if(a==0)return b>0?[b]:[];return $R(1,total).inject([],function(memo,i){if(0==(i-b)%a&&(i-b)/a>=0)memo.push(i);return memo;});},nth:function(nodes,formula,root,reverse,ofType){if(nodes.length==0)return[];if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';var h=Selector.handlers,results=[],indexed=[],m;h.mark(nodes);for(var i=0,node;node=nodes[i];i++){if(!node.parentNode._countedByPrototype){h.index(node.parentNode,reverse,ofType);indexed.push(node.parentNode);}}
if(formula.match(/^\d+$/)){formula=Number(formula);for(var i=0,node;node=nodes[i];i++)
if(node.nodeIndex==formula)results.push(node);}else if(m=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(m[1]=="-")m[1]=-1;var a=m[1]?Number(m[1]):1;var b=m[2]?Number(m[2]):0;var indices=Selector.pseudos.getIndices(a,b,nodes.length);for(var i=0,node,l=indices.length;node=nodes[i];i++){for(var j=0;j<l;j++)
if(node.nodeIndex==indices[j])results.push(node);}}
h.unmark(nodes);h.unmark(indexed);return results;},'empty':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(node.tagName=='!'||node.firstChild)continue;results.push(node);}
return results;},'not':function(nodes,selector,root){var h=Selector.handlers,selectorType,m;var exclusions=new Selector(selector).findElements(root);h.mark(exclusions);for(var i=0,results=[],node;node=nodes[i];i++)
if(!node._countedByPrototype)results.push(node);h.unmark(exclusions);return results;},'enabled':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(!node.disabled&&(!node.type||node.type!=='hidden'))
results.push(node);return results;},'disabled':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(node.disabled)results.push(node);return results;},'checked':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(node.checked)results.push(node);return results;}},operators:{'=':function(nv,v){return nv==v;},'!=':function(nv,v){return nv!=v;},'^=':function(nv,v){return nv==v||nv&&nv.startsWith(v);},'$=':function(nv,v){return nv==v||nv&&nv.endsWith(v);},'*=':function(nv,v){return nv==v||nv&&nv.include(v);},'~=':function(nv,v){return(' '+nv+' ').include(' '+v+' ');},'|=':function(nv,v){return('-'+(nv||"").toUpperCase()+'-').include('-'+(v||"").toUpperCase()+'-');}},split:function(expression){var expressions=[];expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){expressions.push(m[1].strip());});return expressions;},matchElements:function(elements,expression){var matches=$$(expression),h=Selector.handlers;h.mark(matches);for(var i=0,results=[],element;element=elements[i];i++)
if(element._countedByPrototype)results.push(element);h.unmark(matches);return results;},findElement:function(elements,expression,index){if(Object.isNumber(expression)){index=expression;expression=false;}
return Selector.matchElements(elements,expression||'*')[index||0];},findChildElements:function(element,expressions){expressions=Selector.split(expressions.join(','));var results=[],h=Selector.handlers;for(var i=0,l=expressions.length,selector;i<l;i++){selector=new Selector(expressions[i].strip());h.concat(results,selector.findElements(element));}
return(l>1)?h.unique(results):results;}});if(Prototype.Browser.IE){Object.extend(Selector.handlers,{concat:function(a,b){for(var i=0,node;node=b[i];i++)
if(node.tagName!=="!")a.push(node);return a;}});}
function $$(){return Selector.findChildElements(document,$A(arguments));}
var Form={reset:function(form){form=$(form);form.reset();return form;},serializeElements:function(elements,options){if(typeof options!='object')options={hash:!!options};else if(Object.isUndefined(options.hash))options.hash=true;var key,value,submitted=false,submit=options.submit;var data=elements.inject({},function(result,element){if(!element.disabled&&element.name){key=element.name;value=$(element).getValue();if(value!=null&&element.type!='file'&&(element.type!='submit'||(!submitted&&submit!==false&&(!submit||key==submit)&&(submitted=true)))){if(key in result){if(!Object.isArray(result[key]))result[key]=[result[key]];result[key].push(value);}
else result[key]=value;}}
return result;});return options.hash?data:Object.toQueryString(data);}};Form.Methods={serialize:function(form,options){return Form.serializeElements(Form.getElements(form),options);},getElements:function(form){var elements=$(form).getElementsByTagName('*'),element,arr=[],serializers=Form.Element.Serializers;for(var i=0;element=elements[i];i++){arr.push(element);}
return arr.inject([],function(elements,child){if(serializers[child.tagName.toLowerCase()])
elements.push(Element.extend(child));return elements;})},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)return $A(inputs).map(Element.extend);for(var i=0,matchingInputs=[],length=inputs.length;i<length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))
continue;matchingInputs.push(Element.extend(input));}
return matchingInputs;},disable:function(form){form=$(form);Form.getElements(form).invoke('disable');return form;},enable:function(form){form=$(form);Form.getElements(form).invoke('enable');return form;},findFirstElement:function(form){var elements=$(form).getElements().findAll(function(element){return'hidden'!=element.type&&!element.disabled;});var firstByIndex=elements.findAll(function(element){return element.hasAttribute('tabIndex')&&element.tabIndex>=0;}).sortBy(function(element){return element.tabIndex}).first();return firstByIndex?firstByIndex:elements.find(function(element){return/^(?:input|select|textarea)$/i.test(element.tagName);});},focusFirstElement:function(form){form=$(form);form.findFirstElement().activate();return form;},request:function(form,options){form=$(form),options=Object.clone(options||{});var params=options.parameters,action=form.readAttribute('action')||'';if(action.blank())action=window.location.href;options.parameters=form.serialize(true);if(params){if(Object.isString(params))params=params.toQueryParams();Object.extend(options.parameters,params);}
if(form.hasAttribute('method')&&!options.method)
options.method=form.method;return new Ajax.Request(action,options);}};Form.Element={focus:function(element){$(element).focus();return element;},select:function(element){$(element).select();return element;}};Form.Element.Methods={serialize:function(element){element=$(element);if(!element.disabled&&element.name){var value=element.getValue();if(value!=undefined){var pair={};pair[element.name]=value;return Object.toQueryString(pair);}}
return'';},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();return Form.Element.Serializers[method](element);},setValue:function(element,value){element=$(element);var method=element.tagName.toLowerCase();Form.Element.Serializers[method](element,value);return element;},clear:function(element){$(element).value='';return element;},present:function(element){return $(element).value!='';},activate:function(element){element=$(element);try{element.focus();if(element.select&&(element.tagName.toLowerCase()!='input'||!(/^(?:button|reset|submit)$/i.test(element.type))))
element.select();}catch(e){}
return element;},disable:function(element){element=$(element);element.disabled=true;return element;},enable:function(element){element=$(element);element.disabled=false;return element;}};var Field=Form.Element;var $F=Form.Element.Methods.getValue;Form.Element.Serializers={input:function(element,value){switch(element.type.toLowerCase()){case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element,value);default:return Form.Element.Serializers.textarea(element,value);}},inputSelector:function(element,value){if(Object.isUndefined(value))return element.checked?element.value:null;else element.checked=!!value;},textarea:function(element,value){if(Object.isUndefined(value))return element.value;else element.value=value;},select:function(element,value){if(Object.isUndefined(value))
return this[element.type=='select-one'?'selectOne':'selectMany'](element);else{var opt,currentValue,single=!Object.isArray(value);for(var i=0,length=element.length;i<length;i++){opt=element.options[i];currentValue=this.optionValue(opt);if(single){if(currentValue==value){opt.selected=true;return;}}
else opt.selected=value.include(currentValue);}}},selectOne:function(element){var index=element.selectedIndex;return index>=0?this.optionValue(element.options[index]):null;},selectMany:function(element){var values,length=element.length;if(!length)return null;for(var i=0,values=[];i<length;i++){var opt=element.options[i];if(opt.selected)values.push(this.optionValue(opt));}
return values;},optionValue:function(opt){return Element.extend(opt).hasAttribute('value')?opt.value:opt.text;}};Abstract.TimedObserver=Class.create(PeriodicalExecuter,{initialize:function($super,element,frequency,callback){$super(callback,frequency);this.element=$(element);this.lastValue=this.getValue();},execute:function(){var value=this.getValue();if(Object.isString(this.lastValue)&&Object.isString(value)?this.lastValue!=value:String(this.lastValue)!=String(value)){this.callback(this.element,value);this.lastValue=value;}}});Form.Element.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=Class.create({initialize:function(element,callback){this.element=$(element);this.callback=callback;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=='form')
this.registerFormCallbacks();else
this.registerCallback(this.element);},onElementEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}},registerFormCallbacks:function(){Form.getElements(this.element).each(this.registerCallback,this);},registerCallback:function(element){if(element.type){switch(element.type.toLowerCase()){case'checkbox':case'radio':Event.observe(element,'click',this.onElementEvent.bind(this));break;default:Event.observe(element,'change',this.onElementEvent.bind(this));break;}}}});Form.Element.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.serialize(this.element);}});(function(){var Event={KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,KEY_INSERT:45,cache:{}};var docEl=document.documentElement;var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED='onmouseenter'in docEl&&'onmouseleave'in docEl;var _isButton;if(Prototype.Browser.IE){var buttonMap={0:1,1:4,2:2};_isButton=function(event,code){return event.button===buttonMap[code];};}else if(Prototype.Browser.WebKit){_isButton=function(event,code){switch(code){case 0:return event.which==1&&!event.metaKey;case 1:return event.which==1&&event.metaKey;default:return false;}};}else{_isButton=function(event,code){return event.which?(event.which===code+1):(event.button===code);};}
function isLeftClick(event){return _isButton(event,0)}
function isMiddleClick(event){return _isButton(event,1)}
function isRightClick(event){return _isButton(event,2)}
function element(event){event=Event.extend(event);var node=event.target,type=event.type,currentTarget=event.currentTarget;if(currentTarget&&currentTarget.tagName){if(type==='load'||type==='error'||(type==='click'&&currentTarget.tagName.toLowerCase()==='input'&&currentTarget.type==='radio'))
node=currentTarget;}
if(node.nodeType==Node.TEXT_NODE)
node=node.parentNode;return Element.extend(node);}
function findElement(event,expression){var element=Event.element(event);if(!expression)return element;var elements=[element].concat(element.ancestors());return Selector.findElement(elements,expression,0);}
function pointer(event){return{x:pointerX(event),y:pointerY(event)};}
function pointerX(event){var docElement=document.documentElement,body=document.body||{scrollLeft:0};return event.pageX||(event.clientX+
(docElement.scrollLeft||body.scrollLeft)-
(docElement.clientLeft||0));}
function pointerY(event){var docElement=document.documentElement,body=document.body||{scrollTop:0};return event.pageY||(event.clientY+
(docElement.scrollTop||body.scrollTop)-
(docElement.clientTop||0));}
function stop(event){Event.extend(event);event.preventDefault();event.stopPropagation();event.stopped=true;}
Event.Methods={isLeftClick:isLeftClick,isMiddleClick:isMiddleClick,isRightClick:isRightClick,element:element,findElement:findElement,pointer:pointer,pointerX:pointerX,pointerY:pointerY,stop:stop};var methods=Object.keys(Event.Methods).inject({},function(m,name){m[name]=Event.Methods[name].methodize();return m;});if(Prototype.Browser.IE){function _relatedTarget(event){var element;switch(event.type){case'mouseover':element=event.fromElement;break;case'mouseout':element=event.toElement;break;default:return null;}
return Element.extend(element);}
Object.extend(methods,{stopPropagation:function(){this.cancelBubble=true},preventDefault:function(){this.returnValue=false},inspect:function(){return'[object Event]'}});Event.extend=function(event,element){if(!event)return false;if(event._extendedByPrototype)return event;event._extendedByPrototype=Prototype.emptyFunction;var pointer=Event.pointer(event);Object.extend(event,{target:event.srcElement||element,relatedTarget:_relatedTarget(event),pageX:pointer.x,pageY:pointer.y});return Object.extend(event,methods);};}else{Event.prototype=window.Event.prototype||document.createEvent('HTMLEvents').__proto__;Object.extend(Event.prototype,methods);Event.extend=Prototype.K;}
function _createResponder(element,eventName,handler){var registry=Element.retrieve(element,'prototype_event_registry');if(Object.isUndefined(registry)){CACHE.push(element);registry=Element.retrieve(element,'prototype_event_registry',$H());}
if(registry==undefined)
return false;var respondersForEvent=registry.get(eventName);if(Object.isUndefined(respondersForEvent)){respondersForEvent=[];registry.set(eventName,respondersForEvent);}
if(respondersForEvent.pluck('handler').include(handler))return false;var responder;if(eventName.include(":")){responder=function(event){if(Object.isUndefined(event.eventName))
return false;if(event.eventName!==eventName)
return false;Event.extend(event,element);handler.call(element,event);};}else{if(!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED&&(eventName==="mouseenter"||eventName==="mouseleave")){if(eventName==="mouseenter"||eventName==="mouseleave"){responder=function(event){Event.extend(event,element);var parent=event.relatedTarget;while(parent&&parent!==element){try{parent=parent.parentNode;}
catch(e){parent=element;}}
if(parent===element)return;handler.call(element,event);};}}else{responder=function(event){Event.extend(event,element);handler.call(element,event);};}}
responder.handler=handler;respondersForEvent.push(responder);return responder;}
function _destroyCache(){for(var i=0,length=CACHE.length;i<length;i++){Event.stopObserving(CACHE[i]);CACHE[i]=null;}}
var CACHE=[];if(Prototype.Browser.IE)
window.attachEvent('onunload',_destroyCache);if(Prototype.Browser.WebKit)
window.addEventListener('unload',Prototype.emptyFunction,false);var _getDOMEventName=Prototype.K;if(!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED){_getDOMEventName=function(eventName){var translations={mouseenter:"mouseover",mouseleave:"mouseout"};return eventName in translations?translations[eventName]:eventName;};}
function observe(element,eventName,handler){element=$(element);var responder=_createResponder(element,eventName,handler);if(!responder)return element;if(eventName.include(':')){if(element.addEventListener)
element.addEventListener("dataavailable",responder,false);else{element.attachEvent("ondataavailable",responder);element.attachEvent("onfilterchange",responder);}}else{var actualEventName=_getDOMEventName(eventName);if(element.addEventListener)
element.addEventListener(actualEventName,responder,false);else
element.attachEvent("on"+actualEventName,responder);}
return element;}
function stopObserving(element,eventName,handler){element=$(element);var registry=Element.retrieve(element,'prototype_event_registry');if(Object.isUndefined(registry))return element;if(eventName&&!handler){var responders=registry.get(eventName);if(Object.isUndefined(responders))return element;responders.each(function(r){Element.stopObserving(element,eventName,r.handler);});return element;}else if(!eventName){registry.each(function(pair){var eventName=pair.key,responders=pair.value;responders.each(function(r){Element.stopObserving(element,eventName,r.handler);});});return element;}
var responders=registry.get(eventName);if(!responders)return;var responder=responders.find(function(r){return r.handler===handler;});if(!responder)return element;var actualEventName=_getDOMEventName(eventName);if(eventName.include(':')){if(element.removeEventListener)
element.removeEventListener("dataavailable",responder,false);else{element.detachEvent("ondataavailable",responder);element.detachEvent("onfilterchange",responder);}}else{if(element.removeEventListener)
element.removeEventListener(actualEventName,responder,false);else
element.detachEvent('on'+actualEventName,responder);}
registry.set(eventName,responders.without(responder));return element;}
function fire(element,eventName,memo,bubble){element=$(element);if(Object.isUndefined(bubble))
bubble=true;if(element==document&&document.createEvent&&!element.dispatchEvent)
element=document.documentElement;var event;if(document.createEvent){event=document.createEvent('HTMLEvents');event.initEvent('dataavailable',true,true);}else{event=document.createEventObject();event.eventType=bubble?'ondataavailable':'onfilterchange';}
event.eventName=eventName;event.memo=memo||{};if(document.createEvent)
element.dispatchEvent(event);else
element.fireEvent(event.eventType,event);return Event.extend(event);}
Object.extend(Event,Event.Methods);Object.extend(Event,{fire:fire,observe:observe,stopObserving:stopObserving});Element.addMethods({fire:fire,observe:observe,stopObserving:stopObserving});Object.extend(document,{fire:fire.methodize(),observe:observe.methodize(),stopObserving:stopObserving.methodize(),loaded:false});if(window.Event)Object.extend(window.Event,Event);else window.Event=Event;})();(function(){var timer;function fireContentLoadedEvent(){if(document.loaded)return;if(timer)window.clearTimeout(timer);document.loaded=true;document.fire('dom:loaded');}
function checkReadyState(){if(document.readyState==='complete'){document.stopObserving('readystatechange',checkReadyState);fireContentLoadedEvent();}}
function pollDoScroll(){try{document.documentElement.doScroll('left');}
catch(e){timer=pollDoScroll.defer();return;}
fireContentLoadedEvent();}
if(document.addEventListener){document.addEventListener('DOMContentLoaded',fireContentLoadedEvent,false);}else{document.observe('readystatechange',checkReadyState);if(window==top)
timer=pollDoScroll.defer();}
Event.observe(window,'load',fireContentLoadedEvent);})();Element.addMethods();Hash.toQueryString=Object.toQueryString;var Toggle={display:Element.toggle};Element.Methods.childOf=Element.Methods.descendantOf;var Insertion={Before:function(element,content){return Element.insert(element,{before:content});},Top:function(element,content){return Element.insert(element,{top:content});},Bottom:function(element,content){return Element.insert(element,{bottom:content});},After:function(element,content){return Element.insert(element,{after:content});}};var $continue=new Error('"throw $continue" is deprecated, use "return" instead');var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=Element.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=Element.cumulativeScrollOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=Element.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=='horizontal')
return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth;},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(element){Position.prepare();return Element.absolutize(element);},relativize:function(element){Position.prepare();return Element.relativize(element);},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(source,target,options){options=options||{};return Element.clonePosition(target,source,options);}};if(!document.getElementsByClassName)document.getElementsByClassName=function(instanceMethods){function iter(name){return name.blank()?null:"[contains(concat(' ', @class, ' '), ' "+name+" ')]";}
instanceMethods.getElementsByClassName=Prototype.BrowserFeatures.XPath?function(element,className){className=className.toString().strip();var cond=/\s/.test(className)?$w(className).map(iter).join(''):iter(className);return cond?document._getElementsByXPath('.//*'+cond,element):[];}:function(element,className){className=className.toString().strip();var elements=[],classNames=(/\s/.test(className)?$w(className):null);if(!classNames&&!className)return elements;var nodes=$(element).getElementsByTagName('*');className=' '+className+' ';for(var i=0,child,cn;child=nodes[i];i++){if(child.className&&(cn=' '+child.className+' ')&&(cn.include(className)||(classNames&&classNames.all(function(name){return!name.toString().blank()&&cn.include(' '+name+' ');}))))
elements.push(Element.extend(child));}
return elements;};return function(className,parentElement){return $(parentElement||document.body).getElementsByClassName(className);};}(Element.Methods);Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set($A(this).concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set($A(this).without(classNameToRemove).join(' '));},toString:function(){return $A(this).join(' ');}};Object.extend(Element.ClassNames.prototype,Enumerable);if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;dwr.engine.setErrorHandler=function(handler){dwr.engine._errorHandler=handler;};dwr.engine.setWarningHandler=function(handler){dwr.engine._warningHandler=handler;};dwr.engine.setTextHtmlHandler=function(handler){dwr.engine._textHtmlHandler=handler;};dwr.engine.setTimeout=function(timeout){dwr.engine._timeout=timeout;};dwr.engine.setPreHook=function(handler){dwr.engine._preHook=handler;};dwr.engine.setPostHook=function(handler){dwr.engine._postHook=handler;};dwr.engine.setHeaders=function(headers){dwr.engine._headers=headers;};dwr.engine.setParameters=function(parameters){dwr.engine._parameters=parameters;};dwr.engine.XMLHttpRequest=1;dwr.engine.IFrame=2;dwr.engine.ScriptTag=3;dwr.engine.setRpcType=function(newType){if(newType!=dwr.engine.XMLHttpRequest&&newType!=dwr.engine.IFrame&&newType!=dwr.engine.ScriptTag){dwr.engine._handleError(null,{name:"dwr.engine.invalidRpcType",message:"RpcType must be one of dwr.engine.XMLHttpRequest or dwr.engine.IFrame or dwr.engine.ScriptTag"});return;}
dwr.engine._rpcType=newType;};dwr.engine.setHttpMethod=function(httpMethod){if(httpMethod!="GET"&&httpMethod!="POST"){dwr.engine._handleError(null,{name:"dwr.engine.invalidHttpMethod",message:"Remoting method must be one of GET or POST"});return;}
dwr.engine._httpMethod=httpMethod;};dwr.engine.setOrdered=function(ordered){dwr.engine._ordered=ordered;};dwr.engine.setAsync=function(async){dwr.engine._async=async;};dwr.engine.setActiveReverseAjax=function(activeReverseAjax){if(activeReverseAjax){if(dwr.engine._activeReverseAjax)return;dwr.engine._activeReverseAjax=true;dwr.engine._poll();}
else{if(dwr.engine._activeReverseAjax&&dwr.engine._pollReq)dwr.engine._pollReq.abort();dwr.engine._activeReverseAjax=false;}};dwr.engine.defaultErrorHandler=function(message,ex){dwr.engine._debug("Error: "+ex.name+", "+ex.message,true);if(message==null||message=="")alert("A server error has occured.");else if(message.indexOf("0x80040111")!=-1)dwr.engine._debug(message);else alert(message);};dwr.engine.defaultWarningHandler=function(message,ex){dwr.engine._debug(message);};dwr.engine.beginBatch=function(){if(dwr.engine._batch){dwr.engine._handleError(null,{name:"dwr.engine.batchBegun",message:"Batch already begun"});return;}
dwr.engine._batch=dwr.engine._createBatch();};dwr.engine.endBatch=function(options){var batch=dwr.engine._batch;if(batch==null){dwr.engine._handleError(null,{name:"dwr.engine.batchNotBegun",message:"No batch in progress"});return;}
dwr.engine._batch=null;if(batch.map.callCount==0)return;if(options)dwr.engine._mergeBatch(batch,options);if(dwr.engine._ordered&&dwr.engine._batchesLength!=0){dwr.engine._batchQueue[dwr.engine._batchQueue.length]=batch;}
else{dwr.engine._sendData(batch);}};dwr.engine.setPollMethod=function(type){dwr.engine.setPollType(type);};dwr.engine.setMethod=function(type){dwr.engine.setRpcType(type);};dwr.engine.setVerb=function(verb){dwr.engine.setHttpMethod(verb);};dwr.engine.setPollType=function(){dwr.engine._debug("Manually setting the Poll Type is not supported");};dwr.engine._origScriptSessionId=""+JAWR.dwr_scriptSessionId+"";dwr.engine._sessionCookieName="JSESSIONID";dwr.engine._allowGetForSafariButMakeForgeryEasier="";dwr.engine._scriptTagProtection="throw 'allowScriptTagRemoting is false.';";dwr.engine._defaultPath=""+JAWR.jawr_dwr_path+"";dwr.engine._pollWithXhr="false";dwr.engine._scriptSessionId=null;dwr.engine._getScriptSessionId=function(){if(dwr.engine._scriptSessionId==null){dwr.engine._scriptSessionId=dwr.engine._origScriptSessionId+Math.floor(Math.random()*1000);}
return dwr.engine._scriptSessionId;};dwr.engine._errorHandler=dwr.engine.defaultErrorHandler;dwr.engine._warningHandler=dwr.engine.defaultWarningHandler;dwr.engine._preHook=null;dwr.engine._postHook=null;dwr.engine._batches={};dwr.engine._batchesLength=0;dwr.engine._batchQueue=[];dwr.engine._rpcType=dwr.engine.XMLHttpRequest;dwr.engine._httpMethod="POST";dwr.engine._ordered=false;dwr.engine._async=true;dwr.engine._batch=null;dwr.engine._timeout=0;dwr.engine._DOMDocument=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","Msxml2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"];dwr.engine._XMLHTTP=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];dwr.engine._activeReverseAjax=false;dwr.engine._outstandingIFrames=[];dwr.engine._pollReq=null;dwr.engine._pollCometInterval=200;dwr.engine._pollRetries=0;dwr.engine._maxPollRetries=0;dwr.engine._textHtmlHandler=null;dwr.engine._headers=null;dwr.engine._parameters=null;dwr.engine._postSeperator="\n";dwr.engine._defaultInterceptor=function(data){return data;};dwr.engine._urlRewriteHandler=dwr.engine._defaultInterceptor;dwr.engine._contentRewriteHandler=dwr.engine._defaultInterceptor;dwr.engine._replyRewriteHandler=dwr.engine._defaultInterceptor;dwr.engine._nextBatchId=0;dwr.engine._propnames=["rpcType","httpMethod","async","timeout","errorHandler","warningHandler","textHtmlHandler"];dwr.engine._partialResponseNo=0;dwr.engine._partialResponseYes=1;dwr.engine._partialResponseFlush=2;dwr.engine._unloading=false;dwr.engine._execute=function(path,scriptName,methodName,vararg_params){var singleShot=false;if(dwr.engine._batch==null){dwr.engine.beginBatch();singleShot=true;}
var batch=dwr.engine._batch;var args=[];for(var i=0;i<arguments.length-3;i++){args[i]=arguments[i+3];}
if(batch.path==null){batch.path=path;}
else{if(batch.path!=path){dwr.engine._handleError(batch,{name:"dwr.engine.multipleServlets",message:"Can't batch requests to multiple DWR Servlets."});return;}}
var callData;var lastArg=args[args.length-1];if(typeof lastArg=="function"||lastArg==null)callData={callback:args.pop()};else callData=args.pop();dwr.engine._mergeBatch(batch,callData);batch.handlers[batch.map.callCount]={exceptionHandler:callData.exceptionHandler,callback:callData.callback};var prefix="c"+batch.map.callCount+"-";batch.map[prefix+"scriptName"]=scriptName;batch.map[prefix+"methodName"]=methodName;batch.map[prefix+"id"]=batch.map.callCount;var refctx=[];for(i=0;i<args.length;i++){dwr.engine._serializeAll(batch,refctx,args[i],prefix+"param"+i);}
batch.map.callCount++;if(singleShot)dwr.engine.endBatch();};dwr.engine._poll=function(){if(!dwr.engine._activeReverseAjax)return;var batch=dwr.engine._createBatch();batch.map.id=0;batch.map.callCount=1;batch.isPoll=true;if(dwr.engine._pollWithXhr=="true"){batch.rpcType=dwr.engine.XMLHttpRequest;batch.map.partialResponse=dwr.engine._partialResponseNo;}
else{if(navigator.userAgent.indexOf("Gecko/")!=-1){batch.rpcType=dwr.engine.XMLHttpRequest;batch.map.partialResponse=dwr.engine._partialResponseYes;}
else{batch.rpcType=dwr.engine.XMLHttpRequest;batch.map.partialResponse=dwr.engine._partialResponseNo;}}
batch.httpMethod="POST";batch.async=true;batch.timeout=0;batch.path=dwr.engine._defaultPath;batch.preHooks=[];batch.postHooks=[];batch.errorHandler=dwr.engine._pollErrorHandler;batch.warningHandler=dwr.engine._pollErrorHandler;batch.handlers[0]={callback:function(pause){dwr.engine._pollRetries=0;setTimeout(dwr.engine._poll,pause);}};dwr.engine._sendData(batch);if(batch.rpcType==dwr.engine.XMLHttpRequest&&batch.map.partialResponse==dwr.engine._partialResponseYes){dwr.engine._checkCometPoll();}};dwr.engine._pollErrorHandler=function(msg,ex){dwr.engine._pollRetries++;dwr.engine._debug("Reverse Ajax poll failed (pollRetries="+dwr.engine._pollRetries+"): "+ex.name+" : "+ex.message);if(dwr.engine._pollRetries<dwr.engine._maxPollRetries){setTimeout(dwr.engine._poll,10000);}
else{dwr.engine._activeReverseAjax=false;dwr.engine._debug("Giving up.");}};dwr.engine._createBatch=function(){var batch={map:{callCount:0,page:window.location.pathname+window.location.search,httpSessionId:dwr.engine._getJSessionId(),scriptSessionId:dwr.engine._getScriptSessionId()},charsProcessed:0,paramCount:0,parameters:{},headers:{},isPoll:false,handlers:{},preHooks:[],postHooks:[],rpcType:dwr.engine._rpcType,httpMethod:dwr.engine._httpMethod,async:dwr.engine._async,timeout:dwr.engine._timeout,errorHandler:dwr.engine._errorHandler,warningHandler:dwr.engine._warningHandler,textHtmlHandler:dwr.engine._textHtmlHandler};if(dwr.engine._preHook)batch.preHooks.push(dwr.engine._preHook);if(dwr.engine._postHook)batch.postHooks.push(dwr.engine._postHook);var propname,data;if(dwr.engine._headers){for(propname in dwr.engine._headers){data=dwr.engine._headers[propname];if(typeof data!="function")batch.headers[propname]=data;}}
if(dwr.engine._parameters){for(propname in dwr.engine._parameters){data=dwr.engine._parameters[propname];if(typeof data!="function")batch.parameters[propname]=data;}}
return batch;};dwr.engine._mergeBatch=function(batch,overrides){var propname,data;for(var i=0;i<dwr.engine._propnames.length;i++){propname=dwr.engine._propnames[i];if(overrides[propname]!=null)batch[propname]=overrides[propname];}
if(overrides.preHook!=null)batch.preHooks.unshift(overrides.preHook);if(overrides.postHook!=null)batch.postHooks.push(overrides.postHook);if(overrides.headers){for(propname in overrides.headers){data=overrides.headers[propname];if(typeof data!="function")batch.headers[propname]=data;}}
if(overrides.parameters){for(propname in overrides.parameters){data=overrides.parameters[propname];if(typeof data!="function")batch.map["p-"+propname]=""+data;}}};dwr.engine._getJSessionId=function(){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=cookies[i];while(cookie.charAt(0)==' ')cookie=cookie.substring(1,cookie.length);if(cookie.indexOf(dwr.engine._sessionCookieName+"=")==0){return cookie.substring(dwr.engine._sessionCookieName.length+1,cookie.length);}}
return"";};dwr.engine._checkCometPoll=function(){for(var i=0;i<dwr.engine._outstandingIFrames.length;i++){var text="";var iframe=dwr.engine._outstandingIFrames[i];try{text=dwr.engine._getTextFromCometIFrame(iframe);}
catch(ex){dwr.engine._handleWarning(iframe.batch,ex);}
if(text!="")dwr.engine._processCometResponse(text,iframe.batch);}
if(dwr.engine._pollReq){var req=dwr.engine._pollReq;var text=req.responseText;if(text!=null)dwr.engine._processCometResponse(text,req.batch);}
if(dwr.engine._outstandingIFrames.length>0||dwr.engine._pollReq){setTimeout(dwr.engine._checkCometPoll,dwr.engine._pollCometInterval);}};dwr.engine._getTextFromCometIFrame=function(frameEle){var body=frameEle.contentWindow.document.body;if(body==null)return"";var text=body.innerHTML;if(text.indexOf("<PRE>")==0||text.indexOf("<pre>")==0){text=text.substring(5,text.length-7);}
return text;};dwr.engine._processCometResponse=function(response,batch){if(batch.charsProcessed==response.length)return;if(response.length==0){batch.charsProcessed=0;return;}
var firstStartTag=response.indexOf("//#DWR-START#",batch.charsProcessed);if(firstStartTag==-1){batch.charsProcessed=response.length;return;}
var lastEndTag=response.lastIndexOf("//#DWR-END#");if(lastEndTag==-1){return;}
if(response.charCodeAt(lastEndTag+11)==13&&response.charCodeAt(lastEndTag+12)==10){batch.charsProcessed=lastEndTag+13;}
else{batch.charsProcessed=lastEndTag+11;}
var exec=response.substring(firstStartTag+13,lastEndTag);dwr.engine._receivedBatch=batch;dwr.engine._eval(exec);dwr.engine._receivedBatch=null;};dwr.engine._sendData=function(batch){batch.map.batchId=dwr.engine._nextBatchId;dwr.engine._nextBatchId++;dwr.engine._batches[batch.map.batchId]=batch;dwr.engine._batchesLength++;batch.completed=false;for(var i=0;i<batch.preHooks.length;i++){batch.preHooks[i]();}
batch.preHooks=null;if(batch.timeout&&batch.timeout!=0){batch.timeoutId=setTimeout(function(){dwr.engine._abortRequest(batch);},batch.timeout);}
if(batch.rpcType==dwr.engine.XMLHttpRequest){if(window.XMLHttpRequest){batch.req=new XMLHttpRequest();}
else if(window.ActiveXObject&&!(navigator.userAgent.indexOf("Mac")>=0&&navigator.userAgent.indexOf("MSIE")>=0)){batch.req=dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);}}
var prop,request;if(batch.req){if(batch.async){batch.req.onreadystatechange=function(){if(typeof dwr!='undefined')dwr.engine._stateChange(batch);};}
if(batch.isPoll){dwr.engine._pollReq=batch.req;if(!(document.all&&!window.opera))batch.req.batch=batch;}
var indexSafari=navigator.userAgent.indexOf("Safari/");if(indexSafari>=0){var version=navigator.userAgent.substring(indexSafari+7);if(parseInt(version,10)<400){if(dwr.engine._allowGetForSafariButMakeForgeryEasier=="true")batch.httpMethod="GET";else dwr.engine._handleWarning(batch,{name:"dwr.engine.oldSafari",message:"Safari GET support disabled. See getahead.org/dwr/server/servlet and allowGetForSafariButMakeForgeryEasier."});}}
batch.mode=batch.isPoll?dwr.engine._ModePlainPoll:dwr.engine._ModePlainCall;request=dwr.engine._constructRequest(batch);try{batch.req.open(batch.httpMethod,request.url,batch.async);try{for(prop in batch.headers){var value=batch.headers[prop];if(typeof value=="string")batch.req.setRequestHeader(prop,value);}
if(!batch.headers["Content-Type"])batch.req.setRequestHeader("Content-Type","text/plain");}
catch(ex){dwr.engine._handleWarning(batch,ex);}
batch.req.send(request.body);if(!batch.async)dwr.engine._stateChange(batch);}
catch(ex){dwr.engine._handleError(batch,ex);}}
else if(batch.rpcType!=dwr.engine.ScriptTag){var idname=batch.isPoll?"dwr-if-poll-"+batch.map.batchId:"dwr-if-"+batch.map.batchId;batch.div=document.createElement("div");document.body.appendChild(batch.div);batch.div.innerHTML="<iframe src='javascript:void(0)' frameborder='0' style='width:0px;height:0px;border:0;' id='"+idname+"' name='"+idname+"' onload='dwr.engine._iframeLoadingComplete ("+batch.map.batchId+");'></iframe>";batch.document=document;batch.iframe=batch.document.getElementById(idname);batch.iframe.batch=batch;batch.mode=batch.isPoll?dwr.engine._ModeHtmlPoll:dwr.engine._ModeHtmlCall;if(batch.isPoll)dwr.engine._outstandingIFrames.push(batch.iframe);request=dwr.engine._constructRequest(batch);if(batch.httpMethod=="GET"){batch.iframe.setAttribute("src",request.url);}
else{batch.form=batch.document.createElement("form");batch.form.setAttribute("id","dwr-form");batch.form.setAttribute("action",request.url);batch.form.setAttribute("style","display:none;");batch.form.setAttribute("target",idname);batch.form.target=idname;batch.form.setAttribute("method",batch.httpMethod);for(prop in batch.map){var value=batch.map[prop];if(typeof value!="function"){var formInput=batch.document.createElement("input");formInput.setAttribute("type","hidden");formInput.setAttribute("name",prop);formInput.setAttribute("value",value);batch.form.appendChild(formInput);}}
batch.document.body.appendChild(batch.form);batch.form.submit();}}
else{batch.httpMethod="GET";batch.mode=batch.isPoll?dwr.engine._ModePlainPoll:dwr.engine._ModePlainCall;request=dwr.engine._constructRequest(batch);batch.script=document.createElement("script");batch.script.id="dwr-st-"+batch.map["c0-id"];batch.script.src=request.url;document.body.appendChild(batch.script);}};dwr.engine._ModePlainCall="/call/plaincall/";dwr.engine._ModeHtmlCall="/call/htmlcall/";dwr.engine._ModePlainPoll="/call/plainpoll/";dwr.engine._ModeHtmlPoll="/call/htmlpoll/";dwr.engine._constructRequest=function(batch){var request={url:batch.path+batch.mode,body:null};if(batch.isPoll==true){request.url+="ReverseAjax.dwr";}
else if(batch.map.callCount==1){request.url+=batch.map["c0-scriptName"]+"."+batch.map["c0-methodName"]+".dwr";}
else{request.url+="Multiple."+batch.map.callCount+".dwr";}
var sessionMatch=location.href.match(/jsessionid=([^?]+)/);if(sessionMatch!=null){request.url+=";jsessionid="+sessionMatch[1];}
var prop;if(batch.httpMethod=="GET"){batch.map.callCount=""+batch.map.callCount;request.url+="?";for(prop in batch.map){if(typeof batch.map[prop]!="function"){request.url+=encodeURIComponent(prop)+"="+encodeURIComponent(batch.map[prop])+"&";}}
request.url=request.url.substring(0,request.url.length-1);}
else{request.body="";if(document.all&&!window.opera){var buf=[];for(prop in batch.map){if(typeof batch.map[prop]!="function"){buf.push(prop+"="+batch.map[prop]+dwr.engine._postSeperator);}}
request.body=buf.join("");}
else{for(prop in batch.map){if(typeof batch.map[prop]!="function"){request.body+=prop+"="+batch.map[prop]+dwr.engine._postSeperator;}}}
request.body=dwr.engine._contentRewriteHandler(request.body);}
request.url=dwr.engine._urlRewriteHandler(request.url);return request;};dwr.engine._stateChange=function(batch){var toEval;if(batch.completed){dwr.engine._debug("Error: _stateChange() with batch.completed");return;}
var req=batch.req;try{if(req.readyState!=4)return;}
catch(ex){dwr.engine._handleWarning(batch,ex);dwr.engine._clearUp(batch);return;}
if(dwr.engine._unloading){dwr.engine._debug("Ignoring reply from server as page is unloading.");return;}
try{var reply=req.responseText;reply=dwr.engine._replyRewriteHandler(reply);var status=req.status;if(reply==null||reply==""){dwr.engine._handleWarning(batch,{name:"dwr.engine.missingData",message:"No data received from server"});}
else if(status!=200){dwr.engine._handleError(batch,{name:"dwr.engine.http."+status,message:req.statusText});}
else{var contentType=req.getResponseHeader("Content-Type");if(!contentType.match(/^text\/plain/)&&!contentType.match(/^text\/javascript/)){if(contentType.match(/^text\/html/)&&typeof batch.textHtmlHandler=="function"){batch.textHtmlHandler({status:status,responseText:reply,contentType:contentType});}
else{dwr.engine._handleWarning(batch,{name:"dwr.engine.invalidMimeType",message:"Invalid content type: '"+contentType+"'"});}}
else{if(batch.isPoll&&batch.map.partialResponse==dwr.engine._partialResponseYes){dwr.engine._processCometResponse(reply,batch);}
else{if(reply.search("//#DWR")==-1){dwr.engine._handleWarning(batch,{name:"dwr.engine.invalidReply",message:"Invalid reply from server"});}
else{toEval=reply;}}}}}
catch(ex){dwr.engine._handleWarning(batch,ex);}
dwr.engine._callPostHooks(batch);dwr.engine._receivedBatch=batch;if(toEval!=null)toEval=toEval.replace(dwr.engine._scriptTagProtection,"");dwr.engine._eval(toEval);dwr.engine._receivedBatch=null;dwr.engine._validateBatch(batch);if(!batch.completed)dwr.engine._clearUp(batch);};dwr.engine._validateBatch=function(batch){if(!batch.completed){for(var i=0;i<batch.map.callCount;i++){if(batch.handlers[i]!=null){dwr.engine._handleWarning(batch,{name:"dwr.engine.incompleteReply",message:"Incomplete reply from server"});break;}}}}
dwr.engine._iframeLoadingComplete=function(batchId){var batch=dwr.engine._batches[batchId];if(batch)dwr.engine._validateBatch(batch);}
dwr.engine._remoteHandleCallback=function(batchId,callId,reply){var batch=dwr.engine._batches[batchId];if(batch==null){dwr.engine._debug("Warning: batch == null in remoteHandleCallback for batchId="+batchId,true);return;}
try{var handlers=batch.handlers[callId];batch.handlers[callId]=null;if(!handlers){dwr.engine._debug("Warning: Missing handlers. callId="+callId,true);}
else if(typeof handlers.callback=="function")handlers.callback(reply);}
catch(ex){dwr.engine._handleError(batch,ex);}};dwr.engine._remoteHandleException=function(batchId,callId,ex){var batch=dwr.engine._batches[batchId];if(batch==null){dwr.engine._debug("Warning: null batch in remoteHandleException",true);return;}
var handlers=batch.handlers[callId];batch.handlers[callId]=null;if(handlers==null){dwr.engine._debug("Warning: null handlers in remoteHandleException",true);return;}
if(ex.message==undefined)ex.message="";if(typeof handlers.exceptionHandler=="function")handlers.exceptionHandler(ex.message,ex);else if(typeof batch.errorHandler=="function")batch.errorHandler(ex.message,ex);};dwr.engine._remoteHandleBatchException=function(ex,batchId){var searchBatch=(dwr.engine._receivedBatch==null&&batchId!=null);if(searchBatch){dwr.engine._receivedBatch=dwr.engine._batches[batchId];}
if(ex.message==undefined)ex.message="";dwr.engine._handleError(dwr.engine._receivedBatch,ex);if(searchBatch){dwr.engine._receivedBatch=null;dwr.engine._clearUp(dwr.engine._batches[batchId]);}};dwr.engine._remotePollCometDisabled=function(ex,batchId){dwr.engine.setActiveReverseAjax(false);var searchBatch=(dwr.engine._receivedBatch==null&&batchId!=null);if(searchBatch){dwr.engine._receivedBatch=dwr.engine._batches[batchId];}
if(ex.message==undefined)ex.message="";dwr.engine._handleError(dwr.engine._receivedBatch,ex);if(searchBatch){dwr.engine._receivedBatch=null;dwr.engine._clearUp(dwr.engine._batches[batchId]);}};dwr.engine._remoteBeginIFrameResponse=function(iframe,batchId){if(iframe!=null)dwr.engine._receivedBatch=iframe.batch;dwr.engine._callPostHooks(dwr.engine._receivedBatch);};dwr.engine._remoteEndIFrameResponse=function(batchId){dwr.engine._clearUp(dwr.engine._receivedBatch);dwr.engine._receivedBatch=null;};dwr.engine._eval=function(script){if(script==null)return null;if(script==""){dwr.engine._debug("Warning: blank script",true);return null;}
return eval(script);};dwr.engine._abortRequest=function(batch){if(batch&&!batch.completed){dwr.engine._clearUp(batch);if(batch.req)batch.req.abort();dwr.engine._handleError(batch,{name:"dwr.engine.timeout",message:"Timeout"});}};dwr.engine._callPostHooks=function(batch){if(batch.postHooks){for(var i=0;i<batch.postHooks.length;i++){batch.postHooks[i]();}
batch.postHooks=null;}};dwr.engine._clearUp=function(batch){if(!batch){dwr.engine._debug("Warning: null batch in dwr.engine._clearUp()",true);return;}
if(batch.completed){dwr.engine._debug("Warning: Double complete",true);return;}
if(batch.div)batch.div.parentNode.removeChild(batch.div);if(batch.iframe){for(var i=0;i<dwr.engine._outstandingIFrames.length;i++){if(dwr.engine._outstandingIFrames[i]==batch.iframe){dwr.engine._outstandingIFrames.splice(i,1);}}
batch.iframe.parentNode.removeChild(batch.iframe);}
if(batch.form)batch.form.parentNode.removeChild(batch.form);if(batch.req){if(batch.req==dwr.engine._pollReq)dwr.engine._pollReq=null;delete batch.req;}
if(batch.timeoutId){clearTimeout(batch.timeoutId);delete batch.timeoutId;}
if(batch.map&&(batch.map.batchId||batch.map.batchId==0)){delete dwr.engine._batches[batch.map.batchId];dwr.engine._batchesLength--;}
batch.completed=true;if(dwr.engine._batchQueue.length!=0){var sendbatch=dwr.engine._batchQueue.shift();dwr.engine._sendData(sendbatch);}};dwr.engine._unloader=function(){dwr.engine._unloading=true;dwr.engine._batchQueue.length=0;for(var batchId in dwr.engine._batches){var batch=dwr.engine._batches[batchId];if(batch&&batch.map){if(batch.req){batch.req.abort();}
dwr.engine._clearUp(batch);}}};if(window.addEventListener)window.addEventListener('unload',dwr.engine._unloader,false);else if(window.attachEvent)window.attachEvent('onunload',dwr.engine._unloader);dwr.engine._handleError=function(batch,ex){if(typeof ex=="string")ex={name:"unknown",message:ex};if(ex.message==null)ex.message="";if(ex.name==null)ex.name="unknown";if(batch&&typeof batch.errorHandler=="function")batch.errorHandler(ex.message,ex);else if(dwr.engine._errorHandler)dwr.engine._errorHandler(ex.message,ex);if(batch)dwr.engine._clearUp(batch);};dwr.engine._handleWarning=function(batch,ex){if(typeof ex=="string")ex={name:"unknown",message:ex};if(ex.message==null)ex.message="";if(ex.name==null)ex.name="unknown";if(batch&&typeof batch.warningHandler=="function")batch.warningHandler(ex.message,ex);else if(dwr.engine._warningHandler)dwr.engine._warningHandler(ex.message,ex);if(batch)dwr.engine._clearUp(batch);};dwr.engine._serializeAll=function(batch,referto,data,name){if(data==null){batch.map[name]="null:null";return;}
switch(typeof data){case"boolean":batch.map[name]="boolean:"+data;break;case"number":batch.map[name]="number:"+data;break;case"string":batch.map[name]="string:"+encodeURIComponent(data);break;case"object":var objstr=Object.prototype.toString.call(data);if(objstr=="[object String]")batch.map[name]="String:"+encodeURIComponent(data);else if(objstr=="[object Boolean]")batch.map[name]="Boolean:"+data;else if(objstr=="[object Number]")batch.map[name]="Number:"+data;else if(objstr=="[object Date]")batch.map[name]="Date:"+data.getTime();else if(objstr=="[object Array]")batch.map[name]=dwr.engine._serializeArray(batch,referto,data,name);else batch.map[name]=dwr.engine._serializeObject(batch,referto,data,name);break;case"function":break;default:dwr.engine._handleWarning(null,{name:"dwr.engine.unexpectedType",message:"Unexpected type: "+typeof data+", attempting default converter."});batch.map[name]="default:"+data;break;}};dwr.engine._lookup=function(referto,data,name){var lookup;for(var i=0;i<referto.length;i++){if(referto[i].data==data){lookup=referto[i];break;}}
if(lookup)return"reference:"+lookup.name;referto.push({data:data,name:name});return null;};dwr.engine._serializeObject=function(batch,referto,data,name){var ref=dwr.engine._lookup(referto,data,name);if(ref)return ref;if(data.nodeName&&data.nodeType){return dwr.engine._serializeXml(batch,referto,data,name);}
var reply="Object_"+dwr.engine._getObjectClassName(data)+":{";var element;for(element in data){if(typeof data[element]!="function"){batch.paramCount++;var childName="c"+dwr.engine._batch.map.callCount+"-e"+batch.paramCount;dwr.engine._serializeAll(batch,referto,data[element],childName);reply+=encodeURIComponent(element)+":reference:"+childName+", ";}}
if(reply.substring(reply.length-2)==", "){reply=reply.substring(0,reply.length-2);}
reply+="}";return reply;};dwr.engine._errorClasses={"Error":Error,"EvalError":EvalError,"RangeError":RangeError,"ReferenceError":ReferenceError,"SyntaxError":SyntaxError,"TypeError":TypeError,"URIError":URIError};dwr.engine._getObjectClassName=function(obj){if(obj&&obj.constructor&&obj.constructor.toString)
{var str=obj.constructor.toString();var regexpmatch=str.match(/function\s+(\w+)/);if(regexpmatch&&regexpmatch.length==2){return regexpmatch[1];}}
if(obj&&obj.constructor){for(var errorname in dwr.engine._errorClasses){if(obj.constructor==dwr.engine._errorClasses[errorname])return errorname;}}
if(obj){var str=Object.prototype.toString.call(obj);var regexpmatch=str.match(/\[object\s+(\w+)/);if(regexpmatch&&regexpmatch.length==2){return regexpmatch[1];}}
return"Object";};dwr.engine._serializeXml=function(batch,referto,data,name){var ref=dwr.engine._lookup(referto,data,name);if(ref)return ref;var output;if(window.XMLSerializer)output=new XMLSerializer().serializeToString(data);else if(data.toXml)output=data.toXml;else output=data.innerHTML;return"XML:"+encodeURIComponent(output);};dwr.engine._serializeArray=function(batch,referto,data,name){var ref=dwr.engine._lookup(referto,data,name);if(ref)return ref;if(document.all&&!window.opera){var buf=["Array:["];for(var i=0;i<data.length;i++){if(i!=0)buf.push(",");batch.paramCount++;var childName="c"+dwr.engine._batch.map.callCount+"-e"+batch.paramCount;dwr.engine._serializeAll(batch,referto,data[i],childName);buf.push("reference:");buf.push(childName);}
buf.push("]");reply=buf.join("");}
else{var reply="Array:[";for(var i=0;i<data.length;i++){if(i!=0)reply+=",";batch.paramCount++;var childName="c"+dwr.engine._batch.map.callCount+"-e"+batch.paramCount;dwr.engine._serializeAll(batch,referto,data[i],childName);reply+="reference:";reply+=childName;}
reply+="]";}
return reply;};dwr.engine._unserializeDocument=function(xml){var dom;if(window.DOMParser){var parser=new DOMParser();dom=parser.parseFromString(xml,"text/xml");if(!dom.documentElement||dom.documentElement.tagName=="parsererror"){var message=dom.documentElement.firstChild.data;message+="\n"+dom.documentElement.firstChild.nextSibling.firstChild.data;throw message;}
return dom;}
else if(window.ActiveXObject){dom=dwr.engine._newActiveXObject(dwr.engine._DOMDocument);dom.loadXML(xml);return dom;}
else{var div=document.createElement("div");div.innerHTML=xml;return div;}};dwr.engine._newActiveXObject=function(axarray){var returnValue;for(var i=0;i<axarray.length;i++){try{returnValue=new ActiveXObject(axarray[i]);break;}
catch(ex){}}
return returnValue;};dwr.engine._debug=function(message,stacktrace){var written=false;try{if(window.console){if(stacktrace&&window.console.trace)window.console.trace();window.console.log(message);written=true;}
else if(window.opera&&window.opera.postError){window.opera.postError(message);written=true;}}
catch(ex){}
if(!written){var debug=document.getElementById("dwr-debug");if(debug){var contents=message+"<br/>"+debug.innerHTML;if(contents.length>2048)contents=contents.substring(0,2048);debug.innerHTML=contents;}}};if(dwr==null)var dwr={};if(dwr.util==null)dwr.util={};if(DWRUtil==null)var DWRUtil=dwr.util;dwr.util._escapeHtml=true;dwr.util.setEscapeHtml=function(escapeHtml){dwr.util._escapeHtml=escapeHtml;};dwr.util._shouldEscapeHtml=function(options){if(options&&options.escapeHtml!=null){return options.escapeHtml;}
return dwr.util._escapeHtml;};dwr.util.escapeHtml=function(original){return original.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');};dwr.util.unescapeHtml=function(original){return original.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');};dwr.util.replaceXmlCharacters=function(original){original=original.replace("&","+");original=original.replace("<","\u2039");original=original.replace(">","\u203A");original=original.replace("\'","\u2018");original=original.replace("\"","\u201C");return original;};dwr.util.containsXssRiskyCharacters=function(original){return(original.indexOf('&')!=-1||original.indexOf('<')!=-1||original.indexOf('>')!=-1||original.indexOf('\'')!=-1||original.indexOf('\"')!=-1);};dwr.util.onReturn=function(event,action){if(!event)event=window.event;if(event&&event.keyCode&&event.keyCode==13)action();};dwr.util.selectRange=function(ele,start,end){ele=dwr.util._getElementById(ele,"selectRange()");if(ele==null)return;if(ele.setSelectionRange){ele.setSelectionRange(start,end);}
else if(ele.createTextRange){var range=ele.createTextRange();range.moveStart("character",start);range.moveEnd("character",end-ele.value.length);range.select();}
ele.focus();};if(document.getElementById){dwr.util.byId=function(){var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string'){element=document.getElementById(element);}
if(arguments.length==1){return element;}
elements.push(element);}
return elements;};}
else if(document.all){dwr.util.byId=function(){var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string'){element=document.all[element];}
if(arguments.length==1){return element;}
elements.push(element);}
return elements;};}
if(window['$']==null){window['$']=dwr.util.byId;}
dwr.util.toDescriptiveString=function(data,showLevels,options){if(showLevels===undefined)showLevels=1;var opt={};if(dwr.util._isObject(options))opt=options;var defaultoptions={escapeHtml:false,baseIndent:"",childIndent:"\u00A0\u00A0",lineTerminator:"\n",oneLineMaxItems:5,shortStringMaxLength:13,propertyNameMaxLength:30};for(var p in defaultoptions){if(!(p in opt)){opt[p]=defaultoptions[p];}}
var skipDomProperties={document:true,ownerDocument:true,all:true,parentElement:true,parentNode:true,offsetParent:true,children:true,firstChild:true,lastChild:true,previousSibling:true,nextSibling:true,innerHTML:true,outerHTML:true,innerText:true,outerText:true,textContent:true,attributes:true,style:true,currentStyle:true,runtimeStyle:true,parentTextEdit:true};function recursive(data,showLevels,indentDepth,options){var reply="";try{if(typeof data=="string"){var str=data;if(showLevels==0&&str.length>options.shortStringMaxLength)
str=str.substring(0,options.shortStringMaxLength-3)+"...";if(options.escapeHtml){var lines=str.split("\n");for(var i=0;i<lines.length;i++)lines[i]=dwr.util.escapeHtml(lines[i]);str=lines.join("\n");}
if(showLevels==0){str=str.replace(/\n|\r|\t/g,function(ch){switch(ch){case"\n":return"\\n";case"\r":return"";case"\t":return"\\t";}});}
else{str=str.replace(/\n|\r|\t/g,function(ch){switch(ch){case"\n":return options.lineTerminator+indent(indentDepth+1,options);case"\r":return"";case"\t":return"\\t";}});}
reply='"'+str+'"';}
else if(typeof data=="function"){reply="function";}
else if(dwr.util._isArray(data)){if(showLevels==0){if(data.length>0)
reply="[...]";else
reply="[]";}
else{var strarr=[];strarr.push("[");var count=0;for(var i=0;i<data.length;i++){if(!(i in data))continue;var itemvalue=data[i];if(count>0)strarr.push(", ");if(showLevels==1){if(count==options.oneLineMaxItems){strarr.push("...");break;}}
else{strarr.push(options.lineTerminator+indent(indentDepth+1,options));}
if(i!=count){strarr.push(i);strarr.push(":");}
strarr.push(recursive(itemvalue,showLevels-1,indentDepth+1,options));count++;}
if(showLevels>1)strarr.push(options.lineTerminator+indent(indentDepth,options));strarr.push("]");reply=strarr.join("");}}
else if(dwr.util._isObject(data)&&!dwr.util._isDate(data)){if(showLevels==0){reply=dwr.util._detailedTypeOf(data);}
else{var strarr=[];if(dwr.util._detailedTypeOf(data)!="Object"){strarr.push(dwr.util._detailedTypeOf(data));if(typeof data.valueOf()!="object"){strarr.push(":");strarr.push(recursive(data.valueOf(),1,indentDepth,options));}
strarr.push(" ");}
strarr.push("{");var isDomObject=dwr.util._isHTMLElement(data);var count=0;for(var prop in data){var propvalue=data[prop];if(isDomObject){if(!propvalue)continue;if(typeof propvalue=="function")continue;if(skipDomProperties[prop])continue;if(prop.toUpperCase()==prop)continue;}
if(count>0)strarr.push(", ");if(showLevels==1){if(count==options.oneLineMaxItems){strarr.push("...");break;}}
else{strarr.push(options.lineTerminator+indent(indentDepth+1,options));}
strarr.push(prop.length>options.propertyNameMaxLength?prop.substring(0,options.propertyNameMaxLength-3)+"...":prop);strarr.push(":");strarr.push(recursive(propvalue,showLevels-1,indentDepth+1,options));count++;}
if(showLevels>1&&count>0)strarr.push(options.lineTerminator+indent(indentDepth,options));strarr.push("}");reply=strarr.join("");}}
else{reply=""+data;}
return reply;}
catch(err){return(err.message?err.message:""+err);}}
function indent(count,options){var strarr=[];strarr.push(options.baseIndent);for(var i=0;i<count;i++){strarr.push(options.childIndent);}
return strarr.join("");};return recursive(data,showLevels,0,opt);};dwr.util.useLoadingMessage=function(message){var loadingMessage;if(message)loadingMessage=message;else loadingMessage="Loading";dwr.engine.setPreHook(function(){var disabledZone=dwr.util.byId('disabledZone');if(!disabledZone){disabledZone=document.createElement('div');disabledZone.setAttribute('id','disabledZone');disabledZone.style.position="absolute";disabledZone.style.zIndex="1000";disabledZone.style.left="0px";disabledZone.style.top="0px";disabledZone.style.width="100%";disabledZone.style.height="100%";document.body.appendChild(disabledZone);var messageZone=document.createElement('div');messageZone.setAttribute('id','messageZone');messageZone.style.position="absolute";messageZone.style.top="0px";messageZone.style.right="0px";messageZone.style.background="red";messageZone.style.color="white";messageZone.style.fontFamily="Arial,Helvetica,sans-serif";messageZone.style.padding="4px";disabledZone.appendChild(messageZone);var text=document.createTextNode(loadingMessage);messageZone.appendChild(text);dwr.util._disabledZoneUseCount=1;}
else{dwr.util.byId('messageZone').innerHTML=loadingMessage;disabledZone.style.visibility='visible';dwr.util._disabledZoneUseCount++;}});dwr.engine.setPostHook(function(){dwr.util._disabledZoneUseCount--;if(dwr.util._disabledZoneUseCount==0){dwr.util.byId('disabledZone').style.visibility='hidden';}});};dwr.util.setHighlightHandler=function(handler){dwr.util._highlightHandler=handler;};dwr.util.yellowFadeHighlightHandler=function(ele){dwr.util._yellowFadeProcess(ele,0);};dwr.util._yellowFadeSteps=["d0","b0","a0","90","98","a0","a8","b0","b8","c0","c8","d0","d8","e0","e8","f0","f8"];dwr.util._yellowFadeProcess=function(ele,colorIndex){ele=dwr.util.byId(ele);if(colorIndex<dwr.util._yellowFadeSteps.length){ele.style.backgroundColor="#ffff"+dwr.util._yellowFadeSteps[colorIndex];setTimeout("dwr.util._yellowFadeProcess('"+ele.id+"',"+(colorIndex+1)+")",200);}
else{ele.style.backgroundColor="transparent";}};dwr.util.borderFadeHighlightHandler=function(ele){ele.style.borderWidth="2px";ele.style.borderStyle="solid";dwr.util._borderFadeProcess(ele,0);};dwr.util._borderFadeSteps=["d0","b0","a0","90","98","a0","a8","b0","b8","c0","c8","d0","d8","e0","e8","f0","f8"];dwr.util._borderFadeProcess=function(ele,colorIndex){ele=dwr.util.byId(ele);if(colorIndex<dwr.util._borderFadeSteps.length){ele.style.borderColor="#ff"+dwr.util._borderFadeSteps[colorIndex]+dwr.util._borderFadeSteps[colorIndex];setTimeout("dwr.util._borderFadeProcess('"+ele.id+"',"+(colorIndex+1)+")",200);}
else{ele.style.backgroundColor="transparent";}};dwr.util.focusHighlightHandler=function(ele){try{ele.focus();}
catch(ex){}};dwr.util._highlightHandler=null;dwr.util.highlight=function(ele,options){if(options&&options.highlightHandler){options.highlightHandler(dwr.util.byId(ele));}
else if(dwr.util._highlightHandler!=null){dwr.util._highlightHandler(dwr.util.byId(ele));}};dwr.util.setValue=function(ele,val,options){if(val==null)val="";if(options==null)options={};var orig=ele;if(typeof ele=="string"){ele=dwr.util.byId(ele);if(ele&&ele.id!=orig)ele=null;}
var nodes=null;if(ele==null){nodes=document.getElementsByName(orig);if(nodes.length>=1)ele=nodes.item(0);}
if(ele==null){dwr.util._debug("setValue() can't find an element with id/name: "+orig+".");return;}
dwr.util.highlight(ele,options);if(dwr.util._isHTMLElement(ele,"select")){if(ele.type=="select-multiple"&&dwr.util._isArray(val))dwr.util._selectListItems(ele,val);else dwr.util._selectListItem(ele,val);return;}
if(dwr.util._isHTMLElement(ele,"input")){if(ele.type=="radio"||ele.type=="checkbox"){if(nodes&&nodes.length>=1){for(var i=0;i<nodes.length;i++){var node=nodes.item(i);if(node.type!=ele.type)continue;if(dwr.util._isArray(val)){node.checked=false;for(var j=0;j<val.length;j++)
if(val[j]==node.value)node.checked=true;}
else{node.checked=(node.value==val);}}}
else{ele.checked=(val==true);}}
else ele.value=val;return;}
if(dwr.util._isHTMLElement(ele,"textarea")){ele.value=val;return;}
if(val.nodeType){if(val.nodeType==9)val=val.documentElement;val=dwr.util._importNode(ele.ownerDocument,val,true);ele.appendChild(val);return;}
if(dwr.util._shouldEscapeHtml(options)){if("textContent"in ele)ele.textContent=val.toString();else if("innerText"in ele)ele.innerText=val.toString();else ele.innerHTML=dwr.util.escapeHtml(val.toString());}
else{ele.innerHTML=val;}};dwr.util._selectListItems=function(ele,val){var found=false;var i;var j;for(i=0;i<ele.options.length;i++){ele.options[i].selected=false;for(j=0;j<val.length;j++){if(ele.options[i].value==val[j]){ele.options[i].selected=true;}}}
if(found)return;for(i=0;i<ele.options.length;i++){for(j=0;j<val.length;j++){if(ele.options[i].text==val[j]){ele.options[i].selected=true;}}}};dwr.util._selectListItem=function(ele,val){var found=false;var i;for(i=0;i<ele.options.length;i++){if(ele.options[i].value==val){ele.options[i].selected=true;found=true;}
else{ele.options[i].selected=false;}}
if(found)return;for(i=0;i<ele.options.length;i++){ele.options[i].selected=(ele.options[i].text==val);}};dwr.util.getValue=function(ele,options){if(options==null)options={};var orig=ele;if(typeof ele=="string"){ele=dwr.util.byId(ele);if(ele&&ele.id!=orig)ele=null;}
var nodes=null;if(ele==null){nodes=document.getElementsByName(orig);if(nodes.length>=1)ele=nodes.item(0);}
if(ele==null){dwr.util._debug("getValue() can't find an element with id/name: "+orig+".");return"";}
if(dwr.util._isHTMLElement(ele,"select")){if(ele.type=="select-multiple"){var reply=new Array();for(var i=0;i<ele.options.length;i++){var item=ele.options[i];if(item.selected){var valueAttr=item.getAttributeNode("value");if(valueAttr&&valueAttr.specified){reply.push(item.value);}
else{reply.push(item.text);}}}
return reply;}
else{var sel=ele.selectedIndex;if(sel!=-1){var item=ele.options[sel];var valueAttr=item.getAttributeNode("value");if(valueAttr&&valueAttr.specified){return item.value;}
return item.text;}
else{return"";}}}
if(dwr.util._isHTMLElement(ele,"input")){if(ele.type=="radio"){if(nodes&&nodes.length>=1){for(var i=0;i<nodes.length;i++){var node=nodes.item(i);if(node.type==ele.type){if(node.checked)return node.value;}}}
return ele.checked;}
if(ele.type=="checkbox"){if(nodes&&nodes.length>=1){var reply=[];for(var i=0;i<nodes.length;i++){var node=nodes.item(i);if(node.type==ele.type){if(node.checked)reply.push(node.value);}}
return reply;}
return ele.checked;}
return ele.value;}
if(dwr.util._isHTMLElement(ele,"textarea")){return ele.value;}
if(dwr.util._shouldEscapeHtml(options)){if(ele.textContent)return ele.textContent;else if(ele.innerText)return ele.innerText;}
return ele.innerHTML;};dwr.util.getText=function(ele){ele=dwr.util._getElementById(ele,"getText()");if(ele==null)return null;if(!dwr.util._isHTMLElement(ele,"select")){dwr.util._debug("getText() can only be used with select elements. Attempt to use: "+dwr.util._detailedTypeOf(ele)+" from  id: "+orig+".");return"";}
var sel=ele.selectedIndex;if(sel!=-1){return ele.options[sel].text;}
else{return"";}};dwr.util.setValues=function(data,options){var prefix="";var depth=100;if(options&&options.prefix)prefix=options.prefix;if(options&&options.idPrefix)prefix=options.idPrefix;if(options&&"depth"in options)depth=options.depth;dwr.util._setValuesRecursive(data,prefix,depth,options);};dwr.util._setValuesRecursive=function(data,idpath,depth,options){if(depth==0)return;if(dwr.util._isArray(data)&&data.length>0&&dwr.util._isObject(data[0])){for(var i=0;i<data.length;i++){dwr.util._setValuesRecursive(data[i],idpath+"["+i+"]",depth-1,options);}}
else if(dwr.util._isObject(data)&&!dwr.util._isArray(data)){for(var prop in data){var subidpath=idpath?idpath+"."+prop:prop;if(dwr.util._isObject(data[prop])&&!dwr.util._isArray(data[prop])&&!dwr.util._isDate(data[prop])||dwr.util._isArray(data[prop])&&data[prop].length>0&&dwr.util._isObject(data[prop][0])){dwr.util._setValuesRecursive(data[prop],subidpath,depth-1,options);}
else if(typeof data[prop]=="function"){}
else{if(dwr.util.byId(subidpath)!=null||document.getElementsByName(subidpath).length>=1){dwr.util.setValue(subidpath,data[prop],options);}}}}};dwr.util.getValues=function(data,options){if(typeof data=="string"||dwr.util._isHTMLElement(data)){return dwr.util.getFormValues(data);}
else{var prefix="";var depth=100;if(options!=null&&options.prefix)prefix=options.prefix;if(options!=null&&options.idPrefix)prefix=options.idPrefix;if(options!=null&&"depth"in options)depth=options.depth;dwr.util._getValuesRecursive(data,prefix,depth,options);return data;}};dwr.util.getFormValues=function(eleOrNameOrId){var ele=null;if(typeof eleOrNameOrId=="string"){ele=document.forms[eleOrNameOrId];if(ele==null)ele=dwr.util.byId(eleOrNameOrId);}
else if(dwr.util._isHTMLElement(eleOrNameOrId)){ele=eleOrNameOrId;}
if(ele!=null){if(ele.elements==null){alert("getFormValues() requires an object or reference to a form element.");return null;}
var reply={};var name;var value;for(var i=0;i<ele.elements.length;i++){if(ele[i].type in{button:0,submit:0,reset:0,image:0,file:0})continue;if(ele[i].name){name=ele[i].name;value=dwr.util.getValue(name);}
else{if(ele[i].id)name=ele[i].id;else name="element"+i;value=dwr.util.getValue(ele[i]);}
reply[name]=value;}
return reply;}};dwr.util._getValuesRecursive=function(data,idpath,depth,options){if(depth==0)return;if(dwr.util._isArray(data)&&data.length>0&&dwr.util._isObject(data[0])){for(var i=0;i<data.length;i++){dwr.util._getValuesRecursive(data[i],idpath+"["+i+"]",depth-1,options);}}
else if(dwr.util._isObject(data)&&!dwr.util._isArray(data)){for(var prop in data){var subidpath=idpath?idpath+"."+prop:prop;if(dwr.util._isObject(data[prop])&&!dwr.util._isArray(data[prop])||dwr.util._isArray(data[prop])&&data[prop].length>0&&dwr.util._isObject(data[prop][0])){dwr.util._getValuesRecursive(data[prop],subidpath,depth-1,options);}
else if(typeof data[prop]=="function"){}
else{if(dwr.util.byId(subidpath)!=null||document.getElementsByName(subidpath).length>=1){data[prop]=dwr.util.getValue(subidpath);}}}}};dwr.util.addOptions=function(ele,data){ele=dwr.util._getElementById(ele,"addOptions()");if(ele==null)return;var useOptions=dwr.util._isHTMLElement(ele,"select");var useLi=dwr.util._isHTMLElement(ele,["ul","ol"]);if(!useOptions&&!useLi){dwr.util._debug("addOptions() can only be used with select/ul/ol elements. Attempt to use: "+dwr.util._detailedTypeOf(ele));return;}
if(data==null)return;var argcount=arguments.length;var options={};var lastarg=arguments[argcount-1];if(argcount>2&&dwr.util._isObject(lastarg)){options=lastarg;argcount--;}
var arg3=null;if(argcount>=3)arg3=arguments[2];var arg4=null;if(argcount>=4)arg4=arguments[3];if(!options.optionCreator&&useOptions)options.optionCreator=dwr.util._defaultOptionCreator;if(!options.optionCreator&&useLi)options.optionCreator=dwr.util._defaultListItemCreator;options.document=ele.ownerDocument;var text,value,li;if(dwr.util._isArray(data)){for(var i=0;i<data.length;i++){options.data=data[i];options.text=null;options.value=null;if(useOptions){if(arg3!=null){if(arg4!=null){options.text=dwr.util._getValueFrom(data[i],arg4);options.value=dwr.util._getValueFrom(data[i],arg3);}
else options.text=options.value=dwr.util._getValueFrom(data[i],arg3);}
else options.text=options.value=dwr.util._getValueFrom(data[i]);if(options.text!=null||options.value){var opt=options.optionCreator(options);opt.text=options.text;opt.value=options.value;ele.options[ele.options.length]=opt;}}
else{options.value=dwr.util._getValueFrom(data[i],arg3);if(options.value!=null){li=options.optionCreator(options);if(dwr.util._shouldEscapeHtml(options)){options.value=dwr.util.escapeHtml(options.value);}
li.innerHTML=options.value;ele.appendChild(li);}}}}
else if(arg4!=null){if(!useOptions){alert("dwr.util.addOptions can only create select lists from objects.");return;}
for(var prop in data){options.data=data[prop];options.value=dwr.util._getValueFrom(data[prop],arg3);options.text=dwr.util._getValueFrom(data[prop],arg4);if(options.text!=null||options.value){var opt=options.optionCreator(options);opt.text=options.text;opt.value=options.value;ele.options[ele.options.length]=opt;}}}
else{if(!useOptions){dwr.util._debug("dwr.util.addOptions can only create select lists from objects.");return;}
for(var prop in data){if(typeof data[prop]=="function")continue;options.data=data[prop];if(!arg3){options.value=prop;options.text=data[prop];}
else{options.value=data[prop];options.text=prop;}
if(options.text!=null||options.value){var opt=options.optionCreator(options);opt.text=options.text;opt.value=options.value;ele.options[ele.options.length]=opt;}}}
dwr.util.highlight(ele,options);};dwr.util._getValueFrom=function(data,method){if(method==null)return data;else if(typeof method=='function')return method(data);else return data[method];};dwr.util._defaultOptionCreator=function(options){return options.document.createElement("option");};dwr.util._defaultListItemCreator=function(options){return options.document.createElement("li");};dwr.util.removeAllOptions=function(ele){ele=dwr.util._getElementById(ele,"removeAllOptions()");if(ele==null)return;var useOptions=dwr.util._isHTMLElement(ele,"select");var useLi=dwr.util._isHTMLElement(ele,["ul","ol"]);if(!useOptions&&!useLi){dwr.util._debug("removeAllOptions() can only be used with select, ol and ul elements. Attempt to use: "+dwr.util._detailedTypeOf(ele));return;}
if(useOptions){ele.options.length=0;}
else{while(ele.childNodes.length>0){ele.removeChild(ele.firstChild);}}};dwr.util.addRows=function(ele,data,cellFuncs,options){ele=dwr.util._getElementById(ele,"addRows()");if(ele==null)return;if(!dwr.util._isHTMLElement(ele,["table","tbody","thead","tfoot"])){dwr.util._debug("addRows() can only be used with table, tbody, thead and tfoot elements. Attempt to use: "+dwr.util._detailedTypeOf(ele));return;}
if(!options)options={};if(!options.rowCreator)options.rowCreator=dwr.util._defaultRowCreator;if(!options.cellCreator)options.cellCreator=dwr.util._defaultCellCreator;options.document=ele.ownerDocument;var tr,rowNum;if(dwr.util._isArray(data)){for(rowNum=0;rowNum<data.length;rowNum++){options.rowData=data[rowNum];options.rowIndex=rowNum;options.rowNum=rowNum;options.data=null;options.cellNum=-1;tr=dwr.util._addRowInner(cellFuncs,options);if(tr!=null)ele.appendChild(tr);}}
else if(typeof data=="object"){rowNum=0;for(var rowIndex in data){options.rowData=data[rowIndex];options.rowIndex=rowIndex;options.rowNum=rowNum;options.data=null;options.cellNum=-1;tr=dwr.util._addRowInner(cellFuncs,options);if(tr!=null)ele.appendChild(tr);rowNum++;}}
dwr.util.highlight(ele,options);};dwr.util._addRowInner=function(cellFuncs,options){var tr=options.rowCreator(options);if(tr==null)return null;for(var cellNum=0;cellNum<cellFuncs.length;cellNum++){var func=cellFuncs[cellNum];if(typeof func=='function')options.data=func(options.rowData,options);else options.data=func||"";options.cellNum=cellNum;var td=options.cellCreator(options);if(td!=null){if(options.data!=null){if(dwr.util._isHTMLElement(options.data))td.appendChild(options.data);else{if(dwr.util._shouldEscapeHtml(options)&&typeof(options.data)=="string"){td.innerHTML=dwr.util.escapeHtml(options.data);}
else{td.innerHTML=options.data;}}}
tr.appendChild(td);}}
return tr;};dwr.util._defaultRowCreator=function(options){return options.document.createElement("tr");};dwr.util._defaultCellCreator=function(options){return options.document.createElement("td");};dwr.util.removeAllRows=function(ele,options){ele=dwr.util._getElementById(ele,"removeAllRows()");if(ele==null)return;if(!options)options={};if(!options.filter)options.filter=function(){return true;};if(!dwr.util._isHTMLElement(ele,["table","tbody","thead","tfoot"])){dwr.util._debug("removeAllRows() can only be used with table, tbody, thead and tfoot elements. Attempt to use: "+dwr.util._detailedTypeOf(ele));return;}
var child=ele.firstChild;var next;while(child!=null){next=child.nextSibling;if(options.filter(child)){ele.removeChild(child);}
child=next;}};dwr.util.setClassName=function(ele,className){ele=dwr.util._getElementById(ele,"setClassName()");if(ele==null)return;ele.className=className;};dwr.util.addClassName=function(ele,className){ele=dwr.util._getElementById(ele,"addClassName()");if(ele==null)return;ele.className+=" "+className;};dwr.util.removeClassName=function(ele,className){ele=dwr.util._getElementById(ele,"removeClassName()");if(ele==null)return;var regex=new RegExp("(^|\\s)"+className+"(\\s|$)",'g');ele.className=ele.className.replace(regex,'');};dwr.util.toggleClassName=function(ele,className){ele=dwr.util._getElementById(ele,"toggleClassName()");if(ele==null)return;var regex=new RegExp("(^|\\s)"+className+"(\\s|$)");if(regex.test(ele.className)){ele.className=ele.className.replace(regex,'');}
else{ele.className+=" "+className;}};dwr.util.cloneNode=function(ele,options){ele=dwr.util._getElementById(ele,"cloneNode()");if(ele==null)return null;if(options==null)options={};var clone=ele.cloneNode(true);if(options.idPrefix||options.idSuffix){dwr.util._updateIds(clone,options);}
else{dwr.util._removeIds(clone);}
ele.parentNode.insertBefore(clone,ele);return clone;};dwr.util._updateIds=function(ele,options){if(options==null)options={};if(ele.id){ele.setAttribute("id",(options.idPrefix||"")+ele.id+(options.idSuffix||""));}
var children=ele.childNodes;for(var i=0;i<children.length;i++){var child=children.item(i);if(child.nodeType==1){dwr.util._updateIds(child,options);}}};dwr.util._removeIds=function(ele){if(ele.id)ele.removeAttribute("id");var children=ele.childNodes;for(var i=0;i<children.length;i++){var child=children.item(i);if(child.nodeType==1){dwr.util._removeIds(child);}}};dwr.util.cloneNodeForValues=function(templateEle,data,options){templateEle=dwr.util._getElementById(templateEle,"cloneNodeForValues()");if(templateEle==null)return null;if(options==null)options={};var idpath;if(options.idPrefix!=null)
idpath=options.idPrefix;else
idpath=templateEle.id||"";return dwr.util._cloneNodeForValuesRecursive(templateEle,data,idpath,options);};dwr.util._cloneNodeForValuesRecursive=function(templateEle,data,idpath,options){if(dwr.util._isArray(data)){var clones=[];for(var i=0;i<data.length;i++){var item=data[i];var clone=dwr.util._cloneNodeForValuesRecursive(templateEle,item,idpath+"["+i+"]",options);clones.push(clone);}
return clones;}
else
if(dwr.util._isObject(data)&&!dwr.util._isArray(data)){var clone=templateEle.cloneNode(true);if(options.updateCloneStyle&&clone.style){for(var propname in options.updateCloneStyle){clone.style[propname]=options.updateCloneStyle[propname];}}
dwr.util._replaceIds(clone,templateEle.id,idpath);templateEle.parentNode.insertBefore(clone,templateEle);dwr.util._cloneSubArrays(data,idpath,options);return clone;}
return null;};dwr.util._replaceIds=function(ele,oldidpath,newidpath){if(ele.id){var newId=null;if(ele.id==oldidpath){newId=newidpath;}
else if(ele.id.length>oldidpath.length){if(ele.id.substr(0,oldidpath.length)==oldidpath){var trailingChar=ele.id.charAt(oldidpath.length);if(trailingChar=="."||trailingChar=="["){newId=newidpath+ele.id.substr(oldidpath.length);}}}
if(newId){ele.setAttribute("id",newId);}
else{ele.removeAttribute("id");}}
var children=ele.childNodes;for(var i=0;i<children.length;i++){var child=children.item(i);if(child.nodeType==1){dwr.util._replaceIds(child,oldidpath,newidpath);}}};dwr.util._cloneSubArrays=function(data,idpath,options){for(prop in data){var value=data[prop];if(dwr.util._isArray(value)){if(value.length>0&&dwr.util._isObject(value[0])){var subTemplateId=idpath+"."+prop;var subTemplateEle=dwr.util.byId(subTemplateId);if(subTemplateEle!=null){dwr.util._cloneNodeForValuesRecursive(subTemplateEle,value,subTemplateId,options);}}}
else if(dwr.util._isObject(value)){dwr.util._cloneSubArrays(value,idpath+"."+prop,options);}}};dwr.util._getElementById=function(ele,source){var orig=ele;ele=dwr.util.byId(ele);if(ele==null){dwr.util._debug(source+" can't find an element with id: "+orig+".");}
return ele;};dwr.util._isHTMLElement=function(ele,nodeName){if(ele==null||typeof ele!="object"||ele.nodeName==null){return false;}
if(nodeName!=null){var test=ele.nodeName.toLowerCase();if(typeof nodeName=="string"){return test==nodeName.toLowerCase();}
if(dwr.util._isArray(nodeName)){var match=false;for(var i=0;i<nodeName.length&&!match;i++){if(test==nodeName[i].toLowerCase()){match=true;}}
return match;}
dwr.util._debug("dwr.util._isHTMLElement was passed test node name that is neither a string or array of strings");return false;}
return true;};dwr.util._detailedTypeOf=function(x){var reply=typeof x;if(reply=="object"){reply=Object.prototype.toString.apply(x);reply=reply.substring(8,reply.length-1);}
return reply;};dwr.util._isObject=function(data){return(data&&typeof data=="object");};dwr.util._isArray=function(data){return(data&&data.join);};dwr.util._isDate=function(data){return(data&&data.toUTCString)?true:false;};dwr.util._importNode=function(doc,importedNode,deep){var newNode;if(importedNode.nodeType==1){newNode=doc.createElement(importedNode.nodeName);for(var i=0;i<importedNode.attributes.length;i++){var attr=importedNode.attributes[i];if(attr.nodeValue!=null&&attr.nodeValue!=''){newNode.setAttribute(attr.name,attr.nodeValue);}}
if(importedNode.style!=null){newNode.style.cssText=importedNode.style.cssText;}}
else if(importedNode.nodeType==3){newNode=doc.createTextNode(importedNode.nodeValue);}
if(deep&&importedNode.hasChildNodes()){for(i=0;i<importedNode.childNodes.length;i++){newNode.appendChild(dwr.util._importNode(doc,importedNode.childNodes[i],true));}}
return newNode;};dwr.util._debug=function(message,stacktrace){var written=false;try{if(window.console){if(stacktrace&&window.console.trace)window.console.trace();window.console.log(message);written=true;}
else if(window.opera&&window.opera.postError){window.opera.postError(message);written=true;}}
catch(ex){}
if(!written){var debug=document.getElementById("dwr-debug");if(debug){var contents=message+"<br/>"+debug.innerHTML;if(contents.length>2048)contents=contents.substring(0,2048);debug.innerHTML=contents;}}};if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(ZoneManager==null)var ZoneManager={};ZoneManager._path=''+JAWR.jawr_dwr_path+'';ZoneManager.getCityById=function(p0,callback){dwr.engine._execute(ZoneManager._path,'ZoneManager','getCityById',p0,callback);}
ZoneManager.getBlocksByDistrict=function(p0,callback){dwr.engine._execute(ZoneManager._path,'ZoneManager','getBlocksByDistrict',p0,callback);}
ZoneManager.getCitiesByProvince=function(p0,callback){dwr.engine._execute(ZoneManager._path,'ZoneManager','getCitiesByProvince',p0,callback);}
ZoneManager.getDistrictsByCity=function(p0,callback){dwr.engine._execute(ZoneManager._path,'ZoneManager','getDistrictsByCity',p0,callback);}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(PropertyList==null)var PropertyList={};PropertyList._path=''+JAWR.jawr_dwr_path+'';PropertyList.getPropertyByIds=function(p0,callback){dwr.engine._execute(PropertyList._path,'PropertyList','getPropertyByIds',p0,callback);}
PropertyList.getNextProperty=function(callback){dwr.engine._execute(PropertyList._path,'PropertyList','getNextProperty',false,callback);}
PropertyList.getPreviousProperty=function(callback){dwr.engine._execute(PropertyList._path,'PropertyList','getPreviousProperty',false,callback);}
PropertyList.getAgentSpotlight=function(p0,p1,p2,p3,p4,p5,callback){dwr.engine._execute(PropertyList._path,'PropertyList','getAgentSpotlight',p0,p1,p2,p3,p4,p5,false,false,callback);}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(UserController==null)var UserController={};UserController._path=''+JAWR.jawr_dwr_path+'';UserController.getAllDistrictsByCityId=function(p0,callback){dwr.engine._execute(UserController._path,'UserController','getAllDistrictsByCityId',p0,callback);}
UserController.insertFriendDirectly=function(p0,callback){dwr.engine._execute(UserController._path,'UserController','insertFriendDirectly',p0,false,callback);}
UserController.updateRealname=function(p0,p1,callback){dwr.engine._execute(UserController._path,'UserController','updateRealname',p0,p1,callback);}
UserController.updateCompany=function(p0,p1,callback){dwr.engine._execute(UserController._path,'UserController','updateCompany',p0,p1,callback);}
UserController.findSimilarUsersByName=function(p0,p1,p2,callback){dwr.engine._execute(UserController._path,'UserController','findSimilarUsersByName',p0,p1,p2,callback);}
UserController.updateUserState=function(p0,callback){dwr.engine._execute(UserController._path,'UserController','updateUserState',p0,callback);}
UserController.updateUserCondition=function(p0,p1,p2,callback){dwr.engine._execute(UserController._path,'UserController','updateUserCondition',p0,p1,p2,callback);}
UserController.removeFriendDirectly=function(p0,callback){dwr.engine._execute(UserController._path,'UserController','removeFriendDirectly',p0,callback);}
UserController.getAllBlocksByDistrcitId=function(p0,callback){dwr.engine._execute(UserController._path,'UserController','getAllBlocksByDistrcitId',p0,callback);}
UserController.getMSNContactEmails=function(p0,p1,callback){dwr.engine._execute(UserController._path,'UserController','getMSNContactEmails',p0,p1,callback);}
UserController.userSaveSubdis=function(p0,callback){dwr.engine._execute(UserController._path,'UserController','userSaveSubdis',p0,callback);}
UserController.userSaveProperty=function(p0,callback){dwr.engine._execute(UserController._path,'UserController','userSaveProperty',p0,callback);}
UserController.calculateTotalOfAllUnregisteredMails=function(p0,p1,callback){dwr.engine._execute(UserController._path,'UserController','calculateTotalOfAllUnregisteredMails',p0,p1,callback);}
UserController.addReply=function(p0,p1,callback){dwr.engine._execute(UserController._path,'UserController','addReply',p0,p1,callback);}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(ValidationUtils==null)var ValidationUtils={};ValidationUtils._path=''+JAWR.jawr_dwr_path+'';ValidationUtils.validateCaptcha=function(p0,callback){dwr.engine._execute(ValidationUtils._path,'ValidationUtils','validateCaptcha',p0,callback);}
ValidationUtils.isUniqueUsername=function(p0,callback){dwr.engine._execute(ValidationUtils._path,'ValidationUtils','isUniqueUsername',p0,callback);}
ValidationUtils.isUniqueNickname=function(p0,callback){dwr.engine._execute(ValidationUtils._path,'ValidationUtils','isUniqueNickname',p0,callback);}
ValidationUtils.isUniqueProperty=function(p0,p1,p2,p3,p4,callback){dwr.engine._execute(ValidationUtils._path,'ValidationUtils','isUniqueProperty',p0,p1,p2,p3,p4,callback);}
ValidationUtils.isUniquePropertyLink=function(p0,p1,callback){dwr.engine._execute(ValidationUtils._path,'ValidationUtils','isUniquePropertyLink',p0,p1,callback);}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(ProductController==null)var ProductController={};ProductController._path=''+JAWR.jawr_dwr_path+'';ProductController.addProductTendency=function(p0,callback){dwr.engine._execute(ProductController._path,'ProductController','addProductTendency',p0,callback);}
ProductController.supportThread=function(p0,callback){dwr.engine._execute(ProductController._path,'ProductController','supportThread',p0,callback);}
function addTip(searchbar,searchTip){if(searchbar.value==""){searchbar.value=searchTip;searchbar.style.color="gray";}}
function clearTip(searchbar,searchTip){if(searchbar.value==searchTip){searchbar.value="";searchbar.style.color="black";}}
function isNotEmpty(searchbar,searchTip){if(searchbar.value==searchTip||searchbar.value==""){alert("\u8f93\u5165\u4e0d\u80fd\u4e3a\u7a7a");searchbar.focus();return false;}
return true;}
function setPropertyValue(tid,etid,ptid){var tid_id=document.getElementById("tid_id");tid_id.value=tid;var etid_id=document.getElementById("etid_id");etid_id.value=etid;var ptid_id=document.getElementById("ptid_id");ptid_id.value=ptid;}
function chearAll2(name,myform){var el=myform.elements;for(var i=0;i<el.length;i++){if((el[i].type=="checkbox")&&(el[i].name==name)){el[i].checked=false;}}}
function checkAll2(name,myform){var el=myform.elements;for(var i=0;i<el.length;i++){if((el[i].type=="checkbox")&&(el[i].name==name)){el[i].checked=true;}}}
function reverseAll2(name,myform){var el=myform.elements;var hasCheck=false;for(var i=0;i<el.length;i++){if((el[i].type=="checkbox")&&(el[i].name==name)&&el[i].checked){hasCheck=true;break;}}
if(hasCheck){chearAll2(name,myform);}else{checkAll2(name,myform);}}
function clearAll(name){var el=document.getElementsByTagName("input");var len=el.length;for(var i=0;i<len;i++){if((el[i].type=="checkbox")&&(el[i].name==name)){el[i].checked=false;}}}
function checkAll(name){var el=document.getElementsByTagName("input");var len=el.length;for(var i=0;i<len;i++){if((el[i].type=="checkbox")&&(el[i].name==name)){el[i].checked=true;}}}
function reverseAll(name){var el=document.getElementsByTagName("input");var hasCheck=false;for(var i=0;i<el.length;i++){if((el[i].type=="checkbox")&&(el[i].name==name)&&el[i].checked){hasCheck=true;break;}}
if(hasCheck){clearAll(name);}else{checkAll(name);}}
function checkOrClearAll(name,check){if(check){checkAll(name);}else{clearAll(name);}}
function submitForm(formName,actionID){var formElement=document.getElementById(formName);formElement.actionID.value=actionID;formElement.submit();}
function maximizeWin(){if(window.screen){var sx=window.screenLeft!=undefined?window.screenLeft:window.screenX;var sy=window.screenTop!=undefined?window.screenTop:window.screenY;var aw=document.body.clientWidth;var ah=document.body.clientHeight;if(sx>30&&sy>30){window.moveTo(0,0);window.resizeTo(aw,ah+200);}}}
var SystemUtils={setCookie:function(name,value,expires,path,secure){var cookie=name+"="+escape(value);if(expires!=undefined&&expires!=null){cookie+="; expires="+expires;}
if(path!=undefined&&path!=null){cookie+="; path";}
if(secure!=undefined&&secure!=null&&secure){cookie+="; secure";}
document.cookie=cookie;},getCookie:function(name){var pattern=new RegExp(name+"=(.*?)(;|$)");var result=pattern.exec(document.cookie);if(result!=null)
return unescape(result[1]);else
return"";},saveLoginName:function(oid){var expDate=new Date();expDate.setFullYear(expDate.getFullYear()+1);var obj=document.getElementById(oid);this.setCookie("sikoo_uid",obj.value,expDate.toGMTString());},restoreLoginName:function(){return this.getCookie("sikoo_uid");}}
function loadRenRenLogin(){XN_RequireFeatures(["EXNML"],function()
{XN.Main.init("5f1b2987c050485ba5eeb5570003554f","/xd_receiver.html");if(XN.Main.get_sessionState().get_isReady())
$('renrenShareButton').style.display='';if(isLogined()=='false'){if(!XN.Main.get_sessionState().get_isReady())
$('renrenLoginButton').style.display='';if(!XN.Main.get_sessionState().get_isReady()||location.href.indexOf('xnc=1')>=0)
XN.Main.get_sessionState().waitUntilReady(function(){location.href='/thirdPartyAuthen.htm';});}});}
function obj$(id){return document.getElementById(id);}
function findPosition(oElement){var x2=0;var y2=0;var width=oElement.offsetWidth;var height=oElement.offsetHeight;if(typeof(oElement.offsetParent)!='undefined')
{for(var posX=0,posY=0;oElement;oElement=oElement.offsetParent)
{posX+=oElement.offsetLeft;posY+=oElement.offsetTop;}
x2=posX+width;y2=posY+height;return[posX,posY,x2,y2];}else{x2=oElement.x+width;y2=oElement.y+height;return[oElement.x,oElement.y,x2,y2];}}
function empty(o){return(o==undefined||o==null||(typeof o!='function'&&o.length!=undefined&&o.length!=null&&o.length==0));}
function defaultValue(value1,value2){if(empty(value2))
value2='';return empty(value1)?value2:value1;}
function changeimg(id,pic1,pic2){var element=obj$(id);if(!empty(element)){if(element.src.indexOf(pic1)!=-1)
element.src=pic2;else
element.src=pic1;}}
function sh(id){var element=obj$(id);if(element.style.display=="none"){element.style.display="block";}else{element.style.display="none";}}
function sh_checkbox(id,checkboxID){var element=obj$(id);if(element.style.display=="none"){element.style.display="block";obj$(checkboxID).checked=true;}else{element.style.display="none";obj$(checkboxID).checked=false;}}
function copyToClipboard(txt){if(window.clipboardData){window.clipboardData.clearData();window.clipboardData.setData('Text',txt);}else if(navigator.userAgent.indexOf('Opera')!=-1){window.location=txt;}else if(window.netscape){try{netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');}catch(e){return false;}
var clip=Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);if(!clip)
return;var trans=Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);if(!trans)
return;trans.addDataFlavor('text/unicode');var str=Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);var copytext=txt;str.data=copytext;trans.setTransferData('text/unicode',str,copytext.length*2);var clipid=Components.interfaces.nsIClipboard;if(!clip)
return false;clip.setData(trans,null,clipid.kGlobalClipboard);}}
function bookmark(title,url){if(document.all)
window.external.AddFavorite(url,title);else if(window.sidebar)
window.sidebar.addPanel(title,url,"")}
function disableOrEnableInput(disable,exception_list){var types=['input','select','button','textarea'];for(var t=0;t<types.length;t++){var elements=document.getElementsByTagName(types[t]);for(var i=0;i<elements.length;i++){var element=elements.item(i);var exception=false;if(!empty(exception_list))
for(var j=0;j<exception_list.length;j++){if(element==exception_list[j]){exception=true;break;}}
if(!exception){element.disabled=disable;}}}}
function addEngine(A){if(window.external&&("AddSearchProvider"in window.external)){window.external.AddSearchProvider(A);return true;}else{alert("该浏览器不支持添加搜索引擎。");return false;}}
function checkSearchForm(){var regexp=/^(-|\+)?\d+\.?\d*$/;var numbers=[obj$('priceMin').value,obj$('priceMax').value];for(var i=0;i<numbers.length;i++){if(!empty(numbers[i])&&!numbers[i].match(regexp)){alert("请使用正确的数字格式。");return false;}}
if(obj$('priceMin').value<0||obj$('priceMax').value<0){alert("价格不能为负数。");return false;}
if(obj$('priceMin').value>100000||obj$('priceMax').value>100000){alert("价格数值太大。");return false;}
return true;}
function clearEmptyValue(obj,value){if(obj.value==value)
obj.value='';}
function clipString(str,len){if(!empty(str))
return str.substring(0,Math.min(len,str.length));else
return str;}
function resizeImage(obj,width,height,aligh_center){aligh_center=empty(aligh_center)?true:aligh_center;if(obj.width>width||obj.height>height){var widthToHeight=obj.width/obj.height;var heightToWidth=obj.height/obj.width;var toWidth=obj.width;var toHeight=obj.height;if(obj.width>width){toWidth=width;toHeight=toWidth*heightToWidth;}
if(toHeight>height){toHeight=height;toWidth=toHeight*widthToHeight;}
obj.width=toWidth;obj.height=toHeight;}
if(aligh_center&&obj.height<height&&obj.width>0&&obj.height>0){obj.style.marginTop=(height-obj.height)/2+"px";}
obj.style.visibility="visible";}
function maximizeImageHeight(obj,width,height,aligh_center){aligh_center=empty(aligh_center)?true:aligh_center;if(obj.width==0||obj.height==0){obj.width=width;obj.height=height;}else if(obj.height<height&&obj.width>0&&obj.height>0){var toHeight=height;var toWidth=obj.width*height/obj.height;obj.width=toWidth;obj.height=toHeight;}
resizeImage(obj,width,height,aligh_center);obj.style.visibility="visible";}
function maximizeImageWidth(obj,width,height,aligh_center){aligh_center=empty(aligh_center)?true:aligh_center;if(obj.width==0||obj.height==0){obj.width=width;obj.height=height;}else if(obj.width<width){var toWidth=width;var toHeight=obj.height*width/obj.width;obj.width=toWidth;obj.height=toHeight;}
resizeImage(obj,width,height,aligh_center);obj.style.visibility="visible";}
function removeArrayElement(array,index){if(empty(array)||empty(index))
return;for(var i=parseInt(index);i<array.length-1;i++)
array[i]=array[i+1];array.pop();}
function isContentImage(img){var width=img.width;var height=img.height;if(height>0){var aspect=width/height;return width*height>20000&&aspect>0.2&&aspect<2.5;}else
return false;}
function switchCheckbox(id){$(id).checked=!$(id).checked;}
function getStyle(element,name){if(!empty(element)&&!empty(name)){while(element.tagName!='BODY'){if(!empty(element.style[name]))
break;element=element.parentNode;}
return element.style[name];}else
return null;}
var G=function(id){return document.getElementById(id)};var EACH=function(o,fn){for(var i=0;i<o.length;i++){fn.call(o[i],i,o);if(i==o.length-1)return o;}};var _tablecolor_=function(){this.init.apply(this,arguments);};_tablecolor_.prototype={init:function(o){EACH(G(o.id).rows,function(i,O){i%2==+!!o.parity?this.style.background=o.cor1:'';this['color']=this.style.background;this.onmouseover=function(){this.style.background=o.cor2};this.onmouseout=function(){this.style.background=this['color']};})}};function validateCheckBox(checkboxParentId,max,checkboxGroupDesc){var group=document.getElementById(checkboxParentId).getElementsByTagName("input");var count=0;for(var i=0;i<group.length;i++){if(group[i].checked)
count++;}
if(count>max){alert("在"+checkboxGroupDesc+"中您最多只能选择"+max+"个选项");for(var i=0;i<group.length;i++){group[i].checked=false;}
return false;}
return true;}
function submitWithFirstSelectedRecord(link){var selectedId=0;var myform=$('operation_form');var elements=$$('input[name="ids"]');for(i=0;i<elements.length;i++){if(elements[i].checked==true)
selectedId=elements[i].value;break;}
if(selectedId!=0){location.href=link+selectedId;}else{alert('请选择一个！');}}
function CreateXMLHttpRequest(){if(typeof(XMLHttpRequest)!="undefined"){return new XMLHttpRequest();}else if(window.ActiveXObject){var aVersions=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];for(var i=0;i<aVersions.length;i++){try{var oXmlHttp=new ActiveXObject(aVersions[i]);return oXmlHttp;}catch(oError){}}}
return false;}
(function(){var ua=navigator.userAgent.toLowerCase();var webkit=/webkit/.test(ua);var webkit4=/webkit\/4/.test(ua);var webkit5=/webkit\/4/.test(ua);var gecko=!webkit&&/gecko/.test(ua);var msie=/msie/.test(ua);var msie6=/msie 6/.test(ua);var loaded=0;var sw=0;var sn;var ATB="autocomplete_text_busy";var PX="px";var ON="on";var OFF="off";var Z=function(s){s=cwa.b(s.toString()).replace(/[\Wvar]/gi,"");var x=0;for(var i=0;i<s.length;i++){x=(x+s.charCodeAt(i)%10+i%10)%1986;}
return x;};var cwa={h:function(o){var s=0;for(i=0;i<o.length;i++){s+=o.charCodeAt(i);}
var base="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var h=base.substr(s&63,1);while(s>63){s>>=6;h=base.substr(s&63,1)+h;}
return h;},y:function(o){return o.owner&&o.key&&!o.key.indexOf(cwa.h(o.owner));},w:function(){return"<!--<a style='padding: 2px 0; font-size:9px !important;display:block !important;color:#000 !important;background:#fff !important;visibility:visible !important;text-indent:0px !important; text-decoration:underline;' href='http://createwebapp.com/purchase'>Powered&nbsp;By&nbsp;CreateWebApp.com</a>-->";},b:function(t){return t.substring(t.indexOf("{")+1,t.lastIndexOf("}"));},focus:function(t){t.focus();var l=t.value.length;if(msie){var r=t.createTextRange();r.moveStart("character",l);r.moveEnd("character",l);r.select();}else{t.setSelectionRange(l,l);}}};(function(){var timer;function fireContentLoadedEvent(){if(loaded){return;}
if(timer){window.clearInterval(timer);}
loaded=1;}
if(document.addEventListener){if(webkit){timer=window.setInterval(function(){if(/loaded|complete/.test(document.readyState)){fireContentLoadedEvent();}},0);Event.observe(window,"load",fireContentLoadedEvent);}else{document.addEventListener("DOMContentLoaded",fireContentLoadedEvent,false);}}else{document.write("<script id=__onDOMContentLoaded defer src=//:></script>");$("__onDOMContentLoaded").onreadystatechange=function(){if(this.readyState=="complete"){this.onreadystatechange=null;fireContentLoadedEvent();}};}})();var ac=function(){this.initialize.apply(this,arguments);};Object.extend(ac,{u:function(e){while(e=e.parentNode){if(e.style){if(e.style.overflow=="hidden"){e.style.overflow="visible";}
if(e.style.tableLayout=="fixed"){e.style.tableLayout="auto";}}}},removeWatermark:function(n,k){ac.owner=n+" Autocomplete";ac.key=k;},findPopup:function(v){var e=Event.element(v);e=e?e:v;while(e&&e.parentNode&&!$(e).hasClassName("autocomplete_list")){e=e.parentNode;}
if(e==null){return null;}
return e.parentNode&&e.id?e:null;},I:function(e){var v;if(e.nodeType==1){v=e.getAttribute("onselect");}
return(v!=null)&&(v!=undefined);},F:function(v,p){var e=Event.element(v);while(e.parentNode&&(e!=p)&&(!ac.I(e))){e=e.parentNode;}
return(e.parentNode&&(e!=p))?e:null;},process:function(e,o){if(!$(e).hasClassName("usual")){o.request(e.getAttribute("href"));}},C:function(v){var e=Event.element(v);ac.inst.each(function(i){if(i.text!=e&&i.L.L2!=e){setTimeout(i.hide.bind(i),0);}});},L:function(){if(msie){sn=self.name;}
if(webkit4){$(Autocomplete.inst).each(function(i){var l=$(document.createElement("div"));document.body.appendChild(l);l.style.position="absolute";l.className="autocomplete_text";l.style.width="15px";Position.clone(i.text,$(l),{setLeft:1,setTop:1,setWidth:0,setHeight:1,offsetTop:0,offsetLeft:i.text.getWidth()-l.getWidth()-1});i.S=l;});}
var x="autocomplete_x1";if(loaded){var e=document.createElement("div");e.id=x;var es=e.style;es.position="absolute";es.left=es.top="-999px";es.overflow="scroll";es.width="400px";e.className=ATB;e.innerHTML="<div style='width:80px'></div>";document.body.appendChild(e);}else{document.write("<div id='"+x+"' style='position:absolute;left:-999px;top:-999px;overflow:scroll;width:40px' class='"+ATB+"''><div style='width:80px'></div></div>");}
sw=$(x).offsetWidth-$(x).clientWidth;},inst:new Array(),name:"",key:"",getStyle:function(e){if(!webkit&&document.defaultView&&document.defaultView.getComputedStyle){return document.defaultView.getComputedStyle(e,null);}else{return e.currentStyle||e.style;}},getInt:function(s){var i=parseInt(s);return isNaN(i)?0:i;}});ac.prototype={$c:0,init:0,T:0,i:-1,d:1,last_value:"",custom_uri:"",bw:1,initialize:function(t,f,options){this.S=this.text=$(t)?$(t):document.getElementsByName(t)[0];if((this.text==null)||(f==null)||(typeof f!="function")){return;}
this.text.setAttribute("autocomplete",OFF);this.setOptions(options);this.getURL=f;var x=this.text.getAttribute("autocomplete_id");if(x!=null){return;}
var sid="no_"+ac.inst.length;this.text.setAttribute("autocomplete_id",sid);this.onchange=this.text.onchange;this.text.onchange=function(){};var ml=function(n){var x="autocomplete_list";if(loaded){var e=document.createElement("ol");e.id=n+"_"+x;var es=e.style;es.position="absolute";es.left=es.top="-9999px";e.className=x;document.body.appendChild(e);}else{document.write("<ol id='"+n+"_"+x+"' style='position:absolute;left:-9999px;top:-9999px' class='"+x+"'></ol>");}
return $(n+"_"+x);};this.L=ml(sid+"a");this.L2=ml(sid+"b");if(msie6){if(loaded){var e=document.createElement("iframe");e.id=sid+"_iframe";var es=e.style;es.position="absolute";es.filter="progid:DXImageTransform.Microsoft.Alpha(opacity = 0)";e.src="javascript:false;";document.body.appendChild(e);}else{document.write("<iframe id='"+sid+"_iframe' style='position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity = 0)' src='javascript:false;'></iframe>");}
this.F=$(sid+"_iframe");this.F.style.display="none";}
ac.inst.push(this);if(ac.L){ac.L();ac.L=undefined;}
if(!cwa.y(ac)){new Insertion.After(this.text,cwa.w());ac.u(this.text);}
this.r();},V:function(){return this.L.style.display!="none";},setOptions:function(options){this.options={width:"auto",frequency:0.25,minChars:1,delimChars:", ",size:10,select_first:1,align:"auto"};Object.extend(this.options,options||{});},r:function(){this._k=this.k.bindAsEventListener(this);this.$r=this.request.bind(this);var t=this.text;$(t).addClassName("autocomplete_text");if(/mac/.test(ua)){t._ac=this;t.onkeypress=function(e){return!this._ac.$s;};}
var O=Event.observe;if(webkit&&Event._observeAndCache){Event._observeAndCache(t,"keypress",this._k,false);}else{if(msie){O(t,"keydown",this._k);}else{O(t,"keypress",this._k);}}
O(t,"dblclick",this.$r);O(t,"keyup",function(){clearTimeout(this.$u);}.bind(this));O(t,"focus",this.$f.bind(this));O(t,"blur",this.blur.bind(this));if(ac.inst.length==1){O(document,"click",ac.C);}
var e=t;while(e=e.parentNode){if(e.style&&(e.style.overflow=="scroll"||e.style.overflow=="auto")){this.scrollable=this.scrollable?this.scrollable:e;O(e,"scroll",this.onScroll.bind(this));}}},onScroll:function(){var s=this.scrollable;if(s){var p=this.t();var o=Position.cumulativeOffset(s);if(p[1]>=o[1]&&p[1]<o[1]+s.offsetHeight&&p[0]>=o[0]&&p[0]<o[0]+s.offsetWidth&&this.V()){this.s();}else{this.hide();}}},t:function(){var p=Position.page(this.text);return[p[0]+(msie?this.text.scrollLeft:0)+(document.documentElement.scrollLeft||document.body.scrollLeft),p[1]+(document.documentElement.scrollTop||document.body.scrollTop)];},iolv:function(){var d=this.options.delimChars,v=encodeURIComponent(this.text.value),i,j,k=0;for(i=v.length-1;i>=0;i--){for(j=0;j<d.length;j++){if(v.charAt(i)==d.charAt(j)){k=i+1;break;}}
if(k){break;}}
return k;},page:function(n){var e=$A(document.getElementsByClassName(n)).find(function(e){return ac.findPopup(e)==this.L;}.bind(this));if(e&&e.tagName&&e.tagName.toUpperCase()=="A"){ac.process(e,this);}else{var s=this.options.size;var i=this.i;var l=this.items.length;if(n=="page_up"){if(i>=s){this.focus(i-s);}else{this.focus(0);}}
if(n=="page_down"){if(i+s<l){this.focus(i+s);}else{this.focus(l-1);}}}},$f:function(){if(this.status!=ON){this.status=ON;if(!this.V()&&this.text.value==""){this.request();}}},blur:function(){if(!this.V()){this.status=OFF;setTimeout(function(){if(this.status==OFF){this.stop();}}.bind(this),10);}},stop:function(){this.c();this.stopIndicator();this.hide();},c:function(){if((this.latest)&&(this.latest.transport.readyState!=4)){this.latest.transport.abort();}},k:function(e){this.status=ON;this.$s=false;var c=e.keyCode;var t=e.type;if(c==9||c==13){if(this.V()||!this.$c){if((c==13)&&(this.$c)&&(this.i>-1)){Event.stop(e);this.$s=true;}
if(this.V()){this.z();}}
return;}
if(c==38||c==40||c==63232||c==63233){if(this.$c){(c==38)||(c==63232)?this.U():this.D();Event.stop(e);}}
if(c==33||c==34||c==63276||c==63277){if(this.$c){(c==33)||(c==63276)?this.page("page_up"):this.page("page_down");}}
if(c==27){this.stop();if(webkit){this.text.blur();this.text.focus();}}
if(c==38||c==40||c==33||c==34||c==27||c==63232||c==63233||c==63276||c==63277){Event.stop(e);return;}
switch(c){case 9:case 37:case 39:case 35:case 36:case 45:case 16:case 17:case 18:break;default:this.custom_uri="";clearTimeout(this.T);this.c();setTimeout(function(){this.T=setTimeout(this.$r,this.options.frequency*1000);}.bind(this),10);}},z:function(){var m=this.G();this.stop();var x=Z(cwa.y)+Z(cwa.w)+Z(cwa.h)+Z(ac.u)+Z(ac.prototype.initialize);if((m==undefined)||(m==null)){return;}
var s=m.getAttribute("o"+"nsel"+"ect").replace("this.request(","this.request(1");if(m&&!((x+5)%4)){try{eval(s);}
catch(e){this.onError(e);}
cwa.focus(this.text);if(this.onchange){setTimeout(function(){this.onchange.bind(this.text)();}.bind(this),10);}}},G:function(){return this.items?this.items[this.i]:null;},focus:function(i){if((this.i==i)||(!this.$c)){return;}
$(this.L).show();Element.removeClassName(this.G(),"current_item");this.i=i;var m=this.G();if(!m){return;}
$(m).addClassName("current_item");var size=this.options.size;var u=this.L;var h=this.H(this.L);var mt=m.offsetTop;var btw=parseInt(Element.getStyle(u,"border-top-width"));var bbw=parseInt(Element.getStyle(u,"border-bottom-width"));if(webkit4){mt-=btw;}
if((gecko)&&(mt<u.scrollTop)){mt+=btw;}
if(msie){mt-=parseInt($(m).getStyle("padding-top"))+this.bw;if(document.compatMode=="BackCompat"){h-=btw+bbw;}}
if(mt<u.scrollTop){u.scrollTop=mt+(mt==0?0:this.bw);}
if(mt+m.offsetHeight-u.scrollTop>h){u.scrollTop=mt+m.offsetHeight-h-this.bw;}
try{var z=m.getAttribute("onfocus");if(msie){z=cwa.b(z.toString());}
eval(z);}
catch(e){}},U:function(){if(this.i>-1){this.focus(this.i-1);}},D:function(){if(this.i<this.items.length-1){this.focus(this.i+1);}},beforeRequest:function(){},bR:function(){if(!this.init){this.init=true;this.L.onscroll=function(){cwa.focus(this.text);}.bind(this);}
this.last_value=this.value.substr(this.iolv());var l=this.last_value?this.last_value.length:this.text.value.length;return l>=this.options.minChars;},request:function(u){var z=typeof u!="string";this.value=encodeURIComponent(this.text.value);if(u==1){u=this.url;this.status=ON;}else{if(z){u=this.getURL();if(u==undefined){this.stop();return;}}}
if(this.status==ON&&this.bR()){this.onLoad();this.url=u;this.latest=new Ajax.Updater(this.L2,u+this.custom_uri,{method:"get",onComplete:this.onComplete.bind(this),onFailure:this.onFailure.bind(this)});}else{this.stop();}},onError:function(){},onFailure:function(){},onLoad:function(){this.$c=0;this.i=-1;this.startIndicator();},onComplete:function(){setTimeout(this.d.bind(this,arguments[0]),10);},d:function(){var l=this.latest;var tx=l.transport;if((this.status==ON)&&(tx==arguments[0]||tx==arguments[0].transport)){if(this.latest.url!=this.url+this.custom_uri){return;}
this.$c=true;if(!l.success){l.success=l.responseIsSuccess;}
try{if((typeof tx.status!="unknown")&&l.success()){}else{this.L2.innerHTML="<li onselect=';'>Request failed: "+tx.status+" "+(tx.statusText?tx.statusText:"")+"</li>";}
this.L2.style.width=this.L2.style.height="auto";var ls=this.L2.childNodes;var i=0;for(var j=0;j<ls.length;j++){var x=ls[j];if(ac.I(x)){x.className="item";if(msie&&(++i<=this.options.size)&&!x.getElementsByTagName("span").length){x.innerHTML="<span style='padding:0'></span>"+x.innerHTML;}}}
this.$c=true;this.s(this.options.select_first);}
catch(e){}}},offset:function(e){var o=0;if(gecko||webkit||(msie&&(document.compatMode!="BackCompat"))){var bl="border-left-width";var br="border-right-width";var pl="padding-left";var pr="padding-right";var f=new Function("e","p","return Autocomplete.getInt(Element.getStyle(e, p));");o=f(e,bl)+f(e,br)+f(e,pl)+f(e,pr);}
return o;},H:function(L){var s=this.options.size;var A=$A(L.getElementsByTagName("li"));var l=A.size();var m=A[(l>s?s:l)-1];var h=m.offsetTop+m.offsetHeight;var btw=parseInt(Element.getStyle(L,"border-top-width"));var bbw=parseInt(Element.getStyle(L,"border-bottom-width"));if(msie){if(document.compatMode=="BackCompat"){h+=btw+bbw;}
h-=parseInt($(m).getStyle("padding-top"))+this.bw;}
if(webkit4){h-=btw;}
return h-this.bw;},s:function(ft){this.status=ON;var x=Z(cwa.y)+Z(cwa.w)+Z(cwa.h)+Z(ac.u)+Z(this.initialize);if(x!=5535){return;}
var p=this.t();var th=this.text.offsetHeight;if(this.status==ON){var pt=p[1]+th;if(this.status!=ON){return;}
var w="auto";var i=600;if(!!window.opera){this.L2.style.width=i+PX;}
var oh=this.L2.offsetHeight;if(webkit){w=this.L2.offsetWidth;}else{var l=this.text.offsetWidth,h=i;do{i=Math.ceil((l+h)/2);this.L2.style.width=i+PX;if(this.L2.offsetHeight>oh){l=i+1;}else{h=i;}}while(h-l>=20);w=h;this.L2.style.width=h+PX;}
if(this.L2.offsetWidth<this.text.offsetWidth){w=this.text.offsetWidth-this.offset(this.L2);}
var h="auto";this.items=new Array();if(this.L.innerHTML!=this.L2.innerHTML){this.L.innerHTML=this.L2.innerHTML;this.i=-1;var ls=this.L.childNodes;for(var j=0;j<ls.length;j++){var x=ls[j];if(x.className=="item"){var i=this.items.length;x.onmouseover=function(i){this.focus(i);}.bind(this,i);x.onclick=function(i){this.i=i;this.z();}.bind(this,i);this.items.push(x);}}
Element.addClassName(this.items[0],"first_item");}
if(this.items.length>this.options.size){this.L.style.overflow="auto";w=parseInt(w)+sw;h=this.H(this.L2)+PX;}
if(this.items.length){var l=p[0];var d=this.text.offsetWidth-w;var a=this.options.align;if((a=="auto")&&(document.body.offsetWidth-l-w>14)){d=0;}
if(a=="left"){d=0;}
if(a=="center"){d/=2;}
Element.setStyle(this.L,{top:pt+PX,left:l+d+PX,width:w+PX,height:h});this.L.style.display="";if(ft){setTimeout(this.D.bind(this),0);}
if(this.F){self.name=sn;var es=this.F.style;es.top=pt+PX;es.left=p[0]+PX;es.width=w;es.height=this.L.getHeight();es.display="";}}
this.stopIndicator();if(msie){setTimeout(function(){for(var j=0;j<this.items.length;j++){var x=this.items[j];if(!x.getElementsByTagName("span").length){x.innerHTML="<span style='padding:0'></span>"+x.innerHTML;}}}.bind(this),0);}}},hide:function(){if(this.V()){this.L.style.display="none";if(this.F){this.F.style.display="none";}}},startIndicator:function(){$(this.S).addClassName(ATB);},stopIndicator:function(){$(this.S).removeClassName(ATB);}};window.AutoComplete=window.Autocomplete=ac;try{var a="autocomplete.js";var b="license.js";var p=$A(document.getElementsByTagName("script")).find(function(s){return s.src.indexOf(a)>-1;}).src.replace(a,b);new Ajax.Request(p,{method:"get",asynchronous:0});}
catch(e){}})();var PopupWindow=Class.create();PopupWindow.hiddenElements=new Object();PopupWindow.prototype={initialize:function(win_id,opts){this.eventListener=new Hash();opts=empty(opts)?{}:opts;var content=empty(opts.content)?'':opts.content;var url=empty(opts.url)?'':opts.url;var title=empty(opts.title)?'':opts.title;var width=empty(opts.width)?'':('width:'+opts.width+'px;');var height=empty(opts.height)?'':('height:'+opts.height+'px;');var content_width=empty(opts.width)?'':('width:'+(opts.width-70)+'px;');var content_height=empty(opts.height)?'':('height:'+(opts.height-40)+'px;');var scroll_x=empty(opts.scrollX)||!opts.scrollX?'overflow-x:hidden; ':'overflow-x:scroll; ';var scroll_y=empty(opts.scrollY)||!opts.scrollY?'overflow-y:hidden; ':'overflow-y:scroll; ';var draggable=empty(opts.draggable)?false:opts.draggable;var html='<table cellspacing="0" cellpadding="0" border="0" onclick=";" id="'+win_id+'" class="popup_table" style="visibility:hidden; z-index: 9999; '+width+height+'">'+'<tbody><tr>'+'<td class="popup_shadow popup_top_left">'+'<div class="popup_background">'+'<div>'+'<div class="new_popup_header" style="display:block;overflow:hidden;height:20px;" >'+'<div id="'+win_id+'_header" style="float:left;">'+title+'</div>'+'<a class="imgsheet popup_closer" onclick="$(\''+win_id+'\').popup.close();" id="" href="javascript:void(0);" rel="nofollow"></a>'+'</div>'+'<div id="'+win_id+'_content" class="popup_content" style="display:block; position: relative; '+scroll_x+scroll_y+content_width+content_height+'" >'+content+'</div>'+'</div>'+'</div>'+'</td>'+'<td class="popup_shadow popup_top_right"> </td></tr>'+'<tr><td class="popup_shadow popup_bottom_left"> </td>'+'<td class="popup_shadow popup_bottom_right"> </td></tr>'+'</tbody>'+'</table>';var mask='<div id="'+win_id+'_mask" style="display: none; background: rgb(51, 51, 51) none repeat scroll 0%; width: 100% ! important; height: 18000px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; opacity: 0.2; filter:alpha(opacity=20); position: absolute; top: 0px; left: 0px;z-index: 9999;"></div>';this.windowID=win_id;if(!empty($(win_id))){$(win_id).remove();}
if(empty($(win_id+'_mask')))
new Insertion.Bottom(document.body,mask);new Insertion.Bottom(document.body,html);$(win_id).popup=this;var x=empty(opts.left)?(document.documentElement.clientWidth-$(win_id).getWidth())/2:opts.left;var y=empty(opts.top)?(document.documentElement.clientHeight-$(win_id).getHeight())/2:opts.top;x=x>=0?x:0;y=y>=0?y:0;this.moveTo(x,y);if(!empty(url))
new Ajax.Updater(win_id+'_content',url,{evalScripts:true});},show:function(modal){this.modal=modal;if(modal){if(Prototype.Browser.IE){var hiddenElements=new Array();$$('select, object').each(function(element){if(Element.visible(element)){Element.hide(element);hiddenElements.push(element);}});PopupWindow.hiddenElements[this.windowID]=hiddenElements;}
Element.show($(this.windowID+'_mask'));}
Element.show($(this.windowID));$(this.windowID).style.visibility="visible";this.triggerEvent("show");},close:function(){if(this.modal||!empty(PopupWindow.hiddenElements[this.windowID])){this.hiddenElements=PopupWindow.hiddenElements[this.windowID];while(!empty(this.hiddenElements)){var element=this.hiddenElements.pop();if(!Element.visible(element)){Element.show(element);}}}
$(this.windowID+'_mask').hide();$(this.windowID).style.visibility="hidden";$(this.windowID).hide();this.triggerEvent("closed");},addEventListener:function(eventtype,f){if(!empty(eventtype)&&!empty(f)){var listeners=this.eventListener.get(eventtype);if(listeners==undefined||listeners==null){listeners=new Array();this.eventListener.set(eventtype,listeners);}
listeners.push(f);}},moveTo:function(x,y){x=empty(x)?(document.documentElement.clientWidth-$(this.windowID).getWidth())/2:x;y=empty(y)?(document.documentElement.clientHeight-$(this.windowID).getHeight())/2:y;this.x=x;this.y=y;$(this.windowID).style.left=x+'px';$(this.windowID).style.top=y+'px';this.triggerEvent("move");},triggerEvent:function(eventtype){var listeners=this.eventListener.get(eventtype);if(!empty(listeners)){for(var i=0;i<listeners.length;i++){var f=listeners[i];if(!empty(f))
f();}}},resizeTo:function(w,h){$(this.windowID).style.width=w+'px';$(this.windowID).style.height=h+'px';},getHeight:function(){return $(this.windowID).getHeight();},getWidth:function(){return $(this.windowID).getWidth();}};function shakeStart(objname){var obj=document.getElementById(objname);if(obj){obj.count=0;obj.flag=true;obj.setTimeout=setInterval(function(){obj.style.marginLeft=(obj.flag?"-":"")+"4px";obj.count++;obj.flag=!obj.flag;if(obj.count==10){shakeStop(objname);}},50);}}
function shakeStop(objname){var obj=document.getElementById(objname);if(obj&&obj.setTimeout){obj.style.marginLeft="0";clearInterval(obj.setTimeout);}}
﻿var request=false;var loginedUser=null;function loginWithRrefreshCurrentPage(callback){if(isLogined()=='true'){invokeCallback(callback,arguments,1);}
else{AccessWithLogin(location.href);}}
function isLogined(){var url="/loginStatusCheck.htm";request=CreateXMLHttpRequest();if(request){request.open("GET",url,false);request.send(null);if(request.getResponseHeader("Authenticated")=='true'){loginedUser={userID:request.getResponseHeader("UserID"),username:request.getResponseHeader("Username"),nickname:request.getResponseHeader("Nickname")};}else
loginedUser=null;return request.getResponseHeader("Authenticated");}
return null;}
function Login(username,password,remember_me){SystemUtils.saveLoginName("login_div_username");var url="/j_spring_security_check?j_username="+username+"&j_password="+password;if(remember_me)
url+="&_spring_security_remember_me=true";request=CreateXMLHttpRequest();if(request){request.open("GET",url,true);request.onreadystatechange=loginCallback;request.send(null);}
return null;}
function replaceURLWithUserInfo(url){if(!empty(url)){if(!empty(loginedUser)){for(var field in loginedUser){if(!empty(loginedUser[field]))
url=url.replace(new RegExp('\\$\\{'+field+'\\}','g'),loginedUser[field]);else
url=url.replace(new RegExp('\\$\\{'+field+'\\}','g'),'');}}
url=url.replace(new RegExp('\\$\\{.+?\\}','g'),'');return url;}else
return url;}
function loginCallback(){if(request.readyState==4&&request.status==200){if(isLogined()=="true"){var obj=document.getElementById("login_div_message");obj.innerHTML="";getLoginWindow().close();if(AccessWithLogin_URL!=null)
window.location.href=replaceURLWithUserInfo(AccessWithLogin_URL);else if(SubmitFormID!=null){document.getElementById(SubmitFormID).submit();}else if(CallBackAfterLogin!=null){invokeCallback(CallBackAfterLogin,CallBackAfterLoginParam,1);}}else{var obj=document.getElementById("login_div_message");obj.innerHTML="登录失败！";document.getElementById("login_div_password").value="";}
$('loginProgress').hide();}else if(request.readyState==4&&request.status!=200){var obj=document.getElementById("login_div_message");obj.innerHTML="由于网络问题，登录失败！";document.getElementById("login_div_password").value="";$('loginProgress').hide();}}
function submitLogin(){var pos=findPosition($('login_div_message'));$('loginProgress').setStyle({top:(pos[1]+(250-30)/2)+'px',left:(pos[0]+(300-180)/2)+'px'});$('loginProgress').show();var username=document.getElementById("login_div_username").value,password=document.getElementById("login_div_password").value;var remember_me=document.getElementById("remember_me").checked;Login(username,password,remember_me);}
var AccessWithLogin_URL;var Login_Win=null;function getLoginWindow(){if(empty($('loginProgress')))
Element.insert(document.body,"<div id='loginProgress' style='background:white;border:1px solid; width:180px;height:30px;padding:10px;position:absolute;display:none;z-index:10000;'><img src='/res/images/loading.gif'/>正在登录，请稍候……</div>");Login_Win=new PopupWindow('loginbox',{title:'登 录',width:380,height:360,content:"<div id='login_div_message' style='color:red; font-size:14px;'></div><table width='90%' border='0' cellspacing='0' cellpadding='0' style='margin: 10px;'>"+"<tr><td><b><font style='font-size: 14px; color: #000000; line-height: 16px;'>登录</font></b></td></tr>"+"<tr><td><hr style='color: #ccc; width: 100%' size=1 /></td>"+"</tr><tr><td><b><font style='font-size: 14px; color: #BC2931; line-height: 16px;'>请输入邮箱和密码</font> </b></td></tr>"+"<tr><td height='32'>邮 箱：<input type='text' id='login_div_username' name='login_div_username' size='15' tabindex='1' value='${loginName }' style='border: 1px solid #7F9DB9; width: 130px; height: 20px;' class='required' /></td></tr>"+"<tr><td height='32'>密 码：<input type='password' id='login_div_password' name='login_div_password' onkeydown='if(event.keyCode==13) submitLogin();' size='15' tabindex='2' style='border: 1px solid #7F9DB9; width: 130px; height: 20px;' class='required' /></td></tr>"+"<tr><td align='center'><input type='button' name='Submit2' value='  登 录  ' onclick='submitLogin();' class='post_bt' onmouseover='this.className=\"post_bt2\";' onmouseout='this.className=\"post_bt\";' /></td></tr>"+"<tr><td align='center' style='font-size: 13px'><input id='remember_me' type='checkbox' name='_spring_security_remember_me' />在此计算机上记住</td></tr>"+"<tr><td align='right' height='38' style='font-size: 13px'><a href='/findPassword.htm' style='text-decoration: underline;'>忘记密码,取回&gt;&gt;</a></td></tr>"+"<tr><td align='right'><hr style='color: #ccc; width: 100%' size=1 /></td></tr>"+"<tr><td align='left' height='32'><font style='font-size: 14px; color: #BC2931; line-height: 16px;'>还没有帐户?</font></td></tr>"+"<tr><td align='center'><input type='button' name='Submit22' value='  注 册  ' class='post_bt' onmouseover='this.className=\"post_bt2\";' onmouseout='this.className=\"post_bt\";' onclick='window.open(\"/register.htm\");' /></td></tr>"+"<tr><td align='center' height='32'>拥有帐户,整个网站畅通无阻!</td></tr>"+"</table>"});return Login_Win;}
function getCashbackLoginWindow(){if(empty($('loginProgress')))
Element.insert(document.body,"<div id='loginProgress' style='background:white;border:1px solid; width:180px;height:30px;padding:10px;position:absolute;display:none;z-index:10000;'><img src='/res/images/loading.gif'/>正在登录，请稍候……</div>");Login_Win=new PopupWindow('loginbox',{title:'购物返现',width:380,height:430,content:"<div id='login_div_message' style='color:red; font-size:14px;'></div><table width='90%' border='0' cellspacing='0' cellpadding='0' style='margin: 10px;'>"+"<tr><td><b><font style='font-size: 14px; color: #000000; line-height: 16px;'>购物返现</font></b></td></tr>"+"<tr><td align='right'><hr style='color: #ccc; width: 100%' size=1 /></td></tr>"+"<tr><td align='left' height='18'><font style='font-size: 14px; color: #BC2931; line-height: 16px;'>点下面按钮直接去购物</font></td></tr>"+"<tr><td align='center'><input type='button' name='Submit22' value='  直接去购物  ' class='post_bt' onmouseover='this.className=\"post_bt2\";' onmouseout='this.className=\"post_bt\";' onclick='location.href=\""+replaceURLWithUserInfo(AccessWithLogin_URL)+"\";' /></td></tr>"+"<tr><td><hr style='color: #ccc; width: 100%' size=1 /></td>"+"</tr><tr><td><b><font style='font-size: 14px; color: #BC2931; line-height: 16px;'>请登录以获得返现</font> </b></td></tr>"+"<tr><td height='32'>邮 箱：<input type='text' id='login_div_username' name='login_div_username' size='15' tabindex='1' value='${loginName }' style='border: 1px solid #7F9DB9; width: 130px; height: 20px;' class='required' /></td></tr>"+"<tr><td height='32'>密 码：<input type='password' id='login_div_password' name='login_div_password' onkeydown='if(event.keyCode==13) submitLogin();' size='15' tabindex='2' style='border: 1px solid #7F9DB9; width: 130px; height: 20px;' class='required' /></td></tr>"+"<tr><td align='center'><input type='button' name='Submit2' value='  登 录  ' onclick='submitLogin();' class='post_bt' onmouseover='this.className=\"post_bt2\";' onmouseout='this.className=\"post_bt\";' /></td></tr>"+"<tr><td align='center' style='font-size: 13px'><input id='remember_me' type='checkbox' name='_spring_security_remember_me' />在此计算机上记住</td></tr>"+"<tr><td align='right' height='38' style='font-size: 13px'><a href='/findPassword.htm' style='text-decoration: underline;'>忘记密码,取回&gt;&gt;</a></td></tr>"+"<tr><td align='right'><hr style='color: #ccc; width: 100%' size=1 /></td></tr>"+"<tr><td align='left' height='18'><font style='font-size: 14px; color: #BC2931; line-height: 16px;'>还没有比价族帐户?</font></td></tr>"+"<tr><td align='center'><input type='button' name='Submit22' value='  注 册  ' class='post_bt' onmouseover='this.className=\"post_bt2\";' onmouseout='this.className=\"post_bt\";' onclick='window.open(\"/register.htm\");' /></td></tr>"+"<tr><td align='center' height='32'>拥有比价族帐户,整个网站畅通无阻!</td></tr>"+"</table>"});return Login_Win;}
function fillUserName(){var obj=document.getElementById('login_div_username');obj.value=SystemUtils.restoreLoginName();}
function AccessWithLogin(url,loginUI){clearStatus();if(isLogined()=="true"){window.location.href=replaceURLWithUserInfo(url);}else{AccessWithLogin_URL=url;if(empty(loginUI))
getLoginWindow().show(true);else
loginUI().show(true);fillUserName();focusInput();}}
var SubmitFormID;function submitWithLogin(formID){clearStatus();if(isLogined()=="true"){document.getElementById(formID).submit();}else{SubmitFormID=formID;getLoginWindow().show(true);fillUserName();focusInput();}}
function clearStatus(){AccessWithLogin_URL=null;SubmitFormID=null;CallBackAfterLogin=null;}
function loginOnSubmit(formID){clearStatus();if(isLogined()=="true"){return true;}else{SubmitFormID=formID;getLoginWindow().show(true);fillUserName();focusInput();return false;}}
var CallBackAfterLogin;var CallBackAfterLoginParam;function invokeWithLogin(callback){clearStatus();if(isLogined()=="true"){invokeCallback(callback,arguments,1);}else{CallBackAfterLogin=callback;CallBackAfterLoginParam=arguments;getLoginWindow().show(true);fillUserName();focusInput();}}
function invokeCallback(callback,param,offset){if(!empty(callback)&&!empty(param)){if(empty(offset))
offset=0;var cmdParam=new Array();for(var i=offset;i<param.length;i++){cmdParam.push(param[i]);}
callback.apply(null,cmdParam);}}
function focusInput(){var obj=document.getElementById("login_div_username");if(obj.value!=undefined&&obj.value!=null&&obj.value.length!=0){obj=document.getElementById("login_div_password");}
obj.focus();}
function refreshLoginStatus(element_id){new Ajax.Updater(element_id,'/loginStatusCheck.htm',{parameters:{sp:true}});}
var enabletabpersistence=0
var tabcontentIDs=new Object()
function expandcontent(linkobj){var ulid=linkobj.parentNode.parentNode.id
var ullist=document.getElementById(ulid).getElementsByTagName("li")
for(var i=0;i<ullist.length;i++){ullist[i].className=""
if(typeof tabcontentIDs[ulid][i]!="undefined")
document.getElementById(tabcontentIDs[ulid][i]).style.display="none"}
linkobj.parentNode.className="selected"
document.getElementById(linkobj.getAttribute("rel")).style.display="block"
saveselectedtabcontentid(ulid,linkobj.getAttribute("rel"))}
function savetabcontentids(ulid,relattribute){if(typeof tabcontentIDs[ulid]=="undefined")
tabcontentIDs[ulid]=new Array()
tabcontentIDs[ulid][tabcontentIDs[ulid].length]=relattribute}
function saveselectedtabcontentid(ulid,selectedtabid){if(enabletabpersistence==1)
setCookie(ulid,selectedtabid)}
function getullistlinkbyId(ulid,tabcontentid){var ullist=document.getElementById(ulid).getElementsByTagName("li")
for(var i=0;i<ullist.length;i++){if(ullist[i].getElementsByTagName("a")[0].getAttribute("rel")==tabcontentid){return ullist[i].getElementsByTagName("a")[0]
break}}}
function initializetabcontent(){for(var i=0;i<arguments.length;i++){if(enabletabpersistence==0&&getCookie(arguments[i])!="")
setCookie(arguments[i],"")
var clickedontab=getCookie(arguments[i])
var ulobj=document.getElementById(arguments[i])
var ulist=ulobj.getElementsByTagName("li")
for(var x=0;x<ulist.length;x++){var ulistlink=ulist[x].getElementsByTagName("a")[0]
if(ulistlink.getAttribute("rel")){savetabcontentids(arguments[i],ulistlink.getAttribute("rel"))
ulistlink.onclick=function(){expandcontent(this)
return false}
if(ulist[x].className=="selected"&&clickedontab=="")
expandcontent(ulistlink)}}
if(clickedontab!=""){var culistlink=getullistlinkbyId(arguments[i],clickedontab)
if(typeof culistlink!="undefined")
expandcontent(culistlink)
else
expandcontent(ulist[0].getElementsByTagName("a")[0])}}}
function getCookie(Name){var re=new RegExp(Name+"=[^;]+","i");if(document.cookie.match(re))
return document.cookie.match(re)[0].split("=")[1]
return""}
function setCookie(name,value){document.cookie=name+"="+value}
function propertyTypeChange(etid){initPriceRange(etid);}
function switchExchangeType(sequence,value){tabItems.each(function(item){item.removeClassName('green_tab_selected');});tabItems[sequence].addClassName('green_tab_selected');propertyTypeChange(value);$('etid').value=value;}
var tabItems=null;function initSearchTabs(containerID){tabItems=$$('#'+containerID+' .green_tab_left');}
function searchTabChange(tid){var value=tid.value;var etid;if(value==1){etid=3;$('etid').value=etid;}
if(value==2){etid=2;$('etid').value=etid;}
if(value==3){etid=1;$('etid').value=etid;}
if(value==4){etid=2;$('etid').value=etid;}
if(value==5){etid=2;$('etid').value=etid;}}
function onSizeRangeChange(obj){var value=parseInt(obj.value);switch(value){case 0:setSizeRange('','');break;case 1:setSizeRange('',50);break;case 2:setSizeRange(50,70);break;case 3:setSizeRange(70,90);break;case 4:setSizeRange(90,110);break;case 5:setSizeRange(110,130);break;case 6:setSizeRange(130,150);break;case 7:setSizeRange(150,200);break;case 8:setSizeRange(200,300);break;case 9:setSizeRange(300,500);break;case 10:setSizeRange(500,'');break;}}
function onNewCarPirceRangeChange(obj){var value=parseInt(obj.value);switch(value){case 0:setPriceRange('','');break;case 1:setPriceRange('',8);break;case 2:setPriceRange(8,12);break;case 3:setPriceRange(12,20);break;case 4:setPriceRange(20,30);break;case 5:setPriceRange(30,50);break;case 6:setPriceRange(50,'');break;}}
function onEmissionRangeChange(obj){var value=parseInt(obj.value);switch(value){case 0:setEmissionRange('','');break;case 1:setEmissionRange('',1);break;case 2:setEmissionRange(1.0,1.6);break;case 3:setEmissionRange(1.6,2.5);break;case 4:setEmissionRange(2.5,4.0);break;case 5:setEmissionRange(4.0,'');break;}}
function setSizeRange(v1,v2){obj$('sizeMin').setAttribute('value',v1);obj$('sizeMax').setAttribute('value',v2);}
function initPriceRange(etid){setPriceRange('','');etid=parseInt(etid);if(etid==3||etid==1){var data=[{id:0,name:'售价不限'},{id:1,name:'50万以下'},{id:2,name:'50-80万'},{id:3,name:'80-100万'},{id:4,name:'100-120万'},{id:5,name:'120-150万'},{id:6,name:'150-200万'},{id:7,name:'200-250万'},{id:8,name:'250-300万'},{id:9,name:'300-500万'},{id:10,name:'500-1000万'},{id:11,name:'1000万以上'}];obj$('priceSelector').setAttribute('etid',etid);dwr.util.removeAllOptions('priceSelector');dwr.util.addOptions('priceSelector',data,'id','name');}
if(etid==2){var data=[{id:20,name:'租金不限'},{id:21,name:'500元以下'},{id:22,name:'500-1000元'},{id:23,name:'1000-2000元'},{id:24,name:'2000-3000元'},{id:25,name:'3000-5000元'},{id:26,name:'5000-8000元'},{id:27,name:'8000-10000元'},{id:28,name:'10000元以上'}];obj$('priceSelector').setAttribute('etid',etid);dwr.util.removeAllOptions('priceSelector');dwr.util.addOptions('priceSelector',data,'id','name');}}
function onPriceRangeChange(obj){var value=parseInt(obj.value);switch(value){case 0:setPriceRange('','');break;case 1:setPriceRange('','50');break;case 2:setPriceRange('50','80');break;case 3:setPriceRange('80','100');break;case 4:setPriceRange('100','120');break;case 5:setPriceRange('120','150');break;case 6:setPriceRange('150','200');break;case 7:setPriceRange('200','250');break;case 8:setPriceRange('250','300');break;case 9:setPriceRange('300','500');break;case 10:setPriceRange('500','1000');break;case 11:setPriceRange('1000','');break;case 20:setPriceRange('','');break;case 21:setPriceRange('','500');break;case 22:setPriceRange('500','1000');break;case 23:setPriceRange('1000','2000');break;case 24:setPriceRange('2000','3000');break;case 25:setPriceRange('3000','5000');break;case 26:setPriceRange('5000','8000');break;case 27:setPriceRange('8000','10000');break;case 28:setPriceRange('10000','');break;case 29:setPriceRange('','');break;case 30:setPriceRange('','5000');break;case 31:setPriceRange('5000','8000');break;case 32:setPriceRange('8000','10000');break;case 33:setPriceRange('10000','15000');break;case 34:setPriceRange('15000','20000');break;case 35:setPriceRange('20000','30000');break;case 36:setPriceRange('30000','50000');break;case 37:setPriceRange('50000','');break;}}
function setPriceRange(v1,v2){obj$('priceMin').setAttribute('value',v1);obj$('priceMax').setAttribute('value',v2);}
function setEmissionRange(v1,v2){obj$('emissionMin').setAttribute('value',v1);obj$('emissionMax').setAttribute('value',v2);}
function onSecondCarPriceRangeChange(obj){var value=parseInt(obj.value);switch(value){case 0:setPriceRange('0','0');break;case 1:setPriceRange('0','3');break;case 2:setPriceRange('3','5');break;case 3:setPriceRange('5','8');break;case 4:setPriceRange('8','12');break;case 5:setPriceRange('12','18');break;case 6:setPriceRange('18','24');break;case 7:setPriceRange('24','40');break;case 8:setPriceRange('40','0');break;}}
var InputSuggestion=Class.create();InputSuggestion.prototype={initialize:function(target,populator,callback,autocomplete){this.target=target;this.populator=populator;this.callback=callback;this.lastKey=null;if(!empty(target)){this.autocomplete=empty(autocomplete)?true:autocomplete;target.inputSuggestionComponent=this;target.setAttribute("autocomplete","off");target.setAttribute("immediate","false");target.addClassName("autocomplete_text");Event.observe(target,"keyup",function(event){this.inputSuggestionComponent.suggest(event)});Event.observe(target,"mousemove",function(e){var obj=Event.element(e);if(!obj.movein){Event.stopObserving(document.body,"mousedown",obj.inputSuggestionComponent.closeSuggestionListener);obj.movein=true;}});Event.observe(target,"mouseout",function(e){var obj=Event.element(e);if(obj.movein){obj.inputSuggestionComponent.closeSuggestionListener=obj.inputSuggestionComponent.closeSuggestion.bindAsEventListener(obj.inputSuggestionComponent);Event.observe(document.body,"mousedown",obj.inputSuggestionComponent.closeSuggestionListener);obj.movein=false;}});var containerId='inputSuggestion'+Math.ceil(Math.random()*1000);this.containerId=containerId;new Insertion.Bottom(document.body,'<div id="'+containerId+'" class="showSuggestion" style="display:none;position:absolute;" ></div>');$(containerId).style.width=$(target).getWidth()+'px';this.suggestionContainer=$(containerId);this.suggestionContainer.inputSuggestionComponent=this;Event.observe(target,'blur',function(event){var obj=Event.element(event);if(obj.inputSuggestionComponent.suggestionContainer.style.display!='none'){obj.focus();}},true);Event.observe(this.suggestionContainer,"mousemove",function(e){if(!this.movein){var inputSuggestionComponent=this.inputSuggestionComponent;Event.stopObserving(document.body,"mousedown",inputSuggestionComponent.closeSuggestionHandler);this.movein=true;}});Event.observe(this.suggestionContainer,"mouseout",function(e){if(this.movein){var inputSuggestionComponent=this.inputSuggestionComponent;Event.observe(document.body,"mousedown",inputSuggestionComponent.closeSuggestionHandler);this.movein=false;}});this.lastKeyword="";this.resultOffset=0;this.pageSize=20;this.lastKey=null;this.closeSuggestionHandler=this.closeSuggestion.bindAsEventListener(this);Event.observe(document.body,"mousedown",this.closeSuggestionHandler);}},suggest:function(event){this.lastKey=event.keyCode;var obj=Event.element(event);if(!empty(obj)){if(this.lastKeyword==obj.value||obj.value.length==0)
return;else
this.lastKeyword=obj.value;var pos=findPosition(obj);this.suggestionContainer.setStyle({left:pos[0]+"px",top:pos[3]+"px",zIndex:999999});this.resultOffset=0;this.queryData(obj.value);}},queryData:function(keyword){if(!empty(this.populator)&&!empty(this.populator.query)){var callbackHandler=this.fillResult.bind(this);var errorHandler=this.showError.bind(this);this.populator.query(keyword,this.resultOffset,this.pageSize,{errorHandler:errorHandler,callback:callbackHandler});this.suggestionContainer.style.display="block";this.suggestionContainer.innerHTML="<p style='margin-top: 10px; margin-bottom: 10px;'>正在查询，请稍后……</p>";}},closeSuggestion:function(event){var element=Event.element(event);if(element.hasClassName('previousPageLink')||element.hasClassName('nextPageLink')||element.hasClassName('selectLink')||element.hasClassName('selectRegion')||element==this.suggestionContainer||empty(this.selectItems))
return;for(var i=0;i<this.selectItems.length;i++){if(this.selectItems[i]==element)
return;}
if(this.suggestionContainer.style.display!='none'){this.suggestionContainer.style.display="none";if(!this.autocomplete)
return;var obj=this.firstSuggestion;if(!empty(obj)){this.fillInput(obj);}else{this.clearValues();}}},clearValues:function(){if(!empty(this.callback)&&typeof(this.callback)=='object'){for(var prop in this.callback){if(!empty($(prop)))
$(prop).value='';}}},fillInput:function(obj){if(!empty(this.callback)){if(typeof(this.callback)=='function'){this.callback(obj);}else if(typeof(this.callback)=='string'){try{this.target.value=obj;}catch(e){;}}else if(typeof(this.callback)=='object'){for(var prop in this.callback){if(empty($(prop)))
new Insertion.After(this.target,'<input id="'+prop+'" name="'+prop+'" type="hidden" />');$(prop).value=obj[this.callback[prop]];}}}
this.firstSuggestion=null;if(!empty(this.suggestionContainer))
this.suggestionContainer.style.display="none";},fillResult:function(data){this.cachedResult=data;var obj=this.suggestionContainer;var suggestHtml="<ol class='autocomplete_list' >";if(data.length>0)
this.firstSuggestion=data[0];var i=0;if(data.length==1&&this.lastKey!=8&&this.resultOffset==0&&this.autocomplete){if(!empty(data[0]))
this.fillInput(data[0]);return;}
for(i=0;i<data.length;i++){if(empty(data[i]))
continue;suggestHtml+="<li class='item "+(i==0?"first_item":"")+"' onmouseover='$(this).addClassName(\"current_item\");' onmouseout='$(this).removeClassName(\"current_item\");' >";if(!empty(this.populator)&&!empty(this.populator.formatter)){suggestHtml+=this.populator.formatter(data[i]);}else if(!empty(this.populator)&&!empty(this.populator.field)){suggestHtml+=data[i][this.populator.field];}else if(typeof(data[i])=='string')
suggestHtml+=data[i];suggestHtml+="</li>";}
if(i==0){suggestHtml+="<li class='item first_item' >";if(empty(this.resultOffset)||this.resultOffset==0){$(obj).hide();return;}else{suggestHtml+="<a href='javascript:void(0);' class='previousPageLink' >上一页</a>";}
suggestHtml+="</li>";}else{suggestHtml+="<li class='item' style='text-align:right;' >";if(this.resultOffset>0)
suggestHtml+="<a href='javascript:void(0);' class='previousPageLink' >上一页</a>";if(data.length==this.pageSize)
suggestHtml+="&nbsp;&nbsp;<a href='javascript:void(0);' class='nextPageLink' >下一页</a>";suggestHtml+="</li>";}
suggestHtml+="</ol>";obj.innerHTML=suggestHtml;obj.style.display='block';this.bindEventListeners();},showError:function(msg){this.suggestionContainer.hide();alert(msg);},handleUserSelection:function(e){var item=Event.element(e);if(!empty(item)&&!empty(this.cachedResult)){this.fillInput(this.cachedResult[item.index]);}},bindEventListeners:function(){this.selectItems=new Array();$$('#'+this.containerId+' li.item').each(function(item,index){this.selectItems.push(item);item.index=index;$(item).setStyle({width:(this.suggestionContainer.getWidth()-20)+'px',overflow:'hidden',whiteSpace:'nowrap',textOverflow:'ellipsis'});var handler=this.handleUserSelection.bindAsEventListener(this);Event.observe(item,"click",handler);},this);$$('#'+this.containerId+' li.item a.selectLink').each(function(item,index){item.index=index;var handler=this.handleUserSelection.bindAsEventListener(this);Event.observe(item,"click",handler);},this);$$('#'+this.containerId+' li.item .selectRegion').each(function(item,index){item.index=index;var handler=this.handleUserSelection.bindAsEventListener(this);Event.observe(item,"click",handler);},this);$$('#'+this.containerId+' a.previousPageLink').each(function(link){var handler=this.previousPage.bindAsEventListener(this);Event.observe(link,"click",handler);},this);$$('#'+this.containerId+' a.nextPageLink').each(function(link){var handler=this.nextPage.bindAsEventListener(this);Event.observe(link,"click",handler);},this);},nextPage:function(e){this.resultOffset+=this.pageSize;this.queryData(this.lastKeyword);},previousPage:function(e){if(this.resultOffset>=this.pageSize){this.resultOffset-=this.pageSize;this.queryData(this.lastKeyword);}}};