 // JavaScript Document

function validateForm(f) {
	var error = false;

	var name = f.txtName;
	f.txtName.value = removeMSWordChars(name.value); // Remove Smart Quotes from MS Word ... 23-Dec-2009
	
	var userName = f.txtUserName;
	var password = f.txtPassword;
	var password2 = f.txtPassword2;
	var email = f.txtEmail;
	
	var chars4string = ".-_'` "; 	 // Allowed Characters for simple string
	var chars4userName = ".-_@1234567890" ; // Allowed Characters for user name
	
	var nameSpan = document.getElementById("span4name");
	var userNameSpan = document.getElementById("span4userName");
	var passwordSpan = document.getElementById("span4password");
	var password2Span = document.getElementById("span4password2");
	var emailSpan = document.getElementById("span4email");
	
	if( isBlank(name.value) ) { 
		error = true;
		name.style.background = 'Yellow';	
		nameSpan.innerHTML = "Name can't be blank.";
		name.focus();
	} else { 
		if( isString(name.value, chars4string) ) {
			name.style.background = 'White';		
			nameSpan.innerHTML = "";
		} else {
			error = true;
			name.style.background = 'Yellow';		
			nameSpan.innerHTML = "Invalid Name";
			name.focus();
		}
	} // if( isBlank(name.value) )
			
	if( isBlank(userName.value) ) { 
		error = true;
		userName.style.background = 'Yellow';	
		userNameSpan.innerHTML = "User name can't be blank.";
		userName.focus();
	} else { 
		if( isString(userName.value, chars4userName) ) {
			userName.style.background = 'White';		
			userNameSpan.innerHTML = "";
		} else {
			error = true;
			userName.style.background = 'Yellow';		
			userNameSpan.innerHTML = "Invalid User Name";
			userName.focus();
		}
	} // if( isBlank(userName.value) )	

	if( isBlank(password.value) ) { 
		error = true;
		password.style.background = 'Yellow';	
		passwordSpan.innerHTML = "Password is compulsory.";
		password.focus();
	} else { 
		password.style.background = 'White';		
		passwordSpan.innerHTML = "";
	} // if( isBlank(password.value) )	
	
	if( isBlank(password2.value) ) { 
		error = true;
		password2.style.background = 'Yellow';	
		password2Span.innerHTML = "Please, retype your passowrd.";
		password2.focus();
	} else { 
		if( password2.value ==  password.value) {
			password2.style.background = 'White';
			password2Span.innerHTML = "";
		} else {
			error = true;		
			password2.style.background = 'Yellow';
			password2Span.innerHTML = "Both passwords must match each other.";
			password2.focus();
		}
	} // if( isBlank(password.value) )	

	var emailFlag;
	if( isBlank(email.value) ) { // if email is not typed
		error = true;
		email.style.background = 'Yellow';	
		emailSpan.innerHTML = "Email is compulsory!";
		email.focus();
	} else {
		emailFlag = isEmail(email.value);
		if(emailFlag == true) {
			email.style.background = 'White';
			emailSpan.innerHTML = "";
		} else {
			error = true;
			emailSpan.innerHTML = "Invalid Email";
			email.style.background = 'Yellow';	
		}
	} // if(email.value.length == 0)
	
	if(error == true) {
		return false;
	} // if(error == true)
} // validateForm(...)

////////////////////////////////////////////////////////////////////////////
/*
function isEmail(address) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	//var address = document.forms[form_id].elements[email].value;
	if(reg.test(address) == false) {
	  //alert('Invalid Email Address');
	  return false;
	} else {
		return true;   
	}
} // isEmail(address)
*/
////////////////////////////////////////////////////////////////////////////

function isBlank(str) {
	if(str.length == 0) {
		return true;	
	} else {
		return false;	
	}
} // isBlank(str)

//////////////////////////////////////////////////////////////////////////////

function isString(textObj, extraChars) {
   // var newValue = textObj.value;
   var newValue = textObj; 
   var newLength = newValue.length;
   // var extraChars=". -,"; // Allowed Characters for Simple String
   // var extraChars=".-_"; // Allowed Characters for User Name

   var search;
   for(var i = 0; i != newLength; i++) {
      aChar = newValue.substring(i,i+1);
      aChar = aChar.toUpperCase();
      search = extraChars.indexOf(aChar);
      if(search == -1 && (aChar < "A" || aChar > "Z") ) {
         
		 
		 return false;
      }
   }
   return true;
}

//////////////////////////////////////////////////////////////////////////////////

function removeMSWordChars(str) {
    var myReplacements = new Array();
    var myCode, intReplacement;
    myReplacements[8216] = 39;
    myReplacements[8217] = 39;
    myReplacements[8220] = 34;
    myReplacements[8221] = 34;
    myReplacements[8212] = 45;
    for(c=0; c<str.length; c++) {
        var myCode = str.charCodeAt(c);
        if(myReplacements[myCode] != undefined) {
            intReplacement = myReplacements[myCode];
            str = str.substr(0,c) + String.fromCharCode(intReplacement) + str.substr(c+1);
        }
    }
    return str;
}