String.format = function()
  {
    if(arguments.length == 0) return null;
    var str = arguments[0];

    for(var i=1;i<arguments.length;i++)
    {
      var re = new RegExp('\\{' + (i-1) + '\\}','gm');
      str = str.replace(re, arguments[i]);
    }
    return str;
  }

String.trim = function()
{
  if(arguments.length == 0) return null;
  var str = arguments[0];
  return str.replace(/\s+$|^\s+/g,"");
}
  
function openWindow(path, nameWindow, heightWindow, widthWindow) 
{
  var PARAMS_OPTION = "height={0},width={1}";
  window.open(path, nameWindow, String.format(PARAMS_OPTION, heightWindow, widthWindow));
  //newWindow.moveTo(0,0);
  //newWindow.document.write('<H1>Popup Test!</H1>');
  return false;
}

function contains(var1, var2)
{
  return (var1.indexOf(var2) > -1);
}

function getElementsByClassName(searchClass, node, tag){
  var classElements=[];
  node = node || document;
  var pattern = new RegExp('(^|\\s)' + searchClass+ '(\\s|$)');
  var els = (!tag &&  node.all) || node.getElementsByTagName(tag|| '*');
  for(var i=0, j=0;i<els.length;i++){
    if(pattern.test(els[i].className)){
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}

/*
  function changeContent(elem, box, tagMenu, idMenu, classBoxContent)
  {
    tabContainer = $(idMenu);
    menuItem = tabContainer.getElementsByTagName(tagMenu);
    boxItem = document.getElementsByTagName('div');
    boxToShow = $(box);

    for(var i=0; i < menuItem.length; i++)
    {
      menuItem[i].className=""
    }
    
    for(var i=0; i < boxItem.length; i++)
    {
      if(boxItem[i].className.match(classBoxContent))
        boxItem[i].style.display="none";
    }
    
    $(elem).className="active";
    boxToShow.setOpacity(0);
    boxToShow.style.display="block";
    
    new Effect.Opacity(boxToShow, { 
      duration: 0.7,
      transition: Effect.Transitions.linear,
      from: 0.0, 
      to: 1.0
    });
  }
  */
   

 
function openPopUp(url){
  var leftPosition = (screen.width) ? (screen.width - 800)/2 : 0;
  var topPosition = (screen.height) ? (screen.height - 600)/2 : 0;
  popUpWindow = window.open(url, 'popup', 'width=800, height=400, toolbar = no, scrollbars = yes, status = no, left=' + leftPosition + ', top=' + topPosition);
  popUpWindow.focus();
  return false;
}

/* Ritorna un numero con N valori decimali */
Number.format = function()
{
  if(arguments.length == 0) return null;
  var num = arguments[0];
  var k = Math.pow(10, arguments[1]);
  return Math.round(num*k)/k;
}

function select_innerHTML(obj,innerHTML){
  obj.innerHTML = ""
  var selTemp = document.createElement("micoxselect")
  var opt;
  selTemp.id="micoxselect1"
  document.body.appendChild(selTemp)
  selTemp = document.getElementById("micoxselect1")
  selTemp.style.display="none"
  if(innerHTML.toLowerCase().indexOf("<option")<0){
    innerHTML = "<option>" + innerHTML + "</option>"
  }
  innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
  //innerHTML = innerHTML.toLowerCase().replace(/<option/g,"<span").replace(/<\/option/g,"</span")
  selTemp.innerHTML = innerHTML


  for(var i=0;i<selTemp.childNodes.length;i++){
    var spantemp = selTemp.childNodes[i];

    if(spantemp.tagName){
      opt = document.createElement("OPTION")

      if(document.all){ //IE
        obj.add(opt)
      }else{
        obj.appendChild(opt)
      }

      //getting attributes
      for(var j=0; j<spantemp.attributes.length ; j++){
        var attrName = spantemp.attributes[j].nodeName;
        var attrVal = spantemp.attributes[j].nodeValue;
        if(attrVal){
          try{
            opt.setAttribute(attrName,attrVal);
            opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
          }catch(e){}
        }
      }
      //getting styles
      if(spantemp.style){
        for(var y in spantemp.style){
          try{
            opt.style[y] = spantemp.style[y];
          }catch(e){}
        }
      }
      //value and text
      opt.value = spantemp.getAttribute("value")
      opt.text = spantemp.innerHTML
      //IE
      opt.selected = spantemp.getAttribute('selected');
      opt.className = spantemp.className;
    }
  }
  document.body.removeChild(selTemp)
  selTemp = null
}

function _setOptionsExtended(arrValues, arrText,  idSelect, defaultValue)
{
  var objSelect = document.getElementById(idSelect);
  
  objSelect.options.length = 0;

  objSelect.options[0] = new Option("Seleziona", -1);

  for (var count=0; count < arrValues.length; count++)
  {
    objSelect.options[count+1] = new Option(arrText[count], arrValues[count]);
  }

  if(defaultValue != 'undefined')
    objSelect.value = defaultValue;
  else
    objSelect.options[0].selected = true;  
}
