/*
** library.js
**
** play_midi()
** get_cookie()
** set_cookie()
** addLoadEvent()
** addEvent()
*/

/*
** status_bar - obvious
*/

function status_bar() {

    var mesg = 'Done.' ;
    window.status = mesg ;
}

/*
** hotfix - for eolas patent law suit against Microsoft.
*/
function play_midi( path ) {
  var action = '<EMBED SRC="' + path + '" LOOP="true" HIDDEN="true" AUTOSTART="true"></EMBED>' ;
//alert( 'player = "' + action + '"' ) ;
  document.write( action ) ;
  setTimeout( function() { status_bar() ; }, 1500 ) ;
}

/*
** the famous dollar function
*/

function $() {

    var elements = new Array() ;

    for (var i = 0; i < arguments.length; i ++) {

         var element = arguments[ i ] ;

         if (typeof element == 'string')
             element = document.getElementById(element) ;

         if (arguments.length == 1)
             return element ;

         elements.push(element) ;
    }

    return elements ;
}

/*
**  get_cookie()
*/

function get_cookie(name) {
    var start = document.cookie.indexOf(name + "=") ;
    var len   = start+name.length + 1 ;
    var ansr  = "" ;

    if ((!start) && (name != document.cookie.substring(0,name.length))) return "" ;
    if (start == -1) return "" ;
    var end = document.cookie.indexOf(";",len) ;
    if (end == -1) end = document.cookie.length ;
    ansr = unescape(document.cookie.substring(len,end)) ;

    return  ansr ? ansr : "" ;
}

/*
**  set_cookie()
*/

function set_cookie(name, value, expires, path, domain, secure) {

    var cooked = name 
        + "=" 
        + escape(value)
        + ( (expires) ? ";expires=" + expires.toGMTString() : "")
        + ( (path)    ? ";path="    + path                  : "")
        + ( (domain)  ? ";domain="  + domain                : "")
        + ( (secure)  ? ";secure"                           : "")
        ;

    document.cookie = cooked ;

//  alert( 'cookie: ' + cooked ) ;

    return  false ;
}

/*
** addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
** addLoadEvent( function() { ... } );
*/

function addLoadEvent(func) {

  var oldonload = window.onload ;

  if (typeof window.onload != 'function') {

    window.onload = func;
  }
  else {
    window.onload = function() {
      if (oldonload) {
          oldonload() ;
      }
      func() ;
    }
  }
}

/*
** cross-browser event handling for IE5+, NS6+, and Mozilla/Gecko By Scott Andrew
** addEvent( window, 'load', function_name, false ) ; example
*/

function addEvent(elm, evType, fn, useCapture) {

  if (elm.addEventListener) {
    elm.addEventListener(evType, fn, useCapture) ;
    return true ;
  } 
  else
  if (elm.attachEvent) {
    var r = elm.attachEvent('on' + evType, fn) ;
    return  r ;
  }
  else {
    elm['on' + evType] = fn ;
  }
}

/* EOF */

