function MyFocus(afield) {
        afield.select();
        afield.focus();
}

function CheckString(txt,CharList) {
        var rc=0;
        for (var i=0; i<txt.length;i++) {
                if (CharList.indexOf(txt.charAt(i))!=(-1)) {
                        rc++;
                }
        }
        return rc;
}

function CheckAddress() {
        var ValidFullNameChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ .,-:()[]#;'`*@\/^& ";
        if (document.feedbackForm.address1.value.length == 0) {
                alert( "Please provide your address");
                MyFocus(document.feedbackForm.address1);
                return(false);
        }
        if (document.feedbackForm.address1.value.length != CheckString(document.feedbackForm.address1.value,ValidFullNameChars)) {
                alert( "Address can have the following characters\n" + ValidFullNameChars );
                MyFocus(document.feedbackForm.address1);
                return(false);
        }
        return(true);
}

function CheckName() {
        var ValidFullNameChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ .";
        if (document.feedbackForm.userName.value.length == 0) {
                alert( "Please provide Name ");
                MyFocus(document.feedbackForm.userName);
                return(false);
        }
        if (document.feedbackForm.userName.value.length != CheckString(document.feedbackForm.userName.value,ValidFullNameChars)) {
                alert( "First Name can have the following characters\n" + ValidFullNameChars );
                MyFocus(document.feedbackForm.userName);
                return(false);
        }
        return(true);
}

function CheckPhoneExt() {
        var ValidFullNameChars="0123456789";
/****
        if (document.feedbackForm.telephone.value.length == 0) {
                alert( "Please Provide Extention Number");
                MyFocus(document.feedbackForm.telephone);
                return(false);
        }
        if (document.feedbackForm.telephone.value.length < 2) {
                alert(  document.feedbackForm.telephone.value + ": Enter STD/ISD code of atleast two digits.");
                MyFocus(document.feedbackForm.telephone);
                return(false);
        }
******/
        if (document.feedbackForm.telephone.value.length != CheckString(document.feedbackForm.telephone.value,ValidFullNameChars)) {
                alert( "Phone number can have the following characters\n" + ValidFullNameChars );
                MyFocus(document.feedbackForm.telephone);
                return(false);
        }
        return(true);
}

function CheckPhone() {
        var ValidFullNameChars="0123456789";
        if (document.feedbackForm.telephone.value.length == 0) {
                alert( "Please Provide Phone Number");
                MyFocus(document.feedbackForm.telephone);
                return(false);
        }
	/*******
        if (document.feedbackForm.telephone.value.length < 5) {
                alert(  document.feedbackForm.telephone.value + ": Phone number must be atleast \nfive characters long.");
                MyFocus(document.feedbackForm.telephone);
                return(false);
        }
	******/
        if (document.feedbackForm.telephone.value.length != CheckString(document.feedbackForm.telephone.value,ValidFullNameChars)) {
                alert( "Phone number can have the following characters\n" + ValidFullNameChars );
                MyFocus(document.feedbackForm.telephone);
                return(false);
        }
        return(true);
}

function CheckFeedbackType(){
	if (document.feedbackForm.feedbackType.value == "sel") {
                alert( "Please select the type of feedback");
		return(false);
	}
	return(true);	
}

function emailCheck () {
var emailStr= document.feedbackForm.email.value
var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")



var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
        alert("Email address seems incorrect (check @ and .'s)")
	MyFocus(document.feedbackForm.email);
        return false
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    alert("The username in the Email Id doesn't seem to be valid.")
	MyFocus(document.feedbackForm.email);
    return false
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
          for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                alert("Destination IP address of the Email Id is invalid!")
		MyFocus(document.feedbackForm.email);
        if (CheckSubject() == false) return(false);
                return false
            }
    }
    return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
        alert("The domain name in the email id doesn't seem to be valid.")
	MyFocus(document.feedbackForm.email);
    return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
   alert("The address must end in a three-letter domain, or two letter country.")
   MyFocus(document.feedbackForm.email);
   return false
}

if (len<2) {
   var errStr="This  Email address is missing a hostname!"
   MyFocus(document.feedbackForm.email);
   alert(errStr)
   return false
}

return true;
}

function CheckComment() {
        if (document.feedbackForm.comment.value.length == 0) {
                alert( "Please provide your comments ");
                MyFocus(document.feedbackForm.comment);
                return(false);
        }
        return(true);
}

function CheckSubject() {
        if (document.feedbackForm.subject.value.length == 0) {
                alert( "Please provide your subject ");
                MyFocus(document.feedbackForm.subject);
                return(false);
        }
        return(true);
}

function CheckOrgName() {
        if (document.feedbackForm.organization.value.length == 0) {
                alert( "Please provide your Organization Name ");
                MyFocus(document.feedbackForm.organization);
                return(false);
        }
        return(true);
}

function submitMe() {

	if(document.feedbackForm.userName){
        	if (CheckName() == false) return(false);
	}
        //if (CheckOrgName() == false) return(false);
	if(document.feedbackForm.email){
        	if (emailCheck() == false) return(false);
	}
        //if (CheckPhoneExt() == false) return(false);
	if(document.feedbackForm.telephone){
        	if (CheckPhone() == false) return(false);
	}
        if (CheckSubject() == false) return(false);
        if (CheckFeedbackType() == false) return(false);
        if (CheckComment() == false) return(false);
	
        var natureFb=document.feedbackForm.feedbackType.options[document.feedbackForm.feedbackType.selectedIndex].text;
	document.feedbackForm.natureOfFeedback.value=natureFb;
        document.feedbackForm.submit();
        return(false);
}
