// js4.js
var sAuto="";
function VMulti(oCbx,nMax) {
  var nCpt=0;
  var bRet=true;
  if (nMax==1) {
    var j=0;
    if (oCbx.checked==true) { j=1; }
    for(var i=0;i<oCbx.form.elements.length;i++) {
      var oCur=oCbx.form.elements[i];
      if((oCur.type=="checkbox") && (oCur.name.toUpperCase()==oCbx.name.toUpperCase())) {
        oCur.checked=false;
      }
    }
    if (j==1) { oCbx.checked=true; }
  } else {
    for(var i=0;i<oCbx.form.elements.length;i++) {
      var oCur=oCbx.form.elements[i];
      if((oCur.type=="checkbox") && (oCur.name.toUpperCase()==oCbx.name.toUpperCase())) {
        if(oCur.checked) {
          nCpt++;
          if(nCpt>nMax) { bRet=false; break; }
        }
      }
    }
    if(!bRet) {
      //alert(unescape("You cannot choose more than "+nMax+" items..."));
      oCbx.checked=false;
    }
  }
  return(bRet);
}

function VFloat(sSrc) {
  var sBrw=navigator.appName.toUpperCase();
  var nVer=parseFloat(navigator.appVersion);
  var bOk=(((sBrw.substring(0,8)=="NETSCAPE") && (nVer>=2.02)) || ((sBrw.substring(0,9)=="MICROSOFT") && (nVer>=3)));
  var sRet="";
  var n=0;

  if(bOk) {
    for(var i=0;i<sSrc.length;i++) {
      var c=sSrc.charAt(i);
      if((c==".") || (c==",")) { 
        if (sRet=="") { sRet="0."; } else { if (n==0) { sRet+="."; } }
        n++;
      } else {
        if ((sRet=="") && (c=="-")) { sRet="-"; }
        else { if("0123456789".indexOf(c)!=-1) { sRet+=c; } }
      }
    }
    if (sRet.length >=1) {
      if (sRet.charAt(sRet.length-1)==".") { sRet=sRet.substring(0,sRet.length-1); }
    }
  }
  else { sRet=sSrc; }
  return(sRet);
}

function VNum(sSrc) {
  var sBrw=navigator.appName.toUpperCase();
  var nVer=parseFloat(navigator.appVersion);
  var bOk=(((sBrw.substring(0,8)=="NETSCAPE") && (nVer>=2.02)) || ((sBrw.substring(0,9)=="MICROSOFT") && (nVer>=3)));
  var sRet="";

  if(bOk) {
    for(var i=0;i<sSrc.length;i++) {
      var c=sSrc.charAt(i);
      if(c==".") { break; }
      else {
        if ((sRet=="") && (c=="-")) { sRet="-"; }
        else { if("0123456789".indexOf(c)!=-1) { sRet+=c; } }
      }
    }
  }
  else { sRet=sSrc; }
  if (sRet=="-") { sRet=""; }
  return(sRet);
}

function VRange(oTbx,nMin,nMax,sLang) {
  var sBrw=navigator.appName.toUpperCase();
  var nVer=parseFloat(navigator.appVersion);
  var bOk=(((sBrw.substring(0,8)=="NETSCAPE") && (nVer>=2.02)) || ((sBrw.substring(0,9)=="MICROSOFT") && (nVer>=3)));
  var bRet=true;

  if(bOk) {
    if((oTbx.value.length>0) && ((parseFloat(oTbx.value)<nMin) || (parseFloat(oTbx.value)>nMax))) {
      if(sLang=="fr") { alert("Saisissez une valeur entre "+nMin+" et "+nMax+"..."); }
      else { alert("Enter a value between "+nMin+" and "+nMax+"..."); }
      oTbx.value="";
      bRet=false;
    }
  }

  return(bRet);
}

// about user //

function cqs(obj)
{ var screen=getResolution();
  var depth=getDepth();

  //  obj.screen.value=screen;
  //  obj.depth.value=depth;
}

// Resolution detection
function getResolution() {
  if (window.screen)
    return screen.width + 'x' + screen.height;
  else
    return '';
}

// Screen color depth detection
function getDepth() {
  if (window.screen)
    return screen.colorDepth;
  else
    return '';
}

// NOT USED SO FAR
function DelTxt(oForm,sName) { oForm.elements[sName].value=""; }
function VCbx(oCbx,sName) {
  var sBrw=navigator.appName.toUpperCase();
  var nVer=parseFloat(navigator.appVersion);
  var bOk=(((sBrw.substring(0,8)=="NETSCAPE") && (nVer>=2.02)) || ((sBrw.substring(0,9)=="MICROSOFT") && (nVer>=3)));

  if(bOk) {
    if(sAuto==sName) { oCbx.checked=true; sAuto=""; }
    else {
      sAuto="";
      if(!oCbx.checked) {
        for(var i=0;i<oCbx.form.elements.length;i++) {
          var oCur=oCbx.form.elements[i];
          if(oCur.name==sName) { oCur.value=""; break; }
        }
      }
    }
  }
}
function VText(oTxt,sName,sVal) {
  var sBrw=navigator.appName.toUpperCase();
  var nVer=parseFloat(navigator.appVersion);
  var bOk=(((sBrw.substring(0,8)=="NETSCAPE") && (nVer>=2.02)) || ((sBrw.substring(0,9)=="MICROSOFT") && (nVer>=3)));

  if(bOk) {
    if(oTxt.value!="") {
      for(var i=0;i<oTxt.form.elements.length;i++) {
        var oCur=oTxt.form.elements[i];
        if((oCur.name==sName) && (oCur.value==sVal)) { oCur.checked=true; sAuto=oTxt.name; break; }
      }
    }
  }
}

function selOther(oObj) {
  var i,j;
  var s='';

  for (i=0;i<oObj.options.length;i++) {
    if (oObj.options[i].selected) {
      s=oObj.options[i].value;
    }
  }

  i=1;
  while (i<selOther.arguments.length) {
     if (selOther.arguments[i]==s) {
       oObj.form.elements[selOther.arguments[i+1]].select();
     }
     i+=2;
  }
}

// Get the value of a form element as a number

function get(oForm,sName) {
  return(oForm.form.elements[sName].value*1.0);
}

// Set the value of a form element
function set(oForm,sName,sValue) {
  oForm.form.elements[sName].value=sValue;
  if (typeof(oForm.form.elements['_'+sName].value)!='undefined') {
    oForm.form.elements['_'+sName].value=sValue;
  }
}

// calc_col: Calculate the total for a column of integers

// oForm - An object containing the form object
// tPre - First part of question name (before Row part)
// Rows - array of the part of the question name that identifies the row
// tPost - Last part of question name (after Row part)
// tot - Row part of question name for the total cell

function calc_col(oForm,tPre,tPost,Rows,tot) {
  var n=0;

  for (var r=0;r<Rows.length;r++) {
    n+=oForm.form.elements[tPre+Rows[r]+tPost].value*1;
  }
  oForm.form.elements[tPre+tot+tPost].value=n;
}

