// JavaScript Document

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) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

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_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 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) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); 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 MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_findObj(n, d) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_jumpMenuGo(selName,targ,restore){ //v3.0
  var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
}


function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr);
}


function init_toggle(selector, title_tag, body_tag) {
  if (title_tag === undefined) {
    title_tag = selector;
  }
  if (body_tag === undefined) {
    body_tag = 'div';
  }
  var qs = $$(selector);
  for(var i=0, il=qs.length; i<il; i++) {
    var anchor = document.createElement('a');
    anchor.href = 'javascript:void(0);';
    var children = qs[i].childNodes;
    for (var j=children.length-1; j>=0; j--) {
      anchor.insertBefore(children[j], anchor.firstChild);
    }
    qs[i].appendChild(anchor);
    Event.observe(qs[i], 'click', function(evt){
      var t = evt.element();
      if (t.tagName.toLowerCase() != title_tag) {
        t = t.up(title_tag);
      }
      toggle_body(t);
    });
  }
  // defailt open
  var h = location.hash;
  if (h && h.length > 0 && h != '#') {
    var id = h.replace(/^#/, '');
    var el = $(id);
    if (el && el.tagName.toLowerCase() == title_tag) {
      toggle_body(el, true);
    }
  }

  function toggle_body(el, force_open) {
    var n = el.next(body_tag);
    if (n) {
      if (force_open || n.hasClassName('toggle-body')) {
        n.removeClassName('toggle-body');
        el.addClassName('toggle-title-open');
      } else {
        n.addClassName('toggle-body');
        el.removeClassName('toggle-title-open');
      }
    }
  }
}

function init_submenu(selector, classname) {
  if (!selector) return;

  var targets = $$(selector);
  var path = location.pathname;
  for(var i=0, il=targets.length; i<il; i++) {
    var el = targets[i], anchor = null;
    if (el.tagName.toLowerCase() == 'a') {
      anchor = el;
    } else {
      anchor = el.down('a');
    }
    if (anchor) {
      var m = anchor.href.match(/([^\/]+)([#?].*)?$/);
      if (m) {
        var filename = m[1];
        if ((new RegExp(filename.replace('.', '\\.')+'$')).test(path)) {
          el.addClassName(classname);
        }
      }
    }
  }
}

