var predefStrings = {"defaultAltText": "Русская Ювелирная Сеть Ювелир.RU"};

var s_flag = 0;
var o_flag = 1;
var current_option_id = "opt0";
var timeoutId;



//Generate logo in header
function genLogo()
{
  var nestObj = window.document.getElementById("logo");

  if (window.location.pathname == "/") 
    { 
      var img = window.document.createElement("img");
      img.src = "/images/iface/jlogo.gif";
      img.className = "logo-image";
      img.alt = predefStrings.defaultAltText;
      nestObj.appendChild(img);
    }
  else
    {
      var a = window.document.createElement("a");
      a.href = "/";
      var img = window.document.createElement("img");
      img.src = "/images/iface/jlogo.gif";
      img.className = "logo-image";
      img.alt = predefStrings.defaultAltText;
      a.appendChild(img);
      nestObj.appendChild(a);
    }
}



//Manager of select menu
function selectMenu()
{
  if (s_flag == 0)
    {
      openSelectMenu();
    }
  else
    {
      closeSelectMenu();
    }
}


function openSelectMenu()
{
  var s_menu = window.document.getElementById("selectMenu");
  var s_field = window.document.getElementById("selectField");
  var position = getAbsolutePos(s_field);
  position.y = position.y + 20;

  s_menu.style.left = position.x+"px";
  s_menu.style.top = position.y+"px";
  
  var option = window.document.getElementById(current_option_id);
  option.className = "selected";
  
  s_menu.style.visibility = "visible";
  s_flag = 1;  
}


function closeSelectMenu()
{
  var s_menu = window.document.getElementById("selectMenu");
  s_menu.style.visibility = "hidden";
  s_flag = 0;
  o_flag = 1;
}


function closeByTimeout()
{
  timeoutId = setTimeout("closeSelectMenu()", 500);
}


function cancelCloseByTimeout()
{
  if (timeoutId)
    {
      clearTimeout(timeoutId);
    }
}


function optionAction(option, action, optionValue, formAction)
{
  if (action == 0)
    {
      option.className = "selected";
      if ((o_flag == 1)
          && (option.getAttribute("id") != current_option_id))
        {
          var selected_option = window.document.getElementById(current_option_id);
          selected_option.className = null;
          o_flag = 0;
        }
    }
  else if (action == 1)
    {
      option.className = null;

    }
  else if (action == 2)
    {
      var s_form = window.document.getElementById("search");
      s_form.action = formAction;
      var s_field = window.document.getElementById("selectField");
      s_field.getElementsByTagName("span")[0].childNodes[0].nodeValue 
          = option.childNodes[0].nodeValue;
      s_field.getElementsByTagName("input")[0].value = optionValue;
      var s_menu = window.document.getElementById("selectMenu");
      s_menu.style.visibility = "hidden";
      current_option_id = option.getAttribute("id");
      s_flag = 0;
      o_flag = 1;
    }
}



//Recive absolute position of the object
function getAbsolutePos(obj)
{
  var r = { x: obj.offsetLeft, y: obj.offsetTop };
  if (obj.offsetParent)
    {
      var tmp = getAbsolutePos(obj.offsetParent);
      r.x += tmp.x;
      r.y += tmp.y;
    }
  return r;
}



//Lock form after submit
function lockForm(bObj)
{
  bObj.form.submit();
  for (var i = 0; i < bObj.form.elements.length; i++)
    {
      bObj.form.elements[i].disabled = true;
      if (bObj.form.elements[i].className == "decorated")
        {
          bObj.form.elements[i].className = "decorated-disabled";
        } 
    }
}


//Function for turing pages with Ctrl and arrows
function turnPage(evt)
{
  var event = evt ? evt : window.event;
  
  var tpageObj;
  if (event.keyCode == 37)
    {
      if (event.ctrlKey)
        {
          if (tpageObj = window.document.getElementById("turnPageBack"))
            {
              window.location.href = tpageObj.href;
            }
          disableDefaultAction(event);
        }
      else if (event.shiftKey)
        {
          if (tpageObj = window.document.getElementById("shTurnPageBack"))
            {
              window.location.href = tpageObj.href;
            }
          disableDefaultAction(event);
        }
    }
  else if (event.keyCode == 39)
    {
      if (event.ctrlKey)
        {
          if (tpageObj = window.document.getElementById("turnPageForward"))
            {
              window.location.href = tpageObj.href;
            }
          disableDefaultAction(event);
        }
      else if (event.shiftKey)
        {
          if (tpageObj = window.document.getElementById("shTurnPageForward"))
            {
              window.location.href = tpageObj.href;
            }
          disableDefaultAction(event);
        }
    }
}

window.document.onkeydown = turnPage;



//Function for open photo in new window
function openWindow(href, evt)
{
  var event = evt ? evt : window.event;
  var randName = Math.floor(Math.random() * 256);
  window.open(href, randName);
  disableDefaultAction(event);
}



//Remove all child nodes from node
function removeAllChild(node)
{
  while (node.hasChildNodes())
    {
      node.removeChild(node.childNodes[0]);
    }
}


function sendMail (name, evt)
{
  var event = evt ? evt : window.event;
  disableDefaultAction(event);
  var mailto_link = "mailto:" + name + "\u0040" + "jnet.ru"; 
  window.location = mailto_link;
}


function disableDefaultAction(event)
{

  if (event)
    {
      if(event.preventDefault)
        {
          event.preventDefault();
        }
      else
        {
          event.returnValue = false;
        }
    }
}


//Add event to object
function addEventListenerToObj( obj, eventType, handler ){
  if (obj.attachEvent){
    obj.attachEvent( "on" + eventType, handler );
    return true;
  } 
  else if ( obj.addEventListener ){
    obj.addEventListener( eventType, handler, false );
    return true;
  }
  else{
    return false;
  }
}
