

var index_err = 0;

// ***************************************************************************************  
function handleLinkType() {
  var i = 0;
  while (Dati.all[i]) {
    obj = Dati.all[i];

    if ((obj.type=='info') && (obj.format=='8')) {
      var field = Dati.elements[obj.name_field];
      field.value = "<a href=\"" + field.value + "\" target=\"_NEW\">" + field.value + "</a>"
    }

    if ((obj.type=='info') && (obj.format=='9')) {
      var field = Dati.elements[obj.name_field];
      field.value = "<img src=\"" + field.value + "\">"
    }

    i++;
  }
}   



// **************************************************************************************
function doSubmit() {
  
  var i = 0;
  var err = '';
  while (Dati.all[i]) {    
    if (Dati.all[i].type == 'info') {       
      obj = Dati.all[i];    
      err += checkErrors(obj) ;
    } else if (Dati.all[i].type == 'file') {
        obj = Dati.all[i];
        if (Dati.elements[obj.name].value != '') {
          Dati.elements['file_' + obj.name].value = Dati.elements[obj.name].value;          
        }
    }
    i++;
  } // while

  if (err == "") {
    // checkTypeForm();    
    handleLinkType();
    Dati.submit();    
    Dati.disabled = true;
    Dati.style.cursor =  "wait";
    
  } else {
    alert(errors[0] + '\n\n' + err);
    index_err=0;
  }
}


function makeError(msg, obj) {
  index_err ++;
  html = index_err + ')' + ' ' + msg + ': ' + obj.title + '\n';        
  return html;
}

function checkErrors_Text(obj, field) {

  var html = '';
  var n = new Number(field.value);


  var d = new Date(field.value);
  
  try {
    if (obj.isDate == '1') {
      var valorecampo = field.value.split('/');
    
    if (valorecampo[0].length == 1)
      valorecampo[0] = '0' + valorecampo[0];
    if (valorecampo[1].length == 1)
      valorecampo[1] = '0' + valorecampo[1];
    if (valorecampo[2].length == 2)
      valorecampo[2] = '20' + valorecampo[2];

    field.value = valorecampo[0] + "/" + valorecampo[1] + "/" + valorecampo[2];
    }
  }catch(e) {
  }
  

  if ((obj.isRequested=='1') && (field.value=='') ) {
    html += makeError(errors[1], obj);
  } // if

  if ((field.value!='') && (obj.isNumber=='1') && (n.toString() == 'NaN')) { 
    html += makeError(errors[2], obj);
  } // if

  if ((field.value!='') && (obj.isDate=='1') && (d.toString() == 'NaN')) { 
    html += makeError(errors[3], obj);
  } // if


  return html;
} // function





function checkErrors_Check(obj, field) {
  var html = '';

  if (obj.isRequested=='true') {
    i = 0;
    ok = false;    
    while (field[i]) {
      if (field[i].checked) 
    	ok = true;
      i++;
    } // while
    if (!ok) 
      html = makeError(errors[1], obj);
  } // if

  return html;

 
} // function


function checkErrors_DropDown(obj, field) {
  var i = field.selectedIndex;
  var html = '';
  if (obj.isRequested=='1') {
    if (((i < 0) && (obj.format==6)) || ((i < 1) && (obj.format==5))) {
      html = makeError(errors[1], obj);
    }
  } // if
  return html;
} // function



// **************************************************************************************
function checkErrors(obj) {
  // campo
  var field = Dati.elements[obj.name_field];
  var html = '';

  if ((obj.format==1) || (obj.format==2)) {
    html = checkErrors_Text(obj, field);
  } else if ((obj.format==3) || (obj.format==4)) {
    html = checkErrors_Check(obj, field);
  } else if ((obj.format==5) || (obj.format==6)) {
    html = checkErrors_DropDown(obj, field);
  }// if// if
  return html;
}



// **************************************************************************************
// ******************* COMPILE FORM *****************************************************


function compileForm() {
   if ( editmode ) {
    
    var y = 0;
    var obj = document.all['VALUES'];
    while (obj.all[y]) {

      var obj_ref = obj.all[y];
      var field = Dati.elements[obj_ref.name_field];
      switch (obj_ref.format) {
        case '1': 
          field.value = obj_ref.value;
          break;

        case '2':
          field.value = obj_ref.value;
          break;

        case '7':
          field.value = "";
          break;

        
        
        case '5':
          field.value = obj_ref.value;
          break;

        case '6':
          var t = obj_ref.value.split(', ');
          for (j=0; j < t.length; j++) {

            for (q=0; q < field.options.length; q++) {
                if (field.options[q].text == t[j]) {
                  field.options[q].selected = true;
                }
            }
          }
          break;

        case '8':
          var t = obj_ref.value;
          var pos = t.indexOf(">")
          field.value = t.substring(pos+1, t.length - 4);
          break; 

        case '9':
          var t = obj_ref.value;
          var pos = t.indexOf("src=\"")
          field.value = t.substring(pos+5, t.length - 2);
          break; 

        case '3':
          
          var t = obj_ref.value.split(', ');

          for (j=0; j < t.length; j++) {
            var i = 0;
            while (field[i]) {
             field[i].checked = ((field[i].value == t[j]) || (field[i].checked));
             i++;
            }
          }   
          break; 


        case '4':
          
          var t = obj_ref.value.split(', ');

          for (j=0; j < t.length; j++) {
            var i = 0;
            while (field[i]) {
             field[i].checked = ((field[i].value == t[j]) || (field[i].checked));
             i++;
            }
          }   
          break; 


      }
      y++;
    } // while
              


} // if
}



function DynamicDropDown(obj, radice) {
  try { 
    var x = radice.getElementsByTagName('struttura')
    Dati.elements[obj.driveField].innerHTML = null;
    var b = Dati.elements[obj.driveField]
    for (t=0; t < x.length ; t++) {
      if (x[t].v1 == obj.value) {
        b.options[b.options.length] = new Option(x[t].v2);        
      }
              
    } // for
  } catch (e) {
  }   
}


