// added by ashish patel
// this function assigns a value to combo box

function assignVal(formname,fieldname,svalue)
{
	for(var ctr2=0;ctr2<eval('document.forms["'+formname+'"].'+fieldname+'.length');ctr2++)
	{
		if(eval('document.forms["'+formname+'"].'+fieldname+'.options['+ctr2+'].value')==svalue)
			eval('document.forms["'+formname+'"].'+fieldname+'.options['+ctr2+'].selected=true');
	}
}

// returns the array number of the selected radio button or -1 if no button is selected
	function getSelectedRadio(buttonGroup) {
	   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
		  for (var i=0; i<buttonGroup.length; i++) {
			 if (buttonGroup[i].checked) {
				return i
			 }
		  }
	   } else {
		  if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
	   }
	   // if we get to this point, no radio button is selected
	   return -1;
	} // Ends the "getSelectedRadio" function


// returns the value of the selected radio button or "" if no button is selected
	function getSelectedRadioValue(buttonGroup) {
	   var i = getSelectedRadio(buttonGroup);
	   if (i == -1) {
		  return "";
	   } else {
		  if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
			 return buttonGroup[i].value;
		  } else { // The button group is just the one button, and it is checked
			 return buttonGroup.value;
		  }
	   }
	} // Ends the "getSelectedRadioValue" function

function processform()
{
        for(var i=0;i<document.DateForm.elements.length;i++)
        {
                var formelements = document.DateForm.elements[i];
                if (formelements.name == "datetext1" || formelements.name == "datetext2" )
                {
                        if( !Validate_blank(formelements.value) ) 
                        {
                                formelements.focus();
                                formelements.select();
                                return false;
                        }
                        if( !Validate_date(formelements.value) ) 
                        {
                                formelements.focus();
                                formelements.select();
                                return false;
                        }
                        if(formelements.name == "datetext2" )
                        {
                                if(!Validate_logic(document.DateForm.datetext1.value, formelements.value))
                                {
                                        formelements.focus();
                                        formelements.select();
                                        return false;
                                }
                        }
                }
        }
}



// this function checks if to date is greater or equal to from date 
function Validate_logic(from,to)
{
         var fst1 = from.substring(0,2);
        var fst2 = from.substring(3,5);
        var fst3 = from.substring(6,10);        
        
        var fdd = parseInt(fst1,10);
        var fmm = parseInt(fst2,10);
        var fyyyy = parseInt(fst3,10);
        
        var tdd=0;
        var tmm=0;
        var tyyyy=0;

        var tst1=to.substring(0,2);
        var tst2=to.substring(3,5);
        var tst3=to.substring(6,10);    

        tdd = parseInt(tst1,10);
        tmm = parseInt(tst2,10);
        tyyyy = parseInt(tst3,10);

        if(fyyyy<tyyyy)
        {
                return true;
        }
        else if(fyyyy>tyyyy)
        {
                return false;
        }
        else if(fyyyy==tyyyy)
        {
                if(fmm<tmm)
                {
                        return true;
                }
                if(fmm>tmm)
                {
                        return false;
                }
                else if(fmm==tmm)
                {
                        if(fdd <= tdd)
                        {
                                return true;
                        }
                        else if(fdd>tdd)
                        {
                                
                                return false;
                        }
                }
        }
}

// this function checks if to date is greater than from date 
function Validate_logic1(from,to) {
        var fst1 = from.substring(0,2);
        var fst2 = from.substring(3,5);
        var fst3 = from.substring(6,10);        
        
        var fdd = parseInt(fst1,10);
        var fmm = parseInt(fst2,10);
        var fyyyy = parseInt(fst3,10);
        
        var tdd=0;
        var tmm=0;
        var tyyyy=0;

        var tst1=to.substring(0,2);
        var tst2=to.substring(3,5);
        var tst3=to.substring(6,10);    

        tdd = parseInt(tst1,10);
        tmm = parseInt(tst2,10);
        tyyyy = parseInt(tst3,10);

        if(fyyyy<tyyyy)
        {
                return true;
        }
        else if(fyyyy>tyyyy)
        {
                return false;
        }
        else if(fyyyy==tyyyy)
        {
                if(fmm<tmm)
                {
                        return true;
                }
                if(fmm>tmm)
                {
                        return false;
                }
                else if(fmm==tmm)
                {
                        if(fdd < tdd)
                        {
                                return true;
                        }
                        else if(fdd>tdd)
                        {
                                
                                return false;
                        }
                }
        }
}


function Validate_blank(str)
{
	if(str == "" )
	{
		alert("You have left mandatory fields blank");
		return false
	}
	else
	{
		return true
	}
}


function Validate_int(str)
{ 
	var count =0;
	var c;
	for(j=0; j<str.length; j++) 
	{
		c = str.charAt(j);
		if(!(c >= '0' && c <= '9'))
			count =0;
		else
			count++;
	}
	if(count == str.length)
	{				
		return true;
	}
	else
	{
//		alert("Enter a valid value");
		return false;
	}
	return false;
}


function Validate_Deci(str)
{
	var decival = false;
	var count =0;
	if(str=="")
	{
		return true;
	}
	else
	{			
		var c;
		for(var j=0; j<str.length; j++) 
		{
			c = str.charAt(j);
			if(!(c >= '0' && c <= '9' || c=='.'))
				count =0;
			else
				count++;
		}
		if(count == str.length)
		{
			decival = IsPoint(str);
			return decival;
		}
		else
		{
			alert("Not a valid value. Please enter again");
			return false
		}
	}
}


function IsPoint(str)
{
	var len=str.length;
	var count =0;
	for(var i=0;i<(len-1);i++)
	{
		if(str.charAt(i)=='.') 
			count++;
	}
	if(count == 1 || count == 0)
	{
		return true;
	}
	else 
	{			
		alert("Not a valid value. Please enter again");
		return false;
	}
}


function Validate_date(date)
{
	len = date.length;

	if(len == 10 )
	{
		var dt = 0;
		var mn = 0;
		var yy = 0;
		
		var st1= date.substring(0,2);
		var st2= date.substring(3,5);
		var st3= date.substring(6,10); 
		var st4= date.substring(2,3);
		var st5= date.substring(5,6);
		
		if(Validate_dateint(st1) == true && Validate_dateint(st2) == true && Validate_dateint(st3) == true && st4 == "." && st5 == ".")
		{
			dt = parseInt(st1,10);
			mn = parseInt(st2,10);
			yy = parseInt(st3,10);
			/*
			if (st1=="08")
				mn = 8;
			if (st1=="09")
				mn = 9;
			if (st2=="08")
				dt = 8;
			if (st2=="09")
				dt = 9;

			*/
			if(dt==0 || mn==0 || yy==0){
					alert("Please enter valid date in 'dd.mm.yyyy' format");
					return false;
			}
		
			if(mn==1 || mn==3 || mn==5 || mn==7 || mn==8 || mn==10 || mn==12 )
			{
				if(dt <= 31 && dt > 0)
					return true;
				else
				{
					alert("Please enter valid date in 'dd.mm.yyyy' format");
					return false;
				}
			}
			else if(mn==4 || mn==6 || mn==9 || mn==11)
			{	
				if(dt <= 30 && dt > 0)
					return true;
				else
				{
					alert("Please enter valid date in 'dd.mm.yyyy' format");
					return false;
				}
			}
			else if(mn==2)
			{
				if(( yy % 400) == 0 )
				{
					if(dt <= 29 && dt > 0)
						return true;
					else
					{
						alert("Please enter valid date in 'dd.mm.yyyy' format");
						return false;
					}
				}
				else if( ( ( yy % 4) == 0 ) && (( yy % 100) == 0 ) && ( ( yy % 400 ) != 0 ))
				{
					if(dt <= 28 && dt > 0)
						return true;
					else
					{
						alert("Please enter valid date in 'dd.mm.yyyy' format");
						return false;
					}
				}
				else if( ( ( yy % 4) == 0 ) && (( yy % 100) != 0 ) && ( ( yy % 400 ) != 0 ))
				{
					if(dt <= 29 && dt > 0)
						return true;
					else
					{
						alert("Please enter valid date in 'dd.mm.yyyy' format");
						return false;
					}
				}
				else
				{
					if(dt <= 28 && dt > 0)
						return true;
					else
					{
						alert("Please enter valid date in 'dd.mm.yyyy' format");
						return false;
					}
				}
			}
			else
			{
				alert("Please enter valid date in 'dd.mm.yyyy' format");
				return false;
			}
		}
		else
		{
			alert("Please enter valid date in 'dd.mm.yyyy' format");
			return false;
		}
	}
	else if(len != 0)
	{	
		alert("Please enter valid date in 'dd.mm.yyyy' format");
		return false;
	}
	else if(len == 0)
	{
		return true;
	}
	return false;
}

function Validate_dateint(str)
{ 
	var count =0;
		var c;
		for(j=0; j<str.length; j++) 
		{
			c = str.charAt(j);
			if(!(c >= '0' && c <= '9'))
				count =0;
			else
				count++;
		}
		if(count == str.length)
		{				
			return true;
		}
		else
		{
			alert("Please enter valid date in 'dd.mm.yyyy' format");
			return false;
		}
}

function CheckAll()
{
	for (var i=0;i<document.form.elements.length;i++)
    {
    	var formelements = document.form.elements[i];
 	   	if (formelements.name != 'allbox')
		{
    	  formelements.checked = document.form.allbox.checked;
		}
    }
}



//Purpose : Checking emptyness of the fields named "m_xxx" in the form
//Syntax  : onSubmit = "return validateFormFill(document.pagename);"

function validateFormFill(form3) {

  for(i=0;i<form3.elements.length;i++){

      elementName = form3.elements[i].name;
          if(elementName.charAt(0)== "m") {
     		if(form3.elements[i].name.charAt(1)== "_") {
			  var eleArr = ""
		  	  if( form3.elements[i].type == 'select-one')
		  	  {
		  	     eleArr = form3.elements[i].options[form3.elements[i].selectedIndex].value
		  	  }
		  	  else
		  	  {
		  	    //form3.elements[i].value = trim(form3.elements[i].value)
		  	    eleArr= form3.elements[i].value
		  	  }

		  	var nullFound=true
		    	for(var s=0;s<eleArr.length;s++) {
		 		if(eleArr.charAt(s)!=" ") {
		 			nullFound = false
		  		}
    		  	}
       	        if(form3.elements[i].value=="" || nullFound==true)
        	        {
        	            if(arguments.length>1)
        	            {
        	            	alert("Please enter mandatory field "+arguments[1])
        	            }
        	            else
        	            {
        	            	alert("Please enter all mandatory fields. ( All mandatory fields are indicated by *. )");
        	            }
        		    form3.elements[i].focus();
        		    return false;
       			}
			if(form3.elements[i].type=="select-one")
			{

				if((form3.elements[i].selectedIndex==0)&&((form3.elements[i].options[0].text=="Unavailable")|| (form3.elements[i].options[0].text=="Not Selected")))
				{
				   if(arguments.length>1)
				   {
					alert("Please enter mandatory field "+arguments[1])
				   }
				   else
				   {
					alert("Please enter all mandatory fields. ( All mandatory fields are indicated by a red *. )");
				   }
		      		   form3.elements[i].focus();
	       		           return false;
				}
			}
             }//End of _

            }//End of m
   }//End of for
    return true;
 }

//******************end of validateFormFill(form)******************************

/*
Reference   : Trim values.
Description : returns the trimmed value of the string.
Usage	    : var a = trim(a);
*/
function trim(inputStr)
{

	theLength = inputStr.length ;

	// whitespace characters
	var whitespace      =   " \b\t"         ;

	// declare variables
	var str             =   new String(inputStr);
	var theChar         =   ""                  ;
	var endPosition     =   0                   ;
	theChar             =   ""                  ;
	var startPosition   =   -1                  ;
	var i               =   0                   ;

	for (var i = theLength ; (i >= 0 && endPosition == 0) ; (i = i - 1))
	{
		theChar = str.charAt(i);
		if (whitespace.indexOf(theChar) == -1)
			endPosition = i ;
	}

	for ( i = 0 ;((i <= theLength-1)&& (startPosition ==-1)); i = i + 1)
	{
		theChar = inputStr.charAt(i);
		if (whitespace.indexOf(theChar) == -1)
		{
			startPosition = i ;
		}
	}// for loop ends

	var data = str.substring(startPosition,endPosition+1);

	// Return the trimmed string
	return (data) ;
} // function trim ends


//Purpose : Validating for numeric entry in a text box
//Date    :
//Syntax  : onchange = "return validateNum(fname,integerChk,positiveChk,fnameLabel);"

function validateNum(fname,integerChk,positiveChk,zeroChk, len, lengthCheck,fnameLabel)
{
     if (fname.value != "") {
     	var eleArr = ""
        eleArr= fname.value

	var nullFound=true
	for(var s=0;s<eleArr.length;s++) {
		if(eleArr.charAt(s)==" ") {
			nullFound = false
		}
    	}
	if(isNaN(fname.value) || (fname.value).charAt(0)=="+" || nullFound==false) {
		alert("Invalid Entry! Please enter numerical values without '.' or '+' sign in "+fnameLabel+".");
//		fname.value="";
		fname.focus();
		return false;
	}

	if(integerChk == true) {
		if((fname.value).indexOf(".")!=-1)
		{
			alert("Invalid Entry! Please enter integer values in "+fnameLabel+".");
//			fname.value="";
			fname.focus();
			return false;
		}
	}

	if(zeroChk == true) {
		if(fname.value == 0)
		{
			alert("Invalid Entry! Please enter non-zero values in "+fnameLabel+".");
    		fname.focus();
    		return false;
		}
	}

	if(positiveChk == true) {
		if((fname.value).indexOf("-")!=-1)
		{
			alert("Invalid Entry! Please enter positive values in "+fnameLabel+".");
//			fname.value="";
			fname.focus();
			return false;
		}
	}
	if(lengthCheck == true) {
		if(checkLength(fname,len)==true){
			return true;
		}else{
			return false;
		}
	}
     }
     return true;
}
//********************************end of validateNum()******************************

function validateFloat(fname,len1,len2){
	validateFloat(fname,len1,len2,true,true,true);
}

//Purpose: Validates A value For Floating Point Variables
function validateFloat(fname,len1,len2,allow_negative,allow_zero,set_focus){
	var numeric = "";
	var decimal = "";
	for(var i =0; i<len1; i++)
	{
		numeric = numeric+"9";
	}
	for(var i =0; i<len2; i++)
	{
		decimal = decimal+"9";
	}
	

     var count=0;

   if (fname.value != ""){
		/*
     	if(fname.value <= 0) {
			if(arguments.length>3) {
				alert("Invalid Entry! Value must be greater than zero in "+arguments[3])
			} else {
				alert("Invalid Entry! Value must be greater than zero");
			}
			fname.value = "";
			fname.focus();
			return false;
		}
		*/


	if(!isNaN(fname.value)){

          for(i=0;i<fname.value.length;i++){
                if(fname.value.charAt(i) == '.'){
                   count++;
                }
          }

         if(count > 1){
			if(arguments.length>6) {
				alert("Invalid Entry! No more than one decimal point is acceptable in "+arguments[6])
			} else {
				alert("Invalid Entry! No more than one decimal point is acceptable");
			}

			if (set_focus) {
				fname.value="";
				fname.focus();
			}
			return false;
         }

		// check for -ve values
		if (!allow_negative) {
			if (parseFloat(fname.value) < 0) {
				alert("You cannot enter negative value.");
				if (set_focus) {
					fname.value="";
					fname.focus();
				}
				return false;
			}
		}
		// check for zero values
		if (!allow_zero) {
			if (parseFloat(fname.value) == 0) {
				alert("You cannot enter zero value.");
				if (set_focus) {
					fname.value="";
					fname.focus();
				}
				return false;
			}
		}


         if(fname.value.indexOf('.')== -1 && fname.value.length > len1){
			if(arguments.length>6) {
				alert("Invalid Entry! Input a valid decimal number with a maximum value of "+numeric+"."+decimal+" for "+arguments[6]);
			} else {
				alert("Invalid Entry! Input a valid decimal number with a maximum value of "+numeric+"."+decimal);
			}
			if (set_focus) {
				fname.value="";
				fname.focus();
			}
			return false;
         } else if(fname.value.indexOf('.') != -1){
              if(((fname.value.substring(0,fname.value.indexOf('.'))).length > len1) || 
              	(fname.value.substring(fname.value.indexOf('.')+1).length >len2)){
				if(arguments.length>6) {
					alert("Invalid Entry! Input a valid decimal number with a maximum value of "+numeric+"."+decimal+" for "+arguments[6]);
				} else {
	                alert("Invalid Entry! Input a valid decimal number with a maximum value of "+numeric+"."+decimal);
				}
				if (set_focus) {
		            fname.value="";
		            fname.focus();
		        }
	            return false;
         	}
         }
     } else {
		if(arguments.length>6) {
			alert("Invalid Entry! Please enter numerical values in "+arguments[6]);
		} else {
	     	alert("Invalid Entry! Please enter numerical values");
		}
		if (set_focus) {
	     	fname.value="";
	     	fname.focus();
	    }
     	return false;
     }
    }
     return true;
}

// Validation for checking char / number length...
function checkLength(field,f_size) {
//  cancelclick=0;
//  backclick=0;
 
//  if(field.value.length < f_size && cancelclick==0 && backclick==0) {

  if(field.value.length < f_size) {
    alert("Invalid length, minimum length should be "+f_size);
//  field.value = "";
	field.focus();
   
    return false;
     
  }
//  cancelclick=0;
//  backclick=0;

  return true;
}

/* Validates email address format and notifies the user of
	unrecognized email formats.  It should match on the the following examples
	                 someone@somewhere.com
	                 someone.somebody@somewhere.com
	                 someone.sombody@somewhere.where.com
	                 some-one@somewhere.com
	                 some-one.somewhere@wherever.com
	                 some-one.somewhere@where-ever.com
	                 abc@[255.255.255.0]
	                 abc@255.255.255.0        
	
   theField represent the field that you a validating against (i.e.  document.form.txtEmail)
		*/
	
function isEmail(theField) {

	if (theField.value == "") return true;
	     
     var pattern = ".+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)"
     var regex = new RegExp(pattern)
	     
     if (regex.test(theField.value)) {
	     return true;
	 } else {
	 	alert("Invalid email.");
	 	theField.focus();
	  	return false;
	 }
	    
}

function validateAlpha(field) {

var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ";
var ok = "yes";
var temp;
  if(field.value != ""){

		for (var i=0; i<field.value.length; i++) {
			temp = "" + field.value.substring(i, i+1);
		
			if (valid.indexOf(temp) == "-1")          
				ok = "no";
		}
		if (ok == "no") {
			alert("Invalid entry. Please enter valid character.");
			field.value = "";
			field.focus();
			return false;
		} else return true;
    }
}

// 1'st arg - value, 2'nd arg - valid chars, 3'rd arg - alert flag
function validateSpCharsForValue(value,chars) {

if(value == ""){
	return true;
}

var alert_msg = true;
if (arguments.length >= 3) {
	alert_msg = arguments[2];
}

var valid = chars;
var ok = "yes";
var temp;

		for (var i = 0; i < value.length; i++) {
			temp = "" + value.substring(i, i+1);

			if (valid.indexOf(temp) == "-1")          
				ok = "no";
		}
		if (ok == "no") {
			if (alert_msg) {
				alert("Invalid entry. Please enter valid character.\nFollowing characters are allowed for this field "+chars+" ");
			}
			return false;
		} else  {
			return true;
		}
}

// 1'st arg - field, 2'nd arg - valid chars, 3'rd arg - alert flag
function validateSpChars(field,chars) {

if(field.value == ""){
	return true;
}

var alert_msg = true;
if (arguments.length >= 3) {
	alert_msg = arguments[2];
}

//var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ";
var valid = chars;
var ok = "yes";
var temp;

		for (var i=0; i<field.value.length; i++) {
			temp = "" + field.value.substring(i, i+1);
		
			if (valid.indexOf(temp) == "-1")          
				ok = "no";
		}
		if (ok == "no") {
			if (alert_msg) {
				alert("Invalid entry. Please enter valid character.\nFollowing characters are allowed for this field "+chars+" ");
			}
			field.focus();
			return false;
		} else  {
			return true;
		}
}

// validates cheque no.if 2'nd argument is true validate more than one chq nos.(i.e allow comma)
function validateChqNo(chq_no,allow_comma) {

var valid = "0123456789";
if (allow_comma) {
	valid = "0123456789,";
}

var ok = "yes";
var temp;
  if(chq_no != ""){

		for (var i = 0; i < chq_no.length; i++) {
			temp = "" + chq_no.substring(i, i+1);

			if (valid.indexOf(temp) == "-1")          
				ok = "no";
		}
		if (ok == "no") {
/*
			if (allow_comma) {
				alert("Invalid Cheque numbers.Please enter valid Cheque numbers seperated by comma.");
			} else {
				alert("Invalid Cheque number.Please enter valid Cheque number.");
			}
*/
			return false;
		} else return true;
    }
}


// validates period
function validatePeriod(period) {

var valid = "0123456789";

var ok = "yes";
var temp;
  if(period != ""){

		for (var i = 0; i < period.length; i++) {
			temp = "" + period.substring(i, i+1);

			if (valid.indexOf(temp) == "-1")          
				ok = "no";
		}
		if (ok == "no") {
			alert("Invalid Period.Please enter valid Period.");
			return false;
		} else return true;
    }
}

function selectAllCombo(combo_box) {
	var combo_length = combo_box.length;
	var all_selected = combo_box.options[0].selected;

	if (all_selected) {
		for (var i = 0; i < combo_length; ++i) {
			if (i == 0) {
				combo_box.options[i].selected = false;
			} else {
				combo_box.options[i].selected = true;
			}
		}
	}
}

function CheckAll(form){
	for (var i = 0; i < form.elements.length;i++) {
    	var formelements = form.elements[i];
 	   	if (formelements.name != 'chk_all') {
			formelements.checked = form.chk_all.checked;
		}
    }
}

function resetCombo (combo) {
//alert(combo.name);
	var resetArray =  new Array("('Not Selected','')");

	while (resetArray.length < combo.options.length) {
		combo.options[(combo.options.length - 1)] = null;
	}
}

// js function to validate tel no with std no and extension no
function checkTelNoExtn (std_field,phone_field,extn_field) {
//alert("field name"+std_field.name);

	var std_value = std_field.value;
	var phone_value = phone_field.value;
	var extn_value = extn_field.value;

	if ((std_value == "") && (phone_value == "") && (extn_value == "")) {
		return true;
	}

	if ((std_value == "") && ((phone_value != "") || (extn_value != ""))) {
		alert("Please enter STD Code.");
		std_field.focus();
		return false;
	}

	if ((phone_value == "") && ((std_value != "") || (extn_value != ""))) {
		alert("Please enter Phone Number.");
		phone_field.focus();
		return false;
	}

// extension no is not mandatory 

	if (extn_value != "") {
		if (std_value == "") {
			alert("Please enter STD Code.");
			std_field.focus();
			return false;		
		} else if (phone_value == "") {
			alert("Please enter Phone Number.");
			phone_field.focus();
			return false;
		}
	}

	return true;
}

// js function to validate tel no with std no and without extension no
function checkTelNo (std_field,phone_field) {

	var std_value = std_field.value;
	var phone_value = phone_field.value;

	if ((std_value == "") && (phone_value == "")) {
		return true;
	}

	if ((std_value == "") && (phone_value != "")) {
		alert("Please enter STD Code.");
		std_field.focus();
		return false;
	}

	if ((phone_value == "") && (std_value != "")) {
		alert("Please enter Phone Number.");
		phone_field.focus();
		return false;
	}

	return true;
}

function getComboValue(obj_combo) {
	return obj_combo.options[obj_combo.selectedIndex].value;
}

function getComboIndexValue(obj_combo,selectedIndex) {
	return obj_combo.options[selectedIndex].value;
}

// usage - define two arrays, one for text field names and one for combo names
// var mandatory_txt_fields = new Array("tf_text_field1","tf_text_field2");
// var mandatory_cb_fields = new Array("cb_select_field1","cb_select_field2");
function validateMandatoryFields (form_name) {

	for (var j = 0; j < mandatory_txt_fields.length; ++j) {
		var field_name = mandatory_txt_fields[j];
		var field = eval("document."+form_name+"."+field_name);
		var field_value = field.value;
		if (field_value == "") {
			alert("You have left mandatory field blank.");
			field.focus();
			return false;
		}
	}

	for (var k = 0; k < mandatory_cb_fields.length; ++k) {
		var field_name = mandatory_cb_fields[k];
		var field = eval("document."+form_name+"."+field_name);

		if (field.selectedIndex == -1) {
			alert("You have left mandatory field blank.");
			field.focus();
			return false;
		} else if (field.options[field.selectedIndex].value == "") {
			alert("You have left mandatory field blank.");
			field.focus();
			return false;
		}
	}
	return true;
}

//This function validates the length of remarks field for its maximum size
function checkRemarks(field,f_size) {

	  if ( field.value.length > f_size) {
	    alert("Invalid length, should not exceed "+f_size+" characters");
		field.focus();
	    return false;
 	  }
 	  
	return true;
	
}

// this function makes a combo with options yes/no in the div element specified by id - divtagid
// 1'st arg - form name, 2'nd arg - field name
// 3'rd arg - div id, 4'th arg - not selected flag, 5'th arg - default value
function loadYesNoCombo(formname,fieldname,divtagid) {

	var not_selected_flag = true;
	var default_val = "";
	if (arguments.length >= 4) {
		not_selected_flag = arguments[3];
	}
	if (arguments.length >= 5) {
		default_val = arguments[4];
	}

	var val = '<select name="'+fieldname+'" class="select">';
	if (not_selected_flag) {
		val += '<option value=""> Not Selected</option>';
	}
	val += '<option value="Y"> Yes</option><option value="N" >No</option></select>';
	var div_elem = document.getElementById(divtagid);
	div_elem.innerHTML = val;
	if (default_val != "") {
		assignVal(formname,fieldname,default_val);	
	}

}

// this function makes a combo with no options in the div element specified by id - divtagid
// popultate will be reqd to populate options
function makeCombo(fieldname,divtagid) {
	var div_elem = document.getElementById(divtagid);
	div_elem.innerHTML = '<select name="'+fieldname+'" class="select"> </select>';
}

// this function makes a textfield in the div element specified by id - divtagid
function makeTextField(fieldname,divtagid,size,maxlength) {
	var div_elem = document.getElementById(divtagid);
	div_elem.innerHTML = '<input type="text" name="'+fieldname+'"  class="textfield"  size="'+size+'" maxlength = "'+maxlength+'">';
}
// this function makes a ckeckbox in the div element specified by id - divtagid
function makeCheckBox(fieldname,divtagid,value) {
	var div_elem = document.getElementById(divtagid);
	div_elem.innerHTML = '<INPUT TYPE="checkbox" NAME="'+fieldname+'" value = "'+value+'">';
}

function validatePassword(passwd_field,cnfrm_passwd_field) {
      if (passwd_field.value != "") {
            if (!validateSpChars(passwd_field,valid_password_chars)) {
                  return false;
            } 
      } 
      if(cnfrm_passwd_field.value != "") {
            if (!validateSpChars(cnfrm_passwd_field,valid_password_chars)) {
                  return false;
            } 
      }
      if(passwd_field.value != cnfrm_passwd_field.value) {
            alert("Confirm Password does not match with Password.");
            cnfrm_passwd_field.value = "";
            cnfrm_passwd_field.focus();
            return false;
      }
      return true;
}

function escapeEscChar(escape_string) {
      var a = escape_string.indexOf("\\");
      var temp1 = "";
      var temp2 = "";
      while(a >= 0) {
            temp1 = escape_string.substr(0,a);
            temp2 = escape_string.substr(a+1);
            escape_string = temp1 + temp2;
            var a = escape_string.indexOf("\\");
      }     
      return escape_string;
}

function calcDayDiff (to_date, from_date) {
      var dd = to_date.substring(0,2);
      var mm = to_date.substring(3,5) - 1;
      var yyyy = to_date.substring(6,10);
      dop1 = new Date(yyyy, mm, dd);
      dd = from_date.substring(0,2);
      mm = from_date.substring(3,5) - 1;
      yyyy = from_date.substring(6,10);
      dop2 = new Date(yyyy, mm, dd);
      diff = dop1 - dop2;
      diff_days = (diff/86400000);
      return diff_days;
}
