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;
}

function SelectAll(id_form, prefix, check){
	var form=document[id_form];
	var arr_len=form.elements.length;
	for(var i=0; i<arr_len;i++){
		if(form.elements[i].name.substr(0, prefix.length)==prefix){
			form.elements[i].checked=check;
		}
	}
}

//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 LoadCatForm(id_cat, id_curr, dest_div){
	AjaxQuery('ajax_common.php?sel=edit_cat&id_cat='+id_cat+'&id_curr='+id_curr, dest_div);
}

function LoadObjectForm(id_object, id_root, dest_div, url_params){
	if(url_params==null) url_params=''; else url_params='&'+url_params;
	AjaxQuery('ajax_common.php?sel=edit_object&id_object='+id_object+'&id_root='+id_root+'&id_curr='+id_root+url_params, dest_div);
}

function ClearWindow(dest_div){
	var div=document.getElementById(dest_div);
	div.innerHTML='';
}

function DisableCtrl(ctrl_id, disable){
	var ctrl=document.getElementById(ctrl_id);
	if(ctrl!=null){
		ctrl.disabled=disable;
	}
}

function swapControls(elem_id, disable){
	var tags=['input', 'textarea', 'button', 'select'];
	for(var i=0; i<tags.length; i++){
		var elems=(document.getElementById(elem_id)).getElementsByTagName(tags[i]);
		for(j=0; j<elems.length; j++){
			elems[j].disabled=disable;
		}
	}
}
