// scott andrew's event handler!
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;
  }
}

function hilite(e) {
  e = (e) ? e : event;
  var trg = (e.target) ? e.target : ((e.srcElement) ? e.srcElement : null);
  trg.className = trg.className + " hilite";
}

function unhilite(e) {
  e = (e) ? e : event;
  var trg = (e.target) ? e.target : ((e.srcElement) ? e.srcElement : null);
  var temp = trg.className;
  var rg = /hilite/gi;
  trg.className = temp.replace(rg,'');
}

function checkall(e) {
  e = (e) ? e : event;
  var trg = (e.target) ? e.target : ((e.srcElement) ? e.srcElement : null);
  // get all the input boxes belonging to the frameset
  var siblings = trg.parentNode.parentNode.getElementsByTagName('input');
  for (var i = siblings.length - 1; i >= 0; i--){
    if(siblings[i].type == 'checkbox') { // only set checkboxes
      siblings[i].checked = trg.checked;
    }
  }
}

function addListeners(e) { 
  var inputs = document.getElementsByTagName('input');
  for (var i = 0; i < inputs.length; i++) {
    addEvent(inputs.item(i), 'focus', hilite, false);
    addEvent(inputs.item(i), 'blur', unhilite, false);
    if(inputs.item(i).getAttribute('dependants')) {
      addEvent(inputs.item(i), 'change', updateDependants, false);
    }
    if(inputs.item(i).name == 'check_all') {
      // alert('Hello from ' + inputs.item(i).id);
      addEvent(inputs.item(i), 'change', checkall, false);
    }
  }
}

addEvent(window, 'load', addListeners, false);


/***********************************************
* Drag and Drop Script: © Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

var dragobject={
z: 0, x: 0, y: 0, offsetx : null, offsety : null, targetobj : null, dragapproved : 0,
initialize:function(){
document.onmousedown=this.drag;
document.onmouseup=function(){this.dragapproved=0;}
},
drag:function(e){
var evtobj=window.event? window.event : e
this.targetobj=window.event? event.srcElement : e.target;
if (this.targetobj.className=="drag"){
this.dragapproved=1
if (isNaN(parseInt(this.targetobj.style.left))){this.targetobj.style.left=0;}
if (isNaN(parseInt(this.targetobj.style.top))){this.targetobj.style.top=0;}
this.offsetx=parseInt(this.targetobj.style.left);
this.offsety=parseInt(this.targetobj.style.top);
this.x=evtobj.clientX;
this.y=evtobj.clientY;
if (evtobj.preventDefault)
evtobj.preventDefault();
document.onmousemove=dragobject.moveit;
}
},
moveit:function(e){
var evtobj=window.event? window.event : e
if (this.dragapproved==1){
this.targetobj.style.left=this.offsetx+evtobj.clientX-this.x+"px"
this.targetobj.style.top=this.offsety+evtobj.clientY-this.y+"px"
return false
}
}
}

dragobject.initialize()
