function UpdateQStr (ptxtMark, ptxtValue){
// Actualiza la cadena de querystring y la devuelve.
// Recuperar el qureystring actual.
	var si = 0
	var sj = 0 
	var snumrows = 0
	var snumrows2 = 0
	var stxtqstr = window.location.search.substring(1);
	var pbolrtn = Boolean(true)
	var ptxtqstrout = ""
	if(stxtqstr.length > 0){
		// Buscar si tiene & sino es solo 1.
		if (stxtqstr.indexOf("&")!= -1) // hay &
		{
			//  dividir la cadena. split 1.
			var satxtqstr = stxtqstr.split("&");
			// dividir buscando = split 2.
			snumrows = satxtqstr.length;
			var satxtve = new Array() //snumrows
			var satxtvr = new Array()
			// Contador.
			snumrows2 = 0*1 ; // ok
			for (si=0; si<snumrows; si++){
				var stxtnomval=satxtqstr[si].split("=");
				satxtve[snumrows2]=stxtnomval[0].substring(0,5); // Nombre variable.
				satxtvr[snumrows2]=stxtnomval[1].substring(0,5); // Valor variable.
				snumrows2=snumrows2*1+1*1;
			}
			pbolrtn=false;
			// Actualiar el qstr. Busar la marca. satxtve.length no funciona
			for (si=0; si<snumrows2; si++){
				if(satxtve[si]==ptxtMark.substring(0,5)) {
					satxtvr[si]=ptxtValue.substring(0,5);
					pbolrtn=true; 
				} 
			}
			if (pbolrtn==false)
			{
				// Agregar el parametro si no es encontrado.
				satxtve[snumrows2]=ptxtMark.substring(0,5);
				satxtvr[snumrows2]=ptxtValue.substring(0,5);			
			}
			// restar -1 en snumrows2
			for (si=0; si<=snumrows2-1*1; si++){
				ptxtqstrout = ptxtqstrout + satxtve[si] + "=" + satxtvr[si] + "&";
			}
			var pos = ptxtqstrout.lastIndexOf('&')
			ptxtqstrout = ptxtqstrout.substring(0,pos)
		}
		else{
			// No hay & solo es 1 parametro es.
			var satxtqstr = stxtqstr;
			var stxtnomval=satxtqstr.split("=");
			snumrows2=0;//satxtqstr.lenght;
//			alert('snumrows2 1:' + snumrows2); //***************************************?
			var satxtve = new Array()
			var satxtvr = new Array()
			// si la marca encontrada es IDL
			if(stxtnomval[0]==ptxtMark.substring(0,5))
			{
			satxtve[snumrows2]=ptxtMark.substring(0,5); // Nombre variable.
			satxtvr[snumrows2]=ptxtValue.substring(0,5); // Valor variable.
			ptxtqstrout=satxtve[snumrows2].concat("=",satxtvr[snumrows2]);
//			alert('ptxtMark : ' + ptxtMark.substring(0,5));
//			alert('ptxtqstrout 2: ' + ptxtqstrout);
			}
			else{
			// agregar la marca existente..
			satxtve[snumrows2]=stxtnomval[0].substring(0,5); // Nombre variable.
			satxtvr[snumrows2]=stxtnomval[1].substring(0,5); // Valor variable.
			ptxtqstrout = satxtve[snumrows2] + '=' + satxtvr[snumrows2] +'&';
			snumrows2=snumrows2*1+1*1
			satxtve[snumrows2]=ptxtMark.substring(0,5); // Nombre variable.
			satxtvr[snumrows2]=ptxtValue.substring(0,5); // Valor variable.
			var ptxtqstrout1=satxtve[snumrows2].concat("=",satxtvr[snumrows2]);
			ptxtqstrout = ptxtqstrout + ptxtqstrout1
//			alert('ptxtqstrout 1: ' + ptxtqstrout);
			}
		}
		return ptxtqstrout;
	} 
	else{
		stxtqstr = ptxtMark.substring(0,5) + '=' + ptxtValue.substring(0,5)
		return stxtqstr;
	}
}