﻿function findPos(obj) {
  var curleft = curtop = 0;
  if (obj.offsetParent) {
    do {
      curleft += obj.offsetLeft;
      curtop += obj.offsetTop;
    } while (obj = obj.offsetParent);
  }
  return [curleft, curtop];
}

function CalData() {
  var calDI = new Calendar(1, null, onSelectData, onCloseData);
  calDI.setDateFormat("%d/%m/%Y");
  var d = new Date();
  anno = d.getFullYear();
  calDI.setRange(anno, (anno + 2));
  calDI.create();
  calDI.showAtElement(document.getElementById("news_data"), "Br");
}
function onSelectData(calDI, date) {
  document.getElementById("news_data").value = date;
  calDI.callCloseHandler();
  calDI.hide();
  calDI.destroy();
}
function onCloseData(calDI, date) {
  calDI.hide();
  calDI.destroy();
}

function CloseLightBox() {
  document.getElementById('light').style.display = 'none';
  document.getElementById('fade').style.display = 'none';
};

function ViewLightBox() {
  document.getElementById('light').style.display = 'block';
  document.getElementById('fade').style.display = 'block';
  //document.getElementById("light").style.top = ((document.body.clientHeight/2)-(document.getElementById("light").clientHeight/2))+document.body.scrollTop+'px';
  document.getElementById("light").style.top = (110 + document.body.scrollTop) + 'px';
  document.getElementById("light").style.left = ((document.body.clientWidth / 2) - (document.getElementById("light").clientWidth / 2)) + document.body.scrollLeft + 'px';
  //document.getElementById("light").style.height = (120+document.getElementById("content_light").style.height)+'px';
  //document.getElementById("light").style.height = '800px';
  document.getElementById("fade").style.height = document.body.clientHeight + document.body.scrollTop + 'px';
};

function trim(stringa) {
  while (stringa.substring(0, 1) == ' ') {
    stringa = stringa.substring(1, stringa.length);
  }
  while (stringa.substring(stringa.length - 1, stringa.length) == ' ') {
    stringa = stringa.substring(0, stringa.length - 1);
  }
  return stringa;
};

function numerico(sText) {
  var ValidChars = "0123456789,";
  var IsNumber = true;
  var Char;
  for (i = 0; i < sText.length && IsNumber == true; i++) {
    Char = sText.charAt(i);
    if (ValidChars.indexOf(Char) == -1) {
      IsNumber = false;
    }
  }
  return IsNumber;
}

function VerificaDataByRef(ctrlDataByRef, ctrlDataDescr) {
  var dataverifica;
  var dataoutput;
  var gginput;
  var mminput;
  var aaaainput;
  var ggoutput;
  var mmoutput;
  var aaaaoutput;
  var datainput = ctrlDataByRef.value;

  if (datainput == "") {
    alert("Il campo '" + ctrlDataDescr + "' è obbligatorio");
    return false;
  }

  if (datainput.length != 10) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nLa data deve essere in formato GG/MM/AAAA");
    return false;
  }

  gginput = datainput.substr(0, 2);
  mminput = datainput.substr(3, 2);
  aaaainput = datainput.substr(6, 4);

  if (!(numerico(gginput))) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nIl giorno inserito non è in formato numerico");
    return false;
  }

  if (!(numerico(mminput))) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nIl mese inserito non è in formato numerico");
    return false;
  }

  if (!(numerico(aaaainput))) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nL`anno inserito non è in formato numerico");
    return false;
  }

  dataverifica = new Date(aaaainput, mminput - 1, gginput)

  aaaaoutput = dataverifica.getFullYear().toString();
  mmoutput = (dataverifica.getMonth() + 1).toString();
  ggoutput = dataverifica.getDate().toString();

  if (mmoutput.length < 2)
    mmoutput = "0" + mmoutput;

  if (ggoutput.length < 2)
    ggoutput = "0" + ggoutput;

  dataoutput = ggoutput + "/" + mmoutput + "/" + aaaaoutput;

  if (datainput != dataoutput) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nLa data inserita non è corretta");
    return false;
  } else {
    return true;
  }
}


function verificadata(ctrlDataName, ctrlDataDescr) {
  var dataverifica;
  var dataoutput;
  var gginput;
  var mminput;
  var aaaainput;
  var ggoutput;
  var mmoutput;
  var aaaaoutput;
  var datainput = document.getElementById(ctrlDataName).value;

  if (datainput == "") {
    alert("Il campo '" + ctrlDataDescr + "' è obbligatorio");
    return false;
  }

  if (datainput.length != 10) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nLa data deve essere in formato GG/MM/AAAA");
    return false;
  }

  gginput = datainput.substr(0, 2);
  mminput = datainput.substr(3, 2);
  aaaainput = datainput.substr(6, 4);

  if (!(numerico(gginput))) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nIl giorno inserito non è in formato numerico");
    return false;
  }

  if (!(numerico(mminput))) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nIl mese inserito non è in formato numerico");
    return false;
  }

  if (!(numerico(aaaainput))) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nL`anno inserito non è in formato numerico");
    return false;
  }

  dataverifica = new Date(aaaainput, mminput - 1, gginput)

  aaaaoutput = dataverifica.getFullYear().toString();
  mmoutput = (dataverifica.getMonth() + 1).toString();
  ggoutput = dataverifica.getDate().toString();

  if (mmoutput.length < 2)
    mmoutput = "0" + mmoutput;

  if (ggoutput.length < 2)
    ggoutput = "0" + ggoutput;

  dataoutput = ggoutput + "/" + mmoutput + "/" + aaaaoutput;

  if (datainput != dataoutput) {
    alert("Verificare il campo '" + ctrlDataDescr + "'\r\nLa data inserita non è corretta");
    return false;
  } else {
    return true;
  }
}


function formData2QueryString(docForm) {

  var strSubmitContent = '';
  var formElem;
  var strLastElemName = '';

  for (i = 0; i < docForm.elements.length; i++) {

    formElem = docForm.elements[i];
    //alert(formElem.name + ' ' + strSubmitContent);
    switch (formElem.type) {
      // Text fields, hidden form elements  
      case 'text':
      case 'hidden':
      case 'password':
      case 'textarea':
      case 'select-one':
        strSubmitContent += formElem.name + '=' + escape(htmlEncode(formElem.value)) + '&'
        break;

      // Radio buttons  
      case 'radio':
        if (formElem.checked) {
          strSubmitContent += formElem.name + '=' + escape(htmlEncode(formElem.value)) + '&'
        }
        break;

      // Checkboxes  
      case 'checkbox':
        if (formElem.checked) {
          // Continuing multiple, same-name checkboxes
          if (formElem.name == strLastElemName) {
            // Strip of end ampersand if there is one
            if (strSubmitContent.lastIndexOf('&') == strSubmitContent.length - 1) { strSubmitContent = strSubmitContent.substr(0, strSubmitContent.length - 1); }
            // Append value as comma-delimited string
            strSubmitContent += ',' + escape(htmlEncode(formElem.value));
          } else {
            strSubmitContent += formElem.name + '=' + escape(htmlEncode(formElem.value));
          }
          strSubmitContent += '&';
          strLastElemName = formElem.name;
        }
        break;
    }

  }

  // Remove trailing separator
  strSubmitContent = strSubmitContent.substr(0, strSubmitContent.length - 1);
  return strSubmitContent;
};

function xLeft(str, n) {
  if (n <= 0)
    return "";
  else if (n > String(str).length)
    return str;
  else
    return String(str).substring(0, n);
};

function xRight(str, n) {
  if (n <= 0)
    return "";
  else if (n > String(str).length)
    return str;
  else {
    var iLen = String(str).length;
    return String(str).substring(iLen, iLen - n);
  }
};

function ChangeStrip(oTabStrip, oTab) {
  var docTabStrip = document.getElementById(oTabStrip);
  var childrenTab = docTabStrip.childNodes;
  for (ts = 0; ts < childrenTab.length; ts++) {
    if (childrenTab[ts].tagName == 'DIV') {
      childrenTab[ts].style.display = 'none';
    }
  }
  document.getElementById(oTab).style.display = 'block';
};

function NewChangeStrip(oTabStrip, oTab) {
  myStrip = document.getElementById(oTabStrip);
  myStripTables = myStrip.getElementsByTagName("table");
  //alert(myStripTables.length);
  for (st = 0; st < myStripTables.length; st++) {
    // Blocco di gestione delle intestazioni del tabstrip
    if (myStripTables[st].id == "stripHeaderTable") {
      myStripHeaders = myStripTables[st].getElementsByTagName("td");
      for (tdn = 0; tdn < myStripHeaders.length; tdn++) {
        if (tdn == oTab) { myStripHeaders[tdn].className = "tabstrip_pressed"; } else { myStripHeaders[tdn].className = "tabstrip_unpressed"; };
      };
    };
    // Blocco di gestione dei tabstrip effettivi
    if (myStripTables[st].id == "stripTabTable") {
      myStripHeaders = myStripTables[st].getElementsByTagName("td");
      myStripTd = myStripHeaders[0];
      //myStripDiv = myStripTd.getElementsByTagName("div");
      myStripDiv = myStripTd.childNodes;
      //alert(myStripDiv.length);
      for (tddiv = 0; tddiv < myStripDiv.length; tddiv++) {
        //alert(myStripDiv[tddiv].tagName + ' -> ' + myStripDiv[tddiv].id);
        if (myStripDiv[tddiv].tagName == 'DIV') {
          if (myStripDiv[tddiv].id == 'strip' + oTab) { myStripDiv[tddiv].style.display = "block"; } else { myStripDiv[tddiv].style.display = "none"; };
        };
      };
    };
  };
};


function htmlEncode(source, display, tabs) {
  function special(source) {
    var result = '';
    for (var i = 0; i < source.length; i++) {
      var c = source.charAt(i);
      if (c < ' ' || c > '~') {
        c = '&#' + c.charCodeAt() + ';';
      }
      result += c;
    }
    return result;
  }

  function format(source) {
    // Use only integer part of tabs, and default to 4
    tabs = (tabs >= 0) ? Math.floor(tabs) : 4;

    // split along line breaks
    var lines = source.split(/\r\n|\r|\n/);

    // expand tabs
    for (var i = 0; i < lines.length; i++) {
      var line = lines[i];
      var newLine = '';
      for (var p = 0; p < line.length; p++) {
        var c = line.charAt(p);
        if (c === '\t') {
          var spaces = tabs - (newLine.length % tabs);
          for (var s = 0; s < spaces; s++) {
            newLine += ' ';
          }
        }
        else {
          newLine += c;
        }
      }
      // If a line starts or ends with a space, it evaporates in html
      // unless it's an nbsp.
      newLine = newLine.replace(/(^ )|( $)/g, '&nbsp;');
      lines[i] = newLine;
    }

    // re-join lines
    var result = lines.join('<br />');

    // break up contiguous blocks of spaces with non-breaking spaces
    result = result.replace(/  /g, ' &nbsp;');

    // tada!
    return result;
  }

  var result = source;

  // ampersands (&)
  result = result.replace(/\&/g, '&amp;');

  // less-thans (<)
  result = result.replace(/\</g, '&lt;');

  // greater-thans (>)
  result = result.replace(/\>/g, '&gt;');

  if (display) {
    // format for display
    result = format(result);
  }
  else {
    // Replace quotes if it isn't for display,
    // since it's probably going in an html attribute.
    result = result.replace(new RegExp('"', 'g'), '&quot;');
  }

  // special characters
  result = special(result);

  // tada!
  return result;
}


function EmailValidator(str) {

  var at = "@"
  var dot = "."
  var lat = str.indexOf(at)
  var lstr = str.length
  var ldot = str.indexOf(dot)
  if (str.indexOf(at) == -1) {
    //alert("Invalid E-mail ID")
    return false
  }

  if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
    //alert("Invalid E-mail ID")
    return false
  }

  if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
    //alert("Invalid E-mail ID")
    return false
  }

  if (str.indexOf(at, (lat + 1)) != -1) {
    //alert("Invalid E-mail ID")
    return false
  }

  if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
    //alert("Invalid E-mail ID")
    return false
  }

  if (str.indexOf(dot, (lat + 2)) == -1) {
    //alert("Invalid E-mail ID")
    return false
  }

  if (str.indexOf(" ") != -1) {
    //alert("Invalid E-mail ID")
    return false
  }

  return true
}

function Mid(String, Start, Length) {
  if (String == null)
    return (false);

  if (Start > String.length)
    return '';

  if (Length == null || Length.length == 0)
    return (false);

  return String.substr((Start - 1), Length);
}


function InStr(String1, String2) {
  var a = 0;

  if (String1 == null || String2 == null)
    return (false);

  String1 = String1.toLowerCase();
  String2 = String2.toLowerCase();

  a = String1.indexOf(String2);
  if (a == -1)
    return 0;
  else
    return a + 1;
}

function Len(string) {
  if (string == null)
    return (false);

  return String(string).length;
}

