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

var saveInnerWidth;
var saveInnerHeight;

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

function getpagescrollx()
{
  return window.pageXOffset || document.body.scrollLeft;
}

function getpagescrolly()
{
  return window.pageYOffset || document.body.scrollTop;
}


function setpagescrollx( x )
{
  if( window.pageXOffset )
  {
    window.pageXOffset = x;
  }

  if( document.body && document.body.scrollLeft )
  {
    document.body.scrollLeft = x;
  }
}

function setpagescrolly( y )
{
  if( window.pageYOffset )
  {
    window.pageYOffset = y;
  }

  if( document.body && document.body.scrollTop )
  {
    document.body.scrollTop = y;
  }
}

function hidelayer( layername )
{
  getJqElt(layername).css("visibility", "hidden");
}

function showlayer( layername )
{
  getJqElt(layername).css("visibility", "visible");
}

function getfade( layername )
{
  return getJqElt(layername).css("opacity") * 100;
}

function setfade( layername, fade )
{
  getJqElt(layername).css("opacity", (fade / 100) );
}

function setstatic( layername )
{
  setposition( layername, "static" );
}

function setposition( layername, position )
{
  getJqElt(layername).css("position",position);
}

function movelayer( layername, xco, yco )
{
  getJqElt(layername).css("left",xco).css("top",yco);
}

function sizelayer( layername, wdim, hdim )
{
  getJqElt(layername).width(wdim).height(hdim);
}

function cliplayer( layername, left, right, top, bottom )
{
  getJqElt(layername).css("clip","rect("+top+" "+right+" "+bottom+" "+left+")")
}

function getwindowwidth()
{
  return $(window).width()
}

function getwindowheight()
{
  return $(window).height()
}

function getpagewidth()
{
  return $(document).width();
}

function getpageheight()
{
  return $(document).height();
}

function getlayerleft( layername )
{
  return getJqElt(layername).offset().left;
}

function getlayertop( layername )
{
  return getJqElt(layername).offset().top;
}

function getlayerwidth( layername )
{
  return getJqElt(layername).width();
}

function getlayerheight( layername )
{
  return getJqElt(layername).height();
}

function parseClip( layername )
{
  var str = getJqElt(layername ).css("clip");
  if( !str || str == "auto" || str == "" )
  {
    return {top:0, right:0, bottom:0, left:0 };
  }
  var i = str.indexOf( "(" );
  var topr = parseInt( str.substring( i + 1, str.length ), 10 );

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

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

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

  return {top:topr, right:rightr, bottom:bottomr, left:leftr };
}

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

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

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

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

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

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

function getclipleft( layername )
{
  var elt = getElt(layername );

  if( elt != null )
  {
    return ( elt && elt.clip )?(elt.clip.left):(parseClip( layername ).left);
  }

  return( 0 );
}

function getclipright( layername )
{
  var elt = getElt(layername );

  if( elt != null )
  {
    return ( elt && elt.clip )?(elt.clip.right):(parseClip( layername ).right);
  }

  return( 0 );
}

function getcliptop( layername )
{
  var elt = getElt(layername );

  if( elt != null )
  {
    return ( elt && elt.clip )?(elt.clip.top):(parseClip( layername ).top);
  }

  return( 0 );
}

function getclipbottom( layername )
{
  var elt = getElt(layername );

  if( elt != null )
  {
    return ( elt && elt.clip )?(elt.clip.bottom):(parseClip( layername ).bottom);
  }

  return( 0 );
}

function catchheight( layername )
{
  if( document.layers )
  {
    var 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 unbackLayer( theLayer )
{
  if( document.all )
  {
    var iframeId = "#" + theLayer.id + "Iframe";

    var iFrame = $( iframeId );

    if( !iFrame.length )
    {
      iFrame.css("display","none");
    }
  }
}

function backLayer( elt )
{
  elt = getJqElt(elt);
  if( document.all )
  {
    var iframeId = elt.attr("id")+"Iframe";
    var iFrame = $( "#"+iframeId );
    if( !iFrame.length )
    {
      $(document.body).append("<iframe>");
      iFrame = $( "iframe:last" );
      iFrame.attr("id",         iframeId)
            .attr("src",        "")
            .attr("frameBorder","0")
            .attr("scrolling",  "no")
            .css("position",    "absolute")
            .css("zIndex",      Math.max( elt.css("zIndex") - 1, 1 ) )
            .css("opacity",     0);
    }
    iFrame.width(elt.width()).height(elt.height())
          .css("top",elt.offset().top).css("left",elt.offset().left)
          .css("display","");
  }
}


function getlayerstyle( layername )
{
  var elt = getElt( layername );

  if( document.defaultView )
  {
    return document.defaultView.getComputedStyle( elt, null )
  }

  if( elt.currentStyle )
  {
    return elt.currentStyle;
  }

  return null;
}

function writelayer( layer, content )
{
  getJqElt(layer).html(content);
}

function newElt( layername, cssClass, cssStyle )
{
  var elt = getJqElt(layername);

  if( !elt || elt.length==0 )
  {
    elt = $(document.createElement( "div" ));
    $(document.body).append(elt);
    elt.attr("id",layername).css("position","absolute").css("zIndex",99);
  }

  if(typeof(cssClass) != "undefined" &&  cssClass != "")
  {
    $(elt).addClass( cssClass );
  }
  if(typeof(cssStyle) != "undefined" && cssStyle != "")
  {
    elt.attr( "style", cssStyle );
  }

  return elt.get()[0];
}

function getElt(elt)
{
  var ret = getJqElt(elt);
  if( ret != null && ret.length > 0)
  {
    return ret.get()[0];
  }
  return null;
}
function getJqElt(elt)
{
  if( typeof(elt) == "string" && elt.charAt(0)!="#" )
  {
    return $("#"+elt);
  }
  else
  {
    return $(elt);
  }
}

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

