        var whitespace = " \t\n\r";
        var validChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
        var pEntryPrompt = "Please enter the following information: "

        var mPrefix = "You did not enter a valid value into the following field: "
        var mSuffix = "This is a required field. Please enter it now."

        // s is an abbreviation for "string"
        var sEmail = "Email Address"
        var sUsername = "Username"
        var sPassword = "Password"
         
        // i is an abbreviation for "invalid"
        var iEmail = "The Email Address field must be a valid email address (e.g. foo@somedomain.com). Please re-enter it now."
        var iUserPassword = "Your Username and Password selections cannot be the same. Please choose a different Username or Password."
		var iUsrPw = "Username and Password must be at least 3 characters long. Please re-enter it now."
		var iIncludSpace = "Username, Password and email can not include Space. Please re-enter it now."
		var iConfirmPassword = "Confirm Password is not correct. Please re-enter it now."
		var iInvalidChar = "Username. \n (only [0-9],[a-z],[A-Z],[_],[-] is valid for username!"
		var iCertifyAge = "You have to verify you are over 18 years old.";
		var iAgreeTerm = "You have to agree to the terms of use and privacy policy.";
		var iInvalidUser = "Username contains words that we have blocked!";
		var iInvalidTitle = "Title or Description or Tags contains words that we have blocked!";

        // Check whether string s is empty.
        function isEmpty(s) {
            return ((s == null) || (s.length == 0));
        }

        function promptEntry (s){   
        	window.status = pEntryPrompt + s
        }

       function warnEmpty (theField, s){   
       		theField.focus()
			alert(mPrefix + "\n\n\t" + s + "\n\n" + mSuffix)
			return false
        }

        function warnInvalid (theField, s){   
        	theField.focus()
			theField.select()
			alert(s)
			return false
        }

        function isAllWhitespace (s) {
			var i;
			if (isEmpty(s)) return true;
                
            for (i = 0; i < s.length; i++){   
                    var c = s.charAt(i);
					
                    if (c != ' ') return false
            }

            return true;
        }

       function isValidChar (theField) {
			var s = theField.value;
			
       	    for (i = 0; i < s.length; i++){   
				var c = s.charAt(i);
                   
			if(validChar.indexOf(c)>=0)
				continue;
			else
				return warnEmpty (theField, iInvalidChar);	
                        
			}

			return true;
        }

function isValidUser (theField) {
	var arr = ['forced', 'forcing', 'force', 'forcefully','rape', 'raping', 'raped', 'raper', 'rapist','drunk','torture'];
	var s = theField.value;

	for(var i=0;i<arr.length;i++)	{
		if (s.toLowerCase().indexOf(arr[i]) >=0 ) {
			return warnEmpty (theField, iInvalidUser+" Bad word '"+arr[i]+"' detected.");	
		}
	}
	return true;
}


        function charInString (c, s){   
        	for (i = 0; i < s.length; i++) {   
        		if (s.charAt(i) == c) return true;
			}
			return false
        }

        function striplWhitespace (s){   
        	var i = 0;
        	var j = 0;
        	
			while ((i < s.length) && charInString (s.charAt(i), ' '))
				i++;

			s1 = s.substring (i, s.length);

			while ((j < s1.length) && charInString (s1.charAt(s1.length - j - 1), ' '))
				j++;                
                
			s2 = s1.substring (0, s1.length - j);
			return s2;
        } 
               
        function checkString (theField, s){         	 
			if (isAllWhitespace(theField.value))
				return warnEmpty (theField, s);
			else 
				return true;
        }

        function isEmail (s) {
			var i = 1;
			var sLength = s.length;	

			// look for @
			while ((i < sLength) && (s.charAt(i) != "@"))
				i++                

			if ((i >= sLength) || (s.charAt(i) != "@")) return false;
			else i += 2;

			// look for .
			while ((i < sLength) && (s.charAt(i) != "."))
				i++

			// there must be at least one character after the .
			if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
			else return true;
        }

        function checkEmail (theField){  
        	var str = '';
		
			str = striplWhitespace(theField.value);
			if(str.indexOf(' ')>=0)
				return warnInvalid (theField, iIncludSpace); 
                    
        	if (!isEmail(theField.value))
				return warnInvalid (theField, iEmail);
			else return true;
        }

        function validateUsrPw(theField) {
            var s = theField.value;
        	var str = '';
        	                
            if(!isAllWhitespace(s)){
            	str = striplWhitespace(theField.value);
                if(str.indexOf(' ')>=0)
                	return warnInvalid (theField, iIncludSpace);	
               	else if(str.length<3)
                	return warnInvalid(theField, iUsrPw);
                else
                	return true; 	
           	} else {
            	return warnInvalid(theField, iUsrPw);
            }
        }
        
        function ckeckUsrPw(theField1, theField2) {
        	if (theField1.value == theField2.value) 
            	return warnInvalid(theField2, iUserPassword);
            else
            	return true;
        }

        function ckeckAgeTerm(theField1, theField2) {
        	if (!theField1.checked) 
            	return warnInvalid(theField1, iCertifyAge);
            else if(!theField2.checked) 
            	return warnInvalid(theField2, iAgreeTerm);
            else	
            	return true;
         
        }

        function checkConfirmPW(theField1, theField2) {
       
        	if (theField1.value != theField2.value) 
            	return warnInvalid(theField2, iConfirmPassword);
            else
            	return true;
        }
        
        function validateFormInfo(form) {
        	
			return (
		  		checkEmail(form.elements["email"]) &&
                checkString(form.elements["user_id"],sUsername) &&
                validateUsrPw(form.elements["user_id"]) && 
                isValidChar(form.elements["user_id"]) &&
								isValidUser(form.elements["user_id"]) &&
                checkString(form.elements["password1"],sPassword) && 
                validateUsrPw(form.elements["password1"]) &&
                ckeckUsrPw(form.elements["user_id"],form.elements["password1"]) &&
                checkConfirmPW(form.elements["password1"],form.elements["password2"]) &&
                ckeckAgeTerm(form.elements["certify_age"], form.elements["agree_to_terms"])
                
                );
			
        }        

        function validateFormInfo1(form) {
        	   
			return (
                checkString(form.elements["user_id"],sUsername) &&
                validateUsrPw(form.elements["user_id"]) &&
                isValidChar(form.elements["user_id"]) &&
                checkString(form.elements["password"],sPassword) &&
                validateUsrPw(form.elements["password"]) 
	        ) 
        }        

        function validateFormInfo2(form) {
        	   
			return (
		  		checkEmail(form.elements["email"])
	        ) 
        }        

       function validateFormInfo3(form) {
        	   
			return (
                validateUsrPw(form.elements["uid"]) &&
                isValidChar(form.elements["usid"])

	        ) 
        }        

        function validateFormInfo4(form) {
        	//alert("xxxxx");	
					return (
		  			checkEmail(form.elements["a_email"]) &&
                checkString(form.elements["a_user_id"],sUsername) &&
                validateUsrPw(form.elements["a_user_id"]) && 
                isValidChar(form.elements["a_user_id"]) &&
                checkString(form.elements["a_password1"],sPassword) && 
                validateUsrPw(form.elements["a_password1"]) &&
                checkConfirmPW(form.elements["a_password1"],form.elements["a_password2"])
                );
			
        }        

function validateFormProfile(form) {
	return (
		isValidTitle(form.elements["intro_title"])
	);
}   

function isValidTitle (theField) {
//	var arr = ['forced', 'forcing', 'force', 'forcefully','rape', 'raping', 'raped', 'raper', 'rapist','drunk','torture'];
	var s = theField.value;

	for(var i=0;i<arr.length;i++)	{
		if (s.toLowerCase().indexOf(arr[i]) >=0 ) {
			return warnEmpty (theField, iInvalidTitle+" Bad word '"+arr[i]+"' detected.");	
		}
	}
	return true;
}

function validateFormVideo(form) {
	return (
		isValidTitle(form.elements["field_title"]) &&
		isValidTitle(form.elements["field_description"]) &&
		isValidTitle(form.elements["field_tags"])
	);
}   

        
