function $(id)   { return document.getElementById(id) }

// ie 6 don't cashe the background' images, try fix it

if (/MSIE 6.+Win/.test(navigator.userAgent))
{
  try { document.execCommand("BackgroundImageCache", false, true); } catch (e) {}
}

function getFirstChildNodeByTagName( parentNode, tagName ) 
{
  for( var i=0; i < parentNode.childNodes.length ; i++ ) 
  {
    node = parentNode.childNodes[i];

    if( node.tagName == tagName )
      return node ;
  }

  return 0;
}

function change_photo(a, src, alt)
{
  photos_preview_div = $('photos-preview');

  for( var i=0; i < photos_preview_div.childNodes.length ; i++ ) 
  {
    node = photos_preview_div.childNodes[i];

    if( node.nodeName == 'A')
      getFirstChildNodeByTagName(node,'IMG').className = '';
  }

  getFirstChildNodeByTagName(a,'IMG').className = 'current';

  $('photo-full').src = src ;

  return false ;
}

function show_full_map(title)
{
  if( !$('contacts-full-map') )
  {
    var dDivOuter = document.createElement('div');
    dDivOuter.id  = 'contacts-full-map';

    document.body.appendChild(dDivOuter);

    var dDivInner = document.createElement('div');
    dDivInner.id = 'contacts-full-map-inner';

    dDivOuter.appendChild(dDivInner);

    var dDivGoogleMap = document.createElement('div');
    dDivGoogleMap.id  = 'google-map';

    dDivInner.appendChild(dDivGoogleMap);
  }

  show_full_map_div('contacts-full-map');

  gm_init_map('google-map'); 
  gm_show_address(title);
  
  return false ;
}

function getClientWidth()  { return document.documentElement.clientWidth  > 0 ? document.documentElement.clientWidth : document.body.clientWidth;  }
function getClientHeight() { return document.documentElement.clientHeight > 0 ? document.documentElement.clientHeight: document.body.clientHeight; }
        
function get_ScrollOffsetX_ScrollOffsetY()
{
  var scrOfX = 0, scrOfY = 0;

  if(typeof(window.pageYOffset) == 'number') 
  {
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }

  return { 'ScrollOffsetX' : scrOfX, 'ScrollOffsetY': scrOfY };
}

function show_full_map_div(pid)
{
  var width  = 600;
  var height = 409;
  
  // получаем ширину и высоту клиенской области и смещения по осям
  var cWidth = 0, cHeight = 0, ScrollOffsetX = 0, ScrollOffsetY = 0;

  cWidth  = getClientWidth();
  cHeight = getClientHeight();

  r = get_ScrollOffsetX_ScrollOffsetY();

  ScrollOffsetX = r['ScrollOffsetX'];
  ScrollOffsetY = r['ScrollOffsetY'];

  var left = parseInt((cWidth-width)/2)  + ScrollOffsetX ;
  var top  = parseInt((cHeight-height)/2) + ScrollOffsetY ;

  if( top < 0 )
    top = 10;

  // если overlay не найден, добавляем автоматически
  if( !$('overlay') )
  {
    var dOverlay = document.createElement('div');
    dOverlay.id = 'overlay';

    document.body.appendChild(dOverlay);
  }

  $('overlay').onclick       = function() { cpw(pid); };
  $('overlay').style.cursor  = "pointer";

  if (/MSIE (5|6).+Win/.test(navigator.userAgent))
  {
    var oHeight = cHeight ;

    if( document.body.scrollHeight && document.body.scrollHeight > cHeight )
      oHeight = document.body.scrollHeight ;
  
    if( height > cHeight )
    {
      overlay_correction = height - cHeight ;
      oHeight = oHeight + overlay_correction + 50;
    }

    $('overlay').style.height = oHeight ;
  }

  if( height > cHeight )
    top = ScrollOffsetY ;

  $('overlay').style.display = 'block';

  // если значение ненулевое, используем, если нулевое - использются стили из css
  // а хорощие браузер GChrome, имеет баг, видимо, ошибка при чтении css - не успевает прочесть ширину, 
  // поэтому сверху задано жестко. GChromePlus подобного бага не имеет...

  if( top > 0)    $(pid).style.top    = top    + "px"; 
  if( left > 0)   $(pid).style.left   = left   + "px"; 
  if( width > 0)  $(pid).style.width  = width  + "px"; 
  if( height > 0) $(pid).style.height = height + "px"; 

  $(pid).style.display = 'block';

  return false ;
}

function spw( pdata )
{
  if( pdata == undefined || pdata.lenght == 0)
    return ;

  var width = 0, height = 0, img_type = '', img_id = -1, img_title = '', lng = '', img_src = '';
  var arg_list = ['width', 'height', 'img_type', 'img_id', 'img_title', 'lng', 'img_src'];

  for (var i = 1, j=i-1; i < arguments.length; i++, j=i-1)
  {
    eval_type_str = arguments[i]

    if( typeof(arguments[i]) == 'string' )
      eval_type_str = '"' + arguments[i] + '"';
   
    eval( arg_list[j] + " = " + eval_type_str + ";");
  }

  // получаем ширину и высоту клиенской области и смещения по осям
  var cWidth = 0, cHeight = 0, ScrollOffsetX = 0, ScrollOffsetY = 0;

  cWidth  = getClientWidth();
  cHeight = getClientHeight();

  r = get_ScrollOffsetX_ScrollOffsetY();

  ScrollOffsetX = r['ScrollOffsetX'];
  ScrollOffsetY = r['ScrollOffsetY'];

  var pid = pdata[0];

  // если не найдено и заданное окно, добавляем автоматически
  if( !$(pid) )
  {
    var dPWindow = document.createElement('div');
    dPWindow.id  = pid;

    document.body.appendChild(dPWindow);

    $(pid).style.position   = "absolute";
//    $(pid).style.padding    = "2px";     
    $(pid).style.display    = "none"; 
    $(pid).style.background = "#fff url(/i/preloader.gif) center no-repeat";
    $(pid).style.zIndex     = "7777";

    if (/MSIE (5).+Win/.test(navigator.userAgent)){
      width += 5; height += 5; 
    }
  }
  
  $(pid).onclick       = function() { cpw(pid); };
  $(pid).style.cursor  = "pointer";


  var left = parseInt((cWidth-width)/2)  + ScrollOffsetX ;
  var top  = parseInt((cHeight-height)/2) + ScrollOffsetY ;

  // pdata - [pid, top_correction, left_corretin, top, left] 
  if( pdata[1] != undefined ) top  += parseInt(pdata[1]); 
  if( pdata[2] != undefined ) left += parseInt(pdata[2]); 
  if( pdata[3] != undefined ) top   = parseInt(pdata[3]) + ScrollOffsetY; 
  if( pdata[4] != undefined ) left  = parseInt(pdata[4]) + ScrollOffsetX; 

  // если overlay не найден, добавляем автоматически
  if( !$('overlay') )
  {
    var dOverlay = document.createElement('div');
    dOverlay.id = 'overlay';

    document.body.appendChild(dOverlay);
  }

  $('overlay').onclick       = function() { cpw(pid); };
  $('overlay').title         = "Закрыть окно";
  $('overlay').style.cursor  = "pointer";

  if (/MSIE (5|6).+Win/.test(navigator.userAgent))
  {
    $('overlay').style.height = cHeight ;
  
    if( document.body.scrollHeight && document.body.scrollHeight > cHeight )
      $('overlay').style.height = document.body.scrollHeight ;
  }

  $('overlay').style.display = 'block';

  // если значение ненулевое, используем, если нулевое - использются стили из css
  if( top > 0)    $(pid).style.top    = top    + "px"; 
  if( left > 0)   $(pid).style.left   = left   + "px"; 
  if( width > 0)  $(pid).style.width  = width  + "px"; 
  if( height > 0) $(pid).style.height = height + "px"; 

  $(pid).style.display    = 'block';

  // требуется показать картинку
  if( img_id != -1 ) 
  { 
    if( $('ptext') ) $('ptext').style.marginTop = (h+20) + "px";

    // если не найдена картинка
    if( !$('pimg') )
    {
      var image = document.createElement('img');

      image.id = 'pimg';

      $(pid).appendChild(image);
    }

    $('pimg').style.display = 'none';

    var hsrc = lng+'/p/'+img_type+'/'+img_id+'.img'; 

    if( img_src != '' )
      hsrc = src ;

    var isrc = 'http://'+window.location.host + hsrc;

    if( $('pimg').src != isrc )
    {
      $('pimg').onload = function() { this.style.display = 'block' }
      $('pimg').src    = hsrc ;
    }
    else
    {
      if( $('ptext') ) 
        $('ptext').style.marginTop = 0;

      $('pimg').style.display = 'block';
    }

    $('pimg').title = img_title ;

    if( $('ptext') ) $('ptext').innerHTML = img_title ;
  }

  return false ;
}

function cpw()
{
  // close popup window cpw('wid')
  if( arguments[0] != undefined && $(arguments[0]) )
    $(arguments[0]).style.display = 'none';

  $('overlay').style.display = 'none';
  $('overlay').style.height  = "100%";

  return false ;
}

function cpw()
{
  // close popup window cpw('wid')
  if( arguments[0] != undefined && $(arguments[0]) )
    $(arguments[0]).style.display = 'none';

  $('overlay').style.display = 'none';
  $('overlay').style.height  = "100%";

  return false ;
}

function flip_inews(a)
{
  $('item-left').className   = '';
  $('item-center').className = '';
  $('item-right').className  = '';

  a.className = 'open';
}

function flip_rnews(a)
{
  $('item-top').className   = '';
  $('item-center').className = '';
  $('item-bottom').className  = '';

  a.className = 'open';
}

function replace_fonts()
{
  Cufon.now(); 

  Cufon.replace('#menu', { 'hover': true, fontFamily: 'PF BeauSans Pro Light' } );
  Cufon.replace('#lng', { fontFamily: 'PF BeauSans Pro Light' } );
  Cufon.replace('h1', { fontFamily: 'PF BeauSans Pro Thin' } );
  Cufon.replace('h2', { fontFamily: 'PF BeauSans Pro Thin' } );
  Cufon.replace('h3', { fontFamily: 'PF BeauSans Pro Thin' } );
  Cufon.replace('h4', { fontFamily: 'PF BeauSans Pro Bold' } );
  Cufon.replace('#enter', { fontFamily: 'PF BeauSans Pro Bold' });
}

function replace_fonts_inner()
{
  Cufon.now(); 

  Cufon.replace('#menu', { 'hover': true, fontFamily: 'PF BeauSans Pro Light' } );
  Cufon.replace('#lng', { fontFamily: 'PF BeauSans Pro Light' } );
  Cufon.replace('h1', { fontFamily: 'PF BeauSans Pro Thin' } );
}

