function dm_window_open(file, width, height){
	window.open(file, "_blank", "width="+width+",height="+height+",titlebar=no,toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes");
}

function dm_show_el(el){
	document.getElementById(el).style.display='inline';
}

function dm_hide_el(el){
	document.getElementById(el).style.display='none';
}

function dm_write_to_el(el,text){
	document.getElementById(el).innerHTML=text;
}


var browser;

function dm_detect_browser(){
	var detect = navigator.userAgent.toLowerCase();
	if (detect.indexOf("konqueror") + 1){
		browser="konqueror";
	} else if (detect.indexOf("safari") + 1){
		browser="safari";
	} else if (detect.indexOf("omniweb") + 1){
		browser="omniweb";
	} else if (detect.indexOf("opera") + 1){
		browser="opera";
	} else if (detect.indexOf("webtv") + 1){
		browser="webtv";
	} else if (detect.indexOf("icab") + 1){
		browser="icab";
	} else if (detect.indexOf("msie") + 1){
		browser="msie";
	} else if (!detect.indexOf("compatible") + 1){
		browser="mozilla";
	} else {
		browser="unknown";
	}
}
dm_detect_browser();

dm_validate_form=function(form){
	this.form=form;
	this.error=new Array(0);
	this.validate_empty=validate_empty;
	this.validate_regexp=validate_regexp;
	this.validate_length=validate_length;
	this.push_error=push_error;
	this.add_fields=add_fields;
	this.clean_field=clean_field;
}
	function validate_empty(el,title){
		 if (el.length){
                for (var z=0;z<el.length;z++){
                        if (el[z].checked) return true;
                }
                this.push_error(el,title,LANG["cmn_form_empty"]);
                return false;
        }
        if (el.value==null || !el.value.length>0){
                this.push_error(el,title,LANG["cmn_form_empty"]);
                return false;
        }
        return true;
	}
	
	function validate_regexp(el,name,exp){
		if (!el.value.match(eval(exp))){
			this.push_error(el,name,LANG["cmn_form_incorrect"]);
			return false;
		}
		return true;
	}
	
	function validate_length(el,name,min,max){
        if (el.length){
                for (var z=0;z<el.length;z++){
                        if (el[z].checked) return true;
                }
                this.push_error(el,name,LANG["cmn_form_empty"]);
                return false;
        }
        if (el.value==null || !el.value.length>0){
                this.push_error(el,name,LANG["cmn_form_empty"]);
                return false;
        } else if (min!=null){
        	if (el.value.length<min){
        		this.push_error(el,name,LANG["cmn_form_char_max_prefix"]+min+LANG["cmn_form_char_postfix"]);
                return false;
        	}
        } else if (max!=null){
        	if (el.value.length>max){
        		this.push_error(el,name,LANG["cmn_form_char_min_prefix"]+max+LANG["cmn_form_char_postfix"]);
                return false;
        	}
        }
        return true;
	
	}
	
	function push_error(el,title,message){
		if (el.type!="text" && browser!="mozilla" && el.focus!=null){
			el.focus();
		}
		this.error[this.error.length]=new Array(el.name,LANG["cmn_form_field"]+' "'+title+'": '+message);
	}
	
	function clean_field(el){
		if (el.value){
			el.value="";
		}
	}
	
	function add_fields(fields){
		for (var i in fields){
			var arr=dm_explode(":",fields[i]);
			switch (arr[1]) { 
				case "null":
					this.validate_empty(this.form.elements[arr[0]],arr[2]);
				break;	
				case "min":
					this.validate_length(this.form.elements[arr[0]],arr[2],arr[3],null);
				break;				
				case "max":
					this.validate_length(this.form.elements[arr[0]],arr[2],null,arr[3]);
				break;	
				case "clean":
					this.clean_field(this.form.elements[arr[0]]);
				break;
			
			}
		}
	}

function dm_explode(separator,_string){
	var new_string=new String(_string);
	var i=0;
	var arr=new Array();
	while (new_string.indexOf(separator)!=-1){
		var last_string=new_string.substring(0,new_string.indexOf(separator));
		new_string=new_string.substring(new_string.indexOf(separator)+1,new_string.length);
		arr[i]=last_string;
		i++;	
	}
	if (new_string.length>0) {
		arr[i]=new_string;
	}
	
	return arr;
}