var timerID = null;

//--Функция определения позиции элемента
function Pos(thisitem){
      if(typeof(thisitem) != 'object') {thisitem = document.getElementById(thisitem);}
      var ww = thisitem.offsetWidth, hh = thisitem.offsetHeight;
      for (var xx = 0,yy = 0; thisitem != null; xx += thisitem.offsetLeft,yy += thisitem.offsetTop,thisitem = thisitem.offsetParent);
      return {Left:xx, Top:yy, Right:xx + ww, Bottom:yy + hh}//--левый, верхний, правый, нижний
}
function stoptimer()//--отменяем выполнение функции starttimer()
		{
			clearTimeout(timerID);//--clearTimeout Сбрасывает таймаут, заданный методом setTimeout. Этот метод останавливает таймер, созданный методом setTimeout. См. подробности и пример в описании этого метода.
		}
function menu_hide_submenu(hsm){
					//alert(hsm);
					if(typeof(hsm) == 'object') {hsm=hsm.id;}
					//thisitem = document.getElementById(hsm);
					//alert(hsm);
					//if(thisitem.tagName=='TDD'){
					
					//--скрываем подменю
					document.getElementById('sub_'+hsm).style.visibility = 'hidden';
					//--виден задний фон ячейки
					document.getElementById(hsm+'_').style.visibility = 'visible';
					//hmm+'_'.style.visibility = 'visible';
					//}
}

function starttimer(par)
		{
			//alert(par);
			timerID = setTimeout("menu_hide_submenu("+par+")", 1);
			//timerID = setTimeout(menu_hide_submenu, 1, par);//--setTimeout Задает вычисление выражения, когда истечет данный таймаут, 200 миллисекунд. Метод возвращает целое значение (идентификатор таймера), которое может быть передано методу clearTimeout для остановки данного таймера, т. е. для отмены выполнения заданного действия.
			//alert(timerID);
			return timerID;
		}
function show_sub_menu(thisitem, menu){
				menu_=document.getElementById('sub_'+menu);
                //----Выравниваем элемент отосительно левого края, находим отступ слева
                menu_.style.left = Pos(thisitem).Left+180;//Pos() - находим координаты - возвращает координату X
                //----Выравниваем элемент относительно верха, находим отступ сверху
                menu_.style.top = Pos(thisitem).Bottom-35;//Pos() - находим координаты - возвращает координату Y
                menu_.style.visibility = 'visible';//делаем подменю элемент видимым
                document.getElementById(menu+'_').style.visibility = 'hidden';//--делаем нужный id картинки меню не видимым 
}







/************************************************** STATRSITE.RU obsesion file **************************************************/

// my = newClass();
function newClass(){
	var newo=true;
	return new newo.constructor();
}
// detect браузера
function browsers(){
	this.ver   = navigator.appVersion.toLowerCase();
	this.agent = ''+navigator.userAgent.toLowerCase();
	this.dom   = document.getElementById ? 1 : 0;
	this.opera = (this.agent.indexOf("opera")>-1 && this.dom) ? 1 : 0;
	this.ie    = (this.ver.indexOf("msie") > -1 && this.dom && !this.opera) ? 1 : 0;
	this.macOS = this.agent.indexOf("mac") > -1;
	this.mac   = (this.macOS && parseInt(this.ver) >= 7) ? 1 : 0;
	this.moz   = (this.agent.indexOf("gecko")>-1)
	this.ns6   = (this.dom && this.agent.indexOf("netscape")>-1 && parseInt(this.ver) >= 5) ? 1 : 0;
	//this.safari = (hnav.search(/macintosh/gmi)!=-1&&hnav.search(/safari/gmi)!=-1);
	//this.opera7 = (this.opera && parseInt(navigator.appVersion) >= 7);
	return this;
}
browser = new browsers();

//---------функция отдачи элемента по его id
function EID(eid){return document.getElementById(eid);}

//---------удаляем необходимый элемент
function DEL(id){document.body.removeChild(EID(id));}

//--обрезает пробелы в начале и в конце строки
function trim(s){
	while (s.substring(0,1) == ' ') {
		s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ') {
		s = s.substring(0,s.length-1);
	}
	return s;
}

//--Функции вывода описания ввода, пример: onFocus="foc(this)" onBlur="blu(this)" value="описание"
function foc(obj){
         if(obj.alt=='' || typeof(obj.alt)=='undefined'){obj.alt=obj.value;}
         if(obj.value==obj.alt){obj.value='';}
}
function blu(obj){
        if(obj.value==''){obj.value=obj.alt;}
}

//---------Проверка полей
function check_field(form, type_check, name_field, message){
		//-------------регулярки отдают true если срабатывает условие, и null в обратном случае
		
		//--регулярка на мыло
        mail = /^([\w\.\-]+)@([a-z0-9\-]+)\.([a-z0-9\-\.]+)$/i;//--условие: обязательное сопостовление указанной регулярке

        //--регулярка на цирфру
        inte = /[0-9\-\(\)\s]+/i;//--условие: обязательное присутствие хотябы 1 цифры

        //--регулярка на букву
        text = /[a-zа-я\-\.\s]+/i;//--условие: присутствие хотябы 1 буквы

        //--регулярка на пробел
        blank = /\s+/;//--условие: присутсвие хотябы 1 пробела, включая space, tab, form feed, line feed. Эквивалентно [ \f\n\r\t\v].
        
        obj = form[name_field];
        if(obj!=null && typeof(obj)!='undefined'){
        	obj_value = trim(obj.value);
	        /*
	        Примеры:
	        if(obj.value.match(blank)!=null){//--если хотябы один пробел найден - выдаем сообещине:
	        	alert("пробел найден="+obj.value.match(blank)+"=");
	        }
	        if(obj.value.match(blank)==null){//--если хотябы один пробел не найден - выдаем сообещине:
	        	alert('пробел не найден');
	        }
	        if(obj.value.match(blank)){//--если хотябы один пробел найден - выдаем сообещине:
	        	alert("пробел найден="+obj.value.match(blank)+"=");
	        }
	        */
	        //alert("="+obj.value.match(eval(type_check))+"=");
	        if(obj_value.match(eval(type_check))==null || obj_value==''){
	            obj.value = obj_value;
	            obj.style.border='#FF0000 1px solid';
	            return "- Вы не указали "+message+". Исправьте, пожалуйста!\n";
	    	}else{
	    		obj.value = obj_value;
	    		obj.style.border='#cccccc 1px solid';
	    		return "";
	    	}
    	}else{
    		alert("- Поле с id: "+name_field+" не найдено\n");
    		return "+";
    	}
}

// новое виртуальное окно с изображением
function openIMG(w,h,puth,title){
	var valLeft = (screen.width) ? (screen.width-w)/2 : 0;//--отступ слева
	var valTop = (screen.height) ? (screen.height-h)/2 : 0;//--отступ сверху
	var features = 'width='+w+',height='+h+',left='+valLeft+',top='+valTop+',';
	myWin = window.open("pic.htm", 'name_up', features+'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0');
	myWin.document.write("<html><head><title>"+title+"</title><body topmargin=0 leftmargin=0><img src="+puth+" border=0></body></html>");
	return false;
}

// функция открывает новое виртуальное окно
function OpenWindow(w,h,puth){
	var valLeft = (screen.width) ? (screen.width-w)/2 : 0;//--отступ слева
	var valTop = (screen.height) ? (screen.height-h)/2 : 0;//--отступ сверху
	var features = 'width='+w+',height='+h+',left='+valLeft+',top='+valTop+',';
	window.open(puth, 'name_up', features+'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0');
	return false;
}

//--Функция определения позиции элемента
function PosElement(thisitem){
	if(typeof(thisitem) != 'object') {thisitem = document.getElementById(thisitem);}
	var ww = thisitem.offsetWidth, hh = thisitem.offsetHeight;
	for (var xx = 0,yy = 0; thisitem != null; xx += thisitem.offsetLeft,yy += thisitem.offsetTop,thisitem = thisitem.offsetParent);
	return {Left:xx, Top:yy, Right:xx + ww, Bottom:yy + hh}//--левый, верхний, правый, нижний
}