function echeck(str) {
	var errmsg="Invalid Email address";
	var at="@";
    var dot=".";
    var lat=str.indexOf(at);
	var addr=str.substring(0,lat);
	var domain=str.substring(lat+1,str.length);
    var lstr=str.length;
    var ldot=str.indexOf(dot);
    if (str.indexOf(at)==-1){
    	alert(errmsg);
        return false;
    }

	// check the "@" is in the middle of the addr
    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
       alert(errmsg);
       return false;
    }
    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
       alert(errmsg);
       return false;
    }
    if (str.indexOf(at,(lat+1))!=-1){
       alert(errmsg);
       return false;
    }

    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
       alert(errmsg);
       return false;
    }

   if (str.indexOf(dot,(lat+2))==-1){
       alert(errmsg);
       return false;
    }

	// spaces not allowed in email adddress
   if (str.indexOf(" ")!=-1){
       alert(errmsg);
       return false;
    }
	
	if(!checkEmailAddrElement(addr, "Name")) return false;
	if(!checkEmailAddrElement(domain, "Domain")) return false;
	
    return true;
}

// acceptable chars(- . _ 0-9 a-z)
function checkEmailAddrElement(str, eltName){
	var currChar,i;

	for(i=0; i < str.length; i++){
		currChar = str.charAt(i).charCodeAt(0);
		if ((i==0 || i == str.length-1) && (currChar < 48 || (currChar > 57 && currChar < 97) || currChar > 122)) {
			alert("Error: "+eltName+" portion of email address contains illegal characters.");
			return false;
		} else if ((currChar < 48 || (currChar > 57 && currChar < 97) || currChar > 122) && (currChar != 45 && currChar != 46 && currChar != 95)){
			alert("Error: "+eltName+" portion of email address contains illegal characters.");
			return false;
		}
	}
	return true;
}


function focusElement(elem){
	elem.focus();
	elem.select();
}

function trimBlanks(str){
	str=ltrim(str);
	str=rtrim(str);
	return str;

}

function ltrim(str){
	while(str.charAt[0]==" ")
		str=str.substring(1,str.length);
	return str;
}

function rtrim(str){
	while(str.charAt[str.length-1]==" ")
		str=str.substring(0, str.length-1);
	return str;
}


//**** menus end


function numeralsOnly(evt){
	evt = (evt)? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : (( evt.keyCode)? evt.keyCode : (( evt.which)? evt.which : 0));
	if (charCode > 31 && (charCode < 48 || charCode > 57)){
		alert("Enter numerals only in this field.");
		return false;
	}
	return true;
}

function validAusPostcodes(pcodeStr, stateStr){
	// check postcode length
	if(pcodeStr.length!=4) {
		alert("Error: Australian postcodes are always 4 digits.");
		return false;
	}
	
	// check postcode is all numeric
	var currChar;
	for(i=0; i < pcodeStr.length; i++){
		currChar = pcodeStr.charAt(i).charCodeAt(0);
		if (!(currChar > 47 && currChar < 58)) {
			alert("Error: Postcode is not all numeric.");
			return false;
		}
	}

	// check postcode range against state
	var state=stateStr.toUpperCase();
	var pcode=parseInt(pcodeStr, 10);
	if ((state=="ACT" || state=="AUSTRALIAN CAPITAL TERRITORY") && (pcode < 2000 || pcode > 2999)){
		alert("Error: Postcode is not in valid range (2000-2999) for "+stateStr);
		return false;
	}
	if ((state=="NSW" || state=="N.S.W." || state=="N.S.W" || state=="NEW SOUTH WALES") && (pcode < 2000 || pcode > 2999)){
		alert("Error: Postcode is not in valid range (2000-2999) for "+stateStr);
		return false;
	}
	if ((state=="VIC" || state=="VICTORIA") && (pcode < 3000 || pcode > 3999)){
		alert("Error: Postcode is not in valid range 3000-3999) for "+stateStr);
		return false;
	}
	if ((state=="QLD" || state=="QUEENSLAND") && (pcode < 4000 || pcode > 4999)){
		alert("Error: Postcode is not in valid range 4000-4999) for "+stateStr);
		return false;
	}
	if ((state=="SA" || state=="S.A."  || state=="S.A" || state=="SOUTH AUSTRALIA") && (pcode < 5000 || pcode > 5999)){
		alert("Error: Postcode is not in valid range (5000-5999) for "+stateStr);
		return false;
	}
	if ((state=="WA" || state=="W.A." || state=="W.A" || state=="WESTERN AUSTRALIA") && (pcode < 6000 || pcode > 6999)){
		alert("Error: Postcode is not in valid range (6000-6999) for "+stateStr);
		return false;
	}
	if ((state=="TAS" || state=="TASMANIA") && (pcode < 7000 || pcode > 7999)){
		alert("Error: Postcode is not in valid range 7000-7999) for "+stateStr);
		return false;
	}
	if ((state=="NT" || state=="N.T."  || state=="N.T" || state=="NORTHERN TERRITORY") && (pcode < 800 || pcode > 899)){
		alert("Error: Postcode is not in valid range (800-0899) for "+stateStr);
		return false;
	}
	
	return true;
}

function NXback(){
	history.back();
}

