  function init() 
  {
   IE = (document.all)
   NC = (document.layers)
   Opera = (document.getElementById)
  }

function screenSize() {
      var w, h; // Объявляем переменные, w - длина, h - высота
      w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
      h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
      return {w:w, h:h};
}

function getScrollTop()
{
    var result = 0;

    if (document.documentElement.scrollTop)
        result = document.documentElement.scrollTop;

    if (document.body.scrollTop)
        result = document.body.scrollTop;

    return result;
}

function absPosition(obj) { 
      var x = y = 0;
      while(obj) {
            x += obj.offsetLeft;
            y += obj.offsetTop;
            obj = obj.offsetParent;
      }
      return {x:x, y:y};
}

 function displayShowHide (name, visibility)
  {
   init();
   if (visibility)
    visibility='block';
   else
    visibility='none';

    if(IE) eval ('document.all[name].display = visibility')
    if(NC) document.layers[name].display = visibility
    if(Opera) document.getElementById(name).style.display = visibility
   }

 function show_hide (name, visibility, usecss)
  {
   init();
   if (visibility)
    visibility='visible';
   else
    visibility='hidden';
   if (usecss)
    {
    if (IE) document.all[name].className = 'div'+visibility;
   else
    if (NC) document.layers[name].className = 'div'+visibility;
     else
        if (Opera) document.getElementById(name).className = 'div'+visibility;
    }
   else
    {
    if(IE) eval ('document.all[name].visibility = visibility')
    if(NC) document.layers[name].visibility = visibility
    if(Opera) document.getElementById(name).style.visibility = visibility
    }
   }

// Меню
 function fadeIn (obj)
  {
           obj.className = obj.className+"Hover";
  }

function fadeOut (obj)
  {
         var objClass = obj.className;
         obj.className = objClass.substr(0, objClass.length-5);
  }

  // добавление в избранное
  function getBrowserInfo() {
 var t,v = undefined;
 if (window.opera) t = 'Opera';
 else if (document.all) {
  t = 'IE';
  var nv = navigator.appVersion;
  var s = nv.indexOf('MSIE')+5;
  v = nv.substring(s,s+1);
 }
 else if (navigator.appName) t = 'Netscape';
 return {type:t,version:v};
}

function bookmark(a){
 var url = window.document.location;
 var title = window.document.title;
 var b = getBrowserInfo();
 if (b.type == 'IE' && 7 > b.version && b.version >= 4) window.external.AddFavorite(url,title);
 else if (b.type == 'Opera') {
  a.href = url;
  a.rel = "sidebar";
  a.title = url+','+title;
  return true;
 }
 else if (b.type == "Netscape") window.sidebar.addPanel(title,url,"");
 else alert("Нажмите CTRL-D, чтобы добавить страницу в закладки.");
 return false;
}

//Email
function isValidEmail (email)
{
 return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
}

var curEmail = null;
var winClear = null;
function rollBack()
{
    var objEmail =  document.getElementById(curEmail.id);
    objEmail.disabled = false;
    objEmail.readonly = false;
    objEmail.style.color = "#bababa";
    objEmail.value = curEmail.title;
    objEmail.className = "email";
    curEmail = null;  
}

function checkEmail()
{
    if (!isValidEmail (this.value))
        this.className = "emailError";
    else
        this.className = "emailOk";
}

function inputEmail(obj)
 {
 obj.onblur = function() {if(this.value.length == 0) {rollBack()}};
 if (obj.onkeyup == null) obj.onkeyup = checkEmail;
 
  if (curEmail != null && curEmail.id != obj.id)
       {
       rollBack()
       }

   if (curEmail === null)
       {
       clearTimeout(winClear);
       obj.style.color = "#000";
       obj.title = obj.value;
       curEmail = obj;
       obj.value = "";
       }
 }

function btEmailSave()
 {
  if (curEmail != null)
   {
   if (isValidEmail (curEmail.value))
       {
       var objEmail =  document.getElementById(curEmail.id);
       objEmail.disabled = true;
       obj = new ajax('POST', "index.php?subscribeMail", emailSaved);
       obj.params['email'] = curEmail.value;
       obj.load();
        }
   }
 }
 function emailSaved(res)
  {
  var objEmail =  document.getElementById(curEmail.id);
  objEmail.disabled = false;
  objEmail.readonly = true;
  objEmail.style.color = "#bababa";
  objEmail.value = "Спасибо, Ваш e-mail сохранен.";
  winClear = setTimeout('rollBack()', 10000);

  }

  // Кнопки
 
 function setButtonEffect ()
 {
   var rows = document.getElementsByTagName('input');
   for (i=0; i<rows.length; i++)
       {
          if (rows[i].name == 'dinamicButton')
              {
              setButtonIdEffest (rows[i]);
              }
       }

   rows = document.getElementsByTagName('span');
   for (i=0; i<rows.length; i++)
       {
          if (rows[i].className == 'b28-right')
              {
              rows[i].onmouseover = b28MouseOver;
              rows[i].onmouseout = b28Clear;
              rows[i].onmousedown = b28MouseClick;
              rows[i].onmouseup = b28Clear;
              }
       }
 }

function setButtonIdEffest (obj)
{
   obj.onmouseout = function() {buttonEffectMove (this, 0)}
   obj.onmouseup = function() {buttonEffectMove (this, 1)};
   obj.onmousedown = function() {buttonEffectMove (this, 2)};
   obj.onmouseover = function() {buttonEffectMove (this, 1)}; 
}

function clearButtonIdEffest (obj)
{
   obj.onmouseout = null;
   obj.onmouseup = null;
   obj.onmousedown = null;
   obj.onmouseover = null;
}

 function buttonEffectMove (obj, pos)
 {
   var height = obj.clientHeight;
   obj.style.backgroundPosition = "0px -"+ pos*height+"px";
 }
 /* 28px height button */
 function b28MouseOver()
 {
    this.className = "b28-right hover";
 }

 function b28Clear()
 {
    this.className = "b28-right";
 }

 function b28MouseClick()
 {
    this.className = "b28-right click";
 }

 /* Рассказать другу */
function tellAFrientSaved(res)
{
 displayShowHide ("resultText", true);
 displayShowHide ("SendButtonDiv", false);   
}

 function tellAFrient()
 {
   var button = document.getElementById("smallWinButton");
   if (isValidEmail(curEmail.value) &&  button.onmouseover!=null )
       {
       var objEmail =  document.getElementById(curEmail.id);
       objEmail.readonly = true;
       obj = new ajax('POST', "index.php?subscribe=1", tellAFrientSaved);
       obj.params['email'] = curEmail.value;
       obj.load();
       clearButtonIdEffest (button);
       buttonEffectMove (button, 3);
       }
 }

function winValidate (email, buttonName)
{
var button = document.getElementById(buttonName);
if (!isValidEmail (email.value))
        {
        email.className = "emailError";
        clearButtonIdEffest (button);
        buttonEffectMove (button, 3);
        }
    else
        {
        email.className = "emailOk";
        setButtonIdEffest (button);
        buttonEffectMove (button, 0);
        }
}

 function closeSmallWin ()
 {
   displayShowHide ("smallWindow", false);
   displayShowHide ("resultText", false);
   displayShowHide ("SendButtonDiv", true);
   if (curEmail != null)
      rollBack();
 }

 function openSmallWin ()
 {

     var objWin =  document.getElementById("smallWindow");
     var left = screenSize().w/2 - 135;
     var height = getScrollTop() + screenSize().h/2 - 70;
     objWin.style.left = left+"px";
     objWin.style.top = height+"px";
     displayShowHide ("smallWindow", true);
     
     var emailInput = document.getElementById("friendEmail");
     if (emailInput.onkeyup == null) emailInput.onkeyup = function() {winValidate(emailInput, "smallWinButton");};

     var button = document.getElementById("smallWinButton");
     clearButtonIdEffest (button);
     buttonEffectMove (button, 3);
 }

 function closeLoginWin ()
 {
   displayShowHide ("loginWindow", false);
 }

 function openLoginWin ()
 {

     var objWin =  document.getElementById("loginWindow");
     var left = screenSize().w/2-100;
     
     var height = getScrollTop() + screenSize().h/2-180;
     objWin.style.left = "-"+left+"px";
     objWin.style.top = height+"px";
     displayShowHide ("loginWindow", true);
 }

 function loginRes (res)
 {
 if (res == '')
     window.location.reload();
 else
     {
     var obj = document.getElementById("loginError");
     obj.innerHTML = res;
     }
 }

 function login()
 {
     var err = document.getElementById("loginError");
     err.innerHTML = '';
     var error = document.getElementById("loginError");
     error.innerHTML = "";
     var obj = new ajax('POST', "index.php?login=true", loginRes);
     var login = document.getElementById("loginLogin");
     var pass = document.getElementById("loginPass");
     obj.params['login'] = login.value;
     obj.params['pass'] = pass.value;
     if ( fildValidate(login) && fildValidate(pass))
        obj.load();
     else
     {
         error.innerHTML = "Неправельно заполены поля";
     }
 }

 //Поля


var filds = {}

function rollOrderBack (obj)
{
   if (obj.orig != undefined)
   {
       obj.disabled = false;
       obj.readonly = false;
       obj.style.color = "#bababa";
       obj.value = obj.orig;
       obj.className = obj.origClass;
       obj.rolled = true;
       obj.orig = undefined;

       if (obj.origType != undefined)
           {
               obj.type = obj.origType;
               obj.origType = undefined;
           }
   }
}

function fildValidate(obj)
{
 if (obj.validator == "text" && obj.value.length > 0 ||
     obj.validator == "email" &&  isValidEmail (obj.value))
     {
         return true;
     }
 else
     {
         return false;
     }
}

function validate()
{
 if (fildValidate(this))
     {
         this.className = "fildOk";
     }
 else
     {
         this.className = "fildError";
     }

  var i = 0;
  for (var curId in filds) {
	obj = document.getElementById(curId);
        if (fildValidate(obj)) i++;
   }

  var button = document.getElementById("orderButton");
  if (i >= 3) {
    setButtonIdEffest (button);
    buttonEffectMove (button, 0);
  }
  else {
    clearButtonIdEffest (button);
    buttonEffectMove (button, 3);
  }
}

 function fildValidator (obj, type, inpType)
 {
    obj.onblur = function() {if(this.value.length == 0) {rollOrderBack(this)}};
    if (type != "none") obj.onkeyup = validate;

    filds[obj.id] = obj.value;
    obj.validator = type;
    if (obj.orig == undefined)
        {
         obj.orig = obj.value;
         obj.style.color = "#000000";
         obj.origClass = obj.className;
         obj.value = '';
         if ( inpType != null)
             {
              obj.origType = obj.type;
              obj.type = inpType;
             }

        }
 }
// Cart
function moveCart( pos )
{
    var cartDiv = document.getElementById("cart");
    var top = getScrollTop();
    if (top > pos.y)
       cartDiv.style.top = (top - pos.y + 10) + "px";
    else
       cartDiv.style.top = "0px";
   
}

var cartTimer;
 function addToCartRes (msg)
 {
     var cartDiv = document.getElementById("cart");
     cartDiv.innerHTML = msg;
     var cartDiv = document.getElementById("cart");
     cartTimer = window.setTimeout(function() {cartDiv.style.top="0px";window.onscroll = null;}, 3000);
 }

 var cartInfoDivTime = 2000; // Время которое будет висеть информационное окно
 function addToCart(e, id)
 {
     showCartInfoDiv(e, cartInfoDivTime);
     var cartDiv = document.getElementById("cart");
     clearTimeout(cartTimer);
     cartDiv.style.top="0px";
     var pos = absPosition(cartDiv);
     cartDiv.innerHTML = "<img src='html/img/loading.gif' />";
     var obj = new ajax('GET', "index.php?addToCart="+id, addToCartRes);
     obj.load();
     moveCart(pos);
     window.onscroll = function () {moveCart(pos);};
 }

 function gotoCat(url)
 {
     location.href = url;
 }

 function openCat(id)
 {
     var el = document.getElementById(id);
     var display = (el.style.display == 'none')?"block":"none";
     el.style.display = display;
 }
 
 fadeOpacity.addRule('opacityRule1', 0, 1, 30);
 function showCartInfoDiv(e, sec)
 {
     var CART_INFO_DIV = "cartInfoDiv";
     if (sec!=null) closeCartInfoDiv();
     var div = document.getElementById(CART_INFO_DIV);
     if (div==null)
     {
        var newDiv = document.createElement("div");
        newDiv.setAttribute("id", CART_INFO_DIV);
        document.getElementsByTagName("body")[0].appendChild(newDiv);
        div = document.getElementById(CART_INFO_DIV);
        div.style.position = "absolute";
        div.innerHTML = "Товар добавлен в корзину";
     }
     if (sec!=null) {
         setElementOpacity(div, 0);
         fadeOpacity(CART_INFO_DIV, 'opacityRule1');
     }

     var mouse = mousePageXY(e);
     div.style.top = 5+mouse.y+"px";
     div.style.left = 5+mouse.x+"px";
     div.style.display = "block";
    
     if (!document.body.onmousemove)
        document.body.onmousemove = function(event) { showCartInfoDiv(event); };

     if (sec!=null)
          window.cartTimeOut = setTimeout(function () {closeCartInfoDiv(true)}, sec);
 }

function closeCartInfoDiv(fade)
{
    var CART_INFO_DIV = "cartInfoDiv";
    if (window.cartTimeOut) clearTimeout(window.cartTimeOut);
    var div = document.getElementById(CART_INFO_DIV);

    if (div==null) return;
    if (fade)
        {
            fadeOpacity.back(CART_INFO_DIV);
            window.cartTimeOut = setTimeout(function () {closeCartInfoDiv(false)}, 300);
            return;
        }
    document.body.onmousemove = null;
    div.style.display = "none";
    
}

/* Функция скролирвания изображения левого блока
 лобальный массив  leftInfo катинок
 leftInfo[i][0] - адрес картинки
 leftInfo[i][1] - ссылка
 leftInfo[i][2] - название товара
 leftInfo[i][3] - загруженая картинка

 глобальная переменная leftInfoCur отвечает за текущий элемент

*/
var leftInfo = new Array();
var leftInfoTotal = -1;
var leftInfoCur = 0;


function initInfo()
{
    var loading = new Image();
    var blank = new Image();

    loading.src = "html/img/loaderLightGreen.gif";
    blank.src = "html/img/blank.gif";
    // первичная загрузка
    preloadInfo(0, true);
}

// Логика отображения
function showInfoImg (id)
{
   if (leftInfo[id] == undefined) return ;
    var img1 = document.getElementById("leftInfoImg1");
    var img2 = document.getElementById("leftInfoImg2");
    fullInfoData (leftInfo[id], img1, document.getElementById("leftInfoA1") );
    
    if (leftInfo[id+1] == undefined)
        {
            var blankAr = new Array(4);
            blankAr[0] = "html/img/blank.gif";
            blankAr[1] = "";
            blankAr[2] = "";
            blankAr[3] = null;
            fullInfoData (blankAr, img2, document.getElementById("leftInfoA2") );
        }
    else
        fullInfoData (leftInfo[id+1], img2, document.getElementById("leftInfoA2") ); 
}

function preloadInfoResult (msg)
{
    try {
        eval(msg);
    }
    catch (err){ }
    showInfoImg (leftInfoCur);
}
// Впередиидущая загрузка
function preloadInfo(id, needTotal)
{
    if (((leftInfo.length-1) - id > 3 || leftInfo.length >= leftInfoTotal) && leftInfoTotal != -1 ) return;
    var start = (leftInfoTotal == -1)?0:leftInfo.length;
    var end = (start+3<leftInfoTotal || leftInfoTotal == -1)?start+3:leftInfoTotal;
    for(var i=start; i< end; i++ )
        {
            leftInfo[i] = new Array(4);
            leftInfo[i][0] = "html/img/loaderLightGreen.gif";
            leftInfo[i][1] = "";
            leftInfo[i][2] = "";
            leftInfo[i][3] = new Image();
            leftInfo[i][3].src = leftInfo[i][0];
        }
    needTotal = (needTotal==null)?0:1;
    var obj = new ajax('GET', "index.php?leftInfo="+start+"&needTotal="+needTotal, preloadInfoResult);
    obj.load();
}
// Скролирование блока (событие onclick
function scrollInfo (derection)
{
    var newId = leftInfoCur - 1;

    if (derection == "next") newId = newId + 2;

    preloadInfo(newId);
    showInfoImg (newId);
    if (newId >= leftInfoTotal) newId = leftInfoTotal-1;
    if (newId < 0) newId = 0;
    leftInfoCur = newId;
}

//непосредственно отоброжение
function fullInfoData (infoArr, imgObj, aObj )
{
   imgObj.src = infoArr[0];
   fullInfoDataAfterLoad (infoArr, imgObj, aObj );
   imgObj.infoArr = infoArr;
   imgObj.aObj = aObj;
   imgObj.onload = function () {fullInfoDataAfterLoad (this.infoArr, this, this.aObj );}
}
// изображение окончательно загружено
function fullInfoDataAfterLoad (infoArr, imgObj, aObj )
{
    imgObj.style.height = "auto";
    imgObj.style.width = "auto";
    // коректировка размера
    var deltaY = imgObj.offsetHeight - 150;
    var deltaX = imgObj.offsetWidth - 140;

    if (deltaY>deltaX)
        imgObj.style.height = (imgObj.offsetHeight <= 150)?imgObj.offsetHeight:150+"px";
    else
        imgObj.style.width = (imgObj.offsetWidth <= 140)?imgObj.offsetWidth:140+"px";

   imgObj.alt = infoArr[2];
   imgObj.title = infoArr[2];

   aObj.href = infoArr[1];
}
// пердзагрузка изображения
function initInfoImg(id)
{
 if (leftInfo[id] == undefined) return null;
 var img = new Image();
 img.src = leftInfo[id][0];
 return img;
}

/* Функция для складирования функций необходимых выполнить после полной загрузки DOM */
function doOnLoad (funct, params)
{
    var onLoad = window.onload;
    window.onload = function () {if (onLoad != null) onLoad();funct(params);};
}


 function closeBanner()
 {
   displayShowHide ("banner", false);
 }

//Опрос
function makePollResult()
{
    var pollOpt = document.getElementById("pollOpt");
    var opts = pollOpt.getElementsByTagName('input');
    var params = '';
    var j = 0;
    for (var i=0; i<opts.length; i++)
        {
        if (opts[i].type == 'radio' && opts[i].checked)
            {
                params +="poll["+j+"]="+opts[i].value;
                j++;
            }
        if (opts[i].type != 'radio' && opts[i].checked)
            {
                if (j>0) params += "&";
                params +="poll["+j+"]="+parseInt(opts[i].name);
                j++;
            }

        }
     var pollDiv = document.getElementById('poll');
     pollDiv.innerHTML = "<img src='html/img/loading.gif' />";
     var obj = new ajax('POST', "index.php?pollSave", pollRes);
     obj.paramsStr = params;
     obj.load();
}

 function pollRes (msg)
 {
     var pollDiv = document.getElementById('poll');
     pollDiv.innerHTML = msg;
 }

function addParamToUrl (url, param, value)
{
    var sep = "?";
    if (url.indexOf("?") != -1) sep = "&";
    
    return url+sep+param+"="+value;
}

function sendInfoRes(msg)
{
    displayShowHide ("SendInfoButtonDiv", false);
    if (msg != '')
        displayShowHide ("infoErrorText", true);
    else
        displayShowHide ("infoResultText", true);
}

function sendInfo()
{
    var emailInput = document.getElementById("infoEmail");
    if (isValidEmail (emailInput.value))
        {
        var obj = new ajax('POST', location.href, sendInfoRes);
        obj.params['sendInfo'] = emailInput.itemId;
        obj.params['email'] = emailInput.value;
        obj.load();
        }
}

function changeImg(id)
{
    var img = document.getElementById("itemImg");
    img.src = "upload/shop/img/img"+id+".jpg";
}

 function closeInfoSmallWin ()
 {
   displayShowHide ("infoResultText", false);
   displayShowHide ("infoErrorText", false);
   displayShowHide ("SendInfoButtonDiv", true);
   displayShowHide ("infoSmallWindow", false);
 }

 function openInfoSmallWin (id)
 {

     var objWin =  document.getElementById("infoSmallWindow");
     var left = screenSize().w/2 - 135;
     var height = getScrollTop() + screenSize().h/2 - 70;
     objWin.style.left = left+"px";
     objWin.style.top = height+"px";
     displayShowHide ("infoSmallWindow", true);

     var emailInput = document.getElementById("infoEmail");
     emailInput.itemId = id;
     if (emailInput.onkeyup == null) emailInput.onkeyup = function () {winValidate(emailInput, "infoSmallWinButton");};

     var button = document.getElementById("infoSmallWinButton");
     clearButtonIdEffest (button);
     buttonEffectMove (button, 3);

    if (document.userEmail != undefined)
    {
        emailInput.click();
        emailInput.value = document.userEmail;
        emailInput.onkeyup();
    }
 }

function set_cookie(name, value, expires)
{
    if (!expires)
        expires = new Date();
    //document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() +  "; path=/";
    document.cookie = name + "=" + escape(value) + "; path=/";
}

function get_cookie(name)
{
    var cookie_name = name + "=";
    var cookie_length = document.cookie.length;
    var cookie_begin = 0;
    while (cookie_begin < cookie_length)
    {
        var value_begin = cookie_begin + cookie_name.length;
        if (document.cookie.substring(cookie_begin, value_begin) == cookie_name)
        {
            var value_end = document.cookie.indexOf (";", value_begin);
            if (value_end == -1)
            {
                value_end = cookie_length;
            }
            return unescape(document.cookie.substring(value_begin, value_end));
        }
        cookie_begin = document.cookie.indexOf(" ", cookie_begin) + 1;
        if (cookie_begin == 0)
        {
            break;
        }
    }
    return null;
}

function addCounter()
{
	var counter = "<a href='http://www.liveinternet.ru/click' "+
        "target=_blank><img src='//counter.yadro.ru/hit?t44.16;r"+
        escape(document.referrer)+((typeof(screen)=="undefined")?"":
            ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
                screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
        ";"+Math.random()+
        "' alt='' title='LiveInternet' "+
        "border='0' width='31' height='31'><\/a>";
	document.getElementById('counter').innerHTML += counter;	
}

function showBanner()
{
    document.getElementById("imgBanner").style.display="";
    document.getElementById("flashBanner").style.display="none";
    document.getElementById("banner").style.display = "block";
}

function closeBanner()
{
    document.getElementById("imgBanner").style.display="none";
    document.getElementById("flashBanner").style.display="";
    document.getElementById("banner").style.display = "none";
}

/**
 * Координаты курсора
 */
function mousePageXY(e)
{
  var x = 0, y = 0;

  if (!e) e = window.event;

  if (e.pageX || e.pageY)
  {
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
    x = e.clientX +
      (document.documentElement.scrollLeft || document.body.scrollLeft) -
      document.documentElement.clientLeft;
    y = e.clientY +
      (document.documentElement.scrollTop || document.body.scrollTop) -
      document.documentElement.clientTop;
  }

  return {"x":x, "y":y};
}

doOnLoad( function () {
    setButtonEffect ();
    addCounter();
    } );

