var onloads = new Array();
var onunloads = new Array();
function bodyOnLoad() {
  for ( var i = 0 ; i < onloads.length ; i++ ) {
    onloads[i]();
  }
}
function bodyOnUnload() {
  for ( var i = 0 ; i < onunloads.length ; i++ ) {
    onunloads[i]();
  }
}

function scrollscroller(speed){
  if (parseInt(cross_scroller.style.top) > (actualheight * (-1) + speed)) {
    cross_scroller.style.top = parseInt(cross_scroller.style.top) - copyspeed + "px";
  } else {
    cross_scroller.style.top = parseInt(scrollerheight) + speed  + "px";
  }
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document;
  if(d.images){
    if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function buildURL(url, pageFromObj) {
  return url + 
         (pageFromObj ? (url.indexOf('?') != -1 ? '&' : '?') + 
                     'pageFrom=' + escape(pageFromObj.value) : '');
}

function getTo(url, form) {
 if (!form) {
   form = document.routerForm;
 }
 location.href = buildURL(url, form.pageFrom);
}

function postTo(url, form) {
  if (!form) {
    form = document.routerForm;
  }
  form.action = url;
  form.submit();
}

function popup(windowOpts, windowName, url, form) {
  if (!form) {
    var dummy = window.open(url, windowName, windowOpts);
    dummy.focus();
  } else {
    var dummy = window.open(buildURL(url, form.pageFrom), windowName, windowOpts);
    dummy.focus();
  }
}

// Original JavaScript code by Duncan Crombie: dcrombie at chirp.com.au
// Please acknowledge use of this code by including this header.

function getCookie(name) {
  var bikky = document.cookie;
  name += "="; // append '=' to name string
  var i = 0; // index of first name=value pair
  while (i < bikky.length) {
    var offset = i + name.length; // end of section to compare with name string
    if (bikky.substring(i, offset) == name) { // if string matches
      var endstr = bikky.indexOf(";", offset); // locate end of name=value pair
      if (endstr == -1) endstr = bikky.length;
      return unescape(bikky.substring(offset, endstr)); // return cookie value section
    }
    i = bikky.indexOf(" ", i) + 1; // move i to next name=value pair
    if (i == 0) break; // no more values in cookie string
  }
  return null; // cookie not found
}

function setCookie(name, value, expires, path, domain, secure) {
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}
function getIdFromSuccessResponse(str) {
  prefix = 'success id="';
  idPos = str.indexOf(prefix);
  if (idPos == -1) {
    return '';
  }
  endPos = str.indexOf('"/>', idPos + prefix.length);
  if (endPos == -1) {
    return str.substring(idPos + prefix.length);
  } else {
    return str.substring(idPos + prefix.length, endPos);
  }
}
// checkbox select all toggle
function selectAllCheckboxes(form, prefix, me) {
  checked = getCurrentlyChecked(form, prefix);
        
  for (n = 0; n < form.length; n++) {
    if (form[n].name.startsWith(prefix)) {
      form[n].checked = !checked;
    }
  }
  if (me) {
    me.checked = !checked;
  }
}
function getCurrentlyChecked(form, prefix) {
  checked = true;
  for (n = 0; n < form.length; n++) {
    if (form[n].name.startsWith(prefix)) {
      checked = checked && form[n].checked;
    }
  }
  return checked;
}      