
var a, b,c;
var decimaltextentry;

function CheckMaxLength(formitem,len, msg)
{
	if (formitem.value=="")
	{
		return true;
	}
	if (formitem.value.length>len)
	{
		alert(msg);
		formitem.focus();
		formitem.select();
		return false;
	}
	return true;

	
}


function CheckMinLength(formitem,len, msg)
{
	if (formitem.value=="")
	{
		return true;
	}
	if (formitem.value.length<len)
	{
		alert(msg);
		formitem.focus();
		formitem.select();
		return false;
	}
	return true;

	
}

function CheckExactLength(formitem, len, msg)
{
	if (formitem.value=="")
	{
		return true;
	}
	if (formitem.value.length!=len)
	{
		alert(msg);
		formitem.focus();
		formitem.select();
		return false;
	}
	return true;
}


function CheckCertDateEntry(value)
{
	if (value !='')
	{
		alert('Email Template 3 has been Sent!')
	}
}

function DateFormatter(formitem1)
{
	var combined;
	combined=formitem1.value;
	if (formitem1.value.substring(2,3)=="/")
	{
	var dd=formitem1.value.substring(0,2);
	var mm=formitem1.value.substring(3,5);
	var yyyy=formitem1.value.substring(6,10);
	combined=mm+'/'+dd+'/'+yyyy;
	}

	return combined;
	
}
function ReturnCurrentDate()
{
	var fulldate;
	
	var today=new Date();
	var mth=today.getMonth()+1;
	var month=mth.toString();
	if (month.length!=2)
	{
		month='0'+month;
	}
	var day=today.getDate().toString();
	if (day.length!=2)
	{
		day='0'+day;
	}
	fulldate=month+'/'+day+'/'+today.getYear();
	return(fulldate);
}

function SetCurrentDate(formitem1)
{
	var today=new Date();
	var mth=today.getMonth()+1;
	var month=mth.toString();
	if (month.length!=2)
	{
		month='0'+month;
	}
	var day=today.getDate().toString();
	if (day.length!=2)
	{
		day='0'+day;
	}
	formitem1.value=month+'/'+day+'/'+today.getYear();
	//formitem1.value=day+'/'+month+'/'+today.getYear();
	//formitem1.value=today.getYear()+'/'+month+'/'+day;

}

/*This function is used to check whether the Request Status is "Selling" or "Issuing" 
if it is selling the Cert Receive Date and the Cert Collected Date will be disabled*/
function CheckRequestType(checkitem1, disableditem2, disableditem3)
{
	if (checkitem1.value=='Selling')
	{
		disableditem2.value='Not Applicable';
		disableditem2.disabled=true;
		disableditem3.value='Not Applicable';
		disableditem3.disabled=true;
		//just added
		document.all["Received"].href="javascript:";
		document.all["Collected"].href="javascript:";
		//end of addition

	}
	else
	{
		disableditem2.disabled=false;
		disableditem3.disabled=false;
		
		/*This segment of code is to automatically insert today's date into the two textfield
		when the user changes the Request_Status (aka checkitem1) from Selling to issuing*/
	/*	if (disableditem2.value=='Not Applicable')
		{
			var today=new Date();
			var mth=today.getMonth()+1;
			var month=mth.toString();
			if (month.length!=2)
			{
				month='0'+month;
			}
			var day=today.getDate().toString();
			if (day.length!=2)
			{
				day='0'+day;
			}

			disableditem2.value=day+'/'+month+'/'+today.getYear();
		}
		if (disableditem3.value=='Not Applicable')
		{
			disableditem3.value=day+'/'+month+'/'+today.getYear();
		}
		*/					
		/*end of code segment*/
		if (disableditem2.value=="Not Applicable"){
			disableditem2.value="";
			}
		if (disableditem3.value=="Not Applicable"){
			disableditem3.value="";			}
		//just added		
		document.all["Received"].href="javascript:show_calendar('form1.Cert_Receive_Date', null, null, 'DD/MM/YYYY')";
		document.all["Collected"].href="javascript:show_calendar('form1.Cert_Collection_Date', null, null, 'DD/MM/YYYY')";
		//end of addition
	}
}
function RoutineCheckType()
{
	setInterval('CheckRequestType(a, b, c)',100)
}
function Init(item1, item2, item3)
{
	a=item1;
	b=item2;
	c=item3;
}


function CheckDate(formitem, exception) 
{
//	window.onerror=null // for all other strange errors

	var err=0
	var psj=0;
	var value=formitem.value;
	if (value.length==8)
	{
		a=value;
		b = a.substring(2, 3)// month
		c = a.substring(1, 2)// '/'
		d = a.substring(0, 1)// day
		e = a.substring(3, 4)// '/'
		f = a.substring(4, 8)// year
		value='0'+d+c+'0'+b+e+f;
	}
	if (value.length==9)
	{
		a=value;
		firstslashindex=a.substring(1,2);
		if (firstslashindex=='/')	/* D/MM/YYYY format */
		{
			b = a.substring(2, 4)// month
			c = a.substring(1, 2)// '/'
			d = a.substring(0, 1)// day
			e = a.substring(4, 5)// '/'
			f = a.substring(5, 9)// year
			value='0'+d+c+b+e+f;		
		}
		else
		{				/* DD/M/YYYY */		
			b = a.substring(3, 4)// month
			c = a.substring(2, 3)// '/'
			d = a.substring(0, 2)// day
			e = a.substring(4, 5)// '/'
			f = a.substring(5, 9)// year
			value=d+c+'0'+b+e+f;					
		}
	}
	

	if (value!=""){	
	if (value!=exception)
	{
	a=value;	
	if (a.length != 10) err=1
		
	//once here it is assume that the date format is of DD/MM/YYYY format
	d = a.substring(3, 5)// month
	c = a.substring(2, 3)// '/'
	b = a.substring(0, 2)// day
	e = a.substring(5, 6)// '/'
	f = a.substring(6, 10)// year

	//basic error checking
	if (d<1 || d>12) err = 1
	if (c != '/') err = 1
	if (b<1 || b>31) err = 1
	if (e != '/') err = 1
	if (f<1970 || f>2050) err = 1
	
	//advanced error checking
	if (IsInteger(b)==false)
	{
		err=1;
	}
	if (IsInteger(d)==false)
	{
		err=1;
	}
	if (IsInteger(f)==false)
	{
		err=1;
	}
	
	// months with 30 days
	if (d==4 || d==6 || d==9 || d==11){
		if (b==31) err=1
	}

	// february, leap year
	if (d==2){
		// feb
		var g=parseInt(f/4)
		if (isNaN(g)) {
			err=1
		}

		if (b>29) err=1
		if (b==29 && ((f/4)!=parseInt(f/4))) err=1
	}
	}}
	if (err==1)
	{
		alert('Invalid Date Format!\nPlease Enter The Date In DD/MM/YYYY Format!');
		//alert('Invalid Date Format!\nPlease Enter The Date In MM/DD/YYYY Format!');
		formitem.focus();
		formitem.select();
		return false;
	}
	else
	{
		return true;
	}
}
function CheckIsInteger(formitem,errormsg)
{
//	var a=parseInt(formitem.value);
	if (formitem.value=='')
	{
/*		alert(errormsg);
		formitem.focus();
		formitem.select();
		return false;		*/
		return true;
	}
	if (IsInteger(formitem.value)==false)
	{
		alert(errormsg);
		formitem.focus();
		formitem.select();
		return false;
	}
	else
	{
			return true;
	}
}


//this check should only be performed after performing CheckDate
function DateComparator(smallerdate,largerdate, errormsg)
{
	var tempdate=smallerdate.value;
	var value, value1;
	var intdate1, intdate2;
	var a=tempdate;
	if ((smallerdate.value=='')&&(largerdate.value==''))
	{
		return true;
	}

	if (tempdate.length==8)
	{
		b = a.substring(2, 3)// month
		c = a.substring(1, 2)// '/'
		d = a.substring(0, 1)// day
		e = a.substring(3, 4)// '/'
		f = a.substring(4, 8)// year
		value=f+'0'+b+'0'+d;
	}

	if (tempdate.length==9)
	{
		firstslashindex=a.substring(1,2);
		if (firstslashindex=='/')
		{
			b = a.substring(2, 4)// month
			c = a.substring(1, 2)// '/'
			d = a.substring(0, 1)// day
			e = a.substring(4, 5)// '/'
			f = a.substring(5, 9)// year
			value=f+b+'0'+d;
		}
		else
		{
			b = a.substring(3, 4)// month
			c = a.substring(2, 3)// '/'
			d = a.substring(0, 2)// day
			e = a.substring(4, 5)// '/'
			f = a.substring(5, 9)// year
			value=f+'0'+b+d;
		}
	}
	if (tempdate.length==10)
	{
		b = a.substring(3, 5)// month
		c = a.substring(2, 3)// '/'
		d = a.substring(0, 2)// day
		e = a.substring(5, 6)// '/'
		f = a.substring(6, 10)// year
		value=f+b+d;
		
	}
	intdate1=parseInt(value);

	tempdate=largerdate.value;
	if(tempdate.length==0)
	{
		tempdate=smallerdate.value;
		largerdate.value=smallerdate.value;

	}
	a=tempdate;

	if (tempdate.length==8)
	{
		b = a.substring(2, 3)// month
		c = a.substring(1, 2)// '/'
		d = a.substring(0, 1)// day
		e = a.substring(3, 4)// '/'
		f = a.substring(4, 8)// year
		value1=f+'0'+b+'0'+d;
	}

	if (tempdate.length==9)
	{
		firstslashindex=a.substring(1,2);
		if (firstslashindex=='/')
		{
			b = a.substring(2, 4)// month
			c = a.substring(1, 2)// '/'
			d = a.substring(0, 1)// day
			e = a.substring(4, 5)// '/'
			f = a.substring(5, 9)// year
			value1=f+b+'0'+d;
		}
		else
		{
			b = a.substring(3, 4)// month
			c = a.substring(2, 3)// '/'
			d = a.substring(0, 2)// day
			e = a.substring(4, 5)// '/'
			f = a.substring(5, 9)// year
			value1=f+'0'+b+d;
		}
	}
	if (tempdate.length==10)
	{
		b = a.substring(3, 5)// month
		c = a.substring(2, 3)// '/'
		d = a.substring(0, 2)// day
		e = a.substring(5, 6)// '/'
		f = a.substring(6, 10)// year
		value1=f+b+d;
		
	}

	intdate2=parseInt(value1);
//	alert("1 "+intdate1+" , 2"+ intdate2);	
	if (intdate1<=intdate2)
	{
		return true;
	}
	else
	{
		if (errormsg.length!=0)		
		{
			alert(errormsg);
		}
		largerdate.focus();
		largerdate.select();					
		return false;
	}		
}
//this function is for internal usage
function IsInteger(f)
{
	var tempstring=f;
	for (i=0; i<tempstring.length; i++)
	{
		onecharacter=tempstring.substring(i,i+1);
		var checkint=parseInt(onecharacter);
		if (isNaN(checkint))
		{
			return false;
		}
	}
	return true;

}
function DecimalFormatter(formitem, errormsg)
{
	var indexpos=formitem.value.indexOf('.',0);
	var firstpart,secondpart;
	if (indexpos!=-1)
	{
		firstpart=formitem.value.substring(0, indexpos);
		var firstint=parseInt(firstpart);


		if (!(IsInteger(firstpart)))
		{
			alert(errormsg);
			formitem.focus();
			formitem.select();
			return false;
		}
		secondpart=formitem.value.substring(indexpos+1, formitem.value.length);
		var secondint=parseInt(secondpart);
		if (!(IsInteger(secondpart)))
		{
			alert(errormsg);
			formitem.focus();
			formitem.select();			
			return false;
		}
		return true;
	}
	else
	{
		if (formitem.value=='')
		{
			return true
		}
		var fullint=parseInt(formitem.value);
		if (isNaN(fullint))
		{
			alert(errormsg);
			formitem.focus();
			formitem.select();			
			return false;
		}
		if (formitem.value!='')
		{
			formitem.value=formitem.value+'.00';
			return true;
		}
	
		alert(errormsg);
		return false;
	}
}
function NotEmpty(formitem,errormsg)
{
	if (formitem.value=="")
	{
		alert(errormsg);
		formitem.focus();
		return false;
	}
	else
	{
		return true;
	}
}
function PasswordCheck(formitem, minlength, maxlength, errormsg)
{
	if ((formitem.value.length<minlength)||(formitem.value.length>maxlength))
	{
		alert(errormsg);
		formitem.focus();
		formitem.select();
		return false;
	}
	else
	{
		return true;
	}
}

function ComparePassword(formitem1, formitem2, errormsg)
{
	if (formitem1.value != formitem2.value)
	{
		alert(errormsg);
		formitem1.value="";
		formitem2.value="";
		formitem1.focus();
		formitem1.select();
		return false;
	}
	else
	{
		return true;
	}
}
function EmailValid(inputobject, comments)
{
	var tempstring=inputobject.value;
	var count=0;
	//tempchar is used as a buffer for checking occurances of "..", "@.", ".@" and "@@"
	var tempchar='';
	//aliaspresent is used to check the pressence of "@" there can only be one "@"

	var aliaspresent=false;
	var dotpresent=false;
	var valid=true;
	
	if(tempstring=="")
	{
		return true;
	}

	if ((tempstring.charAt(0)=='.')||(tempstring.charAt(0)=='@')||(tempstring.charAt(tempstring.length-1)=='.')||(tempstring.charAt(tempstring.length-1)=='@'))
	{
		valid= false;
	}
        while (count<tempstring.length-1)
	{
              if (((tempstring.charAt(count)=='.')||(tempstring.charAt(count)=='@'))&&((tempchar=='.')||(tempchar=='@')))
		{
			valid=false;	
		}

		if ((tempstring.charAt(count)=='@')&&(aliaspresent==false))
		{
			aliaspresent=true;
			tempchar=tempstring.charAt(count);			
                        count++;
			continue;
		}
		if ((tempstring.charAt(count)=='@')&&(aliaspresent==true))
		{
			valid=false;
			break;
		}

		if ((tempstring.charAt(count)=='.')&&(dotpresent==false))
		{
			dotpresent=true;
			tempchar=tempstring.charAt(count);			
            count++;
			continue;
		}

		
		tempchar=tempstring.charAt(count);
		count++;
	}

	if ((aliaspresent==false)||(dotpresent==false))
	{
		valid=false;
	}

	if (valid==false)
	{
		alert(comments);
		inputobject.focus();
		inputobject.select();
	}
	return valid;	
}

//this validation function is to check whether the selection box contains the value "Others" (represented by a number) if yes
//the user must provide an entry for the Others box 
//usage: "formitem1" is the select box,"formitem2" is the "Others" box, "other_id" represent the value of "Others" in the select box
// "errormsg" is the error msg that will be printed out when the rule is violated

function CheckSelectBox (formitem1, formitem2, other_id, errormsg)
{
	var valid=true

	if (formitem1.value==other_id)
	{
		if (formitem2.value=="") 
		{
			alert(errormsg);
			formitem2.focus();
			formitem2.select();
			valid=false;
		}
	}

	return valid;
}
