function mi$() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string') element = document.getElementById(element);
		if (arguments.length == 1) return element;
		elements.push(element);
	}
	return elements;
}

function debugeax(x) {
	$("#debugeax").html(x)	//borrar depues
}
	
function activa(obj){
	//alert("Activa : " + obj);
	mi$(obj).style.display="";
}
function desactiva(obj){
	//alert("Desactiva : " + obj);
	mi$(obj).style.display="none";
}

function IIF($cond, $vV , $vF) {
	if ($cond) {return $vV; }else {return $vF;} 
}

function sprintf() {
	debugea = true // Esto es parte de debuguea
	if (!arguments || arguments.length < 1 || !RegExp) {
		return;
	}
	var str = arguments[0];
	var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
	var a = b = [], numSubstitutions = 0, numMatches = 0;
	//alert(re.exec(str) )
	while (a = re.exec(str)) {
		var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
		var pPrecision = a[5], pType = a[6], rightPart = a[7];
		numMatches++;
		if (pType == '%') {
			subst = '%';
		} else {
			numSubstitutions++;
			if (numSubstitutions >= arguments.length) {
				alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
			}
			var param = arguments[numSubstitutions];
			var pad = '';
			if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
			else if (pPad) pad = pPad;
			var justifyRight = true;
			if (pJustify && pJustify === "-") justifyRight = false;
			var minLength = -1;
			if (pMinLength) minLength = parseInt(pMinLength);
			var precision = -1;
			if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
			var subst = param;
			if (pType == 'b') subst = parseInt(param).toString(2);
			else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
			else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
			else if (pType == 'u') subst = Math.abs(param);
			else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
			else if (pType == 'o') subst = parseInt(param).toString(8);
			else if (pType == 's') subst = param;
			else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
			else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
		}
		str = leftpart + subst + rightPart;
	}
	//if (debugea) alert ("Esta Debugueando : " + str) // Esto es parte de debuguea
	return str;
}

function formatCurrency(num) {
	// Esta funcion da formato de moneda a numeros ejemplo: de 1234.56 devuelve $ 1,234.56
	num = num.toString().replace(/$|,/g,'');
	if(isNaN(num)) num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$ ' + num + '.' + cents);
}

function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

function scrollit(){ 
	for (I=1; I<=500; I++){ 	
		parent.scroll(1,I)  
	}
}

function restarFechas(f0, f1) {
	var datePat = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/;
	
	var fecha0 = f0;
	var matchArray0 = fecha0.match(datePat);
	year0 = matchArray0[1];
	month0 = matchArray0[3]-1;
	day0 = matchArray0[5];

	var fecha1 = f1;
	var matchArray1 = fecha1.match(datePat);
	year1 = matchArray1[1];
	month1 = matchArray1[3]-1;
	day1 = matchArray1[5];
	
	var fechaIni = new Date();
	fechaIni.setFullYear(year0, month0, day0)
	
	var fechaFin = new Date();
	fechaFin.setFullYear(year1, month1, day1)
	//alert(fechaIni+" - "+fechaFin)
	
	var resta = fechaFin - fechaIni
	resta = resta/86400000
	return(resta);
} 

function validarNum(e){
    tecla = (document.all) ? e.keyCode : e.which;
	if (tecla == 8) return true;
	if (tecla == 9) return true;
    patron = /[0-9]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}
