var zz, zv, d, fTSR;
var gBF=false;
var g_MINY = 1601;
var g_MAXY = 4500;
var g_month = 0;
var g_day = 0;
var g_year = 0;
var g_yLow = 1990;
var g_eC=null;
var g_eCV="";
var offsetLeftImg = -115;
var offsetTopImg = 17;

offsetLeftImg = -115;
offsetTopImg = 17;

var rgMC = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
d = new Date();
fTSR=0;
zv = d.getTime();
zz = "&zz="+zv;

function GetDowStart() {return 1;}

function GetInputDate(t) {
	var l = t.length;
	if(0 == l) return false;
	var cSp = '\0';
	var sSp1 = "";
	var sSp2 = "";
	for(var i=0; i<t.length; i++){
		var c=t.charAt(i);
		if(c==' ' || isdigit(c)) continue;
		else if(cSp == '\0' && (c == '/' || c == '-' || c == '.')) {
			cSp = c;
			sSp1 = t.substring(i+1,l);
		} else if(c==cSp) sSp2 = t.substring(i+1,l);
		else if(c != cSp) return false;
	}
	if(0 == sSp1.length) return false;
	var m=atoi(sSp1);
	var d=atoi(t);
	var y;
	if(0 != sSp2.length) y = atoi(sSp2);
	else y = DefYr(m,d);
	if(y < 100){
		y = 1900+y;
		while(y < g_yLow) y = y+100;
	}
	if(y < g_MINY || y > g_MAXY || m < 1 || m > 12) return false;
	if(d < 1 || d > GetMonthCount(m,y)) return false;
	g_month = m;
	g_day = d;
	g_year = y;
	return true;
}

function DefYr(m,d){
	var dt = new Date();
	var yCur = (dt.getYear() < 1000) ? 1900+dt.getYear() : dt.getYear();
	if(m-1 < dt.getMonth() || (m-1 == dt.getMonth() && d < dt.getDate())) return 1+yCur;
	else return yCur;
}

function atoi(s){
	var t=0;
	for(var i=0; i<s.length; i++){
		var c=s.charAt(i);
		if(!isdigit(c)) return t;
		else t = t*10 + (c-'0');
	}
	return t;
}

function isdigit(c) {
	return(c >= '0' && c <= '9');
}

function GetMonthCount(m,y){
	var c = rgMC[m-1];
	if((2 == m) && IsLeapYear(y)) c++;
	return c;
}
function IsLeapYear(y){
	if(0 == y % 4 && ((y % 100 != 0) || (y % 400 == 0))) return true;
	else return false;
}

var dF;
var wF;
function ShowCalendar(eP,eD){
	dF=document.all.CalFrame;
	wF=window.frames.CalFrame;
	if(null==wF.g_fCalLoaded || false==wF.g_fCalLoaded){
		alert("El calendario no se ha cargado bien. Por favor actualice la página.");
		return;
	}

	if(eD==g_eC && "block"==dF.style.display){
		if(g_eCV != eD.value && GetInputDate(eD.value)){
			wF.SetInputDate(g_day,g_month,g_year);
			wF.SetDate(g_day,g_month,g_year);
			g_eCV=eD.value;
		} else
			dF.style.display="none";
	} else {
		if(GetInputDate(eD.value)){
			wF.SetInputDate(g_day,g_month,g_year);
			wF.SetDate(g_day,g_month,g_year);
		} else{
			var dt=new Date();
			wF.SetInputDate(-1,-1,-1);
			wF.SetDate(dt.getDate(),dt.getMonth()+1,dt.getFullYear());
		}
		var eL=0;var eT=0;
		for(var p=eP; p && p.tagName!='BODY'; p=p.offsetParent){
			eL+=p.offsetLeft;
			eT+=p.offsetTop;
		}
		dF.style.left=eL+offsetLeftImg;
		dF.style.top=eT+offsetTopImg;
		if("none"==dF.style.display)
			dF.style.display="block";
		g_eC=eD;
		g_eCV=eD.value;
	}
}

function SetDate(d,m,y){
	g_eC.focus();
    if (d<10) d="0"+d;
    if (m<10) m="0"+m;
	g_eC.value=d+"/"+m+"/"+y;
	g_eCV=g_eC.value;
	if (typeof(onDateSelect)!='undefined')
		onDateSelect();
}

function openCalendar(ref) {
	ShowCalendar(document.images[ref], document.forms[0].elements[ref]);
}

