var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion);
var nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1) && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1) && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var moz = 0;
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);

if(document.all)                                {ie=1; ns6=0; fShow="visible"; fHide="hidden";}
if(document.getElementById && !document.all)    {ie=0; ns6=1; fShow="visible"; fHide="hidden";}
opr6 = ie&&navigator.userAgent.indexOf("Opera")!=-1;
window.onerror = new Function("return true");

var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);
if (navigator.userAgent.indexOf('Mac')        >= 0 ||
	 navigator.userAgent.indexOf('Windows CE') >= 0 ||
    navigator.userAgent.indexOf('Opera')      >= 0) win_ie_ver = 0;


var folder;

function confirm_(caption_, url_){
	var val = confirm(caption_);
	if(val){
		window.location=url_;
	}
}

function previewImage(form_name, list, image, base_path, blank_image) {
	form = eval("document." + form_name);
	srcList = eval("form." + list);
	srcImage = eval("document." + image);

	var fileName = srcList.options[srcList.selectedIndex].text;
	var fileName2 = srcList.options[srcList.selectedIndex].value;

	if (fileName.length == 0 || fileName2.length == 0) {
		srcImage.src = blank_image;
	} else {
		srcImage.src = base_path + fileName2;
	}
}

function setImage(image, file_src) {
	srcImage = eval("document." + image);
	srcImage.src = file_src;	
}

function setPlusMinusImage(img, imgbase, imgstyle){
   if(imgstyle) setImage(img, imgbase+'forms/minus.gif')
   else setImage(img, imgbase+'forms/plus.gif')
}

// From http://www.massless.org/mozedit/
function mozWrap(txtarea, open, close){
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	if (selEnd == 1 || selEnd == 2) selEnd = selLength;
	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd)
	var s3 = (txtarea.value).substring(selEnd, selLength);
	txtarea.value = s1 + open + s2 + close + s3;
	return;
}

function storeCaret (){
	selectedInputArea = this;
	if(selectedInputArea.createTextRange){
		selectedRange = document.selection.createRange().duplicate();
	}
}

function clear_text(form_name, text_area_name){
	hform = eval("document." + form_name);
	ta = eval("hform." + text_area_name);

	ta.value ='';
}

function check_val(hform, req){
	var i, j;

	for(i=0; i<req.length; i++){
		ta = eval("hform." + req[i][0]);

		if(req[i][2] == 'noblank'){
			if(ta.value == ''){
				alert('Пожалуйста, введите ' + req[i][1] + '!');
				ta.focus();
				return false
			}
		}
		else if(req[i][2] == 'nozero'){
			if(parseInt(ta.value) == '0'){
				alert('Пожалуйста, введите ' + req[i][1] + '!');
				ta.focus();
				return false
			}
		}
		else if(req[i][2] == 'float'){
			re = /\,/;
			tmp = ta.value.replace(re, '.');	
			re = / /;
			tmp = tmp.replace(re, '');	
						
			tmp = parseFloat(tmp);
			if(isNaN(tmp)){
				alert('Некорректное значение ' + req[i][1] + '.\nДолжно быть число!');
				ta.focus();
				return false
			}
			else ta.value = tmp;
		}
		else if(req[i][2] == 'int'){
			re = / /;
			tmp = ta.value.replace(re, '');
			tmp = parseInt(tmp);
			if(isNaN(tmp)){
				alert('Некорректное значение ' + req[i][1] + '.\nДолжно быть число!');
				ta.focus();
				return false
			}
			else ta.value = tmp;
		}
		else if(req[i][2] == 'pass'){
			ta2 = eval("hform." + req[i][0] + "1");
			tmp = ta.value.toString();
			tmp2 = ta2.value.toString();
			if(tmp=='' || tmp2=='' || tmp1!=tmp2){
				alert('Пожалуйста, введите ' + req[i][1] + '. Значения в полях должны совпадать!');
				ta.focus();
				return false
			}
		}
		else if(req[i][2] == 'email'){
			tmp = ta.value.toString();
			if(tmp != ""){
				t = tmp.indexOf("@");
				if((tmp.indexOf(".") == -1) || (t == -1) || (t < 1) || (t > tmp.length - 5) || (tmp.charAt(t - 1) == '.') || (tmp.charAt(t + 1) == '.')){
					alert('Некорректно указан ' + req[i][1] + '.\nДолжен быть Email!');
					ta.focus();
					return false
				}
			}
			else{
				alert('Некорректно указан ' + req[i][1] + '.\nПустое значение не допустимо!');
				ta.focus();
				return false
			}
		}
	}
	return true;
}

function insert_text(form_name, text_area_name, text){
	hform = eval("document." + form_name);
	ta = eval("hform." + text_area_name);

	val = text.split('] [');

	if(document.selection && document.selection.createRange){
		theSelection = document.selection.createRange().text;
		if (theSelection) {
			if(val==text) document.selection.createRange().text = text +  theSelection;
			else document.selection.createRange().text = val[0] +']' +  theSelection + '[' + val[1];
			ta.focus();
			theSelection = '';
			return;
		}
	}
	else if (ta.selectionEnd && (ta.selectionEnd - ta.selectionStart > 0)){
		if(val==text) mozWrap(ta, text, '');
		else mozWrap(ta, val[0] +']', '[' + val[1]);
		return;
	}

	ta.value  += text;
	ta.focus();
}

function show_hint(form_name, hint_area_name, help){
	hform = eval("document." + form_name);
	helpb = eval("hform." + hint_area_name);
	helpb.value = help;
}

function expandit(curobj, target){
   var AObj = ie? eval(target) : document.getElementById(target);

   if(AObj){
		folder = AObj.style;
	}
	else{
		if(nav || opr6)
			folder=curobj.nextSibling.style;
      else
         folder=document.all[curobj.sourceIndex+1].style;
	}

	if(folder.display=="none"){
		folder.display="";
		folder.visibility="visible";
      return true;
	}
	else{
		folder.display="none";
		folder.visibility = "hidden";
      return false;
	}
}

function parse(obj, type){
	if(type == 'int'){
		re = /[^0-9]|\s/;
		tmp = obj.value.replace(re, '');
		tmp = parseInt(tmp);
		if(isNaN(tmp))	obj.value = 0;
		else obj.value = tmp;
	}
	else if(type == 'float'){
		re = /[^0-9\.\,]|\s/;
		tmp = obj.value.replace(re, '');
		tmp = parseFloat(tmp);
		if(isNaN(tmp))	obj.value = 0;
		else obj.value = tmp;
	}
	return true;
}