function trim(elemento)
{
  while(elemento.substr(0,1)==" ") elemento=elemento.substring(1);
  while(elemento.substr(elemento.length-1,1)==" ") elemento=elemento.substring(0,elemento.length-1);
  return elemento;
}

function replace(string,textToFind,replaceWith) 
{  
  var strLength = string.length, txtLength = textToFind.length;
  if ((strLength == 0) || (txtLength == 0)) return string;

  var i = string.indexOf(textToFind);
  if ((!i) && (textToFind != string.substring(0,txtLength))) return string;
  if (i == -1) return string;

  var newstr = string.substring(0,i) + replaceWith;

  if (i+txtLength < strLength)
    newstr += replace(string.substring(i+txtLength,strLength),textToFind,replaceWith);

  return newstr;
}

function convert(valore,baseOrig,baseDest) 
{
  var convertBase="0123456789abcdefghijklmnopqrstuvwxyz";
  
  valore=valore.toString().toLowerCase(); baseOrig=baseOrig.toString(); baseDest=baseDest.toString()
  var b=0; var Result="";
  
  if (Number(baseOrig)>convertBase.length || Number(baseDest)>convertBase.length || Number(baseOrig)<2 || Number(baseDest)<2) 
    return null;
    
  for (var c=1;c<=valore.length;c++)
  { 
    b+=convertBase.indexOf(valore.substring(c-1,c))*(Math.pow(baseOrig,valore.length-c)); 
    if (convertBase.indexOf(valore.substring(c-1,c)) > Number(baseOrig)) 
    return null;
  }
  
  var a=Math.floor(Math.log(b)/Math.log(baseDest))
  while (a>-1) 
  {
    var e=Math.pow(baseDest,a)
    a--;
    var d=(b-b%e)/e+1;
    b%=e;
    Ciffer=convertBase.substring(d-1,d);
    Result+=Ciffer;
  }
  
  return Result
}

function pad(value,PadMask)
{
  if (value == "")
    return PadMask;
  
  if (value.length > PadMask.length)
    return v;
    
  return (PadMask + value).substr(value.length,PadMask.length);
}

function convertRGBIntToRGBHex(R,G,B)
{
  R = Math.max(0,Math.min(R,255));
  G = Math.max(0,Math.min(G,255));
  B = Math.max(0,Math.min(B,255));
  
  var vR = pad(convert(R,10,16), "00");
  var vG = pad(convert(G,10,16), "00");
  var vB = pad(convert(B,10,16), "00");
  
  return "#" + vR + vG + vB;
}

function SelezionaNomeFile(file, target)
{
	var nomeFile = file.value;
	nomeFile = nomeFile.substr(nomeFile.lastIndexOf("\\") + 1);
    document.forms[0][target].value = nomeFile;
}



var is_gecko = /gecko/i.test(navigator.userAgent);
var is_ie    = /MSIE/.test(navigator.userAgent);

function setSelectionRange(input, start, end) {
	if (is_gecko) {
		input.setSelectionRange(start, end);
	} else {
		// assumed IE
		var range = input.createTextRange();
		range.collapse(true);
		range.moveStart("character", start);
		range.moveEnd("character", end - start);
		range.select();
	}
};

function getSelectionStart(input) {
	if (typeof input.selectionStart != 'undefined')
		return input.selectionStart;
		
	 var range = document.selection.createRange();
	 var isCollapsed = range.compareEndPoints("StartToEnd", range) == 0;
	 if (!isCollapsed)
	 	range.collapse(true);
	 var b = range.getBookmark();
	 //return b.charCodeAt(2) - 2;
	 return b.charCodeAt(2)-1-b.charCodeAt(0);
};

function getSelectionEnd(input) {
	if (typeof input.selectionEnd != 'undefined') 
		return input.selectionEnd;
		
	 var range = document.selection.createRange();
	 var isCollapsed = range.compareEndPoints("StartToEnd", range) == 0;
	 if (!isCollapsed)
 		range.collapse(false);
 	 var b = range.getBookmark();
	 //return b.charCodeAt(2) - 2;
	 return b.charCodeAt(2)-1-b.charCodeAt(0);
	
};

function fireOnChangeEvent(control)
{ 
    if (control.fireEvent) 
    { 
    // IE
        control.fireEvent("onchange"); 
    } 
    else 
    { 
        var clickEvent = window.document.createEvent("Events"); 
        clickEvent.initEvent("change", false, true); 
        control.dispatchEvent(clickEvent); 
    }
}

function fireOnBlurEvent(control)
{ 
    if (control.fireEvent) 
    { 
    // IE
        control.fireEvent("onblur"); 
    } 
    else 
    { 
        var clickEvent = window.document.createEvent("Events"); 
        clickEvent.initEvent("blur", false, true); 
        control.dispatchEvent(clickEvent); 
    }
}
