var isNN = (navigator.appName.indexOf('Netscape')!=-1);

function containsElement(arr, ele) {
  var found = false, index = 0;
  while(!found && index < arr.length)
    if(arr[index] == ele)
      found = true;
    else
      index++;
  return found;
}

function getIndex(input) {
  var index = -1, i = 0, found = false;
  var thisForm = input.form;
  while (i < input.form.length && index == -1)
    if (input.form[i] == input)index = i;
    else i++;
  return index;
}

function autoTab(input,len, e, mthField, dayField, yearField, hiddenDateField) {
  var keyCode = (isNN) ? e.which : e.keyCode;
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  var formObject = input.form;
  var mth = formObject[mthField].value;
  var day = formObject[dayField].value;
  var year = formObject[yearField].value;

//  alert("mth = " +mth + "day = " + day + "year = " + year);

  if( mth != "" && day != "" && year != "" ){
    var newValue = mth + '/' + day + '/' + year;
    formObject[hiddenDateField].value = newValue;
    if(newValue.length > 9){
//      alert("length is " + newValue.length);
      autoFillDriverFields(formObject[hiddenDateField], mth, day, year);
//      alert('after autoFillDriverFields call');
    }
  }
  else {
    formObject[hiddenDateField].value = "";
  }
  //alert("here");
 // alert("input.value"+input.value);
 // alert("len"+len);
  if(input.value.length >= len && !containsElement(filter,keyCode)) {
   // alert("loop");
    input.value = input.value.slice(0, len);
     //alert("input.value"+input.value);
     //alert("(getIndex(input)+1)="+(getIndex(input)+1));
     //alert("input.form.length="+input.form.length);
     //alert("input.form[(getIndex(input)+1) % input.form.length]="+input.form[(getIndex(input)+1) % input.form.length]);
    input.form[(getIndex(input)+1) % input.form.length].focus();
  }
  return true;
}

function autoTabWithButton (input,len, e, mthField, dayField, yearField, hiddenDateField) {
  var keyCode = (isNN) ? e.which : e.keyCode;
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  var formObject = input.form;
  var mth = formObject[mthField].value;
  var day = formObject[dayField].value;
  var year = formObject[yearField].value;

//  alert("mth = " +mth + "day = " + day + "year = " + year);

  if (mth != "" && day != "" && year != "" ){
	var newValue = mth + '/' + day + '/' + year;
	formObject[hiddenDateField].value = newValue;
  } else {
	formObject[hiddenDateField].value = "";
  }
// alert("input.value"+input.value);
// alert("len"+len);
  if (input.value.length >= len && !containsElement(filter,keyCode)) {
	// alert("loop");
	input.value = input.value.slice(0, len);
	//alert("input.value"+input.value);
	//alert("(getIndex(input)+1)="+(getIndex(input)+1));
	//alert("input.form.length="+input.form.length);
	//alert("input.form[(getIndex(input)+1) % input.form.length]="+input.form[(getIndex(input)+1) % input.form.length]);
	input.form[(getIndex(input)+1) % input.form.length].focus();
  }
  return true;
}
//autotab for expereince fields
function autoTabExpFields (input,len, e, yearField, mthField, hiddenDateField) {
	
//  alert("input |" + input.value);
//  alert("yearField |" + yearField.value);
//  alert("mthField |" + mthField.value);
//  alert("hiddenDateField |" + hiddenDateField.value);
	
  var keyCode = (isNN) ? e.which : e.keyCode;
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
//  alert("input |" + input.value);
  var formObject = input.form;
//  alert("formObject |" + formObject);
  var year = formObject[yearField].value;
  var mth = formObject[mthField].value;

//  alert("mth = " +mth + "year = " + year);

  if (year != "" && mth != "" ){
	var newValue = year + 'yr' + mth + 'mo';
	formObject[hiddenDateField].value = newValue;
  } else {
//	  alert("i am here");
	formObject[hiddenDateField].value = "";
  }
// alert("input.value"+input.value);
// alert("len"+len);
  if (input.value.length >= len && !containsElement(filter,keyCode)) {
//	 alert("loop");
	input.value = input.value.slice(0, len);
//	alert("input.value"+input.value);
//	alert("(getIndex(input)+1)="+(getIndex(input)+1));
//	alert("input.form.length="+input.form.length);
//	alert("input.form[(getIndex(input)+1) % input.form.length]="+input.form[(getIndex(input)+1) % input.form.length]);
	input.form[(getIndex(input)+1) % input.form.length].focus();
  }
  return true;
}

