var spacer='/editor/components/wz_dragdrop/transparentpixel.gif';var CLONE='C10nE';var COPY='C0pY';var DETACH_CHILDREN='d37aCH';var HORIZONTAL='H0r1Z';var MAXHEIGHT='m7x8I';var MAXOFFBOTTOM='m7xd0wN';var MAXOFFLEFT='m7x23Ft';var MAXOFFRIGHT='m7x0Ff8';var MAXOFFTOP='m7xu9';var MAXWIDTH='m7xW1';var MINWIDTH='m1nw1';var MINHEIGHT='m1n8I';var NO_ALT='no81T';var NO_DRAG='N0d4Ag';var RESET_Z='r35E7z';var RESIZABLE='r5IZbl';var SCALABLE='SCLbl';var SCROLL='sC8lL';var TRANSPARENT='dIApHAn';var VERTICAL='V3Rt1C';var dd_cursors=new Array('c:default','c:crosshair','c:e-resize','c:hand','c:help','c:move','c:n-resize','c:ne-resize','c:nw-resize','c:s-resize','c:se-resize','c:sw-resize','c:text','c:w-resize','c:wait');for(var dd_i=dd_cursors.length;dd_i;)
{--dd_i;eval('var CURSOR_'+(dd_cursors[dd_i].substring(2).toUpperCase().replace('-','_'))+' = "'+dd_cursors[dd_i]+'";');}
var dd_u="undefined";function WZDD()
{this.elements=new Array(0);this.obj=null;this.n=navigator.userAgent.toLowerCase();this.db=(document.compatMode&&document.compatMode.toLowerCase()!="backcompat")?document.documentElement:(document.body||null);this.op=!!(window.opera&&document.getElementById);if(this.op)document.onmousedown=new Function('e','if(((e = e || window.event).target || e.srcElement).tagName == "IMAGE") return false;');this.ie=!!(this.n.indexOf("msie")>=0&&document.all&&this.db&&!this.op);this.iemac=!!(this.ie&&this.n.indexOf("mac")>=0);this.ie4=!!(this.ie&&!document.getElementById);this.n4=!!(document.layers&&typeof document.classes!=dd_u);this.n6=!!(typeof window.getComputedStyle!=dd_u&&typeof document.createRange!=dd_u);this.w3c=!!(!this.op&&!this.ie&&!this.n6&&document.getElementById);this.ce=!!(document.captureEvents&&document.releaseEvents&&!this.n6);this.px=this.n4?'':'px';this.tWait=this.w3c?40:10;this.noRecalc=false;}
var dd=new WZDD();dd.Int=function(d_x,d_y)
{return isNaN(d_y=parseInt(d_x))?0:d_y;};dd.getWndW=function()
{return dd.Int((dd.db&&!dd.op&&!dd.w3c&&dd.db.clientWidth)?dd.db.clientWidth:(window.innerWidth||0));};dd.getWndH=function()
{return dd.Int((dd.db&&!dd.op&&!dd.w3c&&dd.db.clientHeight)?dd.db.clientHeight:(window.innerHeight||0));};dd.getScrollX=function()
{return dd.Int(window.pageXOffset||(dd.db?dd.db.scrollLeft:0));};dd.getScrollY=function()
{return dd.Int(window.pageYOffset||(dd.db?dd.db.scrollTop:0));};dd.getPageXY=function(d_o)
{if(dd.n4&&d_o)
{dd.x=d_o.pageX||0;dd.y=d_o.pageY||0;}
else
{dd.x=dd.y=0;while(d_o)
{dd.x+=dd.Int(d_o.offsetLeft);dd.y+=dd.Int(d_o.offsetTop);d_o=d_o.offsetParent||null;}}};dd.getCssXY=function(d_o)
{if(d_o.div)
{if(dd.n4)
{d_o.cssx=d_o.div.x;d_o.cssy=d_o.div.y;}
else if(dd.ie4)
{d_o.cssx=d_o.css.pixelLeft;d_o.cssy=d_o.css.pixelTop;}
else
{d_o.css.left=d_o.css.top=0+dd.px;dd.getPageXY(d_o.div);d_o.cssx=d_o.x-dd.x;d_o.cssy=d_o.y-dd.y;d_o.css.left=d_o.cssx+dd.px;d_o.css.top=d_o.cssy+dd.px;}}
else
{d_o.cssx=0;d_o.cssy=0;}};dd.getImgW=function(d_o)
{return d_o?dd.Int(d_o.width):0;};dd.getImgH=function(d_o)
{return d_o?dd.Int(d_o.height):0;};dd.getDivW=function(d_o)
{return dd.Int(dd.n4?(d_o.div?d_o.div.clip.width:0):d_o.div?(d_o.div.offsetWidth||d_o.css.pixelWidth||d_o.css.width||0):0);};dd.getDivH=function(d_o)
{return dd.Int(dd.n4?(d_o.div?d_o.div.clip.height:0):d_o.div?(d_o.div.offsetHeight||d_o.css.pixelHeight||d_o.css.height||0):0);};dd.getWH=function(d_o)
{d_o.w=dd.getDivW(d_o);d_o.h=dd.getDivH(d_o);if(d_o.css)
{d_o.css.width=d_o.w+dd.px;d_o.css.height=d_o.h+dd.px;d_o.dw=dd.getDivW(d_o)-d_o.w;d_o.dh=dd.getDivH(d_o)-d_o.h;d_o.css.width=(d_o.w-d_o.dw)+dd.px;d_o.css.height=(d_o.h-d_o.dh)+dd.px;}
else d_o.dw=d_o.dh=0;};dd.getCssProp=function(d_o,d_pn6,d_pstyle,d_pn4)
{if(d_o&&dd.n6)return''+window.getComputedStyle(d_o,null).getPropertyValue(d_pn6);if(d_o&&d_o.currentStyle)return''+eval('d_o.currentStyle.'+d_pstyle);if(d_o&&d_o.style)return''+eval('d_o.style.'+d_pstyle);if(d_o&&dd.n4)return''+eval('d_o.'+d_pn4);return'';};dd.getDiv=function(d_x,d_d)
{d_d=d_d||document;if(dd.n4)
{if(d_d.layers[d_x])return d_d.layers[d_x];for(var d_i=d_d.layers.length;d_i;)
{var d_y=dd.getDiv(d_x,d_d.layers[--d_i].document);if(d_y)return d_y;}}
if(dd.ie)return d_d.all[d_x]||null;if(d_d.getElementById)return d_d.getElementById(d_x)||null;return null;};dd.getImg=function(d_o,d_nm,d_xy,d_w)
{d_w=d_w||window;var d_img;if(document.images&&(d_img=d_w.document.images[d_nm]))
{if(d_xy)
{if(dd.n4)
{dd.getPageXY(d_w);d_o.defx=d_img.x+dd.x;d_o.defy=d_img.y+dd.y;}
else
{dd.getPageXY(d_img);d_o.defx=dd.x;d_o.defy=dd.y;}}
return d_img;}
if(dd.n4)for(var d_i=d_w.document.layers.length;d_i;)
{var d_y=dd.getImg(d_o,d_nm,d_xy,d_w.document.layers[--d_i]);if(d_y)return d_y;}
return null;};dd.getParent=function(d_o,d_p)
{if(dd.n4)
{for(var d_i=dd.elements.length;d_i;)
{if(!((d_p=dd.elements[--d_i]).is_image)&&d_p.div&&(d_p.div.document.layers[d_o.name]||d_o.oimg&&d_p.div.document.images[d_o.oimg.name]))
d_p.addChild(d_o,d_p.detach,1);}}
else
{d_p=d_o.is_image?dd.getImg(d_o,d_o.oimg.name):(d_o.div||null);while(d_p&&!!(d_p=d_p.offsetParent||d_p.parentNode||null))
{if(d_p.ddObj)
{d_p.ddObj.addChild(d_o,d_p.ddObj.detach,1);break;}}}};dd.getCmd=function(d_o,d_cmd,d_cmdStr)
{var d_i=d_o.id.indexOf(d_cmd),d_j,d_y=(d_i>=0)*1;if(d_y)
{d_j=d_i+d_cmd.length;if(d_cmdStr)d_o.cmd+=d_o.id.substring(d_i,d_j);d_o.id=d_o.id.substring(0,d_i)+d_o.id.substring(d_j);}
return d_y;};dd.getCmdVal=function(d_o,d_cmd,d_cmdStr,int0)
{var d_i=d_o.id.indexOf(d_cmd),d_j,d_y=(d_o.id.indexOf(d_cmd)>=0)?dd.Int(d_o.id.substring(d_o.id.indexOf(d_cmd)+d_cmd.length)):int0?-1:0;if(!int0&&d_y||int0&&d_y>=0)
{d_j=d_i+d_cmd.length+(""+d_y).length;if(d_cmdStr)d_o.cmd+=d_o.id.substring(d_i,d_j);d_o.id=d_o.id.substring(0,d_i)+d_o.id.substring(d_j);}
return d_y;};dd.addElt=function(d_o,d_p)
{dd.elements[d_o.name]=dd.elements[d_o.index=dd.elements.length]=d_o;if(d_p)d_p.copies[d_o.name]=d_p.copies[d_p.copies.length]=d_o;};dd.mkWzDom=function()
{var d_o,d_l=dd.elements.length,d_i;for(d_i=d_l;d_i;)dd.getParent(dd.elements[--d_i]);for(d_i=d_l;d_i;)
{if((d_o=dd.elements[--d_i]).children&&!d_o.parent)
{for(var d_j=d_o.children.length;d_j;)
{--d_j;d_o.children[d_j].setZ(d_o.z+d_o.children[d_j].z,1);}}}};dd.addProps=function(d_o)
{if(d_o.is_image)
{d_o.div=dd.getDiv(d_o.id);d_o.css=(d_o.div&&typeof d_o.div.style!=dd_u)?d_o.div.style:null;d_o.nimg=(dd.n4&&d_o.div)?d_o.div.document.images[0]:(document.images[d_o.id+"NI1m6G"]||null);if(!d_o.noalt&&!dd.noalt&&d_o.nimg&&d_o.oimg)
{d_o.nimg.alt=d_o.oimg.alt||'';d_o.nimg.title=d_o.oimg.title;d_o.nimg.onmouseover=d_o.oimg.onmouseover;d_o.nimg.onmouseout=d_o.oimg.onmouseout;}
d_o.bgColor='';}
else
{d_o.bgColor=dd.getCssProp(d_o.div,'background-color','backgroundColor','bgColor').toLowerCase();if(dd.n6&&d_o.div)
{var d_c=d_o.bgColor.toLowerCase();if(d_c.indexOf('rgb')>=0)
{d_c=d_c.substring(4,d_c.length-1).split(',');d_o.bgColor='#';for(var d_l=d_c.length,d_i=0;d_i<d_l;d_i++)d_o.bgColor+=parseInt(d_c[d_i]).toString(0x10);}
else d_o.bgColor=d_c;}}
if(dd.scalable)d_o.scalable=d_o.resizable^1;else if(dd.resizable)d_o.resizable=d_o.scalable^1;d_o.setZ(d_o.defz);d_o.cursor=d_o.cursor||dd.cursor||'auto';d_o._setCrs(d_o.nodrag?'auto':d_o.cursor);d_o.diaphan=d_o.diaphan||dd.diaphan||0;d_o.opacity=1.0;d_o.visible=true;};dd.initz=function()
{if(!(dd&&(dd.n4||dd.n6||dd.ie||dd.op||dd.w3c)))return;else if(dd.n6||dd.ie||dd.op||dd.w3c)dd.recalc(1);var d_drag=(document.onmousemove==DRAG),d_resize=(document.onmousemove==RESIZE);if(dd.loadFunc)dd.loadFunc();if(d_drag)dd.setMovHdl(DRAG);else if(d_resize)dd.setMovHdl(RESIZE);if(d_drag||d_resize)dd.setUpHdl(DROP);dd.setDwnHdl(PICK);};dd.finlz=function()
{if(dd.ie&&dd.elements)
{dd.noRecalc=true;for(var d_i=dd.elements.length;d_i;)
dd.elements[--d_i].del();dd.noRecalc=false;}
if(dd.uloadFunc)dd.uloadFunc();};dd.setCe=function(d_e,d_fnc)
{d_fnc?document.captureEvents(d_e):document.releaseEvents(d_e);};dd.setDwnHdl=function(d_x)
{if(document.onmousedown!=d_x)
{dd.downFunc=document.onmousedown;document.onmousedown=d_x;if(dd.ce)dd.setCe(Event.MOUSEDOWN,d_x);}};dd.setMovHdl=function(d_x)
{if(document.onmousemove!=d_x)
{dd.moveFunc=document.onmousemove;document.onmousemove=d_x;if(dd.ce)dd.setCe(Event.MOUSEMOVE,d_x);}};dd.setUpHdl=function(d_x)
{if(document.onmouseup!=d_x)
{dd.upFunc=document.onmouseup;document.onmouseup=d_x;if(dd.ce)dd.setCe(Event.MOUSEUP,d_x);}};dd.evt=function(d_e)
{this.but=(this.e=d_e||window.event).which||this.e.button||0;this.button=(this.e.type=='mousedown')?this.but:(dd.e&&dd.e.button)?dd.e.button:0;this.src=this.e.target||this.e.srcElement||null;this.src.tag=(""+(this.src.tagName||this.src)).toLowerCase();this.x=dd.Int(this.e.pageX||this.e.clientX||0);this.y=dd.Int(this.e.pageY||this.e.clientY||0);if(dd.ie)
{this.x+=dd.getScrollX()-(dd.ie&&!dd.iemac)*1;this.y+=dd.getScrollY()-(dd.ie&&!dd.iemac)*1;}
this.modifKey=this.e.modifiers?this.e.modifiers&Event.SHIFT_MASK:(this.e.shiftKey||false);};dd.getEventTarget=function(d_e,d_s,d_n)
{d_e=d_e||window.event;if(d_e&&(d_s=d_e.target||d_e.srcElement||null)!=null)
{if(null!=(d_n=d_s.id||d_s.name||null))
{if(d_n.indexOf("dIi15vNI1m6G")==d_n.length-12)
return dd.elements[d_n.substring(0,d_n.length-12)]||null;if(d_n.indexOf("dIi15v")==d_n.length-6)
return dd.elements[d_n.substring(0,d_n.length-6)]||null;return dd.elements[d_n]||null;}}
return null;};dd.recalc=function(d_x)
{if(dd.noRecalc)return;for(var d_o,d_i=dd.elements.length;d_i;)
{if(!(d_o=dd.elements[--d_i]).is_image&&d_o.div)
{dd.getWH(d_o);if(d_o.div.pos_rel)
{dd.getPageXY(d_o.div);var d_dx=dd.x-d_o.x,d_dy=dd.y-d_o.y;d_o.defx+=d_dx;d_o.x+=d_dx;d_o.defy+=d_dy;d_o.y+=d_dy;for(var d_p,d_j=d_o.children.length;d_j;)
{if(!(d_p=d_o.children[--d_j]).detached&&(d_o!=d_p.defparent||!(d_p.is_image&&dd.getImg(d_p,d_p.oimg.name,1))))
{d_p.defx+=d_dx;d_p.defy+=d_dy;d_p.moveBy(d_dx,d_dy);}}}}
else if(d_o.is_image&&!dd.n4)
{if(dd.n6&&d_x&&!d_o.defw)d_o.resizeTo(d_o.defw=dd.getImgW(d_o.oimg),d_o.defh=dd.getImgH(d_o.oimg));var d_defx=d_o.defx,d_defy=d_o.defy;if(!(d_o.parent&&d_o.parent!=d_o.defparent)&&(d_x||!d_o.detached||d_o.horizontal||d_o.vertical)&&dd.getImg(d_o,d_o.oimg.name,1))
d_o.moveBy(d_o.defx-d_defx,d_o.defy-d_defy);}}};function WINSZ(d_x)
{if(d_x)
{if(dd.n4)
{dd.iW=innerWidth;dd.iH=innerHeight;}
window.onresize=new Function('WINSZ();');}
else if(dd.n4&&(innerWidth!=dd.iW||innerHeight!=dd.iH))location.reload();else if(!dd.n4)setTimeout('dd.recalc()',0xa);}
WINSZ(1);function DDObj(d_o,d_i)
{this.id=d_o;this.cmd='';this.cpy_n=dd.getCmdVal(this,COPY);this.maxoffb=dd.getCmdVal(this,MAXOFFBOTTOM,0,1);this.maxoffl=dd.getCmdVal(this,MAXOFFLEFT,0,1);this.maxoffr=dd.getCmdVal(this,MAXOFFRIGHT,0,1);this.maxofft=dd.getCmdVal(this,MAXOFFTOP,0,1);var d_j=dd_cursors.length;while(d_j--)
if(dd.getCmd(this,dd_cursors[d_j],1))this.cursor=dd_cursors[d_j].substring(2);this.clone=dd.getCmd(this,CLONE,1);this.detach=dd.getCmd(this,DETACH_CHILDREN);this.scalable=dd.getCmd(this,SCALABLE,1);this.horizontal=dd.getCmd(this,HORIZONTAL);this.noalt=dd.getCmd(this,NO_ALT,1);this.nodrag=dd.getCmd(this,NO_DRAG);this.scroll=dd.getCmd(this,SCROLL,1);this.resizable=dd.getCmd(this,RESIZABLE,1);this.re_z=dd.getCmd(this,RESET_Z,1);this.diaphan=dd.getCmd(this,TRANSPARENT,1);this.vertical=dd.getCmd(this,VERTICAL);this.maxw=dd.getCmdVal(this,MAXWIDTH,1,1);this.minw=Math.abs(dd.getCmdVal(this,MINWIDTH,1,1));this.maxh=dd.getCmdVal(this,MAXHEIGHT,1,1);this.minh=Math.abs(dd.getCmdVal(this,MINHEIGHT,1,1));this.pickFunc=this.dragFunc=this.resizeFunc=this.dropFunc=null;this.name=this.id+(d_i||'');this.oimg=dd.getImg(this,this.id,1);this.is_image=!!this.oimg;this.copies=new Array();this.children=new Array();this.parent=this.original=null;if(this.oimg)
{this.id=this.name+"dIi15v";this.w=dd.getImgW(this.oimg);this.h=dd.getImgH(this.oimg);this.dw=this.dh=0;this.defz=dd.Int(dd.getCssProp(this.oimg,'z-index','zIndex','zIndex'))||1;this.defsrc=this.src=this.oimg.src;this.htm='<img name="'+this.id+'NI1m6G"'+
' src="'+this.oimg.src+'" '+
'width="'+this.w+'" height="'+this.h+'">';this.t_htm='<div id="'+this.id+
'" style="position:absolute;'+
'left:'+(this.cssx=this.x=this.defx)+'px;'+
'top:'+(this.cssy=this.y=this.defy)+'px;'+
'width:'+this.w+'px;'+
'height:'+this.h+'px;">'+
this.htm+'</div>';}
else
{if(!!(this.div=dd.getDiv(this.id))&&typeof this.div.style!=dd_u)this.css=this.div.style;dd.getWH(this);if(this.div)
{this.div.ddObj=this;this.div.pos_rel=dd.getCssProp(this.div,'position','position','position')=="relative";}
dd.getPageXY(this.div);this.defx=this.x=dd.x;this.defy=this.y=dd.y;dd.getCssXY(this);this.defz=dd.Int(dd.getCssProp(this.div,'z-index','zIndex','zIndex'));}
this.defw=this.w||0;this.defh=this.h||0;}
DDObj.prototype.setPickFunc=function(d_x)
{this.pickFunc=d_x;};DDObj.prototype.setDragFunc=function(d_x)
{this.dragFunc=d_x;};DDObj.prototype.setResizeFunc=function(d_x)
{this.resizeFunc=d_x;};DDObj.prototype.setDropFunc=function(d_x)
{this.dropFunc=d_x;};DDObj.prototype.moveBy=function(d_x,d_y,d_kds,d_o)
{if(!this.div)return;this.x+=(d_x=dd.Int(d_x));this.y+=(d_y=dd.Int(d_y));if(!d_kds||this.is_image||this.parent!=this.defparent)
{(d_o=this.css||this.div).left=(this.cssx+=d_x)+dd.px;d_o.top=(this.cssy+=d_y)+dd.px;}
for(var d_i=this.children.length;d_i;)
{if(!(d_o=this.children[--d_i]).detached)d_o.moveBy(d_x,d_y,1);d_o.defx+=d_x;d_o.defy+=d_y;}};DDObj.prototype.moveTo=function(d_x,d_y)
{this.moveBy(dd.Int(d_x)-this.x,dd.Int(d_y)-this.y);};DDObj.prototype.hide=function(d_m,d_o,d_p)
{if(this.div&&this.visible)
{d_p=this.css||this.div;if(d_m&&!dd.n4)
{this.display=dd.getCssProp(this.div,"display","display","display");if(this.oimg)
{this.oimg.display=dd.getCssProp(this.oimg,"display","display","display");this.oimg.style.display="none";}
d_p.display="none";dd.recalc();}
else d_p.visibility="hidden";}
this.visible=false;for(var d_i=this.children.length;d_i;)
if(!(d_o=this.children[--d_i]).detached)d_o.hide(d_m);};DDObj.prototype.show=function(d_o,d_p)
{if(this.div)
{d_p=this.css||this.div;if(d_p.display&&d_p.display=="none")
{d_p.display=this.display||"block";if(this.oimg)this.oimg.style.display=this.oimg.display||"inline";dd.recalc();}
else d_p.visibility="visible";}
this.visible=true;for(var d_i=this.children.length;d_i;)
if(!(d_o=this.children[--d_i]).detached)d_o.show();};DDObj.prototype.resizeTo=function(d_w,d_h,d_o)
{if(!this.div)return;d_w=(this.w=dd.Int(d_w))-this.dw;d_h=(this.h=dd.Int(d_h))-this.dh;if(dd.n4)
{this.div.resizeTo(d_w,d_h);if(this.is_image)
{this.write('<img src="'+this.src+'" width="'+d_w+'" height="'+d_h+'">');(this.nimg=this.div.document.images[0]).src=this.src;}}
else if(typeof this.css.pixelWidth!=dd_u)
{this.css.pixelWidth=d_w;this.css.pixelHeight=d_h;if(this.is_image)
{(d_o=this.nimg.style).pixelWidth=d_w;d_o.pixelHeight=d_h;}}
else
{this.css.width=d_w+dd.px;this.css.height=d_h+dd.px;if(this.is_image)
{(d_o=this.nimg).width=d_w;d_o.height=d_h;if(!d_o.complete)d_o.src=this.src;}}};DDObj.prototype.resizeBy=function(d_dw,d_dh)
{this.resizeTo(this.w+dd.Int(d_dw),this.h+dd.Int(d_dh));};DDObj.prototype.swapImage=function(d_x,d_cp)
{if(!this.nimg)return;this.nimg.src=d_x;this.src=this.nimg.src;if(d_cp)
{for(var d_i=this.copies.length;d_i;)
{--d_i;this.copies[d_i].src=this.copies[d_i].nimg.src=this.nimg.src;}}};DDObj.prototype.setBgColor=function(d_x)
{if(dd.n4&&this.div)this.div.bgColor=d_x;else if(this.css)this.css.background=d_x;this.bgColor=d_x;};DDObj.prototype.write=function(d_x,d_o)
{this.text=d_x;if(!this.div)return;if(dd.n4)
{(d_o=this.div.document).open();d_o.write(d_x);d_o.close();dd.getWH(this);}
else
{this.css.height='auto';this.div.innerHTML=d_x;if(!dd.ie4)dd.recalc();if(dd.ie4||dd.n6)setTimeout('dd.recalc();',0);}};DDObj.prototype.copy=function(d_n,d_p,d_b)
{if(!this.oimg)return;d_b=(dd.ie&&document.all.tags('body'))?document.all.tags('body')[0]:document.getElementsByTagName?(document.getElementsByTagName('body')[0]||dd.db):dd.db;for(d_n=d_n||1;d_n>0;--d_n)
{var d_l=this.copies.length,d_o=new DDObj(this.name+this.cmd,d_l+1);if(dd.n4)
{d_o.id=(d_p=new Layer(d_o.w)).name;d_p.clip.height=d_o.h;d_p.visibility='show';(d_p=d_p.document).open();d_p.write(d_o.htm);d_p.close();}
else if(d_b&&d_b.insertAdjacentHTML)d_b.insertAdjacentHTML("AfterBegin",d_o.t_htm);else if(document.createElement&&d_b&&d_b.appendChild)
{d_b.appendChild(d_p=document.createElement("dIi15v"));d_p.innerHTML=d_o.htm;d_p.id=d_o.id;d_p.style.position='absolute';d_p.style.width=d_o.w+'px';d_p.style.height=d_o.h+'px';}
else if(d_b&&d_b.innerHTML)d_b.innerHTML+=d_o.t_htm;d_o.defz=this.defz+1+d_l;dd.addProps(d_o);d_o.original=this;dd.addElt(d_o,this);if(this.parent)
{this.parent.addChild(d_o,this.detached);d_o.defparent=this.defparent;}
d_o.moveTo(d_o.defx=this.defx,d_o.defy=this.defy);if(dd.n4)d_o.defsrc=d_o.src=this.defsrc;d_o.swapImage(this.src);}};DDObj.prototype.addChild=function(d_kd,detach,defp)
{if(typeof d_kd!="object")d_kd=dd.elements[d_kd];if(d_kd.parent&&d_kd.parent==this||d_kd==this||!d_kd.is_image&&d_kd.defparent&&!defp)return;this.children[this.children.length]=this.children[d_kd.name]=d_kd;d_kd.detached=detach||0;if(defp)d_kd.defparent=this;else if(this==d_kd.defparent&&d_kd.is_image)dd.getImg(this,d_kd.oimg.name,1);if(!d_kd.defparent||this!=d_kd.defparent)
{d_kd.defx=d_kd.x;d_kd.defy=d_kd.y;}
if(!detach)
{d_kd.defz=d_kd.defz+this.defz-(d_kd.parent?d_kd.parent.defz:0)+(!d_kd.is_image*1);d_kd.setZ(d_kd.z+this.z-(d_kd.parent?d_kd.parent.z:0)+(!d_kd.is_image*1),1);}
if(d_kd.parent)d_kd.parent.removeChild(d_kd,1);d_kd.parent=this;};DDObj.prototype.removeChild=function(d_kd,d_newp)
{if(typeof d_kd!="object")d_kd=this.children[d_kd];var d_oc=this.children,d_nc=new Array();for(var d_i=0;d_i<d_oc.length;d_i++)
if(d_oc[d_i]!=d_kd)d_nc[d_nc.length]=d_oc[d_i];this.children=d_nc;d_kd.parent=null;if(!d_newp)
{d_kd.detached=d_kd.defp=0;if(d_kd.is_image)dd.getImg(d_kd,d_kd.oimg.name,1);}};DDObj.prototype.attachChild=function(d_kd)
{(d_kd=(typeof d_kd!="object")?this.children[d_kd]:d_kd).detached=0;d_kd.setZ(d_kd.defz+this.z-this.defz,1);};DDObj.prototype.detachChild=function(d_kd)
{(d_kd=(typeof d_kd!="object")?this.children[d_kd]:d_kd).detached=1;};DDObj.prototype.setZ=function(d_x,d_kds,d_o)
{if(d_kds)
{for(var d_dz=d_x-this.z,d_i=this.children.length;d_i;)
if(!(d_o=this.children[--d_i]).detached)d_o.setZ(d_o.z+d_dz,1);}
dd.z=Math.max(dd.z,this.z=this.div?((this.css||this.div).zIndex=d_x):0);};DDObj.prototype.maximizeZ=function()
{this.setZ(dd.z+1,1);};DDObj.prototype._resetZ=function(d_o)
{if(this.re_z||dd.re_z)
{this.setZ(this.defz);for(var d_i=this.children.length;d_i;)
if(!(d_o=this.children[--d_i]).detached)d_o.setZ(d_o.defz);}};DDObj.prototype.setOpacity=function(d_x)
{this.opacity=d_x;this._setOpaRel(1.0,1);};DDObj.prototype._setOpaRel=function(d_x,d_kd,d_y,d_o)
{if(this.css&&(this.diaphan||d_kd))
{d_y=this.opacity*d_x;if(typeof this.css.MozOpacity!=dd_u)this.css.MozOpacity=d_y;else if(typeof this.css.opacity!=dd_u)this.css.opacity=d_y;else if(typeof this.css.filter!=dd_u)
this.css.filter="Alpha(opacity="+parseInt(100*d_y)+")";for(var d_i=this.children.length;d_i;)
if(!(d_o=this.children[--d_i]).detached)d_o._setOpaRel(d_x,1);}};DDObj.prototype.setCursor=function(d_x)
{this._setCrs(this.cursor=(d_x.indexOf('c:')+1)?d_x.substring(2):d_x);};DDObj.prototype._setCrs=function(d_x)
{if(this.css)this.css.cursor=((!dd.ie||dd.iemac)&&d_x=='hand')?'pointer':d_x;};DDObj.prototype.setDraggable=function(d_x)
{this.nodrag=!d_x*1;this._setCrs(d_x?this.cursor:'auto');};DDObj.prototype.setResizable=function(d_x)
{this.resizable=d_x*1;if(d_x)this.scalable=0;};DDObj.prototype.setScalable=function(d_x)
{this.scalable=d_x*1;if(d_x)this.resizable=0;};DDObj.prototype.setHorizontal=function(d_x)
{this.horizontal=d_x*1;};DDObj.prototype.setVertical=function(d_x)
{this.vertical=d_x*1;};DDObj.prototype.getEltBelow=function(d_ret,d_x,d_y)
{var d_o,d_cmp=-1,d_i=dd.elements.length;while(d_i--)
{d_o=dd.elements[d_i];d_x=d_o.x-this.w/2;d_y=d_o.y-this.h/2;if(d_o.visible&&d_o.z<this.z&&this.x>=d_x&&this.x<=d_x+d_o.w&&this.y>=d_y&&this.y<=d_y+d_o.h)
{if(d_o.z>d_cmp)
{d_cmp=d_o.z;d_ret=d_o;}}}
return d_ret;};DDObj.prototype.del=function(d_os,d_o)
{var d_i,d_l;if(this.parent&&this.parent.removeChild)this.parent.removeChild(this);if(this.original)
{this.hide();if(this.original.copies)
{d_os=new Array();for(d_l=this.original.copies.length,d_i=0;d_i<d_l;d_i++)
if((d_o=this.original.copies[d_i])!=this)d_os[d_o.name]=d_os[d_os.length]=d_o;this.original.copies=d_os;}}
else if(this.is_image)
{this.hide();if(this.oimg)
{if(dd.n4)this.oimg.src=this.defsrc;else this.oimg.style.visibility='visible';}}
else if(this.moveTo)
{if(this.css)this.css.cursor='default';this.moveTo(this.defx,this.defy);this.resizeTo(this.defw,this.defh);}
d_os=new Array();for(d_l=dd.elements.length,d_i=0;d_i<d_l;d_i++)
{if((d_o=dd.elements[d_i])!=this)d_os[d_o.name]=d_os[d_o.index=d_os.length]=d_o;else d_o._free();}
dd.elements=d_os;if(!dd.n4)dd.recalc();};DDObj.prototype._free=function()
{for(var d_i in this)
this[d_i]=null;dd.elements[this.name]=null;};dd.n4RectVis=function(vis)
{for(var d_i=4;d_i;)
{--d_i;dd.rectI[d_i].visibility=dd.rectA[d_i].visibility=vis?'show':'hide';if(vis)dd.rectI[d_i].zIndex=dd.rectA[d_i].zIndex=dd.z+2;}};dd.n4RectPos=function(d_o,d_x,d_y,d_w,d_h)
{d_o.x=d_x;d_o.y=d_y;d_o.clip.width=d_w;d_o.clip.height=d_h;};dd.n4Rect=function(d_w,d_h)
{var d_i;if(!dd.rectI)
{dd.rectI=new Array();dd.rectA=new Array();}
if(!dd.rectI[0])
{for(d_i=4;d_i;)
{(dd.rectI[--d_i]=new Layer(1)).bgColor='#000000';(dd.rectA[d_i]=new Layer(1)).bgColor='#ffffff';}}
if(!dd.rectI[0].visibility||dd.rectI[0].visibility=='hide')dd.n4RectVis(1);dd.obj.w=d_w;dd.obj.h=d_h;for(d_i=4;d_i;)
{--d_i;dd.n4RectPos(dd.rectI[d_i],dd.obj.x+(!(d_i-1)?(dd.obj.w-1):0),dd.obj.y+(!(d_i-2)?(dd.obj.h-1):0),d_i&1||dd.obj.w,!(d_i&1)||dd.obj.h);dd.n4RectPos(dd.rectA[d_i],!(d_i-1)?dd.rectI[1].x+1:(dd.obj.x-1),!(d_i-2)?dd.rectI[2].y+1:(dd.obj.y-1),d_i&1||dd.obj.w+2,!(d_i&1)||dd.obj.h+2);}};dd.reszTo=function(d_w,d_h)
{if(dd.n4&&dd.obj.is_image)dd.n4Rect(d_w,d_h);else dd.obj.resizeTo(d_w,d_h);};dd.embedVis=function(d_vis)
{var d_o=new Array('iframe','applet','embed','object');for(var d_i=d_o.length;d_i;)
{--d_i;var d_p=dd.ie?document.all.tags(d_o[d_i]):document.getElementsByTagName?document.getElementsByTagName(d_o[d_i]):null;if(d_p)
{for(var d_j=d_p.length;d_j;)
{var d_q=d_p[--d_j];while(d_q.offsetParent||d_q.parentNode)
{if((d_q=d_q.parentNode||d_q.offsetParent||null)==dd.obj.div)
{d_p[d_j].style.visibility=d_vis;break;}}}}}};dd.maxOffX=function(d_x,d_y)
{return((dd.obj.maxoffl+1&&(d_y=dd.obj.defx-dd.obj.maxoffl)-d_x>0||dd.obj.maxoffr+1&&(d_y=dd.obj.defx+dd.obj.maxoffr)-d_x<0)?d_y:d_x);};dd.maxOffY=function(d_x,d_y)
{return((dd.obj.maxofft+1&&(d_y=dd.obj.defy-dd.obj.maxofft)-d_x>0||dd.obj.maxoffb+1&&(d_y=dd.obj.defy+dd.obj.maxoffb)-d_x<0)?d_y:d_x);};dd.inWndW=function(d_x,d_y)
{var d_wx=dd.getScrollX(),d_ww=dd.getWndW();return(((d_y=d_wx+2)-d_x>0)||((d_y=d_wx+d_ww+dd.obj.w-2)-d_x<0)?d_y:d_x);};dd.inWndH=function(d_x,d_y)
{var d_wy=dd.getScrollY(),d_wh=dd.getWndH();return(((d_y=d_wy+2)-d_x>0)||((d_y=d_wy+d_wh+dd.obj.h-2)-d_x<0)?d_y:d_x);};dd.limW=function(d_w)
{return((dd.obj.minw-d_w>0)?dd.obj.minw:(dd.obj.maxw>0&&dd.obj.maxw-d_w<0)?dd.obj.maxw:d_w);};dd.limH=function(d_h)
{return((dd.obj.minh-d_h>0)?dd.obj.minh:(dd.obj.maxh>0&&dd.obj.maxh-d_h<0)?dd.obj.maxh:d_h);};function DDScroll()
{if(!dd.obj||!dd.obj.scroll&&!dd.scroll||dd.ie4||dd.whratio)
{dd.scrx=dd.scry=0;return;}
var d_bnd=0x1c,d_wx=dd.getScrollX(),d_wy=dd.getScrollY();if(dd.msmoved)
{var d_ww=dd.getWndW(),d_wh=dd.getWndH(),d_y;dd.scrx=((d_y=dd.e.x-d_ww-d_wx+d_bnd)>0)?(d_y>>=2)*d_y:((d_y=d_wx+d_bnd-dd.e.x)>0)?-(d_y>>=2)*d_y:0;dd.scry=((d_y=dd.e.y-d_wh-d_wy+d_bnd)>0)?(d_y>>=2)*d_y:((d_y=d_wy+d_bnd-dd.e.y)>0)?-(d_y>>=2)*d_y:0;}
if(dd.scrx||dd.scry)
{window.scrollTo(d_wx+(dd.scrx=dd.obj.is_resized?dd.limW(dd.obj.w+dd.scrx)-dd.obj.w:dd.obj.vertical?0:(dd.maxOffX(dd.obj.x+dd.scrx)-dd.obj.x)),d_wy+(dd.scry=dd.obj.is_resized?dd.limH(dd.obj.h+dd.scry)-dd.obj.h:dd.obj.horizontal?0:(dd.maxOffY(dd.obj.y+dd.scry)-dd.obj.y)));dd.obj.is_dragged?dd.obj.moveTo(dd.obj.x+dd.getScrollX()-d_wx,dd.obj.y+dd.getScrollY()-d_wy):dd.reszTo(dd.obj.w+dd.getScrollX()-d_wx,dd.obj.h+dd.getScrollY()-d_wy);}
dd.msmoved=0;window.setTimeout('DDScroll()',0x33);}
function PICK(d_ev)
{dd.e=new dd.evt(d_ev);if(dd.e.x>=dd.getWndW()+dd.getScrollX()||dd.e.y>=dd.getWndH()+dd.getScrollY())return true;for(var d_o,d_t,d_cmp=-1,d_i=dd.elements.length;d_i;)
{d_o=dd.elements[--d_i];if(dd.n4&&dd.e.but>1&&dd.e.src==d_o.oimg&&!d_o.clone)return false;if(d_o.visible&&dd.e.but<=1&&dd.e.x>=d_o.x&&dd.e.x<=d_o.x+d_o.w&&dd.e.y>=d_o.y&&dd.e.y<=d_o.y+d_o.h)
{if(d_o.z>d_cmp&&(d_t=dd.e.src.tag).indexOf('inpu')<0&&d_t.indexOf('texta')<0&&d_t.indexOf('sele')<0&&d_t.indexOf('opti')<0&&d_t.indexOf('scrol')<0)
{d_cmp=d_o.z;dd.obj=d_o;}}}
if(dd.obj)
{if(dd.obj.nodrag)dd.obj=null;else
{dd.e.e.cancelBubble=true;var d_rsz=dd.e.modifKey&&(dd.obj.resizable||dd.obj.scalable);if(dd.op)
{(d_o=document.getElementById('OpBlUr')).style.pixelLeft=dd.e.x;d_o.style.pixelTop=dd.e.y;(d_o=d_o.children[0].children[0]).focus();d_o.blur();}
else if(dd.ie&&!dd.ie4)
{if(document.selection&&document.selection.empty)document.selection.empty();dd.db.onselectstart=function()
{event.returnValue=false;};}
if(d_rsz)
{dd.obj._setCrs('se-resize');dd.obj.is_resized=1;dd.whratio=dd.obj.scalable?dd.obj.defw/dd.obj.defh:0;if(dd.ie)
{if(dd.ie4)
{window.dd_x=dd.getScrollX();window.dd_y=dd.getScrollY();}
setTimeout('if(dd.obj && document.selection && document.selection.empty)'+
'{'+
'document.selection.empty();'+
'if(dd.ie4) window.scrollTo(window.dd_x, window.dd_y);'+
'}',0);}
dd.setMovHdl(RESIZE);dd.reszTo(dd.obj.w,dd.obj.h);}
else
{dd.obj.is_dragged=1;dd.setMovHdl(DRAG);}
dd.setUpHdl(DROP);dd.embedVis('hidden');dd.obj._setOpaRel(0.7);dd.obj.maximizeZ();dd.ofx=dd.obj.x+dd.obj.w-dd.e.x;dd.ofy=dd.obj.y+dd.obj.h-dd.e.y;if(window.my_PickFunc)my_PickFunc();if(dd.obj.pickFunc)dd.obj.pickFunc();DDScroll();return!(dd.obj.is_resized||dd.n4&&dd.obj.is_image||dd.n6||dd.w3c);}}
if(dd.downFunc)return dd.downFunc(d_ev);return true;}
function DRAG(d_ev)
{if(!dd.obj||!dd.obj.visible)return true;if(dd.ie4||dd.w3c||dd.n6||dd.obj.children.length>0xf)
{if(dd.wait)return false;dd.wait=1;setTimeout('dd.wait = 0;',dd.tWait);}
dd.e=new dd.evt(d_ev);if(dd.ie&&!dd.e.but)
{DROP(d_ev);return true;}
dd.msmoved=1;dd.obj.moveTo(dd.obj.vertical?dd.obj.x:dd.maxOffX(dd.inWndW(dd.ofx+dd.e.x)-dd.obj.w),dd.obj.horizontal?dd.obj.y:dd.maxOffY(dd.inWndH(dd.ofy+dd.e.y)-dd.obj.h));if(window.my_DragFunc)my_DragFunc();if(dd.obj.dragFunc)dd.obj.dragFunc();if(dd.moveFunc)return dd.moveFunc(d_ev);return false;}
function RESIZE(d_ev)
{if(!dd.obj||!dd.obj.visible)return true;if(dd.wait)return false;dd.wait=1;setTimeout('dd.wait = 0;',dd.tWait);dd.e=new dd.evt(d_ev);if(dd.ie&&!dd.e.but)
{DROP(d_ev);return true;}
dd.msmoved=1;var d_w=dd.limW(dd.inWndW(dd.ofx+dd.e.x)-dd.obj.x),d_h;if(!dd.whratio)d_h=dd.limH(dd.inWndH(dd.ofy+dd.e.y)-dd.obj.y);else
{d_h=dd.limH(dd.inWndH(Math.round(d_w/dd.whratio)+dd.obj.y)-dd.obj.y);d_w=Math.round(d_h*dd.whratio);}
dd.reszTo(d_w,d_h);if(window.my_ResizeFunc)my_ResizeFunc();if(dd.obj.resizeFunc)dd.obj.resizeFunc();if(dd.moveFunc)return dd.moveFunc(d_ev);return false;}
function DROP(d_ev)
{if(dd.obj)
{if(dd.obj.is_dragged)
{if(!dd.obj.is_image)dd.getWH(dd.obj);}
else if(dd.n4)
{if(dd.obj.is_image)
{dd.n4RectVis(0);dd.obj.resizeTo(dd.obj.w,dd.obj.h);}}
if(!dd.n4||!dd.obj.is_image)dd.recalc();dd.setMovHdl(dd.moveFunc);dd.setUpHdl(dd.upFunc);if(dd.db)dd.db.onselectstart=null;dd.obj._setOpaRel(1.0);dd.obj._setCrs(dd.obj.cursor);dd.embedVis('visible');dd.obj._resetZ();dd.e=new dd.evt(d_ev);if(window.my_DropFunc)my_DropFunc();if(dd.obj.dropFunc)dd.obj.dropFunc();dd.msmoved=dd.obj.is_dragged=dd.obj.is_resized=dd.whratio=0;dd.obj=null;}
dd.setDwnHdl(PICK);}
function SET_DHTML()
{var d_a=arguments,d_ai,d_htm='',d_o,d_i=d_a.length;while(d_i)
{if(!(d_ai=d_a[--d_i]).indexOf('c:'))dd.cursor=d_ai.substring(2);else if(d_ai==NO_ALT)dd.noalt=1;else if(d_ai==SCROLL)dd.scroll=1;else if(d_ai==RESET_Z)dd.re_z=1;else if(d_ai==RESIZABLE)dd.resizable=1;else if(d_ai==SCALABLE)dd.scalable=1;else if(d_ai==TRANSPARENT)dd.diaphan=1;else
{d_o=new DDObj(d_ai);dd.addElt(d_o);d_htm+=d_o.t_htm||'';if(d_o.oimg&&d_o.cpy_n)
{for(var d_l=d_o.cpy_n,d_j=0;d_j<d_l;)
{var d_p=new DDObj(d_o.name+d_o.cmd,++d_j);dd.addElt(d_p,d_o);d_p.defz=d_o.defz+d_j;d_p.original=d_o;d_htm+=d_p.t_htm;}}}}
if(dd.n4||dd.n6||dd.ie||dd.op||dd.w3c)document.write((dd.n4?'<div style="position:absolute;"><\/div>\n':(dd.op&&!dd.op6)?'<div id="OpBlUr" style="position:absolute;visibility:hidden;width:0px;height:0px;"><form><input type="text" style="width:0px;height:0px;"><\/form><\/div>':'')+d_htm);dd.z=0x33;for(d_i=dd.elements.length;d_i;)
{dd.addProps(d_o=dd.elements[--d_i]);if(d_o.is_image&&!d_o.original&&!d_o.clone)
dd.n4?d_o.oimg.src=spacer:d_o.oimg.style.visibility='hidden';}
dd.mkWzDom();if(window.onload)dd.loadFunc=window.onload;if(window.onunload)dd.uloadFunc=window.onunload;window.onload=dd.initz;window.onunload=dd.finlz;dd.setDwnHdl(PICK);}
function ADD_DHTML()
{var d_a=arguments,d_o,d_i=d_a.length;while(d_i)
{d_o=new DDObj(d_a[--d_i]);dd.addElt(d_o);dd.addProps(d_o);}
dd.mkWzDom();}
dd.d=document;var RESET_ZINDEX=RESET_Z;var KEYDOWN_RESIZE=RESIZABLE;var CURSOR_POINTER=CURSOR_HAND;var NO_SCROLL='';function my_PickFunc()
{if(dd.obj.picked!=1)
newPolaroid(dd.obj.x,dd.obj.y);dd.obj.picked=1;}
function my_DragFunc()
{}
function my_ResizeFunc()
{}
function my_DropFunc()
{}
var Prototype={Version:'1.5.0_rc1',BrowserFeatures:{XPath:!!document.evaluate},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(var property in source){destination[property]=source[property];}
return destination;}
Object.extend(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;}},keys:function(object){var keys=[];for(var property in object)
keys.push(property);return keys;},values:function(object){var values=[];for(var property in object)
values.push(object[property]);return values;},clone:function(object){return Object.extend({},object);}});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,args=$A(arguments),object=args.shift();return function(event){return __method.apply(object,[(event||window.event)].concat(args).concat($A(arguments)));}}
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(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},stop:function(){if(!this.timer)return;clearInterval(this.timer);this.timer=null;},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback(this);}finally{this.currentlyExecuting=false;}}}}
Object.extend(String.prototype,{gsub:function(pattern,replacement){var result='',source=this,match;replacement=arguments.callee.prepareReplacement(replacement);while(source.length>0){if(match=source.match(pattern)){result+=source.slice(0,match.index);result+=(replacement(match)||'').toString();source=source.slice(match.index+match[0].length);}else{result+=source,source='';}}
return result;},sub:function(pattern,replacement,count){replacement=this.gsub.prepareReplacement(replacement);count=count===undefined?1:count;return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match);});},scan:function(pattern,iterator){this.gsub(pattern,iterator);return this;},truncate:function(length,truncation){length=length||30;truncation=truncation===undefined?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:this;},strip:function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');},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(function(script){return eval(script)});},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('=');var value=pair[1]?decodeURIComponent(pair[1]):undefined;params[decodeURIComponent(pair[0])]=value;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(useDoubleQuotes){var escapedString=this.replace(/\\/g,'\\\\');if(useDoubleQuotes)
return'"'+escapedString.replace(/"/g,'\\"')+'"';else
return"'"+escapedString.replace(/'/g,'\\\'')+"'";}});String.prototype.gsub.prepareReplacement=function(replacement){if(typeof replacement=='function')return replacement;var template=new Template(replacement);return function(match){return template.evaluate(match)};}
String.prototype.parseQuery=String.prototype.toQueryParams;var Template=Class.create();Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;Template.prototype={initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern;},evaluate:function(object){return this.template.gsub(this.pattern,function(match){var before=match[1];if(before=='\\')return match[2];return before+(object[match[3]]||'').toString();});}}
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;}},eachSlice:function(number,iterator){var index=-number,slices=[],array=this.toArray();while((index+=number)<array.length)
slices.push(array.slice(index,index+number));return slices.collect(iterator||Prototype.K);},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=false;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;},inGroupsOf:function(number,fillWith){fillWith=fillWith||null;var results=this.eachSlice(number);if(results.length>0)(number-results.last().length).times(function(){results.last().push(fillWith)});return results;},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(result==undefined||value>=result)
result=value;});return result;},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(result==undefined||value<result)
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){return iterator(collections.pluck(index));});},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);if(!Array.prototype._reverse)
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&&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();},reduce:function(){return this.length>1?this:this[0];},uniq:function(){return this.inject([],function(array,value){return array.include(value)?array:array.concat([value]);});},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';}});var Hash={_each:function(iterator){for(var 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;while(this.include(value)){iterator(value);value=value.succ();}},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 XMLHttpRequest()},function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')})||false;},activeRequestCount:0}
Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator);},register:function(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,contentType:'application/x-www-form-urlencoded',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+='&_=';if(this.options.method!='get'&&this.options.method!='post'){parameters+=(parameters.length>0?'&':'')+'_method='+this.options.method;this.options.method='post';}
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)
setTimeout(function(){this.respondToReadyState(1)}.bind(this),10);this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();var body=this.options.postBody?this.options.postBody:parameters;this.transport.send(this.options.method=='post'?body:null);if(!this.options.asynchronous&&this.transport.overrideMimeType)
this.onStateChange();}catch(e){this.dispatchException(e);}},setRequestHeaders:function(){var requestHeaders=['X-Requested-With','XMLHttpRequest','X-Prototype-Version',Prototype.Version,'Accept','text/javascript, text/html, application/xml, text/xml, */*'];if(this.options.method=='post'){requestHeaders.push('Content-type',this.options.contentType);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.options.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);}});function $(){var results=[],element;for(var i=0;i<arguments.length;i++){element=arguments[i];if(typeof element=='string')
element=document.getElementById(element);results.push(Element.extend(element));}
return results.reduce();}
if(Prototype.BrowserFeatures.XPath){document._getElementsByXPath=function(expression,parentElement){var results=[];var query=document.evaluate(expression,$(parentElement)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,len=query.snapshotLength;i<len;i++)
results.push(query.snapshotItem(i));return results;}}
document.getElementsByClassName=function(className,parentElement){if(Prototype.BrowserFeatures.XPath){var q=".//*[contains(concat(' ', @class, ' '), ' "+className+" ')]";return document._getElementsByXPath(q,parentElement);}else{var children=($(parentElement)||document.body).getElementsByTagName('*');var elements=[],child;for(var i=0,len=children.length;i<len;i++){child=children[i];if(child.className.length==0)continue;if(child.className==className||child.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))
elements.push(Element.extend(child));}
return elements;}}
if(!window.Element)
var Element=new Object();Element.extend=function(element){if(!element)return;if(_nativeExtensions||element.nodeType==3)return element;if(!element._extended&&element.tagName&&element!=window){var methods=Object.clone(Element.Methods),cache=Element.extend.cache;if(element.tagName=='FORM')
Object.extend(methods,Form.Methods);if(['INPUT','TEXTAREA','SELECT'].include(element.tagName))
Object.extend(methods,Form.Element.Methods);for(var property in methods){var value=methods[property];if(typeof value=='function')
element[property]=cache.findOrStore(value);}}
element._extended=true;return element;}
Element.extend.cache={findOrStore:function(value){return this[value]=this[value]||function(){return value.apply(null,[this].concat($A(arguments)));}}}
Element.Methods={visible:function(element){return $(element).style.display!='none';},toggle:function(element){element=$(element);Element[Element.visible(element)?'hide':'show'](element);return element;},hide:function(element){$(element).style.display='none';return element;},show:function(element){$(element).style.display='';return element;},remove:function(element){element=$(element);element.parentNode.removeChild(element);return element;},update:function(element,html){$(element).innerHTML=html.stripScripts();setTimeout(function(){html.evalScripts()},10);return element;},replace:function(element,html){element=$(element);if(element.outerHTML){element.outerHTML=html.stripScripts();}else{var range=element.ownerDocument.createRange();range.selectNodeContents(element);element.parentNode.replaceChild(range.createContextualFragment(html.stripScripts()),element);}
setTimeout(function(){html.evalScripts()},10);return element;},inspect:function(element){element=$(element);var result='<'+element.tagName.toLowerCase();$H({'id':'id','className':'class'}).each(function(pair){var property=pair.first(),attribute=pair.last();var value=(element[property]||'').toString();if(value)result+=' '+attribute+'='+value.inspect(true);});return result+'>';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property])
if(element.nodeType==1)
elements.push(Element.extend(element));return elements;},ancestors:function(element){return $(element).recursivelyCollect('parentNode');},descendants:function(element){element=$(element);return $A(element.getElementsByTagName('*'));},previousSiblings:function(element){return $(element).recursivelyCollect('previousSibling');},nextSiblings:function(element){return $(element).recursivelyCollect('nextSibling');},siblings:function(element){element=$(element);return element.previousSiblings().reverse().concat(element.nextSiblings());},match:function(element,selector){element=$(element);if(typeof selector=='string')
selector=new Selector(selector);return selector.match(element);},up:function(element,expression,index){return Selector.findElement($(element).ancestors(),expression,index);},down:function(element,expression,index){return Selector.findElement($(element).descendants(),expression,index);},previous:function(element,expression,index){return Selector.findElement($(element).previousSiblings(),expression,index);},next:function(element,expression,index){return Selector.findElement($(element).nextSiblings(),expression,index);},getElementsBySelector:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element,args);},getElementsByClassName:function(element,className){element=$(element);return document.getElementsByClassName(className,element);},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;Element.classNames(element).add(className);return element;},removeClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element).remove(className);return element;},observe:function(){Event.observe.apply(Event,arguments);return $A(arguments).first();},stopObserving:function(){Event.stopObserving.apply(Event,arguments);return $A(arguments).first();},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue))
element.removeChild(node);node=nextNode;}
return element;},empty:function(element){return $(element).innerHTML.match(/^\s*$/);},childOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);while(element=element.parentNode)
if(element==ancestor)return true;return false;},scrollTo:function(element){element=$(element);var x=element.x?element.x:element.offsetLeft,y=element.y?element.y:element.offsetTop;window.scrollTo(x,y);return element;},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(var name in style)
element.style[name.camelize()]=style[name];return element;},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;}}
return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}
return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=element.style.overflow||'auto';if((Element.getStyle(element,'overflow')||'visible')!='hidden')
element.style.overflow='hidden';return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=='auto'?'':element._overflow;element._overflow=null;return element;}}
if(document.all){Element.Methods.update=function(element,html){element=$(element);var tagName=element.tagName.toUpperCase();if(['THEAD','TBODY','TR','TD'].indexOf(tagName)>-1){var div=document.createElement('div');switch(tagName){case'THEAD':case'TBODY':div.innerHTML='<table><tbody>'+html.stripScripts()+'</tbody></table>';depth=2;break;case'TR':div.innerHTML='<table><tbody><tr>'+html.stripScripts()+'</tr></tbody></table>';depth=3;break;case'TD':div.innerHTML='<table><tbody><tr><td>'+html.stripScripts()+'</td></tr></tbody></table>';depth=4;}
$A(element.childNodes).each(function(node){element.removeChild(node)});depth.times(function(){div=div.firstChild});$A(div.childNodes).each(function(node){element.appendChild(node)});}else{element.innerHTML=html.stripScripts();}
setTimeout(function(){html.evalScripts()},10);return element;}}
Object.extend(Element,Element.Methods);var _nativeExtensions=false;if(!window.HTMLElement&&/Konqueror|Safari|KHTML/.test(navigator.userAgent)){['','Form','Input','TextArea','Select'].each(function(tag){var klass=window['HTML'+tag+'Element']={};klass.prototype=document.createElement(tag?tag.toLowerCase():'div').__proto__;});}
Element.addMethods=function(methods){Object.extend(Element.Methods,methods||{});function copy(methods,destination){var cache=Element.extend.cache;for(var property in methods){var value=methods[property];destination[property]=cache.findOrStore(value);}}
if(typeof HTMLElement!='undefined'){copy(Element.Methods,HTMLElement.prototype);copy(Form.Methods,HTMLFormElement.prototype);[HTMLInputElement,HTMLTextAreaElement,HTMLSelectElement].each(function(klass){copy(Form.Element.Methods,klass.prototype);});_nativeExtensions=true;}}
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){var tagName=this.element.tagName.toLowerCase();if(tagName=='tbody'||tagName=='tr'){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 Selector=Class.create();Selector.prototype={initialize:function(expression){this.params={classNames:[]};this.expression=expression.toString().strip();this.parseExpression();this.compileMatcher();},parseExpression:function(){function abort(message){throw'Parse error in selector: '+message;}
if(this.expression=='')abort('empty expression');var params=this.params,expr=this.expression,match,modifier,clause,rest;while(match=expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)){params.attributes=params.attributes||[];params.attributes.push({name:match[2],operator:match[3],value:match[4]||match[5]||''});expr=match[1];}
if(expr=='*')return this.params.wildcard=true;while(match=expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)){modifier=match[1],clause=match[2],rest=match[3];switch(modifier){case'#':params.id=clause;break;case'.':params.classNames.push(clause);break;case'':case undefined:params.tagName=clause.toUpperCase();break;default:abort(expr.inspect());}
expr=rest;}
if(expr.length>0)abort(expr.inspect());},buildMatchExpression:function(){var params=this.params,conditions=[],clause;if(params.wildcard)
conditions.push('true');if(clause=params.id)
conditions.push('element.id == '+clause.inspect());if(clause=params.tagName)
conditions.push('element.tagName.toUpperCase() == '+clause.inspect());if((clause=params.classNames).length>0)
for(var i=0;i<clause.length;i++)
conditions.push('Element.hasClassName(element, '+clause[i].inspect()+')');if(clause=params.attributes){clause.each(function(attribute){var value='element.getAttribute('+attribute.name.inspect()+')';var splitValueBy=function(delimiter){return value+' && '+value+'.split('+delimiter.inspect()+')';}
switch(attribute.operator){case'=':conditions.push(value+' == '+attribute.value.inspect());break;case'~=':conditions.push(splitValueBy(' ')+'.include('+attribute.value.inspect()+')');break;case'|=':conditions.push(splitValueBy('-')+'.first().toUpperCase() == '+attribute.value.toUpperCase().inspect());break;case'!=':conditions.push(value+' != '+attribute.value.inspect());break;case'':case undefined:conditions.push(value+' != null');break;default:throw'Unknown operator '+attribute.operator+' in selector';}});}
return conditions.join(' && ');},compileMatcher:function(){this.match=new Function('element','if (!element.tagName) return false; \
      return '+this.buildMatchExpression());},findElements:function(scope){var element;if(element=$(this.params.id))
if(this.match(element))
if(!scope||Element.childOf(element,scope))
return[element];scope=(scope||document).getElementsByTagName(this.params.tagName||'*');var results=[];for(var i=0;i<scope.length;i++)
if(this.match(element=scope[i]))
results.push(Element.extend(element));return results;},toString:function(){return this.expression;}}
Object.extend(Selector,{matchElements:function(elements,expression){var selector=new Selector(expression);return elements.select(selector.match.bind(selector)).collect(Element.extend);},findElement:function(elements,expression,index){if(typeof expression=='number')index=expression,expression=false;return Selector.matchElements(elements,expression||'*')[index||0];},findChildElements:function(element,expressions){return expressions.map(function(expression){return expression.strip().split(/\s+/).inject([null],function(results,expr){var selector=new Selector(expr);return results.inject([],function(elements,result){return elements.concat(selector.findElements(result||element));});});}).flatten();}});function $$(){return Selector.findChildElements(document,$A(arguments));}
var Form={reset:function(form){$(form).reset();return form;}};Form.Methods={serialize:function(form){return this.serializeElements(Form.getElements($(form)));},serializeElements:function(elements){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){return $A($(form).getElementsByTagName('*')).inject([],function(elements,child){if(Form.Element.Serializers[child.tagName.toLowerCase()])
elements.push(Element.extend(child));return elements;});},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)
return 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){form=$(form);var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.blur();element.disabled='true';}
return form;},enable:function(form){form=$(form);var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.disabled='';}
return form;},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){form=$(form);Field.activate(Form.findFirstElement(form));return form;}}
Object.extend(Form,Form.Methods);Form.Element={focus:function(element){$(element).focus();return element;},select:function(element){$(element).select();return element;}}
Form.Element.Methods={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];},clear:function(element){$(element).value='';return element;},present:function(element){return $(element).value!='';},activate:function(element){element=$(element);element.focus();if(element.select)
element.select();return element;},disable:function(element){element=$(element);element.disabled=true;return element;},enable:function(element){element=$(element);element.blur();element.disabled=false;return element;}}
Object.extend(Form.Element,Form.Element.Methods);var Field=Form.Element;Form.Element.Serializers={input:function(element){switch(element.type.toLowerCase()){case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element);default:return Form.Element.Serializers.textarea(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||opt.text;}
return[element.name,value];},selectMany:function(element){var value=[];for(var i=0;i<element.length;i++){var opt=element.options[i];if(opt.selected)
value.push(opt.value||opt.text);}
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;default: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,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,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){element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';Event._observeAndCache(element,name,observer,useCapture);},stopObserving:function(element,name,observer,useCapture){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){try{element.detachEvent('on'+name,observer);}catch(e){}}}});if(navigator.appVersion.match(/\bMSIE\b/))
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){if(element.tagName=='BODY')break;var 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;},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{if(!window.opera||element.tagName=='BODY'){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];}}
Element.addMethods();
