var def_layer="2.2";		// layer.js version

var saveInnerWidth;
var saveInnerHeight;

function set()
{
  if( !window.saveInnerWidth )
  {
    saveInnerWidth = window.innerWidth;
    saveInnerHeight = window.innerHeight;
  }
}

function getpagescrollx()
{
  if( window.pageXOffset )
    return window.pageXOffset;

  if( document.body && document.body.scrollLeft )
    return document.body.scrollLeft;

  return -1;
}

function getpagescrolly()
{
  if( window.pageYOffset )
    return window.pageYOffset;

  if( document.body && document.body.scrollTop )
    return document.body.scrollTop;

  return( -1 );
}

function hidelayer( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.visibility, 1 ) )
    {
      elt.visibility="hidden";
    }
    else
    {
      elt.style.visibility="hidden";
    }

    return(1);
  }

  return( -1 );
}

function showlayer( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.visibility, 1 ) )
    {
      elt.visibility="visible";
    }
    else
    {
      elt.style.visibility="visible";
    }

    return(1);
  }

  return( -1 );
}

function getfade( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.style.filter ) )
    {
      return ( elt.style.filter );
    }
    else if( exists( elt.style.MozOpacity ) )
    {
      return elt.style.MozOpacity * 100;
    }
  }

  return( -1 );
}

function setfade( layername, fade )
{
  elt = getElt( layername );
  if( elt != null && exists( elt.style ) )
  {
    if( exists( elt.style.filter, 1 ) )
    {
      elt.style.filter = "alpha(Opacity=" + fade+ " )";
    }
    else if( exists( elt.style.MozOpacity, 1 ) )
    {
      elt.style.MozOpacity = fade / 100;
    }
  }

  return( -1 );
}

function setstatic( layername )
{
  if( exists( document.all ) && navigator.appVersion >= 5.5 && navigator.appVersion < 6 )
  {
    setposition( layername, "static" );
  }
}

function setposition( layername, position )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.style ) && exists( elt.style.position, 1 ) )
    {
      elt.style.position = position;
    }
    else if( exists( elt.position, 1 ) )
    {
      elt.style.position = position;
    }
  }
}

function movelayer( layername, xco, yco )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.left, 1 ) )
    {
      elt.left=xco;
      elt.top=yco;
    }
    else
    {
      elt.style.left=xco;
      elt.style.top=yco;
    }

    return( 1 );
  }

  return( -1 );
}

function sizelayer( layername, wdim, hdim )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.width, 1 ) )
    {
      if ( parseInt(wdim)>=0 )
      {
        elt.width=wdim;
      }
      if ( parseInt(hdim)>=0 )
      {
        elt.height=hdim;
      }
    }
    else if( exists( elt.style, 1 ) && exists( elt.style.width, 1 ) )
    {
      if ( parseInt(wdim)>=0 )
      {
        elt.style.width=wdim;
      }
      if ( parseInt(hdim)>= 0 )
      {
        elt.style.height=hdim;
      }
    }

    return( 1 );
  }

  return( -1 );
}

function cliplayer( layername, clipleft, clipright, cliptop, clipbottom )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.clip ) )
    {
      elt.clip.left   = clipleft;
      elt.clip.top    = cliptop;
      elt.clip.right  = clipright;
      elt.clip.bottom = clipbottom;
    }
    else
    {
      elt.style.clip = 'rect(' + cliptop + ' ' + clipright + ' ' + clipbottom + ' ' + clipleft +')';
    }

    return( 1 );
  }

  return( -1 );
}

function getwindowwidth()
{
  if( exists( window.innerWidth ) )
  {
    return( window.innerWidth );
  }

  if( exists( document.body ) && exists( document.body.clientWidth ) )
  {
    return( document.body.clientWidth );
  }

  return( 0 );
}

function getwindowheight()
{
  if( exists( window.innerHeight ) )
  {
    return( window.innerHeight );
  }

  if( exists( document.body ) && exists( document.body.clientHeight ) )
  {
    return( document.body.clientHeight );
  }

  return( 0 );
}

function getlayerleft( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.pageX ) )
    {
      return elt.pageX;
    }

    x = 0;
    while( elt.offsetParent != null )
    {
      x += elt.offsetLeft;
      elt = elt.offsetParent;
    }
    x += elt.offsetLeft;
    return x;
  }

  return( -1 );
}

function getlayertop( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.pageY ) )
    {
      return elt.pageY;
    }

    y = 0;
    while( elt.offsetParent != null )
    {
      y += elt.offsetTop;
      elt = elt.offsetParent;
    }
    y += elt.offsetTop;
    return y;
  }

  return(-1);
}

function getlayerwidth( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.style ) && exists( elt.style.pixelWidth ) )
    {
      return elt.style.pixelWidth;
    }

    if( exists( elt.style ) && exists( elt.style.width ) )
    {
      return stringToNumber( elt.style.width );
    }

    if( exists( elt.offsetWidth ) )
    {
      return stringToNumber( elt.offsetWidth );
    }

    if( exists( elt.document ) && exists( elt.document.width ) )
    {
      return elt.document.width;
    }

    if( exists( elt.clip ) )
    {
      return elt.clip.right - elt.clip.left;
    }
  }

  return( 0 );
}

function getlayerheight( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.style ) && exists( elt.style.pixelHeight ) )
    {
      return elt.style.pixelHeight;
    }

    if( exists( elt.style ) && exists( elt.style.height ) )
    {
      return stringToNumber(elt.style.height);
    }

    if( exists( elt.offsetHeight ) )
    {
      return stringToNumber( elt.offsetHeight );
    }

    if( exists( elt.document ) && exists( elt.document.height ) )
    {
      return elt.document.height;
    }

    if( exists( elt.clip ) )
    {
      return elt.clip.bottom - elt.clip.top;
    }
  }

  return( 0 );
}

function parseDomClip( layername )
{
  elt = getElt( layername );
  str = elt.style.clip;

  i = str.indexOf( "(" );
  topr = parseInt( str.substring( i + 1, str.length ), 10 );

  i = str.indexOf( " ", i + 1 );
  rightr = parseInt( str.substring( i + 1, str.length ), 10 );

  i = str.indexOf( " ", i + 1 );
  bottomr = parseInt( str.substring( i + 1, str.length ), 10 );

  i = str.indexOf( " ", i + 1 );
  leftr = parseInt( str.substring( i + 1, str.length ), 10 );

  ret = new Array( topr, rightr, bottomr, leftr )
  return ret;
}

function getclipleft( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.clip ) )
    {
      return( elt.clip.left );
    }

    if( exists( elt.style ) )
    {
      clip = parseDomClip( layername );

      return( clip[3] );
    }
  }

  return(-1);
}

function getclipright( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.clip ) )
    {
      return( elt.clip.left );
    }

    if( exists( elt.style ) )
    {
      clip = parseDomClip( layername );

      return( clip[1] );
    }
  }

  return (-1);
}

function getcliptop( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.clip ) )
    {
      return( elt.clip.left );
    }

    if( exists( elt.style ) )
    {
      clip = parseDomClip( layername );

      return( clip[0] );
    }
  }

  return (-1);
}

function getclipbottom( layername )
{
  elt = getElt( layername );
  if( elt != null )
  {
    if( exists( elt.clip ) )
    {
      return( elt.clip.left );
    }

    if( exists( elt.style ) )
    {
      clip = parseDomClip( layername );

      return( clip[2] );
    }
  }

  return (-1);
}

function catchheight( layername )
{
  if( exists( document.layers ) )
  {
    elt = getElt( layername );

    if( elt != null )
    {
      elt.height=elt.clip.height;
      elt.width=elt.clip.width;
    }
  }
}

function getImage( imageName, layerName )
{
  if( exists( layerName ) && layerName != "" )
  {
    if( exists( getElt( layerName ) ) && exists( getElt( layerName ).document ) )
    {
      return getElt( layerName ).document.images[imageName];
    }
  }

  return document.images[imageName];
}

function getElt()
{
  if( exists( document.layers ) )
  {
    var currentLayer = document.layers[getElt.arguments[0]];

    for( var i = 1 ; i < getElt.arguments.length && currentLayer ; i++ )
    {
      currentLayer = currentLayer.document.layers[getElt.arguments[i]];
    }

    return currentLayer;
  }
  else if( exists( document.getElementById ) && exists( document.getElementsByName ) )
  {
    var name = getElt.arguments[getElt.arguments.length - 1];

    if( exists( document.getElementById( name ) ) )		// First try to find by id
    {
      return document.getElementById( name );
    }
    else if( exists( document.getElementsByName( name ) ) )	// Then if that fails by name
    {
      return document.getElementsByName( name )[0];
    }
  }
  else if( exists( document.all ) )
  {
    var elt = document.all[getElt.arguments[getElt.arguments.length - 1]];

    return( elt );
  }

  return null;
}

function exists( element, toSet )
{
  if( typeof( toSet ) == "undefined" )
  {
    return( typeof( element ) != "undefined" && element != "" );
  }
  else
  {
    return( typeof( element ) != "undefined" );
  }
}

function stringToNumber( s )
{
  return parseInt( ( '0' + s ), 10 )
}
