/***********************************/
/* Funciones Generales Javascript  */
/***********************************/

//Actualiza el contenido de una capa(pasada por parametro)
function ActualizaCapa(id,descripcio) {
if (ns4) {
			var lyr = document.layers[id].document;
			lyr.open();
			lyr.write(descripcio);
			lyr.close();
			}
	else {
		document.all[id].innerHTML = descripcio;
		}
}

//funcio que obre finestres externes
function OpenWindow(url,title,sc,loc,res,bar,st,tool,w,h){
if (sc==0) {sc='no'} else sc='yes';
if (loc==0) {loc='no'} else loc='yes';
if (res==0) {res='no'} else res='yes';;
if (bar==0) {bar='no'} else bar='yes';
if (st==0) {st='no'} else st='yes';
if (tool==0) {tool='no'} else tool='yes';

window.open(url,title,"scrollbars="+sc+",location="+loc+",resizable="+res+",menubar="+bar+",status="+st+",toolbar="+tool+",width="+w+",height="+h)
}

//Recupera parametros de la url
function GetParam(sNomParam) {
	var sCerca,asParametres,asParam;
	sCerca = location.search.substring(1,location.search.length);
	asParametres = sCerca.split("&");
	for(var i=0;i<asParametres.length;i++) {
		asParam = asParametres[i].split("=");
		if (asParam[0] == sNomParam) return asParam[1];
	}
    return "";
}	

/*******************************/
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}



// Funciones para hacer un encode y decode de URL *******************************
var hexVals = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
var unsafeString = "\"<>%\\^[]`";

function highlight(element1){element1.focus();element1.select();}

function URLDecode()
{
	var returnstr=unescape(form1.string1.value);
	document.all.div1.innerHTML='RESULT:<br><textarea name="textarea2">'+returnstr+'</textarea>';
	highlight(form3.textarea2);
        // while coding i found that IE had problem writing '<form>' to innerhtml. </form> was ok. 'unknown runtime error' IE5.5.
}

function URLEncode(val)
{
        var state   = 'urlenc';
        var len     = val.length;
        var backlen = len;
        var i       = 0;

        var newStr  = "";
        var frag    = "";
        var encval  = "";

        for (i=0;i<len;i++) 
        {

                if (isURLok(val.substring(i,i+1)))
                {
                        newStr = newStr + val.substring(i,i+1);
                }
                else
                {
                        tval1=val.substring(i,i+1);
                        newStr = newStr + "%" + decToHex(tval1.charCodeAt(0),16);
                }
        }
	
	return(newStr);		
	
}

function decToHex(num, radix) // part of URL Encode
{
        var hexString = "";
        while (num >= radix)
        {
               temp = num % radix;
               num = Math.floor(num / radix);
               hexString += hexVals[temp];
        }
        hexString += hexVals[num];
        return reversal(hexString);
}

function reversal(s) // part of URL Encode
{
        var len = s.length;
        var trans = "";
        for (i=0; i<len; i++)
        {
                trans = trans + s.substring(len-i-1, len-i);
        }
        s = trans;
        return s;
}

function isURLok(compareChar) // part of URL Encode
{
        if (unsafeString.indexOf(compareChar) == -1 && compareChar.charCodeAt(0) > 32 && compareChar.charCodeAt(0) < 123) 
        {
                return true;
        }
        else
        {
                return false;
        }
}

// FIN Funciones para hacer un encode y decode de URL *******************************