String.prototype.trim = function(){
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

//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;
}

//Ajax
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, cache, show_progress){
	var req=InitXMLHttpRequest();
	
	if(cache==null) cache=false;
	if(show_progress==null) show_progress=true;
	
	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+"]";
						exec_str+=', ';
					}
				}
				exec_str+="req.responseText);";
				eval(exec_str);
			}
		}
	}
	
	if(cache==false) query+='&rnd='+Math.random();
	req.open("GET", query, true);
	req.send(null);
	if(show_progress && dest!=null) field.innerHTML = "<div align='center'><img src='"+window.images_path+"/ajax.gif'> 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');
			}
		}
		
		//Load Windows Media Player Object
		var arr_objects = d2.getElementsByTagName("object");
		for(i in arr_objects){
			if(arr_objects[i].getAttribute!=null){
				var src=arr_objects[i].getAttribute('FileName');
				if(src!=null && src!=''){
					var has_question = (src.indexOf('?', 1)>0 ? true : false);
					arr_objects[i].setAttribute('FileName', 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);
	}
}

function SelectRegionDrop(id_country){
	AjaxQuery(window.server_path+'/location.php?sel=region_drop&id_country='+id_country, 'regions_div');
	var temp=document.getElementById('regions_div');
	if(temp) temp.innerHTML='&nbsp;';
	temp=document.getElementById('cities_div');
	if(temp) temp.innerHTML='&nbsp;';
	temp=document.getElementById('univs_div');
	if(temp) temp.innerHTML='&nbsp;';
}

function SelectCityDrop(id_region){
	AjaxQuery(window.server_path+'/location.php?sel=city_drop&id_region='+id_region, 'cities_div');
	var temp=document.getElementById('cities_div');
	if(temp) temp.innerHTML='&nbsp;';
	temp=document.getElementById('univs_div');
	if(temp) temp.innerHTML='&nbsp;';
}

function SelectUnivDrop(id_city){
	AjaxQuery(window.server_path+'/location.php?sel=univ_drop&id_city='+id_city, 'univs_div');
	var temp=document.getElementById('univs_div');
	if(temp) temp.innerHTML='&nbsp;';
}