
function submitForm(theform){
	if(validateForm(theform))
	eval("document."+theform+".submit()");
}


//check that all fields with classname 'required' are filled in
function validateForm(formname, classname){
if(!classname) classname="required";
var elems=eval("document."+formname+".elements"); 
var valid=true;
for(var i=0;i<elems.length;i++){
	if(elems[i].className.indexOf(classname)>=0){
	switch(elems[i].type) {
			case "text" :
				if(elems[i].name=='email_address'){
					valid=isEmail(elems[i].value);
				}
			case "textarea" :
			case "password" :
				if( (elems[i].value=="") || (elems[i].value==elems[i].defaultValue)){
					valid=false;
					alert("Please fill in all required fields");
				}
				break;
			case "select-one" :
				if(elems[i].value==''){
					alert("Please select an option from the dropdowns");
					valid=false;
				}
				break;
			case "radio" :
				valid = isSelected(formname, elems[i].name);
				break;
			case "checkbox" :
				valid = isChecked(formname, elems[i].name);
				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);
	if(!isArray(chkbx)){
		if((!chkbx) || (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 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;
}


function isEmail(str){
	if((str.indexOf('@')==-1)||(str.indexOf('.')==-1)){
		alert("Invalid email address");
		return false;
	}
	else
		return true;
}
/*** 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;
}

//Check that two fields have the same values, useful for password changes etc
function validateSame(type, retype){
if(document.getElementById(type).value == document.getElementById(retype).value)
	return true;
else{
	return false;
}
}

//Check if this element is an array
function isArray(obj) {
	if(!obj) { 
	return false;
	}
	try{ if((NodeList!="undefined") && (obj instanceof NodeList)) return true;} catch(e) {}
	try{ if((HTMLCollection!="undefined") && (obj instanceof HTMLCollection)) return true;} catch(e) {}

	if(!obj.constructor){ 
	return false;
	}
	if(!obj.constructor.indexOf) { 
	return false;
	}
return (obj.constructor.indexOf("Array") != -1);
}




/**************** 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




var map = null;
    var geocoder = null;

function initialize(lat, long) {
     // if (GBrowserIsCompatible()) {
        map = new google.maps.Map2(document.getElementById("property_map"));
        map.setMapType(G_NORMAL_MAP);
        map.setUIToDefault();
        map.setCenter(new google.maps.LatLng(lat, long), 15);

  //  }
   }

    function showAddress(lat, long, mytitle) {
  /*usePointFromPostcode(address, placeMarkerAtPoint, mytitle); */

    var point = new GLatLng(lat, long);

              var marker = new GMarker(point);
              map.addOverlay(marker);
              GEvent.addListener(marker, "click", function() {
  marker.openInfoWindowHtml(mytitle);
  });


    }

