/*
 *  Webservices common Javascript scripts
 *  
 */

// Ouvre un DIV et ferme les autres
function opendiv(divn,id,max) {
  if (max == 0) {
    var divname = divn;
    var divStyle = document.getElementById(divname).style; 
    divStyle.display = (divn==divname)?'block':'none'; 
  } else {
    for (var i=1;i<=max;i++) {
      var divname = divn+i;
      var divStyle = document.getElementById(divname).style; 
      divStyle.display = (divn+id==divname)?'block':'none'; 
    }
  } 
}

// Ouvre tous les DIV
function openall(max) { 
  for (var i=1;i<=max;i++) {
    var divname = 'div'+i; 
    var divStyle = document.getElementById(divname).style; 
    divStyle.display = 'block'; 
  } 
} 

// Ferme les DIV de 1 a max
function closediv(id,max) {
  if (max == 0) {
    var divname = id;
    var divStyle = document.getElementById(divname).style; 
    divStyle.display = 'none'; 
  } else {
    for (var i=1;i<=max;i++) {
      var divname = id+i; 
      var divStyle = document.getElementById(divname).style; 
      divStyle.display = 'none'; 
    }
  } 
}

// Ferme tous les DIV
function closeall(max) { 
  for (var i=1;i<=max;i++) { 
    var divname = 'div'+i; 
    var divStyle = document.getElementById(divname).style; 
    divStyle.display = 'none'; 
  } 
}

//Ferme un DIV particulier
function closeit(id) {
  var divStyle = document.getElementById(id).style; 
  divStyle.display = 'none'; 
}

// Met en valeur le DIV courant
function setcurrent(divn,id,max) { 
  for (var i=1;i<=max;i++) {
    var divname = divn+i;
    var divClass = document.getElementById(divname); 
    divClass.className = (divn+id==divname) ? 'current' : ''; 
  } 
}

// Ouvre ou ferme un div particulier en fonction de son etat
function toggleDiv(divn) {
  var divStyle = document.getElementById(divn).style;
  divStyle.display = (divStyle.display=='block') ? 'none' : 'block'; 
}

// Change une image en une autre
function toggleImg(divn,img1,img2) {
  var div = document.getElementById(divn);
  var cimg = div.src.match(/[\/|\\]([^\\\/]+)$/);
  div.src = (cimg[1].trim() == img1.trim()) ? '/webservices/share/img/'+img2 : '/webservices/share/img/'+img1; 
}

// Change le texte d'un element innerHTML 
function toggleText(id,text1,text2) {
  document.getElementById(id).innerHTML = (document.getElementById(id).innerHTML==text2) ? text1 : text2; 
}

// Montre un bouton
function showButton(but) {
  var butStyle = document.getElementById(but).style;
  butStyle.display = 'block'; 
}

// Cache un bouton
function hideButton(but) {
  var butStyle = document.getElementById(but).style;
  butStyle.display = 'none'; 
}

//Deploie ou cache un jeu de 2 boutons en fonction de leur etat
function toggleButtons(but1,but2) {
  var but1Style = document.getElementById(but1).style;
  but1Style.display = (but1Style.display=='block') ? 'none' : 'block'; 
  var but2Style = document.getElementById(but2).style;
  but2Style.display = (but2Style.display=='block') ? 'none' : 'block'; 
}

// Defini le texte d'un element innerHTML 
function setText(id,text) {
  document.getElementById(id).innerHTML = text; 
}

// Demarre loader
function startLoader(id) { 
  var divname = 'loader'+id; 
  var divStyle = document.getElementById(divname).style;
  divStyle.display = 'block'; 
}

function startLoaderInline(id) { 
	  var divname = 'loader'+id; 
	  var divStyle = document.getElementById(divname).style;
	  divStyle.display = 'inline'; 
}

// Arrete loader
function stopLoader(id) { 
  var divname = 'loader'+id; 
  var divStyle = document.getElementById(divname).style; 
  divStyle.display = 'none'; 
}

// Reset un champ input type='file'
function resetinputfile(form, e) {
  var itf = document.forms[form].elements[e];
  itf.form.reset();
}

// Met a jour le champ 'paramout' du formulaire a partir des champs 'paramin()'
function updateform(action, form, paramin, paramout) {

  String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); };

  var p = document.forms[form].elements[paramout].value;
  var newp = "";

  if (action.toLowerCase() == 'concat') 
  {
    var separator_text = "";
    var separator_value = "";
    for (var i=0; i<paramin.length; i++) {
      if (i > 0) {
        separator_text = " - ";
        separator_value = ", ";
      }
	  var e = paramin[i];
	  var field = document.forms[form].elements[e];
      if (field.tagName == 'SELECT') {
        newp += separator_text + field.options[field.selectedIndex].value;
	  } else {
        if (field.length > 0) {
          if (field[0].getAttribute('type') == 'radio') {
            for (var j=0; j<field.length; j++) {
              if (field[j].checked) {
                newp += separator_value + field[j].value;
              }
            }
          }
        } else {
	      newp += separator_value + field.value;
        }
	  }
    }
  } 
  else if (action.toLowerCase() == 'choice') 
  {
    var reg = new RegExp("[?]+");
    for (var i=0; i<paramin.length; i++) {
      var e = paramin[i];
      var ve = document.forms[form].elements[e].value.trim();
      if (ve.length > 0 && !reg.test(ve)) {
        if (document.forms[form].elements[e].type == "file") { ve = "file:" + ve; }
        newp = ve;
      }
    }
  }
  else 
  {
    newp = p;
  }

  if (newp.length > 0) {
    document.forms[form].elements[paramout].value = newp.trim();
  }
}

// Met a jour les champs 'paramout()' du formulaire a partir du champ paramin
function setform(form, paramin, paramout) {

  String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); };

  var p = document.forms[form].elements[paramin].value.split(',');
  var reg = new RegExp("[-]");
  var idx = 0;
  for (var i=0; i<p.length; i++) {
    // cherche si la valeur est composee de 2 parties separees par '-'
    if (reg.test(p[i])) {
      var sp = p[i].split(reg);
      for (var j=0; j<sp.length; j++) {
        var e = paramout[idx];
        var field = document.forms[form].elements[e];
        if (field.tagName == 'SELECT') {
          for (var k=0; k<field.length; k++) {
            if (field[k].value.charAt(0) == sp[j].trim().charAt(0)) {
              field[k].selected = true;
            }
          }
        } else {
          field.value = sp[j].trim();
        }
        idx++;
      }
    } else {
      var e = paramout[idx];
      var field = document.forms[form].elements[e];
      if (field.length > 0) {
        if (field[0].getAttribute('type') == 'radio') {
          for (var j=0; j<field.length; j++) {
            if (field[j].value == p[i].trim()) {
              field[j].checked = true;
            }
          }
        }
      } else {
        field.value = p[i].trim();
      }
      idx++;
    }
  }
}

//Donne le focus a un element
function setFocus(el) {
  document.getElementById(el).focus(); 
}

