var app_version="2009040700";
var js_version="1.0";
var browser=navigator.userAgent.toLowerCase();
function Browser(){return 
}Browser.isOpera=function(){return browser.indexOf("opera")!=-1
};
Browser.isMsIE=function(){return browser.indexOf("msie")!=-1&&(document.all&&!this.isOpera())
};
Browser.isMsIE5=function(){return browser.indexOf("msie 5")!=-1&&document.all
};
Browser.isKonq=function(){return browser.indexOf("konqueror")!=-1
};
Browser.isSafari=function(){return browser.indexOf("safari")!=-1||this.isKonq()
};
Browser.isCamino=function(){return browser.indexOf("camino")!=-1
};
Browser.isMozilla=function(){return !this.isMsIE()&&(!this.isSafari()&&(browser.indexOf("mozilla")!=-1||this.isOpera()))
};
Browser.isMacintosh=function(){return browser.indexOf("macintosh")!=-1
};
Browser.setCookie=function(B,D,A,F,C,E){checkArgs(2);
document.cookie=B+"="+escape(D)+((A)?"; expires="+A.toGMTString():"")+((F)?"; path="+F:"")+((C)?"; domain="+C:"")+((E)?"; secure":"")
};
Browser.getCookie=function(C){checkArgs(1);
var B=document.cookie;
var E=C+"=";
var D=B.indexOf("; "+E);
if(D==-1){D=B.indexOf(E);
if(D!==0){return null
}}else{D+=2
}var A=document.cookie.indexOf(";",D);
if(A==-1){A=B.length
}return unescape(B.substring(D+E.length,A))
};
Browser.deleteCookie=function(A,C,B){if(this.getCookie(A)){document.cookie=A+"="+((C)?"; path="+C:"")+((B)?"; domain="+B:"")+"; expires=Thu, 01-Jan-70 00:00:01 GMT"
}};
Browser.supportCookie=function(){var A="jscookietest=valid";
document.cookie=A;
if(document.cookie.indexOf(A)==-1){return false
}document.cookie=A+";expires="+new Date(0).toGMTString();
return true
};
function checkArgs(A){var B=checkArgs.caller;
if(B&&B.arguments.length!=A){beep("Wrong number of arguments! [caller: "+getSignature(B)+"]")
}}function getSignature(B){if(B===null){return""
}var A=B.toString();
return A.substring(0,A.indexOf("{"))
}function beep(C,B){try{throw C
}catch(A){handleException(A,B)
}}function handleException(C,G){var B="Javascript exception: "+(G?G:"")+" "+C;
if(Browser.isMsIE()){B+=" "+C.name+": "+C.message+" ("+C.number+")"
}var D="";
if(typeof C=="string"){D=C+"\n"
}else{for(var A in C){try{D+=A+": "+C[A]+"\n"
}catch(F){}}}D+=trackStack(handleException.caller);
log.debug("summary: "+B+"<br />detail: "+trackStack(handleException.caller));
var E="Application version: "+app_version+"\nJavaScript version: "+js_version+"\n"+B+"\n======================\nEmail: TODO\nBrowser: "+browser+"\nDetail:\n\n"+D;
submitException(E)
}function submitException(A){log.info("I am sending the exception...");
log.info(A)
}var funRegexp=/function (\w+)/;
function printStrack(B){var A=funRegexp.exec(String(B));
if(A){return A[1]
}return""
}function trackStack(D){try{if(Browser.isMozilla()){return Error().stack
}if(!D){return""
}var B="<- "+printStrack(D)+"(";
for(var C=0;
C<D.arguments.length;
C++){if(C>0){B+=", "
}var A=String(D.arguments[C]);
if(A.length>40){A=A.substr(0,40)+"..."
}B+=A
}B+=")\n";
B+=trackStack(D.caller);
return B
}catch(E){return"[Cannot get stack trace]: "+E+"\n"
}}function $(){var C=new Array();
for(var B=0;
B<arguments.length;
B++){var A=arguments[B];
if(typeof A=="string"){if(document.getElementById){A=document.getElementById(A)
}else{if(document.all){A=document.all[A]
}}}C.push(A)
}if(arguments.length==1&&C.length>0){return C[0]
}else{return C
}}function log(){return 
}log.fatal=function(A){return 
};
log.error=function(A){return 
};
log.warn=function(A){return 
};
log.info=function(A){return 
};
log.debug=function(A){return 
};
log.isFatalEnabled=function(){return false
};
log.isErrorEnabled=function(){return false
};
log.isWarnEnabled=function(){return false
};
log.isInfoEnabled=function(){return false
};
log.isDebugEnabled=function(){return false
};
log.write=function(A){return 
};
log.writeXML=function(A){return 
};
log.writeRaw=function(A){return 
};
log.clear=function(){return 
};
log.show=function(){return 
};
log.div=function(){return 
};
function showLogWin(A){return 
}var _val_agt=navigator.userAgent.toLowerCase();
var _val_is_major=parseInt(navigator.appVersion);
var _val_is_ie=((_val_agt.indexOf("msie")!=-1)&&(_val_agt.indexOf("opera")==-1));
var _val_isNT=_val_agt.indexOf("windows nt")!=-1;
var _val_IE=(document.all);
var _val_IE4=(_val_is_ie&&(_val_is_major==4)&&(_val_agt.indexOf("msie 4")!=-1));
var _val_IE6=(_val_is_ie&&(_val_agt.indexOf("msie 6.0")!=-1));
var _val_NS=(document.layers);
var _val_DOM=(document.getElementById);
var _val_isMac=(_val_agt.indexOf("Mac")==-1);
var _val_allString="document.";
_val_allString+=(_val_IE)?"all.":(_val_DOM)?'getElementById("':"";
var _val_styleString=(_val_IE)?".style":(_val_DOM)?'").style':"";
var _val_endAllString=(_val_DOM&&!_val_IE)?'")':"";
var _val_px=(_val_DOM)?"px":"";
var Page_DomValidationVer="2";
var Page_IsValid=true;
var Page_BlockSubmit=false;
function ValidatorUpdateDisplay(D){try{var E=dom_getAttribute(D,"display");
var B="",A="display: ";
if(typeof (E)=="string"){if(E=="None"){return 
}if(E=="Dynamic"){B=D.isvalid?"none":"inline";
D.style.display=B;
return 
}}D.style.visibility=D.isvalid?"hidden":"visible"
}catch(C){}return 
}function ValidatorUpdateIsValid(){for(var B=0;
B<Page_Validators.length;
B++){try{if(!Page_Validators[B].isvalid){Page_IsValid=false;
Page_BlockSubmit=true;
return 
}}catch(A){}}Page_IsValid=true
}function ValidatorHookupControl(C,E){if(C!=null){if(typeof (C.Validators)=="undefined"){C.Validators=new Array;
var B=C.onchange;
var D;
if(typeof (B)=="function"){B=B.toString();
D="if (Page_IsValid || Page_BlockSubmit) {"+B.substring(B.indexOf("{")+1,B.lastIndexOf("}"))+"}"
}else{D=""
}var A=new Function("ValidatorOnChange('"+C.id+"'); "+D);
C.onchange=A
}C.Validators[C.Validators.length]=E
}}function ValidatorGetValue(D){var C;
C=dom_getElementByID(D);
if(C==null){return""
}if(typeof (C.value)=="string"){return C.value
}if(typeof (C.tagName)=="undefined"&&typeof (C.length)=="number"){var B;
for(B=0;
B<C.length;
B++){var A=C[B];
if(typeof (A.value)=="string"&&(A.type!="radio"||A.status==true)){return A.value
}}}}function Page_ClientValidate(){var B,C;
try{for(B=0;
B<Page_Validators.length;
B++){try{ValidatorValidate(Page_Validators[B])
}catch(A){}}ValidatorUpdateIsValid();
ValidationSummaryOnSubmit();
Page_BlockSubmit=!Page_IsValid
}catch(A){}return Page_IsValid
}function ValidatorCommonOnSubmit(){var A=!Page_BlockSubmit;
if(!_val_NS){if(_val_IE){event.returnValue=A
}}Page_BlockSubmit=false;
return A
}function ValidatorOnChange(C){var A=dom_getElementByID(C);
var D=A.Validators;
var B;
for(B=0;
B<D.length;
B++){ValidatorValidate(D[B])
}ValidatorUpdateIsValid();
return Page_IsValid
}function ValidatorValidate(A){A.isvalid=true;
if(A.enabled!=false){if(typeof (A.evalfunc)=="function"){A.isvalid=A.evalfunc(A)
}}ValidatorUpdateDisplay(A)
}function ValidatorOnLoad(){if(typeof (Page_Validators)=="undefined"){return 
}var i,val;
for(i=0;
i<Page_Validators.length;
i++){val=Page_Validators[i];
try{var evalFunction=dom_getAttribute(val,"evaluationfunction");
if(typeof (evalFunction)=="string"){eval("val.evalfunc = "+evalFunction+";")
}var isValidAttribute=dom_getAttribute(val,"isvalid");
if(typeof (isValidAttribute)=="string"){if(isValidAttribute=="False"){val.isvalid=false;
Page_IsValid=false
}else{val.isvalid=true
}}else{val.isvalid=true
}if(typeof (val.enabled)=="string"){val.enabled=(val.enabled!="False")
}var controlToValidate=dom_getAttribute(val,"controltovalidate");
if(typeof (controlToValidate)=="string"){ValidatorHookupControl(dom_getElementByID(controlToValidate),val)
}var controlhookup=dom_getAttribute(val,"controlhookup");
if(typeof (controlhookup)=="string"){if(controlhookup!=""){ValidatorHookupControl(dom_getElementByID(controlhookup),val)
}}}catch(ex){}}Page_ValidationActive=true;
if(!Page_IsValid){ValidationSummaryOnSubmit()
}if(_val_IE4){var ev=new Function("ValidationSummaryOnSubmit();");
document.onreadystatechange=ev
}return 
}function RegularExpressionValidatorEvaluateIsValid(E){try{var C=ValidatorGetValue(dom_getAttribute(E,"controltovalidate"));
if(C==""){return true
}var D=new RegExp(dom_getAttribute(E,"validationexpression"));
var B=D.exec(C);
return(B!=null&&C==B[0])
}catch(A){}return false
}function ValidatorTrim(A){return A.replace(/^\s+|\s+$/g,"")
}function RequiredFieldValidatorEvaluateIsValid(B){try{return(ValidatorTrim(ValidatorGetValue(dom_getAttribute(B,"controltovalidate")))!=ValidatorTrim(dom_getAttribute(B,"initialvalue")))
}catch(A){}return false
}function ValidatorCompare(D,C,B,G){var A=dom_getAttribute(G,"type");
var F,E;
if((F=ValidatorConvert(D,A,G))==null){return false
}if(B=="DataTypeCheck"){return true
}if((E=ValidatorConvert(C,A,G))==null){return true
}if(E==""){return true
}switch(B){case"NotEqual":return(F!=E);
case"GreaterThan":return(F>E);
case"GreaterThanEqual":return(F>=E);
case"LessThan":return(F<E);
case"LessThanEqual":return(F<=E);
default:return(F==E)
}}function CompareValidatorEvaluateIsValid(H){try{var F=dom_getAttribute(H,"controltovalidate");
if(null==F){return true
}var E=ValidatorGetValue(F);
if(ValidatorTrim(E).length==0){return true
}var B="";
var D=dom_getAttribute(H,"controlhookup");
var G=false;
if(D!=null){if(typeof (D)=="string"){if(D!=""){G=true
}}}if(!G){var A=dom_getAttribute(H,"valuetocompare");
if(typeof (A)=="string"){B=A
}}else{B=ValidatorGetValue(dom_getAttribute(H,"controlhookup"))
}operator=dom_getAttribute(H,"operator");
return ValidatorCompare(E,B,operator,H)
}catch(C){}return false
}function CustomValidatorEvaluateIsValid(val){var value="";
var ctrl=dom_getAttribute(val,"controltovalidate");
if(typeof (ctrl)=="string"){if(ctrl!=""){value=ValidatorGetValue(ctrl);
if(value==""){return true
}}}var valid=true;
var func_str=dom_getAttribute(val,"clientvalidationfunction");
if(typeof (func_str)=="string"){if(func_str!=""){eval("valid = ("+func_str+"(val, value) != false);")
}}return valid
}function RangeValidatorEvaluateIsValid(E){var D;
var C=dom_getAttribute(E,"controltovalidate");
if(typeof (C)=="string"){if(C!=""){D=ValidatorGetValue(C);
if(D==""){return true
}}}var B=dom_getAttribute(E,"minimumvalue");
var A=dom_getAttribute(E,"maximumvalue");
if(B==null&&A==null){return true
}if(B==""){B=0
}if(A==""){A=0
}return((parseFloat(D)>=parseFloat(B))&&(parseFloat(D)<=parseFloat(A)))
}function ValidatorConvert(J,N,C){function O(P){return(P+parseInt(C.century))-((P<C.cutoffyear)?0:100)
}var H,B,E,G;
if(N=="Integer"){G=/^\s*[-\+]?\d+\s*$/;
if(J.match(G)==null){return null
}H=parseInt(J,10);
return(isNaN(H)?null:H)
}else{if(N=="Double"){G=new RegExp("^\\s*([-\\+])?(\\d+)?(\\"+C.decimalchar+"(\\d+))?\\s*$");
E=J.match(G);
if(E==null){return null
}B=E[1]+(E[2].length>0?E[2]:"0")+"."+E[4];
H=parseFloat(B);
return(isNaN(H)?null:H)
}else{if(N=="Currency"){G=new RegExp("^\\s*([-\\+])?(((\\d+)\\"+C.groupchar+")*)(\\d+)"+((C.digits>0)?"(\\"+C.decimalchar+"(\\d{1,"+C.digits+"}))?":"")+"\\s*$");
E=J.match(G);
if(E==null){return null
}var A=E[2]+E[5];
B=E[1]+A.replace(new RegExp("(\\"+C.groupchar+")","g"),"")+((C.digits>0)?"."+E[7]:0);
H=parseFloat(B);
return(isNaN(H)?null:H)
}else{if(N=="Date"){var F=new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$");
E=J.match(F);
var M,K,L;
if(E!=null&&(E[2].length==4||C.dateorder=="ymd")){M=E[6];
K=E[5];
L=(E[2].length==4)?E[2]:O(parseInt(E[3],10))
}else{if(C.dateorder=="ymd"){return null
}var I=new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$");
E=J.match(I);
if(E==null){return null
}if(C.dateorder=="mdy"){M=E[3];
K=E[1]
}else{M=E[1];
K=E[3]
}L=(E[5].length==4)?E[5]:O(parseInt(E[6],10))
}K-=1;
var D=new Date(L,K,M);
return(typeof (D)=="object"&&L==D.getFullYear()&&K==D.getMonth()&&M==D.getDate())?D.valueOf():null
}else{return J.toString()
}}}}}function ValidationSummaryOnSubmit(){if(typeof (Page_ValidationSummaries)=="undefined"){return 
}var C,E,F,A,B,G;
for(E=0;
E<Page_ValidationSummaries.length;
E++){C=Page_ValidationSummaries[E];
C.style.display="none";
if(!Page_IsValid){A=dom_getAttribute(C,"showsummary");
if(A!="False"){C.style.display="";
if(typeof (C.displaymode)!="string"){C.displaymode="BulletList"
}switch(C.displaymode){case"List":headerSep="<br>";
first="";
pre="";
post="<br>";
final_block="";
break;
case"BulletList":default:headerSep="";
first="<ul>";
pre="<li>";
post="</li>";
final_block="</ul>";
break;
case"SingleParagraph":headerSep=" ";
first="";
pre="";
post=" ";
final_block="<br>";
break
}F="";
B=dom_getAttribute(C,"headertext");
if(typeof (B)=="string"){F+=B+headerSep
}var D=0;
F+=first;
for(i=0;
i<Page_Validators.length;
i++){G=dom_getAttribute(Page_Validators[i],"errormessage");
if(!Page_Validators[i].isvalid&&typeof (G)=="string"){if(G!=""){D++;
F+=pre+G+post
}}}F+=final_block;
if(_val_IE4){if(document.readyState=="complete"){C.innerHTML=F;
window.scrollTo(0,0);
C.style.visibility="visible"
}}else{C.innerHTML=F;
window.scrollTo(0,0);
C.style.visibility="visible"
}}A=dom_getAttribute(C,"showmessagebox");
if(A=="True"){F="";
B=dom_getAttribute(C,"headertext");
if(typeof (B)=="string"){F+=B+"\n"
}for(i=0;
i<Page_Validators.length;
i++){G=dom_getAttribute(Page_Validators[i],"errormessage");
if(!Page_Validators[i].isvalid&&typeof (G)=="string"){switch(C.displaymode){case"List":F+=G+"\n";
break;
case"BulletList":default:F+="  - "+G+"\n";
break;
case"SingleParagraph":F+=G+" ";
break
}}}alert(F)
}}}}function dom_getAttribute(control,attribute){var attrib;
if(_val_DOM){attrib=control.getAttribute(attribute,false)
}else{attrib=eval(_val_allString+control.id+"."+attribute+_val_endAllString)
}return attrib
}function dom_getElementByID(id){var element=eval(_val_allString+id+_val_endAllString);
return element
}/*@end@*/var Prototype={Version:"1.4.0",ScriptFragment:"(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)",emptyFunction:function(){},K:function(A){return A
}};
var Class={create:function(){return function(){this.initialize.apply(this,arguments)
}
}};
var Abstract=new Object();
Object.extend=function(A,B){for(property in B){A[property]=B[property]
}return A
};
Object.inspect=function(A){try{if(A==undefined){return"undefined"
}if(A==null){return"null"
}return A.inspect?A.inspect():A.toString()
}catch(B){if(B instanceof RangeError){return"..."
}throw B
}};
Function.prototype.bind=function(){var A=this,C=$A(arguments),B=C.shift();
return function(){return A.apply(B,C.concat($A(arguments)))
}
};
Function.prototype.bindAsEventListener=function(B){var A=this;
return function(C){return A.call(B,C||window.event)
}
};
Object.extend(Number.prototype,{toColorPart:function(){var A=this.toString(16);
if(this<16){return"0"+A
}return A
},succ:function(){return this+1
},times:function(A){$R(0,this,true).each(A);
return this
}});
var Try={these:function(){var C;
for(var B=0;
B<arguments.length;
B++){var A=arguments[B];
try{C=A();
break
}catch(D){}}return C
}};
var PeriodicalExecuter=Class.create();
PeriodicalExecuter.prototype={initialize:function(B,A){this.callback=B;
this.frequency=A;
this.currentlyExecuting=false;
this.registerCallback()
},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000)
},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;
this.callback()
}finally{this.currentlyExecuting=false
}}}};
function $(){var C=new Array();
for(var B=0;
B<arguments.length;
B++){var A=arguments[B];
if(typeof A=="string"){A=document.getElementById(A)
}if(arguments.length==1){return A
}C.push(A)
}return C
}Object.extend(String.prototype,{stripTags:function(){return this.replace(/<\/?[^>]+>/gi,"")
},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,"img"),"")
},extractScripts:function(){var B=new RegExp(Prototype.ScriptFragment,"img");
var A=new RegExp(Prototype.ScriptFragment,"im");
return(this.match(B)||[]).map(function(C){return(C.match(A)||["",""])[1]
})
},evalScripts:function(){return this.extractScripts().map(eval)
},escapeHTML:function(){var B=document.createElement("div");
var A=document.createTextNode(this);
B.appendChild(A);
return B.innerHTML
},unescapeHTML:function(){var A=document.createElement("div");
A.innerHTML=this.stripTags();
return A.childNodes[0]?A.childNodes[0].nodeValue:""
},toQueryParams:function(){var A=this.match(/^\??(.*)$/)[1].split("&");
return A.inject({},function(D,B){var C=B.split("=");
D[C[0]]=C[1];
return D
})
},toArray:function(){return this.split("")
},camelize:function(){var D=this.split("-");
if(D.length==1){return D[0]
}var B=this.indexOf("-")==0?D[0].charAt(0).toUpperCase()+D[0].substring(1):D[0];
for(var C=1,A=D.length;
C<A;
C++){var E=D[C];
B+=E.charAt(0).toUpperCase()+E.substring(1)
}return B
},inspect:function(){return"'"+this.replace("\\","\\\\").replace("'","\\'")+"'"
}});
String.prototype.parseQuery=String.prototype.toQueryParams;
var $break=new Object();
var $continue=new Object();
var Enumerable={each:function(B){var A=0;
try{this._each(function(D){try{B(D,A++)
}catch(E){if(E!=$continue){throw E
}}})
}catch(C){if(C!=$break){throw C
}}},all:function(B){var A=true;
this.each(function(D,C){A=A&&!!(B||Prototype.K)(D,C);
if(!A){throw $break
}});
return A
},any:function(B){var A=true;
this.each(function(D,C){if(A=!!(B||Prototype.K)(D,C)){throw $break
}});
return A
},collect:function(B){var A=[];
this.each(function(D,C){A.push(B(D,C))
});
return A
},detect:function(B){var A;
this.each(function(D,C){if(B(D,C)){A=D;
throw $break
}});
return A
},findAll:function(B){var A=[];
this.each(function(D,C){if(B(D,C)){A.push(D)
}});
return A
},grep:function(C,B){var A=[];
this.each(function(F,E){var D=F.toString();
if(D.match(C)){A.push((B||Prototype.K)(F,E))
}});
return A
},include:function(A){var B=false;
this.each(function(C){if(C==A){B=true;
throw $break
}});
return B
},inject:function(A,B){this.each(function(D,C){A=B(A,D,C)
});
return A
},invoke:function(B){var A=$A(arguments).slice(1);
return this.collect(function(C){return C[B].apply(C,A)
})
},max:function(B){var A;
this.each(function(D,C){D=(B||Prototype.K)(D,C);
if(D>=(A||D)){A=D
}});
return A
},min:function(B){var A;
this.each(function(D,C){D=(B||Prototype.K)(D,C);
if(D<=(A||D)){A=D
}});
return A
},partition:function(C){var B=[],A=[];
this.each(function(E,D){((C||Prototype.K)(E,D)?B:A).push(E)
});
return[B,A]
},pluck:function(B){var A=[];
this.each(function(D,C){A.push(D[B])
});
return A
},reject:function(B){var A=[];
this.each(function(D,C){if(!B(D,C)){A.push(D)
}});
return A
},sortBy:function(A){return this.collect(function(C,B){return{value:C,criteria:A(C,B)}
}).sort(function(E,D){var C=E.criteria,B=D.criteria;
return C<B?-1:C>B?1:0
}).pluck("value")
},toArray:function(){return this.collect(Prototype.K)
},zip:function(){var B=Prototype.K,A=$A(arguments);
if(typeof A.last()=="function"){B=A.pop()
}var C=[this].concat(A).map($A);
return this.map(function(E,D){B(E=C.pluck(D));
return E
})
},inspect:function(){return"#<Enumerable:"+this.toArray().inspect()+">"
}};
Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});
var $A=Array.from=function(C){if(!C){return[]
}if(C.toArray){return C.toArray()
}else{var B=[];
for(var A=0;
A<C.length;
A++){B.push(C[A])
}return B
}};
Object.extend(Array.prototype,Enumerable);
Array.prototype._reverse=Array.prototype.reverse;
Object.extend(Array.prototype,{_each:function(B){for(var A=0;
A<this.length;
A++){B(this[A])
}},clear:function(){this.length=0;
return this
},first:function(){return this[0]
},last:function(){return this[this.length-1]
},compact:function(){return this.select(function(A){return A!=undefined||A!=null
})
},flatten:function(){return this.inject([],function(B,A){return B.concat(A.constructor==Array?A.flatten():[A])
})
},without:function(){var A=$A(arguments);
return this.select(function(B){return !A.include(B)
})
},indexOf:function(A){for(var B=0;
B<this.length;
B++){if(this[B]==A){return B
}}return -1
},reverse:function(A){return(A!==false?this:this.toArray())._reverse()
},shift:function(){var A=this[0];
for(var B=0;
B<this.length-1;
B++){this[B]=this[B+1]
}this.length--;
return A
},inspect:function(){return"["+this.map(Object.inspect).join(", ")+"]"
}});
var Hash={_each:function(A){for(key in this){var B=this[key];
if(typeof B=="function"){continue
}var C=[key,B];
C.key=key;
C.value=B;
A(C)
}},keys:function(){return this.pluck("key")
},values:function(){return this.pluck("value")
},merge:function(A){return $H(A).inject($H(this),function(B,C){B[C.key]=C.value;
return B
})
},toQueryString:function(){return this.map(function(A){return A.map(encodeURIComponent).join("=")
}).join("&")
},inspect:function(){return"#<Hash:{"+this.map(function(A){return A.map(Object.inspect).join(": ")
}).join(", ")+"}>"
}};
function $H(A){var B=Object.extend({},A||{});
Object.extend(B,Enumerable);
Object.extend(B,Hash);
return B
}ObjectRange=Class.create();
Object.extend(ObjectRange.prototype,Enumerable);
Object.extend(ObjectRange.prototype,{initialize:function(C,A,B){this.start=C;
this.end=A;
this.exclusive=B
},_each:function(A){var B=this.start;
do{A(B);
B=B.succ()
}while(this.include(B))
},include:function(A){if(A<this.start){return false
}if(this.exclusive){return A<this.end
}return A<=this.end
}});
var $R=function(C,A,B){return new ObjectRange(C,A,B)
};
var Ajax={getTransport:function(){return Try.these(function(){return new ActiveXObject("Msxml2.XMLHTTP")
},function(){return new ActiveXObject("Microsoft.XMLHTTP")
},function(){return new XMLHttpRequest()
})||false
},activeRequestCount:0};
Ajax.Responders={responders:[],_each:function(A){this.responders._each(A)
},register:function(A){if(!this.include(A)){this.responders.push(A)
}},unregister:function(A){this.responders=this.responders.without(A)
},dispatch:function(D,B,C,A){this.each(function(E){if(E[D]&&typeof E[D]=="function"){try{E[D].apply(E,[B,C,A])
}catch(F){}}})
}};
Object.extend(Ajax.Responders,Enumerable);
Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++
},onComplete:function(){Ajax.activeRequestCount--
}});
Ajax.Base=function(){};
Ajax.Base.prototype={setOptions:function(A){this.options={method:"post",asynchronous:true,parameters:""};
Object.extend(this.options,A||{})
},responseIsSuccess:function(){return this.transport.status==undefined||this.transport.status==0||(this.transport.status>=200&&this.transport.status<300)
},responseIsFailure:function(){return !this.responseIsSuccess()
}};
Ajax.Request=Class.create();
Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];
Ajax.Request.prototype=Object.extend(new Ajax.Base(),{initialize:function(B,A){this.transport=Ajax.getTransport();
this.setOptions(A);
this.request(B)
},request:function(B){var C=this.options.parameters||"";
if(C.length>0){C+="&_="
}try{this.url=B;
if(this.options.method=="get"&&C.length>0){this.url+=(this.url.match(/\?/)?"&":"?")+C
}Ajax.Responders.dispatch("onCreate",this,this.transport);
this.transport.open(this.options.method,this.url,this.options.asynchronous);
if(this.options.asynchronous){this.transport.onreadystatechange=this.onStateChange.bind(this);
setTimeout((function(){this.respondToReadyState(1)
}).bind(this),10)
}this.setRequestHeaders();
var A=this.options.postBody?this.options.postBody:C;
this.transport.send(this.options.method=="post"?A:null)
}catch(D){this.dispatchException(D)
}},setRequestHeaders:function(){var B=["X-Requested-With","XMLHttpRequest","X-Prototype-Version",Prototype.Version];
if(this.options.method=="post"){B.push("Content-type","application/x-www-form-urlencoded");
if(this.transport.overrideMimeType){B.push("Connection","close")
}}if(this.options.requestHeaders){B.push.apply(B,this.options.requestHeaders)
}for(var A=0;
A<B.length;
A+=2){this.transport.setRequestHeader(B[A],B[A+1])
}},onStateChange:function(){var A=this.transport.readyState;
if(A!=1){this.respondToReadyState(this.transport.readyState)
}},header:function(A){try{return this.transport.getResponseHeader(A)
}catch(B){}},evalJSON:function(){try{return eval(this.header("X-JSON"))
}catch(e){}},evalResponse:function(){try{return eval(this.transport.responseText)
}catch(e){this.dispatchException(e)
}},respondToReadyState:function(A){var C=Ajax.Request.Events[A];
var E=this.transport,B=this.evalJSON();
if(C=="Complete"){try{(this.options["on"+this.transport.status]||this.options["on"+(this.responseIsSuccess()?"Success":"Failure")]||Prototype.emptyFunction)(E,B)
}catch(D){this.dispatchException(D)
}if((this.header("Content-type")||"").match(/^text\/javascript/i)){this.evalResponse()
}}try{(this.options["on"+C]||Prototype.emptyFunction)(E,B);
Ajax.Responders.dispatch("on"+C,this,E,B)
}catch(D){this.dispatchException(D)
}if(C=="Complete"){this.transport.onreadystatechange=Prototype.emptyFunction
}},dispatchException:function(A){(this.options.onException||Prototype.emptyFunction)(this,A);
Ajax.Responders.dispatch("onException",this,A)
}});
Ajax.Updater=Class.create();
Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(A,C,B){this.containers={success:A.success?$(A.success):$(A),failure:A.failure?$(A.failure):(A.success?null:$(A))};
this.transport=Ajax.getTransport();
this.setOptions(B);
var D=this.options.onComplete||Prototype.emptyFunction;
this.options.onComplete=(function(F,E){this.updateContent();
D(F,E)
}).bind(this);
this.request(C)
},updateContent:function(){var B=this.responseIsSuccess()?this.containers.success:this.containers.failure;
var A=this.transport.responseText;
if(!this.options.evalScripts){A=A.stripScripts()
}if(B){if(this.options.insertion){new this.options.insertion(B,A)
}else{Element.update(B,A)
}}if(this.responseIsSuccess()){if(this.onComplete){setTimeout(this.onComplete.bind(this),10)
}}}});
Ajax.PeriodicalUpdater=Class.create();
Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(A,C,B){this.setOptions(B);
this.onComplete=this.options.onComplete;
this.frequency=(this.options.frequency||2);
this.decay=(this.options.decay||1);
this.updater={};
this.container=A;
this.url=C;
this.start()
},start:function(){this.options.onComplete=this.updateComplete.bind(this);
this.onTimerEvent()
},stop:function(){this.updater.onComplete=undefined;
clearTimeout(this.timer);
(this.onComplete||Prototype.emptyFunction).apply(this,arguments)
},updateComplete:function(A){if(this.options.decay){this.decay=(A.responseText==this.lastText?this.decay*this.options.decay:1);
this.lastText=A.responseText
}this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000)
},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options)
}});
document.getElementsByClassName=function(C,A){var B=($(A)||document.body).getElementsByTagName("*");
return $A(B).inject([],function(D,E){if(E.className.match(new RegExp("(^|\\s)"+C+"(\\s|$)"))){D.push(E)
}return D
})
};
if(!window.Element){var Element=new Object()
}Object.extend(Element,{visible:function(A){return $(A).style.display!="none"
},toggle:function(){for(var B=0;
B<arguments.length;
B++){var A=$(arguments[B]);
Element[Element.visible(A)?"hide":"show"](A)
}},hide:function(){for(var B=0;
B<arguments.length;
B++){var A=$(arguments[B]);
A.style.display="none"
}},show:function(){for(var B=0;
B<arguments.length;
B++){var A=$(arguments[B]);
A.style.display=""
}},remove:function(A){A=$(A);
A.parentNode.removeChild(A)
},update:function(B,A){$(B).innerHTML=A.stripScripts();
setTimeout(function(){A.evalScripts()
},10)
},getHeight:function(A){A=$(A);
return A.offsetHeight
},classNames:function(A){return new Element.ClassNames(A)
},hasClassName:function(A,B){if(!(A=$(A))){return 
}return Element.classNames(A).include(B)
},addClassName:function(A,B){if(!(A=$(A))){return 
}return Element.classNames(A).add(B)
},removeClassName:function(A,B){if(!(A=$(A))){return 
}return Element.classNames(A).remove(B)
},cleanWhitespace:function(B){B=$(B);
for(var A=0;
A<B.childNodes.length;
A++){var C=B.childNodes[A];
if(C.nodeType==3&&!/\S/.test(C.nodeValue)){Element.remove(C)
}}},empty:function(A){return $(A).innerHTML.match(/^\s*$/)
},scrollTo:function(B){B=$(B);
var A=B.x?B.x:B.offsetLeft,C=B.y?B.y:B.offsetTop;
window.scrollTo(A,C)
},getStyle:function(B,C){B=$(B);
var D=B.style[C.camelize()];
if(!D){if(document.defaultView&&document.defaultView.getComputedStyle){var A=document.defaultView.getComputedStyle(B,null);
D=A?A.getPropertyValue(C):null
}else{if(B.currentStyle){D=B.currentStyle[C.camelize()]
}}}if(window.opera&&["left","top","right","bottom"].include(C)){if(Element.getStyle(B,"position")=="static"){D="auto"
}}return D=="auto"?null:D
},setStyle:function(A,B){A=$(A);
for(name in B){A.style[name.camelize()]=B[name]
}},getDimensions:function(B){B=$(B);
if(Element.getStyle(B,"display")!="none"){return{width:B.offsetWidth,height:B.offsetHeight}
}var A=B.style;
var E=A.visibility;
var C=A.position;
A.visibility="hidden";
A.position="absolute";
A.display="";
var F=B.clientWidth;
var D=B.clientHeight;
A.display="none";
A.position=C;
A.visibility=E;
return{width:F,height:D}
},makePositioned:function(A){A=$(A);
var B=Element.getStyle(A,"position");
if(B=="static"||!B){A._madePositioned=true;
A.style.position="relative";
if(window.opera){A.style.top=0;
A.style.left=0
}}},undoPositioned:function(A){A=$(A);
if(A._madePositioned){A._madePositioned=undefined;
A.style.position=A.style.top=A.style.left=A.style.bottom=A.style.right=""
}},makeClipping:function(A){A=$(A);
if(A._overflow){return 
}A._overflow=A.style.overflow;
if((Element.getStyle(A,"overflow")||"visible")!="hidden"){A.style.overflow="hidden"
}},undoClipping:function(A){A=$(A);
if(A._overflow){return 
}A.style.overflow=A._overflow;
A._overflow=undefined
}});
var Toggle=new Object();
Toggle.display=Element.toggle;
Abstract.Insertion=function(A){this.adjacency=A
};
Abstract.Insertion.prototype={initialize:function(A,B){this.element=$(A);
this.content=B.stripScripts();
if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content)
}catch(C){if(this.element.tagName.toLowerCase()=="tbody"){this.insertContent(this.contentFromAnonymousTable())
}else{throw C
}}}else{this.range=this.element.ownerDocument.createRange();
if(this.initializeRange){this.initializeRange()
}this.insertContent([this.range.createContextualFragment(this.content)])
}setTimeout(function(){B.evalScripts()
},10)
},contentFromAnonymousTable:function(){var A=document.createElement("div");
A.innerHTML="<table><tbody>"+this.content+"</tbody></table>";
return $A(A.childNodes[0].childNodes[0].childNodes)
}};
var Insertion=new Object();
Insertion.Before=Class.create();
Insertion.Before.prototype=Object.extend(new Abstract.Insertion("beforeBegin"),{initializeRange:function(){this.range.setStartBefore(this.element)
},insertContent:function(A){A.each((function(B){this.element.parentNode.insertBefore(B,this.element)
}).bind(this))
}});
Insertion.Top=Class.create();
Insertion.Top.prototype=Object.extend(new Abstract.Insertion("afterBegin"),{initializeRange:function(){this.range.selectNodeContents(this.element);
this.range.collapse(true)
},insertContent:function(A){A.reverse(false).each((function(B){this.element.insertBefore(B,this.element.firstChild)
}).bind(this))
}});
Insertion.Bottom=Class.create();
Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion("beforeEnd"),{initializeRange:function(){this.range.selectNodeContents(this.element);
this.range.collapse(this.element)
},insertContent:function(A){A.each((function(B){this.element.appendChild(B)
}).bind(this))
}});
Insertion.After=Class.create();
Insertion.After.prototype=Object.extend(new Abstract.Insertion("afterEnd"),{initializeRange:function(){this.range.setStartAfter(this.element)
},insertContent:function(A){A.each((function(B){this.element.parentNode.insertBefore(B,this.element.nextSibling)
}).bind(this))
}});
Element.ClassNames=Class.create();
Element.ClassNames.prototype={initialize:function(A){this.element=$(A)
},_each:function(A){this.element.className.split(/\s+/).select(function(B){return B.length>0
})._each(A)
},set:function(A){this.element.className=A
},add:function(A){if(this.include(A)){return 
}this.set(this.toArray().concat(A).join(" "))
},remove:function(A){if(!this.include(A)){return 
}this.set(this.select(function(B){return B!=A
}).join(" "))
},toString:function(){return this.toArray().join(" ")
}};
Object.extend(Element.ClassNames.prototype,Enumerable);
var Field={clear:function(){for(var A=0;
A<arguments.length;
A++){$(arguments[A]).value=""
}},focus:function(A){$(A).focus()
},present:function(){for(var A=0;
A<arguments.length;
A++){if($(arguments[A]).value==""){return false
}}return true
},select:function(A){$(A).select()
},activate:function(A){A=$(A);
A.focus();
if(A.select){A.select()
}}};
var Form={serialize:function(D){var E=Form.getElements($(D));
var C=new Array();
for(var B=0;
B<E.length;
B++){var A=Form.Element.serialize(E[B]);
if(A){C.push(A)
}}return C.join("&")
},getElements:function(B){B=$(B);
var C=new Array();
for(tagName in Form.Element.Serializers){var D=B.getElementsByTagName(tagName);
for(var A=0;
A<D.length;
A++){C.push(D[A])
}}return C
},getInputs:function(F,C,D){F=$(F);
var A=F.getElementsByTagName("input");
if(!C&&!D){return A
}var G=new Array();
for(var E=0;
E<A.length;
E++){var B=A[E];
if((C&&B.type!=C)||(D&&B.name!=D)){continue
}G.push(B)
}return G
},disable:function(C){var D=Form.getElements(C);
for(var B=0;
B<D.length;
B++){var A=D[B];
A.blur();
A.disabled="true"
}},enable:function(C){var D=Form.getElements(C);
for(var B=0;
B<D.length;
B++){var A=D[B];
A.disabled=""
}},findFirstElement:function(A){return Form.getElements(A).find(function(B){return B.type!="hidden"&&!B.disabled&&["input","select","textarea"].include(B.tagName.toLowerCase())
})
},focusFirstElement:function(A){Field.activate(Form.findFirstElement(A))
},reset:function(A){$(A).reset()
}};
Form.Element={serialize:function(B){B=$(B);
var D=B.tagName.toLowerCase();
var C=Form.Element.Serializers[D](B);
if(C){var A=encodeURIComponent(C[0]);
if(A.length==0){return 
}if(C[1].constructor!=Array){C[1]=[C[1]]
}return C[1].map(function(E){return A+"="+encodeURIComponent(E)
}).join("&")
}},getValue:function(A){A=$(A);
var C=A.tagName.toLowerCase();
var B=Form.Element.Serializers[C](A);
if(B){return B[1]
}}};
Form.Element.Serializers={input:function(A){switch(A.type.toLowerCase()){case"submit":case"hidden":case"password":case"text":return Form.Element.Serializers.textarea(A);
case"checkbox":case"radio":return Form.Element.Serializers.inputSelector(A)
}return false
},inputSelector:function(A){if(A.checked){return[A.name,A.value]
}},textarea:function(A){return[A.name,A.value]
},select:function(A){return Form.Element.Serializers[A.type=="select-one"?"selectOne":"selectMany"](A)
},selectOne:function(C){var D="",B,A=C.selectedIndex;
if(A>=0){B=C.options[A];
D=B.value;
if(!D&&!("value" in B)){D=B.text
}}return[C.name,D]
},selectMany:function(C){var D=new Array();
for(var B=0;
B<C.length;
B++){var A=C.options[B];
if(A.selected){var E=A.value;
if(!E&&!("value" in A)){E=A.text
}D.push(E)
}}return[C.name,D]
}};
var $F=Form.Element.getValue;
Abstract.TimedObserver=function(){};
Abstract.TimedObserver.prototype={initialize:function(A,B,C){this.frequency=B;
this.element=$(A);
this.callback=C;
this.lastValue=this.getValue();
this.registerCallback()
},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000)
},onTimerEvent:function(){var A=this.getValue();
if(this.lastValue!=A){this.callback(this.element,A);
this.lastValue=A
}}};
Form.Element.Observer=Class.create();
Form.Element.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.Element.getValue(this.element)
}});
Form.Observer=Class.create();
Form.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.serialize(this.element)
}});
Abstract.EventObserver=function(){};
Abstract.EventObserver.prototype={initialize:function(A,B){this.element=$(A);
this.callback=B;
this.lastValue=this.getValue();
if(this.element.tagName.toLowerCase()=="form"){this.registerFormCallbacks()
}else{this.registerCallback(this.element)
}},onElementEvent:function(){var A=this.getValue();
if(this.lastValue!=A){this.callback(this.element,A);
this.lastValue=A
}},registerFormCallbacks:function(){var B=Form.getElements(this.element);
for(var A=0;
A<B.length;
A++){this.registerCallback(B[A])
}},registerCallback:function(A){if(A.type){switch(A.type.toLowerCase()){case"checkbox":case"radio":Event.observe(A,"click",this.onElementEvent.bind(this));
break;
case"password":case"text":case"textarea":case"select-one":case"select-multiple":Event.observe(A,"change",this.onElementEvent.bind(this));
break
}}}};
Form.Element.EventObserver=Class.create();
Form.Element.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.Element.getValue(this.element)
}});
Form.EventObserver=Class.create();
Form.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.serialize(this.element)
}});
if(!window.Event){var Event=new Object()
}Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(A){return A.target||A.srcElement
},isLeftClick:function(A){return(((A.which)&&(A.which==1))||((A.button)&&(A.button==1)))
},pointerX:function(A){return A.pageX||(A.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft))
},pointerY:function(A){return A.pageY||(A.clientY+(document.documentElement.scrollTop||document.body.scrollTop))
},stop:function(A){if(A.preventDefault){A.preventDefault();
A.stopPropagation()
}else{A.returnValue=false;
A.cancelBubble=true
}},findElement:function(C,B){var A=Event.element(C);
while(A.parentNode&&(!A.tagName||(A.tagName.toUpperCase()!=B.toUpperCase()))){A=A.parentNode
}return A
},observers:false,_observeAndCache:function(D,C,B,A){if(!this.observers){this.observers=[]
}if(D.addEventListener){this.observers.push([D,C,B,A]);
D.addEventListener(C,B,A)
}else{if(D.attachEvent){this.observers.push([D,C,B,A]);
D.attachEvent("on"+C,B)
}}},unloadCache:function(){if(!Event.observers){return 
}for(var A=0;
A<Event.observers.length;
A++){Event.stopObserving.apply(this,Event.observers[A]);
Event.observers[A][0]=null
}Event.observers=false
},observe:function(D,C,B,A){var D=$(D);
A=A||false;
if(C=="keypress"&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||D.attachEvent)){C="keydown"
}this._observeAndCache(D,C,B,A)
},stopObserving:function(D,C,B,A){var D=$(D);
A=A||false;
if(C=="keypress"&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||D.detachEvent)){C="keydown"
}if(D.removeEventListener){D.removeEventListener(C,B,A)
}else{if(D.detachEvent){D.detachEvent("on"+C,B)
}}}});
Event.observe(window,"unload",Event.unloadCache,false);
var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;
this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0
},realOffset:function(B){var A=0,C=0;
do{A+=B.scrollTop||0;
C+=B.scrollLeft||0;
B=B.parentNode
}while(B);
return[C,A]
},cumulativeOffset:function(B){var A=0,C=0;
do{A+=B.offsetTop||0;
C+=B.offsetLeft||0;
B=B.offsetParent
}while(B);
return[C,A]
},positionedOffset:function(B){var A=0,C=0;
do{A+=B.offsetTop||0;
C+=B.offsetLeft||0;
B=B.offsetParent;
if(B){p=Element.getStyle(B,"position");
if(p=="relative"||p=="absolute"){break
}}}while(B);
return[C,A]
},offsetParent:function(A){if(A.offsetParent){return A.offsetParent
}if(A==document.body){return A
}while((A=A.parentNode)&&A!=document.body){if(Element.getStyle(A,"position")!="static"){return A
}}return document.body
},within:function(B,A,C){if(this.includeScrollOffsets){return this.withinIncludingScrolloffsets(B,A,C)
}this.xcomp=A;
this.ycomp=C;
this.offset=this.cumulativeOffset(B);
return(C>=this.offset[1]&&C<this.offset[1]+B.offsetHeight&&A>=this.offset[0]&&A<this.offset[0]+B.offsetWidth)
},withinIncludingScrolloffsets:function(B,A,D){var C=this.realOffset(B);
this.xcomp=A+C[0]-this.deltaX;
this.ycomp=D+C[1]-this.deltaY;
this.offset=this.cumulativeOffset(B);
return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+B.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+B.offsetWidth)
},overlap:function(B,A){if(!B){return 0
}if(B=="vertical"){return((this.offset[1]+A.offsetHeight)-this.ycomp)/A.offsetHeight
}if(B=="horizontal"){return((this.offset[0]+A.offsetWidth)-this.xcomp)/A.offsetWidth
}},clone:function(B,C){B=$(B);
C=$(C);
C.style.position="absolute";
var A=this.cumulativeOffset(B);
C.style.top=A[1]+"px";
C.style.left=A[0]+"px";
C.style.width=B.offsetWidth+"px";
C.style.height=B.offsetHeight+"px"
},page:function(D){var A=0,C=0;
var B=D;
do{A+=B.offsetTop||0;
C+=B.offsetLeft||0;
if(B.offsetParent==document.body){if(Element.getStyle(B,"position")=="absolute"){break
}}}while(B=B.offsetParent);
B=D;
do{A-=B.scrollTop||0;
C-=B.scrollLeft||0
}while(B=B.parentNode);
return[C,A]
},clone:function(C,E){var A=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});
C=$(C);
var D=Position.page(C);
E=$(E);
var F=[0,0];
var B=null;
if(Element.getStyle(E,"position")=="absolute"){B=Position.offsetParent(E);
F=Position.page(B)
}if(B==document.body){F[0]-=document.body.offsetLeft;
F[1]-=document.body.offsetTop
}if(A.setLeft){E.style.left=(D[0]-F[0]+A.offsetLeft)+"px"
}if(A.setTop){E.style.top=(D[1]-F[1]+A.offsetTop)+"px"
}if(A.setWidth){E.style.width=C.offsetWidth+"px"
}if(A.setHeight){E.style.height=C.offsetHeight+"px"
}},absolutize:function(B){B=$(B);
if(B.style.position=="absolute"){return 
}Position.prepare();
var D=Position.positionedOffset(B);
var F=D[1];
var E=D[0];
var C=B.clientWidth;
var A=B.clientHeight;
B._originalLeft=E-parseFloat(B.style.left||0);
B._originalTop=F-parseFloat(B.style.top||0);
B._originalWidth=B.style.width;
B._originalHeight=B.style.height;
B.style.position="absolute";
B.style.top=F+"px";
B.style.left=E+"px";
B.style.width=C+"px";
B.style.height=A+"px"
},relativize:function(A){A=$(A);
if(A.style.position=="relative"){return 
}Position.prepare();
A.style.position="relative";
var C=parseFloat(A.style.top||0)-(A._originalTop||0);
var B=parseFloat(A.style.left||0)-(A._originalLeft||0);
A.style.top=C+"px";
A.style.left=B+"px";
A.style.height=A._originalHeight;
A.style.width=A._originalWidth
}};
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){Position.cumulativeOffset=function(B){var A=0,C=0;
do{A+=B.offsetTop||0;
C+=B.offsetLeft||0;
if(B.offsetParent==document.body){if(Element.getStyle(B,"position")=="absolute"){break
}}B=B.offsetParent
}while(B);
return[C,A]
};
/*@end@*/}var Rico={Version:"1.1.2",prototypeVersion:parseFloat(Prototype.Version.split(".")[0]+"."+Prototype.Version.split(".")[1])};
if((typeof Prototype=="undefined")||Rico.prototypeVersion<1.3){throw ("Rico requires the Prototype JavaScript framework >= 1.3")
}Rico.ArrayExtensions=new Array();
if(Object.prototype.extend){Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Object.prototype.extend
}else{Object.prototype.extend=function(A){return Object.extend.apply(this,[this,A])
};
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Object.prototype.extend
}if(Array.prototype.push){Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.push
}if(!Array.prototype.remove){Array.prototype.remove=function(A){if(isNaN(A)||A>this.length){return false
}for(var B=0,C=0;
B<this.length;
B++){if(B!=A){this[C++]=this[B]
}}this.length-=1
};
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.remove
}if(!Array.prototype.removeItem){Array.prototype.removeItem=function(B){for(var A=0;
A<this.length;
A++){if(this[A]==B){this.remove(A);
break
}}};
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.removeItem
}if(!Array.prototype.indices){Array.prototype.indices=function(){var A=new Array();
for(index in this){var C=false;
for(var B=0;
B<Rico.ArrayExtensions.length;
B++){if(this[index]==Rico.ArrayExtensions[B]){C=true;
break
}}if(!C){A[A.length]=index
}}return A
};
Rico.ArrayExtensions[Rico.ArrayExtensions.length]=Array.prototype.indices
}if(window.DOMParser&&window.XMLSerializer&&window.Node&&Node.prototype&&Node.prototype.__defineGetter__){if(!Document.prototype.loadXML){Document.prototype.loadXML=function(B){var C=(new DOMParser()).parseFromString(B,"text/xml");
while(this.hasChildNodes()){this.removeChild(this.lastChild)
}for(var A=0;
A<C.childNodes.length;
A++){this.appendChild(this.importNode(C.childNodes[A],true))
}}
}Document.prototype.__defineGetter__("xml",function(){return(new XMLSerializer()).serializeToString(this)
})
}document.getElementsByTagAndClassName=function(D,E){if(D==null){D="*"
}var C=document.getElementsByTagName(D)||document.all;
var F=new Array();
if(E==null){return C
}for(var B=0;
B<C.length;
B++){var H=C[B];
var G=H.className.split(" ");
for(var A=0;
A<G.length;
A++){if(G[A]==E){F.push(H);
break
}}}return F
};
Rico.Accordion=Class.create();
Rico.Accordion.prototype={initialize:function(A,C){this.container=$(A);
this.lastExpandedTab=null;
this.accordionTabs=new Array();
this.setOptions(C);
this._attachBehaviors();
if(!A){return 
}this.container.style.borderBottom="1px solid "+this.options.borderColor;
if(this.options.onLoadShowTab>=this.accordionTabs.length){this.options.onLoadShowTab=0
}for(var E=0;
E<this.accordionTabs.length;
E++){if(E!=this.options.onLoadShowTab){this.accordionTabs[E].collapse();
this.accordionTabs[E].content.style.display="none"
}}this.lastExpandedTab=this.accordionTabs[this.options.onLoadShowTab];
if(this.options.panelHeight=="auto"){var F=(this.options.onloadShowTab===0)?1:0;
var B=parseInt(RicoUtil.getElementsComputedStyle(this.accordionTabs[F].titleBar,"height"));
if(isNaN(B)){B=this.accordionTabs[F].titleBar.offsetHeight
}var G=this.accordionTabs.length*B;
var D=parseInt(RicoUtil.getElementsComputedStyle(this.container.parentNode,"height"));
if(isNaN(D)){D=this.container.parentNode.offsetHeight
}this.options.panelHeight=D-G-2
}this.lastExpandedTab.content.style.height=this.options.panelHeight+"px";
this.lastExpandedTab.showExpanded();
this.lastExpandedTab.titleBar.style.fontWeight=this.options.expandedFontWeight
},setOptions:function(A){this.options={expandedBg:"#63699c",hoverBg:"#63699c",collapsedBg:"#6b79a5",expandedTextColor:"#ffffff",expandedFontWeight:"bold",hoverTextColor:"#ffffff",collapsedTextColor:"#ced7ef",collapsedFontWeight:"normal",hoverTextColor:"#ffffff",borderColor:"#1f669b",panelHeight:200,onHideTab:null,onShowTab:null,onLoadShowTab:0};
Object.extend(this.options,A||{})
},showTabByIndex:function(C,B){var A=arguments.length==1?true:B;
this.showTab(this.accordionTabs[C],A)
},showTab:function(E,D){if(this.lastExpandedTab==E){return 
}var C=arguments.length==1?true:D;
if(this.options.onHideTab){this.options.onHideTab(this.lastExpandedTab)
}this.lastExpandedTab.showCollapsed();
var B=this;
var A=this.lastExpandedTab;
this.lastExpandedTab.content.style.height=(this.options.panelHeight-1)+"px";
E.content.style.display="";
E.titleBar.style.fontWeight=this.options.expandedFontWeight;
if(C){new Rico.Effect.AccordionSize(this.lastExpandedTab.content,E.content,1,this.options.panelHeight,100,10,{complete:function(){B.showTabDone(A)
}});
this.lastExpandedTab=E
}else{this.lastExpandedTab.content.style.height="1px";
E.content.style.height=this.options.panelHeight+"px";
this.lastExpandedTab=E;
this.showTabDone(A)
}},showTabDone:function(A){A.content.style.display="none";
this.lastExpandedTab.showExpanded();
if(this.options.onShowTab){this.options.onShowTab(this.lastExpandedTab)
}},_attachBehaviors:function(){var A=this._getDirectChildrenByTag(this.container,"DIV");
for(var B=0;
B<A.length;
B++){var E=this._getDirectChildrenByTag(A[B],"DIV");
if(E.length!=2){continue
}var C=E[0];
var D=E[1];
this.accordionTabs.push(new Rico.Accordion.Tab(this,C,D))
}},_getDirectChildrenByTag:function(E,D){var B=new Array();
var A=E.childNodes;
for(var C=0;
C<A.length;
C++){if(A[C]&&A[C].tagName&&A[C].tagName==D){B.push(A[C])
}}return B
}};
Rico.Accordion.Tab=Class.create();
Rico.Accordion.Tab.prototype={initialize:function(A,B,C){this.accordion=A;
this.titleBar=B;
this.content=C;
this._attachBehaviors()
},collapse:function(){this.showCollapsed();
this.content.style.height="1px"
},showCollapsed:function(){this.expanded=false;
this.titleBar.style.backgroundColor=this.accordion.options.collapsedBg;
this.titleBar.style.color=this.accordion.options.collapsedTextColor;
this.titleBar.style.fontWeight=this.accordion.options.collapsedFontWeight;
this.content.style.overflow="hidden"
},showExpanded:function(){this.expanded=true;
this.titleBar.style.backgroundColor=this.accordion.options.expandedBg;
this.titleBar.style.color=this.accordion.options.expandedTextColor;
this.content.style.overflow="auto"
},titleBarClicked:function(A){if(this.accordion.lastExpandedTab==this){return 
}this.accordion.showTab(this)
},hover:function(A){this.titleBar.style.backgroundColor=this.accordion.options.hoverBg;
this.titleBar.style.color=this.accordion.options.hoverTextColor
},unhover:function(A){if(this.expanded){this.titleBar.style.backgroundColor=this.accordion.options.expandedBg;
this.titleBar.style.color=this.accordion.options.expandedTextColor
}else{this.titleBar.style.backgroundColor=this.accordion.options.collapsedBg;
this.titleBar.style.color=this.accordion.options.collapsedTextColor
}},_attachBehaviors:function(){this.content.style.border="1px solid "+this.accordion.options.borderColor;
this.content.style.borderTopWidth="0px";
this.content.style.borderBottomWidth="0px";
this.content.style.margin="0px";
this.titleBar.onclick=this.titleBarClicked.bindAsEventListener(this);
this.titleBar.onmouseover=this.hover.bindAsEventListener(this);
this.titleBar.onmouseout=this.unhover.bindAsEventListener(this)
}};
Rico.AjaxEngine=Class.create();
Rico.AjaxEngine.prototype={initialize:function(){this.ajaxElements=new Array();
this.ajaxObjects=new Array();
this.requestURLS=new Array();
this.options={}
},registerAjaxElement:function(B,A){if(!A){A=$(B)
}this.ajaxElements[B]=A
},registerAjaxObject:function(B,A){this.ajaxObjects[B]=A
},registerRequest:function(A,B){this.requestURLS[A]=B
},sendRequest:function(B,A){if(arguments.length>=2){if(typeof arguments[1]=="string"){A={parameters:this._createQueryString(arguments,1)}
}}this.sendRequestWithData(B,null,A)
},sendRequestWithData:function(D,C,A){var B=this.requestURLS[D];
if(B==null){return 
}if(arguments.length>=3){if(typeof arguments[2]=="string"){A.parameters=this._createQueryString(arguments,2)
}}new Ajax.Request(B,this._requestOptions(A,C))
},sendRequestAndUpdate:function(C,A,B){if(arguments.length>=3){if(typeof arguments[2]=="string"){B.parameters=this._createQueryString(arguments,2)
}}this.sendRequestWithDataAndUpdate(C,null,A,B)
},sendRequestWithDataAndUpdate:function(F,E,A,B){var C=this.requestURLS[F];
if(C==null){return 
}if(arguments.length>=4){if(typeof arguments[3]=="string"){B.parameters=this._createQueryString(arguments,3)
}}var D=this._requestOptions(B,E);
new Ajax.Updater(A,C,D)
},_requestOptions:function(B,D){var C=["X-Rico-Version",Rico.Version];
var A="post";
if(D==null){if(Rico.prototypeVersion<1.4){C.push("Content-type","text/xml")
}else{A="get"
}}(!B)?B={}:"";
if(!B._RicoOptionsProcessed){if(B.onComplete){B.onRicoComplete=B.onComplete
}if(B.overrideOnComplete){B.onComplete=B.overrideOnComplete
}else{B.onComplete=this._onRequestComplete.bind(this)
}B._RicoOptionsProcessed=true
}this.options={requestHeaders:C,parameters:B.parameters,postBody:D,method:A,onComplete:B.onComplete};
Object.extend(this.options,B);
return this.options
},_createQueryString:function(E,F){var H="";
for(var C=F;
C<E.length;
C++){if(C!=F){H+="&"
}var D=E[C];
if(D.name!=undefined&&D.value!=undefined){H+=D.name+"="+escape(D.value)
}else{var B=D.indexOf("=");
var G=D.substring(0,B);
var A=D.substring(B+1);
H+=G+"="+escape(A)
}}return H
},_onRequestComplete:function(B){if(!B){return 
}if(B.status!=200){return 
}var A=B.responseXML.getElementsByTagName("ajax-response");
if(A==null||A.length!=1){return 
}this._processAjaxResponse(A[0].childNodes);
var C=this.options.onRicoComplete;
if(C!=null){C()
}},_processAjaxResponse:function(D){for(var C=0;
C<D.length;
C++){var E=D[C];
if(E.nodeType!=1){continue
}var B=E.getAttribute("type");
var A=E.getAttribute("id");
if(B=="object"){this._processAjaxObjectUpdate(this.ajaxObjects[A],E)
}else{if(B=="element"){this._processAjaxElementUpdate(this.ajaxElements[A],E)
}else{alert("unrecognized AjaxResponse type : "+B)
}}}},_processAjaxObjectUpdate:function(A,B){A.ajaxUpdate(B)
},_processAjaxElementUpdate:function(A,B){A.innerHTML=RicoUtil.getContentAsString(B)
}};
var ajaxEngine=new Rico.AjaxEngine();
Rico.Color=Class.create();
Rico.Color.prototype={initialize:function(C,B,A){this.rgb={r:C,g:B,b:A}
},setRed:function(A){this.rgb.r=A
},setGreen:function(A){this.rgb.g=A
},setBlue:function(A){this.rgb.b=A
},setHue:function(B){var A=this.asHSB();
A.h=B;
this.rgb=Rico.Color.HSBtoRGB(A.h,A.s,A.b)
},setSaturation:function(B){var A=this.asHSB();
A.s=B;
this.rgb=Rico.Color.HSBtoRGB(A.h,A.s,A.b)
},setBrightness:function(A){var B=this.asHSB();
B.b=A;
this.rgb=Rico.Color.HSBtoRGB(B.h,B.s,B.b)
},darken:function(B){var A=this.asHSB();
this.rgb=Rico.Color.HSBtoRGB(A.h,A.s,Math.max(A.b-B,0))
},brighten:function(B){var A=this.asHSB();
this.rgb=Rico.Color.HSBtoRGB(A.h,A.s,Math.min(A.b+B,1))
},blend:function(A){this.rgb.r=Math.floor((this.rgb.r+A.rgb.r)/2);
this.rgb.g=Math.floor((this.rgb.g+A.rgb.g)/2);
this.rgb.b=Math.floor((this.rgb.b+A.rgb.b)/2)
},isBright:function(){var A=this.asHSB();
return this.asHSB().b>0.5
},isDark:function(){return !this.isBright()
},asRGB:function(){return"rgb("+this.rgb.r+","+this.rgb.g+","+this.rgb.b+")"
},asHex:function(){return"#"+this.rgb.r.toColorPart()+this.rgb.g.toColorPart()+this.rgb.b.toColorPart()
},asHSB:function(){return Rico.Color.RGBtoHSB(this.rgb.r,this.rgb.g,this.rgb.b)
},toString:function(){return this.asHex()
}};
Rico.Color.createFromHex=function(D){if(D.length==4){var B=D;
var D="#";
for(var C=1;
C<4;
C++){D+=(B.charAt(C)+B.charAt(C))
}}if(D.indexOf("#")==0){D=D.substring(1)
}var F=D.substring(0,2);
var E=D.substring(2,4);
var A=D.substring(4,6);
return new Rico.Color(parseInt(F,16),parseInt(E,16),parseInt(A,16))
};
Rico.Color.createColorFromBackground=function(D){var B=RicoUtil.getElementsComputedStyle($(D),"backgroundColor","background-color");
if(B=="transparent"&&D.parentNode){return Rico.Color.createColorFromBackground(D.parentNode)
}if(B==null){return new Rico.Color(255,255,255)
}if(B.indexOf("rgb(")==0){var A=B.substring(4,B.length-1);
var C=A.split(",");
return new Rico.Color(parseInt(C[0]),parseInt(C[1]),parseInt(C[2]))
}else{if(B.indexOf("#")==0){return Rico.Color.createFromHex(B)
}else{return new Rico.Color(255,255,255)
}}};
Rico.Color.HSBtoRGB=function(G,E,I){var C=0;
var D=0;
var J=0;
if(E==0){C=parseInt(I*255+0.5);
D=C;
J=C
}else{var F=(G-Math.floor(G))*6;
var H=F-Math.floor(F);
var B=I*(1-E);
var A=I*(1-E*H);
var K=I*(1-(E*(1-H)));
switch(parseInt(F)){case 0:C=(I*255+0.5);
D=(K*255+0.5);
J=(B*255+0.5);
break;
case 1:C=(A*255+0.5);
D=(I*255+0.5);
J=(B*255+0.5);
break;
case 2:C=(B*255+0.5);
D=(I*255+0.5);
J=(K*255+0.5);
break;
case 3:C=(B*255+0.5);
D=(A*255+0.5);
J=(I*255+0.5);
break;
case 4:C=(K*255+0.5);
D=(B*255+0.5);
J=(I*255+0.5);
break;
case 5:C=(I*255+0.5);
D=(B*255+0.5);
J=(A*255+0.5);
break
}}return{r:parseInt(C),g:parseInt(D),b:parseInt(J)}
};
Rico.Color.RGBtoHSB=function(A,E,J){var F;
var D;
var I;
var K=(A>E)?A:E;
if(J>K){K=J
}var G=(A<E)?A:E;
if(J<G){G=J
}I=K/255;
if(K!=0){D=(K-G)/K
}else{D=0
}if(D==0){F=0
}else{var B=(K-A)/(K-G);
var H=(K-E)/(K-G);
var C=(K-J)/(K-G);
if(A==K){F=C-H
}else{if(E==K){F=2+B-C
}else{F=4+H-B
}}F=F/6;
if(F<0){F=F+1
}}return{h:F,s:D,b:I}
};
Rico.Corner={round:function(D,B){var D=$(D);
this._setOptions(B);
var A=this.options.color;
if(this.options.color=="fromElement"){A=this._background(D)
}var C=this.options.bgColor;
if(this.options.bgColor=="fromParent"){C=this._background(D.offsetParent)
}this._roundCornersImpl(D,A,C)
},_roundCornersImpl:function(C,A,B){if(this.options.border){this._renderBorder(C,B)
}if(this._isTopRounded()){this._roundTopCorners(C,A,B)
}if(this._isBottomRounded()){this._roundBottomCorners(C,A,B)
}},_renderBorder:function(D,E){var B="1px solid "+this._borderColor(E);
var A="border-left: "+B;
var F="border-right: "+B;
var C="style='"+A+";"+F+"'";
D.innerHTML="<div "+C+">"+D.innerHTML+"</div>"
},_roundTopCorners:function(C,A,E){var D=this._createCorner(E);
for(var B=0;
B<this.options.numSlices;
B++){D.appendChild(this._createCornerSlice(A,E,B,"top"))
}C.style.paddingTop=0;
C.insertBefore(D,C.firstChild)
},_roundBottomCorners:function(C,A,E){var D=this._createCorner(E);
for(var B=(this.options.numSlices-1);
B>=0;
B--){D.appendChild(this._createCornerSlice(A,E,B,"bottom"))
}C.style.paddingBottom=0;
C.appendChild(D)
},_createCorner:function(B){var A=document.createElement("div");
A.style.backgroundColor=(this._isTransparent()?"transparent":B);
return A
},_createCornerSlice:function(C,D,G,A){var E=document.createElement("span");
var B=E.style;
B.backgroundColor=C;
B.display="block";
B.height="1px";
B.overflow="hidden";
B.fontSize="1px";
var F=this._borderColor(C,D);
if(this.options.border&&G==0){B.borderTopStyle="solid";
B.borderTopWidth="1px";
B.borderLeftWidth="0px";
B.borderRightWidth="0px";
B.borderBottomWidth="0px";
B.height="0px";
B.borderColor=F
}else{if(F){B.borderColor=F;
B.borderStyle="solid";
B.borderWidth="0px 1px"
}}if(!this.options.compact&&(G==(this.options.numSlices-1))){B.height="2px"
}this._setMargin(E,G,A);
this._setBorder(E,G,A);
return E
},_setOptions:function(A){this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false};
Object.extend(this.options,A||{});
this.options.numSlices=this.options.compact?2:4;
if(this._isTransparent()){this.options.blend=false
}},_whichSideTop:function(){if(this._hasString(this.options.corners,"all","top")){return""
}if(this.options.corners.indexOf("tl")>=0&&this.options.corners.indexOf("tr")>=0){return""
}if(this.options.corners.indexOf("tl")>=0){return"left"
}else{if(this.options.corners.indexOf("tr")>=0){return"right"
}}return""
},_whichSideBottom:function(){if(this._hasString(this.options.corners,"all","bottom")){return""
}if(this.options.corners.indexOf("bl")>=0&&this.options.corners.indexOf("br")>=0){return""
}if(this.options.corners.indexOf("bl")>=0){return"left"
}else{if(this.options.corners.indexOf("br")>=0){return"right"
}}return""
},_borderColor:function(A,B){if(A=="transparent"){return B
}else{if(this.options.border){return this.options.border
}else{if(this.options.blend){return this._blend(B,A)
}else{return""
}}}},_setMargin:function(D,E,B){var C=this._marginSize(E);
var A=B=="top"?this._whichSideTop():this._whichSideBottom();
if(A=="left"){D.style.marginLeft=C+"px";
D.style.marginRight="0px"
}else{if(A=="right"){D.style.marginRight=C+"px";
D.style.marginLeft="0px"
}else{D.style.marginLeft=C+"px";
D.style.marginRight=C+"px"
}}},_setBorder:function(D,E,B){var C=this._borderSize(E);
var A=B=="top"?this._whichSideTop():this._whichSideBottom();
if(A=="left"){D.style.borderLeftWidth=C+"px";
D.style.borderRightWidth="0px"
}else{if(A=="right"){D.style.borderRightWidth=C+"px";
D.style.borderLeftWidth="0px"
}else{D.style.borderLeftWidth=C+"px";
D.style.borderRightWidth=C+"px"
}}if(this.options.border!=false){D.style.borderLeftWidth=C+"px"
}D.style.borderRightWidth=C+"px"
},_marginSize:function(E){if(this._isTransparent()){return 0
}var D=[5,3,2,1];
var A=[3,2,1,0];
var C=[2,1];
var B=[1,0];
if(this.options.compact&&this.options.blend){return B[E]
}else{if(this.options.compact){return C[E]
}else{if(this.options.blend){return A[E]
}else{return D[E]
}}}},_borderSize:function(E){var D=[5,3,2,1];
var B=[2,1,1,1];
var A=[1,0];
var C=[0,2,0,0];
if(this.options.compact&&(this.options.blend||this._isTransparent())){return 1
}else{if(this.options.compact){return A[E]
}else{if(this.options.blend){return B[E]
}else{if(this.options.border){return C[E]
}else{if(this._isTransparent()){return D[E]
}}}}}return 0
},_hasString:function(B){for(var A=1;
A<arguments.length;
A++){if(B.indexOf(arguments[A])>=0){return true
}}return false
},_blend:function(C,A){var B=Rico.Color.createFromHex(C);
B.blend(Rico.Color.createFromHex(A));
return B
},_background:function(A){try{return Rico.Color.createColorFromBackground(A).asHex()
}catch(B){return"#ffffff"
}},_isTransparent:function(){return this.options.color=="transparent"
},_isTopRounded:function(){return this._hasString(this.options.corners,"all","top","tl","tr")
},_isBottomRounded:function(){return this._hasString(this.options.corners,"all","bottom","bl","br")
},_hasSingleTextChild:function(A){return A.childNodes.length==1&&A.childNodes[0].nodeType==3
}};
Rico.DragAndDrop=Class.create();
Rico.DragAndDrop.prototype={initialize:function(){this.dropZones=new Array();
this.draggables=new Array();
this.currentDragObjects=new Array();
this.dragElement=null;
this.lastSelectedDraggable=null;
this.currentDragObjectVisible=false;
this.interestedInMotionEvents=false;
this._mouseDown=this._mouseDownHandler.bindAsEventListener(this);
this._mouseMove=this._mouseMoveHandler.bindAsEventListener(this);
this._mouseUp=this._mouseUpHandler.bindAsEventListener(this)
},registerDropZone:function(A){this.dropZones[this.dropZones.length]=A
},deregisterDropZone:function(A){var D=new Array();
var B=0;
for(var C=0;
C<this.dropZones.length;
C++){if(this.dropZones[C]!=A){D[B++]=this.dropZones[C]
}}this.dropZones=D
},clearDropZones:function(){this.dropZones=new Array()
},registerDraggable:function(A){this.draggables[this.draggables.length]=A;
this._addMouseDownHandler(A)
},clearSelection:function(){for(var A=0;
A<this.currentDragObjects.length;
A++){this.currentDragObjects[A].deselect()
}this.currentDragObjects=new Array();
this.lastSelectedDraggable=null
},hasSelection:function(){return this.currentDragObjects.length>0
},setStartDragFromElement:function(A,B){this.origPos=RicoUtil.toDocumentPosition(B);
this.startx=A.screenX-this.origPos.x;
this.starty=A.screenY-this.origPos.y;
this.interestedInMotionEvents=this.hasSelection();
this._terminateEvent(A)
},updateSelection:function(A,B){if(!B){this.clearSelection()
}if(A.isSelected()){this.currentDragObjects.removeItem(A);
A.deselect();
if(A==this.lastSelectedDraggable){this.lastSelectedDraggable=null
}}else{this.currentDragObjects[this.currentDragObjects.length]=A;
A.select();
this.lastSelectedDraggable=A
}},_mouseDownHandler:function(F){if(arguments.length==0){F=event
}var B=F.which!=undefined;
if((B&&F.which!=1)||(!B&&F.button!=1)){return 
}var E=F.target?F.target:F.srcElement;
var A=E.draggable;
var D=E;
while(A==null&&D.parentNode){D=D.parentNode;
A=D.draggable
}if(A==null){return 
}this.updateSelection(A,F.ctrlKey);
if(this.hasSelection()){for(var C=0;
C<this.dropZones.length;
C++){this.dropZones[C].clearPositionCache()
}}this.setStartDragFromElement(F,A.getMouseDownHTMLElement())
},_mouseMoveHandler:function(B){var A=B.which!=undefined;
if(!this.interestedInMotionEvents){return 
}if(!this.hasSelection()){return 
}if(!this.currentDragObjectVisible){this._startDrag(B)
}if(!this.activatedDropZones){this._activateRegisteredDropZones()
}this._updateDraggableLocation(B);
this._updateDropZonesHover(B);
this._terminateEvent(B)
},_makeDraggableObjectVisible:function(B){if(!this.hasSelection()){return 
}var A;
if(this.currentDragObjects.length>1){A=this.currentDragObjects[0].getMultiObjectDragGUI(this.currentDragObjects)
}else{A=this.currentDragObjects[0].getSingleObjectDragGUI()
}if(RicoUtil.getElementsComputedStyle(A,"position")!="absolute"){A.style.position="absolute"
}if(A.parentNode==null||A.parentNode.nodeType==11){document.body.appendChild(A)
}this.dragElement=A;
this._updateDraggableLocation(B);
this.currentDragObjectVisible=true
},_leftOffset:function(A){return A.offsetX?document.body.scrollLeft:0
},_topOffset:function(A){return A.offsetY?document.body.scrollTop:0
},_updateDraggableLocation:function(B){var A=this.dragElement.style;
A.left=(B.screenX+this._leftOffset(B)-this.startx)+"px";
A.top=(B.screenY+this._topOffset(B)-this.starty)+"px"
},_updateDropZonesHover:function(B){var C=this.dropZones.length;
for(var A=0;
A<C;
A++){if(!this._mousePointInDropZone(B,this.dropZones[A])){this.dropZones[A].hideHover()
}}for(var A=0;
A<C;
A++){if(this._mousePointInDropZone(B,this.dropZones[A])){if(this.dropZones[A].canAccept(this.currentDragObjects)){this.dropZones[A].showHover()
}}}},_startDrag:function(B){for(var A=0;
A<this.currentDragObjects.length;
A++){this.currentDragObjects[A].startDrag()
}this._makeDraggableObjectVisible(B)
},_mouseUpHandler:function(B){if(!this.hasSelection()){return 
}var A=B.which!=undefined;
if((A&&B.which!=1)||(!A&&B.button!=1)){return 
}this.interestedInMotionEvents=false;
if(this.dragElement==null){this._terminateEvent(B);
return 
}if(this._placeDraggableInDropZone(B)){this._completeDropOperation(B)
}else{this._terminateEvent(B);
new Rico.Effect.Position(this.dragElement,this.origPos.x,this.origPos.y,200,20,{complete:this._doCancelDragProcessing.bind(this)})
}Event.stopObserving(document.body,"mousemove",this._mouseMove);
Event.stopObserving(document.body,"mouseup",this._mouseUp)
},_retTrue:function(){return true
},_completeDropOperation:function(A){if(this.dragElement!=this.currentDragObjects[0].getMouseDownHTMLElement()){if(this.dragElement.parentNode!=null){this.dragElement.parentNode.removeChild(this.dragElement)
}}this._deactivateRegisteredDropZones();
this._endDrag();
this.clearSelection();
this.dragElement=null;
this.currentDragObjectVisible=false;
this._terminateEvent(A)
},_doCancelDragProcessing:function(){this._cancelDrag();
if(this.dragElement!=this.currentDragObjects[0].getMouseDownHTMLElement()&&this.dragElement){if(this.dragElement.parentNode!=null){this.dragElement.parentNode.removeChild(this.dragElement)
}}this._deactivateRegisteredDropZones();
this.dragElement=null;
this.currentDragObjectVisible=false
},_placeDraggableInDropZone:function(C){var A=false;
var D=this.dropZones.length;
for(var B=0;
B<D;
B++){if(this._mousePointInDropZone(C,this.dropZones[B])){if(this.dropZones[B].canAccept(this.currentDragObjects)){this.dropZones[B].hideHover();
this.dropZones[B].accept(this.currentDragObjects);
A=true;
break
}}}return A
},_cancelDrag:function(){for(var A=0;
A<this.currentDragObjects.length;
A++){this.currentDragObjects[A].cancelDrag()
}},_endDrag:function(){for(var A=0;
A<this.currentDragObjects.length;
A++){this.currentDragObjects[A].endDrag()
}},_mousePointInDropZone:function(B,C){var A=C.getAbsoluteRect();
return B.clientX>A.left+this._leftOffset(B)&&B.clientX<A.right+this._leftOffset(B)&&B.clientY>A.top+this._topOffset(B)&&B.clientY<A.bottom+this._topOffset(B)
},_addMouseDownHandler:function(A){htmlElement=A.getMouseDownHTMLElement();
if(htmlElement!=null){htmlElement.draggable=A;
Event.observe(htmlElement,"mousedown",this._onmousedown.bindAsEventListener(this));
Event.observe(htmlElement,"mousedown",this._mouseDown)
}},_activateRegisteredDropZones:function(){var C=this.dropZones.length;
for(var A=0;
A<C;
A++){var B=this.dropZones[A];
if(B.canAccept(this.currentDragObjects)){B.activate()
}}this.activatedDropZones=true
},_deactivateRegisteredDropZones:function(){var B=this.dropZones.length;
for(var A=0;
A<B;
A++){this.dropZones[A].deactivate()
}this.activatedDropZones=false
},_onmousedown:function(){Event.observe(document.body,"mousemove",this._mouseMove);
Event.observe(document.body,"mouseup",this._mouseUp)
},_terminateEvent:function(A){if(A.stopPropagation!=undefined){A.stopPropagation()
}else{if(A.cancelBubble!=undefined){A.cancelBubble=true
}}if(A.preventDefault!=undefined){A.preventDefault()
}else{A.returnValue=false
}},initializeEventHandlers:function(){if(typeof document.implementation!="undefined"&&document.implementation.hasFeature("HTML","1.0")&&document.implementation.hasFeature("Events","2.0")&&document.implementation.hasFeature("CSS","2.0")){document.addEventListener("mouseup",this._mouseUpHandler.bindAsEventListener(this),false);
document.addEventListener("mousemove",this._mouseMoveHandler.bindAsEventListener(this),false)
}else{document.attachEvent("onmouseup",this._mouseUpHandler.bindAsEventListener(this));
document.attachEvent("onmousemove",this._mouseMoveHandler.bindAsEventListener(this))
}}};
var dndMgr=new Rico.DragAndDrop();
dndMgr.initializeEventHandlers();
Rico.Draggable=Class.create();
Rico.Draggable.prototype={initialize:function(A,B){this.type=A;
this.htmlElement=$(B);
this.selected=false
},getMouseDownHTMLElement:function(){return this.htmlElement
},select:function(){this.selected=true;
if(this.showingSelected){return 
}var B=this.getMouseDownHTMLElement();
var A=Rico.Color.createColorFromBackground(B);
A.isBright()?A.darken(0.033):A.brighten(0.033);
this.saveBackground=RicoUtil.getElementsComputedStyle(B,"backgroundColor","background-color");
B.style.backgroundColor=A.asHex();
this.showingSelected=true
},deselect:function(){this.selected=false;
if(!this.showingSelected){return 
}var A=this.getMouseDownHTMLElement();
A.style.backgroundColor=this.saveBackground;
this.showingSelected=false
},isSelected:function(){return this.selected
},startDrag:function(){},cancelDrag:function(){},endDrag:function(){},getSingleObjectDragGUI:function(){return this.htmlElement
},getMultiObjectDragGUI:function(A){return this.htmlElement
},getDroppedGUI:function(){return this.htmlElement
},toString:function(){return this.type+":"+this.htmlElement+":"
}};
Rico.Dropzone=Class.create();
Rico.Dropzone.prototype={initialize:function(A){this.htmlElement=$(A);
this.absoluteRect=null
},getHTMLElement:function(){return this.htmlElement
},clearPositionCache:function(){this.absoluteRect=null
},getAbsoluteRect:function(){if(this.absoluteRect==null){var A=this.getHTMLElement();
var B=RicoUtil.toViewportPosition(A);
this.absoluteRect={top:B.y,left:B.x,bottom:B.y+A.offsetHeight,right:B.x+A.offsetWidth}
}return this.absoluteRect
},activate:function(){var C=this.getHTMLElement();
if(C==null||this.showingActive){return 
}this.showingActive=true;
this.saveBackgroundColor=C.style.backgroundColor;
var B="#ffea84";
var A=Rico.Color.createColorFromBackground(C);
if(A==null){C.style.backgroundColor=B
}else{A.isBright()?A.darken(0.2):A.brighten(0.2);
C.style.backgroundColor=A.asHex()
}},deactivate:function(){var A=this.getHTMLElement();
if(A==null||!this.showingActive){return 
}A.style.backgroundColor=this.saveBackgroundColor;
this.showingActive=false;
this.saveBackgroundColor=null
},showHover:function(){var A=this.getHTMLElement();
if(A==null||this.showingHover){return 
}this.saveBorderWidth=A.style.borderWidth;
this.saveBorderStyle=A.style.borderStyle;
this.saveBorderColor=A.style.borderColor;
this.showingHover=true;
A.style.borderWidth="1px";
A.style.borderStyle="solid";
A.style.borderColor="#ffff00"
},hideHover:function(){var A=this.getHTMLElement();
if(A==null||!this.showingHover){return 
}A.style.borderWidth=this.saveBorderWidth;
A.style.borderStyle=this.saveBorderStyle;
A.style.borderColor=this.saveBorderColor;
this.showingHover=false
},canAccept:function(A){return true
},accept:function(B){var D=this.getHTMLElement();
if(D==null){return 
}n=B.length;
for(var A=0;
A<n;
A++){var C=B[A].getDroppedGUI();
if(RicoUtil.getElementsComputedStyle(C,"position")=="absolute"){C.style.position="static";
C.style.top="";
C.style.top=""
}D.appendChild(C)
}}};
Rico.Effect={};
Rico.Effect.SizeAndPosition=Class.create();
Rico.Effect.SizeAndPosition.prototype={initialize:function(E,A,H,B,F,G,C,D){this.element=$(E);
this.x=A;
this.y=H;
this.w=B;
this.h=F;
this.duration=G;
this.steps=C;
this.options=arguments[7]||{};
this.sizeAndPosition()
},sizeAndPosition:function(){if(this.isFinished()){if(this.options.complete){this.options.complete(this)
}return 
}if(this.timer){clearTimeout(this.timer)
}var F=Math.round(this.duration/this.steps);
var C=this.element.offsetLeft;
var B=this.element.offsetTop;
var D=this.element.offsetWidth;
var I=this.element.offsetHeight;
this.x=(this.x)?this.x:C;
this.y=(this.y)?this.y:B;
this.w=(this.w)?this.w:D;
this.h=(this.h)?this.h:I;
var G=this.steps>0?(this.x-C)/this.steps:0;
var E=this.steps>0?(this.y-B)/this.steps:0;
var H=this.steps>0?(this.w-D)/this.steps:0;
var A=this.steps>0?(this.h-I)/this.steps:0;
this.moveBy(G,E);
this.resizeBy(H,A);
this.duration-=F;
this.steps--;
this.timer=setTimeout(this.sizeAndPosition.bind(this),F)
},isFinished:function(){return this.steps<=0
},moveBy:function(B,G){var F=this.element.offsetLeft;
var D=this.element.offsetTop;
var C=parseInt(B);
var A=parseInt(G);
var E=this.element.style;
if(C!=0){E.left=(F+C)+"px"
}if(A!=0){E.top=(D+A)+"px"
}},resizeBy:function(A,E){var C=this.element.offsetWidth;
var G=this.element.offsetHeight;
var B=parseInt(A);
var F=parseInt(E);
var D=this.element.style;
if(B!=0){D.width=(C+B)+"px"
}if(F!=0){D.height=(G+F)+"px"
}}};
Rico.Effect.Size=Class.create();
Rico.Effect.Size.prototype={initialize:function(D,A,E,F,B,C){new Rico.Effect.SizeAndPosition(D,null,null,A,E,F,B,C)
}};
Rico.Effect.Position=Class.create();
Rico.Effect.Position.prototype={initialize:function(D,A,F,E,B,C){new Rico.Effect.SizeAndPosition(D,A,F,null,null,E,B,C)
}};
Rico.Effect.Round=Class.create();
Rico.Effect.Round.prototype={initialize:function(C,D,A){var E=document.getElementsByTagAndClassName(C,D);
for(var B=0;
B<E.length;
B++){Rico.Corner.round(E[B],A)
}}};
Rico.Effect.FadeTo=Class.create();
Rico.Effect.FadeTo.prototype={initialize:function(D,C,E,A,B){this.element=$(D);
this.opacity=C;
this.duration=E;
this.steps=A;
this.options=arguments[4]||{};
this.fadeTo()
},fadeTo:function(){if(this.isFinished()){if(this.options.complete){this.options.complete(this)
}return 
}if(this.timer){clearTimeout(this.timer)
}var B=Math.round(this.duration/this.steps);
var A=this.getElementOpacity();
var C=this.steps>0?(this.opacity-A)/this.steps:0;
this.changeOpacityBy(C);
this.duration-=B;
this.steps--;
this.timer=setTimeout(this.fadeTo.bind(this),B)
},changeOpacityBy:function(B){var A=this.getElementOpacity();
var C=Math.max(0,Math.min(A+B,1));
this.element.ricoOpacity=C;
this.element.style.filter="alpha(opacity:"+Math.round(C*100)+")";
this.element.style.opacity=C
},isFinished:function(){return this.steps<=0
},getElementOpacity:function(){if(this.element.ricoOpacity==undefined){var A=RicoUtil.getElementsComputedStyle(this.element,"opacity");
this.element.ricoOpacity=A!=undefined?A:1
}return parseFloat(this.element.ricoOpacity)
}};
Rico.Effect.AccordionSize=Class.create();
Rico.Effect.AccordionSize.prototype={initialize:function(F,E,G,A,D,B,C){this.e1=$(F);
this.e2=$(E);
this.start=G;
this.end=A;
this.duration=D;
this.steps=B;
this.options=arguments[6]||{};
this.accordionSize()
},accordionSize:function(){if(this.isFinished()){this.e1.style.height=this.start+"px";
this.e2.style.height=this.end+"px";
if(this.options.complete){this.options.complete(this)
}return 
}if(this.timer){clearTimeout(this.timer)
}var A=Math.round(this.duration/this.steps);
var B=this.steps>0?(parseInt(this.e1.offsetHeight)-this.start)/this.steps:0;
this.resizeBy(B);
this.duration-=A;
this.steps--;
this.timer=setTimeout(this.accordionSize.bind(this),A)
},isFinished:function(){return this.steps<=0
},resizeBy:function(B){var D=this.e1.offsetHeight;
var A=this.e2.offsetHeight;
var C=parseInt(B);
if(B!=0){this.e1.style.height=(D-C)+"px";
this.e2.style.height=(A+C)+"px"
}}};
Rico.LiveGridMetaData=Class.create();
Rico.LiveGridMetaData.prototype={initialize:function(A,C,D,B){this.pageSize=A;
this.totalRows=C;
this.setOptions(B);
this.ArrowHeight=16;
this.columnCount=D
},setOptions:function(A){this.options={largeBufferSize:7,nearLimitFactor:0.2};
Object.extend(this.options,A||{})
},getPageSize:function(){return this.pageSize
},getTotalRows:function(){return this.totalRows
},setTotalRows:function(A){this.totalRows=A
},getLargeBufferSize:function(){return parseInt(this.options.largeBufferSize*this.pageSize)
},getLimitTolerance:function(){return parseInt(this.getLargeBufferSize()*this.options.nearLimitFactor)
}};
Rico.LiveGridScroller=Class.create();
Rico.LiveGridScroller.prototype={initialize:function(B,A){this.isIE=navigator.userAgent.toLowerCase().indexOf("msie")>=0;
this.liveGrid=B;
this.metaData=B.metaData;
this.createScrollBar();
this.scrollTimeout=null;
this.lastScrollPos=0;
this.viewPort=A;
this.rows=new Array()
},isUnPlugged:function(){return this.scrollerDiv.onscroll==null
},plugin:function(){this.scrollerDiv.onscroll=this.handleScroll.bindAsEventListener(this)
},unplug:function(){this.scrollerDiv.onscroll=null
},sizeIEHeaderHack:function(){if(!this.isIE){return 
}var A=$(this.liveGrid.tableId+"_header");
if(A){A.rows[0].cells[0].style.width=(A.rows[0].cells[0].offsetWidth+1)+"px"
}},createScrollBar:function(){var A=this.liveGrid.viewPort.visibleHeight();
this.scrollerDiv=document.createElement("div");
var C=this.scrollerDiv.style;
C.borderRight=this.liveGrid.options.scrollerBorderRight;
C.position="relative";
C.left=this.isIE?"-6px":"-3px";
C.width="19px";
C.height=A+"px";
C.overflow="auto";
this.heightDiv=document.createElement("div");
this.heightDiv.style.width="1px";
this.heightDiv.style.height=parseInt(A*this.metaData.getTotalRows()/this.metaData.getPageSize())+"px";
this.scrollerDiv.appendChild(this.heightDiv);
this.scrollerDiv.onscroll=this.handleScroll.bindAsEventListener(this);
var D=this.liveGrid.table;
D.parentNode.parentNode.insertBefore(this.scrollerDiv,D.parentNode.nextSibling);
var B=this.isIE?"mousewheel":"DOMMouseScroll";
Event.observe(D,B,function(E){if(E.wheelDelta>=0||E.detail<0){this.scrollerDiv.scrollTop-=(2*this.viewPort.rowHeight)
}else{this.scrollerDiv.scrollTop+=(2*this.viewPort.rowHeight)
}this.handleScroll(false)
}.bindAsEventListener(this),false)
},updateSize:function(){var B=this.liveGrid.table;
var A=this.viewPort.visibleHeight();
this.heightDiv.style.height=parseInt(A*this.metaData.getTotalRows()/this.metaData.getPageSize())+"px"
},rowToPixel:function(A){return(A/this.metaData.getTotalRows())*this.heightDiv.offsetHeight
},moveScroll:function(A){this.scrollerDiv.scrollTop=this.rowToPixel(A);
if(this.metaData.options.onscroll){this.metaData.options.onscroll(this.liveGrid,A)
}},handleScroll:function(){if(this.scrollTimeout){clearTimeout(this.scrollTimeout)
}var C=this.lastScrollPos-this.scrollerDiv.scrollTop;
if(C!=0){var B=this.scrollerDiv.scrollTop%this.viewPort.rowHeight;
if(B!=0){this.unplug();
if(C<0){this.scrollerDiv.scrollTop+=(this.viewPort.rowHeight-B)
}else{this.scrollerDiv.scrollTop-=B
}this.plugin()
}}var A=parseInt(this.scrollerDiv.scrollTop/this.viewPort.rowHeight);
this.liveGrid.requestContentRefresh(A);
this.viewPort.scrollTo(this.scrollerDiv.scrollTop);
if(this.metaData.options.onscroll){this.metaData.options.onscroll(this.liveGrid,A)
}this.scrollTimeout=setTimeout(this.scrollIdle.bind(this),1200);
this.lastScrollPos=this.scrollerDiv.scrollTop
},scrollIdle:function(){if(this.metaData.options.onscrollidle){this.metaData.options.onscrollidle()
}}};
Rico.LiveGridBuffer=Class.create();
Rico.LiveGridBuffer.prototype={initialize:function(A,B){this.startPos=0;
this.size=0;
this.metaData=A;
this.rows=new Array();
this.updateInProgress=false;
this.viewPort=B;
this.maxBufferSize=A.getLargeBufferSize()*2;
this.maxFetchSize=A.getLargeBufferSize();
this.lastOffset=0
},getBlankRow:function(){if(!this.blankRow){this.blankRow=new Array();
for(var A=0;
A<this.metaData.columnCount;
A++){this.blankRow[A]="&nbsp;"
}}return this.blankRow
},loadRows:function(B){var E=B.getElementsByTagName("rows")[0];
this.updateUI=E.getAttribute("update_ui")=="true";
var F=new Array();
var G=E.getElementsByTagName("tr");
for(var D=0;
D<G.length;
D++){var K=F[D]=new Array();
var J=G[D].getElementsByTagName("td");
for(var C=0;
C<J.length;
C++){var I=J[C];
var H=I.getAttribute("convert_spaces")=="true";
var A=RicoUtil.getContentAsString(I);
K[C]=H?this.convertSpaces(A):A;
if(!K[C]){K[C]="&nbsp;"
}}}return F
},update:function(B,D){var A=this.loadRows(B);
if(this.rows.length==0){this.rows=A;
this.size=this.rows.length;
this.startPos=D;
return 
}if(D>this.startPos){if(this.startPos+this.rows.length<D){this.rows=A;
this.startPos=D
}else{this.rows=this.rows.concat(A.slice(0,A.length));
if(this.rows.length>this.maxBufferSize){var C=this.rows.length;
this.rows=this.rows.slice(this.rows.length-this.maxBufferSize,this.rows.length);
this.startPos=this.startPos+(C-this.rows.length)
}}}else{if(D+A.length<this.startPos){this.rows=A
}else{this.rows=A.slice(0,this.startPos).concat(this.rows);
if(this.rows.length>this.maxBufferSize){this.rows=this.rows.slice(0,this.maxBufferSize)
}}this.startPos=D
}this.size=this.rows.length
},clear:function(){this.rows=new Array();
this.startPos=0;
this.size=0
},isOverlapping:function(B,A){return((B<this.endPos())&&(this.startPos<B+A))||(this.endPos()==0)
},isInRange:function(A){return(A>=this.startPos)&&(A+this.metaData.getPageSize()<=this.endPos())
},isNearingTopLimit:function(A){return A-this.startPos<this.metaData.getLimitTolerance()
},endPos:function(){return this.startPos+this.rows.length
},isNearingBottomLimit:function(A){return this.endPos()-(A+this.metaData.getPageSize())<this.metaData.getLimitTolerance()
},isAtTop:function(){return this.startPos==0
},isAtBottom:function(){return this.endPos()==this.metaData.getTotalRows()
},isNearingLimit:function(A){return(!this.isAtTop()&&this.isNearingTopLimit(A))||(!this.isAtBottom()&&this.isNearingBottomLimit(A))
},getFetchSize:function(C){var A=this.getFetchOffset(C);
var B=0;
if(A>=this.startPos){var D=this.maxFetchSize+A;
if(D>this.metaData.totalRows){D=this.metaData.totalRows
}B=D-A;
if(A==0&&B<this.maxFetchSize){B=this.maxFetchSize
}}else{var B=this.startPos-A;
if(B>this.maxFetchSize){B=this.maxFetchSize
}}return B
},getFetchOffset:function(B){var A=B;
if(B>this.startPos){A=(B>this.endPos())?B:this.endPos()
}else{if(B+this.maxFetchSize>=this.startPos){var A=this.startPos-this.maxFetchSize;
if(A<0){A=0
}}}this.lastOffset=A;
return A
},getRows:function(G,E){var F=G-this.startPos;
var B=F+E;
if(B>this.size){B=this.size
}var D=new Array();
var A=0;
for(var C=F;
C<B;
C++){D[A++]=this.rows[C]
}return D
},convertSpaces:function(A){return A.split(" ").join("&nbsp;")
}};
Rico.GridViewPort=Class.create();
Rico.GridViewPort.prototype={initialize:function(C,B,D,A,E){this.lastDisplayedStartPos=0;
this.div=C.parentNode;
this.table=C;
this.rowHeight=B;
this.div.style.height=(this.rowHeight*D)+"px";
this.div.style.overflow="hidden";
this.buffer=A;
this.liveGrid=E;
this.visibleRows=D+1;
this.lastPixelOffset=0;
this.startPos=0
},populateRow:function(C,B){if(C!=null){for(var A=0;
A<B.length;
A++){C.cells[A].innerHTML=B[A]
}}},bufferChanged:function(){this.refreshContents(parseInt(this.lastPixelOffset/this.rowHeight))
},clearRows:function(){if(!this.isBlank){this.liveGrid.table.className=this.liveGrid.options.loadingClass;
for(var A=0;
A<this.visibleRows;
A++){this.populateRow(this.table.rows[A],this.buffer.getBlankRow())
}this.isBlank=true
}},clearContents:function(){this.clearRows();
this.scrollTo(0);
this.startPos=0;
this.lastStartPos=-1
},refreshContents:function(G){if(G==this.lastRowPos&&!this.isPartialBlank&&!this.isBlank){return 
}if((G+this.visibleRows<this.buffer.startPos)||(this.buffer.startPos+this.buffer.size<G)||(this.buffer.size==0)){this.clearRows();
return 
}this.isBlank=false;
var F=this.buffer.startPos>G;
var B=F?this.buffer.startPos:G;
var A=(this.buffer.startPos+this.buffer.size<G+this.visibleRows)?this.buffer.startPos+this.buffer.size:G+this.visibleRows;
var J=A-B;
var K=this.buffer.getRows(B,J);
var D=this.visibleRows-J;
var H=F?0:J;
var C=F?D:0;
for(var E=0;
E<K.length;
E++){this.populateRow(this.table.rows[E+C],K[E])
}for(var E=0;
E<D;
E++){this.populateRow(this.table.rows[E+H],this.buffer.getBlankRow())
}this.isPartialBlank=D>0;
this.lastRowPos=G;
this.liveGrid.table.className=this.liveGrid.options.tableClass;
var I=this.liveGrid.options.onRefreshComplete;
if(I!=null){I()
}},scrollTo:function(A){if(this.lastPixelOffset==A){return 
}this.refreshContents(parseInt(A/this.rowHeight));
this.div.scrollTop=A%this.rowHeight;
this.lastPixelOffset=A
},visibleHeight:function(){return parseInt(RicoUtil.getElementsComputedStyle(this.div,"height"))
}};
Rico.LiveGridRequest=Class.create();
Rico.LiveGridRequest.prototype={initialize:function(B,A){this.requestOffset=B
}};
Rico.LiveGrid=Class.create();
Rico.LiveGrid.prototype={initialize:function(C,B,H,A,I,D){this.options={tableClass:$(C).className,loadingClass:$(C).className,scrollerBorderRight:"1px solid #ababab",bufferTimeout:20000,sortAscendImg:"images/sort_asc.gif",sortDescendImg:"images/sort_desc.gif",sortImageWidth:9,sortImageHeight:5,ajaxSortURLParms:[],onRefreshComplete:null,requestParameters:null,inlineStyles:true};
Object.extend(this.options,I||{});
this.ajaxOptions={parameters:null};
Object.extend(this.ajaxOptions,D||{});
this.tableId=C;
this.table=$(C);
this.addLiveGridHtml();
var F=this.table.rows[0].cells.length;
this.metaData=new Rico.LiveGridMetaData(B,H,F,I);
this.buffer=new Rico.LiveGridBuffer(this.metaData);
var G=this.table.rows.length;
this.viewPort=new Rico.GridViewPort(this.table,this.table.offsetHeight/G,B,this.buffer,this);
this.scroller=new Rico.LiveGridScroller(this,this.viewPort);
this.options.sortHandler=this.sortHandler.bind(this);
if($(C+"_header")){this.sort=new Rico.LiveGridSort(C+"_header",this.options)
}this.processingRequest=null;
this.unprocessedRequest=null;
this.initAjax(A);
if(this.options.prefetchBuffer||this.options.prefetchOffset>0){var E=0;
if(this.options.offset){E=this.options.offset;
this.scroller.moveScroll(E);
this.viewPort.scrollTo(this.scroller.rowToPixel(E))
}if(this.options.sortCol){this.sortCol=I.sortCol;
this.sortDir=I.sortDir
}this.requestContentRefresh(E)
}},addLiveGridHtml:function(){if(this.table.getElementsByTagName("thead").length>0){var A=this.table.cloneNode(true);
A.setAttribute("id",this.tableId+"_header");
A.setAttribute("class",this.table.className+"_header");
for(var B=0;
B<A.tBodies.length;
B++){A.removeChild(A.tBodies[B])
}this.table.deleteTHead();
this.table.parentNode.insertBefore(A,this.table)
}new Insertion.Before(this.table,"<div id='"+this.tableId+"_container'></div>");
this.table.previousSibling.appendChild(this.table);
new Insertion.Before(this.table,"<div id='"+this.tableId+"_viewport' style='float:left;'></div>");
this.table.previousSibling.appendChild(this.table)
},resetContents:function(){this.scroller.moveScroll(0);
this.buffer.clear();
this.viewPort.clearContents()
},sortHandler:function(A){if(!A){return 
}this.sortCol=A.name;
this.sortDir=A.currentSort;
this.resetContents();
this.requestContentRefresh(0)
},adjustRowSize:function(){},setTotalRows:function(A){this.resetContents();
this.metaData.setTotalRows(A);
this.scroller.updateSize()
},initAjax:function(A){ajaxEngine.registerRequest(this.tableId+"_request",A);
ajaxEngine.registerAjaxObject(this.tableId+"_updater",this)
},invokeAjax:function(){},handleTimedOut:function(){this.processingRequest=null;
this.processQueuedRequest()
},fetchBuffer:function(C){if(this.buffer.isInRange(C)&&!this.buffer.isNearingLimit(C)){return 
}if(this.processingRequest){this.unprocessedRequest=new Rico.LiveGridRequest(C);
return 
}var B=this.buffer.getFetchOffset(C);
this.processingRequest=new Rico.LiveGridRequest(C);
this.processingRequest.bufferOffset=B;
var A=this.buffer.getFetchSize(C);
var E=false;
var D;
if(this.options.requestParameters){D=this._createQueryString(this.options.requestParameters,0)
}D=(D==null)?"":D+"&";
D=D+"id="+this.tableId+"&page_size="+A+"&offset="+B;
if(this.sortCol){D=D+"&sort_col="+escape(this.sortCol)+"&sort_dir="+this.sortDir
}this.ajaxOptions.parameters=D;
ajaxEngine.sendRequest(this.tableId+"_request",this.ajaxOptions);
this.timeoutHandler=setTimeout(this.handleTimedOut.bind(this),this.options.bufferTimeout)
},setRequestParams:function(){this.options.requestParameters=[];
for(var A=0;
A<arguments.length;
A++){this.options.requestParameters[A]=arguments[A]
}},requestContentRefresh:function(A){this.fetchBuffer(A)
},ajaxUpdate:function(B){try{clearTimeout(this.timeoutHandler);
this.buffer.update(B,this.processingRequest.bufferOffset);
this.viewPort.bufferChanged()
}catch(A){}finally{this.processingRequest=null
}this.processQueuedRequest()
},_createQueryString:function(E,F){var H="";
if(!E){return H
}for(var C=F;
C<E.length;
C++){if(C!=F){H+="&"
}var D=E[C];
if(D.name!=undefined&&D.value!=undefined){H+=D.name+"="+escape(D.value)
}else{var B=D.indexOf("=");
var G=D.substring(0,B);
var A=D.substring(B+1);
H+=G+"="+escape(A)
}}return H
},processQueuedRequest:function(){if(this.unprocessedRequest!=null){this.requestContentRefresh(this.unprocessedRequest.requestOffset);
this.unprocessedRequest=null
}}};
Rico.LiveGridSort=Class.create();
Rico.LiveGridSort.prototype={initialize:function(B,A){this.headerTableId=B;
this.headerTable=$(B);
this.options=A;
this.setOptions();
this.applySortBehavior();
if(this.options.sortCol){this.setSortUI(this.options.sortCol,this.options.sortDir)
}},setSortUI:function(A,D){var C=this.options.columns;
for(var B=0;
B<C.length;
B++){if(C[B].name==A){this.setColumnSort(B,D);
break
}}},setOptions:function(){new Image().src=this.options.sortAscendImg;
new Image().src=this.options.sortDescendImg;
this.sort=this.options.sortHandler;
if(!this.options.columns){this.options.columns=this.introspectForColumnInfo()
}else{this.options.columns=this.convertToTableColumns(this.options.columns)
}},applySortBehavior:function(){var C=this.headerTable.rows[0];
var A=C.cells;
for(var B=0;
B<A.length;
B++){this.addSortBehaviorToColumn(B,A[B])
}},addSortBehaviorToColumn:function(B,A){if(this.options.columns[B].isSortable()){A.id=this.headerTableId+"_"+B;
A.style.cursor="pointer";
A.onclick=this.headerCellClicked.bindAsEventListener(this);
A.innerHTML=A.innerHTML+'<span id="'+this.headerTableId+"_img_"+B+'">&nbsp;&nbsp;&nbsp;</span>'
}},headerCellClicked:function(A){var E=A.target?A.target:A.srcElement;
var C=E.id;
var B=parseInt(C.substring(C.lastIndexOf("_")+1));
var D=this.getSortedColumnIndex();
if(D!=-1){if(D!=B){this.removeColumnSort(D);
this.setColumnSort(B,Rico.TableColumn.SORT_ASC)
}else{this.toggleColumnSort(D)
}}else{this.setColumnSort(B,Rico.TableColumn.SORT_ASC)
}if(this.options.sortHandler){this.options.sortHandler(this.options.columns[B])
}},removeColumnSort:function(A){this.options.columns[A].setUnsorted();
this.setSortImage(A)
},setColumnSort:function(B,A){if(isNaN(B)){return 
}this.options.columns[B].setSorted(A);
this.setSortImage(B)
},toggleColumnSort:function(A){this.options.columns[A].toggleSort();
this.setSortImage(A)
},setSortImage:function(C){var B=this.options.columns[C].getSortDirection();
var A=$(this.headerTableId+"_img_"+C);
if(B==Rico.TableColumn.UNSORTED){A.innerHTML="&nbsp;&nbsp;"
}else{if(B==Rico.TableColumn.SORT_ASC){A.innerHTML='&nbsp;&nbsp;<img width="'+this.options.sortImageWidth+'" height="'+this.options.sortImageHeight+'" src="'+this.options.sortAscendImg+'"/>'
}else{if(B==Rico.TableColumn.SORT_DESC){A.innerHTML='&nbsp;&nbsp;<img width="'+this.options.sortImageWidth+'" height="'+this.options.sortImageHeight+'" src="'+this.options.sortDescendImg+'"/>'
}}}},getSortedColumnIndex:function(){var B=this.options.columns;
for(var A=0;
A<B.length;
A++){if(B[A].isSorted()){return A
}}return -1
},introspectForColumnInfo:function(){var C=new Array();
var D=this.headerTable.rows[0];
var A=D.cells;
for(var B=0;
B<A.length;
B++){C.push(new Rico.TableColumn(this.deriveColumnNameFromCell(A[B],B),true))
}return C
},convertToTableColumns:function(C){var B=new Array();
for(var A=0;
A<C.length;
A++){B.push(new Rico.TableColumn(C[A][0],C[A][1]))
}return B
},deriveColumnNameFromCell:function(A,C){var B=A.innerText!=undefined?A.innerText:A.textContent;
return B?B.toLowerCase().split(" ").join("_"):"col_"+C
}};
Rico.TableColumn=Class.create();
Rico.TableColumn.UNSORTED=0;
Rico.TableColumn.SORT_ASC="ASC";
Rico.TableColumn.SORT_DESC="DESC";
Rico.TableColumn.prototype={initialize:function(A,B){this.name=A;
this.sortable=B;
this.currentSort=Rico.TableColumn.UNSORTED
},isSortable:function(){return this.sortable
},isSorted:function(){return this.currentSort!=Rico.TableColumn.UNSORTED
},getSortDirection:function(){return this.currentSort
},toggleSort:function(){if(this.currentSort==Rico.TableColumn.UNSORTED||this.currentSort==Rico.TableColumn.SORT_DESC){this.currentSort=Rico.TableColumn.SORT_ASC
}else{if(this.currentSort==Rico.TableColumn.SORT_ASC){this.currentSort=Rico.TableColumn.SORT_DESC
}}},setUnsorted:function(A){this.setSorted(Rico.TableColumn.UNSORTED)
},setSorted:function(A){this.currentSort=A
}};
var RicoUtil={getElementsComputedStyle:function(D,A,B){if(arguments.length==2){B=A
}var C=$(D);
if(C.currentStyle){return C.currentStyle[A]
}else{return document.defaultView.getComputedStyle(C,null).getPropertyValue(B)
}},createXmlDocument:function(){if(document.implementation&&document.implementation.createDocument){var A=document.implementation.createDocument("","",null);
if(A.readyState==null){
//A.readyState=1;
A.addEventListener("load",function(){
//A.readyState=4;
if(typeof A.onreadystatechange=="function"){A.onreadystatechange()
}},false)
}return A
}if(window.ActiveXObject){return Try.these(function(){return new ActiveXObject("MSXML2.DomDocument")
},function(){return new ActiveXObject("Microsoft.DomDocument")
},function(){return new ActiveXObject("MSXML.DomDocument")
},function(){return new ActiveXObject("MSXML3.DomDocument")
})||false
}return null
},getContentAsString:function(A){return A.xml!=undefined?this._getContentAsStringIE(A):this._getContentAsStringMozilla(A)
},_getContentAsStringIE:function(A){var C="";
for(var B=0;
B<A.childNodes.length;
B++){var D=A.childNodes[B];
if(D.nodeType==4){C+=D.nodeValue
}else{C+=D.xml
}}return C
},_getContentAsStringMozilla:function(B){var A=new XMLSerializer();
var D="";
for(var C=0;
C<B.childNodes.length;
C++){var E=B.childNodes[C];
if(E.nodeType==4){D+=E.nodeValue
}else{D+=A.serializeToString(E)
}}return D
},toViewportPosition:function(A){return this._toAbsolute(A,true)
},toDocumentPosition:function(A){return this._toAbsolute(A,false)
},_toAbsolute:function(B,E){if(navigator.userAgent.toLowerCase().indexOf("msie")==-1){return this._toAbsoluteMozilla(B,E)
}var A=0;
var G=0;
var D=B;
while(D){var C=0;
var F=0;
if(D!=B){var C=parseInt(this.getElementsComputedStyle(D,"borderLeftWidth"));
var F=parseInt(this.getElementsComputedStyle(D,"borderTopWidth"));
C=isNaN(C)?0:C;
F=isNaN(F)?0:F
}A+=D.offsetLeft-D.scrollLeft+C;
G+=D.offsetTop-D.scrollTop+F;
D=D.offsetParent
}if(E){A-=this.docScrollLeft();
G-=this.docScrollTop()
}return{x:A,y:G}
},_toAbsoluteMozilla:function(B,D){var A=0;
var E=0;
var C=B;
while(C){A+=C.offsetLeft;
E+=C.offsetTop;
C=C.offsetParent
}C=B;
while(C&&C!=document.body&&C!=document.documentElement){if(C.scrollLeft){A-=C.scrollLeft
}if(C.scrollTop){E-=C.scrollTop
}C=C.parentNode
}if(D){A-=this.docScrollLeft();
E-=this.docScrollTop()
}return{x:A,y:E}
},docScrollLeft:function(){if(window.pageXOffset){return window.pageXOffset
}else{if(document.documentElement&&document.documentElement.scrollLeft){return document.documentElement.scrollLeft
}else{if(document.body){return document.body.scrollLeft
}else{return 0
}}}},docScrollTop:function(){if(window.pageYOffset){return window.pageYOffset
}else{if(document.documentElement&&document.documentElement.scrollTop){return document.documentElement.scrollTop
}else{if(document.body){return document.body.scrollTop
}else{return 0
}}}}};
/*@end@*/var Calendar=function(D,C,G,A,E){this.activeDiv=null;
this.currentDateEl=null;
this.getDateStatus=null;
this.getDateToolTip=null;
this.getDateText=null;
this.timeout=null;
this.onSelected=G||null;
this.onClose=A||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.weekClickable=false;
this.firstDayOfWeek=typeof D=="number"?D:Calendar._FD;
this.showsOtherMonths=false;
this.dateStr=C;
this.ar_days=null;
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;
this.weekClicked=false;
this.monthClicked=false;
if((this.dateDefaultOverride==null)&&(E!=null)){this.dateDefaultOverride=E
}if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined"){Calendar._SDN_len=3
}var B=new Array();
for(var F=8;
F>0;
){B[--F]=Calendar._DN[F].substr(0,Calendar._SDN_len)
}Calendar._SDN=B;
if(typeof Calendar._SMN_len=="undefined"){Calendar._SMN_len=3
}B=new Array();
for(var F=12;
F>0;
){B[--F]=Calendar._MN[F].substr(0,Calendar._SMN_len)
}Calendar._SMN=B
}};
Calendar.NAVTYPE_YEAR_BACK=-2;
Calendar.NAVTYPE_MONTH_BACK=-1;
Calendar.NAVTYPE_MONTH_FWD=1;
Calendar.NAVTYPE_YEAR_FWD=2;
Calendar.NAVTYPE_ABOUT=400;
Calendar.NAVTYPE_CLOSE=200;
Calendar.NAVTYPE_DRAG=300;
Calendar.NAVTYPE_FIRST_DOW=100;
Calendar.NAVTYPE_CLICK_TIME=50;
Calendar.NAVTYPE_CLICK_WEEK=25;
Calendar.NAVTYPE_CLICK_MONTH=15;
Calendar.NAVTYPE_TODAY=0;
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));
Calendar.is_opera=/opera/i.test(navigator.userAgent);
Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);
Calendar.getAbsolutePos=function(E){var A=0,D=0;
var C=/^div$/i.test(E.tagName);
if(C&&E.scrollLeft){A=E.scrollLeft
}if(C&&E.scrollTop){D=E.scrollTop
}var F={x:E.offsetLeft-A,y:E.offsetTop-D};
if(E.offsetParent){var B=this.getAbsolutePos(E.offsetParent);
F.x+=B.x;
F.y+=B.y
}return F
};
Calendar.isRelated=function(C,A){var D=A.relatedTarget;
if(!D){var B=A.type;
if(B=="mouseover"){D=A.fromElement
}else{if(B=="mouseout"){D=A.toElement
}}}while(D){if(D==C){return true
}D=D.parentNode
}return false
};
Calendar.removeClass=function(E,D){if(!(E&&E.className)){return 
}var A=E.className.split(" ");
var B=new Array();
for(var C=A.length;
C>0;
){if(A[--C]!=D){B[B.length]=A[C]
}}E.className=B.join(" ")
};
Calendar.addClass=function(B,A){Calendar.removeClass(B,A);
B.className+=" "+A
};
Calendar.getElement=function(A){var B=Calendar.is_ie?window.event.srcElement:A.currentTarget;
while(B.nodeType!=1||/^div$/i.test(B.tagName)){B=B.parentNode
}return B
};
Calendar.getTargetElement=function(A){var B=Calendar.is_ie?window.event.srcElement:A.target;
while(B.nodeType!=1){B=B.parentNode
}return B
};
Calendar.stopEvent=function(A){A||(A=window.event);
if(Calendar.is_ie){A.cancelBubble=true;
A.returnValue=false
}else{A.preventDefault();
A.stopPropagation()
}return false
};
Calendar.addEvent=function(A,C,B){if(A.attachEvent){A.attachEvent("on"+C,B)
}else{if(A.addEventListener){A.addEventListener(C,B,true)
}else{A["on"+C]=B
}}};
Calendar.removeEvent=function(A,C,B){if(A.detachEvent){A.detachEvent("on"+C,B)
}else{if(A.removeEventListener){A.removeEventListener(C,B,true)
}else{A["on"+C]=null
}}};
Calendar.createElement=function(C,B){var A=null;
if(document.createElementNS){A=document.createElementNS("http://www.w3.org/1999/xhtml",C)
}else{A=document.createElement(C)
}if(typeof B!="undefined"){B.appendChild(A)
}return A
};
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(A){if(typeof A.month!="undefined"){return A
}else{if(typeof A.parentNode.month!="undefined"){return A.parentNode
}}return null
};
Calendar.findYear=function(A){if(typeof A.year!="undefined"){return A
}else{if(typeof A.parentNode.year!="undefined"){return A.parentNode
}}return null
};
Calendar.showMonthsCombo=function(){var E=Calendar._C;
if(!E){return false
}var E=E;
var F=E.activeDiv;
var D=E.monthsCombo;
if(E.hilitedMonth){Calendar.removeClass(E.hilitedMonth,"hilite")
}if(E.activeMonth){Calendar.removeClass(E.activeMonth,"active")
}var C=E.monthsCombo.getElementsByTagName("div")[E.date.getMonth()];
Calendar.addClass(C,"active");
E.activeMonth=C;
var B=D.style;
B.display="block";
if(F.navtype<0){B.left=F.offsetLeft+"px"
}else{var A=D.offsetWidth;
if(typeof A=="undefined"){A=50
}B.left=(F.offsetLeft+F.offsetWidth-A)+"px"
}B.top=(F.offsetTop+F.offsetHeight)+"px"
};
Calendar.showYearsCombo=function(D){var A=Calendar._C;
if(!A){return false
}var A=A;
var C=A.activeDiv;
var F=A.yearsCombo;
if(A.hilitedYear){Calendar.removeClass(A.hilitedYear,"hilite")
}if(A.activeYear){Calendar.removeClass(A.activeYear,"active")
}A.activeYear=null;
var B=A.date.getFullYear()+(D?1:-1);
var I=F.firstChild;
var H=false;
for(var E=12;
E>0;
--E){if(B>=A.minYear&&B<=A.maxYear){I.innerHTML=B;
I.year=B;
I.style.display="block";
H=true
}else{I.style.display="none"
}I=I.nextSibling;
B+=D?A.yearStep:-A.yearStep
}if(H){var J=F.style;
J.display="block";
if(C.navtype<0){J.left=C.offsetLeft+"px"
}else{var G=F.offsetWidth;
if(typeof G=="undefined"){G=50
}J.left=(C.offsetLeft+C.offsetWidth-G)+"px"
}J.top=(C.offsetTop+C.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.weekClicked=false;
cal.monthClicked=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.weekClicked=false;
cal.monthClicked=false;
cal.callHandler()
}}}if(cal.date==null){cal.date=cal.dateDefaultOverride
}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);
removeEvent(document,"mouseover",tableMouseOver);
removeEvent(document,"mousemove",tableMouseOver);
cal._hideCombos();
_C=null;
return stopEvent(ev)
}};
Calendar.tableMouseOver=function(M){var A=Calendar._C;
if(!A){return 
}var C=A.activeDiv;
var I=Calendar.getTargetElement(M);
if(I==C||I.parentNode==C){Calendar.addClass(C,"hilite active");
Calendar.addClass(C.parentNode,"rowhilite")
}else{if(typeof C.navtype=="undefined"||(C.navtype!=Calendar.NAVTYPE_CLICK_TIME&&(C.navtype==0||Math.abs(C.navtype)>2))){Calendar.removeClass(C,"active")
}Calendar.removeClass(C,"hilite");
Calendar.removeClass(C.parentNode,"rowhilite")
}M||(M=window.event);
if(C.navtype==Calendar.NAVTYPE_CLICK_TIME&&I!=C){var L=Calendar.getAbsolutePos(C);
var O=C.offsetWidth;
var N=M.clientX;
var P;
var K=true;
if(N>L.x+O){P=N-L.x-O;
K=false
}else{P=L.x-N
}if(P<0){P=0
}var F=C._range;
var H=C._current;
var G=Math.floor(P/10)%F.length;
for(var E=F.length;
--E>=0;
){if(F[E]==H){break
}}while(G-->0){if(K){if(--E<0){E=F.length-1
}}else{if(++E>=F.length){E=0
}}}var B=F[E];
C.innerHTML=B;
A.onUpdateTime()
}var D=Calendar.findMonth(I);
if(D){if(D.month!=A.date.getMonth()){if(A.hilitedMonth){Calendar.removeClass(A.hilitedMonth,"hilite")
}Calendar.addClass(D,"hilite");
A.hilitedMonth=D
}else{if(A.hilitedMonth){Calendar.removeClass(A.hilitedMonth,"hilite")
}}}else{if(A.hilitedMonth){Calendar.removeClass(A.hilitedMonth,"hilite")
}var J=Calendar.findYear(I);
if(J){if(J.year!=A.date.getFullYear()){if(A.hilitedYear){Calendar.removeClass(A.hilitedYear,"hilite")
}Calendar.addClass(J,"hilite");
A.hilitedYear=J
}else{if(A.hilitedYear){Calendar.removeClass(A.hilitedYear,"hilite")
}}}else{if(A.hilitedYear){Calendar.removeClass(A.hilitedYear,"hilite")
}}}return Calendar.stopEvent(M)
};
Calendar.tableMouseDown=function(A){if(Calendar.getTargetElement(A)==Calendar.getElement(A)){return Calendar.stopEvent(A)
}};
Calendar.calDragIt=function(B){var C=Calendar._C;
if(!(C&&C.dragging)){return false
}var E;
var D;
if(Calendar.is_ie){D=window.event.clientY+document.body.scrollTop;
E=window.event.clientX+document.body.scrollLeft
}else{E=B.pageX;
D=B.pageY
}C.hideShowCovered();
var A=C.element.style;
A.left=(E-C.xOffs)+"px";
A.top=(D-C.yOffs)+"px";
return Calendar.stopEvent(B)
};
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!=Calendar.NAVTYPE_DRAG){with(Calendar){if(el.navtype==Calendar.NAVTYPE_CLICK_TIME){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==Calendar.NAVTYPE_MONTH_BACK||el.navtype==Calendar.NAVTYPE_MONTH_FWD){if(cal.timeout){clearTimeout(cal.timeout)
}cal.timeout=setTimeout("Calendar.showMonthsCombo()",250)
}else{if(el.navtype==Calendar.NAVTYPE_YEAR_BACK||el.navtype==Calendar.NAVTYPE_YEAR_FWD){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(A){Calendar.cellClick(Calendar.getElement(A),A||window.event);
if(Calendar.is_ie){document.selection.empty()
}};
Calendar.dayMouseOver=function(B){var A=Calendar.getElement(B);
if(Calendar.isRelated(A,B)||Calendar._C||A.disabled){return false
}if(A.ttip){if(A.ttip.substr(0,1)=="_"){A.ttip=A.caldate.print(A.calendar.ttDateFormat)+A.ttip.substr(1)
}A.calendar.tooltips.innerHTML=A.ttip
}if(A.navtype!=Calendar.NAVTYPE_DRAG){Calendar.addClass(A,"hilite");
if(A.caldate){Calendar.addClass(A.parentNode,"rowhilite")
}}return Calendar.stopEvent(B)
};
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){el.calendar.tooltips.innerHTML=_TT["SEL_DATE"]
}return stopEvent(ev)
}};
Calendar.cellClick=function(E,N){var C=E.calendar;
var H=false;
var K=false;
var F=null;
if(typeof E.navtype=="undefined"||E.navtype==Calendar.NAVTYPE_CLICK_WEEK||E.navtype==Calendar.NAVTYPE_CLICK_MONTH){if(E.navtype==Calendar.NAVTYPE_CLICK_MONTH){C.monthClicked=true;
C.weekClicked=false
}else{if(E.navtype==Calendar.NAVTYPE_CLICK_WEEK){E=E.nextSibling;
C.weekClicked=true;
C.monthClicked=false;
if(C.currentDateEl){Calendar.removeClass(C.currentDateEl.parentNode,"selected");
Calendar.addClass(E.parentNode,"selected")
}}else{C.weekClicked=false;
C.monthClicked=false;
if(C.currentDateEl){Calendar.removeClass(C.currentDateEl.parentNode,"selected")
}}}var C=E.calendar;
if(C.currentDateEl){Calendar.removeClass(C.currentDateEl,"selected");
Calendar.addClass(E,"selected");
H=(C.currentDateEl==E);
if(!H){C.currentDateEl=E
}}C.date.setDateOnly(E.caldate);
F=C.date;
var B=!(C.dateClicked=!E.otherMonth);
if(!B&&!C.currentDateEl){C._toggleMultipleDate(new Date(F))
}else{K=!E.disabled
}if(B){C._init(C.firstDayOfWeek,F)
}}else{if(E.navtype==Calendar.NAVTYPE_CLOSE){Calendar.removeClass(E,"hilite");
C.callCloseHandler();
return 
}F=new Date(C.date);
if(E.navtype==0){F.setDateOnly(new Date())
}C.dateClicked=false;
C.weekClicked=false;
C.monthClicked=false;
var M=F.getFullYear();
var G=F.getMonth();
function A(Q){var R=F.getDate();
var P=F.getMonthDays(Q);
if(R>P){F.setDate(P)
}F.setMonth(Q)
}switch(E.navtype){case Calendar.NAVTYPE_ABOUT:Calendar.removeClass(E,"hilite");
var O=Calendar._TT["ABOUT"];
if(typeof O!="undefined"){O+=C.showsTime?Calendar._TT["ABOUT_TIME"]:""
}else{O='Help and about box text is not translated into this language.\nIf you know this language and you feel generous please update\nthe corresponding file in "lang" subdir to match calendar-en.js\nand send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\nThank you!\nhttp://dynarch.com/mishoo/calendar.epl\n'
}alert(O);
return ;
case Calendar.NAVTYPE_YEAR_BACK:if(M>C.minYear){F.setFullYear(M-1)
}break;
case Calendar.NAVTYPE_MONTH_BACK:if(G>0){A(G-1)
}else{if(M-->C.minYear){F.setFullYear(M);
A(11)
}}break;
case Calendar.NAVTYPE_MONTH_FWD:if(G<11){A(G+1)
}else{if(M<C.maxYear){F.setFullYear(M+1);
A(0)
}}break;
case Calendar.NAVTYPE_YEAR_FWD:if(M<C.maxYear){F.setFullYear(M+1)
}break;
case Calendar.NAVTYPE_FIRST_DOW:C.setFirstDayOfWeek(E.fdow);
return ;
case Calendar.NAVTYPE_CLICK_TIME:var J=E._range;
var L=E.innerHTML;
for(var I=J.length;
--I>=0;
){if(J[I]==L){break
}}if(N&&N.shiftKey){if(--I<0){I=J.length-1
}}else{if(++I>=J.length){I=0
}}var D=J[I];
E.innerHTML=D;
C.onUpdateTime();
return ;
case Calendar.NAVTYPE_TODAY:if((typeof C.getDateStatus=="function")&&C.getDateStatus(F,F.getFullYear(),F.getMonth(),F.getDate())){return false
}break
}if(!F.equalsTo(C.date)){C.setDate(F);
K=true
}else{if(E.navtype==Calendar.NAVTYPE_TODAY){K=H=true
}}}if(K){N&&C.callHandler()
}if(H){Calendar.removeClass(E,"hilite");
N&&C.callCloseHandler()
}};
Calendar.dateCellClick=function(B,A){return A
};
Calendar.prototype.create=function(M){var L=null;
if(!M){L=document.getElementsByTagName("body")[0];
this.isPopup=true
}else{L=M;
this.isPopup=false
}if((this.date==null)&&(this.dateDefaultOverride!=null)){this.date=this.dateDefaultOverride;
this.dateDefaultOverride=null
}else{if(this.multiple){var I;
for(var H in this.multiple){if(!isNaN(Number(H))){I=new Date(H.substr(0,4),H.substr(4,2)-1,H.substr(6,2))
}}this.date=I?I:new Date()
}else{this.date=this.dateStr?new Date(this.dateStr):new Date()
}}var P=Calendar.createElement("table");
this.table=P;
P.cellSpacing=0;
P.cellPadding=0;
P.calendar=this;
Calendar.addEvent(P,"mousedown",Calendar.tableMouseDown);
var B=Calendar.createElement("div");
this.element=B;
B.className="calendar";
if(this.isPopup){B.style.position="absolute";
B.style.display="none"
}B.appendChild(P);
var J=Calendar.createElement("thead",P);
var N=null;
var Q=null;
var A=this;
var E=function(T,S,R){N=Calendar.createElement("td",Q);
N.colSpan=S;
N.className="button";
if(R!=Calendar.NAVTYPE_TODAY&&Math.abs(R)<=2){N.className+=" nav"
}Calendar._add_evs(N);
N.calendar=A;
N.navtype=R;
N.innerHTML="<div unselectable='on'>"+T+"</div>";
return N
};
Q=Calendar.createElement("tr",J);
var C=6;
(this.isPopup)&&--C;
(this.weekNumbers)&&++C;
E("?",1,Calendar.NAVTYPE_ABOUT).ttip=Calendar._TT["INFO"];
if(this.isPopup){this.title=E("",C,Calendar.NAVTYPE_DRAG);
this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];
this.title.style.cursor="move";
E("&#x00d7;",1,Calendar.NAVTYPE_CLOSE).ttip=Calendar._TT["CLOSE"]
}else{this.title=E("",C,Calendar.NAVTYPE_CLICK_MONTH);
this.title.ttip=Calendar._TT["CHOOSE_MONTH"]
}this.title.className="title";
Q=Calendar.createElement("tr",J);
Q.className="headrow";
this._nav_py=E("&#x00ab;",1,Calendar.NAVTYPE_YEAR_BACK);
this._nav_py.ttip=Calendar._TT["PREV_YEAR"];
this._nav_pm=E("&#x2039;",1,Calendar.NAVTYPE_MONTH_BACK);
this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];
this._nav_now=E(Calendar._TT["TODAY"],this.weekNumbers?4:3,Calendar.NAVTYPE_TODAY);
this._nav_now.ttip=Calendar._TT["GO_TODAY"];
this._nav_nm=E("&#x203a;",1,Calendar.NAVTYPE_MONTH_FWD);
this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];
this._nav_ny=E("&#x00bb;",1,Calendar.NAVTYPE_YEAR_FWD);
this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];
Q=Calendar.createElement("tr",J);
Q.className="daynames";
if(this.weekNumbers){N=Calendar.createElement("td",Q);
N.className="name wn";
N.innerHTML=Calendar._TT["WK"]
}for(var H=7;
H>0;
--H){N=Calendar.createElement("td",Q);
if(!H){N.navtype=Calendar.NAVTYPE_FIRST_DOW;
N.calendar=this;
Calendar._add_evs(N)
}}this.firstdayname=(this.weekNumbers)?Q.firstChild.nextSibling:Q.firstChild;
this._displayWeekdays();
var G=Calendar.createElement("tbody",P);
this.tbody=G;
for(H=6;
H>0;
--H){Q=Calendar.createElement("tr",G);
if(this.weekNumbers){N=Calendar.createElement("td",Q);
if(this.weekClickable){N.navtype=Calendar.NAVTYPE_CLICK_WEEK;
N.calendar=this;
Calendar._add_evs(N)
}}for(var F=7;
F>0;
--F){N=Calendar.createElement("td",Q);
N.calendar=this;
Calendar._add_evs(N)
}}if(this.showsTime){Q=Calendar.createElement("tr",G);
Q.className="time";
N=Calendar.createElement("td",Q);
N.className="time";
N.colSpan=2;
N.innerHTML=Calendar._TT["TIME"]||"&nbsp;";
N=Calendar.createElement("td",Q);
N.className="time";
N.colSpan=this.weekNumbers?4:3;
(function(){function U(d,f,e,g){var b=Calendar.createElement("span",N);
b.className=d;
b.innerHTML=f;
b.calendar=A;
b.ttip=Calendar._TT["TIME_PART"];
b.navtype=Calendar.NAVTYPE_CLICK_TIME;
b._range=[];
if(typeof e!="number"){b._range=e
}else{for(var c=e;
c<=g;
++c){var a;
if(c<10&&g>=10){a="0"+c
}else{a=""+c
}b._range[b._range.length]=a
}}Calendar._add_evs(b);
return b
}var Y=A.date.getHours();
var R=A.date.getMinutes();
var Z=!A.time24;
var S=(Y>12);
if(Z&&S){Y-=12
}var W=U("hour",Y,Z?1:0,Z?12:23);
var V=Calendar.createElement("span",N);
V.innerHTML=":";
V.className="colon";
var T=U("minute",R,0,59);
var X=null;
N=Calendar.createElement("td",Q);
N.className="time";
N.colSpan=2;
if(Z){X=U("ampm",S?"pm":"am",["am","pm"])
}else{N.innerHTML="&nbsp;"
}A.onSetTime=function(){var b,a=this.date.getHours(),c=this.date.getMinutes();
if(Z){b=(a>=12);
if(b){a-=12
}if(a==0){a=12
}X.innerHTML=b?"pm":"am"
}W.innerHTML=(a<10)?("0"+a):a;
T.innerHTML=(c<10)?("0"+c):c
};
A.onUpdateTime=function(){var b=this.date;
var c=parseInt(W.innerHTML,10);
if(Z){if(/pm/i.test(X.innerHTML)&&c<12){c+=12
}else{if(/am/i.test(X.innerHTML)&&c==12){c=0
}}}var e=b.getDate();
var a=b.getMonth();
var f=b.getFullYear();
b.setHours(c);
b.setMinutes(parseInt(T.innerHTML,10));
b.setFullYear(f);
b.setMonth(a);
b.setDate(e);
this.dateClicked=false;
this.weekClicked=false;
this.monthClicked=false;
this.callHandler()
}
})()
}else{this.onSetTime=this.onUpdateTime=function(){}
}var K=Calendar.createElement("tfoot",P);
Q=Calendar.createElement("tr",K);
Q.className="footrow";
N=E(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,Calendar.NAVTYPE_DRAG);
N.className="ttip";
if(this.isPopup){N.ttip=Calendar._TT["DRAG_TO_MOVE"];
N.style.cursor="move"
}this.tooltips=N;
B=Calendar.createElement("div",this.element);
this.monthsCombo=B;
B.className="combo";
for(H=0;
H<Calendar._MN.length;
++H){var D=Calendar.createElement("div");
D.className=Calendar.is_ie?"label-IEfix":"label";
D.month=H;
D.innerHTML=Calendar._SMN[H];
B.appendChild(D)
}B=Calendar.createElement("div",this.element);
this.yearsCombo=B;
B.className="combo";
for(H=12;
H>0;
--H){var O=Calendar.createElement("div");
O.className=Calendar.is_ie?"label-IEfix":"label";
B.appendChild(O)
}this._init(this.firstDayOfWeek,this.date);
L.appendChild(this.element)
};
Calendar._keyEvent=function(L){var A=window._dynarch_popupCalendar;
if(!A||A.multiple){return false
}(Calendar.is_ie)&&(L=window.event);
var I=(Calendar.is_ie||L.type=="keypress"),M=L.keyCode;
if(L.ctrlKey){switch(M){case 37:I&&Calendar.cellClick(A._nav_pm);
break;
case 38:I&&Calendar.cellClick(A._nav_py);
break;
case 39:I&&Calendar.cellClick(A._nav_nm);
break;
case 40:I&&Calendar.cellClick(A._nav_ny);
break;
default:return false
}}else{switch(M){case 32:Calendar.cellClick(A._nav_now);
break;
case 27:I&&A.callCloseHandler();
break;
case 37:case 38:case 39:case 40:if(I){var E,N,J,G,C,D;
E=M==37||M==38;
D=(M==37||M==39)?1:7;
function B(){C=A.currentDateEl;
var K=C.pos;
N=K&15;
J=K>>4;
G=A.ar_days[J][N]
}B();
function F(){var K=new Date(A.date);
K.setDate(K.getDate()-D);
A.setDate(K)
}function H(){var K=new Date(A.date);
K.setDate(K.getDate()+D);
A.setDate(K)
}while(1){switch(M){case 37:if(--N>=0){G=A.ar_days[J][N]
}else{N=6;
M=38;
continue
}break;
case 38:if(--J>=0){G=A.ar_days[J][N]
}else{F();
B()
}break;
case 39:if(++N<7){G=A.ar_days[J][N]
}else{N=0;
M=40;
continue
}break;
case 40:if(++J<A.ar_days.length){G=A.ar_days[J][N]
}else{H();
B()
}break
}break
}if(G){if(!G.disabled){Calendar.cellClick(G)
}else{if(E){F()
}else{H()
}}}}break;
case 13:if(I){Calendar.cellClick(A.currentDateEl,L)
}break;
default:return false
}}return Calendar.stopEvent(L)
};
Calendar.prototype._init=function(L,V){var U=new Date(),P=U.getFullYear(),X=U.getMonth(),B=U.getDate();
this.table.style.visibility="hidden";
var H=V.getFullYear();
if(H<this.minYear){H=this.minYear;
V.setFullYear(H)
}else{if(H>this.maxYear){H=this.maxYear;
V.setFullYear(H)
}}this.firstDayOfWeek=L;
this.date=new Date(V);
var W=V.getMonth();
var Z=V.getDate();
var Y=V.getMonthDays();
V.setDate(1);
var Q=(V.getDay()-this.firstDayOfWeek)%7;
if(Q<0){Q+=7
}V.setDate(-Q);
V.setDate(V.getDate()+1);
var E=this.tbody.firstChild;
var J=Calendar._SMN[W];
var N=this.ar_days=new Array();
var M=Calendar._TT["WEEKEND"];
var D=this.multiple?(this.datesCells={}):null;
for(var S=0;
S<6;
++S,E=E.nextSibling){var A=E.firstChild;
if(this.weekNumbers){A.className="day wn";
A.innerHTML=V.getWeekNumber();
A=A.nextSibling
}E.className="daysrow";
var T=false,F,C=N[S]=[];
for(var R=0;
R<7;
++R,A=A.nextSibling,V.setDate(F+1)){F=V.getDate();
var G=V.getDay();
A.className="day";
A.pos=S<<4|R;
C[R]=A;
var K=(V.getMonth()==W);
if(!K){if(this.showsOtherMonths){A.className+=" othermonth";
A.otherMonth=true
}else{A.className="emptycell";
A.innerHTML="&nbsp;";
A.disabled=true;
continue
}}else{A.otherMonth=false;
T=true
}A.disabled=false;
A.innerHTML=this.getDateText?this.getDateText(V,F):F;
if(D){D[V.print("%Y%m%d")]=A
}if(this.getDateStatus){var O=this.getDateStatus(V,H,W,F);
if(this.getDateToolTip){var I=this.getDateToolTip(V,H,W,F);
if(I){A.title=I
}}if(O===true){A.className+=" disabled";
A.disabled=true
}else{if(/disabled/i.test(O)){A.disabled=true
}A.className+=" "+O
}}if(!A.disabled){A.caldate=new Date(V);
A.ttip="_";
if(!this.multiple&&K&&F==Z&&this.hiliteToday){A.className+=" selected";
this.currentDateEl=A
}if(V.getFullYear()==P&&V.getMonth()==X&&F==B){A.className+=" today";
A.ttip+=Calendar._TT["PART_TODAY"]
}if(M.indexOf(G.toString())!=-1){A.className+=A.otherMonth?" oweekend":" weekend"
}}}if(!(T||this.showsOtherMonths)){E.className="emptyrow"
}}this.title.innerHTML=Calendar._MN[W]+", "+H;
this.title.caldate=new Date(V);
this.onSetTime();
V=this.date;
this.dateStr=this.date;
this.table.style.visibility="visible";
this._initMultipleDates();
V=this.date;
this.dateStr=this.date;
this.params.date=this.date;
this.params.dateDefaultOverride=this.date
};
Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var B in this.multiple){var A=this.datesCells[B];
var C=this.multiple[B];
if(!C){continue
}if(A){A.className+=" selected"
}}}};
Calendar.prototype._toggleMultipleDate=function(B){if(this.multiple){var C=B.print("%Y%m%d");
var A=this.datesCells[C];
if(A){var D=this.multiple[C];
if(!D){Calendar.addClass(A,"selected");
this.multiple[C]=B
}else{Calendar.removeClass(A,"selected");
delete this.multiple[C]
}}}};
Calendar.prototype.setDateToolTipHandler=function(A){this.getDateToolTip=A
};
Calendar.prototype.setDate=function(A){if(!A.equalsTo(this.date)){this._init(this.firstDayOfWeek,A)
}};
Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date)
};
Calendar.prototype.setFirstDayOfWeek=function(A){this._init(A,this.date);
this._displayWeekdays()
};
Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(A){this.getDateStatus=A
};
Calendar.prototype.setRange=function(A,B){this.minYear=A;
this.maxYear=B
};
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 A=this.element.parentNode;
A.removeChild(this.element);
Calendar._C=null;
window._dynarch_popupCalendar=null
};
Calendar.prototype.reparent=function(B){var A=this.element;
A.parentNode.removeChild(A);
B.appendChild(A)
};
Calendar._checkCalendar=function(B){var C=window._dynarch_popupCalendar;
if(!C){return false
}var A=Calendar.is_ie?Calendar.getElement(B):Calendar.getTargetElement(B);
for(;
A!=null&&A!=C.element;
A=A.parentNode){}if(A==null){window._dynarch_popupCalendar.callCloseHandler();
return Calendar.stopEvent(B)
}};
Calendar.prototype.show=function(){var E=this.table.getElementsByTagName("tr");
for(var D=E.length;
D>0;
){var F=E[--D];
Calendar.removeClass(F,"rowhilite");
var C=F.getElementsByTagName("td");
for(var B=C.length;
B>0;
){var A=C[--B];
Calendar.removeClass(A,"hilite");
Calendar.removeClass(A,"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(A,C){var B=this.element.style;
B.left=A+"px";
B.top=C+"px";
this.show()
};
Calendar.prototype.showAtElement=function(C,D){var A=this;
var E=Calendar.getAbsolutePos(C);
if(!D||typeof D!="string"){this.showAt(E.x,E.y+C.offsetHeight);
return true
}function B(I){if(I.x<0){I.x=0
}if(I.y<0){I.y=0
}var J=document.createElement("div");
var H=J.style;
H.position="absolute";
H.right=H.bottom=H.width=H.height="0px";
document.body.appendChild(J);
var G=Calendar.getAbsolutePos(J);
document.body.removeChild(J);
if(Calendar.is_ie){G.y+=document.body.scrollTop;
G.x+=document.body.scrollLeft
}else{G.y+=window.scrollY;
G.x+=window.scrollX
}var F=I.x+I.width-G.x;
if(F>0){I.x-=F
}F=I.y+I.height-G.y;
if(F>0){I.y-=F
}}this.element.style.display="block";
Calendar.continuation_for_the_fucking_khtml_browser=function(){var F=A.element.offsetWidth;
var H=A.element.offsetHeight;
A.element.style.display="none";
var G=D.substr(0,1);
var I="l";
if(D.length>1){I=D.substr(1,1)
}switch(G){case"T":E.y-=H;
break;
case"B":E.y+=C.offsetHeight;
break;
case"C":E.y+=(C.offsetHeight-H)/2;
break;
case"t":E.y+=C.offsetHeight-H;
break;
case"b":break
}switch(I){case"L":E.x-=F;
break;
case"R":E.x+=C.offsetWidth;
break;
case"C":E.x+=(C.offsetWidth-F)/2;
break;
case"l":E.x+=C.offsetWidth-F;
break;
case"r":break
}E.width=F;
E.height=H+40;
A.monthsCombo.style.display="none";
B(E);
A.showAt(E.x,E.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(A){this.dateFormat=A
};
Calendar.prototype.setTtDateFormat=function(A){this.ttDateFormat=A
};
Calendar.prototype.parseDate=function(B,A){if(!A){A=this.dateFormat
}this.setDate(Date.parseDate(B,A))
};
Calendar.prototype.hideShowCovered=function(){if(this.disableCover){return 
}if(!Calendar.is_ie&&!Calendar.is_opera){return 
}function B(R){var Q=R.style.visibility;
if(!Q){if(document.defaultView&&typeof (document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml){Q=document.defaultView.getComputedStyle(R,"").getPropertyValue("visibility")
}else{Q=""
}}else{if(R.currentStyle){Q=R.currentStyle.visibility
}else{Q=""
}}}return Q
}var P=new Array("applet","iframe","select");
var C=this.element;
var A=Calendar.getAbsolutePos(C);
var F=A.x;
var D=C.offsetWidth+F;
var O=A.y;
var N=C.offsetHeight+O;
for(var H=P.length;
H>0;
){var G=document.getElementsByTagName(P[--H]);
var E=null;
for(var J=G.length;
J>0;
){E=G[--J];
A=Calendar.getAbsolutePos(E);
var M=A.x;
var L=E.offsetWidth+M;
var K=A.y;
var I=E.offsetHeight+K;
if(this.hidden||(M>D)||(L<F)||(K>N)||(I<O)){if(!E.__msh_save_visibility){E.__msh_save_visibility=B(E)
}E.style.visibility=E.__msh_save_visibility
}else{if(!E.__msh_save_visibility){E.__msh_save_visibility=B(E)
}E.style.visibility="hidden"
}}}};
Calendar.prototype._displayWeekdays=function(){var B=this.firstDayOfWeek;
var A=this.firstdayname;
var D=Calendar._TT["WEEKEND"];
for(var C=0;
C<7;
++C){A.className="day name";
var E=(C+B)%7;
if(C){A.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[E]);
A.navtype=Calendar.NAVTYPE_FIRST_DOW;
A.calendar=this;
A.fdow=E;
Calendar._add_evs(A)
}if(D.indexOf(E.toString())!=-1){Calendar.addClass(A,"weekend")
}A.innerHTML=Calendar._SDN[(C+B)%7];
A=A.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(G,A){var H=new Date();
var I=0;
var B=-1;
var F=0;
var K=G.split(/\W+/);
var J=A.match(/%./g);
var E=0,D=0;
var L=0;
var C=0;
for(E=0;
E<K.length;
++E){if(!K[E]){continue
}switch(J[E]){case"%d":case"%e":F=parseInt(K[E],10);
break;
case"%m":B=parseInt(K[E],10)-1;
break;
case"%Y":case"%y":I=parseInt(K[E],10);
(I<100)&&(I+=(I>29)?1900:2000);
break;
case"%b":case"%B":for(D=0;
D<12;
++D){if(Calendar._MN[D].substr(0,K[E].length).toLowerCase()==K[E].toLowerCase()){B=D;
break
}}break;
case"%H":case"%I":case"%k":case"%l":L=parseInt(K[E],10);
break;
case"%P":case"%p":if(/pm/i.test(K[E])&&L<12){L+=12
}else{if(/am/i.test(K[E])&&L>=12){L-=12
}}break;
case"%M":C=parseInt(K[E],10);
break
}}if(isNaN(I)){I=H.getFullYear()
}if(isNaN(B)){B=H.getMonth()
}if(isNaN(F)){F=H.getDate()
}if(isNaN(L)){L=H.getHours()
}if(isNaN(C)){C=H.getMinutes()
}if(I!=0&&B!=-1&&F!=0){return new Date(I,B,F,L,C,0)
}I=0;
B=-1;
F=0;
for(E=0;
E<K.length;
++E){if(K[E].search(/[a-zA-Z]+/)!=-1){var M=-1;
for(D=0;
D<12;
++D){if(Calendar._MN[D].substr(0,K[E].length).toLowerCase()==K[E].toLowerCase()){M=D;
break
}}if(M!=-1){if(B!=-1){F=B+1
}B=M
}}else{if(parseInt(K[E],10)<=12&&B==-1){B=K[E]-1
}else{if(parseInt(K[E],10)>31&&I==0){I=parseInt(K[E],10);
(I<100)&&(I+=(I>29)?1900:2000)
}else{if(F==0){F=K[E]
}}}}}if(I==0){I=H.getFullYear()
}if(B!=-1&&F!=0){return new Date(I,B,F,L,C,0)
}return H
};
Date.prototype.getMonthDays=function(B){var A=this.getFullYear();
if(typeof B=="undefined"){B=this.getMonth()
}if(((0==(A%4))&&((0!=(A%100))||(0==(A%400))))&&B==1){return 29
}else{return Date._MD[B]
}};
Date.prototype.getDayOfYear=function(){var A=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);
var C=new Date(this.getFullYear(),0,0,0,0,0);
var B=A-C;
return Math.floor(B/Date.DAY)
};
Date.prototype.getWeekNumber=function(){var C=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);
var B=C.getDay();
C.setDate(C.getDate()-(B+6)%7+3);
var A=C.valueOf();
C.setMonth(0);
C.setDate(4);
return Math.round((A-C.valueOf())/(7*86400000))+1
};
Date.prototype.equalsTo=function(A){return((this.getFullYear()==A.getFullYear())&&(this.getMonth()==A.getMonth())&&(this.getDate()==A.getDate())&&(this.getHours()==A.getHours())&&(this.getMinutes()==A.getMinutes()))
};
Date.prototype.setDateOnly=function(A){var B=new Date(A);
this.setDate(1);
this.setFullYear(B.getFullYear());
this.setMonth(B.getMonth());
this.setDate(B.getDate())
};
Date.prototype.print=function(I){var A=this.getMonth();
var H=this.getDate();
var J=this.getFullYear();
var L=this.getWeekNumber();
var M=this.getDay();
var Q={};
var N=this.getHours();
var B=(N>=12);
var F=(B)?(N-12):N;
var P=this.getDayOfYear();
if(F==0){F=12
}var C=this.getMinutes();
var G=this.getSeconds();
Q["%a"]=Calendar._SDN[M];
Q["%A"]=Calendar._DN[M];
Q["%b"]=Calendar._SMN[A];
Q["%B"]=Calendar._MN[A];
Q["%C"]=1+Math.floor(J/100);
Q["%d"]=(H<10)?("0"+H):H;
Q["%e"]=H;
Q["%H"]=(N<10)?("0"+N):N;
Q["%I"]=(F<10)?("0"+F):F;
Q["%j"]=(P<100)?((P<10)?("00"+P):("0"+P)):P;
Q["%k"]=N;
Q["%l"]=F;
Q["%m"]=(A<9)?("0"+(1+A)):(1+A);
Q["%M"]=(C<10)?("0"+C):C;
Q["%n"]="\n";
Q["%p"]=B?"PM":"AM";
Q["%P"]=B?"pm":"am";
Q["%s"]=Math.floor(this.getTime()/1000);
Q["%S"]=(G<10)?("0"+G):G;
Q["%t"]="\t";
Q["%U"]=Q["%W"]=Q["%V"]=(L<10)?("0"+L):L;
Q["%u"]=M+1;
Q["%w"]=M;
Q["%y"]=(""+J).substr(2,2);
Q["%Y"]=J;
Q["%%"]="%";
var O=/%./g;
if(!Calendar.is_ie5&&!Calendar.is_khtml){return I.replace(O,function(R){return Q[R]||R
})
}var K=I.match(O);
for(var E=0;
E<K.length;
E++){var D=Q[K[E]];
if(D){O=new RegExp(K[E],"g");
I=I.replace(O,D)
}}return I
};
Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;
Date.prototype.setFullYear=function(B){var A=new Date(this);
A.__msh_oldSetFullYear(B);
if(A.getMonth()!=this.getMonth()){this.setDate(28)
}this.__msh_oldSetFullYear(B)
};
window._dynarch_popupCalendar=null;
/*@end@*/Calendar.setup=function(H){function G(I,J){if(typeof H[I]=="undefined"){H[I]=J
}}G("inputField",null);
G("displayArea",null);
G("button",null);
G("eventName","click");
G("ifFormat","%Y/%m/%d");
G("daFormat","%Y/%m/%d");
G("singleClick",true);
G("disableFunc",null);
G("dateStatusFunc",H["disableFunc"]);
G("dateText",null);
G("firstDay",null);
G("align","Br");
G("range",[1900,2999]);
G("weekNumbers",true);
G("weekClickable",false);
G("flat",null);
G("flatCallback",null);
G("onSelect",null);
G("onClose",null);
G("onUpdate",null);
G("date",null);
G("showsTime",false);
G("timeFormat","24");
G("electric",true);
G("step",2);
G("position",null);
G("cache",false);
G("showOthers",false);
G("disableCover",false);
G("multiple",null);
G("dateDefaultOverride",null);
var D=null;
var C=["inputField","displayArea","button"];
for(var B in C){if(typeof H[C[B]]=="string"){H[C[B]]=document.getElementById(H[C[B]])
}}if(!(H.flat||H.multiple||H.inputField||H.displayArea||H.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");
return false
}function A(J){var I=J.params;
var K=(J.dateClicked||I.electric);
if(K&&I.inputField){I.inputField.value=J.date.print(I.ifFormat);
if(typeof I.inputField.onchange=="function"){I.inputField.onchange()
}}if(K&&I.displayArea){I.displayArea.innerHTML=J.date.print(I.daFormat)
}if(K&&typeof I.onUpdate=="function"){I.onUpdate(J)
}if(K&&I.flat){if(typeof I.flatCallback=="function"){I.flatCallback(J)
}}if(K&&I.singleClick&&J.dateClicked){J.callCloseHandler()
}}if(H.flat!=null){if(typeof H.flat=="string"){H.flat=document.getElementById(H.flat)
}if(!H.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");
return false
}var F=new Calendar(H.firstDay,H.date,H.onSelect||A,H.dateDefaultOverride);
F.showsOtherMonths=H.showOthers;
F.disableCover=H.disableCover;
F.showsTime=H.showsTime;
F.time24=(H.timeFormat=="24");
F.params=H;
F.weekNumbers=H.weekNumbers;
F.weekClickable=H.weekClickable;
F.setRange(H.range[0],H.range[1]);
F.setDateStatusHandler(H.dateStatusFunc);
F.getDateText=H.dateText;
if(H.ifFormat){F.setDateFormat(H.ifFormat)
}if(H.inputField&&typeof H.inputField.value=="string"){F.parseDate(H.inputField.value)
}F.create(H.flat);
F.show();
return F
}var E=H.button||H.displayArea||H.inputField;
E["on"+H.eventName]=function(){var I=H.inputField||H.displayArea;
var K=H.inputField?H.ifFormat:H.daFormat;
var O=false;
var M=window.calendar;
if((I.value=="")&&(I.innerHTML=="")){if(D!=null){H.date=D
}else{if((D==null)&&(H.dateDefaultOverride!=null)){H.dateDefaultOverride=new Date(H.dateDefaultOverride);
D=H.dateDefaultOverride;
H.date=D
}else{H.date=new Date()
}}}else{if(I!=null){H.date=Date.parseDate(I.value||I.innerHTML,K)
}}if(!(M&&H.cache)){window.calendar=M=new Calendar(H.firstDay,H.date,H.onSelect||A,H.onClose||function(P){P.hide()
},H.dateDefaultOverride);
M.showsTime=H.showsTime;
M.time24=(H.timeFormat=="24");
M.weekNumbers=H.weekNumbers;
M.weekClickable=H.weekClickable;
O=true
}else{if(H.date){M.setDate(H.date)
}M.hide()
}if(H.multiple){M.multiple={};
for(var J=H.multiple.length;
--J>=0;
){var N=H.multiple[J];
var L=N.print("%Y%m%d");
M.multiple[L]=N
}}M.showsOtherMonths=H.showOthers;
M.disableCover=H.disableCover;
M.yearStep=H.step;
M.setRange(H.range[0],H.range[1]);
M.params=H;
M.setDateStatusHandler(H.dateStatusFunc);
M.getDateText=H.dateText;
M.setDateFormat(K);
if(O){M.create()
}M.refresh();
if(!H.position){M.showAtElement(H.button||H.displayArea||H.inputField,H.align)
}else{M.showAt(H.position[0],H.position[1])
}return M
};
return F
};
/*@end@*/Calendar._DN=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
Calendar._SDN=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun");
Calendar._FD=0;
Calendar._MN=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
Calendar._SMN=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
Calendar._TT={};
Calendar._TT["INFO"]="About the calendar";
Calendar._TT["ABOUT"]="DHTML Date/Time Selector\n(c) dynarch.com 2002-2005 / Author: Mihai Bazon\nFor latest version visit: http://www.dynarch.com/projects/calendar/\nDistributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details.\n\nDate selection:\n- Use the \xab, \xbb buttons to select year\n- Use the "+String.fromCharCode(8249)+", "+String.fromCharCode(8250)+" buttons to select month\n- Hold mouse button on any of the above buttons for faster selection.";
Calendar._TT["ABOUT_TIME"]="\n\nTime selection:\n- Click on any of the time parts to increase it\n- or Shift-click to decrease it\n- or click and drag for faster selection.";
Calendar._TT["CHOOSE_MONTH"]="Choose this month";
Calendar._TT["PREV_YEAR"]="Prev. year (hold for menu)";
Calendar._TT["PREV_MONTH"]="Prev. month (hold for menu)";
Calendar._TT["GO_TODAY"]="Go Today";
Calendar._TT["NEXT_MONTH"]="Next month (hold for menu)";
Calendar._TT["NEXT_YEAR"]="Next year (hold for menu)";
Calendar._TT["SEL_DATE"]="Select date";
Calendar._TT["DRAG_TO_MOVE"]="Drag to move";
Calendar._TT["PART_TODAY"]=" (today)";
Calendar._TT["DAY_FIRST"]="Display %s first";
Calendar._TT["WEEKEND"]="0,6";
Calendar._TT["CLOSE"]="Close";
Calendar._TT["TODAY"]="Today";
Calendar._TT["TIME_PART"]="(Shift-)Click or drag to change value";
Calendar._TT["DEF_DATE_FORMAT"]="%Y-%m-%d";
Calendar._TT["TT_DATE_FORMAT"]="%a, %b %e";
Calendar._TT["WK"]="wk";
Calendar._TT["TIME"]="Time:";
/*@end@*/function Sarissa(){return 
}Sarissa.PARSED_OK="Document contains no parsing errors";
Sarissa.IS_ENABLED_TRANSFORM_NODE=false;
Sarissa.IS_ENABLED_XMLHTTP=false;
Sarissa.IS_ENABLED_SELECT_NODES=false;
var _sarissa_iNsCounter=0;
var _SARISSA_IEPREFIX4XSLPARAM="";
var _SARISSA_HAS_DOM_IMPLEMENTATION=document.implementation&&true;
var _SARISSA_HAS_DOM_CREATE_DOCUMENT=_SARISSA_HAS_DOM_IMPLEMENTATION&&document.implementation.createDocument;
var _SARISSA_HAS_DOM_FEATURE=_SARISSA_HAS_DOM_IMPLEMENTATION&&document.implementation.hasFeature;
var _SARISSA_IS_MOZ=_SARISSA_HAS_DOM_CREATE_DOCUMENT&&_SARISSA_HAS_DOM_FEATURE;
var _SARISSA_IS_SAFARI=(navigator.userAgent&&navigator.vendor&&(navigator.userAgent.toLowerCase().indexOf("applewebkit")!=-1||navigator.vendor.indexOf("Apple")!=-1));
var _SARISSA_IS_IE=document.all&&window.ActiveXObject&&navigator.userAgent.toLowerCase().indexOf("msie")>-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1;
if(!window.Node||!window.Node.ELEMENT_NODE){var Node={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12}
}if(_SARISSA_IS_IE){_SARISSA_IEPREFIX4XSLPARAM="xsl:";
var _SARISSA_DOM_PROGID="";
var _SARISSA_XMLHTTP_PROGID="";
pickRecentProgID=function(G,A){var F=false;
for(var D=0;
D<G.length&&!F;
D++){try{var B=new ActiveXObject(G[D]);
o2Store=G[D];
F=true;
for(var C=0;
C<A.length;
C++){if(D<=A[C][1]){Sarissa["IS_ENABLED_"+A[C][0]]=true
}}}catch(E){}}if(!F){throw"Could not retreive a valid progID of Class: "+G[G.length-1]+". (original exception: "+e+")"
}G=null;
return o2Store
};
_SARISSA_DOM_PROGID=pickRecentProgID(["Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","Msxml2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"],[["SELECT_NODES",2],["TRANSFORM_NODE",2]]);
_SARISSA_XMLHTTP_PROGID=pickRecentProgID(["Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],[["XMLHTTP",4]]);
_SARISSA_THREADEDDOM_PROGID=pickRecentProgID(["Msxml2.FreeThreadedDOMDocument.5.0","MSXML2.FreeThreadedDOMDocument.4.0","MSXML2.FreeThreadedDOMDocument.3.0"]);
_SARISSA_XSLTEMPLATE_PROGID=pickRecentProgID(["Msxml2.XSLTemplate.5.0","Msxml2.XSLTemplate.4.0","MSXML2.XSLTemplate.3.0"],[["XSLTPROC",2]]);
pickRecentProgID=null;
Sarissa.getDomDocument=function(C,B){var A=new ActiveXObject(_SARISSA_DOM_PROGID);
if(B){if(C){A.loadXML("<a"+_sarissa_iNsCounter+":"+B+" xmlns:a"+_sarissa_iNsCounter+'="'+C+'" />');
++_sarissa_iNsCounter
}else{A.loadXML("<"+B+"/>")
}}return A
};
Sarissa.getParseErrorText=function(A){var C=Sarissa.PARSED_OK;
if(A.parseError!=0){C="XML Parsing Error: "+A.parseError.reason+"\nLocation: "+A.parseError.url+"\nLine Number "+A.parseError.line+", Column "+A.parseError.linepos+":\n"+A.parseError.srcText+"\n";
for(var B=0;
B<A.parseError.linepos;
B++){C+="-"
}C+="^\n"
}return C
};
Sarissa.setXpathNamespaces=function(A,B){A.setProperty("SelectionLanguage","XPath");
A.setProperty("SelectionNamespaces",B)
};
XSLTProcessor=function(){this.template=new ActiveXObject(_SARISSA_XSLTEMPLATE_PROGID);
this.processor=null
};
XSLTProcessor.prototype.importStylesheet=function(B){var A=new ActiveXObject(_SARISSA_THREADEDDOM_PROGID);
A.loadXML(B.xml);
this.template.stylesheet=A;
this.processor=this.template.createProcessor();
this.paramsSet=new Array()
};
XSLTProcessor.prototype.transformToDocument=function(B){this.processor.input=B;
var A=new ActiveXObject(_SARISSA_DOM_PROGID);
this.processor.output=A;
this.processor.transform();
return A
};
XSLTProcessor.prototype.setParameter=function(C,A,B){if(C){this.processor.addParameter(A,B,C)
}else{this.processor.addParameter(A,B)
}if(!this.paramsSet[""+C]){this.paramsSet[""+C]=new Array()
}this.paramsSet[""+C][A]=B
};
XSLTProcessor.prototype.getParameter=function(B,A){B=B||"";
if(B in this.paramsSet&&A in this.paramsSet[B]){return this.paramsSet[B][A]
}else{return null
}}
}else{if(_SARISSA_HAS_DOM_CREATE_DOCUMENT){Sarissa.__handleLoad__=function(A){if(!A.documentElement||A.documentElement.tagName=="parsererror"){A.parseError=-1
}Sarissa.__setReadyState__(A,4)
};
_sarissa_XMLDocument_onload=function(){Sarissa.__handleLoad__(this)
};
Sarissa.__setReadyState__=function(A,B){
//A.readyState=B;
if(A.onreadystatechange!=null&&typeof A.onreadystatechange=="function"){A.onreadystatechange()
}};
Sarissa.getDomDocument=function(C,B){var A=document.implementation.createDocument(C?C:"",B?B:"",null);
A.addEventListener("load",_sarissa_XMLDocument_onload,false);
return A
};
if(window.XMLDocument){XMLDocument.prototype.onreadystatechange=null;
//XMLDocument.prototype.readyState=0;
XMLDocument.prototype.parseError=0;
var _SARISSA_SYNC_NON_IMPLEMENTED=false;
XMLDocument.prototype._sarissa_load=XMLDocument.prototype.load;
XMLDocument.prototype.load=function(D){var A=document.implementation.createDocument("","",null);
Sarissa.copyChildNodes(this,A);
this.parseError=0;
Sarissa.__setReadyState__(this,1);
try{if(this.async==false&&_SARISSA_SYNC_NON_IMPLEMENTED){var B=new XMLHttpRequest();
B.open("GET",D,false);
B.send(null);
Sarissa.__setReadyState__(this,2);
Sarissa.copyChildNodes(B.responseXML,this);
Sarissa.__setReadyState__(this,3)
}else{this._sarissa_load(D)
}}catch(C){this.parseError=-1
}finally{if(this.async==false){Sarissa.__handleLoad__(this)
}}return A
}
}else{if(document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("LS","3.0")){Document.prototype.async=true;
Document.prototype.onreadystatechange=null;
Document.prototype.parseError=0;
Document.prototype.load=function(E){var D=document.implementation.createLSParser(this.async?document.implementation.MODE_ASYNCHRONOUS:document.implementation.MODE_SYNCHRONOUS,null);
if(this.async){var B=this;
D.addEventListener("load",function(F){
//B.readyState=4;
Sarissa.copyChildNodes(F.newDocument,B.documentElement,false);
B.onreadystatechange.call()
},false)
}try{var A=D.parseURI(E)
}catch(C){this.parseError=-1
}if(!this.async){Sarissa.copyChildNodes(A,this.documentElement,false)
}return A
};
Sarissa.getDomDocument=function(B,A){return document.implementation.createDocument(B?B:"",A?A:"",null)
}
}}}}if(!window.DOMParser){DOMParser=function(){};
if(_SARISSA_IS_SAFARI){DOMParser.prototype.parseFromString=function(B,C){if(C.toLowerCase()!="application/xml"){throw'Cannot handle content type: "'+C+'"'
}var A=new XMLHttpRequest();
A.open("GET","data:text/xml;charset=utf-8,"+encodeURIComponent(str),false);
A.send(null);
return A.responseXML
}
}else{if(Sarissa.getDomDocument&&Sarissa.getDomDocument()&&"loadXML" in Sarissa.getDomDocument()){DOMParser.prototype.parseFromString=function(A,C){var B=Sarissa.getDomDocument();
B.loadXML(A);
return B
}
}}}if(window.XMLHttpRequest){Sarissa.IS_ENABLED_XMLHTTP=true
}else{if(_SARISSA_IS_IE){XMLHttpRequest=function(){return new ActiveXObject(_SARISSA_XMLHTTP_PROGID)
};
Sarissa.IS_ENABLED_XMLHTTP=true
}}if(!window.document.importNode&&_SARISSA_IS_IE){try{window.document.importNode=function(C,B){var A=document.createElement("div");
if(B){A.innerHTML=Sarissa.serialize(C)
}else{A.innerHTML=Sarissa.serialize(C.cloneNode(false))
}return A.firstChild
}
}catch(e){}}if(!Sarissa.getParseErrorText){Sarissa.getParseErrorText=function(A){var B=Sarissa.PARSED_OK;
if(A&&A.parseError&&A.parseError!=0){if(A.documentElement.tagName=="parsererror"){B=A.documentElement.firstChild.data;
B+="\n"+A.documentElement.firstChild.nextSibling.firstChild.data
}else{B=Sarissa.getText(A.documentElement)
}}return B
}
}Sarissa.getText=function(G,B){var E="";
var C=G.childNodes;
for(var D=0;
D<C.length;
D++){var F=C[D];
var A=F.nodeType;
if(A==Node.TEXT_NODE||A==Node.CDATA_SECTION_NODE){E+=F.data
}else{if(B==true&&(A==Node.ELEMENT_NODE||A==Node.DOCUMENT_NODE||A==Node.DOCUMENT_FRAGMENT_NODE)){E+=Sarissa.getText(F,true)
}}}return E
};
if(window.XMLSerializer){Sarissa.serialize=function(A){var B=null;
if(A){B=A.innerHTML?A.innerHTML:(new XMLSerializer()).serializeToString(A)
}return B
}
}else{if(Sarissa.getDomDocument&&(Sarissa.getDomDocument("","foo",null)).xml){Sarissa.serialize=function(A){var B=null;
if(A){B=A.innerHTML?A.innerHTML:A.xml
}return B
};
XMLSerializer=function(){};
XMLSerializer.prototype.serializeToString=function(A){return A.xml
}
}}Sarissa.stripTags=function(A){return A.replace(/<[^>]+>/g,"")
};
Sarissa.clearChildNodes=function(A){while(A.firstChild){A.removeChild(A.firstChild)
}};
Sarissa.copyChildNodes=function(D,E,F){if((!D)||(!E)){throw"Both source and destination nodes must be provided"
}if(!F){Sarissa.clearChildNodes(E)
}var B=E.nodeType==Node.DOCUMENT_NODE?E:E.ownerDocument;
var A=D.childNodes;
if((!_SARISSA_IS_IE)&&B.importNode){for(var C=0;
C<A.length;
C++){E.appendChild(B.importNode(A[C],true))
}}else{for(var C=0;
C<A.length;
C++){E.appendChild(A[C].cloneNode(true))
}}};
Sarissa.moveChildNodes=function(D,E,F){if((!D)||(!E)){throw"Both source and destination nodes must be provided"
}if(!F){Sarissa.clearChildNodes(E)
}var A=D.childNodes;
if(D.ownerDocument==E.ownerDocument){while(D.firstChild){E.appendChild(D.firstChild)
}}else{var B=E.nodeType==Node.DOCUMENT_NODE?E:E.ownerDocument;
if(B.importNode&&(!_SARISSA_IS_IE)){for(var C=0;
C<A.length;
C++){E.appendChild(B.importNode(A[C],true))
}}else{for(var C=0;
C<A.length;
C++){E.appendChild(A[C].cloneNode(true))
}}Sarissa.clearChildNodes(D)
}};
Sarissa.xmlize=function(E,H,D){D=D?D:"";
var F=D+"<"+H+">";
var B=false;
if(!(E instanceof Object)||E instanceof Number||E instanceof String||E instanceof Boolean||E instanceof Date){F+=Sarissa.escape(""+E);
B=true
}else{F+="\n";
var G="";
var A=E instanceof Array;
for(var C in E){F+=Sarissa.xmlize(E[C],(A?'array-item key="'+C+'"':C),D+"   ")
}F+=D
}return F+=(H.indexOf(" ")!=-1?"</array-item>\n":"</"+H+">\n")
};
Sarissa.escape=function(A){return A.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")
};
Sarissa.unescape=function(A){return A.replace(/&apos;/g,"'").replace(/&quot;/g,'"').replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&amp;/g,"&")
};
/*@end@*/Sarissa.updateContentFromURI=function(C,F,A){try{F.style.cursor="wait";
var B=new XMLHttpRequest();
B.open("GET",C);
function E(){if(B.readyState==4){F.style.cursor="auto";
Sarissa.updateContentFromNode(B.responseXML,F,A)
}}B.onreadystatechange=E;
B.send(null);
F.style.cursor="auto"
}catch(D){F.style.cursor="auto";
throw D
}};
Sarissa.updateContentFromNode=function(E,F,A){try{F.style.cursor="wait";
Sarissa.clearChildNodes(F);
var B=E.nodeType==Node.DOCUMENT_NODE?E:E.ownerDocument;
if(B.parseError&&B.parseError!=0){var D=document.createElement("pre");
D.appendChild(document.createTextNode(Sarissa.getParseErrorText(B)));
F.appendChild(D)
}else{if(A){E=A.transformToDocument(E)
}if(F.tagName.toLowerCase=="textarea"||F.tagName.toLowerCase=="input"){F.value=Sarissa.serialize(E)
}else{if(E.nodeType==Node.DOCUMENT_NODE||E.ownerDocument.documentElement==E){F.innerHTML=Sarissa.serialize(E)
}else{F.appendChild(F.ownerDocument.importNode(E,true))
}}}}catch(C){throw C
}finally{F.style.cursor="auto"
}};
/*@end@*/if(_SARISSA_HAS_DOM_FEATURE&&document.implementation.hasFeature("XPath","3.0")){function SarissaNodeList(A){this.length=A
}SarissaNodeList.prototype=new Array(0);
SarissaNodeList.prototype.constructor=Array;
SarissaNodeList.prototype.item=function(A){return(A<0||A>=this.length)?null:this[A]
};
SarissaNodeList.prototype.expr="";
XMLDocument.prototype.setProperty=function(A,B){};
Sarissa.setXpathNamespaces=function(G,C){G._sarissa_useCustomResolver=true;
var A=C.indexOf(" ")>-1?C.split(" "):new Array(C);
G._sarissa_xpathNamespaces=new Array(A.length);
for(var D=0;
D<A.length;
D++){var F=A[D];
var H=F.indexOf(":");
var I=F.indexOf("=");
if(H==5&&I>H+2){var E=F.substring(H+1,I);
var B=F.substring(I+2,F.length-1);
G._sarissa_xpathNamespaces[E]=B
}else{throw"Bad format on namespace declaration(s) given"
}}};
XMLDocument.prototype._sarissa_useCustomResolver=false;
XMLDocument.prototype._sarissa_xpathNamespaces=new Array();
XMLDocument.prototype.selectNodes=function(C,B){var A=this;
var G=this._sarissa_useCustomResolver?function(I){var H=A._sarissa_xpathNamespaces[I];
if(H){return H
}else{throw"No namespace URI found for prefix: '"+I+"'"
}}:this.createNSResolver(this.documentElement);
var F=this.evaluate(C,(B?B:this),G,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
var D=new SarissaNodeList(F.snapshotLength);
D.expr=C;
for(var E=0;
E<D.length;
E++){D[E]=F.snapshotItem(E)
}return D
};
Element.prototype.selectNodes=function(A){var B=this.ownerDocument;
if(B.selectNodes){return B.selectNodes(A,this)
}else{throw"Method selectNodes is only supported by XML Elements"
}};
XMLDocument.prototype.selectSingleNode=function(C,B){var A=B?B:null;
C="("+C+")[1]";
var D=this.selectNodes(C,A);
if(D.length>0){return D.item(0)
}else{return null
}};
Element.prototype.selectSingleNode=function(A){var B=this.ownerDocument;
if(B.selectSingleNode){return B.selectSingleNode(A,this)
}else{throw"Method selectNodes is only supported by XML Elements"
}};
Sarissa.IS_ENABLED_SELECT_NODES=true
}/*@end@*/if(!Sarissa.IS_ENABLED_TRANSFORM_NODE&&window.XSLTProcessor){Element.prototype.transformNodeToObject=function(C,B){var A=document.implementation.createDocument("","",null);
Sarissa.copyChildNodes(this,A);
A.transformNodeToObject(C,B)
};
Document.prototype.transformNodeToObject=function(E,B){var A=null;
try{A=new XSLTProcessor();
if(A.reset){A.importStylesheet(E);
var C=A.transformToFragment(this,B);
Sarissa.copyChildNodes(C,B)
}else{A.transformDocument(this,E,B,null)
}}catch(D){if(E&&B){throw"Failed to transform document. (original exception: "+D+")"
}else{if(!E){throw"No Stylesheet Document was provided. (original exception: "+D+")"
}else{if(!B){throw"No Result Document was provided. (original exception: "+D+")"
}else{if(A==null){throw"Could not instantiate an XSLTProcessor object. (original exception: "+D+")"
}else{throw D
}}}}}};
Element.prototype.transformNode=function(B){var A=document.implementation.createDocument("","",null);
Sarissa.copyChildNodes(this,A);
return A.transformNode(B)
};
Document.prototype.transformNode=function(E){var A=document.implementation.createDocument("","",null);
this.transformNodeToObject(E,A);
var D=null;
try{var B=new XMLSerializer();
D=B.serializeToString(A)
}catch(C){throw"Failed to serialize result document. (original exception: "+C+")"
}return D
};
Sarissa.IS_ENABLED_TRANSFORM_NODE=true
}Sarissa.setXslParameter=function(J,G,H){try{var C=J.getElementsByTagName(_SARISSA_IEPREFIX4XSLPARAM+"param");
var B=C.length;
var I=false;
var A;
if(H){for(var E=0;
E<B&&!I;
E++){if(C[E].getAttribute("name")==G){A=C[E];
while(A.firstChild){A.removeChild(A.firstChild)
}if(!H||H==null){}else{if(typeof H=="string"){A.setAttribute("select",H);
I=true
}else{if(H.nodeName){A.removeAttribute("select");
A.appendChild(H.cloneNode(true));
I=true
}else{if(H.item(0)&&H.item(0).nodeType){for(var D=0;
D<H.length;
D++){if(H.item(D).nodeType){A.appendChild(H.item(D).cloneNode(true))
}}I=true
}else{throw"Failed to set xsl:param "+G+" (original exception: "+F+")"
}}}}}}}return I
}catch(F){throw F;
return false
}};
/*@end@*/function cAjaxContentBase(strPanelID,strContentUrl,strUIMode){this.m_ctrlPanel=document.getElementById(strPanelID);
this.m_strUIMode=strUIMode;
this.m_strRefreshCallbackFunction=null;
this.m_strOnFocusCallbackFunction=null;
this.m_blnFireRefresh=false;
this.m_key=strPanelID;
this.m_url=strContentUrl;
this.preLoad=function(){this.m_blnFireRefresh=true;
cAjaxDownload.addQuery(this.m_key,this.m_url);
try{enableLogging()
}catch(ex){}return 
};
this.updateContent=function(){var xmlDoc;
var strHtml;
var funcCall;
funcCall=this.selfName+".updateContent();";
xmlDoc=cAjaxDownload.getContent(this.m_key,this.m_url,funcCall);
if(xmlDoc==null){this.m_blnFireRefresh=true;
if(this.m_strUIMode!="XMLChore"){this.m_ctrlPanel.innerHTML='<div class="Alert">Loading...</div>'
}else{this.m_ctrlPanel.innerHTML=""
}}else{strHtml=Sarissa.serialize(xmlDoc);
if(strHtml.substr(0,12)=="<parsererror"){this.m_ctrlPanel.innerHTML='<div class="Alert">Could not load data, please retry loading this page.</div>'
}else{this.m_ctrlPanel.innerHTML=strHtml;
if(this.m_blnFireRefresh){if(this.m_strRefreshCallbackFunction!=null){eval(this.m_strRefreshCallbackFunction)
}this.m_blnFireRefresh=false
}if(this.m_strOnFocusCallbackFunction!=null){eval(this.m_strOnFocusCallbackFunction)
}}}return 
};
this.setRefreshCallback=function(strFunctionName){this.m_strRefreshCallbackFunction=strFunctionName
};
this.setOnFocusCallback=function(strFunctionName){this.m_strOnFocusCallbackFunction=strFunctionName
};
this.clearContent=function(){cAjaxDownload.clearCache(this.m_key);
this.m_blnFireRefresh=true
};
this.hideContent=function(){this.m_ctrlPanel.style.display="none"
};
this.showContent=function(){this.m_ctrlPanel.style.display="block"
};
return this
}function cAjaxControl(){return 
}cAjaxControl.getClientInstance=function(strControlID){var objClient=null;
var ctrl;
var attrInstance;
var strTag;
try{objClient=eval("g_obj"+strControlID)
}catch(ex){objClient=null
}if(objClient==null){ctrl=document.getElementById(strControlID);
if(ctrl!=null){objClient=cAjaxControl.getClientInstanceFromControl(ctrl)
}}return objClient
};
cAjaxControl.getClientInstanceByEbId=function(ctrlContainer,strEbId){var ctrl=null;
try{var objClient=eval("g_obj"+strEbId);
if(objClient!=null){return objClient
}}catch(ex){log.debug("getClientInstanceByEbId - could not resolve g_obj"+strEbId+"; continuing. / "+ex)
}ctrl=cDomUtility.getElementByEbId(ctrlContainer,strEbId);
if(ctrl!=null){return cAjaxControl.getClientInstanceFromControl(ctrl)
}else{log.error("Could not find control with strEbId = "+strEbId)
}return null
};
cAjaxControl.getClientInstanceFromControl=function(ctrl){var objClient=null;
var attrInstance;
var strTag;
try{attrInstance=ctrl.getAttribute("instance");
objClient=eval(attrInstance)
}catch(ex){log.debug("getClientInstanceFromControl - attribute method did not work / "+ex);
objClient=null
}if(objClient==null){try{strTag=ctrl.tagName.toString().toUpperCase();
switch(strTag){case"SPAN":var inputNodes=ctrl.getElementsByTagName("input");
if(inputNodes.length==0){objClient=new cLabelControl(ctrl)
}else{objClient=new cCheckboxControl(inputNodes[0])
}break;
case"INPUT":switch(ctrl.type){case"text":objClient=new cTextboxControl(ctrl);
break;
case"hidden":objClient=new cHiddenControl(ctrl);
break;
default:log.error("INPUT control type is not recognized:"+ctrl.type);
break
}break;
case"TEXTAREA":objClient=new cTextareaControl(ctrl);
break;
case"SELECT":objClient=new cSelectControl(ctrl);
break;
default:log.debug("unknown tag:"+strTag);
break
}}catch(ex){log.debug("Could not determine tag - "+ex)
}}if(objClient==null){try{objClient=eval("g_obj"+ctrl.id)
}catch(ex){log.debug("getClientInstanceFromControl - could not resolve object / "+ex);
objClient=null
}}return objClient
}
function cAjaxDownload(){return 
}cAjaxDownload.m_arrQueries=new Array();
cAjaxDownload.lastFromCache="no";
cAjaxDownload.countDownloading=0;
cAjaxDownload.addQuery=function(B,C){var A=cAjaxDownload.m_arrQueries[B];
if(A==null){cAjaxDownload.m_arrQueries[B]=new cXmlAsyncQuery(C)
}return 
};
cAjaxDownload.beginLoad=function(){return 
};
cAjaxDownload.clearCache=function(B){var A;
A=cAjaxDownload.m_arrQueries[B];
if(A!=null){A.content=null;
A.req=null
}return 
};
cAjaxDownload.getContent=function(B,C,D){var A;
A=cAjaxDownload.m_arrQueries[B];
if(A==null){if(C==null){return null
}if(D==null){A=cAjaxDownload.loadImmediately(B,C)
}else{cAjaxDownload.addQuery(B,C);
A=cAjaxDownload.m_arrQueries[B]
}if(A==null){log.warn("cAjaxDownload.getContent - could not add query "+B+"/"+C);
return null
}}if(A.content==null){A.funcCall=D;
cAjaxDownload.lastFromCache="no"
}else{cAjaxDownload.lastFromCache="yes"
}return A.content
};
cAjaxDownload.loadNextAsync=function(){var objEntry;
var newDoc;
var MAX_DOWNLOAD_SIMULTANEOUSLY=1;
for(var key in cAjaxDownload.m_arrQueries){objEntry=cAjaxDownload.m_arrQueries[key];
if(objEntry===null){continue
}if(cAjaxDownload.countDownloading<MAX_DOWNLOAD_SIMULTANEOUSLY){if(objEntry.req===null){objEntry.start();
cAjaxDownload.countDownloading++;
log.debug("cAjaxDownload.countDownloading = "+cAjaxDownload.countDownloading);
return 
}}try{if(typeof objEntry.hasData=="function"&&objEntry.hasData()){try{newDoc=Sarissa.getDomDocument();
newDoc.setProperty("SelectionLanguage","XPath");
Sarissa.copyChildNodes(objEntry.req,newDoc,true);
objEntry.content=newDoc;
cAjaxDownload.countDownloading--;
log.debug("cAjaxDownload.countDownloading = "+cAjaxDownload.countDownloading);
if(objEntry.funcCall){eval(objEntry.funcCall)
}}catch(ex){log.warn("handleAsyncEvent / copyChildNodes failed with "+ex)
}}if(typeof objEntry.hasTimedOut=="function"&&objEntry.hasTimedOut()){log.warn("The query "+key+" timed out. Loading "+objEntry.url+" immediately.");
objEntry=cAjaxDownload.loadImmediately(key,objEntry.url,objEntry.funcCall);
cAjaxDownload.m_arrQueries[key]=objEntry;
cAjaxDownload.countDownloading--;
log.debug("cAjaxDownload.countDownloading = "+cAjaxDownload.countDownloading)
}}catch(ex){log.warn("handleAsyncEvent failed with "+ex)
}}return 
};
window.setInterval(function(){cAjaxDownload.loadNextAsync()
},250);
cAjaxDownload.loadImmediately=function(strQueryKey,strUrl,funcCall){var objEntry;
objEntry=new cXmlAsyncQuery(strUrl);
objEntry.req=Sarissa.getDomDocument();
objEntry.req.setProperty("SelectionLanguage","XPath");
objEntry.req.async=false;
objEntry.req.load(strUrl);
var newDoc=Sarissa.getDomDocument();
newDoc.setProperty("SelectionLanguage","XPath");
Sarissa.copyChildNodes(objEntry.req,newDoc,true);
objEntry.content=newDoc;
cAjaxDownload.m_arrQueries[strQueryKey]=objEntry;
if(funcCall){log.debug("funcCall = "+objEntry.funcCall);
eval(funcCall)
}return objEntry
};
function cXmlAsyncQuery(A){this.READYSTATE_COMPLETED=4;
this.TIMEOUT_MS=2000;
this.url=A;
this.req=null;
this.content=null;
this.funcCall=null;
this.m_whenStarted=null;
this.start=function(){this.m_whenStarted=new Date();
this.req=Sarissa.getDomDocument();
this.req.setProperty("SelectionLanguage","XPath");
this.req.async=true;
this.req.load(this.url);
return 
};
this.hasData=function(){if(this.content==null&&this.req&&this.req.readyState==this.READYSTATE_COMPLETED){return true
}return false
};
this.hasTimedOut=function(){var B=new Date();
var C;
if(this.req==null||this.req.readyState==this.READYSTATE_COMPLETED){return false
}C=B.getTime()-this.m_whenStarted.getTime();
if(C>=this.TIMEOUT_MS){return true
}return false
};
return this
}function EntryMode(){return 
}EntryMode.Nothing=100;
EntryMode.Add=200;
EntryMode.Edit=300;
EntryMode.Delete=400;
function EntryCssClass(){return 
}EntryCssClass.ObjNormal="normal";
EntryCssClass.ObjEdit="edit";
EntryCssClass.ObjDelete="delete";
EntryCssClass.PanelAdd="AjaxAddPanel";
EntryCssClass.PanelEdit="AjaxEditPanel";
EntryCssClass.PanelDelete="AjaxDeletePanel";
function cAjaxEntryBase(A,B,C,D){this.m_objChild=A;
this.m_ctrlEntryPanel=document.getElementById(C);
this.m_ctrlDeletePanel=document.getElementById(D);
this.objAjaxContent=B;
this.m_enumEntryMode=EntryMode.Nothing;
this.showEntryPanel=function(){var E;
if(this.m_enumEntryMode==EntryMode.Edit){this.m_ctrlEntryPanel.className=EntryCssClass.PanelEdit;
E=this.m_objChild.getObject();
if(E){E.className=EntryCssClass.ObjEdit;
cDomUtility.moveBelowObject(this.m_ctrlEntryPanel,E)
}}else{this.m_ctrlEntryPanel.className=EntryCssClass.PanelAdd;
this.m_ctrlEntryPanel.style.position="static"
}this.m_ctrlEntryPanel.style.display="block";
return 
};
this.hideEntryPanel=function(){this.m_ctrlEntryPanel.style.display="none";
this.m_ctrlEntryPanel.style.position="static";
return 
};
this.showDeletePanel=function(){var E;
E=this.m_objChild.getObject();
E.className=EntryCssClass.ObjDelete;
if(E){cDomUtility.moveBelowObject(this.m_ctrlDeletePanel,E)
}this.m_ctrlDeletePanel.className=EntryCssClass.PanelDelete;
this.m_ctrlDeletePanel.style.display="block";
return 
};
this.hideDeletePanel=function(){if(this.m_ctrlDeletePanel){this.m_ctrlDeletePanel.style.display="none";
this.m_ctrlDeletePanel.style.position="static"
}return 
};
this.initPrep=function(){if(this.m_enumEntryMode!=EntryMode.Nothing){this.m_objChild.cancel()
}this.m_enumEntryMode=EntryMode.Nothing;
return 
};
this.finishEntry=function(E){if(E!=null&&E.value!=null){cCommonUI.success(E.value.Message,this.m_ctrlEntryPanel)
}this.hideEntryPanel();
if(this.objAjaxContent){this.objAjaxContent.clearContent();
this.objAjaxContent.updateContent()
}return 
};
this.finishDelete=function(E){if(E!=null&&E.value!=null){cCommonUI.problem(E.value.Message,this.m_ctrlDeletePanel)
}this.hideDeletePanel();
this.objAjaxContent.clearContent();
this.objAjaxContent.updateContent();
return 
};
this.cancel=function(){var F;
this.hideEntryPanel();
this.hideDeletePanel();
try{F=this.m_objChild.getObject();
F.className=EntryCssClass.ObjNormal
}catch(E){}return 
};
return this
}function cArray(){var C=0;
for(var B=0;
B<cArray.arguments.length;
B++){this[B]=cArray.arguments[B];
C++
}try{this.length=C
}catch(A){}return this
}function cArrayByCount(C,D){for(var B=0;
B<C;
B++){this[B]=D
}try{this.length=C
}catch(A){}return this
}function cAsyncChore(A,C,B){this.m_strTitle=A;
this.m_strChoreXml=C;
this.m_funcCallback=B;
this.m_objHTTP=new XMLHttpRequest();
this.execute=function(){var F="xml_asyncchore.ashx";
var E=true;
var D="chorexml="+encodeURIComponent(this.m_strChoreXml);
this.m_objHTTP.onreadystatechange=this.m_funcCallback;
this.m_objHTTP.open("POST",F,E);
this.m_objHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
this.m_objHTTP.send(D);
return 
};
this.isDone=function(){var D=4;
return(this.m_objHTTP.readyState==D)
};
this.getTitle=function(){return this.m_strTitle
};
this.getRejoinder=function(){return this.m_objHTTP.responseXML
};
return this
}function cBasicEventContentBase(B,A,C){this.m_strWrapperPanelID=B;
this.m_strDisplayPanelID=A;
this.m_strEditPanelID=C;
this.m_ctrlWrapperPanel=null;
this.m_ctrlDisplayPanel=null;
this.m_ctrlEditPanel=null;
this.initialize=function(){this.initControls();
this.setDisplayMode();
return 
};
this.initControls=function(){if(this.m_ctrlWrapperPanel==null){this.m_ctrlWrapperPanel=document.getElementById(this.m_strWrapperPanelID)
}if(this.m_ctrlDisplayPanel==null){this.m_ctrlDisplayPanel=document.getElementById(this.m_strDisplayPanelID)
}if(this.m_ctrlEditPanel==null){this.m_ctrlEditPanel=document.getElementById(this.m_strEditPanelID)
}};
this.setEditMode=function(){this.setMode(true)
};
this.setDisplayMode=function(){this.setMode(false)
};
this.updateDisplay=function(E){this.initControls();
try{this.m_ctrlDisplayPanel.innerHTML=E.value.XmlString
}catch(D){log.warn("updateDisplay failed - "+D)
}return 
};
this.finishEdit=function(D){this.setDisplayMode();
ctrlPanel=document.getElementById(this.m_strDisplayPanelID);
ctrlWrapperPanel=document.getElementById(this.m_strWrapperPanelID);
cCommonUI.processResults(this.m_ctrlDisplayPanel,D,this.m_ctrlWrapperPanel)
};
this.setMode=function(D){this.initControls();
if(D){this.m_ctrlDisplayPanel.style.display="none";
this.m_ctrlEditPanel.style.display="block"
}else{this.m_ctrlDisplayPanel.style.display="block";
this.m_ctrlEditPanel.style.display="none"
}};
this.cancel=function(){this.setDisplayMode()
};
return this
}function cCheckboxGroupControl(A){this.m_ctrlCheckboxGroup=document.getElementById(A);
this.m_arrCheckboxes=this.m_ctrlCheckboxGroup.getElementsByTagName("input");
this.getCount=function(){return this.m_arrCheckboxes.length
};
this.getValue=function(B){var C=this.m_arrCheckboxes[B];
return C.checked
};
this.setValue=function(B,D){var C=this.m_arrCheckboxes[B];
C.checked=(D.toString().toUpperCase()=="TRUE");
return 
};
return this
}function cCheckBoxGroupRequiredFieldValidator(){return this
}function checkBoxListReqFld_verify(C,B){var A=C.id;
var F=document.getElementById(A);
var E=F.getAttribute("controltovalidate");
var G=document.getElementById(E);
var D=G.getElementsByTagName("input");
if(D!=null){for(i=0;
i<D.length;
i++){if(D.item(i).tagName.toLowerCase()=="input"){if(D.item(i).checked){return true
}}}}cDomUtility.scrollToObject(C);
return false
}function cCheckBoxPickerBase(){return 
}cCheckBoxPickerBase.getBoxes=function(B){var F=new Array();
var E=0;
var A;
try{A=B.getElementsByTagName("input");
for(var D=0;
D<A.length;
D++){if(A[D].type=="checkbox"){F[E]=A[D];
E++
}}}catch(C){log.debug("Problem in getBoxes - "+C)
}return F
};
cCheckBoxPickerBase.refreshPreview=function(E,G,J){var B;
var H="";
var F=0;
var C=null;
var A=null;
try{C=G.getAttribute("nonedisplay");
if(C.length<1){C="(None)"
}A=G.getAttribute("alldisplay").toString();
if(A.length<1){A=null
}}catch(D){A=null
}try{for(var I=0;
I<E.length;
I++){B=E[I];
if(B.checked){if(H!=""){H=H+", "
}H=H+B.parentNode.getAttribute("pickerabbrev");
F++
}}if(H==""){H=C
}if(F==E.length&&A!=null){H=A
}J.innerHTML=H
}catch(D){log.debug("refreshPreview / Whassup? "+D)
}return 
};
cCheckBoxPickerBase.getValues=function(C){var A="";
for(var B=0;
B<C.length;
B++){if(C[B].checked){if(A!=""){A=A+","
}A=A+C[B].parentNode.getAttribute("pickervalue")
}}return A
};
cCheckBoxPickerBase.setValues=function(G,C){var B=C.split(",");
var D;
var F;
var A;
cCheckBoxPickerBase.uncheckAll(G);
for(D=0;
D<B.length;
D++){for(var E=0;
E<G.length;
E++){if(G[E].parentNode.getAttribute("pickervalue")==B[D]){G[E].checked=true
}}}return 
};
cCheckBoxPickerBase.uncheckAll=function(A){cCheckBoxPickerBase.setCheckedValueForAll(A,false);
return 
};
cCheckBoxPickerBase.checkAll=function(A){cCheckBoxPickerBase.setCheckedValueForAll(A,true);
return 
};
cCheckBoxPickerBase.setCheckedValueForAll=function(C,A){for(var B=0;
B<C.length;
B++){C[B].checked=A
}return 
}
function cClientContext(){return 
}cClientContext.keySessionCookie="0.0";
cClientContext.getSessionCookie=function(){return cCookies.getCookie(cClientContext.keySessionCookie)
};
cClientContext.keySessionCookie="0.0";
cClientContext.formatStandardDate="d NNN yyyy";
cClientContext.formatStandardTime="h:mm a"
function cCommonUI(){return 
}cCommonUI.messageSSClass="";
cCommonUI.problem=function(B,A){cCommonUI.messageSSClass="PopUpMessageProblem";
cCommonUI.problemOrSuccess(B,A,false)
};
cCommonUI.problemDismiss=function(B,A){cCommonUI.messageSSClass="PopUpMessageProblem";
cCommonUI.problemOrSuccess(B,A,true)
};
cCommonUI.success=function(B,A){cCommonUI.messageSSClass="PopUpMessageSuccess";
cCommonUI.problemOrSuccess(B,A,false)
};
cCommonUI.successDismiss=function(B,A){cCommonUI.messageSSClass="PopUpMessageSuccess";
cCommonUI.problemOrSuccess(B,A,true)
};
cCommonUI.problemOrSuccess=function(C,H,D){var B=this.getMessageControl();
var A=400;
B.innerHTML=C;
if(D){B.innerHTML+='<br /><a href="javascript:cCommonUI.hideMessage();">OK</a>'
}try{H.focus();
var F=H.clientWidth;
if(F==0){F=H.parentNode.clientWidth;
if(F==0){F=200
}}if(F>A){F=A
}var I=cDomUtility.findPosX(H)+F;
var G=cDomUtility.findPosY(H);
B.style.left=I+"px";
B.style.top=G+"px"
}catch(E){B.style.left="100px";
B.style.top="100px";
log.debug("Could not get ctrlTarget - "+E)
}this.showMessage(D);
return 
};
cCommonUI.getMessageControl=function(){var B=document.getElementById("ui_message");
if(!B){B=document.createElement("div");
B.id="ui_message";
try{document.body.appendChild(B)
}catch(A){}}if(B){B.setAttribute("className",cCommonUI.messageSSClass);
B.setAttribute("class",cCommonUI.messageSSClass)
}return B
};
cCommonUI.showMessage=function(A){var B=this.getMessageControl();
B.style.display="block";
if(!A){window.setTimeout(callbackUiHideMessage,4000)
}return 
};
cCommonUI.hideMessage=function(){var A=this.getMessageControl();
A.style.display="none";
return 
};
cCommonUI.processResults=function(A,E,D){if(D==null){D=A
}A.innerHTML=E.value.XmlString;
var B=E.value.Message;
if(B.length>0){if(E.value.Success){var C=B.indexOf("conflict");
if(C>0){cCommonUI.successDismiss(B,D)
}else{cCommonUI.success(B,D)
}}else{cCommonUI.problemDismiss(B,D)
}}return 
};
function callbackUiHideMessage(){cCommonUI.hideMessage();
return 
}function cCheckboxControl(A){this.m_ctrlCheckbox=A;
this.getValue=function(){return this.m_ctrlCheckbox.checked
};
this.setValue=function(B){this.m_ctrlCheckbox.checked=(B.toString().toUpperCase()=="TRUE");
return 
};
return this
}function cLabelControl(A){this.m_ctrlLabel=A;
this.getValue=function(){return this.m_ctrlLabel.innerHTML
};
this.setValue=function(B){this.m_ctrlLabel.innerHTML=B
};
return this
}function cTextboxControl(A){this.m_ctrlTextbox=A;
this.getValue=function(){return this.m_ctrlTextbox.value
};
this.setValue=function(B){this.m_ctrlTextbox.value=B;
return 
};
return this
}function cTextareaControl(A){this.m_ctrlTextarea=A;
this.getValue=function(){return this.m_ctrlTextarea.value
};
this.setValue=function(B){this.m_ctrlTextarea.value=B;
return 
};
return this
}function cHiddenControl(A){this.m_ctrlHidden=A;
this.getValue=function(){return this.m_ctrlHidden.value
};
this.setValue=function(B){this.m_ctrlHidden.value=B;
return 
};
return this
}function cSelectControl(A){this.m_ctrlSelect=A;
this.getValue=function(){return this.m_ctrlSelect.options[this.m_ctrlSelect.selectedIndex].value
};
this.setValue=function(D){var C=this.m_ctrlSelect.options.length;
for(var B=0;
B<C;
B++){if(this.m_ctrlSelect.options[B].value==D){this.m_ctrlSelect.options[B].selected=true;
break
}}return 
};
return this
}function cCookies(){return 
}cCookies.setCookie=function(C,E,A,G,D,F){var B=C+"="+escape(E)+((A)?"; expires="+A.toGMTString():"")+((G)?"; path="+G:"")+((D)?"; domain="+D:"")+((F)?"; secure":"");
document.cookie=B;
return 
};
cCookies.getCookie=function(C){var B=document.cookie;
var E=C+"=";
var D=B.indexOf("; "+E);
if(D==-1){D=B.indexOf(E);
if(D!==0){return null
}}else{D+=2
}var A=document.cookie.indexOf(";",D);
if(A==-1){A=B.length
}return unescape(B.substring(D+E.length,A))
};
cCookies.deleteCookie=function(A,C,B){if(this.getCookie(A)){document.cookie=A+"="+((C)?"; path="+C:"")+((B)?"; domain="+B:"")+"; expires=Thu, 01-Jan-70 00:00:01 GMT"
}return 
}
function Algorithm(){return 
}Algorithm.MD5=1;
Algorithm.HMACMD5=2;
function Encoding(){return 
}Encoding.Hex=1;
Encoding.B64=2;
function cCrypto(A,B){this.m_algorithm=A;
this.m_encode=B;
this.encode=function(D){var C="";
if(A==Algorithm.MD5&&B==Encoding.Hex){C=hex_md5(D)
}if(A==Algorithm.MD5&&B==Encoding.B64){C=b64_md5(D)
}if(A==Algorithm.HMACMD5&&B==Encoding.Hex){C=hex_hmac_md5(D)
}if(A==Algorithm.HMACMD5&&B==Encoding.B64){C=b64_hmac_md5(D)
}return C
};
return this
}var hexcase=0;
var b64pad="";
var chrsz=8;
function hex_md5(A){return binl2hex(core_md5(str2binl(A),A.length*chrsz))
}function b64_md5(A){return binl2b64(core_md5(str2binl(A),A.length*chrsz))
}function str_md5(A){return binl2str(core_md5(str2binl(A),A.length*chrsz))
}function hex_hmac_md5(A,B){return binl2hex(core_hmac_md5(A,B))
}function b64_hmac_md5(A,B){return binl2b64(core_hmac_md5(A,B))
}function str_hmac_md5(A,B){return binl2str(core_hmac_md5(A,B))
}function md5_vm_test(){return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72"
}function core_md5(K,F){K[F>>5]|=128<<((F)%32);
K[(((F+64)>>>9)<<4)+14]=F;
var J=1732584193;
var I=-271733879;
var H=-1732584194;
var G=271733878;
for(var C=0;
C<K.length;
C+=16){var E=J;
var D=I;
var B=H;
var A=G;
J=md5_ff(J,I,H,G,K[C+0],7,-680876936);
G=md5_ff(G,J,I,H,K[C+1],12,-389564586);
H=md5_ff(H,G,J,I,K[C+2],17,606105819);
I=md5_ff(I,H,G,J,K[C+3],22,-1044525330);
J=md5_ff(J,I,H,G,K[C+4],7,-176418897);
G=md5_ff(G,J,I,H,K[C+5],12,1200080426);
H=md5_ff(H,G,J,I,K[C+6],17,-1473231341);
I=md5_ff(I,H,G,J,K[C+7],22,-45705983);
J=md5_ff(J,I,H,G,K[C+8],7,1770035416);
G=md5_ff(G,J,I,H,K[C+9],12,-1958414417);
H=md5_ff(H,G,J,I,K[C+10],17,-42063);
I=md5_ff(I,H,G,J,K[C+11],22,-1990404162);
J=md5_ff(J,I,H,G,K[C+12],7,1804603682);
G=md5_ff(G,J,I,H,K[C+13],12,-40341101);
H=md5_ff(H,G,J,I,K[C+14],17,-1502002290);
I=md5_ff(I,H,G,J,K[C+15],22,1236535329);
J=md5_gg(J,I,H,G,K[C+1],5,-165796510);
G=md5_gg(G,J,I,H,K[C+6],9,-1069501632);
H=md5_gg(H,G,J,I,K[C+11],14,643717713);
I=md5_gg(I,H,G,J,K[C+0],20,-373897302);
J=md5_gg(J,I,H,G,K[C+5],5,-701558691);
G=md5_gg(G,J,I,H,K[C+10],9,38016083);
H=md5_gg(H,G,J,I,K[C+15],14,-660478335);
I=md5_gg(I,H,G,J,K[C+4],20,-405537848);
J=md5_gg(J,I,H,G,K[C+9],5,568446438);
G=md5_gg(G,J,I,H,K[C+14],9,-1019803690);
H=md5_gg(H,G,J,I,K[C+3],14,-187363961);
I=md5_gg(I,H,G,J,K[C+8],20,1163531501);
J=md5_gg(J,I,H,G,K[C+13],5,-1444681467);
G=md5_gg(G,J,I,H,K[C+2],9,-51403784);
H=md5_gg(H,G,J,I,K[C+7],14,1735328473);
I=md5_gg(I,H,G,J,K[C+12],20,-1926607734);
J=md5_hh(J,I,H,G,K[C+5],4,-378558);
G=md5_hh(G,J,I,H,K[C+8],11,-2022574463);
H=md5_hh(H,G,J,I,K[C+11],16,1839030562);
I=md5_hh(I,H,G,J,K[C+14],23,-35309556);
J=md5_hh(J,I,H,G,K[C+1],4,-1530992060);
G=md5_hh(G,J,I,H,K[C+4],11,1272893353);
H=md5_hh(H,G,J,I,K[C+7],16,-155497632);
I=md5_hh(I,H,G,J,K[C+10],23,-1094730640);
J=md5_hh(J,I,H,G,K[C+13],4,681279174);
G=md5_hh(G,J,I,H,K[C+0],11,-358537222);
H=md5_hh(H,G,J,I,K[C+3],16,-722521979);
I=md5_hh(I,H,G,J,K[C+6],23,76029189);
J=md5_hh(J,I,H,G,K[C+9],4,-640364487);
G=md5_hh(G,J,I,H,K[C+12],11,-421815835);
H=md5_hh(H,G,J,I,K[C+15],16,530742520);
I=md5_hh(I,H,G,J,K[C+2],23,-995338651);
J=md5_ii(J,I,H,G,K[C+0],6,-198630844);
G=md5_ii(G,J,I,H,K[C+7],10,1126891415);
H=md5_ii(H,G,J,I,K[C+14],15,-1416354905);
I=md5_ii(I,H,G,J,K[C+5],21,-57434055);
J=md5_ii(J,I,H,G,K[C+12],6,1700485571);
G=md5_ii(G,J,I,H,K[C+3],10,-1894986606);
H=md5_ii(H,G,J,I,K[C+10],15,-1051523);
I=md5_ii(I,H,G,J,K[C+1],21,-2054922799);
J=md5_ii(J,I,H,G,K[C+8],6,1873313359);
G=md5_ii(G,J,I,H,K[C+15],10,-30611744);
H=md5_ii(H,G,J,I,K[C+6],15,-1560198380);
I=md5_ii(I,H,G,J,K[C+13],21,1309151649);
J=md5_ii(J,I,H,G,K[C+4],6,-145523070);
G=md5_ii(G,J,I,H,K[C+11],10,-1120210379);
H=md5_ii(H,G,J,I,K[C+2],15,718787259);
I=md5_ii(I,H,G,J,K[C+9],21,-343485551);
J=safe_add(J,E);
I=safe_add(I,D);
H=safe_add(H,B);
G=safe_add(G,A)
}return Array(J,I,H,G)
}function md5_cmn(F,C,B,A,E,D){return safe_add(bit_rol(safe_add(safe_add(C,F),safe_add(A,D)),E),B)
}function md5_ff(C,B,G,F,A,E,D){return md5_cmn((B&G)|((~B)&F),C,B,A,E,D)
}function md5_gg(C,B,G,F,A,E,D){return md5_cmn((B&F)|(G&(~F)),C,B,A,E,D)
}function md5_hh(C,B,G,F,A,E,D){return md5_cmn(B^G^F,C,B,A,E,D)
}function md5_ii(C,B,G,F,A,E,D){return md5_cmn(G^(B|(~F)),C,B,A,E,D)
}function core_hmac_md5(C,F){var E=str2binl(C);
if(E.length>16){E=core_md5(E,C.length*chrsz)
}var A=Array(16),D=Array(16);
for(var B=0;
B<16;
B++){A[B]=E[B]^909522486;
D[B]=E[B]^1549556828
}var G=core_md5(A.concat(str2binl(F)),512+F.length*chrsz);
return core_md5(D.concat(G),512+128)
}function safe_add(A,D){var C=(A&65535)+(D&65535);
var B=(A>>16)+(D>>16)+(C>>16);
return(B<<16)|(C&65535)
}function bit_rol(A,B){return(A<<B)|(A>>>(32-B))
}function str2binl(D){var C=Array();
var A=(1<<chrsz)-1;
for(var B=0;
B<D.length*chrsz;
B+=chrsz){C[B>>5]|=(D.charCodeAt(B/chrsz)&A)<<(B%32)
}return C
}function binl2str(C){var D="";
var A=(1<<chrsz)-1;
for(var B=0;
B<C.length*32;
B+=chrsz){D+=String.fromCharCode((C[B>>5]>>>(B%32))&A)
}return D
}function binl2hex(C){var B=hexcase?"0123456789ABCDEF":"0123456789abcdef";
var D="";
for(var A=0;
A<C.length*4;
A++){D+=B.charAt((C[A>>2]>>((A%4)*8+4))&15)+B.charAt((C[A>>2]>>((A%4)*8))&15)
}return D
}function binl2b64(D){var C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var F="";
for(var B=0;
B<D.length*4;
B+=3){var E=(((D[B>>2]>>8*(B%4))&255)<<16)|(((D[B+1>>2]>>8*((B+1)%4))&255)<<8)|((D[B+2>>2]>>8*((B+2)%4))&255);
for(var A=0;
A<4;
A++){if(B*8+A*6>D.length*32){F+=b64pad
}else{F+=C.charAt((E>>6*(3-A))&63)
}}}return F
}function cDateUtility(){return 
}cDateUtility.parseYear=function(C){var D=false;
var A=parseInt(C,10);
if(isNaN(A)){A=(new Date()).getFullYear();
D=true
}else{if(A<1000){if(A>=80){A+=1900
}else{A+=2000
}}else{if(A<1900){A=(new Date()).getFullYear();
D=true
}}}if(D){var B="<div>"+C+" is not an appropriate value for the year (year must be 1900 or later).</div><div>Defaulting to current year.</div>";
cCommonUI.problem(B)
}return A
};
cDateUtility.daysBetween=function(E,D){var F=1000*60*60*24;
var C=E.getTime();
var B=D.getTime();
var A=Math.abs(C-B);
return Math.round(A/F)
};
cDateUtility.msPerDay=(24*60*60*1000);
cDateUtility.monthsFull=new cArray("January","February","March","April","May","June","July","August","September","October","November","December");
cDateUtility.monthsAbbrev=new cArray("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
cDateUtility.daysFull=new cArray("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
cDateUtility.daysAbbrev=new cArray("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
cDateUtility.isLeapYear=function(A){return(((A%4===0)&&((!(A%100===0))||(A%400===0)))?true:false)
};
cDateUtility.getPreviousDayOfWeek=function(B,D){var C;
var A;
C=new Date(B);
while(C.getDay()!=D){A=C.getTime()-this.msPerDay;
C.setTime(A);
if(C.getDay()==D){return C
}}return C
};
cDateUtility.addHours=function(C,A){var B=new Date(C);
return new Date(B.getTime()+(A*(this.msPerDay/24)))
};
cDateUtility.addDays=function(C,B){var A=new Date(C);
return new Date(A.getTime()+(B*this.msPerDay))
};
cDateUtility.addMonths=function(E,A){var D;
var C;
D=new Date(E);
if(A>0){for(var B=0;
B<A;
B++){C=this.getCountDaysInMonth(D.getFullYear(),D.getMonth()+1);
D=this.addDays(D,C)
}}else{for(var B=0;
B<-A;
B++){C=this.getCountDaysInMonth(D.getFullYear(),D.getMonth()+1);
D=this.addDays(D,-C)
}}return D
};
cDateUtility.getCountDaysInMonth=function(B,C){var A=0;
var D=new cArrayByCount(13,0);
D[1]=31;
D[2]=29;
D[3]=31;
D[4]=30;
D[5]=31;
D[6]=30;
D[7]=31;
D[8]=31;
D[9]=30;
D[10]=31;
D[11]=30;
D[12]=31;
A=D[C];
if(C==2){A=this.isLeapYear(B)?29:28
}return A
};
cDateUtility.LZ=function(A){return(A<0||A>9?"":"0")+A
};
cDateUtility.getDateFromXmlEncoded=function(A){return new Date(A.substr(0,4),A.substr(5,2)-1,A.substr(8,2),A.substr(11,2),A.substr(14,2),A.substr(17,2),0)
};
cDateUtility.formatDate=function(T,A){var F=new Date(T);
var f=""+A;
var N="";
var W=0;
var i="";
var G="";
var L=""+F.getFullYear();
var I=F.getMonth()+1;
var g=F.getDate();
var P=F.getDay();
var O=F.getHours();
var Y=F.getMinutes();
var R=F.getSeconds();
var U,V,C,S,j,D,e,b,Z,Q,n,l,J,B,a;
var X=new Object();
X["y"]=""+L;
X["yyyy"]=L;
X["yy"]=L.substring(2,4);
X["M"]=I;
X["MM"]=this.LZ(I);
X["MMM"]=this.monthsFull[I-1];
X["NNN"]=this.monthsAbbrev[I-1];
X["d"]=g;
X["dd"]=this.LZ(g);
X["E"]=this.daysAbbrev[P];
X["EE"]=this.daysFull[P];
X["H"]=O;
X["HH"]=this.LZ(O);
if(O==0){X["h"]=12
}else{if(O>12){X["h"]=O-12
}else{X["h"]=O
}}X["hh"]=this.LZ(X["h"]);
if(O>11){X["K"]=O-12
}else{X["K"]=O
}X["k"]=O+1;
X["KK"]=this.LZ(X["K"]);
X["kk"]=this.LZ(X["k"]);
if(O>11){X["a"]="PM"
}else{X["a"]="AM"
}X["m"]=Y;
X["mm"]=this.LZ(Y);
X["s"]=R;
X["ss"]=this.LZ(R);
while(W<f.length){i=f.charAt(W);
G="";
while((f.charAt(W)==i)&&(W<f.length)){G+=f.charAt(W);
W++
}if(X[G]!=null){N=N+X[G]
}else{N=N+G
}}return N
};
function DayOfWeek(){return 
}DayOfWeek.SUNDAY=0;
DayOfWeek.MONDAY=1;
DayOfWeek.TUESDAY=2;
DayOfWeek.WEDNESDAY=3;
DayOfWeek.THURSDAY=4;
DayOfWeek.FRIDAY=5;
DayOfWeek.SATURDAY=6
function cDomUtility(){return 
}cDomUtility.getCountCheckedBoxesByName=function(C){var A=document.getElementsByTagName("input");
var D=0;
for(var B=0;
B<A.length;
B++){if(A[B].type=="checkbox"&&A[B].name==C){if(A[B].checked){D++
}}}return D
};
cDomUtility.getCountCheckedBoxesById=function(E){var A=document.getElementsByTagName("input");
var D=0;
var C;
for(var B=0;
B<A.length;
B++){C=cDomUtility.getValueOfCheckBoxByIdPrefix(A[B],E,true);
if(C!=null){D++
}}return D
};
cDomUtility.getValuesCheckedBoxesById=function(E){var A=document.getElementsByTagName("input");
var C="";
var D;
for(var B=0;
B<A.length;
B++){D=cDomUtility.getValueOfCheckBoxByIdPrefix(A[B],E,true);
if(D!=null){if(C.length>0){C=C+","
}C=C+D
}}return C
};
cDomUtility.setCheckedBoxesById=function(G,B){var A=document.getElementsByTagName("input");
var E;
var D=B.split(",");
for(var C=0;
C<A.length;
C++){E=cDomUtility.getValueOfCheckBoxByIdPrefix(A[C],G,false);
if(E!=null){A[C].checked=false;
for(var F=0;
F<D.length;
F++){log.debug("setCheckedBoxesById - "+E+" vs "+D[F]);
if(E==D[F]){A[C].checked=true;
break
}}}}return 
};
cDomUtility.getValueOfCheckBoxByIdPrefix=function(D,E,C){var B=null;
var A=E.length;
if(D.type=="checkbox"&&D.id.substr(0,A)==E){if(!C){B=D.id.substr(A)
}else{if(D.checked){B=D.id.substr(A)
}}}return B
};
cDomUtility.getClientHeight=function(){var A=0;
if(typeof (window.innerHeight)=="number"){A=window.innerHeight
}else{if(document.documentElement&&document.documentElement.clientHeight){A=document.documentElement.clientHeight
}else{if(document.body&&document.body.clientHeight){A=document.body.clientHeight
}}}return A
};
cDomUtility.getClientWidth=function(){var A=0;
if(typeof (window.innerWidth)=="number"){A=window.innerWidth
}else{if(document.documentElement&&document.documentElement.clientWidth){A=document.documentElement.clientWidth
}else{if(document.body&&document.body.clientWidth){A=document.body.clientWidth
}}}return A
};
cDomUtility.getContentWidth=function(){var A=0;
A=cDomUtility.getClientWidth();
A-=cDomUtility.getLeftMarginWidth();
A-=40;
return A
};
cDomUtility.getLeftMarginWidth=function(){var C=0;
var B;
B=document.getElementsByTagName("td");
for(var A=0;
A<B.length;
A++){if(B[A].className=="SysLeft"){C=B[A].clientWidth
}}log.debug("getLeftMarginWidth() returns "+C);
return C
};
cDomUtility.getVerticalScroll=function(){var A,B;
if(self.pageYOffset){A=self.pageXOffset;
B=self.pageYOffset
}else{if(document.documentElement&&document.documentElement.scrollTop){A=document.documentElement.scrollLeft;
B=document.documentElement.scrollTop
}else{if(document.body){A=document.body.scrollLeft;
B=document.body.scrollTop
}}}return B
};
cDomUtility.getPageHeight=function(){var A,D;
var C=document.body.scrollHeight;
var B=document.body.offsetHeight;
if(C>B){A=document.body.scrollWidth;
D=document.body.scrollHeight
}else{A=document.body.offsetWidth;
D=document.body.offsetHeight
}return D
};
cDomUtility.resizeHeight=function(A,B){if(document.getElementById){if(B>0){var D=document.getElementById(A);
var C=D.offsetHeight;
if(B-C>0){D.style.position="relative";
D.style.height=B+"px"
}else{D.style.position="static"
}}}return 
};
cDomUtility.centerObjectVertically=function(A){if(document.getElementById){var B=cDomUtility.getClientHeight();
if(B>0){var D=document.getElementById(A);
var C=D.offsetHeight;
if(B-C>0){D.style.position="relative";
D.style.top=((B/2)-(C/2))+"px"
}else{D.style.position="static"
}}}return 
};
cDomUtility.toggleVisibility=function(A){try{var C=document.getElementById(A);
if(C.style.display=="none"){C.style.display="block"
}else{C.style.display="none"
}}catch(B){log.debug("Problem in toggleVisibility - "+B)
}return 
};
cDomUtility.findPosX=function(A){var B=0;
if(A.offsetParent){while(A.offsetParent){B+=parseInt(A.offsetLeft);
A=A.offsetParent
}}else{if(A.x){B+=parseInt(A.x)
}}return B
};
cDomUtility.findPosY=function(B){var A=0;
if(B.offsetParent){while(B.offsetParent){A+=parseInt(B.offsetTop);
B=B.offsetParent
}}else{if(B.y){A+=parseInt(B.y)
}}return A
};
cDomUtility.moveBelowObject=function(B,C){var A=cDomUtility.findPosX(C);
var D=cDomUtility.findPosY(C)+C.clientHeight;
B.style.position="absolute";
B.style.left=A+"px";
B.style.top=D+"px";
return 
};
cDomUtility.scrollToObject=function(A){var B=cDomUtility.findPosY(A);
window.scrollTo(0,B);
return 
};
cDomUtility.getElementByEbId=function(C,B){var D;
var F;
var G;
var A;
if(C!=null){D=C.childNodes;
for(var E=0;
E<D.length;
E++){F=D[E];
if(F.nodeType==1){A=F.getAttribute("ebid");
if(A==B){return F
}if(F.hasChildNodes()){G=cDomUtility.getElementByEbId(F,B);
if(G!=null){return G
}}}}}return null
};
cDomUtility.areXyWithinObject=function(H,F,J){try{var B=cDomUtility.findPosX(J);
var G=cDomUtility.findPosY(J);
var C=J.clientWidth;
var I=J.clientHeight;
var A=B+C;
var E=G+I;
if(H>=B&&H<=A&&F>=G&&F<=E){return true
}}catch(D){log.info("cDomUtility.areXyWithinObject - "+D)
}return false
}
var priv_isContentModified=0;
function setContentModified(A){priv_isContentModified=A
}function isOkayToLeave(){var A=1;
if(priv_isContentModified){var B="You have information on this page which has not been saved. Is it OK to leave the page anyway?";
B+="\n\n- Click OK to continue *without* saving data.";
B+="\n\n- Click CANCEL to save your data first.";
A=confirm(B)
}return A
}function goLogout(){if(isOkayToLeave()){window.location="default.aspx?logout=true"
}}function GoDirectURL(A){if(isOkayToLeave()){window.location=A
}}function GoDirectNoCheckURL(A){window.location=A
}function GoLocationURL(B){if(isOkayToLeave()){var A=document.GoLocForm;
A.action=B;
A.submit()
}}function showHelpContent(A){var C="eb_help_content.asp?ContentID="+A;
var B=window.open(C,"help_content","width=600,height=400,resizable=1,scrollbars=1")
}function showHelp(D,A){var B="eb_support.asp?Page="+D+"&AllowSuggest=1&UserID="+A;
var C=window.open(B,"help_window","width=400,height=400,resizable=1,scrollbars=1")
}function showSuggestion(D,A){var B="eb_support.asp?Page="+D+"&Mode=2&Step=1&UserID="+A;
var C=window.open(B,"help_window","width=400,height=400,resizable=1,scrollbars=1")
}function showCorrection(D,A){var B="eb_support.asp?Page="+D+"&Mode=3&UserID="+A;
var C=window.open(B,"help_window","width=400,height=400,resizable=1,scrollbars=1")
}function showTutorial(D,A){var B="eb_help.asp?Page="+D+".asp&UserID="+A;
var C=window.open(B,"help_window","width=600,height=400,resizable=1,scrollbars=1")
}function layoutPrintPage(){var A=document.getElementById("layoutReportLinks");
A.style.visibility="hidden";
window.print();
A.style.visibility="visible"
}/*@end@*/function cDropDownPicker(A){this.m_ctrlSelect=document.getElementById(A);
this.getValue=function(){var B="";
B=this.m_ctrlSelect.options[this.m_ctrlSelect.selectedIndex].value;
return B
};
this.setValue=function(D){var C=this.m_ctrlSelect.options.length;
for(var B=0;
B<C;
B++){if(this.m_ctrlSelect.options[B].value==D){this.m_ctrlSelect.options[B].selected=true;
break
}}return 
};
this.setByInternalName=function(F){var E=this.m_ctrlSelect.options.length;
var D;
try{for(var C=0;
C<E;
C++){D=this.m_ctrlSelect.options[C].getAttribute("internalname");
if(D==F){this.m_ctrlSelect.options[C].selected=true;
break
}}}catch(B){log.debug("setByInternalName( "+F+") failed / ex = "+B)
}return 
};
this.addOnChange=function(B){this.m_ctrlSelect.setAttribute("onchange",B);
return 
};
this.getText=function(){var B="";
B=this.m_ctrlSelect.options[this.m_ctrlSelect.selectedIndex].text;
return B
};
return this
}function cGeneralUtility(){return 
}cGeneralUtility.whitespace=" \t\n\r";
cGeneralUtility.lTrim=function(B){var A=0;
while((A<B.length)&&cGeneralUtility.charInString(B.charAt(A),this.whitespace)){A++
}return B.substring(A,B.length)
};
cGeneralUtility.rTrim=function(B){var A=0;
while((A<B.length)&&cGeneralUtility.charInString(B.charAt(A),this.whitespace)){A++
}return B.substring(A,B.length)
};
cGeneralUtility.trim=function(A){return cGeneralUtility.lTrim(cGeneralUtility.rTrim(A))
};
cGeneralUtility.charInString=function(C,B){for(var A=0;
A<B.length;
A++){if(B.charAt(A)==C){return true
}}return false
};
cGeneralUtility.isDigit=function(A){return((A>="0")&&(A<="9"))
};
cGeneralUtility.isInteger=function(B){for(var A=0;
A<B.length;
A++){var C=B.charAt(A);
if(!cGeneralUtility.isDigit(C)){return false
}}return true
};
cGeneralUtility.isIntegerInRange=function(D,B,A){if(!cGeneralUtility.isInteger(D)){return false
}var C=parseInt(D,10);
return((C>=B)&&(C<=A))
};
cGeneralUtility.htmlDecode=function(A){var B=new String(A);
B=B.replace(/&amp;/g,"&");
B=B.replace(/&lt;/g,"<");
B=B.replace(/&gt;/g,">");
B=B.replace(/&quot;/g,'"');
return B
};
cGeneralUtility.htmlEncode=function(A){var B=new String(A);
B=B.replace(/&/g,"&amp;");
B=B.replace(/</g,"&lt;");
B=B.replace(/>/g,"&gt;");
B=B.replace(/"/g,"&quot;");
return B
};
cGeneralUtility.onKeyPressNoEnter=function(B){var A=-1;
var C=13;
if(Browser.isMsIE()){A=B.keyCode
}else{if(Browser.isMozilla()){A=B.which
}}if(A==C){return false
}return true
}
function cMonth(B){var C=new Date(B);
this.firstDay=C;
this.firstDay.setDate(1);
this.lastDay=new Date();
var A=new Date(C.getFullYear(),C.getMonth(),28,12,0,0);
this.lastDay.setTime(A.getTime());
A.setTime(A.getTime()+cDateUtility.msPerDay);
while(this.lastDay.getMonth()==A.getMonth()){this.lastDay.setTime(A.getTime());
A.setTime(A.getTime()+cDateUtility.msPerDay)
}this.countDays=this.lastDay.getDate();
return this
}function cMoverPickerValidator(C,B,A){this.m_ctrlRightBox=document.getElementById(C);
this.m_min=B;
this.m_max=A;
this.MinSelectionsValid=function(){var E;
var F;
F=0;
for(var D=0;
D<this.m_ctrlRightBox.options.length;
D++){E=this.m_ctrlRightBox.options[D];
if(E.selected){F++
}}if(F>this.m_min){return true
}else{return false
}};
this.MaxSelectionsValid=function(){var E;
var F;
F=0;
for(var D=0;
D<this.m_ctrlRightBox.options.length;
D++){E=this.m_ctrlRightBox.options[D];
if(E.selected){F++
}}if(F<this.m_max){return true
}else{return false
}};
return this
}function NullableDateTimeClientOnly(D,E,A,C,F,B){if(D==null){this.value=null
}else{if(E==null){this.value=D
}else{this.value=new Date(D,E-1,A,C,F,B)
}}return this
}function cPrettyUI(){return 
}cPrettyUI.startup=function(){if(!Browser.isMsIE()){var A=document.getElementsByTagName("prettyui_skip");
if(A.length>0){return 
}this.roundButtons();
this.roundCorners()
}this.applyIconUrls();
document.captureEvent=(Event.MOUSEUP|Event.MOUSEOVER);
return 
};
cPrettyUI.roundButtons=function(){return 
};
cPrettyUI.roundCorners=function(){return 
};
cPrettyUI.applyIconUrls=function(){var D=document.getElementsByTagName("span");
var F;
var E;
var B;
var C;
for(var A=0;
A<D.length;
A++){F=D[A];
E=F.getAttribute("icon_url");
if(E!=null&&E.length>0){B=new Image();
B.src=E;
C=F.getElementsByTagName("label");
if(C.length>0){F.insertBefore(B,C[0])
}}}return 
};
cPrettyUI.onClick=function(B){try{cToolMenu.hideAll(B)
}catch(A){log.debug("cToolMenu.hideAll() could not be found. / "+A)
}return 
}
var LiveGridRowsConfigurator=Class.create();
LiveGridRowsConfigurator.prototype={initialize:function(A){this.m_objLiveGrid=A;
return 
},ajaxUpdate:function(C){log.debug("ajaxUpdate");
var A=C.getElementsByTagName("numResults")[0];
var B=A.text!=undefined?A.text:A.textContent;
if(this.m_objLiveGrid.metaData.getTotalRows()!=B){log.debug("updating scroller with "+B);
this.m_objLiveGrid.metaData.setTotalRows(B);
this.m_objLiveGrid.scroller.updateSize()
}return 
}};
var LiveGridScrollerTip=Class.create();
LiveGridScrollerTip.prototype={initialize:function(B,A){this.m_objLiveGrid=B;
this.m_objLiveGrid.scrollerTip=this;
this.m_divScrollerTip=document.createElement("div");
this.m_divScrollerTip.className="LiveGridScroller";
A.appendChild(this.m_divScrollerTip);
return 
},onScroll:function(H){var B=this.m_objLiveGrid.metaData;
var E=this.m_objLiveGrid.table;
var C=(H+1);
var A=(H+B.getPageSize());
this.m_divScrollerTip.innerHTML='<span class="	">'+C+"</span>";
var D=(H+B.getPageSize())/B.getTotalRows()*(E.parentNode.offsetHeight-(B.scrollArrowHeight*2)-this.m_divScrollerTip.offsetHeight/2)+this.m_divScrollerTip.offsetHeight+B.scrollArrowHeight;
var F=18;
var G=4;
this.m_divScrollerTip.style.top=D+"px";
this.m_divScrollerTip.style.left=E.offsetLeft+E.offsetWidth+F+G+"px";
this.m_divScrollerTip.style.visibility="visible";
return 
},setVisibility:function(A){this.m_divScrollerTip.style.visibility=A;
return 
}};
function updateLiveGridScrollerTip(D,B){var C;
try{C=D.scrollerTip;
C.onScroll(B)
}catch(A){log.warn("updateLiveGridScrollerTip failed - "+A)
}return 
}function cTabStrip(strTabStripID){this.m_ctrlTabStrip=document.getElementById(strTabStripID);
this.m_intCount=0;
this.m_aryTCN=null;
this.m_aryTCPN=null;
this.onLoad=function(){this.m_intCount=this.m_ctrlTabStrip.getAttribute("CountTabs");
var strTabCtrlNames=this.m_ctrlTabStrip.getAttribute("TabControlNames");
var strTabContentPanelNames=this.m_ctrlTabStrip.getAttribute("TabContentPanelNames");
this.m_aryTCN=strTabCtrlNames.split(",");
this.m_aryTCPN=strTabContentPanelNames.split(",")
};
this.refreshTab=function(strEBTabID){var ctrlTabHtml=cDomUtility.getElementByEbId(document,strEBTabID);
if(ctrlTabHtml){var ctrlContentClientID=this.getTabContentClientID(ctrlTabHtml.id);
var ctrlAjaxContentHtml=document.getElementById(ctrlContentClientID);
var strJavaScriptClear=ctrlAjaxContentHtml.getAttribute("JSFuncClear");
eval(strJavaScriptClear);
var strJavaScriptShow=ctrlAjaxContentHtml.getAttribute("JSFuncShow");
eval(strJavaScriptShow)
}else{log.debug("refreshTab - unable to find table with EBID matching "+strEBTabID)
}return 
};
this.onTabClick=function(idxClick){var blnActive;
for(var ii=0;
ii<this.m_intCount;
ii++){if(ii==idxClick){blnActive=true
}else{blnActive=false
}this.changeTabSetting(this.m_aryTCN[ii],this.m_aryTCPN[ii],blnActive)
}return 
};
this.changeTabSetting=function(strCtrlID,strContentPanelID,blnIsActive){var objCtrl=document.getElementById(strCtrlID);
var objContent=document.getElementById(strContentPanelID);
var strClass;
var strDisplay;
var strShowContentFunc;
if(blnIsActive){strClass="active";
strDisplay="block";
strShowContentFunc=objContent.getAttribute("JSFuncShow")
}else{strClass="inactive";
strDisplay="none";
strShowContentFunc=""
}objContent.style.display=strDisplay;
if(strShowContentFunc.length>0){eval(strShowContentFunc)
}objCtrl=objCtrl.parentNode;
objCtrl=objCtrl.parentNode;
objCtrl=objCtrl.parentNode;
objCtrl=objCtrl.parentNode;
objCtrl.setAttribute("className",strClass);
objCtrl.setAttribute("class",strClass);
return 
};
this.getTabContentClientID=function(strTabClientID){for(var idx=0;
idx<this.m_intCount;
idx++){if(this.m_aryTCN[idx]==strTabClientID){return this.m_aryTCPN[idx]
}}return null
};
this.switchToTab=function(strTabID,strOpaqueParam){idxTab=-1;
for(var idx=0;
idx<this.m_intCount;
idx++){if(this.m_aryTCN[idx].substr(0,strTabID.length)==strTabID){idxTab=idx;
break
}}this.onTabClick(idxTab);
var ctrlTabHtml=cDomUtility.getElementByEbId(document,strTabID);
if(ctrlTabHtml){var ctrlContentClientID=this.getTabContentClientID(ctrlTabHtml.id);
var objCtrlTabContent=cAjaxControl.getClientInstance(ctrlContentClientID);
if(typeof objCtrlTabContent.externalSwitcher=="function"){objCtrlTabContent.externalSwitcher(strOpaqueParam)
}}else{log.debug("switchToTab - unable to find tab with EBID matching "+strTabID)
}return null
};
return this
}function PeriodicalExecutor(B,A){this.callback=B;
this.frequency=A;
this.currentlyExecuting=false;
this.registerCallback()
}PeriodicalExecutor.prototype.registerCallback=function(){window.setInterval(this.onTimerEvent.bind(this),this.frequency*1000)
};
PeriodicalExecutor.prototype.onTimerEvent=function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;
this.callback()
}finally{this.currentlyExecuting=false
}}};
Function.prototype.bind=function(A){var B=this;
return function(){return B.apply(A,arguments)
}
};
Function.prototype.bindAsEventListener=function(A){var B=this;
return function(C){return B.call(A,C||window.event)
}
}
function cTimeValue(A){this.isValid=false;
this.intHour=0;
this.intMinute=0;
this.intSecond=0;
this.strTime="";
this.parse=function(I){var F;
var J;
var D;
this.isValid=false;
this.intHour=0;
this.intMinute=0;
this.intSecond=0;
this.strTime="";
var H=new String(I);
var B=H.split(":");
if(B.length<1||B.length>3){return false
}var G=new String(B[0]);
G=cGeneralUtility.trim(G);
var E;
if(B.length==3){E=new String(B[1]);
E=cGeneralUtility.trim(E)
}var C=new String(B[B.length-1]);
C=cGeneralUtility.trim(C);
if(!cGeneralUtility.isDigit(G.charAt(0))){return false
}if(G.length>1){if(!cGeneralUtility.isDigit(G.charAt(1))){G=G.substring(0,1)
}if(G.length>2){if(!cGeneralUtility.isDigit(G.charAt(2))){G=G.substring(0,2)
}}}if(!cGeneralUtility.isInteger(G)){return false
}if(!cGeneralUtility.isIntegerInRange(G,0,23)){return false
}this.intHour=parseInt(G,10);
this.intMinute=0;
if(B.length==3){if(!cGeneralUtility.isInteger(E)){return false
}if(!cGeneralUtility.isIntegerInRange(E,0,59)){return false
}this.intMinute=parseInt(E,10)
}this.intSecond=0;
if(cGeneralUtility.isDigit(C.charAt(1))){F=new String(C.substring(0,2));
if(B.length==3){this.intSecond=parseInt(F,10)
}else{if(B.length==2){this.intMinute=parseInt(F,10)
}}if(C.length>=3){J=new String(cGeneralUtility.trim(C.substring(2,C.length)))
}else{J=new String()
}}else{F=new String(C.substring(0,1));
if(C.length>=2){J=new String(cGeneralUtility.trim(C.substring(1,C.length)))
}else{J=new String()
}}J=J.toUpperCase();
if(!cGeneralUtility.isIntegerInRange(F,0,59)){return false
}if(J.length>0){if(!(J=="AM"||J=="PM")){return false
}}this.strTime="";
this.intHour=parseInt(G,10);
if((J=="PM")&&(this.intHour<12)){this.intHour+=12
}else{if((J=="AM")&&(this.intHour==12)){this.intHour-=12
}}this.strTime="";
D=this.intHour;
if(D===0){D=12
}else{if(D>12){D-=12
}}if(D<10){this.strTime+="0"
}this.strTime+=(D.toString()+":");
if(this.intMinute<10){this.strTime+="0"
}this.strTime+=(this.intMinute.toString());
this.strTime+=" ";
if(this.intHour<12){this.strTime+="AM"
}else{this.strTime+="PM"
}this.isValid=true;
return this.isValid
};
this.parse(A);
return this
}function cXml(){return 
}cXml.escapeText=function(A){return A.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")
};
cXml.escapeAttr=function(A){return this.xmlEscapeText(A).replace(/\'/g,"&quot;")
};
cXml.escapeTags=function(A){return A.replace(/</g,"&lt;").replace(/>/g,"&gt;")
};
cXml.encodeDateTime=function(B){var A=B.getFullYear()+"-"+cXml.LZ(B.getMonth()+1)+"-"+cXml.LZ(B.getDate())+"T"+cXml.LZ(B.getHours())+":"+cXml.LZ(B.getMinutes())+":"+cXml.LZ(B.getSeconds());
return A
};
cXml.LZ=function(A){return(A<0||A>9?"":"0")+A
}
function cAvailsDisplay(intCalHapID,strAvailsDisplayControlID,strWrapperPanelID,strDisplayPanelID,strEditPanelID,strRefresherObjectName,intInitialID){this.m_base=null;
this.m_intCalHapID=intCalHapID;
this.m_strAvailsDisplayControlID=strAvailsDisplayControlID;
this.m_strWrapperPanelID=strWrapperPanelID;
this.m_strDisplayPanelID=strDisplayPanelID;
this.m_strEditPanelID=strEditPanelID;
this.m_strRefresherObjectName=strRefresherObjectName;
this.m_intInitialID=intInitialID;
this.m_ctrlAvailsDisplay=null;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cCalHapBasicAjaxCallback;
this.saveData=function(){var objResult;
objResult=this.m_callback.changeAvailsDisplay(cClientContext.getSessionCookie(),this.m_intCalHapID,this.m_ctrlAvailsDisplay.value);
this.m_intInitialID=this.m_ctrlAvailsDisplay.value;
this.m_base.finishEdit(objResult);
var objRefresher=eval(this.m_strRefresherObjectName);
if(objRefresher){objRefresher.refreshSection("EventHistory")
}else{log.debug("objRefresher is null")
}return 
};
this.initialize=function(){this.m_base=new cBasicEventContentBase(this.m_strWrapperPanelID,this.m_strDisplayPanelID,this.m_strEditPanelID);
if(this.m_ctrlAvailsDisplay==null){this.m_ctrlAvailsDisplay=document.getElementById(this.m_strAvailsDisplayControlID)
}return 
};
this.beginEdit=function(){for(ii=0;
ii<this.m_ctrlAvailsDisplay.options.length;
ii++){if(this.m_ctrlAvailsDisplay.options[ii].value==this.m_intInitialID){this.m_ctrlAvailsDisplay.selectedIndex=ii
}}return 
};
this.refreshSelf=function(){objResult=this.m_callback.getAvailsDisplay(cClientContext.getSessionCookie(),this.m_intCalHapID);
this.m_base.updateDisplay(objResult)
};
return this
}function cCalendarName(intCalHapID,strCalendarNameControlID,strWrapperPanelID,strDisplayPanelID,strEditPanelID,strRefresherObjectName,intInitialID){this.m_base=null;
this.m_intCalHapID=intCalHapID;
this.m_strCalendarNameControlID=strCalendarNameControlID;
this.m_strWrapperPanelID=strWrapperPanelID;
this.m_strDisplayPanelID=strDisplayPanelID;
this.m_strEditPanelID=strEditPanelID;
this.m_strRefresherObjectName=strRefresherObjectName;
this.m_intInitialID=intInitialID;
log.debug("beginning - this.m_intInitialID:"+this.m_intInitialID);
this.m_ctrlCalendarName=null;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cCalHapBasicAjaxCallback;
this.saveData=function(){var objResult;
objResult=this.m_callback.changeCalHapCalendar(cClientContext.getSessionCookie(),this.m_intCalHapID,this.m_ctrlCalendarName.value);
log.debug("*1* - this.m_intInitialID:"+this.m_intInitialID);
this.m_intInitialID=this.m_ctrlCalendarName.value;
log.debug("*2* - this.m_intInitialID:"+this.m_intInitialID);
this.m_base.finishEdit(objResult);
var objRefresher=eval(this.m_strRefresherObjectName);
if(objRefresher){objRefresher.refreshSection("Publicity");
objRefresher.refreshSection("EventHistory");
objRefresher.refreshSection("AvailsDisplay")
}else{log.debug("objRefresher is null")
}return 
};
this.initialize=function(){this.m_base=new cBasicEventContentBase(this.m_strWrapperPanelID,this.m_strDisplayPanelID,this.m_strEditPanelID);
if(this.m_ctrlCalendarName==null){this.m_ctrlCalendarName=document.getElementById(this.m_strCalendarNameControlID)
}return 
};
this.beginEdit=function(){for(ii=0;
ii<this.m_ctrlCalendarName.options.length;
ii++){if(this.m_ctrlCalendarName.options[ii].value==this.m_intInitialID){this.m_ctrlCalendarName.selectedIndex=ii
}}return 
};
return this
}function cContacts(G,F,C,B,E,D,A){this.m_base=null;
this.m_intCalHapID=G;
this.m_strContactsControlID=F;
this.m_strWrapperPanelID=C;
this.m_strDisplayPanelID=B;
this.m_strEditPanelID=E;
this.m_strRefresherObjectName=D;
this.m_intInitialID=A;
this.m_ctrlContacts=null;
this.saveData=function(){return 
};
this.initialize=function(){this.m_base=new cBasicEventContentBase(this.m_strWrapperPanelID,this.m_strDisplayPanelID,this.m_strEditPanelID);
if(this.m_ctrlContacts==null){this.m_ctrlContacts=document.getElementById(this.m_strContactsControlID)
}return 
};
this.beginEdit=function(){for(ii=0;
ii<this.m_ctrlContacts.options.length;
ii++){if(this.m_ctrlContacts.options[ii].value==this.m_intInitialID){this.m_ctrlContacts.selectedIndex=ii
}}return 
};
return this
}function cDates(intCalHapID,strDatesControlID,strWrapperPanelID,strDisplayPanelID,strEditPanelID,strRefresherObjectName){this.m_base=null;
this.m_intCalHapID=intCalHapID;
this.m_strDatesControlID=strDatesControlID;
this.m_strWrapperPanelID=strWrapperPanelID;
this.m_strDisplayPanelID=strDisplayPanelID;
this.m_strEditPanelID=strEditPanelID;
this.m_strRefresherObjectName=strRefresherObjectName;
this.m_ctrlDates=null;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cCalHapBasicAjaxCallback;
this.saveData=function(){var objResult;
var dtmWhenStart=this.m_ctrlDates.getStartValue();
var dtmWhenEnd=this.m_ctrlDates.getEndValue();
objResult=this.m_callback.changeWhenCalHap(cClientContext.getSessionCookie(),this.m_intCalHapID,new NullableDateTime(dtmWhenStart),new NullableDateTime(dtmWhenEnd));
this.m_base.finishEdit(objResult);
var objRefresher=eval(this.m_strRefresherObjectName);
if(objRefresher){objRefresher.refreshSection("Publicity");
objRefresher.refreshSection("EventHistory");
objRefresher.refreshSection("Showtimes");
objRefresher.refreshSection("HapSub")
}else{log.debug("objRefresher is null")
}return 
};
this.initialize=function(){this.m_base=new cBasicEventContentBase(this.m_strWrapperPanelID,this.m_strDisplayPanelID,this.m_strEditPanelID);
if(this.m_ctrlDates==null){this.m_ctrlDates=cAjaxControl.getClientInstanceByEbId(document,this.m_strDatesControlID)
}return 
};
this.setDateControlFromDisplay=function(){var strDateRange;
ctrlDisplayPanel=document.getElementById(this.m_strDisplayPanelID);
allNodes=ctrlDisplayPanel.getElementsByTagName("div");
strDateRange=allNodes[0].innerHTML;
var intHyphen=strDateRange.indexOf("-");
var strStartDate=strDateRange.substr(0,intHyphen);
var strEndDate=strDateRange.substr(intHyphen+5);
this.m_ctrlDates.setStartValue(strStartDate);
this.m_ctrlDates.setEndValue(strEndDate)
};
return this
}function cEngagement(intCalHapID,strEngagementControlID,strWrapperPanelID,strDisplayPanelID,strEditPanelID,strRefresherObjectName,intEngID){this.m_base=null;
this.m_intCalHapID=intCalHapID;
this.m_strEngagementControlID=strEngagementControlID;
this.m_strWrapperPanelID=strWrapperPanelID;
this.m_strDisplayPanelID=strDisplayPanelID;
this.m_strEditPanelID=strEditPanelID;
this.m_strRefresherObjectName=strRefresherObjectName;
this.m_ctrlEngagement=null;
this.m_intEngID=intEngID;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cEngagementBasicAjaxCallback;
this.saveData=function(){var objResult;
objResult=this.m_callback.renameEng(cClientContext.getSessionCookie(),this.m_intEngID,this.m_ctrlEngagement.value);
this.m_base.finishEdit(objResult);
var objRefresher=eval(this.m_strRefresherObjectName);
if(objRefresher){objRefresher.refreshSection("EventHistory")
}else{log.debug("objRefresher is null")
}return 
};
this.initialize=function(){this.m_base=new cBasicEventContentBase(this.m_strWrapperPanelID,this.m_strDisplayPanelID,this.m_strEditPanelID);
if(this.m_ctrlEngagement==null){this.m_ctrlEngagement=document.getElementById(this.m_strEngagementControlID)
}return 
};
return this
}function cEventName(intCalHapID,strEventNameControlID,strWrapperPanelID,strDisplayPanelID,strEditPanelID,strRefresherObjectName){this.m_base=null;
this.m_intCalHapID=intCalHapID;
this.m_strEventNameControlID=strEventNameControlID;
this.m_strWrapperPanelID=strWrapperPanelID;
this.m_strDisplayPanelID=strDisplayPanelID;
this.m_strEditPanelID=strEditPanelID;
this.m_strRefresherObjectName=strRefresherObjectName;
this.m_ctrlEventName=null;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cCalHapBasicAjaxCallback;
this.saveData=function(){var objResult;
objResult=this.m_callback.renameCalHap(cClientContext.getSessionCookie(),this.m_intCalHapID,this.m_ctrlEventName.value);
this.m_base.finishEdit(objResult);
var objRefresher=eval(this.m_strRefresherObjectName);
if(objRefresher){objRefresher.refreshSection("Publicity");
objRefresher.refreshSection("EventHistory");
objRefresher.refreshSection("AvailsDisplay")
}else{log.debug("objRefresher is null")
}return 
};
this.initialize=function(){this.m_base=new cBasicEventContentBase(this.m_strWrapperPanelID,this.m_strDisplayPanelID,this.m_strEditPanelID);
if(this.m_ctrlEventName==null){this.m_ctrlEventName=document.getElementById(this.m_strEventNameControlID)
}return 
};
return this
}function cEventType(intCalHapID,strEventTypeControlID,strWrapperPanelID,strDisplayPanelID,strEditPanelID,strRefresherObjectName,intInitialID){this.m_base=null;
this.m_intCalHapID=intCalHapID;
this.m_strEventTypeControlID=strEventTypeControlID;
this.m_strWrapperPanelID=strWrapperPanelID;
this.m_strDisplayPanelID=strDisplayPanelID;
this.m_strEditPanelID=strEditPanelID;
this.m_strRefresherObjectName=strRefresherObjectName;
this.m_intInitialID=intInitialID;
this.m_ctrlEventType=null;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cCalHapBasicAjaxCallback;
this.saveData=function(){var objResult;
objResult=this.m_callback.changeCalHapType(cClientContext.getSessionCookie(),this.m_intCalHapID,this.m_ctrlEventType.value);
this.m_intInitialID=this.m_ctrlEventType.value;
this.m_base.finishEdit(objResult);
var objRefresher=eval(this.m_strRefresherObjectName);
if(objRefresher){objRefresher.refreshSection("EventHistory");
objRefresher.refreshSection("AvailsDisplay")
}else{log.debug("objRefresher is null")
}return 
};
this.initialize=function(){this.m_base=new cBasicEventContentBase(this.m_strWrapperPanelID,this.m_strDisplayPanelID,this.m_strEditPanelID);
if(this.m_ctrlEventType==null){this.m_ctrlEventType=document.getElementById(this.m_strEventTypeControlID)
}return 
};
this.beginEdit=function(){for(ii=0;
ii<this.m_ctrlEventType.options.length;
ii++){if(this.m_ctrlEventType.options[ii].value==this.m_intInitialID){this.m_ctrlEventType.selectedIndex=ii
}}return 
};
return this
}function cShowtimes(intCalHapID,strWrapperPanelID,strDisplayPanelID,strEditPanelID,strRefresherObjectName){this.m_base=null;
this.m_intCalHapID=intCalHapID;
this.m_strWrapperPanelID=strWrapperPanelID;
this.m_strDisplayPanelID=strDisplayPanelID;
this.m_strEditPanelID=strEditPanelID;
this.m_strRefresherObjectName=strRefresherObjectName;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cCalHapBasicAjaxCallback;
this.saveData=function(){return 
};
this.initialize=function(){this.m_base=new cBasicEventContentBase(this.m_strWrapperPanelID,this.m_strDisplayPanelID,this.m_strEditPanelID);
window.setTimeout(this.selfName+".refreshSelf()",500);
return 
};
this.refreshSelf=function(){objResult=this.m_callback.getShowtimes(cClientContext.getSessionCookie(),this.m_intCalHapID);
this.m_base.updateDisplay(objResult)
};
this.displayShowtimesSubTab=function(){var objRefresher=eval(this.m_strRefresherObjectName);
if(objRefresher){var strShowTimeHapSubTypeID="3";
objRefresher.switchToTab("HapSub",strShowTimeHapSubTypeID);
ctrlEntryPanel=document.getElementById(this.m_strDisplayPanelID);
cCommonUI.problem("See below to add or edit",ctrlEntryPanel)
}else{log.debug("this.m_objRefresher is null")
}return 
};
return this
}function cStatus(intCalHapID,strStatusControlID,strWrapperPanelID,strDisplayPanelID,strEditPanelID,strRefresherObjectName,intInitialID){this.m_base=null;
this.m_intCalHapID=intCalHapID;
this.m_strStatusControlID=strStatusControlID;
this.m_strWrapperPanelID=strWrapperPanelID;
this.m_strDisplayPanelID=strDisplayPanelID;
this.m_strEditPanelID=strEditPanelID;
this.m_strRefresherObjectName=strRefresherObjectName;
this.m_intInitialID=intInitialID;
this.m_ctrlStatus=null;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cCalHapBasicAjaxCallback;
this.saveData=function(){var objResult;
objResult=this.m_callback.changeCalHapStatus(cClientContext.getSessionCookie(),this.m_intCalHapID,this.m_ctrlStatus.value);
this.m_intInitialID=this.m_ctrlStatus.value;
this.m_base.finishEdit(objResult);
var objRefresher=eval(this.m_strRefresherObjectName);
if(objRefresher){objRefresher.refreshSection("Publicity");
objRefresher.refreshSection("EventHistory");
objRefresher.refreshSection("AvailsDisplay")
}else{log.debug("objRefresher is null")
}return 
};
this.initialize=function(){this.m_base=new cBasicEventContentBase(this.m_strWrapperPanelID,this.m_strDisplayPanelID,this.m_strEditPanelID);
if(this.m_ctrlStatus==null){this.m_ctrlStatus=document.getElementById(this.m_strStatusControlID)
}return 
};
this.beginEdit=function(){for(ii=0;
ii<this.m_ctrlStatus.options.length;
ii++){if(this.m_ctrlStatus.options[ii].value==this.m_intInitialID){this.m_ctrlStatus.selectedIndex=ii
}}return 
};
return this
}function cCalendarPicker(A,B){this.m_ctrlCheckBoxPanel=document.getElementById(A);
this.m_ctrlPreview=document.getElementById(B);
this.m_arrBoxes=cCheckBoxPickerBase.getBoxes(this.m_ctrlCheckBoxPanel);
this.refreshPreview=function(){cCheckBoxPickerBase.refreshPreview(this.m_arrBoxes,this.m_ctrlCheckBoxPanel,this.m_ctrlPreview);
return 
};
this.getValues=function(){return cCheckBoxPickerBase.getValues(this.m_arrBoxes)
};
this.setValues=function(C){cCheckBoxPickerBase.setValues(this.m_arrBoxes,C);
this.refreshPreview();
return 
};
this.uncheckAll=function(){cCheckBoxPickerBase.uncheckAll(this.m_arrBoxes);
this.refreshPreview();
return 
};
return this
}function cCalPageSpeccer(C,D,B,E,A){this.m_strCalPickerID=C;
this.m_strWhenPickerID=D;
this.m_strFieldPickerID=B;
this.m_strColorizationPickerEBID=E;
this.m_strStatusPickPanelID=A;
this.m_objCalPicker=null;
this.m_ctrlWhenPicker=null;
this.m_objFieldPicker=null;
this.m_objColorizationPicker=null;
this.m_objStatusCBGroup=null;
this.m_objJsCal=null;
this.m_whenPicked=null;
this.m_strWhenMode="MONTHLY";
this.onLoad=function(){this.m_objCalPicker=cAjaxControl.getClientInstance(this.m_strCalPickerID);
this.m_ctrlWhenPicker=document.getElementById(this.m_strWhenPickerID);
this.m_objFieldPicker=cAjaxControl.getClientInstance(this.m_strFieldPickerID);
this.m_objColorizationPicker=cAjaxControl.getClientInstanceByEbId(document,this.m_strColorizationPickerEBID);
this.m_objStatusCBGroup=new cCheckboxGroupControl(this.m_strStatusPickPanelID);
this.m_objJsCal=Calendar.setup({flat:this.m_strWhenPickerID,flatCallback:speccerWhenChange,dateStatusFunc:speccerWhenStatus,weekClickable:true});
return 
};
this.onWhenChange=function(F){log.debug("onWhenChange! / objCal.date = "+F.date+" / objCal.dateClicked = "+F.dateClicked+" / objCal.weekClicked = "+F.weekClicked);
this.m_whenPicked=new Date(F.date);
if(F.weekClicked){this.m_strWhenMode="WEEKLY"
}else{if(F.dateClicked){this.m_strWhenMode="DAILY"
}else{this.m_strWhenMode="MONTHLY"
}}log.debug("onWhenChange / this.m_strWhenMode = "+this.m_strWhenMode);
try{g_objPage.refreshCalendar()
}catch(G){log.debug("Whoa! Could not refresh page. "+G)
}return 
};
this.onWhenStatus=function(G,I,F,H){if(G.getDate()==18){return"hasevents"
}if(G.getDate()==19){return true
}return false
};
this.getCalSpec=function(){var F;
var G;
log.debug("this.m_whenPicked = "+this.m_whenPicked);
log.debug("this.m_strWhenMode = "+this.m_strWhenMode);
F=new Object();
F.ListCalendars=this.m_objCalPicker.getValues();
F.WhenSelected=cDateUtility.formatDate(this.m_whenPicked,"d-MMM-yyyy");
F.WhenMode=this.m_strWhenMode;
F.ListFields=this.m_objFieldPicker.getValues();
F.Colorizer=this.m_objColorizationPicker.getValue();
F.StatusTentative=this.m_objStatusCBGroup.getValue(0);
F.StatusConfirmed=this.m_objStatusCBGroup.getValue(1);
F.StatusOther=this.m_objStatusCBGroup.getValue(2);
return F
};
return this
}function cCheckedActionSelect(A,B){this.m_ctrlActionDropDown=document.getElementById(A);
this.m_strNameCheckboxes=B;
this.m_urlPrevious="";
this.verifyActionSelected=function(){var D=this.m_ctrlActionDropDown;
if(D.selectedIndex<1){cCommonUI.problem("Please select an action from the list before clicking the DO IT button.",D);
return false
}var C=cDomUtility.getCountCheckedBoxesByName(this.m_strNameCheckboxes);
if(C===0){cCommonUI.problem("Please check at least one item from the list before clicking the DO IT button.",D);
return false
}return true
};
return this
}function cChoreBatcher(strGridID){this.m_ctrlGrid=document.getElementById(strGridID);
this.m_arrRows=new Array();
this.m_idxRowNext=0;
this.onLoad=function(){return 
};
this.addEngHeaderRow=function(strEngName,intEngID){var tmpRow=document.createElement("tr");
var tmpCell=document.createElement("td");
tmpRow.appendChild(tmpCell);
tmpCell.setAttribute("colspan","2");
var elA=document.createElement("a");
elA.href="cal_event_details.aspx?eng="+intEngID;
elA.className="EngagementName";
var nodeText=document.createTextNode(strEngName);
elA.appendChild(nodeText);
tmpCell.appendChild(elA);
var tbody=this.m_ctrlGrid.tBodies[0];
var insertedElement=tbody.insertBefore(tmpRow,tbody.firstChild.nextSibling)
};
this.addChore=function(strTitle,strChoreXml){var strFuncDefn;
var refFunc;
var objChore;
var objRow;
strFuncDefn="cChoreRow.funcRow"+this.m_idxRowNext+" = function() { "+this.selfName+".m_arrRows[ "+this.m_idxRowNext+"].callback(); }";
eval(strFuncDefn);
refFunc=eval("cChoreRow.funcRow"+this.m_idxRowNext);
objChore=new cAsyncChore(strTitle,strChoreXml,refFunc);
objRow=new cChoreRow(this.m_ctrlGrid,objChore);
this.m_arrRows[this.m_idxRowNext]=objRow;
this.m_idxRowNext++;
objChore.execute();
return 
};
this.getCountNotDone=function(){var countNotDone=0;
for(var idx=0;
idx<this.m_idxRowNext;
idx++){if(!this.m_arrRows[idx].isDone()){countNotDone++
}}return countNotDone
};
return this
}function cChoreRow(A,C){this.m_row=document.createElement("tr");
this.m_cellName=document.createElement("td");
this.m_row.appendChild(this.m_cellName);
this.m_cellName.innerHTML=C.getTitle();
this.m_choreTitle=C.getTitle();
this.m_cellStatus=document.createElement("td");
this.m_row.appendChild(this.m_cellStatus);
this.m_cellStatus.innerHTML="Working...";
var B=A.tBodies[0];
var D=B.insertBefore(this.m_row,B.firstChild.nextSibling.nextSibling);
this.m_objChore=C;
this.isDone=function(){return this.m_objChore.isDone()
};
this.callback=function(){if(this.m_objChore.isDone()){var V;
var Y;
var O;
var L;
var Q;
var W;
var K;
var P;
var R;
var F;
var G;
var H;
var T;
var J="dd MMM yyyy hh:mm a";
var N=this.m_objChore.getRejoinder();
var Z=N.documentElement;
var S=N.getElementsByTagName("chore");
for(var M=0;
M<S.length;
M++){Q=S.item(M);
V=Q.getElementsByTagName("info");
Y=V.item(0).getAttribute("CalHapID");
O=V.item(0).getAttribute("CalAbbrev");
L=V.item(0).getAttribute("CalHapStatusAbbrev");
if(L==null){L=""
}this.m_cellName.innerHTML="";
if(Y=="0"){K="Error";
this.m_cellName.appendChild(document.createTextNode(this.m_choreTitle))
}else{K="Info";
var I=document.createElement("a");
I.href="cal_event_details.aspx?ch="+Y;
P=document.createTextNode(this.m_choreTitle);
I.appendChild(P);
this.m_cellName.appendChild(I);
H=cDateUtility.getDateFromXmlEncoded(V.item(0).getAttribute("WhenStart"));
T=cDateUtility.formatDate(H,J);
var X=cDateUtility.getDateFromXmlEncoded(V.item(0).getAttribute("WhenEnd"));
var E=cDateUtility.formatDate(X,J);
this.m_cellName.appendChild(document.createTextNode(" ("+L+" "+O+") "+T+" thru "+E))
}this.m_cellName.className=K;
W=Q.getElementsByTagName("message");
this.m_cellStatus.innerHTML="";
G=document.createElement("ul");
G.className="choreBatcherState";
for(var U=0;
U<W.length;
U++){strMessageType=W[U].getAttribute("MessageType");
R=strMessageType;
F=document.createElement("li");
F.className=R;
F.innerHTML=W[U].firstChild.nodeValue;
G.appendChild(F)
}this.m_cellStatus.appendChild(G)
}}return 
};
return this
}function cCommonCalendarNav(strCalendarPickerID,strWhenPickerPanelID,strTemplateMonthLink,strTemplateWeekLink,strTemplateDayLink){this.m_strCalendarPickerID=strCalendarPickerID;
this.m_ctrlCalendarPicker=null;
this.m_objCalendarPicker=null;
this.m_ctrlPanelWhenPick=document.getElementById(strWhenPickerPanelID);
this.m_objJsCal=null;
this.m_urlEventsExist="";
this.m_xmlEventsExist=null;
this.m_strTemplateMonthLink=strTemplateMonthLink;
this.m_strTemplateWeekLink=strTemplateWeekLink;
this.m_strTemplateDayLink=strTemplateDayLink;
this.TIMEOUT_BEFORECREATE=300;
this.onInit=function(){this.m_ctrlCalendarPicker=document.getElementById(this.m_strCalendarPickerID);
this.m_objCalendarPicker=cAjaxControl.getClientInstance(this.m_strCalendarPickerID);
return 
};
this.setVisibility=function(strVis){log.debug("setVisibility( "+strVis+" )");
this.m_ctrlCalendarPicker.style.visibility=strVis;
this.m_ctrlCalendarPicker.style.display="block";
switch(strVis){case"visible":if(this.m_objJsCal==null){var objThis=eval(this.selfName);
var fnCreate=function(){objThis.createWhenPicker()
};
window.setTimeout(fnCreate,this.TIMEOUT_BEFORECREATE)
}else{this.m_objJsCal.show()
}break;
case"hidden":if(this.m_objJsCal!=null){this.m_objJsCal.hide()
}break
}return 
};
this.callbackDateStatus=function(date,y,m,d){return false;
var xmlExist;
var nodesEventList;
var nodeEvent;
var whenEventStart;
var whenEventEnd;
if(typeof date!="object"){log.debug("callbackDateStatus: Whoa! typeof date = "+typeof date);
return true
}xmlExist=this.getEventsExistXml(date);
try{nodesEventList=xmlExist.selectNodes("/report/data/events/event");
for(var nodeEvent in nodesEventList){whenEventStart=cDateUtility.getDateFromXmlEncoded(nodeEvent.getAttribute("whenstart"));
whenEventEnd=cDateUtility.getDateFromXmlEncoded(nodeEvent.getAttribute("whenend"));
if(date>=whenEventStart&&date<=whenEventEnd){return"hasevents"
}}}catch(ex){log.debug("callbackDateStatus: Whoa dawgy! "+ex)
}return false
};
this.callbackCalendar=function(){var when;
var yyyy;
var mm;
var mmm;
var dd;
var template="";
var url;
when=this.m_objJsCal.date;
if(this.m_objJsCal.monthClicked){when=cDateUtility.addMonths(when,-1)
}yyyy=when.getFullYear();
mm=when.getMonth()+1;
mmm=cDateUtility.monthsAbbrev[when.getMonth()];
dd=when.getDate();
if(this.m_objJsCal.monthClicked){template=this.m_strTemplateMonthLink
}else{if(this.m_objJsCal.weekClicked){template=this.m_strTemplateWeekLink
}else{if(this.m_objJsCal.dateClicked){template=this.m_strTemplateDayLink
}}}if(template!=""){url=template;
url=url.replace(/\[calid\]/gi,this.getCalendarID());
url=url.replace(/\[yyyy\]/gi,yyyy);
url=url.replace(/\[mm\]/gi,mm);
url=url.replace(/\[mmm\]/gi,mmm);
url=url.replace(/\[dd\]/gi,dd);
window.location=url
}return 
};
this.getCalendarID=function(){var intCalID=0;
try{intCalID=this.m_objCalendarPicker.getValue();
log.debug("intCalID = "+intCalID)
}catch(ex){log.warn("getCalendarID failed with "+ex)
}return intCalID
};
this.getEventsExistXml=function(date){var whenStart;
var whenEnd;
var strUrl;
whenStart=new Date(date.getFullYear(),date.getMonth(),1);
whenEnd=new Date(date.getFullYear(),date.getMonth(),1);
whenEnd.setDate(whenEnd.getDate()+cDateUtility.getCountDaysInMonth(date.getFullYear(),date.getMonth()));
strUrl="sub_content.aspx?mode=xml&select=EventExistInRange&start="+cDateUtility.formatDate(whenStart,"yyyy-MM-dd")+"&end="+cDateUtility.formatDate(whenEnd,"yyyy-MM-dd")+"&calid="+this.getCalendarID();
if(strUrl!=this.m_urlEventsExist||this.m_xmlEventsExist==null){this.m_urlEventsExist=strUrl;
this.m_xmlEventsExist=cAjaxDownload.getContent(strUrl,strUrl)
}return this.m_xmlEventsExist
};
this.createWhenPicker=function(){if(this.m_objJsCal==null){var objThis=eval(this.selfName);
var fnCallBack=function(){objThis.callbackCalendar()
};
var fnDateStatus=function(date,y,m,d){return objThis.callbackDateStatus(date,y,m,d)
};
this.m_objJsCal=Calendar.setup({flat:this.m_ctrlPanelWhenPick.id,flatCallback:fnCallBack,dateStatusFunc:fnDateStatus,weekClickable:true,disableCover:true})
}var ctrlLoading=cDomUtility.getElementByEbId(this.m_ctrlPanelWhenPick,"loading");
ctrlLoading.style.display="none";
return 
};
return this
}function cCommonHeader(A){this.m_ctrlActionDropDown=document.getElementById(A);
this.m_urlPrevious="";
this.m_blnDoItHasFocus=false;
this.executeAction=function(){var B=this.m_ctrlActionDropDown;
var D=B.options[B.selectedIndex].value;
if(!this.m_blnDoItHasFocus){return false
}if((B.selectedIndex<1)||(D.length===0)){cCommonUI.problem("Please select an action from the list before clicking the DO IT button.",B);
return false
}if(D.indexOf("url:")===0){window.location=D.replace("url:","");
return false
}if(D.indexOf("urlnw:")===0){var C=D.replace("urlnw:","");
window.open(C,"caa_popup","resizable=1,scrollbars=1");
return false
}return true
};
this.doitOnfocus=function(){this.m_blnDoItHasFocus=true
};
this.doitOnblur=function(){this.m_blnDoItHasFocus=false
};
return this
}function cContactMultiPicker(A,B){this.m_ctrlList=document.getElementById(A);
this.m_ctrlLeftBox=document.getElementById(B);
this.onLoad=function(){var E;
var D;
if(this.m_ctrlList===null){return 
}for(var C=0;
C<this.m_ctrlList.options.length;
C++){E="cmp."+C;
D="sub_content.aspx?conlist="+escape(this.m_ctrlList.options[C].value);
cAjaxDownload.addQuery(E,D)
}this.m_ctrlList.selectedIndex=0;
return 
};
this.reloadLeftBox=function(){var C;
var F=this.m_ctrlList.options[this.m_ctrlList.selectedIndex].value;
var E=this.m_ctrlLeftBox;
E.options.length=0;
C=this.getOptions(this.m_ctrlList.selectedIndex);
log.debug("Reloading left box! / strListName = "+F+" / options = "+C);
if(C!==null){log.debug("options.length = "+C.length);
for(var D=0;
D<C.length;
D++){E.options[D]=new Option(C[D].text,C[D].value)
}}return 
};
this.getOptions=function(C){var I;
var H;
var D;
var E;
I="cmp."+C;
H=cAjaxDownload.getContent(I);
try{if(H.parseError!==0){log.warn("Error - "+Sarissa.getParseErrorText(H))
}if(Sarissa.IS_ENABLED_SELECT_NODES){D=H.selectNodes("/sub_content/contact_list/contact")
}else{D=H.childNodes[0].childNodes[0].childNodes
}E=new cArrayByCount(D.length,null);
for(var G=0;
G<D.length;
G++){E[G]=new Option(D[G].getAttribute("contact_name"),D[G].getAttribute("user_id"))
}}catch(F){log.info("getOptions got exception "+F);
E=new cArrayByCount(0,null)
}return E
};
return this
}function cContactSinglePicker(A,B,C){this.m_ctrlPanelBasic=document.getElementById(A);
this.m_ctrlPanelPreview=document.getElementById(B);
this.m_intUserID=C;
this.onLoad=function(){this.refreshBasicInfo();
return 
};
this.getValue=function(){return this.m_intUserID
};
this.setValue=function(D){this.m_intUserID=D;
this.refreshBasicInfo();
return 
};
this.refreshBasicInfo=function(){var E;
var J;
var H;
var I;
this.initPrep();
try{if(this.m_intUserID>0){J="userid="+this.m_intUserID;
H="sub_content.aspx?userid="+this.m_intUserID+"&mode=snippet";
I=this.selfName+".refreshBasicInfo();";
var F=cAjaxDownload.getContent(J,H,I);
if(F){var G=Sarissa.serialize(F);
this.m_ctrlPanelPreview.innerHTML=G
}}else{throw"Eh? this.m_intUserID = "+this.m_intUserID
}}catch(D){log.debug("Nuts. "+D)
}return 
};
this.cancel=function(){this.initPrep();
return 
};
this.initPrep=function(){return 
};
this.showThisPanel=function(D){D.style.display="block";
return 
};
return this
}function cDateMultiPicker(strTextFieldID,dtmWhen,dtmWhenNullable,blnIsNullable,dtmDateDefaultOverride,strHoverPanelID,strDayUpButtonID,strDayDownButtonID,blnIsCallbackMode){this.m_blnIsCallbackMode=blnIsCallbackMode;
this.m_dtmDateDefaultOverride=dtmDateDefaultOverride;
this.m_dtmWhenNullable=dtmWhenNullable;
this.m_blnIsNullable=blnIsNullable;
this.m_strTextFieldID=strTextFieldID;
this.m_ctrlTextField=null;
this.m_ctrlDayUpButton=document.getElementById(strDayUpButtonID);
this.m_ctrlDayDownButton=document.getElementById(strDayDownButtonID);
this.m_strHoverPanelID=strHoverPanelID;
this.m_ctrlHoverPanel=null;
this.MA=[];
this.closed=function(cal){this.MA.length=0;
for(var i in cal.multiple){var d=cal.multiple[i];
if(typeof (d)=="object"){this.MA[this.MA.length]=d
}}this.refreshDisplayValue();
cal.hide();
return false
};
this.configure=function(){var objThis;
var fnClose;
this.m_ctrlTextField=document.getElementById(this.m_strTextFieldID);
this.m_ctrlHoverPanel=document.getElementById(this.m_strHoverPanelID);
objThis=eval(this.selfName);
fnClose=function(cal){objThis.closed(cal)
};
dtmWhen=null;
this.MA.length=0;
if(dtmWhen!=null){this.MA[0]=dtmWhen
}this.refreshDisplayValue();
Calendar.setup({inputField:this.m_strTextFieldID,ifFormat:"%e %b %Y",showsTime:false,weekNumbers:false,date:dtmWhen,step:1,multiple:this.MA,onClose:fnClose,dateDefaultOverride:this.m_dtmDateDefaultOverride});
return 
};
this.getValue=function(){var aryNullableDates=new Array();
var ii;
var dtmTmp;
for(ii=0;
ii<this.MA.length;
ii++){dtmTmp=this.MA[ii];
if(!this.m_blnIsCallbackMode){aryNullableDates[ii]=new NullableDateTimeClientOnly(dtmTmp.getFullYear(),dtmTmp.getMonth()+1,dtmTmp.getDate(),0,0,0)
}else{aryNullableDates[ii]=new NullableDateTime(dtmTmp.getFullYear(),dtmTmp.getMonth()+1,dtmTmp.getDate(),0,0,0)
}}return aryNullableDates
};
this.setValue=function(aryVals){var ii;
this.MA.length=0;
for(ii=0;
ii<aryVals.length;
ii++){this.MA[ii]=aryVals[ii]
}this.refreshDisplayValue()
};
this.clearDate=function(){this.MA.length=0;
this.refreshDisplayValue();
return 
};
this.refreshDisplayValue=function(){this.MA.sort(this.sortNumber);
if(this.m_ctrlTextField.value!=this.getDisplayValue()){if(this.m_ctrlTextField.attributes.onchange){eval(this.m_ctrlTextField.attributes.onchange.value)
}}this.m_ctrlTextField.value=this.getDisplayValue()
};
this.getFullDisplayValue=function(){var strDisplay;
var ii;
strDisplay="";
for(ii=0;
ii<this.MA.length;
ii++){if(ii>0){strDisplay+=", "
}strDisplay+=cDateUtility.formatDate(this.MA[ii],cClientContext.formatStandardDate)
}return strDisplay
};
this.getDisplayValue=function(){if(this.MA.length<=2){return this.getFullDisplayValue()
}else{return this.MA.length+" dates (rollover to view)"
}};
this.dayUpClick=function(){this.dateAdjustDays(1);
return false
};
this.dayDownClick=function(){this.dateAdjustDays(-1);
return false
};
this.dateAdjustDays=function(intDays){for(var ii=0;
ii<this.MA.length;
ii++){this.MA[ii]=cDateUtility.addDays(this.MA[ii],intDays)
}this.refreshDisplayValue();
return 
};
this.dateMouseOver=function(){var strValue;
this.m_ctrlHoverPanel.style.display="block";
strValue="<table><tr><td>";
strValue+=this.getFullDisplayValue();
strValue+="</td></tr></table>";
this.m_ctrlHoverPanel.innerHTML=strValue
};
this.dateMouseOut=function(){this.m_ctrlHoverPanel.style.display="none"
};
this.sortNumber=function(a,b){return a-b
};
return this
}var g_cDateMultiPicker_IE_strObjectName="";
function cDateMultiPicker_IE_setObjectName(A){g_cDateMultiPicker_IE_strObjectName=A
}function cDateMultiPicker_IE_closed(cal){eval(g_cDateMultiPicker_IE_strObjectName+".closed( cal )")
}function cDatePicker(A,C,B,D){this.m_strTextFieldID=A;
this.m_ctrlTextField=document.getElementById(A);
this.m_ctrlDayUpButton=document.getElementById(B);
this.m_blnDayUpHasFocus=false;
this.m_ctrlDayDownButton=document.getElementById(D);
this.configure=function(){Calendar.setup({inputField:this.m_strTextFieldID,ifFormat:"%e %b %Y",showsTime:false,weekNumbers:false,date:C,step:1});
return 
};
this.getValue=function(){var E=new Date();
if(this.m_ctrlTextField.value.length>0){E.setTime(Date.parse(this.m_ctrlTextField.value));
return E
}else{return null
}};
this.setValue=function(E){if(E==null){this.m_ctrlTextField.value=""
}else{this.m_ctrlTextField.value=cDateUtility.formatDate(E,cClientContext.formatStandardDate)
}return 
};
this.clearDate=function(){this.m_ctrlTextField.value="";
return 
};
this.dayUpClick=function(){if(this.m_blnDayUpHasFocus){this.dateAdjustDays(1)
}return false
};
this.dayUpOnfocus=function(){this.m_blnDayUpHasFocus=true
};
this.dayUpOnblur=function(){this.m_blnDayUpHasFocus=false
};
this.dayDownClick=function(){this.dateAdjustDays(-1);
return false
};
this.dateAdjustDays=function(E){if(this.m_ctrlTextField.value.length>0){var F=new Date(this.m_ctrlTextField.value);
F=cDateUtility.addDays(F,E);
this.m_ctrlTextField.value=cDateUtility.formatDate(F,"d NNN yyyy")
}};
this.configure();
return this
}function cDateRangePicker(B,A){this.m_ctrlDTPStart=B;
this.m_ctrlDTPEnd=A;
this.onLoad=function(){this.m_ctrlDTPStart=cAjaxControl.getClientInstance(this.m_ctrlDTPStart);
this.m_ctrlDTPEnd=cAjaxControl.getClientInstance(this.m_ctrlDTPEnd);
return 
};
this.getStartValue=function(){return this.m_ctrlDTPStart.getValue()
};
this.getEndValue=function(){return this.m_ctrlDTPEnd.getValue()
};
this.setStartValue=function(C){this.m_ctrlDTPStart.setValue(C);
return 
};
this.setEndValue=function(C){this.m_ctrlDTPEnd.setValue(C);
return 
};
return this
}function cDateShortcut(A,B){this.m_ctrlStart=document.getElementById(A);
this.m_ctrlEnd=document.getElementById(B);
this.setStart=function(C){this.m_ctrlStart=document.getElementById(A);
this.m_ctrlStart.value=cDateUtility.formatDate(C,"d NNN yyyy");
return 
};
this.setEnd=function(C){this.m_ctrlEnd=document.getElementById(B);
this.m_ctrlEnd.value=cDateUtility.formatDate(C,"d NNN yyyy");
return 
};
this.setRange=function(C,D){this.setStart(C);
this.setEnd(D);
return 
};
this.setEqual=function(){var C=new Date(this.m_ctrlStart.value);
this.setEnd(C);
return 
};
this.setAheadDays=function(D){var C=new Date(this.m_ctrlStart.value);
C=cDateUtility.addDays(C,D);
this.setEnd(C);
return 
};
this.setAheadMonths=function(C){var D=new Date(this.m_ctrlStart.value);
D=cDateUtility.addMonths(D,C);
D=cDateUtility.addDays(D,-1);
if(D.getMonth()==9&&D.getHours()==23){D=cDateUtility.addHours(D,1)
}this.setEnd(D);
return 
};
this.setCalendarWeek=function(C,F){var E=new Date(this.m_ctrlStart.value);
var D;
E=cDateUtility.getPreviousDayOfWeek(E,F);
D=cDateUtility.addDays(E,(C*7)-1);
this.setRange(E,D);
return 
};
this.setCalendarMonth=function(C){var E=new Date(this.m_ctrlStart.value);
var D;
E.setDate(1);
E.setHours(12);
D=cDateUtility.addMonths(E,C);
D=cDateUtility.addDays(D,-1);
this.setRange(E,D);
return 
};
return this
}function cDateTimePicker(C,B,A){this.m_ctrlDateTextField=document.getElementById(C);
this.m_ctrlTimeTextField=document.getElementById(B);
this.getValue=function(){var D=new Date();
if(this.m_ctrlDateTextField.value.length>0){D.setTime(Date.parse(this.m_ctrlDateTextField.value+" "+this.m_ctrlTimeTextField.value));
return D
}else{return null
}};
this.setValue=function(D){if(D==null){this.m_ctrlDateTextField.value="";
this.m_ctrlTimeTextField.value=""
}else{this.m_ctrlDateTextField.value=cDateUtility.formatDate(D,cClientContext.formatStandardDate);
this.m_ctrlTimeTextField.value=cDateUtility.formatDate(D,cClientContext.formatStandardTime)
}return 
};
this.clearDateTime=function(){this.m_ctrlDateTextField.value="";
this.m_ctrlTimeTextField.value="";
return 
};
return this
}function cDateTimeRangePicker(B,A){this.m_ctrlDTPStart=B;
this.m_ctrlDTPEnd=A;
this.onLoad=function(){this.m_ctrlDTPStart=cAjaxControl.getClientInstance(this.m_ctrlDTPStart);
this.m_ctrlDTPEnd=cAjaxControl.getClientInstance(this.m_ctrlDTPEnd);
return 
};
this.getStartValue=function(){return this.m_ctrlDTPStart.getValue()
};
this.getEndValue=function(){return this.m_ctrlDTPEnd.getValue()
};
this.setStartValue=function(C){this.m_ctrlDTPStart.setValue(C);
return 
};
this.setEndValue=function(C){this.m_ctrlDTPEnd.setValue(C);
return 
};
return this
}function CustomFieldDefinitionType(){return 
}CustomFieldDefinitionType.CheckBox="CheckBox";
CustomFieldDefinitionType.RadioButton="RadioButton";
CustomFieldDefinitionType.DropDownList="DropDownList";
CustomFieldDefinitionType.ShortText="ShortText";
CustomFieldDefinitionType.LongText="LongText";
CustomFieldDefinitionType.Media="Media";
CustomFieldDefinitionType.Unknown="Unknown";
CustomFieldDefinitionType.Currency="Currency";
CustomFieldDefinitionType.Float="Float";
CustomFieldDefinitionType.Integer="Integer";
function cDetailCustomField(strAjaxContent,strUIMode,strEntryPanelID,strFilterCustFldCategoryPickerID,strFilterPanelID,intCountCategories){this.m_strFilterPanelID=strFilterPanelID;
this.m_ctrlFilterPanel=null;
this.m_intCountCategories=intCountCategories;
this.base=null;
this.m_blnXmlChore=(strUIMode=="XMLChore");
this.m_intCalHapID=0;
this.m_strAjaxContent=strAjaxContent;
this.m_objAjaxContent=null;
this.m_strEntryPanelID=strEntryPanelID;
this.m_ctrlEntryPanel=document.getElementById(strEntryPanelID);
this.m_strFilterCustFldCategoryPickerID=strFilterCustFldCategoryPickerID;
this.m_objFilterCustFldCategoryPicker=null;
this.m_callback=null;
this.prepEditCustomField=function(intCalHapID){this.initPrep();
this.m_intCalHapID=intCalHapID;
this.m_objAjaxContent.hideContent();
this.base.showEntryPanel();
return 
};
this.prepAddCustomFieldXmlChore=function(){this.initPrep();
this.m_intCalHapID=0;
this.base.m_enumEntryMode=EntryMode.Add;
this.base.showEntryPanel();
return 
};
this.getXmlDocument=function(){return this.getXmlStuff(true)
};
this.getXml=function(){return this.getXmlStuff(false)
};
this.getXmlStuff=function(blnReturnXmlDoc){var ndParent;
var strFieldDefnID;
var allNodes;
var idx;
var strClassName;
var objMediaPicker;
var intMediaID;
var objNode;
var oDomDoc;
var xmlRoot;
var xmlField;
oDomDoc=Sarissa.getDomDocument();
xmlRoot=oDomDoc.createElement("custom_fields");
oDomDoc.appendChild(xmlRoot);
allNodes=this.m_ctrlEntryPanel.getElementsByTagName("input");
for(idx=0;
idx<allNodes.length;
idx++){objNode=allNodes[idx];
xmlField=null;
switch(objNode.type){case"text":xmlField=this.fieldToXmlElement(oDomDoc,objNode,CustomFieldDefinitionType.ShortText,objNode.value);
break;
case"checkbox":if(objNode.checked){xmlField=this.fieldToXmlElement(oDomDoc,objNode.parentNode,CustomFieldDefinitionType.CheckBox,"")
}break;
case"radio":if(objNode.checked){xmlField=this.fieldToXmlElement(oDomDoc,objNode.parentNode,CustomFieldDefinitionType.RadioButton,"")
}break;
default:break
}if(xmlField!=null){xmlRoot.appendChild(xmlField)
}}allNodes=this.m_ctrlEntryPanel.getElementsByTagName("textarea");
for(idx=0;
idx<allNodes.length;
idx++){objNode=allNodes[idx];
xmlField=this.fieldToXmlElement(oDomDoc,objNode,CustomFieldDefinitionType.LongText,objNode.value);
if(xmlField!=null){xmlRoot.appendChild(xmlField)
}}allNodes=this.m_ctrlEntryPanel.getElementsByTagName("select");
for(idx=0;
idx<allNodes.length;
idx++){objNode=allNodes[idx];
strFieldDefnID=objNode.getAttribute("group_field_defn_id");
if(strFieldDefnID!=null&&strFieldDefnID.length>0){strFieldDefnID=objNode.options[objNode.selectedIndex].value;
xmlField=oDomDoc.createElement(CustomFieldDefinitionType.DropDownList);
xmlField.setAttribute("field_defn_id",strFieldDefnID);
xmlRoot.appendChild(xmlField)
}}allNodes=this.m_ctrlEntryPanel.getElementsByTagName("div");
for(idx=0;
idx<allNodes.length;
idx++){objNode=allNodes[idx];
strFieldDefnID=objNode.getAttribute("field_defn_id");
if(strFieldDefnID!=null&&strFieldDefnID.length>0){strClassName=objNode.className||node.getAttribute("class");
if(strClassName=="MediaPicker"){objMediaPicker=cAjaxControl.getClientInstance(objNode.id);
intMediaID=objMediaPicker.getValue();
xmlField=oDomDoc.createElement(CustomFieldDefinitionType.Media);
xmlField.setAttribute("field_defn_id",strFieldDefnID);
xmlField.setAttribute("media_id",intMediaID);
xmlRoot.appendChild(xmlField)
}}}if(blnReturnXmlDoc){return oDomDoc
}else{return xmlRoot
}};
this.validateCurrency=function(strEbId){var obj=cAjaxControl.getClientInstanceByEbId(this.m_ctrlEntryPanel,strEbId);
var strValue=obj.getValue();
obj.setValue(this.formatCurrency(strValue))
};
this.formatCurrency=function(num){num=num.toString().replace(/\$|\,/g,"");
if(isNaN(num)){num="0"
}sign=(num==(num=Math.abs(num)));
num=Math.floor(num*100+0.50000000001);
cents=num%100;
num=Math.floor(num/100).toString();
if(cents<10){cents="0"+cents
}for(var i=0;
i<Math.floor((num.length-(1+i))/3);
i++){num=num.substring(0,num.length-(4*i+3))+","+num.substring(num.length-(4*i+3))
}return(((sign)?"":"-")+num+"."+cents)
};
this.validateFloat=function(strEbId){var obj=cAjaxControl.getClientInstanceByEbId(this.m_ctrlEntryPanel,strEbId);
var strValue=obj.getValue();
obj.setValue(parseFloat(strValue).toFixed(3))
};
this.validateInteger=function(strEbId){var obj=cAjaxControl.getClientInstanceByEbId(this.m_ctrlEntryPanel,strEbId);
var strValue=obj.getValue();
obj.setValue(parseInt(strValue))
};
this.saveCustomFields=function(){var objResult;
var strXml;
strXml=Sarissa.serialize(this.getXmlDocument());
objResult=this.m_callback.updateCustomFields(cClientContext.getSessionCookie(),this.m_intCalHapID,strXml);
this.finishEntry(objResult);
this.m_objAjaxContent.showContent();
return 
};
this.cancel=function(){this.hideEntryPanel();
this.m_objAjaxContent.showContent();
return 
};
this.fieldToXmlElement=function(oDomDoc,objNode,strCFDType,strValue){var strFieldDefnID;
var xmlField;
var strAttribute;
var nodeText;
strAttribute="field_defn_id";
strFieldDefnID=objNode.getAttribute(strAttribute);
if(strFieldDefnID!=null&&strFieldDefnID.length>0){xmlField=oDomDoc.createElement(strCFDType);
xmlField.setAttribute(strAttribute,strFieldDefnID);
nodeText=oDomDoc.createTextNode(strValue);
xmlField.appendChild(nodeText);
return xmlField
}else{return null
}};
this.initPrep=function(){return 
};
this.initialize=function(){if(this.m_objAjaxContent==null){this.m_objAjaxContent=eval(this.m_strAjaxContent)
}this.base=new cAjaxEntryBase(this,this.m_objAjaxContent,this.m_strEntryPanelID,"");
if(!this.m_blnXmlChore){this.m_callback=EBcWebApp.Event.AjaxCallBack.cCustomFieldAjaxCallback
}if(this.m_objFilterCustFldCategoryPicker==null){this.m_objFilterCustFldCategoryPicker=cAjaxControl.getClientInstance(this.m_strFilterCustFldCategoryPickerID)
}if(this.m_ctrlFilterPanel==null){this.m_ctrlFilterPanel=document.getElementById(this.m_strFilterPanelID)
}if(this.m_intCountCategories==0){this.m_ctrlFilterPanel.style.display="none"
}this.base.initPrep();
this.m_intCalHapID=0;
this.m_objFilterCustFldCategoryPicker.setValue(0);
var strCallbackFunction;
strCallbackFunction=this.selfName+".refreshFilterSetting();";
this.m_objAjaxContent.setOnFocusCallback(strCallbackFunction);
return 
};
this.reset=function(){var strFieldDefnID;
var allNodes;
var idx;
var strClassName;
var objMediaPicker;
var intMediaID;
var objNode;
allNodes=this.m_ctrlEntryPanel.getElementsByTagName("input");
for(idx=0;
idx<allNodes.length;
idx++){objNode=allNodes[idx];
switch(objNode.type){case"text":objNode.value="";
break;
case"checkbox":objNode.checked=false;
break;
case"radio":objNode.checked=(objNode.value=="rad_0");
break;
default:break
}}allNodes=this.m_ctrlEntryPanel.getElementsByTagName("textarea");
for(idx=0;
idx<allNodes.length;
idx++){objNode=allNodes[idx];
objNode.value=""
}allNodes=this.m_ctrlEntryPanel.getElementsByTagName("select");
for(idx=0;
idx<allNodes.length;
idx++){objNode=allNodes[idx];
objNode.selectedIndex=0
}allNodes=this.m_ctrlEntryPanel.getElementsByTagName("div");
for(idx=0;
idx<allNodes.length;
idx++){objNode=allNodes[idx];
strFieldDefnID=objNode.getAttribute("field_defn_id");
if(strFieldDefnID!=null&&strFieldDefnID.length>0){strClassName=objNode.getAttribute("class");
if(strClassName=="MediaPicker"){objMediaPicker=cAjaxControl.getClientInstance(objNode.id);
objMediaPicker.setValue(0)
}}}return 
};
this.finishEntry=function(objResult){if(objResult!=null&&objResult.value!=null){cCommonUI.success(objResult.value.Message,this.m_ctrlEntryPanel)
}this.hideEntryPanel();
if(this.m_objAjaxContent){this.m_objAjaxContent.clearContent();
this.m_objAjaxContent.updateContent()
}return 
};
this.hideEntryPanel=function(){this.m_ctrlEntryPanel.style.display="none";
this.m_ctrlEntryPanel.style.position="static";
return 
};
this.filterOnchange=function(){this.refreshFilterSetting()
};
this.refreshFilterSetting=function(){var nodesTable;
var intNew;
var strSelectedText;
var strID;
var oneTable;
var ii;
strSelectedText=this.m_objFilterCustFldCategoryPicker.getText();
intNew=parseInt(this.m_objFilterCustFldCategoryPicker.getValue());
for(ii=0;
ii<2;
ii++){switch(ii){case 0:nodesTable=this.m_objAjaxContent.m_ctrlPanel.getElementsByTagName("table");
break;
case 1:nodesTable=this.m_ctrlEntryPanel.getElementsByTagName("table");
break
}for(var idx=0;
idx<nodesTable.length;
idx++){oneTable=nodesTable[idx];
strID=oneTable.getAttribute("categoryname");
if(strID!=null){if(strID.length>0){if(intNew==0){oneTable.style.display=""
}else{if(strID==strSelectedText){oneTable.style.display=""
}else{oneTable.style.display="none"
}}}}}}};
return this
}function cDetailDocument(strAjaxContent,strEntryPanelID,strDeletePanelID,strDescriptionID,strMediaPickerID,strNameUserPicker,strNameOwnerUserPicker,intLoggedInUserID,strRemovePanelID){this.m_strEntryPanelID=strEntryPanelID;
this.m_strDeletePanelID=strDeletePanelID;
this.m_strAjaxContent=strAjaxContent;
this.m_objAjaxContent=null;
this.m_intLoggedInUserID=intLoggedInUserID;
this.m_ctrlDescription=document.getElementById(strDescriptionID);
this.m_strMediaPickerID=strMediaPickerID;
this.m_ctrlMediaPicker=null;
this.m_strNameUserPicker=strNameUserPicker;
this.m_objUserPicker=null;
this.m_strNameOwnerUserPicker=strNameOwnerUserPicker;
this.m_objOwnerUserPicker=null;
this.m_strRemovePanelID=strRemovePanelID;
this.m_ctrlRemovePanel=null;
this.m_intCalHapID=0;
this.m_intDocumentID=0;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cEventDocumentAjaxCallback;
this.prepAddEventDocument=function(intCalHapID){this.initPrep();
this.m_ctrlMediaPicker.displayLink(MediaPickerLink.Upload,true);
this.m_ctrlMediaPicker.displayLink(MediaPickerLink.Replace,false);
this.m_intCalHapID=intCalHapID;
this.base.m_enumEntryMode=EntryMode.Add;
this.m_ctrlMediaPicker.setValue(0);
this.m_objUserPicker.checkAll();
this.setControlValue("OwnerUser",this.m_intLoggedInUserID);
this.base.showEntryPanel();
return 
};
this.prepRemoveEventDocument=function(intDocumentID){var objResult;
this.initPrep();
this.m_intDocumentID=intDocumentID;
this.base.m_enumEntryMode=EntryMode.Delete;
try{objResult=this.m_callback.getEventDocument(cClientContext.getSessionCookie(),this.m_intDocumentID);
if(objResult.value.Success){this.showRemovePanel()
}}catch(ex){log.debug("prepRemoveEventDocument - Whoa - "+ex)
}return 
};
this.showRemovePanel=function(){var objToRemove;
objToRemove=this.getObject();
objToRemove.className=EntryCssClass.ObjDelete;
if(objToRemove){cDomUtility.moveBelowObject(this.m_ctrlRemovePanel,objToRemove)
}this.m_ctrlRemovePanel.className=EntryCssClass.PanelDelete;
this.m_ctrlRemovePanel.style.display="block";
return 
};
this.hideRemovePanel=function(){if(this.m_ctrlRemovePanel){this.m_ctrlRemovePanel.style.display="none";
this.m_ctrlRemovePanel.style.position="static"
}return 
};
this.removeEventDocumentData=function(){var objResult;
objResult=this.m_callback.deleteEventDocument(cClientContext.getSessionCookie(),this.m_intDocumentID,true);
this.hideRemovePanel();
this.base.objAjaxContent.clearContent();
this.base.objAjaxContent.updateContent()
};
this.cancelRemove=function(){this.hideRemovePanel();
this.base.cancel()
};
this.prepDeleteEventDocument=function(intDocumentID){var objResult;
this.initPrep();
this.m_intDocumentID=intDocumentID;
this.base.m_enumEntryMode=EntryMode.Delete;
try{objResult=this.m_callback.getEventDocument(cClientContext.getSessionCookie(),this.m_intDocumentID);
if(objResult.value.Success){this.base.showDeletePanel()
}}catch(ex){log.debug("prepDeleteEventDocument - Whoa - "+ex)
}return 
};
this.prepEditEventDocument=function(intDocumentID){var objResult;
this.initPrep();
this.m_ctrlMediaPicker.displayLink(MediaPickerLink.Upload,false);
this.m_ctrlMediaPicker.displayLink(MediaPickerLink.Replace,true);
this.m_intDocumentID=intDocumentID;
this.base.m_enumEntryMode=EntryMode.Edit;
try{objResult=this.m_callback.getEventDocument(cClientContext.getSessionCookie(),this.m_intDocumentID);
if(objResult.value.Success){this.m_ctrlDescription.value=objResult.value.DocumentNote;
this.m_ctrlMediaPicker.setValue(objResult.value.DocumentMediaID);
if(objResult.value.ShowUsersList.length>0){this.m_objUserPicker.setValues(objResult.value.ShowUsersList)
}this.setControlValue("OwnerUser",objResult.value.AttachedByUserID);
this.base.showEntryPanel()
}}catch(ex){log.debug("prepEditEventDocument - Whoa! / "+ex)
}return 
};
this.deleteEventDocumentData=function(){var objResult;
objResult=this.m_callback.deleteEventDocument(cClientContext.getSessionCookie(),this.m_intDocumentID,false);
this.base.finishDelete(objResult);
return 
};
this.saveEventDocumentData=function(){var objResult;
var strDesc;
var intDocumentMediaID;
var strUserIDList;
var intOwnerUserID;
strDesc=this.m_ctrlDescription.value;
intDocumentMediaID=this.m_ctrlMediaPicker.getValue();
if(intDocumentMediaID==0){alert("Please Upload your file and wait until it is finished.  Then click Save.");
return 
}strUserIDList=this.m_objUserPicker.getValues();
intOwnerUserID=this.getControlValue("OwnerUser");
if(intOwnerUserID==""){intOwnerUserID=0
}switch(this.base.m_enumEntryMode){case EntryMode.Add:if(this.m_intCalHapID>0){objResult=this.m_callback.addEventDocument(cClientContext.getSessionCookie(),this.m_intCalHapID,strDesc,intDocumentMediaID,strUserIDList,intOwnerUserID)
}break;
case EntryMode.Edit:objResult=this.m_callback.updateEventDocument(cClientContext.getSessionCookie(),this.m_intDocumentID,strDesc,intDocumentMediaID,strUserIDList,intOwnerUserID);
break;
default:log.warn("Unexpected entry mode: "+this.base.m_enumEntryMode);
break
}this.base.finishEntry(objResult);
return 
};
this.cancel=function(){this.base.cancel();
return 
};
this.initPrep=function(){if(this.m_objAjaxContent==null){this.m_objAjaxContent=eval(this.m_strAjaxContent)
}this.base=new cAjaxEntryBase(this,this.m_objAjaxContent,this.m_strEntryPanelID,this.m_strDeletePanelID);
this.m_ctrlRemovePanel=document.getElementById(this.m_strRemovePanelID);
this.base.initPrep();
this.m_intCalHapID=0;
this.m_intDocumentID=0;
if(this.m_objUserPicker==null){this.m_objUserPicker=eval(this.m_strNameUserPicker)
}if(this.m_ctrlMediaPicker==null){this.m_ctrlMediaPicker=cAjaxControl.getClientInstance(this.m_strMediaPickerID)
}this.m_ctrlMediaPicker.displayLink(MediaPickerLink.Edit,false);
if(this.m_objOwnerUserPicker==null){this.m_objOwnerUserPicker=eval(this.m_strNameOwnerUserPicker)
}this.m_ctrlDescription.value="";
this.m_objUserPicker.uncheckAll();
return 
};
this.getObject=function(){var idRow="eventdocumentrow_"+this.m_intDocumentID;
return document.getElementById(idRow)
};
this.setControlValue=function(strEbId,strValue){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
if(obj!=null){obj.setValue(strValue)
}};
this.getControlValue=function(strEbId){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
if(obj!=null){return obj.getValue()
}else{return""
}};
return this
}function cDetailEventNote(strAjaxContent,strUIMode,strEntryPanelID,strDeletePanelID,strNoteTextBoxID,strNameUserPicker){this.base=null;
this.m_blnXmlChore=(strUIMode=="XMLChore");
this.m_strEntryPanelID=strEntryPanelID;
this.m_strDeletePanelID=strDeletePanelID;
this.m_strAjaxContent=strAjaxContent;
this.m_objAjaxContent=null;
this.m_ctrlNoteTextBox=document.getElementById(strNoteTextBoxID);
this.m_strNameUserPicker=strNameUserPicker;
this.m_objUserPicker=null;
this.m_intCalHapID=0;
this.m_intEngID=0;
this.m_intNoteID=0;
this.m_callback=null;
this.prepAddNoteCalHap=function(intCalHapID){this.initPrep();
this.m_intCalHapID=intCalHapID;
this.base.m_enumEntryMode=EntryMode.Add;
this.m_objUserPicker.checkAll();
this.base.showEntryPanel();
return 
};
this.prepAddNoteXmlChore=function(){this.initPrep();
this.m_intCalHapID=0;
this.base.m_enumEntryMode=EntryMode.Add;
this.base.showEntryPanel();
return 
};
this.prepAddNoteEng=function(intEngID){this.initPrep();
this.m_intEngID=intEngID;
this.base.m_enumEntryMode=EntryMode.Add;
this.m_objUserPicker.checkAll();
this.base.showEntryPanel();
return 
};
this.prepDeleteNote=function(intNoteID){var objResult;
this.initPrep();
this.m_intNoteID=intNoteID;
this.base.m_enumEntryMode=EntryMode.Delete;
this.contractNote(this.m_intNoteID);
objResult=this.m_callback.getEventNote(cClientContext.getSessionCookie(),this.m_intNoteID);
if(objResult.value.NoteID>0){this.base.showDeletePanel()
}else{log.debug("prepDeleteNote - Whoa, no note!")
}return 
};
this.prepEditNote=function(intNoteID){var objResult;
this.initPrep();
this.m_intNoteID=intNoteID;
this.base.m_enumEntryMode=EntryMode.Edit;
this.contractNote(this.m_intNoteID);
objResult=this.m_callback.getEventNote(cClientContext.getSessionCookie(),this.m_intNoteID);
if(objResult.value.NoteID>0){this.m_ctrlNoteTextBox.value=objResult.value.NoteText;
log.debug("Users = "+objResult.value.ShowUsersList);
if(objResult.value.ShowUsersList.length>0){this.m_objUserPicker.setValues(objResult.value.ShowUsersList)
}this.base.showEntryPanel()
}else{log.debug("prepEditNote - Whoa, no note!")
}return 
};
this.deleteNoteData=function(){var objResult;
objResult=this.m_callback.deleteNote(cClientContext.getSessionCookie(),this.m_intNoteID);
this.base.finishDelete(objResult);
return 
};
this.saveNoteData=function(){var objResult;
var strNoteText;
var strUserIDList;
strNoteText=this.m_ctrlNoteTextBox.value;
strUserIDList=this.m_objUserPicker.getValues();
switch(this.base.m_enumEntryMode){case EntryMode.Add:if(this.m_intCalHapID>0){objResult=this.m_callback.addCalHapNote(cClientContext.getSessionCookie(),this.m_intCalHapID,strNoteText,strUserIDList)
}else{objResult=this.m_callback.addEngagementNote(cClientContext.getSessionCookie(),this.m_intEngID,strNoteText,strUserIDList)
}var oDomDoc=Sarissa.getDomDocument();
var xmlString=objResult.value.XmlString;
oDomDoc=(new DOMParser()).parseFromString(xmlString,"text/xml");
var results=oDomDoc.getElementsByTagName("result");
if(results.length==1){objResult=results.item(0);
this.m_intNoteID=objResult.getAttribute("NoteID")
}break;
case EntryMode.Edit:objResult=this.m_callback.updateNote(cClientContext.getSessionCookie(),this.m_intNoteID,strNoteText,strUserIDList);
break;
default:log.warn("Unexpected entry mode: "+this.base.m_enumEntryMode);
break
}this.base.finishEntry(objResult);
this.expandNote(this.m_intNoteID);
return 
};
this.cancel=function(){this.base.cancel();
return 
};
this.expandNote=function(intNoteID){var cellNoteText;
var expanderNote;
this.initPrep();
cellNoteText=this.getNoteTextCell(intNoteID);
expanderNote=this.getNoteExpander(intNoteID);
if(cellNoteText&&expanderNote){if(cellNoteText.className=="expanded"){cellNoteText.className="contracted";
expanderNote.className="expander_contracted"
}else{cellNoteText.className="expanded";
expanderNote.className="expander_expanded"
}}return 
};
this.contractNote=function(intNoteID){var cellNoteText;
var expanderNote;
cellNoteText=this.getNoteTextCell(intNoteID);
expanderNote=this.getNoteExpander(intNoteID);
if(cellNoteText&&expanderNote){cellNoteText.className="contracted";
expanderNote.className="expander_contracted"
}return 
};
this.initPrep=function(){if(this.m_objAjaxContent==null){this.m_objAjaxContent=eval(this.m_strAjaxContent)
}this.base=new cAjaxEntryBase(this,this.m_objAjaxContent,this.m_strEntryPanelID,this.m_strDeletePanelID);
if(!this.m_blnXmlChore){this.m_callback=EBcWebApp.Event.AjaxCallBack.cEventNoteAjaxCallback
}this.base.initPrep();
if(this.m_objUserPicker==null){this.m_objUserPicker=cAjaxControl.getClientInstance(this.m_strNameUserPicker)
}this.m_intNoteID=0;
this.m_intCalHapID=0;
this.m_intEngID=0;
this.reset();
return 
};
this.reset=function(){this.m_ctrlNoteTextBox.value="";
this.m_objUserPicker.uncheckAll();
return 
};
this.getXml=function(){var oDomDoc;
var xmlRoot;
var xmlField;
var nodeText;
oDomDoc=Sarissa.getDomDocument();
xmlRoot=oDomDoc.createElement("event_notes");
oDomDoc.appendChild(xmlRoot);
xmlField=oDomDoc.createElement("event_note");
xmlField.setAttribute("user_id_list",this.m_objUserPicker.getValues());
nodeText=oDomDoc.createTextNode(this.m_ctrlNoteTextBox.value);
xmlField.appendChild(nodeText);
xmlRoot.appendChild(xmlField);
return xmlRoot
};
this.getObject=function(){var idRow="noterow_"+this.m_intNoteID;
return document.getElementById(idRow)
};
this.getNoteTextCell=function(intNoteID){var idCell="notetext_"+intNoteID;
return document.getElementById(idCell)
};
this.getNoteExpander=function(intNoteID){var idCell="noteexp_"+intNoteID;
return document.getElementById(idCell)
};
return this
}function cDetailHapSub(strAjaxContent,strEntryPanelID,strDeletePanelID,strHapSubTypePickerID,strDayStartPickerID,strStartTimeID,strDayEndPickerID,strEndTimeID,strDescriptionID,strFilterHapSubTypePickerID,strRefresherObjectName,strCalHapID,strEventStart,strEventEnd){this.m_strEntryPanelID=strEntryPanelID;
this.m_strFilterHapSubTypePickerID=strFilterHapSubTypePickerID;
this.m_objFilterHapSubTypePicker=null;
this.m_strRefresherObjectName=strRefresherObjectName;
this.m_objRefresher=null;
this.m_strDeletePanelID=strDeletePanelID;
this.m_strAjaxContent=strAjaxContent;
this.m_objAjaxContent=null;
this.m_ctrlEntryPanel=document.getElementById(strEntryPanelID);
this.m_strHapSubTypePickerID=strHapSubTypePickerID;
this.m_strDayStartPickerID=strDayStartPickerID;
this.m_strStartTimeID=strStartTimeID;
this.m_strDayEndPickerID=strDayEndPickerID;
this.m_strEndTimeID=strEndTimeID;
this.m_objHapSubTypePicker=null;
this.m_ctrlDayStartPicker=null;
this.m_ctrlStartTime=null;
this.m_ctrlDayEndPicker=null;
this.m_ctrlEndTime=null;
this.m_ctrlDescription=document.getElementById(strDescriptionID);
this.m_intCalHapID=parseInt(strCalHapID);
this.m_intHapSubID=0;
this.m_strEventStart=strEventStart;
this.m_strEventEnd=strEventEnd;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cHapSubAjaxCallback;
this.prepAddHapSub=function(intCalHapID){this.initPrep();
this.m_intCalHapID=intCalHapID;
this.base.m_enumEntryMode=EntryMode.Add;
this.base.showEntryPanel();
return 
};
this.prepDeleteHapSub=function(intHapSubID){var objResult;
this.initPrep();
this.m_intHapSubID=intHapSubID;
this.base.m_enumEntryMode=EntryMode.Delete;
try{objResult=this.m_callback.getHapSub(cClientContext.getSessionCookie(),this.m_intHapSubID);
if(objResult.value.Success){this.base.showDeletePanel()
}}catch(ex){log.debug("prepDeleteHapSub - Whoa - "+ex)
}return 
};
this.prepEditHapSub=function(intHapSubID){var objResult;
this.initPrep();
this.m_intHapSubID=intHapSubID;
this.base.m_enumEntryMode=EntryMode.Edit;
try{objResult=this.m_callback.getHapSub(cClientContext.getSessionCookie(),this.m_intHapSubID);
if(objResult.value.Success){this.m_objHapSubTypePicker.setValue(objResult.value.HapSubTypeID);
this.m_ctrlDayStartPicker.setValue(objResult.value.DayStart);
this.m_ctrlStartTime.setValue(objResult.value.StartTime);
this.m_ctrlDayEndPicker.setValue(objResult.value.DayEnd);
this.m_ctrlEndTime.setValue(objResult.value.EndTime);
this.m_ctrlDescription.value=objResult.value.Description;
this.base.showEntryPanel()
}}catch(ex){log.debug("prepEditHapSub - Whoa! / "+ex)
}return 
};
this.deleteHapSubData=function(){var objResult;
objResult=this.m_callback.deleteHapSub(cClientContext.getSessionCookie(),this.m_intHapSubID);
this.base.finishDelete(objResult);
this.refreshShowtimes();
return 
};
this.refreshShowtimes=function(){this.m_objRefresher.refreshSection("Showtimes");
return 
};
this.saveHapSubData=function(){var objResult;
var strDesc=this.m_ctrlDescription.value;
var intHapSubTypeID=this.m_objHapSubTypePicker.getValue();
var intDayStart=this.m_ctrlDayStartPicker.getValue();
var intDayEnd=this.m_ctrlDayEndPicker.getValue();
var strStartTime=this.m_ctrlStartTime.getValue();
var strEndTime=this.m_ctrlEndTime.getValue();
var dtmStartTime=new Date("2005/01/31 "+strStartTime);
var dtmEndTime=new Date("2005/01/31 "+strEndTime);
if(intDayStart>intDayEnd){cCommonUI.problem("Start date must be on or before end date.",this.m_ctrlEntryPanel);
return 
}if(intDayStart==intDayEnd){if((dtmEndTime-dtmStartTime)<0){cCommonUI.problem("Start time cannot be after end time.",this.m_ctrlEntryPanel);
return 
}}switch(this.base.m_enumEntryMode){case EntryMode.Add:log.debug("Adding!!");
if(this.m_intCalHapID>0){objResult=this.m_callback.addCalHapSub(cClientContext.getSessionCookie(),this.m_intCalHapID,strDesc,intHapSubTypeID,intDayStart,strStartTime,intDayEnd,strEndTime)
}break;
case EntryMode.Edit:objResult=this.m_callback.updateHapSub(cClientContext.getSessionCookie(),this.m_intHapSubID,strDesc,intHapSubTypeID,intDayStart,strStartTime,intDayEnd,strEndTime);
break;
default:log.warn("Unexpected entry mode: "+this.base.m_enumEntryMode);
break
}this.base.finishEntry(objResult);
this.refreshShowtimes();
return 
};
this.externalSwitcher=function(strHapSubTypeID){this.m_objFilterHapSubTypePicker.setValue(strHapSubTypeID);
this.refreshFilterSetting()
};
this.cancel=function(){this.base.cancel();
return 
};
this.filterOnchange=function(){this.refreshFilterSetting()
};
this.updateDateDropdowns=function(){var objResult;
objResult=this.m_callback.getHappeningDateRange(cClientContext.getSessionCookie(),this.m_intCalHapID);
if(objResult.value.Success){this.m_strEventStart=objResult.value.WhenStart;
this.m_strEventEnd=objResult.value.WhenEnd
}else{log.debug("Could not load the happening date range for this.m_intCalHapID:"+this.m_intCalHapID)
}this.populateDropdownDateControls()
};
this.populateDropdownDateControls=function(){var strDate;
var intCountDays;
var ctrlStart=this.m_ctrlDayStartPicker.m_ctrlSelect;
var ctrlEnd=this.m_ctrlDayEndPicker.m_ctrlSelect;
var dtStart;
var dtEnd;
var blnDefaultSelected=false;
var blnSelected=false;
dtStart=new Date(this.m_strEventStart);
dtEnd=new Date(this.m_strEventEnd);
dtStart=new Date(dtStart.getFullYear(),dtStart.getMonth(),dtStart.getDate());
dtEnd=new Date(dtEnd.getFullYear(),dtEnd.getMonth(),dtEnd.getDate());
ctrlStart.options.length=0;
ctrlEnd.options.length=0;
intCountDays=cDateUtility.daysBetween(dtStart,dtEnd)+1;
for(var ii=0;
ii<intCountDays;
ii++){dtTmp=cDateUtility.addDays(dtStart,ii);
strDate=cDateUtility.formatDate(dtTmp,"d NNN yyyy");
ctrlStart.options[ctrlStart.options.length]=new Option(strDate,ii,blnDefaultSelected,blnSelected);
ctrlEnd.options[ctrlEnd.options.length]=new Option(strDate,ii,blnDefaultSelected,blnSelected)
}ctrlEnd.options[intCountDays]=new Option("Day after",intCountDays,false,false)
};
this.refreshFilterSetting=function(){var nodesRow;
var intNew;
var strSelectedText;
strSelectedText=this.m_objFilterHapSubTypePicker.getText();
intNew=parseInt(this.m_objFilterHapSubTypePicker.getValue());
nodesRow=this.m_objAjaxContent.m_ctrlPanel.getElementsByTagName("tr");
for(var idx=0;
idx<nodesRow.length;
idx++){oneRow=nodesRow[idx];
strID=oneRow.getAttribute("id");
if(strID!=null){if(strID.length>0){if(strID.substr(0,10)=="hapsubrow_"){if(intNew==0){oneRow.style.display=""
}else{if(oneRow.childNodes[2].innerHTML==strSelectedText){oneRow.style.display=""
}else{oneRow.style.display="none"
}}}}}}this.m_intFilterHapSubTypeValue=intNew
};
this.initPrep=function(){this.base.initPrep();
this.m_intHapSubID=0;
this.m_ctrlDescription.value="";
this.m_objHapSubTypePicker.setValue(this.m_objFilterHapSubTypePicker.getValue());
this.m_ctrlDayStartPicker.setValue(0);
this.m_ctrlDayEndPicker.setValue(0)
};
this.initialize=function(){if(this.m_objAjaxContent==null){this.m_objAjaxContent=eval(this.m_strAjaxContent)
}this.base=new cAjaxEntryBase(this,this.m_objAjaxContent,this.m_strEntryPanelID,this.m_strDeletePanelID);
try{this.m_objRefresher=eval(this.m_strRefresherObjectName)
}catch(ex){this.m_objRefresher=null
}var strCallbackFunction;
strCallbackFunction=this.selfName+".updateDateDropdowns();";
this.m_objAjaxContent.setRefreshCallback(strCallbackFunction);
strCallbackFunction=this.selfName+".refreshFilterSetting();";
this.m_objAjaxContent.setOnFocusCallback(strCallbackFunction);
if(this.m_ctrlDayEndPicker==null){this.m_ctrlDayEndPicker=cAjaxControl.getClientInstance(this.m_strDayEndPickerID)
}if(this.m_ctrlDayStartPicker==null){this.m_ctrlDayStartPicker=cAjaxControl.getClientInstance(this.m_strDayStartPickerID)
}if(this.m_objHapSubTypePicker==null){this.m_objHapSubTypePicker=cAjaxControl.getClientInstance(this.m_strHapSubTypePickerID)
}if(this.m_objFilterHapSubTypePicker==null){this.m_objFilterHapSubTypePicker=cAjaxControl.getClientInstance(this.m_strFilterHapSubTypePickerID)
}if(this.m_ctrlStartTime==null){this.m_ctrlStartTime=cAjaxControl.getClientInstance(this.m_strStartTimeID)
}if(this.m_ctrlEndTime==null){this.m_ctrlEndTime=cAjaxControl.getClientInstance(this.m_strEndTimeID)
}this.m_objFilterHapSubTypePicker.setValue(0);
return 
};
this.getObject=function(){var idRow="hapsubrow_"+this.m_intHapSubID;
return document.getElementById(idRow)
};
this.setEqual=function(){this.m_ctrlEndTime.setValue(this.m_ctrlStartTime.getValue());
this.m_ctrlDayEndPicker.setValue(this.m_ctrlDayStartPicker.getValue());
return 
};
return this
}function cDetailPublicityFixed(strAjaxContent,strEntryPanelID){this.m_intCalHapID=0;
this.m_strAjaxContent=strAjaxContent;
this.m_objAjaxContent=null;
this.m_ctrlEntryPanel=document.getElementById(strEntryPanelID);
this.m_callback=EBcWebApp.Event.AjaxCallBack.cPublicityFixedAjaxCallback;
this.prepEditPublicityFixed=function(intCalHapID){var objResult;
this.initPrep();
this.m_intCalHapID=intCalHapID;
try{objResult=this.m_callback.getPublicityFixed(cClientContext.getSessionCookie(),this.m_intCalHapID);
if(objResult.value.Success){this.setControlValue("PublicityTabEventName",objResult.value.EventName);
this.setControlValue("PublicName",objResult.value.PublicName);
this.setControlValue("PublicityTabCalendarName",objResult.value.CalendarName);
this.setControlValue("Location",objResult.value.Location);
this.setControlValue("WhenAnnounce",objResult.value.WhenAnnounce.value);
this.setControlValue("WhenTicketsOnSale",objResult.value.WhenTicketsOnSale.value);
this.setControlValue("IsFeatured",objResult.value.IsFeatured);
this.setControlValue("IsUpcoming",objResult.value.IsUpcoming);
this.setControlValue("EventDescription",objResult.value.EventDescription);
this.setControlValue("EventWhenEnd",objResult.value.EventWhenEnd);
this.setControlValue("PictureMediaPicker",objResult.value.PictureMediaID);
this.setControlValue("ThumbnailMediaPicker",objResult.value.ThumbnailMediaID);
this.setControlValue("TicketPrices",objResult.value.TicketPrices);
this.setControlValue("TicketInfo",objResult.value.TicketInfo);
this.setControlValue("AdditionalInfo",objResult.value.AdditionalInfo);
this.showEntryPanel()
}}catch(ex){log.debug("prepEditPublicityFixed - Whoa! / "+ex)
}this.m_objAjaxContent.hideContent();
this.showEntryPanel();
return 
};
this.setControlValue=function(strEbId,strValue){var obj=cAjaxControl.getClientInstanceByEbId(this.m_ctrlEntryPanel,strEbId);
obj.setValue(strValue)
};
this.getControlValue=function(strEbId){var obj=cAjaxControl.getClientInstanceByEbId(this.m_ctrlEntryPanel,strEbId);
return obj.getValue()
};
this.getElement=function(strEbId){return cDomUtility.getElementByEbId(this.m_ctrlEntryPanel,strEbId)
};
this.saveFixedPublicity=function(){var objResult;
if(!this.verifyFixedPublicityDatesOK()){return 
}objResult=this.m_callback.updatePublicityFixed(cClientContext.getSessionCookie(),this.m_intCalHapID,this.getControlValue("PublicName"),this.getControlValue("Location"),new NullableDateTime(this.getControlValue("WhenAnnounce")),new NullableDateTime(this.getControlValue("WhenTicketsOnSale")),this.getControlValue("IsFeatured"),this.getControlValue("IsUpcoming"),this.getControlValue("EventDescription"),this.getControlValue("PictureMediaPicker"),this.getControlValue("ThumbnailMediaPicker"),this.getControlValue("TicketPrices"),this.getControlValue("TicketInfo"),this.getControlValue("AdditionalInfo"));
this.finishEntry(objResult);
this.m_objAjaxContent.showContent();
return 
};
this.verifyFixedPublicityDatesOK=function(){var dtmEventWhenEnd=new Date(this.getControlValue("EventWhenEnd"));
var dtmWhenAnnounce=this.getControlValue("WhenAnnounce");
var blnHasWhenAnnounce=(dtmWhenAnnounce!=null);
var dtmWhenTicketsOnSale=this.getControlValue("WhenTicketsOnSale");
var blnHasWhenTicketsOnSale=(dtmWhenTicketsOnSale!=null);
if(blnHasWhenAnnounce){if(dtmWhenAnnounce>dtmEventWhenEnd){cCommonUI.problem("Please enter an Announce Date date prior or equal to the Event End Date.",this.m_ctrlEntryPanel);
return false
}}if(blnHasWhenAnnounce&&blnHasWhenTicketsOnSale){if(dtmWhenAnnounce>dtmWhenTicketsOnSale){cCommonUI.problem("Please enter an Announce Date date prior or equal to the Tickets On Sale Date.",this.m_ctrlEntryPanel);
return false
}}if(blnHasWhenTicketsOnSale){if(dtmWhenTicketsOnSale>dtmEventWhenEnd){cCommonUI.problem("Please enter a Tickets On Sale Date prior or equal to the Event End Date.",this.m_ctrlEntryPanel);
return false
}}return true
};
this.cancel=function(){this.hideEntryPanel();
this.m_objAjaxContent.showContent();
return 
};
this.initPrep=function(){this.m_ctrlEntryPanel.className=EntryCssClass.PanelEdit;
this.m_objAjaxContent=eval(this.m_strAjaxContent);
this.m_intCalHapID=0;
return 
};
this.showEntryPanel=function(){this.m_ctrlEntryPanel.className=EntryCssClass.PanelEdit;
this.m_ctrlEntryPanel.style.position="static";
this.m_ctrlEntryPanel.style.display="block";
return 
};
this.finishEntry=function(objResult){if(objResult!=null&&objResult.value!=null){cCommonUI.success(objResult.value.Message,this.m_ctrlEntryPanel)
}this.hideEntryPanel();
this.refreshContent();
return 
};
this.refreshContent=function(){if(this.m_objAjaxContent){this.m_objAjaxContent.clearContent();
this.m_objAjaxContent.updateContent()
}};
this.hideEntryPanel=function(){this.m_ctrlEntryPanel.style.display="none";
this.m_ctrlEntryPanel.style.position="static";
return 
};
this.copyEventNameToPublicName=function(){var ctrlSource=this.getElement("PublicityTabEventName");
var ctrlDest=this.getElement("PublicName");
ctrlDest.value=ctrlSource.innerHTML
};
this.copyCalendarNameToLocation=function(){var ctrlSource=this.getElement("PublicityTabCalendarName");
var ctrlDest=this.getElement("Location");
ctrlDest.value=ctrlSource.innerHTML
};
return this
}function cDetailPublicityExtend(strAjaxContent,strEntryPanelID,strDeletePanelID){this.m_strAjaxContent=strAjaxContent;
this.m_strEntryPanelID=strEntryPanelID;
this.m_strDeletePanelID=strDeletePanelID;
this.m_objAjaxContent=null;
this.base=null;
this.m_intCalHapID=0;
this.m_intExtendID=0;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cPublicityExtendAjaxCallback;
this.prepAddPublicityExtend=function(intCalHapID){this.initPrep();
this.m_intCalHapID=intCalHapID;
this.m_intExtendID=0;
this.base.m_enumEntryMode=EntryMode.Add;
this.base.showEntryPanel();
return 
};
this.prepDeletePublicityExtend=function(intExtendID){var objResult;
this.initPrep();
this.m_intExtendID=intExtendID;
this.base.m_enumEntryMode=EntryMode.Delete;
try{objResult=this.m_callback.getPublicityExtend(cClientContext.getSessionCookie(),this.m_intExtendID);
if(objResult.value.Success){this.base.showDeletePanel()
}}catch(ex){log.debug("prepDeletePublicityExtend - Whoa - "+ex)
}return 
};
this.prepEditPublicityExtend=function(intExtendID){var objResult;
this.initPrep();
this.m_intExtendID=intExtendID;
this.base.m_enumEntryMode=EntryMode.Edit;
try{objResult=this.m_callback.getPublicityExtend(cClientContext.getSessionCookie(),this.m_intExtendID);
if(objResult.value.Success){this.m_intCalHapID=objResult.value.CalHapID;
this.setControlValue("PublicityTypeID",objResult.value.PublicityTypeID);
this.setControlValue("PublicityValue",objResult.value.PublicityValue);
this.setControlValue("PublicityCaption",objResult.value.PublicityCaption);
this.base.showEntryPanel()
}}catch(ex){log.debug("prepEditPublicityExtend - Whoa! / "+ex)
}return 
};
this.deletePublicityExtendData=function(){var objResult;
objResult=this.m_callback.deletePublicityExtend(cClientContext.getSessionCookie(),this.m_intExtendID);
this.base.finishDelete(objResult);
return 
};
this.saveExtendPublicity=function(){var objResult;
objResult=this.m_callback.updatePublicityExtend(cClientContext.getSessionCookie(),this.m_intCalHapID,this.m_intExtendID,this.getControlValue("PublicityTypeID"),this.getControlValue("PublicityValue"),this.getControlValue("PublicityCaption"));
this.base.finishEntry(objResult);
this.m_objAjaxContent.showContent();
return 
};
this.setControlValue=function(strEbId,strValue){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
obj.setValue(strValue)
};
this.getControlValue=function(strEbId){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
return obj.getValue()
};
this.getElement=function(strEbId){return cDomUtility.getElementByEbId(this.m_ctrlEntryPanel,strEbId)
};
this.cancel=function(){this.base.cancel();
return 
};
this.initPrep=function(){this.m_objAjaxContent=eval(this.m_strAjaxContent);
this.base=new cAjaxEntryBase(this,this.m_objAjaxContent,this.m_strEntryPanelID,this.m_strDeletePanelID);
this.base.initPrep();
this.m_intCalHapID=0;
this.m_intExtendID=0;
this.setControlValue("PublicityTypeID","0");
this.setControlValue("PublicityValue","");
this.setControlValue("PublicityCaption","");
return 
};
this.getObject=function(){try{var idRow="publicityextendrow_"+this.m_intExtendID;
return document.getElementById(idRow)
}catch(ex){return null
}};
return this
}function cDetailRelatedEvents(strAjaxContent,strEntryPanelID,strDeletePanelID,strFilterStatusPickerID,strCalHapID){this.m_strEntryPanelID=strEntryPanelID;
this.m_strDeletePanelID=strDeletePanelID;
this.m_strFilterStatusPickerID=strFilterStatusPickerID;
this.m_objFilterStatusPicker=null;
this.m_strAjaxContent=strAjaxContent;
this.m_objAjaxContent=null;
this.m_intCalHapID=parseInt(strCalHapID);
this.externalSwitcher=function(strFilterCalHapStatusID){this.m_objFilterStatusPicker.setValue(strFilterCalHapStatusID);
this.refreshFilterSetting()
};
this.filterOnchange=function(){this.refreshFilterSetting()
};
this.refreshFilterSetting=function(){var nodesRow;
var intNew;
var strSelectedText;
strSelectedText=this.m_objFilterStatusPicker.getText();
intNew=parseInt(this.m_objFilterStatusPicker.getValue());
nodesRow=this.m_objAjaxContent.m_ctrlPanel.getElementsByTagName("tr");
for(var idx=0;
idx<nodesRow.length;
idx++){oneRow=nodesRow[idx];
strID=oneRow.getAttribute("id");
if(strID!=null){if(strID.length>0){if(strID.substr(0,16)=="relatedeventrow_"){blnShow=true;
switch(intNew){case EBcWebApp.Event.FilterCalHapStatus.All:break;
case EBcWebApp.Event.FilterCalHapStatus.AllExceptCancelled:if(oneRow.getAttribute("is_cancelled")=="true"){blnShow=false
}break;
case EBcWebApp.Event.FilterCalHapStatus.Cancelled:if(oneRow.getAttribute("is_cancelled")=="false"){blnShow=false
}break;
case EBcWebApp.Event.FilterCalHapStatus.Confirmed:if(oneRow.getAttribute("is_confirmed")=="false"){blnShow=false
}break;
case EBcWebApp.Event.FilterCalHapStatus.Request:if(oneRow.getAttribute("is_request")=="false"){blnShow=false
}break;
case EBcWebApp.Event.FilterCalHapStatus.Tentative:if(oneRow.getAttribute("is_tentative")=="false"){blnShow=false
}break
}if(blnShow){oneRow.style.display=""
}else{oneRow.style.display="none"
}}}}}this.m_intFilterHapSubTypeValue=intNew
};
this.initialize=function(){if(this.m_objAjaxContent==null){this.m_objAjaxContent=eval(this.m_strAjaxContent)
}this.base=new cAjaxEntryBase(this,this.m_objAjaxContent,this.m_strEntryPanelID,this.m_strDeletePanelID);
var strCallbackFunction=this.selfName+".refreshFilterSetting();";
this.m_objAjaxContent.setOnFocusCallback(strCallbackFunction);
if(this.m_objFilterStatusPicker==null){this.m_objFilterStatusPicker=cAjaxControl.getClientInstance(this.m_strFilterStatusPickerID)
}this.m_objFilterStatusPicker.setValue(EBcWebApp.Event.FilterCalHapStatus.AllExceptCancelled);
return 
};
return this
}function cDetailReminder(strAjaxContent,strEntryPanelID,strDateSinglePanelID,strDateMultiPanelID,strDateRecurringPanelID,strTypeWhenMultiRadioID,strTypeWhenRecurringRadioID,strNameUserPicker){this.m_strAjaxContent=strAjaxContent;
this.m_strEntryPanelID=strEntryPanelID;
this.m_objAjaxContent=null;
this.m_strDateSinglePanelID=strDateSinglePanelID;
this.m_objDateSinglePanel=null;
this.m_strDateMultiPanelID=strDateMultiPanelID;
this.m_objDateMultiPanel=null;
this.m_strDateRecurringPanelID=strDateRecurringPanelID;
this.m_objDateRecurringPanel=null;
this.m_strTypeWhenMultiRadioID=strTypeWhenMultiRadioID;
this.m_objTypeWhenMultiRadio=null;
this.m_strTypeWhenRecurringRadioID=strTypeWhenRecurringRadioID;
this.m_objTypeWhenRecurringRadio=null;
this.m_strNameUserPicker=strNameUserPicker;
this.base=null;
this.m_intCalHapID=0;
this.m_intReminderID=0;
this.m_intTypeWhen=EBcWebApp.Reminder.ReminderTypeWhen.Single;
this.m_callback=EBcWebApp.Reminder.AjaxCallBack.cReminderAjaxCallback;
this.prepAddReminder=function(intCalHapID){this.initPrep();
this.m_intCalHapID=intCalHapID;
this.m_intReminderID=0;
this.base.m_enumEntryMode=EntryMode.Add;
this.m_objTypeWhenMultiRadio.style.display="block";
this.m_objTypeWhenRecurringRadio.style.display="block";
this.m_objDateSinglePanel.style.display="none";
this.m_objDateMultiPanel.style.display="block";
this.m_objDateRecurringPanel.style.display="block";
this.setControlValue("TypeWhenMulti",true);
this.typeWhenMultiRadioClick();
this.setControlValue("TypeWhenRecurring",false);
this.m_objTypeWhenMultiRadio.style.visibility="visible";
this.m_objTypeWhenRecurringRadio.style.visibility="visible";
this.m_objAjaxContent.hideContent();
this.base.showEntryPanel();
return 
};
this.prepEditReminder=function(intReminderID){var objResult;
var dtrTmp;
this.initPrep();
this.m_intReminderID=intReminderID;
this.base.m_enumEntryMode=EntryMode.Edit;
this.m_objTypeWhenMultiRadio.style.display="none";
this.m_objTypeWhenRecurringRadio.style.display="none";
try{objResult=this.m_callback.getReminder(cClientContext.getSessionCookie(),this.m_intReminderID);
if(objResult.value.Success){this.setControlValue("ReminderSubject",objResult.value.ReminderSubject);
this.setControlValue("ReminderDetail",objResult.value.ReminderDetail);
this.setControlValue("IsHighPriority",objResult.value.IsHighPriority);
this.m_intTypeWhen=objResult.value.TypeWhen;
switch(this.m_intTypeWhen){case EBcWebApp.Reminder.ReminderTypeWhen.Single:this.m_objDateSinglePanel.style.display="block";
this.m_objDateMultiPanel.style.display="none";
this.m_objDateRecurringPanel.style.display="none";
this.typeWhenMultiRadioClick();
this.setControlValue("WhenRemindSingle",objResult.value.WhenDue.value);
break;
case EBcWebApp.Reminder.ReminderTypeWhen.Recurring:this.m_objDateSinglePanel.style.display="none";
this.m_objDateMultiPanel.style.display="none";
this.m_objDateRecurringPanel.style.display="block";
this.typeWhenRecurringRadioClick();
this.setControlStartValue("WhenRemindRecurringRange",objResult.value.RecurWhenDueStart);
this.setControlEndValue("WhenRemindRecurringRange",objResult.value.RecurWhenDueEnd);
this.setControlValue("RecurSun",objResult.value.RecurSun);
this.setControlValue("RecurMon",objResult.value.RecurMon);
this.setControlValue("RecurTue",objResult.value.RecurTue);
this.setControlValue("RecurWed",objResult.value.RecurWed);
this.setControlValue("RecurThu",objResult.value.RecurThu);
this.setControlValue("RecurFri",objResult.value.RecurFri);
this.setControlValue("RecurSat",objResult.value.RecurSat);
break;
default:log.debug("Invalid value in this.m_intTypeWhen:"+this.m_intTypeWhen);
break
}if(objResult.value.ReminderAssignedUserIDList.length>0){this.m_objUserPicker.setValues(objResult.value.ReminderAssignedUserIDList)
}this.m_objAjaxContent.hideContent();
this.base.showEntryPanel()
}}catch(ex){log.debug("prepEditReminder - Whoa! / "+ex)
}return 
};
this.markCompleteReminder=function(intReminderID,strReminderDate){var objResult;
var dtmReminderDate;
this.initPrep();
dtmReminderDate=new NullableDateTime(strReminderDate.substr(0,4),(strReminderDate.substr(4,2)),strReminderDate.substr(6,2),0,0,0);
objResult=this.m_callback.markCompleteReminder(cClientContext.getSessionCookie(),intReminderID,dtmReminderDate);
this.base.finishEntry(objResult);
return 
};
this.saveReminder=function(){var objResult;
var strUserIDList;
try{if(this.getControlValue("ReminderSubject").length==0){cCommonUI.problem("Please enter a Subject for the reminder!",this.base.m_ctrlEntryPanel);
return false
}if(this.base.m_enumEntryMode==EntryMode.Add){if(this.getControlValue("TypeWhenMulti")){this.m_intTypeWhen=EBcWebApp.Reminder.ReminderTypeWhen.Single;
var aryMulti=this.getControlValue("WhenRemindMultiple");
if(aryMulti.length==0){cCommonUI.problem("Please select at least one date!",this.base.m_ctrlEntryPanel);
return false
}}else{this.m_intTypeWhen=EBcWebApp.Reminder.ReminderTypeWhen.Recurring
}}if(this.m_intTypeWhen==EBcWebApp.Reminder.ReminderTypeWhen.Recurring){if(!this.getControlValue("RecurSun")&&!this.getControlValue("RecurMon")&&!this.getControlValue("RecurTue")&&!this.getControlValue("RecurWed")&&!this.getControlValue("RecurThu")&&!this.getControlValue("RecurFri")&&!this.getControlValue("RecurSat")){cCommonUI.problem("Please check at least one day of the week!",this.base.m_ctrlEntryPanel);
return false
}}strUserIDList=this.m_objUserPicker.getValues();
objResult=this.m_callback.updateReminder(cClientContext.getSessionCookie(),this.m_intCalHapID,this.m_intReminderID,this.getControlValue("ReminderSubject"),this.getControlValue("ReminderDetail"),this.getControlValue("IsHighPriority"),this.m_intTypeWhen,new NullableDateTime(this.getControlValue("WhenRemindSingle")),new NullableDateTime(this.getControlStartValue("WhenRemindRecurringRange")),new NullableDateTime(this.getControlEndValue("WhenRemindRecurringRange")),this.getControlValue("WhenRemindMultiple"),this.getControlValue("RecurSun"),this.getControlValue("RecurMon"),this.getControlValue("RecurTue"),this.getControlValue("RecurWed"),this.getControlValue("RecurThu"),this.getControlValue("RecurFri"),this.getControlValue("RecurSat"),strUserIDList);
if(objResult.value.Success){this.base.finishEntry(objResult);
this.m_objAjaxContent.showContent()
}else{log.debug("saveReminder - UPDATE FAILED!")
}}catch(ex){log.debug("saveReminder - Whoa! / "+ex)
}return true
};
this.setControlValue=function(strEbId,strValue){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
obj.setValue(strValue)
};
this.setControlStartValue=function(strEbId,strValue){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
obj.setStartValue(strValue)
};
this.setControlEndValue=function(strEbId,strValue){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
obj.setEndValue(strValue)
};
this.getControlValue=function(strEbId){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
return obj.getValue()
};
this.getControlStartValue=function(strEbId){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
return obj.getStartValue()
};
this.getControlEndValue=function(strEbId){var obj=cAjaxControl.getClientInstanceByEbId(this.base.m_ctrlEntryPanel,strEbId);
return obj.getEndValue()
};
this.getElement=function(strEbId){return cDomUtility.getElementByEbId(this.base.m_ctrlEntryPanel,strEbId)
};
this.cancel=function(){this.base.cancel();
this.m_objAjaxContent.showContent();
return 
};
this.typeWhenMultiRadioClick=function(){this.m_objDateMultiPanel.className="PanelSelected";
this.m_objDateRecurringPanel.className="PanelUnSelected"
};
this.typeWhenRecurringRadioClick=function(){this.m_objDateMultiPanel.className="PanelUnSelected";
this.m_objDateRecurringPanel.className="PanelSelected"
};
this.typeWhenMultiPanelClick=function(){if(this.m_objTypeWhenMultiRadio.style.display=="block"){if(this.m_objTypeWhenMultiRadio.checked==false){this.m_objTypeWhenMultiRadio.checked=true;
this.typeWhenMultiRadioClick()
}}};
this.typeWhenRecurringPanelClick=function(){if(this.m_objTypeWhenRecurringRadio.style.display=="block"){if(this.m_objTypeWhenRecurringRadio.checked==false){this.m_objTypeWhenRecurringRadio.checked=true;
this.typeWhenRecurringRadioClick()
}}};
this.initPrep=function(){this.m_objAjaxContent=eval(this.m_strAjaxContent);
this.base=new cAjaxEntryBase(this,this.m_objAjaxContent,this.m_strEntryPanelID);
this.base.initPrep();
this.m_intReminderID=0;
this.m_objDateSinglePanel=document.getElementById(this.m_strDateSinglePanelID);
this.m_objDateMultiPanel=document.getElementById(this.m_strDateMultiPanelID);
this.m_objDateRecurringPanel=document.getElementById(this.m_strDateRecurringPanelID);
this.m_objTypeWhenMultiRadio=document.getElementById(this.m_strTypeWhenMultiRadioID);
this.m_objTypeWhenRecurringRadio=document.getElementById(this.m_strTypeWhenRecurringRadioID);
this.setControlValue("ReminderSubject","");
this.setControlValue("ReminderDetail","");
this.setControlValue("IsHighPriority",0);
this.setControlStartValue("WhenRemindRecurringRange",new Date());
this.setControlEndValue("WhenRemindRecurringRange",new Date());
this.setControlValue("WhenRemindMultiple",new Array());
this.setControlValue("RecurSun",false);
this.setControlValue("RecurMon",false);
this.setControlValue("RecurTue",false);
this.setControlValue("RecurWed",false);
this.setControlValue("RecurThu",false);
this.setControlValue("RecurFri",false);
this.setControlValue("RecurSat",false);
if(this.m_objUserPicker==null){this.m_objUserPicker=eval(this.m_strNameUserPicker)
}this.m_objUserPicker.setValues("");
return 
};
this.getObject=function(){try{var idRow="Reminderrow_"+this.m_intReminderID;
return document.getElementById(idRow)
}catch(ex){return null
}};
return this
}function cEventAddEditControl(G,J,M,B,F,E,P,L,D,A,I,H,K,N,O,C){this.m_intCalHapTypeUnspecified=287;
this.m_strRadioAddToEngagementID=D;
this.m_objRadioAddToEngagement=null;
this.m_strRadioStartNewBookingID=A;
this.m_strbtnSaveTop=I;
this.m_strbtnSaveBottom=H;
this.m_ctrlbtnSaveTop=null;
this.m_ctrlbtnSaveBottom=null;
this.m_strCalendarID=K;
this.m_strHapTypeID=C;
this.m_intEngagementID=N;
this.m_strInitialEngName=O;
this.m_intInitialEngagementID=N;
this.m_objRadioStartNewBooking=null;
this.m_ctrlPanelBasic=document.getElementById(G);
this.m_strBatcherID=J;
this.m_strPanelDateSingleID=M;
this.m_objPanelDateSingle=null;
this.m_strPanelDateMultiID=B;
this.m_objPanelDateMulti=null;
this.m_strRadioWhenSingleID=F;
this.m_objRadioWhenSingle=null;
this.m_strRadioWhenMultiID=E;
this.m_strPanelSubTabHiderID=L;
this.m_objRadioWhenMulti=null;
this.m_strPanelEngNameID=P;
this.m_objPanelEngName=null;
this.m_objBatcher=null;
this.m_objDetailEventNote=null;
this.m_objDetailCustomField=null;
this.m_callback=null;
this.m_strEngagementName="";
this.m_blnDataChanged=false;
this.m_aryAvailsDisplayOptionsText=new Array();
this.m_aryAvailsDisplayOptionsValue=new Array();
this.onLoad=function(){this.m_ctrlPanelBasic.style.display="none";
this.m_objBatcher=cAjaxControl.getClientInstance(this.m_strBatcherID);
this.m_objEventName=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,"EventName");
this.m_objCalendarPicker=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,"CalendarPicker");
this.m_objHapTypePicker=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,"HapTypePicker");
this.m_objStatusPicker=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,"StatusPicker");
this.m_objAvailsDisplayPicker=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,"AvailsDisplayPicker");
var R;
var Q;
R=this.m_objAvailsDisplayPicker.m_ctrlSelect;
for(Q=0;
Q<R.options.length;
Q++){this.m_aryAvailsDisplayOptionsText[Q]=R.options[Q].text;
this.m_aryAvailsDisplayOptionsValue[Q]=R.options[Q].value
}this.statusClickEvent();
this.m_objCalendarPicker.setValue(this.m_strCalendarID);
if(this.m_strHapTypeID>0){this.m_objHapTypePicker.setValue(this.m_strHapTypeID)
}else{this.m_objHapTypePicker.setValue(this.m_intCalHapTypeUnspecified)
}if(this.m_intInitialEngagementID>0){this.m_objBatcher.addEngHeaderRow(this.m_strInitialEngName,this.m_intInitialEngagementID)
}return 
};
this.prepAdd=function(){this.m_ctrlPanelBasic.style.display="block";
this.initPrep();
return 
};
this.initPrep=function(){this.m_objPanelDateSingle=document.getElementById(this.m_strPanelDateSingleID);
this.m_objPanelDateMulti=document.getElementById(this.m_strPanelDateMultiID);
this.m_objRadioWhenSingle=document.getElementById(this.m_strRadioWhenSingleID);
this.m_objRadioWhenMulti=document.getElementById(this.m_strRadioWhenMultiID);
this.m_objPanelEngName=document.getElementById(this.m_strPanelEngNameID);
this.m_objRadioAddToEngagement=document.getElementById(this.m_strRadioAddToEngagementID);
this.m_objRadioStartNewBooking=document.getElementById(this.m_strRadioStartNewBookingID);
this.m_ctrlbtnSaveTop=document.getElementById(this.m_strbtnSaveTop);
this.m_ctrlbtnSaveBottom=document.getElementById(this.m_strbtnSaveBottom);
this.m_objDetailEventNote=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,"DetailEventNote");
this.m_objDetailCustomField=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,"DetailCustomField");
this.m_objRadioWhenSingle.checked=true;
this.radioWhenSingleClick();
this.m_callback=EBcWebApp.Event.AjaxCallBack.cEngagementBasicAjaxCallback;
this.refreshEngNamePanel();
this.m_objHider=cAjaxControl.getClientInstance(this.m_strPanelSubTabHiderID);
this.m_objHider.toggle();
return 
};
this.refreshEngNamePanel=function(){if(this.m_intEngagementID==0){this.m_objPanelEngName.style.display="none"
}else{this.m_objPanelEngName.style.display="block"
}};
this.getControlValue=function(Q){var R=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,Q);
return R.getValue()
};
this.setControlValue=function(Q,S){var R=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,Q);
R.setValue(S)
};
this.saveTop=function(){var Q=this.save();
return Q
};
this.saveBottom=function(){var Q=this.save();
if(Q){cCommonUI.success("Your events have been submitted.  Please check the box at the top right of this page for their status.",this.m_ctrlbtnSaveBottom)
}return Q
};
this.save=function(){var h;
var o;
var d;
var R;
var Y;
var S;
var p;
var W;
var q;
var l;
var g;
var s;
var k;
var V;
var j;
var b;
var Q;
var n=[];
var Z=[];
var T=0;
if(this.m_blnDataChanged==false){alert("You have not changed anything.  Please enter information before attempting to save it.");
return false
}if(this.m_objRadioWhenSingle.checked){p=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,"WhenDateTimeRange");
W=p.getStartValue();
q=p.getEndValue();
n[T]=W;
Z[T]=q;
T++
}else{var e=this.getControlValue("WhenMultipleDates");
if(e.length==0){cCommonUI.problem("Please select at least one date!",this.m_ctrlPanelBasic);
return false
}else{var a=cAjaxControl.getClientInstanceByEbId(this.m_ctrlPanelBasic,"WhenMultipleTimeRange");
var X=a.getStartValue();
var i=a.getEndValue();
if(X.length==0){cCommonUI.problem("Please enter a start time!",this.m_ctrlPanelBasic)
}if(i.length==0){cCommonUI.problem("Please enter an end time!",this.m_ctrlPanelBasic)
}var U=new Date(Date.parse("1 jan 2001 "+X));
var r=new Date(Date.parse("1 jan 2001 "+i));
for(var f=0;
f<e.length;
f++){l=new Date(Date.parse(e[f].value));
g=l;
W=new Date(l.getFullYear(),l.getMonth(),l.getDate(),U.getHours(),U.getMinutes(),U.getSeconds());
q=new Date(g.getFullYear(),g.getMonth(),g.getDate(),r.getHours(),r.getMinutes(),r.getSeconds());
n[T]=W;
Z[T]=q;
T++
}}}if(!Page_ClientValidate()){return false
}k=this.m_objCalendarPicker.getValue();
s=this.m_objEventName.getValue();
V=this.m_objHapTypePicker.getValue();
j=this.m_objStatusPicker.getValue();
b=this.m_objAvailsDisplayPicker.getValue();
if(s.length==0){alert("You must enter an event name!");
return false
}if(this.m_objRadioStartNewBooking.checked){this.m_intEngagementID=0
}if(this.m_intEngagementID==0){var c;
c=this.m_callback.addEngagement(cClientContext.getSessionCookie(),s);
try{if(c.value.EngagementID<=0){throw"Bad engagement ID"
}this.m_intEngagementID=c.value.EngagementID;
this.m_strEngagementName=s;
this.m_objBatcher.addEngHeaderRow(s,this.m_intEngagementID)
}catch(m){this.m_intEngagementID=0;
this.m_strEngagementName="";
log.debug("Whoa, no engagement! - "+m)
}}this.refreshEngNamePanel();
for(f=0;
f<T;
f++){h=Sarissa.getDomDocument();
d=h.createElement("chores");
h.appendChild(d);
R=h.createElement("chore");
d.appendChild(R);
R.setAttribute("type","AddEvent");
Y=h.createElement("happening");
R.appendChild(Y);
Y.setAttribute("engagementid",this.m_intEngagementID);
Y.setAttribute("whenstart",cXml.encodeDateTime(n[f]));
Y.setAttribute("whenend",cXml.encodeDateTime(Z[f]));
S=h.createElement("calhap");
Y.appendChild(S);
S.setAttribute("calid",k);
S.setAttribute("name",s);
S.setAttribute("statusid",j);
S.setAttribute("haptypeid",V);
S.setAttribute("availsdisplay",b);
S.appendChild(this.m_objDetailEventNote.getXml());
S.appendChild(this.m_objDetailCustomField.getXml());
Q=Sarissa.serialize(h);
this.m_objBatcher.addChore(s,Q)
}this.m_blnDataChanged=false;
return true
};
this.cancel=function(){this.m_ctrlPanelBasic.style.display="none";
return 
};
this.getCountNotDone=function(){return this.m_objBatcher.getCountNotDone()
};
this.radioWhenSingleClick=function(){this.m_objPanelDateSingle.style.display="block";
this.m_objPanelDateMulti.style.display="none"
};
this.radioWhenMultiClick=function(){this.m_objPanelDateSingle.style.display="none";
this.m_objPanelDateMulti.style.display="block"
};
this.dataChangeEvent=function(){this.m_blnDataChanged=true
};
this.statusClickEvent=function(){var W;
var S;
var V;
var R;
W=this.m_objStatusPicker.m_ctrlSelect;
V=this.m_objAvailsDisplayPicker.m_ctrlSelect;
S=W.options.selectedIndex;
var Q=W.options[S].getAttribute("avails_choices");
var U=Q.split(",");
V.options.length=0;
R=0;
var T;
for(S=0;
S<this.m_aryAvailsDisplayOptionsText.length;
S++){for(T=0;
T<U.length;
T++){if(U[T]==this.m_aryAvailsDisplayOptionsValue[S]){V.options[R]=new Option(this.m_aryAvailsDisplayOptionsText[S],this.m_aryAvailsDisplayOptionsValue[S]);
R++
}}}};
return this
}function cEventLiveGrid(strPanelPickID,strPickerGridID,intCountRows,idlFilterCalendarID,strFilterStart,strFilterEnd,lstHighlightDates,idlHighlightCalHapID,intOffset){this.m_blnFirstTime=true;
this.m_intOffset=intOffset;
this.m_lstHighlightDates=lstHighlightDates;
this.m_idlHighlightCalHapID=idlHighlightCalHapID;
this.m_ctrlPanelPick=document.getElementById(strPanelPickID);
this.m_strPickerGridID=strPickerGridID;
this.m_intCountRows=intCountRows;
this.m_idlFilterCalendarID=idlFilterCalendarID;
this.m_strFilterStart=strFilterStart;
this.m_strFilterEnd=strFilterEnd;
this.m_objLiveGrid=null;
this.m_objScrollerTip=null;
this.onLoad=function(){return 
};
this.prepChooseEvent=function(){var strConfigName;
var optsLG;
var objTip;
this.m_ctrlPanelPick.style.display="block";
var objThis=eval(this.selfName);
optsLG={prefetchBuffer:true,onscroll:updateLiveGridScrollerTip,onRefreshComplete:function(){objThis.scheduleScrollTo()
},requestParameters:["cal="+this.m_idlFilterCalendarID,"start="+this.m_strFilterStart,"end="+this.m_strFilterEnd,"hldate="+this.m_lstHighlightDates,"hlcalhap="+this.m_idlHighlightCalHapID,"obj="+this.selfName]};
if(this.m_objLiveGrid==null){this.m_objLiveGrid=new Rico.LiveGrid(this.m_strPickerGridID,this.m_intCountRows,this.m_intCountRows,"sub_livegrid_events.ashx",optsLG);
this.m_objLiveGrid.options.sortAscendImg="images/dotnet/sort_small_asc.png";
this.m_objLiveGrid.options.sortDescendImg="images/dotnet/sort_small_desc.png";
strConfigName="configure"+this.m_strPickerGridID;
ajaxEngine.registerAjaxObject(strConfigName,new LiveGridRowsConfigurator(this.m_objLiveGrid));
this.m_objScrollerTip=new LiveGridScrollerTip(this.m_objLiveGrid,this.m_ctrlPanelPick)
}return 
};
this.scheduleScrollTo=function(){if(this.m_blnFirstTime){var objThis=eval(this.selfName);
setTimeout(function(){objThis.scrollto()
},100);
this.m_blnFirstTime=false
}};
this.scrollto=function(){this.m_objLiveGrid.scroller.moveScroll(this.m_intOffset)
};
this.setVisibility=function(strVis){log.debug("setVisibility( "+strVis+" )");
switch(strVis){case"visible":if(this.m_objLiveGrid==null){this.prepChooseEvent()
}break;
case"hidden":break
}this.m_objScrollerTip.setVisibility(strVis);
return 
};
return this
}function cGeneralPicker(A,B){this.m_ctrlCheckBoxPanel=document.getElementById(A);
this.m_ctrlPreview=document.getElementById(B);
this.m_arrBoxes=cCheckBoxPickerBase.getBoxes(this.m_ctrlCheckBoxPanel);
this.refreshPreview=function(){cCheckBoxPickerBase.refreshPreview(this.m_arrBoxes,this.m_ctrlCheckBoxPanel,this.m_ctrlPreview);
return 
};
this.getValues=function(){return cCheckBoxPickerBase.getValues(this.m_arrBoxes)
};
this.setValues=function(C){cCheckBoxPickerBase.setValues(this.m_arrBoxes,C);
this.refreshPreview();
return 
};
this.uncheckAll=function(){cCheckBoxPickerBase.uncheckAll(this.m_arrBoxes);
this.refreshPreview();
return 
};
this.checkAll=function(){cCheckBoxPickerBase.checkAll(this.m_arrBoxes);
this.refreshPreview();
return 
};
return this
}function cHider(A,B){this.m_ctrlHider=document.getElementById(A);
this.m_ctrlTarget=document.getElementById(B);
this.m_arrDisplayOriginal=new Array();
this.m_doHide=false;
this.toggle=function(){try{if(this.m_ctrlTarget.style.visibility=="hidden"){this.m_doHide=false;
this.m_ctrlHider.alt="Hide";
this.m_ctrlTarget.style.display=this.m_arrDisplayOriginal[this.m_ctrlTarget.id];
this.m_ctrlTarget.style.visibility="visible";
this.m_ctrlHider.src=this.m_ctrlHider.getAttribute("minus")
}else{this.m_doHide=true;
this.m_ctrlHider.alt="Show";
this.m_arrDisplayOriginal[this.m_ctrlTarget.id]=this.m_ctrlTarget.style.display;
this.m_ctrlTarget.style.display="none";
this.m_ctrlTarget.style.visibility="hidden";
this.m_ctrlHider.src=this.m_ctrlHider.getAttribute("plus")
}}catch(C){log.warn("Problem in toggle() - "+C)
}return false
};
this.toggleChildren=function(F){var C=F.childNodes;
if(C!==null){for(var E=0;
E<C.length;
E++){if(C[E].style!==null){try{if(this.m_doHide){this.m_arrDisplayOriginal[C[E].id]=C[E].style.display;
C[E].style.visibility="hidden";
C[E].style.display="none"
}else{C[E].style.visibility="visible";
C[E].style.display=this.m_arrDisplayOriginal[C[E].id]
}}catch(D){}}this.toggleChildren(C[E])
}}return 
};
return this
}function cLayoutHeader(A){this.m_ctrlLeftPanel=document.getElementById(A);
this.m_ctrlLeftDiv=document.getElementById("SysLeftBar_Div");
this.onLoad=function(){if(this.m_ctrlLeftDiv){this.m_ctrlLeftDiv.appendChild(this.m_ctrlLeftPanel)
}this.m_ctrlLeftPanel.style.display="";
return this
};
this.goPrintableVersion=function(){var B=document.URL;
B=B.toLowerCase();
if(B.indexOf("?")>=0){B+="&"
}else{B+="?"
}B+="reportmode=1";
window.open(B)
};
return this
}var TabMenuLastMenuId;
var SubMenuDefaultTRBackground;
var SubMenuDefaultTRColor;
var MainTabImageSrc;
var boolMainTabInit=false;
function HideTabMenu(B){var A=document.getElementById(B);
if(A!=null){MainTabLowlight("imgID"+A.getAttribute("idx"));
A.style.visibility="hidden"
}TabMenuLastMenuId=B
}function ShowTabMenu(B){var A=document.getElementById(B);
SubMenuInit(B);
if(A!=null){A.style.visibility="visible";
MainTabHighlight("imgID"+A.getAttribute("idx"));
FadeInMenu(B)
}TabMenuLastMenuId=B
}function FadeInMenu(C){var B=document.getElementById(C);
try{B.style.visibility="visible"
}catch(A){B.style.visibility="visible"
}}function FadeOutMenu(B){var A=document.getElementById(B)
}function TabMenuReset(B){var A=document.getElementById(B);
TabMenuLastMenuId="undefined"
}function SubMenuHighlight(A){var B=document.getElementById(A);
B.style.background="#F0F0F0"
}function SubMenuLowlight(A){var B=document.getElementById(A);
B.style.background=SubMenuDefaultTRBackground
}function SubMenuInit(B){var A=document.getElementById(B);
if(A){SubMenuDefaultTRBackground=A.style.background
}}function MainTabHighlight(B){var A=document.getElementById(B);
boolMainTabInit=true;
MainTabImageSrc=A.src;
A.src=A.getAttribute("highlight")
}function MainTabLowlight(B){var A=document.getElementById(B);
if(boolMainTabInit){A.src=MainTabImageSrc
}}function TabInitialization(F){var D=document.getElementById(F);
if(D){var B="imgID"+D.getAttribute("idx");
var E="pnlMenu"+D.getAttribute("idx");
var A=document.getElementById(B);
var C=document.getElementById(E);
if(!boolMainTabInit){if(Browser.isMsIE()){C.style.top="62px"
}MainTabImageSrc=A.src
}}}function cMediaPicker(D,B,P,N,G,L,J,H,C,F,U,O,E,M,Q,R,A,T,K,S,I){this.base=new cAjaxEntryBase(this,null,P,"");
this.m_ctrlPanelBasic=document.getElementById(D);
this.m_ctrlPanelPreview=document.getElementById(B);
this.m_ctrlPanelEdit=document.getElementById(P);
this.m_ctrlPanelUpload=document.getElementById(N);
this.m_ctrlPanelPick=document.getElementById(G);
this.m_ctrlLinkPicked=document.getElementById(L);
this.m_ctrlLabelDescription=document.getElementById(J);
this.m_ctrlLabelCredit=document.getElementById(H);
this.m_ctrlPanelThumbnail=document.getElementById(C);
this.m_ctrlImgThumbnail=document.getElementById(F);
this.m_ctrlFileSize=document.getElementById(U);
this.m_ctrlImageWidth=document.getElementById(O);
this.m_ctrlImageHeight=document.getElementById(E);
this.m_ctrlTextAuthorFileName=document.getElementById(M);
this.m_ctrlTextDescription=document.getElementById(Q);
this.m_ctrlTextCredit=document.getElementById(R);
this.m_strPickerGridID=A;
this.m_ctrlChooseLinkSpan=cDomUtility.getElementByEbId(this.m_ctrlPanelBasic,"Choose");
this.m_ctrlHideLinkSpan=cDomUtility.getElementByEbId(this.m_ctrlPanelBasic,"Choose_hide");
this.m_ctrlPreviewShowSpan=cDomUtility.getElementByEbId(this.m_ctrlPanelBasic,"Preview_show");
this.m_ctrlPreviewHideSpan=cDomUtility.getElementByEbId(this.m_ctrlPanelBasic,"Preview_hide");
this.m_intCountRows=T;
this.m_intMediaID=K;
this.m_ctrlHiddenMedia=document.getElementById(I);
this.m_strSuccessfulUploadMessage=S;
this.m_strFileExt="";
this.m_objLiveGrid=null;
this.m_strSort="alpha";
this.m_strDefaultText="";
this.m_callback=EBcWebApp.Media.AjaxCallBack.cMediaAjaxCallback;
this.onLoad=function(){if(this.m_ctrlLinkPicked!=null){this.m_strDefaultText=this.m_ctrlLinkPicked.innerHTML;
window.setTimeout(this.selfName+".refreshBasicInfo()",500)
}return 
};
this.getValue=function(){return this.m_intMediaID
};
this.setValue=function(V){this.m_intMediaID=V;
this.refreshBasicInfo();
return 
};
this.refreshBasicInfo=function(){var W;
this.initPrep();
try{W=this.m_callback.getMedia(cClientContext.getSessionCookie(),this.m_intMediaID);
if(W.value.MediaID>0){this.m_ctrlLinkPicked.innerHTML=W.value.AuthorFileName;
this.m_ctrlLinkPicked.href=W.value.Url;
this.m_strFileExt=W.value.MediaFileExt;
this.m_ctrlHiddenMedia.value=W.value.MediaID
}else{throw"Eh? objMedia.value.MediaID = "+W.value.MediaID
}}catch(X){this.m_ctrlLinkPicked.innerHTML=this.m_strDefaultText;
this.m_ctrlLinkPicked.href="";
try{if(W.value.MediaID!=0){log.debug("Nuts. "+X)
}}catch(V){}}this.refreshShowHideLinks(false);
return 
};
this.previewMedia=function(){var V;
this.initPrep();
try{this.refreshBasicInfo();
V=this.m_callback.getMedia(cClientContext.getSessionCookie(),this.m_intMediaID);
if(V.value.MediaID>0){this.m_ctrlLabelDescription.innerHTML=V.value.Description;
this.m_ctrlLabelCredit.innerHTML=V.value.PhotoCredit;
if(V.value.UrlThumbnail.length>0){this.m_ctrlPanelThumbnail.style.display="block";
this.m_ctrlImgThumbnail.src=V.value.UrlThumbnail
}else{this.m_ctrlPanelThumbnail.style.display="none";
this.m_ctrlImgThumbnail.src=""
}this.m_ctrlFileSize.innerHTML=V.value.MediaFileSize;
if(V.value.ImageWidth>0&&V.value.ImageHeight>0){this.m_ctrlImageWidth.innerHTML=V.value.ImageWidth;
this.m_ctrlImageHeight.innerHTML=V.value.ImageHeight
}else{this.m_ctrlImageWidth.innerHTML="n/a";
this.m_ctrlImageHeight.innerHTML="n/a"
}this.showThisPanel(this.m_ctrlPanelPreview);
this.refreshShowHideLinks(true);
log.debug("previewMedia / updated and showed panel")
}else{throw"Eh? objMedia.value.MediaID = "+V.value.MediaID
}}catch(W){log.debug("previewMedia failed - "+W)
}return 
};
this.refreshShowHideLinks=function(V){if(this.m_intMediaID==0){this.m_ctrlPreviewShowSpan.style.display="none";
this.m_ctrlPreviewHideSpan.style.display="none"
}else{if(V){this.m_ctrlPreviewShowSpan.style.display="none";
this.m_ctrlPreviewHideSpan.style.display="inline"
}else{this.m_ctrlPreviewShowSpan.style.display="inline";
this.m_ctrlPreviewHideSpan.style.display="none"
}}};
this.prepUpload=function(X){var V;
this.initPrep();
try{log.debug("this.m_ctrlPanelUpload = "+this.m_ctrlPanelUpload);
V=this.m_ctrlPanelUpload.getElementsByTagName("iframe");
log.debug("nodesIFrame[0].src = "+V[0].src);
V[0].src=X;
this.showThisPanel(this.m_ctrlPanelUpload)
}catch(W){log.warn("prepUpload failed! "+W);
this.cancel()
}return 
};
this.prepReplace=function(V){if(this.m_intMediaID>0){V=V+"&replace_id="+this.m_intMediaID;
this.prepUpload(V)
}return 
};
this.uploadDone=function(Z){log.debug("What's that? Upload is done? Speak up! / "+Z);
var X='mediaid="';
try{var V=Z.indexOf(X);
var Y=Z.substring(V+X.length);
this.m_intMediaID=parseInt(Y);
this.previewMedia();
log.debug("uploadDone / MediaID = "+this.m_intMediaID);
cCommonUI.success(this.m_strSuccessfulUploadMessage,this.m_ctrlPanelPreview)
}catch(W){log.warn("uploadDone failed - "+W);
cCommonUI.problem("upload failed - "+W,this.m_ctrlPanelPreview)
}return 
};
this.prepEditMedia=function(){var V;
this.initPrep();
try{V=this.m_callback.getMedia(cClientContext.getSessionCookie(),this.m_intMediaID);
log.debug("objMedia.Description = "+V.value.Description);
if(V.value.MediaID>0){this.m_ctrlTextAuthorFileName.value=V.value.AuthorFileName;
this.m_ctrlTextDescription.value=V.value.Description;
this.m_ctrlTextCredit.value=V.value.PhotoCredit;
this.showThisPanel(this.m_ctrlPanelEdit);
log.debug("prepEditMedia / showed edit panel / this.m_ctrlPanelEdit = "+this.m_ctrlPanelEdit)
}else{log.debug("prepEditMedia / grrr; MediaID = "+V.value.MediaID)
}}catch(W){log.debug("prepEditMedia failed - "+W)
}return 
};
this.saveMedia=function(){var W;
try{W=this.m_callback.updateMedia(cClientContext.getSessionCookie(),this.m_intMediaID,this.m_ctrlTextAuthorFileName.value,this.m_ctrlTextDescription.value,this.m_ctrlTextCredit.value);
this.base.finishEntry(W);
this.previewMedia()
}catch(V){log.debug("saveMedia issue / "+V)
}return 
};
this.prepChooseMedia=function(){var W;
var V;
var X;
this.initPrep();
this.m_ctrlPanelPick.style.display="block";
log.debug("this.m_ctrlChooseLinkSpan = "+this.m_ctrlChooseLinkSpan);
log.debug("this.m_ctrlHideLinkSpan = "+this.m_ctrlHideLinkSpan);
this.m_ctrlChooseLinkSpan.style.display="none";
this.m_ctrlHideLinkSpan.style.display="inline";
V={prefetchBuffer:true,onscroll:updateLiveGridScrollerTip,requestParameters:["medialist=all","obj="+this.selfName,"sort="+this.m_strSort]};
if(this.m_objLiveGrid==null){log.debug("this.m_intCountRows = "+this.m_intCountRows);
this.m_objLiveGrid=new Rico.LiveGrid(this.m_strPickerGridID,this.m_intCountRows,this.m_intCountRows,"sub_livegrid_media.ashx",V);
this.m_objLiveGrid.options.sortAscendImg="images/dotnet/sort_small_asc.png";
this.m_objLiveGrid.options.sortDescendImg="images/dotnet/sort_small_desc.png";
W="configure"+this.m_strPickerGridID;
ajaxEngine.registerAjaxObject(W,new LiveGridRowsConfigurator(this.m_objLiveGrid));
X=new LiveGridScrollerTip(this.m_objLiveGrid,this.m_ctrlPanelPick)
}this.showThisPanel(this.m_ctrlPanelPick);
return 
};
this.chooseMedia=function(V){this.m_intMediaID=V;
this.cancel();
this.previewMedia();
return 
};
this.cancel=function(){this.initPrep();
return 
};
this.initPrep=function(){this.m_ctrlPanelPreview.style.display="none";
this.m_ctrlPanelEdit.style.display="none";
this.m_ctrlPanelPick.style.display="none";
this.m_ctrlPanelUpload.style.display="none";
this.m_ctrlTextDescription.value="";
this.m_ctrlTextCredit.value="";
this.m_ctrlChooseLinkSpan.style.display="inline";
this.m_ctrlHideLinkSpan.style.display="none";
this.refreshShowHideLinks(false);
return 
};
this.showThisPanel=function(V){V.style.display="block";
return 
};
this.displayLink=function(Z,Y){var X;
var W;
var a;
if(Y){a="visible"
}else{a="hidden"
}if(this.m_ctrlPanelBasic){X=this.m_ctrlPanelBasic.getElementsByTagName("span");
for(var V=0;
V<X.length;
V++){W=X[V];
if(W.getAttribute("ebid")==Z){W.style.visibility=a
}}}return 
};
return this
}function MediaPickerLink(){return 
}MediaPickerLink.Upload="Upload";
MediaPickerLink.Replace="Replace";
MediaPickerLink.Edit="Edit";
MediaPickerLink.Choose="Choose";
MediaPickerLink.Preview="Preview"
function cMoverPicker(A,B,C){this.m_ctrlLeftBox=document.getElementById(A);
this.m_ctrlRightBox=document.getElementById(B);
this.m_ctrlHiddenField=document.getElementById(C);
this.MoveRight=function(){var E;
for(var D=this.m_ctrlLeftBox.options.length-1;
D>=0;
D--){E=this.m_ctrlLeftBox.options[D];
if(E.selected){this.m_ctrlRightBox.options[this.m_ctrlRightBox.options.length]=new Option(E.text,E.value);
this.m_ctrlLeftBox.options[D]=null
}}this.Reload();
return 
};
this.MoveLeft=function(){var E;
for(var D=this.m_ctrlRightBox.options.length-1;
D>=0;
D--){E=this.m_ctrlRightBox.options[D];
if(E.selected){this.m_ctrlLeftBox.options[this.m_ctrlLeftBox.options.length]=new Option(E.text,E.value);
this.m_ctrlRightBox.options[D]=null
}}this.Reload();
return 
};
this.MoveUp=function(){for(var F=0;
F<this.m_ctrlRightBox.options.length;
F++){var E=this.m_ctrlRightBox.options[F];
if(E.selected&&F>0){var G=this.m_ctrlRightBox.options[F];
var H=this.m_ctrlRightBox.options[F-1];
var D=H.value;
var I=H.text;
H.value=G.value;
H.text=G.text;
H.selected=true;
G.value=D;
G.text=I;
G.selected=false
}}this.Reload();
return 
};
this.MoveDown=function(){for(var F=(this.m_ctrlRightBox.options.length-1);
F>=0;
F--){var E=this.m_ctrlRightBox.options[F];
if(E.selected&&F+1<this.m_ctrlRightBox.options.length){var G=this.m_ctrlRightBox.options[F];
var H=this.m_ctrlRightBox.options[F+1];
var D=H.value;
var I=H.text;
H.value=G.value;
H.text=G.text;
H.selected=true;
G.value=D;
G.text=I;
G.selected=false
}}this.Reload();
return 
};
this.Reload=function(){try{this.m_ctrlHiddenField.value="";
for(var E=0;
E<this.m_ctrlRightBox.options.length;
E++){this.m_ctrlHiddenField.value+=this.m_ctrlRightBox.options[E].value;
if(E<this.m_ctrlRightBox.options.length){this.m_ctrlHiddenField.value+=","
}}}catch(D){log.warn("Could not reload - "+D)
}return 
};
this.Reload();
return false
}function cPopupSubContent(A){this.m_ctrlFrame=document.getElementById(A);
this.m_urlPrevious="";
this.show=function(C,B){var D;
var E;
if(this.m_urlPrevious==C){return 
}this.m_urlPrevious=C;
D=cAjaxDownload.getContent(C,C,null);
E=Sarissa.serialize(D);
this.m_ctrlFrame.innerHTML=E;
this.m_ctrlFrame.style.left=(cDomUtility.findPosX(B)+10)+"px";
this.m_ctrlFrame.style.top=(cDomUtility.findPosY(B)+10)+"px";
this.m_ctrlFrame.style.display="block";
return 
};
this.hide=function(){this.m_ctrlFrame.style.display="none"
};
return this
}function cSearchBar(E,D,G,A,B,C,F){this.m_strSearchBoxID=E;
this.m_strMiddleCellID=D;
this.m_strRightImageID=G;
this.m_strMiddleBGUrl_High=A;
this.m_strMiddleBGUrl_Low=C;
this.m_strRightIMGUrl_High=B;
this.m_strRightIMGUrl_Low=F;
this.onLoad=function(){var H=document.getElementById(this.m_strMiddleCellID);
var I=document.getElementById(this.m_strRightImageID);
var M=this.m_strMiddleBGUrl_High;
var J=this.m_strRightIMGUrl_High;
var K=this.m_strMiddleBGUrl_Low;
var L=this.m_strRightIMGUrl_Low;
this.lowlite()
};
this.highlite=function(){var H=document.getElementById(this.m_strMiddleCellID);
var I=document.getElementById(this.m_strRightImageID);
var K=this.m_strMiddleBGUrl_High;
var J=this.m_strRightIMGUrl_High;
H.style.backgroundImage="url("+K+")";
I.src=J;
return 
};
this.lowlite=function(){var H=document.getElementById(this.m_strMiddleCellID);
var I=document.getElementById(this.m_strRightImageID);
var J=this.m_strMiddleBGUrl_Low;
var K=this.m_strRightIMGUrl_Low;
H.style.backgroundImage="url("+J+")";
I.src=K;
return 
};
this.performSearch=function(M,J,N,O,I,H,K,P,L){if(J){return 
}};
return this
}function cSelectAllNone(ctrlSelectAllNone,strTargetID,strFilterAbbrev){this.m_ctrlSelectAllNone=ctrlSelectAllNone;
this.m_strTargetID=strTargetID;
this.m_ctrlTarget=null;
this.m_strFilterAbbrev=strFilterAbbrev.toLowerCase();
this.toggle=function(){this.setup();
try{var nodes=this.m_ctrlTarget.childNodes;
var blnChecked=!this.recurseNodes(nodes,"inspect",false,0);
this.recurseNodes(nodes,"modify",blnChecked,0);
var strUpdatePreview=this.m_ctrlTarget.getAttribute("updatepreview");
if(strUpdatePreview!=null){eval(strUpdatePreview)
}}catch(ex){log.warn("cSelectAllNone.toggle / Problem updating the preview: "+ex)
}return false
};
this.recurseNodes=function(nodes,strMode,blnChecked,level){var rc;
var children;
var ii;
if(level>8){return true
}for(ii=0;
ii<nodes.length;
ii++){if(this.doesNodeMatch(nodes[ii])){if(strMode=="inspect"){if(!nodes[ii].checked){return false
}}else{nodes[ii].checked=blnChecked
}}children=nodes[ii].childNodes;
if(children!=null){if(children.length>0){rc=this.recurseNodes(children,strMode,blnChecked,level+1);
if(strMode=="inspect"&&rc==false){return false
}}}}return true
};
this.doesNodeMatch=function(node){if(node.type=="checkbox"){if(this.m_strFilterAbbrev.length>0){try{var objSpan=node.parentNode;
var strAbbrev=objSpan.getAttribute("pickerabbrev").toLowerCase();
if(strAbbrev.length>0){strAbbrev=strAbbrev.substr(0,this.m_strFilterAbbrev.length);
if(this.m_strFilterAbbrev!=strAbbrev){return false
}}}catch(ex){log.debug("Could not filter - "+ex)
}}return true
}else{return false
}};
this.setup=function(){this.m_ctrlTarget=document.getElementById(this.m_strTargetID);
return 
};
return this
}function cTimePicker(A){this.m_ctrlTarget=document.getElementById(A);
this.setValue=function(B){this.m_ctrlTarget.value=B;
return false
};
this.getValue=function(){return this.m_ctrlTarget.value
};
this.validate=function(){var E;
var B=this.m_ctrlTarget.value;
var C=new cTimeValue(B);
if(C.isValid){this.m_ctrlTarget.value=C.strTime;
E=true
}else{var D="<div>Invalid time entry: <b>"+B+"</b> is not in a valid time format.</div><div>Please enter a valid time in this format: <b>hh:mm xx</b>, where</div><ul><li>h is the hour</li><li>mm is the minute</li><li>and xx is am or pm (optional if military time or am)</li></ul><div>An entire day would be specified as beginning at 12:00 AM and ending at 11:59 PM.</div>";
cCommonUI.problem(D,this.m_ctrlTarget);
this.m_ctrlTarget.value="";
this.m_ctrlTarget.focus();
this.m_ctrlTarget.select();
E=false
}return E
};
return this
}function timePickerValidate(D,C){var E=document.getElementById(D.id);
var B=E.getAttribute("timecontrol");
var A=cAjaxControl.getClientInstance(B);
if(A==null){return true
}return A.validate()
}function cTimeRangePicker(B,A){this.m_ctrlTPStart=B;
this.m_ctrlTPEnd=A;
this.onLoad=function(){this.m_ctrlTPStart=cAjaxControl.getClientInstance(this.m_ctrlTPStart);
this.m_ctrlTPEnd=cAjaxControl.getClientInstance(this.m_ctrlTPEnd);
return 
};
this.getStartValue=function(){return this.m_ctrlTPStart.getValue()
};
this.getEndValue=function(){return this.m_ctrlTPEnd.getValue()
};
this.setStartValue=function(C){this.m_ctrlTPStart.setValue(C);
return 
};
this.setEndValue=function(C){this.m_ctrlTPEnd.setValue(C);
return 
};
return this
}function cToolMenu(strToolBarID,strChildCellID,strNestedCellID){this.m_ctrlToolBarDiv=document.getElementById(strToolBarID);
this.m_ctrlChildCell=document.getElementById(strChildCellID);
this.m_ctrlNestedCell=document.getElementById(strNestedCellID);
this.m_timerOpen=-1;
this.m_timerClose=-1;
this.m_blnFullyVisible=false;
this.TIMEOUT_BEFORESHOW=500;
this.TIMEOUT_BEFOREHIDE=1000;
this.DURATION_FADEIN=200;
this.DURATION_FADEOUT=100;
this.onInit=function(){return 
};
this.onClick=function(ev){return 
};
this.onMouseOver=function(ev){if(this.m_timerOpen>-1){return 
}this.clearTimers();
var objThis=eval(this.selfName);
var fnFade=function(){objThis.fadeIn()
};
this.m_timerOpen=window.setTimeout(fnFade,this.TIMEOUT_BEFORESHOW);
log.debug("onMouseOver starting timer");
return 
};
this.onMouseOut=function(ev){if(this.reallyInside(ev)){log.debug("onMouseOut - really inside");
return 
}if(this.m_timerClose>-1){return 
}this.clearTimers();
if(!this.m_blnFullyVisible){return 
}var objThis=eval(this.selfName);
var fnFade=function(){objThis.fadeOut()
};
this.m_timerClose=window.setTimeout(fnFade,this.TIMEOUT_BEFOREHIDE);
log.debug("onMouseOut starting timer");
return 
};
this.fadeIn=function(){this.clearTimers();
if(this.m_blnFullyVisible){return 
}cToolMenu.hideAll();
this.show(0);
new Rico.Effect.FadeTo(this.m_ctrlChildCell.id,1,this.DURATION_FADEIN,4);
return 
};
this.fadeOut=function(){this.clearTimers();
if(!this.m_blnFullyVisible){return 
}this.setFullyVisible(false);
var objThis=eval(this.selfName);
var fnHide=function(){objThis.hide()
};
var fx=new Rico.Effect.FadeTo(this.m_ctrlChildCell.id,0,this.DURATION_FADEOUT,15,{complete:fnHide});
return 
};
this.hide=function(initialOpacity){this.setFullyVisible(false);
if(initialOpacity!=null){this.m_ctrlChildCell.style.opacity=initialOpacity
}this.hideOrShow("hidden");
return 
};
this.show=function(initialOpacity){this.setFullyVisible(true);
if(initialOpacity!=null){this.m_ctrlChildCell.style.opacity=initialOpacity
}this.hideOrShow("visible");
return 
};
this.hideOrShow=function(strVis){var ctrlChild;
var objInstance;
this.clearTimers();
this.m_ctrlChildCell.style.visibility=strVis;
for(var idx=0;
idx<this.m_ctrlNestedCell.childNodes.length;
idx++){try{ctrlChild=this.m_ctrlNestedCell.childNodes[idx];
log.debug("Trying to get instance for "+ctrlChild.id);
objInstance=cAjaxControl.getClientInstanceFromControl(ctrlChild);
if(objInstance!=null){log.debug("Got instance, calling setVisibility");
objInstance.setVisibility(strVis)
}}catch(ex){log.debug("Hmmm, no setVisibility for that one - "+ex)
}}return 
};
this.hideClickEvent=function(ev){if(this.reallyInside(ev)){return 
}if(this.isActive()){this.fadeOut()
}return 
};
this.reallyInside=function(ev){var really=false;
if(ev&&this.m_blnFullyVisible){really=cDomUtility.areXyWithinObject(ev.clientX,ev.clientY,this.m_ctrlChildCell)
}return really
};
this.isActive=function(){if(this.m_timerClose>-1){return false
}if(this.m_blnFullyVisible){return true
}return false
};
this.clearTimers=function(){if(this.m_timerOpen>-1){window.clearTimeout(this.m_timerOpen);
this.m_timerOpen=-1
}if(this.m_timerClose>-1){window.clearTimeout(this.m_timerClose);
this.m_timerClose=-1
}return 
};
this.setFullyVisible=function(value){if(this.m_blnFullyVisible!=value){if(value){log.debug("Turning fully visible")
}else{log.debug("No longer fully visible")
}}this.m_blnFullyVisible=value;
return 
};
cToolMenu.registerMenu(this);
return this
}cToolMenu.hideAll=function(D){var B=cToolMenu.getArray();
var C;
for(var A=0;
A<B.length;
A++){C=B[A];
C.hideClickEvent(D)
}return 
};
cToolMenu.registerMenu=function(B){var A=cToolMenu.getArray();
A.push(B);
return 
};
cToolMenu.getArray=function(){var A;
A=cToolMenu.m_arrMenus;
if(A==null){A=new Array();
cToolMenu.m_arrMenus=A
}return A
}
function cCalendarCustomizeOrder(B,A){this.m_callback=null;
this.m_strOutputDivID=B;
this.m_strReturnTo=A;
this.m_ctrlOutputDiv=null;
this.m_objData=null;
this.initialize=function(){this.m_callback=EBcWebApp.Calendar.AjaxCallBack.cCalendarOrderAjaxCallback;
this.m_ctrlOutputDiv=document.getElementById(this.m_strOutputDivID);
this.refreshDisplay()
};
this.refreshDisplay=function(){try{this.m_objData=this.m_callback.getCalendarOrder(cClientContext.getSessionCookie());
if(this.m_objData.value.Success){this.redrawTable()
}else{alert("getCalendarOrder callback failed!")
}}catch(C){log.debug("this.refreshDisplay - Whoa! / "+C)
}};
this.redrawTable=function(){var O="";
var H;
var P;
var M;
var J;
var F;
var D;
var Q;
var L;
var G;
var I;
var K;
var E;
F=document.createElement("table");
F.className="CalCustOrder";
D=document.createElement("tbody");
Q=document.createElement("tr");
L=document.createElement("th");
L.appendChild(document.createTextNode(" "));
Q.appendChild(L);
L=document.createElement("th");
L.appendChild(document.createTextNode(" "));
Q.appendChild(L);
L=document.createElement("th");
L.appendChild(document.createTextNode("Calendar Alias Name"));
Q.appendChild(L);
L=document.createElement("th");
L.appendChild(document.createTextNode("Color"));
Q.appendChild(L);
L=document.createElement("th");
L.colSpan=3;
L.appendChild(document.createTextNode("Calendar Name"));
Q.appendChild(L);
D.appendChild(Q);
E=0;
for(P=0;
P<this.m_objData.value.aryCCI.length;
P++){H=this.m_objData.value.aryCCI[P];
M=this.nextSiblingIndex(P)>=0;
J=this.prevSiblingIndex(P)>=0;
Q=document.createElement("tr");
L=document.createElement("td");
if(M){G=document.createElement("img");
G.src="images/LocalNav/Move_Down.gif";
I=document.createElement("a");
I.href="javascript:"+this.selfName+".moveDown("+P+");";
I.appendChild(G);
L.appendChild(I)
}Q.appendChild(L);
L=document.createElement("td");
if(J){G=document.createElement("img");
G.src="images/LocalNav/Move_Up.gif";
I=document.createElement("a");
I.href="javascript:"+this.selfName+".moveUp("+P+");";
I.appendChild(G);
L.appendChild(I)
}Q.appendChild(L);
var C=document.createElement("input");
C.type="text";
C.size="40";
C.maxLength="255";
C.name="OverrideCalName_"+P;
C.id="OverrideCalName_"+P;
C.value=H.OverrideCalName;
L=document.createElement("td");
L.appendChild(C);
Q.appendChild(L);
var N=document.createElement("input");
N.type="text";
N.size="10";
N.maxLength="12";
N.name="OverrideCalColor_"+P;
N.id="OverrideCalColor_"+P;
N.value=H.OverrideCalColor;
L=document.createElement("td");
L.appendChild(N);
Q.appendChild(L);
K=H.CalendarName;
if(H.IsCalendarGroup){K+="*";
E++
}switch(H.HierarchyLevel){case 0:L=document.createElement("td");
L.style.fontWeight="bold";
L.colSpan=3;
L.appendChild(document.createTextNode(K));
Q.appendChild(L);
break;
case 1:L=document.createElement("td");
L.className="CalCustOrdeclassNamerBlankCell";
L.appendChild(document.createTextNode(" "));
Q.appendChild(L);
L=document.createElement("td");
L.colSpan=2;
L.appendChild(document.createTextNode(K));
Q.appendChild(L);
break;
case 2:L=document.createElement("td");
L.className="CalCustOrderBlankCell";
L.appendChild(document.createTextNode(" "));
Q.appendChild(L);
L=document.createElement("td");
L.className="CalCustOrderBlankCell";
L.appendChild(document.createTextNode(" "));
Q.appendChild(L);
L=document.createElement("td");
L.appendChild(document.createTextNode(K));
Q.appendChild(L);
break
}D.appendChild(Q)
}if(E>0){Q=document.createElement("tr");
L=document.createElement("td");
L.colSpan=6;
L.appendChild(document.createTextNode("* Calendar group"));
Q.appendChild(L);
D.appendChild(Q)
}F.appendChild(D);
this.m_ctrlOutputDiv.innerHTML="";
this.m_ctrlOutputDiv.appendChild(F)
};
this.storeOverrideCalNamesInDataStructure=function(){var D;
var C;
for(D=0;
D<this.m_objData.value.aryCCI.length;
D++){C=document.getElementById("OverrideCalName_"+D);
this.m_objData.value.aryCCI[D].OverrideCalName=C.value;
C=document.getElementById("OverrideCalColor_"+D);
this.m_objData.value.aryCCI[D].OverrideCalColor=C.value
}};
this.moveDown=function(C){this.swap(C,this.nextSiblingIndex(C))
};
this.moveUp=function(C){this.swap(C,this.prevSiblingIndex(C))
};
this.swap=function(J,I){var N;
var L;
var K;
var E;
var C;
var F;
var H;
var G;
var D;
var M;
this.storeOverrideCalNamesInDataStructure();
if(J>I){N=J;
J=I;
I=N
}L=this.finalLeafIndex(J);
K=this.finalLeafIndex(I);
E=(L-J)+1;
C=(K-I)+1;
for(F=I;
F<=K;
F++){for(H=0;
H<E;
H++){M=F-H;
D=M-1;
G=this.m_objData.value.aryCCI[D];
this.m_objData.value.aryCCI[D]=this.m_objData.value.aryCCI[M];
this.m_objData.value.aryCCI[M]=G
}}this.redrawTable()
};
this.finalLeafIndex=function(C){var G;
var F;
var D;
var E;
G=this.m_objData.value.aryCCI[C];
E=C;
for(D=C+1;
D<this.m_objData.value.aryCCI.length;
D++){F=this.m_objData.value.aryCCI[D];
if(F.HierarchyLevel>G.HierarchyLevel){E=D
}else{break
}}return E
};
this.nextSiblingIndex=function(C){var F;
var E;
var D;
F=this.m_objData.value.aryCCI[C];
for(D=C+1;
D<this.m_objData.value.aryCCI.length;
D++){E=this.m_objData.value.aryCCI[D];
if(F.ParentCalendarID==E.ParentCalendarID){return D
}}return -1
};
this.prevSiblingIndex=function(C){var F;
var E;
var D;
F=this.m_objData.value.aryCCI[C];
for(D=C-1;
D>=0;
D--){E=this.m_objData.value.aryCCI[D];
if(F.ParentCalendarID==E.ParentCalendarID){return D
}}return -1
};
this.saveData=function(){var C;
this.storeOverrideCalNamesInDataStructure();
C=this.m_callback.saveCalendarOrder(cClientContext.getSessionCookie(),this.m_objData.value);
if(C.value.Success){cCommonUI.success(C.value.Message);
window.location.href=this.m_strReturnTo
}else{cCommonUI.problem(C.value.Message)
}};
this.cancelWithoutSaving=function(){if(confirm("Your changes will NOT be saved.  Are you sure you want to exit this page?")){window.location.href=this.m_strReturnTo
}};
return this
}function cAddEventsPage(){this.startAdding=function(){var objPage=eval(this.selfName);
window.onbeforeunload=function(){return objPage.onLeavePage()
};
this.m_objAdder=cAjaxControl.getClientInstanceByEbId(document,"adder");
this.m_objAdder.prepAdd();
return 
};
this.onLeavePage=function(){var countNotDone=this.m_objAdder.getCountNotDone();
if(countNotDone==1){return"You still have an event in the process of being added."
}if(countNotDone>1){return"You still have "+countNotDone+" events in the process of being added."
}};
return this
}function cEventDetailsPage(A){this.m_ctrlDetailTabStrip=document.getElementById(A);
this.m_objDetailTabStrip=null;
this.onLoad=function(){this.m_objDetailTabStrip=cAjaxControl.getClientInstanceFromControl(this.m_ctrlDetailTabStrip);
return 
};
this.switchToTab=function(C,B){if(this.m_objDetailTabStrip){this.m_objDetailTabStrip.switchToTab("Tab"+C,B)
}else{log.debug("m_objDetailTabStrip is null.")
}};
this.refreshSection=function(C){var B;
B=cAjaxControl.getClientInstanceByEbId(document,C);
if(B){if(typeof B.refreshSelf=="function"){B.refreshSelf()
}else{log.debug("objSection does not have refreshSelf function")
}}else{if(this.m_objDetailTabStrip){this.m_objDetailTabStrip.refreshTab("Tab"+C)
}else{log.debug("m_objDetailTabStrip is null.")
}}return 
};
return this
}function cEventRenderPage(A,B){this.m_callback=null;
this.m_ctrlOutput=null;
this.m_ctrlSpeccer=cDomUtility.getElementByEbId(document,"speccer");
this.m_ctrlRefreshButn=document.getElementById(B);
this.m_objSpeccer=null;
this.onLoad=function(){var C;
this.m_callback=EBcWebApp.Event.AjaxCallBack.cEventRenderAjaxCallback;
this.m_ctrlOutput=document.getElementById("OutputDiv");
this.m_objSpeccer=cAjaxControl.getClientInstanceFromControl(this.m_ctrlSpeccer);
C=document.getElementById("speccer_target");
C.appendChild(this.m_ctrlSpeccer);
C.appendChild(this.m_ctrlRefreshButn);
window.onresize=AddEventsRefreshCalendar;
return 
};
this.refreshCalendar=function(){var D;
var C;
C=this.m_objSpeccer.getCalSpec();
C.Width=cDomUtility.getContentWidth();
D=this.m_callback.renderHtml(cClientContext.getSessionCookie(),C);
this.m_ctrlOutput.innerHTML=D.value;
return 
};
return this
}function cCFList(){this.m_ctrlCurrentTableID;
this.m_ctrlMenuTable;
this.m_ctrlCurrentMenuItem;
this.m_ctrlLiteralMediaSelect;
this.m_ctrlRowSkeleton;
this.m_cssButton="";
this.timeoutID=-1;
this.IsEditMode=false;
this.m_ctrlSave1;
this.m_ctrlSave2;
this.editCounter=0;
this.m_ctrlPackage;
this.m_objDomDoc;
this.m_objXmlRoot;
this.m_objXmlRemovals;
this.onLoad=function(E,D,C,B,F){this.m_ctrlLiteralMediaSelect=D;
this.m_ctrlRowSkeleton=E;
this.m_ctrlSave1=document.getElementById(C);
this.m_ctrlSave2=document.getElementById(B);
this.m_ctrlPackage=document.getElementById(F);
this.m_docAction=document.forms[0].action;
document.forms[0].action="javascript:var disabled = true";
this.m_objDomDoc=Sarissa.getDomDocument();
this.m_objXmlRoot=this.m_objDomDoc.createElement("root");
this.m_objDomDoc.appendChild(this.m_objXmlRoot);
this.m_objXmlRemovals=this.m_objDomDoc.createElement("removals");
return this
};
this.setMenuTable=function(D,C,B){this.m_ctrlMenuTable=document.getElementById(D);
this.setCurrentTable(C,B);
return this
};
this.setCurrentTable=function(C,B){this.setCurrentTableByRow(document.getElementById(C),B);
return this
};
this.setCurrentTableByRow=function(H,B){this.ctrlTable=document.getElementById(B);
this.m_ctrlCurrentMenuItem=H.cells[0];
if(this.m_ctrlCurrentTableID!=undefined){var G=document.getElementById(this.m_ctrlCurrentTableID);
if(G!=undefined){G.style.display="none"
}}this.ctrlTable.style.display="";
this.m_ctrlCurrentTableID=B;
var C=document.getElementById("lblCategory");
C.innerHTML=this.m_ctrlCurrentMenuItem.innerHTML;
C.setAttribute("catid",this.m_ctrlCurrentMenuItem.getAttribute("catid"));
C.setAttribute("isdefault",this.m_ctrlCurrentMenuItem.getAttribute("isdefault"));
var E=C.parentNode.getElementsByTagName("span");
for(var D=0;
D<E.length;
D++){var F=E[D];
if(F.innerHTML=="Delete entire category"){if(H.cells[0].getAttribute("isdefault").toLowerCase()=="true"){F.style.display="none"
}else{F.style.display=""
}}}if(this.ctrlTable.rows.length>0){this.refreshTables(this.m_ctrlCurrentTableID)
}return this
};
this.refreshTables=function(B){if(!this.IsEditMode){this.ctrlTable=document.getElementById(B);
for(var D=0;
D<this.ctrlTable.rows.length;
D++){this.ctrlTable.rows[D].cells[0].childNodes[0].style.display="block";
this.ctrlTable.rows[D].cells[1].childNodes[0].style.display="block";
this.ctrlTable.rows[D].cells[7].childNodes[0].value=this.ctrlTable.rows[D].rowIndex+1;
var E=this.ctrlTable.rows[D].cells[2].childNodes[0];
if(E.rows.length>1){ctrlFieldTable=E.rows[1].cells[0].childNodes[0];
for(var C=0;
C<ctrlFieldTable.rows.length;
C++){ctrlFieldTable.rows[C].cells[0].childNodes[0].style.display="block";
ctrlFieldTable.rows[C].cells[1].childNodes[0].style.display="block";
ctrlFieldTable.rows[C].cells[5].childNodes[0].value=ctrlFieldTable.rows[C].rowIndex+1
}if(ctrlFieldTable.rows.length>0){ctrlFieldTable.rows[0].cells[1].childNodes[0].style.display="none";
ctrlFieldTable.rows[ctrlFieldTable.rows.length-1].cells[0].childNodes[0].style.display="none"
}}}if(this.ctrlTable.rows.length>0){this.ctrlTable.rows[0].cells[1].childNodes[0].style.display="none";
this.ctrlTable.rows[this.ctrlTable.rows.length-1].cells[0].childNodes[0].style.display="none"
}}return this
};
this.moveUp=function(B){var D=B.parentNode.parentNode;
var C=D.parentNode.tagName=="TABLE"?D.parentNode:D.parentNode.parentNode;
if(C.tagName=="TABLE"){this.exchangeRows(D.rowIndex,D.rowIndex-1,C)
}this.refreshTables(this.m_ctrlCurrentTableID);
return true
};
this.moveDown=function(B){var D=B.parentNode.parentNode;
var C=D.parentNode.tagName=="TABLE"?D.parentNode:D.parentNode.parentNode;
if(C.tagName=="TABLE"){this.exchangeRows(D.rowIndex,D.rowIndex+1,C)
}this.refreshTables(this.m_ctrlCurrentTableID);
return true
};
this.exchangeRows=function(F,E,H){var C=H.rows;
if(F==E+1){H.tBodies[0].insertBefore(C[F],C[E])
}else{if(E==F+1){H.tBodies[0].insertBefore(C[E],C[F])
}else{var G=H.tBodies[0].replaceChild(C[F],C[E]);
if(typeof (C[F])!="undefined"){H.tBodies[0].insertBefore(G,C[F])
}else{H.appendChild(G)
}}}var D=0;
for(var B=0;
B<C[F].cells.length;
B++){if(C[F].cells[B].childNodes[0]!=undefined){if(C[F].cells[B].childNodes[0].name=="GroupRank"){D=B
}}}C[F].cells[D].childNodes[0].value=C[F].rowIndex+1;
C[E].cells[D].childNodes[0].value=C[E].rowIndex+1;
return this
};
this.editGroup=function(P){this.editMode(true);
var D=P.parentNode;
this.m_cssGroup=D.className;
this.m_cssButton=D.childNodes[0].className;
var R=D.parentNode;
var N=D.nextSibling;
var Q=D.previousSibling;
P.innerHTML="done";
if(navigator.appName=="Netscape"){P.setAttribute("onclick","javascript:"+this.selfName+".saveGroup(this);")
}else{var H=this;
P.onclick=function(){H.saveGroup(this)
}
}if(navigator.appName=="Netscape"){N.innerHTML="";
N.className="";
N.onclick=""
}else{N.style.display="none"
}var B=R.cells[2].childNodes[0];
if(B.tagName=="TABLE"){var E=B.rows[0].cells[0];
var M=this.unescapeJS(E.innerHTML);
E.innerHTML="<input/>";
E.childNodes[0].name="editInput";
E.childNodes[0].size=40;
E.childNodes[0].type="text";
E.childNodes[0].value=M;
E.childNodes[0].setAttribute("maxlength","50");
if(B.rows.length>1){var O=B.rows[1].cells[0].firstChild;
var L=O.insertRow(0);
L.className="Heading";
var J=L.insertCell(0);
J.innerHTML="Fields:";
var I=L.insertCell(1);
I.innerHTML="Show on partner<br/>calendars:";
var F=L.insertCell(2);
F.innerHTML="Image<br/>(16x16 or smaller):";
for(var G=1;
G<O.rows.length;
G++){this.editField(O.rows[G])
}var C=O.insertRow(O.rows.length);
var K=C.insertCell(0);
K.innerHTML="<b>+Add</b>";
K.className=this.m_cssGroup+" "+this.m_cssButton;
if(navigator.appName=="Netscape"){K.setAttribute("onclick",this.selfName+".addField(this)")
}else{var H=this;
K.onclick=function(){H.addField(this)
}
}}}return this
};
this.editField=function(O){var B=O.cells.length>=6?(O.cells[6].childNodes.length>0?O.cells[6].childNodes[0].value:"false"):"false";
O.cells[0].style.display="none";
O.cells[1].style.display="none";
var D=O.cells[2];
var J=O.cells[3].childNodes.length>0?O.cells[3].firstChild.src:"";
if(navigator.appName=="Netscape"){O.deleteCell(3)
}else{O.removeChild(O.childNodes[3])
}var C=O.appendChild(document.createElement("td"));
var K=O.appendChild(document.createElement("td"));
var I=O.appendChild(document.createElement("td"));
I.innerHTML="delete";
I.className=this.m_cssGroup+" "+this.m_cssButton;
I.style.verticalAlign="middle";
if(navigator.appName=="Netscape"){I.setAttribute("onclick",this.selfName+".delField(this)")
}else{var H=this;
I.onclick=function(){H.delField(this)
}
}var M=D.innerHTML;
D.innerHTML="<input/>";
D.childNodes[0].name="editInput";
D.childNodes[0].value=(M=="&lt;enter option here&gt;")?"<enter option here>":this.unescapeJS(M);
D.childNodes[0].size=40;
D.childNodes[0].type="text";
D.childNodes[0].setAttribute("maxlength","50");
if(D.childNodes[0].value=="<enter option here>"){var H=this;
A(D.childNodes[0],"focus",function(){H.clearValue(this)
})
}C.innerHTML="<input name='IsShownOnPC' type='checkbox'/>";
C.childNodes[0].checked=(B=="true"||B=="True");
C.style.textAlign="center";
K.innerHTML=this.m_ctrlLiteralMediaSelect;
var L=K.firstChild;
var E=L.childNodes[0];
E.selected=false;
for(var F=0;
F<L.childNodes.length;
F++){var G=L.childNodes[F];
var N=G.style.backgroundImage.slice(4,G.style.backgroundImage.length-1);
if((J==N)&&(J.length>0)){E=G
}}this.optionSelected(E);
return this
};
this.addField=function(F){var K=F.parentNode.parentNode;
var L=K.insertRow(K.rows.length-1);
var E=L.appendChild(document.createElement("td"));
var J=L.appendChild(document.createElement("td"));
var C=L.appendChild(document.createElement("td"));
var G=L.appendChild(document.createElement("td"));
var D=L.appendChild(document.createElement("td"));
var B=L.appendChild(document.createElement("td"));
var I=L.appendChild(document.createElement("td"));
C.innerHTML="&lt;enter option here&gt;";
E.innerHTML=L.parentNode.childNodes[1].cells[0].innerHTML;
J.innerHTML=L.parentNode.childNodes[1].cells[1].innerHTML;
D.innerHTML="<input type='hidden' value='-1' name='FieldDefnID'/>";
B.innerHTML="<input type='hidden' value='-1' name='ItemRank'/>";
I.innerHTML="<input type='hidden' value='false' name='ItemShowOnSlaveCal'/>";
var H="none";
E.style.display=H;
J.style.display=H;
D.style.display=H;
B.style.display=H;
I.style.display=H;
this.editField(L);
return this
};
this.saveGroup=function(K){var D=K.parentNode;
var M=D.parentNode;
var I=D.nextSibling;
var L=D.previousSibling;
var B=M.cells[2].childNodes[0];
if(B.tagName=="TABLE"){var E=B.rows[0].cells[0];
var H=E.childNodes[0];
if(B.rows.length>1){var J=B.rows[1].cells[0].firstChild;
var C=false;
for(var F=1;
F<J.rows.length-1;
F++){J.rows[F].style.backgroundColor="white"
}for(var F=1;
F<J.rows.length-1;
F++){if(!this.validateField(J.rows[F])){J.rows[F].style.backgroundColor="yellow";
alert("A field is missing information.");
return this
}}J.deleteRow(0);
J.deleteRow(J.rows.length-1);
for(var F=0;
F<J.rows.length;
F++){this.saveField(J.rows[F])
}}E.innerHTML=this.escapeJS(H.value);
D.childNodes[0].innerHTML="edit";
if(navigator.appName=="Netscape"){D.childNodes[0].setAttribute("onclick",this.selfName+".editGroup(this)")
}else{var G=this;
D.childNodes[0].onclick=function(){G.editGroup(this)
}
}if(navigator.appName=="Netscape"){I.innerHTML="<span>delete</span>";
I.childNodes[0].className="Button_Moz";
var G=this;
A(I.childNodes[0],"click",function(){G.delGroup(this)
})
}else{I.style.display=""
}}this.editMode(false);
this.refreshTables(this.m_ctrlCurrentTableID);
cCommonUI.success("Don't forget to click Save to save your changes",this.m_ctrlSave1);
return this
};
this.validateField=function(B){return(B.cells[2].childNodes[0].value.length>0&&B.cells[2].childNodes[0].value!="<enter option here>")
};
this.saveField=function(D){D.cells[2].innerHTML=this.escapeJS(D.cells[2].childNodes[0].value);
D.cells[4].childNodes[0].value=D.rowIndex+1;
D.cells[5].childNodes[0].value=D.cells[6].childNodes[0].checked;
D.cells[7].innerHTML=(D.cells[7].childNodes.length>1)?"<img value='"+D.cells[7].childNodes[1].getAttribute("value")+"' src='"+D.cells[7].childNodes[1].src+"' alt='' />":"";
D.cells[0].style.display="";
D.cells[1].style.display="";
if(navigator.appName=="Netscape"){D.cells[2].style.whiteSpace="nowrap";
var C=D.cells[7].innerHTML;
var B=D.insertCell(3);
B.innerHTML=C;
D.deleteCell(9);
D.deleteCell(8);
D.deleteCell(7)
}else{D.insertBefore(D.cells[7],D.childNodes[3]);
D.removeChild(D.childNodes[8]);
D.removeChild(D.childNodes[7])
}return this
};
this.delGroup=function(E){var I=E.parentNode;
var D=2;
if(navigator.appName=="Netscape"){D=3
}var B=confirm("Are you sure you want to delete '"+this.unescapeJS(I.parentNode.childNodes[D].childNodes[0].rows[0].cells[0].innerHTML)+"'?");
if(B){var H=I.parentNode;
var C=H.rowIndex;
var G=H.parentNode;
var F=this.m_objDomDoc.createElement("remove");
F.setAttribute("type","group");
F.setAttribute("id",H.cells[6].childNodes[0].value);
this.m_objXmlRemovals.appendChild(F);
G.deleteRow(C);
this.refreshTables(this.m_ctrlCurrentTableID)
}return this
};
this.delField=function(D){var K=confirm("Are you sure you want to delete '"+this.unescapeJS(D.parentNode.cells[2].childNodes[0].value)+"'?");
if(K){var J=D.parentNode;
var F=J.rowIndex;
var H=J.parentNode;
var I=this.m_objDomDoc.createElement("remove");
I.setAttribute("type","field");
var B=0;
for(var E=0;
E<J.cells.length;
E++){var G=J.cells[E];
if(G.childNodes.length>0){var C=G.childNodes[0];
if(C.tagName=="INPUT"){if(C.getAttribute("name")=="FieldDefnID"){B=C.getAttribute("value")
}}}}I.setAttribute("id",B);
this.m_objXmlRemovals.appendChild(I);
H.deleteRow(F);
this.refreshTables(this.m_ctrlCurrentTableID)
}return this
};
this.optionSelected=function(E){E.parentNode.childNodes[0].selected=false;
E.selected=true;
var B=E.index;
var F=E.parentNode.parentNode;
if(E.value!="0"){var D=E.style.backgroundImage.slice(4,E.style.backgroundImage.length-1);
if(F.childNodes.length<2){F.innerHTML+="<img value='"+E.getAttribute("value")+"' src='"+D+"' alt=''/>"
}else{var C=F.childNodes[1];
C.src=D;
C.setAttribute("value",E.value);
F.childNodes[1].style.display=""
}}else{if(F.childNodes[1]){F.childNodes[1].src="";
F.childNodes[1].setAttribute("value",E.getAttribute("value"));
F.childNodes[1].style.display="none"
}}F.childNodes[0].childNodes[B].selected=true;
return this
};
this.deleteCategory=function(K,J){var N=confirm("Are you sure you want to delete '"+this.unescapeJS(document.getElementById(J).innerHTML)+"'?");
if(N){var D=document.getElementById(J);
var H=D.getAttribute("catid");
var M=this.m_objDomDoc.createElement("remove");
M.setAttribute("type","category");
M.setAttribute("id",H);
this.m_objXmlRemovals.appendChild(M);
var I=this.m_ctrlMenuTable.rows;
for(var F=0;
F<I.length;
F++){var L=I[F].cells[0];
var C=L.getAttribute("catid");
if(H==C){var G=L.getAttribute("tblid");
var E=document.getElementById(G);
var B=E.parentNode;
B.removeChild(E);
this.m_ctrlMenuTable.deleteRow(I[F].rowIndex)
}}this.setCurrentTableByRow(I[0],I[0].cells[0].getAttribute("tblid"))
}return this
};
this.renameCategory=function(F,E,J,I,B){this.editMode(true);
var D=document.getElementById(E);
var C=document.getElementById(J);
var H=document.getElementById(I);
var G=document.getElementById(B);
this.IsDefault=(G.style.display=="none");
F.style.display="none";
G.style.display="none";
D.style.display="none";
H.style.display="";
C.style.display="";
C.value=this.unescapeJS(D.innerHTML);
return this
};
this.doneCategoryName=function(H,G,J,F,B){var E=document.getElementById(G);
var D=document.getElementById(J);
var C=document.getElementById(F);
var I=document.getElementById(B);
C.style.display="";
if(E.getAttribute("isdefault").toLowerCase()=="false"){I.style.display=""
}E.style.display="";
H.style.display="none";
D.style.display="none";
E.innerHTML=this.escapeJS(D.value);
this.m_ctrlCurrentMenuItem.innerHTML=E.innerHTML;
this.editMode(false);
return this
};
this.addGroup=function(I,G,D,C){this.editMode(true);
var H=document.getElementById(G);
var B=document.getElementById(C);
var F=document.getElementById(D);
var E=document.getElementById("tblAddGroup");
E.rows[1].cells[0].childNodes[0].value="";
I.style.display="none";
F.style.display="";
H.style.display="";
B.style.display="";
return this
};
this.doneGroup=function(O,H,I,J,L,B){this.ctrlTable=document.getElementById(this.m_ctrlCurrentTableID);
var E=document.getElementById(J).childNodes[0];
var F=document.getElementById(L);
log.debug(E.value);
var D=this.escapeJS(E.value);
log.debug(D);
var K=F.options[F.selectedIndex];
var Q=K.value;
var N=false;
for(var G=0;
G<this.ctrlTable.rows.length;
G++){var C=this.ctrlTable.rows[G].cells[2].firstChild.rows[0].cells[0];
var P=this.ctrlTable.rows[G].cells[3];
if(C.firstChild.nodeName=="input"){if(D==C.firstChild.value&&Q==P.getAttribute("cftype")){N=true
}}else{if(D==C.innerHTML&&Q==P.getAttribute("cftype")){N=true
}}}if(!N){if(D.length>0){var M=document.getElementById(B);
var R=this.closeGroup(M,H,I,J,L,O.id);
R.className="GroupRow";
if(this.ctrlTable.tBodies.length==0){this.ctrlTable.appendChild(document.createElement("tbody"))
}this.ctrlTable.tBodies[0].appendChild(R);
this.refreshTables(this.m_ctrlCurrentTableID);
if(R.cells[2].childNodes[0].rows.length>1){this.editGroup(R.cells[4].childNodes[0])
}else{cCommonUI.success("Don't forget to click Save to save your changes",this.m_ctrlSave1)
}}else{alert("You have entered a blank group name. Please try again.")
}}else{alert("A group of this type already exists with the same name, please select another name or type.")
}return this
};
this.closeGroup=function(G,K,C,Q,N,M){var L=document.getElementById(K);
var S=document.getElementById(C);
var B=document.getElementById(Q).childNodes[0];
var D=document.getElementById(N);
var F=document.getElementById(M);
L.style.display="";
S.style.display="none";
F.style.display="none";
G.style.display="none";
var I=this.m_ctrlRowSkeleton;
this.ctrlTable=document.getElementById(this.m_ctrlCurrentTableID);
var H=document.createElement("div");
H.innerHTML="<table>"+this.m_ctrlRowSkeleton+"</table>";
var T=H.firstChild.rows[0].cells[2].firstChild;
T.rows[0].cells[0].innerHTML=this.escapeJS(B.value);
var P=D.options[D.selectedIndex];
var R=P.value;
var J=P.innerHTML;
var E=P.getAttribute("notation");
H.firstChild.rows[0].cells[3].innerHTML=J;
H.firstChild.rows[0].cells[3].setAttribute("cftype",R);
if(R=="ShortText"||R=="LongText"||R=="Media"||R=="Integer"||R=="Float"||R=="Currency"){T.deleteRow(1)
}else{var O=T.rows[1].cells[0].firstChild.rows[0];
O.cells[2].innerHTML="&lt;enter option here&gt;"
}this.editMode(false);
return H.firstChild.rows[0]
};
this.editMode=function(B){if(B){this.IsEditMode=true;
this.editCounter++;
this.m_ctrlSave1.style.display="none";
this.m_ctrlSave2.style.display="none"
}else{this.editCounter--;
if(this.editCounter==0){this.IsEditMode=false;
this.m_ctrlSave1.style.display="";
this.m_ctrlSave2.style.display=""
}}return this
};
this.addCategory=function(L,F,J,C,E){this.editMode(true);
var K=document.getElementById(L);
var I=document.getElementById(F);
var D=document.getElementById(J);
var G=document.getElementById(C);
var B=document.getElementById(E);
I.value="<category name>";
var H=this;
A(I,"click",function(){this.value=""
});
D.style.display="none";
I.style.display="";
G.style.display="";
B.style.display="";
return this
};
this.cancelCategory=function(K,F,I,C,E){var J=document.getElementById(K);
var H=document.getElementById(F);
var D=document.getElementById(I);
var G=document.getElementById(C);
var B=document.getElementById(E);
D.style.display="";
H.style.display="none";
G.style.display="none";
B.style.display="none";
this.editMode(false);
return this
};
this.doneCategory=function(Q,H,N,C,G){var O=document.getElementById(Q);
var M=document.getElementById(H);
var E=document.getElementById(N);
var I=document.getElementById(C);
var B=document.getElementById(G);
E.style.display="";
M.style.display="none";
I.style.display="none";
B.style.display="none";
var P=O.tBodies[0].appendChild(document.createElement("tr"));
P.className=P.parentNode.firstChild.className;
P.id=P.parentNode.firstChild.id+"_idx"+P.rowIndex;
var F=document.getElementById("ListPanel");
var L=F.appendChild(document.createElement("table"));
var D=L.appendChild(document.createElement("tbody"));
L.id=P.id+"_tbl";
L.className="CatTable";
L.style.display="none";
var K=P.appendChild(document.createElement("td"));
K.innerHTML=M.value;
K.setAttribute("catid","-1");
K.setAttribute("tblid",L.id);
K.setAttribute("isdefault","false");
var J=this;
A(P,"click",function(){J.setCurrentTable(P.id,L.id)
});
J.setCurrentTable(P.id,L.id);
this.editMode(false);
return this
};
function A(E,D,B){if(E.addEventListener){E.addEventListener(D,B,false);
return true
}else{if(E.attachEvent){var C=E.attachEvent("on"+D,B);
return C
}else{return false
}}return this
}this.savePackage=function(){if(!this.IsEditMode){var I=this.m_objDomDoc;
var D=this.m_objXmlRoot;
var H=I.createElement("categories");
var B=true;
var G=this.m_ctrlMenuTable.rows;
for(var F=0;
F<G.length;
F++){var L=G[F].cells[0];
var M=this.unescapeJS(L.innerHTML);
var J=I.createElement("category");
J.setAttribute("id",L.getAttribute("catid"));
J.setAttribute("name",M);
H.appendChild(J);
var Q=document.getElementById(L.getAttribute("tblid"));
if(Q.rows.length==0){alert("Please add a group to '"+M+"', then Save.");
B=false
}else{for(var E=0;
E<Q.rows.length;
E++){var R=Q.rows[E];
xmlGroup=I.createElement("group");
xmlGroup.setAttribute("type",R.cells[3].getAttribute("cftype"));
xmlGroup.setAttribute("id",R.cells[6].childNodes[0].value);
xmlGroup.setAttribute("rank",R.cells[7].childNodes[0].value);
var P=R.cells[2].childNodes[0];
xmlGroup.setAttribute("name",P.rows[0].cells[0].innerHTML);
J.appendChild(xmlGroup);
if(P.rows.length>1){var K=P.rows[1].cells[0].childNodes[0];
for(var C=0;
C<K.rows.length;
C++){var O=K.rows[C];
var N=O.cells[3].childNodes.length>0?O.cells[3].childNodes[0].getAttribute("value"):"0";
xmlGroup.appendChild(this.createFieldNode(O.cells[2].innerHTML,N,O.cells[4].childNodes[0].value,O.cells[5].childNodes[0].value,O.cells[6].childNodes[0].value))
}}else{xmlGroup.appendChild(this.createFieldNode(P.rows[0].cells[0].innerHTML,0,-1,1,"True"))
}}}}if(B){document.forms[0].action=this.m_docAction;
D.setAttribute("currentid",document.getElementById("lblCategory").getAttribute("catid"));
D.setAttribute("currentname",document.getElementById("lblCategory").innerHTML);
D.appendChild(this.m_objXmlRemovals);
D.appendChild(H);
this.m_ctrlPackage.value=I.xml
}else{}}return this
};
this.escapeJS=function(B){B=B.replace(/&/g,"&amp;");
B=B.replace(/</g,"&lt;");
B=B.replace(/>/g,"&gt;");
return B
};
this.unescapeJS=function(B){B=B.replace(/&lt;/g,"<");
B=B.replace(/&gt;/g,">");
B=B.replace(/&amp;/g,"&");
return B
};
this.clearValue=function(B){B.value="";
return this
};
this.createFieldNode=function(D,B,G,F,C){var E=this.m_objDomDoc;
xmlField=E.createElement("field");
xmlField.setAttribute("name",D);
xmlField.setAttribute("imgid",B);
xmlField.setAttribute("id",G);
xmlField.setAttribute("rank",F);
xmlField.setAttribute("itemshowonslavecal",C);
return xmlField
};
return this
}function cDefault(){this.m_ctrlUsername=document.getElementById("txt_username");
this.m_ctrlPassword=document.getElementById("txt_password");
this.submitLogin=function(){var D;
var C;
D=document.forms[0];
D.action="login.aspx";
var B=document.getElementsByTagName("input");
for(var A=0;
A<B.length;
A++){if(B[A].name=="__VIEWSTATE"){C=B[A].parentNode;
C.removeChild(B[A])
}}return true
};
this.submitLoginEncrypted=function(){var G;
var B=document.getElementsByTagName("body")[0];
var E;
var A;
var D;
var F;
E=document.createElement("form");
E.action="login.aspx";
E.method="post";
A=document.createElement("input");
A.type="hidden";
A.name="username";
A.value=this.m_ctrlUsername.value;
var C=new cCrypto(Algorithm.MD5,Encoding.Hex);
F=C.encode(this.m_ctrlPassword.value.toLowerCase());
if(F==""){D=document.createElement("input");
D.type="hidden";
D.name="password";
D.value=this.m_ctrlPassword.value.toLowerCase()
}else{D=document.createElement("input");
D.type="hidden";
D.name="pwmd5";
D.value=F
}E.appendChild(A);
E.appendChild(D);
B.appendChild(E);
E.submit();
return 
};
this.maximizeHeight=function(){var A=cDomUtility.getClientHeight();
cDomUtility.resizeHeight("content",A);
return 
};
this.onKeyDown=function(B){var A;
var C=13;
if(Browser.isMsIE()){A=event.keyCode
}else{if(Browser.isMozilla()){A=B.which
}}if(A==C){this.submitLogin()
}return 
};
return this
}document.onkeydown=function(B){try{g_objPage.onKeyDown(B)
}catch(A){}return 
}
function cMitziTestPage(A){this.m_strStartAddingID=A;
this.m_objStartAdding=null;
this.startAdding=function(){var B;
this.m_objStartAdding=document.getElementById(this.m_strStartAddingID);
this.m_objStartAdding.style.display="none";
B=cAjaxControl.getClientInstanceByEbId(document,"adder");
B.prepAdd();
return 
};
return this
}function cPopupMediaPickerPage(B,A){this.m_strEntryPanelID=B;
this.m_strMediaPickerID=A;
this.initialize=function(){};
this.cancel=function(){window.close()
};
this.save=function(){var D=null;
var E=null;
D=document.getElementById(this.m_strEntryPanelID);
E=cDomUtility.getElementByEbId(D,this.m_strMediaPickerID);
var C=E.getElementsByTagName("A");
if(C.length>0){strUrl=C[0].getAttribute("href")
}window.opener.SetUrl(strUrl);
window.close()
};
return this
}function cRenderReportPage(G,J,H,D,B,F,C,A,L,E,I,K){this.m_ctrlFormatID=G;
this.m_pnlCalOptionsID=J;
this.m_pnlColorizationID=H;
this.m_pnlRowViewID=D;
this.m_pnlFootNoteID=B;
this.m_pnlReportFooterID=F;
this.m_strPictureMediaPickerID=C;
this.m_strAdvClientIDs=K;
this.m_lblSimpleID=A;
this.m_lblAdvancedID=L;
this.m_lnkSimpleID=E;
this.m_lnkAdvancedID=I;
this.m_blnAdvanced=false;
this.m_blnAdvByPass=false;
this.onLoad=function(){this.ctrlFormat=cAjaxControl.getClientInstance(this.m_ctrlFormatID);
this.pnlCalOptions=document.getElementById(this.m_pnlCalOptionsID);
this.pnlColorization=document.getElementById(this.m_pnlColorizationID);
this.pnlRowView=document.getElementById(this.m_pnlRowViewID);
this.pnlFootNote=document.getElementById(this.m_pnlFootNoteID);
this.pnlReportFooter=document.getElementById(this.m_pnlReportFooterID);
this.ctrlPicturePicker=cAjaxControl.getClientInstance(this.m_strPictureMediaPickerID);
this.m_lblSimple=document.getElementById(this.m_lblSimpleID);
this.m_lblAdvanced=document.getElementById(this.m_lblAdvancedID);
this.m_lnkSimple=document.getElementById(this.m_lnkSimpleID);
this.m_lnkAdvanced=document.getElementById(this.m_lnkAdvancedID);
this.firstPass=true;
this.toggleSimple();
this.firstPass=false;
if(this.ctrlPicturePicker){this.ctrlPicturePicker.displayLink(MediaPickerLink.Replace,false);
this.ctrlPicturePicker.displayLink(MediaPickerLink.Edit,false)
}return 
};
this.toggleSimple=function(){this.m_lblSimple.style.display="";
this.m_lblAdvanced.style.display="none";
this.m_lnkSimple.style.display="none";
this.m_lnkAdvanced.style.display="";
this.m_blnAdvanced=false;
this.togglePanelVisibility()
};
this.toggleAdvanced=function(){this.m_lblSimple.style.display="none";
this.m_lblAdvanced.style.display="";
this.m_lnkSimple.style.display="";
this.m_lnkAdvanced.style.display="none";
this.m_blnAdvanced=true;
this.togglePanelVisibility()
};
this.togglePanelVisibility=function(){var M=this.m_strAdvClientIDs.split(", ");
for(var Q=0;
Q<M.length;
Q++){var S=document.getElementById(M[Q]);
if(S!=undefined){if(!this.m_blnAdvanced){S.style.display="none"
}else{S.style.display="block"
}var R=S.parentNode;
var T=false;
for(var P=0;
P<R.childNodes.length;
P++){if(R.childNodes[P].tagName=="DIV"){var O=R.childNodes[P];
if(O.style.display!="none"){T=true
}}}var N=R.parentNode.parentNode.parentNode;
if(N.tagName=="TABLE"){if(T){N.style.display="block"
}else{N.style.display="none";
var U=N.nextSibling;
if(U.tagName=="BR"){N.parentNode.removeChild(U)
}}}}}this.changeFormat()
};
this.changeFormat=function(){var M=this.ctrlFormat.getValue();
if(this.m_blnAdvanced){switch(M){case"PDF":if(this.pnlReportFooter){this.pnlReportFooter.style.display="block"
}if(this.pnlCalOptions){this.pnlCalOptions.style.display="block"
}if(this.pnlColorization){this.pnlColorization.style.display="block"
}if(this.pnlRowView){this.pnlRowView.style.display="block"
}if(this.pnlFootNote){this.pnlFootNote.style.display="block"
}break;
case"Text":if(this.pnlReportFooter){this.pnlReportFooter.style.display="none"
}if(this.pnlCalOptions){this.pnlCalOptions.style.display="none"
}if(this.pnlColorization){this.pnlColorization.style.display="none"
}if(this.pnlRowView){this.pnlRowView.style.display="none"
}if(this.pnlFootNote){this.pnlFootNote.style.display="none"
}break;
default:if(this.pnlReportFooter){this.pnlReportFooter.style.display="none"
}if(this.pnlCalOptions){this.pnlCalOptions.style.display="none"
}if(this.pnlColorization){this.pnlColorization.style.display="block"
}if(this.pnlRowView){this.pnlRowView.style.display="block"
}if(this.pnlFootNote){this.pnlFootNote.style.display="none"
}break
}}return 
};
return this
}function cRenderReportPage_PostBack(A){this.onLoad=function(){log.debug("RenderKind = "+A);
if(A=="WeekSummary"&&document.location.search.indexOf("PrinterFriendly=true")<0){if(Browser.isMsIE){this.redrawEventCells();
onResize=this.redrawEventCells();
var C=this;
B(window,"resize",function(){C.setTransparentColumns()
})
}}};
this.setTransparentColumns=function(){var I=document.getElementsByName("SemiTransparentDiv");
for(var F=0;
F<I.length;
F++){var C=I[F];
C.style.width=(C.parentNode.offsetWidth)+"px";
var H=C.parentNode.parentNode;
var E=H.parentNode;
var G=0;
var K=parseInt(C.getAttribute("rows"));
for(var D=H.rowIndex;
D<(H.rowIndex+K+1);
D++){var J=E.rows[D];
G+=J.offsetHeight
}C.style.height=(G-2)+"px"
}};
function B(F,E,C){if(F.addEventListener){F.addEventListener(E,C,false);
return true
}else{if(F.attachEvent){var D=F.attachEvent("on"+E,C);
return D
}else{return false
}}return this
}this.redrawEventCells=function(){var F=document.getElementsByName("wsrl_td");
var Q=document.getElementsByName("WeekSummaryDayRow");
var L=false;
for(var K=0;
K<Q.length;
K++){var D=0;
var O=0;
var G=0;
var E=0;
var P=Q[K];
if(P.offsetParent.currentStyle){D=parseInt(P.currentStyle.paddingBottom.split("px")[0]);
O=parseInt(P.currentStyle.paddingTop.split("px")[0]);
G=parseInt(P.currentStyle.paddingLeft.split("px")[0]);
E=parseInt(P.currentStyle.paddingRight.split("px")[0]);
L=true
}else{if(window.getComputedStyle){D=parseInt(document.defaultView.getComputedStyle(P,null).getPropertyValue("padding-bottom").split("px")[0]);
O=parseInt(document.defaultView.getComputedStyle(P,null).getPropertyValue("padding-top").split("px")[0]);
G=parseInt(document.defaultView.getComputedStyle(P,null).getPropertyValue("padding-left").split("px")[0]);
E=parseInt(document.defaultView.getComputedStyle(P,null).getPropertyValue("padding-right").split("px")[0])
}}P.style.height=(P.clientHeight-D-O)+"px";
for(var J=0;
J<P.cells.length;
J++){var H=P.cells[J];
for(var I=0;
I<H.childNodes.length;
I++){var C=H.childNodes[I];
if(C.tagName=="TABLE"){var N=C;
if(N.className=="WeekSummaryEventTable"){N.style.height=P.style.height
}}}}}if(L){for(var J=0;
J<F.length;
J++){var M=F[J];
M.style.paddingLeft=M.currentStyle.paddingRight
}}}
}function GoPrinterFriendly(){var A=document.forms[0];
A.target="_blank";
A.action=A.action+"&PrinterFriendly=true";
A.submit()
}function cSubFileUploadPage(strFileUploadPickerID,strHiddenResultID,strLabelResultID,strObjectName,strForceExt){this.m_ctrlFileUploadPicker=document.getElementById(strFileUploadPickerID);
this.m_ctrlLabelResult=document.getElementById(strLabelResultID);
this.m_ctrlHiddenResult=document.getElementById(strHiddenResultID);
this.m_strObjectName=strObjectName;
this.m_strForceExt=strForceExt;
this.prepUpload=function(){return 
};
this.validate=function(){var strFilePath;
var arrParts;
var strExt;
log.debug("validate");
try{strFilePath=this.m_ctrlFileUploadPicker.value.toLowerCase();
arrParts=strFilePath.split(".");
strExt=arrParts[arrParts.length-1];
log.debug("File extension is "+strExt);
if(this.m_strForceExt.length>0){if(strExt!=this.m_strForceExt){throw new String("You must upload a file with the extension"+this.m_strForceExt)
}}else{switch(strExt){case"com":case"exe":case"bat":case"cmd":case"pif":throw new String("Sorry, but files with "+strExt+" are not allowed.");
break;
default:break
}}log.debug("validate succeeded!");
return true
}catch(ex){this.m_ctrlLabelResult.innerHTML=ex
}log.debug("validate failed!");
return false
};
this.postbackUpload=function(){var objCaller=eval("window.parent."+this.m_strObjectName);
var strResult=this.m_ctrlHiddenResult.value;
if(strResult.indexOf("<success")==0){objCaller.uploadDone(strResult);
window.close()
}else{log.debug("Woe is me.")
}return 
};
this.cancel=function(){var objCaller=eval("window.parent."+this.m_strObjectName);
objCaller.cancel();
return 
};
return this
}