// trim functions
function lTrim(s) { return s.replace(/^\s+/g,''); }
function rTrim(s) { return s.replace(/\s+$/g,''); }
function trim(s) { return rTrim(lTrim(s)); }

//text field validation

function FormValidate(lst, lstnames)
{
        var lstarray1 = lst.split(",");
        var lstarray2 = lstnames.split(",");
        for(i=0;i<=lstarray1.length-1; i++ )
        {
                if(trim(document.getElementById(lstarray1[i]).value) == "" )
                {
                        alert ("Please enter value in" + " " + lstarray2[i] + " " + "field.");
                        return (false);
                }

        }
        return (true);
}

// check match password
function PassValidate(pwd1, pwd2)
{
        var pass1 = trim(document.getElementById(pwd1).value);
        var pass2 = trim(document.getElementById(pwd2).value);
	if (pass1 != pass2)
        {
                alert ("Confirm Password field doesn't match.");
                return (false);
        }
        else
        {
                return(true);
        }
}

// check password length
function NewUserValidate()
{
		var err = '';
		
		var fname = 	trim(document.getElementById('name_f').value);
		var lname = 	trim(document.getElementById('lname_f').value);
		var homeph = 	trim(document.getElementById('home_f').value);
		var cellph= 	trim(document.getElementById('cell_f').value);
		var email1= 	trim(document.getElementById('email1_f').value);
		var username=   trim(document.getElementById('username').value);
		var utype= 		trim(document.getElementById('utype').value);
		var tier=		trim(document.getElementById('tier').value);
        var pass1 = trim(document.getElementById('passwd').value);
		var pass2 = trim(document.getElementById('confpasswd').value);
	
	if (fname.length <1){ err += "Please enter a First Name.\n"; }
	if (lname.length <1){ err += "Please enter a Last Name.\n"; }
	if (homeph.length <1){ err += "Please enter a Home Phone.\n"; }
	if (cellph.length <1){ err += "Please enter a Cell Phone.\n"; }	
	if (utype.length <3) { err += "Please select a User Type.\n" }
	if (tier.length >1) { err += "Please select a User Tier.\n" }
	if (username.length <5){ err += "Username must be at least 5 characters.\n"; }
    if (pass1 != pass2){ err += "Confirm Password field doesn't match.\n"; }
	if (pass1.length  <5 ){ err += "Password must be at least 5 characters.\n"; }

	if(err.length <1){ return true; }
	else { alert(err); return false; }
}


//dropdown validation

function DropValidate(dd,ddisplay)
{
        var lstarray1 = dd.split(",");
        var lstarray2 = ddisplay.split(",");
        var flag=0;

         for(i=0;i<=lstarray1.length-1; i++ )
        {
                if(document.getElementById(lstarray1[i]).selectedIndex == '' )
                {
                        alert ("Please select " + " " + lstarray2[i]);
                        flag=1;
                        return (false);
                }
        }
                if(!flag) return(true);

}

// check the character count for SMS messsages

function char_count(msg_sms)
{
     msgobj=document.getElementById(msg_sms);
     var count=msgobj.value.length;
     if (count > 160)
     {
          alert ('Message can not be longer than 160 characters for sending SMS.');
          return (false);
     }
     else
     {
        return (true);
     }
}

function RadioValidate(rb, msg)
{
        var lstarray = rb.split(",");

        for (j=0;j<lstarray.length;j++)
        {

                var obj1 = document.getElementsByName(lstarray[j]);

                for (var i = 0; i < obj1.length; i++)
                {
                        if (obj1[i].checked)
                        {
                                break;
                        }
                }

                if ( i >= obj1.length)
                {
                        alert (msg);
                        return (false);
                }


        }
        return(true);
}

//used to edit adjuster information

function ShowForm(hideid, showid)
{
	/*
	ele_obj1=document.getElementById(hideid);
	ele_obj2=document.getElementById(showid);

	if(ele_obj1.style.display == '')
		ele_obj1.style.display = 'none';
	else
		ele_obj1.style.display = '';
	*/

        var hidearr = hideid.split(",");
        var showarr = showid.split(",");

	if(document.getElementById(hidearr[0]).style.display=='')
	{
          for(i=0;i<=hidearr.length-1; i++ )
          {
		document.getElementById(hidearr[i]).style.display = 'none';
		document.getElementById(showarr[i]).style.display = '';
          }
          return (true);
	}
        if(document.getElementById(hidearr[0]).style.display=='none')
        {
          for(i=0;i<=hidearr.length-1; i++ )
          {
                document.getElementById(hidearr[i]).style.display = '';
                document.getElementById(showarr[i]).style.display = 'none';
          }
          return (true);
        }
}

// used for payroll processing

function CheckTotal(lst, tot)
{
        var lstarray1 = lst.split(",");
	var total = 0;
        for(i=0;i<=lstarray1.length-1; i++ )
        {
		var chk = document.getElementById(lstarray1[i]).value;
		total = parseFloat(total) + parseFloat(chk);
	}
	if(total!=parseFloat(tot))
	{
		alert("Check total does not match with the total amount.");
		return false;
	}
		
        else return (true);
}

//used on payments due screen

function UpdateTotal(ids, amts, toid)
{
        var ids_arr = ids.split(",");
        var amts_arr = amts.split(",");
	var sum = 0;
        for(i=0;i<=ids_arr.length-1; i++ )
        {
		if(document.getElementById(ids_arr[i]).checked)
		{
			//alert(ids_arr[i]);
			sum += parseFloat(amts_arr[i]);
		}
		//alert(sum);
	}
	document.getElementById(toid).innerHTML = "$"+formatNumber(sum,2);
}

function formatNumber(expr, decimals)
{
        var str = "" + Math.round( eval(expr) * Math.pow(10,decimals))
        while (str.length <= decimals)
        {
                str = "0" + str
        } // maybe add some leading zeros

        var decpoint = str.length - decimals // find location of decimal point
        var result = str.substring(0,decpoint);
        if (decimals) result += "." + str.substring(decpoint,str.length);
        return result;
}



//following are the date validation functions
/* date functions start */

var dtCh= "/";
var minYear=1900;
var maxYear=2100;
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++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
function daysInFebruary (year){
        // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
        for (var i = 1; i <= n; i++) {
                this[i] = 31
                if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
                if (i==2) {this[i] = 29}
   }
   return this
}
function isDate(id){
        var dtStr = document.getElementById(id).value;
	var daysInMonth = DaysArray(12)
        var pos1=dtStr.indexOf(dtCh)
        var pos2=dtStr.indexOf(dtCh,pos1+1)
        var strMonth=dtStr.substring(0,pos1)
        var strDay=dtStr.substring(pos1+1,pos2)
        var strYear=dtStr.substring(pos2+1)
        strYr=strYear
        if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
        if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
        for (var i = 1; i <= 3; i++) {
                if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
        }
        month=parseInt(strMonth)
        day=parseInt(strDay)
        year=parseInt(strYr)
        if (pos1==-1 || pos2==-1){
                alert("The date format should be : mm/dd/yyyy")
                return false
        }
        if (strMonth.length<1 || month<1 || month>12){
                alert("Please enter a valid month")
                return false
        }
        if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
                alert("Please enter a valid day")
                return false
        }
        if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
                //alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
                alert("Please enter a valid 4 digit year");
                return false
        }
        if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
                alert("Please enter a valid date")
                return false
        }
return true
}

/* date functions end */


function IsNumeric(id, fldname)
{
   var sText = document.getElementById(id).value;
  if(sText!='')
  {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++)
   {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
      {
                alert('Please enter numeric value in '+fldname+' field.');
                //document.getElementById(id).value = '0';
                IsNumber = false;
                //return IsNumber;
      }
   }
   return IsNumber;
  }
  return true;
}


function checkLength(id, num,name)
{
   if(document.getElementById(id).value.length > num)
   {
                alert(name +' can be mamximum '+num+' characters long.');
                return false;
   }
  return true;
}


/// BELOW CODE BLOCKS ADDED BY DAVE NARD
function removeAllOptions(selectbox)
{
	var i;
	for(i=selectbox.options.length-1;i>=0;i--)
	{
		//selectbox.options.remove(i);
		selectbox.remove(i);
	}
}


function addOption(selectbox, value, text )
{
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;

	selectbox.options.add(optn);
}

function populate_claimtype(){
	if (document.filterform.claimstatus.value == 'Open'){
		removeAllOptions(document.filterform.claimtype);
		addOption(document.filterform.claimtype,"-1","Show All");
		addOption(document.filterform.claimtype,"4","Returned");
		addOption(document.filterform.claimtype,"3","Submitted");
		addOption(document.filterform.claimtype,"9","Erroneous");
	} else{
		removeAllOptions(document.filterform.claimtype);
		addOption(document.filterform.claimtype,"","------");
	}
}

function toggle_it(itemID){
      // Toggle visibility between none and inline
      if ((document.getElementById(itemID).style.display == 'none'))
      {
        document.getElementById(itemID).style.display = 'inline';
      } else {
        document.getElementById(itemID).style.display = 'none';
      }
}

function howManyChecked(whichForm,whichCheckBoxArray,myMax,myMin,whichQuestion)
/*
  This function takes 5 paramaters:
  whichForm -- the NAME of the form to be validated, a string
  whichCheckBoxArray -- the NAME of the checkbox to be checked, a string
  myMax -- the most you want the user to be able to check, an integer
  myMin -- the least you want the user to be able to check, an integer
  whichQuestion -- a short description of the question, a string
  
  example use:
  howManyChecked('userlist','checkvalue[]',250,1,'Industry');
*/
{
	var _countChecked = 0;
	var err = 0;
	/* iterate through all the elements in the checkbox array */
	for(i=0;i<document[whichForm][whichCheckBoxArray].length;i++)
	{
		/* and check to see if each is checked */
		if(document[whichForm][whichCheckBoxArray][i].checked==true)
			/* if it is, increment a counter */
			{ _countChecked++; }
	}
	/* is the count too high? */
	if(_countChecked > myMax)
		{ alert('Limit '+myMax+' selections for the '+whichQuestion+' process.');
			err = 1;}
	/* of is the count too low */
	else if(_countChecked < myMin)
		{ alert('You must select at least '+myMin+' entry for the '+whichQuestion+' process.');
			err = 1;}
	if (err == 1) { return false; }
}


function fill_tracker(action,result){
		removeAllOptions(document.trackerform.result);
		
		if(document.trackerform.action.value == 1){
			addOption(document.trackerform.result,"1a","Appointment Set");
			addOption(document.trackerform.result,"1b","Appointment Not Set");
		}
		if(document.trackerform.action.value == 2){
			addOption(document.trackerform.result,"2a","1st Attempt");
			addOption(document.trackerform.result,"2b","2nd Attempt");
			addOption(document.trackerform.result,"2c","3rd Attempt");
			addOption(document.trackerform.result,"2d","Contact Letter Sent");
		}
		if(document.trackerform.action.value == 3){
			addOption(document.trackerform.result,"3a","Initiated by Insured");
			addOption(document.trackerform.result,"3b","Initiated by Adjuster");
		}
		if(document.trackerform.action.value == 4){
			addOption(document.trackerform.result,"4a","Closed");
		}
		if(document.trackerform.action.value == 5){
			addOption(document.trackerform.result,"5a","Full");
			addOption(document.trackerform.result,"5b","Partial");
			addOption(document.trackerform.result,"5c","Supplement Claim");
		}
			
}


/// ABOVE CODE BLOCKS ADDED BY DAVE NARD