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

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:\/\/|https:\/\/|ftp:\/\/)+([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";
		id_div = 0;
	}
	if(id_submenu!=0){	
		id_submenu = 0;
	}

	id_menu = id;
	
	if(is_parent == 1){		
		div = GetObject("div"+id);		
		div.style.left = GetAbsoluteLeft("menu"+id) - 10 + 'px';		
		div.style.top = GetAbsoluteTop("menu"+id) + 22 + 'px';
		div.style.display="Block";
		id_div=id;
	}
	
	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",1000);
	}
		
}

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

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

function change(td, bgcolor, color) {
	td.style.background = bgcolor; 
	td.style.color= color;
}

step = 5;

function startScrollingDiv(type) {
	switch (type) {
		case 1:
			stepX = -step;
		break;
		case 2:
			stepX = step;
		break;
	}
	tid = setInterval("scrollDiv()", 10);
}

function scrollDiv() {
	d = GetObject('gallery');
	if (d.scrollLeft + stepX < d.scrollWidth - d.clientWidth && d.scrollLeft + stepX >= 0) {
		d.scrollLeft += stepX;
	}
}

function stopScrolling(){
	clearInterval(tid);
}
cl = 1;
function change(obj){
	if (cl) {
		if(obj.className != 'active'){
			obj.className = 'active';
		}else{
			obj.className = '';
		}
	}
}
