//This javascript validates the form of 
//the customer feedback page.
//Some of the code below was taking from http://www.smartwebby.com/dhtml/
//#######################################################################

function check_email(txtemail) {
  
		var at="@";
		var dot=".";
		var lat=txtemail.indexOf(at);
		var lstr=txtemail.length;
		var ldot=txtemail.indexOf(dot);
		if (txtemail.indexOf(at)==-1){
		   alert("Invalid E-mail ID");
		   return false;
		}
		if (txtemail.indexOf(at)==-1 || txtemail.indexOf(at)==0 || txtemail.indexOf(at)==lstr){
		   alert("Invalid E-mail ID");
		   return false;
		}
		if (txtemail.indexOf(dot)==-1 || txtemail.indexOf(dot)==0 || txtemail.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID");
		    return false;
		}
		if (txtemail.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID");
		    return false;
		}
		if (txtemail.substring(lat-1,lat)==dot || txtemail.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID");
		    return false;
		}
		if (txtemail.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID");
		    return false;
		}
		if (txtemail.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID");
		    return false;
		}
 		return true;					
}

function is_valid_email(txtfld){
	var emailID=txtfld;

//Enable the code below only if this field is required(not optional)	
/*	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID");
		emailID.focus();
		return false;
	}
*/
	if (check_email(emailID.value)==false){
		//emailID.value="";
		emailID.focus()
		return false;
	}
	return true;
 }

//##############################################################

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
var bracket=3;
strPhone=trim(strPhone);
if(strPhone.indexOf("+")>1) return false;
if(strPhone.indexOf("-")!=-1)bracket=bracket+1;
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket) return false;
var brchr=strPhone.indexOf("(");
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false;
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false;
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function is_valid_phone(txtfld){
	var Phone = txtfld;

//Enable the code below only if this field is required(not optional)	
/*	if ((Phone.value==null)||(Phone.value=="")){
		alert("Please Enter your Phone Number");
		Phone.focus();
		return false;
	}
*/
	if (checkInternationalPhone(Phone.value)==false){
		alert("Please Enter a Valid Phone Number\n123-123-1234 OR +XXX-123-123-1234");
		//Phone.value="";
		Phone.focus();
		return false;
	}
	return true;
 }
//#######################################################################

function is_valid_feedback(frm_name) {
	//var frm_name = document.feedback;
	if((frm_name.subject.value == null)||(frm_name.subject.value=="")) {
		alert("Please Enter the subject of your feedback");
		frm_name.subject.focus();
		return false;
	}
/*
	if((frm_name.experience.value==null)||(frm_name.experience.value=="")){
		alert("Please select your experience with us");
		return false;
	}
*/
	if((frm_name.remarks.value==null)||(frm_name.remarks.value=="")){
		alert("Please enter your comments");
		frm_name.remarks.focus();
		return false;
	}
	if(frm_name.customer_email.value.length > 0) {
		if(!is_valid_email(frm_name.customer_email)){
			return false;
		}
	}
	if(frm_name.customer_phone.value.length > 0) {
		if(!is_valid_phone(frm_name.customer_phone)){
			return false;
		}
	}
	frm_name.submit();
	
	return true;
}

//###############################
function Clear_feedback() {
        feedback.subject.value = "";
        feedback.experience.value = "";
        feedback.remarks.value = "";
        feedback.customer_name.value = "";
        feedback.customer_email.value = "";
        feedback.customer_phone.value = "";
        feedback.customer_addr1.value = "";
        feedback.customer_addr2.value = "";
        feedback.customer_city.value = "";
        feedback.customer_state.value = "";
        feedback.customer_zip.value = "";
        feedback.customer_country.value = "";   

   }


