// For when a page loads
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}


// Submit a form
function formSubmit(elementName) {
  var formName = document.getElementsByName(elementName)[0].form.name;
  
  document.forms(formName).submit()	
}

// Trigger onclick
function triggerOnClick(InputName, InputValue) {
  var onClick;
  var onChange;
  var returnStr;
  
  var InputObj = document.getElementsByName(InputName);
				
  if(!InputObj)
	return;
					
  var InputLength = InputObj.length;
				
  for(var i = 0; i < InputLength; i++) {
	if(InputObj[i].value == InputValue.toString()) {
		onClick = InputObj[i].getAttributeNode('onclick').nodeValue;
		onChange = InputObj[i].getAttributeNode('onchange').nodeValue;				
	}
  }
  
  // Now see what to return
  if (!onClick) {
    returnStr = onChange;
  } else {
	returnStr = onClick;
  }
  
  return returnStr;
}

// Get object from class
function getElementsByClass(searchClass, domNode, tagName) {
	if (domNode == null) domNode = document;
	if (tagName == null) tagName = '*';
	
	var el = new Array();
	var tags = domNode.getElementsByTagName(tagName);
	
	var tcl = " " + searchClass + " ";
	for(i=0,j=0; i<tags.length; i++) {
		var test = " " + tags[i].className + " ";
		
		if (test.indexOf(tcl) != -1)
		  el[j++] = tags[i];
	}
	
	return el;
}


// Toggle
function toggleElement(elementshow, element, elementhide, elementhide2, elementhide3){
  var els;
  var newDisplay;
  
  elh = document.getElementById(elementhide);
  
  // if the elh does not exist then hide the show one otherwise show and hide the relative ones
  if (elh) {
	  
    els = document.getElementById(elementshow);
    elh2 = document.getElementById(elementhide2);
    elh3 = document.getElementById(elementhide3);
                 
    if (els.style.display != 'block') {
      els.style.display = 'block';
    }
	  
    if(elh.style.display != 'none') {
      elh.style.display = 'none';
    } 

    if ((elh2) && (elh2.style.display != 'none')) {
      elh2.style.display = 'none';
    }
  
    if ((elh3) && (elh3.style.display != 'none')) {
      elh3.style.display = 'none';
    }
  } else {
	
	// Get the elements that have the tag of els
	var allelements = getElementsByClass(elementshow, null, element);
	
	for(var i = 0; i < allelements.length; i++) {
      if (allelements[i].style.display != 'block') {
        allelements[i].style.display = 'block';
      } else {
	    allelements[i].style.display = 'none';	
	  }	
	}
  }
}

// Disable an element
function disableToggle(InputName) {
  var status = document.getElementsByName(InputName)[0];
  if (!status.disabled) {
	status.disabled=true;
  } else {
	status.disabled=false;	  
  }
}

function trueToggle(toggleID) {
	var el = document.getElementById(toggleID);
	el.style.display = (el.style.display != 'none' ? 'none' : '' );
}

// hide an item
function hideItem(InputName, setSelect, excludeInputName, excludeVar, hideID) {
  
  var hideItem;
  var excludeName = document.getElementsByName(excludeInputName).item(0);
  
  if (setSelect) {
    setSelectValue(InputName, excludeName.options[excludeName.selectedIndex].id);
  }
  
  // Make sure there is no exclusion
  if (!excludeName) {
	hideItem = true;
  } else {
	  
	// As there is check to make sure the value of the excluded name does not match the exclude variable
	if (excludeName.value!=excludeVar) {
	  hideItem = true;
	}
  }
  
  if ((hideItem) && (hideID)) {
	document.getElementById(hideID).style.display='none';
  } else {
	document.getElementById(hideID).style.display='block';
  }
}

// set text/hidden value
function setTextValue(InputName, newValue) {
  
  var textObj = document.getElementsByName(InputName);
  
  if (!textObj)
    return;
	
  textObj[0].value = newValue;
}

// Set select box value
function setSelectValue(InputName, newValue) {
  				
  var selectObj = document.getElementsByName(InputName)[0].options;
		  
  if(!selectObj)
    return;
  
  var selectLength = selectObj.length;
			  
  if(selectLength == undefined) {
	selectObj.checked = (selectObj.value == newValue.toString());
	return;
  }
			  
  for(var i = 0; i < selectLength; i++) {
	selectObj[i].checked = false;
			
	if(selectObj[i].value == newValue.toString()) {
	  selectObj[i].selected = true;
	}
  }
}
			
			
// Set checkbox value
function setRadioValue(InputName, newValue) {
				
  var radioObj = document.getElementsByName(InputName);
				
  if(!radioObj)
	return;
					
  var radioLength = radioObj.length;
				
  if(radioLength == undefined) {
	radioObj.checked = (radioObj.value == newValue.toString());
	return;
  }
				
  for(var i = 0; i < radioLength; i++) {
	radioObj[i].checked = false;
	
	if(radioObj[i].value == newValue.toString()) {
	  radioObj[i].checked = true;					
	}
  }
}

// Set text box
function setTextValue(InputName, newValue) {

  var textObj = document.getElementsByName(InputName)[0];
  
  if(!textObj)
    return;
  
  textObj.value = newValue;
}

// Strip html
function removeHTMLTags(htmlString){
  if(htmlString){
    var mydiv = document.createElement("div");
    mydiv.innerHTML = htmlString;
 
    if (document.all) { // IE Stuff
	  return mydiv.innerText;     
    } else { // Mozilla does not work with innerText
      return mydiv.textContent;
    }                            
  }
} 

// Limit text
function limitText(inputName, countName, countType, limitNum) {
  
  var inputObj = document.getElementsByName(inputName)[0];
  var countObj = document.getElementById(countName);
  
  if (inputObj.value.length > limitNum) {
    inputObj.value = inputObj.value.substring(0, limitNum);
	
	if (countType=="text") {
      countObj.value = '0';
	} else if (countType=="span") {
	  countObj.innerHTML = '0';
	}
  } else {
	if (countType=="text") {
      countObj.value = limitNum - inputObj.value.length;
	} else if (countType=="span") {
	  countObj.innerHTML = limitNum - inputObj.value.length;
	}
  }
}
