
var ppcIE=((navigator.appName == "Microsoft Internet Explorer") || ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5)));
var ppcNN6=((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5));
//var ppcIE=(navigator.appName == "Microsoft Internet Explorer");
var ppcNN=((navigator.appName == "Netscape")&&(document.layers));
var ppcX = 4;
var ppcY = 4;

var IsCalendarVisible;
var calfrmName;
var maxYearList;
var minYearList;
var todayDate = new Date; 
var curDate = new Date;
var pulseDay = new Date; 
var curImg;
var curDia;
var curMes;
var curAno;
var curTexto;
var curTipo;
var curFuncs;
var curDateBox;
var minDate = new Date;
var maxDate = new Date;
var hideDropDowns;
var IsUsingMinMax;
var FuncsToRun;
var img_del;
var img_close;
img_del=new Image();
img_close=new Image();

minYearList=todayDate.getFullYear()-10;
maxYearList=todayDate.getFullYear()+10;
IsCalendarVisible=false;

img_Date_UP=new Image();
img_Date_UP.src = "http://www.grupoceledon.com/Imagenes/calendario.gif";

img_Date_OVER=new Image();
img_Date_OVER.src = "http://www.grupoceledon.com/Imagenes/calendario.gif";

img_Date_DOWN=new Image();
img_Date_DOWN.src = "http://www.grupoceledon.com/Imagenes/calendario.gif";
function calSwapImg(whatID, NewImg,override) {
    if (document.images) {
     if (!( IsCalendarVisible && override )) {
        document.images[whatID].src = eval(NewImg + ".src");
     }
    }
    window.status=' ';
    return true;
}

function getOffsetLeft (el) {
    var ol = el.offsetLeft;
    while ((el = el.offsetParent) != null)
        ol += el.offsetLeft;
    return ol;
}

function getOffsetTop (el) {
    var ot = el.offsetTop;
    while((el = el.offsetParent) != null)
        ot += el.offsetTop;
    return ot;
}

function showCalendar(dteBox, btnImg, hdn_d, hdn_m, hdn_a, texto, tipo, funcs) {
    if (IsCalendarVisible) {
        hideCalendar();
    }
    else {
        
                if (hideDropDowns) {toggleDropDowns('hidden');}
            IsUsingMinMax = false;
        
        curImg = btnImg;
        curDateBox = dteBox;
		curDia = hdn_d;
		curMes = hdn_m;
		curAno = hdn_a;
		curTexto = texto;
		curTipo = tipo;
		curFuncs = "";
		curFuncs = funcs;

        if ( ppcIE ) {
            ppcX = getOffsetLeft(document.images[btnImg]);
            ppcY = getOffsetTop(document.images[btnImg]);
            //Anchura ventana = 790
            //altura ventana = 475
            if (ppcX + 180 > 790 || ppcY + 140 > 475) { 
		ppcX = ppcX-136;
		ppcY = ppcY-127;
            }
            else {
            	ppcY = ppcY+17;
            	ppcX = ppcX+1;
            }       
        }
        else if (ppcNN){
            ppcX = document.images[btnImg].x;              
            ppcY = document.images[btnImg].y + document.images[btnImg].height;
            if(ppcX + 180 > 790 || ppcY + 140 > 475) {
            	ppcX = ppcX - 136;
            	ppcY = ppcY + 127;
            }
            else {
            	ppcY = ppcY+17;
            	ppcX = ppcX+1;
            }
        }

        domlay('popupcalendar',1,ppcX,ppcY,Calendar(todayDate.getMonth(),todayDate.getFullYear()));       

        IsCalendarVisible = true;
    }
}

function toggleDropDowns(showHow){
    var i; var j;
    for (i=0;i<document.forms.length;i++) {
        for (j=0;j<document.forms[i].elements.length;j++) {
            if (document.forms[i].elements[j].tagName == "SELECT") {
                if (document.forms[i].name != "Cal")
                    document.forms[i].elements[j].style.visibility=showHow;
            }
        }
    }
}

function hideCalendar(){
    domlay('popupcalendar',0,ppcX,ppcY);
    //calSwapImg(curImg, 'img_Date_UP');    
    IsCalendarVisible = false;
    if (hideDropDowns) {toggleDropDowns('visible');}
}

function calClick() {
        window.focus();
}

function domlay(id,trigger,lax,lay,content) {
    // Layer visible
    if (trigger=="1"){
        if (document.layers) document.layers[''+id+''].visibility = "show"
        else if (document.all){
			document.all[''+id+''].style.visibility = "visible";
			document.all[''+id+''].style.position = "fixed";
		}
        else if (document.getElementById){
			document.getElementById(''+id+'').style.visibility = "visible" 
			document.getElementById(''+id+'').style.position = "fixed";
		}
        }
    // Layer hidden
    else if (trigger=="0"){
        if (document.layers) document.layers[''+id+''].visibility = "hide"
        else if (document.all) document.all[''+id+''].style.visibility = "hidden"
        else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "hidden"             
        }
    // Set horizontal position  
    if (lax){
        if (document.layers){document.layers[''+id+''].left = lax}
        else if (document.all){document.all[''+id+''].style.left=lax}
        else if (document.getElementById){document.getElementById(''+id+'').style.left=lax+"px"}
        }
    // Set vertical position
    if (lay){
        if (document.layers){document.layers[''+id+''].top = lay}
        else if (document.all){document.all[''+id+''].style.top=lay}
        else if (document.getElementById){document.getElementById(''+id+'').style.top=lay+"px"}
        }
    // change content

    if (content){
    if (document.layers){
        sprite=document.layers[''+id+''].document;
        // add father layers if needed! document.layers[''+father+'']...
        sprite.open();
        sprite.write(content);
        sprite.close();
        }
    else if (document.all) document.all[''+id+''].innerHTML = content;  
    else if (document.getElementById){
        //Thanx Reyn!
        rng = document.createRange();
        el = document.getElementById(''+id+'');
        rng.setStartBefore(el);
        htmlFrag = rng.createContextualFragment(content)
        while(el.hasChildNodes()) el.removeChild(el.lastChild);
        el.appendChild(htmlFrag);
        // end of Reyn ;)
        }
    }
}

function Calendar(whatMonth,whatYear) {
    var output = '';
    var datecolwidth;
    var startMonth;
    var startYear;
    startMonth=whatMonth;
    startYear=whatYear;

    curDate.setMonth(whatMonth);
    curDate.setFullYear(whatYear);
    curDate.setDate(todayDate.getDate());
    if (ppcNN6) {
        output += '<table width="180" border="0" class="cal-Table marco" cellspacing="0" cellpadding="0"><tr>';
    }
    else {
        output += '<table width="180" border="2" bordercolor="#172f55" class="cal-Table" cellspacing="0" cellpadding="0"><tr>';
    }
     
    output += '<td class="cal-HeadCell" align="center" width="100%"><a href="javascript:scrollMonth(-1);" class="cal-DayLink"><img src="http://www.grupoceledon.com/Imagenes/menos.gif" border="0"></a>&nbsp;<select hidden class="cal-TextBox" name="cboMonth" id="cboMonth" onchange="changeMonth();" style="width:50px;">';
    for (month=0; month<12; month++) {
        if (month == whatMonth) output += '<option value="' + month + '" selected=\'selected\'>' + names[month] + '<\/option>';
        else                output += '<option value="' + month + '">'          + names[month] + '<\/option>';
    }

    output += '<\/select><select class="cal-TextBox" name="cboYear" id="cboYear" onchange="changeYear();" style="width:60px;">';

    for (year=minYearList; year<maxYearList; year++) {
        if (year == whatYear) output += '<option value="' + year + '" selected=\'selected\'>' + year + '<\/option>';
        else              output += '<option value="' + year + '">'          + year + '<\/option>';
    }

    output += '<\/SELECT>&nbsp;<a href="javascript:scrollMonth(1);" class="cal-DayLink"><img src="http://www.grupoceledon.com/Imagenes/mas.gif" border="0"></a><\/td><\/tr><tr><td width="100%" align="center">';

    firstDay = new Date(whatYear,whatMonth,1);
    startDay = firstDay.getDay() - 1;
	if (startDay == -1) startDay = 6;
	
    if (((whatYear % 4 == 0) && (whatYear % 100 != 0)) || (whatYear % 400 == 0))
         days[1] = 29;
    else
         days[1] = 28;

    output += '<table width="80" cellspacing="1" cellpadding="2" border="0"><tr>';

    for (i=0; i<7; i++) {
        if (i==0 || i==6) {
            datecolwidth="15%"
        }
        else
        {
            datecolwidth="14%"
        }
        output += '<td class="cal-HeadCell" width="' + datecolwidth + '" align="center" valign="middle">'+ dow[i] +'<\/td>';
    }
    
    output += '<\/tr><tr>';

    var column = 0;
    var lastMonth = whatMonth - 1;
    var lastYear = whatYear;
    if (lastMonth == -1) { lastMonth = 11; lastYear=lastYear-1;}

    for (i=0; i<startDay; i++, column++) {
        output += getDayLink((days[lastMonth]-startDay+i+1),true,lastMonth,lastYear);
    }

    for (i=1; i<=days[whatMonth]; i++, column++) {
        output += getDayLink(i,false,whatMonth,whatYear);
        if (column == 6) {
            output += '<\/tr><tr>';
            column = -1;
        }
    }
    
    var nextMonth = whatMonth+1;
    var nextYear = whatYear;
    if (nextMonth==12) { nextMonth=0; nextYear=nextYear+1;}
    
    if (column > 0) {
        for (i=1; column<7; i++, column++) {
            output +=  getDayLink(i,true,nextMonth,nextYear);
        }
        output += '<\/tr><\/table><\/td><\/tr>';
    }
    else {
        output = output.substr(0,output.length-4); // remove the <tr> from the end if there's no last row
        output += '<\/table><\/td><\/tr>';
    }
    
    output += '<\/table>';
    curDate.setDate(1);
    curDate.setMonth(startMonth);
    curDate.setFullYear(startYear);
    return output;
}

function getDayLink(linkDay,isGreyDate,linkMonth,linkYear) {
    var templink;
        var fech = new Date(linkYear+'/'+(linkMonth+1)+'/'+linkDay);
        var k = fech.getDay();
    if (!(IsUsingMinMax)) {
        if (isGreyDate) {
            templink='<td align="center" class="cal-GreyDate">' + linkDay + '<\/td>';
        }
        else {
            if (isDayToday(linkDay)) {
                templink='<td align="center" class="cal-DayCell">' + '<a onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ');">' + linkDay + '<\/a>' +'<\/td>';
            }
            else {
                templink='<td align="center" class="cal-DayCell">' + '<a onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ');">' + linkDay + '<\/a>' +'<\/td>';
            }
        }
    }
    else {
        if (isDayValid(linkDay,linkMonth,linkYear)) {

            if (isGreyDate){
                templink='<td align="center" class="cal-GreyDate">' + linkDay + '<\/td>';
            }
            else {
                if (isDayToday(linkDay)) {
                    templink='<td align="center" class="cal-DayCell">' + '<a onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ');">' + linkDay + '<\/a>' +'<\/td>';
                }
                else {
                    templink='<td align="center" class="cal-DayCell">' + '<a onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ');">' + linkDay + '<\/a>' +'<\/td>';
                }
            }
        }
        else {
            templink='<td align="center" class="cal-GreyInvalidDate">'+ linkDay + '<\/td>';
        }
    }
    return templink;
}

function isDayToday(isDay) {
    if ((curDate.getFullYear() == todayDate.getFullYear()) && (curDate.getMonth() == todayDate.getMonth()) && (isDay == todayDate.getDate())) {
        return true;
    }
    else {
        return false;
    }
}

function isDayValid(validDay, validMonth, validYear){
    
    curDate.setDate(validDay);
    curDate.setMonth(validMonth);
    curDate.setFullYear(validYear);
    
    if ((curDate>=minDate) && (curDate<=maxDate)) {
        return true;
    }
    else {
        return false;
    }
}

function padout(number) { return (number < 10) ? '0' + number : number; }

function clearDay() {
    eval('document.' + calfrmName + '.' + curDateBox + '.value = \'\'');
        if(curDateBox2!='') eval('document.' + calfrmName + curDateBox2 + '.value = \'\'');     
    hideCalendar();
    if (FuncsToRun!=null)
        eval(FuncsToRun); 
}

function changeDay(whatDay) {
    pulseDay.setDate(whatDay);
    var aux = curDate.getMonth();
    pulseDay.setMonth(aux);
    aux = curDate.getYear();
    pulseDay.setYear(aux);
    curDate.setDate(whatDay);
	var m = "";
	if (curDate.getMonth()<9){
		m = "0" + (curDate.getMonth()+1);
	}
	else{
		m = (curDate.getMonth()+1);
	}
	
	var cad = "";
	if(curDateBox!=""){
		if (curTipo=="div"){
			tipo = "innerHTML";
		}
		if (curTipo=="texto"){
			tipo = "value";
		}
		if (curTexto=="texto"){
			cad = "document.getElementById('" + curDateBox + "')."+tipo+" = '"+ padout(curDate.getDate()) + " de " + mes[curDate.getMonth()] + " del " + curDate.getFullYear() + "';";
		}
		if (curTexto=="barras"){
    		cad = "document.getElementById('" + curDateBox + "')."+tipo+" = '"+ padout(curDate.getDate()) + "/" + m + "/" + curDate.getFullYear() + "';";
		}
		eval(cad);
	}
	if (curDia!=""){
		eval("document.getElementById('"+curDia+"').value = '"+padout(curDate.getDate())+"';");
	}
	if (curMes!=""){
		eval("document.getElementById('"+curMes+"').value = '"+m+"';");
        }
	if (curAno!=""){
		eval("document.getElementById('"+curAno+"').value = '"+curDate.getFullYear()+"';");
        }
	if (curFuncs!=""){
		eval(curFuncs);
		}

    hideCalendar();
	//muestra_ultimas_ventas(document.getElementById('hdn_d_ultimasventas').value,document.getElementById('hdn_m_ultimasventas').value,document.getElementById('hdn_a_ultimasventas').value);
}

function scrollMonth(amount) {
    var monthCheck;
    var yearCheck;
    
    //if (ppcIE) {
    //    monthCheck = document.forms["Cal"].cboMonth.selectedIndex + amount;
    //}
    //else if (ppcNN) {
    //    monthCheck = document.popupcalendar.document.forms["Cal"].cboMonth.selectedIndex + amount;    
    //}
	monthCheck = parseInt(document.getElementById('cboMonth').options[document.getElementById('cboMonth').selectedIndex].value) + amount;
    if (monthCheck < 0) {
        yearCheck = curDate.getFullYear() - 1;
        if ( yearCheck < minYearList ) {
            yearCheck = minYearList;
            monthCheck = 0;
        }
        else {
            monthCheck = 11;
        }
        curDate.setFullYear(yearCheck);
    }
    else if (monthCheck >11) {
        yearCheck = curDate.getFullYear() + 1;
        if ( yearCheck > maxYearList-1 ) {
            yearCheck = maxYearList-1;
            monthCheck = 11;
        }
        else {
            monthCheck = 0;
        }      
        curDate.setFullYear(yearCheck);
    }
    
    //if (ppcIE) {
    //    curDate.setMonth(document.forms["Cal"].cboMonth.options[monthCheck].value);
    //}
    //else if (ppcNN) {
    //    curDate.setMonth(document.popupcalendar.document.forms["Cal"].cboMonth.options[monthCheck].value );
    //}
    curDate.setMonth(document.getElementById('cboMonth').options[monthCheck].value);
    domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));
}

function changeMonth() {
	curDate.setMonth(document.getElementById('cboMonth').options[document.getElementById('cboMonth').selectedIndex].value);
        domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));
    }

function changeYear() {
    curDate.setFullYear(document.getElementById('cboYear').options[document.getElementById('cboYear').selectedIndex].value);
        domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));
    }

function week_last(date) {
   var auxDate = date;
   var dia = date.getDate();
   var dia_fin = dia+6;
   var m = date.getMonth()+1;
   var y = date.getYear();
   if(dia_fin>days[m-1]) {
     auxDate.setDate(dia_fin-days[m-1]);
         if(m==12) {
           auxDate.setYear(y+1);
           auxDate.setMonth(1);
         } else {
           auxDate.setMonth(m+1)         
         }
   }else{
     auxDate.setDate(dia_fin);
   }
   return auxDate;
}

function week(date) {
   var listaDias = new Array();
   var auxDate = date;
   var dia = date.getDate();
   var dia_fin = dia+6;
   var m = date.getMonth()+1;
   var y = date.getYear();   
   var j = 0;
   var x = 0;
   for(var k = dia; k <= dia_fin; k++) {
         var auxDia = new Date;   
     if(dia_fin>days[m-1]) {
       auxDia.setDate(k-days[m-1]);
           if(m==12) {
             auxDia.setYear(y+1);
             auxDia.setMonth(1);
           } else {
             auxDia.setMonth(m+1)        
           }
     }else{
       auxDia.setDate(k);
     }
     listaDias[j] = auxDia;
         j++;            
   }  
   return listaDias;  
}

function makeArray0() {
    for (i = 0; i<makeArray0.arguments.length; i++)
        this[i] = makeArray0.arguments[i];
}

var names     = new makeArray0('Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic');
//var mes       = new makeArray0('01','02','03','04','05','06','07','08','09','10','11','12');
var mes       = new makeArray0('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
var days      = new makeArray0(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var dow       = new makeArray0('L','M','X','J','V','S','D');

