
var DFORMAT = "dd.MM.yyyy";
var NOT_ALLOWED_CHARS = "{}[]<>|\\"; // {}[]<>|\
var EMAIL_REGEX = "[A-Za-z0-9\\._-]+@[A-Za-z0-9\\._-]+\\.[A-Za-z]{2,4}";
var ALPHABET_REGEX = "[ ,\\.\\-\\/A-Za-zÖÄÜöäüß]+"; // ,.-/A-Za-zÖÄÜöäüß
var ALPHANUMERIC_REGEX = "[ ,\\.\\-\\/A-Za-zÖÄÜöäüß0-9]+"; // ,.-/A-Za-zÖÄÜöäüß0-9
var ALPHAONLY_REGEX = "[ A-Za-zÖÄÜöäüß]+"; // A-Za-zÖÄÜöäüß
var NUMERIC_REGEX = "[ 0-9]+"; // 0-9

/**
 * Tests globally not allowed input characters: {}[]<>|\
 *
 * @param as String string to be tested
 * @return boolean true if the string is not null and it does not contain supressed characters
 */
function isAllowedString(as) {
  if (as == null) // null arguments are not allowed
    return false;

  if (as.indexOf('{') >= 0 || as.indexOf('}') >= 0 || as.indexOf('[') >= 0|| as.indexOf(']') >= 0 ||
      as.indexOf('<') >= 0 || as.indexOf('>') >= 0 || as.indexOf('|') >= 0 || as.indexOf('\\') >= 0) {
    return false;
  }

  return true;
}

/**
 * Compares the characters sequence against regular expresion and returns the result of the regex compare
 *
 * @param sequence String characters sequence
 * @param regexstring String regular expression
 * @return boolean true if sequence != null and regExp != null and (sequence is empty or matches reqExp)
 */
function isRegExMatch(sequence, regexstring) {
  if (sequence == null || regexstring == null)
    return false;

  if (sequence.length == 0)
    return true;
  
  oRE = new RegExp(regexstring);
  v = oRE.exec(sequence);
  //alert(v+' sequence='+sequence+' regexstring='+regexstring);
  if (v == null || v != sequence) 
    return false;
  else
    return true;
}

/**
 * Tests if the string contains only numeric characters: 0-9
 *
 * @param a String string to be tested
 * @return boolean true if the string is not null and it does not contain supressed characters
 * and it contains only allowed characters
 */
function checkNumeric(n)
{
  if (isAllowedString(n) == false)
    return false;
  
  return isRegExMatch(n, NUMERIC_REGEX);
}

/**
 * Tests if the string contains only aplhabet characters: ,.-/AZazÖÄÜöäüß
 *
 * @param a String string to be tested
 * @return boolean true if the string is not null and it does not contain supressed characters
 * and it contains only allowed characters
 */
function checkAlphabet(a)
{
  if (isAllowedString(a) == false)
    return false;
  
  return isRegExMatch(a, ALPHABET_REGEX);
}

/**
 * Tests if the string contains only aplhanumeric characters: ,.-/A-Za-zÖÄÜöäüß0-9
 *
 * @param a String string to be tested
 * @return boolean true if the string is not null and it does not contain supressed characters
 * and it contains only allowed characters
 */
function checkAlphanumeric(an) {
  if (isAllowedString(an) == false)
    return false;

  return isRegExMatch(an, ALPHANUMERIC_REGEX);
}

/**
 * Tests if the string contains only aplhaonly characters: AZazÖÄÜöäüß
 *
 * @param a String string to be tested
 * @return boolean true if the string is not null and it does not contain supressed characters
 * and it contains only allowed characters
 */
function isAlphaOnly(ao) {
  if (isAllowedString(ao) == false)
    return false;

  return isRegExMatch(ao, ALPHAONLY_REGEX);
}

/**
 * Tests if the string contains valid email address.
 *
 * @param a String string to be tested
 * @return boolean true if the string is not null and it does not contain supressed characters
 * and it contains only allowed characters
 */
function checkEMail(email) {
  if (isAllowedString(email) == false)
    return false;

  if (email == "@") 
    return true;
  else
    return isRegExMatch(email, EMAIL_REGEX);
}


function checkNumber(elem) 
{
	elem.value = elem.value.replace(' ', '').replace(',', '.').replace (/^\s+/, '').replace (/\s+$/, '');

	if (!checkNumeric(elem.value)) {
		elem.value = '';
		alert("Keine gültige Zahl eingetragen");
		//elem.focus();
		return false;
	}
}


function checkDateParts(dd, mm, yyyy) 
{
  if (dd == '' || mm == '' || yyyy == '' ||isNaN(parseInt(dd, 10)) || isNaN(parseInt(mm, 10)) || isNaN(parseInt(yyyy, 10))) {
    return false;
  }
  dd = parseInt(dd, 10);
  mm = parseInt(mm, 10);
  yyyy = parseInt(yyyy, 10);
  if (dd < 1 || dd > 31 || mm < 1 || mm > 12)
    return false
  if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30)
    return false;
  if (mm == 2) {
    if ((yyyy % 4) == 0) {
      if (dd > 29)
        return false;
    } else {
      if (dd > 28)
        return false;      
    }
  }
  return true;
}

function getDateParts(f, elemName, mode, alist)
{
  var e_tt, e_mm, e_jj;
  eval('e_tt = f.elements.'+elemName+'_tt');
  eval('e_mm = f.elements.'+elemName+'_mm');
  eval('e_jjjj = f.elements.'+elemName+'_jj');
  if (mode == 0) {
    if (typeof(e_tt) == "undefined") {
      alert('Warning (getDateParts): Element '+elemName+'_tt is undefined.');
      return false;
    }
	if (typeof(e_tt.item) == "undefined")
		dd = e_tt.value;
	else 
	    dd = e_tt.item(e_tt.selectedIndex).value;
  } else {
    dd = '01'; 
  }
  if (typeof(e_mm) == "undefined") {
    alert('Warning (getDateParts): Element '+elemName+'_mm is undefined.');
    return false;
  }
  if (typeof(e_jjjj) == "undefined") {
    alert('Warning (getDateParts): Element '+elemName+'_jj is undefined.');
    return false;
  }
	if (typeof(e_mm.item) == "undefined")
		mm = e_mm.value;
	else 
		mm = e_mm.item(e_mm.selectedIndex).value;
	if (typeof(e_jjjj.item) == "undefined")
		yyyy = e_jjjj.value;
	else 
		yyyy = e_jjjj.item(e_jjjj.selectedIndex).value;
  if (mode == 0) {
    alist[0] = e_tt;
  } else {
    alist[0] = e_mm;
  }
  alist[1] = dd;
  alist[2] = mm;
  alist[3] = yyyy;
  return true;
}

function checkDate(f, elemName, fieldName, mode) 
{
  var  e, dd, mm, yyyy;
  var alist = new Array();
  
  if (getDateParts(f, elemName, mode, alist)) {
    e  = alist[0];
    dd  = alist[1];
    mm  = alist[2];
    yyyy = alist[3];
  }
  if (checkDateParts(dd, mm, yyyy) == false) {
    if (typeof(e) != "undefined") {
      alert('Bitte überprüfen Sie das Feld: '+fieldName);
      e.focus();
      return false;
    } 
  }
  
  return true;
}

function checkField(f, elemName, fieldName, fieldType, required)
{
  var e;
  eval('e = f.elements.'+elemName);
  if (typeof(e) == "undefined") {
    alert('Warning (checkField): Element '+elemName+' is undefined.');
    return true;
  }
  ev = e.value;
  if (typeof(fieldType) == "undefined")
    fieldType = 't';
  if (required && (fieldType == 't' || fieldType == 'plz' || fieldType == 'numeric' || fieldType == 'alphabet' || fieldType == 'alphanumeric' || fieldType == 'email')) {
    if (ev == '') {
      alert('Bitte überprüfen Sie das Feld: '+fieldName);
      e.focus();
      return false;  
    }    
  }  
  if (isAllowedString(ev) == false) {
    alert('Folgende Zeichen sind nicht erlaubt: { } [ ] < > | \\ '+"\n\nBitte überprüfen Sie das Feld: "+fieldName); 
    e.focus();
    return false;  
  }
  
  if (fieldType == 'i') {
    if (isNaN(ev) || ev == '') {
      alert('Bitte spezifizieren Sie eine Zahl: '+fieldName);
      e.focus();
      return false;  
    }
  }
  if (fieldType == 'cb' && required) {
	if (typeof(e.item) == "undefined")
	{
		vl = e.value;
	} else {
		vl = e.item(e.selectedIndex).value;
	}
    if (vl == '' || vl == '0') {
      alert('Bitte wählen Sie das Feld: '+fieldName);
      e.focus();
      return false;  
	}
  }      
  if (fieldType == 'plz') {
    if (ev.length != 4 || checkNumeric(ev) == false) {
      alert('Bitte überprüfen Sie Ihre Postleitzahl (4 Ziffern).\n\nFür den Abschluss eines Kreditvertrages mit der Santander Consumer Bank Österreich \nist ein ordentlicher Wohnsitz in Österreich notwendig.');
      e.focus();
      return false;
    }      
  }  
  if (fieldType == 'numeric') {
    if (checkNumeric(ev) == false) {
      alert('Dieses Feld kann nur ganze Zahlen enthalten: '+fieldName);      
      e.focus();
      return false;        
    }
  }
  if (fieldType == 'alphabet') {
    if (checkAlphabet(ev) == false) {
      alert('Dieses Feld kann nur Buchstaben enthalten: '+fieldName);      
      e.focus();
      return false;        
    }
  }
  if (fieldType == 'alphanumeric') {
    if (checkAlphanumeric(ev) == false) {
      alert('Dieses Feld kann nur Zahlen oder Buchstaben enthalten: '+fieldName);      
      e.focus();
      return false;        
    }
  }
  if (fieldType == 'email') {
    if (checkEMail(ev) == false) {
      alert(fieldName+': bitte überprüfen Sie Ihr E-Mail Format (xx@yy.zz).' );
      e.focus();
      return false;        
    }
  }

  return true;
}

function show_outlander(elem, outlander_id)
{
	if (elem.options.item(elem.selectedIndex).value != 'AT') {
		display = 'inline';
	} else {
		display = 'none';
	}
	oElem = document.getElementById(outlander_id);
	if (typeof(oElem) == "undefined") {
		return;
	} else {
		oElem.style.display = display;
	}
	oElem = document.getElementById(outlander_id+"_1");
	if (typeof(oElem) == "undefined") {
		return;
	} else {
		oElem.style.display = display;
	}
}

function display_elem(id, mode)
{
  oElem = document.getElementById(id);
  if (typeof(oElem) == "undefined") {
    return;
  }
  if (mode == 1) {
    oElem.style.display = 'inline';
  } else {
    oElem.style.display = 'none';
  }
}

/*
function XcheckNumber(elem) 
{
  if (isNaN(parseInt(elem.value, 10))) {
    elem.value = '';
    return;
  }  
}

function XcheckDateParts(dd, mm, yy) 
{
  if (dd == '' || mm == '' || yy == '' ||isNaN(parseInt(dd, 10)) || isNaN(parseInt(mm, 10)) || isNaN(parseInt(yy, 10))) {
    return false;
  }
  dd = parseInt(dd, 10);
  mm = parseInt(mm, 10);
  yy = parseInt(yy, 10);
  if (dd < 1 || dd > 31 || mm < 1 || mm > 12)
    return false
  if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30)
    return false;
  if (mm == 2) {
    if ((yy % 4) == 0) {
      if (dd > 29)
        return false;
    } else {
      if (dd > 28)
        return false;      
    }
  }
  return true;
}
*/

/*
function checkDateSince(f, elemName, fieldName) 
{
  var e_mm, e_jj;
  eval('e_mm = f.elements.'+elemName+'_mm');
  eval('e_jj = f.elements.'+elemName+'_jj');
  if (typeof(e_mm) == "undefined") {
    alert('Warning (checkDateSince): Element '+elemName+'_mm is undefined.');
    return true;
  }
  if (typeof(e_jj) == "undefined") {
    alert('Warning (checkDateSince): Element '+elemName+'_jj is undefined.');
    return true;
  }

  dd = '01'; 
  mm = e_mm.item(e_mm.selectedIndex).value;
  yy = e_jj.item(e_jj.selectedIndex).value;
  
  if (checkDateParts(dd, mm, yy) == false) {
    alert('Bitte überprüfen Sie das Feld: '+fieldName);
    e_mm.focus();
    return false;
  }
  
  return true;
}
*/

function skipForm() {
  f = document.getElementById('finanzierungsrechner');
  f.elements.submit_lock.value = '2';
    
  if (document.finanzierungsrechner.Submit) {
    document.finanzierungsrechner.Submit();
  } else {
    document.finanzierungsrechner.submit();
  }
}

function checkLeasingForm(f) {
  if (checkField(f, 'fahrzeugpreis_euro_new', 'Fahrzeugpreis', 'numeric', true) == false) {
    return false;
  }
  if (checkField(f, 'eigenmittel', 'Eigenmittel', 'numeric', true) == false) {
    return false;
  }
  if (checkField(f, 'wunschrate', 'Monatliche Wunschrate', 'numeric', true) == false) {
    return false;
  }
  
  return true;
}

function checkForm(f)
{
  if (typeof(f) == "undefined") {
    f = document.getElementById('finanzierungsrechner');
  }
    
  if (f.elements.submit_lock != null && f.elements.submit_lock.value == '1')  {
    window.status = 'Submit disabled.'
    return false;
  }
  
  if (f.elements.submit_lock != null && f.elements.submit_lock.value == '2') {
     return true;
  }
  
  warnPLZSeen = true;
  
  if (checkField(f, 'netto_ek_euro', 'Monatliches Netto-Einkommen', 'numeric', true) == false) {
    return false;
  }
  if (checkField(f, 'miete_euro', 'Miete monatlich', 'numeric', false) == false) {
    return false;
  }
  if (checkField(f, 'vorname', 'Vorname(n)', 'alphabet', true) == false) {
    return false;
  }
  if (checkField(f, 'famname', 'Familienname', 'alphabet', true) == false) {
    return false;
  }
  if (checkDate(f, 'getdat', 'Geburtsdatum', 0) == false) {
    //if (checkDate(f, '') == false) {
//      alert('Bitte überprüfen Sie Ihr Geburtsdatum.');
//      f.elements.getdat_tt.focus();
      return false;
  }
  
  if (checkField(f, 'strasse', 'Straße / Hausnummer', 'alphanumeric', true) == false) {
    return false;
  }
  if (checkField(f, 'plz', 'PLZ.\n\nFür den Abschluss eines Kreditvertrages mit der Santander Consumer Bank Österreich \nist ein ordentlicher Wohnsitz in Österreich notwendig.', 'plz', true) == false) {
    return false;
  }
  /*
  plz = f.elements.plz.value;
  if (plz.length != 4) {
    alert('Bitte überprüfen Sie Ihr PLZ (müssen 4 Ziffern sein).');
    f.elements.plz.focus();
    return false;
  }
  */
  if (checkField(f, 'wohnort', 'Ort.\n\nFür den Abschluss eines Kreditvertrages mit der Santander Consumer Bank Österreich \nist ein ordentlicher Wohnsitz in Österreich notwendig.', 'alphabet', true) == false) {
    return false;
  }
  if (checkField(f, 'telefon_vw_tag', 'Telefon-Vorwahl', 'numeric', true) == false) {
    return false;
  }
  if (checkField(f, 'telefon_nr_tag', 'Telefon-Nr.', 'numeric', true) == false) {
    return false;
  }
  if (checkField(f, 'email', 'E-Mail Adresse', 'email', false) == false) {
    return false;
  }  
  
  if (f.elements.show_bank_details != null && f.elements.show_bank_details.item(0).checked == false) {   // bank details: no
    f.elements.bank.value = '';
    f.elements.blz.value = '';
    f.elements.zweigstelle.value = '';
    f.elements.kontonr.value = '';
  }
  /*  
  if (checkField(f, 'familienstand', 'Familienstand', 'cb') == false) {
    return false;
  }
  if (checkField(f, 'staatsbuergerschaft', 'Staatsbügerschaft', 'cb') == false) {
    return false;
  }
  if (f.elements.staatsbuergerschaft.item(153).selected != true) {   // Oesterreich
    if (checkDateSince(f, 'oesterreich', 'in Österrreich seit') == false) {
        return false;
    }
  }
  
  if (checkField(f, 'kinder_anzahl', 'Unterhaltspflichtige Kinder') == false) {
    return false;
  }
  */
  if (f.elements.form_step != null && f.elements.form_step.value == '1') {
    if (checkField(f, 'beschaeftigt_als', 'Beschäftigt als', 'alphanumeric', true) == false) {
      return false;
    }
    if (checkDate(f, 'beschaeftigt_seit', 'Beschäftigt seit', 1) == false) {
        return false;
    }
    if (checkField(f, 'beschaeftigt_bei', 'Bei der Firma', 'alphanumeric', true) == false) {
      return false;
    }
    if (checkField(f, 'beschaeftigt_bei_strasse', 'Adresse des Arbeitgebers', 'alphanumeric', true) == false) {
      return false;
    }
    if (checkField(f, 'beschaeftigt_bei_plzort', 'Postleitzahl / Ort', 'alphanumeric', true) == false) {
      return false;
    }
    if (checkField(f, 'beschaeftigt_telefon_vw', 'Telefon-Vorwahl des Arbeitgebers', 'numeric', true) == false) {
      return false;
    }
    if (checkField(f, 'beschaeftigt_telefon_nr', 'Telefon-Nr. des Arbeitgebers', 'numeric', true) == false) {
      return false;
    }
  }
    
  /*
  if (f.elements.staatsbuergerschaft.item(153).selected == true) {   // Oesterreich
    f.elements.oesterreich_mm.item(0).selected = true;
    f.elements.oesterreich_jj.item(0).selected = true;
  }
  if (f.elements.brg_staatsbuergerschaft.item(153).selected == true) {   // Oesterreich
    f.elements.brg_oesterreich_mm.item(0).selected = true;
    f.elements.brg_oesterreich_jj.item(0).selected = true;    
  }
  */
  if (f.elements.show_brg != null && f.elements.show_brg.item(0).checked == false) {   // other person details: no
    f.elements.brg_netto_ek_euro.value = '';
    f.elements.brg_sonst_netto_ek_euro.value = '';
    f.elements.brg_staat_beihilfe_euro.value = '';
    f.elements.brg_sonstige_euro.value = '';
    f.elements.brg_unterhalt_euro.value = '';
    f.elements.brg_miete_euro.value = '';
    f.elements.brg_pkw.item(1).selected = true;
    f.elements.brg_vorname.value = '';
    f.elements.brg_famname.value = '';
    f.elements.brg_getdat_tt.item(0).selected = true;
    f.elements.brg_getdat_mm.item(0).selected = true;
    f.elements.brg_getdat_jj.item(0).selected = true;
    f.elements.brg_strasse.value = '';
    f.elements.brg_plz.value = '';
    f.elements.brg_wohnort.value = '';
    f.elements.brg_telefon_vw_tag.value = '';
    f.elements.brg_telefon_nr_tag.value = '';
    f.elements.brg_email.value = '';
    f.elements.brg_familienstand.item(1).selected = true;
    f.elements.brg_staatsbuergerschaft.item(153).selected = true;
    f.elements.brg_oesterreich_mm.item(0).selected = true;
    f.elements.brg_oesterreich_jj.item(0).selected = true;	  
    f.elements.brg_kinder_anzahl.value = '0';
    f.elements.brg_kinder_alter.value = '';
    f.elements.brg_beschaeftigt_als.value = '';
    f.elements.brg_beschaeftigt_seit_mm.item(0).selected = true;
    f.elements.brg_beschaeftigt_seit_jj.item(0).selected = true;	  
    f.elements.brg_beschaeftigt_bei.value = '';
    f.elements.brg_beschaeftigt_bei_strasse.value = '';
    f.elements.brg_beschaeftigt_bei_plzort.value = '';
  } else {    // other person: yes    
    /*
    if (checkDate(f, 'brg_getdat', 'Mitkreditnehmer Geburtsdatum', 0) == false) {
    //if (checkDate(f, 'brg_') == false) {
        alert('Bitte prüffen Sie ihre Mitkreditnehmer Geburtsdatum über.');
        f.elements.brg_getdat_tt.focus();
        return false;
    }
    */
  }
  if (f.elements.accept != null && f.elements.accept.checked == false) {
  	alert('Bitte lesen Sie die Datenschutzerklärung und akzeptieren Sie diese um fortzufahren.');
  	f.elements.accept.focus();
  	return false;
  }

  f.elements.submit_lock.value='1';  
  
  return true;
}



function checkFormInsurance(f)
{
  if (typeof(f) == "undefined") {
    f = document.getElementById('antrag');
  }
  

  if (f.elements.accept.checked == false) {
  	alert('Bitte lesen Sie die Datenschutzerklärung und akzeptieren Sie diese um fortzufahren.');
  	f.elements.accept.focus();
  	return false;
  }
  //f.elements.btn_submit.disabled = true;
  return true;
}




function printForm(id)
{
  f = document.getElementById(id);
  if (typeof(f) == "undefined") {
    return;
  }
  link = "https://"+document.location.host+'/online/cashloan/barkredit_anfrage_p.php?printme=1&';
  params = '';
  for(i = 0; i < f.elements.length; i++) {
    if (typeof(f.elements.item(i).name) == 'undefined')
      continue;
    if (typeof(f.elements.item(i).value) == 'undefined')
      vl = '';
    else
      vl = f.elements.item(i).value;
    name = f.elements.item(i).name;
    if (name == 'familienstand' || name=='kinder_anzahl' || name=='beschaeftigt_als' || name=='beschaeftigt_seit_tt' || 
        name=='beschaeftigt_seit_mm' || name=='beschaeftigt_seit_jj' || name=='beschaeftigt_bei' || name=='beschaeftigt_bei_strasse' || name=='beschaeftigt_bei_plzort' ||
        name=='beschaeftigt_telefon_vw' || name=='beschaeftigt_telefon_nr' || name=='brg_kinder_anzahl' || name=='brg_getdat_jj' || name=='brg_familienstand' ||
        name=='brg_oesterreich_tt' || name=='brg_beschaeftigt_seit_tt' || name=='brg_beschaeftigt_seit_mm' || name=='brg_beschaeftigt_seit_jj') 
      vl = '';
    if (name == 'email' && vl == '@') 
      vl = '';
    params += name + '=' + vl + '&';
  }
  window.open(link+params);
}


function checkFileExt(filePath, allowext)
{
  if (filePath.length == 0)
    return true;
  if ((li = filePath.lastIndexOf('.')) == -1)
    return false;
  ext = filePath.substr(li+1);
  if (ext.length < 3 || (allowext.toLowerCase().indexOf(ext.toLowerCase()) == -1)) {
    return false;
  } else {
    return true;
  }
}

function checkUploadForm(f)
{
  fname1 = f.elements.payslip_1.value;
  fname2 = f.elements.payslip_2.value;
  fname3 = f.elements.payslip_3.value;
  allowext = 'gif jpg jpeg tif tiff doc docx pdf png emf wmf jfif jpe bmp dib rle bmz gfa emz wmz pcz pcx pict pct mix cdr cgm eps fpx wpg';
  errmsg_nofile = 'Bitte geben Sie den Dateipfad an.';
  errmsg_filetype = 'Bitte senden Sie nur Bilder, Word- oder PDF-Dokumente.';
  if (fname1.length < 8) {
    alert('Gehaltszettel 1: '+errmsg_nofile);
    f.elements.payslip_1.focus();
    return false;
  }
  if (checkFileExt(fname1, allowext) == false) {
    alert('Gehaltszettel 1: '+errmsg_filetype);
    f.elements.payslip_1.focus();
    return false;
  }
  if (checkFileExt(fname2, allowext) == false) {
    alert('Gehaltszettel 2: '+errmsg_filetype);
    f.elements.payslip_2.focus();
    return false;
  }
  if (checkFileExt(fname3, allowext) == false) {
    alert('Gehaltszettel 3: '+errmsg_filetype);
    f.elements.payslip_3.focus();
    return false;
  }  
  
  //f.elements.payslipsUpload.disabled = true;
  return true;
}


function checkFields(f, fields) 
{
	var error = false;
	f = 'document.forms[\'' + f + '\']';
	for(i=0; i<fields.length; i++) {
		var fieldError = false;
		field = eval(f + '.' + fields[i]);
		if(field.length == undefined) type  = field.type;
		else type  = field[0].type;
		//alert(type);
		if(type == 'radio') {
			if(getCheckedValue(field) == '') fieldError = true;
		}
		else if(type == 'checkbox') {
			if(!field.checked) fieldError = true;
		}
		else if(type == 'select') {
			if(field.options[field.selectedIndex].value == '') fieldError = true;
		}
		else {
			if(field.value == '' || !isAllowedString(field.value)) fieldError = true;
		}
		
		if(fieldError) {
			if(!error && type == 'radio') field[0].focus();
			else if(!error) field.focus(); 
			
			error = true;
			$('#' + fields[i] + '_errorMSG' + ' > td').addClass('errorTD');
			$('#' + fields[i]).addClass('errorInput');
		} 
		else {
			$('#' + fields[i]).removeClass('errorInput');
			$('#' + fields[i] + '_errorMSG' + ' > td').removeClass('errorTD');
		}
	}
	if(error) return false;
	else return true;
}
