/*
	dutils.js - distraid utils ver2.1
		require: MooTools 1.2 <http://mootools.net>

	copyright (c) 2007-2009 distraid Inc. <http://distraid.co.jp>

	$Id: dutils_2_1.js 36 2010-05-14 10:53:41Z ksy $
*/
String.implement({escapeTag:function(){return this.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")
}});var Du={};Du.Hash=new Hash({copyObj:function(c){var a=$type(c);if(a=="object"){var d,b={};for(d in c){b[d]=arguments.callee(c[d])}return b}else{if(a=="array"){c=c.map(function(e){return Du.Hash.copyObj(e)
})}}return c},getObjProp:function(a){for(var b in a){return b}},setObjProp:function(c,a){var b={};b[c]=a;return b},makeQueryStr:function(b){var a="";switch($type(b)){case"object":a=Hash.toQueryString(b);
break;case"element":a=b.toQueryString();break;case"array":b.map(function(d){var c=d.split("=");return encodeURIComponent(c[0])+($chk(c[1])?"="+encodeURIComponent(c[1]):"")});a=b.join("&");break;case"string":a=arguments.callee(b.split("&"))
}return a},countProp:function(b){var a=0;for(var c in b){a++}return a},compareParam:function(e,d){var c={p1:$type(e),p2:$type(d)};if(e==d){return true}if(c.p1=="object"){if(c.p1!=c.p2){return false}if(Du.Hash.countProp(e)!=Du.Hash.countProp(d)){return false
}for(var f in e){if(e[f]!=d[f]){return false}}}else{if(c.p1=="array"){if(c.p1!=c.p2){return false}if(e.length!=d.length){return false}var a=$A(d);var b=e.every(function(g){if(!a.contains(g)){return false
}a.remove(g);return true});if(!b||a.length>0){return false}}else{return e==d}}return true}});Du.Str=new Hash({retrieveDate:function(d,a,c){if(!d){return null}d=d.replace(/^\s*/,"").replace(/\s*$/,"").replace(/\s*[\u5e74\u6708\u65e5\/\.\s]\s*/g,"-").replace(/[^\d\-]/g,"").replace(/\-*$/,"");
var f=d.match(/^\D*(\d{1,4})\-?(\d{1,2})\-?(\d{1,2})$/);if(!f||f.length<4||f[1]==""||f[2]==""||f[3]==""){return null}var b=new Date(f[1],(f[2]==0&&a?0:f[2]-1),(f[3]==0&&a?1:f[3]));var e={year:(a&&f[1]==0?0:b.getFullYear()),month:(a&&f[2]==0?0:b.getMonth()+1),date:(a&&f[3]==0?0:b.getDate())};
if(c){e={year:Du.Str.zeroFill(e.year,4),month:Du.Str.zeroFill(e.month,2),date:Du.Str.zeroFill(e.date,2)}}return e},retrieveDateTime:function(d,a,c){if(!d){return null}d=d.replace(/^\s*/,"").replace(/\s*$/,"").replace(/\s*[\u5e74\u6708\u65e5\u6642\u5206\u79d2\/\:\.\s]\s*/g,"-").replace(/[^\d\-]/g,"").replace(/\-*$/,"");
var f=d.match(/^\D*(\d{1,4})\-?(\d{1,2})\-?(\d{1,2})(?:\-?(\d{1,2})-?(\d{1,2})-?(\d{1,2}))?$/);if(!f||f.length<7||f[1]==""||f[2]==""||f[3]==""||f[4]==""||f[5]==""||f[6]==""){return null}var b=new Date(f[1],(f[2]==0&&a?0:f[2]-1),(f[3]==0&&a?1:f[3]),(f[4]==0&&a?0:f[4]),(f[5]==0&&a?0:f[5]),(f[6]==0&&a?0:f[6]));
var e={year:(a&&dateAry[1]==0?0:b.getFullYear()),month:(a&&dateAry[2]==0?0:b.getMonth()+1),date:(a&&dateAry[3]==0?0:b.getDate()),hour:(a&&dateAry[4]==0?0:b.getHours()),minute:(a&&dateAry[5]==0?0:b.getMinutes()),second:(a&&dateAry[6]==0?0:b.getSeconds())};
if(c){e={year:Du.Str.zeroFill(e.year,4),month:Du.Str.zeroFill(e.month,2),date:Du.Str.zeroFill(e.date,2),date:Du.Str.zeroFill(e.hour,2),date:Du.Str.zeroFill(e.minute,2),date:Du.Str.zeroFill(e.second,2)}
}return e},zeroFill:function(b,a){if(!a||!(a>0)){return b}var c="";for(var d=0;d<a;d++){c+="0"}c=c+String(b);return c.substring(c.length-a,c.length)}});Du.Elem=new Hash({retrieveTargElem:function(b,c,a){if($type(b)!="element"){return null
}c=($type(c)!="array"?[c]:c);b=$(b);var d=b.nodeName.toLowerCase();while(b&&b!=a&&!c.contains(d)){b=b.getParent();if(b){d=b.nodeName.toLowerCase()}}return b}});Du.Ajax=new Class({Extends:Request,options:{callback:null,sendData:null,renewal:null,jsonize:false,onAjaxDone:Class.empty},initialize:function(b,a){this.setOptions(a);
this.addEvent("onSuccess",this.onComplete);this.addEvent("onFailure",this.onComplete);this._url=b;this._prevRequest=null;this._callback=null;this._renewal={type:"once"};this._timerId=null;this._jsonize=false;
this.parent();this._initOpt()},_initOpt:function(){if($type(this.options.callback)=="function"){this._callback=this.options.callback}this._renewal=this._formRenewal(this.options.renewal);this._jsonize=(this.options.jsonize?true:false)
},_formRenewal:function(a){var b={type:"once"};if(!a){return b}if(a.type=="once"||a.type=="every"){b={type:a.type}}else{if((a.type=="refresh"||a.type=="reload")&&a.interval>0){b={type:a.type,interval:a.interval}
}}return b},getURL:function(){return this._url},setURL:function(a){if(this._url!=a){this._url=a;this.reset()}return this},onComplete:function(){var a=this.isSuccess(this.status);if(a){this._prevRequest=new Date().getTime();
if(this._jsonize){this.response.json=Du.JSON.decode(this.response.text,true)}this.fireEvent("onAjaxDone",this.response)}else{this._prevRequest=null;this.stopRefresh()}this._callProc(true)},_callProc:function(c){if(!this._callback){return
}c=(c?true:false);var a=(this._prevRequest!=null?true:false);var b={status:this.status,time:this._prevRequest};if(a){b=$merge(b,{text:this.response.text,xml:(this.response.xml==null||($type(this.response.xml)=="object"&&this.response.xml.constructor==null)?null:this.response.xml)});
if(this._jsonize){b=$merge(b,{json:this.response.json})}}this._callback(a,b,c)},sendRequest:function(a){var b=Math.abs(new Date().getTime()-this._prevRequest);if(this._prevRequest==null||!Du.Hash.compareParam(a,this._prevData)){if(this._renewal.type=="refresh"){this.startRefresh.delay(10,this,[true,a])
}else{this._request.delay(10,this,[a])}return true}if(this._renewal.type=="once"||(this._renewal.type=="reload"&&this._renewal.interval>b)){this._callProc.delay(10,this);return false}else{if(this._renewal.type=="refresh"){if(this._renewal.interval>b){this.startRefresh(false);
this._callProc().delay(10,this);return false}else{this.startRefresh.delay(10,this,[true]);return true}}}this._request.delay(10,this,[a]);return true},forceRequest:function(a){this._request(a)},startRefresh:function(b,a){this.stopRefresh();
if(this._renewal.type=="refresh"){this._timerId=setInterval(this._request.bind(this,[a]),this._renewal.interval)}if(b){this._request(a)}},_request:function(a){this._prevData=Du.Hash.copyObj(a);a=(a!=null?a:this.options.sendData);
this.setHeader("X-Requested-With","XMLHttpRequest");this.setHeader("Accept","text/javascript, text/html, application/json, application/xml, text/xml, */*");if($type(a)=="object"){a=Hash.toQueryString(a)
}this.send({url:this._url,data:a})},stopRefresh:function(){if(this._timerId){this._timerId=$clear(this._timerId)}},cancel:function(){this.stopRefresh();this.parent()},reset:function(){this._prevRequest=null;
this.cancel();this.response={};if(!this.runnning){this.xhr=new Browser.Request()}this.fireEvent("onReset")}});Du.Ajax.Range=new Class({Extends:Du.Ajax,options:{range:0},initialize:function(b,a){this._range=null;
this._baseRenewal=null;this.setOptions(a);this.parent(b)},_initOpt:function(){this.parent();if(this.options.range){var a=Du.Ajax.Tools.formRangeLen(this.options.range.rangeLen);if(a){this._range={rangeLen:a,renewal:this._formRenewal(this.options.range.renewal)}
}}this._baseRenewal=this._renewal},select:function(a){this._renewal=this._baseRenewal;if(this._range&&(this._range.renewal["type"]=="refresh"&&this._renewal.type!="refresh")){this.stopRefresh()}return this.sendRequest(a)
},notify:function(c,b,a){if(!this._range||!(b>=0)){return null}if(b==c){return this.select(a)}if(this._range.renewal["type"]!="refresh"){this.stopRefresh()}if(Du.Ajax.Tools.chkRangeLen(this._range.rangeLen,c,b)){this._renewal=this._range.renewal;
return this.sendRequest(a)}else{this.stopRefresh();return null}}});Du.Ajax.Tools=new Hash({formRangeLen:function(c){var b=null;var d=$type(c);if(d=="number"&&c!=0){b={};b.backward=b.forward=Math.abs(c)
}else{if(d=="string"){var a=c.match(/(?:\-(\d+))?(?:\+(\d+))?/);if(a&&a[0]){b={backward:(a[1]?a[1]:0),forward:(a[2]?a[2]:0)}}}}return b},chkRangeLen:function(b,d,c){var a=Math.abs(c-d);if(d>=c){return(b.forward>=a?true:false)
}return(b.backward>=a?true:false)}});Du.Style=new Class({initialize:function(c,b){var a=$(c);if($type(a)!="element"){return}this._elem=a;this._baseElem=this._elem;this._elemSize=null;this._mode=Du.Style.Mode.none;
this._style=(b?Du.Hash.copyObj(b):Du.Style.Setup.visible());if(this._style.targElem){this._selectTarg(this._style.targElem)}this._initSizeRatio()},activate:function(b,a){a=(a!=null?a:this._style.force);
if(!a&&this._mode==Du.Style.Mode.active){return}if(this._prepare(true,b)){this._mode=Du.Style.Mode.active}},deactivate:function(b,a){a=(a!=null?a:this._style.force);if(!a&&this._mode==Du.Style.Mode.inactive){return
}if(this._prepare(false,b)){this._mode=Du.Style.Mode.inactive}},resetMode:function(a){this._mode=($chk(Du.Style.mode[a])?Du.Style.mode[a]:Du.Style.mode.none)},getMode:function(){return this._mode},_initSizeRatio:function(a){a=(!a?this._style:a);
if(!a){return}["active","inactive","preAct","preInact","postAct","postInact"].each(function(b){if(a[b]){this._elemSize=Du.Style.Setup.chkSizeRatio(this._elem,this._elemSize,a[b]["styles"])}},this)},setDuStyle:function(e,c,a,d){this._mode=Du.Style.Mode.set;
var b={duStyle:Du.Style.Setup.confirmStyle(e)};[c,a].map(function(f){if(f){return Du.Style.Setup.confirmStyle(f)}});this._setStyle(b.duStyle,c,a,d)},_setStyle:function(c,b,a,d){if(b){this._applyStyle(b,null,d)
}this._applyStyle(c,null,d);if(a){this._applyStyle(a,null,d)}},_prepare:function(d,c){if(!this._style.prop){return}var a,e;var b=function(f,g){if(d){a=this._style[f];e=this._style[g]}else{a=this._style[g];
e=this._style[f]}this._applyStyle(a,e,c)}.bind(this);b("preAct","preInact");b("active","inactive");b("postAct","postInact");return true},_applyStyle:function(a,c,b){if(!a){return(c&&c["class"]!=null&&this._elem.removeClass(c["class"]))
}if(a.proc){a.proc(this._elem,null,b)}if(a["class"]!=null){this._elem.addClass(a["class"])}if(c&&c["class"]!=null){this._elem.removeClass(c["class"])}if(a.styles){this._elem.setStyles(a.styles)}},visibility:function(a){if(["visible","hidden"].contains(a)){this._elem.setStyles("visibility",a)
}},display:function(a){if(["block","inline","none"].contains(a)){this._elem.setStyles("display",a)}},_selectTarg:function(b){if(!b){return}var a=($type(b)=="element"?b:this._baseElem.getElement(b));if(a){this._elem=a
}}});Du.Style.Fx=new Class({Extends:Du.Style,initialize:function(b,a){this._curTrans=Du.Style.Mode.none;this.parent(b,a);if(!this._style.fx){return}this._style.fxOpt=$merge(this._style.fxOpt,{onFxDone:this.onFxDone.bind(this),onFxCancel:this.onFxCancel.bind(this)});
if(this._style.stream){this._fx=new Du.Style.Fx.Stream(this._elem,this._style.fxOpt)}else{this._fx=new Du.Style.Fx.Styles(this._elem,this._style.fxOpt)}},_initSizeRatio:function(a){a=(!a?this._style:a);
if(!a){return}this.parent();[["fxAct","active"],["fxInact","inactive"]].each(function(b){if(a[b[0]]){if($type(a[b[0]])=="array"){a[b[0]].each(function(c){if(c.styles){this._elemSize=Du.Style.Setup.chkSizeRatio(this._elem,this._elemSize,c.styles["fxStyle"])
}},this)}else{["width","height"].each(function(d){var c=a[b[0]]["styles"];if(c&&c.fxStyle&&c.fxStyle[d]){if(a[b[1]]["styles"]&&a[b[1]]["styles"][d]){c.fxStyle[d]=a[b[1]]["styles"][d]}}},this)}}},this)},onFxDone:function(){this._mode=this._curTrans;
this._curTrans=Du.Style.Mode.none},onFxCancel:function(){this._mode=this._curTrans=Du.Style.Mode.none},activate:function(c,a,b){if(!this._style.fx){return this.parent(c,b)}b=(b!=null?b:this._style.force);
if(!b&&(this._mode==Du.Style.Mode.active||this._curTrans==Du.Style.Mode.active)){return}this._fx.halt(true);if(a||!Du.Style.Setup.checkFx(this._style.fxGrp)){return this.parent(c,b)}if(this._style.active==null){return
}this._mode=Du.Style.Mode.none;this._curTrans=Du.Style.Mode.active;this._startFx(true,c)},deactivate:function(c,a,b){if(!this._style.fx){return this.parent(c,b)}b=(b!=null?b:this._style.force);if(!b&&(this._mode==Du.Style.Mode.inactive||this._curTrans==Du.Style.Mode.inactive)){return
}this._fx.halt(true);if(a||!Du.Style.Setup.checkFx(this._style.fxGrp)){return this.parent(c,b)}if(this._style.inactive==null){return}this._mode=Du.Style.Mode.none;this._curTrans=Du.Style.Mode.inactive;
this._startFx(false,c)},setDuStyle:function(f,d,b,e,a){if(!f.duStyle){f={duStyle:f}}var c=Du.Style.Setup.formStyle(f,"duStyle","duStyleFx");if(d){d=Du.Style.Setup.confirmStyle(d)}if(b){b=Du.Style.Setup.confirmStyle(b)
}this._initSizeRatio(f.duStyleFx);this._fx.halt(true);this._mode=Du.Style.Mode.set;if(a||!Du.Style.Setup.checkFx(this._style.fxGrp)){return this._setStyle(f.duStyle,d,b,e)}this._fx.ignite(c.duStyleFx,d,b,e)
},_startFx:function(e,d){var c=(e?this._style.fxAct:this._style.fxInact);var f=(e?this._style.inactive:this._style.active);var b=null;var a=null;if(this._style.initOpp){b=f}if(e){if(this._style.preAct){b=this._style.preAct
}a=this._style.postAct}else{if(this._style.preInact){b=this._style.preInact}a=this._style.postInact}this._fx.ignite(c,b,a,d)}});Element.implement({duStyle:function(a){return new Du.Style(this,{fxOpt:a})
},duStyleFx:function(a){return new Du.Style.Fx(this,{fxOpt:a,fx:true})},duStyleFxStream:function(a){return new Du.Style.Fx(this,{fxOpt:a,fx:true,stream:true})}});Du.Style.Fx.Styles=new Class({Implements:[Events,Options],options:{delay:0,prePrcs:null,postPrcs:null,loop:false},initialize:function(b,a){this._setOpt(a);
this._fxCtrl=new Fx.Morph(b,$merge(a,{onComplete:this.onComplete.bind(this)}));this._targElem=b;this._delayTimer=null;this._recallTimer=null;this._bTransition=false;this._curFx=null;this._curLoop=null;
this._procArg=null;this._preStyle=null;this._postStyle=null;this._defOpt=Du.Hash.copyObj(this.options);this._defFxOpt=Du.Hash.copyObj(this._fxCtrl.options)},_setOpt:function(b,a){this.setOptions(b,a);if(!(this.options.duration>0)){this.options.duration=500
}if(!(this.options.delay>=0)){this.options.delay=0}if(!(this.options.loop===true||this.options.loop>=0)){this.options.loop=0}},ignite:function(a,c,b,d){if(!a){return this}this.halt();this._bTransition=true;
this._setCurFx(a);this._curLoop=0;this._preStyle=c;this._postStyle=b;this._procArg=d;this.fireEvent("fxStart",null,10);this._applyStyle(this._preStyle);this._ready(true);return this},_setCurFx:function(a){this._curFx=a;
this.options=this._defOpt;this._fxCtrl.options=this._defFxOpt;if(this._curFx.options){this._setOpt(this._curFx.options);this._fxCtrl.setOptions(this._curFx.options)}},_applyStyle:function(a){if(a){if(a.proc){a.proc(this._targElem,this,this._procArg)
}if(a.styles){this._targElem.setStyles(a.styles)}}},_ready:function(a){if(this.options.prePrcs){this._applyStyle(this.options.prePrcs)}if(this.options.delay>0){this._delayTimer=this.launch.delay(this.options.delay,this,[this._curFx])
}else{this.launch(this._curFx)}},launch:function(a){var c=function(){this._recallTimer=this.onComplete.delay((this.options.duration?this.options.duration:10),this,null);return this}.bind(this);if(!a){return c()
}if(a.proc){a.proc(this._targElem,this,this._procArg)}if(!a.styles){return c()}var d=a.styles;if(d.preStyle){this._targElem.setStyles(d.preStyle)}if(!d.fxStyle){return c()}var b=this._targElem.getStyles("visibility","display");
if(b.display=="none"||(b.visibility=="hidden"&&!(d.fxStyle["opacity"]>0))){this._targElem.setStyles(d.fxStyle);return c()}return this._fxCtrl.start(d.fxStyle)},halt:function(a){this._curLoop=null;this.stop();
if(this._bTransition){this._fxDone(true,a)}},stop:function(){this._fxCtrl.cancel();if(this._delayTimer){this._delayTimer=$clear(this._delayTimer)}if(this._recallTimer){this._recallTimer=$clear(this._recallTimer)
}},onComplete:function(){this.stop();if(this.options.postPrcs){this._applyStyle(this.options.postPrcs)}this._loop()},_loop:function(){if(this._curLoop==null){return false}if(!this.options.loop){this._fxDone();
return true}this._curLoop++;if(this.options.loop===true||this._curLoop<this.options.loop){this._recallTimer=this._ready.delay(10,this)}else{this._fxDone()}return(this._curLoop==1?true:false)},_fxDone:function(a,b){this._bTransition=false;
if(!a){this._applyStyle(this._postStyle);this.fireEvent("fxDone",null,(b?0:10))}else{this.fireEvent("fxCancel",null,(b?0:10))}}});Du.Style.Fx.Stream=new Class({Extends:Du.Style.Fx.Styles,initialize:function(b,a){this.parent(b,a);
this._stream=new Du.Style.Fx.Stream.Ctrl()},ignite:function(c,b,a,d){if(!c){return this}if($type(c)!="array"){c=[c]}this.halt();this._bTransition=true;this._stream.setData(c);this._curLoop=0;this._preStyle=b;
this._postStyle=a;this._procArg=d;this._applyStyle(this._preStyle);this._setCurFx(this._stream.getNext());this._ready(true);return this},halt:function(a){this._stream.stop();this.parent(a)},onComplete:function(){if(this._stream.isEnd()){return this.parent()
}if(this.options.postPrcs){this._applyStyle(this.options.postPrcs)}this._setCurFx(this._stream.getNext());this._recallTimer=this._ready.delay(10,this)},_loop:function(){if(this._curLoop==null){return false
}if(!this.options.loop){this._fxDone();return true}this._curLoop++;if(this.options.loop===true||this._curLoop<this.options.loop){this._stream.reset(true);var a=this._stream.getNext();if(!a){this._fxDone();
return true}this._setCurFx(a);this._recallTimer=this._ready.delay(10,this)}else{this._fxDone()}return(this._curLoop==1?true:false)}});Du.Style.Fx.Stream.Ctrl=new Class({initialize:function(){this._data=null;
this._nextIndex=0;this._loop=null},setData:function(a){this._nextIndex=0;this._data=$A(a);this._loop=[];this._data.each(function(b){if(b.options&&b.options["once"]){return}this._loop.push(b)},this)},getNext:function(){return this._data[this._nextIndex++]
},reset:function(a){if(a){this._data=this._loop}this._nextIndex=0},isEnd:function(){return(this._nextIndex>=this._data.length?true:false)},stop:function(){if(this._data){this._nextIndex=this._data.length
}}});Du.Style.Fx.Slide=new Class({Extends:Fx.Slide,initialize:function(c,a){this.parent(c,a);if($type(this.element)!="element"){return}var b=this.element.getStyles("display","visibility","position");if(b.display=="none"){this.element.setStyles({display:"block",visibility:"hidden",position:"absolute"});
this.hide();this.element.setStyles({display:"none",visibility:b.visibility,position:b.position})}},hide:function(a){this[a||this.options.mode]();this.open=false;return(this.offset?this.set([-this.offset,0]):this)
},show:function(a){this[a||this.options.mode]();this.open=true;return(this.offset?this.set([0,this.offset]):this)}});Du.Style.Fx.Slide.Ctrl=new Hash({_slideObj:{},initSlide:function(){this._slideObj={};
return this},addSlide:function(b,a){if(!b||$type(b)!="string"||this._slideObj[b]!=null){return}this._slideObj[b]=new Du.Style.Fx.Slide(b,a)},addSlides:function(b,a){if($type(b)!="array"){return}b.each(function(c){this.addSlide(c,a)
},this)},slideInProc:function(b,a){if(!b||b.id==null||!this._slideObj[b.id]){return}var c=this._slideObj[b.id];c.cancel();return((!a||!Du.Style.Setup.checkFx())?c.show():c.slideIn())},slideOutProc:function(b,a){if(!b||b.id==null||!this._slideObj[b.id]){return
}var c=this._slideObj[b.id];c.cancel();return((!a||!Du.Style.Setup.checkFx())?c.hide():c.slideOut())}});Du.Style.Fx.Slide.Ctrl.slideInProc=Du.Style.Fx.Slide.Ctrl.slideInProc.bind(Du.Style.Fx.Slide.Ctrl);
Du.Style.Fx.Slide.Ctrl.slideOutProc=Du.Style.Fx.Slide.Ctrl.slideOutProc.bind(Du.Style.Fx.Slide.Ctrl);Du.Style.Mode=new Hash({none:"_none",active:"_active",inactive:"_inactive",set:"_set"});Du.Style.Setup=new Hash({_enableFx:true,_fxGrpChk:{},_fxControl:{fxGrp:{}},none:function(){return{prop:null,active:null,inactive:null}
},block:function(){return this._set("styles",{styles:{display:"block"}},{styles:{display:"none"}})},inline:function(){return this._set("styles",{styles:{display:"inline"}},{styles:{display:"none"}})},visible:function(){return this._set("styles",{styles:{visibility:"visible"}},{styles:{visibility:"hidden"}})
},setClass:function(b,a,c){return this._set("class",{"class":b},{"class":a},c)},setStyles:function(a,c,b){return this._set("styles",{styles:a},{styles:c},b)},setStyle:function(e,d,a,c){if(!e){return{}}var b=function(f,h){var g={};
g[f]=h;return g};return this._set("styles",{styles:b(e,d)},{styles:b(e,a)},c)},setProc:function(c,b,a){return this._set("proc",{proc:c},{proc:b},a)},set:function(c,a,b){return this._set("mix",c,a,b)},initFxCtrl:function(h,d,b,g){this._fxControl={};
this.setFxCtrl(h,d);var e={fxGrp:{}};var c="";var a={"true":this.enableFx.bind(this),"false":this.disableFx.bind(this)};if($type(b)=="object"&&b.key!=null){b.obj=(b.obj?b.obj:Du.CookieCtrl);this._fxControl.cookie=b;
c=b.obj.get(b.key);if(c){c.split("&").each(function(i){var j=i.split("=");if(j.length<2){if(a[j[0]]){a[j[0]](null,true)}e.toggle=j[0]}else{if(a[j[1]]){a[j[1]](j[0],true)}e.fxGrp[j[0]]=j[1]}},this)}}if($type(g)=="object"){if(g.toggle&&e.toggle==null){a[(g.toggle?true:false)](null)
}if(g.fxGrp&&$type(g.fxGrp)=="object"){for(var f in g.fxGrp){if(e.fxGrp[f]==null&&this._fxControl.fxGrp[f]){a[(g.fxGrp[f]?true:false)](f)}}}}},setFxCtrl:function(c,a){if($type(c)=="function"){this._fxControl.toggle=c
}if(!this._fxControl.fxGrp){this._fxControl.fxGrp={}}for(var b in a){if($type(a[b])=="function"){this._fxControl.fxGrp[b]=a[b]}}},getFxCtrl:function(){return Du.Hash.copyObj(this._fxControl)},_toggleProc:function(d,c,a){if(c!=null){if(this._fxControl.fxGrp[c]){this._fxControl.fxGrp[c](d,a)
}}else{if(this._fxControl.toggle){this._fxControl.toggle(d,a)}}if(!a&&this._fxControl.cookie){var b=String(this._enableFx);for(var e in this._fxGrpChk){b+="&"+e+"="+String(this._fxGrpChk[e])}this._fxControl.cookie["obj"].set(this._fxControl.cookie["key"],b,this._fxControl.cookie["options"])
}},enableFx:function(b,a){if(b!=null&&String(b)){this._fxGrpChk[b]=true;this._toggleProc(true,b,a)}else{this._enableFx=true;this._toggleProc(true,null,a)}},disableFx:function(b,a){if(b!=null&&String(b)){this._fxGrpChk[b]=false;
this._toggleProc(false,b,a)}else{this._enableFx=false;this._toggleProc(false,null,a)}},checkFx:function(a,b){if(!b&&!this._enableFx){return false}if(this._fxGrpChk[a]!=null){return this._fxGrpChk[a]}return this._enableFx
},toggleFx:function(a,b){if(!this.checkFx(a,b)){this.enableFx(a)}else{this.disableFx(a)}},setStylesFx:function(a,e,d,c){var b=this._set("styles",{styles:a},{styles:e},c);return this._setFx(b,d,c)},setFx:function(d,a,e,c){var b=this._set("mix",d,a,c);
return this._setFx(b,e,c)},setStreamFx:function(a,e,d,c){var b=this._set("mix",a,e,c);return this._setFx(b,d,c)},_set:function(f,e,c,d){var b={prop:f};b.active=this.confirmStyle(e);b.inactive=this.confirmStyle(c);
if(!d){d={}}if(d.targElem){var a=$type(d.targElem);if(a=="element"||a=="string"){b.targElem=d.targElem}}if(d.force){b.force=true}["preAct","preInact","postAct","postInact"].each(function(g){if(d[g]){b[g]=this.confirmStyle(d[g])
}},this);return b},_setFx:function(a,c,b){if(!b){b={}}a.fx=true;a.fxOpt=$merge({wait:false},c);a.initOpp=(b.initOpp?true:false);if(String(b.fxGrp)){a.fxGrp=String(b.fxGrp)}[["active","fxAct"],["inactive","fxInact"]].each(function(d){var e=d[0];
var f=d[1];this.formStyle(a,e,f)},this);return a},formStyle:function(a,b,c){if(!a[b]){return a[b]={}}if($type(a[b])=="array"){return this.formStream(a,b,c)}a[b]=this.confirmStyle(a[b]);a[c]=Du.Hash.copyObj(a[b]);
if(a[c]["styles"]){a[c]["styles"]=this.splitStyle(a[c]["styles"])}if(a[c]["options"]){a[c]["options"]=this._confirmOpt(a[c]["options"])}return a},formStream:function(b,d,e){if($type(b[d])!="array"){return b
}var a=null;var c=null;b[d].each(function(g,f){g=this.confirmStyle(g);if(g.styles){a=$merge(a,g.styles);g.styles=this.splitStyle(g.styles)}if(g.proc){if(c){c.push(g.proc)}else{c=[g.proc]}}g.options=$merge(b.fxOpt,g.options);
b[d][f]=g},this);b[e]=b[d];b[d]={styles:a};if(c){b[d]["proc"]=function(h,g,f){c.each(function(i){i(h,g,f)})}}b.stream=true;return b},confirmStyle:function(c){if(!c){return null}var b=$type(c);var a=null;
if(b=="array"){return c}else{if(b=="function"){a={proc:c}}else{if(b=="string"){a={"class":c}}else{if(b=="object"){if(c.proc){a={proc:c.proc}}if(c["class"]){a=$merge(a,{"class":c["class"]})}if(c.styles){a=$merge(a,{styles:c.styles})
}if(!a){a={styles:c}}if(c.options){a.options=this._confirmOpt(c.options)}}}}}return a},_confirmOpt:function(a){for(var b in a){if(["prePrcs","postPrcs"].contains(b)){a[b]=this.confirmStyle(a[b])}}return a
},splitStyle:function(e){if($type(e)!="object"){return e}var d=null;var c=null;var a=null;var b=function(g,i,h){if(!g){g={}}g[i]=h;return g};for(var f in e){if(e[f]==null){continue}e[f]=String(e[f]);if(e[f].match(/^([\d-]|(#[a-f\d]))+/i)){d=b(d,f,e[f])
}else{c=b(c,f,e[f])}a=b(a,f,e[f])}if(a==null){return null}return{preStyle:c,fxStyle:d,style:a}},retrieveClassStyle:function(a){return a},chkSizeRatio:function(b,d,c){if(!b||!c){return d}if(!d){d={}}var a=null;
["width","height"].each(function(f){if($type(c[f])!="string"){return}var e=c[f].match(/(\d+)(R)$/i);if(!e){return}if(!a){a={}}a[f]="="+e[1]+"%";if(!d[e[2]]){d[e[2]]=(e[2]=="R"?Du.Style.Tools.computeSize(b):Du.Style.Tools.getOffsetSize(b))
}c[f]=Du.Style.Tools.modStyleVal(d[e[2]][f],a[f])});return d},createDuStyle:function(a,b){if(b&&b.fx){return new Du.Style.Fx(a,b)}else{return new Du.Style(a,b)}}});Du.Style.Tools=new Hash({modStyleVal:function(a,f,e,g){if(a==null||(f==null&&e==null&&g==null)){return a
}var k={};if($type(a)=="number"){k.val=a}else{var h=a.match(/^(-?[\d\.]*)(.*)$/);k.val=Number(h[1]);k.unit=String((h[2]!=""?h[2]:null))}var b={};if($type(f)=="number"){b.val=f}else{if(f!=null){var i=f.match(/^([=\-\+\*\/]?)(\d+\.?\d*)(%?)$/);
b.op=i[1];b.val=Number(i[2]);b.ratio=(i[3]?true:false)}}if(k.val==null){return a}if(e!=null&&g!=null){e=Math.min(e,g);g=Math.max(e,g)}var d=function(l){if(e!=null&&l<e){l=e}if(g!=null&&l>g){l=g}if(k.unit=="px"){l=parseInt(l)
}return(k.unit!=null?l+k.unit:l)};if(b.val==null){return d(k.val)}var j=(b.ratio?(b.val==100?k.val:k.val*b.val/100):b.val);var c=k.val;switch(b.op){case"-":c-=j;break;case"*":c*=j;break;case"/":if(j!=0){c/=j
}break;case"=":c=j;break;default:c+=j}c=Number(c);return d(c)},computeSize:function(e,h,a){e=$(e);if($type(e)!="element"){return}var d=e.getStyles("font-family","font-size","font-weight","word-spacing","letter-spacing","text-indent");
var b=e.clone().setStyles({visibility:"hidden",display:"block",position:"absolute"});d.width=d.height="";for(var g in d){d[g]=String(d[g])}b.injectInside(document.body);b.setStyles(d);var c={width:b.getStyle("width"),height:b.getStyle("height")};
b.dispose();b=null;var f=function(i,j){if(!j){return i}if(j.min!=null&&j.min<0){j.min=0}if(j.max!=null&&j.max<0){j.max=0}return Du.Style.Tools.modStyleVal(i,j.mod,j.min,j.max)};if(h){c.width=f(c.width,h)
}if(a){c.height=f(c.height,a)}return c},computeWidth:function(e,d,c,a){var b=this.computeSize(e,{mod:d,min:c,max:a});return b.width},computeHeight:function(e,d,c,a){var b=this.computeSize(e,{mod:d,min:c,max:a});
return b.height},autoWidth:function(e,c,b,a){var d=Du.Style.Tools.computeWidth(e,c,b,a);e.setStyle("width",d)},getOffsetSize:function(d){if($type(d)!="element"){return null}var c=d.getStyles("display","visibility");
var b=false;if(c.display=="none"){b=true;if(c.visibility!="hidden"){d.setStyle("visibility","hidden")}d.setStyle("display","block")}var a={width:d.offsetWidth+"px",height:d.offsetHeight+"px"};if(b){d.setStyles(c)
}return a}});
/* based on MooTools 1.11 Cookie */
Du.CookieCtrl=new Hash({_config:{domain:"",path:"",duration:"",secure:false},setConfig:function(a){if(!a){return}this._config=$merge(this._config,a)},set:function(c,d,b){if(!c){return
}b=$merge(this._config,b);d=encodeURIComponent(d);if(b.domain){d+="; domain="+b.domain}if(b.path){d+="; path="+b.path}if(b.duration){var a=new Date();a.setTime(a.getTime()+b.duration*24*60*60*1000);d+="; expires="+a.toGMTString()
}if(b.secure){d+="; secure"}document.cookie=c+"="+d},get:function(a){if(!a){return null}var b=document.cookie.match("(?:^|;)\\s*"+a.escapeRegExp()+"=([^;]*)");return b?decodeURIComponent(b[1]):null}});
Du.FridCtrl=new Hash({initFrid:function(){this._opt={};this._fridStr="";var a=this._normalize(window.location.hash);a.split("&").each(function(c){var b=c.split("=",2);if(b[0]!=""){this._opt[b[0]]=($chk(b[1])?b[1].split("+"):true)
}},this);this._formFrid();return this},getOpt:function(a,b){if(a!=""&&this._opt[a]!=null){return(b||this._opt[a]===true?this._opt[a]:this._opt[a][0])}return null},getKeys:function(){var a=[];for(var b in this._opt){a.push(b)
}return a},setOpt:function(b,c){var a={};if($type(b)=="object"){a=b}else{a[b]=($chk(c)?c:true)}return this.setOpts(a)},setOpts:function(b){for(var a in b){a=this._normalize(a);if(a==null||a==""||b[a]==null){continue
}if(b[a]==""||b[a]===true){this._opt[a]=true}else{var c=this._normalize(b[a]);this._opt[a]=($type(c)=="array"?c:[c])}}this._formFrid();return this},resetOpt:function(a){this._opt={};this.setOpt(a)},removeOpt:function(a){delete this._opt[a]
},updateFrid:function(a){if(a!=null){this.setOpt(a)}window.location.hash=this._fridStr},getFridStr:function(){return this._fridStr},_normalize:function(a){if($type(a)=="array"){return a.map(function(b){return arguments.callee(b)
})}else{return a.toString().replace(/[^\w\&=\-\+]/g,"")}},_formFrid:function(){var b="";for(var a in this._opt){if(this._opt[a]!=null){b+=(b!=""?"&":"")+a;if(this._opt[a]===true){continue}b+="="+this._opt[a].join("+")
}}this._fridStr=b}});Du.FridCtrl.initFrid();
/* based on MooTools 1.2 JSON */
Du.JSON=new Hash({$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(a){return Du.JSON.$specialChars[a]||"\\u00"+Math.floor(a.charCodeAt()/16).toString(16)+(a.charCodeAt()%16).toString(16)
},encode:function(b){switch($type(b)){case"string":return'"'+b.replace(/[\x00-\x1f\\"]/g,Du.JSON.$replaceChars)+'"';case"array":return"["+String(b.map(Du.JSON.encode).filter($defined))+"]";case"object":case"hash":var a=[];
Hash.each(b,function(e,d){var c=Du.JSON.encode(e);if(c){a.push(Du.JSON.encode(d)+":"+c)}});return"{"+a+"}";case"number":case"boolean":return String(b);case false:return"null"}return null},decode:function(string,secure){if($type(string)!="string"||!string.length){return null
}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null}return eval("("+string+")")},decodeVar:function(a,b){if($type(a)!="string"||!a.length){return null
}jsObj={};while(a&&a.length>0){var c=a.match(/^\s*var\s+([^\s=]+)\s*=\s*([^\n]*);\s*\n?(.*)/);if(!c||!c[2]){break}jsObj[c[1]]=Du.JSON.decode(c[2]);a=c[3]}return jsObj}});Du.Basesque64=new Hash({_charSet:(function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-.".split(""),b={};
a.each(function(e,d){b[e]=d});return{enc:a,dec:b}})(),encode:function(e){if(!e){return""}var c,d,a,h=this._charSet.enc,b=[],j=this._encodeUTF8(e),g,f;if(!j||j.length<=0){return""}f=j.length%3;if(f){f=3-f;
for(c=0;c<f;c++){j.push(0)}}for(c=0,d=j.length;c<d;){g=0;for(a=16;a>=0;a-=8){g|=(j[c++]&255)<<a}for(a=18;a>=0;a-=6){b.push(h[(g>>a)&63])}}if(f){b.splice(b.length-f,f--,h[64]);if(f){b.push(h[64])}}return b.join("")
},decode:function(h){if(!h){return""}h=h.replace(/[^\w\-]/g,"");var d,a,b,f=this._charSet.dec,e=[],c,g;g=h.length%4;if(g){g=4-g;for(d=0;d<g;d++){h+=this._charSet.enc[0]}}for(d=0,a=h.length;d<a;){c=0;for(b=18;
b>=0;b-=6){c|=f[h.charAt(d++)]<<b}for(b=16;b>=0;b-=8){e.push((c>>b)&255)}}if(g){e.splice(e.length-g,g)}return this._decodeUTF8(e)},_encodeUTF8:function(e){if(!e){return[]}var f,d=[];for(var b=0,a=e.length;
b<a;b++){f=e.charCodeAt(b);if(f<=127){d.push(f)}else{if(f<=2047){d.push((f>>6)|192);d.push((f&63)|128)}else{f=f&65535;d.push((f>>12)|224);d.push(((f>>6)&63)|128);d.push((f&63)|128)}}}return d},_decodeUTF8:function(e){if(!e){return""
}var f,d=[];for(var b=0,a=e.length;b<a;b++){f=e[b];if(f<=127){d.push(f)}else{if(f>=192&&f<=223){d.push(((f&31)<<6)|(e[++b]&63))}else{d.push(((f&15)<<12)|((e[++b]&63)<<6)|(e[++b]&63))}}}return String.fromCharCode.apply(null,d)
}});Du.GaCtrl=new Class({_gaCtrl:{},gaCtrlInit:function(a){this._gaCtrl.track=false;if($type(a)!="object"||$type(a.proc)!="function"){return}this._gaCtrl.proc=a.proc;this._gaCtrl.prefix=($type(a.prefix)=="string"?a.prefix:"");
this._gaCtrl.eventId=($type(a.eventId)=="object"?a.eventId:{});this._gaCtrl.track=true},gaCtrlTrack:function(b){if(!this._gaCtrl.track){return}var a=this._gaCtrl.prefix;if(this._gaCtrl.eventId[b]!=null){a+=this._gaCtrl.eventId[b]
}else{if(this._gaCtrl.eventId["_default"]!=null){a+=this._gaCtrl.eventId["_default"]}else{a+=b}}this._gaCtrl.proc(a)}});
/* based on MooTools 1.2 Sortables */
Du.DragTable=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:true,revert:false,handle:false,constrain:false},initialize:function(b,a){this.setOptions(a);
this.idle=true;this._tbody=null;if($type(b)!="element"){return}this._tbody=b;this._tbody.addEvent("mousedown",this.start.bindWithEvent(this));if(!this.options.clone){this.options.revert=false}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert))
}},getClone:function(b,a){if(!this.options.clone){return new Element("div").inject(document.body)}if($type(this.options.clone)=="function"){return this.options.clone.call(this,b,a,this.list)}var c=a.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:a.getStyle("width")});
return c.inject(this.list).setPosition(a.getPosition(a.getOffsetParent()))},getDroppables:function(){var a=this.list.getChildren();return a.erase(this.clone).erase(this.element)},insert:function(c,b){var a=this.element.getAllPrevious().contains(b)?"before":"after";
this.element.inject(b,a);this.fireEvent("sort",[this.element,this.clone])},start:function(b){if(!this.idle){return}var a=Du.Elem.retrieveTargElem(b.target,"tr",this._tbody);this.idle=false;this.element=a;
this.opacity=a.get("opacity");this.list=a.getParent();this.clone=this.getClone(b,a);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){b.stop();
this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone])}.bind(this),onDrop:this.drop.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});
this.clone.inject(this.element,"before");this.drag.start(b)},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var a=this.element.getStyles("width","height");var b=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));
this.effect.element=this.clone;this.effect.start({top:b.top,left:b.left,width:a.width,height:a.height,opacity:0.25}).chain(this.reset.bind(this))}else{this.reset()}},reset:function(){this.idle=true;this.clone.destroy();
this.fireEvent("complete",this.element)},drop:function(a,c,b){}});