function getViewportSize() {
  var viewportwidth;
  var viewportheight;
 
  // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
  
  if (typeof window.innerWidth != 'undefined') {
      viewportwidth = window.innerWidth,
	  viewportheight = window.innerHeight
	  }
  
  // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

  else if (typeof document.documentElement != 'undefined'
           && typeof document.documentElement.clientWidth !=
           'undefined' && document.documentElement.clientWidth != 0)
      {
          viewportwidth = document.documentElement.clientWidth,
              viewportheight = document.documentElement.clientHeight
              }
  
  // older versions of IE
  
  else
      {
          viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
              viewportheight = document.getElementsByTagName('body')[0].clientHeight
              }
  return Array( viewportwidth, viewportheight );
}

function fixImage(img, width, height) {
   var isIE = navigator.userAgent.toLowerCase().indexOf("msie") >= 0;
   if (!isIE)
      return;

   var currentSrc = img.src;

   var imgStyle = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + currentSrc + "', sizingMethod='scale')";
   img.src = 'images/clearpixel.gif';
   img.style.width  = width + "px";
   img.style.height = height + "px";
   img.style.filter =  imgStyle;
}

var navigationPages = [ "home.page",  "demos.page", "docs.page",  "downloads.page" ];
var navigationLinks = [ "homeLink",  "demosLink", "resourcesLink", "downloadsLink" ];

function showMenuContext() {
   var currentLocation = document.location.href;
   for ( var i = 0 ; i < navigationPages.length ; i++ )
      if ( currentLocation.indexOf(navigationPages[i]) != -1 ) { setLinkStyle($(navigationLinks[i])); break; }
}

function setLinkStyle(link) {
   link.style.fontWeight = 'bold';
   var currentFontSize = parseInt(RicoUtil.getElementsComputedStyle(link, "fontSize", "font-size" ));
   link.style.fontSize = (currentFontSize+2) + "px";
   link.style.color    = 'white';
}

function LayerSetOpacity( layer_id, opacity ) {
  document.getElementById( layer_id ).style.opacity = opacity/10;
  document.getElementById( layer_id ).style.filter = "alpha(opacity=" + opacity*10 + ")";
}

function LayerHide( layer_id ) {
  document.getElementById( layer_id ).style.visibility='hidden';
  //document.getElementById( layer_id ).style.display="none";                                                                             
}
function LayerShow( layer_id ) {
    var layer_obj = document.getElementById( layer_id );
    layer_obj.style.visibility='visible';
}
function LayerExpand( layer_id ) {
    var layer_obj = document.getElementById( layer_id );
    //layer_obj.style.display="block";                                                                                                    
    //layer_obj.style.height = layer_obj.parentNode.clientHeight+"px";                                                                    
    if( window.body ) {
        layer_obj.style.height = window.body.clientHeight+"px";
        layer_obj.style.width = window.body.clientWidth+"px";
    } else {
        layer_obj.style.height = document.body.clientHeight+"px";
        layer_obj.style.width = document.body.clientWidth+"px";
    }
}

function LayerFadeIn( layer_id, act_layer_id ) {
  var opacity=document.getElementById( layer_id ).style.opacity;
  LayerSetOpacity( layer_id, 0 );
  LayerShow( layer_id );
  LayerExpand( layer_id );
  LayerShow( act_layer_id );
  for( var i=0; i <= 8; i++ ) {
    setTimeout( "LayerSetOpacity('"+layer_id+"', "+i+")", 50*(i+1) );
    setTimeout( "LayerSetOpacity('"+act_layer_id+"', "+(i*10/8)+")", 50*(i+1) );
  }
}
function LayerFadeOut( layer_id, act_layer_id ) {
  var opacity=document.getElementById( layer_id ).style.opacity;
  for( var i=8; i >= 0; i-- ) {
    setTimeout( "LayerSetOpacity('"+layer_id+"', "+i+")", 50*(9-i) );
    setTimeout( "LayerSetOpacity('"+act_layer_id+"', "+(i*10/8)+")", 50*(9-i) );
  }
  setTimeout( "LayerHide( '"+layer_id+"' )", 450 );
  setTimeout( "LayerHide( '"+act_layer_id+"' )", 450 );
}

function getPageOffset() {
  if( window.pageYOffset != null )
    var pageYOffset = window.pageYOffset;
  else
    var pageYOffset = document.documentElement.scrollTop;
  if( window.pageXOffset != null )
    var pageXOffset = window.pageXOffset;
  else
    var pageXOffset = document.documentElement.scrollLeft;
  return Array( pageXOffset, pageYOffset ); 
}