var FORK=FORK||{};FORK.Scroll={getX:function(){FORK.Scroll.setup();return FORK.Scroll.getX();},getY:function(){FORK.Scroll.setup();return FORK.Scroll.getY();},setup:(function(){var global=this;return function(){var readScroll,readScrollY='scrollTop',readScrollX='scrollLeft';if(typeof global.pageXOffset=='number'){readScroll=global;readScrollY='pageYOffset';readScrollX='pageXOffset';}else if((typeof document.compatMode==='string')&&(document.compatMode.indexOf('CSS')>=0)&&(document.documentElement)&&(typeof document.documentElement.scrollLeft=='number')){readScroll=document.documentElement;}else if((document.body)&&(typeof document.body.scrollLeft==='number')){readScroll=document.body;}else{FORK.Scroll.getX=FORK.Scroll.getY=function(){return NaN;};return;}
FORK.Scroll.getX=function(){return readScroll[readScrollX];};FORK.Scroll.getY=function(){return readScroll[readScrollY];};};})(),isSupported:function(){var en=true;if(isNaN(FORK.Scroll.getX())){en=false;}
FORK.Scroll.isSupported=function(){return en;};return en;}};var FORK=FORK||{};FORK.Event={listeners:[],unloadListeners:[],_useLegacyListener:function(type){return false;return(type==='click'||type=='dblclick');},addListener:function(el,type,fn,options){if(!this._isSupported()){return false;}
if(typeof el=="string"){el=document.getElementById(el);}
options=options||{};var obj={el:el,type:type,fn:fn,options:options};var scope=(options.scope)?options.scope:el;if(options.args){var args=Array.prototype.slice.call(options.args,0);obj.wrappedFn=function(e){args.unshift(e);var r=fn.apply(scope,args);args.shift();return r;};}else{var argument=options.argument;obj.wrappedFn=function(e){return fn.call(scope,e,argument);};}
if("unload"==type&&this.unloadListenerAttached){if(this._getCacheIndex(this.unloadListeners,el,type,fn)<0){this.unloadListeners.push(obj);}
return;}
var attached=false;if(this._useLegacyListener(type)){if(!el['on'+type]||!el['on'+type].legacyListeners){el['on'+type]=function(e){e=e||window.event;var lls=arguments.callee.legacyListeners.slice(0);for(var i=0,len=lls.length;i<len;i++){var l=lls[i];if(l){try{if(l.wrappedFn){l.wrappedFn(e);}}catch(er){setTimeout(function(){throw er;},0);}}}};el['on'+type].legacyListeners=[];}else if(this._getCacheIndex(el['on'+type].legacyListeners,el,type,fn)>=0){return;}
el['on'+type].legacyListeners.push(obj);attached=true;}else if(el.addEventListener){el.addEventListener(type,obj.wrappedFn,false);attached=true;}else if(el.attachEvent){el.attachEvent("on"+type,obj.wrappedFn);attached=true;}
if(attached){this.listeners.push(obj);if("unload"==type){this.unloadListenerAttached=true;}}},removeListener:function(el,type,fn){if(typeof el=="string"){el=document.getElementById(el);}
var cache=(type=='unload'?this.unloadListeners:this.listeners);var i=this._getCacheIndex(cache,el,type,fn);if(i<0){return;}
var obj=cache[i];cache.splice(i,1);if(type!='unload'){if(this._useLegacyListener(type)){i=this._getCacheIndex(el['on'+type].legacyListeners,el,type,fn);el['on'+type].legacyListeners.splice(i,1);if(el['on'+type].legacyListeners.length<1){el['on'+type]=null;}}else if(el.removeEventListener){el.removeEventListener(type,obj.wrappedFn,false);}else if(el.detachEvent){el.detachEvent("on"+type,obj.wrappedFn);}}
obj.fn=null;obj.wrappedFn=null;},_getCacheIndex:function(arr,el,type,fn){for(var i=arr.length;i--;){var li=arr[i];if(li&&li.el==el&&li.type==type&&li.fn==fn){return i;}}
return-1;},_unload:function(e){e=e||window.event;var i,l,len;for(i=0,len=this.unloadListeners.length;i<len;++i){l=this.unloadListeners[i];if(l){try{l.wrappedFn(e);}catch(err){}
l.fn=null;l.wrappedFn=null;}}
for(i=this.listeners.length;i--;){var li=this.listeners[i];if(li){this.removeListener(li.el,li.type,li.fn);}}},purgeElement:function(el,options){if(typeof el=='string'){el=document.getElementById(el);}
options=options||{};var i,elListeners=this._getListeners(el,options.type);for(i=elListeners.length;i--;){var l=elListeners[i];this.removeListener(el,l.type,l.fn);}
if(options.deep&&el.childNodes){for(i=el.childNodes.length;i--;){this.purgeElement(el.childNodes[i],options);}}},_getListeners:function(el,type){var elListeners=[];for(var i=this.listeners.length;i--;){var l=this.listeners[i];if(l&&l.el===el&&(!type||type===l.type)){elListeners.push(l);}}
return elListeners;},stopPropagation:function(e){if(e.stopPropagation){e.stopPropagation();return true;}
if(e.cancelBubble!==undefined){e.cancelBubble=true;return true;}
return false;},preventDefault:function(e){if(e.preventDefault){e.preventDefault();return true;}
if(e.cancelBubble!==undefined){e.returnValue=false;return true;}
return false;},getTarget:function(e){var t=e.target||e.srcElement;return this.resolveTextNode(t);},resolveTextNode:function(node){if(node&&node.nodeName&&"#TEXT"==node.nodeName.toUpperCase()){return node.parentNode;}
return node;},getRelatedTarget:function(e){var t=e.relatedTarget;if(!t){if(e.type=="mouseout"){t=e.toElement;}else if(e.type=="mouseover"){t=e.fromElement;}}
return this.resolveTextNode(t);},getPageX:(function(){function page(e){return e.pageX;}
var getX=FORK.Scroll.getX;function client(e){return getX()+e.clientX;}
function not(){return NaN;}
return function(e){if(typeof e.pageX=='number'){FORK.Event.getPageX=page;}else if(FORK.Scroll&&!isNaN(FORK.Scroll.getX())&&typeof e.clientX=='number'){FORK.Event.getPageX=client;}else{FORK.Event.getPageX=not;}
return FORK.Event.getPageX(e);};})(),getPageY:(function(){function page(e){return e.pageY;}
var getY=FORK.Scroll.getY;function client(e){return getY()+e.clientY;}
function not(){return NaN;}
return function(e){if(typeof e.pageY=='number'){FORK.Event.getPageY=page;}else if(FORK.Scroll&&!isNaN(FORK.Scroll.getY())&&typeof e.clientY=='number'){FORK.Event.getPageY=client;}else{FORK.Event.getPageY=not;}
return FORK.Event.getPageY(e);};})(),_isSupported:(function(){var en=false;if(typeof(function(){}).apply==="function"&&typeof(function(){}).call==="function"&&document.getElementById&&typeof([].splice)==="function"&&typeof([].push)==="function"&&(window.addEventListener||window.attachEvent)){en=true;}
return function(){return en;};})(),isSupported:function(){var en=false;if(FORK.Event._isSupported()&&FORK.Scroll&&FORK.Scroll.isSupported()){en=true;}
FORK.Event.isSupported=function(){return en;};return en;}};try{FORK.on=function(){return FORK.Event.addListener.apply(FORK.Event,arguments);};FORK.off=function(){return FORK.Event.removeListener.apply(FORK.Event,arguments);};FORK.Event.addListener(window,"unload",FORK.Event._unload,{scope:FORK.Event});}catch(e){}
var FORK=FORK||{};FORK.build=function(tagName,attributes,options){attributes=attributes||{};options=options||{}
var el;tagName=tagName.toLowerCase();function innerParser(html){var p=document.createElement('div');if(tagName.match(/t(head|body|foot)/)){p.innerHTML='<table>'+html+'</table>';p=p.childNodes[0];}else if(tagName=='tr'){p.innerHTML='<table><tbody>'+html+'</tbody></table>';p=p.childNodes[0].childNodes[0];}else if(tagName.match(/^t(d|h)$/)){p.innerHTML='<table><tbody><tr>'+html+'</tr></tbody></table>';p=p.childNodes[0].childNodes[0].childNodes[0];}else if(tagName=='option'){p.innerHTML='<select>'+html+'</select>';p=p.childNodes[0];}else{p.innerHTML=html;}
return p.childNodes[0];}
var attrs=[];for(var p in attributes){if(attributes[p]===undefined||attributes[p]===null||attributes[p]===false){continue;}
attrs.push(' '+(p=='className'?'class':p)+'="'+attributes[p]+'"');}
var html='<'+tagName+attrs.join('')+'>';el=innerParser(html);if(options.innerHTML){el.innerHTML=options.innerHTML;}
else if(options.text){el.appendChild(document.createTextNode(options.text));}
var p=options.parentNode;if(p){p.appendChild(el);}
var cs=options.childNodes;if(cs){for(var i=0,len=cs.length;i<len;i++){el.appendChild(cs[i]);}}
if(FORK.Event.addListener){for(var p in options){if(p.match(/^on/)){FORK.Event.addListener(el,p.substring(2),options[p],{scope:options.scope,argument:options.argument,args:options.args});}}}
return el;};var FORK=FORK||{};FORK.Ajax=function(method,url,options){this.options=options||{};this.options.headers=this.options.headers||{};this.method=method.toUpperCase();this.request=FORK.Ajax.newXMLHttpRequest();if(!this.request){return true;}
this.aborted=false;var self=this;if(this.options.timeout){this.timer=setTimeout(function(){self.onTimeout();},this.options.timeout);}
this.request.onreadystatechange=function(){self.onReadyStateChange();};if(this.options.objForJSON){this.body=FORK.Json.dump(this.options.objForJSON);this.options.headers['Content-Type']='application/json';}
else{this.body=this.options.body||{};this.setMethod();this.body=(function(oBody,bodyString){var aBody=[];if(bodyString){aBody.push(bodyString);}
for(var p in oBody){aBody.push(encodeURIComponent(p)+"="+encodeURIComponent(oBody[p]));}
return((aBody.length>0)?aBody.join("&"):null);})(this.body,this.options.bodyString);var serialization=null;if(this.options.form){serialization=FORK.Ajax.serializeForm(this.options.form);}
if(this.body&&serialization){this.body=serialization+"&"+this.body;}else if(serialization){this.body=serialization;}
if(this.method==='GET'){if(this.body){url=url+(url.match(/\?/)?'&':'?')+this.body;}
this.body=null;}}
this.request.open(this.method,url,true);if(this.method==="POST"){if(!this.options.headers["Content-Type"]){this.options.headers["Content-Type"]="application/x-www-form-urlencoded";}}
if(this.options.headers){for(p in this.options.headers){if(p.toLowerCase()=='content-type'){this.request.setRequestHeader("Content-Type",this.options.headers[p]);}
else{this.request.setRequestHeader(p,this.options.headers[p]);}}}
this.request.send(this.body);};FORK.Ajax.prototype.setMethod=function(){if(this.method==='GET'){this.body._uniqueId=(new Date()).getTime()+""+FORK.Ajax.transactionId++;}};FORK.Ajax.transactionId=0;FORK.Ajax.newXMLHttpRequest=function(){var fs=[function(){return new ActiveXObject("Microsoft.XMLHTTP");},function(){return new ActiveXObject("Msxml2.XMLHTTP");},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0");},function(){return new XMLHttpRequest();}];for(var i=fs.length;i--;){try{var r=fs[i]();if(r){FORK.Ajax.newXMLHttpRequest=fs[i];return r;}}catch(e){}}
(FORK.Ajax.newXMLHttpRequest=function(){return null;})();};FORK.Ajax.serializeForm=function(f){if(typeof f=='string'){f=document.getElementById(f)||document.forms[f];}
var els=f.elements,cereal=[];function add(n,v){cereal.push(encodeURIComponent(n)+"="+encodeURIComponent(v));}
for(var i=0,ilen=els.length;i<ilen;i++){var el=els[i];if(!el.disabled){switch(el.type){case'text':case'password':case'hidden':case'textarea':add(el.name,el.value);break;case'select-one':if(el.selectedIndex>=0){add(el.name,el.options[el.selectedIndex].value);}
break;case'select-multiple':for(var j=0,jlen=el.options.length;j<jlen;j++){var opt=el.options[j];if(opt.selected){add(el.name,opt.value);}}
break;case'checkbox':case'radio':if(el.checked){add(el.name,el.value);}
break;}}}
if(this.button){add(this.button.name,this.button.value);this.button=null;}
return((cereal.length>0)?cereal.join("&"):null);};FORK.Ajax.setButton=function(el){this.button={name:el.name,value:el.value};};FORK.Ajax.prototype.doCallback=function(sMethod){if(this.options.scope){this.options[sMethod].call(this.options.scope,this.request,this.options.argument);}else{this.options[sMethod](this.request,this.options.argument);}};FORK.Ajax.prototype.onReadyStateChange=function(){if(!this.aborted&&this.request.readyState===4){if(this.timer){clearTimeout(this.timer);}
if(this.request){this.handleReadyState4();}
this.request.onreadystatechange=FORK.Ajax.emptyFnc;}};FORK.Ajax.emptyFnc=function(){};FORK.Ajax.prototype.handleReadyState4=function(){var request=this.request,options=this.options;var status;try{status=request.status;}catch(e){status=13030;}
if(status==12002||status==12029||status==12030||status==12031||status==12152||status==13030){this.request={status:0,statusText:"communication failure",argument:options.argument};}
if(options.before){this.doCallback("before");}
this.status=status;this.middleCallback();if(options.after){this.doCallback("after");}};FORK.Ajax.prototype.middleCallback=function(){if(this.options["on"+this.status]){this.doCallback("on"+this.status);}else if(this.status>=200&&this.status<300&&this.options.onSuccess){this.doCallback("onSuccess");}else if((this.status<200||this.status>=300)&&this.options.onFailure){this.doCallback("onFailure");}else if(this.options.onComplete){this.doCallback("onComplete");}};FORK.Ajax.prototype.abort=function(){this.aborted=true;this.request.abort();request.onreadystatechange=FORK.Ajax.emptyFnc;};FORK.Ajax.prototype.onTimeout=function(){this.aborted=true;this.request.abort();this.handleTimeout();this.request=null;};FORK.Ajax.prototype.handleTimeout=function(){if(this.options.before){this.doCallback("before");}
if(this.options.onTimeout){this.doCallback("onTimeout");}
if(this.options.after){this.doCallback("after");}};FORK.Ajax.isSupported=(function(){var en=false,x;try{if(typeof(function(){}).call==="function"&&(x=FORK.Ajax.newXMLHttpRequest())&&x.readyState===0){en=true;}}catch(e){en=false;}
try{if(!x.setRequestHeader){en=false;}}catch(e){}
function cannotPost(){var xhr=new XMLHttpRequest();try{xhr.send("asdf");}catch(e){if(-1!==e.toString().indexOf("Could not convert JavaScript argument arg 0 [nsIXMLHttpRequest.send]")){return true;}}
return false;}
if(this.XMLHttpRequest&&cannotPost()){en=false;}
return function(){return en;};})();FORK.xhr=function(url,method,options){return new FORK.Ajax(url,method,options);};var FORK=FORK||{};FORK.Dom={hasClass:function(el,className){if(typeof el=='string'){el=document.getElementById(el);}
var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)');return re.test(el.className);},_each:function(fn,args){for(var i=0,ilen=args[0].length;i<ilen;i++){FORK.Dom[fn].call(FORK.Dom,args[0][i],args[1]);}},_addClass:function(el,className){if(typeof el=='string'){el=document.getElementById(el);}
if(FORK.Dom.hasClass(el,className)){return;}
el.className=[el.className,className].join(' ');},addClass:function(els,className){if(!(els instanceof Array)){els=[els];}
FORK.Dom._each('_addClass',[els,className]);},_removeClass:function(el,className){if(typeof el=='string'){el=document.getElementById(el);}
if(!FORK.Dom.hasClass(el,className)){return;}
var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)','g');var c=el.className;el.className=c.replace(re,' ');if(FORK.Dom.hasClass(el,className)){FORK.Dom.removeClass(el,className);}},removeClass:function(els,className){if(!(els instanceof Array)){els=[els];}
FORK.Dom._each('_removeClass',[els,className]);},isSupported:(function(){var re=/(?:^|\s+)a(?:\s+|$)/g,en=false;if(document.getElementById&&typeof RegExp==="function"&&typeof"".replace==="function"&&"a".match(re)){en=true;}
return function(){return en;};})()};FORK.addClass=function(){return FORK.Dom.addClass.apply(FORK.Dom,arguments);};FORK.removeClass=function(){return FORK.Dom.removeClass.apply(FORK.Dom,arguments);};FORK.hasClass=function(){return FORK.Dom.hasClass.apply(FORK.Dom,arguments);};var FORK=FORK||{};(function(){function capitalize(str){return str.charAt(0).toUpperCase()+str.substr(1);}
FORK.makeGet=function(obj){for(var i=1,len=arguments.length;i<len;i++){(function(property){obj['get'+capitalize(property)]=function(){return this[property];};})(arguments[i]);}};FORK.makeSet=function(obj){for(var i=1,len=arguments.length;i<len;i++){var property=arguments[i];(function(property){obj['set'+capitalize(property)]=function(value){this[property]=value;};})(arguments[i]);}};FORK.makeGetSet=function(obj){FORK.makeGet.apply(FORK.makeGet,arguments);FORK.makeSet.apply(FORK.makeSet,arguments);};})();var FORK=FORK||{};FORK.Json={};(function(){var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},s={array:function(x){var a=['['],b,f,i,l=x.length,v;for(i=0;i<l;i+=1){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=',';}
a[a.length]=v;b=true;}}}
a[a.length]=']';return a.join('');},'boolean':function(x){return String(x);},'null':function(x){return"null";},number:function(x){return isFinite(x)?String(x):'null';},object:function(x){if(x){if(x instanceof Array){return s.array(x);}
if(x instanceof Date){return s.date(x);}
var a=['{'],b,f,i,v;for(i in x){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=',';}
a.push(s.string(i),':',v);b=true;}}}
a[a.length]='}';return a.join('');}
return'null';},date:function(x){function f(n){return n<10?'0'+n:n;}
return'"'+x.getFullYear()+'-'+
f(x.getMonth()+1)+'-'+
f(x.getDate())+'T'+
f(x.getHours())+':'+
f(x.getMinutes())+':'+
f(x.getSeconds())+'.'+
f(x.getMilliseconds())+'"';},string:function(x){if(/["\\\x00-\x1f]/.test(x)){x=x.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c;}
c=b.charCodeAt();return'\\u00'+
Math.floor(c/16).toString(16)+
(c%16).toString(16);});}
return'"'+x+'"';}};FORK.Json.dump=function(entity){if(entity instanceof Array){return s.array(entity);}
return s.object(entity);};})();FORK.Json.load=function(str,hook){try{if(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(str)){var j=eval('('+str+')');if(typeof hook==='function'){function walk(k,v){if(v&&typeof v==='object'){for(var i in v){v[i]=walk(i,v[i]);}}
return hook(k,v);}
return walk('',j);}
return j;}}catch(e){}
return null;};FORK.Json.isSupported=(function(){var en=false;if(typeof[].push==="function"&&typeof"".replace==="function"&&typeof/a/.test==="function"&&typeof{}.hasOwnProperty==="function"&&/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test('{"a":3}')){en=true;}
return function(){return en;};})();var FORK=FORK||{};(function(){function hasClass(el,className){var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)');return re.test(el.className);}
FORK.find=function(s,r){r=r||document;var sub;if(sub=s.match(/^#(\.*)/)){return[r.getElementById(sub[1])];}
sub=s.match(/([^\.]*)\.*([^\.]*)/);var tag=sub[1]||'*';var cn=sub[2];var els=r.getElementsByTagName(tag);if(!els.length&&tag=='*'&&r.all){els=r.all;}
if(!cn){return els;}
var ns=[];for(var i=0,len=els.length;i<len;++i){var el=els[i];if(hasClass(el,cn)){ns.push(el);}}
return ns;};})();var FORK=FORK||{};FORK.Mutate={scriptRegExp:/<script.*?>((\n|\r|.)*?)<\/script>/img,getScripts:function(html){var ss=[],match;while(match=this.scriptRegExp.exec(html)){ss.push(match[1]);}
return ss;},stripScripts:function(html){return html.replace(this.scriptRegExp,'');},evalScript:function(){eval(arguments[0]);},evalScripts:function(scripts){for(var i=0,l=scripts.length;i<l;i++){this.evalScript(scripts[i]);}},update:function(el,html,evalScripts){if(typeof el=="string"){el=document.getElementById(el);}
for(var i=el.childNodes.length;i--;){this.remove(el.childNodes[i]);}
this.insertBottom(el,html,evalScripts);},replace:function(el,html,evalScripts){if(typeof el=="string"){el=document.getElementById(el);}
var ss=this.getScripts(html);html=this.stripScripts(html);var parent=el.parentNode;var next=el.nextSibling;this.remove(el);var m,n=this.outsideParser(el,html).firstChild;while(m=n){n=m.nextSibling;parent.insertBefore(m,next);}
if(evalScripts===undefined||evalScripts==='eval'){this.evalScripts(ss);}},outsideParser:function(el,html){var p=document.createElement('div'),tagName=el.tagName.toLowerCase();if(tagName.match(/t(body|head|foot)/)){p.innerHTML='<table>'+html+'</table>';p=p.childNodes[0];}else if(tagName=='tr'){p.innerHTML='<table><tbody>'+html+'</tbody></table>';p=p.childNodes[0].childNodes[0];}else if(tagName=='td'){p.innerHTML='<table><tbody><tr>'+html+'</tr></tbody></table>';p=p.childNodes[0].childNodes[0].childNodes[0];}else{p.innerHTML=html;}
return p;},insideParser:function(el,html){var p=document.createElement('div'),tagName=el.tagName.toLowerCase();if(tagName=='table'){p.innerHTML='<table>'+html+'</table>';p=p.childNodes[0];}else if(tagName.match(/t(head|body|foot)/)){p.innerHTML='<table><tbody>'+html+'</tbody></table>';p=p.childNodes[0].childNodes[0];}else if(tagName=='tr'){p.innerHTML='<table><tbody><tr>'+html+'</tr></tbody></table>';p=p.childNodes[0].childNodes[0].childNodes[0];}else{p.innerHTML=html;}
return p;},_insert:function(el,html,evalScripts,parser,inserter){if(typeof el=="string"){el=document.getElementById(el);}
var ss=this.getScripts(html);html=this.stripScripts(html);inserter(el,parser(el,html));if(evalScripts===undefined||evalScripts==='eval'){this.evalScripts(ss);}},insertBefore:function(el,html,evalScripts){this._insert(el,html,evalScripts,this.outsideParser,function(el,p){var m,n=p.firstChild;while(m=n){n=m.nextSibling;el.parentNode.insertBefore(m,el);}});},insertTop:function(el,html,evalScripts){this._insert(el,html,evalScripts,this.insideParser,function(el,p){var ns=p.childNodes;for(var i=ns.length;i--;){el.insertBefore(ns[i],el.firstChild);}});},insertBottom:function(el,html,evalScripts){this._insert(el,html,evalScripts,this.insideParser,function(el,p){var m,n=p.firstChild;while(m=n){n=m.nextSibling;el.appendChild(m);}});},insertAfter:function(el,html,evalScripts){this._insert(el,html,evalScripts,this.outsideParser,function(el,p){var ns=p.childNodes;for(var i=ns.length;i--;){el.parentNode.insertBefore(ns[i],el.nextSibling);}});},remove:function(el){if(typeof el=="string"){el=document.getElementById(el);}
var fe=FORK.Event;if(fe&&fe.purgeElement){fe.purgeElement(el,{deep:true});}
el.parentNode.removeChild(el);},isSupported:function(){var en=false,b;if(document.getElementById&&typeof"".replace==="function"&&document.createElement&&(b=document.createElement('div'))&&typeof b.innerHTML==='string'){en=true;}
FORK.Mutate.isSupported=function(){return en;};return en;}};var FORK=FORK||{};FORK.Cookie=function(name){this.$name=name;var all=document.cookie;if(all===''){return;}
var start=all.indexOf(name+'=');if(start==-1){return;}
start+=name.length+1;var end=all.indexOf(';',start);if(end==-1){end=all.length;}
var val=all.substring(start,end);var crumbs=val.split('&'),crumb;for(var i=crumbs.length;i--;){crumb=crumbs[i].split(':');this[crumb[0]]=decodeURIComponent(crumb[1]);}};FORK.Cookie.prototype.store=function(days,path,domain,secure){var val='';for(var p in this){if((p.charAt(0)=='$')||((typeof this[p])=='function')){continue;}
if(val!==''){val+='&';}
val+=p+':'+encodeURIComponent(this[p]);}
var cookie=this.$name+'='+val;if(days===0){cookie+="; expires=Fri, 02-Jan-1970 00:00:00 GMT";}else if(days){cookie+="; expires="+((new Date((new Date()).getTime()+days*86400000)).toUTCString());}
if(path){cookie+="; path="+path;}
if(domain){cookie+="; domain="+domain;}
if(secure){cookie+="; secure";}
document.cookie=cookie;};FORK.Cookie.prototype.remove=function(path,domain,secure){for(var p in this){if(p.charAt(0)!='$'&&typeof this[p]!='function'){delete this[p];}}
this.store(0,path,domain,secure);};var FORK=FORK||{};(function(){var exported={};exported.addEventListener=function(type,handler,options){options=options||{};if(!this.listeners){this.listeners={};}
if(!this.listeners[type]){this.listeners[type]=[];}
this.listeners[type].push({handler:handler,scope:options.scope,args:options.args});};exported.removeEventListener=function(type,handler){if(!this.listeners||!this.listeners[type]){return;}
var lis=this.listeners[type];for(var i=lis.length;i--;){if(lis[i].handler===handler){lis[i].handler=null;lis.splice(i,1);}}};exported.fireEvent=function(type,e){e=e||{};e.type=type;e.target=this;if(this.listeners&&this.listeners[e.type]&&(this.listeners[e.type].length>0)){var lis=this.listeners[e.type].slice(0);for(var i=0,ilen=lis.length;i<ilen;i++){var li=lis[i];if(li.handler){li.handler.apply(li.scope||null,[e].concat(li.args||[]));}}}}
exported.clearEventListeners=function(options){options=options||{};if(!this.listeners){return;}
for(var p in this.listeners){if(options.type&&p!==options.type){continue;}
var lis=this.listeners[p];for(var i=lis.length;i--;){var li=lis[i];this.removeEventListener(p,li.handler);}}}
FORK.subjectize=function(obj){for(var p in exported){obj[p]=exported[p];}};})();if(typeof FORK==='object'&&FORK){var SS_xhr=(function(){var alertServerAjaxErrors=function(errors){var str='We are sorry. The server was unable to process your request successfully. Please try again. If the problem continues please contact support and include the following error messages:\n';if(errors instanceof Array){for(var i=0,ilen=errors.length;i<ilen;i++){var error=errors[i];str+='\n'+error.errormessage+" (error code: "+error.errorcode+")";}}
alert(str);};var alertIndeterminateError=function(){alert('Sorry an error occurred. Please try again. If the problem continues please contact support.');};var original=FORK.xhr;return function(url,method,options){options=options||{};options.body=options.body||{};options.body['AJAX-request']=1;var on401=options.on401;options.on401=function(xhr){var doDefault;if(on401){doDefault=on401.apply(this,arguments);}
if(doDefault!==false){window.location='/auth/login';}};var onComplete=options.onComplete;options.onComplete=function(xhr){var doDefault;if(onComplete){doDefault=onComplete.apply(this,arguments);}
if(doDefault!==false){if(xhr.status==500&&(xhr.responseText+'').match(/errormessage/)){alertServerAjaxErrors(eval('('+xhr.responseText+')'));}
else if(xhr.status<200||xhr.status>399){alertIndeterminateError();}}};for(var prop in options){if(prop.match(/^on/)||prop=='after'||prop=='before'){(function(original){options[prop]=function(){original.apply(this,arguments);};})(options[prop]);}}
original.call(FORK,url,method,options);}})();var purgeAndEmptyElement=function(el){FORK.Event.purgeElement(el,{deep:true});var cs=el.childNodes;for(var i=cs.length;i--;){el.removeChild(cs[i]);}};var SS_emptyElement=purgeAndEmptyElement;var SS_addClass=FORK.addClass;var SS_removeClass=FORK.removeClass;var SS_hasClass=FORK.hasClass;var SS_updateElement=function(){return FORK.Mutate.update.apply(FORK.Mutate,arguments);};var SS_insertBottom=function(){return FORK.Mutate.insertBottom.apply(FORK.Mutate,arguments);};var SS_removeElement=function(){return FORK.Mutate.remove.apply(FORK.Mutate,arguments);};var SS_on=function(){return FORK.on.apply(FORK,arguments);};var SS_getTarget=function(){return FORK.Event.getTarget.apply(FORK.Event,arguments);};var SS_preventDefault=function(){return FORK.Event.preventDefault.apply(FORK.Event,arguments);};var SS_stopPropagation=function(){return FORK.Event.stopPropagation.apply(FORK.Event,arguments);};var SS_build=FORK.build;var SS_find=FORK.find;var SS_subjectize=FORK.subjectize;var SS_makeSubject=function(){var o={};FORK.subjectize(o);return{fireEvent:function(){return o.fireEvent.apply(o,arguments);},addEventListener:function(){return o.addEventListener.apply(o,arguments);},removeEventListener:function(){return o.removeEventListener.apply(o,arguments);}};};var SS_Cookie=FORK.Cookie;var SS_loadJSON=function(){return FORK.Json.load.apply(FORK.Json,arguments);};var SS_dumpJSON=function(){return FORK.Json.dump.apply(FORK.Json,arguments);};}
var SS_isUndef=function(n){return(typeof n)==='undefined';};var SS_isStr=function(n){return(typeof n)==='string';};var SS_isNonEmptyStr=function(n){return SS_isStr(n)&&(n.length>0);};var SS_isUrlStr=(function(){var r=/^(http\:\/\/|\/)?(([\w.]+)\/?)+$/;return function(n){return isStr(n)&&r.test(n);};})();var SS_isNum=function(n){return(typeof n)==='number';};var SS_isPos=function(n){return SS_isNum(n)&&(n>0);};var SS_isNeg=function(n){return SS_isNum(n)&&(n<0);};var SS_isInt=function(n){return SS_isNum(n)&&(Math.round(n)===n);};var SS_isPosInt=function(n){return SS_isInt(n)&&SS_isPos(n);};var SS_isNegInt=function(n){return SS_isInt(n)&&SS_isNeg(n);};var SS_isObject=function(n){return Object.prototype.toString.call(n)==='[object Object]';};var SS_isArray=function(n){return Object.prototype.toString.call(n)==='[object Array]';};var SS_makeCheck=function(predicate,error){if(typeof error==='string'){error=(function(message){return function(){return message;};})(error);}
return function(v,m){if(predicate(v)){return true;}
else{throw new Error(error(v)+' Value has typeof "'+(typeof v)+'" and value "'+v+'".'+
(m?(' Extra information: '+m):''));}};};var SS_checkUndef=SS_makeCheck(SS_isUndef,'SS_checkUndef: The value is not undefined.');var SS_checkStr=SS_makeCheck(SS_isStr,'SS_checkStr: The value is not a string.');var SS_checkNonEmptyStr=SS_makeCheck(SS_isNonEmptyStr,'SS_checkNonEmptyStr: The value is not a non-empty string.');var SS_checkUrlStr=SS_makeCheck(SS_isUrlStr,'SS_checkUrlStr: The value is not a non-empty string.');var SS_checkNum=SS_makeCheck(SS_isNum,'SS_checkNum: The value is not a number.');var SS_checkPos=SS_makeCheck(SS_isPos,'SS_checkPos: The value is not a positive number.');var SS_checkNeg=SS_makeCheck(SS_isNeg,'SS_checkNeg: The value is not a positive number.');var SS_checkInt=SS_makeCheck(SS_isInt,'SS_checkInt: The value is not a number.');var SS_checkPosInt=SS_makeCheck(SS_isPosInt,'SS_checkPosInt: The value is not a positive number.');var SS_checkNegInt=SS_makeCheck(SS_isNegInt,'SS_checkNegInt: The value is not a positive number.');var SS_checkObject=SS_makeCheck(SS_isObject,'SS_checkObject: The value is not a JavaScript Object object.');var SS_checkArray=SS_makeCheck(SS_isArray,'SS_checkArray: The value is not a JavaScript Array object.');var SS_checkArgsLen=function(a,l,m){if(a.length===l){return true;}
throw new Error('Arguments has length '+a.length+' and should have length '+l+'.'+
(m?(' Extra information: '+m):''));};var SS_processParameter=function(arg,dflt,check,m){if(SS_isUndef(arg)){arg=dflt;}
check(arg,m);return arg;};var SS_arrayExists=function(fun,arr){var len=arr.length;for(var i=0;i<len;i++){if((i in arr)&&fun(arr[i])){return true;}}
return false;};var SS_arrayForEach=function(fun,arr){var len=arr.length;for(var i=0;i<len;i++){if(i in arr){fun(arr[i]);}}};var SS_arrayMap=function(fun,arr){var len=arr.length;var result=[];for(var i=0;i<len;i++){if(i in arr){result[i]=fun(arr[i]);}}
return result;};var SS_arrayFoldLeft=function(fun,start,arr){var len=arr.length;for(var i=3;i<arguments.length;i++){var l=arguments[i].length;if(l!==len){throw new Error('SS_arrayFoldLeft: all array arguments must have the same length. Argument '+i+' has length '+l+' and should have length '+len+'.');}}
var args=[];for(var i=0;i<len;i++){args[0]=start;for(var j=2;j<arguments.length;j++){args[j-1]=arguments[j][i];}
start=fun.apply(null,args);}
return start;};var SS_arraySort=function(fun,arr){if(!SS_isArray(arr)){throw new TypeError('SS_arraySort: The second parameter is not a JavaScript Array object.');}
return arr.slice(0).sort(fun);};var SS_arrayFilter=function(fun,arr){var r=[];for(var i=0,ilen=arr.length;i<ilen;i++){var a=arr[i];if(fun(a)){r.push(a);}}
return r;};var SS_trim=function(str){return str.replace(/^\s+|\s+$/g,'');};var SS_capitalize=function(str){return str.charAt(0).toUpperCase()+str.substr(1);};var SS_templates={};var SS_renderTemplate=function(name,params){var temp=SS_templates[name];if(!temp){if(console&&console.log){console.log('No template with name "'+name+'"');}
throw new Error('No template with name "'+name+'"');}
if(params){for(var prop in params){temp=temp.replace(new RegExp('\\{\\{'+prop+'\\}\\}'),params[prop]);}}
return temp;};var SS_loadXmlTemplates=function(url,callbacks){if((!callbacks)||((typeof callbacks.success)!='function')||((typeof callbacks.failure)!='function')){throw new Error('SS_loadXmlTemplates: must supply function callbacks for both success and failure');}
SS_xhr('GET',url,{on200:function(xhr){var docEl=xhr.responseXML.documentElement;var cns=docEl.childNodes;for(var i=0,ilen=cns.length;i<ilen;i++){var cn=cns[i];if(cn.tagName){var text;if(cn.textContent!==undefined){text=cn.textContent;}
else if(cn.text!==undefined){text=cn.text;}
else{throw new Error('SS_loadXmlTemplates: cannot read text content of XML node');}
SS_templates[cn.getAttribute("id")]=text.replace(/^\s*/,'').replace(/\s*$/,'');}}
callbacks.success();},onComplete:function(xhr){return callbacks.failure();}});};var SS_deepCopy=function(obj){var type=typeof obj;if(type=='string'||type=='number'){return obj;}
else if(obj instanceof Array){var r=[];for(var i=0,ilen=obj.length;i<ilen;i++){r.push(SS_deepCopy(obj[i]));}
return r;}
else{var r={};for(var p in obj){r[p]=SS_deepCopy(obj[p]);}
return r;}};var SS_bindCall=function(fn){var i,len,args=[];for(i=1,len=arguments.length;i<len;i++){args.push(arguments[i]);}
return function(){for(i=0,len=arguments.length;i<len;i++){args.push(arguments[i]);}
return fn.apply(null,args);};};var SS_identity=function(x){return x;};var SS_genNum=(function(){var i=0;return function(){return++i;}})();var SS_clone=(function(){var F=function(){};return function(o){F.prototype=o;return new F();};})();(function(){var global=this;var doOpen=function(url,name,props){var w=window.open(url,name,props);w.focus();return w;};global.SS_openHelpPopup=function(url){return doOpen(url,'help','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,height=650,width=625');};global.SS_openLegalPopup=function(url){return doOpen(url,'_blank','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,height=650,width=555');};global.SS_openPopup=function(url,name){return doOpen(url,name,'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');};})();var SS_walkTheDom=function(node,func){func(node);node=node.firstChild;while(node){SS_walkTheDom(node,func);node=node.nextSibling;}};var SS_yellowFade=function(el){var b=155;var f=function(){el.style.background='rgb(255,255,'+(b+=4)+')';if(b<255){setTimeout(f,40);}};f();};(function(){var global=this;var Validate={wrap:function(n){var p=n.parentNode;if(SS_hasClass(p,"errorWrap")){return p;}
var s=document.createElement('span');p.insertBefore(s,n);SS_addClass(s,"errorWrap");s.appendChild(n);return s;},unwrap:function(n){var s=n.parentNode;if(!SS_hasClass(s,"errorWrap")){return;}
s.parentNode.insertBefore(n,s);s.parentNode.removeChild(s);},show:function(n,hide){var t=n.type,ua=navigator.userAgent,toggleClass=(hide?'SS_removeClass':'SS_addClass'),s,isSafari=ua.match(/Safari/);if((n.tagName&&n.tagName.toLowerCase()==='textarea')||(t&&(t.match(/^text/i)||t.match(/^password/)))){if(isSafari){global[toggleClass](n,'safariErrorText');}else{global[toggleClass](n,'errorText');}}else if(t&&t.match(/^file/)){if(isSafari){if(hide){this.unwrap(n);}else{s=this.wrap(n);SS_addClass(s,"safariErrorFile");}}else{global[toggleClass](n,"errorFile");}}else if(t&&(t.match(/^radio/i)||t.match(/^checkbox/i))){if(ua.match(/MSIE/)||ua.match(/Opera/)){global[toggleClass](n,"ieErrorRC");}else{if(hide){this.unwrap(n);}else{s=this.wrap(n);if(isSafari){SS_addClass(s,"safariErrorRC");}else{SS_addClass(s,"errorRC");}}}}else if(t&&t.match(/^select/i)){if(ua.match(/firefox/i)){global[toggleClass](n,"firefoxErrorSelect");}else{if(hide){this.unwrap(n);}else{s=this.wrap(n);if(ua.match(/Safari/)){SS_addClass(s,"safariErrorSelect");}else{SS_addClass(s,"errorSelect");}}}}},hide:function(el){this.show(el,true);},showAlert:function(){alert('Sorry, errors were found. Please correct the errors indicated in red.');},isFormValidAndShow:function(form,options){options=options||{};var valid=this.formElements(form);if(!valid&&(options.alert!==false)){this.showAlert();}
return valid;},isFormValid:function(form){var els=form.elements;for(var i=0,ilen=els.length;i<ilen;i++){if(!Validate.isInputValid(els[i])){return false;}}
return true;},formElements:function(form){this.isFormValidation=true;var els=form.elements,flag=true,firstElWithError;for(var i=0,ilen=els.length;i<ilen;i++){var el=els[i];flag=this.isInputValidAndShow(el)&&flag;if(!firstElWithError&&!flag){firstElWithError=el;}}
if(!flag){if(firstElWithError.scrollIntoView){firstElWithError.scrollIntoView();};}
this.isFormValidation=false;return flag;},showInputErrorMsgs:function(el,msgs){var errElId=el.form.name+'_'+el.name+'_'+el.id+'_'+'error',err=document.getElementById(errElId);if(msgs.length){if(!err){err=document.createElement('div');err.id=errElId;el.parentNode.insertBefore(err,el.nextSibling);SS_addClass(err,'errorMsgDiv');}
this.show(el);SS_addClass(err,'errorMsg');err.innerHTML='<p class="head">Sorry, the item just above...</p><ul><li>'+(msgs.join('</li><li>'))+'</li></ul><p class="foot">Correct the error(s) above before continuing. Please refer to the online help for additional assistance.</p>';}else{this.hide(el);if(err){SS_removeClass(err,'errorMsg');err.innerHTML='';}}},_isInputValid:function(el){var msgs=[],cls=el.className.match(/(v\S*)/g);if(!cls){return[];}
if(!(SS_hasClass(el,'vAllowBlank')&&(el.value==""||el.value.match(/^\s+$/)))){for(var i=0,len=cls.length;i<len;i++){var list=cls[i].split('_');var op=list[0];if(global.SS_validate[op]){list[0]=el;var m=global.SS_validate[op].apply(null,list);if(m){msgs=msgs.concat(m);}}}}
return msgs;},isInputValid:function(el){return(Validate._isInputValid(el)).length<1;},isInputValidAndShow:function(el){var msgs=Validate._isInputValid(el);this.showInputErrorMsgs(el,msgs);return(msgs.length<1);},autoInit:function(doc){var fs=(doc||document).forms;for(var i=0,len=fs.length;i<len;i++){this.initForm(fs[i]);}},initForm:function(f){SS_on(f,'submit',(function(f){return function(e){if(!Validate.isFormValidAndShow(f)){SS_preventDefault(e);}};})(f));var els=f.elements;}
};global.SS_discoverValidatingForms=function(doc){return Validate.autoInit(doc);};global.SS_isInputValidAndShow=function(el){return Validate.isInputValidAndShow(el);};global.SS_isFormValidAndShow=function(el,options){return Validate.isFormValidAndShow(el,options);};global.SS_validate={vIsPresent:function(el){return(/^\s*$/.test(el.value))?'cannot be left blank':'';},vIsInteger:function(el){return el.value.match(/^\s*\d+\s*$/)?'':'must be a number';},vHasMaxLength:function(el,max){if(typeof max=='string'){max=parseInt(max,10);}
return(el.value.length>max)?('is too long. The maximum length is '+max):'';},vHasMinLength:function(el,min){if(typeof min=='string'){min=parseInt(min,10);}
return(el.value.length<min)?('is too short. The minimum length is '+min):'';},vHasNoScripts:function(el){return(el.value.match(/<[^>]*\s*script(\s+[^>]*>|>)/i))?'cannot contain scripts':'';},vHasNoHtml:function(el){return(el.value.match(/<[\/]*\s*(a|abbr|acronym|address|applet|area|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|dd|del|dir|div|dfn|dl|dt|em|embed|fieldset|font|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|hr|html|i|iframe|img|input|ins|isindex|kbd|label|legend|li|link|map|menu|meta|noframes|noscript|object|ol|optgroup|option|p|param|pre|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|ul|var|xmp)(\s+[^>]*>|>)/i))?'cannot contain any HTML tags':'';},vIsText:function(el,max){if(!max){if(el.tagName.toLowerCase()=='textarea'){max=600;}else{max=500;}}
var ms=[],m;if(m=global.SS_validate.vIsPresent(el)){ms.push(m);}
if(m=global.SS_validate.vHasMaxLength(el,max)){ms.push(m);}
if(m=global.SS_validate.vHasNoScripts(el)){ms.push(m);}
return ms;},vIsEmail:function(el){return(el.value.match(/^\s*[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]\s*$/))?'':'must be a valid email address';},vIsChecked:function(el){return(el.checked)?'':'must be checked';}};})();