dom = (document.getElementById)? true : false;
nn4 = (document.layers)? true : false;
ie4 = (document.all && !dom)? true : false;

function show(elemId){ 

 if (dom) document.getElementById(elemId).style.display = "block";
 else if (ie4) document.getElementById(elemId).style.display = "block";
 

}

function show2(elemId){ 
 if (dom) document.getElementById(elemId).style.display = "inline";
 else if (ie4) document.all[elemId].style.display = "inline";

}

function hide(elemId){ 
 if (dom) document.getElementById(elemId).style.display = "none";
 else if (ie4) document.getElementById(elemId).style.display = "none";
}

function changeVisible(elemId) { 
if (document.getElementById(elemId)) {
 if (dom) current=document.getElementById(elemId).style.display;
 else if (ie4) current=document.all[elemId].style.display;

 if (current=="none") {current="block";} else {current="none";}

 if (dom) document.getElementById(elemId).style.display=current;
 else if (ie4) document.all[elemId].style.display=current;
}

}




function swapOptions(the_elem,the_array_name,value)
{

  var the_array = eval(the_array_name);
  the_elem2=document.forms['editDoc'].elements[the_elem];
  if (the_array!=undefined) setOptionText(the_elem2, the_array,value);
    else  setOptionText(the_elem2, Array(), value);
}



function setOptionText(the_select, the_array, value)
{

Object.prototype.in_array = function(datum, strict) {

    if (strict) function equals(a,b) { return a === b }
    else function equals(a,b) { return a == b }

    for (var i in this) {
        if (equals(this[i], datum)) return true;
    }
    return false;
}


  the_select.options.length=the_array.length;
  the_select.options[0] = new Option("[]","0");
  for (loop=1; loop < the_array.length; loop++)
  {
    if (value.in_array(the_array[loop][0])==true)  the_select.options[loop] = new Option(the_array[loop][1],the_array[loop][0],true,true);
      else the_select.options[loop] = new Option(the_array[loop][1],the_array[loop][0]);
  }

  the_select.onchange && the_select.onchange();
}


function SwitchMenu(obj)
{
  if(document.getElementById("sub"+obj)) {
    var el = document.getElementById("sub"+obj);
	var ar = document.getElementById("sub_block"+obj);
		
	if(ar.style.display == "none") {
      ar.style.display = "block";	  
	  el.className="act";	
	} else {
	  ar.style.display = "none";
	  el.className="";
	}
  }
}


function number_format( number, decimals, dec_point, thousands_sep ) {  // Format a number with grouped thousands
	    //
	    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
	    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	    // +     bugfix by: Michael White (http://crestidg.com)
	 
	    var i, j, kw, kd, km;
	 
	    // input sanitation & defaults
	    if( isNaN(decimals = Math.abs(decimals)) ){
	        decimals = 2;
	    }
	    if( dec_point == undefined ){
	        dec_point = ",";
	    }
	    if( thousands_sep == undefined ){
	        thousands_sep = ".";
	    }
	 
	    i = parseInt(number = (+number || 0).toFixed(decimals)) + "";
	 
	    if( (j = i.length) > 3 ){
	        j = j % 3;
	    } else{
	        j = 0;
	    }
	 
	    km = (j ? i.substr(0, j) + thousands_sep : "");
	    kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
	    //kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).slice(2) : "");
	    kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");
	 
	 
	    return km + kw + kd;
	}


var error = false;
var login_error= false;
var email_error = false;

var pass_err = false;
var check_err = false;

var cur_email = "";

function checkPassLength(val, leng, err) {
	if(val.value.length < leng) {
		$("#"+err).html("<span class='red'>Слишком короткий пароль (мин. " +leng+ " симв.)</span>");
		$(val).addClass("error");
		pass_err = true;
		return false
	}
	$("#"+err).html("");
	if(!check_err) {
		$(val).removeClass("error");
	}
	pass_err = false;
	return true;
}
function isPasswordCorrect(pass, check, err) {
	if($(pass).attr("value") != $(check).attr("value")) {
		$("#"+err).html("<span class='red'>Пароли не совпадают!</span>");
		$(pass).addClass("error");
		$(check).addClass("error");
		check_err = true;
		return false;
	}
	$("#"+err).html("");
	if(!pass_err) {
		$(pass).removeClass("error");
	}
	$(check).removeClass("error");
	check_err = false;
	return true;
}

function checkInput(elem, lng, err) {
	if($(elem).attr("value").length < lng) {
		error = true;
		$("#"+err).html("<span class='red'>Пожалуйста, заполните это поле!</span>");
		$(elem).addClass("error");
		return false;
	}
	
	$("#"+err).html("");
	$(elem).removeClass("error");
	return true;
}

function checkInput2(elem, lng, err) {
	if($(elem).attr("value").length < lng) {
		error = true;
		$("#"+err).html("<span class='red'>Пожалуйста, заполните это поле!</span>");
		$(elem).addClass("error");
		return false;
	}
	
	$("#"+err).html("");
	$(elem).removeClass("error");
	return true;
}



function checkTextarea(elem, lng) {
	if($(elem).attr("value") == "") {
		error = true;
		$(elem).addClass("error");
		return false;
	}

	$(elem).removeClass("error");
	return true;
}
function checkEmail(email, err)
{
	check = (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test($(email).attr("value"));
	if(!check) {
		$(email).addClass("error");
		$("#"+err).html("<span class='red'>Email введен некорректно!</span>");
		email_error = true;
		return false;
	}
	$("#"+err).html("");
	$(email).removeClass("error");
	email_error = false;
	return true;
}


function checkForm(form_name) {
	form = form_name;
	items = $(form + " input[type=text]," + form + " textarea");

	check = true;

	for(var i = 0; i < items.length; i++) {
		var cur = items[i];
		var flag = false;
		switch($(cur).attr('name')) {
			case "names[fio]": flag = checkInput(cur, 1, 'err1'); break;
			case "names[email]": flag = checkEmail(cur, 'err2'); break;
			case "names[text]": flag = checkTextarea(cur, 1); break;
			case "ccode": flag = checkInput(cur, 1, 'err3'); break;
			default: flag = true; break;
		}
		check = check && flag;
	}
	
	return check;  
}

