var d = document;

String.prototype.trim = function() {
	return this.replace(/^[\s]+|[\s]+$/g, "");
}

String.prototype.URIEncode = function() {
	return encodeURIComponent(this).replace(/%20/g,"+");
}

Array.prototype.inArray = function(str) {
	var i;
	for (i=0;i<this.length;i++) {
		if (str == this[i]) return i;
	}
	return false;
}

function g(id) {
	return d.getElementById(id);
}

function gt(o, tag) {
	if (typeof(o) == "string") o = g(o);
	return o.getElementsByTagName(tag);
}

JJ = {
	"flash":(function(){var i,j,v=0,p=navigator.plugins;for(i=0;i<p.length;i++){if(p[i].name.indexOf("Flash")!=-1){for(j=6;j<21;j++){if(p[i].description.indexOf(j+".")!=-1){v=j;break;}}}if(v>0)break;}if(v==0){for(i=20;i>5;i--){try{x=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);v=i;break;}catch(e){}}}return v;})(),
	"addEvent":function(o,ev,h,uc){var i,j;if(typeof(o)=="string")o=[g(o)];if(typeof(ev)=="string"){ev=[ev];h=[h];}for(i=0;i<o.length;i++){for(j=0;j<ev.length;j++){try{o[i].addEventListener(ev[j],h[j],(uc?uc:false));}catch(err){o[i]["on"+ev[j]]=h[j];}}}},
	"cancelEvent":function(e){if(e)e.preventDefault();else return false;},
	"getKeyCode":function(e){try{return event.keyCode;}catch(err){return e.charCode;}},
	"isValidKey":function(e,re){var kc=this.getKeyCode(e),key=String.fromCharCode(kc);return (re.test(key)||kc==0||kc==8||kc==9);},
	"isInInterval":function(val,min,max){val=parseInt(val,10);if(isNaN(val)||val<min||val>max){return false;}return true;},
	"error":"",
	"addError":function(str){this.error+=(this.error==""?"":"\n")+str;},
	"validText":function(val,mChr,fldName){if(val==""&&mChr>0){this.addError(fldName+" must be provided!");return false;}else if(val.length<mChr){this.addError(fldName+" is not valid!");return false;}return true;},
	"isEmail":function(str){var i,re,eArr,uArr,dArr;eArr=str.split("@");if(eArr.length!=2){return false;}uArr=eArr[0].split(".");re=/^[a-zA-Z0-9+\-=\^_{}~]+$/;for(i=0;i<uArr.length;i++){if(!re.test(uArr[i])){return false;}}dArr=eArr[1].split(".");if(dArr.length<2){return false;}re=/^[a-zA-z]{2,6}$/;if(!re.test(dArr[dArr.length-1])){return false;}re=/^([a-zA-Z0-9][a-zA-Z0-9\-]*)?[a-zA-Z0-9]$/;for(i=0;i<(dArr.length-1);i++){if(!re.test(dArr[i])){return false;}}return true;},
	"isDate":function(d,m,y){d=parseInt(d,10);m=parseInt(m,10);y=parseInt(y,10);if(isNaN(d)||isNaN(m)||isNaN(y))return false;if(y<1995||y>2100)return false;if(d<1||d>31)return false;if(m<1||m>12)return false;if((m==4||m==6||m==9||m==11)&&d>30)return false;if(m==2&&(d>29||(((y%4)!=0||((y%100)==0&&(y%400)!=0))&&d>28)))return false;return new Date(y,(m-1),d);},
	"trimValue":function(ctrl){var rv;if(typeof(ctrl)=="string")ctrl=g(ctrl);rv=ctrl.value=ctrl.value.trim();return rv;},
	"httpRequest":function(){var req,isGet=(arguments.length==2),m=(isGet?"GET":"POST"),q=(isGet?null:arguments[1]),f=arguments[arguments.length-1];try{req=new XMLHttpRequest();}catch(err){try{req=new ActiveXObject("MSXML2.XMLHTTP.3.0");}catch(err){try{req=new ActiveXObject("Microsoft.XMLHTTP");}catch(err){return false;}}}req.onreadystatechange=function(){var rsp;if(req.readyState==4){if(req.status!=200||req.responseText=="false"){f(false);}else{if(req.responseXML&&/\/.*\bxml\b/i.test(req.getResponseHeader("Content-Type"))){rsp=req.responseXML;}else{rsp=req.responseText;}f(rsp);}}};req.open(m,arguments[0],true);if(!isGet)req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");req.send(q);return true;}
}
