function makeEl(){
 if( document.getElementById ){
  return function( str, fr ){
   var par = ( fr )? fr: window;
   return par.document.getElementById( str );
  }
 }else if( document.all ){
  return function( str, fr ){
   var par = ( fr )? fr: window;
   return par.document.all[ str ];
  }
 }else if( document.layers ){
  return function( str, fr ){
   var par = ( fr )? fr: window;
   var el = par.document.layers[ str ];
   el.style = el;
   return el;
  }
 } else return doNothing;
}
var el = makeEl();

function makeInnerHeight(){
 if( self.innerHeight ){ // all except IE
  return function(){ return self.innerHeight; }
 }
 if( document.documentElement && document.documentElement.clientHeight ){ // IE 6 Strict Mode
  return function(){ return document.documentElement.clientHeight; }
 }
 if( document.body ){ // other IE's
  return function(){ return document.body.clientHeight; }
 }
}
var inHeight = makeInnerHeight();

function makeInnerWidth(){
 if( self.innerWidth ){ // all except IE
  return function(){ return self.innerWidth; }
 }
 if( document.documentElement && document.documentElement.clientWidth ){ // IE 6 Strict Mode
  return function(){ return document.documentElement.clientWidth; }
 }
 if( document.body ){ // other IE's
  return function(){ return document.body.clientWidth; }
 }
}
var inWidth = makeInnerWidth();

function elsByTag( tag, fr ){
 if( ! fr ) var fr = document;
 return fr.getElementsByTagName( tag );
}

function mkEl2( str, attr, elem, val ){
 var elm = document.createElement( str );
 if( attr ){
  for( key in attr ){
   elm.setAttribute( key, attr[ key ] );
  }
 }
 if( elem ){
  for( ii = 0; ii < elem.length; ii++ ){
    elm.appendChild( elem[ ii ] );
  }
 }
 if( val ){
  for( key in val ){
   elm[ key ] = val[ key ];   
  }
 }
 return elm;
}

function mkEl( str, attr, elem ){
 var elm = document.createElement( str );
 if( attr ){
  for( key in attr ){
   elm.setAttribute( key, attr[ key ] );
  }
 }
 if( elem ){
  if( elem.length && elem[ 0 ] ){
   for( var nr = 0; nr < elem.length; ++nr ){
    elm.appendChild( elem[ nr ] );
   }
  }else{
   elm.appendChild( elem );
  }
 }
 return elm;
}

function mkTx( str ){
 return document.createTextNode( str );
}

function fr( str ){
 return top.frames[ str ];
}

function mountNode( par, ch ){
 clearNode( par );
 par.appendChild( ch );
 return ch;
}

function mountLoad( par ){
 var imgHourglas = new Image();
 imgHourglas.src = '/sys/progress.gif';
 mountNode( par, imgHourglas );
}

function clearNode( e ){
 var ch;
 while( ch = e.firstChild ){
  e.removeChild( ch );
 }
}

function rmEl( node ){
 if( node.parentNode ) node.parentNode.removeChild( node );
}

function selVal( sel ){
 return sel.options[ sel.selectedIndex ].value;
}

// = + = http://www.quirksmode.org/js/cookies.html =============================
function createCookie( name, value, days, domain ){ // erase - ( name, '', -1 )
 if( days ){ var date = new Date();
  date.setTime( date.getTime() + ( days * 86400000 ) );
  var expires = "; expires=" + date.toGMTString();
 }else var expires = "";
 document.cookie = name + "=" + value + expires + "; path=/" + ( domain? '; domain=' + domain: '' ); }

function readCookie( name ){ var nameEQ = name + "=", ca = document.cookie.split( ';' ), c;
 for( var i = 0; i < ca.length; i++ ){ c = ca[ i ];
  while( c.charAt( 0 ) == ' ' ) c = c.substring( 1, c.length );
  if( c.indexOf( nameEQ ) == 0 ) return c.substring( nameEQ.length, c.length ); }
 return ''; }
// = - = http://www.quirksmode.org/js/cookies.html =============================
