/* ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ */
var img_dir = "interface/img";

/* ищем host */
var loc = window.location.href;
var matches = loc.match(/http:\/\/([^\/]*)\//);
var host = matches[1]; // имя хоста

/* вырезание пробелов */
if ('undefined' == typeof String.prototype.trim)
{
  String.prototype.trim = function() {
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
  }
}

function fixPNG(element)
{
  //Если браузер IE версии 5.5-6
  if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
  {
    var src;
	
    if (element.tagName=='IMG') //Если текущий элемент картинка (тэг IMG)
    {
      if (/\.png$/.test(element.src)) //Если файл картинки имеет расширение PNG
      {
        src = element.src;
        element.src = "/i/blank.gif"; //заменяем изображение прозрачным gif-ом
      }
    }
    else //иначе, если это не картинка а другой элемент
    {
	  //если у элемента задана фоновая картинка, то присваеваем значение свойства background-шmage переменной src
      src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
      if (src)
      {
        src = src[1]; //берем из значения свойства background-шmage только адрес картинки
        element.runtimeStyle.backgroundImage="none"; //убираем фоновое изображение
      }
    }
    //если, src не пуст, то нужно загрузить изображение с помощью фильтра AlphaImageLoader
    if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
  }
}

/* перечисление всех свойств любого объекта */
Object.prototype.properties = function()
{
	var s = "";
	for(var i in this){
		s += i + ': <font color="#006600">' + this[i] + '</font><br />';
	}

	var props_window = window.open('','props_window','top=0, left=20,scrollbars=1, menubar=0, toolbar=0, location=0, directories=0, status=1, resizable=1,width=800,height=600');
	props_window.focus();

	props_window.document.write('<small style="font-family: Tahoma; font-size: 10px;">'+s+'</small>');
}

/* обработка HTML-мнемоник */
if ('undefined' == typeof String.prototype.mnemonicToChar)
{
  String.prototype.mnemonicToChar = function()
  {
  	var str = this;
	var pat = new Array (/&lt;/,/&gt;/,/&quot;/);
	var rep = new Array ('<','>','"');
	var count = pat.length; 
	for (var i=0; i<count; i++)
	{
		while (str.search(pat[i]) != -1) str = str.replace(pat[i],rep[i]);
	}
    return str;
  }
}

function PopUp(script_name,x,y,width,height)
{
	popup = window.open(script_name,'popup','top=' + y + ', left=' + x + ',scrollbars=1, menubar=0, toolbar=0, location=0, directories=0, status=1, resizable=1,width=' + width + ',height=' + height);
	popup.focus();
}

function BrowserDetect() {
   var ua = navigator.userAgent.toLowerCase(); 
   // browser name
   this.isIE = ( (ua.indexOf('msie') != -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1));
   // browser version
   this.versionMinor = parseFloat(navigator.appVersion); 
   // correct version number
   if (this.isIE && this.versionMinor >= 4) {
      this.versionMinor = parseFloat(ua.substring( ua.indexOf('msie ') + 5 ));
   }
   this.versionMajor = parseInt(this.versionMinor); 
   // dom support
   this.isDOM1 = (document.getElementById);
   this.isDOM2Event = (document.addEventListener && document.removeEventListener);
   this.isIE5up = (this.isIE && this.versionMajor >= 5);
}
var browser = new BrowserDetect();

/* является ли числом */
function isNumeric(event)
{
	var keyASCII = event.which ? event.which : event.keyCode;
	
	if (isNaN(String.fromCharCode(keyASCII)) && keyASCII != 17 && keyASCII !=8) return false;
	else return true;
}

/* переход по адресу */
function moveTo(url)
{
	window.location.href = url;
}

/* предзагрузка картинок */
function preloadImg(img_src) {
	if (document.images) {
	 rslt = new Image();
	 rslt.src = img_src;
	 return rslt;
	}
}

// проверка формы перед отправкой 
function checkForm(frm)
{
	if (!req_elem) return true;
	
	var count = req_elem.length;
	var err   = false;
	
	if (document.getElementById('php_errors')) document.getElementById('php_errors').className = 'hidden';
	
	for (i=0; i<count; i++)
	{
		var id = req_elem[i];
		var err_curr = false;
		
		if (document.getElementById(id))
		{
			var elem = document.getElementById(id);
			
			if (!document.getElementById('div'+id))
			{
				var div = document.createElement('font');
				div.id = 'div'+id;
				div.className = 'small red';
				elem.parentNode.appendChild (div);
			}
			else var div = document.getElementById('div'+id);

			// логин
			if ((elem.name.indexOf("login") != -1 || id.indexOf("login") != -1) ? elem.value.length <4 : false)
			{
				if(elem.style.color != '#cc0000') div.innerHTML = '&nbsp; длина логина должна быть не менее 4-х знаков';
				err_curr = true;
			}
			// пароль
			else if ((elem.name.indexOf("password") != -1 || elem.name.indexOf("pwd") != -1 || id.indexOf("pwd") != -1) ? elem.value.length <4 : false)
			{
				if(elem.style.color != '#cc0000') div.innerHTML = '&nbsp; длина пароля должна быть не менее 4-х знаков';
				err_curr = true;
			}
			// e-mail
			else if ((elem.name.indexOf("email") != -1 || elem.name.indexOf("eml") != -1 || id.indexOf("eml") != -1 || id.indexOf("email") != -1) ? elem.value.search (/^[a-z\.\-_0-9]+@[a-z\.\-_0-9]+\.[a-z]{2,5}$/i) == -1 : false)
			{ 
				if(elem.style.color != '#cc0000') div.innerHTML = '&nbsp; введен неверный е-mail';
				err_curr = true;
			}
			// произвольный элемент
			else if ((elem.type == 'text' || elem.type == 'textarea' || elem.type == 'password') ? elem.value.length == 0 : false)
			{
				if(elem.style.color != '#cc0000') div.innerHTML = '<br />&nbsp; поле не заполнено';
				err_curr = true;
			}
			
			if (err_curr == false)
			{
				if (document.getElementById('div'+id)) elem.parentNode.removeChild (document.getElementById('div'+id));
				elem.style.color = '#000000';
			}
			else
			{
				elem.style.color = '#cc0000';
				err = true;
			}
			
		}
	}
	
	if (err === false) return true; else return false;
}