//---------------------------------------------
// getParameter()
//---------------------------------------------
// in:	(sParam)	parametro da cercare
//			(sURL)		URL
// out:	il parametro cercato
function getParameter(sParam, sURL){
	var rxParam=new RegExp(sParam+"=");	
	var sURLCopy = sURL;
	var nPos=-1;

	//Se non è stato trovato il parametro, ritorna
	if ((nPos=sURLCopy.search(sParam))==-1){	return ""; }

	sURLCopy=sURLCopy.substr((++nPos)+sParam.length);

	//Se il parametro è l'ultimo (è già isolato), ritorna
	if ((nPos=sURLCopy.search(/&/))==-1){ return sURLCopy; }

	return sURLCopy.substring(0,nPos);
}

//---------------------------------------------
// setParameter()
//---------------------------------------------
// in:	(sParam)	parametro da cercare
//			(sValue)	valore da impostare
//			(sURL)		URL
// out:	la stringa di search
function setParameter(sParam, sValue, sURL){
	var rxParam=new RegExp(sParam+"=");	

	//Ottieni la stringa di search
	var nPos=sURL.search(/\?/);
	var sSearch="?open=1";
	if (nPos>=0){	sSearch=sURL.substr(nPos); }

	//Se non è stato trovato il parametro, aggiungilo
	if ((nPos=sSearch.search(sParam))==-1){	return sSearch+"&"+sParam+"="+sValue;	}

	//Ottieni la coda se esiste
	var sBuf=sSearch.substr(nPos);
	var sTail="";
	if(sBuf.search(/&/)!=-1){ sTail=sBuf.substr(sBuf.search(/&/)); }
	
	//Imposta il parametro
	return sSearch.substr(0,nPos)+sParam+"="+sValue+sTail;
}

//---------------------------------------------
// trimString()
//---------------------------------------------
// in:	(sStringToTrim)	la stringa da trimmare
// out:	la stringa senza spazi iniziali e finali
function trimString(sStringToTrim){
	return (sStringToTrim.replace(/^(\s*)(.*)/,"$2")).replace(/(\s*)$/,"");
}

//---------------------------------------------
// dec2base()
//---------------------------------------------
// in:	(num)	il numero da convertire
//			(base) la base in cui convertire il numero
// out:	stringa rappresentante il numero 
//			convertito nella base
// note: è possibile convertire fino a base 16
function dec2base(num,base){

	//Controlla se la base è valida
	if ((base<2) || (base>16)){
		alert("Attenzione!\nE' stata chiamata la funzione <dec2Base> con una base non valida.\n(2<=base<=16)")
		return;
	}

	var a=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F")
	var res="";
	do{ res=a[(num%base)]+res;	num=Math.floor(num/base);	}while((num>=1))
	return res;	
}

//---------------------------------------------
// base2dec()
//---------------------------------------------
// in:	(num)	il numero da convertire
//			(base) la base da cui convertire il numero
// out:	il numero convertito in decimale
// note: è possibile convertire fino a base 16
function base2dec(num,base){
	//Controlla se la base è valida
	if ((base<2) || (base>16)){
		alert("Attenzione!\nE' stata chiamata la funzione <base2dec> con una base non valida.\n(2<=base<=16)")
		return;
	}

	var ref=("A".charCodeAt(0)-10);		//Riferimento per calcolare i valori alfabetici
	var sNum=num.toUpperCase();
	var sLen=sNum.length;
	var cCifra="";
	var res=0;

	for(var i=0;i<sLen;i++){
		cCifra=sNum.charAt(sLen-i-1);
		if(isNaN(cCifra)){
			cCifra=parseInt(cCifra.charCodeAt(0)-ref);
		}
		res+=(cCifra*Math.pow(base,i));
	}
	return res;
}

//---------------------------------------------
// bin2Dec()
//---------------------------------------------
// in:	(binval)	stringa rappresentante il
//								numero binario da convertire
// out:	la stringa convertita in base 10
function bin2dec(binval) {

	var val=0;
	var str=String(binval);

	for(var i=0;i<str.length;i++)
		if(str.charAt(str.length-i-1)=="1")
				val+=Math.pow(2,i);

	return val;
}

//---------------------------------------------------
// function isObject()
//---------------------------------------------------
function isObject(oObj) {
	if (eval(oObj)=='[object]')	{
		return true;
	}else {
		return false;
	}
}
