	function finMes(nMes, nAno){

		var aFinMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

		var nMesBis = 0;

		if (nMes == 2 && (nAno % 4) == 0) nMesBis = 1;

		return eval(aFinMes[nMes - 1] + nMesBis);

	}



	function padNmb(nStr, nLen){

		var sRes = String(nStr);

		var sCeros = "0000000000";

		return sCeros.substr(0, nLen - sRes.length) + sRes;

	}



	function sumarDias(fecha, dias){

		try {

			var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;

			var f = fecha;

			var arr = f.match(datePat);

			var nDia = Number(arr[1]);

			var nMes = Number(arr[3]);

			var nAno = Number(arr[5]);

			var sep = arr[2];

	

			nDia += Number(dias);

			while (nDia > finMes(nMes, nAno)){

				nDia -= finMes(nMes, nAno);

				nMes += 1;

				if (nMes == 13){

					nMes = 1;

					nAno += 1;

				}

			}

			return padNmb(nDia, 2) + sep + padNmb(nMes, 2) + sep + padNmb(nAno, 4);

		} catch(ex) {

			return null;

		}

	}

	

	function restarFechas(f0, f1) {

		try {

			var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;

			var fecha0 = f0;

			var matchArray0 = fecha0.match(datePat);

			

			month0 = matchArray0[3];

			day0 = matchArray0[1];

			year0 = matchArray0[5];

			

			var fecha1 = f1;

			var matchArray1 = fecha1.match(datePat);

			month1 = matchArray1[3];

			day1 = matchArray1[1];

			year1 = matchArray1[5];

			

			var fechaIni = new Date();

			fechaIni.setFullYear(year0, month0, day0);

	

			var fechaFin = new Date();

			fechaFin.setFullYear(year1, month1, day1);

			

			var resta = fechaFin.getTime() - fechaIni.getTime();

			resta = Math.floor(resta / (1000 * 60 * 60 * 24)).toFixed(0);

			return resta;

		} catch(ex) {

			return 0;

		}

	}
