//	Функции для показа строки помощи

function GetObject(id) {
	if (navigator.appName.substring(0,2) !="Mi")
		return document.getElementById(id);
	else return document.all[id];
}

function GetAbsoluteTop(obj_id) {
   var obj;
   var result = 0;
   obj = GetObject(obj_id);
   while( obj.tagName != 'BODY' ) {
     result += obj.offsetTop;
     obj = obj.offsetParent;
   }
   return result;
}
function GetAbsoluteLeft(obj_id) {
   var obj;
   var result = 0;
   obj = GetObject(obj_id);
   while( obj.tagName != 'BODY' ) {
     result += obj.offsetLeft;
     obj = obj.offsetParent;
   }
   return result;
}

function HelpSystem(id) {
	GetObject(id).style.display = (	GetObject(id).style.display == 'none') ? '' : 'none';
}

//	Функции для проверки типов данных
function SetFocus( field ) {
  field.focus();
}

function Trim( str ) {
  var trimmed;
  trimmed = str.toString().replace( /^ */g, '' );
  trimmed = trimmed.toString().replace( / *$/g, '' );
  return( trimmed );
}

function GetElementStr(form, name) {
	return Trim(GetElement(form, name).value);
}

function GetElement(form, name) {
	return form.elements[name];
}

function CheckField( form, name, message, type, minlength, maxlength ) {
	var str;
	var success;
	success = 1;

	str = GetElementStr(form, name);
	if ((minlength != null) && (str.length < minlength)) {
		success = 0;
	} else
	if (str == '') {
		success = 0;
	}
	if ((maxlength != null) && (str.length > maxlength)) {
		success = 0;
	}
	//
	// TYPE description 
	// 0 - text
	// 1 - int
	// 2 - float
	// 3 - e-mail
	// 4 - AlphaNumeric
	// 8 - Enum
	// 9 - Summ
	// 10 - Web
	
	switch (type){
		case 1:
			if (!IsInt(str)) {
				success = 0;
			}
		break;
		case 2:
			if (!IsFloat(str)) {
				success = 0;
			}
		break;
		case 3:
			if (!IsEmail(str)) {
				success = 0;
			}
		break;
		case 4:
			if (!IsAlphaNumeric(str)) {
				success = 0;
			}
		break;
		case 8:
			if (!IsEnum(str)) {
				success = 0;
			}
		break;
		case 9:
			if (!IsSumm(str)) {
				success = 0;
			}
		break;
		case 10:
			if (!IsWeb(str)) {
				success = 0;
			}
		break;

	}
	if (success == 0) {
    	alert( message );
    	return( false );
	} else {
    	return( true );
	}
}

function IsInt( val ) {
  var pattern = /^[0-9]+$/gi
  return( pattern.exec( val )!=null );
}

function IsFloat( val ) {
  var pattern = /^[0-9]*\.?[0-9]+$/gi
  return( pattern.exec( val )!=null );
}

function IsEmail( val ) {
  var pattern = /^[^\.@]+(\.[^\.@]+)*@([^\.@]+\.)+[^\.@]+$/gi
  return( pattern.exec( val )!=null );
}

function IsAlphaNumeric( val ) {
  var pattern = /^\w+$/gi
  return( pattern.exec( val )!=null );
}

function IsEnum( val ) {
  var pattern = /^[0-9, ]+$/gi
  return( pattern.exec( val )!=null );
}

function IsSumm( val ) {
  var pattern = /^([0-9]\.?[0-9]*[ ]*\+?[ ]*)+$/gi
  return( pattern.exec( val )!=null );
}

function IsWeb( val ) {	
  var pattern = /^(http:\/\/)?([A-Za-z0-9_-]+\.)+[A-Za-z]+$/gi
  return( pattern.exec( val )!=null );
}


function ConfirmWindow(question){
	return window.confirm(question);
}

/*
 *   type - 5 дата, 6 - дата время, 7 - время
 */
function GetAndCheckDate(form, date, month, year, hour, min, sec, message, type) {
	
	var str = GetElementStr(form, date);
	var v_date = (str != '') ? eval(str) : 0;
	str = GetElementStr(form, month);	
	var v_month = (str != '') ? eval(str) : 0;
	str = GetElementStr(form, year);		
	var v_year = (str != '') ? eval(str) : 0;

	if (type == 5) {
		return CheckDate(v_date, v_month, v_year, 0, 0, 0, message, type);
	}
	
	str = GetElementStr(form, hour);
	var v_hour = (str != '') ? eval(str) : 0;
	str = GetElementStr(form, min);	
	var v_min = (str != '') ? eval(str) : 0;
	str = GetElementStr(form, sec);		
	var v_sec = (str != '') ? eval(str) : 0;
		
	if (type == 6) {
		return CheckDate(v_date, v_month, v_year, v_hour, v_min, v_sec, message, type);
	}
	
	if (type == 7) {
		return CheckDate(20, 12, 1980, v_hour, v_min, v_sec, message, type);		
	}
	
}

function CheckDate(day, month, year, hour, min, sec, message, type) {

	switch (type) {
	case 5: 
		month = month - 1;
		dt = new Date(year, month, day);
		result = (dt.getDate() == day) && (dt.getMonth() == month) && (dt.getFullYear() == year);

		break;
	case 6: 
	case 7:
		month = month - 1;
		dt = new Date(year, month, day, hour, min, sec);
		result = (dt.getDate() == day) && (dt.getMonth() == month) && (dt.getFullYear() == year) && (dt.getHours() == hour) && (dt.getMinutes() == min) && (dt.getSeconds() == sec);
	
		break;
	default:
		return false;
	}

	if (result == false) {
		month = month * 1 + 1;
		alert(message + " : " + day + "-" + month + "-" + year);
	}
	
	return result;
	
}

function ClearCombobox(object) {
	for (var i = 0; i < object.length; i++)  {
		object.options[i].selected=false;
	}
}

function CheckIp(form, ip1, ip2, ip3, ip4, message) {
	result = CheckField(form, ip1, message, 1, 0, 255) && CheckField(form, ip2, message, 1, 0, 255) && CheckField(form, ip3, message, 1, 0, 255) && CheckField(form, ip4, message, 1, 0, 255);
	sip1 = GetElementStr(form, ip1);
	sip2 = GetElementStr(form, ip2);
	sip3 = GetElementStr(form, ip3);
	sip4 = GetElementStr(form, ip4);
	if (result) {
		if (sip1 > 255 || sip2 > 255 || sip3 > 255 || sip4 > 255) {
			alert(message);
			result = 0;
		}
	}
	return result;
}

function Compare (form, name, message){
	str = GetElementStr(form, name);	
	if(str == ''){
		return true;
	}
	if (!CheckField( form, name, message, 2, 0, 1000)) {
		return false;	
	}	
//	value = parseFloat(str);
//	if(value >= min && value <= max){
//		return true;	
//	}
	return true;	
}

function CheckMultiComboBox(form, name, message) {

	if (form.elements[name].selectedIndex == -1) {
		alert( message );
    	return false;
	} 
	return true;
}

var id_menu = 0;
var id_div = 0;
var id_submenu = 0;
var timer = '';

function menu_on (id,is_parent) { 
	 var div;
	
	if(id_menu!=0){
	
		id_menu = 0;
	}
	if(id_div!=0){
		GetObject("div"+id_div).style.display="none";
		GetObject("menu"+id_div).className = 'menuoff';
		GetObject("a"+id_div).className = 'menu';		
		id_div = 0;
	}
	if(id_submenu!=0){	
		id_submenu = 0;
	}

	id_menu = id;
	
	if(is_parent == 1){		
		
		deltaY = 0;
		deltaX = -6;
		div = GetObject("div"+id);		
		div.style.left = GetAbsoluteLeft("menu"+id) + deltaX + 'px';		
//		div.style.top = GetAbsoluteTop("menu"+id) + deltaY + 'px';
		div.style.display="Block";
		id_div=id;
	}

	GetObject("menu"+id).className = 'menuon';
	GetObject("a"+id).className = 'aon';		

	clearTimeout(timer);
}

function menu_off(id,is_parent) {	
	if(is_parent == 1){
		timer = window.setTimeout(" GetObject('div"+id+"').style.display='none'; id_div = 0; id_menu = 0; GetObject('menu"+id+"').className='menuoff'; GetObject('a"+id+"').className='menu';",1000);
	} else {
		GetObject("menu"+id).className = 'menuoff';
		GetObject("a"+id).className = 'menu';	
	}

}

function submenu_off (id,id_parent) {		
	timer = window.setTimeout(" GetObject('div"+id_div+"').style.display='none'; id_div=0; id_menu = 0; GetObject('menu"+id_parent+"').className='menuoff'; GetObject('a"+id_parent+"').className='menu';",1000);	
}

function submenu_on (id,id_parent) {
	
	if(GetObject!=0){
		GetObject("div"+id_div).style.display = 'Block';
		GetObject("menu"+id_parent).className = 'menuon';
		GetObject("a"+id_parent).className = 'aon';	
	}
	if(id_submenu!=0){	
		id_submenu = 0;
	}
	
	id_submenu = id;
	
	clearTimeout(timer);
}


function getTitle(){
	var title = document.getElementById("titl");

	title.style.left = this.offsetLeft+20+"px";
	title.style.top = this.offsetTop+20+"px";

	if(title.style.display!="block")
		title.style.display="block";			
	else
		title.style.display="none";
		
}

function vertAlign(){
    var b = document.getElementById("inflash");
	if(b==null) return
	b.style.top = b.parentNode.offsetHeight/2 - b.offsetHeight/2 + "px";
}


