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

//Ajax functions
function InitXMLHttpRequest() {
	var req=null;
	// Make a new XMLHttp object
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return req;
}
function AjaxQuery(query, dest, func, params){
	var req=InitXMLHttpRequest();
	
	if(dest!=null) var field=document.getElementById(dest);
	req.onreadystatechange = function() {
		if(dest=='') return 0;
		if (req.readyState == 4) {
			if(dest!=null) RunJS(dest, req.responseText);
			if(func!=null) {
				exec_str="func(";
				if(params!=null){
					var len=params.length;
					for(var i=0;i<len;i++){
						exec_str+="params["+i+"]";
						if(i!=(len-1)) exec_str+=', ';
					}
				}
				exec_str+=");";
				eval(exec_str);
			}
		}
	}
	req.open("GET", query+'&rnd='+Math.random(), true);
	req.send(null);
	if(dest!=null) field.innerHTML = "<div align='center'>Loading data...</div>";
}

function RunJS(div_name, response){
	var d2 = document.getElementById(div_name);

	//Check user browser
	var agent=(window.navigator.appName=='Netscape')?'Firefox':'IE';

	if(agent=='IE'){
		d2.innerHTML=response;
		var arr_scripts = d2.getElementsByTagName("script");
		for(i in arr_scripts){
			var src = arr_scripts[i].src;
			if(null!=src){
				var has_question = (src.indexOf('?', 1)>0 ? true : false);
				if(0==src.length)
					arr_scripts[i].setAttribute('src', '');
				else
					arr_scripts[i].setAttribute('src', arr_scripts[i].src + (has_question==true ? '&' : '?') + '1=1');
			}
		}
	}
	else{
		//Mozilla
		var d1=d2.parentNode;
		var d_new=document.createElement('div');
		
		//Set same attributes as original
		var attributes=d2.attributes;
		var len=attributes.length;

		d_new.innerHTML=response;
		for(var i=0; i<len; i++){
			d_new.setAttribute(attributes[i].name, attributes[i].value);
		}
		
		d1.replaceChild(d_new, d2);
	}
}

//Patterns
var email_ptn=/^([a-z\d-_\.]+)@([a-z\d-_]+)\.([a-z]+)([a-z\d-_\.]*)$/;
var login_ptn=/^[0-9a-z_\sA-Z]{5,20}$/;

//Check form functions
function check_empty(field){
	if(field.value.trim()==''){
		field.focus();
		return false;
	}
	return true;
}

function check_pattern(field, pattern){
	if(field.value=='') return true;
	if(field.value.search(pattern)==-1){
		field.focus();
		return false;
	}
	return true;
}