
//***************function for email-id validation*********************
/*
function valid_email(eml)
{
	var invalidchar;
	var mint_index;
	var counter=0;
	var badchar;
	var atpos;
	var periodpos;
	invalidchar="~`!#$%^&*()+=|\{}[]:;',?/";
	for(mint_index=0;mint_index<mstr_email.length;mint_index++)
	{
		if(mstr_email.charAt(mint_index)==" ")
		{
			return false;
		}
	}
	
	for(mint_index=0;mint_index<invalidchar.length;mint_index++)
	{
		badchar=invalidchar.charAt(mint_index);
		if(mstr_email.indexOf(badchar,0)!=-1)
		{
			return false;
		}
	}
	atpos=mstr_email.indexOf("@",1);
	if(atpos==-1)
	{
		return false;
	}
	if(mstr_email.indexOf("@",atpos+1)!=-1)
	{
		return false;
	}
	if(mstr_email.charAt(atpos+1)==".")
	{
		return false;
	}
	periodpos = mstr_email.indexOf(".",atpos);
	if(periodpos==-1)
	{
		return false;
	}
	if(mstr_email.charAt(periodpos+1)!="")
	{
		for(mint_index=periodpos+1;mint_index<mstr_email.length;mint_index++)
		{
			counter++;
		}
		if(counter>3)
		{
			return false;
		}
	}
	else
	{
		return false;
	}
	return true;
}
*/

function valid_email(eml)
{
	//declare the required variables
	var mint_len;
	var mstr_eml = eml;
	var mint_at = 0;
	var mint_atnum = 0;
	var mint_dot = 0;
	var mint_firstdot = 0;
	var mint_dotnum = 0;
	
	mint_len=eml.length; //takes the length of the email address entered
	
	//checking for the symbol single quote. If found replace it with its html code
	if (mstr_eml.indexOf("'")!=-1)
	{
		mstr_eml=mstr_eml.replace("'","&#39;");
	}
	
	//checking for the (@) & (.) symbol
	for(var iloop=0;iloop<mint_len;iloop++)
	{
		if(mstr_eml.charAt(iloop)=="@")
		{
			mint_at=iloop+1;
			mint_atnum=mint_atnum+1;
		}
		if(mstr_eml.charAt(iloop)==".")
		{
			if (mint_dot-(iloop+1))
			{
				if((iloop+1-mint_dot)==1)
				{
					return false;
				}
			}
			mint_dot=iloop+1;
			if ((mint_at!=0)&&(mint_firstdot==0))
			{
				mint_firstdot = iloop + 1;
			}
			mint_dotnum=mint_dotnum+1;
		}
	}
	//if nothing entered in the field
	if (mstr_eml=="")
	{
		return false;
	}
	
	//if @ entered more than once & dot (.) entered more than 4 times
	else if((mint_atnum!=1)||(mint_dotnum>4)||(Math.abs(mint_firstdot-mint_at)<2)||((mint_len-mint_dot)<2)||(mint_at<3))
	{
		return false;
	}
	
	//if any blank space is entered in the email address
	else if (mstr_eml.indexOf(" ")!=-1)
	{
		return false;
	}
}

//////////////////////////////////////////////////////////////////////////

//***********fuction for date validation******************

function valid_date(datevalue)
{
	var input_date=new String(datevalue);
	var dat;
	var count=0;
	
	for (var m=0;m<input_date.length;m++)
	{
		if ((input_date.charAt(m)=="/"))
		{
			count=count+1;
		}
	}
	if ((input_date.indexOf(" ")!=-1)||(count!=2))
	{
		return false;
	}
	if (input_date.indexOf("/")!=-1)
	{
		dat=input_date.split("/");
	}
			
	/////validations for month
	
	if (isNaN(dat[0]))
	{
		return false;
	}
	else if ((dat[0]<1)||(dat[0])>12)
	{
		return false;
	}
		
	//validations for days
	
	if (isNaN(dat[1]))
	{
		return false;
	}
	else if (dat[1]<1)
	{
		return false;
	}	
	else if ((Math.abs(dat[0])=="1")||(Math.abs(dat[0])=="3")||(Math.abs(dat[0])=="5")||(Math.abs(dat[0])=="7")||(Math.abs(dat[0])=="8")||(Math.abs(dat[0])=="10")||(Math.abs(dat[0])=="12"))
	{
		if ((Math.abs(dat[1])<1)||(Math.abs(dat[1])>31))
		{
		return false;
		}
	}	
	else if ((Math.abs(dat[0])=="4")||(Math.abs(dat[0])=="6")||(Math.abs(dat[0])=="9")||(Math.abs(dat[0])=="11"))
	{
		if ((Math.abs(dat[1])<1)||(Math.abs(dat[1])>30))
		{
			return false;
		}
	}
	else if (Math.abs(dat[0])==2)
	{
			
		if ((Math.abs(dat[2]) % 4)==0)
		{
			if ((Math.abs(dat[1])<1)||(Math.abs(dat[1])>29))
			{
			return false;
			}
		}
		else
		{
			if((Math.abs(dat[1])<1)||(Math.abs(dat[1])>28))
			{
				return false;
			}
		}	
	}
		
	//validation for year
	
	if (isNaN(dat[2]))
	{
		return false;
	}
	else if ((dat[2].length!=2)&&(dat[2].length!=4))
	{
		return false;
	}
}

//*****************function for checking blank field*******************
function checkBlankField(txt)
{
	var mint_txt=txt.length; //Takes the total length of the value entered
	var mstr_txt=txt;
	var mint_count=0;
	
	//checking with each character for space
	for(var iloop=0;iloop<mint_txt;iloop++)
	{
		if(mstr_txt.charAt(iloop)==" ")
		{
			mint_count=mint_count+1;
		}
	}
	
	//if nothing entered in the field
	if (txt=="")
	{
		return false;
	}
	
	//if only spaces are entered
	else if (mint_count==mint_txt)
	{
		return false;
	}
}

//************/////////Compare two dates(2nd Date not more than 1st Date)/////////********************************

function compareDates(date1,date2)
{
	//date1 < date2
	// Ex. 12/1/2001 - 1/1/2001
	var input_date1=new String(date1);
	var input_date2=new String(date2);
	var dat1;
	var dat2;
	var count1=0;
	var count2=0;
	var dates1=new Date(date1);
	var dates2=new Date(date2);
	var year1=dates1.getFullYear();
	var year2=dates2.getFullYear();
	
	
	//split date1
	for (var m=0;m<input_date1.length;m++)
	{
		if ((input_date1.charAt(m)=="/")||(input_date1.charAt(m)=="."))
		{
			count1=count1+1;
		}
	}
	if ((input_date1.indexOf(" ")!=-1)||(count1!=2))
	{
		return false;
	}
	if (input_date1.indexOf("/")!=-1)
	{
		dat1=input_date1.split("/");
	}
	else if (input_date1.indexOf(".")!=-1)
	{
		dat1=input_date1.split(".");
	}
	
	//split date2
	for (var m=0;m<input_date2.length;m++)
	{
		if ((input_date2.charAt(m)=="/")||(input_date2.charAt(m)=="."))
		{
			count2=count2+1;
		}
	}
	if ((input_date2.indexOf(" ")!=-1)||(count2!=2))
	{
		return false;
	}
	if (input_date2.indexOf("/")!=-1)
	{
		dat2=input_date2.split("/");
	}
	else if (input_date2.indexOf(".")!=-1)
	{
		dat2=input_date2.split(".");
	}
	
	
	////compare years
	
	//if (parseInt(dat2[2])>parseInt(dat1[2]))
	if (parseInt(Math.abs(year2))>parseInt(Math.abs(year1)))
	{		
		return false;
	}
	if 	(parseInt(dat2[2])==parseInt(dat1[2]))
	{
		if (parseInt(Math.abs(dat2[0]))>parseInt(Math.abs(dat1[0])))
		{
			return false;
		}
	}
	if 	((parseInt(Math.abs(dat2[2]))==parseInt(Math.abs(dat1[2])))&& (parseInt(Math.abs(dat2[0]))==parseInt(Math.abs(dat1[0]))))
	{
	 	if (parseInt(Math.abs(dat2[1]))>parseInt(Math.abs(dat1[1])))
		{
			return false;
		}
	}			
}		

//***********///////////validations for Date not more than current date/////////*******************
// this takes system date as current date	
function checkCurrentDate(datevalue)
{
	var input_date=new String(datevalue);
	var dat;
	var count=0;
	
	for (var m=0;m<input_date.length;m++)
		{
		if ((input_date.charAt(m)=="/")||(input_date.charAt(m)=="."))
			{
			count=count+1;
			}
		}
	if ((input_date.indexOf(" ")!=-1)||(count!=2))
		{
		return false;
		}
	if (input_date.indexOf("/")!=-1)
		{
		dat=input_date.split("/");
		}
	else if (input_date.indexOf(".")!=-1)
		{
		dat=input_date.split(".");
		}
	
		
	/////validations for month
	
	if (isNaN(dat[0]))
		{
		return false;
		}
	else if ((dat[0]<1)||(dat[0])>12)
		{
		return false;
		}
		
	//validations for days
	
	if (isNaN(dat[1]))
		{
		return false;
		}
	else if ((dat[0]=="1")||(dat[0]=="3")||(dat[0]=="5")||(dat[0]=="7")||(dat[0]=="8")||(dat[0]=="10")||(dat[0]=="12"))
		{
		
			if ((parseInt(Math.abs(dat[1]))<1)||(parseInt(Math.abs(dat[1]))>31))
				{
				return false;
				}
		}	
	else if ((dat[0]=="4")||(dat[0]=="6")||(dat[0]=="9")||(dat[0]=="11"))
		{
			if ((parseInt(Math.abs(dat[1]))<1)||(parseInt(Math.abs(dat[1]))>30))
				{
				return false;
				}
		}
	else if (dat[0]==2)
		{
			
			if ((dat[2] % 4)==0)
				{
				if ((parseInt(Math.abs(dat[1]))<1)||(parseInt(Math.abs(dat[1]))>29))
					{
					return false;
					}
				}
			else
				if((parseInt(Math.abs(dat[1]))<1)||(parseInt(Math.abs(dat[1]))>28))
					{
					return false;
					}
		}
		
	//validation for year
	
	var cur_date=new Date();
	
	if (isNaN(dat[2]))
		{
			return false;
		}
	else if ((dat[2].length!=2)&&(dat[2].length!=4))
		{
			return false;
		}
	else if (parseInt(Math.abs(dat[2]))>parseInt(Math.abs(cur_date.getFullYear())))
		{
			return false;
		}
	else if ((parseInt(Math.abs(dat[2]))==parseInt(Math.abs(cur_date.getFullYear()))) || (parseInt(Math.abs(dat[2]))==parseInt(Math.abs(cur_date.getYear()))))
		{
			if (parseInt(Math.abs(dat[0]))==(parseInt(Math.abs(cur_date.getMonth()))+1))
				{
					if(parseInt(Math.abs(dat[1]))>parseInt(Math.abs(cur_date.getDate())))
						{
							return false;
						}
				}
			else if (parseInt(Math.abs(dat[0]))>parseInt(Math.abs(cur_date.getMonth())))
				{
					return false;
				}	
		}
	
}
	
//******************////////////////validations for PhoneNumber fields //////////******************
	
function checkPhoneNumber(num)
{
	var mint_num=num;
	var mint_len=num.length;
	var mstr_ph;
	var mint_nm=0;
	
	for (var m=0;m<mint_len;m++)
	{
		mstr_ph=mint_num.charAt(m)
		if(mstr_ph==" ")
			{
			mint_nm=mint_nm+1;
			}
		if (isNaN(mstr_ph))
			{
			if ((mstr_ph!="-")&&(mstr_ph!=",")&&(mstr_ph!="(")&&(mstr_ph!=")"))
				{			
				mint_nm=mint_nm+1;
				}
					
			}
	}
	if((mint_num=="")||(mint_nm!=0)||(mint_len<=5))
	{
		return false;
	}
}
//******************////////////////validations for MobileNumber fields //////////******************
	
function checkMobileNumber(num)
{
	var mint_num=num;
	var mint_len=num.length;
	var mstr_ph;
	var mint_nm=0;
	for (var m=0;m<mint_len;m++)
	{
		mstr_ph=mint_num.charAt(m)
		if(mstr_ph==" ")
			{
			mint_nm=mint_nm+1;
			}
		if (isNaN(mstr_ph))
			{
			if ((mstr_ph!="-")&&(mstr_ph!=",")&&(mstr_ph!="(")&&(mstr_ph!=")"))
				{			
				mint_nm=mint_nm+1;
				}
					
			}
	}
	if((mint_num=="")||(mint_nm!=0)||(mint_len<10))
	{
		return false;
	}
}
	

//***************////////////validations for ZipCode fields ////////////**************************
	
function checkZip(num)
{
	var mint_zip=num;
	var mint_len=num.length;
	var mstr_zip;
	var mstr_zipcode
	
	for (var m=0;m<mint_len;m++)
	{
		mstr_zip=mint_zip.charAt(m)
		if ((isNaN(mstr_zip))||(mstr_zip==" "))
		{
			mstr_zipcode="invalid" 					
		}
	}
	if ((mstr_zipcode=="invalid")||(mint_zip=="")||(mint_len!=6))
	{
		return false;
	}
}

//***************************************Validations for Check Box**************************

function checkCheckbox(chbx)
{
	var mint_len= chbx.length;
	var mstr_txt=0;
	
	if((chbx.checked)==true)
	{
		return true;
	}
	for(var iloop=0;iloop<mint_len;iloop++)
	{
		if (chbx[iloop].checked)
		{
			mstr_txt=mstr_txt+1 ;
		}
	}
	if (mstr_txt==0)
	{
		return false;
	}	
}

//**************************Function to check Positive Integer****************************
function checkPositiveInteger(val)
{
	if (isNaN(val)==true)
    {
		return false;
    }
    var mystring=new String(val)
	//var x=mystring.indexOf(".")
    if (mystring.indexOf(".")!="-1" || mystring.indexOf("e")!="-1")
    {
		return false;
    }
    if (val<0)
    {
		return false;
    }    
}
//********************** Function to Check Difference between Two Dates in no. of. DAYS*********
// will return date1-date2

function dateDifference(date1,date2)
{
	var dates1=new Date(date1);
	var dates2=new Date(date2);
	
	if (((dates1-dates2)/86400000)<31)
	{
		return false;
	}
		
}

function dateDiff(date1,date2)
{
	var dates1=new Date(date1);
	var dates2=new Date(date2);
	return (((dates1-dates2)/86400000));
}


//********************** Function to Check Price*********
function checkPrice(num)
{
	var mint_dot = 0;
	var mstr_char = new String(num);
	mint_position = 0;	
	for(var mint_char=0;mint_char<mstr_char.length;mint_char++)
	{
		//if no digits
		if(mstr_char.charAt(mint_char)!="0" && mstr_char.charAt(mint_char)!="1" && mstr_char.charAt(mint_char)!="2" && mstr_char.charAt(mint_char)!="3" && mstr_char.charAt(mint_char)!="4" && mstr_char.charAt(mint_char)!="5" && mstr_char.charAt(mint_char)!="6" && mstr_char.charAt(mint_char)!="7" && mstr_char.charAt(mint_char)!="8" && mstr_char.charAt(mint_char)!="9" && mstr_char.charAt(mint_char)!="." && mstr_char.charAt(mint_char)!=",")
		{
			return false;
		}
		if(mstr_char.charAt(mint_char)==".")
		{
			mint_dot = mint_dot + 1
			mint_position = mstr_char.indexOf(".");
		}
	}
	
	//if number of dots is more than one
	if(mint_dot>1)
	{
		return false;
	}
	//check no. of characters after dot mark
	if(mint_dot != 0)
	{
//		alert(parseInt(mstr_char.length)-1)
		if((parseInt(mstr_char.length)-1)-parseInt(mint_position)>2)
		{
			return false;
		}
	}
}
//********************** Function to Check Trim Size*********
function checkTrimSize(num)
{
	var mint_dot = 0;
	var mstr_char = new String(num);
	mint_position = 0;	
/*	for(var mint_char=0;mint_char<mstr_char.length;mint_char++)
	{
		//if no digits
		if(mstr_char.charAt(mint_char)!="0" && mstr_char.charAt(mint_char)!="1" && mstr_char.charAt(mint_char)!="2" && mstr_char.charAt(mint_char)!="3" && mstr_char.charAt(mint_char)!="4" && mstr_char.charAt(mint_char)!="5" && mstr_char.charAt(mint_char)!="6" && mstr_char.charAt(mint_char)!="7" && mstr_char.charAt(mint_char)!="8" && mstr_char.charAt(mint_char)!="9" && mstr_char.charAt(mint_char)!="X" && mstr_char.charAt(mint_char)!="x")
		{
			return false;
		}		
	}
*/
}
//********************** Function to Check VALID URL *********

function validURL(url)
{
	var len, mint_dot
	mint_dot=0;
	//url=document.frm_insert.txt_url.value;
	len=url.length;
	if (url!='')
	{
		if(len<=10)
		{
			//alert("URL cannot be less than 10 characters");
			return false;
		}
			
		if ((url.charAt(0)!='h' || url.charAt(1)!='t' || url.charAt(2)!='t' || url.charAt(3)!='p' || url.charAt(4)!=':' || url.charAt(5)!='/' || url.charAt(6)!='/'))
		{
			//alert('URL should start with http://');
			//document.frm_insert.txt_url.focus();
			//document.frm_insert.txt_url.select();
			return false;
		}
			
		if(url.charAt(len-1)=='.')
		{
			//alert("Dot cannot be a last character");
			//document.frm_insert.txt_url.focus();
			//document.frm_insert.txt_url.select();
			return false;
		}
			
		for(var mint_i=0;mint_i<=len;mint_i++)		
		{
			if (url.charAt(mint_i)=='.')
			{
				mint_dot=mint_dot+1;
				mint_n=mint_i+1
			}
		}
			
		if (url.indexOf("..")!=-1)
		{
			//alert("You cannot enter dots like this (..)");
			//document.frm_insert.txt_url.focus();
			//document.frm_insert.txt_url.select();
			return false;
		}
					
		if (mint_dot<1)
		{
			//alert("URL should include atleast one dot");
			//document.frm_insert.txt_url.focus();
			//document.frm_insert.txt_url.select();
			return false;
		}
			
		var mint_no=len-mint_n
		if (mint_no<2)
		{
			//alert("There should be atleast 2 characters after the dot");
			//document.frm_insert.txt_url.focus();
			//document.frm_insert.txt_url.select();
			return false;
		}
	}
}
//********************** Function to check Valid ISBN *********
// Type Denotes ISBN Type ie 10 Digits/ 13 Digits
function checkISBN(isbn,type)
{	
	if ((isbn.length < type))
	{
		return false;
	}	
	else
	{
		if (isbn.length == 10)
		{
			for(var iloop=0;iloop<=8;iloop++)
			{
				if (isNaN(isbn.charAt(iloop)))
				{
					return false;
				}
			}
			if (isNaN(isbn.charAt(9)))
			{
				if ((isbn.charAt(9)).toUpperCase() != "X")
				{	
					return false;
				}		
			}
		}
		if (isbn.length == 13)
		{
			for(var iloop=0;iloop<=12;iloop++)
			{
				if (isNaN(isbn.charAt(iloop)))
				{
					return false;
				}
			}
		}
	}
}	
/*
function checkISBN(isbn,type)
{
	if(type == 10)
	{
		if ((isbn.length<10) || (isbn.length>10 && isbn.length<13))
		{
			return false;
		}
		else
		{
			if (isbn.length== 10)
			{
				for(var iloop=0;iloop<=8;iloop++)
				{
					if (isNaN(isbn.charAt(iloop)))
					{
						return false;
					}
				}
				if (isNaN(isbn.charAt(9)))
				{
					if ((isbn.charAt(9)).toUpperCase() != "X")
					{	
						return false;
					}		
				}
			}
			else
			{
				for(var iloop=0;iloop<=11;iloop++)
				{
					if (isNaN(isbn.charAt(iloop)))
					{
						return false;
					}
				}
				if (isNaN(isbn.charAt(13)))
				{
					if ((isbn.charAt(13)).toUpperCase() != "X")
					{	
						return false;
					}		
				}		
			}
		}
	}
}	
*/
///Function to trap tab key
function fn_Tab()
{
	var a=window.event.keyCode

	if (a!="9")
	{
		return false;
	}
	
}

function rightclick()
{
	if(event.button==2)
	{
		alert("Right Click not allowed");
		return false;
	}
}
// trim function
function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}

//***********fuction for add month******************
function month_add(date_name,number)
{
	
	var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var d;
	var date_str = new String();
	var date_s, date_in_month;
	var datearr =  date_name.split("/");
	
	date_str = datearr[0];
	date_s = date_str.substring(0,1);   
	
	if(date_s.toString()=="0")
	date_in_month = date_str.substring(1,2); 
	else
	date_in_month = date_str;
	
	date_in_month = parseInt(date_in_month)+ parseInt(number);
		
	while(parseInt(date_in_month)>12)
	{
		date_in_month = parseInt(date_in_month)  - 12;
		datearr[2] = parseInt(datearr[2]) +1;
	
	}
	
	
	if(parseInt(datearr[2]) % 4 == 0)
		day[1]=29;
	
	if(parseInt(datearr[1])> parseInt(day[parseInt(date_in_month)-1]))	
		datearr[1]= parseInt(day[parseInt(date_in_month)-1]);
	
	if(date_in_month<=9)
		date_in_month = "0"+date_in_month;
	
	d = date_in_month+"/"+ datearr[1]+"/"+datearr[2];
	return d;
	
}

//****************** Function for add the slash(/) in date field automatically (By Md. Sadique)
function fn_slash(obj)
{
	//alert(document.getElementById(obj.name).value.length);
	//alert(document.frm.obj.value);
	if (event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 191) return;
	if(document.getElementById(obj.name).value.length==2)
	{
		if(document.getElementById(obj.name).value.indexOf("/")==-1)
		{
			document.getElementById(obj.name).value = document.getElementById(obj.name).value + "/"
		}
	}
	if(document.getElementById(obj.name).value.length==5)
	{
		if(document.getElementById(obj.name).value.charAt(4)!="/")
		document.getElementById(obj.name).value = document.getElementById(obj.name).value + "/"
	}
}
//////////////////////////////////////////////////////////////////////////////
function checkTextareaLength(obj, length)
{
	var mintLength = 0;
	mintLength = obj ;
	//alert(mintLength);
	if ((parseInt(mintLength)) >= (parseInt(length)))
		return false;
}
function checkvalidbudgetperiod(obj)
{	
	var budget=obj;
	
	var years;
	for(var iloop=0;iloop<=8;iloop++)
	{	
		//alert(iloop);
		//alert(budget.charAt(iloop));
		if(isNaN(budget.charAt(iloop)))
		{			
			if(iloop==4)
			{
				if(budget.charAt(iloop)=="-")
				{
					//iloop = iloop +1;			
				}
			}
			else
			{
				return false
			}		
		}
	}
	
	years=budget.split("-");
	if(isNaN(years[0]))
	{
		return false;
	}
	if(isNaN(years[1]))
	{
		return false;
	}
	if(years[0]>=years[1])
	{
		return false;
	}
	
}
function checkvalidyear(obj)
{
	if(obj.length!=4)
	{
		return false;
	}
	if(isNaN(obj))
	{
		return false;	
	}
}
function comparevalidbudgetyear(obj,currentyear,mode)
{	
	if(mode=="update")
	{
		if(obj<currentyear)
		{		
			return false;
		}
	}
	else if(mode=="new")
	{
		if(obj<=currentyear)
		{		
			return false;
		}
	}
}
function comparebudgetperiod(obj,currentyear,mode)
{	
	var budget=obj;	
	var years=budget.split("-");
	//alert(currentyear);
	//alert(years[1]);
	if(mode=="update")
	{
		if(years[1]<currentyear)
		{		
			return false;
		}
	}
	else if(mode=="new")
	{
		if(years[1]<=currentyear)
		{		
			return false;
		}
	}
}
