/*#################### FUNZIONI GENERALI #########################################################

 funzioni non incorporate in classi
 
#################################################################################################*/

var versione_lib_funzioni="1.0.2";
var data_lib_funzioni="16/04/2007 13.00.00";

/*########################### variabili browser - v1.0.0 #################################*/

var w3c_H=(document.getElementById)? true: false;
var ie5_H=(w3c_H && document.all)? true : false;
var ns6_H=(w3c_H && (navigator.appName=="Netscape"))? true: false;

/*########################### function getMousePosition - v1.0.0 #################################*/
// getMousePosition(evento,deltaX,deltaY)

function getMousePosition(e,deltaX,deltaY){
 if(!e) e=window.event;
 var vDoc=(document.documentElement && document.documentElement.scrollTop)?document.documentElement:document.body;
 mouseX=(e.pageX)?e.pageX:e.clientX+vDoc.scrollLeft;
 mouseY=(e.pageY)?e.pageY:e.clientY+vDoc.scrollTop;
 mouseY=mouseY-deltaY;
 mouseX=mouseX-deltaX;
}

/*########################### function cambiaClasse - v1.0.0 ###################################*/
// cambiaClasse(oggetto,classe)
function cambiaClasse(obj,cls){
 var str;
 var clsTmp=obj.className;
 if((clsTmp=="")||(clsTmp==null)){ return cls; }
 if(clsTmp.Trim().indexOf(" ")>0){
  clsTmp=clsTmp.split(" ");
  clsTmp[0]=cls;
  str=clsTmp.join(" ");
 }else{
   str=cls;				  
 } 
 return str;
}

/*########################### funzioni conferma eliminazione #####################################*/
// getElementsByClass(classe, nodo, tag)
function ctrlElimina(indirizzo,str){
 if(str.Trim()=="") str="Attenzione! Se siete sicuri di voler eliminare questi dati premete OK o ANNULLA se non siete sicuri.";
 var a= confirm(str);
 if(a) location.href=indirizzo;
}

function ctrlElinimaReturn(str){
 var tmp;
 if(str.Trim()=="") str="Attenzione! Se siete sicuri di voler eliminare questi dati premete OK o ANNULLA se non siete sicuri.";
 var a= confirm(str);
 tmp=(a) ? true : false;
 return tmp;
}

/*########################### function getElementsByClass - v1.0.0 ###############################*/
// getElementsByClass(classe, nodo, tag)
function getElementsByClass(searchClass,node,tag){
 var classElements = new Array();
 if ( node == null )
  node = document;
 if ( tag == null )
  tag = '*';
 var els = node.getElementsByTagName(tag);
 var elsLen = els.length;
 var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
 for (i = 0, j = 0; i < elsLen; i++){
  if ( pattern.test(els[i].className) ){
   classElements[j] = els[i];
   j++;
  }
 }
 return classElements;
}

/*########################### function addLoadEvent - v1.0.0 #####################################*/
// addLoadEvent(funzione)
function addLoadEvent(func){
 var oldonload = window.onload;
 if (typeof window.onload != 'function'){
  window.onload = func;
 }else{
  window.onload = function(){
   oldonload();
   func();
  }
 }
}

/*########################### function addEvent - v1.0.0 #########################################*/
// addEvent(elemento, tipo_evento, funzione, useCapture)
function addEvent(elm, evType, fn, useCapture){
 if (elm.addEventListener){
  elm.addEventListener(evType, fn, useCapture);
  return true;
 }else if (elm.attachEvent){
  var r = elm.attachEvent('on' + evType, fn);
  return r;
 }else{
  elm['on' + evType] = fn;
 }
}

/*########################### function creaAttributo - v1.0.0 ####################################*/
// creaAttributo(elemento, attributo, valore)
function creaAttributo(element, attribute, value) {
 var elem;
 var attr;
 elem = document.getElementById(element);
 if(elem != null){
  attr = document.createAttribute(attribute);
  attr.value = value;
  elem.setAttributeNode(attr);
 }
}

/*########################### funzioni LAYER  ####################################################*/
// Layer(layerName,bool)				se 0 style.visibility="hidden" 
//										se 1 style.visibility="visible"
// Layer_display(layerName,flag) 		se 0 style.display="none"
//										se 1 style.display="block"
//										se 2 style.display="inline"
// LayerWrite(layerName,stringa)		scrive nel DIV stringa
function Layer(layerName,flag){
 var tmp=(flag) ? "visible" : "hidden";
 document.getElementById(layerName).style.visibility = tmp;
}

function Layer_display(layerName,flag){
 var tmp;
 if(flag==0){ 
  tmp="none";
 }else if(flag==1){
  tmp="block";
 }else if(flag==2){
  tmp="inline";
 }
 document.getElementById(layerName).style.display = tmp;
}

function LayerWrite(_layer, _testo){
 if (document.layers)
  with (document.layers[_layer].document) { open(); write(_testo); close(); }
 else if (document.getElementById)
  document.getElementById(_layer).innerHTML=_testo;
 else _layer.innerHTML=_testo
}

/*########################### funzioni JSDIR ####################################################*/
// location.QS
// array.Randomize
// array.swap
// array.inArray
// string.Trim
// string.RTrim
// string.LTrim
// function Stringa(_num,_strinput)
var Keys = unescape(location.search.substr(1)).split("&");
for (var _Id in Keys)
	Keys[_Id]=Keys[_Id].split("=");
location.Key = Keys;
function QueryString(_key){
 var _QSvalue;
 for (var _Id in location.Key)
  if (location.Key[_Id][0]==_key)
   return location.Key[_Id][1];
}
location.QS=QueryString;

function Randomize(){
 _RandCicli=100+parseInt(10000*Math.random());
 var _RandArrlen=this.length;
 while (_RandCicli-- > 0)
  this.Swap(0,parseInt(_RandArrlen*Math.random()));
 return this;
}

Array.prototype.Randomize=Randomize;

function Swap(_swa,_swb){
 _temp=this[_swa];
 this[_swa]=this[_swb];
 this[_swb]=_temp;
 return this;
}

Array.prototype.Swap=Swap;

function Stringa(_num,_strinput){
 var _stringa="";
 var _str=this.length?this.toString():_strinput?_strinput.toString():" ";
 var _num=parseInt(_num);
 while (_num-->0)
  _stringa+=_str;
 return _stringa;
}

Array.prototype.inArray = function (value){
 var i;
 for (i=0; i < this.length; i++){
  if (this[i] === value){
   return true;
  }
 }
 return false;
};

String.prototype.Stringa=Stringa;

function Trim(){ return this.replace(/\s+$|^\s+/g,""); }
function LTrim(){ return this.replace(/^\s+/,""); }
function RTrim(){ return this.replace(/\s+$/,""); }
	
String.prototype.Trim=Trim;	
String.prototype.RTrim=RTrim;	
String.prototype.LTrim=LTrim;