function validateForm() 
{ 
	var i,p,q,nm,test,num,min,max,errors='',args=validateForm.arguments;
	j=0;
	var regEmail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	var regBlank = /[^\s]/;
	var regAlphaNum = /^([a-zA-Z0-9_#@]+)$/;
	 var regDate = /^([0-9_]+-[0-9][0-9]+-[0-9][0-9]+)$/; 
   var regChar = /^([a-zA-Z]+)$/;
	
	for (i=1; i<(args.length-2); i+=3) 
	{	
		mesg=args[i+1];
		test=args[i+2]; 
		val=document.forms[""+args[0]].elements[""+args[i]];
		
		    if (val) 
			{	
			nm=mesg; 
			noVal = val;
			val = val.value;
			if(test=='BLNK')
			{
			 if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
			 if (val<0) errors+='- '+nm+' must contain a number.\n';
			 }			
			 else if(test=='CHKURL' && val !="")
				{
					p=val.indexOf('http://');
					s=val.indexOf('.');
			        if (p<0 || p==(val.length-1))
					{
						errors+='- '+nm+' must be valid URL e.g. http://www.abc.com\n';
		
					}
					else if(s<p || s==(val.length-1))
					{
						errors+='- '+nm+' must be valid URL e.g. http://www.abc.com\n';
					}

				}
			 else
				{
					
			if(regBlank.test(val))
			{
				if(test.indexOf('isEqual')!=-1)
				{
					result = val;

				if(result.length==0){
										
				errors += '- '+nm+' is required.\n'; 
				}else{
					
					equal_obj_val = test.substring(8,test.indexOf(":"));
					mesg_string =test.substring((test.indexOf(":")+1));

					if(val != document.forms[""+args[0]].elements[""+equal_obj_val].value)
					{ 
						errors+='- '+nm+' and '+mesg_string+' must be same.\n';
					}
				}
				}
				else if(test.indexOf('isAlphaNum')!=-1)
				{
				result = val;
				if(result.length==0){
				errors += '- '+nm+' is required.\n'; 
				}else{
					if(!regAlphaNum.test(val))
					{
						errors += '- '+nm+' is not valid.\n';
					
					}
				}
				}
				else if (test.indexOf('isDate')!=-1) 
				{ 
					p=val.indexOf('-');
			       
			       	var sliptdate	= val.split("-");
					var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate(),TH=today.getHours();
					TM+=1;			
					if(TM<=9) 
					{	
						TM='0'+TM;
					}
					if(TD<=9)
					{
						TD='0'+TD;
					}
					
					var sY=sliptdate[0];
					var sM=sliptdate[1];
					var sD=sliptdate[2];
					
					
					//alert(TM);
					if(sY<TY ) {
						
						errors+='- '+nm+' should be greater than current date.\n';
					}
					else if(sM==TM && sD<TD && sY==TY) { 

						errors+='- '+nm+' should be greater than current date.\n';
						
					}
					else if(sM<TM && sY==TY) { 

						errors+='- '+nm+' should be greater than current date.\n';
						
					}
					
				
					else if (p != 4 || sY.length != 4 || sM.length != 2 || sD.length != 2 )
					{
						errors+='- '+nm+' must contain Valid Date YYYY-MM-DD.\n';
		
					}
					else if(!regDate.test(val))
					{
						errors+='- '+nm+'  must contain Valid Date YYYY-MM-DD.\n';
					}
					else if(sM>12 || sD>31 || sY<2006)
					{
						errors+='- '+nm+'  must contain Valid Date YYYY-MM-DD.\n';
					}
			     }
				else if (test.indexOf('isEmail')!=-1) 
				{ 
					p=val.indexOf('@');
					s=val.indexOf('.');
			        if (p<1 || p==(val.length-1))
					{
						errors+='- '+nm+' must contain an e-mail Address.\n';
		
					}
					//else if(s<p || s==(val.length-1))
					else if(!regEmail.test(val))
					{
						errors+='- '+nm+' must contain a valid e-mail Address.\n';
					}
			     }
				else if (test.indexOf('isUrl')!=-1) 
				{ 
					p=val.indexOf('http://');
					s=val.indexOf('.');
			        if (p<0 || p==(val.length-1))
					{
						errors+='- '+nm+' must be valid URL e.g. http://www.abc.com\n';
		
					}
					else if(s<p || s==(val.length-1))
					{
						errors+='- '+nm+' must be valid URL e.g. http://www.abc.com\n';
					}
			     }
				 else if(test.indexOf('isMp3')!=-1)
				 {
					  
					function reverse(val) 
					{	
						var length = val.length;
						var letters = new Array(length);
						var letters2 = new Array(length);
						var backword = "";
						for (i=0; i<=length-1; i++) 
						{
							letters[i] = val.substring(i, i+1);
						}
						f = 0
						for (j=i-1; j>=0; j--) 
						{
							letters2[f] = letters[j];
							f++;
						}
						for (h=0; h<=letters2.length-1; h++) 
						{
							backword +=letters2[h];
						}
					 	return backword;
					}
					var back = reverse(val);
					var ValExt	= back.split(".");
					var ValExt = reverse(ValExt[0]);
					
					if (ValExt == "mp3" || ValExt == "MP3") 
					{
						flag="yes";
					} 
					else 
					{
						flag="no";						
					} 
					if(flag=="no")
					{
						errors+='- '+nm+' must be (mp3).\n';						
					}
				 
				 }
				 else if (test.indexOf('isChar')!=-1) 
				 { 
					var first_char;
					
					if(val.match(regChar)==null)
					{
					 	errors+='- '+nm+' must contain a character.\n';
					}
			     }
				 else if(test.indexOf('isCheckbox')!=-1)
				{	
					var valueCheckbox = noVal.checked;
					if(!valueCheckbox)
					{
						errors+='- '+' Accept terms and Policy.\n';
					}

				}
	   			 else if (test!='R' || test=='Numbers') 
				 {
					 
				 result = val;
					if(result.length==0){
						
						if(errors.indexOf('Phone') == -1)
					errors += '- '+nm+' is required.\n'; 
					}
					
				    if (isNaN(val)) 
					{
					 if(errors.indexOf('Phone') == -1)
					 errors+='- '+nm+' must contain a number.\n';
					}
					else
					{
					if(test=='Numbers' && !isNaN(val))
					{
					var i1;
					var num1=0;
						for (i1 = 0; i1 < val.length; i1++)
						{   
							// Check that current character is number.
							var c = val.charAt(i1);
							if (((c < "0") || (c > "9"))) num1=1;
						}
						if(num1==1)
						{
							if(errors.indexOf('Phone') == -1)
							errors+='- '+nm+' can only contain numbers.\n';
						}
						
					}
				 }
					if (test.indexOf('inRange') != -1) 
					{ num = parseFloat(val);
						p=test.indexOf(':');
						min=test.substring(8,p); 
						max=test.substring(p+1);
						
						
						if (num<min || max<num) 
							if(min==max)
							{
							  if(min==1 && max==1 & num==0)
								{
							errors+='- '+nm+' should  be more than '+min+'.\n';
							    }
								if(min!=1 && max!=1 && min==max)
								{
							errors+='- '+nm+' should not be more than '+min+'.\n';
								}
								
							}				
							
						else
						{
						errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
						}
					} 
					if (val.indexOf('-') != -1) 
					{ 
						errors='- '+nm+' must contain a number.\n';
					} 
					if (val.indexOf('+') != -1) 
					{ 
						errors='- '+nm+' must contain a number.\n';
					}
					
				}else if (test.charAt(0)=='R')
				{
				result = val;
				if(result.length==0){
					
				errors += '- '+nm+' is required.\n'; 
				}
				} 
			}
			else if (test.charAt(0) == 'R' || test=='Numbers'){
				if(errors.indexOf('Phone') == -1 && test=='Numbers')
				{
					
				errors += '- '+nm+' is required.\n'; 
				}
				if (test.charAt(0) == 'R')
				{					
				errors += '- '+nm+' is required.\n'; 	
				}
			}
		}
			}
		if(errors !="")
		{	if(j<=0)
			{
				
				focusitem = document.forms[""+args[0]].elements[""+args[i]];
				
				j++;
			}	
			
		}
	} 
	
//return errors;

  if (errors)
  {
	var MasterString = getMasterString();

	alert(MasterString+'\n'+errors);
	
	focusitem.focus();
	return false;
   }
   else
	return true;

  document.MM_returnValue = (errors == '');
	
}

function toggleOption(spanChk)
{
	var xState=spanChk.checked;
	var theBox=spanChk;

	elm=theBox.form.elements;
	for(i=0;i<elm.length;i++)
	{
		if(elm[i].type=="checkbox" && elm[i].id!=theBox.id)
		{
			if(xState == false)
				elm[i].checked = false;
			else
				elm[i].checked = true;
		}
	}
}


function checkPhone(phone)
{
	var phoneRequired = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,3})|(\(?\d{2,3}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/
	if(!phoneRequired.test(phone))
		return false;
	return true;
}

function checkEmail(address)
{
	if ((address == "") || (address.indexOf ('@') == -1) || (address.indexOf ('.') == -1))
		return false;
	return true;
}


function getMasterString()
{
	return "Following error(s) occured. Please check all filled values.\n";
}


function checkError(error)
{
	var flag=false;
	var MasterString = getMasterString();
	
	if(error != "")
	{
		MasterString = MasterString + error;
		flag=true;
	}
	
	if(flag == true)
	{
		alert(MasterString);
		return false;
	}
	else
		return true;
}


function askConfirm(type)
{	
	var sen = "Are you sure you want to "+type+"?";
	if(confirm(sen))
		return true;
	else
		return false;
}


var btnType;
function validator(btnType,formname)
{
	
	var obj = formname;
	var error="", flagCheck=0;
	
	var len = obj.elements.length; 
	var i=0;
	for(i=0;i<len;i++) 
	{
		if(obj.elements[i].type=='checkbox')
		{
			if(obj.elements[i].checked)
			{
				//if(btnType == 'Delete')
					return askConfirm(btnType);
				//else
					//return true;
			}
			else
				flagCheck = 1;
		}
	}
	
	if(flagCheck == 1)
		error += "\nPlease select at least one record.";
			
	return checkError(error);
}
function checkImageExt(val)
{
var isOK = false;

var lent =  document.frmAddProductImage.elements.length;

with (val)
  { 
	for (var i = 0; i < lent ; i++)
    { 
	
      if ((document.frmAddProductImage.elements[i].type == "file") )
      { isOK = true;
	   	var imagePath = document.frmAddProductImage.elements[i].value;
		ext=imagePath;
		ext = ext.substring(ext.length-3,ext.length);
		ext = ext.toLowerCase();		
		//var imageExt = imagePath.split('.');	
		if(imagePath!='')
		  {
			if (ext == 'jpeg' || ext == 'gif' || ext == 'png' || ext == 'jpg' || ext == 'bmp' || ext == 'undefined')      
			{
			  isOK = true;
			 
			} 
			else
			{
				isOK = false;
			}
		
	   } }
	} 
 }
 
  if (!(isOK)) 
  { 
  	alert("Please select image!"); 
	return false; 
  }
}
function stripHTML(str){
      var re= /<\S[^><]*>(&nbsp;)*/g ;
      return str.replace(re, "") ;
}
function ltrim(str) { 
	for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
	return str.substring(k, str.length);
}
function rtrim(str) {
	for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j--) ;
	return str.substring(0,j+1);
}
function trim(str) {
	return ltrim(rtrim(str));
}
function isWhitespace(charToCheck) {
	var whitespaceChars = " \t\n\r\f";
	return (whitespaceChars.indexOf(charToCheck) != -1);
}
function validFont(formname)
{
	if(validateForm(formname,'CHAR_NAME','Charachter Name','R' , 'UNICODE_VALUE' , 'Unicode ', 'R'))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 
	
}

//Check category form
function checkCategory(formname)
{
	if(validateForm(formname,'LANGUAGE_ID','Language','R' ,'CATEGORY_NAME','Category Name','R' , 'CATEGORY_DESCRIPTION' , 'Category Description', 'R'))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 
	
}

function validateAdminForm(formname)
{
	if(validateForm(formname,'frmAdminUserName','User Name','R' ,'frmAdminPassword','Password ','R' ))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 	
}

function validRegistration(formname)
{
	if(validateForm(formname,'USER_NAME','User name','R' , 'PASSWD', 'Password','RisEqualConfirmPASSWD: Confirm password' ,'MEMORABLE_QUEST_ID','Memorable question','R' , 'MEMORABLE_WORD' ,'Memorable word' , 'R' , 'TITLE', 'Title','R' , 'FIRST_NAME' ,'First name' ,'R' ,'LAST_NAME' ,'Last name', 'R','EMAIL_ADDRESS', 'Email address', 'RisEmail', 'PREFERRED_LANGUAGE','Preferred language','R' ))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 	
}

function validLogin(formname)
{	
	if(validateForm(formname,'USER_NAME','User Name','R' , 'PASSWD' , 'Password' ,'R' ))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 		
}

function validContactFrom(formname)
{	
	if(validateForm(formname,'name','Name','R' , 'email' , 'Email' ,'RisEmail', 'phone', 'Phone', 'R', 'comments', 'Comments','R' ))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 		
}

function validEditProfile(formname)
{	
	if(validateForm(formname,'MEMORABLE_QUEST_ID','Memorable question','R' , 'MEMORABLE_WORD' ,'Memorable word' , 'R' , 'TITLE', 'Title','R' , 'FIRST_NAME' ,'First name' ,'R' ,'LAST_NAME' ,'Last name', 'R','EMAIL_ADDRESS', 'Email address', 'RisEmail', 'PREFERRED_LANGUAGE','Preferred language','R'))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 	
}

function markQuestion(questionID)
{	alert(questionID)
	doAjax('./do_ajax.php', 'qID'+questionID, 'showFlagQuestions' )
}

function showFlagQuestions(item)
{
	alert(item);	
}


function validFeedbackForm(formname)
{	
	if(validateForm(formname,'feedback','Suggesion','R'))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 	
}

function validforgotForm(formname)
{	
	if(validateForm(formname,'USER_NAME','Name','R' , 'MEMORABLE_QUEST_ID', 'Memorable Question', 'R' , 'MEMORABLE_WORD', 'Memorable Word', 'R'))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 	
}

