/*  Prototype JavaScript framework, version 1.4.0
 *  (c) 2005 Sam Stephenson <sam@conio.net>
 *
 *  Prototype is freely distributable under the terms of an MIT-style license.
 *  For details, see the Prototype web site: http://prototype.conio.net/
 *
/*--------------------------------------------------------------------------*/
var Prototype={Version:'1.4.0',ScriptFragment:'(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',emptyFunction:function(){},K:function(x){return x}}
var Class={create:function(){return function(){this.initialize.apply(this,arguments);}}}
var Abstract=new Object();Object.extend=function(destination,source){for(property in source){destination[property]=source[property];}
return destination;}
Object.inspect=function(object){try{if(object==undefined)return'undefined';if(object==null)return'null';return object.inspect?object.inspect():object.toString();}catch(e){if(e instanceof RangeError)return'...';throw e;}}
Function.prototype.bind=function(){var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)));}}
Function.prototype.bindAsEventListener=function(object){var __method=this;return function(event){return __method.call(object,event||window.event);}}
Object.extend(Number.prototype,{toColorPart:function(){var digits=this.toString(16);if(this<16)return'0'+digits;return digits;},succ:function(){return this+1;},times:function(iterator){$R(0,this,true).each(iterator);return this;}});var Try={these:function(){var returnValue;for(var i=0;i<arguments.length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}}
var PeriodicalExecuter=Class.create();PeriodicalExecuter.prototype={initialize:function(callback,frequency){this.callback=callback;this.frequency=frequency;this.currentlyExecuting=false;this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback();}finally{this.currentlyExecuting=false;}}}}
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;}
Object.extend(String.prototype,{stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'');},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');},extractScripts:function(){var matchAll=new RegExp(Prototype.ScriptFragment,'img');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});},evalScripts:function(){return this.extractScripts().map(eval);},escapeHTML:function(){var div=document.createElement('div');var text=document.createTextNode(this);div.appendChild(text);return div.innerHTML;},unescapeHTML:function(){var div=document.createElement('div');div.innerHTML=this.stripTags();return div.childNodes[0]?div.childNodes[0].nodeValue:'';},toQueryParams:function(){var pairs=this.match(/^\??(.*)$/)[1].split('&');return pairs.inject({},function(params,pairString){var pair=pairString.split('=');params[pair[0]]=pair[1];return params;});},toArray:function(){return this.split('');},camelize:function(){var oStringList=this.split('-');if(oStringList.length==1)return oStringList[0];var camelizedString=this.indexOf('-')==0?oStringList[0].charAt(0).toUpperCase()+oStringList[0].substring(1):oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
return camelizedString;},inspect:function(){return"'"+this.replace('\\','\\\\').replace("'",'\\\'')+"'";}});String.prototype.parseQuery=String.prototype.toQueryParams;var $break=new Object();var $continue=new Object();var Enumerable={each:function(iterator){var index=0;try{this._each(function(value){try{iterator(value,index++);}catch(e){if(e!=$continue)throw e;}});}catch(e){if(e!=$break)throw e;}},all:function(iterator){var result=true;this.each(function(value,index){result=result&&!!(iterator||Prototype.K)(value,index);if(!result)throw $break;});return result;},any:function(iterator){var result=true;this.each(function(value,index){if(result=!!(iterator||Prototype.K)(value,index))
throw $break;});return result;},collect:function(iterator){var results=[];this.each(function(value,index){results.push(iterator(value,index));});return results;},detect:function(iterator){var result;this.each(function(value,index){if(iterator(value,index)){result=value;throw $break;}});return result;},findAll:function(iterator){var results=[];this.each(function(value,index){if(iterator(value,index))
results.push(value);});return results;},grep:function(pattern,iterator){var results=[];this.each(function(value,index){var stringValue=value.toString();if(stringValue.match(pattern))
results.push((iterator||Prototype.K)(value,index));})
return results;},include:function(object){var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;},inject:function(memo,iterator){this.each(function(value,index){memo=iterator(memo,value,index);});return memo;},invoke:function(method){var args=$A(arguments).slice(1);return this.collect(function(value){return value[method].apply(value,args);});},max:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(value>=(result||value))
result=value;});return result;},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(value<=(result||value))
result=value;});return result;},partition:function(iterator){var trues=[],falses=[];this.each(function(value,index){((iterator||Prototype.K)(value,index)?trues:falses).push(value);});return[trues,falses];},pluck:function(property){var results=[];this.each(function(value,index){results.push(value[property]);});return results;},reject:function(iterator){var results=[];this.each(function(value,index){if(!iterator(value,index))
results.push(value);});return results;},sortBy:function(iterator){return this.collect(function(value,index){return{value:value,criteria:iterator(value,index)};}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0;}).pluck('value');},toArray:function(){return this.collect(Prototype.K);},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(typeof args.last()=='function')
iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){iterator(value=collections.pluck(index));return value;});},inspect:function(){return'#<Enumerable:'+this.toArray().inspect()+'>';}}
Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});var $A=Array.from=function(iterable){if(!iterable)return[];if(iterable.toArray){return iterable.toArray();}else{var results=[];for(var i=0;i<iterable.length;i++)
results.push(iterable[i]);return results;}}
Object.extend(Array.prototype,Enumerable);Array.prototype._reverse=Array.prototype.reverse;Object.extend(Array.prototype,{_each:function(iterator){for(var i=0;i<this.length;i++)
iterator(this[i]);},clear:function(){this.length=0;return this;},first:function(){return this[0];},last:function(){return this[this.length-1];},compact:function(){return this.select(function(value){return value!=undefined||value!=null;});},flatten:function(){return this.inject([],function(array,value){return array.concat(value.constructor==Array?value.flatten():[value]);});},without:function(){var values=$A(arguments);return this.select(function(value){return!values.include(value);});},indexOf:function(object){for(var i=0;i<this.length;i++)
if(this[i]==object)return i;return-1;},reverse:function(inline){return(inline!==false?this:this.toArray())._reverse();},shift:function(){var result=this[0];for(var i=0;i<this.length-1;i++)
this[i]=this[i+1];this.length--;return result;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';}});var Hash={_each:function(iterator){for(key in this){var value=this[key];if(typeof value=='function')continue;var pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}},keys:function(){return this.pluck('key');},values:function(){return this.pluck('value');},merge:function(hash){return $H(hash).inject($H(this),function(mergedHash,pair){mergedHash[pair.key]=pair.value;return mergedHash;});},toQueryString:function(){return this.map(function(pair){return pair.map(encodeURIComponent).join('=');}).join('&');},inspect:function(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';}}
function $H(object){var hash=Object.extend({},object||{});Object.extend(hash,Enumerable);Object.extend(hash,Hash);return hash;}
ObjectRange=Class.create();Object.extend(ObjectRange.prototype,Enumerable);Object.extend(ObjectRange.prototype,{initialize:function(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;},_each:function(iterator){var value=this.start;do{iterator(value);value=value.succ();}while(this.include(value));},include:function(value){if(value<this.start)
return false;if(this.exclusive)
return value<this.end;return value<=this.end;}});var $R=function(start,end,exclusive){return new ObjectRange(start,end,exclusive);}
var Ajax={getTransport:function(){return Try.these(function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')},function(){return new XMLHttpRequest()})||false;},activeRequestCount:0}
Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator);},register:function(responderToAdd){if(!this.include(responderToAdd))
this.responders.push(responderToAdd);},unregister:function(responderToRemove){this.responders=this.responders.without(responderToRemove);},dispatch:function(callback,request,transport,json){this.each(function(responder){if(responder[callback]&&typeof responder[callback]=='function'){try{responder[callback].apply(responder,[request,transport,json]);}catch(e){}}});}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++;},onComplete:function(){Ajax.activeRequestCount--;}});Ajax.Base=function(){};Ajax.Base.prototype={setOptions:function(options){this.options={method:'post',asynchronous:true,parameters:''}
Object.extend(this.options,options||{});},responseIsSuccess:function(){return this.transport.status==undefined||this.transport.status==0||(this.transport.status>=200&&this.transport.status<300);},responseIsFailure:function(){return!this.responseIsSuccess();}}
Ajax.Request=Class.create();Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Request.prototype=Object.extend(new Ajax.Base(),{initialize:function(url,options){this.transport=Ajax.getTransport();this.setOptions(options);this.request(url);},request:function(url){var parameters=this.options.parameters||'';if(parameters.length>0)parameters+='&_=';try{this.url=url;if(this.options.method=='get'&&parameters.length>0)
this.url+=(this.url.match(/\?/)?'&':'?')+parameters;Ajax.Responders.dispatch('onCreate',this,this.transport);this.transport.open(this.options.method,this.url,this.options.asynchronous);if(this.options.asynchronous){this.transport.onreadystatechange=this.onStateChange.bind(this);setTimeout((function(){this.respondToReadyState(1)}).bind(this),10);}
this.setRequestHeaders();var body=this.options.postBody?this.options.postBody:parameters;this.transport.send(this.options.method=='post'?body:null);}catch(e){this.dispatchException(e);}},setRequestHeaders:function(){var requestHeaders=['X-Requested-With','XMLHttpRequest','X-Prototype-Version',Prototype.Version];if(this.options.method=='post'){requestHeaders.push('Content-type','application/x-www-form-urlencoded');if(this.transport.overrideMimeType)
requestHeaders.push('Connection','close');}
if(this.options.requestHeaders)
requestHeaders.push.apply(requestHeaders,this.options.requestHeaders);for(var i=0;i<requestHeaders.length;i+=2)
this.transport.setRequestHeader(requestHeaders[i],requestHeaders[i+1]);},onStateChange:function(){var readyState=this.transport.readyState;if(readyState!=1)
this.respondToReadyState(this.transport.readyState);},header:function(name){try{return this.transport.getResponseHeader(name);}catch(e){}},evalJSON:function(){try{return eval(this.header('X-JSON'));}catch(e){}},evalResponse:function(){try{return eval(this.transport.responseText);}catch(e){this.dispatchException(e);}},respondToReadyState:function(readyState){var event=Ajax.Request.Events[readyState];var transport=this.transport,json=this.evalJSON();if(event=='Complete'){try{(this.options['on'+this.transport.status]||this.options['on'+(this.responseIsSuccess()?'Success':'Failure')]||Prototype.emptyFunction)(transport,json);}catch(e){this.dispatchException(e);}
if((this.header('Content-type')||'').match(/^text\/javascript/i))
this.evalResponse();}
try{(this.options['on'+event]||Prototype.emptyFunction)(transport,json);Ajax.Responders.dispatch('on'+event,this,transport,json);}catch(e){this.dispatchException(e);}
if(event=='Complete')
this.transport.onreadystatechange=Prototype.emptyFunction;},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Updater=Class.create();Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(container,url,options){this.containers={success:container.success?$(container.success):$(container),failure:container.failure?$(container.failure):(container.success?null:$(container))}
this.transport=Ajax.getTransport();this.setOptions(options);var onComplete=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(transport,object){this.updateContent();onComplete(transport,object);}).bind(this);this.request(url);},updateContent:function(){var receiver=this.responseIsSuccess()?this.containers.success:this.containers.failure;var response=this.transport.responseText;if(!this.options.evalScripts)
response=response.stripScripts();if(receiver){if(this.options.insertion){new this.options.insertion(receiver,response);}else{Element.update(receiver,response);}}
if(this.responseIsSuccess()){if(this.onComplete)
setTimeout(this.onComplete.bind(this),10);}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(container,url,options){this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;}
this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});document.getElementsByClassName=function(className,parentElement){var children=($(parentElement)||document.body).getElementsByTagName('*');return $A(children).inject([],function(elements,child){if(child.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))
elements.push(child);return elements;});}
if(!window.Element){var Element=new Object();}
Object.extend(Element,{visible:function(element){return $(element).style.display!='none';},toggle:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);Element[Element.visible(element)?'hide':'show'](element);}},hide:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);element.style.display='none';}},show:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);element.style.display='';}},remove:function(element){element=$(element);element.parentNode.removeChild(element);},update:function(element,html){$(element).innerHTML=html.stripScripts();setTimeout(function(){html.evalScripts()},10);},getHeight:function(element){element=$(element);return element.offsetHeight;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).include(className);},addClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).add(className);},removeClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).remove(className);},cleanWhitespace:function(element){element=$(element);for(var i=0;i<element.childNodes.length;i++){var node=element.childNodes[i];if(node.nodeType==3&&!/\S/.test(node.nodeValue))
Element.remove(node);}},empty:function(element){return $(element).innerHTML.match(/^\s*$/);},scrollTo:function(element){element=$(element);var x=element.x?element.x:element.offsetLeft,y=element.y?element.y:element.offsetTop;window.scrollTo(x,y);},getStyle:function(element,style){element=$(element);var value=element.style[style.camelize()];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(style):null;}else if(element.currentStyle){value=element.currentStyle[style.camelize()];}}
if(window.opera&&['left','top','right','bottom'].include(style))
if(Element.getStyle(element,'position')=='static')value='auto';return value=='auto'?null:value;},setStyle:function(element,style){element=$(element);for(name in style)
element.style[name.camelize()]=style[name];},getDimensions:function(element){element=$(element);if(Element.getStyle(element,'display')!='none')
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;els.visibility='hidden';els.position='absolute';els.display='';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display='none';els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(window.opera){element.style.top=0;element.style.left=0;}}},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='';}},makeClipping:function(element){element=$(element);if(element._overflow)return;element._overflow=element.style.overflow;if((Element.getStyle(element,'overflow')||'visible')!='hidden')
element.style.overflow='hidden';},undoClipping:function(element){element=$(element);if(element._overflow)return;element.style.overflow=element._overflow;element._overflow=undefined;}});var Toggle=new Object();Toggle.display=Element.toggle;Abstract.Insertion=function(adjacency){this.adjacency=adjacency;}
Abstract.Insertion.prototype={initialize:function(element,content){this.element=$(element);this.content=content.stripScripts();if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){if(this.element.tagName.toLowerCase()=='tbody'){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.insertContent([this.range.createContextualFragment(this.content)]);}
setTimeout(function(){content.evalScripts()},10);},contentFromAnonymousTable:function(){var div=document.createElement('div');div.innerHTML='<table><tbody>'+this.content+'</tbody></table>';return $A(div.childNodes[0].childNodes[0].childNodes);}}
var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion('beforeBegin'),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element);}).bind(this));}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion('afterBegin'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(fragments){fragments.reverse(false).each((function(fragment){this.element.insertBefore(fragment,this.element.firstChild);}).bind(this));}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion('beforeEnd'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.appendChild(fragment);}).bind(this));}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion('afterEnd'),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element.nextSibling);}).bind(this));}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set(this.toArray().concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set(this.select(function(className){return className!=classNameToRemove;}).join(' '));},toString:function(){return this.toArray().join(' ');}}
Object.extend(Element.ClassNames.prototype,Enumerable);var Field={clear:function(){for(var i=0;i<arguments.length;i++)
$(arguments[i]).value='';},focus:function(element){$(element).focus();},present:function(){for(var i=0;i<arguments.length;i++)
if($(arguments[i]).value=='')return false;return true;},select:function(element){$(element).select();},activate:function(element){element=$(element);element.focus();if(element.select)
element.select();}}
var Form={serialize:function(form){var elements=Form.getElements($(form));var queryComponents=new Array();for(var i=0;i<elements.length;i++){var queryComponent=Form.Element.serialize(elements[i]);if(queryComponent)
queryComponents.push(queryComponent);}
return queryComponents.join('&');},getElements:function(form){form=$(form);var elements=new Array();for(tagName in Form.Element.Serializers){var tagElements=form.getElementsByTagName(tagName);for(var j=0;j<tagElements.length;j++)
elements.push(tagElements[j]);}
return elements;},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)
return inputs;var matchingInputs=new Array();for(var i=0;i<inputs.length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))
continue;matchingInputs.push(input);}
return matchingInputs;},disable:function(form){var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.blur();element.disabled='true';}},enable:function(form){var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.disabled='';}},findFirstElement:function(form){return Form.getElements(form).find(function(element){return element.type!='hidden'&&!element.disabled&&['input','select','textarea'].include(element.tagName.toLowerCase());});},focusFirstElement:function(form){Field.activate(Form.findFirstElement(form));},reset:function(form){$(form).reset();}}
Form.Element={serialize:function(element){element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter){var key=encodeURIComponent(parameter[0]);if(key.length==0)return;if(parameter[1].constructor!=Array)
parameter[1]=[parameter[1]];return parameter[1].map(function(value){return key+'='+encodeURIComponent(value);}).join('&');}},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter)
return parameter[1];}}
Form.Element.Serializers={input:function(element){switch(element.type.toLowerCase()){case'submit':case'hidden':case'password':case'text':return Form.Element.Serializers.textarea(element);case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element);}
return false;},inputSelector:function(element){if(element.checked)
return[element.name,element.value];},textarea:function(element){return[element.name,element.value];},select:function(element){return Form.Element.Serializers[element.type=='select-one'?'selectOne':'selectMany'](element);},selectOne:function(element){var value='',opt,index=element.selectedIndex;if(index>=0){opt=element.options[index];value=opt.value;if(!value&&!('value'in opt))
value=opt.text;}
return[element.name,value];},selectMany:function(element){var value=new Array();for(var i=0;i<element.length;i++){var opt=element.options[i];if(opt.selected){var optValue=opt.value;if(!optValue&&!('value'in opt))
optValue=opt.text;value.push(optValue);}}
return[element.name,value];}}
var $F=Form.Element.getValue;Abstract.TimedObserver=function(){}
Abstract.TimedObserver.prototype={initialize:function(element,frequency,callback){this.frequency=frequency;this.element=$(element);this.callback=callback;this.lastValue=this.getValue();this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}}}
Form.Element.Observer=Class.create();Form.Element.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create();Form.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=function(){}
Abstract.EventObserver.prototype={initialize:function(element,callback){this.element=$(element);this.callback=callback;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=='form')
this.registerFormCallbacks();else
this.registerCallback(this.element);},onElementEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}},registerFormCallbacks:function(){var elements=Form.getElements(this.element);for(var i=0;i<elements.length;i++)
this.registerCallback(elements[i]);},registerCallback:function(element){if(element.type){switch(element.type.toLowerCase()){case'checkbox':case'radio':Event.observe(element,'click',this.onElementEvent.bind(this));break;case'password':case'text':case'textarea':case'select-one':case'select-multiple':Event.observe(element,'change',this.onElementEvent.bind(this));break;}}}}
Form.Element.EventObserver=Class.create();Form.Element.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create();Form.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.serialize(this.element);}});if(!window.Event){var Event=new Object();}
Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},pointerX:function(event){return event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft));},pointerY:function(event){return event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop));},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}},findElement:function(event,tagName){var element=Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
element=element.parentNode;return element;},observers:false,_observeAndCache:function(element,name,observer,useCapture){if(!this.observers)this.observers=[];if(element.addEventListener){this.observers.push([element,name,observer,useCapture]);element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){this.observers.push([element,name,observer,useCapture]);element.attachEvent('on'+name,observer);}},unloadCache:function(){if(!Event.observers)return;for(var i=0;i<Event.observers.length;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null;}
Event.observers=false;},observe:function(element,name,observer,useCapture){var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';this._observeAndCache(element,name,observer,useCapture);},stopObserving:function(element,name,observer,useCapture){var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))
name='keydown';if(element.removeEventListener){element.removeEventListener(name,observer,useCapture);}else if(element.detachEvent){element.detachEvent('on'+name,observer);}}});Event.observe(window,'unload',Event.unloadCache,false);var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},realOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return[valueL,valueT];},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return[valueL,valueT];},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){p=Element.getStyle(element,'position');if(p=='relative'||p=='absolute')break;}}while(element);return[valueL,valueT];},offsetParent:function(element){if(element.offsetParent)return element.offsetParent;if(element==document.body)return element;while((element=element.parentNode)&&element!=document.body)
if(Element.getStyle(element,'position')!='static')
return element;return document.body;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=this.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=this.realOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=this.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
return((this.offset[1]+element.offsetHeight)-this.ycomp)/
element.offsetHeight;if(mode=='horizontal')
return((this.offset[0]+element.offsetWidth)-this.xcomp)/
element.offsetWidth;},clone:function(source,target){source=$(source);target=$(target);target.style.position='absolute';var offsets=this.cumulativeOffset(source);target.style.top=offsets[1]+'px';target.style.left=offsets[0]+'px';target.style.width=source.offsetWidth+'px';target.style.height=source.offsetHeight+'px';},page:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}while(element=element.parentNode);return[valueL,valueT];},clone:function(source,target){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{})
source=$(source);var p=Position.page(source);target=$(target);var delta=[0,0];var parent=null;if(Element.getStyle(target,'position')=='absolute'){parent=Position.offsetParent(target);delta=Position.page(parent);}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)target.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)target.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)target.style.width=source.offsetWidth+'px';if(options.setHeight)target.style.height=source.offsetHeight+'px';},absolutize:function(element){element=$(element);if(element.style.position=='absolute')return;Position.prepare();var offsets=Position.positionedOffset(element);var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';;element.style.left=left+'px';;element.style.width=width+'px';;element.style.height=height+'px';;},relativize:function(element){element=$(element);if(element.style.position=='relative')return;Position.prepare();element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;}}
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){Position.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return[valueL,valueT];}}
function checkUserType(){var browserType=new checkBrowserType();var osType=new checkOsType();function checkBrowserType(){this.IE=(navigator.userAgent.indexOf("MSIE")!=-1);this.Gecko=(navigator.userAgent.indexOf("Gecko")!=-1);this.IE6=(navigator.userAgent.indexOf("MSIE 6.")!=-1);this.IE5=(navigator.userAgent.indexOf("MSIE 5.")!=-1);this.NC71=(navigator.userAgent.indexOf("Netscape/7.1")!=-1);this.NC70=(navigator.userAgent.indexOf("Netscape/7.0")!=-1);this.NC6=(navigator.userAgent.indexOf("Netscape/6.")!=-1);this.NC7=(navigator.userAgent.indexOf("Netscape/7.")!=-1);this.NC4=(navigator.userAgent.indexOf("Netscape/4.")!=-1);}
function checkOsType(){this.Win=(navigator.appVersion.indexOf("Win")!=-1);this.Mac=(navigator.appVersion.indexOf("Mac")!=-1);this.Unix=(navigator.appVersion.indexOf("X11")!=-1);}
if(browserType.IE){return("IE");}}
function initRollovers(){if(!document.getElementById)return
var aPreLoad=new Array();var sTempSrc;var aImages=document.getElementsByTagName('img');for(var i=0;i<aImages.length;i++){if(aImages[i].className=='imgover'){var src=aImages[i].getAttribute('src');var ftype=src.substring(src.lastIndexOf('.'),src.length);var hsrc=src.replace(ftype,'_on'+ftype);aImages[i].setAttribute('hsrc',hsrc);aPreLoad[i]=new Image();aPreLoad[i].src=hsrc;aImages[i].onmouseover=function(){sTempSrc=this.getAttribute('src');this.setAttribute('src',this.getAttribute('hsrc'));}
aImages[i].onmouseout=function(){if(!sTempSrc)sTempSrc=this.getAttribute('src').replace('_on'+ftype,ftype);this.setAttribute('src',sTempSrc);}}}}
function setMinMaxWidth(){var browserType=checkUserType("browser");if(!browserType){return false;}else if(browserType=="IE"){var windowWidth=document.body.clientWidth;var wrapper=document.getElementById("wrapper")
if(!wrapper){return false;}else{if(windowWidth<=880){document.getElementById("wrapper").style.width='852px';}else{document.getElementById("wrapper").style.width='auto';}}}else{return false;}}
window.onload=function(){initRollovers();setMinMaxWidth();}
window.onresize=function(){setMinMaxWidth();}
function omitControlCode(str){return str.replace(/[\u0000-\u001F\u007F-\u009F]/g,"");}
var rootPath="";function getElementValueByName(nodeList,nodeName){var nodeEl=nodeList.getElementsByTagName(nodeName);var nodeValue="";if(nodeEl[0].firstChild!=null){nodeValue=nodeEl[0].firstChild.nodeValue;}
return nodeValue;}
function trim(str){return str.replace(/^\s+|\s+$/g,"");}
function lTrim(str){str=str.replace(RegExp("^ *"),"");return str;}
function rTrim(str){str=str.replace(RegExp(" *$"),"");return str;}
function tranStrToASCII(str){str=encodeURIComponent(str);str=str.replace(/'/gi,"%27");str=str.replace(/\./gi,"%2E");str=str.replace(/~/gi,"%7E");return str;}
function removeThisClip(id){var key="bm-"+id;var title=$(key).innerHTML.unescapeHTML();var msg="『"+title+"』を削除します。よろしいですか?";var ret=confirm(msg);if(ret==0){return;}
var url="/delete?bookmarkId="+id;window.location=url;}
function setDisplayNumberValue(obj){value=obj.options[obj.selectedIndex].value;}
function setImgDisplay(id,flg){document.getElementById(id).value=flg;}
function setDisplayNumberCookie(obj){value=obj.options[obj.selectedIndex].value;var myDay=14;var myCookie="DispNumber"
myExp=new Date();myExp.setTime(myExp.getTime()+(myDay*24*60*60*1000));myItem="@"+myCookie+"="+escape(value)+";";myExpires="expires="+myExp.toGMTString()+";";mypath="path=/;";document.cookie=myItem+myExpires+mypath;}
function setBookmarksSortCookie(obj){value=obj.options[obj.selectedIndex].value;var myDay=14;var myCookie="BookmarksSortFlag"
myExp=new Date();myExp.setTime(myExp.getTime()+(myDay*24*60*60*1000));myItem="@"+myCookie+"="+escape(value)+";";myExpires="expires="+myExp.toGMTString()+";";mypath="path=/;";document.cookie=myItem+myExpires+mypath;}
function getDisplayNumberCookie(){myCookie="DispNumber";myCookie="@"+myCookie+"=";myValue=null;myStr=document.cookie+";";myOfst=myStr.indexOf(myCookie);if(myOfst!=-1){myStart=myOfst+myCookie.length;myEnd=myStr.indexOf(";",myStart);myValue=unescape(myStr.substring(myStart,myEnd));}
return myValue;}
SELECTED_LI_ID=null;SELECTED_LI_NAME=null;function loadBookmarksByTagname(e,tagid,tagname){var decodeTagname=decodeURIComponent(tagname);Event.stop(e);var displayTagName=document.getElementById("noticeTagName");var watchWatchHref=document.getElementById("watchWatchHref");var noticeTags=document.getElementById("noticeTagId:"+tagid);if(typeof(displayTagName.innerHTML)!="undefined"){displayTagName.innerHTML=decodeTagname;}
if(typeof(watchWatchHref.innerHTML)!="undefined"){watchWatchHref.innerHTML="<a href=\"/tag/"+encodeURI(decodeTagname)+"\">もっと見る</a>";}
if(typeof(noticeTags.innerHTML)!="undefined"){if(SELECTED_LI_ID){var oldLiObj=document.getElementById("noticeTagId:"+SELECTED_LI_ID);var selectedTagname=oldLiObj.firstChild.innerHTML;oldLiObj.innerHTML="<a onclick = 'loadBookmarksByTagname(event, \""+SELECTED_LI_ID+"\", \""+SELECTED_LI_NAME+"\")' href='/?tag="+encodeURIComponent(unsanitize(selectedTagname))+"'>"+selectedTagname+"</a> ";}
SELECTED_LI_ID=tagid;SELECTED_LI_NAME=tagname;noticeTags.innerHTML="<span>"+decodeTagname+"</span> ";}
new Ajax.Updater('noticeBookmarks','/ajax/noticetag?select_tagid='+encodeURI(tagid),{method:'get'});return false;}
function unsanitize(text){var ret=sReplaceAll(text,"&lt;","<");ret=sReplaceAll(ret,"&gt;",">");ret=sReplaceAll(ret,"&quot;","\"");ret=sReplaceAll(ret,"&#039;","\'");ret=sReplaceAll(ret,"&nbsp;"," ");ret=sReplaceAll(ret,"&amp;","&");return ret;}
function sReplaceAll(text,regex,replacement){var str=new String(text);str=str.split(regex);str=str.join(replacement);return str;}
function entryPageCounter(userId,urlId){var url='/ajax/entrypagecounter';var pars='userid='+userId+'&urlid='+urlId;if(userId!=null&&userId!=""){pars='userid='+userId+'&urlid='+urlId;}else{pars='urlid='+urlId;}
new Ajax.Request(url,{method:'get',parameters:pars,onComplete:entryPageCounterSuccess});}
function entryPageCounterSuccess(){return null;}
function titleUpdateButton(urlId){$('viewTitle').style.display="none";$('viewTitleEdit').style.display="";if($('lastEditor')!=null){$('lastEditor').style.display="";}
holdTagList();}
function titleUpdateButtonSeccond(urlId){$('viewTitle').style.display="none";$('viewTitleEdit').style.display="";if($('lastEditor')!=null){$('lastEditor').style.display="";}
$('title').value=$('hiddencaption').value;$('tagList').innerHTML=$('hiddentaglist').value;holdTagList();}
function holdTagList(){$('hiddentaglist').value=$('tagList').innerHTML;}
function titleOnChange(urlId){holdTagList();var inputTitle=$('title').value;document.title=inputTitle+"｜@nifty クリップ";var url='/ajax/updatebookmarktitle';var pars='newtitle='+encodeURIComponent(inputTitle)+"&urlid="+urlId+"&randomid"+Math.random();new Ajax.Request(url,{method:'get',parameters:pars,onComplete:updateTitleSuccess});}
function updateTitleSuccess(res){$('clipTitle').innerHTML=res.responseText;$('tagList').innerHTML=$('hiddentaglist').value;holdTagList();}
function showLength(str){document.getElementById("inputlength").innerHTML=str.length+"/100";if(str.length>100){document.getElementById("overlength").style.display='inline';document.getElementById("overlength").style.color='red';document.getElementById("inputlength").style.color='red';}else{document.getElementById("overlength").style.display='none';document.getElementById("overlength").style.color='';document.getElementById("inputlength").style.color='';}}
function closeWindow(t){setTimeout(function(){(window.open('','_self').opener=window).close()},(t||0));}
UPDATE_USER_FLG=false;window.isMSIE=/*@cc_on!@*/false;if(window.isMSIE){try{document.execCommand('BackgroundImageCache',false,true);}catch(e){}}
var escapeHTML=(function(){var entities={'&':'amp','<':'lt','>':'gt','\"':'quot','\'':'#039',' ':'nbsp'};return function(str){return str.replace(/[&<>\"\' ]/g,function(match){return'&'+entities[match]+';'});}})();var unescapeHTML=(function(){var entities={'lt':'<','gt':'>','quot':'\"','#039':'\'','nbsp':' ','amp':'&'};return function(str){return str.replace(/&(lt|gt|quot|#039|nbsp|amp);/g,function(match,match1){return entities[match1]});}})();var eventClone=function(e){return{type:e.type,target:Event.element(e),clientX:e.clientX,clientY:e.clientY}}
function init(tagList,sort){Layer.init('invisible_layer');URL='/ajax/edittag/'+USER_NAME;var $input=$('tagSearch');Event.observe($input,'keyup',function(e){Tags.search(Event.element(e),'searchPreValue','showTagList',true);});Tags.executeTagList.call(Tags,tagList,Tags.getSortCriteriaCookie('@TagsSort')||sort);}
function executeAjaxRequest(p,action,callback){var Object=this;new Ajax.Request(URL,{method:'post',parameters:$H(p).toQueryString(),onFailure:function(xhr){alert("\u901a\u4fe1\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u518d\u8aad\u307f\u8fbc\u307f\u3057\u307e\u3059\u3002\u3002\n\u30ea\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002");},onComplete:function(xhr){},onException:function(xhr,e){throw e;},onSuccess:function(xhr){if(!xhr){alert("\u901a\u4fe1\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u518d\u8aad\u307f\u8fbc\u307f\u3057\u307e\u3059\u3002\u3002\n\u30ea\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002");return;}
var json=eval("("+xhr.responseText+")");if(json.status.code==9){alert(json.status.message);Tags.executeTagList.call(Tags,Tags.tagList,Tags.sortCriteria,true);return;}
callback.call(Object,json);}});}
var Delete=Class.create();Delete.prototype={initialize:function(tagnameElem){this.tagnameElem=tagnameElem;},executeSubmit:function(e){var tagname=Tags.tagname;if(window.confirm("\u300c"+tagname+"\u300d\u3092\u524a\u9664\u3057\u307e\u3059\u3002\n\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f")){executeAjaxRequest.call(this,{command:'delete',select_tags:[tagname],token:[TOKEN]},action="delete",this.view);}},view:function(json){Tags.executeTagList.call(Tags,json.tag.list,Tags.sortCriteria,true);}}
var Rename=Class.create();Rename.prototype={initialize:function(tagnameElem,tagname){this.tagnameElem=tagnameElem;this.tagnameElemInnerHTML=tagnameElem.innerHTML;this.tagname=tagname;this.newTagname='';this.inputElem=null;this.isConfirm=false;},executeShowInput:function(e){this.showInput();},executeSubmit:function(e){if(this.isConfirm){return;}
this.isConfirm=true;var newTagname=this.newTagname=trim(omitDoubleQuoteCode(this.inputElem.value));if(newTagname!=''&&this.tagname!=newTagname&&window.confirm("\u300c"+newTagname+"\u300d\u306b\u5909\u66f4\u3057\u307e\u3059\u3002\n\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f")){this.model(newTagname,this.tagname);}
else{if(newTagname==''){new Delete(this.tagnameElem).executeSubmit(e);}
this.isConfirm=false;this.hideInput();}},executeSubmitFromJson:function(json){var code=json.status.code;if(code==2){this.inputElem.onblur=null;if(window.confirm("\u540c\u3058\u30bf\u30b0\u540d\u304c\u3042\u308a\u307e\u3059\u3002\n\u300c"+this.tagname+"\u300d\u3092\u300c"+this.newTagname+"\u300d\u306b\u5909\u66f4\u3057\u307e\u3059\u304b\uff1f")){this.model(this.newTagname,this.tagname,true);return;}
else{this.isConfirm=false;this.hideInput();}}
else if(code==0){Tags.executeTagList.call(Tags,json.tag.list,Tags.sortCriteria,true);}},model:function(newTagname,currentTagname,isForced){newTagname=trim(omitControlCode(omitDoubleQuoteCode(newTagname)));if(newTagname!=currentTagname&&newTagname!=""){executeAjaxRequest.call(this,{command:'rename',force:isForced,rename_tag:newTagname,select_tag:currentTagname,token:[TOKEN]},action="rename",this.executeSubmitFromJson);}},showInput:function(){var self=this;var tagnameElem=this.tagnameElem;Layer.show();var span=document.createElement("span");span.style.zIndex="1001";span.style.position="absolute";var form=document.createElement("form");form.onsubmit=function(event){self.executeSubmit.call(self,event);return false;};var input=this.inputElem=document.createElement("input");input.maxLength="20";input.onblur=function(evt){self.executeSubmit.call(self,evt)};input.onkeydown=function(evt){self._onkeydown.call(self,evt)};input.onkeyup=function(evt){self._onkeyup.call(self,evt)};input.type="text";input.value=this.tagname;form.appendChild(input);span.appendChild(form);tagnameElem.innerHTML='';tagnameElem.appendChild(span);input.focus();},hideInput:function(){this.tagnameElem.innerHTML=this.tagnameElemInnerHTML;var $suggestUl=this.tagnameElem.parentNode.lastChild;if($suggestUl)Element.hide($suggestUl);Layer.hide();},_onkeydown:function(evt){var self=this;if(!evt)evt=window.event;var keyCode=evt.keyCode;if(keyCode==16)self.shiftKeyFlg=true;if(keyCode==9||keyCode==40||keyCode==38){Event.stop(evt);var first='firstChild',next='nextSibling';if(keyCode==38||(keyCode==9&&self.shiftKeyFlg)){first='lastChild';next='previousSibling';}
var $suggestUl=Tags.tagnameElem.parentNode.lastChild;var $targetLis=document.getElementsByClassName('suggestTag',$suggestUl);var $targetLi;if($targetLis.length==0){$targetLi=$suggestUl[first];}
else{var $preTargetLi=$targetLis[0];Element.removeClassName($preTargetLi,'suggestTag');$targetLi=$preTargetLi[next];if(!$targetLi)$targetLi=$suggestUl[first];}
if($targetLi)Tags._selectSuggestionList($targetLi);return false;}},_onkeyup:function(evt){var self=this;if(!evt)evt=window.event;var keyCode=evt.keyCode;if(keyCode==9||keyCode==38||keyCode==40){}
else if(keyCode==16){self.shiftKeyFlg=false;}
else{Tags.search(Event.element(evt),'suggestPreValue','suggest',false);}}}
var Edit=Class.create();Edit.prototype={initialize:function(elem){this.elem=elem;},executeShow:function(e){this.show();},executeHide:function(e){this.hide();},executeRename:function(e){this.hide();new Rename(Tags.tagnameElem,Tags.tagname).executeShowInput(e);},executeDelete:function(e){this.hide();new Delete(Tags.tagnameElem).executeSubmit(e);},show:function(){this.elem.style.visibility='visible';},hide:function(){this.elem.style.visibility='hidden';}}
var Balloon=Class.create();Balloon.prototype={initialize:function(elem){this.event=null;this.elem=elem;this.balloonInner=null;this.clipListElem=null;this.clipCountElem=null;},executeShow:function(e){this.event=e;var targetElem=Event.element(e);if(Element.hasClassName(targetElem.parentNode,'tagName')&&targetElem.nodeName=='A'){this.executeList(Tags.tagname);}
else{this.hide();}},executeHide:function(e){this.hide();},executeList:function(){if(this.clipListElem){this.show();}
else{executeAjaxRequest.call(this,{command:'balloon',select_tag:Tags.tagname.replace(/\s/g,'%20').replace(/%20/g,' ')},action="balloon",this.show);}},show:function(json){var self=this;var balloonElem=this.elem;if(json){var titleList=json.title.list;var li=[];for(var i=0,length=titleList.length;i<length;i++){li.push("<li>",escapeHTML(titleList[i].name),"</li>");}
var count=1;balloonElem.className.split(/\s+/).find(function(className,i){var match=className.match(/count([\d]*)/);if(match)count=match[1];});$A(balloonElem.childNodes).find(function(elem,i){if(elem.nodeName=='DIV'&&Element.hasClassName(elem,'inner')){self.balloonInner=elem;return $A(elem.childNodes).each(function(elem,i){if(elem.nodeName=='UL'){self.clipListElem=elem;}
else if(elem.nodeName=='P'){self.clipCountElem=elem;}});}});this.clipListElem.innerHTML=li.join('');this.clipCountElem.innerHTML="\u8a08"+count+"\u4ef6";Element.addClassName(balloonElem,'cache');}
setTimeout(function(){if(Tags.fire==self.event){var balloonStyle=balloonElem.style;balloonStyle.display='block';balloonStyle.width=Element.getDimensions(self.balloonInner).width+'px';}},300);},hide:function(){this.elem.style.display='none';}}
var Tags={};Tags.init=function(){Object.extend(Tags,{user:USER_NAME,fire:null,edit:null,balloon:{},tagList:null,sortCriteria:(this.getSortCriteriaCookie('@TagsSort')||{type:'name',order:'desc'}),listForDom:[],tagname:'',tagnameElem:null,timerId:0,searchPreValue:'\u8abf\u3079\u305f\u3044\u30bf\u30b0\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044',suggestPreValue:'',isSearching:false});var self=this;window.onscroll=function(event){self.executeScroll.call(self,event)};Layer.hide();}
Tags.executeTagList=function(tagList,sortCriteria,isForced){var self=this;self.init();self.tagList=tagList;(sortCriteria)?self.sortCriteria=sortCriteria:sortCriteria=self.sortCriteria;if(tagList.length!=0){self._sortList(tagList,sortCriteria);}
self._sortBtnImgEdit(sortCriteria);self.showTagList(tagList,sortCriteria);var sortCriteriaByCookie=self.getSortCriteriaCookie('@TagsSort');if(sortCriteriaByCookie){if(!isForced&&(sortCriteria.type===sortCriteriaByCookie.type&&sortCriteria.order===sortCriteriaByCookie.order)){return;}
new Ajax.Updater('tagssort','/ajax/tagssort?sort='+sortCriteria.type+sortCriteria.order,{method:'get'});}
self.setSortCriteriaCookie("@TagsSort",sortCriteria);}
Tags._sortList=function(tagList,sortCriteria){if(!tagList)tagList=this.tagList;if(!sortCriteria)sortCriteria=this.sortCriteria;var type=sortCriteria.type;var order=sortCriteria.order;var cmp=(function(type){return(type=="name")?function(a,b){return(a.name>b.name)?1:-1;}:function(a,b){return a.count-b.count};})(type);var isIE=/*@cc_on!@*/false;if(isIE&&type=='name'){var toString=Object.prototype.toString;Object.prototype.toString=function(){return this.name;}
tagList.sort();Object.prototype.toString=toString;}
else{tagList.sort(cmp);}
if(order=='desc')tagList.reverse();}
Tags._sortBtnImgEdit=function(sortCriteria){if(!sortCriteria)sortCriteria=this.sortCriteria;var type=sortCriteria.type;var order=sortCriteria.order;var nameDesc={selected:'',sortCriteria:"{ type: 'name', order: 'desc' }"},nameAsc={selected:'',sortCriteria:"{ type: 'name', order: 'asc' }"},clipDesc={selected:'',sortCriteria:"{ type: 'clip', order: 'desc' }"},clipAsc={selected:'',sortCriteria:"{ type: 'clip', order: 'asc' }"};if(type=='name'){(order=='desc')?nameDesc.selected='_on':nameAsc.selected='_on';}
else{(order=='desc')?clipDesc.selected='_on':clipAsc.selected='_on';}
var img={tag:'<img src="/images/btn_sort_%src%on.gif" alt="%alt" width="16" height="16" onclick="Tags.executeTagList.call(Tags, Tags.tagList, %sortCriteria);" class="pointer" />\n',desc:{src:"down",alt:"降順"},asc:{src:"up",alt:"昇順"}};var str=['<dt>\u8868\u793a\u9806\uff1a</dt>\n','<dd>\u3042\u3044\u3046\u3048\u304a\u9806 \n',img.tag.replace('%src',img.desc.src)
.replace('%alt',img.desc.alt)
.replace('%on',nameDesc.selected)
.replace('%sortCriteria',nameDesc.sortCriteria),img.tag.replace('%src',img.asc.src)
.replace('%alt',img.asc.alt)
.replace('%on',nameAsc.selected)
.replace('%sortCriteria',nameAsc.sortCriteria),'</dd>\n','<dd>\u30af\u30ea\u30c3\u30d7\u6570\u9806 \n',img.tag.replace('%src',img.desc.src)
.replace('%alt',img.desc.alt)
.replace('%on',clipDesc.selected)
.replace('%sortCriteria',clipDesc.sortCriteria),img.tag.replace('%src',img.asc.src)
.replace('%alt',img.asc.alt)
.replace('%on',clipAsc.selected)
.replace('%sortCriteria',clipAsc.sortCriteria),'</dd>\n'].join('');$('sort').innerHTML=str;}
Tags.setSortCriteriaCookie=function(name,sortCriteria){var self=this;name=name||'Tags';sortCriteria=sortCriteria||self.sortCriteria;self._setCookie(name,sortCriteria.type+sortCriteria.order);self.sortCriteria=sortCriteria;}
Tags._setCookie=function(name,value){name=name||'Tags';value=value||'';var date=new Date(),period=14;date.setTime(date.getTime()+(period*24*60*60*1000));document.cookie=[name,"=",escape(value),";"," expires=",date.toUTCString(),";"," path=/tags;"].join('');}
Tags.getSortCriteriaCookie=function(name){var value=this._getCookie(name);var values=(value)?value.match(/^(name|clip)(.*)$/):[];return(values&&values.length)?{type:values[1],order:values[2]}:null;}
Tags._getCookie=function(name){var key=name+'=';var cookie=document.cookie;var start=cookie.indexOf(key);if(start<0)return null;var end=cookie.indexOf(';',start+key.length);if(end<0)end=cookie.length;return unescape(cookie.substring(start+key.length,end));}
Tags.executeMoreList=function(e){var elem=Event.element(e);elem.style.visibility='hidden';this.buildDom($('editTagList'));}
Tags.executeScroll=function(e){var self=this;var fire=this.fire;if(this.timerId){clearTimeout(this.timerId);this.timerId=0;}
this.timerId=setTimeout(function(){if(fire==self.fire){var elem=$('editTagList').lastChild;while(elem.nodeType==3||elem.nodeType==8){elem=elem.previousSibling;if(!elem)return;}
if(Element.hasClassName(elem,'more')&&elem.firstChild.style.visibility!='hidden'){self.executeMoreList.call(self,{type:'click',target:elem.firstChild});}
else{window.onscroll=null;}}},2000);}
Tags.showTagList=function(tagList,sortCriteria){var self=this;if(!tagList)tagList=self.tagList;if(!sortCriteria)sortCriteria=self.sortCriteria;var tagCount=tagList.length;$("tag_count").innerHTML=tagCount;var threshold=250;var buf=[];self.listForDom=[];var user=self.user;for(var i=0;i<tagCount;i++){var tagname=tagList[i].name;var count=tagList[i].count;var countForBalloon=(count>3)?3:count;buf.push('<li id="',escapeHTML(tagname),'">','<p class="tagName"><a href="/users/',user,'/',encodeURIComponent(tagname).replace(/(?:%20|%C2%A0)/g,'+'),'" >',escapeHTML(tagname),'</a>\uff08',count,'\uff09</p>','<div class="balloon line',countForBalloon,' count',count,'" style="display: none;">','	<div class="inner">','		<ul></ul>','		<p></p>','	</div>','</div>','</li>');if((i==tagCount-1)||i&&!(i%threshold)){buf.unshift('<ul class="tagList" onmouseover="Tags.mouseover.call(Tags, event)">');buf.push('</ul>');self.listForDom.push(buf.join(''));buf=[];}}
var $editTagList=$('editTagList');while(true){var $ul=$editTagList.lastChild;$editTagList.removeChild($ul);if($ul.id=='taglist')break;}
self.buildDom($editTagList);}
Tags.buildDom=function($editTagList){var self=this;if(!$editTagList)$editTagList=$('editTagList');var dummy=document.createElement('div');dummy.innerHTML=(this.listForDom.length===0)?'<ul></ul>':this.listForDom.shift();var $taglist=dummy.firstChild;$taglist.id=(!$('taglist'))?'taglist':'';$editTagList.appendChild($taglist);if(this.listForDom.length!=0){var $ul=document.createElement('p');$ul.className="more";$ul.innerHTML='<a class="pointer" onclick="Tags.executeMoreList.call(Tags, event)">もっと見る</a>';$editTagList.appendChild($ul);}
$A($taglist.childNodes).each(function(elem,i){if(elem.nodeName=='LI'){Event.observe(elem,'mouseout',function(event){self.mouseout.call(self,event)},true);}});}
Tags.mouseover=function(e){var self=this;var targetElem=Event.element(e);var targetElemNodeName=targetElem.nodeName;if(targetElemNodeName!='UL'&&targetElemNodeName!='INPUT'&&targetElemNodeName!='FORM'){this.fire=eventClone(e);$A(Event.findElement(e,'LI').childNodes).each(function(elem,i){var nodeName=elem.nodeName;if(nodeName=='P'||nodeName=='DIV'){if(Element.hasClassName(elem,'tagName')){self.tagnameElem=elem;var $a=$A(elem.childNodes).find(function(elem,i){return(elem.nodeName=='A');});if($a)self.tagname=unescapeHTML($a.innerHTML);if(UPDATE_USER_FLG){var isExist=Element.hasClassName(elem.nextSibling,'tool');if(!isExist){new Insertion.After(elem,['<p class="tool" style="z-index:999;">','<span class="edit">','<a class="pointer" onclick="Tags.edit.executeRename.call(Tags.edit, event);">編集</a>','</span>','<span class="delete">','<a class="pointer" onclick="Tags.edit.executeDelete.call(Tags.edit, event);">削除</a>','</span>','</p>','<span class="clear"></span>'].join(''));self._hideEdit();self.edit=new Edit(elem.nextSibling);}}}
else if(Element.hasClassName(elem,'balloon')){if(typeof self.balloon[self.tagname]=='undefined'){self.balloon[self.tagname]=new Balloon(elem);}
self.balloon[self.tagname].executeShow(self.fire);}
else if(UPDATE_USER_FLG&&Element.hasClassName(elem,'tool')){self._hideEdit();self.edit=new Edit(elem);self.edit.executeShow();}}});}}
Tags.mouseout=function(e){var self=this;if(Event.element(e).nodeName=='INPUT')return;if(self.fire.type!='mouseover')return;self.fire=eventClone(e);self._hideEdit();self.balloon[self.tagname].executeHide();}
Tags._hideEdit=function(){if(this.edit){this.edit.executeHide();this.edit=null;return true;}
return false;}
Tags.escapeRegExp=(function(){var spChars="\\"+["\\","^","$","*","+","?",".","[","]","{","}","(",")"].join('\\');var regExp=new RegExp('['+spChars+']','g');return function(str){return str.replace(regExp,function(match){return'\\'+match});}})();Tags.search=function(input,preValue,method,init){var self=this;var keyword=input.value;if(self.isSearching||self[preValue]==keyword)return;self.isSearching=true;self[preValue]=keyword;if(init&&keyword.length==0){Tags.executeTagList.call(Tags,Tags.tagList);}
else{var list=[];if(keyword){var regExp=new RegExp(self.escapeRegExp(keyword),'i');Tags.tagList.each(function(obj){if(regExp.exec(obj.name)){list.push(obj);}});}
Tags[method](list,this.sortCriteria);}
self.isSearching=false;}
Tags.suggest=function(tagList,sortCriteria){var self=this;var $tagname=$(self.tagname);if(!sortCriteria)sortCriteria=self.sortCriteria;var tagCount=tagList.length;if(tagCount===0)return;var buf=[];for(var i=0;i<tagCount;i++){var tagname=tagList[i].name;var count=tagList[i].count;buf.push('<li>','<span>',count,'</span>',escapeHTML(tagname),'</li>');}
var $ul=$tagname.lastChild;if($ul.nodeName!='UL'){$ul=document.createElement('ul');Element.addClassName($ul,'suggestTags');Event.observe($ul,'mouseover',function(e){var $targetLi=Event.element(e);self._selectSuggestionList($targetLi);});Event.observe($ul,'mouseout',function(e){var $targetLi=Event.element(e);if($targetLi.nodeName!='LI')return;Element.removeClassName($targetLi,'suggestTag');});}
Element.show($ul);$ul.innerHTML=buf.join('');$tagname.appendChild($ul);}
Tags._selectSuggestionList=function($targetLi){var self=this;if($targetLi.nodeName!='LI')return;Element.addClassName($targetLi,'suggestTag');if(self.tagnameElem.getElementsByTagName('input'))self.tagnameElem.getElementsByTagName('input')[0].value=$targetLi.lastChild.nodeValue;}
var Layer={elem:null,init:function(id){var self=this;var elem=self.elem=$(id);if(window.isMSIE&&!window.XMLHttpRequest){elem.style.position='absolute';Event.observe(window,'scroll',function(){self.move.call(self,elem)});Event.observe(window,'resize',function(){self.move.call(self,elem)});}},show:function(){var self=this;self.elem.style.visibility='visible';},move:function(elem){var self=this;if(!self.elem)self.elem=elem;var elemStyle=self.elem.style;if(elemStyle.visibility!='visible')return;elemStyle.top=document.documentElement.scrollTop||document.body.scrollTop;elemStyle.left=document.documentElement.scrollLeft||document.body.scrollLeft;},hide:function(){var self=this;self.elem.style.visibility='hidden';}};function trim(argValue){return String(argValue).replace(/^[ \u3000]*/gim,"").replace(/[ \u3000]*$/gim,"");}
function omitDoubleQuoteCode(str){return str.replace(/[\u0022]/g,"");}
google_ad_output='js';google_max_num_ads=3;google_language='ja';google_encoding='utf8';google_safe='medium';google_ad_client='ca-nifty-misc_js';google_ad_channel='clip';google_image_size='300x250';google_ad_type='text';google_adtest='off';nifty_campaign='off';var MAFC={version:1.0,logo:'<p class="ad_logo"><span>Ads by Google</span></p>',createText:function(a){return'<dt><a target="_blank" class="ad_title" href="'+a.url+'">'+a.line1+'</a> '
+'<span><a target="_blank" class="ad_url" href="'+a.url+'">'+a.visible_url+'</a></span></dt>'
+'<dd><a class="ad_line" href="'+a.url+'">'+a.line2+a.line3+'</a></dd>';},nifAd:function(a){return'<p class="ad_logo">'+a.title+'</p>'+
'<dl><dt><a class="ad_title" href="'+a.url+'">'+a.line+'</a></dt></dl>';},createText:function(a){return'<dt><a target="_blank" class="ad_title" href="'+a.url+'">'+a.line1+'</a> '
+'<span><a target="_blank" class="ad_url" href="'+a.url+'">'+a.visible_url+'</a></span></dt>'
+'<dd><a class="ad_line" href="'+a.url+'">'+a.line2+a.line3+'</a></dd>';},createBadge:function(a){return'<li><em><a target="_blank" class="ad_title" href="'+a.url+'">'+a.line1+'</a> </em>'
+'<span><a target="_blank" class="ad_line" href="'+a.url+'">'+a.line2+a.line3+'</a></span>'
+'<a target="_blank" class="ad_url" href="'+a.url+'">'+a.visible_url+'</a></li>';},addHints:function(){}};