var _DEBUG=true;var SCROLL_WIDTH=18;var g_SpecialEffects=true;var g_StringTable={};function $(){var elements=[];for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=="string")element=document.getElementById(element);if(arguments.length==1)return element;elements.push(element);}return elements;}function $$(enumerable){var result=[];if(enumerable){for(var i=0;i<enumerable.length;i++){result.push(enumerable[i]);}}return result;}function getString(id){return g_StringTable[id];}function getLanguage(){return g_Language;}function ltr(){return g_Direction=="ltr";}function rtl(){return g_Direction=="rtl";}function getHtmlDirection(){return(g_Direction=='ltr')?'left':'right';}function getHtmlRDirection(){return(g_Direction=='ltr')?'right':'left';}function isTrue(value){return(typeof(value)=="string"&&value.toLowerCase()=="true")||(typeof(value)=="boolean"&&value);}function ifUndefined(obj,def){if(def==undefined)def="";return obj!=undefined?obj:def;}Object.extend=function(dest,src){for(var p in src){dest[p]=src[p];}return dest;};Function.prototype.bind=function(context){var method=this;var args=$$(arguments);return function(){return method.apply(context,args.slice(1).concat($$(arguments)));};};Function.prototype.bindAsEvent=function(context){var method=this;var ar=$$(arguments).slice(1);return function(event){var args=[event||window.event].concat(ar);method.apply(context,args.concat($$(arguments)));};};Function.prototype.extend=function(src){for(var p in src){this.prototype[p]=src[p];}return this.prototype;};Function.prototype.inherits=function(base){function inheritance(){};inheritance.prototype=base.prototype;this.prototype=new inheritance();this.prototype.constructor=this;if(base.prototype.base){this.baseConstructor=base;this.base=base.prototype;}else{this.prototype.baseConstructor=base;this.prototype.base=base.prototype;}};Function.prototype.deepInherits=function(base){function inheritance(){};inheritance.prototype=base.prototype;this.prototype=new inheritance();this.prototype.constructor=this;this.baseConstructor=base;this.base=base.prototype;};Object.extend(Array.prototype,{add:function(item,nodup){nodup=nodup||false;if(!(nodup&&this.contains(item)))this.push(item);return item;},insertAt:function(index,item){this.splice(index,0,item);},removeAt:function(index){this.splice(index,1);},remove:function(item){var index=this.indexOf(item);if(index>=0)this.removeAt(index);},clear:function(){this.length=0;return this;},empty:function(){return this.length==0;},moveBefore:function(index1,index2){var item1=this[index1];this.splice(index1,1);this.splice((index2<index1?index2:index2-1),0,item1);},moveAfter:function(index1,index2){var item1=this[index1];this.splice(index1,1);this.splice((index2<index1?index2+1:index2),0,item1);},swap:function(index1,index2){var tmp=this[index1];this[index1]=this[index2];this[index2]=tmp;},indexOf:function(item){for(var i=0;i<this.length;i++){if(this[i]==item)return i;}return-1;},contains:function(item){return this.indexOf(item)>=0;},findByProp:function(prop,value){for(var i=0;i<this.length;i++){if(this[i]&&(this[i][prop]==value))return this[i];}return null;},indexByProp:function(prop,value){for(var i=0;i<this.length;i++){if(this[i]&&(this[i][prop]==value))return i;}return-1;},each:function(fn){var result=null;for(var i=0;i<this.length;i++){if(result=fn(this[i]))break;}return result;},reach:function(fn){var result=null;for(var i=this.length-1;i>=0;i--){if(result=fn(this[i]))break;}return result;},equalTo:function(ar){if(this.length==ar.length){for(var i=0;i<this.length;i++){if(ar.indexOf(this[i])==-1)return false;}return true;}return false;},copy:function(enumerable){this.length=0;if(enumerable){for(var i=0;i<enumerable.length;i++){this.push(enumerable[i]);}}},getEnumerator:function(){var _this=this;return{_container:_this,_index:-1,next:function(){this._index++;return(this._index>-1)&&(this._index<this._container.length);},current:function(){return this._container[this._index];},reset:function(){this._index=-1;}};}});Object.extend(String.prototype,{trim:function(){return this.replace(/(^\s+)|(\s+$)/g,"");},repeat:function(count){var list=[];while(count--)list.push(this);return list.join("");},remove:function(words){var str=this;for(var i=0;i<arguments.length;i++)str=str.replace(arguments[i],"");return str;},toSentenceCase:function(){var str=this.toLowerCase();var c=str.charAt(0).toUpperCase();return c+str.substring(1);},toCapitalizeCase:function(){var re=/(?:^|\s+)(\w)/gi;var str=this.toLowerCase();return str.replace(re,function(str){return str.toUpperCase();});},toToggleCase:function(){return this.replace(/\w/gi,function(c){return(c.toLowerCase()==c)?c.toUpperCase():c.toLowerCase();});},toDate:function(){var reg=/(\d+)\/(\d+)\/(\d+)/ig;if((arr=reg.exec(this))!=null)return new Date(arr[3],arr[2]-1,arr[1]);else return null;},toSqlDateTime:function(){var reg=/^(\d+)\/(\d+)\/(\d+)(\s(\d+):(\d+):(\d+))?$/ig;var str="0000-00-00 00:00:00";if((arr=reg.exec(this))!=null){str=arr[3]+"-"+arr[2]+"-"+arr[1];if(arr[4]!="")str+=" "+arr[5]+":"+arr[6]+":"+arr[7];else str+=" 00:00:00";}return str;},part:function(sep,index){var parts=this.split(sep);return index<parts.length?parts[index]:"";}});Object.extend(Date.prototype,{previousMonth:function(){return new Date(this.getFullYear(),this.getMonth()-1,1);},nextMonth:function(){return new Date(this.getFullYear(),this.getMonth()+1,1);},equals:function(date){return(this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate());},format:function(str){var days=['Sunday','Monday','Tuesday','Wensday','Thursday','Friday','Saturday'];var months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];var fullMonths=['January','February','March','April','May','June','July','August','September','October','November','December'];str=str.replace("%d",this.getDate());str=str.replace("%l",days[this.getDay()]);str=str.replace("%m",this.getMonth()+1);str=str.replace("%M",months[this.getMonth()]);str=str.replace("%F",fullMonths[this.getMonth()]);str=str.replace("%y",this.getFullYear().toString().substring(2));str=str.replace("%Y",this.getFullYear());return str;}});Object.extend(Math,{linearTween:function(t,b,c,d){return c*t/d+b;},easeInQuad:function(t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOutQuad:function(t,b,c,d){if((t=t/d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},easeInCubic:function(t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic:function(t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic:function(t,b,c,d){if((t=t/d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart:function(t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart:function(t,b,c,d){if((t=t/d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},easeInQuint:function(t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint:function(t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint:function(t,b,c,d){if((t=t/d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine:function(t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine:function(t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine:function(t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo:function(t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOutExpo:function(t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t=t/d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},easeInCirc:function(t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},easeOutCirc:function(t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},easeInOutCirc:function(t,b,c,d){if((t=t/d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},easeInElastic:function(t,b,c,d,a,p){if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*0.3;if(a<Math.abs(c)){a=c;var s=p/4;}else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},easeOutElastic:function(t,b,c,d,a,p){if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*0.3;if(a<Math.abs(c)){a=c;var s=p/4;}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},easeInOutElastic:function(t,b,c,d,a,p){if(t==0)return b;if((t=t/d/2)==2)return b+c;if(!p)p=d*(0.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4;}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},easeInBack:function(t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},easeOutBack:function(t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},easeInOutBack:function(t,b,c,d,s){if(s==undefined)s=1.70158;if((t=t/d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},easeInBounce:function(t,b,c,d){return c-Math.easeOutBounce(d-t,0,c,d)+b;},easeOutBounce:function(t,b,c,d){if((t=t/d)<(1/2.75))return c*(7.5625*t*t)+b;else if(t<(2/2.75))return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;else if(t<(2.5/2.75))return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;else return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;},easeInOutBounce:function(t,b,c,d){if(t<d/2)return Math.easeInBounce(t*2,0,c,d)*.5+b;return Math.easeOutBounce(t*2-d,0,c,d)*.5+c*.5+b;}});var sjcl={version:{major:1,minor:0,revision:0,toString:function(){return[this.major,this.minor,this.revision].join(".");}},_nextId:0,_zIndexes:{Window:1000,Popup:10000,Menu:20000,ToolTip:40000,Effect:50000,Topmost:100000},isScriptLoaded:function(file){var col=document.getElementsByTagName("SCRIPT");for(var i=0;i<col.length;i++)if(col[i].src.indexOf(file)!=-1)return true;return false;},isStyleLoaded:function(file){var col=document.getElementsByTagName("LINK");for(var i=0;i<col.length;i++)if(col[i].href.indexOf(file)!=-1)return true;return false;},require:function(file){if(document.body){if(!sjcl.isScriptLoaded(file))document.body.appendChild(document.createElement("SCRIPT")).src=file;}else{sjcl.event.add(window,"load",function(){if(!sjcl.isScriptLoaded(file))document.body.appendChild(document.createElement("SCRIPT")).src=file;});}},requireStyle:function(file){if(document.body)if(!sjcl.isStyleLoaded(file)){var head=document.getElementsByTagName('HEAD');head=head[0];var link=head.appendChild(document.createElement('LINK'));link.rel='Stylesheet';link.href=file;}else sjcl.event.add(window,'load',function(file){if(!sjcl.isStyleLoaded(file)){var head=document.getElementsByTagName('HEAD');head=head[0];var link=head.appendChild(document.createElement('LINK'));link.rel='Stylesheet';link.href=file;}});},CollectionBase:function(){},Collection:function(){this._items=[];},StringBuilder:function(glue){this._buffer=[];this.glue=glue||"";},Clipboard:function(){},guid:function(prefix){prefix=prefix||"";return prefix+ ++this._nextId;},fromJson:function(str){return eval(str);},zIndex:function(type,step){type=type||"Topmost";step=step||(type=="Window"?3:1);this._zIndexes[type]+=step;return this._zIndexes[type];},time:function(){return(new Date()).valueOf();},escape:function(str){return encodeURIComponent(str);if(str==null)return"";var buffer=[];for(var i=0;i<str.length;i++){var unicode=str.charCodeAt(i);var delta=0;if(unicode>128){if(unicode==1548)delta=1387;else if(unicode==1567)delta=1376;else if(unicode>=1569&&unicode<=1590)delta=1376;else if(unicode>=1591&&unicode<=1594)delta=1375;else if(unicode>=1601&&unicode<=1603)delta=1380;else if(unicode==1604)delta=1379;else if(unicode>=1605&&unicode<=1608)delta=1378;else if(unicode>=1609&&unicode<=1610)delta=1373;else if(unicode>=1611&&unicode<=1614)delta=1371;else if(unicode>=1615&&unicode<=1616)delta=1370;else if(unicode>=1617)delta=1369;var ascii=unicode-delta;var tmp=ascii.toString(16);if(tmp.length==1)tmp="0"+tmp;buffer.push("%"+tmp);}else buffer.push(str.charAt(i));}return buffer.join("");},unescape:function(str){return decodeURIComponent(str);},escapeBrackets:function(str){return str.replace(/</gi,"&lt;").replace(/>/gi,"&gt;");},encodeHtml:function(str){return str.replace(/<|>|&|"/gi,function(match){var chars=['<','>','&','"'];var codes=['&lt;','&gt;','&amp;','&quot;'];return codes[chars.indexOf(match)];});},decodeHtml:function(str){return str.replace(/&lt;|&gt;|&amp;|&quot;/gi,function(match){var chars=['<','>','&','"'];var codes=['&lt;','&gt;','&amp;','&quot;'];return chars[codes.indexOf(match)];});},escapeQuote:function(str){return str.replace(/"/ig,"&quot;");},escapeRegex:function(str){return str.replace(/([-\\\/?().*+{}\[\]^])/ig,"\\$1");},isWS:function(str){return!(/[^\t\n\r ]/.test(str));},isML:function(str){return(/[\n\r]/.test(str));},getTagText:function(tag){var reg=new RegExp("<[^>]+>([^<]*)</\\w+>","g");var result=reg.exec(tag);return result?result[1]:"";},setTagText:function(tag,text){var reg=/(<[^>]+>)[^<]*(<\/\w+>)/g;return tag.replace(reg,"$1"+text+"$2");},stripTags:function(str){return str?str.replace(/<\/?[^>]+>/gi,''):"";},rand:function(min,max){var number=Math.round(Math.random()*10000);var range=max-min+1;return min+(number%range);},parseFileName:function(name){var ar=name.match(/(\w+)(?:\.(\w+))?/g);return ar?{name:RegExp.$1,ext:RegExp.$2}:null;},bbCodeToHtml:function(str){var reg=/\[(\/)?(b|u|hr|ul|ol|li|h1|h2|h3|h4|h5|h6)(\s\/)?\]/gi;return str.replace(reg,"<$1$2$3>");},nlTobr:function(str){return str.replace(/\n/gi,"<br />");},brTonl:function(str){return str.replace(/<br\s*\/?>/ig,"\n");},htmlEntities:function(str){var chars=new Array('&','à','ل','â','م','ن','ه','و','ç','è','é','ê','ë','ى','ي','î','ï','ً','ٌ','ٍ','َ','ô','ُ','ِ','ّ','ù','ْ','û','ü','‎','‏','ے','ہ','ء','آ','أ','ؤ','إ','ئ','ا','ب','ة','ت','ث','ج','ح','خ','د','ذ','ر','ز','س','ش','ص','ض','ط','ظ','ع','غ','ـ','ف','ق','€','\"','ك','<','>','¢','£','¤','¥','¦','§','¨','©','ھ','«','¬','­','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','؛','»','¼','½','¾');var entities=new Array('amp','agrave','aacute','acirc','atilde','auml','aring','aelig','ccedil','egrave','eacute','ecirc','euml','igrave','iacute','icirc','iuml','eth','ntilde','ograve','oacute','ocirc','otilde','ouml','oslash','ugrave','uacute','ucirc','uuml','yacute','thorn','yuml','Agrave','Aacute','Acirc','Atilde','Auml','Aring','AElig','Ccedil','Egrave','Eacute','Ecirc','Euml','Igrave','Iacute','Icirc','Iuml','ETH','Ntilde','Ograve','Oacute','Ocirc','Otilde','Ouml','Oslash','Ugrave','Uacute','Ucirc','Uuml','Yacute','THORN','euro','quot','szlig','lt','gt','cent','pound','curren','yen','brvbar','sect','uml','copy','ordf','laquo','not','shy','reg','macr','deg','plusmn','sup2','sup3','acute','micro','para','middot','cedil','sup1','ordm','raquo','frac14','frac12','frac34');for(var i=0;i<chars.length;i++){reg=new RegExp();reg.compile(chars[i],'g');str=str.replace(reg,'&'+entities[i]+';');}return str;},insertFlash:function(e,src,width,height){var sb=new sjcl.StringBuilder();sb.write('<embed pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"');sb.write(' src="'+src+'"');if(width)sb.write(' width="'+width+'"');if(height)sb.write(' height="'+height+'"');sb.write('></embed>');e.innerHTML=sb.toString();},formatFileSize:function(size){var len=String(size).length;if(len>=10)return Math.ceil(size/1073741824)+" GB";else if(7<=len&&len<=9)return Math.ceil(size/1048576)+" MB";else if(4<=len&&len<=6)return Math.ceil(size/1024)+" KB";else return size+" byte";},copyToClipboard:function(str){clipboardData.setData("Text",str);}};sjcl.CollectionBase.extend({each:function(fn){this._items.each(fn);},reach:function(fn){this._items.reach(fn);},add:function(item){if(this.parent)item.owner=this.parent;item.parent=this;item.ordinal=this._items.length;this._items.push(item);return item;},insert:function(index,item){if(this.parent)item.owner=this.parent;item.parent=this;this._items.splice(index,0,item);for(var i=0;i<this._items.length;i++)this._items[i].ordinal=i;return item;},item:function(index){var obj;if(typeof index=="number")obj=this._items[index];else obj=this._items.findByProp("name",index);return obj!=-1?obj:null;},itemById:function(id){return this._items.findByProp("id",id);},remove:function(item){this._items.remove(item);},indexOf:function(name){return this.item(name).ordinal;},length:function(){return this._items.length;},clear:function(){this._items.length=0;}});sjcl.Collection.inherits(sjcl.CollectionBase);sjcl.StringBuilder.extend({write:function(str){this._buffer.push(str);},writeLn:function(str){this._buffer.push(str+"\n");},clear:function(){this._buffer.clear();},empty:function(){return this._buffer.length==0;}});sjcl.StringBuilder.prototype.toString=function(){return this._buffer.join(this.glue);};sjcl.Clipboard.extend({read:function(){return clipboardData.getData("Text");},write:function(str){clipboardData.setData("Text",str);}});sjcl.browser=new function(){this.version=parseInt(navigator.appVersion);this.agent=navigator.userAgent.toLowerCase();this.isNetscape=navigator.appName.indexOf("Netscape")!=-1;this.isIE=navigator.appName.indexOf("Microsoft")!=-1;this.isIE7=this.agent.match(/msie [7-9]\.0/i)!=null;this.isIE70=this.agent.match(/msie 7.0/i)!=null;this.isFireFox=this.agent.indexOf("firefox")!=-1;this.isOpera=this.agent.indexOf("opera")!=-1;this.isMSIE=this.isIE&&!this.isOpera;this.isWindows=this.agent.indexOf("win")!=-1;this.isMac=this.agent.indexOf("mac")!=-1;this.isUnix=this.agent.indexOf("X11")!=-1;this.windowlessSelect=this.isIE7||this.isFireFox;this.fixedPositioning=this.isIE70||this.isFireFox;};Object.extend(sjcl.browser,{automation:function(serverName){try{return new ActiveXObject(serverName);}catch(e){return false;}},screenWidth:function(){return screen.width;},screenHeight:function(){return screen.height;},clientWidth:function(){var html=sjcl.browser.isOpera?document.body:document.body.parentNode;return html.clientWidth;},clientHeight:function(){var html=sjcl.browser.isOpera?document.body:document.body.parentNode;return html.clientHeight;},scrollLeft:function(){var html=sjcl.browser.isOpera?document.body:document.body.parentNode;return html.scrollLeft;},scrollTop:function(){var html=sjcl.browser.isOpera?document.body:document.body.parentNode;return html.scrollTop;}});sjcl.cookie={read:function(name){var strCookie=document.cookie;if(strCookie=="")return false;var start=strCookie.indexOf(name+'=');if(start==-1)return false;start+=name.length+1;var end=strCookie.indexOf(';',start);if(end==-1)end=strCookie.length;return unescape(strCookie.substring(start,end));},write:function(name,value,days,path,domain,secure){var strCookie=name+"="+escape(value);if(days){var expiration=new Date((new Date()).getTime()+days*86400000);strCookie+='; expires='+expiration.toGMTString();}if(path)strCookie+='; path='+path;if(domain)strCookie+='; domain='+domain;if(secure)strCookie+='; secure';document.cookie=strCookie;},remove:function(name,path,domain){var strCookie=name+'=';if(path)strCookie+='; path='+path;if(domain)strCookie+='; domain='+domain;strCookie+='; expires=Fri, 27-Dec-1975 00:00:00 GMT';document.cookie=strCookie;}};sjcl.path={root:"",theme:"",images:"images",js:"js",css:"css",dir:"ltr",mapThemeLocaleCSS:function(file){return[this.root,this.theme,this.css,this.dir,file].join("/");},mapThemeNeutralCSS:function(file){return[this.root,this.theme,this.css,file].join("/");},mapSjclScript:function(file){return[this.root,this.js,"sjcl",file].join("/");},mapGlobalScript:function(file){return[this.root,this.js,"global",file].join("/");},mapLocalScript:function(file){return[this.root,this.js,"local",file].join("/");},mapNeutralScript:function(file){return[this.root,this.js,file].join("/");},mapThemeNeutralScript:function(file){return[this.root,this.theme,this.js,file].join("/");},mapNeutralImage:function(file){return[this.root,this.images,file].join("/");},mapLocaleImage:function(file){return[this.root,this.images,this.dir,file].join("/");},mapThemeNeutralImage:function(file){return[this.root,this.theme,this.images,file].join("/");},mapThemeLocaleImage:function(file){return[this.root,this.theme,this.images,this.dir,file].join("/");},neutralImagesUrl:function(){return[this.root,this.images].join("/");},localeImagesUrl:function(){return[this.root,this.images,this.dir].join("/");},themeNeutralImagesUrl:function(){return[this.root,this.theme,this.images].join("/");},themeLocaleImagesUrl:function(){return[this.root,this.theme,this.images,this.dir].join("/");}};sjcl.Url=function(url){this.url=url?url:window.location.href;this.pathName="";this.hash="";this.search={text:"",toString:function(){var sb=new sjcl.StringBuilder("&");for(var p in this){if(p&&(typeof this[p]!="function")&&(p!="text")&&(this[p]!=null)){sb.write(p+"="+this[p]);}}return sb.toString();}};this._load();this._parseSearch();};sjcl.Url.extend({_load:function(){var parts=this.url.match(/([^?#]+)(?:\?([^#]+))?(?:#(.+))?/);this.pathName=parts[1];this.search.text=parts[2];this.hash=parts[3];},_parseSearch:function(){if(!this.search.text)return;var parts=this.search.text.split("&");for(var i=0,n=parts.length;i<n;i++){parts[i]=parts[i].split("=");}for(var i=0,n=parts.length;i<n;i++){if(parts[i].length==2)this.search[parts[i][0]]=unescape(parts[i][1]);}}});sjcl.Url.prototype.toString=function(){var url=this.pathName;var str=this.search.toString();if(str.length>0)url+="?"+str;if(this.hash)url+="#"+this.hash;return url;};sjcl.debug={_console:null,_indent:0,_initConsole:function(){if((this._console==null)||(this._console.closed)){this._console=open("","Console","width=600,height=300,resizable=yes,scrollbars=yes");this._console.document.open("text/plain");}this._console.focus();},getIndent:function(){var str="";for(var i=0;i<this._indent;i++)str+="\t";return str;},indent:function(){this._indent++;},unIndent:function(){if(this._indent>0)this._indent--;},write:function(msg){var doc;if(typeof msg=="undefined")msg="";this._initConsole();doc=this._console.document;doc.write(msg);doc.body.scrollTop=doc.body.scrollHeight-doc.body.clientHeight;},writeLine:function(msg){var br=!sjcl.browser.isMSIE?"<br />":"";var doc;if(typeof msg=="undefined")msg="";this._initConsole();doc=this._console.document;doc.writeln(this.getIndent()+msg+br);doc.body.scrollTop=doc.body.scrollHeight-doc.body.clientHeight;},writeIf:function(exp,msg){if(exp)this.write(msg);},writeLineIf:function(exp,msg){if(exp)this.writeLine(msg);},dump:function(obj,shallow){shallow=(shallow!=undefined)?shallow:true;for(var p in obj){switch(typeof obj[p]){case"function":this.writeLine(p+": function(){...}");break;case"object":if(obj[p]==null)this.writeLine(p+" -> NULL");else if(obj==obj[p])this.writeLine(p+" -> [Recursive]");else{this.writeLine(p+" ->");if(!shallow){this.indent();this.dump(obj[p]);this.unIndent();}}break;case"unknown":this.writeLine(p+": [Unknown Type]");break;default:this.writeLine(p+": "+obj[p]);break;}}}};sjcl.event={_criticalEvents:[],add:function(e,evt,handler,capture,critical){capture=capture?capture:false;if(e.addEventListener)e.addEventListener(evt,handler,capture);else e.attachEvent("on"+evt,handler);if(critical)this._criticalEvents.add(handler,true);return handler;},remove:function(e,evt,handler,capture){capture=capture?capture:false;if(e.removeEventListener)e.removeEventListener(evt,handler,capture);else e.detachEvent("on"+evt,handler);if(this._criticalEvents.contains(handler))this._criticalEvents.remove(handler);},addMouseHoverEvents:function(e,overHandler,outHandler,capture){if(e.addEventListener){capture=capture?capture:false;overHandler&&e.addEventListener("mouseover",overHandler,capture);outHandler&&e.addEventListener("mouseout",outHandler,capture);}else{overHandler&&e.attachEvent("onmouseenter",overHandler);outHandler&&e.attachEvent("onmouseleave",outHandler);}},removeMouseHoverEvents:function(e,overHandler,outHandler,capture){if(e.removeEventListener){capture=capture?capture:false;overHandler&&e.removeEventListener("mouseover",overHandler,capture);outHandler&&e.removeEventListener("mouseout",outHandler,capture);}else{overHandler&&e.detachEvent("onmouseenter",overHandler);outHandler&&e.detachEvent("onmouseleave",outHandler);}},cancel:function(event){if(event.preventDefault)event.preventDefault();else event.returnValue=false;},source:function(event){return event.target?event.target:event.srcElement;},relatedTarget:function(event){return event.relatedTarget?event.relatedTarget:event.toElement;;}};sjcl.Event=function(evt){this._event=evt?evt:window.event;this.target=this._event.target?this._event.target:this._event.srcElement;this.relatedTarget=this._event.relatedTarget?this._event.relatedTarget:this._event.toElement;this.clientX=this._event.clientX;this.clientY=this._event.clientY;this.pageX=this.clientX+document.body.parentNode.scrollLeft;this.pageY=this.clientY+document.body.parentNode.scrollTop;this.keyCode=this._event.keyCode;this.charCode=this._event.charCode?this._event.charCode:this._event.keyCode;this.button=this._event.button;this.altKey=this._event.altKey;this.ctrlKey=this._event.ctrlKey;this.shiftKey=this._event.shiftKey;};sjcl.Event.extend({cancelPropagation:function(){if(this._event.stopPropagation)this._event.stopPropagation();else this._event.cancelBubble=true;try{for(var i=0;i<sjcl.event._criticalEvents.length;i++)sjcl.event._criticalEvents[i]();}catch(e){}},cancelDefault:function(){if(this._event.preventDefault)this._event.preventDefault();else this._event.returnValue=false;},findByTagName:function(tag){return sjcl.dom.getAncestorByTagName(this.target,tag);},findByAttribute:function(attr){return sjcl.dom.getAncestorByAttribute(this.target,attr);},findByAttributeValue:function(attr,value){return sjcl.dom.getAncestorByAttribute(this.target,attr,value);},findByClassName:function(name){return sjcl.dom.getAncestorByClassName(this.target,name);},rightButton:function(){return this.button==2;}});sjcl.form={ListBinder:function(e1,e2,spinner,handler){this.e1=e1;this.e2=e2;this.spinner=spinner;this.handler=handler||"/lib/ajax/LoadProductComboBox.php";this.params={Part:1};sjcl.event.add(e1,"change",this._onChange.bind(this));},ListBox:function(e){this.src=e;},TextArea:function(e){this.src=e;},isEmpty:function(str){return str.search(/^\s*$/)!=-1;},isEmail:function(str){return str.search(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,5}$/i)!=-1;},isUrl:function(str){return str.search(new RegExp("^https?:\/\/([^/:]+)(:(\d+))?(\/.*)?","i"))!=-1;},isInteger:function(str){return str.search(/^\d*$/)!=-1;},isFloat:function(str){return str.search(/^\d+(\.\d+)?$/)!=-1;},isDate:function(str){var parts=/^(\d{1,2})(?:-|\/)(\d{1,2})(?:-|\/)(\d{2}|\d{4})$/.exec(str);if(parts!=null){if(parts[1]<1||parts[1]>31)return false;if(parts[2]<1||parts[2]>12)return false;return true;}return false;},isTime:function(str){var parts=/^(\d{1,2})(?:(?::)?(\d{1,2}))?$/.exec(str);if(parts!=null){if(parts[1]>23)return false;if(parts.length>2&&parts[2]>59)return false;return true;}return false;},isEstTime:function(str){return/^\d+(\.\d+)?[dDmMhH\u062F\u0633\u064A]?$/.test(str);},isHexCode:function(code){var str="0123456789abcdefABCDEF";return str.indexOf(String.fromCharCode(code))!=-1;},isMarkup:function(str){var reg=/<[^>]+>/ig;return reg.test(str);},validate:function(form,onError){function raiseError(e,msg){if(onError)onError(e);if(msg)alert(msg);if(!e.disabled)e.focus();}var col=$$(form.getElementsByTagName("INPUT"));var attr;col=col.concat($$(form.getElementsByTagName("TEXTAREA")));for(var i=0,n=col.length;i<n;i++){var e=col[i];if(e.getAttribute("Required")&&sjcl.form.isEmpty(e.value)){raiseError(e,e.getAttribute("RequiredMsg"));return false;}if(e.value&&e.getAttribute("IsEmail")&&!sjcl.form.isEmail(e.value)){raiseError(e,e.getAttribute("IsEmailMsg"));return false;}if(e.value&&e.getAttribute("IsInteger")&&!sjcl.form.isInteger(e.value)){raiseError(e,e.getAttribute("IsIntegerMsg"));return false;}if(e.value&&e.getAttribute("IsFloat")&&!sjcl.form.isFloat(e.value)){raiseError(e,e.getAttribute("IsFloatMsg"));return false;}if(e.value&&e.getAttribute("IsDate")&&!sjcl.form.isDate(e.value)){raiseError(e,e.getAttribute("IsDateMsg"));return false;}if(e.value&&e.getAttribute("IsTime")&&!sjcl.form.isTime(e.value)){raiseError(e,e.getAttribute("IsTimeMsg"));return false;}if(e.value&&e.getAttribute("IsEstTime")&&!sjcl.form.isEstTime(e.value)){raiseError(e,e.getAttribute("IsEstTimeMsg"));return false;}if(e.getAttribute("Change")&&e.value==e.oldValue){raiseError(e,e.getAttribute("ChangeMsg"));return false;}if(attr=e.getAttribute("EqualTo")){var e2=$(attr);if(e2&&(e.value!=e2.value)){raiseError(e,e.getAttribute("EqualToMsg"));return false;}}if(attr=e.getAttribute("LessThan")){if(parseInt(attr)<parseInt(e.value)){raiseError(e,e.getAttribute("LessThanMsg"));return false;}}if(attr=e.getAttribute("GreaterThan")){if(parseInt(attr)>=parseInt(e.value)){raiseError(e,e.getAttribute("GreaterThanMsg"));return false;}}}col=form.getElementsByTagName("SELECT");for(var i=0,n=col.length;i<n;i++){var e=col[i];if(e.getAttribute("Required")){var key=(attr=e.getAttribute("EmptyKey"))?parseInt(attr):0;if((e.selectedIndex==-1)||e.options[e.selectedIndex].value==key){raiseError(e,e.getAttribute("RequiredMsg"));return false;}}}return true;},reset:function(frame){var col=frame.getElementsByTagName("INPUT");for(var i=0;i<col.length;i++){if(col[i].type=="text")col[i].value="";}col=frame.getElementsByTagName("TEXTAREA");for(var i=0;i<col.length;i++)col[i].value="";col=frame.getElementsByTagName("SELECT");for(var i=0;i<col.length;i++)col[i].selectedIndex=-1;}};sjcl.form.ListBinder.extend({_onChange:function(){var url=new sjcl.Url(this.handler);for(var p in this.params)url.search[p]=this.params[p];url.search.ParentId=this.e1.value;this.e2.disabled=true;this.spinner.style.visibility="visible";if(this._wr)this._wr.cancel();this._wr=new sjcl.net.WebRequest(url.toString(),this._onLoad.bind(this));},_onLoad:function(){if(!this._wr.canceled){var list=this._wr.getJson();var lb=new sjcl.form.ListBox(this.e2);while(this.e2.firstChild!=this.e2.lastChild)this.e2.removeChild(this.e2.lastChild);if(list)lb.fillByMatrix(list);this.spinner.style.visibility="hidden";this.e2.disabled=false;}}});sjcl.form.ListBox.extend({add:function(value,id){var item=this.src.appendChild(document.createElement("OPTION"));if(id)item.value=id;item.text=value;},indexOf:function(value){for(var i=0;i<this.src.options.length;i++){if(this.src.options[i].text==value)return i;}return-1;},fill:function(values,ids){var df=document.createDocumentFragment();for(var i=0,n=values.length;i<n;i++){var item=df.appendChild(document.createElement("OPTION"));if(ids)item.value=ids[i];item.text=values[i];}this.src.appendChild(df);},fillByMatrix:function(matrix){var df=document.createDocumentFragment();for(var i=0,n=matrix.length;i<n;i++){var item=df.appendChild(document.createElement("OPTION"));item.value=matrix[i][0];item.text=matrix[i][1];}this.src.appendChild(df);},moveSelection:function(lst,forceRemove){for(var i=this.src.options.length-1;i>=0;i--){var item=this.src.options[i];var added=false;if(item.selected){if(lst.indexOf(item.text)==-1){lst.add(item.text,item.value);added=true;}if(added||forceRemove)this.src.removeChild(item);}}},clearSelection:function(callback){for(var i=this.src.options.length-1;i>=0;i--){var item=this.src.options[i];if(item.selected){if(callback)callback(item);this.src.removeChild(item);}}},clear:function(){while(this.src.firstChild)this.src.removeChild(this.src.firstChild);},length:function(){return this.src.options.length;},getSelectionCount:function(){var count=0;for(var p=this.src.firstChild;p;p=p.nextSibling){if(p.selected)count++;}return count;},getIds:function(selection){var list=[];for(var p=this.src.firstChild;p;p=p.nextSibling){if(!selection||p.selected)list.push(p.value);}return list;},getValues:function(selection){var list=[];for(var p=this.src.firstChild;p;p=p.nextSibling){if(!selection||p.selected)list.push(p.text);}return list;},selectById:function(id){for(var i=0,n=this.src.childNodes.length;i<n;i++){var item=this.src.childNodes.item(i);if(item.value==id){this.src.selectedIndex=i;return;}}},selectByText:function(text){for(var i=0,n=this.src.childNodes.length;i<n;i++){var item=this.src.childNodes.item(i);if(item.text==text){this.src.selectedIndex=i;return;}}}});sjcl.form.TextArea.extend({selection:function(){if(sjcl.browser.isIE)return document.selection.createRange().text;else return this.src.value.substring(this.src.selectionStart,this.src.selectionEnd);},replace:function(str){if(sjcl.browser.isIE){var rng;this.src.focus();rng=document.selection.createRange();rng.text=str;}else{var start=this.src.selectionStart;var end=this.src.selectionEnd;var len=this.src.textLength;var str1=this.src.value.substring(0,start);var str2=this.src.value.substring(end,len);this.src.value=str1+str+str2;this.src.selectionStart=this.src.selectionEnd=end+str.length-len;this.src.focus();}},getCaretPos:function(){if(sjcl.browser.isIE){var str1=this.src.value;var rng=document.selection.createRange();var anchor="_-_";var str2,pos;rng.text=anchor;str2=this.src.value;this.src.value=str1;return str2.indexOf(anchor);}else return this.src.selectionStart;},setCaretPos:function(pos){if(sjcl.browser.isIE){this.src.focus();var rng=this.src.createTextRange();rng.collapse(true);rng.move("character",pos);rng.select();}else this.src.selectionStart=this.src.selectionEnd=pos;}});if(!window.Node){var Node={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_FRAGMENT_NODE:11};}if(!sjcl.browser.isIE){HTMLElement.prototype.__defineGetter__("innerText",function(){return(this.textContent);});HTMLElement.prototype.__defineSetter__("innerText",function(txt){this.textContent=txt;});}sjcl.dom={_CSStoJS:function(style){var parts=style.split("-");var str=parts[0];for(var i=1;i<parts.length;i++)str+=parts[i].toSentenceCase();return str;},_isWSNode:function(node){return!(/[^\t\n\r ]/.test(node.data));},_isIgnorable:function(node){return(node.nodeType==Node.COMMENT_NODE)||((node.nodeType==Node.TEXT_NODE)&&this._isWSNode(node));},isElement:function(node){return node&&node.nodeType==Node.ELEMENT_NODE;},head:function(){return document.documentElement.firstChild;},apply:function(e,fn,tag){tag=tag||"*";var col=e.getElementsByTagName(tag);for(var i=0;i<col.length;i++)fn(col[i]);},replaceIds:function(frame,guid){var col=frame.getElementsByTagName("*");for(var i=0,n=col.length;i<n;i++){var e=col.item(i);if(e.id&&e.id.indexOf("XXX")!=-1)e.id=e.id.replace("XXX",guid);}},replaceLabelsFor:function(frame,guid){if(!sjcl.browser.isMSIE)return;var col=frame.getElementsByTagName("LABEL");for(var i=0;i<col.length;i++){var e=col.item(i);e.setAttribute("htmlFor",e.getAttribute("htmlFor").replace("XXX",guid));}},attachHandlers:function(object,frame){var col=frame.getElementsByTagName("*");for(var i=0,n=col.length;i<n;i++){var e=col.item(i);var index=0;while(++index){var evt=e.getAttribute("Event"+index);var str=e.getAttribute("Handler"+index);if(evt&&str){var handler=str;var args=[object];var method,pos;if((pos=str.indexOf(":"))!=-1){handler=str.substring(0,pos);params=str.substring(pos+1);if(params.length>0)args=args.concat(params.split(","));}if(object[handler]){method=eval(object[handler]);sjcl.event.add(e,evt,method.bind.apply(method,args));}}else break;}}},displayElement:function(e,state){if(state==undefined)state=true;if(state){if(!sjcl.browser.isIE){switch(e.nodeName){case"TABLE":e.style.display="table";break;case"TD":e.style.display="table-cell";break;case"TR":e.style.display="table-row";break;default:e.style.display="block";break;}}else e.style.display="block";}else e.style.display="none";},removeElement:function(e){if(e)e.parentNode.removeChild(e);},insert:function(p,e){if(p.firstChild)p.insertBefore(e,p.firstChild);else p.appendChild(e);},insertAfter:function(e,after){if(after.nextSibling)after.parentNode.insertBefore(e,after.nextSibling);else after.parentNode.appendChild(e);},clear:function(e){while(e&&e.firstChild)e.removeChild(e.firstChild);},getStyle:function(e,p){if(e.currentStyle){return e.currentStyle[this._CSStoJS(p)];}else if(window.getComputedStyle){return window.getComputedStyle(e,"").getPropertyValue(p);}return"";},setStyle:function(e,name,value){switch(name){case"float":name=sjcl.browser.isIE?"styleFloat":"cssFloat";break;case"table-layout":name=sjcl.browser.isIE?"tableLayout":"width";value=sjcl.browser.isIE?"fixed":"100%";break;}e.style[name]=value;},previousSibling:function(node){while((node=node.previousSibling)){if(!this._isIgnorable(node))return node;}return null;},nextSibling:function(node){while((node=node.nextSibling)){if(!this._isIgnorable(node))return node;}return null;},firstChild:function(node){var p=node.firstChild;while(p){if(!this._isIgnorable(p))return p;p=p.nextSibling;}return null;},lastChild:function(node){var p=node.lastChild;while(p){if(!this._isIgnorable(p))return p;p=p.previousSibling;}return null;},nodeData:function(node){var data=node.data;data=data.replace(/[\t\n\r ]+/g," ");return data.trim();},containsElement:function(src,target){if(src==null)return false;if(src.contains)return src.contains(target);else{if(src==target)return true;if(src.hasChildNodes()){for(var i=0,n=src.childNodes.length;i<n;i++){if(this.containsElement(src.childNodes.item(i),target))return true;}}}return false;},getChildren:function(e){var elements=[];var p=this.firstChild(e);while(p){elements.push(p);p=this.nextSibling(p);}return elements;},getElementsByClassName:function(e,name){var col=e.getElementsByTagName("*");var elements=[];for(var i=0,n=col.length;i<n;i++){var item=col.item(i);if(item.className==name)elements.push(item);}return elements;},getElementsByAttribute:function(e,attr){var col=e.getElementsByTagName("*");var elements=[];for(var i=0,n=col.length;i<n;i++){var item=col.item(i);if(item.getAttribute(attr)!=null)elements.push(item);}return elements;},getElementsByTagName:function(e){var col=[];if(arguments.length>1){for(var i=1;i<arguments.length;i++)col=col.concat($$(e.getElementsByTagName(arguments[i])));}return col;},getAncestorByTagName:function(e,tag){for(var p=e;p;p=p.parentNode){if(p.nodeName==tag)return p;}return null;},getAncestorByAttribute:function(e){if(arguments.length<1)return;for(var p=e;p;p=p.parentNode){if(p.getAttribute){for(var i=1;i<arguments.length;i++){if(p.getAttribute(arguments[i]))return p;}}}return null;},getAncestorByAttributeValue:function(e,attr,value){for(var p=e;p;p=p.parentNode){if(p.getAttribute(attr)==value)return p;}return null;},getAncestorByClassName:function(e,name){for(var p=e;p;p=p.parentNode){if(p.className&&(p.className.indexOf(name)!=-1))return p;}return null;},getChildByTagName:function(e,tag){if(e){var col=e.getElementsByTagName(tag);if(col.length>0)return col.item(0);}return null;},getChildByAttribute:function(e,att){var col=e.getElementsByTagName("*");for(var i=0,n=col.length;i<n;i++){var item=col.item(i);if(item.getAttribute(att))return item;}return null;},getChildByAttributeValue:function(e,att,value){if(!e)return null;var col=e.getElementsByTagName("*");for(var i=0,n=col.length;i<n;i++){var item=col.item(i);if(item.getAttribute(att)==value)return item;}return null;},getChildByClassName:function(e,name){var col=e.getElementsByTagName("*");for(var i=0,n=col.length;i<n;i++){var item=col.item(i);if(item.className==name)return item;}return null;},getFirstChildByTagName:function(e,tag){for(p=e;p;p=p.firstChild){if(p.nodeName==tag)return p;}return null;},setAttribute:function(name,value){if(arguments.length>2){for(var i=2;i<arguments.length;i++){var e=$(arguments[i]);if(e)e[name]=value;}}},getFilter:function(e,name){if(g_SpecialEffects&&e.filters&&e.filters.length>0){if(typeof name=="number")return e.filters.item(name);else return e.filters["DXImageTransform.Microsoft."+name];}else return null;},innerText:function(e){if(e.nodeType==Node.TEXT_NODE)return e.data;var text="";for(var p=e.firstChild;p;p=p.nextSibling)text+=arguments.callee(p);return text;},elementPoint:function(e){var left=0;var top=0;while(e){left+=e.offsetLeft;top+=e.offsetTop-e.scrollTop;e=e.offsetParent;}return{left:left,top:top};},elementRect:function(e){var left=0;var top=0;var width=e.offsetWidth;var height=e.offsetHeight;var delta;while(e){left+=e.offsetLeft;top+=e.offsetTop-e.scrollTop;e=e.offsetParent;}return{left:left,top:top,width:width,height:height,right:left+width,bottom:top+height,contains:function(x,y){return(x>=left)&&(x<=left+width)&&(y>=top)&&(y<=top+height);},hContains:function(x,y){return(x>=left)&&(x<=left+width);},vContains:function(x,y){return(y>=top)&&(y<=top+height);}};},makeSameSize:function(e1,e2){var rc=sjcl.dom.elementRect(e1);e2.style.width=rc.width+"px";e2.style.height=rc.height+"px";},makeSamePlacement:function(e1,e2){var rc=sjcl.dom.elementRect(e1);e2.style.left=rc.left+"px";e2.style.top=rc.top+"px";e2.style.width=rc.width+"px";e2.style.height=rc.height+"px";},inflate:function(e,v){e.style.left=parseInt(e.style.left)+v;e.style.top=parseInt(e.style.top)+v;e.style.width=parseInt(e.style.width)-v*2;e.style.height=parseInt(e.style.height)-v*2;},hideElements:function(tagName,e){sjcl.dom._setElementsVisibility(tagName,-1,e);},showElements:function(tagName,e){sjcl.dom._setElementsVisibility(tagName,1,e);},_setElementsVisibility:function(tagName,change,element){var col=document.getElementsByTagName(tagName);var rect=sjcl.dom.elementRect(element);for(var i=0,n=col.length;i<n;i++){var e=col.item(i);if(sjcl.dom._elementOverlap(e,rect)){if(e.visLevel)e.visLevel+=change;else e.visLevel=change;if(e.visLevel==-1&&change==-1){e.visibilitySave=e.style.visibility;e.style.visibility="hidden";}else if(e.visLevel==0&&change==1){e.style.visibility=e.visibilitySave;}}}},_elementOverlap:function(e,rect){var rc=sjcl.dom.elementRect(e);rc.left-=sjcl.browser.scrollLeft();rc.top-=sjcl.browser.scrollTop();return(rc.left<rect.left+rect.width)&&(rc.left+rc.width>rect.left)&&(rc.top<rect.top+rect.height)&&(rc.top+rc.height>rect.top);},getXmlDocument:function(){var xmlDoc=null;if(document.implementation&&document.implementation.createDocument){xmlDoc=document.implementation.createDocument("","",null);}else if(window.ActiveXObject){try{xmlDoc=new ActiveXObject("Msxml2.DOMDocument");}catch(e){xmlDoc=new ActiveXObject("Msxml.DOMDocument");}}return xmlDoc;},inputWidth:function(e,width){if((e.nodeName=="TEXTAREA")||(e.nodeName=="INPUT"&&e.type=="text")){if(sjcl.browser.isMSIE)width-=6;else width-=4;}return width-2;},inputHeight:function(e,height){if(e.nodeName=="TEXTAREA")height-=5;return height;},Control:function(){},TextBox:function(value,emptyValue){this.element=document.createElement("INPUT");this.emptyValue=(typeof emptyValue!="undefined")?emptyValue:"";if(typeof value!="undefined")this.element.value=value;},TextArea:function(value,emptyValue){this.element=document.createElement("TEXTAREA");this.emptyValue=(typeof emptyValue!="undefined")?emptyValue:"";if(typeof value=="string")this.element.value=value;},ImageBox:function(value,emptyValue){this.element=document.createElement("INPUT");this.element.setAttribute("Browse",true);this.element2=document.createElement("INPUT");this.element2.type="button";this.element2.value="...";this.element2.style.verticalAlign="top";this.element2.style.width="20px";this.emptyValue=(typeof emptyValue!="undefined")?emptyValue:"";if(typeof value!="undefined")this.element.value=value;},ComboBox:function(emptyValue,useKey){this.element=document.createElement("SELECT");this.emptyValue=(typeof emptyValue!="undefined")?emptyValue:0;this.useKey=(typeof useKey!="undefined")?useKey:true;},CheckBox:function(value){this.element=document.createElement("INPUT");this.element.type="checkbox";this.element.checked=parseInt(value);this.emptyValue=false;},Element:function(e){this._src=e;},GetHtmlDirection:function(){if(g_Direction=='ltr')return"left";else return"right";},GetHtmlRDirection:function(){if(g_Direction=='ltr')return"right";else return"left";}};sjcl.dom.Control.extend({value:function(value){if(typeof value=="undefined")return this.element.value;else this.element.value=value;},text:function(text){return this.value(text);},reset:function(){this.value(this.emptyValue);},empty:function(){return this.value()==this.emptyValue;}});sjcl.dom.TextBox.inherits(sjcl.dom.Control);sjcl.dom.TextArea.inherits(sjcl.dom.Control);sjcl.dom.ImageBox.inherits(sjcl.dom.Control);sjcl.dom.ComboBox.inherits(sjcl.dom.Control);sjcl.dom.CheckBox.inherits(sjcl.dom.Control);sjcl.dom.ComboBox.extend({value:function(value){if(typeof value=="undefined")return this._getValue();else this._setValue(value);},text:function(text){if(typeof text=="undefined")return this.element.options[this.element.selectedIndex].text;else this._selectByText(text);},fill:function(list){if(list){for(var p in list){if(list.hasOwnProperty(p)){var option=this.element.appendChild(document.createElement("OPTION"));option.value=p;option.text=list[p];}}}},_selectByText:function(text){for(var i=0,n=this.element.options.length;i<n;i++){if(this.element.options[i]["text"]==text){this.element.selectedIndex=i;return;}}},_getValue:function(){if(this.element.selectedIndex>=0){var option=this.element.options[this.element.selectedIndex];return this.useKey?option.value:option.text;}else return this.emptyValue;},_setValue:function(value){var key=this.useKey?"value":"text";for(var i=0,n=this.element.options.length;i<n;i++){if(this.element.options[i][key]==value){this.element.selectedIndex=i;return;}}}});sjcl.dom.CheckBox.extend({value:function(value){if(typeof value=="undefined")return this.element.checked?"1":"0";else this.element.checked=parseInt(value);}});sjcl.dom.Element.extend({width:function(width){if(typeof width=="undefined"){return this._src.offsetWidth;}else{width-=parseInt(sjcl.dom.getStyle(this._src,"border-left-width"));width-=parseInt(sjcl.dom.getStyle(this._src,"border-right-width"));width-=parseInt(sjcl.dom.getStyle(this._src,"padding-left"));width-=parseInt(sjcl.dom.getStyle(this._src,"padding-right"));this._src.style.width=width+"px";}},height:function(height){if(typeof height=="undefined"){return this._src.offsetHeight;}else{height-=parseInt(sjcl.dom.getStyle(this._src,"border-top-width"));height-=parseInt(sjcl.dom.getStyle(this._src,"border-bottom-width"));height-=parseInt(sjcl.dom.getStyle(this._src,"padding-top"));height-=parseInt(sjcl.dom.getStyle(this._src,"padding-bottom"));this._src.style.height=height+"px";}}});sjcl.io={File:function(file){try{var fso=new ActiveXObject("Scripting.FileSystemObject");var f=fso.GetFile(file);this.name=f.Name;this.size=f.Size;this.path=f.ParentFolder;this.exists=true;}catch(e){this.exists=false;}},fileExists:function(file){try{var fso=new ActiveXObject("Scripting.FileSystemObject");return fso.FileExists(file);}catch(e){return false;}}};sjcl.net={READY_STATE_UNINITIALIZED:0,READY_STATE_LOADING:1,READY_STATE_LOADED:2,READY_STATE_INTERACTIVE:3,READY_STATE_COMPLETE:4,FILE_UPLOAD_HANDLER:"lib/ajax/Upload.php",FILE_UPLOAD_LOG_HANDLER:"lib/ajax/SaveUploadLog.php",FILE_DOWNLOAD_HANDLER:"lib/ajax/Download.php",WebRequest:function(url,onload,onerror,method,params,contentType){this.tries=5;this._try=1;this._url=url;this._onload=onload;this._method=method;this._params=params;this._contentType=contentType;this._request=this._createRequest();if(onerror)this._onerror=onerror;this._load(url,method,params,contentType);},WebRequestCollection:function(){this._length=0;},FileUploader:function(file,dest,blockSize){this.file=file;this.dest=dest;this.blockSize=blockSize;this.server="/";this.logFile=new sjcl.StringBuilder("\n");this.logFile.write("------ File Upload Log ------\n");this._initialize();},FileDownloader:function(file,dest,blockSize){this.source=file;this.dest=dest;this.blockSize=blockSize;this.server="/";this._initialize();},call:function(url){new sjcl.net.WebRequest(url);},post:function(url,data){new sjcl.net.WebRequest(url,null,null,"POST",data);},load:function(url,onload,onerror){new sjcl.net.WebRequest(url,function(){if(onload)onload.call(this,this.getText());},onerror);},loadJson:function(url,onload,onerror){new sjcl.net.WebRequest(url,function(){if(onload)onload.call(this,this.getJson());},onerror);},uploadBlockSize:function(size){if(size<=8192)return 1024;else if(8192<size&&size<=131072)return 4096;else if(131072<size&&size<=1048576)return 8192;else if(1048576<size&&size<=10485760)return 32768;else return 131072;}};sjcl.net.WebRequest.extend({setUrl:function(url){this._url=url;},setParams:function(params){this._params=params;},reset:function(){this._try=1;},send:function(){this._load(this._url,this._method,this._params,this._contentType);},getText:function(){if(this._request.readyState==sjcl.net.READY_STATE_COMPLETE)return this._request.responseText;else return null;},getXml:function(){if(this._request.readyState==sjcl.net.READY_STATE_COMPLETE)return this._request.responseXML;else return null;},getJson:function(){if((this._request.readyState==sjcl.net.READY_STATE_COMPLETE)&&(str=this.getText()))return eval("("+str+")");else return null;},getStream:function(){if(this._request.readyState==sjcl.net.READY_STATE_COMPLETE)return this._request.responseBody;else return null;},cancel:function(){this.canceled=true;this._request.abort();},debug:function(){sjcl.debug.write(this.getText());},_createRequest:function(){if(window.ActiveXObject)return new ActiveXObject("Microsoft.XMLHTTP");else if(window.XMLHttpRequest)return new XMLHttpRequest();else return null;},_load:function(url,method,params,contentType){if(!method)method="GET";if(method=="POST"&&!contentType)contentType='application/x-www-form-urlencoded';if(this._request){try{this._request.open(method,url);this._request.onreadystatechange=this._onready.bind(this);if(contentType)this._request.setRequestHeader('Content-Type',contentType);this._request.send(params);}catch(e){if(this._try<=this.tries){this._try++;window.setTimeout(this._load.bind(this,this._url,this._method,this._params,this._contentType),1000);}else this._onerror.call(this,e);}}},_onready:function(){if(this._request.readyState==sjcl.net.READY_STATE_COMPLETE){if(this._request.status==0||this._request.status==200){if(!this.canceled&&this._onload)this._onload.call(this);}else{if(this._try<=this.tries){this._try++;window.setTimeout(this._load.bind(this,this._url,this._method,this._params,this._contentType),1000);}else this._onerror.call(this);}}},_onerror:function(){alert("ERROR!\n\nReadyState:"+this._request.readyState+"\nHttp Status: "+this._request.status+"\n\nHeaders:\n"+this._request.getAllResponseHeaders()+"\nContent:\n"+this.getText());}});sjcl.net.WebRequestCollection.extend({add:function(name,webRequest){var id=this._makeId(name);if(this[id]==undefined){webRequest.name=name;this[id]=webRequest;this._length++;}return webRequest;},item:function(name){return this[this._makeId(name)];},each:function(fn){for(var p in this){if(p.substring(0,3)=="wr_")fn(this[p]);}},remove:function(name){var id=this._makeId(name);if(this[id]){this[id].cancel();this[id]=null;delete this[id];this._length--;}},empty:function(){return this._length==0;},clear:function(){for(var p in this){if(p.substring(0,3)=="wr_"){this[p].cancel();this[p]=null;delete this[p];}}this._length=0;},_makeId:function(id){return"wr_"+id;}});sjcl.net.FileUploader.extend({upload:function(){if(this.closed)return;if(this._stream==null){this._finalize();return;}if(!this._wr)this._upload();},pause:function(){this.paused=true;},resume:function(){this.paused=false;if(!this.closed)this._upload();},cancel:function(){this.canceled=true;if(this._wr)this._wr.cancel();if(this.deleteOnCancel)sjcl.net.post("/lib/ajax/DeleteFiles.php","Files="+this.dest+this.fileName);},_initialize:function(){var info=this._getFileInfo(this.file);this.fileName=info.name;this.filePath=info.path;this.size=info.size;this.parts=Math.ceil(this.size/this.blockSize);this.currentBlock=1;this._stream=this._openFile(this.file);if(!this.blockSize)this.blockSize=sjcl.net.uploadBlockSize(this.size);this.logFile.write("File Name: "+this.fileName);this.logFile.write("File Path: "+this.filePath);this.logFile.write("File Size: "+this.size+" bytes");this.logFile.write("Number of parts: "+this.parts);this.logFile.write("Block Size: "+this.blockSize);this.logFile.write("\n--------------------------");if(this._stream)this.logFile.write("\nSteam opened successfully\n");else this.logFile.write("\nFailed to open stream\n");this.logFile.write("--------------------------");},_getFileInfo:function(file){var fso=new ActiveXObject("Scripting.FileSystemObject");var f=fso.GetFile(file);return{name:f.Name,size:f.Size,path:f.ParentFolder};},_getUrl:function(){var sb=new sjcl.StringBuilder("&");sb.write("dest="+sjcl.escape(this.dest));sb.write("name="+sjcl.escape(this.fileName));sb.write("source="+sjcl.escape(this.file.replace(/\\/g,"/")));sb.write("size="+this.size);sb.write("parts="+this.parts);sb.write("block="+this.blockSize);sb.write("current="+this.currentBlock);return this.server+sjcl.net.FILE_UPLOAD_HANDLER+"?"+sb.toString();},_openFile:function(file){var s=new ActiveXObject("ADODB.Stream");try{s.Type=1;s.Open();s.LoadFromFile(this.file);}catch(e){alert(e.message);return null;}return s;},_readBlock:function(index){this.logFile.write("Uploading part #"+index);this._stream.Position=this.blockSize*(index-1);this.logFile.write("\tStream Position: "+this._stream.Position);return this._stream.Read(this.blockSize);},_upload:function(){if(!this.paused){if(this._wr){this._wr.reset();this._wr.setUrl(this._getUrl());this._wr.setParams(this._readBlock(this.currentBlock));this._wr.send();}else{this._wr=new sjcl.net.WebRequest(this._getUrl(),this._onBlockUpload.bind(this),this._onError.bind(this),"POST",this._readBlock(this.currentBlock),"Application/octet-stream");}}},_finalize:function(info){this.closed=true;this.logFile.write("\n--------------------------------");this.logFile.write("Upload finished");if(this._stream)this._stream.close();this.logFile.write("Stream has been closed");this.logFile.write("\n----------------------------");this.logFile.write("Post upload information:\n");this.logFile.write("File: "+info.Dir+"/"+info.FileName);this.logFile.write("Size: "+info.Size+"\n");var logParams=new sjcl.StringBuilder("&");logParams.write("name="+sjcl.escape(this.fileName)+"_log.log");logParams.write("dir="+sjcl.escape(this.dest));var logUrl=this.server+sjcl.net.FILE_UPLOAD_LOG_HANDLER+"?"+logParams.toString();var _this=this;var saveLogFile=new sjcl.net.WebRequest(logUrl,function(){if(g_IsAdmin&&confirm("Do you want to view the upload log file?"))window.location="/lib/ajax/SaveUploadLog.php?download=1&name="+sjcl.escape(_this.fileName)+"_log.log&dir="+_this.dest;},null,"POST","content="+this.logFile.toString());if(this.onFinish)this.onFinish(info);},_onBlockUpload:function(){if(!this.canceled&&!this._wr.canceled){this.percent=Math.round(this.currentBlock/this.parts*100);this.logFile.write("\tPART UPLOADED SUCCESSFULLY");this.logFile.write("\tPercent Completed: "+this.percent+"%");if(this.onChange)this.onChange(this._wr.getJson());if(this.currentBlock<this.parts)this._upload(++this.currentBlock);else this._finalize(this._wr.getJson());}},_onError:function(){this.logFile.write("********ERROR WHILE UPLOADING********");if(!this.canceled&&!this._wr.canceled)this._upload(this.currentBlock);}});sjcl.net.FileDownloader.extend({start:function(){if(this.closed)return;this._wr=new sjcl.net.WebRequest(this.server+"lib/ajax/GetFileInfo.php",this._onInfoLoaded.bind(this),null,"POST","File="+this.source);},_initialize:function(){if(!this.dest){var fso=new ActiveXObject("Scripting.FileSystemObject");this.dest=fso.GetSpecialFolder(2)+"\\"+fso.GetTempName();}},_openFile:function(file){var s=new ActiveXObject("ADODB.Stream");try{s.Type=1;s.Open();}catch(e){alert(e.message);return null;}return s;},_getPostData:function(){var sb=new sjcl.StringBuilder("&");sb.write("File="+this.source.replace(/\\/g,"/"));sb.write("Block="+this._currentBlock);sb.write("BlockSize="+this.blockSize);return sb.toString();},_download:function(){if(this._wr==null){this._wr=new sjcl.net.WebRequest(this.server+sjcl.net.FILE_DOWNLOAD_HANDLER,this._onBlockDownload.bind(this),this._onError.bind(this),"POST",this._getPostData());}else{this._wr.reset();this._wr.setParams(this._getPostData());this._wr.send();}},_finalize:function(info){this.closed=true;if(this._stream)this._stream.close();if(this.onFinish)this.onFinish();},_onInfoLoaded:function(){var info=this._wr.getJson();this.size=info.Size;this.blockSize=!this.blockSize?sjcl.net.uploadBlockSize(this.size):this.blockSize;this._parts=Math.ceil(this.size/this.blockSize);this._currentBlock=1;this._stream=this._openFile(this.dest);this._wr=null;if(this._stream==null){this._finalize();return;}this._download();},_onBlockDownload:function(){if(!this.canceled&&!this._wr.canceled){this._stream.write(this._wr.getStream());this.percent=Math.round(this._currentBlock/this._parts*100);if(this.onChange)this.onChange();if(this._currentBlock<this._parts){this._currentBlock++;this._download();}else{this._stream.SaveToFile(this.dest);this._finalize();}}},_onError:function(){if(!this.canceled&&!this._wr.canceled)this._download();}});sjcl.widget={Alignment:{BottomLeft:0,BottomCenter:1,BottomRight:2,MiddleLeft:3,MiddleCenter:4,MiddleRight:5,TopLeft:6,TopCenter:7,TopRight:8},Orientation:{Horizontal:0,Vertical:1},RunningMode:{Client:0,Server:1,Callback:2},ContentType:{Unknown:0,String:1,Text:2,Html:3,Email:4,CustomField:5,Password:6},MimeType:{Folder:0,Generic:1,Text:2,Html:3,Image:4,Executable:5,Partial:6},CancelEventArgs:function(item){this.item=item;this.cancel=false;}};function outputException(e,wr){if(_DEBUG){sjcl.debug.writeLine("Exception: "+e);if(wr)sjcl.debug.writeLine(wr.getText());}}