// validation for e-mail
function check_validchar(pattern,str)
{
  var re = new RegExp(pattern,"g");
  var arr = re.exec(str);
  return arr;
}

function isEmailAddr(email)
{
  if(email!="")
  {
	  var result = false
	  var theStr = new String(email)
	  var index = theStr.indexOf("@");
	  if (index > 0)
	  {
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index+1) && (theStr.length > pindex+1))
		result = true;
	  }
	  return result;
  }
  else
  {
	return true;	  
  }
}

// this function used to check valid chars
function check_validchar(pattern,str)
{
  var re = new RegExp(pattern,"g");
  var arr = re.test(str);
   return arr;
}  

function Trim(s) 
{
  // Remove leading spaces and carriage returns
  
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }

  // Remove trailing spaces and carriage returns

  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}


// get element value after removing leading and trailing spaces
function RemoveLTSpace(elemval)
{
	var val=elemval.replace(/\s*/,"")
	var val=val.replace(/\s*$/,"")
	return val;
}
function JSvalid_form(formnm)
{
formnm=eval(formnm);
for(var i=0;i<formnm.elements.length;i++)
	{
if(formnm.elements[i].alt){
// START CHECK FOR BLANK
var altval=formnm.elements[i].alt;
var altval1=altval.split("~DM~");
if(altval1[0]=="BC" && RemoveLTSpace(formnm.elements[i].value)=="")
		{
		formnm.elements[i].value=RemoveLTSpace(formnm.elements[i].value);
		alert("Please enter "+altval1[1]);
		formnm.elements[i].focus();
		return false;
		}
// END CHECK FOR BLANK
// VALID CHAR CHECK
if(altval1[2]!="" && formnm.elements[i].value!="")
	{
var re1 = new RegExp ('&q', 'g') ;
var pattern_val = altval1[2].replace(re1,'"') ;
var pattern="["+pattern_val+"]";
var re = new RegExp(pattern,"g");
if(re.test(formnm.elements[i].value)==true)
		{
		alert("Please avoid to enter \""+pattern_val+"\" in "+altval1[1]);
		formnm.elements[i].focus();
		formnm.elements[i].select();
		return false;
		}
	}
//START EMAIL CHECK
if(altval1[0]=="EMC")
{
 if(altval1[3]!="NBC")
 {
  if (formnm.elements[i].value == "")
  {
    alert("Please enter a valid email id for \"email\" field.");
    formnm.elements[i].focus();
    return (false);
  }
 }
 if (formnm.elements[i].value != "")
 {
  if (!isEmailAddr(formnm.elements[i].value))
  {
    alert("Please enter a complete email address in the form: yourname@yourdomain.com");
    formnm.elements[i].focus();
	formnm.elements[i].select();
    return (false);
  }
  if (formnm.elements[i].value.length < 3)
  {
    alert("Please enter at least 3 characters in the \"email\" field.");
    formnm.elements[i].focus();
	formnm.elements[i].select();
    return (false);
  }
 }
}
// END EMAIL CHECK
	}
}
return true;
}

// function for password match
function password_match(pass1,pass2)
{
//pass1=eval(pass1);
//pass2=eval(pass2);
 if(pass1!=pass2)
	{
		return false;
	}
else{
         return true;
	     }
}

// function for email match
function email_match(pass1,pass2)
{	
//pass1=eval(pass1);
//pass2=eval(pass2);
	if(pass1!=pass2)
	{ 
		return false;
	}
	else{
         return true;
	     }
}

// function used pop up a window

function window_popup(filename,attr1,winname)
{
	if(winname=="")
	winname="openwin";
	var popupwin=window.open(filename,winname,attr1);
}

// compare date
function date_compare(start_date,end_date)
		{
	var stdate=start_date.split("-");
	var enddate=end_date.split("-");
	if(parseInt(stdate[0],10)>parseInt(enddate[0],10)) return false;
	if(parseInt(stdate[0],10)==parseInt(enddate[0],10) && parseInt(stdate[1],10)>parseInt(enddate[1],10)) return false;
	if(parseInt(stdate[0],10)==parseInt(enddate[0],10) && parseInt(stdate[1],10)==parseInt(enddate[1],10) && parseInt(stdate[2],10)>parseInt(enddate[2],10)) return false;

	return true;
		}
function changeBg(name){
	document.getElementById(name).style.background = '#A5A7FC';
}

function NormalBg(name){
	document.getElementById(name).style.background = '#ffffff';
}
function overEffect(obj){
	obj.bgcolor = '#ffffff';
}
function validFloatDigit(key, fieldValue){
	if(key<48 || key>57){
		if(key==46)
			return fieldValue.indexOf('.')== -1 ? key : 0 ;
		else
			return 0;
	}
	else
		return key;
}

function validIntDigit(key, fieldValue){
	return  key<48 || key>57 ? 0 : key;
}

function valid_date(dd,mm,yyyy)
{
	
        if(mm==1 || mm==3 || mm==5 || mm==7 ||  mm==8 || mm==10 || mm==12)
        {
                return true;
        }
        else if((mm==4 || mm==6 || mm==9 || mm==11) && dd>30)
        {
                return false
        }
        else if(mm==2)
        {
        if(yyyy%4==0 && dd>29){return false}
        else if(yyyy%4 !=0 && dd>28){return false}
        }
        return true
}
		//function to check valid date
function check_date(from,to)
{
	var err1;
	var err2;

frmarry =	from.split('-');
toarry =	to.split('-');


HoldDate=new Date();
currdate =  (HoldDate.getMonth()+1)+ "-" + HoldDate.getDate() + "-" + HoldDate.getYear();

if (Date.parse(from) > Date.parse(currdate)) {
alert("From date must be current date or previous date !");
return false;
}

if (Date.parse(to) > Date.parse(currdate)) {
alert("To date must be current date or previous date !");
return false;
}


if(frmarry[0] == "" || frmarry[1] == "" || frmarry[2] == "")
{
	if(frmarry[0] == "") err1 = 1;
	if(frmarry[1] == "") err1 = 1;
	if(frmarry[2] == "") err1 = 1;
	if(frmarry[0] == "" && frmarry[1] == "" && frmarry[2] == "") err1 = 2;
}
else
err1 =0;

if(toarry[0] == "" || toarry[1] == "" || toarry[2] == "")
{
	if(toarry[0] == "") err2 = 3;
	if(toarry[1] == "") err2 = 3;
	if(toarry[2] == "") err2 = 3;
	if(toarry[0] == "" && toarry[1] == "" && toarry[2] == "") err2 = 4;
}
else
err2 =0;

if((err1 == 1 && err2 == 4) || (err1 == 2 && err2 == 3)||(err1 == 0 && err2 == 4) ||(err1 == 1 && err2 == 0))
{
	alert("Both dates must be entered.")
	return false;
}
else if(err1 == 1 || err2 == 3)
{
	alert ("Please select date properly");
	return false;
}

	if( err1 == '2') 
	{
		alert("Please Select From Date");
		return false;
	}

var monthval1 = month_validate(frmarry[0],frmarry[1],frmarry[2]);
if(monthval1 == '0')
return false;

var monthval2 = month_validate(toarry[0],toarry[1],toarry[2]);
if(monthval2 == '0')
return false;

if (Date.parse(from) > Date.parse(to))
{
	alert("To date must occur after the from date.");
	return false;
}
else
{
	return true;
}
}
//please do not write code in this block
// Javascript Validation function ver 1.0 
	
function validateForm(formnm){	
	formnm=eval(formnm);
	for(var i=0;i<formnm.elements.length;i++){
		if(formnm.elements[i].alt){
			// START CHECK FOR BLANK
			var altval=formnm.elements[i].alt;
			var altArray=altval.split("~DM~");
			for(j=0;j<altArray.length;j++){
				altInnerArray=altArray[j].split("~");
				switch(altInnerArray[0]){
					case "NOJUNK" : 				// REQUEST TO CHECK JUNK CHARACTER
							if(junkValue(formnm.elements[i].value)){
								alert("Please avoid to enter \\\"<>~`!#%^*/][{}() in " + altInnerArray[1] + " field");
								formnm.elements[i].focus();
								formnm.elements[i].select();
								return false;
							}
							break;
					case "NOJUNKDESC" : 				// REQUEST TO CHECK JUNK CHARACTER
							if(junkValueForDesc(formnm.elements[i].value)){
								alert("Please avoid to enter \\~`$^']<>[{} in " + altInnerArray[1] + " field");
								formnm.elements[i].focus();
								formnm.elements[i].select();
								return false;
							}
							break;
					case "NOJUNKURL" : 				// REQUEST TO CHECK JUNK CHARACTER
							if(junkValueForURL(formnm.elements[i].value)){
								alert("Please avoid to enter ~`^][{}<> in " + altInnerArray[1] + " field");
								formnm.elements[i].focus();
								formnm.elements[i].select();
								return false;
							}
							break;		
					case "VALIDFILE" : 				// REQUEST TO CHECK VALID FLLE NAME
							if(fileJunkValue(formnm.elements[i].value)){
								alert("File name cannot contain any of these \\\"<>'~`!@#$%^&*/ characters in" + altInnerArray[1] + " field");
								formnm.elements[i].focus();
								formnm.elements[i].select();
								return false;
							}
							break;
					case "NOBLANK" :
						if(RemoveLTSpace(formnm.elements[i].value)=="")	{
							//formnm.elements[i].value=RemoveLTSpace(formnm.elements[i].value);
							alert("Please enter " + altInnerArray[1]);
							formnm.elements[i].focus();
							return false;
						}
						break;
					case "EMAIL" :
						if(!isEmailAddr(formnm.elements[i].value))	{
							alert("Please enter valid email in " + altInnerArray[1] + " field");
							formnm.elements[i].focus();
							return false;
						}
						break;
					case "MAXLENGTH" :
						var len;
						if(altInnerArray[2]){
							len=parseInt(altInnerArray[2]);
							if(formnm.elements[i].value.length > len && len > 0)	{
								alert(altInnerArray[1] + " field exceeded max limit of " + len + " letters.");
								formnm.elements[i].focus();
								return false;
							}
						}
						break;
					case "FMAXLENGTH" :		//check file name does not exceeded max limit 
						if(fileNameLength(formnm.elements[i].value) > parseInt(altInnerArray[2]))	{
							alert("File name is too big to be uploaded in " + altInnerArray[1] + " field");
							formnm.elements[i].focus();
							return false;
						}
						break;
						
					case "ONLYALPHA" :
						if(!alphaNumeric(formnm.elements[i].value)){
							alert("Please enter only  A - Z, a - z , 0 - 9, _ value in " + altInnerArray[1] + " field");
							formnm.elements[i].focus();
							formnm.elements[i].select();
							return false;
						}
						break;
						
					case "LOGINID" :
						if(!loginid(formnm.elements[i].value)){
							alert("Please enter only  A - Z, a - z , 0 - 9, _ without space in " + altInnerArray[1] + " field");
							formnm.elements[i].focus();
							formnm.elements[i].select();
							return false;
						}
						break;	
						
					case "FORMAT":
						if(!format(formnm.elements[i].value)){
						   alert("Please enter "+ altInnerArray[1] +" with the format (xxx) xxx-xxxx.");
							   formnm.elements[i].focus();
							   formnm.elements[i].select();
							   return false;
						}
						break;	
						
					case "OTHERFORMAT" :
						if(!format1(formnm.elements[i].value)){
						   alert("Please enter "+ altInnerArray[1] +" with the format (xxx) xxx-xxxx.");
							   formnm.elements[i].focus();
							   formnm.elements[i].select();
							   return false;
						}
						break;	
						
					case "LENGTH1" :
						if(!length1(formnm.elements[i].value)){
						   alert("Please enter 3 characters in "+ altInnerArray[1] +".");
							   formnm.elements[i].focus();
							   formnm.elements[i].select();
							   return false;
						}
						break;	
						
					case "LENGTH2" :
						if(!length2(formnm.elements[i].value)){
						   alert("Please enter 4 characters in "+ altInnerArray[1] +".");
							   formnm.elements[i].focus();
							   formnm.elements[i].select();
							   return false;
						}
						break;	
						
					case "EMAILMATCH" :
						if(email_match(formnm.elements[i-1].value,formnm.elements[i].value)==false){
						   alert("Please enter same email in "+ altInnerArray[1] +".");
							   formnm.elements[i].focus();
							   formnm.elements[i].select();
							   return false;
						}
						break;	
						
					case "PASSWORDMATCH" :
						if(password_match(formnm.elements[i-1].value,formnm.elements[i].value)==false){
						   alert("Please enter same password in "+ altInnerArray[1] +".");
							   formnm.elements[i].focus();
							   formnm.elements[i].select();
							   return false;
						}
						break;	
					
					
				}
			}
		}
	}
	return true;
}



function junkValue(fieldValue){
	//return true if any junk character found in given value otherwise false
	if(fieldValue!=""){
	junkChar="\\\"<>~`!#%^*/][{}()";
	for(i=0;i<junkChar.length;i++)
		if(fieldValue.indexOf(junkChar.charAt(i))!=-1)
			return true;
	}
	return false;
}
function junkValueForDesc(fieldValue){
	//return true if any junk character found in given value otherwise false
	if(fieldValue!=""){
	junkChar="\\~`^][{}<>";
	for(i=0;i<junkChar.length;i++)
		if(fieldValue.indexOf(junkChar.charAt(i))!=-1)
			return true;
	}
	return false;
}
function junkValueForURL(fieldValue){
	//return true if any junk character found in given value otherwise false
	if(fieldValue!=""){
	junkChar="~`^][{}<>";
	for(i=0;i<junkChar.length;i++)
		if(fieldValue.indexOf(junkChar.charAt(i))!=-1)
			return true;
	}
	return false;
}

function alphaNumeric(str){
	// return false if given string does not follow variable naming scheme
	for (i=0;i<str.length;i++){
		ascCode=str.charCodeAt(i);
	    if(	(ascCode>=65 && ascCode<=90) || 
			(ascCode>=97 && ascCode<=122) || 
			(ascCode>=48 && ascCode<=57) || 
			(ascCode==95) || (ascCode==32)
		  );
		else{
			//alert(ascCode);
			//alert("alphe numeric returning false");
			return false;
		}
	}
	//alert("alphe numeric returning true");
	return true;
}
function loginid(str){
	// return false if given string does not follow variable naming scheme
	for (i=0;i<str.length;i++){
		ascCode=str.charCodeAt(i);
	    if(	(ascCode>=65 && ascCode<=90) || 
			(ascCode>=97 && ascCode<=122) || 
			(ascCode>=48 && ascCode<=57) || 
			(ascCode==95) 
		  );
		else{
			//alert("alphe numeric returning false");
			return false;
		}
	}
	//alert("alphe numeric returning true");
	return true;
}
			

function digit(fieldValue){
	//return true if any digit found in given value otherwise false
	if(fieldValue!=""){
	junkChar="1234567890";
	for(i=0;i<junkChar.length;i++)
		if(fieldValue.indexOf(junkChar.charAt(i))!=-1)
			return true;
	}
	return false;
}

function fileNameLength(filePath){
	//return the length of file name from given path
	fPath= new String(filePath);
	fileName= fPath.substring(fPath.lastIndexOf('\\')+1);
	fileName=new String(fileName);
	return fileName.length;
}

function getFileName(filePath){
	//return the length of file name from given path
	fPath= new String(filePath);
	fileName= fPath.substring(fPath.lastIndexOf('\\')+1);
	return fileName;
}
function fileJunkValue(fieldValue){
	//return true if any junk character found in given file
	//get file name from path
	fileName=getFileName(fieldValue);
	if(fileName!=""){
	junkChar="\\\"<>'~`!@#$%^&*/";
	for(i=0;i<junkChar.length;i++)
		if(fileName.indexOf(junkChar.charAt(i))!=-1)
			return true;
	}
	return false;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function multisub()
{
	if(document.frmCat.chkconfrm.value=="")
	{
		if(validateForm(frmCat))
			return true;
		else
			return false;	
	}
	else
	{
		if(confirm("Are you sure to delete this category"))
			return true;
		else
			return false;	
	}
}
function chkdel()
{
	document.frmCat.chkconfrm.value="xyz";
}
function chkmod()
{
	document.frmCat.chkconfrm.value="";
}

function ResetForm(objForm)
{
	for(var intCounter=0;intCounter<objForm.elements.length;intCounter++)
	{
		if(objForm.elements[intCounter].type!=null)
		{
			if(objForm.elements[intCounter].type=="text")
			{
				objForm.elements[intCounter].value="";
			}
			else if(objForm.elements[intCounter].type=="select-one")
			{
				objForm.elements[intCounter].selectedIndex=0;	
			}
			else if(objForm.elements[intCounter].type=="file")
			{
				var oObject=objForm.elements[intCounter];
				var strValue=oObject.outerHTML;	
				var strFieldValue=oObject.value;
				strValue=strValue.replace(strFieldValue,"");
				oObject.outerHTML=strValue;
			}
			else if(objForm.elements[intCounter].type=="textarea")
			{
				objForm.elements[intCounter].value="";
			}
			else if(objForm.elements[intCounter].type=="password")
			{
				objForm.elements[intCounter].value="";
			}
		}
	}
}
function format(phone)
{
	if(phone.search(/\(\d{3}\)\s\d{3}\-\d{4}/)==-1)
 		                    {
    		                   return false;
 		                    }
							else{
							return true;
							}
}
function format1(phone1)
{
	  if(phone1=="")
	   {
		   return true;
         	
	   }
	   else
	   {
		    if(phone1.search(/\(\d{3}\)\s\d{3}\-\d{4}/)==-1)
 		                    {
    		                   return false;
 		                    }
							else
							{
							return true;
							}
	   }
}

function length1(phone)
{
	if(phone.search(/\d{3}/)==-1)
 		                    {
    		                   return false;
 		                    }
							else{
							return true;
							}
}
function length2(phone)
{
	if(phone.search(/\d{4}/)==-1)
 		                    {
    		                   return false;
 		                    }
							else{
							return true;
							}
}