LANG=new Array();
LANG["cmn_form_empty"]="значение не указано";

LANG["cmn_form_incorrect"]="неправильный формат";

LANG["cmn_form_char_max_prefix"]="Пожалуйста введите максимум";

LANG["cmn_form_char_min_prefix"]="Пожалуйста введите минимум";

LANG["cmn_form_char_postfix"]="симв.";

LANG["cmn_form_field"]="Поле";


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;

}
