function view_image(url, title, width, height) {  var sw = screen.width - 20;
  var sh = screen.height - 60;
  var scrollbars = "no";

  if (width <= 0 || height <= 0) return;
  if (sw < width)
  {
    width *= sw / width;
    scrollbars = "yes";
    height += 20;
  }
  if (sh < height)
  {
    height *= sh / height;
    scrollbars = "yes";
    if (sw >= width + 20) width += 20;
  }
  var new_win = window.open(url, "", "resizable=no,scrollbars=" + scrollbars + ",menubar=no,width="+width+",height="+height);
}

function load_image(img,title) {
  if (img.complete) setTimeout("load_image('" + img + "')", 100); else
  {	
    var sw = screen.width - 20;
    var sh = screen.height - 60;
    var scrollbars = "no";
    var width=img.width;
    var height=img.height;
    if (width <= 0 || height <= 0) return;
    if (sw < width) {
    	width = sw;
    	scrollbars = "yes";
    	height += 20;
    }
    if (sh < height) {
    	height = sh;
    	scrollbars = "yes";
    	if (sw >= width + 20) width += 20;
    }

    var new_win = window.open("", "", "resizable=no,scrollbars=" + scrollbars + ",menubar=no,width="+width+",height="+height);    var w_html="<html><head><title>"+ title +"</title></head><body style=\"margin:0px;padding:0px;\"><img src="+ img.src +" width="+ width +" height="+ height +" alt=\""+ title +"\"/></body></html>";    new_win.document.write(w_html);  }
}

function clickOnce(v) { try { return !eval(v); } catch(ex) { setTimeout(v + ' = false', 5000);	return eval(v + '= true');	} }

var old_onkeypress = new Array();var old_onchange = new Array();
var handlers_are_not_initialized = true;


// проверка при подтвержденииfunction validate(_form, user_name, email_fieldname) {
	var required_fields = false;
	var focus_key = false;
	var i;

	// первичная инициализация, установка обработчиков событий	if (handlers_are_not_initialized) {
		for (i = 0; i < _form.length; i++)
			if (_form[i].getAttribute("required") == "true") {
				_form[i].setAttribute('elem_index', i);
				old_onkeypress[i] = _form[i].onkeypress;
				old_onchange[i] = _form[i].onchange;
				_form[i].onkeypress = new_onkeypress;
				_form[i].onchange = new_onchange;
			}
		handlers_are_not_initialized = false;
	}

   // проверка незаполненных инпутов
	for (i = 0; i < _form.length; i++) {
		if (_form[i].getAttribute("required") == "true") {
			if (_form[i].value == "") {
				required_fields = true;
				if (_form[i].style.backgroundColor && !_form[i].getAttribute('t_color'))
					_form[i].setAttribute('t_color', _form[i].style.backgroundColor)
				else 
					_form[i].setAttribute('t_color', '*');
			 	_form[i].style.backgroundColor = '#ffcccc';
				if (!focus_key) {
					_form[i].focus();
					focus_key = true;
				}
			}
		}
	}
	if (required_fields) {
		alert("Не заполнены обязательные поля");
		return false;
	}

   // проверка на идентичность пароля и его подтверждения
	if(_form["var_password"] != null && _form["var_password"].value != '') {
		if(_form["var_password2"]!=null)
			if(_form["var_password"].value != _form["var_password2"].value) {
				alert("Пароли не совпадают");
				return false;
			}
	}

   // проверка синтаксиса адреса электронной почты
	if(email_fieldname != null) if(_form[email_fieldname].value != "")
		if(!_form[email_fieldname].value.match(/^\w+[\.\-\w]*@(\w+\-*\w*\.)+\w+$/)) {
			_form[email_fieldname].focus();
	      alert("Недопустимый формат e-mail.");
   	   return false;
	    }

   // проверка имени пользователя на допустимость символов
	if (user_name != null)
		if(!_form[user_name].value.match(/^[0-9a-zA-Z_]+$/)) {
			_form[user_name].focus();
   	   alert("Недопустимые символы в имени пользователя");
      	return false;
	    }

	return clickOnce('validate_error');
}

// сброс цвета для обязательных полей
function reset_required(obj) {
	if (obj.getAttribute('required') == 'true') {
		if (obj.t_color && obj.getAttribute('t_color') != '*')
			obj.style.backgroundColor = obj.getAttribute('t_color');
		else
			obj.style.backgroundColor = '';
	}
}

// обработчики событий для обязятельных полей
function new_onkeypress() {
   // необходимые действия
   reset_required(this);
   // собственный обработчик
	var event_handler = old_onkeypress[this.getAttribute("elem_index")];
	if (event_handler) event_handler();
}

function new_onchange() {   // необходимые действия
   reset_required(this);
   // собственный обработчик
	var event_handler = old_onchange[this.getAttribute("elem_index")];
	if (event_handler) event_handler();
}

// JavaScript Document
function Resize()
{
	var oDiv = document.getElementById('div100');
	if (oDiv)
		oDiv.style.height =  oDiv.parentNode.clientHeight;
}

function showMenu(menuID, parent)
{
	var menu = document.getElementById(menuID);
	if (!menu)
		return;
	if (parent)
	{
		menu.style.top = getElementTop(parent) + parent.clientHeight + "px";
		menu.style.left = getElementLeft(parent) + "px";
	}
	menu.style.visibility = "visible";
}

function hideMenu(menuID)
{
	var menu = document.getElementById(menuID);
	if (!menu)
		return;
	menu.style.visibility = "hidden";
}

function getElementLeft(element)
{
	xPos = element.offsetLeft;
	tempEl = element.offsetParent;
	while (tempEl != null)
	{
		xPos += tempEl.offsetLeft;
  		tempEl = tempEl.offsetParent;
  	}
	return xPos;
}

function getElementTop(element)
{
	yPos = element.offsetTop;
	tempEl = element.offsetParent;
	while (tempEl != null) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
  	}
	return yPos;
}
function toggleNode(menuItem)
{
	submenu = menuItem.nextSibling;
	while (submenu && submenu.className != "subtree")
		submenu = submenu.nextSibling;
	
	if (!submenu)
		return;
		
	if (submenu.style.position == 'absolute')
	{
		submenu.style.position = 'static';
		if (menuItem.parentNode.className == "subtree")
			menuItem.style.fontWeight = 'bold';
	}
	else
	{
		submenu.style.position = 'absolute';
		if (menuItem.parentNode.className == "subtree")
			menuItem.style.fontWeight = 'normal';
	}
}

