var SubMenuActive = '';
dom = (document.getElementById)? true : false;
nn4 = (document.layers)? true : false;
ie4 = (!dom && document.all)? true : false;

function displayElem(id) {
  if (dom) document.getElementById(id).style.display = "block";
    else if (ie4) document.all[id].style.display = "block";
      else if (nn4) document.layers[id].display = "block";
  
}

function undisplayElem(id) {
  if (dom) document.getElementById(id).style.display= "none";
    else if (ie4) document.all[id].style.display= "none";
      else if (nn4) document.layers[id].display= "none";
}

function checkElem(id) { // проверяет существование id и, если существует, возвращает состояние видимости.
	if(dom){
		if(!document.getElementById(id)) return false;
		else return document.getElementById(id).style.display;
	}else if(ie4){
		if(!document.all[id]) return false;
		else return document.all[id].style.display;
	}else if(nn4){
		if(!document.layers[id]) return false;
		else return document.layers[id].display;
	}
}

function getElem(id) { // проверяет существование id и, если существует, возвращает ссылку на него.
	if(dom){
		if(!document.getElementById(id)) return false;
		else return document.getElementById(id);
	}else if(ie4){
		if(!document.all[id]) return false;
		else return document.all[id];
	}else if(nn4){
		if(!document.layers[id]) return false;
		else return document.layers[id];
	}
}

function showSubMenu(divn, imagesURL) {
	if (SubMenuActive != ''){
		document.images["img_"+SubMenuActive].src=imagesURL+"str1.gif";
		undisplayElem(SubMenuActive);
	}
	if (SubMenuActive != divn){
		document.images["img_"+divn].src=imagesURL+"str.gif";
		displayElem(divn);
		SubMenuActive = divn;
	}else{
		document.images["img_"+SubMenuActive].src=imagesURL+"str1.gif";
		undisplayElem(SubMenuActive);
		SubMenuActive = '';
	}
}

function ToggleBlockDiv(divn_main, divn_part, hideother) {
	divn = divn_main+divn_part;
	divn_status = checkElem(divn);
	if(divn_status == 'block') undisplayElem(divn);
	else if(divn_status == 'none') displayElem(divn);
}

function showDiv(divn) {
  if (dom) document.getElementById(divn).style.visibility = "visible";
    else if (ie4) document.all[divn].style.visibility = "visible";
      else document.layers[divn].visibility = "show";
}

function hideDiv(divn) {
  if (dom) document.getElementById(divn).style.visibility = "hidden";
    else if (ie4) document.all[divn].style.visibility = "hidden";
      else document.layers[divn].visibility = "hide";
}

function resizeDiv(divn, Dwidth, DHeight) {
	if(Dwidth){
		if(dom) document.getElementById(divn).style.width = Dwidth;
		else if(ie4) document.all[divn].style.width = Dwidth;
		else document.layers[divn].width = Dwidth;
	}
	if(DHeight){
		if(dom) document.getElementById(divn).style.height = DHeight;
		else if(ie4) document.all[divn].style.height = DHeight;
		else document.layers[divn].height = DHeight;
	}
}

function ToggleDisabledOptionsRange(field){
	for (i = 0; i < field.length; i++){
		if(field[i].disabled==false) field[i].disabled= true;
		else field[i].disabled = false;
	}
}
function CheckRegFormDate(inOptionName){
	var reg = new RegExp("^(\\d?\\d)\\.(\\d?\\d)\.(\\d?\\d?\\d\\d)(\\s(\\d?\\d))?(:(\\d?\\d))?(:(\\d?\\d))?$");
	var res = inOptionName.value.match(reg);
	var ArM = Array(31,29,31,30,31,30,31,31,30,31,30,31);
	if(res==null) RegFormAlert(inOptionName, "Неверно введена дата\nФормат даты: дд.мм.гггг чч:мм:сс");
	else {
		if ((RegExp.$2>12)||(RegExp.$2<1)) RegFormAlert(inOptionName, "Неверно введен месяц");
		else if (RegExp.$3<1900) RegFormAlert(inOptionName, "Неверно введен год");
		else if ((RegExp.$1<1)||(RegExp.$1>ArM[RegExp.$2-1])) RegFormAlert(inOptionName, "Неверно введен день");
		else if ((RegExp.$2==2)&&((RegExp.$3/4)!=parseInt(RegExp.$3/4, 10))&&(RegExp.$1>ArM[1]-1)) RegFormAlert(inOptionName, "Неверно введен день високосного года"); // високосный?
		else if (RegExp.$5>23) RegFormAlert(inOptionName, "Неверно введены часы");
		else if (RegExp.$7>59) RegFormAlert(inOptionName, "Неверно введены минуты");
		else if (RegExp.$9>59) RegFormAlert(inOptionName, "Неверно введены секунды");
		else return true;
	}
	return false;
}
function CheckRegFormDateByDay(inOptionName){
	var reg = new RegExp("^(\\d?\\d)\\.(\\d?\\d)\.(\\d?\\d?\\d\\d)$");
	var res = inOptionName.value.match(reg);
	var ArM = Array(31,29,31,30,31,30,31,31,30,31,30,31);
	if(res==null) RegFormAlert(inOptionName, "Неверно введена дата\nФормат даты: дд.мм.гггг");
	else {
		if ((RegExp.$2>12)||(RegExp.$2<1)) RegFormAlert(inOptionName, "Неверно введен месяц");
		else if (RegExp.$3<1900) RegFormAlert(inOptionName, "Неверно введен год");
		else if ((RegExp.$1<1)||(RegExp.$1>ArM[RegExp.$2-1])) RegFormAlert(inOptionName, "Неверно введен день");
		else if ((RegExp.$2==2)&&((RegExp.$3/4)!=parseInt(RegExp.$3/4, 10))&&(RegExp.$1>ArM[1]-1)) RegFormAlert(inOptionName, "Неверно введен день високосного года"); // високосный?
		else return true;
	}
	return false;
}
function RegFormAlert(inOptionName, inText){
	alert(inText);
	inOptionName.focus();
	inOptionName.select();
}
