/**
	Author		:		Bhaskara K

	Date		:		4th June 2001

	Comment		:		This file will have all the common javascript related
						functions that would be needed in many cases.

	Project		:		CoreCommonScript FrameWork
*/


/**
	function to replace a given character or string in the source string with
	another character or string

	input:
			sSrcString - source string to replace the specified string or char.
			sFindString - string to find with in the source string.
			sReplaceString - to replace the above found string with this.
	output:
			String with the new string or char at the old one that has been
				found in the source string
*/


function replace(sSrcString, sFindString, sReplaceString)
{
	var sLocalSrc	= sSrcString;
	var iIndex		= 0;
	var iNext		= 0;
	while((iIndex = sLocalSrc.indexOf(sFindString,iNext)) >= 0)
	{
		sSrcString = sSrcString.substring(0,iIndex) + sReplaceString + sSrcString.substring(iIndex+sFindString.length,sSrcString.length);
		sLocalSrc = sLocalSrc.substring(0,iIndex) + sReplaceString + sLocalSrc.substring(iIndex+sFindString.length,sLocalSrc.length);
		iNext = iIndex + sReplaceString.length;if (iNext >= sLocalSrc.length);
		{
			break;
		}
	}
	return sSrcString;
}


/**
	function that will remove the leading and ending spaces in the
	input string data.

	input	: String data has to be passed as input
	output	: String that is formatted
*/
function trim(sSrcString)
{
	var iSrcLength	= sSrcString.length;
	var iIndex		= 0;

	while(iIndex < iSrcLength)
	{
		if(sSrcString.charAt(iIndex)!=" ")
			break;
		iIndex++;
	}

	sSrcString=sSrcString.substring(iIndex,iSrcLength);
    iSrcLength		= sSrcString.length;
    while(iSrcLength > 0)
    {
		if(sSrcString.charAt(iSrcLength-1) !=" ")
        	break;
        iSrcLength--;
    }
    sSrcString		= sSrcString.substring(0,iSrcLength);

    return sSrcString;
}


/**
	function to validate the email attribute.
	input:
			sEmail - string email that has to be validated for proper values
	output:
			boolean - true in case the email id is valid
			false in case the email is not valid
*/

function validateEmail(sEmail)
{
	var sInvalidEmailExp = /^[a-z_0-9_.]+@[a-z_0-9\.]+\./i;

	if (!isValid(sInvalidEmailExp,sEmail))
	{
		return false
	}
	return true;
}


/**
	function that will be used by validateEmail to check if the format
	of the email is proper or not.

	input:
			sPattern - string of the pattern that should not exists.
			sSrcString - above mentioned pattern should not exist in this string
	output:
			boolean - that says whether the input source has the mentioned
			pattern or not.
*/
function isValid(sPattern, sSrcString)
{
	return sPattern.test(sSrcString)
}



/**
	function that will check if the input data is number or not?
	this function is written in line with isNan, but this is
	browser compatible.

	input:
			sSrsString - that has to be checked if its number.
	output:
			boolean - true in case the string is not a number
			false if the string is a number.
*/
function isNotNumeric(sSrcString)
{
	var iAlphaCtr	= 0;
	var sArwPos		= "";
	var sFound		= "";
	var sSpace		= "";
	var sTempStr	= "";
	var sNumToCheck	= "0123456789.";

	for (var i=0;i<sSrcString.length;i++)
	{
		sTempStr	= sSrcString.substring(i,i+1)
		if (sNumToCheck.indexOf(sTempStr) < 0)
		{
			iAlphaCtr++;
			sFound+=" "+sTempStr;
			sSpace+=sTempStr;
			sArwPos+="^";
		}
		else
		{
			sArwPos+="_";
		}
	}
	if (iAlphaCtr!=0)
	{
		if (sSpace.indexOf(" ")>-1)
		{
			sFound+=" and a space";
		}
		return true;
	}
	return false;
}


/**
	function that will check if the input string is within
	a to z or 0 to 9.

	input:
			sSrcString - string that has to be checked falls with the alpha numeric range
	output:
			boolean - true in case the input is not a alpha numeric string
			false if its alpanumeric
*/
function isNotAlphabetic(sSrcString, includeSpace)
{
	var iAlphaCtr			= 0;
	var sArwPos				= "";
	var sFound				= "";
	var sSpace				= "";
	var sTempStr			= "";
	var sAlphaNumToCheck	= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

	if (includeSpace != null) sAlphaNumToCheck = sAlphaNumToCheck + " ";

	for (var i=0;i<sSrcString.length;i++)
	{
		sTempStr			= sSrcString.substring(i,i+1)
		if (sAlphaNumToCheck.indexOf(sTempStr) < 0)
		{
			iAlphaCtr++;
			sFound+=" "+sTempStr;
			sSpace+=sTempStr;
			sArwPos+="^";
		}
		else
		{
			sArwPos+="_";
		}
	}
	if (iAlphaCtr!=0)
	{
		if (sSpace.indexOf(" ") > -1)
		{
			sFound+=" and a space";
		}
		return true;
	}
	return false;
}


/**
	function that checks if the input number is a leap year

	input:
			iYear - to check whether this year is leap year or not.
	output:
			boolean - true in case iYear is found to be leap year
			false if its not.
*/
function isLeap(iYear)
{
	var iFlag = 0
	if (iYear % 4 == 0)
	  iFlag = 1
	return iFlag
}


/**
	Function that moves options from one selection box (list box) to another
	removes the all selected options from one combo box and adds them to the second list box

	input:
			fromCombo and toCombo in terms of formName.ElementName.
	output:
			none
*/

function MoveElements(FromCombo,ToCombo)
{
		var to_remove_counter=0; //number of options that were removed (num selected options)
 		var iSelectedcount=0;
		var iExistingcount=0;


		for (var i=0;i<FromCombo.options.length;i++)
		{
			if (FromCombo.options[i].selected==true)
			{
				iSelectedcount++;
			}
		}

		//move selected options to right select box (to)
		for (var i=0;i<FromCombo.options.length;i++)
		{
			if ((FromCombo.options[i].selected == true) && (FromCombo.options[i].value != 0))
			{
				var addtext=FromCombo.options[i].text;
				var addvalue=FromCombo.options[i].value;
				ToCombo.options[ToCombo.options.length]=new Option(addtext,addvalue);
				FromCombo.options[i].selected=false;
				++to_remove_counter;
			}
			else
			{
				FromCombo.options[i-to_remove_counter].selected=false;
				FromCombo.options[i-to_remove_counter].text=FromCombo.options[i].text;
				FromCombo.options[i-to_remove_counter].value=FromCombo.options[i].value;
			}
		}

		//now cleanup the last remaining options
		var numToLeave=FromCombo.options.length-to_remove_counter;
		for (i=FromCombo.options.length-1;i>=numToLeave;i--)
		{
			FromCombo.options[i]=null;
		}

	return true;
}

/**
* Function which will check all the checkboxes.
*/
function SelectAllFromCheck(FromCheck)
{
	if(FromCheck)
	{
        if (FromCheck.length>1)
        {
            for (var i=0;i<FromCheck.length;i++)
            {
                FromCheck[i].checked=true;
            }
        }
        else
        {
            FromCheck.checked=true;
        }
	}
	 return true;
}

/**
* Function which will Deselect all  the  checkboxes.
*/
function DeSelectAllFromCheck(FromCheck)
{
    if(null != FromCheck)
    {
        if (FromCheck.length>1)
        {
            for (var i=0;i<FromCheck.length;i++)
            {
                FromCheck[i].checked=false;
            }
        }
        else
        {
            FromCheck.checked=false;
        }
     }
	 return true;
}


/**
* Function which will select all the options in
* a list box.
*/

function SelectAllFromList(combo)
{
   if(combo!=null)
   {
	for (var i=0;i<combo.options.length;i++)
	{

		combo.options[i].selected=true;
	}
   }
}

/**
	Used to update the button name that has been clicked
	to a hidden variable that will help in doing the validations
*/

function updateActionName(inForm, sAction)
{
	inForm.actionname.value	= sAction;
}


function doActivity()
{
	document.forms[0].submit();
}

/**
	To implement the radio button kind of feature using
	two check boxes.
*/

function doUnCheck(PeerCheckBox)
{
	PeerCheckBox.checked = false;
}

/**
* function  to check atleast one check box is checked.
* returns true if checked,false if not.
*/
function validateCheckBox(index,obj)
{
	if (obj.length>1)
	{
		for (var i=0;i<obj.length;i++)
		{
			//If atleast one is checked,
			if(obj[i].checked==true)
				return true;
		}
	}
	else
	{
		if (!obj.checked)
		{
			alert(sMessageArr[index]);
			return false;
		}
		else
		{
			return true;
		}
	}
	alert(sMessageArr[index]);
	return false;
}


/**
Useful for the multi select listboxes.. this will help to select
all the items in the listbox
*/
function selectAllFromList(combo)
{
  if(combo!=null)
  {
	for (var i=0;i<combo.options.length;i++)
	{
		combo.options[i].selected=true;
	}
  }

}
/**
* to check for float/double
* returns true if float
*/
function isFloat(sSrcString)
{
	var iAlphaCtr	= 0;
	var sArwPos		= "";
	var sFound		= "";
	var sSpace		= "";
	var sTempStr	= "";
	var sNumToCheck	= ".0123456789";

	for (var i=0;i<sSrcString.length;i++)
	{
		sTempStr	= sSrcString.substring(i,i+1)
		if (sNumToCheck.indexOf(sTempStr) < 0)
		{
			iAlphaCtr++;
			sFound+=" "+sTempStr;
			sSpace+=sTempStr;
			sArwPos+="^";
		}
		else
		{
			sArwPos+="_";
		}
	}
	if (iAlphaCtr!=0)
	{
		if (sSpace.indexOf(" ")>-1)
		{
			sFound+=" and a space";
		}
		return false;
	}
	return true;
}


/** function which checks and un checks all the check boxes
by checking single check box
*/

function SelectUnSelectAll( my_form, field_name )
{
    if(my_form.clickcontrol.checked)
    {
       flag = true;
    }
    else
    {
       flag = false;
    }
    len     =       my_form.elements.length;
    var     index   =       0;
    for( index=0; index < len; index++ )
    {
        if( my_form.elements[index].name == field_name )
        {
            my_form.elements[index].checked=flag;
        }
    }
}

/**
This function will check all the checkboxes that are in
between 2 checked ones
*/

function checkRange(inFormCheckBox)
{
	var iChecked = 0;
	var iFirstCheck = 0;
	var iSecondCheck = 0;
	for (i=0;i<inFormCheckBox.length;i++)
	{
		if (inFormCheckBox[i].checked)
		{
			iChecked = iChecked + 1;
			if (iChecked == 2)
			{
				iSecondCheck = i;
				break;
			}
			iFirstCheck = i;
		}
	}

	for (i=iFirstCheck;i<iSecondCheck;i++)
	{
		inFormCheckBox[i].checked = true;
	}
}


/**
This function will bring up a new page
*/




function MM_goToURL()
{ //v3.0

  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}



/**
This function will bring up a new window
*/


function MM_openBrWindow(theURL,winName,features)
{ //v2.0
  window.open(theURL,winName,features);
}

function setFormActionAs(inForm,targetForm, actionValue)
{
	var licensefeeid = 0;
//	alert("Setting Action Form="+actionValue);
    if (inForm.licensefeeidradio.length)
    {
        for (i=0;i < inForm.licensefeeidradio.length;i++)
        {
            if(inForm.licensefeeidradio[i].checked)
            {
                licensefeeid = inForm.licensefeeidradio[i].value;
				break;
            }
        }
    }
    else
    {
       licensefeeid = inForm.licensefeeidradio.value;
    }

    targetForm.licensefeeid.value=licensefeeid;


    if( actionValue == 'deleteLicenseFee')
    {
        if(confirm("Are you sure you want to delete the record of licensefeeid  "+licensefeeid+" ?"))
        {
            targetForm.methodToCall.value = "delete";
			targetForm.action="deleteLicenseFee.do";
			targetForm.submit();
            return false;
        }
		else
		{
			return false;
		}
    }
}

function selectDefaultValue(obj, val, valText)
{
    if (obj == null) return false;

    if (val == null)
    {
        obj.options[0].selected = true;
        return;
    }

    var checkValue = (valText == null || valText == 0)
    var tmpVal = null;
    for (i = 0; i < obj.options.length; i++)
    {
        tmpVal = checkValue ? obj.options[i].value : obj.options[i].text
        if (tmpVal == val)
        {
            obj.options[i].selected = true
            return;
        }
    }
}

// To select the first object in the listing page
function selectElement(obj)
{
	if (obj == null) return;

	if (obj.length) obj[0].checked = true;
	else obj.checked = true;
}


// To Validate Email Format
function echeck(str)
{

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1)
	{
	   alert("Invalid e-mail address")
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
	   alert("Invalid e-mail address")
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{
		alert("Invalid e-mail address")
		return false
	}

	if (str.indexOf(at,(lat+1))!=-1)
	{
		alert("Invalid e-mail address")
		return false
	 }

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	{
		alert("Invalid e-mail address")
		return false
	 }

	if (str.indexOf(dot,(lat+2))==-1)
	{
		alert("Invalid e-mail address")
		return false
	 }

	if (str.indexOf(" ")!=-1)
	{
		alert("Invalid e-mail address")
		return false
	 }

	 return true
}

function validateZIP(field)
{
	var valid = "0123456789-";
	var hyphencount = 0;
	var zipContents = field.value;

	if (zipContents.length!=5 && zipContents.length!=10)
	{
		alert("Please enter your 5 digit or 5 digit+4 zip code.");
		return false;
	}
	for (var i=0; i < zipContents.length; i++)
	{
		temp = "" + zipContents.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1")
		{
			alert("Invalid characters in your zip code.  Please try again.");
			return false;
		}
		if ((hyphencount > 1) || ((zipContents.length==10) && ""+zipContents.charAt(5)!="-"))
		{
			alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
			return false;
		}
	}
	return true;
}


// Check that the number of characters in a string is between a max and a min
function isValidLength(string, min, max) {
   if (string.length < min || string.length > max) return false;
   else return true;
}

// Check that a credit card number is valid based using the LUHN formula (mod10 is 0)
function isValidCreditCard(number) {
   number = '' + number;

   if (number.length > 16 || number.length < 13 ) return false;
   else if (getMod10(number) != 0) return false;
   else if (arguments[1]) {
      var type = arguments[1];
      var first2digits = number.substring(0, 2);
      var first4digits = number.substring(0, 4);

      if (type.toLowerCase() == 'visa' && number.substring(0, 1) == 4 &&
         (number.length == 16 || number.length == 13 )) return true;
      else if (type.toLowerCase() == 'mastercard' && number.length == 16 &&
         (first2digits == '51' || first2digits == '52' || first2digits == '53' || first2digits == '54' || first2digits == '55')) return true;
      else if (type.toLowerCase() == 'american express' && number.length == 15 &&
         (first2digits == '34' || first2digits == '37')) return true;
      else if (type.toLowerCase() == 'diners club' && number.length == 14 &&
         (first2digits == '30' || first2digits == '36' || first2digits == '38')) return true;
      else if (type.toLowerCase() == 'discover' && number.length == 16 && first4digits == '6011') return true;
      else if (type.toLowerCase() == 'enroute' && number.length == 15 &&
         (first4digits == '2014' || first4digits == '2149')) return true;
      else if (type.toLowerCase() == 'jcb' && number.length == 16 &&
         (first4digits == '3088' || first4digits == '3096' || first4digits == '3112' || first4digits == '3158' || first4digits == '3337' || first4digits == '3528')) return true;

    // if the above card types are all the ones that the site accepts, change the line below to 'else return false'
    else return true;
   }
   else return true;
}

// Check that a Canadian postal code is valid
function isValidPostalcode(postalcode) {
   if (postalcode.search) {
      postalcode = removeSpaces(postalcode);
      if (postalcode.length == 6 && postalcode.search(/^[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d$/) != -1) return true;
      else if (postalcode.length == 7 && postalcode.search(/^[a-zA-Z]\d[a-zA-Z]-\d[a-zA-Z]\d$/) != -1) return true;
      else return false;
   }
   return true;
}

// Check that a US or Canadian phone number is valid
function isValidUSPhoneNumber(areaCode, prefixNumber, suffixNumber) {
   if (arguments.length == 1) {
      var phoneNumber = arguments[0];
      phoneNumber = phoneNumber.replace(/\D+/g, '');
      var length = phoneNumber.length;
      if (phoneNumber.length >= 7) {
         var areaCode = phoneNumber.substring(0, length-7);
         var prefixNumber = phoneNumber.substring(length-7, length-4);
         var suffixNumber = phoneNumber.substring(length-4);
      }
      else return false;
   }
   else if (arguments.length == 3) {
      var areaCode = arguments[0];
      var prefixNumber = arguments[1];
      var suffixNumber = arguments[2];
   }
   else return true;

   if (areaCode.length != 3 || !isNumeric(areaCode) || prefixNumber.length != 3 || !isNumeric(prefixNumber) || suffixNumber.length != 4 || !isNumeric(suffixNumber)) return false;
   return true;
}

// Check that a string contains only letters and numbers
function isAlphanumeric(string, ignoreWhiteSpace) {
   if (string.search) {
      if ((ignoreWhiteSpace && string.search(/[^\w\s]/) != -1) || (!ignoreWhiteSpace && string.search(/\W/) != -1)) return false;
   }
   return true;
}

// Check that a string contains only letters
function isAlphabetic(string, ignoreWhiteSpace) {
   if (string.search) {
      if ((ignoreWhiteSpace && string.search(/[^a-zA-Z\s]/) != -1) || (!ignoreWhiteSpace && string.search(/[^a-zA-Z]/) != -1)) return false;
   }
   return true;
}

//Check that a string does not contain special characters
function containSpecialCharacters(str) {

	var sNumToCheck	= "0123456789";
	var sStringToCheck = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

	var iAlphaCtr	= 0;
	var sArwPos		= "";
	var sFound		= "";
	var sSpace		= "";
	var sTempStr	= "";

	for (var i=0;i<str.length;i++)
	{
		sTempStr	= str.substring(i,i+1)
		if (sNumToCheck.indexOf(sTempStr) < 0 && sStringToCheck.indexOf(sTempStr) < 0)
		{
			return false;
		}
	}
	return true;
}

// Check that a string contains only numbers
function isNumeric(string, ignoreWhiteSpace) {
   if (string.search) {
      if ((ignoreWhiteSpace && string.search(/[^\d\s]/) != -1) || (!ignoreWhiteSpace && string.search(/\D/) != -1)) return false;
   }
   return true;
}

// Remove characters that might cause security problems from a string
function removeBadCharacters(string) {
   if (string.replace) {
      string.replace(/[<>\"\'%;\)\(&\+]/, '');
   }
   return string;
}

// Remove all spaces from a string
function removeSpaces(string) {
   var newString = '';
   for (var i = 0; i < string.length; i++) {
      if (string.charAt(i) != ' ') newString += string.charAt(i);
   }
   return newString;
}

// Remove leading and trailing whitespace from a string
function trimWhitespace(string) {
   var newString  = '';
   var substring  = '';
   beginningFound = false;

   // copy characters over to a new string
   // retain whitespace characters if they are between other characters
   for (var i = 0; i < string.length; i++) {

      // copy non-whitespace characters
      if (string.charAt(i) != ' ' && string.charCodeAt(i) != 9) {

         // if the temporary string contains some whitespace characters, copy them first
         if (substring != '') {
            newString += substring;
            substring = '';
         }
         newString += string.charAt(i);
         if (beginningFound == false) beginningFound = true;
      }

      // hold whitespace characters in a temporary string if they follow a non-whitespace character
      else if (beginningFound == true) substring += string.charAt(i);
   }
   return newString;
}

// Returns a checksum digit for a number using mod 10
function getMod10(number) {

   // convert number to a string and check that it contains only digits
   // return -1 for illegal input
   number = '' + number;
   number = removeSpaces(number);
   if (!isNumeric(number)) return -1;

   // calculate checksum using mod10
   var checksum = 0;
   for (var i = number.length - 1; i >= 0; i--) {
      var isOdd = ((number.length - i) % 2 != 0) ? true : false;
      digit = number.charAt(i);

      if (isOdd) checksum += parseInt(digit);
      else {
         var evenDigit = parseInt(digit) * 2;
         if (evenDigit >= 10) checksum += 1 + (evenDigit - 10);
         else checksum += evenDigit;
      }
   }
   return (checksum % 10);
}


function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone)
{
	// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function showHidePaymentFields(paymentMode)
{
    ccTabObj = document.all['creditcardtab'];
    checkTabObj = document.all['checktab'];
    if(parseInt(paymentMode) == 2)
    {
        ccTabObj.style.display = "";
        checkTabObj.style.display = "none";
    }
    else if(parseInt(paymentMode) == 4 || parseInt(paymentMode) == 5 || parseInt(paymentMode) == 10)
    {
        ccTabObj.style.display = "none";
        checkTabObj.style.display = "";
    }
    else
    {
        ccTabObj.style.display = "none";
        checkTabObj.style.display = "none";
    }
}

function enableOrDisablePaymetnFields(flag)
{
    document.all['paymentMode'].disabled = flag;
    ccTabObj = document.all['creditcardtab'];
    commentsTabObj = document.all['commentstab'];
    checkTabObj = document.all['checktab'];
    if(flag)
    {
        ccTabObj.style.display = "none";
        checkTabObj.style.display = "none";
        commentsTabObj.style.display = "none";
    }
    else
    {
        commentsTabObj.style.display = "";
        showHidePaymentFields(document.all['paymentMode'].value);
    }
}

function validatePaymentForm(inForm)
{
	if(inForm.spcifyPaymentLater)
    {
    	if(inForm.spcifyPaymentLater.checked)
    	{
    		inForm.paymentMode.disabled = false;
            inForm.Submit.disabled = true;  // disabling the submit button
            inForm.Submit2.disabled = true; // disabling the Cancel button
    	    inForm.submit();
    	    return true;
    	}
    }

    if(inForm.paymentMode.value == "")
    {
        alert("Please select a payment mode");
        inForm.paymentMode.focus();
        return false;
    }
    paymode = parseInt(inForm.paymentMode.value);

	//inForm.paymentType.value = returnSelectedTextInCombo(inForm.paymentMode, inForm.paymentMode.value);

    if(paymode == 2)
    {
        if(inForm.name_on_credit_card.value == "")
        {
            alert("Please enter the name on the credit card");
            inForm.name_on_credit_card.focus();
            return false;
        }
        if(inForm.credit_card_number.value == "")
        {
            alert("Please enter the credit card number");
            inForm.credit_card_number.focus();
            return false;
        }
        if(isNaN(inForm.credit_card_number.value) || (inForm.credit_card_number.value.length < 12) || (inForm.credit_card_number.value.length > 16))
        {
            alert("Please enter a valid credit card number");
            inForm.credit_card_number.value="";
            inForm.credit_card_number.focus();
            return false;
        }
        if(inForm.credit_card_month.value == "")
        {
            alert("Please select the credit card month");
            inForm.credit_card_month.focus();
            return false;
        }
        if(inForm.credit_card_year.value == "")
        {
            alert("Please enter the credit card year");
            inForm.credit_card_year.focus();
            return false;
        }
        if(isNaN(inForm.credit_card_year.value) || inForm.credit_card_year.value.length < 4)
        {
            alert("Please enter a valid credit card year");
            inForm.credit_card_year.value="";
            inForm.credit_card_year.focus();
            return false;
        }
        if(inForm.credit_card_zipcode.value == "")
        {
            alert("Please enter the zip code");
            inForm.credit_card_zipcode.focus();
            return false;
        }
        if(inForm.credit_card_zipcode.value != "")
        {
            flag = validateZIP(inForm.credit_card_zipcode);
            if(!flag)
            {
                inForm.credit_card_zipcode.value= "";
                inForm.credit_card_zipcode.focus();
                return false;
            }
        }
        if(inForm.credit_card_cvscode.value == "")
        {
            alert("Please enter the cvs code");
            inForm.credit_card_cvscode.focus();
            return false;
        }
        if(isNaN(inForm.credit_card_cvscode.value) || inForm.credit_card_cvscode.value.length < 3 || inForm.credit_card_cvscode.value.length > 4)
        {
            alert("Please enter a valid cvs code");
            inForm.credit_card_cvscode.value="";
            inForm.credit_card_cvscode.focus();
            return false;
        }
    }
    if(paymode == 4 || paymode == 5 || paymode == 10)
    {
        if(inForm.check_number.value == "")
        {
            alert("Please enter the check number");
            inForm.check_number.focus();
            return false;
        }
        if(isNaN(inForm.check_number.value))
        {
            alert("Please enter a valid check number ");
            inForm.check_number.value="";
            inForm.check_number.focus();
            return false;
        }
        if(inForm.check_drawn_on_bank.value == "")
        {
            alert("Please enter the name of the bank");
            inForm.check_drawn_on_bank.focus();
            return false;
        }
        /*if(inForm.check_bank_accountno.value == "")
        {
            alert("Please enter the bank account number");
            inForm.check_bank_accountno.focus();
            return false;
        }
        if(isNaN(inForm.check_bank_accountno.value))
        {
            alert("Please enter a valid bank account number ");
            inForm.check_bank_accountno.value="";
            inForm.check_bank_accountno.focus();
            return false;
        } */
    }

    inForm.paymentMode.disabled = false;
    inForm.Submit.disabled = true;  // disabling the submit button
    inForm.Submit2.disabled = true; // disabling the Cancel button
    inForm.submit();

}

//TODO: has to implement datepicker
function getDateFromCalendar(obj)
{
	if (obj != null)
		obj.value = "05/04/2005";
}

function returnSelectedTextInCombo(obj, val)
{

    var selText = "";
    if (obj.type.substring(0,3) == 'sel')
    {
        for (j = 0; j < obj.options.length; j++)
        {
            if(obj.options[j].value.toUpperCase()  == val.toUpperCase())
            {
                selText = obj.options[j].text;
            }
        }
    }
    return selText;
}

function movecursor(inForm, CurrentElement, MaxSize, NextElement)
{

    if (CurrentElement.value.length == MaxSize)
    {
        if (NextElement != null)
        {
            NextElement.focus();
        }
    }
}

function movecursorWithNumCheck(inForm, CurrentElement, MaxSize, NextElement,evt)
{

	if(!checkForNum(evt))
	{
		return false;
	}

    if (CurrentElement.value.length == MaxSize)
    {
        if (NextElement != null)
        {
            NextElement.focus();
        }
    }
}

function fnAddRecords(tableName, wid, ht, fromWhere)
{
    //alert(tableName)
    //alert(eval(tableName))

    var tableObj = document.all.item(tableName)
    if (!eval(tableObj))
    {
        return false;
    }

    if (wid == null) wid = 720;
    if (ht == null) ht = 350;
    tblRef = tableObj;
	//alert(tableObj.innerHTML)
    refObj = tableObj.rows(tableObj.rows.length-1)
    //alert(refObj.innerHTML)
    /*

    if (childWindow != null)
    {
        //alert("Please save and close the Window first")
        childWindow.focus();
        return;
    }
    */
	var url = '/common/pageAddRecords.jsp?fromWhere='+fromWhere;
    childWindow = window.open(url, null, 'height='+ ht + ',width=' + wid + ',scrollbars=yes,status=no')
    //childWindow = window.open('/common/pageAddRecords.jsp', null, 'height=300,width=350,scroll=no,status=no')
}

function fnRemoveRecords(tableName, objType)
{
	// objType 1 - checkbox, 2 - radio

    var tableObj = document.all.item(tableName)
    var rowSelected = "false";
    //alert(tableName)
    //alert(eval(tableObj))
    if (!eval(tableObj))
    {
        return false;
    }

    if (objType == null) objType = 1;

	for (iCtr = 0; iCtr < tableObj.rows.length; iCtr++){
		if (tableObj.rows(iCtr).cells(0).children.length > 0){
			if (tableObj.rows(iCtr).cells(0).children(0).type == "checkbox" && tableObj.rows(iCtr).cells(0).children(0).checked){
				rowSelected = "true";
				break;
			}
			else {
			rowSelected = "false";
			}
		}
	}

 if (rowSelected=="true"){
	if(confirm('Are you sure want to remove these records?'))
    {
	    if (objType == 1)
	    {
	        //for (iCtr = 0; iCtr < tableObj.rows.length; iCtr++)
	        for (iCtr = tableObj.rows.length -1 ; iCtr >= 0; iCtr--)
	        {
	            //alert(tableObj.rows(iCtr).cells(0).children.length)
	            if (tableObj.rows(iCtr).cells(0).children.length > 0)
	            {
	                //alert(tableObj.rows(iCtr).cells(0).children(0).type)
	                if (tableObj.rows(iCtr).cells(0).children(0).type == "checkbox" &&
	                    tableObj.rows(iCtr).cells(0).children(0).checked)
	                {
	                    //alert(1 + " = " + oprDelete)
	                    tableObj.rows(iCtr).style.display = "none"
	                    if (tableObj.rows(iCtr).cells(0).children.length)
	                    {
	                        for (iChild = 0; iChild < tableObj.rows(iCtr).cells(0).children.length; iChild++)
	                        {
	//                          alert(tableObj.rows(iCtr).cells(0).children(iChild).name.indexOf("_pk") > 0);
	                            if(tableObj.rows(iCtr).cells(0).children(iChild).name.indexOf("_pk") > 0)
	                            {
	                                if(tableObj.rows(iCtr).cells(0).children(iChild).value <= 0)
	                                {
	                                    tableObj.deleteRow(iCtr);
	                                    continue;
	                                }
	                            }

	                            //alert(tableObj.rows(iCtr).cells(0).children(iChild).name)
	                            if (tableObj.rows(iCtr).cells(0).children(iChild).name.indexOf("_opr") > 0)
	                            {
	                                tableObj.rows(iCtr).cells(0).children(iChild).value = oprDelete
	                            }
	                        }
	                    }
	                }
	            }
	        }
	    }
	  }
	 }
	    else
	    {
	    alert ("Please select a record to remove.");
	    return false;
	    }

}


function checkInsuranceStatus(inForm)
{


if(inForm.indEOInsurance.value != "")
	{

	   if(inForm.indEOInsuranceName.value != "")
		{
		     inForm.indEOInsurance[0].selected = true;
		}


	}

}

function disableSubmit(thisObject)
{
	   var inForm = thisObject.form;
	   thisObject.disabled = true;
	   inForm.submit();
}

function disableObjectAndSubmit(obj)
{
    if (eval(obj))
    {
        obj.disabled = true;
        if (eval(obj.form))
            obj.form.submit();
    }
}

// Used to find whether the val already exist in the obj.
function containsValueInObject(obj, val)
{
    //alert(val)
    if (!eval(obj)) return false;
    for (k = 0; k < obj.options.length; k++)
    {
        //alert(obj.options[k].value + "=" + ", val = " + val)
        if (obj.options[k].value == val)
            return true;
    }
    return false;
}


function selectDeselectLicensees(selectAll,obj)
{
	if(selectAll.checked)
	{
		SelectAllFromCheck(obj);
	}
	else if(!selectAll.checked)
	{
		DeSelectAllFromCheck(obj);
	}
}

function validate4CheckAll(checkAllObj, chkObj)
{
    var selectAll = true;
    if(null != chkObj)
    {
        if(chkObj.length)
        {
            for(var i=0; i < chkObj.length; i++)
            {
                if(!chkObj[i].checked)
                {
                    selectAll = false;
                }
            }
        }
        else
        {
            if(!chkObj.checked)
            {
                selectAll = false;
            }
        }
    }
    if(selectAll)
        checkAllObj.checked = true;
    else
        checkAllObj.checked = false;
}

function validateRenewalPaymentFormForPublicSite(inForm)
{

	if(inForm.name_on_credit_card.value == "")
    {
        alert("Please enter the name on the credit card");
        inForm.name_on_credit_card.focus();
        return false;
    }
    if(inForm.credit_card_number.value == "")
    {
        alert("Please enter the credit card number");
        inForm.credit_card_number.focus();
        return false;
    }
    if(isNaN(inForm.credit_card_number.value) || (inForm.credit_card_number.value.length < 12) || (inForm.credit_card_number.value.length > 16))
    {
        alert("Please enter a valid credit card number");
        inForm.credit_card_number.value="";
        inForm.credit_card_number.focus();
        return false;
    }
    if(inForm.credit_card_month.value == "")
    {
        alert("Please select the credit card month");
        inForm.credit_card_month.focus();
        return false;
    }
    if(inForm.credit_card_year.value == "")
    {
        alert("Please enter the credit card year");
        inForm.credit_card_year.focus();
        return false;
    }
    if(isNaN(inForm.credit_card_year.value) || inForm.credit_card_year.value.length < 4)
    {
        alert("Please enter a valid credit card year");
        inForm.credit_card_year.value="";
        inForm.credit_card_year.focus();
        return false;
    }
    if(inForm.credit_card_zipcode.value == "")
    {
        alert("Please enter the zip code");
        inForm.credit_card_zipcode.focus();
        return false;
    }
    if(inForm.credit_card_zipcode.value != "")
    {
        flag = validateZIP(inForm.credit_card_zipcode);
        if(!flag)
        {
            inForm.credit_card_zipcode.value= "";
            inForm.credit_card_zipcode.focus();
            return false;
        }
    }
    if(inForm.credit_card_cvscode.value == "")
    {
        alert("Please enter the cvs code");
        inForm.credit_card_cvscode.focus();
        return false;
    }
    if(isNaN(inForm.credit_card_cvscode.value) || inForm.credit_card_cvscode.value.length < 3 || inForm.credit_card_cvscode.value.length > 4)
    {
        alert("Please enter a valid cvs code");
        inForm.credit_card_cvscode.value="";
        inForm.credit_card_cvscode.focus();
        return false;
    }
    if(!inForm.checkCertificate.checked)
    {
    	alert("Please check the continuing education requirements check box to proceed")
    	inForm.checkCertificate.focus();
    	return false;
    }
    inForm.PayNow.disabled = true;  // disabling the submit button
    inForm.Cancel.disabled = true; // disabling the Cancel button

    if(inForm.checkCertificate.checked)
    {
    	inForm.checkCertificateVar.value = "on";
    }
    else
    {
    	inForm.checkCertificateVar.value = "off";
    }
    inForm.submit();
}


function moveToNextTab(field,content,fieldName)
{

	 if(content.length == field.maxLength)
	  {
		var  next = field.tabIndex;

		if (next < fieldName.length)
		{
		  fieldName[next].focus();
		}

	  }

}

function validatePaymentForm(obj)
{
    var inForm = obj.form;

    if(inForm.selectedFees.options.length == 0)
    {
      alert("Please select the fees for payment");
      return false;
    }

	var addvalue,FieldID,amount,totalAmount = 0;

    for (var i=0;i<inForm.selectedFees.options.length;i++)
    {

        addvalue = inForm.selectedFees.options[i].value;
        inForm.selectedFees.options[i].selected = true;
        FieldID= "FeeAmount"+addvalue;

        amount = document.getElementById(FieldID).value;

        if (amount == "."){
		alert ("Please enter a valid fee amount");
        document.getElementById(FieldID).focus();
        return false;
        }
    }

    if(inForm.paymentMode.value == "")
    {
        alert("Please select a payment mode");
        inForm.paymentMode.focus();
        return false;
    }
    paymode = parseInt(inForm.paymentMode.value);

	//inForm.paymentType.value = returnSelectedTextInCombo(inForm.paymentMode, inForm.paymentMode.value);

    if(paymode == 2)
    {
        if(inForm.name_on_credit_card.value == "")
        {
            alert("Please enter the name on the credit card");
            inForm.name_on_credit_card.focus();
            return false;
        }
        if(inForm.credit_card_number.value == "")
        {
            alert("Please enter the credit card number");
            inForm.credit_card_number.focus();
            return false;
        }
        if(isNaN(inForm.credit_card_number.value) || (inForm.credit_card_number.value.length < 12) || (inForm.credit_card_number.value.length > 16))
        {
            alert("Please enter a valid credit card number");
            inForm.credit_card_number.value="";
            inForm.credit_card_number.focus();
            return false;
        }
        if(inForm.credit_card_month.value == "")
        {
            alert("Please select the credit card month");
            inForm.credit_card_month.focus();
            return false;
        }
        if(inForm.credit_card_year.value == "")
        {
            alert("Please enter the credit card year");
            inForm.credit_card_year.focus();
            return false;
        }
        if(isNaN(inForm.credit_card_year.value) || inForm.credit_card_year.value.length < 4)
        {
            alert("Please enter a valid credit card year");
            inForm.credit_card_year.value="";
            inForm.credit_card_year.focus();
            return false;
        }
      /*  if(inForm.credit_card_zipcode.value == "")
        {
            alert("Please enter the zip code");
            inForm.credit_card_zipcode.focus();
            return false;
        }
        if(inForm.credit_card_zipcode.value != "")
        {
            flag = validateZIP(inForm.credit_card_zipcode);
            if(!flag)
            {
                inForm.credit_card_zipcode.value= "";
                inForm.credit_card_zipcode.focus();
                return false;
            }
        }


        if(inForm.credit_card_cvscode.value == "")
        {
            alert("Please enter the cvs code");
            inForm.credit_card_cvscode.focus();
            return false;
        }


        if(isNaN(inForm.credit_card_cvscode.value) || inForm.credit_card_cvscode.value.length < 3 || inForm.credit_card_cvscode.value.length > 4)
        {
            alert("Please enter a valid cvs code");
            inForm.credit_card_cvscode.value="";
            inForm.credit_card_cvscode.focus();
            return false;
        }*/
    }

    if(paymode == 4 || paymode == 5 || paymode == 10)
    {
        if(inForm.check_number.value == "")
        {
            alert("Please enter the check number");
            inForm.check_number.focus();
            return false;
        }
        if(isNaN(inForm.check_number.value))
        {
            alert("Please enter a valid check number ");
            inForm.check_number.value="";
            inForm.check_number.focus();
            return false;
        }
       /* if(inForm.check_drawn_on_bank.value == "")
        {
            alert("Please enter the name of the bank");
            inForm.check_drawn_on_bank.focus();
            return false;
        }
        if(inForm.check_bank_accountno.value == "")
        {
            alert("Please enter the bank account number");
            inForm.check_bank_accountno.focus();
            return false;
        }
        if(isNaN(inForm.check_bank_accountno.value))
        {
            alert("Please enter a valid bank account number ");
            inForm.check_bank_accountno.value="";
            inForm.check_bank_accountno.focus();
            return false;
        }
        if(inForm.issuersName.value == "")
        {
            alert("Please enter the issuers name");
            inForm.issuersName.focus();
            return false;
        }
        if(!isNaN(inForm.issuersName.value))
        {
            alert("Please enter a valid issuers name");
            inForm.issuersName.value="";
            inForm.issuersName.focus();
            return false;
        }*/
    }

    inForm.paymentMode.disabled = false;

    computeTotalFees(obj.form);

    disableObjectAndSubmit(obj);

}

function checkForNum(evt)
{
	//alert(event);
	//alert(evt);
	var charCode = (evt.which) ? evt.which : event.keyCode
	//alert(charCode > 47 && charCode < 58)
	if (charCode > 47 && charCode < 58)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function checkForFloat(evt, txtid)
{
	//alert(event);
	//alert(txtid);
	var text = document.getElementById(txtid);
	//alert(text.value);
	var value = text.value;
	//alert(value.indexOf('.'));
	var charCode = (evt.which) ? evt.which : event.keyCode

	if (value.indexOf('.')> -1)
	{
		if (charCode > 47 && charCode < 58 )
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		if (charCode > 45 && charCode < 58 && charCode!= 47 )
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}

