// Copyright 2003 - ISC Cuyahoga County
// by Konstantin T.
//
function FormValidation(FormObj) {
   // Run through each text field in this form and call the field validation code
   // Assumes each field has a validation function named the same as the field name
   var Name,CleanName,i,Char;
   for (i=0;i<FormObj.length;i++){
      if ('text'==FormObj.elements[i].type){ // validate only the text fields
         Name=FormObj.elements[i].name;
         CleanName=Name+"1"; // Field Name changed slightly so not same as field name
         //alert('Processing:'+ CleanName+"(FormObj."+Name+")")
         if (!eval(CleanName+"(FormObj."+Name+")")) return false; // If field fails validation, stop
      }
   }
   if (CustomValidation(FormObj)) return true; // Supplied by programmer; Custom for each form
   return false;
}

function ErrorMsg(FormObj,Text){
   if(confirm(Text)) FormObj.focus();
}

function StripNum(Val)   {
   //  Remove decorations (commas, dollar signs) from number
   var RefString = "-.0123456789", TempChar, OutString = "";
   Val = "" + Val; // Make sure Val is character string
   // Only keep chars in Val that are valid numeric chars (i.e. in "RefString")
   if(Val.length == 0) return ("");
   for (var i=0; i<Val.length; i++){
      TempChar=Val.substring(i, i+1);
      if (RefString.indexOf (TempChar, 0) != -1) OutString=OutString+TempChar; // TempChar is valid number
   }
   return (OutString);
}

function CommaFmt(Num) {
   // Add commas to large numbers
   var Result,IX,Trailer
   Result = "";
   Num=Num.toString()
   IX=Num.indexOf('.',0);
   if (IX<0) {
	  IX=Num.length
	 } else {
		Num=Num+"00"	
	 }	
   if ((Num.length-IX)>3) Num=Num.substring(0,IX+3) // only 2 decimal places past .
   if (IX<=4) return Num; // too short for commas
   Result=Num.substring(IX,Num.length)
   Num=Num.substring(0,IX)
   while (Num.length > 3) {
      Result = "," + Num.substring(Num.length-3,Num.length)+ Result;
      Num = Num.substring(0,Num.length-3)
   }
   Result = Num + Result;
   return Result;
}

function CommaFmt4(Num) {
   // Add commas to large numbers
   var Result,IX,Trailer
   Result = "";
   Num=Num.toString()
   IX=Num.indexOf('.',0);
   if (IX<0) {
	  IX=Num.length
	 } else {
		Num=Num+"00"	
	 }	
   if ((Num.length-IX)>5) Num=Num.substring(0,IX+5) // only 4 decimal places past .
   if (IX<=4) return Num; // too short for commas
   Result=Num.substring(IX,Num.length)
   Num=Num.substring(0,IX)
   while (Num.length > 3) {
      Result = "," + Num.substring(Num.length-3,Num.length)+ Result;
      Num = Num.substring(0,Num.length-3)
   }
   Result = Num + Result;
   return Result;
}

function isDate(Value) {
   // return false if Value is not a valid date
   var IX=Value.indexOf('/',0);
   if (-1==IX) return false;
   var MM=1*Value.substring(0,IX);
   Value=Value.substring(IX+1);
   IX=Value.indexOf('/',0);
   if (-1==IX) return false;
   var DD=1*Value.substring(0,IX);
   var YY=1*Value.substring(IX+1);
   if (isNaN(DD)) return false;
   if (isNaN(MM)) return false;
   if (isNaN(YY)) return false;
   if ((MM<1)||(MM>12)) return false;
   if ((DD<1)||(DD>32)) return false;
   if (YY<0) return false;
   var Ndays=28;
   if (0==YY%4) Ndays=29;
   if ((MM==2)&&(DD>Ndays)) return false
   if (((MM==6)||(MM==9)||(MM==11))&&(DD>30)) return false;
   return true // must be ok
}
function isNum(cNum) {
   cNum=parseFloat(StripNum(cNum))
  return (!isNaN(cNum));
}
function isNumFmt(FormObj)  {
   // Return false if Field isn't in numeric Format or empty"
   // Also reformat to x,xxx.xx format
   var Val=StripNum(FormObj.value);
   FormObj.value=Val;
   if (Val.length==0) return(true);
   Val=parseFloat(Val);
   if (isNaN(Val)) {
      alert('Please enter a valid number');
      return(false);
   }
//   FormObj.value=CommaFmt(Val);
   return true;
}

function isNumRange(FormObj,Low,High) {
   // Return false if Field isn't in integer Format or empty and within range
   // Also reformat to x,xxx format
   var Val=StripNum(FormObj.value);
   FormObj.value=Val;
   if (Val.length==0) return(true);
   Val=parseFloat(Val);
   if (isNaN(Val)) {
      ErrorMsg(FormObj,'Please enter a valid number');
    return(false);
   }
   if ((Val<Low) || (High<Val)) {
      ErrorMsg(FormObj,'Please enter a whole number between '+Low+' and '+High);
      return(false);
   }
   FormObj.value=CommaFmt(Val);
   return true;
}

function isNotEmpty(String) {
   // Return false if "string" is empty or all blank
  if (String.length == 0) {return (false);}
  for (var i=0; i < String.length; i++) {
    if (String.substring(i) != " ") {return (true);}
  }
  return (false);
}

function isSpaces(String) {
   // Return false if "string" is empty or all blank
   var ballSpaces = false;
  if (String.length == 0) {return (false);}
  for (var i=0; i < String.length; i++) {
    if (String.substr(i,1) == " ") {
		ballSpaces = true;
	}else {
		ballSpaces = false;
		break;
  	}
  }
  if (ballSpaces == true) {return (true);}
  else { return (false);}
}

function isPhoneFmt (FormObj)  {
   // Return false if field isn't in Phone Format (10 digit) or empty"

   // Also reformat phone to xxx-xxx-xxxx format
  var i,Tmp,String,NewString;
  String=FormObj.value;
  if (String.length == 0) {return (true);}
  NewString="";
  var NumChars = 0;
  var OKchars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwyxz'
  for (var i=0; i < String.length; i++)  {
    Tmp = String.substring (i, i+1);
    if (OKchars.indexOf (Tmp, 0) > -1) {
       NewString=NewString+Tmp;
       NumChars=NumChars+1;
    }
  }
  if (0==NumChars) {return (true);}
  if (10<=NumChars) { // ok reformat
     String=""
     if ('1'==NewString.substring(0,1)) {
			String="1-"
			NewString=NewString.substring(1,NewString.length)			
		 }
     String+=NewString.substring(0,3)+"-";
     String+=NewString.substring(3,6)+"-";
     String+=NewString.substring(6,10)+" ";
     String+=NewString.substring(10,NewString.length);
     FormObj.value=String;
     return (true);
  }
  return (false);
}

function isNotEntered (FormObj)  {
   // Return true if empty.  Space is not a valid character.
  var i,Tmp,String,NewString;
  String=FormObj.value;
  if (String.length == 0) {return (true);}
  NewString="";
  var NumChars = 0;
  var OKchars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwyxz'
  for (var i=0; i < String.length; i++)  {
    Tmp = String.substring (i, i+1);
    if (OKchars.indexOf (Tmp, 0) == -1) {
//       NewString=NewString+Tmp;
//       NumChars=NumChars+1;
		return (true);
    }
  }
//  if (0==NumChars) {return (true);}
  return (false);
}

function isNotValidEntry (FormObj)  {
   // Return true if empty.  Space is a valid character.
  var i,Tmp,String,NewString;
  String=FormObj.value;
  if (String.length == 0) {return (true);}
  NewString="";
  var NumChars = 0;
  var OKchars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwyxz '"
  for (var i=0; i < String.length; i++)  {
    Tmp = String.substring (i, i+1);
    if (OKchars.indexOf (Tmp, 0) == -1) {
//       NewString=NewString+Tmp;
//       NumChars=NumChars+1;
		return (true);
    }
  }
//  if (0==NumChars) {return (true);}
  return (false);
}

function isSocialFmt(FormObj)  {
   // Return false if field isn't in Social Format (9 digit) or empty"
   // Also reformat Social to xxx-xx-xxxx format
  var i,Tmp,String,NewString;
  String=FormObj.value;
  if (String.length == 0) {return (true);}
  NewString="";
  var NumChars = 0;
  var OKchars = '0123456789'
  for (var i=0; i < String.length; i++)  {
    Tmp = String.substring (i, i+1);
    if (OKchars.indexOf (Tmp, 0) > -1) {
       NewString=NewString+Tmp;
       NumChars=NumChars+1;
    }
  }
  if (0==NumChars) {return (true);}
  if (9<=NumChars) { // ok reformat
     String=""
     String+=NewString.substring(0,3)+"-";
     String+=NewString.substring(3,5)+"-";
     String+=NewString.substring(5,9)+" ";
     String+=NewString.substring(9,NewString.length);
     FormObj.value=String;
     return (true);
  }
  return (false);
}

function isZipFmt(FormObj)  {
   // Return false if field isn't in Zip Format (5 digit)"
  var i,Tmp,String,NewString;
  String=FormObj.value;
  NewString="";
  var NumChars = 0;
  var OKchars = '0123456789'
  for (var i=0; i < String.length; i++)  {
    Tmp = String.substring (i, i+1);
    if (OKchars.indexOf (Tmp, 0) > -1) {
       NewString=NewString+Tmp;
       NumChars=NumChars+1;
    }
  }
  if (5==NumChars) { 
     return (true);
  }
  return (false);
}

function isEmailFmt(sEmail) {
   // Return true if this is probably an email address or empty
  // Valid email string must have a @ followed by a period
  if (false==isNotEmpty(sEmail)) return true; // Empty email ok
  var Loc1= sEmail.indexOf("@");
    var Loc2= sEmail.lastIndexOf(".");
  if (Loc1 == -1) return false; // must have an @ imbedded in string
  if (Loc2<Loc1) return false; // must have an . after the @
  if (2>(sEmail.length-Loc2)) return false; // more than 2 characters after .
return true;
}

function isLength(String,Len) {
   // return false if String has fewer than "Len" non-blank characters
  if (String.length == 0) return false;
  var count = 0;
  for (var i=0; i<String.length; ++i) {
       var ch = String.charAt(i);
       if (ch != ' ' & ch != '\t') count++;
  }
  if (count>=Len )return true;
  return false;
}

function isMoneyFmt (FormObj)  {
   // Return false if Field isn't in Money Format or empty"
   // Also reformat to $xxx.xx format
   var Val=StripNum(FormObj.value)
   FormObj.value=Val;
   alert(Val);
   if (Val.length==0) return(true);
   Val=parseFloat(Val)
   
   if (isNaN(Val)) {
      ErrorMsg(FormObj,'Please enter a valid dollar amount.');
    return(false);
   }
  FormObj.value="$"+CommaFmt(roundto(.01,Val))
   return true;
}

function isPct(FormObj) {
   // Return false if field isn't a percentage or empty"
   // Also reformat to xx% format
   var Value, NumVal
   Value=StripNum(FormObj.value)
   FormObj.value=Value
   if (Value.length==0) return(true);
   FormObj.value=Value + "%"
   NumVal=parseFloat(Value)
  if(isNaN(NumVal)) {
      ErrorMsg(FormObj,'Please enter a valid percentage');
     return(false);
  }
   if ((0<=NumVal) && (NumVal<=100)) return(true);
   ErrorMsg(FormObj,"Please enter a number between 0 and 100");
   return(false);
}

function isYear(FormObj) {
   // Return false if field isn't a valid year"
   var Value
   Value=StripNum(FormObj.value)
   if (Value.length==0) return(true);
   NumVal=parseFloat(Value)
  if(isNaN(NumVal)) {
     ErrorMsg(FormObj,"Please enter a valid year");
     return(false);
  }
  if ((0<=NumVal)&&(NumVal<50)) NumVal=2000+NumVal;
  if ((50<NumVal)&&(NumVal<100)) NumVal=1900+NumVal;
  FormObj.value=NumVal
  if ((1900<=NumVal) && (NumVal<=2050)) return(true);
   ErrorMsg(FormObj,"Please enter a year between 1900 and 2050");
  return(false);

}

function roundto(Factor,Num)   {
   // Round "Num" to nearest "Factor"
   /*    Ex: roundto (100, 2532)      --> 2500    (for nearest 100)
         roundto (1, 252.4284)    --> 252     (for nearest whole number)
         roundto (.01, 252.4284)  --> 252.43  (for dollars & cents)
         roundto (.125, 252.4284) --> 252.375 (for nearest 1/8th of a point)
   */
   if (Factor == 0) return (0); // No can do if factor is zero -- just return zero
   Num = Factor * (Math.floor(.5 + (Num/Factor)));
   return(Num);
}

function writeStateDropDown(state, change, tab) {
	document.write("<select name=\"state\" size=\"1\"" + (change == 1?" onChange=\"changed = true\"":"") + (tab != null?" tabindex=\"" + tab + "\"":"") + ">");
	document.write("<OPTION VALUE=\"\"></OPTION>");
	document.write("<OPTION VALUE=\"AL\"" + (state=="AL"?" selected":"") + ">Alabama</OPTION>");
	document.write("<OPTION VALUE=\"AK\"" + (state=="AK"?" selected":"") + ">Alaska</OPTION>");
	document.write("<OPTION VALUE=\"AZ\"" + (state=="AZ"?" selected":"") + ">Arizona</OPTION>");
	document.write("<OPTION VALUE=\"AR\"" + (state=="AR"?" selected":"") + ">Arkansas</OPTION>");
	document.write("<OPTION VALUE=\"CA\"" + (state=="CA"?" selected":"") + ">California</OPTION>");
	document.write("<OPTION VALUE=\"CO\"" + (state=="CO"?" selected":"") + ">Colorado</OPTION>");
	document.write("<OPTION VALUE=\"CT\"" + (state=="CT"?" selected":"") + ">Connecticut</OPTION>");
	document.write("<OPTION VALUE=\"DE\"" + (state=="DE"?" selected":"") + ">Delaware</OPTION>");
	document.write("<OPTION VALUE=\"DC\"" + (state=="DC"?" selected":"") + ">District of Columbia</OPTION>");
	document.write("<OPTION VALUE=\"FL\"" + (state=="FL"?" selected":"") + ">Florida</OPTION>");
	document.write("<OPTION VALUE=\"GA\"" + (state=="GA"?" selected":"") + ">Georgia</OPTION>");
	document.write("<OPTION VALUE=\"HI\"" + (state=="HI"?" selected":"") + ">Hawaii</OPTION>");
	document.write("<OPTION VALUE=\"ID\"" + (state=="ID"?" selected":"") + ">Idaho</OPTION>");
	document.write("<OPTION VALUE=\"IL\"" + (state=="IL"?" selected":"") + ">Illinois</OPTION>");
	document.write("<OPTION VALUE=\"IN\"" + (state=="IN"?" selected":"") + ">Indiana</OPTION>");
	document.write("<OPTION VALUE=\"IA\"" + (state=="IA"?" selected":"") + ">Iowa</OPTION>");
	document.write("<OPTION VALUE=\"KS\"" + (state=="KS"?" selected":"") + ">Kansas</OPTION>");
	document.write("<OPTION VALUE=\"KY\"" + (state=="KY"?" selected":"") + ">Kentucky</OPTION>");
	document.write("<OPTION VALUE=\"LA\"" + (state=="LA"?" selected":"") + ">Louisiana</OPTION>");
	document.write("<OPTION VALUE=\"ME\"" + (state=="ME"?" selected":"") + ">Maine</OPTION>");
	document.write("<OPTION VALUE=\"MD\"" + (state=="MD"?" selected":"") + ">Maryland</OPTION>");
	document.write("<OPTION VALUE=\"MA\"" + (state=="MA"?" selected":"") + ">Massachusetts</OPTION>");
	document.write("<OPTION VALUE=\"MI\"" + (state=="MI"?" selected":"") + ">Michigan</OPTION>");
	document.write("<OPTION VALUE=\"MN\"" + (state=="MN"?" selected":"") + ">Minnesota</OPTION>");
	document.write("<OPTION VALUE=\"MS\"" + (state=="MS"?" selected":"") + ">Mississippi</OPTION>");
	document.write("<OPTION VALUE=\"MO\"" + (state=="MO"?" selected":"") + ">Missouri</OPTION>");
	document.write("<OPTION VALUE=\"MT\"" + (state=="MT"?" selected":"") + ">Montana</OPTION>");
	document.write("<OPTION VALUE=\"NE\"" + (state=="NE"?" selected":"") + ">Nebraska</OPTION>");
	document.write("<OPTION VALUE=\"NV\"" + (state=="NV"?" selected":"") + ">Nevada</OPTION>");
	document.write("<OPTION VALUE=\"NH\"" + (state=="NH"?" selected":"") + ">New Hampshire</OPTION>");
	document.write("<OPTION VALUE=\"NJ\"" + (state=="NJ"?" selected":"") + ">New Jersey</OPTION>");
	document.write("<OPTION VALUE=\"NM\"" + (state=="NM"?" selected":"") + ">New Mexico</OPTION>");
	document.write("<OPTION VALUE=\"NY\"" + (state=="NY"?" selected":"") + ">New York</OPTION>");
	document.write("<OPTION VALUE=\"NC\"" + (state=="NC"?" selected":"") + ">North Carolina</OPTION>");
	document.write("<OPTION VALUE=\"ND\"" + (state=="ND"?" selected":"") + ">North Dakota</OPTION>");
	document.write("<OPTION VALUE=\"OH\"" + (state=="OH"?" selected":"") + ">Ohio</OPTION>");
	document.write("<OPTION VALUE=\"OK\"" + (state=="OK"?" selected":"") + ">Oklahoma</OPTION>");
	document.write("<OPTION VALUE=\"OR\"" + (state=="OR"?" selected":"") + ">Oregon</OPTION>");
	document.write("<OPTION VALUE=\"PA\"" + (state=="PA"?" selected":"") + ">Pennsylvania</OPTION>");
	document.write("<OPTION VALUE=\"RI\"" + (state=="RI"?" selected":"") + ">Rhode Island</OPTION>");
	document.write("<OPTION VALUE=\"SC\"" + (state=="SC"?" selected":"") + ">South Carolina</OPTION>");
	document.write("<OPTION VALUE=\"SD\"" + (state=="SD"?" selected":"") + ">South Dakota</OPTION>");
	document.write("<OPTION VALUE=\"TN\"" + (state=="TN"?" selected":"") + ">Tennessee</OPTION>");
	document.write("<OPTION VALUE=\"TX\"" + (state=="TX"?" selected":"") + ">Texas</OPTION>");
	document.write("<OPTION VALUE=\"UT\"" + (state=="UT"?" selected":"") + ">Utah</OPTION>");
	document.write("<OPTION VALUE=\"VA\"" + (state=="VA"?" selected":"") + ">Virginia</OPTION>");
	document.write("<OPTION VALUE=\"VT\"" + (state=="VT"?" selected":"") + ">Vermont</OPTION>");
	document.write("<OPTION VALUE=\"WA\"" + (state=="WA"?" selected":"") + ">Washington</OPTION>");
	document.write("<OPTION VALUE=\"WV\"" + (state=="WV"?" selected":"") + ">West Virginia</OPTION>");
	document.write("<OPTION VALUE=\"WI\"" + (state=="WI"?" selected":"") + ">Wisconsin</OPTION>");
	document.write("<OPTION VALUE=\"WY\"" + (state=="WY"?" selected":"") + ">Wyoming</OPTION>");
	document.write("</select>");
}

function isPositive(FormObj)   {
//var textObj = eval("formObj." + fieldArray[i]);
	var Val=parseFloat(FormObj.value);
	if (isNaN(Val)) {ErrorMsg(FormObj,'Error: Please enter a valid number');return(false);}
	if (Val>24) {alert('Error: Max hours used per day cannot exceed 24.\nPlease re-enter.');return(false);}
	if (Val<0) {alert('Employee has an insufficient balance for the hours entered.\nPlease choose another absence type.');return(false);}
	return true;
}

function cancelKye() {
//return false if not Tab key
	if (window.event.keyCode==9) {window.event.returnValue=true; }
	else {window.event.returnValue=false;}
}

function UpDownArrow(obj) {
var sName="";
var dayNum=0;
	sName=obj.name; 

	if (window.event.keyCode==38) {// --- UpArrow
		dayNum=(parseInt(sName.substring(6,7))==0) ? 0 : parseInt(sName.substring(6,7))-1;		
		sName=sName.substring(0,6) + dayNum + sName.substring(7);
		document.myForm(sName).focus();
	}
	if (window.event.keyCode==40) {// --- DownArrow
		dayNum=(parseInt(sName.substring(6,7))==6) ? 6 : parseInt(sName.substring(6,7))+1;		
		sName=sName.substring(0,6) + dayNum + sName.substring(7);
		document.myForm(sName).focus();
	}
}

function highlightMe(obj) {	obj.focus(); obj.select();}

function clearList(list) {
    var i = 0;
    var o = list.options;

    for (i = o.length; i >= 0; --i)
		o[i] = null;
    list.disabled = true;
}

function addElement(list, text_in, value_in) {
    var o = list.options;
    var nIdx;
    if (o.length < 0) //IE for Mac 4.5 sets length to -1 if list is empty
        nIdx = 0;
    else
        nIdx = o.length;
		
    o[nIdx] = new Option(text_in, value_in);
    list.disabled = false;
}

function addElementAtPos(list, pos, text_in, value_in) {
    var o = list.options;
    var nIdx = 0;

    if ((pos < 0) || (pos > o.length))
        return;

    addElement(list, '', '');
    for (nIdx = o.length - 1; nIdx > pos; nIdx--){
        o[nIdx].text = o[nIdx - 1].text;
        o[nIdx].value = o[nIdx - 1].value;
    }
    o[pos] = new Option(text_in, value_in);
    list.disabled = false;
}

function setDefaultByText(list, text_in) {
    with (list) {
        for (var i = 0; i < (options.length); i++) {
             if (options[i].text == text_in){
                 selectedIndex = i;
                 return;
             }
        }
    }
}

function setDefaultByValue(list, value_in){
    with (list){
        for (var i = 0; i < (options.length); i++){
             if (options[i].value == value_in) {
                 selectedIndex = i; return; }
        }
    }
}

function mmChangeMakeEx(parent, bnew, model_caption, buse_short_name) {
    if (bnew == 'true')
        var ModelList = mmMdN[parent.sAgency.options[parent.sAgency.selectedIndex].value];
    else
        var ModelList = mmMdU[parent.sAgency.options[parent.sAgency.selectedIndex].value];

    clearList(parent.department);
    addElement(parent.department, model_caption, 0);
    if(ModelList) {
        var rgModels = ModelList.split(',');
        for (var i = 0; i < rgModels.length; i++) {
            if (rgModels[i]) {
                var rgModel = rgModels[i].split('#');
                addElement(parent.department, (buse_short_name == true ? MakeShortName(rgModel[0]) : rgModel[0]), rgModel[1]);
            }
        }
        parent.department.disabled = false;
    }
    else {
        parent.department.disabled = true; 
    }
    parent.department.selectedIndex = 0;
} 

function MakeShortName(sName) {
    switch(sName) {
        case "3-Series Sport Wagon":
            return("3-Series Sprt Wgn");
        case "5-Series Sport Wagon":
            return("5-Series Sprt Wgn");
        case "Passat Wagon (2001.5)":
            return("Passat Wgn (01.5)");
        case "Caprice Classic Wagon":
            return("Caprice Clssic Wgn");
        case "Power Ram 50 Sport Cab":
            return("Pwr Ram 50 Sport");
        case "Explorer  Sport Trac":
            return("Explorer Sport Trac");
        case "LTD Crown Victoria Wagon":
            return("LTD Crown Vic Wgn");
        case "Grand Marquis Wagon":
            return("Grand Marquis Wgn");
        case "Cutlass Ciera Wagon":
            return("Cutlass Ciera Wgn");
        default:
            return(sName);    
    }
}

function mmInitializeEx(parent, make, model, make_caption, model_caption, bnew, buse_short_name)
    {
    var rgMake;

    //if (parent.mmType)
    //  setDefaultByText(parent.mmType, bnew == 'true' ? 'New' : 'Used');

    clearList(parent.sAgency);
    
    addElement(parent.sAgency, make_caption, 0);
    
    if (bnew == 'true') {
        for (var i = 0; i < mmMkN.length; i++) {
            if (mmMkN[i]) {
                rgMake = mmMkN[i].split('#');
                addElement(parent.sAgency, rgMake[0], rgMake[1]);
            }
        }
    }
    else {
        for (var i = 0; i < mmMkU.length; i++) {
            if (mmMkU[i]) {
                rgMake = mmMkU[i].split('#');
                addElement(parent.sAgency, rgMake[0], rgMake[1]);
            }
        }
    }
    
    if (make) {
        setDefaultByValue(parent.sAgency, make);
        
        if (model_caption != "none")
            mmChangeMakeEx(parent, bnew, model_caption, buse_short_name);
        
        if (model)
            setDefaultByValue(parent.department, model);
    }
    else {
        parent.sAgency.selectedIndex = 0;
        mmChangeMakeEx(parent, bnew, model_caption, buse_short_name);
    }
}

