var Window=Class.create();Window.keepMultiModalWindow=false;Window.prototype={initialize:function(id){if($(id))
alert("Window "+id+" is already register is the DOM!!, be sure to use setDestroyOnClose()")
this.hasEffectLib=String.prototype.parseColor!=null;this.options=Object.extend({className:"dialog",minWidth:100,minHeight:20,resizable:true,closable:true,minimizable:true,maximizable:true,draggable:true,userData:null,showEffect:(this.hasEffectLib?Effect.Appear:Element.show),hideEffect:(this.hasEffectLib?Effect.Fade:Element.hide),showEffectOptions:{},hideEffectOptions:{},effectOptions:null,parent:document.getElementsByTagName("body").item(0),title:"&nbsp;",url:null,onload:Prototype.emptyFunction,width:200,height:300,opacity:1,recenterAuto:true},arguments[1]||{});if(this.options.effectOptions){Object.extend(this.options.hideEffectOptions,this.options.effectOptions);Object.extend(this.options.showEffectOptions,this.options.effectOptions);}
if(this.options.hideEffect==Element.hide)
this.options.hideEffect=function(){Element.hide(this.element);if(this.destroyOnClose)this.destroy();}.bind(this)
this.element=this._createWindow(id);this.eventMouseDown=this._initDrag.bindAsEventListener(this);this.eventMouseUp=this._endDrag.bindAsEventListener(this);this.eventMouseMove=this._updateDrag.bindAsEventListener(this);this.eventOnLoad=this._getWindowBorderSize.bindAsEventListener(this);this.eventMouseDownContent=this.toFront.bindAsEventListener(this);if(this.options.recenterAuto)
this.eventResize=this._recenter.bindAsEventListener(this);this.topbar=$(this.element.id+"_top");this.bottombar=$(this.element.id+"_bottom");this.content=$(this.element.id+"_content");Event.observe(this.topbar,"mousedown",this.eventMouseDown);Event.observe(this.bottombar,"mousedown",this.eventMouseDown);Event.observe(this.content,"mousedown",this.eventMouseDownContent);Event.observe(window,"load",this.eventOnLoad);if(this.options.recenterAuto){Event.observe(window,"resize",this.eventResize);Event.observe(window,"scroll",this.eventResize);}
if(this.options.draggable){this.bottombar.addClassName("bottom_draggable");this.topbar.addClassName("top_draggable");}
if(this.options.resizable){this.sizer=$(this.element.id+"_sizer");Event.observe(this.sizer,"mousedown",this.eventMouseDown);}
this.useLeft=null;this.useTop=null;if(arguments[1].left!=null){this.element.setStyle({left:parseFloat(arguments[1].left)+'px'});this.useLeft=true;}
if(arguments[1].right!=null){this.element.setStyle({right:parseFloat(arguments[1].right)+'px'});this.useLeft=false;}
if(this.useLeft==null){this.element.setStyle({left:"0px"});this.useLeft=true;}
if(arguments[1].top!=null){this.element.setStyle({top:parseFloat(arguments[1].top)+'px'});this.useTop=true;}
if(arguments[1].bottom!=null){this.element.setStyle({bottom:parseFloat(arguments[1].bottom)+'px'});this.useTop=false;}
if(this.useTop==null){this.element.setStyle({top:"0px"});this.useTop=true;}
this.storedLocation=null;this.setOpacity(this.options.opacity);if(this.options.zIndex)
this.setZIndex(this.options.zIndex)
this.destroyOnClose=false;this._getWindowBorderSize();this.width=this.options.width;this.height=this.options.height;this.visible=false;if(this.width&&this.height)
this.setSize(this.options.width,this.options.height);this.setTitle(this.options.title)
Windows.register(this);},destroy:function(){Windows.notify("onDestroy",this);Event.stopObserving(this.topbar,"mousedown",this.eventMouseDown);Event.stopObserving(this.bottombar,"mousedown",this.eventMouseDown);Event.stopObserving(this.content,"mousedown",this.eventMouseDownContent);Event.stopObserving(window,"load",this.eventOnLoad);if(this.options.recenterAuto){Event.stopObserving(window,"resize",this.eventResize);Event.stopObserving(window,"scroll",this.eventResize);}
Event.stopObserving(this.content,"load",this.options.onload);if(this._oldParent){var content=this.getContent();var originalContent=null;for(var i=0;i<content.childNodes.length;i++){originalContent=content.childNodes[i];if(Node.ELEMENT_NODE==originalContent.nodeType)break;originalContent=null;}
if(originalContent)
this._oldParent.appendChild(originalContent);this._oldParent=null;}
if(this.sizer)
Event.stopObserving(this.sizer,"mousedown",this.eventMouseDown);if(this.options.url)
this.content.src=null
if(this.iefix)
Element.remove(this.iefix);Element.remove(this.element);Windows.unregister(this);},setDelegate:function(delegate){this.delegate=delegate},getDelegate:function(){return this.delegate;},getContent:function(){return this.content;},setContent:function(id,autoresize,autoposition){var element=$(id);if(null==element)throw"Unable to find element '"+id+"' in DOM";this._oldParent=element.parentNode;var d=null;var p=null;if(autoresize)
d=Element.getDimensions(element);if(autoposition)
p=Position.cumulativeOffset(element);var content=this.getContent()
content.appendChild(element);element.show();if(autoresize)
this.setSize(d.width,d.height);if(autoposition)
this.setLocation(p[1]-this.heightN,p[0]-this.widthW);},setAjaxContent:function(url,options,showCentered,showModal){this.showFunction=showCentered?"showCenter":"show";this.showModal=showModal||false;if(options==null)
options={}
this.onComplete=options.onComplete;options.onComplete=this._setAjaxContent.bind(this);new Ajax.Request(url,options);},_setAjaxContent:function(originalRequest){Element.update(this.getContent(),originalRequest.responseText);if(this.onComplete)
this.onComplete(originalRequest);this[this.showFunction](this.showModal)},setCookie:function(name,expires,path,domain,secure){name=name||this.element.id;this.cookie=[name,expires,path,domain,secure];var value=WindowUtilities.getCookie(name)
if(value){var values=value.split(',');var x=values[0].split(':');var y=values[1].split(':');var w=parseFloat(values[2]),h=parseFloat(values[3]);var mini=values[4];var maxi=values[5];this.setSize(w,h);if(mini=="true")
this.doMinimize=true;else if(maxi=="true")
this.doMaximize=true;this.useLeft=x[0]=="l";this.useTop=y[0]=="t";this.element.setStyle(this.useLeft?{left:x[1]}:{right:x[1]});this.element.setStyle(this.useTop?{top:y[1]}:{bottom:y[1]});}},getId:function(){return this.element.id;},setDestroyOnClose:function(){var destroyFunc=this.destroy.bind(this);if(this.options.hideEffectOptions.afterFinish){var func=this.options.hideEffectOptions.afterFinish;this.options.hideEffectOptions.afterFinish=function(){func();destroyFunc()}}
else
this.options.hideEffectOptions.afterFinish=function(){destroyFunc()}
this.destroyOnClose=true;},_initDrag:function(event){this.pointer=[Event.pointerX(event),Event.pointerY(event)];if(Event.element(event)==this.sizer){this.doResize=true;this.widthOrg=this.width;this.heightOrg=this.height;this.bottomOrg=parseFloat(this.element.getStyle('bottom'));this.rightOrg=parseFloat(this.element.getStyle('right'));Windows.notify("onStartResize",this);}
else{this.doResize=false;var closeButton=$(this.getId()+'_close');if(closeButton&&Position.within(closeButton,this.pointer[0],this.pointer[1]))
return;this.toFront();if(!this.options.draggable)
return;Windows.notify("onStartMove",this);}
Event.observe(document,"mouseup",this.eventMouseUp,false);Event.observe(document,"mousemove",this.eventMouseMove,false);WindowUtilities.disableScreen('__invisible__','__invisible__');document.body.ondrag=function(){return false;};document.body.onselectstart=function(){return false;};Event.stop(event);},_updateDrag:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var dx=pointer[0]-this.pointer[0];var dy=pointer[1]-this.pointer[1];if(this.doResize){this.setSize(this.widthOrg+dx,this.heightOrg+dy);dx=this.width-this.widthOrg
dy=this.height-this.heightOrg
if(!this.useLeft)
this.element.setStyle({right:(this.rightOrg-dx)+'px'});if(!this.useTop)
this.element.setStyle({bottom:(this.bottomOrg-dy)+'px'});}
else{this.pointer=pointer;if(this.useLeft)
this.element.setStyle({left:parseFloat(this.element.getStyle('left'))+dx+'px'});else
this.element.setStyle({right:parseFloat(this.element.getStyle('right'))-dx+'px'});if(this.useTop)
this.element.setStyle({top:parseFloat(this.element.getStyle('top'))+dy+'px'});else
this.element.setStyle({bottom:parseFloat(this.element.getStyle('bottom'))-dy+'px'});}
if(this.iefix)
this._fixIEOverlapping();this._removeStoreLocation();Event.stop(event);},_endDrag:function(event){WindowUtilities.enableScreen('__invisible__');if(this.doResize)
Windows.notify("onEndResize",this);else
Windows.notify("onEndMove",this);Event.stopObserving(document,"mouseup",this.eventMouseUp,false);Event.stopObserving(document,"mousemove",this.eventMouseMove,false);this._saveCookie()
Event.stop(event);document.body.ondrag=null;document.body.onselectstart=null;},_createWindow:function(id){var className=this.options.className;var win=document.createElement("div");win.setAttribute('id',id);win.className="dialog";var content;if(this.options.url)
content="<iframe frameborder=\"0\" name=\""+id+"_content\"  id=\""+id+"_content\" src=\""+this.options.url+"\"> </iframe>";else
content="<div id=\""+id+"_content\" class=\""+className+"_content\"> </div>";var closeDiv=this.options.closable?"<div class='"+className+"_close' id='"+id+"_close' onclick='Windows.close(\""+id+"\", event)'> </div>":"";var minDiv=this.options.minimizable?"<div class='"+className+"_minimize' id='"+id+"_minimize' onclick='Windows.minimize(\""+id+"\", event)'> </div>":"";var maxDiv=this.options.maximizable?"<div class='"+className+"_maximize' id='"+id+"_maximize' onclick='Windows.maximize(\""+id+"\", event)'> </div>":"";var seAttributes=this.options.resizable?"class='"+className+"_sizer' id='"+id+"_sizer'":"class='"+className+"_se'";win.innerHTML=closeDiv+minDiv+maxDiv+"\
      <table id='"+id+"_row1' class=\"top table_window\">\
        <tr>\
          <td class='"+className+"_nw'>&nbsp;</td>\
          <td class='"+className+"_n'><div id='"+id+"_top' class='"+className+"_title title_window'>"+this.options.title+"</div></td>\
          <td class='"+className+"_ne'>&nbsp;</td>\
        </tr>\
      </table>\
      <table id='"+id+"_row2' class=\"mid table_window\">\
        <tr>\
          <td class='"+className+"_w'></td>\
            <td id='"+id+"_table_content' class='"+className+"_content' valign='top'>"+content+"</td>\
          <td class='"+className+"_e'></td>\
        </tr>\
      </table>\
        <table id='"+id+"_row3' class=\"bot table_window\">\
        <tr>\
          <td class='"+className+"_sw'>&nbsp;</td>\
            <td class='"+className+"_s'><div id='"+id+"_bottom' class='status_bar'>&nbsp;</div></td>\
            <td "+seAttributes+">&nbsp;</td>\
        </tr>\
      </table>\
    ";Element.hide(win);this.options.parent.insertBefore(win,this.options.parent.firstChild);Event.observe($(id+"_content"),"load",this.options.onload);return win;},setLocation:function(top,left){if(top<0)
top=0;if(left<0)
left=0
this.element.setStyle({top:top+'px'});this.element.setStyle({left:left+'px'});this.useLeft=true;this.useTop=true;},getLocation:function(){var location={};if(this.useTop)
location=Object.extend(location,{top:this.element.getStyle("top")});else
location=Object.extend(location,{bottom:this.element.getStyle("bottom")});if(this.useLeft)
location=Object.extend(location,{left:this.element.getStyle("left")});else
location=Object.extend(location,{right:this.element.getStyle("right")});return location;},getSize:function(){return{width:this.width,height:this.height};},setSize:function(width,height){width=parseFloat(width);height=parseFloat(height);if(width<this.options.minWidth)
width=this.options.minWidth;if(height<this.options.minHeight)
height=this.options.minHeight;if(this.options.maxHeight&&height>this.options.maxHeight)
height=this.options.maxHeight;if(this.options.maxWidth&&width>this.options.maxWidth)
width=this.options.maxWidth;this.width=width;this.height=height;this.element.setStyle({width:width+this.widthW+this.widthE+"px"})
this.element.setStyle({height:height+this.heightN+this.heightS+"px"})
var content=$(this.element.id+'_content');content.setStyle({height:height+'px'});content.setStyle({width:width+'px'});},updateHeight:function(){this.setSize(this.width,this.content.scrollHeight)},updateWidth:function(){this.setSize(this.content.scrollWidth,this.height)},toFront:function(){if(Windows.focusedWindow==this)
return;this.setZIndex(Windows.maxZIndex+20);Windows.notify("onFocus",this);},show:function(modal){if(modal){Windows.addModalWindow(this);this.modal=true;this.setZIndex(Windows.maxZIndex+20);Windows.unsetOverflow(this);}
if(this.oldStyle)
this.getContent().setStyle({overflow:this.oldStyle});if(!this.width||!this.height){var size=WindowUtilities._computeSize(this.content.innerHTML,this.content.id,this.width,this.height,0)
if(this.height)
this.width=size+5
else
this.height=size+5}
this.setSize(this.width,this.height);if(this.centered)
this._center(this.centerTop,this.centerLeft);if(this.options.showEffect!=Element.show&&this.options.showEffectOptions)
this.options.showEffect(this.element,this.options.showEffectOptions);else
this.options.showEffect(this.element);this._checkIEOverlapping();this.visible=true;WindowUtilities.focusedWindow=this
Windows.notify("onShow",this);},showCenter:function(modal,top,left){this.centered=true;this.centerTop=top;this.centerLeft=left;this.show(modal);},isVisible:function(){return this.visible;},_center:function(top,left){var windowScroll=WindowUtilities.getWindowScroll();var pageSize=WindowUtilities.getPageSize();if(!top)
top=(pageSize.windowHeight-(this.height+this.heightN+this.heightS))/2;top+=windowScroll.top
if(!left)
left=(pageSize.windowWidth-(this.width+this.widthW+this.widthE))/2;left+=windowScroll.left
this.setLocation(top,left);this.toFront();},_recenter:function(event){if(this.modal&&this.centered){var pageSize=WindowUtilities.getPageSize();if($('overlay_modal')){$('overlay_modal').style.height=(pageSize.pageHeight+'px');$('overlay_modal').style.width=(pageSize.pageWidth+'px');}
this._center(this.centerTop,this.centerLeft);}},hide:function(){this.visible=false;if(this.modal){Windows.removeModalWindow(this);Windows.resetOverflow();}
this.oldStyle=this.getContent().getStyle('overflow')||"auto"
this.getContent().setStyle({overflow:"hidden"});this.options.hideEffect(this.element,this.options.hideEffectOptions);if(this.iefix)
this.iefix.hide();Windows.notify("onHide",this);},minimize:function(){var r2=$(this.getId()+"_row2");var dh=r2.getDimensions().height;if(r2.visible()){var h=this.element.getHeight()-dh
r2.hide()
this.element.setStyle({height:h+"px"})
if(!this.useTop){var bottom=parseFloat(this.element.getStyle('bottom'));this.element.setStyle({bottom:(bottom+dh)+'px'});}}
else{var h=this.element.getHeight()+dh;this.element.setStyle({height:h+"px"})
if(!this.useTop){var bottom=parseFloat(this.element.getStyle('bottom'));this.element.setStyle({bottom:(bottom-dh)+'px'});}
r2.show();this.toFront();}
Windows.notify("onMinimize",this);this._saveCookie()},maximize:function(){if(this.storedLocation!=null){this._restoreLocation();if(this.iefix)
this.iefix.hide();}
else{this._storeLocation();Windows.unsetOverflow(this);var windowScroll=WindowUtilities.getWindowScroll();var pageSize=WindowUtilities.getPageSize();this.element.setStyle(this.useLeft?{left:windowScroll.left}:{right:windowScroll.left});this.element.setStyle(this.useTop?{top:windowScroll.top}:{bottom:windowScroll.top});this.setSize(pageSize.windowWidth-this.widthW-this.widthE,pageSize.windowHeight-this.heightN-this.heightS)
this.toFront();if(this.iefix)
this._fixIEOverlapping();}
Windows.notify("onMaximize",this);this._saveCookie()},isMinimized:function(){var r2=$(this.getId()+"_row2");return!r2.visible();},isMaximized:function(){return(this.storedLocation!=null);},setOpacity:function(opacity){if(Element.setOpacity)
Element.setOpacity(this.element,opacity);},setZIndex:function(zindex){this.element.setStyle({zIndex:zindex});Windows.updateZindex(zindex,this);},setTitle:function(newTitle){if(!newTitle||newTitle=="")
newTitle="&nbsp;";Element.update(this.element.id+'_top',newTitle);},setStatusBar:function(element){var statusBar=$(this.getId()+"_bottom");if(typeof(element)=="object"){if(this.bottombar.firstChild)
this.bottombar.replaceChild(element,this.bottombar.firstChild);else
this.bottombar.appendChild(element);}
else
this.bottombar.innerHTML=element;},_checkIEOverlapping:function(){if(!this.iefix&&(navigator.appVersion.indexOf('MSIE')>0)&&(navigator.userAgent.indexOf('Opera')<0)&&(this.element.getStyle('position')=='absolute')){new Insertion.After(this.element.id,'<iframe id="'+this.element.id+'_iefix" '+'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" '+'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.element.id+'_iefix');}
if(this.iefix)
setTimeout(this._fixIEOverlapping.bind(this),50);},_fixIEOverlapping:function(){Position.clone(this.element,this.iefix);this.iefix.style.zIndex=this.element.style.zIndex-1;this.iefix.show();},_getWindowBorderSize:function(event){var div=this._createHiddenDiv(this.options.className+"_n")
this.heightN=Element.getDimensions(div).height;div.parentNode.removeChild(div)
var div=this._createHiddenDiv(this.options.className+"_s")
this.heightS=Element.getDimensions(div).height;div.parentNode.removeChild(div)
var div=this._createHiddenDiv(this.options.className+"_e")
this.widthE=Element.getDimensions(div).width;div.parentNode.removeChild(div)
var div=this._createHiddenDiv(this.options.className+"_w")
this.widthW=Element.getDimensions(div).width;div.parentNode.removeChild(div);if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
this.setSize(this.width,this.height);if(this.doMaximize)
this.maximize();if(this.doMinimize)
this.minimize();},_createHiddenDiv:function(className){var objBody=document.getElementsByTagName("body").item(0);var win=document.createElement("div");win.setAttribute('id',this.element.id+"_tmp");win.className=className;win.style.display='none';win.innerHTML='';objBody.insertBefore(win,objBody.firstChild);return win;},_storeLocation:function(){if(this.storedLocation==null){this.storedLocation={useTop:this.useTop,useLeft:this.useLeft,top:this.element.getStyle('top'),bottom:this.element.getStyle('bottom'),left:this.element.getStyle('left'),right:this.element.getStyle('right'),width:this.width,height:this.height};}},_restoreLocation:function(){if(this.storedLocation!=null){this.useLeft=this.storedLocation.useLeft;this.useTop=this.storedLocation.useTop;this.element.setStyle(this.useLeft?{left:this.storedLocation.left}:{right:this.storedLocation.right});this.element.setStyle(this.useTop?{top:this.storedLocation.top}:{bottom:this.storedLocation.bottom});this.setSize(this.storedLocation.width,this.storedLocation.height);Windows.resetOverflow();this._removeStoreLocation();}},_removeStoreLocation:function(){this.storedLocation=null;},_saveCookie:function(){if(this.cookie){var value="";if(this.useLeft)
value+="l:"+(this.storedLocation?this.storedLocation.left:this.element.getStyle('left'))
else
value+="r:"+(this.storedLocation?this.storedLocation.right:this.element.getStyle('right'))
if(this.useTop)
value+=",t:"+(this.storedLocation?this.storedLocation.top:this.element.getStyle('top'))
else
value+=",b:"+(this.storedLocation?this.storedLocation.bottom:this.element.getStyle('bottom'))
value+=","+(this.storedLocation?this.storedLocation.width:this.width);value+=","+(this.storedLocation?this.storedLocation.height:this.height);value+=","+this.isMinimized();value+=","+this.isMaximized();WindowUtilities.setCookie(value,this.cookie)}}};var Windows={windows:[],modalWindows:[],observers:[],focusedWindow:null,maxZIndex:0,addObserver:function(observer){this.removeObserver(observer);this.observers.push(observer);},removeObserver:function(observer){this.observers=this.observers.reject(function(o){return o==observer});},notify:function(eventName,win){this.observers.each(function(o){if(o[eventName])o[eventName](eventName,win);});},getWindow:function(id){return this.windows.detect(function(d){return d.getId()==id});},getFocusedWindow:function(){return this.focusedWindow;},register:function(win){this.windows.push(win);},addModalWindow:function(win){if(this.modalWindows.length==0)
WindowUtilities.disableScreen(win.options.className,'overlay_modal',win.getId());else{if(Window.keepMultiModalWindow){$('overlay_modal').style.zIndex=Windows.maxZIndex+20;Windows.maxZIndex+=20;WindowUtilities._hideSelect(this.modalWindows.last().getId());}
else
this.modalWindows.last().element.hide();WindowUtilities._showSelect(win.getId());}
this.modalWindows.push(win);},removeModalWindow:function(win){this.modalWindows.pop();if(this.modalWindows.length==0)
WindowUtilities.enableScreen();else{if(Window.keepMultiModalWindow){this.modalWindows.last().toFront();WindowUtilities._showSelect(this.modalWindows.last().getId());}
else
this.modalWindows.last().element.show();}},register:function(win){this.windows.push(win);},unregister:function(win){this.windows=this.windows.reject(function(d){return d==win});},close:function(id,event){var win=this.getWindow(id);if(win&&win.visible){if(win.getDelegate()&&!win.getDelegate().canClose(win))
return;this.notify("onClose",win);win.hide();}
if(event)
Event.stop(event);},closeAll:function(){this.windows.each(function(w){Windows.close(w.getId())});},closeAllModalWindows:function(){WindowUtilities.enableScreen();this.modalWindows.each(function(win){win.hide()});},minimize:function(id,event){var win=this.getWindow(id)
if(win&&win.visible)
win.minimize();Event.stop(event);},maximize:function(id,event){var win=this.getWindow(id)
if(win&&win.visible)
win.maximize();Event.stop(event);},unsetOverflow:function(except){this.windows.each(function(d){d.oldOverflow=d.getContent().getStyle("overflow")||"auto";d.getContent().setStyle({overflow:"hidden"})});if(except&&except.oldOverflow)
except.getContent().setStyle({overflow:except.oldOverflow});},resetOverflow:function(){this.windows.each(function(d){if(d.oldOverflow)d.getContent().setStyle({overflow:d.oldOverflow})});},updateZindex:function(zindex,win){if(zindex>this.maxZIndex)
this.maxZIndex=zindex;this.focusedWindow=win;}};var Dialog={dialogId:null,onCompleteFunc:null,callFunc:null,parameters:null,confirm:function(content,parameters){if(typeof content!="string"){Dialog._runAjaxRequest(content,parameters,Dialog.confirm);return}
parameters=parameters||{};var okLabel=parameters.okLabel?parameters.okLabel:"Ok";var cancelLabel=parameters.cancelLabel?parameters.cancelLabel:"Cancel";var windowParam=parameters.windowParameters||{};windowParam.className=windowParam.className||"alert";var okButtonClass="class ='"+(parameters.buttonClass?parameters.buttonClass+" ":"")+" ok_button'"
var cancelButtonClass="class ='"+(parameters.buttonClass?parameters.buttonClass+" ":"")+" cancel_button'"
var content="\
   <div class='"+windowParam.className+"_message'>"+content+"</div>\
    <div class='"+windowParam.className+"_buttons'>\
     <input type='button' value='"+okLabel+"' onclick='Dialog.okCallback()'"+okButtonClass+"/>\
     <input type='button' value='"+cancelLabel+"' onclick='Dialog.cancelCallback()' "+cancelButtonClass+"/>\
    </div>\
  ";return this._openDialog(content,parameters)},alert:function(content,parameters){if(typeof content!="string"){Dialog._runAjaxRequest(content,parameters,Dialog.alert);return}
parameters=parameters||{};var okLabel=parameters.okLabel?parameters.okLabel:"Ok";var windowParam=parameters.windowParameters||{};windowParam.className=windowParam.className||"alert";var okButtonClass="class ='"+(parameters.buttonClass?parameters.buttonClass+" ":"")+" ok_button'"
var content="\
   <div class='"+windowParam.className+"_message'>"+content+"</div>\
    <div class='"+windowParam.className+"_buttons'>\
     <input type='button' value='"+okLabel+"' onclick='Dialog.okCallback()'"+okButtonClass+"/>\
    </div>";return this._openDialog(content,parameters)},info:function(content,parameters){if(typeof content!="string"){Dialog._runAjaxRequest(content,parameters,Dialog.info);return}
parameters=parameters||{};parameters.windowParameters=parameters.windowParameters||{};var className=parameters.windowParameters.className||"alert";var content="<div id='modal_dialog_message' class='"+className+"_message'>"+content+"</div>";if(parameters.showProgress)
content+="<div id='modal_dialog_progress' class='"+className+"_progress'> </div>";parameters.windowParameters.ok=null;parameters.windowParameters.cancel=null;parameters.windowParameters.className=className;return this._openDialog(content,parameters)},setInfoMessage:function(message){$('modal_dialog_message').update(message);},closeInfo:function(){Windows.close(this.dialogId);},_openDialog:function(content,parameters){if(!parameters.windowParameters.height&&!parameters.windowParameters.width){parameters.windowParameters.width=WindowUtilities.getPageSize().pageWidth/2;}
if(parameters.id)
this.dialogId=parameters.id;else{var t=new Date();this.dialogId='modal_dialog_'+t.getTime();}
if(!parameters.windowParameters.height||!parameters.windowParameters.width){var size=WindowUtilities._computeSize(content,this.dialogId,parameters.windowParameters.width,parameters.windowParameters.height)
if(parameters.windowParameters.height)
parameters.windowParameters.width=size+5
else
parameters.windowParameters.height=size+5}
var windowParam=parameters&&parameters.windowParameters?parameters.windowParameters:{};windowParam.resizable=windowParam.resizable||false;windowParam.effectOptions=windowParam.effectOptions||{duration:1};windowParam.minimizable=false;windowParam.maximizable=false;windowParam.closable=false;var win=new Window(this.dialogId,windowParam);win.getContent().innerHTML=content;win.showCenter(true,parameters.top,parameters.left);win.setDestroyOnClose();win.cancelCallback=parameters.cancel;win.okCallback=parameters.ok;return win;},_getAjaxContent:function(originalRequest){Dialog.callFunc(originalRequest.responseText,Dialog.parameters)},_runAjaxRequest:function(message,parameters,callFunc){if(message.options==null)
message.options={}
Dialog.onCompleteFunc=message.options.onComplete;Dialog.parameters=parameters;Dialog.callFunc=callFunc;message.options.onComplete=Dialog._getAjaxContent;new Ajax.Request(message.url,message.options);},okCallback:function(){var win=Windows.focusedWindow;if(!win.okCallback||win.okCallback(win)){$$("#"+win.getId()+" input").each(function(element){element.onclick=null;})
win.hide();}},cancelCallback:function(){var win=Windows.focusedWindow;$$("#"+win.getId()+" input").each(function(element){element.onclick=null})
win.hide();if(win.cancelCallback)
win.cancelCallback(win);}}
var isIE=navigator.appVersion.match(/MSIE/)=="MSIE";var WindowUtilities={getWindowScroll:function(){var w=window;var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft;}else if(w.document.body){T=body.scrollTop;L=body.scrollLeft;}
if(w.innerWidth){W=w.innerWidth;H=w.innerHeight;}else if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight;}else{W=body.offsetWidth;H=body.offsetHeight}}
return{top:T,left:L,width:W,height:H};},getPageSize:function(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
var pageHeight,pageWidth;if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}
return{pageWidth:pageWidth,pageHeight:pageHeight,windowWidth:windowWidth,windowHeight:windowHeight};},disableScreen:function(className,overlayId,contentId){WindowUtilities.initLightbox(overlayId,className);var objBody=document.getElementsByTagName("body").item(0);var objOverlay=$(overlayId);var pageSize=WindowUtilities.getPageSize();if(contentId&&isIE){WindowUtilities._hideSelect();WindowUtilities._showSelect(contentId);}
objOverlay.style.height=(pageSize.pageHeight+'px');objOverlay.style.width=(pageSize.windowWidth+'px');objOverlay.style.display='block';},enableScreen:function(id){id=id||'overlay_modal';var objOverlay=$(id);if(objOverlay){objOverlay.style.display='none';if(id!="__invisible__")
WindowUtilities._showSelect();objOverlay.parentNode.removeChild(objOverlay);}},_hideSelect:function(id){if(isIE){id=id==null?"":"#"+id+" ";$$(id+'select').each(function(element){if(!WindowUtilities.isDefined(element.oldVisibility)){element.oldVisibility=element.style.visibility?element.style.visibility:"visible";element.style.visibility="hidden";}});}},_showSelect:function(id){if(isIE){id=id==null?"":"#"+id+" ";$$(id+'select').each(function(element){if(WindowUtilities.isDefined(element.oldVisibility)){try{element.style.visibility=element.oldVisibility;}catch(e){element.style.visibility="visible";}
element.oldVisibility=null;}
else{if(element.style.visibility)
element.style.visibility="visible";}});}},isDefined:function(object){return typeof(object)!="undefined"&&object!=null;},initLightbox:function(id,className){if($(id)){Element.setStyle(id,{zIndex:Windows.maxZIndex+10});}
else{var objBody=document.getElementsByTagName("body").item(0);var objOverlay=document.createElement("div");objOverlay.setAttribute('id',id);objOverlay.className="overlay_"+className
objOverlay.style.display='none';objOverlay.style.position='absolute';objOverlay.style.top='0';objOverlay.style.left='0';objOverlay.style.zIndex=Windows.maxZIndex+10;objOverlay.style.width='100%';objBody.insertBefore(objOverlay,objBody.firstChild);}},setCookie:function(value,parameters){document.cookie=parameters[0]+"="+escape(value)+
((parameters[1])?"; expires="+parameters[1].toGMTString():"")+
((parameters[2])?"; path="+parameters[2]:"")+
((parameters[3])?"; domain="+parameters[3]:"")+
((parameters[4])?"; secure":"");},getCookie:function(name){var dc=document.cookie;var prefix=name+"=";var begin=dc.indexOf("; "+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!=0)return null;}else{begin+=2;}
var end=document.cookie.indexOf(";",begin);if(end==-1){end=dc.length;}
return unescape(dc.substring(begin+prefix.length,end));},addCss:function(event,cssFile){},_computeSize:function(content,id,width,height,margin){if(margin==null)
margin=5;var objBody=document.getElementsByTagName("body").item(0);var tmpObj=document.createElement("div");tmpObj.setAttribute('id',id);if(height)
tmpObj.style.height=height+"px"
else
tmpObj.style.width=width+"px"
tmpObj.style.position='absolute';tmpObj.style.top='0';tmpObj.style.left='0';tmpObj.style.display='none';tmpObj.innerHTML=content;objBody.insertBefore(tmpObj,objBody.firstChild);var size;if(height)
size=$(id).getDimensions().width+margin;else
size=$(id).getDimensions().height+margin;objBody.removeChild(tmpObj);return size;}}
Event.observe(window,"load",WindowUtilities.addCss);if(Object.isUndefined(Effect))
throw("dragdrop.js requires including script.aculo.us' effects.js library");var Droppables={drops:[],remove:function(element){this.drops=this.drops.reject(function(d){return d.element==$(element)});},add:function(element){element=$(element);var options=Object.extend({greedy:true,hoverclass:null,tree:false},arguments[1]||{});if(options.containment){options._containers=[];var containment=options.containment;if(Object.isArray(containment)){containment=$A(containment);containment.each(function(c){options._containers.push($(c))});}else{options._containers.push($(containment));}}
if(options.accept)options.accept=[options.accept].flatten();Element.makePositioned(element);options.element=element;this.drops.push(options);},findDeepestChild:function(drops){deepest=drops[0];for(i=1;i<drops.length;++i)
if(Element.isParent(drops[i].element,deepest.element))
deepest=drops[i];return deepest;},isContained:function(element,drop){var containmentNode;if(drop.tree){containmentNode=element.treeNode;}else{containmentNode=element.parentNode;}
return drop._containers.detect(function(c){return containmentNode==c});},isAffected:function(point,element,drop){return((drop.element!=element)&&((!drop._containers)||this.isContained(element,drop))&&((!drop.accept)||(Element.classNames(element).detect(function(v){return drop.accept.include(v)})))&&Position.within(drop.element,point[0],point[1]));},deactivate:function(drop){if(drop.hoverclass)
Element.removeClassName(drop.element,drop.hoverclass);this.last_active=null;},activate:function(drop){if(drop.hoverclass)
Element.addClassName(drop.element,drop.hoverclass);this.last_active=drop;},show:function(point,element){if(!this.drops.length)return;var drop,affected=[];this.drops.each(function(drop){if(Droppables.isAffected(point,element,drop))
affected.push(drop);});if(affected.length>0)
drop=Droppables.findDeepestChild(affected);if(this.last_active&&this.last_active!=drop)this.deactivate(this.last_active);if(drop){Position.within(drop.element,point[0],point[1]);if(drop.onHover)
drop.onHover(element,drop.element,Position.overlap(drop.overlap,drop.element));if(drop!=this.last_active)Droppables.activate(drop);}},fire:function(event,element){if(!this.last_active)return;Position.prepare();if(this.isAffected([Event.pointerX(event),Event.pointerY(event)],element,this.last_active))
if(this.last_active.onDrop){this.last_active.onDrop(element,this.last_active.element,event);return true;}},reset:function(){if(this.last_active)
this.deactivate(this.last_active);}};var Draggables={drags:[],observers:[],register:function(draggable){if(this.drags.length==0){this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress);}
this.drags.push(draggable);},unregister:function(draggable){this.drags=this.drags.reject(function(d){return d==draggable});if(this.drags.length==0){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);Event.stopObserving(document,"keypress",this.eventKeypress);}},activate:function(draggable){if(draggable.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=draggable;}.bind(this),draggable.options.delay);}else{window.focus();this.activeDraggable=draggable;}},deactivate:function(){this.activeDraggable=null;},updateDrag:function(event){if(!this.activeDraggable)return;var pointer=[Event.pointerX(event),Event.pointerY(event)];if(this._lastPointer&&(this._lastPointer.inspect()==pointer.inspect()))return;this._lastPointer=pointer;this.activeDraggable.updateDrag(event,pointer);},endDrag:function(event){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}
if(!this.activeDraggable)return;this._lastPointer=null;this.activeDraggable.endDrag(event);this.activeDraggable=null;},keyPress:function(event){if(this.activeDraggable)
this.activeDraggable.keyPress(event);},addObserver:function(observer){this.observers.push(observer);this._cacheObserverCallbacks();},removeObserver:function(element){this.observers=this.observers.reject(function(o){return o.element==element});this._cacheObserverCallbacks();},notify:function(eventName,draggable,event){if(this[eventName+'Count']>0)
this.observers.each(function(o){if(o[eventName])o[eventName](eventName,draggable,event);});if(draggable.options[eventName])draggable.options[eventName](draggable,event);},_cacheObserverCallbacks:function(){['onStart','onEnd','onDrag'].each(function(eventName){Draggables[eventName+'Count']=Draggables.observers.select(function(o){return o[eventName];}).length;});}};var Draggable=Class.create({initialize:function(element){var defaults={handle:false,reverteffect:function(element,top_offset,left_offset){var dur=Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;new Effect.Move(element,{x:-left_offset,y:-top_offset,duration:dur,queue:{scope:'_draggable',position:'end'}});},endeffect:function(element){var toOpacity=Object.isNumber(element._opacity)?element._opacity:1.0;new Effect.Opacity(element,{duration:0.2,from:0.7,to:toOpacity,queue:{scope:'_draggable',position:'end'},afterFinish:function(){Draggable._dragging[element]=false}});},zindex:1000,revert:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!arguments[1]||Object.isUndefined(arguments[1].endeffect))
Object.extend(defaults,{starteffect:function(element){element._opacity=Element.getOpacity(element);Draggable._dragging[element]=true;new Effect.Opacity(element,{duration:0.2,from:element._opacity,to:0.7});}});var options=Object.extend(defaults,arguments[1]||{});this.element=$(element);if(options.handle&&Object.isString(options.handle))
this.handle=this.element.down('.'+options.handle,0);if(!this.handle)this.handle=$(options.handle);if(!this.handle)this.handle=this.element;if(options.scroll&&!options.scroll.scrollTo&&!options.scroll.outerHTML){options.scroll=$(options.scroll);this._isScrollChild=Element.childOf(this.element,options.scroll);}
Element.makePositioned(this.element);this.options=options;this.dragging=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this);},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);Draggables.unregister(this);},currentDelta:function(){return([parseInt(Element.getStyle(this.element,'left')||'0'),parseInt(Element.getStyle(this.element,'top')||'0')]);},initDrag:function(event){if(!Object.isUndefined(Draggable._dragging[this.element])&&Draggable._dragging[this.element])return;if(Event.isLeftClick(event)){var src=Event.element(event);if((tag_name=src.tagName.toUpperCase())&&(tag_name=='INPUT'||tag_name=='SELECT'||tag_name=='OPTION'||tag_name=='BUTTON'||tag_name=='TEXTAREA'))return;var pointer=[Event.pointerX(event),Event.pointerY(event)];var pos=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(i){return(pointer[i]-pos[i])});Draggables.activate(this);Event.stop(event);}},startDrag:function(event){this.dragging=true;if(!this.delta)
this.delta=this.currentDelta();if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,'z-index')||0);this.element.style.zIndex=this.options.zindex;}
if(this.options.ghosting){this._clone=this.element.cloneNode(true);this._originallyAbsolute=(this.element.getStyle('position')=='absolute');if(!this._originallyAbsolute)
Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone,this.element);}
if(this.options.scroll){if(this.options.scroll==window){var where=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=where.left;this.originalScrollTop=where.top;}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop;}}
Draggables.notify('onStart',this,event);if(this.options.starteffect)this.options.starteffect(this.element);},updateDrag:function(event,pointer){if(!this.dragging)this.startDrag(event);if(!this.options.quiet){Position.prepare();Droppables.show(pointer,this.element);}
Draggables.notify('onDrag',this,event);this.draw(pointer);if(this.options.change)this.options.change(this);if(this.options.scroll){this.stopScrolling();var p;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){p=[left,top,left+width,top+height];}}else{p=Position.page(this.options.scroll);p[0]+=this.options.scroll.scrollLeft+Position.deltaX;p[1]+=this.options.scroll.scrollTop+Position.deltaY;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight);}
var speed=[0,0];if(pointer[0]<(p[0]+this.options.scrollSensitivity))speed[0]=pointer[0]-(p[0]+this.options.scrollSensitivity);if(pointer[1]<(p[1]+this.options.scrollSensitivity))speed[1]=pointer[1]-(p[1]+this.options.scrollSensitivity);if(pointer[0]>(p[2]-this.options.scrollSensitivity))speed[0]=pointer[0]-(p[2]-this.options.scrollSensitivity);if(pointer[1]>(p[3]-this.options.scrollSensitivity))speed[1]=pointer[1]-(p[3]-this.options.scrollSensitivity);this.startScrolling(speed);}
if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event);},finishDrag:function(event,success){this.dragging=false;if(this.options.quiet){Position.prepare();var pointer=[Event.pointerX(event),Event.pointerY(event)];Droppables.show(pointer,this.element);}
if(this.options.ghosting){if(!this._originallyAbsolute)
Position.relativize(this.element);delete this._originallyAbsolute;Element.remove(this._clone);this._clone=null;}
var dropped=false;if(success){dropped=Droppables.fire(event,this.element);if(!dropped)dropped=false;}
if(dropped&&this.options.onDropped)this.options.onDropped(this.element);Draggables.notify('onEnd',this,event);var revert=this.options.revert;if(revert&&Object.isFunction(revert))revert=revert(this.element);var d=this.currentDelta();if(revert&&this.options.reverteffect){if(dropped==0||revert!='failure')
this.options.reverteffect(this.element,d[1]-this.delta[1],d[0]-this.delta[0]);}else{this.delta=d;}
if(this.options.zindex)
this.element.style.zIndex=this.originalZ;if(this.options.endeffect)
this.options.endeffect(this.element);Draggables.deactivate(this);Droppables.reset();},keyPress:function(event){if(event.keyCode!=Event.KEY_ESC)return;this.finishDrag(event,false);Event.stop(event);},endDrag:function(event){if(!this.dragging)return;this.stopScrolling();this.finishDrag(event,true);Event.stop(event);},draw:function(point){var pos=Position.cumulativeOffset(this.element);if(this.options.ghosting){var r=Position.realOffset(this.element);pos[0]+=r[0]-Position.deltaX;pos[1]+=r[1]-Position.deltaY;}
var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){pos[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;pos[1]-=this.options.scroll.scrollTop-this.originalScrollTop;}
var p=[0,1].map(function(i){return(point[i]-pos[i]-this.offset[i])}.bind(this));if(this.options.snap){if(Object.isFunction(this.options.snap)){p=this.options.snap(p[0],p[1],this);}else{if(Object.isArray(this.options.snap)){p=p.map(function(v,i){return(v/this.options.snap[i]).round()*this.options.snap[i]}.bind(this));}else{p=p.map(function(v){return(v/this.options.snap).round()*this.options.snap}.bind(this));}}}
var style=this.element.style;if((!this.options.constraint)||(this.options.constraint=='horizontal'))
style.left=p[0]+"px";if((!this.options.constraint)||(this.options.constraint=='vertical'))
style.top=p[1]+"px";if(style.visibility=="hidden")style.visibility="";},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null;}},startScrolling:function(speed){if(!(speed[0]||speed[1]))return;this.scrollSpeed=[speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10);},scroll:function(){var current=new Date();var delta=current-this.lastScrolled;this.lastScrolled=current;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=delta/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1]);}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*delta/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*delta/1000;}
Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify('onDrag',this);if(this._isScrollChild){Draggables._lastScrollPointer=Draggables._lastScrollPointer||$A(Draggables._lastPointer);Draggables._lastScrollPointer[0]+=this.scrollSpeed[0]*delta/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*delta/1000;if(Draggables._lastScrollPointer[0]<0)
Draggables._lastScrollPointer[0]=0;if(Draggables._lastScrollPointer[1]<0)
Draggables._lastScrollPointer[1]=0;this.draw(Draggables._lastScrollPointer);}
if(this.options.change)this.options.change(this);},_getWindowScroll:function(w){var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft;}else if(w.document.body){T=body.scrollTop;L=body.scrollLeft;}
if(w.innerWidth){W=w.innerWidth;H=w.innerHeight;}else if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight;}else{W=body.offsetWidth;H=body.offsetHeight;}}
return{top:T,left:L,width:W,height:H};}});Draggable._dragging={};var SortableObserver=Class.create({initialize:function(element,observer){this.element=$(element);this.observer=observer;this.lastValue=Sortable.serialize(this.element);},onStart:function(){this.lastValue=Sortable.serialize(this.element);},onEnd:function(){Sortable.unmark();if(this.lastValue!=Sortable.serialize(this.element))
this.observer(this.element)}});var Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(element){while(element.tagName.toUpperCase()!="BODY"){if(element.id&&Sortable.sortables[element.id])return element;element=element.parentNode;}},options:function(element){element=Sortable._findRootElement($(element));if(!element)return;return Sortable.sortables[element.id];},destroy:function(element){element=$(element);var s=Sortable.sortables[element.id];if(s){Draggables.removeObserver(s.element);s.droppables.each(function(d){Droppables.remove(d)});s.draggables.invoke('destroy');delete Sortable.sortables[s.element.id];}},create:function(element){element=$(element);var options=Object.extend({element:element,tag:'li',dropOnEmpty:false,tree:false,treeTag:'ul',overlap:'vertical',constraint:'vertical',containment:element,handle:false,only:false,delay:0,hoverclass:null,ghosting:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,elements:false,handles:false,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(element);var options_for_draggable={revert:true,quiet:options.quiet,scroll:options.scroll,scrollSpeed:options.scrollSpeed,scrollSensitivity:options.scrollSensitivity,delay:options.delay,ghosting:options.ghosting,constraint:options.constraint,handle:options.handle};if(options.starteffect)
options_for_draggable.starteffect=options.starteffect;if(options.reverteffect)
options_for_draggable.reverteffect=options.reverteffect;else
if(options.ghosting)options_for_draggable.reverteffect=function(element){element.style.top=0;element.style.left=0;};if(options.endeffect)
options_for_draggable.endeffect=options.endeffect;if(options.zindex)
options_for_draggable.zindex=options.zindex;var options_for_droppable={overlap:options.overlap,containment:options.containment,tree:options.tree,hoverclass:options.hoverclass,onHover:Sortable.onHover};var options_for_tree={onHover:Sortable.onEmptyHover,overlap:options.overlap,containment:options.containment,hoverclass:options.hoverclass};Element.cleanWhitespace(element);options.draggables=[];options.droppables=[];if(options.dropOnEmpty||options.tree){Droppables.add(element,options_for_tree);options.droppables.push(element);}
(options.elements||this.findElements(element,options)||[]).each(function(e,i){var handle=options.handles?$(options.handles[i]):(options.handle?$(e).select('.'+options.handle)[0]:e);options.draggables.push(new Draggable(e,Object.extend(options_for_draggable,{handle:handle})));Droppables.add(e,options_for_droppable);if(options.tree)e.treeNode=element;options.droppables.push(e);});if(options.tree){(Sortable.findTreeElements(element,options)||[]).each(function(e){Droppables.add(e,options_for_tree);e.treeNode=element;options.droppables.push(e);});}
this.sortables[element.id]=options;Draggables.addObserver(new SortableObserver(element,options.onUpdate));},findElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.tag);},findTreeElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.treeTag);},onHover:function(element,dropon,overlap){if(Element.isParent(dropon,element))return;if(overlap>.33&&overlap<.66&&Sortable.options(dropon).tree){return;}else if(overlap>0.5){Sortable.mark(dropon,'before');if(dropon.previousSibling!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,dropon);if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}else{Sortable.mark(dropon,'after');var nextElement=dropon.nextSibling||null;if(nextElement!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,nextElement);if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}},onEmptyHover:function(element,dropon,overlap){var oldParentNode=element.parentNode;var droponOptions=Sortable.options(dropon);if(!Element.isParent(dropon,element)){var index;var children=Sortable.findElements(dropon,{tag:droponOptions.tag,only:droponOptions.only});var child=null;if(children){var offset=Element.offsetSize(dropon,droponOptions.overlap)*(1.0-overlap);for(index=0;index<children.length;index+=1){if(offset-Element.offsetSize(children[index],droponOptions.overlap)>=0){offset-=Element.offsetSize(children[index],droponOptions.overlap);}else if(offset-(Element.offsetSize(children[index],droponOptions.overlap)/2)>=0){child=index+1<children.length?children[index+1]:null;break;}else{child=children[index];break;}}}
dropon.insertBefore(element,child);Sortable.options(oldParentNode).onChange(element);droponOptions.onChange(element);}},unmark:function(){if(Sortable._marker)Sortable._marker.hide();},mark:function(dropon,position){var sortable=Sortable.options(dropon.parentNode);if(sortable&&!sortable.ghosting)return;if(!Sortable._marker){Sortable._marker=($('dropmarker')||Element.extend(document.createElement('DIV'))).hide().addClassName('dropmarker').setStyle({position:'absolute'});document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);}
var offsets=Position.cumulativeOffset(dropon);Sortable._marker.setStyle({left:offsets[0]+'px',top:offsets[1]+'px'});if(position=='after')
if(sortable.overlap=='horizontal')
Sortable._marker.setStyle({left:(offsets[0]+dropon.clientWidth)+'px'});else
Sortable._marker.setStyle({top:(offsets[1]+dropon.clientHeight)+'px'});Sortable._marker.show();},_tree:function(element,options,parent){var children=Sortable.findElements(element,options)||[];for(var i=0;i<children.length;++i){var match=children[i].id.match(options.format);if(!match)continue;var child={id:encodeURIComponent(match?match[1]:null),element:element,parent:parent,children:[],position:parent.children.length,container:$(children[i]).down(options.treeTag)};if(child.container)
this._tree(child.container,options,child);parent.children.push(child);}
return parent;},tree:function(element){element=$(element);var sortableOptions=this.options(element);var options=Object.extend({tag:sortableOptions.tag,treeTag:sortableOptions.treeTag,only:sortableOptions.only,name:element.id,format:sortableOptions.format},arguments[1]||{});var root={id:null,parent:null,children:[],container:element,position:0};return Sortable._tree(element,options,root);},_constructIndex:function(node){var index='';do{if(node.id)index='['+node.position+']'+index;}while((node=node.parent)!=null);return index;},sequence:function(element){element=$(element);var options=Object.extend(this.options(element),arguments[1]||{});return $(this.findElements(element,options)||[]).map(function(item){return item.id.match(options.format)?item.id.match(options.format)[1]:'';});},setSequence:function(element,new_sequence){element=$(element);var options=Object.extend(this.options(element),arguments[2]||{});var nodeMap={};this.findElements(element,options).each(function(n){if(n.id.match(options.format))
nodeMap[n.id.match(options.format)[1]]=[n,n.parentNode];n.parentNode.removeChild(n);});new_sequence.each(function(ident){var n=nodeMap[ident];if(n){n[1].appendChild(n[0]);delete nodeMap[ident];}});},serialize:function(element){element=$(element);var options=Object.extend(Sortable.options(element),arguments[1]||{});var name=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:element.id);if(options.tree){return Sortable.tree(element,arguments[1]).children.map(function(item){return[name+Sortable._constructIndex(item)+"[id]="+
encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));}).flatten().join('&');}else{return Sortable.sequence(element,arguments[1]).map(function(item){return name+"[]="+encodeURIComponent(item);}).join('&');}}};Element.isParent=function(child,element){if(!child.parentNode||child==element)return false;if(child.parentNode==element)return true;return Element.isParent(child.parentNode,element);};Element.findChildren=function(element,only,recursive,tagName){if(!element.hasChildNodes())return null;tagName=tagName.toUpperCase();if(only)only=[only].flatten();var elements=[];$A(element.childNodes).each(function(e){if(e.tagName&&e.tagName.toUpperCase()==tagName&&(!only||(Element.classNames(e).detect(function(v){return only.include(v)}))))
elements.push(e);if(recursive){var grandchildren=Element.findChildren(e,only,recursive,tagName);if(grandchildren)elements.push(grandchildren);}});return(elements.length>0?elements.flatten():[]);};Element.offsetSize=function(element,type){return element['offset'+((type=='vertical'||type=='height')?'Height':'Width')];};var FCKeditor=function(instanceName,width,height,toolbarSet,value)
{this.InstanceName=instanceName;this.Width=width||'100%';this.Height=height||'200';this.ToolbarSet=toolbarSet||'TST';this.Value=value||'';this.BasePath=FCKeditor.BasePath;this.CheckBrowser=true;this.DisplayErrors=true;this.Config=new Object();this.OnError=null;};FCKeditor.BasePath='/javascripts/';FCKeditor.MinHeight=200;FCKeditor.MinWidth=750;FCKeditor.prototype.Version='2.5.1';FCKeditor.prototype.VersionBuild='17566';FCKeditor.prototype.Create=function()
{document.write(this.CreateHtml());};FCKeditor.prototype.CreateHtml=function()
{if(!this.InstanceName||this.InstanceName.length==0)
{this._ThrowError(701,'You must specify an instance name.');return'';}
var sHtml='<div>';if(!this.CheckBrowser||this._IsCompatibleBrowser())
{sHtml+='<input type="hidden" id="'+this.InstanceName+'" name="'+this.InstanceName+'" value="'+this._HTMLEncode(this.Value)+'" style="display:none" />';sHtml+=this._GetConfigHtml();sHtml+=this._GetIFrameHtml();}
else
{var sWidth=this.Width.toString().indexOf('%')>0?this.Width:this.Width+'px';var sHeight=this.Height.toString().indexOf('%')>0?this.Height:this.Height+'px';sHtml+='<textarea name="'+this.InstanceName+'" rows="4" cols="40" style="width:'+sWidth+';height:'+sHeight+'">'+this._HTMLEncode(this.Value)+'<\/textarea>';}
sHtml+='</div>';return sHtml;};FCKeditor.prototype.ReplaceTextarea=function()
{if(!this.CheckBrowser||this._IsCompatibleBrowser())
{var oTextarea=document.getElementById(this.InstanceName);var colElementsByName=document.getElementsByName(this.InstanceName);var i=0;while(oTextarea||i==0)
{if(oTextarea&&oTextarea.tagName.toLowerCase()=='textarea'){break;}
oTextarea=colElementsByName[i++];}
if(!oTextarea)
{alert('Error: The TEXTAREA with id or name set to "'+this.InstanceName+'" was not found');return;}
oTextarea.style.display='none';this._InsertHtmlBefore(this._GetConfigHtml(),oTextarea);this._InsertHtmlBefore(this._GetIFrameHtml(),oTextarea);}};FCKeditor.prototype._InsertHtmlBefore=function(html,element)
{if(element.insertAdjacentHTML){element.insertAdjacentHTML('beforeBegin',html);}else{var oRange=document.createRange();oRange.setStartBefore(element);var oFragment=oRange.createContextualFragment(html);element.parentNode.insertBefore(oFragment,element);}};FCKeditor.prototype._GetConfigHtml=function()
{var sConfig='';for(var o in this.Config)
{if(sConfig.length>0){sConfig+='&amp;';}
sConfig+=encodeURIComponent(o)+'='+encodeURIComponent(this.Config[o]);}
return'<input type="hidden" id="'+this.InstanceName+'___Config" value="'+sConfig+'" style="display:none" />';};FCKeditor.prototype._GetIFrameHtml=function()
{var sFile='fckeditor.html';try
{if((/fcksource=true/i).test(window.top.location.search)){sFile='fckeditor.original.html';}}
catch(e){}
var sLink=this.BasePath+'editor/'+sFile+'?InstanceName='+encodeURIComponent(this.InstanceName);if(this.ToolbarSet){sLink+='&amp;Toolbar='+this.ToolbarSet;}
return'<iframe id="'+this.InstanceName+'___Frame" src="'+sLink+'" width="'+this.Width+'" height="'+this.Height+'" frameborder="0" scrolling="no"></iframe>';};FCKeditor.prototype._IsCompatibleBrowser=function()
{return FCKeditor_IsCompatibleBrowser();};FCKeditor.prototype._ThrowError=function(errorNumber,errorDescription)
{this.ErrorNumber=errorNumber;this.ErrorDescription=errorDescription;if(this.DisplayErrors)
{document.write('<div style="COLOR: #ff0000">');document.write('[ FCKeditor Error '+this.ErrorNumber+': '+this.ErrorDescription+' ]');document.write('</div>');}
if(typeof(this.OnError)=='function'){this.OnError(this,errorNumber,errorDescription);}};FCKeditor.prototype._HTMLEncode=function(text)
{if(typeof(text)!="string"){text=text.toString();}
text=text.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return text;};(function()
{var textareaToEditor=function(textarea)
{var editor=new FCKeditor(textarea.name);editor.Width=Math.max(textarea.offsetWidth,FCKeditor.MinWidth);editor.Height=Math.max(textarea.offsetHeight,FCKeditor.MinHeight);return editor;};FCKeditor.ReplaceAllTextareas=function()
{var textareas=document.getElementsByTagName('textarea');for(var i=0;i<textareas.length;i++)
{var editor=null;var textarea=textareas[i];var name=textarea.name;if(!name||name.length==0){continue;}
if(typeof arguments[0]=='string')
{var classRegex=new RegExp('(?:^| )'+arguments[0]+'(?:$| )');if(!classRegex.test(textarea.className)){continue;}}
else if(typeof arguments[0]=='function')
{editor=textareaToEditor(textarea);if(arguments[0](textarea,editor)===false){continue;}}
if(!editor){editor=textareaToEditor(textarea);}
editor.ReplaceTextarea();}};})();function getInternetExplorerVersion()
{var rv=-1;if(navigator.appName=='Microsoft Internet Explorer')
{var ua=navigator.userAgent;var re=new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");if(re.exec(ua)!=null){rv=parseFloat(RegExp.$1);}}
return rv;}
function FCKeditor_IsCompatibleBrowser()
{ie_version=getInternetExplorerVersion();if(ie_version>-1)
{if(ie_version>5.5){return true;}else{return false;}}
var sAgent=navigator.userAgent.toLowerCase();if(navigator.product=="Gecko"&&navigator.productSub>=20030210&&!(typeof(opera)=='object'&&opera.postError)){return true;}
if(window.opera&&window.opera.version&&parseFloat(window.opera.version())>=9.5){return true;}
if(sAgent.indexOf(' applewebkit/')!=-1){return(sAgent.match(/ applewebkit\/(\d+)/)[1]>=522);}
return false;}
function parseIndex(id){return Number(id.substring(id.indexOf('_')+1,id.length));}
function setObservers(){var table=$('tableBuilder');var numCols=table.rows[0].cells.length;for(var i=0;i<numCols;i++){Event.observe($('addcol_'+i),'click',addCol);if(i!=0){Event.observe($('deletecol_'+i),'click',deleteCol);}}
var numRows=table.rows.length;for(var i=0;i<numRows;i++){Event.observe($('addrow_'+i),'click',addRow);if(i!=0){Event.observe($('deleterow_'+i),'click',deleteRow);}}}
function setRowIds(td_element,rindex){var atags=td_element.getElementsByTagName("a");var a_del=Element.extend(atags[0]);var a_add=Element.extend(atags[1]);a_del.id='deleterow_'+rindex;a_add.id='addrow_'+rindex;if(rindex==1&&$('tableBuilder').rows.length<=2){a_del.hide();}else{a_del.show();}}
function setColIds(td_element,cindex){var atags=td_element.getElementsByTagName("a");var a_del=Element.extend(atags[1]);var a_add=Element.extend(atags[0]);a_del.id='deletecol_'+cindex;a_add.id='addcol_'+cindex;if(cindex==1&&$('tableBuilder').rows[0].cells.length<=2){a_del.hide();}else{a_del.show();}}
function tableReconfigure(){var table=$('tableBuilder');var numRows=table.rows.length;var numCols=table.rows[0].cells.length;for(var i=0;i<numRows;i++){for(var j=0;j<numCols;j++){if(i==0&&j!=0){setColIds(table.rows[i].cells[j],j);}else if(j==0&&i!=0){setRowIds(table.rows[i].cells[j],i);}else{var td=Element.extend(table.rows[i].cells[j]);var text_field=td.descendants()[0];text_field.name="r"+i+"_c"+j;}}}
toggleSortableColumn();}
function createTextField(){var el=document.createElement('input');el.type='text';return el;}
function addRow(event){var atag=Event.element(event);var rindex=1+parseIndex(atag.id);var table=$('tableBuilder');var numCols=table.rows[0].cells.length;var row=table.insertRow(rindex);for(var i=0;i<numCols;i++){var td=row.insertCell(i);if(i==0){td.className="buildLinks";var a_delete=document.createElement('a');a_delete.href="#";a_delete.title="Delete row";a_delete.className="delete";Event.observe(a_delete,'click',deleteRow);td.appendChild(a_delete);var a_add=document.createElement('a');a_add.href="#";a_add.title="Add a row below";a_add.className="down";Event.observe(a_add,'click',addRow);td.appendChild(a_add);}else{td.appendChild(createTextField());}}
tableReconfigure();if(rindex==1){setTableHeaderClass();table.rows[2].className="";}}
function deleteRow(event){var atag=Event.element(event);var rindex=parseIndex(atag.id);var table=$('tableBuilder');table.deleteRow(rindex);tableReconfigure();if(rindex==1){setTableHeaderClass();}}
function addCol(event){var atag=Event.element(event);var cindex=1+parseIndex(atag.id);var table=$('tableBuilder');var numRows=table.rows.length;for(var i=0;i<numRows;i++){var td=table.rows[i].insertCell(cindex);if(i==0){td.className="buildLinks";var a_add=document.createElement('a');a_add.href="#";a_add.title="Add a column to the right";a_add.className="right";Event.observe(a_add,'click',addCol);td.appendChild(a_add);var a_delete=document.createElement('a');a_delete.href="#";a_delete.title="Delete column";a_delete.className="delete";Event.observe(a_delete,'click',deleteCol);td.appendChild(a_delete);}else{td.appendChild(createTextField());}}
tableReconfigure();}
function deleteCol(event){var atag=Event.element(event);var cindex=parseIndex(atag.id);var table=$('tableBuilder');var numRows=table.rows.length;for(var i=0;i<numRows;i++){table.rows[i].deleteCell(cindex);}
tableReconfigure();}
function setTableHeaderClass(){var table=$('tableBuilder');var tr=table.rows[1];var headerEnabled=$('form_values_is_first_row_header');if(headerEnabled.checked){tr.className='headerEnabled';}else{tr.className='';}
toggleSortableColumn();}
function toggleSortableColumn(){var tr_sortable=$('tr_sortable');if($('form_values_is_first_row_header').checked){tr_sortable.show();}else{tr_sortable.hide();}}
function toggleBuildImport(){if($("form_values_is_import").value=="false"){$('tableImport').hide();$('tableBuilder').show();}else{$('tableBuilder').hide();$('tableImport').show();}}
function setFormMultipart(){var select=$('form_values_is_import');var form=$('lb_form');if(select.value=='true'){form.enctype='multipart/form-data';}else{form.enctype='text/plain';}}
if(typeof Effect=='undefined')
throw("controls.js requires including script.aculo.us' effects.js library");var Autocompleter={};Autocompleter.Base=Class.create({baseInitialize:function(element,update,options){element=$(element);this.element=element;this.update=$(update);this.hasFocus=false;this.changed=false;this.active=false;this.index=0;this.entryCount=0;this.oldElementValue=this.element.value;if(this.setOptions)
this.setOptions(options);else
this.options=options||{};this.options.paramName=this.options.paramName||this.element.name;this.options.tokens=this.options.tokens||[];this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.onShow=this.options.onShow||function(element,update){if(!update.style.position||update.style.position=='absolute'){update.style.position='absolute';Position.clone(element,update,{setHeight:false,offsetTop:element.offsetHeight});}
Effect.Appear(update,{duration:0.15});};this.options.onHide=this.options.onHide||function(element,update){new Effect.Fade(update,{duration:0.15})};if(typeof(this.options.tokens)=='string')
this.options.tokens=new Array(this.options.tokens);if(!this.options.tokens.include('\n'))
this.options.tokens.push('\n');this.observer=null;this.element.setAttribute('autocomplete','off');Element.hide(this.update);Event.observe(this.element,'blur',this.onBlur.bindAsEventListener(this));Event.observe(this.element,'keydown',this.onKeyPress.bindAsEventListener(this));},show:function(){if(Element.getStyle(this.update,'display')=='none')this.options.onShow(this.element,this.update);if(!this.iefix&&(Prototype.Browser.IE)&&(Element.getStyle(this.update,'position')=='absolute')){new Insertion.After(this.update,'<iframe id="'+this.update.id+'_iefix" '+'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" '+'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.update.id+'_iefix');}
if(this.iefix)setTimeout(this.fixIEOverlapping.bind(this),50);},fixIEOverlapping:function(){Position.clone(this.update,this.iefix,{setTop:(!this.update.style.height)});this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix);},hide:function(){this.stopIndicator();if(Element.getStyle(this.update,'display')!='none')this.options.onHide(this.element,this.update);if(this.iefix)Element.hide(this.iefix);},startIndicator:function(){if(this.options.indicator)Element.show(this.options.indicator);},stopIndicator:function(){if(this.options.indicator)Element.hide(this.options.indicator);},onKeyPress:function(event){if(this.active)
switch(event.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(event);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(event);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(event);return;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(event);return;}
else
if(event.keyCode==Event.KEY_TAB||event.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&event.keyCode==0))return;this.changed=true;this.hasFocus=true;if(this.observer)clearTimeout(this.observer);this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000);},activate:function(){this.changed=false;this.hasFocus=true;this.getUpdatedChoices();},onHover:function(event){var element=Event.findElement(event,'LI');if(this.index!=element.autocompleteIndex)
{this.index=element.autocompleteIndex;this.render();}
Event.stop(event);},onClick:function(event){var element=Event.findElement(event,'LI');this.index=element.autocompleteIndex;this.selectEntry();this.hide();},onBlur:function(event){setTimeout(this.hide.bind(this),250);this.hasFocus=false;this.active=false;},render:function(){if(this.entryCount>0){for(var i=0;i<this.entryCount;i++)
this.index==i?Element.addClassName(this.getEntry(i),"selected"):Element.removeClassName(this.getEntry(i),"selected");if(this.hasFocus){this.show();this.active=true;}}else{this.active=false;this.hide();}},markPrevious:function(){if(this.index>0)this.index--;else this.index=this.entryCount-1;this.getEntry(this.index).scrollIntoView(true);},markNext:function(){if(this.index<this.entryCount-1)this.index++;else this.index=0;this.getEntry(this.index).scrollIntoView(false);},getEntry:function(index){return this.update.firstChild.childNodes[index];},getCurrentEntry:function(){return this.getEntry(this.index);},selectEntry:function(){this.active=false;this.updateElement(this.getCurrentEntry());},updateElement:function(selectedElement){if(this.options.updateElement){this.options.updateElement(selectedElement);return;}
var value='';if(this.options.select){var nodes=$(selectedElement).select('.'+this.options.select)||[];if(nodes.length>0)value=Element.collectTextNodes(nodes[0],this.options.select);}else
value=Element.collectTextNodesIgnoreClass(selectedElement,'informal');var bounds=this.getTokenBounds();if(bounds[0]!=-1){var newValue=this.element.value.substr(0,bounds[0]);var whitespace=this.element.value.substr(bounds[0]).match(/^\s+/);if(whitespace)
newValue+=whitespace[0];this.element.value=newValue+value+this.element.value.substr(bounds[1]);}else{this.element.value=value;}
this.oldElementValue=this.element.value;this.element.focus();if(this.options.afterUpdateElement)
this.options.afterUpdateElement(this.element,selectedElement);},updateChoices:function(choices){if(!this.changed&&this.hasFocus){this.update.innerHTML=choices;Element.cleanWhitespace(this.update);Element.cleanWhitespace(this.update.down());if(this.update.firstChild&&this.update.down().childNodes){this.entryCount=this.update.down().childNodes.length;for(var i=0;i<this.entryCount;i++){var entry=this.getEntry(i);entry.autocompleteIndex=i;this.addObservers(entry);}}else{this.entryCount=0;}
this.stopIndicator();this.index=0;if(this.entryCount==1&&this.options.autoSelect){this.selectEntry();this.hide();}else{this.render();}}},addObservers:function(element){Event.observe(element,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(element,"click",this.onClick.bindAsEventListener(this));},onObserverEvent:function(){this.changed=false;this.tokenBounds=null;if(this.getToken().length>=this.options.minChars){this.getUpdatedChoices();}else{this.active=false;this.hide();}
this.oldElementValue=this.element.value;},getToken:function(){var bounds=this.getTokenBounds();return this.element.value.substring(bounds[0],bounds[1]).strip();},getTokenBounds:function(){if(null!=this.tokenBounds)return this.tokenBounds;var value=this.element.value;if(value.strip().empty())return[-1,0];var diff=arguments.callee.getFirstDifferencePos(value,this.oldElementValue);var offset=(diff==this.oldElementValue.length?1:0);var prevTokenPos=-1,nextTokenPos=value.length;var tp;for(var index=0,l=this.options.tokens.length;index<l;++index){tp=value.lastIndexOf(this.options.tokens[index],diff+offset-1);if(tp>prevTokenPos)prevTokenPos=tp;tp=value.indexOf(this.options.tokens[index],diff+offset);if(-1!=tp&&tp<nextTokenPos)nextTokenPos=tp;}
return(this.tokenBounds=[prevTokenPos+1,nextTokenPos]);}});Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(newS,oldS){var boundary=Math.min(newS.length,oldS.length);for(var index=0;index<boundary;++index)
if(newS[index]!=oldS[index])
return index;return boundary;};Ajax.Autocompleter=Class.create(Autocompleter.Base,{initialize:function(element,update,url,options){this.baseInitialize(element,update,options);this.options.asynchronous=true;this.options.onComplete=this.onComplete.bind(this);this.options.defaultParams=this.options.parameters||null;this.url=url;},getUpdatedChoices:function(){this.startIndicator();var entry=encodeURIComponent(this.options.paramName)+'='+
encodeURIComponent(this.getToken());this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;if(this.options.defaultParams)
this.options.parameters+='&'+this.options.defaultParams;new Ajax.Request(this.url,this.options);},onComplete:function(request){this.updateChoices(request.responseText);}});Autocompleter.Local=Class.create(Autocompleter.Base,{initialize:function(element,update,array,options){this.baseInitialize(element,update,options);this.options.array=array;},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this));},setOptions:function(options){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(instance){var ret=[];var partial=[];var entry=instance.getToken();var count=0;for(var i=0;i<instance.options.array.length&&ret.length<instance.options.choices;i++){var elem=instance.options.array[i];var foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase()):elem.indexOf(entry);while(foundPos!=-1){if(foundPos==0&&elem.length!=entry.length){ret.push("<li><strong>"+elem.substr(0,entry.length)+"</strong>"+
elem.substr(entry.length)+"</li>");break;}else if(entry.length>=instance.options.partialChars&&instance.options.partialSearch&&foundPos!=-1){if(instance.options.fullSearch||/\s/.test(elem.substr(foundPos-1,1))){partial.push("<li>"+elem.substr(0,foundPos)+"<strong>"+
elem.substr(foundPos,entry.length)+"</strong>"+elem.substr(foundPos+entry.length)+"</li>");break;}}
foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase(),foundPos+1):elem.indexOf(entry,foundPos+1);}}
if(partial.length)
ret=ret.concat(partial.slice(0,instance.options.choices-ret.length));return"<ul>"+ret.join('')+"</ul>";}},options||{});}});Field.scrollFreeActivate=function(field){setTimeout(function(){Field.activate(field);},1);};Ajax.InPlaceEditor=Class.create({initialize:function(element,url,options){this.url=url;this.element=element=$(element);this.prepareOptions();this._controls={};arguments.callee.dealWithDeprecatedOptions(options);Object.extend(this.options,options||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+'-inplaceeditor';if($(this.options.formId))
this.options.formId='';}
if(this.options.externalControl)
this.options.externalControl=$(this.options.externalControl);if(!this.options.externalControl)
this.options.externalControlOnly=false;this._originalBackground=this.element.getStyle('background-color')||'transparent';this.element.title=this.options.clickToEditText;this._boundCancelHandler=this.handleFormCancellation.bind(this);this._boundComplete=(this.options.onComplete||Prototype.emptyFunction).bind(this);this._boundFailureHandler=this.handleAJAXFailure.bind(this);this._boundSubmitHandler=this.handleFormSubmission.bind(this);this._boundWrapperHandler=this.wrapUp.bind(this);this.registerListeners();},checkForEscapeOrReturn:function(e){if(!this._editing||e.ctrlKey||e.altKey||e.shiftKey)return;if(Event.KEY_ESC==e.keyCode)
this.handleFormCancellation(e);else if(Event.KEY_RETURN==e.keyCode)
this.handleFormSubmission(e);},createControl:function(mode,handler,extraClasses){var control=this.options[mode+'Control'];var text=this.options[mode+'Text'];if('button'==control){var btn=document.createElement('input');btn.type='submit';btn.value=text;btn.className='editor_'+mode+'_button';if('cancel'==mode)
btn.onclick=this._boundCancelHandler;this._form.appendChild(btn);this._controls[mode]=btn;}else if('link'==control){var link=document.createElement('a');link.href='#';link.appendChild(document.createTextNode(text));link.onclick='cancel'==mode?this._boundCancelHandler:this._boundSubmitHandler;link.className='editor_'+mode+'_link';if(extraClasses)
link.className+=' '+extraClasses;this._form.appendChild(link);this._controls[mode]=link;}},createEditField:function(){var text=(this.options.loadTextURL?this.options.loadingText:this.getText());var fld;if(1>=this.options.rows&&!/\r|\n/.test(this.getText())){fld=document.createElement('input');fld.type='text';var size=this.options.size||this.options.cols||0;if(0<size)fld.size=size;}else{fld=document.createElement('textarea');fld.rows=(1>=this.options.rows?this.options.autoRows:this.options.rows);fld.cols=this.options.cols||40;}
fld.name=this.options.paramName;fld.value=text;fld.className='editor_field';if(this.options.submitOnBlur)
fld.onblur=this._boundSubmitHandler;this._controls.editor=fld;if(this.options.loadTextURL)
this.loadExternalText();this._form.appendChild(this._controls.editor);},createForm:function(){var ipe=this;function addText(mode,condition){var text=ipe.options['text'+mode+'Controls'];if(!text||condition===false)return;ipe._form.appendChild(document.createTextNode(text));};this._form=$(document.createElement('form'));this._form.id=this.options.formId;this._form.addClassName(this.options.formClassName);this._form.onsubmit=this._boundSubmitHandler;this.createEditField();if('textarea'==this._controls.editor.tagName.toLowerCase())
this._form.appendChild(document.createElement('br'));if(this.options.onFormCustomization)
this.options.onFormCustomization(this,this._form);addText('Before',this.options.okControl||this.options.cancelControl);this.createControl('ok',this._boundSubmitHandler);addText('Between',this.options.okControl&&this.options.cancelControl);this.createControl('cancel',this._boundCancelHandler,'editor_cancel');addText('After',this.options.okControl||this.options.cancelControl);},destroy:function(){if(this._oldInnerHTML)
this.element.innerHTML=this._oldInnerHTML;this.leaveEditMode();this.unregisterListeners();},enterEditMode:function(e){if(this._saving||this._editing)return;this._editing=true;this.triggerCallback('onEnterEditMode');if(this.options.externalControl)
this.options.externalControl.hide();this.element.hide();this.createForm();this.element.parentNode.insertBefore(this._form,this.element);if(!this.options.loadTextURL)
this.postProcessEditField();if(e)Event.stop(e);},enterHover:function(e){if(this.options.hoverClassName)
this.element.addClassName(this.options.hoverClassName);if(this._saving)return;this.triggerCallback('onEnterHover');},getText:function(){return this.element.innerHTML.unescapeHTML();},handleAJAXFailure:function(transport){this.triggerCallback('onFailure',transport);if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML;this._oldInnerHTML=null;}},handleFormCancellation:function(e){this.wrapUp();if(e)Event.stop(e);},handleFormSubmission:function(e){var form=this._form;var value=$F(this._controls.editor);this.prepareSubmission();var params=this.options.callback(form,value)||'';if(Object.isString(params))
params=params.toQueryParams();params.editorId=this.element.id;if(this.options.htmlResponse){var options=Object.extend({evalScripts:true},this.options.ajaxOptions);Object.extend(options,{parameters:params,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Updater({success:this.element},this.url,options);}else{var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:params,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Request(this.url,options);}
if(e)Event.stop(e);},leaveEditMode:function(){this.element.removeClassName(this.options.savingClassName);this.removeForm();this.leaveHover();this.element.style.backgroundColor=this._originalBackground;this.element.show();if(this.options.externalControl)
this.options.externalControl.show();this._saving=false;this._editing=false;this._oldInnerHTML=null;this.triggerCallback('onLeaveEditMode');},leaveHover:function(e){if(this.options.hoverClassName)
this.element.removeClassName(this.options.hoverClassName);if(this._saving)return;this.triggerCallback('onLeaveHover');},loadExternalText:function(){this._form.addClassName(this.options.loadingClassName);this._controls.editor.disabled=true;var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){this._form.removeClassName(this.options.loadingClassName);var text=transport.responseText;if(this.options.stripLoadedTextTags)
text=text.stripTags();this._controls.editor.value=text;this._controls.editor.disabled=false;this.postProcessEditField();}.bind(this),onFailure:this._boundFailureHandler});new Ajax.Request(this.options.loadTextURL,options);},postProcessEditField:function(){var fpc=this.options.fieldPostCreation;if(fpc)
$(this._controls.editor)['focus'==fpc?'focus':'activate']();},prepareOptions:function(){this.options=Object.clone(Ajax.InPlaceEditor.DefaultOptions);Object.extend(this.options,Ajax.InPlaceEditor.DefaultCallbacks);[this._extraDefaultOptions].flatten().compact().each(function(defs){Object.extend(this.options,defs);}.bind(this));},prepareSubmission:function(){this._saving=true;this.removeForm();this.leaveHover();this.showSaving();},registerListeners:function(){this._listeners={};var listener;$H(Ajax.InPlaceEditor.Listeners).each(function(pair){listener=this[pair.value].bind(this);this._listeners[pair.key]=listener;if(!this.options.externalControlOnly)
this.element.observe(pair.key,listener);if(this.options.externalControl)
this.options.externalControl.observe(pair.key,listener);}.bind(this));},removeForm:function(){if(!this._form)return;this._form.remove();this._form=null;this._controls={};},showSaving:function(){this._oldInnerHTML=this.element.innerHTML;this.element.innerHTML=this.options.savingText;this.element.addClassName(this.options.savingClassName);this.element.style.backgroundColor=this._originalBackground;this.element.show();},triggerCallback:function(cbName,arg){if('function'==typeof this.options[cbName]){this.options[cbName](this,arg);}},unregisterListeners:function(){$H(this._listeners).each(function(pair){if(!this.options.externalControlOnly)
this.element.stopObserving(pair.key,pair.value);if(this.options.externalControl)
this.options.externalControl.stopObserving(pair.key,pair.value);}.bind(this));},wrapUp:function(transport){this.leaveEditMode();this._boundComplete(transport,this.element);}});Object.extend(Ajax.InPlaceEditor.prototype,{dispose:Ajax.InPlaceEditor.prototype.destroy});Ajax.InPlaceCollectionEditor=Class.create(Ajax.InPlaceEditor,{initialize:function($super,element,url,options){this._extraDefaultOptions=Ajax.InPlaceCollectionEditor.DefaultOptions;$super(element,url,options);},createEditField:function(){var list=document.createElement('select');list.name=this.options.paramName;list.size=1;this._controls.editor=list;this._collection=this.options.collection||[];if(this.options.loadCollectionURL)
this.loadCollection();else
this.checkForExternalText();this._form.appendChild(this._controls.editor);},loadCollection:function(){this._form.addClassName(this.options.loadingClassName);this.showLoadingText(this.options.loadingCollectionText);var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){var js=transport.responseText.strip();if(!/^\[.*\]$/.test(js))
throw('Server returned an invalid collection representation.');this._collection=eval(js);this.checkForExternalText();}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadCollectionURL,options);},showLoadingText:function(text){this._controls.editor.disabled=true;var tempOption=this._controls.editor.firstChild;if(!tempOption){tempOption=document.createElement('option');tempOption.value='';this._controls.editor.appendChild(tempOption);tempOption.selected=true;}
tempOption.update((text||'').stripScripts().stripTags());},checkForExternalText:function(){this._text=this.getText();if(this.options.loadTextURL)
this.loadExternalText();else
this.buildOptionList();},loadExternalText:function(){this.showLoadingText(this.options.loadingText);var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){this._text=transport.responseText.strip();this.buildOptionList();}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadTextURL,options);},buildOptionList:function(){this._form.removeClassName(this.options.loadingClassName);this._collection=this._collection.map(function(entry){return 2===entry.length?entry:[entry,entry].flatten();});var marker=('value'in this.options)?this.options.value:this._text;var textFound=this._collection.any(function(entry){return entry[0]==marker;}.bind(this));this._controls.editor.update('');var option;this._collection.each(function(entry,index){option=document.createElement('option');option.value=entry[0];option.selected=textFound?entry[0]==marker:0==index;option.appendChild(document.createTextNode(entry[1]));this._controls.editor.appendChild(option);}.bind(this));this._controls.editor.disabled=false;Field.scrollFreeActivate(this._controls.editor);}});Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions=function(options){if(!options)return;function fallback(name,expr){if(name in options||expr===undefined)return;options[name]=expr;};fallback('cancelControl',(options.cancelLink?'link':(options.cancelButton?'button':options.cancelLink==options.cancelButton==false?false:undefined)));fallback('okControl',(options.okLink?'link':(options.okButton?'button':options.okLink==options.okButton==false?false:undefined)));fallback('highlightColor',options.highlightcolor);fallback('highlightEndColor',options.highlightendcolor);};Object.extend(Ajax.InPlaceEditor,{DefaultOptions:{ajaxOptions:{},autoRows:3,cancelControl:'link',cancelText:'cancel',clickToEditText:'Click to edit',externalControl:null,externalControlOnly:false,fieldPostCreation:'activate',formClassName:'inplaceeditor-form',formId:null,highlightColor:'#ffff99',highlightEndColor:'#ffffff',hoverClassName:'',htmlResponse:true,loadingClassName:'inplaceeditor-loading',loadingText:'Loading...',okControl:'button',okText:'ok',paramName:'value',rows:1,savingClassName:'inplaceeditor-saving',savingText:'Saving...',size:0,stripLoadedTextTags:false,submitOnBlur:false,textAfterControls:'',textBeforeControls:'',textBetweenControls:''},DefaultCallbacks:{callback:function(form){return Form.serialize(form);},onComplete:function(transport,element){new Effect.Highlight(element,{startcolor:this.options.highlightColor,keepBackgroundImage:true});},onEnterEditMode:null,onEnterHover:function(ipe){ipe.element.style.backgroundColor=ipe.options.highlightColor;if(ipe._effect)
ipe._effect.cancel();},onFailure:function(transport,ipe){alert('Error communication with the server: '+transport.responseText.stripTags());},onFormCustomization:null,onLeaveEditMode:null,onLeaveHover:function(ipe){ipe._effect=new Effect.Highlight(ipe.element,{startcolor:ipe.options.highlightColor,endcolor:ipe.options.highlightEndColor,restorecolor:ipe._originalBackground,keepBackgroundImage:true});}},Listeners:{click:'enterEditMode',keydown:'checkForEscapeOrReturn',mouseover:'enterHover',mouseout:'leaveHover'}});Ajax.InPlaceCollectionEditor.DefaultOptions={loadingCollectionText:'Loading options...'};Form.Element.DelayedObserver=Class.create({initialize:function(element,delay,callback){this.delay=delay||0.5;this.element=$(element);this.callback=callback;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));},delayedListener:function(event){if(this.lastValue==$F(this.element))return;if(this.timer)clearTimeout(this.timer);this.timer=setTimeout(this.onTimerEvent.bind(this),this.delay*1000);this.lastValue=$F(this.element);},onTimerEvent:function(){this.timer=null;this.callback(this.element,$F(this.element));}});var numPayments=0;var price=0;var startYear=2008;var initialAmount=0;function createDateSelect(id_prefix,start_year){return'<select id="'+id_prefix+'_month" name="'+id_prefix+'[month]">'+'<option value="1" selected="selected">January</option>'+'<option value="2">February</option>'+'<option value="3">March</option>'+'<option value="4">April</option>'+'<option value="5">May</option>'+'<option value="6">June</option>'+'<option value="7">July</option>'+'<option value="8">August</option>'+'<option value="9">September</option>'+'<option value="10">October</option>'+'<option value="11">November</option>'+'<option value="12">December</option>'+'</select>\n'+'<select id="'+id_prefix+'_day" name="'+id_prefix+'[day]">'+'<option value="1" selected="selected">1</option>'+'<option value="2">2</option>'+'<option value="3">3</option>'+'<option value="4">4</option>'+'<option value="5">5</option>'+'<option value="6">6</option>'+'<option value="7">7</option>'+'<option value="8">8</option>'+'<option value="9">9</option>'+'<option value="10">10</option>'+'<option value="11">11</option>'+'<option value="12">12</option>'+'<option value="13">13</option>'+'<option value="14">14</option>'+'<option value="15">15</option>'+'<option value="16">16</option>'+'<option value="17">17</option>'+'<option value="18">18</option>'+'<option value="19">19</option>'+'<option value="20">20</option>'+'<option value="21">21</option>'+'<option value="22">22</option>'+'<option value="23">23</option>'+'<option value="24">24</option>'+'<option value="25">25</option>'+'<option value="26">26</option>'+'<option value="27">27</option>'+'<option value="28">28</option>'+'<option value="29">29</option>'+'<option value="30">30</option>'+'<option value="31">31</option>'+'</select>\n'+'<select id="'+id_prefix+'_year" name="'+id_prefix+'[year]">'+'<option value="'+start_year+'" selected="selected">'+start_year+'</option>'+'<option value="'+(start_year+1)+'">'+(start_year+1)+'</option>'+'<option value="'+(start_year+2)+'">'+(start_year+2)+'</option>'+'<option value="'+(start_year+3)+'">'+(start_year+3)+'</option>'+'<option value="'+(start_year+4)+'">'+(start_year+4)+'</option>'+'<option value="'+(start_year+5)+'">'+(start_year+5)+'</option>'+'</select>\n'}
function calculatePaymentAmounts(newAmount){initialAmount=parseFloat(newAmount.replace('$',''));var amount=(price-initialAmount)/(numPayments-1);$('payment_amount').innerHTML="$"+amount.toFixed(2);}
function addPaymentPlanDate(){var table=$('payment_dates');var length=table.rows.length;var tr=table.insertRow(length);var td1=tr.insertCell(0);numPayments=numPayments+1;var td2=tr.insertCell(1);td2.innerHTML='Payment '+numPayments+': '+createDateSelect('date_'+numPayments,startYear);calculatePaymentAmounts(String(initialAmount));}
function removePaymentPlanDate(){var table=$('payment_dates');var length=table.rows.length;if(numPayments>2){table.deleteRow(length-1);numPayments=numPayments-1;calculatePaymentAmounts(String(initialAmount));}else{alert('There must be at least 2 payments!');}}
var curQuType='short_text';var enabledSelect=true;var onReusableQuestion=false;function questionObjectFalse(){if(onReusableQuestion){return $('question_is_required_false');}else{return $('question_element_is_required_false');}}
function questionObjectTrue(){if(onReusableQuestion){return $('question_is_required_true');}else{return $('question_element_is_required_true');}}
function forceRequired(is_required){var quTrue=questionObjectTrue();var quFalse=questionObjectFalse();if(is_required){quFalse.disabled=true;quTrue.disabled=false;quTrue.checked=true;}else{quTrue.disabled=true;quFalse.disabled=false;quFalse.checked=true;}}
function setRequiredOption(){if($('required_row')){qe_is_hidden=$('question_element_is_hidden_true');if(curQuType=='checkbox'){forceRequired(false);}else if(qe_is_hidden==null||qe_is_hidden.checked==false){var quTrue=questionObjectTrue();quTrue.disabled=false;var quFalse=questionObjectFalse();quFalse.disabled=false;}else{forceRequired(false);}}}
function questionTypeChanged(questionType){$('section_'+curQuType).hide();$('section_'+questionType).show();curQuType=questionType;setRequiredOption();}
function setupQuestionType(questionType){if(questionType==''){curQuType='short_text';}else{curQuType=questionType;}
$('section_'+curQuType).show();setRequiredOption();}
function parseDashIndex(id){return Number(id.substring(id.indexOf('-')+1,id.length));}
function choiceDefaultId(quType,index){return quType+'_default_choice['+index+']';}
function createChoiceLiTag(index,value,enabled,innerName,isDefault){var new_li=document.createElement('li');var radioStr='';var selectStr='';var enabledStr='';var disabledStr='';if(enabledSelect){var checkedStr='';if(isDefault==true){checkedStr='checked="checked"';}
if(curQuType!='checkbox'){radioStr='<input id="'+choiceDefaultId(curQuType,index)+'"'+' name="'+curQuType+'_default_choice" value="'+innerName+'" type="radio"'+checkedStr+'>&nbsp;';}
if(enabled==true){enabledStr='selected="selected"';}else{disabledStr='selected="selected"';}
selectStr='<select id="'+curQuType+'_choices_enabled['+index+']"'+' name="'+curQuType+'_choices_enabled['+innerName+']" >'+'<option value="1" '+enabledStr+'>Enabled</option>'+'<option value="0" '+disabledStr+'>Disabled</option></select>&nbsp;'}
new_li.innerHTML=radioStr+'<input id="'+curQuType+'_choices['+index+']"'+' name="'+curQuType+'_choices['+innerName+']'+'" value="'+value+'" type="text">&nbsp;'+
selectStr+'<a href="#" title="Delete choice" id="'+curQuType+'_delete-'+index+'">X</a>&nbsp;'+'<a href="#" title="Add choice" id="'+curQuType+'_add-'+index+'">Add</a>';return new_li;}
function getInnerName(count,text_field){var s=text_field.name;s=s.substring(s.indexOf('[')+1,s.indexOf(']'));if(s=='new_'+(count-1)){s='new_'+count;}
return s;}
function addChoice(event){var atag=Event.element(event);var index=parseDashIndex(atag.id);var choices=$$('#'+curQuType+'_choices li');var new_list=Element.extend(document.createElement('ul'));var count=0;var enabled=1;choices.each(function(li,i){var text_field=$(curQuType+'_choices['+i+']');if(text_field!=null){var enabled=false;var selected=false;if(enabledSelect){enabled=$(curQuType+'_choices_enabled['+i+']').value==1;if(curQuType!='checkbox'){selected=$(choiceDefaultId(curQuType,i)).checked;}}
new_list.appendChild(createChoiceLiTag(count,text_field.value,enabled,getInnerName(count,text_field),selected));}else{new_list.appendChild(li);}
count=count+1;if(i==index){new_list.appendChild(createChoiceLiTag(count,'',true,'new_'+count,false));count=count+1;}});$(curQuType+'_choice_list').remove();new_list.id=curQuType+'_choice_list';$(curQuType+'_choices').insert({top:new_list});setChoiceObservers(curQuType);}
function deleteChoice(event){var atag=Event.element(event);var index=parseDashIndex(atag.id);var choices=$$('#'+curQuType+'_choices li');if(choices.length==1){alert('You must have at least one choice!');}else{var new_list=Element.extend(document.createElement('ul'));var count=0;choices.each(function(li,i){if(i!=index){var text_field=$(curQuType+'_choices['+i+']');if(text_field!=null){var enabled=false;var selected=false;if(enabledSelect){enabled=$(curQuType+'_choices_enabled['+i+']').value=='1';if(curQuType!='checkbox'){selected=$(choiceDefaultId(curQuType,i)).checked;}}
new_list.appendChild(createChoiceLiTag(count,text_field.value,enabled,getInnerName(count,text_field),selected));}else{new_list.appendChild(li);}
count=count+1;}});$(curQuType+'_choice_list').remove();new_list.id=curQuType+'_choice_list';$(curQuType+'_choices').insert({top:new_list});setChoiceObservers(curQuType);}}
function setChoiceObservers(quType){var choices=$$('#'+quType+'_choices li');for(var i=0;i<choices.length;i++){var add_el=$(quType+'_add-'+i);if(add_el!=null){Event.observe(add_el,'click',addChoice);}
var delete_el=$(quType+'_delete-'+i);if(delete_el!=null){Event.observe(delete_el,'click',deleteChoice);}}}
function showChoices(question_el_id){$('choices_'+question_el_id).show();$('open_'+question_el_id).hide();$('close_'+question_el_id).show();}
function hideChoices(question_el_id){$('choices_'+question_el_id).hide();$('open_'+question_el_id).show();$('close_'+question_el_id).hide();}
function showAllChoices(){$$('.choice').each(function(el,i){el.show();});$$('.open_question').each(function(el,i){el.hide();});$$('.close_question').each(function(el,i){el.show();});}
function hideAllChoices(){$$('.choice').each(function(el,i){el.hide();});$$('.close_question').each(function(el,i){el.hide();});$$('.open_question').each(function(el,i){el.show();});}
function enableIncludeAll(question_el_id){$$('.box_'+question_el_id).each(function(el,i){el.checked=true;el.disabled=true;});}
function disableIncludeAll(question_el_id){$$('.box_'+question_el_id).each(function(el,i){el.checked=false;el.disabled=false;});}
function toggleIncludeAll(question_el_id,value){if(value=="1"){enableIncludeAll(question_el_id);}else{disableIncludeAll(question_el_id);}}
function checkAllChoicesIfIncludeAll(question_el_id){if($('filters_all_'+question_el_id).checked){enableIncludeAll(question_el_id);}}
var addPersonaRowToStaticGroup=function(persona_id,persona_name){var hidden_field=$('persona_ids');hidden_field.value=hidden_field.value+" "+persona_id+" ";var tbl=$('profiles_table_body');var numRows=tbl.rows.length;var row=tbl.insertRow(numRows);row.id="p_"+persona_id;var td=Element.extend(tbl.rows[numRows].insertCell(0));td.addClassName('persona');td.innerHTML="<span class='name'>"+persona_name+"</b> <a href='#' onclick='removePersonaAndModifyHiddenValue("+persona_id+")'>X</a></span>";$('persona_name').value='';}
var addPersonaRowToTeam=function(persona_id,persona_name){$('persona_selector').hide();$('persona_display').show();$('persona_display').innerHTML="<div class='miniPersona personaSelect'><span class='name'>Loading Player...</span></div>";new Ajax.Request('/roster_player/display_persona/'+persona_id,{asynchronous:true,evalScripts:true});}
var addPersonaFromAutoCompleteToTeam=function(text_element,li_element_id){var persona_id=$(li_element_id).id.gsub("persona_","");var persona_name=text_element.value;$('persona_name').value="";addPersonaRowToTeam(persona_id,persona_name);}
function removePersonaAndModifyHiddenValueTeam(){$('persona_id').value=""
$('persona_selector').show();$('persona_display').hide();$('player_options').hide();$('persona_display').innerHTML=""}
var addPersonaFromAutoComplete=function(text_element,li_element_id){var persona_id=$(li_element_id).id.gsub("persona_","");var persona_name=text_element.value;addPersonaRowToStaticGroup(persona_id,persona_name);}
function removePersonaAndModifyHiddenValue(persona_id){p_ids=$('persona_ids');p_ids.value=p_ids.value.sub(" "+persona_id+" "," ");removePersona(persona_id);}
function removePersona(persona_id){var row=$('p_'+persona_id);if(row){row.remove();}}
var addPersonaPermissionsRowSearch=function(text_element,li_element_id){var persona_id=$(li_element_id).id.gsub("persona_","");addPersonaPermissionsRow(persona_id);}
var addPersonaPermissionsRow=function(persona_id){var persona_row=$('persona_lb_'+persona_id);if(!persona_row){var page_node_id=$$('.page_node_id')[0].id;var url="/personas/add_persona_row/"+persona_id+"?page_node_id="+page_node_id;new Ajax.Request(url,{method:'get',onSuccess:function(x){$('persona_name').value='';$('submit_div').show();}});}}
var pn_public;function setPageNodeAccess(access){if(pn_public==null){if(access=='public'){pn_public=true;}else{pn_public=false;}}}
function updateViewBoxesForAccessChange(newAccess,oldAccess){$$(".viewBox").each(function(viewBox){if(newAccess=='public'){viewBox.disabled=true;viewBox.checked=true;}else if(oldAccess=='public'){var prefix=viewBox.id.slice(0,viewBox.id.length-2);var writeBox=$(prefix+"rw");var adminBox=$(prefix+"a");if(writeBox&&!writeBox.checked&&adminBox&&!adminBox.checked){if(!viewBox.hasClassName('directReader')){viewBox.checked=false;}
viewBox.disabled=false;}}});}
function updateAnyoneBoxForAccessChange(access){if(access=='public'){$('anyone').checked=true;}else{$('anyone').checked=false;}}
function updateTdClassesAndHeaderImgsForAccessChange(access){if(access=='disabled'){var classToRemove='permissionEnabled';var classToAdd='permissionDisabled';var imgSrcEdit='/app_images/permissions_e_grey.gif';var imgSrcView='/app_images/permissions_v_grey.gif';}else{var classToAdd='permissionEnabled';var classToRemove='permissionDisabled';var imgSrcEdit='/app_images/permissions_e_select.gif';var imgSrcView='/app_images/permissions_v_select.gif';}
$$("."+classToRemove).each(function(td){td.removeClassName(classToRemove);td.addClassName(classToAdd);});$$('.imgToggleEdit').each(function(img){img.src=imgSrcEdit;});$$('.imgToggleView').each(function(img){img.src=imgSrcView;});}
function changeAccess(newAccess,oldAccess){pn_public=newAccess=='public';updateViewBoxesForAccessChange(newAccess,oldAccess);updateAnyoneBoxForAccessChange(newAccess);if(newAccess=='disabled'||oldAccess=='disabled'){updateTdClassesAndHeaderImgsForAccessChange(newAccess);}}
function checkAndDisableRead(persona_id,prefix){var el=$(prefix+'personas_'+persona_id+'_r');if(el){el.removeClassName('directReader');el.disabled=true;el.checked=true;}}
function uncheckAndEnableRead(persona_id,prefix){var el=$(prefix+'personas_'+persona_id+'_r');if(el){el.removeClassName('directReader');}
if(!pn_public&&!$('rw_link_'+persona_id)&&!$('r_link_'+persona_id)){if(el){el.disabled=false;el.checked=false;}}}
function checkAndDisableReadAndWrite(persona_id,prefix){checkAndDisableRead(persona_id,prefix)
var el=$(prefix+'personas_'+persona_id+'_rw');if(el){el.disabled=true;el.checked=true;}}
function uncheckAndEnableReadAndWrite(persona_id,prefix){uncheckAndEnableRead(persona_id,prefix)
var el=$(prefix+'personas_'+persona_id+'_rw');if(!$('rw_link_'+persona_id)){if(el){el.disabled=false;el.checked=false;}}}
function modifyCheckboxes(persona_id,access_type,checked,prefix){var checkbox=$(prefix+'personas_'+persona_id+'_'+access_type);if(checked=='null'){checked=checkbox.checked;}
if(access_type=='a'){if(checked){checkAndDisableReadAndWrite(persona_id,prefix);}else{uncheckAndEnableReadAndWrite(persona_id,prefix);}}else if(access_type=='rw'){if(checked){checkAndDisableRead(persona_id,prefix);}else{uncheckAndEnableRead(persona_id,prefix);}}else if(access_type=='r'){if(checked){checkbox.addClassName('directReader');}else{checkbox.removeClassName('directReader');}}}
function saveHighlight(persona_id){var saved_img=$('p_'+persona_id+'_saved');saved_img.show();new Effect.Fade(saved_img,{duration:3});new Effect.Highlight('p_'+persona_id,{duration:2,startcolor:'#FFF600',endcolor:'#FCCD22',restorecolor:'#FCCD22'});}
function updatePermission(persona_id,page_node_id,access_type){var url="/personas/save_permission/"+persona_id;var checkbox=$('personas_'+persona_id+'_'+access_type);modifyCheckboxes(persona_id,access_type,checkbox.checked,'');var hash=$H();hash.set('page_node_id',page_node_id);hash.set('access',access_type);hash.set('checked',checkbox.checked);new Ajax.Request(url,{method:'post',parameters:hash,onSuccess:function(x){saveHighlight(persona_id)}});}
function sortPermissionsTable(table_id){var table=$(table_id);if(table){var th=table.tHead.rows[0].cells[0];sortColumn(th,table);}}
function loadPersonaPermissions(url){hideIfExists('permissionsScrollPanel');select_tab_force_reload('tab_permissions',url,{progressLoaderId:'personasProgressBar'});}
var tst_calendars=new Hash();var TstCalendar=Class.create({initialize:function(containerId,textId,options){this.containerId=containerId;this.textId=textId;this.calOptions=options||{};if(this.calOptions['selected']!=''){this.calOptions['pagedate']=this.calOptions['selected'].slice(0,2)+this.calOptions['selected'].slice(5,10);}
this.cal=new YAHOO.widget.Calendar(containerId,this.calOptions);this.cal.selectEvent.subscribe(this.handleSelect.bind(this),this.cal,true);Event.observe($(textId),'change',this.updateCal.bind(this));Event.observe(document,'click',this.hideCalendar.bindAsEventListener(this));tst_calendars.set(containerId,this);this.cal.render();},showCalendar:function(event){$(this.containerId).show();},hideCalendar:function(event){if(Event.element(event).id!=this.textId){if($(this.containerId)!=null){$(this.containerId).hide();}}},handleSelect:function(type,args,obj){var dates=args[0];var date=dates[0];var year=date[0],month=date[1],day=date[2];var txtDate=$(this.textId);txtDate.value=month+"/"+day+"/"+year;this.hideCalendar();},dateMatch:function(str){return str.match(/^\d{1,2}\/\d{1,2}\/\d{2,4}$/)!=null;},updateCal:function(){var txtDate=$(this.textId);var txtValue=txtDate.value.strip();if(txtValue.blank()){}else if(this.dateMatch(txtValue)){this.cal.select(txtValue);var selectedDates=this.cal.getSelectedDates();if(selectedDates.length>0){var firstDate=selectedDates[0];this.cal.cfg.setProperty("pagedate",(firstDate.getMonth()+1)+"/"+firstDate.getFullYear());this.cal.render();}else{alert("Cannot select a date before "+this.calOptions['mindate']+" or after "+this.calOptions['maxdate']);}}else{alert("You must enter a valid date in this format mm/dd/yyyy");}}});function createDate(str){var colonIndex=str.indexOf(':');if(str[colonIndex+3]!=' '){str=str.slice(0,colonIndex+3)+' '+str.slice(colonIndex+3,str.length);}
str=str.replace('.','');str=str.replace('.','');var today=new Date();return new Date(today.toDateString()+" "+str);}
var tst_times=new Hash();var TstTime=Class.create({initialize:function(selectId,textId,selectedTime,endTimeId,endTimeSelectId){this.selectId=selectId;this.textId=textId;this.endTimeId=endTimeId;this.endTimeSelectId=endTimeSelectId;if(selectedTime){this.selectOption(selectedTime);if(endTimeSelectId){this.hideOptionsLessThan(selectedTime);}}
Event.observe(document,'click',this.hideTimeSelect.bindAsEventListener(this));tst_times.set(textId,this);},showTimeSelect:function(event){var time_select=$(this.selectId);time_select.disabled=false;time_select.show();},hideTimeSelect:function(event){if(event!=null){var clickedId=Event.element(event).id;}
if(event==null||(clickedId!=this.textId&&clickedId!=this.selectId)){var time_select=$(this.selectId);if(time_select!=null){time_select.disabled=true;time_select.hide();}}},timeSelected:function(){var selectTime=$(this.selectId);var textTime=$(this.textId);textTime.value=selectTime.value;this.hideTimeSelect();var endTime=$(this.endTimeId);if(endTime){endTime.value=selectTime.value;this.hideOptionsLessThan(endTime.value);}},setTimeSelect:function(){var selectTime=$(this.selectId);var textTime=$(this.textId);var textDate=createDate(textTime.value.strip());$A(selectTime.options).each(function(option,index){var optionDate=createDate(option.value);if(Math.abs((textDate-optionDate)/60000)<=8){option.selected=true;throw $break;}});},hideOptionsLessThan:function(timeValue){var endTimeSelect=$(this.endTimeSelectId);if(endTimeSelect){var lessThan=true;$A(endTimeSelect.options).each(function(option){var extendedOption=Element.extend(option);if(option.value==timeValue){option.selected=true;lessThan=false;}else if(lessThan){extendedOption.hide();}else{extendedOption.show();}});}},selectOption:function(timeValue){var timeSelect=$(this.selectId);if(timeSelect){$A(timeSelect.options).each(function(option){if(option.value==timeValue){option.selected=true;throw $break;}});}}});function toggle_recur_interval(interval){if(interval=='none'){$('recurring_rules').hide();$('recurring_range_body').hide();$('week_recurring_rule').hide();$('month_recurring_rule').hide();}else{$('recurring_rules').show();$('recurring_range_body').show();if(interval=='week'){$('week_recurring_rule').show();$('month_recurring_rule').hide();}else if(interval=='month'){$('month_recurring_rule').show();$('week_recurring_rule').hide();}else{$('week_recurring_rule').hide();$('month_recurring_rule').hide();}}
update_interval_string(interval);}
function update_interval_string(){var interval=$F('event_recur_interval');if($F('event_recur_interval_value')=="1"){interval_string=interval;}else{interval_string=interval+'s';}
$('recur_interval').innerHTML=interval_string;}
function toggle_event_recurring_range(range){if(range.checked=='never'){$('recur_until').hide();}else{$('recur_until').show();}}
function get_recur_string(){var output='';var interval=$F('event_recur_interval');var interval_value=$F('event_recur_interval_value');var start_date=$F('event[start_date_time_day]');var start_date=new Date(start_date);switch(interval){case'day':if(interval_value=="1"){output='Daily';}else if(interval_value=="2"){output='Every other day';}else{output='Every '+interval_value+' days'}
break;case'week':if(interval_value=="1"){output='Weekly';}else if(interval_value=="2"){output='Every other week';}else{output='Every '+interval_value+' weeks'}
output+=' on '
var days_of_week=[];if($F('event_recur_week_sunday')==true){days_of_week.push('Sunday')}
if($F('event_recur_week_monday')==true){days_of_week.push('Monday')}
if($F('event_recur_week_tuesday')==true){days_of_week.push('Tuesday')}
if($F('event_recur_week_wednesday')==true){days_of_week.push('Wednesday')}
if($F('event_recur_week_thursday')==true){days_of_week.push('Thursday')}
if($F('event_recur_week_friday')==true){days_of_week.push('Friday')}
if($F('event_recur_week_saturday')==true){days_of_week.push('Saturday')}
output+=days_of_week.join(', ')
break;case'month':if(interval_value=="1"){output='Monthly';}else if(interval_value=="2"){output='Every other month';}else{output='Every '+interval_value+' months'}
var day_of_month=$F('event_recur_month_repeat_by_day_of_month');if(day_of_month=='day_of_month'){output+=' on the '+start_date.format("dS");}else{var week_num_string=''
var dim=(((start_date.getDate()-1)/7)|0)+1
week_num=(dim<5)?dim:-1;switch(week_num){case 1:week_num_string='first'
break;case 2:week_num_string='second'
break;case 3:week_num_string='third'
break;case 4:week_num_string='fourth'
break;default:week_num_string='last'
break;}
output+=' on the '+week_num_string+' '+start_date.format("dddd");}
break;case'year':if(interval_value=="1"){output='Yearly';}else if(interval_value=="2"){output='Every other year';}else{output='Every '+interval_value+' years'}
output+=' on '+start_date.format("mmmm dS");break;default:output=''}
var recur_range=$('recurring_range_until');if(recur_range.checked){var end_date=$F('event[recur_end_date_day]');var end_date=new Date(end_date);output+=', until '+end_date.format("mmm d, yyyy");}
$('human_readable_recur_string').innerHTML=output;}
var PaginatedScroller=Class.create({initialize:function(options){this.currentPage=1;this.url=options.url;this.morePages=options.morePages;this.ajaxOptions=options.ajaxOptions||{};this.ajaxRequestMethod=options.ajaxRequestMethod||"get"
this.distanceFromBottom=options.scrollDistanceFromBottom||150;this.sortableTableName=options.sortableTableName;this.idPrefix=options.idPrefix||'';this.loadAll=false;this.paginationFailed=options.paginationFailed||function(){try{$(this.idPrefix+'paginated_collection_loading').hide();$(this.idPrefix+'paginated_collection_error').show();}catch(ex){}};this.paginationComplete=options.paginationComplete||function(){try{$(this.idPrefix+'paginated_collection_loading').hide();var loading_all=$(this.idPrefix+'paginated_collection_loading_all');if(loading_all!=null){loading_all.hide();}
var load_all_link=$(this.idPrefix+'paginated_collection_load_all_link');if(load_all_link!=null){load_all_link.hide();}
if(this.sortableTableName!=null){makeTableSortableAfterWindowLoad($(this.sortableTableName));}}catch(ex){}};if(options.setupLater){}else{this.setup();}},setup:function(){if(this.sortableTableName!=null){$(this.sortableTableName).tBodies[0].id=this.sortableTableName+"_tbody";}
this.onPaginate=this._paginatedRequest.bind(this);if(this.morePages){this.onPaginate.delay(0.250);}else{this.paginationComplete();}},onePageSetup:function(){if(this.sortableTableName!=null){var sortableTable=$(this.sortableTableName);if(sortableTable){sortableTable.addClassName('sortable');}}
hideIfExists(this.idPrefix+'paginated_collection_loading');},loadAllPages:function(){$(this.idPrefix+'paginated_collection_load_all_link').hide();$(this.idPrefix+'paginated_collection_loading_all').show();this.loadAll=true;},nearBottomOfPage:function(){return Math.max(document.body.scrollHeight,document.body.offsetHeight)-(document.viewport.getScrollOffsets()[1]+document.viewport.getHeight())<this.distanceFromBottom;},_paginatedRequest:function(){if(this.loadAll||this.nearBottomOfPage()){this.currentPage++;new Ajax.Request(this.url,{asynchronous:true,evalScripts:true,parameters:$H({page:this.currentPage}).merge(this.ajaxOptions),method:this.ajaxRequestMethod,onFailure:this.paginationFailed});}else{this.onPaginate.delay(0.250);}}});var dateFormat=function(){var token=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,timezone=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,timezoneClip=/[^-+\dA-Z]/g,pad=function(val,len){val=String(val);len=len||2;while(val.length<len)val="0"+val;return val;};return function(date,mask,utc){var dF=dateFormat;if(arguments.length==1&&Object.prototype.toString.call(date)=="[object String]"&&!/\d/.test(date)){mask=date;date=undefined;}
date=date?new Date(date):new Date;if(isNaN(date))throw SyntaxError("invalid date");mask=String(dF.masks[mask]||mask||dF.masks["default"]);if(mask.slice(0,4)=="UTC:"){mask=mask.slice(4);utc=true;}
var _=utc?"getUTC":"get",d=date[_+"Date"](),D=date[_+"Day"](),m=date[_+"Month"](),y=date[_+"FullYear"](),H=date[_+"Hours"](),M=date[_+"Minutes"](),s=date[_+"Seconds"](),L=date[_+"Milliseconds"](),o=utc?0:date.getTimezoneOffset(),flags={d:d,dd:pad(d),ddd:dF.i18n.dayNames[D],dddd:dF.i18n.dayNames[D+7],m:m+1,mm:pad(m+1),mmm:dF.i18n.monthNames[m],mmmm:dF.i18n.monthNames[m+12],yy:String(y).slice(2),yyyy:y,h:H%12||12,hh:pad(H%12||12),H:H,HH:pad(H),M:M,MM:pad(M),s:s,ss:pad(s),l:pad(L,3),L:pad(L>99?Math.round(L/10):L),t:H<12?"a":"p",tt:H<12?"am":"pm",T:H<12?"A":"P",TT:H<12?"AM":"PM",Z:utc?"UTC":(String(date).match(timezone)||[""]).pop().replace(timezoneClip,""),o:(o>0?"-":"+")+pad(Math.floor(Math.abs(o)/60)*100+Math.abs(o)%60,4),S:["th","st","nd","rd"][d%10>3?0:(d%100-d%10!=10)*d%10]};return mask.replace(token,function($0){return $0 in flags?flags[$0]:$0.slice(1,$0.length-1);});};}();dateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};dateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};Date.prototype.format=function(mask,utc){return dateFormat(this,mask,utc);};