function addEvent(c,b,a){if(c.addEventListener){c.addEventListener(b,a,false)}else{if(c.attachEvent){c.attachEvent("on"+b,a)}}}function isEmail(a){return a.match(/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)$/i)}sprintfWrapper={init:function(){if(typeof arguments=="undefined"){return null}if(arguments.length<1){return null}if(typeof arguments[0]!="string"){return null}if(typeof RegExp=="undefined"){return null}var j=arguments[0];var c=new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);var g=new Array();var l=new Array();var a=0;var h=0;var m=0;var d=0;var k="";var f=null;while(f=c.exec(j)){if(f[9]){a+=1}h=d;m=c.lastIndex-f[0].length;l[l.length]=j.substring(h,m);d=c.lastIndex;g[g.length]={match:f[0],left:f[3]?true:false,sign:f[4]||"",pad:f[5]||" ",min:f[6]||0,precision:f[8],code:f[9]||"%",negative:parseInt(arguments[a])<0?true:false,argument:String(arguments[a])}}l[l.length]=j.substring(d);if(g.length==0){return j}if((arguments.length-1)<a){return null}var b=null;var f=null;var e=null;for(e=0;e<g.length;e++){if(g[e].code=="%"){substitution="%"}else{if(g[e].code=="b"){g[e].argument=String(Math.abs(parseInt(g[e].argument)).toString(2));substitution=sprintfWrapper.convert(g[e],true)}else{if(g[e].code=="c"){g[e].argument=String(String.fromCharCode(parseInt(Math.abs(parseInt(g[e].argument)))));substitution=sprintfWrapper.convert(g[e],true)}else{if(g[e].code=="d"){g[e].argument=String(Math.abs(parseInt(g[e].argument)));substitution=sprintfWrapper.convert(g[e])}else{if(g[e].code=="f"){g[e].argument=String(Math.abs(parseFloat(g[e].argument)).toFixed(g[e].precision?g[e].precision:6));substitution=sprintfWrapper.convert(g[e])}else{if(g[e].code=="o"){g[e].argument=String(Math.abs(parseInt(g[e].argument)).toString(8));substitution=sprintfWrapper.convert(g[e])}else{if(g[e].code=="s"){g[e].argument=g[e].argument.substring(0,g[e].precision?g[e].precision:g[e].argument.length);substitution=sprintfWrapper.convert(g[e],true)}else{if(g[e].code=="x"){g[e].argument=String(Math.abs(parseInt(g[e].argument)).toString(16));substitution=sprintfWrapper.convert(g[e])}else{if(g[e].code=="X"){g[e].argument=String(Math.abs(parseInt(g[e].argument)).toString(16));substitution=sprintfWrapper.convert(g[e]).toUpperCase()}else{substitution=g[e].match}}}}}}}}}k+=l[e];k+=substitution}k+=l[e];return k},convert:function(b,d){if(d){b.sign=""}else{b.sign=b.negative?"-":b.sign}var a=b.min-b.argument.length+1-b.sign.length;var c=new Array(a<0?0:a).join(b.pad);if(!b.left){if(b.pad=="0"||d){return b.sign+c+b.argument}else{return c+b.sign+b.argument}}else{if(b.pad=="0"||d){return b.sign+b.argument+c.replace(/0/g," ")}else{return b.sign+b.argument+c}}}};sprintf=sprintfWrapper.init;function GetRandomNum(a,b){return(Math.floor(Math.random()*(b-a))+a)}function GetRandomChar(a,h,c,j,b){var d="0123456789";var f="abcdefghijklmnopqrstuvwxyz";var i="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var e="`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";var g="";if(b){var g=b}if(a==true){g+=d}if(h==true){g+=f}if(c==true){g+=i}if(j==true){g+=e}return g.charAt(GetRandomNum(0,g.length))}function GenPassword(a,e,g,h,d,b){var f="";for(var c=0;c<a;++c){f+=GetRandomChar(e,g,h,d,b)}return f}String.prototype.trim=function(){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"")};String.prototype.ltrim=function(){return this.replace(/^\s+/,"")};String.prototype.rtrim=function(){return this.replace(/\s+$/,"")};function trim(a){return a.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var dateFormat=function(){var a=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloZ]|"[^"]*"|'[^']*'/g,b=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,d=/[^-+\dA-Z]/g,c=function(f,e){f=String(f);e=parseInt(e)||2;while(f.length<e){f="0"+f}return f};return function(i,t){if(arguments.length==1&&(typeof i=="string"||i instanceof String)&&!/\d/.test(i)){t=i;i=undefined}i=i?new Date(i):new Date();if(isNaN(i)){throw"invalid date"}var g=dateFormat;t=String(g.masks[t]||t||g.masks["default"]);var l=i.getDate(),e=i.getDay(),j=i.getMonth(),p=i.getFullYear(),q=i.getHours(),k=i.getMinutes(),r=i.getSeconds(),n=i.getMilliseconds(),f=i.getTimezoneOffset(),h={d:l,dd:c(l),ddd:arrDateFormat.dayNames[e],dddd:arrDateFormat.dayNames[e+7],m:j+1,mm:c(j+1),mmm:arrDateFormat.monthNames[j],mmmm:arrDateFormat.monthNames[j+12],yy:String(p).slice(2),yyyy:p,h:q%12||12,hh:c(q%12||12),H:q,HH:c(q),M:k,MM:c(k),s:r,ss:c(r),l:c(n,3),L:c(n>99?Math.round(n/10):n),t:q<12?"a":"p",tt:q<12?"am":"pm",T:q<12?"A":"P",TT:q<12?"AM":"PM",Z:(String(i).match(b)||[""]).pop().replace(d,""),o:(f>0?"-":"+")+c(Math.floor(Math.abs(f)/60)*100+Math.abs(f)%60,4)};return t.replace(a,function(m){return(m in h)?h[m]:m.slice(1,m.length-1)})}}();dateFormat.masks={"default":"ddd mmm d yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoFullDateTime:"yyyy-mm-dd'T'HH:MM:ss.lo"};Date.prototype.format=function(a){return dateFormat(this,a)};