/*
 *	JavaScript para manejar las funciones del módulo de pauta
 *	Derechos Reservados, Grupo Nación GN S.A.
 */

//Cambiar el estilo de un objeto (CSS)
function changeStyle(item, newStyle) {
	if (item) {
		if (item.className != newStyle) {
			item.className = newStyle;
		};
	}
}

//Funciones para el calendario
var	publicationDates = new Array();

function drawCalendar (fecha, funcion, contenedor) {
    mes = fecha.getMonth();
    anno = fecha.getFullYear();
    espacios = (fecha.getDate() == 1) ? fecha.getDay() : (new Date(anno,mes,1)).getDay();
    hoy = new Date();
    ls_calendar = "<div class='Calendar'>";
    ls_calendar += "<a class='prev' href='javascript:drawCalendar(new Date("+anno+","+(mes-1)+",1),\""+funcion+"\",\""+contenedor+"\");'>&lt;&lt;</a>";
    ls_calendar += "<a class='next' href='javascript:drawCalendar(new Date("+anno+","+(mes+1)+",1),\""+funcion+"\",\""+contenedor+"\");'>&gt;&gt;</a>";
    ls_calendar += "<h4>"+getMonthName(mes)+" "+anno+"</h4>";
	ls_calendar += "<ul><li>D</li><li>L</li><li>K</li><li>M</li><li>J</li><li>V</li><li>S</li>";
    for(var i=0; i < espacios; i++) ls_calendar += "<li>&nbsp;</li>";
    for(var i=1; i <= getDaysMonth(mes,anno); i++) {
        if (hoy.toDateString() == (new Date(anno,mes,i)).toDateString()){
            ls_calendar += "<li class='today'><a href=\"javascript:"+funcion+"(new Date("+anno+","+mes+","+i+"));\">"+i+"</a></li>";
        } else {
            ls_calendar += "<li><a href=\"javascript:"+funcion+"(new Date("+anno+","+mes+","+i+"));\">"+i+"</a></li>";
        }
    }
    ls_calendar += "</ul>";
    ls_calendar += "</div>";
    getObject(contenedor).innerHTML = ls_calendar;
}

function refreshDateList(control) {
	obj = getObject(control);
	if (obj){
        obj.options.length = 0;
        publicationDates.sort();
        for (i=0; i < publicationDates.length; i++ ){
            anno = publicationDates[i].slice(0,4);
            mes = publicationDates[i].slice(4,6);
            dia = publicationDates[i].slice(6);
            ls_date = setDateString(dia,mes,anno);
            obj.options[obj.options.length] = new Option(ls_date,  publicationDates[i], false, false);
        }
    }
}

function addDatePrint(fecha) {
    control = "parm_Fechas";
    obj = getObject(control);
    if (obj) {
        dia = fecha.getDate();
        mes = fecha.getMonth();
        anno = fecha.getFullYear();
        if (dia < 10) dia = "0" + (dia*1);
        if (mes < 10) mes = "0" + (mes*1);
        theDate = String(anno) + String(mes) + String(dia);
        if (fecha > (new Date())) {
            if (!existsDate(theDate)) {
                publicationDates[publicationDates.length] = theDate;
                refreshDateList(control);
            }
        } else {
            alert("Sólo puede anunciar en fechas que todavía NO han sido publicadas. Gracias");
        }
    }
}

function addDateWeb(fecha) {
    control = "parm_FechaIncial";
    obj = getObject(control);
    if (obj) {
        hoy = new Date();
        hoy.setHours(0);
        hoy.setMinutes(0);
        hoy.setSeconds(0);
        hoy.setMilliseconds(0);
        if (fecha >= hoy) {
            obj.value = setDateString (fecha.getDate(), fecha.getMonth(), fecha.getFullYear());
        } else {
            alert("Sólo puede anunciar en fechas que todavía NO han sido publicadas. Gracias");
        }
    }
}

function getDaysMonth (li_mes, li_anno) {
	li_num_dias = 0;
	li_mes++;
	switch( li_mes ) 	{
		case 1: case 3: case 5: case 7: case 8: case 10: case 12: li_num_dias = 31; break;
		case 4: case 6: case 9: case 11: li_num_dias = 30; break;
		case 2: if ((li_anno % 4) == 0) {li_num_dias = 29;}
				else {li_num_dias = 28;}
				break;
	};
	return li_num_dias;
};

function getMonthName (li_mes) {
	ls_nom_mes = "MES";
	li_mes++;
	switch( li_mes ) 
	{
		case 1 :ls_nom_mes = "ENERO"; break;
		case 2 :ls_nom_mes = "FEBRERO"; break;
		case 3 :ls_nom_mes = "MARZO"; break;
		case 4 :ls_nom_mes = "ABRIL"; break;
		case 5 :ls_nom_mes = "MAYO"; break;
		case 6 :ls_nom_mes = "JUNIO"; break;
		case 7 :ls_nom_mes = "JULIO"; break;
		case 8 :ls_nom_mes = "AGOSTO"; break;
		case 9 :ls_nom_mes = "SETIEMBRE"; break;
		case 10:ls_nom_mes = "OCTUBRE"; break;
		case 11:ls_nom_mes = "NOVIEMBRE"; break;
		case 12:ls_nom_mes = "DICIEMBRE"; break;
	}
	return ls_nom_mes;
}

function setDateString (li_dia,li_mes,li_anno) {
	ls_nom_mes = "MES";
	li_mes++;
	switch( li_mes ) 
	{
		case 1 :ls_nom_mes = "JAN"; break;
		case 2 :ls_nom_mes = "FEB"; break;
		case 3 :ls_nom_mes = "MAR"; break;
		case 4 :ls_nom_mes = "APR"; break;
		case 5 :ls_nom_mes = "MAY"; break;
		case 6 :ls_nom_mes = "JUN"; break;
		case 7 :ls_nom_mes = "JUL"; break;
		case 8 :ls_nom_mes = "AUG"; break;
		case 9 :ls_nom_mes = "SEP"; break;
		case 10:ls_nom_mes = "OCT"; break;
		case 11:ls_nom_mes = "NOV"; break;
		case 12:ls_nom_mes = "DEC"; break;
	}
	ls_fecha = li_dia+"-"+ls_nom_mes+"-"+li_anno;
	return ls_fecha;
}

function selectAllDateList(control) {
	obj = getObject(control);
	for (i=0; i < obj.options.length; i++ ){
		obj.options[i].selected = true;
	};
	return obj.options.length;
}

function existsDate(theDate) {
	existe = false;
	for (i=0; i < publicationDates.length && !existe;i++ ){
		existe = (publicationDates[i] == theDate);
	}
	return existe;
}

function removeDate(control) {
	obj = getObject(control);
	if (obj.selectedIndex >= 0) {
		theDate = obj.options[obj.selectedIndex].value;
		for (i=0; i < publicationDates.length; i++ ){
			if (publicationDates[i] == theDate) {
				publicationDates.splice(i,1)
				if (publicationDates.length > 0) i--;
			};
		};
		refreshDateList(control);
	}
}

function isValidInitialDate(control) {
	obj = getObject(control);
	theInitialDate = obj.value;
	anno = theInitialDate.slice(0,4);
	mes = (theInitialDate.slice(5,7)) - 1;
	dia = theInitialDate.slice(8);
	if (dia < 10) dia = "0" + (dia*1);
	if (mes < 10) mes = "0" + (mes*1);
	theInitialDate = String(anno) + String(mes) + String(dia);
	if (theInitialDate > today()) {
		return true;
	} else {
		return false;
	}
};

