Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsDate=true;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")
Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}
Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")
Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}
Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));if(/MSIE (\d+\.\d+);/.test(navigator.userAgent)){Calendar.ie_version=new Number(RegExp.$1);}
Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)
SL=el.scrollLeft;if(is_div&&el.scrollTop)
ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}
return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}
while(related){if(related==el){return true;}
related=related.parentNode;}
return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}
var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}
el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))
f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)
f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}
return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}
if(typeof parent!="undefined"){parent.appendChild(el);}
return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}
return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}
return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}
var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}
if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}
var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)
s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")
mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}
s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}
var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}
if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}
cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}
yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}
if(show){var s=yc.style;s.display="block";if(cd.navtype<0)
s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")
ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}
s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}
if(cal.timeout){clearTimeout(cal.timeout);}
var el=cal.activeDiv;if(!el){return false;}
var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}
var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}}
with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}
var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))
Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}
ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else
dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)
			if (range[i] == current)
break;while(count-->0)
if(decrease){if(--i<0)
i=range.length-1;}else if(++i>=range.length)
i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}
var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}
Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}
var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}
Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}
return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}
var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}
cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}
cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}
cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}
var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else
addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}
if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}
return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}
if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}
el.calendar.tooltips.innerHTML=el.ttip;}
if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}
return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)
return false;removeClass(el,"hilite");if(el.caldate)
removeClass(el.parentNode,"rowhilite");if(el.calendar){if(this.showsTime&&!this.showsDate){el.calendar.tooltips.innerHTML=_TT["SEL_TIME"];}
else{el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];}}
return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}
cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)
cal._toggleMultipleDate(new Date(date));else
newdate=!el.disabled;if(other_month)
cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}
date=new Date(cal.date);if(el.navtype==0)
date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}
date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+
					"If you know this language and you feel generous please update\n" +
					"the corresponding file in \"lang\" subdir to match calendar-en.js\n" +
					"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n" +
					"Thank you!\n" +
"http://dynarch.com/mishoo/calendar.epl\n";}
alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}
break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}
break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}
break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}
break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)
				if (range[i] == current)
break;if(ev&&ev.shiftKey){if(--i<0)
i=range.length-1;}else if(++i>=range.length)
i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}
break;}
if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)
newdate=closing=true;}
if(newdate){ev&&cal.callHandler();}
if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}
this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}
div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)
cell.className+=" nav";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200).ttip=Calendar._TT["CLOSE"];}
row=Calendar.createElement("tr",thead);row.className="headrow";if(this.showsDate){this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}
for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}
this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();}
var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;if(this.showsDate){for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}
for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}}
if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||"&nbsp;";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")
part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}
Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)
AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else
cell.innerHTML="&nbsp;";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}
H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)
h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)
h=0;}
var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}
var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";if(this.showsDate){cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);}
else{cell=hh(Calendar._TT["SEL_TIME"],this.weekNumbers?8:7,300);}
cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}
this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}
div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}
this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar._keyEvent=function(ev){var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)
return false;(Calendar.is_ie)&&(ev=window.event);var act=(Calendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0)
ne=cal.ar_days[y][x];else{x=6;K=38;continue;}
break;case 38:if(--y>=0)
ne=cal.ar_days[y][x];else{prevMonth();setVars();}
break;case 39:if(++x<7)
ne=cal.ar_days[y][x];else{x=0;K=40;continue;}
break;case 40:if(++y<cal.ar_days.length)
ne=cal.ar_days[y][x];else{nextMonth();setVars();}
break;}
break;}
if(ne){if(!ne.disabled)
Calendar.cellClick(ne);else if(prev)
prevMonth();else
nextMonth();}}
break;case 13:if(act)
Calendar.cellClick(cal.currentDateEl,ev);break;default:return false;}
return Calendar.stopEvent(ev);};Calendar.prototype._init=function(firstDayOfWeek,date){if(this.showsDate){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}
this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)
day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}
row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML="&nbsp;";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}
cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)
dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)
cell.title=toolTip;}
if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))
cell.disabled=true;cell.className+=" "+status;}}
if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}
if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}
					if (weekend.indexOf(wday.toString()) != -1)
cell.className+=cell.otherMonth?" oweekend":" weekend";}}
			if (!(hasdays || this.showsOtherMonths))
row.className="emptyrow";}
this.title.innerHTML=Calendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();}
};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)
continue;if(cell)
cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}
this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}
var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}
this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar);}
this.hideShowCovered();};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar);}
this.element.style.display="none";this.hidden=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}
function fixPosition(box){if(box.x<0)
box.x=0;if(box.y<0)
box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);if(Calendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft;}else{br.y+=window.scrollY;br.x+=window.scrollX;}
var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}
switch(valign){case"T":p.y-=h;break;case"B":p.y+=el.offsetHeight;break;case"C":p.y+=(el.offsetHeight-h)/2;break;case"t":p.y+=el.offsetHeight-h;break;case"b":break;}
switch(halign){case"L":p.x-=w;break;case"R":p.x+=el.offsetWidth;break;case"C":p.x+=(el.offsetWidth-w)/2;break;case"l":p.x+=el.offsetWidth-w;break;case"r":break;}
p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)
setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10);else
Calendar.continuation_for_the_fucking_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)
fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera&&!Calendar.ie_version||Calendar.ie_version>7)
return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)
value=document.defaultView.getComputedStyle(obj,"").getPropertyValue("visibility");else
value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else
value='';}
return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}
cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}
cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}
if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}
cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}
this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}
var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])
continue;switch(b[i]){case"%d":case"%e":d=parseInt(a[i],10);break;case"%m":m=parseInt(a[i],10)-1;break;case"%Y":case"%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case"%b":case"%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}
break;case"%H":case"%I":case"%k":case"%l":hr=parseInt(a[i],10);break;case"%P":case"%p":if(/pm/i.test(a[i])&&hr<12)
hr+=12;else if(/am/i.test(a[i])&&hr>=12)
hr-=12;break;case"%M":min=parseInt(a[i],10);break;}}
if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)
return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}
if(t!=-1){if(m!=-1){d=m+1;}
m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}
	if (y == 0)
y=today.getFullYear();if(m!=-1&&d!=0)
return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}
if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)
ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)
return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}
return str;};window._dynarch_popupCalendar=null;Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsDate",true);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}
if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false;}
function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")
p.inputField.onchange();}
		if (update && p.displayArea)
p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")
p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")
p.flatCallback(cal);}
		if (update && p.singleClick && cal.dateClicked)
cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")
params.flat=document.getElementById(params.flat);if(!params.flat){return false;}
var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsDate=params.showsDate;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}
if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}
cal.create(params.flat);cal.show();return false;}
var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)
params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&&params.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsDate=params.showsDate;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)
cal.setDate(params.date);cal.hide();}
if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}
cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)
cal.create();cal.refresh();if(!params.position)
cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else
cal.showAt(params.position[0],params.position[1]);return false;};return cal;};Calendar._DN=new Array
("Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag","Zondag");Calendar._SDN=new Array
("Zo","Ma","Di","Wo","Do","Vri","Za","Zo");Calendar._SDN_len=2;Calendar._FD=0;Calendar._MN=new Array
("Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December");Calendar._SMN=new Array
("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Dec");Calendar._TT={};Calendar._TT["INFO"]="Info";Calendar._TT["ABOUT"]="Datum selectie:\n"+
"- Gebruik de \xab \xbb knoppen om een jaar te selecteren\n" +
"- Gebruik de " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knoppen om een maand te selecteren\n" +
"- Houd de muis ingedrukt op de genoemde knoppen voor een snellere selectie.";Calendar._TT["ABOUT_TIME"]="\n\n"+
"Tijd selectie:\n" +
"- Klik op een willekeurig onderdeel van het tijd gedeelte om het te verhogen\n" +
"- of Shift-klik om het te verlagen\n" +
"- of klik en sleep voor een snellere selectie.";Calendar._TT["PREV_YEAR"]="Vorig jaar (ingedrukt voor menu)";Calendar._TT["PREV_MONTH"]="Vorige maand (ingedrukt voor menu)";Calendar._TT["GO_TODAY"]="Ga naar Vandaag";Calendar._TT["NEXT_MONTH"]="Volgende maand (ingedrukt voor menu)";Calendar._TT["NEXT_YEAR"]="Volgend jaar (ingedrukt voor menu)";Calendar._TT["SEL_DATE"]="Selecteer datum";Calendar._TT["SEL_TIME"]="Selecteer tijd";Calendar._TT["DRAG_TO_MOVE"]="Klik en sleep om te verplaatsen";Calendar._TT["PART_TODAY"]=" (vandaag)";Calendar._TT["DAY_FIRST"]="Toon %s eerst";Calendar._TT["WEEKEND"]="0,6";Calendar._TT["CLOSE"]="Sluiten";Calendar._TT["TODAY"]="(vandaag)";Calendar._TT["TIME_PART"]="(Shift-)Klik of sleep om de waarde te veranderen";Calendar._TT["DEF_DATE_FORMAT"]="%d-%m-%Y";Calendar._TT["TT_DATE_FORMAT"]="%a, %e %b %Y";Calendar._TT["WK"]="wk";Calendar._TT["TIME"]="Tijd:";var WMContextMenu=Class.create();WMContextMenu.prototype={initialize:function(id){this.contextMenu=$(id);this.contextMenu.oncontextmenu=this.cancelDefault.bindAsEventListener(this);this.hoverActive=true;Element.hide(this.contextMenu);},registerElement:function(element){element.oncontextmenu=this.show.bindAsEventListener(this);},populate:function(hash){if(this.title==null){this.contextMenu.innerHTML="";}
else{this.contextMenu.innerHTML="<h1>"+this.title+"</h1>";}
if(this.hoverActive){for(var i in hash){var link=document.createElement("a");link.href=hash[i];var li=document.createElement("li");var textNode=document.createTextNode(i);li.appendChild(textNode);link.appendChild(li);this.contextMenu.appendChild(link);}}},setTitle:function(title){this.title=title;},setHoverActive:function(bool){this.hoverActive=bool;},show:function(e){if(!e.shiftKey){var posX=Event.pointerX(e)-1;var posY=Event.pointerY(e)-1;Element.setStyle(this.contextMenu,{"position":"absolute","top":posY+"px","left":posX+"px","display":"block"});Event.observe(document,"mousemove",this.hide.bindAsEventListener(this));Event.stop(e);}},hide:function(e){var posX=Event.pointerX(e);var posY=Event.pointerY(e);if(Position.within(this.contextMenu,posX,posY)==false){Element.hide(this.contextMenu);}},cancelDefault:function(e){if(!e.shiftKey){Event.stop(e);}},cancelHide:function(e){Element.show(this.contextMenu);}};var XHTMLGenerator=Class.create();XHTMLGenerator.prototype={initialize:function(element,language,encoding,namespaces){if(!(element=$(element)))
throw Error("element has to be a html node object or the document object");this.currentNode=element;this.language=this.checkLanguageCode(language)||"nl-NL";this.encoding=encoding||"UTF-8";this.namespaces=namespaces||{"xmlns":"http://www.w3.org/1999/xhtml"};this.attributeDefaults=this.getAttributeDefaults();this.nodeStack=new Array();this.xhtml="";$A(this.currentNode.childNodes).each(this.handleNode.bind(this));},getAttributeDefaults:function(){return{"applet":{"width":"100px","height":"100px"},"area":{"id":"generate-id()","alt":""},"basefont":{"size":"12px"},"bdo":{"dir":"ltr"},"form":{"action":"/"},"img":{"alt":"","src":""},"map":{"id":"generate-id()"},"meta":{"content":""},"optgroup":{"label":""},"param":{"name":""},"script":{"type":""},"style":{"type":""},"textarea":{"rows":"3","cols":"50"}};},getRandomId:function(){return"id"+Math.floor(Math.random()*100000001);},handleNode:function(node){this.currentNode=node;switch(this.currentNode.nodeType){case 1:this.handleElement();break;case 3:this.handleText();break;case 8:this.handleComment();break;default:break;}},handleElement:function(){this.currentNodeName=String(this.currentNode.tagName).toLowerCase();if(this.doNotHandle())
return;if(this.currentNodeName=='html')
this.handleHTMLElement();this.xhtml+='<'+this.currentNodeName;this.addMissingRequiredAttributes();$A(this.currentNode.attributes).each(this.handleAttribute.bind(this));if(this.currentNode.canHaveChildren||this.currentNode.hasChildNodes())
this.handleChildren();else
this.handleChildless();},doNotHandle:function(){if(this.currentNodeName=='')
return true;else if(this.currentNodeName=='meta'&&String(this.currentNode.name).toLowerCase()=='generator')
return true;else if(this.currentNodeName=='!')
return true;else
return false;},handleHTMLElement:function(){if(this.currentNodeName=='html'){this.xhtml+='<?xml version="1.0" encoding="'+this.encoding+'"?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n';if(!this.currentNode.getAttribute('lang'))
this.currentNode.setAttribute('lang',this.language);if(!this.currentNode.getAttribute('xml:lang'))
this.currentNode.setAttribute('xml:lang',this.language);$H(this.namespaces).each(this.addNamespaces.bind(this));return false;}},addNamespaces:function(namespace){this.currentNode.setAttribute(namespace.key,namespace.value);},addMissingRequiredAttributes:function(){$H(this.attributeDefaults[this.currentNodeName]).each(function(attribute){if(!this.currentNode.getAttribute(attribute.key)){if(attribute.value=="generate-id()")
this.currentNode.setAttribute(attribute.key,this.getRandomId());else
this.currentNode.setAttribute(attribute.key,attribute.value);}}.bind(this));},handleChildren:function(){this.xhtml+='>';this.nodeStackPush(this.currentNode);$A(this.currentNode.childNodes).each(this.handleNode.bind(this));this.currentNode=this.nodeStackPop();this.currentNodeName=String(this.currentNode.tagName).toLowerCase();this.xhtml+='</'+this.currentNodeName+'>';},handleChildless:function(){if(this.currentNodeName=='style'||this.currentNodeName=='title'||this.currentNodeName=='script')
this.childlessTextContent();else
this.xhtml+=' />';},childlessTextContent:function(){this.xhtml+='>';if(this.currentNodeName=='script')
nodeContent=this.currentNode.text;else
nodeContent=this.currentNode.innerHTML;if(this.currentNodeName=='style')
nodeContent=String(nodeContent).replace(/[\n]+/g,'\n');this.xhtml+=nodeContent+'</'+this.currentNodeName+'>';},nodeStackPush:function(node){this.nodeStack.push(node);},nodeStackPop:function(node){return this.nodeStack.pop();},handleText:function(){if(this.currentNode.nodeValue=='\n'){return;}
this.xhtml+=String(this.currentNode.nodeValue).replace(/\n{2,}/g,"\n").replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\u00A0/g,"&nbsp;");},handleComment:function(){if(new RegExp().compile("^<![^-]").exec(this.currentNode.innerHTML))
return;comment=this.currentNode.nodeValue.replace(/--/g,"__");if(new RegExp().compile("-$").exec(comment))
comment+=" ";this.xhtml+="<!--"+comment+"-->";},handleAttribute:function(attribute){var attributeName=attribute.nodeName.toLowerCase();if(!attribute.specified&&(attributeName!='selected'||!this.currentNode.selected)&&(attributeName!='style'||this.currentNode.style.cssText=='')&&attributeName!='value')
return;if(attributeName=='_moz_dirty'||attributeName=='_moz_resizing'||this.currentNodeName=='br'&&attributeName=='type'&&this.currentNode.getAttribute('type')=='_moz')
return;attributeOk=true;switch(attributeName){case"style":attributeValue=this.currentNode.style.cssText;break;case"class":attributeValue=this.currentNode.className;break;case"http-equiv":attributeValue=this.currentNode.httpEquiv;break;case"noshade":case"checked":case"selected":case"multiple":case"nowrap":case"disabled":attributeValue=attributeName;break;default:try{attributeValue=this.currentNode.getAttribute(attributeName,2);}catch(e){attributeOk=false;}
break;}
		if (attributeOk)
this.xhtml+=' '+attributeName+'="'+String(attributeValue).replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;")+'"';},result:function(){return this.xhtml;},checkLanguageCode:function(language){if(new RegExp().compile("^[a-z]{2}-[A-Z]{2}$").exec(language))
return language;else
return;}};if(window.Element&&window.XHTMLGenerator){Object.extend(Element,{toXHTML:function(element,language,encoding,namespaces){return new XHTMLGenerator(element,language,encoding,namespaces).result();}});}
String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase();}}
return(color.length==7?color:(arguments[0]||this));}
Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''));}).flatten().join('');}
Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''));}).flatten().join('');}
Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+'em'});if(navigator.appVersion.indexOf('AppleWebKit')>0)window.scrollBy(0,0);return element;}
Element.getOpacity=function(element){return $(element).getStyle('opacity');}
Element.setOpacity=function(element,value){}
Element.getInlineOpacity=function(element){return $(element).style.opacity||'';}
Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}};Array.prototype.call=function(){var args=arguments;this.each(function(f){f.apply(this,args)});}
var Effect={_elementDoesNotExistError:{name:'ElementDoesNotExistError',message:'The specified DOM element does not exist, but is required for this effect to operate'},tagifyText:function(element){if(typeof Builder=='undefined')
throw("Effect.tagifyText requires including script.aculo.us' builder.js library");var tagifyStyle='position:relative';if(/MSIE/.test(navigator.userAgent)&&!window.opera)tagifyStyle+=';zoom:1';element=$(element);$A(element.childNodes).each(function(child){if(child.nodeType==3){child.nodeValue.toArray().each(function(character){element.insertBefore(Builder.node('span',{style:tagifyStyle},character==' '?String.fromCharCode(160):character),child);});Element.remove(child);}});},multiple:function(element,effect){var elements;if(((typeof element=='object')||(typeof element=='function'))&&(element.length))
elements=element;else
elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}));});},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle:function(element,effect){element=$(element);effect=(effect||'appear').toLowerCase();var options=Object.extend({queue:{position:'end',scope:(element.id||'global'),limit:1}},arguments[2]||{});Effect[element.visible()?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,options);}};var Effect2=Effect;Effect.Transitions={linear:Prototype.K,sinoidal:function(pos){return(-Math.cos(pos*Math.PI)/2)+0.5;},reverse:function(pos){return 1-pos;},flicker:function(pos){return((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;},pulse:function(pos,pulses){pulses=pulses||5;return(Math.round((pos%(1/pulses))*pulses)==0?((pos*pulses*2)-Math.floor(pos*pulses*2)):1-((pos*pulses*2)-Math.floor(pos*pulses*2)));},none:function(pos){return 0;},full:function(pos){return 1;}};Effect.ScopedQueue=Class.create();Object.extend(Object.extend(Effect.ScopedQueue.prototype,Enumerable),{initialize:function(){this.effects=[];this.interval=null;},_each:function(iterator){this.effects._each(iterator);},add:function(effect){var timestamp=new Date().getTime();var position=(typeof effect.options.queue=='string')?effect.options.queue:effect.options.queue.position;switch(position){case'front':this.effects.findAll(function(e){return e.state=='idle'}).each(function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn;});break;case'with-last':timestamp=this.effects.pluck('startOn').max()||timestamp;break;case'end':timestamp=this.effects.pluck('finishOn').max()||timestamp;break;}
effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length<effect.options.queue.limit))
this.effects.push(effect);if(!this.interval)
this.interval=setInterval(this.loop.bind(this),15);},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var timePos=new Date().getTime();for(var i=0,len=this.effects.length;i<len;i++)
if(this.effects[i])this.effects[i].loop(timePos);}});Effect.Queues={instances:$H(),get:function(queueName){if(typeof queueName!='string')return queueName;if(!this.instances[queueName])
this.instances[queueName]=new Effect.ScopedQueue();return this.instances[queueName];}}
Effect.Queue=Effect.Queues.get('global');Effect.DefaultOptions={transition:Effect.Transitions.sinoidal,duration:1.0,fps:60.0,sync:false,from:0.0,to:1.0,delay:0.0,queue:'parallel'}
Effect.Base=function(){};Effect.Base.prototype={position:null,start:function(options){this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state='idle';this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.event('beforeStart');if(!this.options.sync)
Effect.Queues.get(typeof this.options.queue=='string'?'global':this.options.queue.scope).add(this);},loop:function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1.0);this.cancel();this.event('beforeFinish');if(this.finish)this.finish();this.event('afterFinish');return;}
var pos=(timePos-this.startOn)/(this.finishOn-this.startOn);var frame=Math.round(pos*this.options.fps*this.options.duration);if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame;}}},render:function(pos){if(this.state=='idle'){this.state='running';this.event('beforeSetup');if(this.setup)this.setup();this.event('afterSetup');}
if(this.state=='running'){if(this.options.transition)pos=this.options.transition(pos);pos*=(this.options.to-this.options.from);pos+=this.options.from;this.position=pos;this.event('beforeUpdate');if(this.update)this.update(pos);this.event('afterUpdate');}},cancel:function(){if(!this.options.sync)
Effect.Queues.get(typeof this.options.queue=='string'?'global':this.options.queue.scope).remove(this);this.state='finished';},event:function(eventName){if(this.options[eventName+'Internal'])this.options[eventName+'Internal'](this);if(this.options[eventName])this.options[eventName](this);},inspect:function(){var data=$H();for(property in this)
if(typeof this[property]!='function')data[property]=this[property];return'#<Effect:'+data.inspect()+',options:'+$H(this.options).inspect()+'>';}}
Effect.Parallel=Class.create();Object.extend(Object.extend(Effect.Parallel.prototype,Effect.Base.prototype),{initialize:function(effects){this.effects=effects||[];this.start(arguments[1]);},update:function(position){this.effects.invoke('render',position);},finish:function(position){this.effects.each(function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish)effect.finish(position);effect.event('afterFinish');});}});Effect.Event=Class.create();Object.extend(Object.extend(Effect.Event.prototype,Effect.Base.prototype),{initialize:function(){var options=Object.extend({duration:0},arguments[0]||{});this.start(options);},update:Prototype.emptyFunction});Effect.Opacity=Class.create();Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);if(/MSIE/.test(navigator.userAgent)&&!window.opera&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1]||{});this.start(options);},update:function(position){this.element.setOpacity(position);}});Effect.Move=Class.create();Object.extend(Object.extend(Effect.Move.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({x:0,y:0,mode:'relative'},arguments[1]||{});this.start(options);},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle('left')||'0');this.originalTop=parseFloat(this.element.getStyle('top')||'0');if(this.options.mode=='absolute'){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop;}},update:function(position){this.element.setStyle({left:Math.round(this.options.x*position+this.originalLeft)+'px',top:Math.round(this.options.y*position+this.originalTop)+'px'});}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}));};Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:function(element,percent){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});this.start(options);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle('position');this.originalStyle={};['top','left','width','height','fontSize'].each(function(k){this.originalStyle[k]=this.element.style[k];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=this.element.getStyle('font-size')||'100%';['em','px','%','pt'].each(function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box')
this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))
this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)
this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];},update:function(position){var currentScale=(this.options.scaleFrom/100.0)+(this.factor*position);if(this.options.scaleContent&&this.fontSize)
this.element.setStyle({fontSize:this.fontSize*currentScale+this.fontSizeType});this.setDimensions(this.dims[0]*currentScale,this.dims[1]*currentScale);},finish:function(position){if(this.restoreAfterFinish)this.element.setStyle(this.originalStyle);},setDimensions:function(height,width){var d={};if(this.options.scaleX)d.width=Math.round(width)+'px';if(this.options.scaleY)d.height=Math.round(height)+'px';if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY)d.top=this.originalTop-topd+'px';if(this.options.scaleX)d.left=this.originalLeft-leftd+'px';}else{if(this.options.scaleY)d.top=-topd+'px';if(this.options.scaleX)d.left=-leftd+'px';}}
this.element.setStyle(d);}});Effect.Highlight=Class.create();Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({startcolor:'#ffff99'},arguments[1]||{});this.start(options);},setup:function(){if(this.element.getStyle('display')=='none'){this.cancel();return;}
this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle('background-image');this.element.setStyle({backgroundImage:'none'});}
    if(!this.options.endcolor)
this.options.endcolor=this.element.getStyle('background-color').parseColor('#ffffff');if(!this.options.restorecolor)
this.options.restorecolor=this.element.getStyle('background-color');this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]}.bind(this));},update:function(position){this.element.setStyle({backgroundColor:$R(0,2).inject('#',function(m,v,i){return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart());}.bind(this))});},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));}});Effect.ScrollTo=Class.create();Object.extend(Object.extend(Effect.ScrollTo.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);this.start(arguments[1]||{});},setup:function(){Position.prepare();var offsets=Position.cumulativeOffset(this.element);if(this.options.offset)offsets[1]+=this.options.offset;var max=window.innerHeight?window.height-window.innerHeight:document.body.scrollHeight-
(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight);this.scrollStart=Position.deltaY;this.delta=(offsets[1]>max?max:offsets[1])-this.scrollStart;},update:function(position){Position.prepare();window.scrollTo(Position.deltaX,this.scrollStart+(position*this.delta));}});Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1.0,to:0.0,afterFinishInternal:function(effect){if(effect.options.to!=0)return;effect.element.hide().setStyle({opacity:oldOpacity});}},arguments[1]||{});return new Effect.Opacity(element,options);}
Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle('display')=='none'?0.0:element.getOpacity()||0.0),to:1.0,afterFinishInternal:function(effect){effect.element.forceRerendering();},beforeSetup:function(effect){effect.element.setOpacity(effect.options.from).show();}},arguments[1]||{});return new Effect.Opacity(element,options);}
Effect.Puff=function(element){element=$(element);var oldStyle={opacity:element.getInlineOpacity(),position:element.getStyle('position'),top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};return new Effect.Parallel([new Effect.Scale(element,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:1.0,beforeSetupInternal:function(effect){Position.absolutize(effect.effects[0].element)},afterFinishInternal:function(effect){effect.effects[0].element.hide().setStyle(oldStyle);}},arguments[1]||{}));}
Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(effect){effect.element.hide().undoClipping();}},arguments[1]||{}));}
Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makeClipping().setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.element.undoClipping();}},arguments[1]||{}));}
Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({opacity:oldOpacity});}})}},arguments[1]||{}));}
Effect.DropOut=function(element){element=$(element);var oldStyle={top:element.getStyle('top'),left:element.getStyle('left'),opacity:element.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(element,{x:0,y:100,sync:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:0.5,beforeSetup:function(effect){effect.effects[0].element.makePositioned();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);}},arguments[1]||{}));}
Effect.Shake=function(element){element=$(element);var oldStyle={top:element.getStyle('top'),left:element.getStyle('left')};return new Effect.Move(element,{x:20,y:0,duration:0.05,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-20,y:0,duration:0.05,afterFinishInternal:function(effect){effect.element.undoPositioned().setStyle(oldStyle);}})}})}})}})}})}});}
Effect.SlideDown=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().setStyle({height:'0px'}).show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));}
Effect.SlideUp=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:'box',scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({bottom:oldInnerBottom});effect.element.down().undoPositioned();}},arguments[1]||{}));}
Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping();}});}
Effect.Grow=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case'top-left':initialMoveX=initialMoveY=moveX=moveY=0;break;case'top-right':initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case'bottom-left':initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case'bottom-right':initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case'center':initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break;}
return new Effect.Move(element,{x:initialMoveX,y:initialMoveY,duration:0.01,beforeSetup:function(effect){effect.element.hide().makeClipping().makePositioned();},afterFinishInternal:function(effect){new Effect.Parallel([new Effect.Opacity(effect.element,{sync:true,to:1.0,from:0.0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition}),new Effect.Scale(effect.element,100,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(effect){effect.effects[0].element.setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);}},options))}});}
Effect.Shrink=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var moveX,moveY;switch(options.direction){case'top-left':moveX=moveY=0;break;case'top-right':moveX=dims.width;moveY=0;break;case'bottom-left':moveX=0;moveY=dims.height;break;case'bottom-right':moveX=dims.width;moveY=dims.height;break;case'center':moveX=dims.width/2;moveY=dims.height/2;break;}
return new Effect.Parallel([new Effect.Opacity(element,{sync:true,to:0.0,from:1.0,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1:0,{sync:true,transition:options.scaleTransition,restoreAfterFinish:true}),new Effect.Move(element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition})],Object.extend({beforeStartInternal:function(effect){effect.effects[0].element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle);}},options));}
Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{};var oldOpacity=element.getInlineOpacity();var transition=options.transition||Effect.Transitions.sinoidal;var reverser=function(pos){return transition(1-Effect.Transitions.pulse(pos,options.pulses))};reverser.bind(transition);return new Effect.Opacity(element,Object.extend(Object.extend({duration:2.0,from:0,afterFinishInternal:function(effect){effect.element.setStyle({opacity:oldOpacity});}},options),{transition:reverser}));}
Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};element.makeClipping();return new Effect.Scale(element,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(effect){new Effect.Scale(element,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(effect){effect.element.hide().undoClipping().setStyle(oldStyle);}});}},arguments[1]||{}));};Effect.Morph=Class.create();Object.extend(Object.extend(Effect.Morph.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({style:{}},arguments[1]||{});if(typeof options.style=='string'){if(options.style.indexOf(':')==-1){var cssText='',selector='.'+options.style;$A(document.styleSheets).reverse().each(function(styleSheet){if(styleSheet.cssRules)cssRules=styleSheet.cssRules;else if(styleSheet.rules)cssRules=styleSheet.rules;$A(cssRules).reverse().each(function(rule){if(selector==rule.selectorText){cssText=rule.style.cssText;throw $break;}});if(cssText)throw $break;});this.style=cssText.parseStyle();options.afterFinishInternal=function(effect){effect.element.addClassName(effect.options.style);effect.transforms.each(function(transform){if(transform.style!='opacity')
effect.element.style[transform.style.camelize()]='';});}}else this.style=options.style.parseStyle();}else this.style=$H(options.style)
this.start(options);},setup:function(){function parseColor(color){if(!color||['rgba(0, 0, 0, 0)','transparent'].include(color))color='#ffffff';color=color.parseColor();return $R(0,2).map(function(i){return parseInt(color.slice(i*2+1,i*2+3),16)});}
this.transforms=this.style.map(function(pair){var property=pair[0].underscore().dasherize(),value=pair[1],unit=null;if(value.parseColor('#zzzzzz')!='#zzzzzz'){value=value.parseColor();unit='color';}else if(property=='opacity'){value=parseFloat(value);if(/MSIE/.test(navigator.userAgent)&&!window.opera&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});}else if(Element.CSS_LENGTH.test(value))
var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/),value=parseFloat(components[1]),unit=(components.length==3)?components[2]:null;var originalValue=this.element.getStyle(property);return $H({style:property,originalValue:unit=='color'?parseColor(originalValue):parseFloat(originalValue||0),targetValue:unit=='color'?parseColor(value):value,unit:unit});}.bind(this)).reject(function(transform){return((transform.originalValue==transform.targetValue)||(transform.unit!='color'&&(isNaN(transform.originalValue)||isNaN(transform.targetValue))))});},update:function(position){var style=$H(),value=null;this.transforms.each(function(transform){value=transform.unit=='color'?$R(0,2).inject('#',function(m,v,i){return m+(Math.round(transform.originalValue[i]+
(transform.targetValue[i]-transform.originalValue[i])*position)).toColorPart()}):transform.originalValue+Math.round(((transform.targetValue-transform.originalValue)*position)*1000)/1000+transform.unit;style[transform.style]=value;});this.element.setStyle(style);}});Effect.Transform=Class.create();Object.extend(Effect.Transform.prototype,{initialize:function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks);},addTracks:function(tracks){tracks.each(function(track){var data=$H(track).values().first();this.tracks.push($H({ids:$H(track).keys().first(),effect:Effect.Morph,options:{style:data}}));}.bind(this));return this;},play:function(){return new Effect.Parallel(this.tracks.map(function(track){var elements=[$(track.ids)||$$(track.ids)].flatten();return elements.map(function(e){return new track.effect(e,Object.extend({sync:true},track.options))});}).flatten(),this.options);}});Element.CSS_PROPERTIES=$w('backgroundColor backgroundPosition borderBottomColor borderBottomStyle '+
  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
  'fontSize fontWeight height left letterSpacing lineHeight ' +
  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+
  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
'right textIndent top width wordSpacing zIndex');Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.prototype.parseStyle=function(){var element=Element.extend(document.createElement('div'));element.innerHTML='<div style="'+this+'"></div>';var style=element.down().style,styleRules=$H();Element.CSS_PROPERTIES.each(function(property){if(style[property])styleRules[property]=style[property];});if(/MSIE/.test(navigator.userAgent)&&!window.opera&&this.indexOf('opacity')>-1){styleRules.opacity=this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1];}
return styleRules;};Element.morph=function(element,style){new Effect.Morph(element,Object.extend({style:style},arguments[2]||{}));return element;};['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom','collectTextNodes','collectTextNodesIgnoreClass','morph'].each(function(f){Element.Methods[f]=Element[f];});Element.Methods.visualEffect=function(element,effect,options){s=effect.gsub(/_/,'-').camelize();effect_class=s.charAt(0).toUpperCase()+s.substring(1);new Effect[effect_class](element,options);return $(element);};Element.addMethods();if(typeof Effect=='undefined')
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((typeof containment=='object')&&(containment.constructor==Array)){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 affected=[];if(this.last_active)this.deactivate(this.last_active);this.drops.each(function(drop){if(Droppables.isAffected(point,element,drop))
affected.push(drop);});if(affected.length>0){drop=Droppables.findDeepestChild(affected);Position.within(drop.element,point[0],point[1]);if(drop.onHover)
drop.onHover(element,drop.element,Position.overlap(drop.overlap,drop.element));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);},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();Draggable._dragging={};Draggable.prototype={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=typeof element._opacity=='number'?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,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!arguments[1]||typeof arguments[1].endeffect=='undefined')
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&&(typeof options.handle=='string'))
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.delta=this.currentDelta();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(typeof Draggable._dragging[this.element]!='undefined'&&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.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);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);},updateDrag:function(event,pointer){if(!this.dragging)this.startDrag(event);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(navigator.appVersion.indexOf('AppleWebKit')>0)window.scrollBy(0,0);Event.stop(event);},finishDrag:function(event,success){this.dragging=false;if(this.options.ghosting){Position.relativize(this.element);Element.remove(this._clone);this._clone=null;}
if(success)Droppables.fire(event,this.element);Draggables.notify('onEnd',this,event);var revert=this.options.revert;if(revert&&typeof revert=='function')revert=revert(this.element);var d=this.currentDelta();if(revert&&this.options.reverteffect){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;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(typeof this.options.snap=='function'){p=this.options.snap(p[0],p[1],this);}else{if(this.options.snap instanceof Array){p=p.map(function(v,i){return Math.round(v/this.options.snap[i])*this.options.snap[i]}.bind(this))}else{p=p.map(function(v){return Math.round(v/this.options.snap)*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};}}
var SortableObserver=Class.create();SortableObserver.prototype={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){var s=Sortable.options(element);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,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(element);var options_for_draggable={revert:true,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);}
(this.findElements(element,options)||[]).each(function(e){var handle=options.handle?$(e).down('.'+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 CMSRegistry=Class.create();CMSRegistry.prototype={initialize:function(cms){this.cms=cms;this.registry={};},set:function(name,value){this.registry[name]=value;},get:function(name){if(typeof this.registry[name]!="undefined"){return this.registry[name];}
throw new Error("Trying to get a value for an unknown item: "+name+"\nMake sure the value is set first.");}}
var CMS=Class.create();CMS.prototype={initialize:function(){this.curX=0;this.curY=0;this.registry=new CMSRegistry(this);this.definedObservers={};},warn:function(warning,header){if(header==null){header="Windmill CMS";}
this._addModalFrame();var warnDiv=this._createModalDiv("__warndiv");warnDiv.innerHTML="<h1 id='__warndiv_dragbar'>"+header+"</h1><p>"+warning+"</p><div class='pos_submitwrapper stl_submitwrapper'><div class='pos_submit stl_submit'><input type='submit' onclick='Wmcms.hideWarning(); return false;' value='OK'/></div></div>";document.body.appendChild(warnDiv);this.curwarn=new Draggable("__warndiv",{handle:"__warndiv_dragbar",zindex:10000});},_createModalDiv:function(id){var modalDiv=document.createElement("div");modalDiv.id=id;modalDiv.className="pos_editor stl_editor pos_modaldiv stl_modaldiv";modalDiv.style.left=(window.viewportDimensions.width/2)-198+"px";if(window.scrollY){modalDiv.style.top=window.scrollY+100+"px";}
else{modalDiv.style.top=document.documentElement.scrollTop+100+"px";}
return modalDiv;},_addModalFrame:function(){var modalFrame=document.createElement("iframe");modalFrame.src="/lib/plugin/cms/var/blank.html";modalFrame.id="__modalFrame";modalFrame.className="pos_modal stl_modal";modalFrame.style.width=document.documentElement.scrollWidth-4+"px";modalFrame.style.height=document.documentElement.scrollHeight-4+"px";document.body.appendChild(modalFrame);},hideWarning:function(){document.getElementById("__warndiv").parentNode.removeChild(document.getElementById("__warndiv"));document.getElementById("__modalFrame").parentNode.removeChild(document.getElementById("__modalFrame"));},hideAsk:function(){document.getElementById("__askdiv").parentNode.removeChild(document.getElementById("__askdiv"));document.getElementById("__modalFrame").parentNode.removeChild(document.getElementById("__modalFrame"));},ask:function(question,options){this._addModalFrame();var askDiv=this._createModalDiv("__askdiv");askDiv.innerHTML="<h1 id='__askdiv_dragbar'>Windmill CMS</h1><p>"+question+"</p>";var submitwrapper=document.createElement("div");submitwrapper.setAttribute("class","pos_submitwrapper stl_submitwrapper");for(var i=0;i<options.length;i++){askDiv.innerHTML+="<div class='pos_submit stl_submit'><input type='submit' onclick='Wmcms.hideAsk(); "+options[i][1]+"; return false;' value='"+options[i][0]+"'/></div>";}
askDiv.appendChild(submitwrapper);document.body.appendChild(askDiv);this.curask=new Draggable("__askdiv",{handle:"__askdiv_dragbar",zindex:10000});},showSaving:function(id){document.getElementById(id).style.display="block";},hideSaving:function(id){document.getElementById(id).style.display="none";},showEditor:function(id){this.hideEditor(id);$(id).style.left=this.curX+"px";$(id).style.top=this.curY+"px";if($(id).clientWidth+this.curX>this._getScreenWidth()){$(id).style.left=this._getScreenWidth()-$(id).clientWidth-50+"px";}
Wmcms.updateShimFrame(id);},updateShimFrame:function(id){if($(id).style.left!="-1000px"&&$(id+"_shim")){$(id+"_shim").style.width=$(id).clientWidth+"px";$(id+"_shim").style.height=$(id).clientHeight+"px";$(id+"_shim").style.display="block";$(id+"_shim").style.zIndex=-1;setTimeout("Wmcms.updateShimFrame(\""+id+"\");",250);}},getContent:function(id){if($(id).textContent){return $(id).textContent;}
else{return document.getElementById(id).innerHTML.replace("&amp;","&");}},_getScreenWidth:function(){return window.viewportDimensions.width;},hideEditor:function(id){document.getElementById(id).style.left="-1000px";if($(id+"_shim")){document.getElementById(id+"_shim").style.display="none";document.getElementById(id+"_shim").style.left="0px";document.getElementById(id+"_shim").style.top="0px";document.getElementById(id+"_shim").style.zIndex=0;}},clickObserver:function(event){Wmcms.curX=event.clientX;if(window.scrollY){Wmcms.curY=event.clientY+window.scrollY;}
else if(document.documentElement&&document.documentElement.scrollTop){Wmcms.curY=event.clientY+document.documentElement.scrollTop;}
else{Wmcms.curY=event.clientY;}},bindFieldElement:function(field,element){Event.observe(field,"keyup",function(){element.innerHTML=field.value;});},getObject:function(){var objName=$A(arguments).find(function(name){return(typeof(window[name.capitalize()])=="function");});if(typeof(objName)=="undefined"){if(typeof(console)!="undefined"){if(typeof(console.error)=="function"){console.error("Wmcms.getObject(): At least one of the given objectnames should exist as instatiable var. Given names: ",arguments);}}
else{throw new Error("Wmcms.getObject(): At least one of the given objectnames should exist as instatiable var");}}
return window[objName.capitalize()];},setTinyMCEUpdateHandler:function(func){this._tinyMCEUpdateHandler=func;},tinyMCEUpdate:function(tinyInstance){if(typeof(this._tinyMCEUpdateHandler)=="function"){this._tinyMCEUpdateHandler(tinyInstance);}}}
var Wmcms=new CMS();Event.observe(document,"click",Wmcms.clickObserver);var BaseWmdbtable=Class.create();BaseWmdbtable.prototype={initialize:function(modulename,ct,dt){this.modulename=modulename;this.ct=ct;this.dt=dt;this.itemid=null;this.close=true;ajaxEngine.registerRequest("wmdbtable_"+this.modulename,"/index.php");ajaxEngine.registerAjaxElement("wmdbtable_"+this.modulename,$(this.modulename+"_editor_content"));},deleteRow:function(arg,confirmed){this.itemid=arg;if(confirmed){this._callCMSFunction("delete");if($(this.modulename+arg)){$(this.modulename+arg).parentNode.removeChild($(this.modulename+arg));}}
else{Wmcms.ask("Weet u zeker dat u dit item wilt verwijderen?",new Array(new Array("Ja","Wmcms.registry.get(\""+(this.modulename).toLowerCase()+"\").deleteRow("+this.itemid+", true)"),new Array("Nee","")));}},showEditor:function(arg){this.itemid=arg;if(this.itemid==-1){this._callContentFunction("add");}
else{this._callContentFunction("update");}
Wmcms.showEditor(this.modulename+"_editor");},_callContentFunction:function(func){this.handleHTMLAreas("mceRemoveControl");ajaxEngine.sendRequest("wmdbtable_"+this.modulename,{parameters:"ct="+this.ct+"&dt="+this.dt+"&id="+this.itemid+"&mode="+func,onComplete:this._contentCallComplete.bind(this)});},_contentCallComplete:function(){this.handleHTMLAreas("mceAddControl");Form.focusFirstElement($(this.modulename+"_editor").getElementsByTagName("form")[0]);},handleHTMLAreas:function(action){var htmlareas=this.getHTMLAreas();for(i=0;i<htmlareas.length;i++){tinyMCE.execCommand(action,false,htmlareas[i].id);}},_callCMSFunction:function(func){Wmcms.showSaving("Wmdbtable_saving");this.saved=false;ajaxEngine.registerAjaxObject("wmdbtable_"+this.modulename,this);ajaxEngine.sendRequest("wmdbtable_"+this.modulename,"ct="+this.ct,"__cms_"+this.modulename+"=true","__function_"+this.modulename+"="+func,"id="+this.itemid,"objid="+this.itemid);this.hideSaving.applyWithTimeout(this,500);},hideSaving:function(){if(this.saved){Wmcms.hideSaving("Wmdbtable_saving");}
else{this.hideSaving.applyWithTimeout(this,500);}},ajaxUpdate:function(response){this.saved=true;},apply:function(){this.close=false;this.save();this.close=true;},getHTMLAreas:function(){var textareas=document.getElementsByTagName("textarea");var htmlarea=[];for(i=0;i<textareas.length;i++){var textarea=textareas[i];if(textarea.getAttribute("htmlarea")=="true"){var id=textarea.id||"htmlarea_"+i;textarea.setAttribute("id",id);htmlarea.push(textarea);}}
return htmlarea;},getQueryObject:function(){this.handleHTMLAreas("mceRemoveControl");var formelems=$(this.modulename+"_editor").getElementsByTagName("form")[0];var formobj={};for(i=0;i<formelems.length;i++){if(!formelems[i].disabled){if(formelems[i].type!="radio"&&formelems[i].type!="checkbox"){formobj[formelems[i].name]=formelems[i].value;}
else{if(formelems[i].checked){if(formobj[formelems[i].name]!=undefined){if(typeof(formobj[formelems[i].name])=="string"){formobj[formelems[i].name]=new Array(formobj[formelems[i].name],formelems[i].value);}
else{formobj[formelems[i].name].push(formelems[i].value);}}
else{formobj[formelems[i].name]=formelems[i].value;}}}}}
if(!this.close){this.handleHTMLAreas("mceAddControl");}
return formobj;},save:function(){var form=$(this.modulename+"_editor").getElementsByTagName("form")[0];if(form.getInputs("file").length>0){this.createUploadIframe(form);}
else{var queryobj=this.getQueryObject();Wmcms.showSaving("Wmdbtable_saving");ajaxEngine.registerRequest("wmdbtable_"+this.modulename,"/index.php");ajaxEngine.registerAjaxObject("wmdbtable_"+this.modulename,this);ajaxEngine.sendRequest("wmdbtable_"+this.modulename,{parameters:queryobj});}
if(this.close){Wmcms.hideEditor(this.modulename+"_editor");}
this.hideSaving.applyWithTimeout(this,500);},createUploadIframe:function(form){this.handleHTMLAreas("mceRemoveControl");form.target=$("fileframe").name;form.action="/index.php";ajaxEngine.registerRequest("wmdbtable_"+this.modulename,"/index.php");ajaxEngine.registerAjaxObject("wmdbtable_"+this.modulename,this);ajaxEngine.registerAjaxFormIframe("wmdbtable_"+this.modulename,form,$("fileframe"));form.submit();},cancel:function(conf){if(conf){Wmcms.hideEditor(this.modulename+"_editor");}
else{Wmcms.ask("Weet u zeker dat u wilt annuleren? Eventuele wijzigingen zullen verloren gaan.",new Array(new Array("Ja","Wmcms.registry.get(\""+(this.modulename).toLowerCase()+"\").cancel(true)"),new Array("Nee","")));}}}
var BaseWmpage=Class.create();BaseWmpage.prototype={initialize:function(page,modulename,ct,dt){this.modulename=modulename||"Wmpage";this.ct=ct||"wmpagecms";this.dt=dt||"wmpage_editor";this.contentId="tekst_content";this.titelId="titel_content";this.itemid=null;this.page=page;ajaxEngine.registerRequest("wmpage","/index.php");ajaxEngine.registerAjaxObject("wmpage",this);},setPage:function(page){this.page=page;},setcontentId:function(contentid){this.contentId=contentid;},settitelId:function(titelid){this.titelId=titelid;},update:function(tinyMCEInstance){var text=tinyMCE.getContent(tinyMCEInstance.editorId);if(text!=null){document.getElementById(this.contentId).innerHTML=text;}},updateTitel:function(){document.getElementById("titelInput").value=Wmcms.getContent(this.titelId);Wmcms.showEditor(this.modulename+"_titelform");},showEditor:function(){this.originalHTML=new XHTMLGenerator(this.contentId).result();$("wmpage_content").innerText=this.originalHTML;if(typeof(tinyMCE.selectedInstance)=="undefined"){tinyMCE.execCommand("mceAddControl",false,"wmpage_content");tinyMCE.setContent(this.originalHTML);}
else{tinyMCE.setContent(this.originalHTML);}
Wmcms.setTinyMCEUpdateHandler(this.update.bind(this));Wmcms.showEditor(this.modulename+"_editor");},saveTitel:function(){Wmcms.hideEditor(this.modulename+"_titelform");document.getElementById(this.titelId).innerHTML=document.getElementById("titelInput").value;this.save(true);},cancelTitel:function(){Wmcms.hideEditor(this.modulename+"_titelform");},applyTitel:function(){document.getElementById(this.titelId).innerHTML=document.getElementById("titelInput").value;this.save(false);},ajaxUpdate:function(response){this.saved=true;},hideSaving:function(){if(this.saved){Wmcms.hideSaving("Wmpage_saving");}
else{this.hideSaving.applyWithTimeout(this,500);}
this.originalHTML=document.getElementById(this.contentId).innerHTML;},cancel:function(){tinyMCE.setContent(this.originalHTML);this.update(tinyMCE.selectedInstance);Wmcms.hideEditor(this.modulename+"_editor");tinyMCE.execCommand("mceRemoveControl",false,"wmpage_content");},save:function(hide){Wmcms.showSaving("Wmpage_saving");this.saved=false;var request=this.getRequestVars(hide);this.sendRequest(request);this.hideSaving.applyWithTimeout(this,500);},getRequestVars:function(hide){var text="";var titel="";if(document.getElementById(this.contentId)){tinyMCE.saved
text="tekst="+(new XHTMLGenerator(this.contentId).result());}
if(document.getElementById(this.titelId)){titel="titel="+document.getElementById(this.titelId).innerHTML;}
if(hide){Wmcms.hideEditor(this.modulename+"_editor");tinyMCE.execCommand("mceRemoveControl",false,"wmpage_content");}
var request=["wmpage","ct="+this.ct,"__cms_"+this.modulename+"=true","__function_"+this.modulename+"=update","page="+this.page];if(titel!=""){request.push(titel);}
if(text!=""){request.push(text);}
return request;},sendRequest:function(request){ajaxEngine.sendRequest.apply(ajaxEngine,request);}}
var Wmdbnavigation=Class.create();Wmdbnavigation.prototype={initialize:function(truename){this.itemid=null;this.truename=truename;this.applied=false;ajaxEngine.registerRequest("wmdbnavigation","/index.php");ajaxEngine.registerAjaxObject("wmdbnavigation",this);},updateCaption:function(id,menu){this.itemid=id;this.menu=menu;document.getElementById("captionInput").value=Wmcms.getContent("item_"+this.itemid+this.menu);Wmcms.showEditor("Wmdbnavigation_captionform");},addTextPage:function(menuid){this.menu=menuid;Wmcms.showEditor("Wmdbnavigation_newpage");},addNewMenu:function(menuid){this.menu=menuid;Wmcms.showEditor("Wmdbnavigation_newmenu");},ajaxUpdate:function(response){this.saved=true;},saveCaption:function(){if(!this.applied){Wmcms.hideEditor("Wmdbnavigation_captionform");}
this.applied=false;Wmcms.showSaving("Wmdbnavigation_saving");var cmsfunction=this.menu?"updatemenucaption":"updatecaption";ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","item_id="+this.itemid,"__cms_"+this.truename+"=true","__function_"+this.truename+"="+cmsfunction,"caption="+document.getElementById("captionInput").value);this.saved=false;this.hideSaving.applyWithTimeout(this,500);},deleteItem:function(id,menu,confirmed){this.itemid=id;if(confirmed){if(menu){ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","menu_id="+this.itemid,"__cms_"+this.truename+"=true","__function_"+this.truename+"=deleteItem");}
else{ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","item_id="+this.itemid,"__cms_"+this.truename+"=true","__function_"+this.truename+"=deleteItem");}
this.saved=false;this.hideSaving.applyWithTimeout(this,500);}
else{Wmcms.ask("Weet u zeker dat u dit menu item wilt verwijderen?",[["Ja","Wmcms.registry.get(\""+(this.truename).toLowerCase()+"\").deleteItem("+id+", "+menu+", true)"],["Nee","void(0)"]]);}},moveUp:function(id,menu){this.itemid=id;if(menu){ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","menu_id="+this.itemid,"__cms_"+this.truename+"=true","__function_"+this.truename+"=moveup");}
else{ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","item_id="+this.itemid,"__cms_"+this.truename+"=true","__function_"+this.truename+"=moveup");}
this.saved=false;this.hideSaving.applyWithTimeout(this,500);},moveDown:function(id,menu){this.itemid=id;if(menu){ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","menu_id="+this.itemid,"__cms_"+this.truename+"=true","__function_"+this.truename+"=movedown");}
else{ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","item_id="+this.itemid,"__cms_"+this.truename+"=true","__function_"+this.truename+"=movedown");}
this.saved=false;this.hideSaving.applyWithTimeout(this,500);},apply:function(){this.applied=true;this.saveCaption();},cancel:function(conf){if(conf==true){Wmcms.hideEditor("Wmdbnavigation_captionform");Wmcms.hideEditor("Wmdbnavigation_newpage");Wmcms.hideEditor("Wmdbnavigation_newmenu");}
else{Wmcms.ask("Weet u zeker dat u wilt annuleren? Eventuele wijzigingen zullen verloren gaan.",new Array(new Array("Ja","Wmcms.registry.get(\""+this.truename.toLowerCase()+"\").cancel(true)"),new Array("Nee","")));}},saveNew:function(){var caption=$("newcaptionInput").value;var pagename=$("pagenameInput").value;var id=this.menu;var ct="text";Wmcms.showSaving("Wmdbnavigation_saving");ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","menuid="+id,"__cms_"+this.truename+"=true","__function_"+this.truename+"=addtextpage","caption="+caption,"pagename="+pagename);this.saved=false;this.hideSaving.applyWithTimeout(this,500);},saveNewMenu:function(){var menucaption=$F("newMenuCaptionInput");var itemcaption=$F("newItemCaptionInput");var pagename=$F("newPagenameInput");var id=this.menu;Wmcms.showSaving("Wmdbnavigation_saving");ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","menuid="+id,"__cms_"+this.truename+"=true","__function_"+this.truename+"=addnewmenu","caption="+menucaption,"itemcaption="+itemcaption,"pagename="+pagename);this.saved=false;this.hideSaving.applyWithTimeout(this,500);},hideSaving:function(){if(this.saved){if($("item_"+this.itemid+this.menu)){$("item_"+this.itemid+this.menu).innerHTML=document.getElementById("captionInput").value;}
else{document.location.reload();}
Wmcms.hideSaving("Wmdbnavigation_saving");}
else{this.hideSaving.applyWithTimeout(this,500);}}}
var Wmdbtable=Class.create();Wmdbtable=Class.extend(BaseWmdbtable,Wmdbtable);var Wmpage=Class.create();Wmpage=Class.extend(BaseWmpage,Wmpage);var CMSRegistry=Class.create();CMSRegistry.prototype={initialize:function(cms){this.cms=cms;this.registry={};},set:function(name,value){this.registry[name]=value;},get:function(name){if(typeof this.registry[name]!="undefined"){return this.registry[name];}
throw new Error("Trying to get a value for an unknown item: "+name+"\nMake sure the value is set first.");}}
var CMS=Class.create();CMS.prototype={initialize:function(){this.curX=0;this.curY=0;this.registry=new CMSRegistry(this);this.definedObservers={};},warn:function(warning,header){if(header==null){header="Windmill CMS";}
this._addModalFrame();var warnDiv=this._createModalDiv("__warndiv");warnDiv.innerHTML="<h1 id='__warndiv_dragbar'>"+header+"</h1><p>"+warning+"</p><div class='pos_submitwrapper stl_submitwrapper'><div class='pos_submit stl_submit'><input type='submit' onclick='Wmcms.hideWarning(); return false;' value='OK'/></div></div>";document.body.appendChild(warnDiv);this.curwarn=new Draggable("__warndiv",{handle:"__warndiv_dragbar",zindex:10000});},_createModalDiv:function(id){var modalDiv=document.createElement("div");modalDiv.id=id;modalDiv.className="pos_editor stl_editor pos_modaldiv stl_modaldiv";modalDiv.style.left=(window.viewportDimensions.width/2)-198+"px";if(window.scrollY){modalDiv.style.top=window.scrollY+100+"px";}
else{modalDiv.style.top=document.documentElement.scrollTop+100+"px";}
return modalDiv;},_addModalFrame:function(){var modalFrame=document.createElement("iframe");modalFrame.src="/lib/plugin/cms/var/blank.html";modalFrame.id="__modalFrame";modalFrame.className="pos_modal stl_modal";modalFrame.style.width=document.documentElement.scrollWidth-4+"px";modalFrame.style.height=document.documentElement.scrollHeight-4+"px";document.body.appendChild(modalFrame);},hideWarning:function(){document.getElementById("__warndiv").parentNode.removeChild(document.getElementById("__warndiv"));document.getElementById("__modalFrame").parentNode.removeChild(document.getElementById("__modalFrame"));},hideAsk:function(){document.getElementById("__askdiv").parentNode.removeChild(document.getElementById("__askdiv"));document.getElementById("__modalFrame").parentNode.removeChild(document.getElementById("__modalFrame"));},ask:function(question,options){this._addModalFrame();var askDiv=this._createModalDiv("__askdiv");askDiv.innerHTML="<h1 id='__askdiv_dragbar'>Windmill CMS</h1><p>"+question+"</p>";var submitwrapper=document.createElement("div");submitwrapper.setAttribute("class","pos_submitwrapper stl_submitwrapper");for(var i=0;i<options.length;i++){askDiv.innerHTML+="<div class='pos_submit stl_submit'><input type='submit' onclick='Wmcms.hideAsk(); "+options[i][1]+"; return false;' value='"+options[i][0]+"'/></div>";}
askDiv.appendChild(submitwrapper);document.body.appendChild(askDiv);this.curask=new Draggable("__askdiv",{handle:"__askdiv_dragbar",zindex:10000});},showSaving:function(id){document.getElementById(id).style.display="block";},hideSaving:function(id){document.getElementById(id).style.display="none";},showEditor:function(id){this.hideEditor(id);$(id).style.left=this.curX+"px";$(id).style.top=this.curY+"px";if($(id).clientWidth+this.curX>this._getScreenWidth()){$(id).style.left=this._getScreenWidth()-$(id).clientWidth-50+"px";}
Wmcms.updateShimFrame(id);},updateShimFrame:function(id){if($(id).style.left!="-1000px"&&$(id+"_shim")){$(id+"_shim").style.width=$(id).clientWidth+"px";$(id+"_shim").style.height=$(id).clientHeight+"px";$(id+"_shim").style.display="block";$(id+"_shim").style.zIndex=-1;setTimeout("Wmcms.updateShimFrame(\""+id+"\");",250);}},getContent:function(id){if($(id).textContent){return $(id).textContent;}
else{return document.getElementById(id).innerHTML.replace("&amp;","&");}},_getScreenWidth:function(){return window.viewportDimensions.width;},hideEditor:function(id){document.getElementById(id).style.left="-1000px";if($(id+"_shim")){document.getElementById(id+"_shim").style.display="none";document.getElementById(id+"_shim").style.left="0px";document.getElementById(id+"_shim").style.top="0px";document.getElementById(id+"_shim").style.zIndex=0;}},clickObserver:function(event){Wmcms.curX=event.clientX;if(window.scrollY){Wmcms.curY=event.clientY+window.scrollY;}
else if(document.documentElement&&document.documentElement.scrollTop){Wmcms.curY=event.clientY+document.documentElement.scrollTop;}
else{Wmcms.curY=event.clientY;}},bindFieldElement:function(field,element){Event.observe(field,"keyup",function(){element.innerHTML=field.value;});},getObject:function(){var objName=$A(arguments).find(function(name){return(typeof(window[name.capitalize()])=="function");});if(typeof(objName)=="undefined"){if(typeof(console)!="undefined"){if(typeof(console.error)=="function"){console.error("Wmcms.getObject(): At least one of the given objectnames should exist as instatiable var. Given names: ",arguments);}}
else{throw new Error("Wmcms.getObject(): At least one of the given objectnames should exist as instatiable var");}}
return window[objName.capitalize()];},setTinyMCEUpdateHandler:function(func){this._tinyMCEUpdateHandler=func;},tinyMCEUpdate:function(tinyInstance){if(typeof(this._tinyMCEUpdateHandler)=="function"){this._tinyMCEUpdateHandler(tinyInstance);}}}
var Wmcms=new CMS();Event.observe(document,"click",Wmcms.clickObserver);var Wmshipmateproduct=Class.create();Wmshipmateproduct=Class.extend(Wmdbtable,{initialize:function(modulename,ct,dt){this.__parent.initialize(modulename,ct,dt);this.reload=false;this.forwards=false;this.newhref="/";this.removeCat=false;this.reloadPopup=false;this.ct="wmshipmateproduct";},ajaxUpdate:function(response){this.saved=true;if(this.reload){document.location.reload();}
if(this.removeCat){$(this.category_id).remove();}
if(this.forwards){document.location.href=this.newhref;}
if(this.reloadPopup){aPopup.loadFotos(this.product_id);}},addProduct:function(cat){this.cat=cat;this.showEditor(-1);},updateProduct:function(arg,cat){this.cat=cat;this.showEditor(arg);},updateAdditionalproducts:function(product_id){this.product_id=product_id;this._callContentFunction("updateadditionalproducts");Wmcms.showEditor(this.modulename+"_editor");},showEditor:function(arg){this.itemid=arg;olddt=this.dt;this.dt="wmshipmateproduct_editor";if(this.itemid==-1){this._callContentFunction("add");}
else{this._callContentFunction("update");}
Wmcms.showEditor(this.modulename+"_editor");this.dt=olddt;},getItemId:function(){return this.itemid;},addCategory:function(id,cat){this.cat=cat;var divs=$("catlist").getElementsByTagName("div");var size=divs.length;var beforeDiv=null;for(var i=0;i<size;i++){if(divs[i].className.indexOf("submit")>0){beforeDiv=divs[i];}}
var newDiv=document.createElement("div");newDiv.className="pos_input stl_input";newDiv.innerHTML="<p><a href='#' onclick='Wmcms.registry.get(\"wmshipmateproduct\").deleteCategorie(this, \""+id+"\", \""+id+"\"); return false;'>"+cat+"</a></p>";$("catlist").insertBefore(newDiv,beforeDiv);},addUitvoering:function(product_id,cat){this.product_id=product_id;this.cat=cat;this._callContentFunction("adduitvoering");Wmcms.showEditor(this.modulename+"_editor");},deleteCategorie:function(elem,product_id,category_id){if((product_id=="")||(this.getTotalCategories()<=1)){Wmcms.ask("U kunt deze categorie niet verwijderen, een product behoort ten minste tot &#233;&#233;n categorie.",new Array(new Array("Ok","")));}
else{while((elem.className!="pos_input stl_input")&&elem.parentNode){elem=elem.parentNode;}
elem.id="todelete";Wmcms.ask("Weet u zeker dat u het product uit deze categorie wilt verwijderen?.",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\").deleteCategorieRow("+product_id+", "+category_id+")"),new Array("Nee","")));}},getTotalCategories:function(){var divs=$("catlist").getElementsByTagName("div");var size=divs.length;var count=0;for(var i=0;i<size;i++){if(divs[i].className=="pos_input stl_input"){count++;}}
return count;},addCategories:function(){ajaxEngine.registerRequest("wmdbtable_Wmcategory","/index.php");ajaxEngine.registerAjaxElement("wmdbtable_Wmcategory",document.getElementById("Wmcategory_editor_content"));ajaxEngine.sendRequest("wmdbtable_Wmcategory","ct=wmcategory","dt=wmcategory_editor","mode=addCategories");Wmcms.showEditor("Wmcategory_editor");},deleteCategorieRow:function(product_id,category_id){Wmcms.showSaving("Wmdbtable_saving");this.saved=false;this.removeCat=true;this.category_id=category_id;ajaxEngine.registerAjaxObject("wmdbtable_"+this.modulename,this);ajaxEngine.sendRequest("wmdbtable_"+this.modulename,"ct="+this.ct,"__cms_"+this.modulename+"=true","__function_"+this.modulename+"=deleteCategorie","product_id="+product_id,"category_id="+category_id);$("todelete").parentNode.removeChild($("todelete"));this.hideSaving.applyWithTimeout(this,500);},deleteUitvoering:function(uitvoering_id,deleted){if(deleted=="nee"){Wmcms.ask("Weet u zeker dat u uitvoering van het product naar de prullenbak wilt verplaatsen? U kunt deze wijziging later ongedaan maken.",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\").deleteUitvoeringRow("+uitvoering_id+")"),new Array("Nee","")));}
if(deleted=="ja"){Wmcms.ask("Weet u zeker dat u deze uitvoering terug wilt zetten?",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\").unDeleteUitvoeringRow("+uitvoering_id+")"),new Array("Nee","")));}},deleteUitvoeringRow:function(arg){this.itemid=arg;this.reload=true;this._callCMSFunction("deleteUitvoering");},unDeleteUitvoeringRow:function(uitvoering_id){this.itemid=uitvoering_id;this.reload=true;this._callCMSFunction("unDeleteUitvoering");},deleteRow:function(arg){this.itemid=arg
this.forwards=true;this.newhref="/?ct=product&mode=overview";this._callCMSFunction("delete");},unDeleteRow:function(arg){this.itemid=arg;this.forwards=true;this.newhref="/?ct=product&mode=overview";this._callCMSFunction("unDelete");},updateUitvoering:function(uitvoering_id,product_id,cat){this.uitvoering_id=uitvoering_id;this.itemid=product_id;this.product_id=product_id;this.cat=cat;this.reload=true;this._callContentFunction("updateuitvoering")
Wmcms.showEditor(this.modulename+"_editor");},addProductFoto:function(product_id){this.product_id=product_id;ajaxEngine.registerAjaxElement("wmdbtable_"+this.modulename+"_file",$(this.modulename+"_addproductfoto_content"));olddt=this.dt;this.dt="wmshipmateproduct_editor";this._callFileContentFunction("addProductFoto");this.dt=olddt;Wmcms.showEditor(this.modulename+"_addproductfoto");this.reload=true;this.editor="_addproductfoto";},deleteProductFoto:function(id,product_id){this.itemid=id;this.product_id=product_id;this.reload=false;this.reloadPopup=true;ajaxEngine.registerRequest("wmdbtable_"+this.modulename,"/index.php");ajaxEngine.registerAjaxObject("wmdbtable_"+this.modulename,this);ajaxEngine.sendRequest("wmdbtable_"+this.modulename,"ct=wmshipmateproduct","__cms_Wmshipmateproduct=true","__function_Wmshipmateproduct=deleteProductFoto","id="+this.itemid,"objid="+this.itemid);},_callFileContentFunction:function(func){ajaxEngine.sendRequest("wmdbtable_"+this.modulename,{parameters:"ct="+this.ct+"&dt="+this.dt+"&id="+this.id+"&product_id="+this.product_id+"&mode="+func});},deleteProduct:function(arg,deleted){if(deleted=="nee"){Wmcms.ask("Weet u zeker dat u dit product naar de prullenbak wilt verplaatsen? U kunt deze wijziging later ongedaan maken.",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\").deleteRow("+arg+")"),new Array("Nee","")));}
if(deleted=="ja"){Wmcms.ask("Weet u zeker dat u dit product wilt terugzetten?",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\").unDeleteRow("+arg+")"),new Array("Nee","")));}},deleteUitvoering:function(uitvoering_id,deleted){if(deleted=="nee"){Wmcms.ask("Weet u zeker dat u uitvoering van het product naar de prullenbak wilt verplaatsen? U kunt deze wijziging later ongedaan maken.",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\").deleteUitvoeringRow("+uitvoering_id+")"),new Array("Nee","")));}
if(deleted=="ja"){Wmcms.ask("Weet u zeker dat u deze uitvoering terug wilt zetten?",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\").unDeleteUitvoeringRow("+uitvoering_id+")"),new Array("Nee","")));}},_callContentFunction:function(func){ajaxEngine.sendRequest("wmdbtable_"+this.modulename,{parameters:"ct="+this.ct+"&dt="+this.dt+"&id="+this.itemid+"&cat="+this.cat+"&product_id="+this.product_id+"&uitvoering_id="+this.uitvoering_id+"&mode="+func,onComplete:this._contentCallComplete.bind(this)});},cancelFile:function(){Wmcms.hideEditor(this.modulename+this.editor);},saveFile:function(){var formelems=$(this.modulename+this.editor).getElementsByTagName("form")[0];querystring=formelems.serialize();Wmcms.showSaving("Wmdbtable_saving");ajaxEngine.registerRequest("wmdbtable_"+this.modulename,"/index.php");ajaxEngine.registerAjaxObject("wmdbtable_"+this.modulename,this);ajaxEngine.registerAjaxFormIframe("wmdbtable_"+this.modulename,$("addform"),$("uploadframe"));ajaxEngine.sendRequest("wmdbtable_"+this.modulename,"");if(this.close){Wmcms.hideEditor(this.modulename+this.editor);}
this.hideSaving.applyWithTimeout(this,500);},save:function(){this.reload=true;this.__parent.save();}});var Wmshipmatedesignerproduct=Class.create();Wmshipmatedesignerproduct=Class.extend(Wmshipmateproduct,{initialize:function(modulename,ct,dt){this.__parent.initialize(modulename,ct,dt);this.reload=true;this.forwards=false;this.newhref="/";this.removeCat=false;this.reloadPopup=false;this.ct="wmshipmatedesignproduct";},save:function(){this.handleHTMLAreas("mceRemoveControl");this.__parent.save();}});var Wmshipmatenavigation=Class.create();Wmshipmatenavigation=Class.extend(Wmdbnavigation,{addTextPageMenu:function(menuid){this.menu=menuid;Wmcms.showEditor("Wmdbnavigation_newpagemenu");},addToHome:function(menuid,confirmed){this.menu=menuid;var menuselect=document.getElementsByClassName("pos_menuSelect","div");for(var j=0;j<menuselect.length;j++){menuselect[j].style.display="none;"}
document.getElementById("menuselect_"+menuid).style.display="block";Wmcms.showEditor("Wmdbnavigation_addmenuitemtohome");},saveHomeLink:function(menuid){this.menu=menuid;var select=document.getElementById("selectItem_"+menuid)
var itemName=select.value;var itemId=select.options[select.selectedIndex].id
Wmcms.showSaving("Wmdbnavigation_saving");ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","menuid="+menuid,"__cms_"+this.truename+"=true","__function_"+this.truename+"=addToHome","itemId="+itemId);this.saved=false;this.hideSaving.applyWithTimeout(this,500);},deleteFromHome:function(menuid,soort,confirmed){this.menu=menuid;if(confirmed){ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","menuid="+menuid,"__cms_"+this.truename+"=true","__function_"+this.truename+"=deleteFromHome","soort="+soort);}
else{Wmcms.ask("Weet u zeker dat u deze link van home wilt verwijderen?",new Array(new Array("Ja","Wmcms.registry.get(\"wmshipmatenavigation\").deleteFromHome("+menuid+", "+soort+", true)"),new Array("Nee","")));}},ajaxUpdate:function(response){var wmdbnavigationNodes=response.getElementsByTagName("wmdbnavigation");if(wmdbnavigationNodes){var wmdbnavigationNode=$A(wmdbnavigationNodes).pop();if(wmdbnavigationNode){var forward=wmdbnavigationNode.getAttribute("newlink");if(forward){document.location.href=forward;return;}}}
this.__parent.ajaxUpdate(response);document.location.reload();},saveNewMenu:function(){var caption=$("newMenuCaptionInput").value;var pagename=$("newPagenameInput").value;var id=this.menu;var ct="text";Wmcms.showSaving("Wmdbnavigation_saving");ajaxEngine.sendRequest("wmdbnavigation","ct=wmdbnavigationcms","menuid="+id,"__cms_"+this.truename+"=true","__function_"+this.truename+"=addtextpagemenu","caption="+caption,"pagename="+pagename);this.saved=false;this.hideSaving.applyWithTimeout(this,500);},cancel:function(conf){if(conf==true){Wmcms.hideEditor("Wmdbnavigation_newpagemenu");Wmcms.hideEditor("Wmdbnavigation_addmenuitemtohome");}
this.__parent.cancel(conf);},hideSaving:function(){if(this.saved){if($("item_"+this.itemid+this.menu)){var images=$("item_"+this.itemid+this.menu).getElementsByTagName("img");if(images.length==1){images[0].src=images[0].src.substring(0,images[0].src.lastIndexOf("/")+1)+document.getElementById("captionInput").value+".png";images[0].alt=document.getElementById("captionInput").value;}
else{$("item_"+this.itemid+this.menu).innerHTML=document.getElementById("captionInput").value;}}
else{document.location.reload();}
Wmcms.hideSaving("Wmdbnavigation_saving");}
else{this.hideSaving.applyWithTimeout(this,500);}}});var Wmflagchart=Class.create();Wmflagchart=Class.extend(BaseWmdbtable,{ajaxUpdate:function(response){this.__parent.ajaxUpdate(response);document.location.reload();},saveStatic:function(){var form=document.getElementsByName("Wmdbtable_form")[0];form.submit();}});Wmpagefoto=Class.extend(BaseWmpage,{showEditor:function(){if(typeof(wmslideshow)!="undefined"){wmslideshow.togglePause();}
this.__parent.showEditor();},ajaxUpdate:function(response){this.__parent.ajaxUpdate(response);},addserie:function(page){Wmcms.showEditor("Wmpagefotoadd_cms");},deleteserie:function(page){Wmcms.showEditor("Wmpagefotodelete_cms");},deletefotoserie:function(page,arg){ajaxEngine.sendRequest("wmpage","ct=wmpagecms","sid="+arg,"__cms_Wmpagefoto=true","__function_Wmpagefoto=deleteFotoSerie");},save:function(hide){if((typeof(wmslideshow)!="undefined")&&hide){wmslideshow.togglePause();}
this.__parent.save(hide);},cancel:function(conf){if(typeof(wmslideshow)!="undefined"){wmslideshow.togglePause();}
this.__parent.cancel();Wmcms.hideEditor("Wmpagefotoadd_cms");Wmcms.hideEditor("Wmpagefotodelete_cms");}});var Wmhomelinks=Class.create();Wmhomelinks=Class.extend(Wmdbtable,{ajaxUpdate:function(response){this.__parent.ajaxUpdate(response);document.location.reload();}});var Wmvacatures=Class.create();Wmvacatures=Class.extend(Wmdbtable,{ajaxUpdate:function(response){this.__parent.ajaxUpdate(response);document.location.reload();},saveStatic:function(){var form=document.Wmdbtable_form;this.handleHTMLAreas("mceRemoveControl");form.submit();}});var Wmmedia=Class.create();Wmmedia=Class.extend(Wmdbtable,{ajaxUpdate:function(response){this.__parent.ajaxUpdate(response);document.location.reload();},saveStatic:function(){var form=document.Wmdbtable_form;this.handleHTMLAreas("mceRemoveControl");form.submit();}});var Wmcategory=Class.create();Wmcategory=Class.extend(BaseWmdbtable,{selectCategory:function(select){this.itemid=select.value;var div=this.getSelectDiv(select);this.removeSelectSiblings(div);var newSelectDiv=this.createNewSelectDiv(div);ajaxEngine.registerAjaxElement("wmdbtable_"+this.modulename,newSelectDiv);this._callContentFunction("selectCategory");},createNewSelectDiv:function(div){var newDiv=document.createElement("div");newDiv.className="pos_formelement stl_formelement pos_fieldcategory stl_fieldcategory";return div.nextSibling.parentNode.insertBefore(newDiv,div.nextSibling);},removeSelectSiblings:function(div){if(div.nextSibling){if(div.nextSibling.className.indexOf("fieldcategory")>0){this.removeSelectSiblings(div.nextSibling);div.nextSibling.parentNode.removeChild(div.nextSibling);}}},getSelectDiv:function(elem){if(elem.className.indexOf("fieldcategory")>0){return elem;}
else if(elem.parentNode){return this.getSelectDiv(elem.parentNode);}
else{return null;}},save:function(){Wmcms.showSaving("Wmdbtable_saving");ajaxEngine.registerRequest("wmdbtable_"+this.modulename,"/index.php");ajaxEngine.registerAjaxObject("wmdbtable_"+this.modulename,this);ajaxEngine.sendRequest("wmdbtable_"+this.modulename,"ct="+this.ct,"__cms_"+this.modulename+"=true","__function_"+this.modulename+"=addproductcategory","catid="+this.itemid,"prodid="+Wmcms.registry.get("wmshipmateproduct").getItemId());Wmcms.hideEditor(this.modulename+"_editor");this.hideSaving.applyWithTimeout(this,500);Wmcms.registry.get("wmshipmateproduct").addCategory(this.itemid,this.getCategoryName(this.itemid));},getCategoryName:function(id){var options=document.getElementsByTagName("option");var size=options.length;for(var i=0;i<size;i++){if(options[i].value==id){return options[i].innerHTML;}}}});var BaseWmbanner=Class.create();BaseWmbanner=Class.extend(Wmdbtable,{initialize:function(page,modulename,ct,dt){if(arguments.length!=4){throw new Error("Wmbanner is expecting exactly 4 arguments in it's constructor, "+arguments.length+" arguments given. Maybe you should add an xsl template for jsObjectArgs, to tell the page and apply on the imports");}
this.modulename=modulename;this.page=page;this.max=0;this.ct=(this.modulename).toLowerCase()+"cms";this.dt=this.modulename+"_wizard";this.editor=this.modulename+"_editor";this.__parent.initialize(this.modulename,this.ct,this.dt);ajaxEngine.registerRequest(this.modulename,"/index.php");ajaxEngine.registerAjaxObject(this.modulename,this);},moveUp:function(id){this.itemid=id;this._callCMSFunction("moveup");},moveDown:function(id){this.itemid=id;this._callCMSFunction("movedown");},deleteBanner:function(id){this.itemid=id;Wmcms.ask("Weet u zeker dat u deze banner van deze pagina wilt verwijderen?",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\")._callCMSFunction(\"delete\")"),new Array("Nee","")));},permDeleteBanner:function(){this.itemid=this.getRadioField("banner_id","bannerselectform");if(this.itemid==-1){return;}
Wmcms.ask("Weet u zeker dat u deze banner volledig wilt verwijderen?",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\")._callCMSFunction(\"permdelete\")"),new Array("Nee","")));},hideSaving:function(){if(this.saved){Wmcms.hideSaving("Wmbanner_saving");this._moveBanner();}
else{this.hideSaving.applyWithTimeout(this,500);}},hideEditor:function(conf){if(conf){Wmcms.ask("Weet u zeker dat u wilt annuleren? Eventuele wijzigingen zullen verloren gaan.",new Array(new Array("Ja","Wmcms.registry.get(\""+this.modulename.toLowerCase()+"\").hideEditor(false)"),new Array("Nee","")));}
else{Wmcms.hideEditor(this.editor);}},getRadioField:function(bannername,bannerform){var id;var form=$(bannerform)[bannername];if(typeof(form.length)=="undefined"){if(form.checked){id=form.value;}}
else{for(var i=0;i<form.length;i++){if(form[i].checked){id=form[i].value;}}}
return id;},nextFromExistingList:function(){var id=this.getRadioField("banner_id","bannerselectform");if(id==null){Wmcms.warn("U heeft geen banner geselecteerd");}
else if(id==-1){ajaxEngine.sendRequest(this.modulename,{parameters:"ct="+this.ct.toLowerCase()+"&dt=bannerwizard&page="+this.page+"&mode=listbannertypes"});}
else{this.itemid=id;this._callCMSFunction("add");Wmcms.hideEditor(this.editor);}},nextFromDetails:function(){Wmcms.showSaving("Wmbanner_saving");var form=$("detailsform");this.fillBannerInfo(form);if(form.getInputs("file").length>0){this.createUploadIframe(form);this.func="addBanner";this.hideSaving.applyWithTimeout(this,500);}
else{this._addBanner();}},createUploadIframe:function(form){form.target=$("uploadbannerframe").name;form.action="/index.php?"+Hash.toQueryString(this._getCMSFunctionParameters("addBanner"));ajaxEngine.registerAjaxFormIframe(this.modulename,form,$("uploadbannerframe"),this.uploadComplete);form.submit();},fillBannerInfo:function(form){if(form.link){this.banner.link=form.link.value;}
if(form.bannertitle){this.banner.title=form.bannertitle.value;}
if(form.bannertext){this.banner.text=form.bannertext.value;}
if(form.target){this.banner.target=form.target.value;}},uploadComplete:function(response){this.ajaxUpdate(response);this._addBanner();},_addBanner:function(){Wmcms.hideEditor(this.editor);this._callCMSFunction("addBanner");},nextFromListBannerTypes:function(){var id=this.getRadioField("bannertype","bannertypesform");if(this.banner==null){this.banner=new Banner();}
if(id!=null){this.banner.type=id;var name=$("bannertypesform").bannername.value;if(name!=""){this.banner.name=name;ajaxEngine.sendRequest("Wmbanner_wizard",{parameters:"ct="+this.ct.toLowerCase()+"&dt=bannerwizard&page="+this.page+"&mode=detailsform&type="+this.banner.type+"&name="+this.banner.name});}
else{Wmcms.warn("U heeft geen naam voor de nieuwe banner ingevoerd.");}}
else{Wmcms.warn("U heeft geen type voor de nieuwe banner geselecteerd");}},setMax:function(max){if(this.max<max){this.max=max;}},_moveBanner:function(){if(document.normalize){document.normalize();}
var banner=$("banner"+this.itemid);var switcher=this.findSwitcher(banner);if(switcher!=null){this.switchBanners(banner,switcher);}},findSwitcher:function(banner){var switcher=null;if(this.func=="moveup"){switcher=banner.previous();if(switcher==null){return;}}
else if(this.func=="movedown"){switcher=banner.next();if(switcher==null){return;}}
else if(this.func=="delete"){banner.parentNode.removeChild(banner);return;}
else if(this.func=="permdelete"){this.requestAddForm();return;}
else{document.location.reload();return;}
return switcher;},switchBanners:function(banner,switcher){var clone=switcher.cloneNode(true);var remainder=banner.parentNode.replaceChild(clone,banner);switcher.parentNode.replaceChild(remainder,switcher);},addForm:function(){Wmcms.showEditor(this.editor);this.requestAddForm();},requestAddForm:function(){ajaxEngine.registerRequest("Wmbanner_wizard","/index.php");ajaxEngine.registerAjaxElement("Wmbanner_wizard",$(this.modulename+"_wizard"));ajaxEngine.sendRequest("Wmbanner_wizard","ct="+this.ct.toLowerCase(),"dt=bannerwizard","page="+this.page,"mode=existinglist");},_callCMSFunction:function(func){this.func=func;this.saved=false;Wmcms.showSaving("Wmbanner_saving");ajaxEngine.sendRequest(this.modulename,{parameters:Hash.toQueryString(this._getCMSFunctionParameters(func))});this.hideSaving.applyWithTimeout(this,500);},_getCMSFunctionParameters:function(func){var params={"ct":this.ct.toLowerCase(),"item_id":this.itemid,"page":this.page,"max":this.max};params["__cms_"+this.modulename]="true";params["__function_"+this.modulename]=func;if(this.banner){params.bannertype=this.banner.type;params.name=this.banner.name;params.link=this.banner.link;params.url=this.banner.url;params.title=this.banner.title;params.text=this.banner.text;}
return params;}});var Banner=Class.create();Banner.prototype={initialize:function(){this.type=null;this.name=null;this.link=null;this.url=null;this.title=null;this.text=null;}}
var Wmbannershipmate=Class.create();Wmbannershipmate=Class.extend(BaseWmbanner,{initialize:function(page,modulename,ct,dt){this.__parent.initialize(page,modulename,ct,dt);ajaxEngine.registerAjaxObject(this.modulename.toLowerCase(),this);ajaxEngine.registerAjaxElement("wmbannershipmate",$("wmbannershipmate_content"));},ajaxUpdate:function(response){document.location.reload();},fillBannerInfo:function(form){this.__parent.fillBannerInfo(form);Object.extend(this.banner,form.serialize(true));},_getCMSFunctionParameters:function(func){var params=this.__parent._getCMSFunctionParameters(func);return Object.extend(params,this.banner);},showEditor:function(arg){if(arg==-1){return this.__parent.showEditor(arg);}
this.itemid=arg;var dt=this.dt;this.dt="wmdbtable_editor";this._callContentFunction("update");Wmcms.showEditor("wmbannershipmate");this.dt=dt;},createUploadIframe:function(form){if(!$("uploadbannerframe")){form.writeAttribute("target",$("fileframe").name);form.action="/index.php?"+Hash.toQueryString(this._getCMSFunctionParameters("update"));ajaxEngine.registerAjaxFormIframe("wmbannershipmate",form,$("fileframe"),this.uploadComplete);form.submit();}
else{this.__parent.createUploadIframe(form);}},save:function(){var form=$("wmbannershipmate").getElementsByTagName("form")[0];if(form.getInputs("file").length>0){this.createUploadIframe(form);}
else{this.handleHTMLAreas("mceRemoveControl");var queryobj=document.forms[0].serialize(true);if(!this.close){this.handleHTMLAreas("mceAddControl");}
Wmcms.showSaving("Wmdbtable_saving");ajaxEngine.registerRequest("wmdbtable_"+this.modulename,"/index.php");ajaxEngine.registerAjaxObject("wmdbtable_"+this.modulename,this);ajaxEngine.sendRequest("wmdbtable_"+this.modulename,{parameters:queryobj});}
if(this.close){Wmcms.hideEditor("wmbannershipmate");}
this.hideSaving.applyWithTimeout(this,500);},cancel:function(confirmed){if(confirmed&&$("wmbannershipmate")){Wmcms.hideEditor("wmbannershipmate");}
this.__parent.cancel(confirmed);}});
