
function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}


//validation function for registration form
function validateContact(){
	if(!validate())
		return false
	if(!validateEmailAddress('email_address'))
		return false
	return true;
}


//check that all fields with classname 'required' are filled in
function validate(){
var elems=document.getElementsByTagName('input'); 
for(var i=0;i<elems.length;i++){
	if((elems[i].className=='required')&&(elems[i].value=="")){
		alert("Please fill in all required fields");
		return false;
	}
}
return true;
}

//check that all fields with classname 'required' are filled in
function validate(formname){
	if(!formname) formname="theform";
	var elems=eval("document."+formname+".elements"); 
	valid=true;
	for(var i=0;i<elems.length;i++){
		if(elems[i].className=='required'){
			switch(elems[i].tagName.toLowerCase()) {
				case "input" :
					switch(elems[i].type) {
						case "text" :
						case "password" :
							if(elems[i].value==""){
								valid=false;
								alert("Please fill in all required fields");
							}
							break;
						case "radio" :
							valid = isSelected(formname, elems[i].name);
							break;
					}
					break;
				
				case "textarea" :
					if((elems[i].className=='required') && (elems[i].value=="")){
						alert("Please fill in all required fields");
						return false;
					}
					break;
					
				case "select" :
					if((elems[i].className=='required') && (elems[i].selectedIndex=="")){
						alert("Please fill in all required fields");
						return false;
					}
					break;
					
			}
				
			if(!valid){
				return valid;
			}
		}
	}

return true;
}

/** isChecked
 * returns true if at least one of a group of checkboxes is checked
 **/
function isChecked(formname, checkboxname){
	var isChecked = false;
	var chkbx=eval('document.'+formname+'.'+checkboxname);
	for (var i = 0; i < chkbx.length; i++) {
  	 	if (chkbx[i].checked) {
   	   	isChecked = true;
   		}
	}
	if(!isChecked)
		alert("Please tick all required checkboxes");
	return isChecked;
}

/** isSelected()
 * Returns true if one of a group of radio buttons is selected
 **/
function isSelected(formname, radioname){
	var isChecked = false;
	var chkbx=eval('document.'+formname+'.'+radioname);
	if(!chkbx.length){
		if(chkbx.checked)
			isChecked=true;
	}
	else{
		for (var i = 0; i < chkbx.length; i++) {
			if (chkbx[i].checked) {
			isChecked = true;
			}
		}
	}
	if(!isChecked)
		alert("Please tick all required Radio buttons");
	return isChecked;
}


/*** This validation function checks that an email address contains both '@' and '.' **/
function validateEmailAddress(email_address){
var email = document.getElementById(email_address).value;
	if((email.indexOf('@')==-1)||(email.indexOf('.')==-1)){
		alert("Invalid email address");
		return false;
	}
	else
		return true;
}






/**************** AJAX STUFF **************/

/*** Updating subtopic when topic selected **/

function handleUpdateSubSectionMenu() {
  if (http.readyState == 4) {
    // Split the comma delimited response into an array
    results = http.responseText;
    document.getElementById('subsection_menu').innerHTML = results;

  }
  
}
function updateSubSectionMenu(root_dir, type) {
	document.getElementById('subsection_menu').innerHTML = 'Updating......';
 	var a_f = document.getElementById('section').value;
	var url=root_dir+'ajax/subsectionMenu.php?check=suscms&type='+type+'&section='+a_f+'';
	http.open("GET", url, true);
	http.onreadystatechange = handleUpdateSubSectionMenu;
	http.send(null);

}

function setSectionID(value){
	document.getElementByID('section_id').value=value;
}

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}
var http = getHTTPObject(); // We create the HTTP Object



