// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}

function addClass(element,value) {
  if (!element.className) {
    element.className = value;
  } else {
    newClassName = element.className;
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
  }
}


/* Cabinet Unit scripting
 **********************************/
function attachSelectorLinksForCabinetUnits() {
	if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
	
	selectors = document.getElementsByTagName('span')
	for (var i=0; i<selectors.length; i++) {
		setSelector(selectors[i])
	}
	
	
}

function setSelector(selector) {
	switch(selector.className) {
		case "selector select_all":
			selector.onclick = function() {Form.getInputs('rack_units', 'checkbox').each(function(box){box.checked = true}); }
			break;
		case "selector select_none":
			selector.onclick = function() {Form.getInputs('rack_units', 'checkbox').each(function(box){box.checked = false})}
			break;
		case "selector select_assigned":
			selector.onclick = function() {Form.getInputs('rack_units', 'checkbox').each(function(box){if(box.className == "Assigned") {box.checked = true}})}
			break;
		case "selector select_pending_return":
			selector.onclick = function() {Form.getInputs('rack_units', 'checkbox').each(function(box){if(box.className == "PendingReturn") {box.checked = true}})}
			break;
		case "selector select_reserved":
			selector.onclick = function() {Form.getInputs('rack_units', 'checkbox').each(function(box){if(box.className == "Reserved") {box.checked = true}})}
			break;
		case "selector select_unused":
			selector.onclick = function() {Form.getInputs('rack_units', 'checkbox').each(function(box){if(box.className == "Unused") {box.checked = true}})}
			break;
	}
}

function selectRegisterNameField() {
	if (!document.getElementById) return false;
	if (document.getElementById('contact_name')) {
		document.getElementById('contact_name').focus();
	} else if (document.getElementById('contact_username')) {
		document.getElementById('contact_username').focus();
	}
}

function addRowMouseOverToBorderedTables() {
	rows = $$('table.bordered tr')
	for (var i=0; i<rows.length; i++) {
		rows[i].onmouseover = function(){Element.addClassName(this,'hovered')}
		rows[i].onmouseout = function(){Element.removeClassName(this,'hovered')}
	}
}

function zebraStripe(container) {
	rows = Element.childElements(container)
	for (var i=0; i<rows.length; i++) {
		Element.removeClassName(rows[i], 'row1')
		Element.removeClassName(rows[i], 'row2')
		if (i % 2 == 0) {
		Element.addClassName(rows[i], 'row1')
		} else {
		Element.addClassName(rows[i], 'row2')
		}
	}
		return null;
}

function random_password() {
	if (!document.getElementById) return false;
	if (!$('password_password')) return false;
	chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  pass = "";
  for(x=0;x<10;x++)
  {
    i = Math.floor(Math.random() * 62);
    pass += chars.charAt(i);
  }
	$('password_password').value = pass;
}

addLoadEvent(attachSelectorLinksForCabinetUnits);
addLoadEvent(selectRegisterNameField);
addLoadEvent(addRowMouseOverToBorderedTables);