// Marcos Ortega *** Oct 2006 ***
// Nicaragua

// funciones de coloreado --- INICIO

function color(objeto, color){
	if(objeto)
		if(objeto.style)
			objeto.style.background=color;
}

// funciones de coloreado --- FIN



// funciones de texto --- INICIO
function reemplaza(cadena, reemp, por){
	var str=cadena;
	while(str.indexOf(reemp)>=0){
		str = str.replace(reemp, por);
	}
	return str;
}
// funciones de texto --- FIN




function dameUltimoDiaMes(mes, ano){ 
   var feb = ((((ano % 4)==0) && ((ano % 100)!=0)) || ((ano % 400)==0))?29:28;
   switch(mes) { 
       case 1: return 31; break; 
       case 2: return feb; break; 
       case 3: return 31; break; 
       case 4: return 30; break; 
       case 5: return 31; break; 
       case 6: return 30; break; 
       case 7: return 31; break; 
       case 8: return 31; break; 
       case 9: return 30; break; 
       case 10: return 31; break; 
       case 11: return 30; break; 
       case 12: return 31; break; 
   } 
   return 0;
} 

// -------------- scripts de macromedia --- INICIO

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
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);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.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_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;
}

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_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];}
}
// -------------- scripts de macromedia --- FIN








// -------------- funciones de cookie --- INICIO
function dameCookie(name){
	var cname = name + "=";               
	var dc = document.cookie;             
	if(dc.length > 0) {              
		begin = dc.indexOf(cname);       
		if (begin != -1) {           
			begin += cname.length;       
			end = dc.indexOf(";", begin);
			if (end == -1) end = dc.length;
			return unescape(dc.substring(begin, end));
		} 
	}
	return '';
}

function ponCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) + 
((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
((path == null) ? "" : "; path=" + path) +
((domain == null) ? "" : "; domain=" + domain) +
((secure == null) ? "" : "; secure");
}

// -------------- funciones de cookie --- FIN










// --------------- scripts de selects
// RADIO
function dameValorRadio(radio){
	if(radio){
		for(i=0; i<radio.length; i++) {
			if(radio[i].checked) return radio[i].value;
		}
	}
	return '';
}

function selecionaRadio(paraRadio, valor){
	for(var i=0; i<paraRadio.length; i++){
		if(paraRadio[i].value==valor){
			paraRadio[i].checked=true;
			return;
		}
	}
}

// El arreglo debe estar formado por pares (valor, texto) Ej: Array('1', 'hola', '2', 'amigo', ...)
function cargaSelect(elSelect, elArreglo){
	var i, j; j = 0;
	elSelect.length = Math.round(elArreglo.length/2);
	for(i=0; i<elArreglo.length; i+=2){
		elSelect[j].value = elArreglo[i];
		elSelect[j].text  = elArreglo[i+1];
		j++;
	}
	elSelect.selectedIndex=0;
}

function cambiaSelect(deselect, paraselect, prefijoArray, cadenaPorDefecto){
	var indiceSel = deselect.selectedIndex;
	if(indiceSel==0){
		vaciaSelect(paraselect, cadenaPorDefecto);
	} else {
		var elArrayTextos = eval(prefijoArray+indiceSel+'');
		var elArrayValores = eval(prefijoArray+indiceSel+'_id');
		paraselect.length = elArrayTextos.length;
		for(var i=0; i<elArrayTextos.length; i++){
			paraselect[i].text = elArrayTextos[i];
			paraselect[i].value = elArrayValores[i];
		}
	}
	paraselect.selectedIndex=0;
}

function selecionaPorValor(paraSelect, valor){
	for(var i=0; i<paraSelect.length; i++){
		if(paraSelect[i].value==valor){
			paraSelect.selectedIndex=i;
		}
	}
}

function vaciaSelect(paraselect, cadenaPorDefecto){
	paraselect.length = 1;
	paraselect[0].value='';
	paraselect[0].text=cadenaPorDefecto;
	paraselect.selectedIndex=0;
}


// --------------- scripts de selects










// ------ funciones de posicion es pantalla (averiguarla)
function damePosX(obj){
	var curleft = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x){
		curleft += obj.x;
	}
	return curleft;
}

function damePosY(obj){
	var curtop = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y){
		curtop += obj.y;
	}
	return curtop;
}

function dameAlto(obj){
	if(obj) 
		return obj.offsetHeight;
	return 0;
}

function dameObj(name){
	if(document.all){
		return document.all[name];
	} else if (document.getElementById){
		return document.getElementById(name);
	}
	return null;
	/*if (document.layers){
		if (document.layers[name]){
			this.obj = document.layers[name];
			this.style = document.layers[name];
		} else {
			this.obj = document.layers.testP.layers[name];
			this.style = document.layers.testP.layers[name];
		}
	}*/
}




// -------------- scripts de innerHTML
function ponHTMLObjeto(id, html){
	var obj = dameObj(id);
	if(obj){
		//alert('obj');
		//if(obj.innerHTML){
			//alert('inner');
			obj.innerHTML = html;
		//}
	}
}

function dameHTMLObjeto(id){
	var obj = dameObj(id);
	var contenido = '';
	if(obj)
		if(obj.innerHTML)
			contenido = obj.innerHTML;
	return contenido;
}
// -------------- scripts de innerHTML


//------------ funciones de verificacion de campos
function dameValorDigito(digito){
	if(digito=='9') return 9;
	if(digito=='8') return 8;
	if(digito=='7') return 7;
	if(digito=='6') return 6;
	if(digito=='5') return 5;
	if(digito=='4') return 4;
	if(digito=='3') return 3;
	if(digito=='2') return 2;
	if(digito=='1') return 1;
	return 0;
}

function aEntero(param){
	if(!esEntero(param)) return 0;
	//
	var resultado = 0;
	var multiplicador = 1;
	var posCadena;
	for(posCadena=param.length-1; posCadena>=0; posCadena--){
		resultado += (dameValorDigito(param.charAt(posCadena)) * multiplicador);
		multiplicador *= 10;
	}
	return resultado;
}

function esDigito(caracter){
	if(caracter=='0' || caracter=='1' || caracter=='2'|| caracter=='3' || caracter=='4' || caracter=='5' || caracter=='6' || caracter=='7' || caracter=='8' || caracter=='9')
		return true;
	return false;
}

function esEntero(str){
	var pos, bdigito, c;
	if(str.length==0) return false;
	for(pos=0; pos<str.length; pos++){
		c = str.charAt(pos);
		bdigito = esDigito(c);
		if(! ((pos==0 && c=='-') || (bdigito)) )
		return false;
	}
	return true;
}

function esFecha(param){
	var arreglo = param.split("/");
	if(arreglo.length!=3) return false;
	if(!esEntero(arreglo[0]) || !esEntero(arreglo[1]) || !esEntero(arreglo[2])) return false;
	var dia, mes, ano;
	dia = aEntero(arreglo[0]);
	mes = aEntero(arreglo[1]);
	ano = aEntero(arreglo[2]);
	if(ano<1900 || ano>2999) return false;
	if(mes<1 || mes>12) return false;
	if(dia<1 || dia>dameUltimoDiaMes(mes, ano)) return false;
	return true;
}

function dameDia(param){
	if(esFecha(param)){
		var arreglo = param.split("/");
		return aEntero(arreglo[0]);
	}
	return 0;
}

function dameMes(param){
	if(esFecha(param)){
		var arreglo = param.split("/");
		return aEntero(arreglo[1]);
	}
	return 0;
}

function dameAno(param){
	if(esFecha(param)){
		var arreglo = param.split("/");
		return aEntero(arreglo[2]);
	}
	return 0;
}

function esFechaPosteriorA(pFechaMenor, pFechaMayor){
	var dia1, mes1, ano1; dia1 = pFechaMenor.getDate(); mes1 = pFechaMenor.getMonth(); ano1 = pFechaMenor.getYear();
	var dia2, mes2, ano2; dia2 = pFechaMayor.getDate(); mes2 = pFechaMayor.getMonth(); ano2 = pFechaMayor.getYear();
	//alert(dia1+' '+mes1+' '+ano1);
	//alert(dia2+' '+mes2+' '+ano2);
	if(ano1<ano2) return true;
	if(ano1==ano2 && mes1<mes2) return true;
	if(ano1==ano2 && mes1==mes2 && dia1<dia2) return true;
	return false;
}

function dameUltimoDiaMes(mes, ano){ 
   var feb = ((((ano % 4)==0) && ((ano % 100)!=0)) || ((ano % 400)==0))?29:28;
   switch(mes) { 
       case 1: return 31; break; 
       case 2: return feb; break; 
       case 3: return 31; break; 
       case 4: return 30; break; 
       case 5: return 31; break; 
       case 6: return 30; break; 
       case 7: return 31; break; 
       case 8: return 31; break; 
       case 9: return 30; break; 
       case 10: return 31; break; 
       case 11: return 30; break; 
       case 12: return 31; break; 
   } 
   return 0;
} 

function verificaEntero(campo){
	if(campo){
		if(campo.value){
			var str = campo.value;
			for(var i=0; i<str.length; i++){
				var car = str.charAt(i);
				//alert(i+': '+car);
				if(!esDigito(car)){
					str = str.substring(0, i);
				}
			}
			if(str!=campo.value)
				campo.value = str;
		}
	}
}

function verificaFloat(campo){
	if(campo){
		if(campo.value){
			var str = campo.value;
			for(var i=0; i<str.length; i++){
				var car = str.charAt(i);
				//alert(i+': '+car);
				if(!esDigito(car) && car!='.' && car!=','){
					str = str.substring(0, i);
				}
			}
			if(str!=campo.value)
				campo.value = str;
		}
	}
}

function verificaSTRSQL(campo){
	if(campo){
		if(campo.value){
			var str = campo.value;
			while(str.indexOf('\'')!=-1){str=str.replace('\'','');}
			while(str.indexOf('\"')!=-1){str=str.replace('\"','');}
			if(str!=campo.value)
				campo.value = str;
		}
	}
}

function verificaFecha(campo){
	if(campo){
		if(campo.value){
			var str = campo.value;
			for(var i=0; i<str.length; i++){
				var car = str.charAt(i);
				if(!esDigito(car) && car!='/'){
					str = str.substring(0, i);
				}
			}
			if(str!=campo.value)
				campo.value = str;
		}
	}
}



// --------------- parametros
function dameParametro(params, param, separador){
	var inicio = params.indexOf(param+'=');
	if(inicio>=0){
		fin = params.indexOf(separador, inicio);
		if(fin==-1) fin = params.length;
		return params.substring(inicio+param.length+1, fin);
	}
	return '';
}






// --------------- carro de compras
function agregayRedir(idprodn){
	//var c = parseInt(prompt('Cantidad a cotizar:', '1'));
	//if(isNaN(c)) return true; // no se introdujo un numero o se clicko 'cancelar'
	var cant = 1;
	if(document.formuCant)
			if(document.formuCant.cant)
					if(esEntero(document.formuCant.cant.value))
						cant = parseInt(document.formuCant.cant.value);

	if(cant<1) cant = 1;
	if(agregaACarro(idprodn, cant)){
		top.location = ponParametroGet(quitaMarcaPosicion(top.location), 'hora', dameHoraStr())+'#prod'+idprodn;
		return true;
	}
	return false;
}

function quitayRedir(idprodn){
	if(quitaDeCarro(idprodn)){
		top.location = ponParametroGet(quitaMarcaPosicion(top.location), 'hora', dameHoraStr())+'#prod'+idprodn;
		return true;
	}
	return false;
}

function agregaACarro(idprodn, ncant){
	var cookiecarro, ncookie;
	var conteo = 1;
	var idprod, cant;
	var cantint, existe;
	if(ncant>999) ncant = 999;
	cookiecarro = dameCookie('carro');
	ncookie     = ''; 
	existe      = false;
	idprod      = dameParametro(cookiecarro, 'idprod'+conteo, '&');
	while(esEntero(idprod)){
		cant   = dameParametro(cookiecarro, 'cant'+conteo, '&');
		cantint = 0;
		if(esEntero(cant))
			cantint = parseInt(cant);
		if(parseInt(idprod)==idprodn){
			existe = true;
			cantint += ncant;
			if(cantint>999)cantint=999;
		}
		ncookie += 'idprod'+conteo+'='+idprod+'&cant'+conteo+'='+cantint+'&'
		conteo++;
		idprod = dameParametro(cookiecarro, 'idprod'+conteo, '&');
	}
	if(!existe){
		ncookie += 'idprod'+conteo+'='+idprodn+'&cant'+conteo+'='+ncant+'&'
	}
	if(cookiecarro!=ncookie){
		ponCookie('carro', ncookie);
		return true;
	}
	return false;
}

function quitaDeCarro(idprodn){
	var cookiecarro, ncookie;
	var conteo, conteon;
	var idprod, cant;
	conteo = 1; conteon = 1;
	cookiecarro = dameCookie('carro');
	ncookie = '';
	idprod = dameParametro(cookiecarro, 'idprod'+conteo, '&');
	while(esEntero(idprod)){
		cant   = dameParametro(cookiecarro, 'cant'+conteo, '&');
		if(parseInt(idprod)!=idprodn){
			ncookie += 'idprod'+conteon+'='+idprod+'&cant'+conteon+'='+cant+'&'
			conteon++;
		}
		conteo++;
		idprod = dameParametro(cookiecarro, 'idprod'+conteo, '&');
	}
	if(cookiecarro!=ncookie){
		ponCookie('carro', ncookie);
		return true;
	}
	return false;
}


//tiempo
function dameFechaStr(){
	var f = new Date();
	return (f.getDay()+'/'+f.getMonth()+'/'+f.getYear());
}
function dameHoraStr(){
	var f = new Date();
	return (f.getHours()+':'+f.getMinutes()+':'+f.getSeconds());
}



//url - quita la marca #pos de un url. Ej: marcos.htm#20 -> marcos.htm
function quitaMarcaPosicion(url){
	var n = url.toString().indexOf('#');
	if(n>=0){
			return url.toString().substring(0, n);
	}
	return url;
}

function ponParametroGet(url, param, val){
	var urlstr = url.toString();
	var n = urlstr.indexOf('?');
	if(n>-1){
		var existe1, existe2;
		existe1 = urlstr.indexOf('?'+param+'=');
		existe2 = urlstr.indexOf('&'+param+'=');
		if(existe1>-1 || existe2>-1){
			var fin = urlstr.indexOf('&', (existe1>-1)?existe1+1:existe2+1);
			var retorno = urlstr.substring(0, (existe1>-1)?existe1+1:existe2+1)+param+'='+val;
			if(fin>-1) retorno += urlstr.substring(fin, urlstr.length);
			return retorno;
		}
		return urlstr+'&'+param+'='+val;
	}
	return urlstr+'?'+param+'='+val;
}
//toma la url actual, la procesa y navega hacia ella 
function ponGetNavega(){
	var url = quitaMarcaPosicion(self.location);
	var i, args = ponGetNavega.arguments;
	for (i=0; i<(args.length-1); i+=2){
		url = ponParametroGet(url, args[i], args[i+1]);
	}
	self.location = url;
	return true;
}
