/**
 * WIDGET :: sky
 * C.line (c)
 * Celine AUZIAS 2007-20xx
 * celine DOT auzias AT gmail DOT com */

// mise a jour toutes les 3 minutes
var SPEED_SKY = 180000;

// Resolution 
var sky_screen_width = 1024;
var sky_screen_height = 768;

var img_sky;
var timer_sky;
var timer_display_sky;

// heures de changement de couleurs
var AM = 0;
var MID = 13;
var PM = 16;

var BEG_NIGHT = 20;
var END_NIGHT = 6;

var BEG_DAY = 8;
var END_DAY = 17;

var PINK_SKY = 18;

var saison = 1; // 0 hiver - 1 ete

// couleur UP
var upAMR = new Array(0,0);	// bleu fonce
var upAMG = new Array(0,0);
var upAMB = new Array(8,8);
// old var upMIR = new Array(133,133);	// bleu clair 201
// old var upMIG = new Array(183,183); // 215
// old var upMIB = new Array(215,215); // 237
var upMIR = new Array(68,68);	// bleu clair 201
var upMIG = new Array(131,131); // 215
var upMIB = new Array(166,166); // 237
var upPMR = new Array(27,242);	// rose
var upPMG = new Array(32,158);
var upPMB = new Array(61,182);

// couleur DOWN
var downAMR = new Array(116,110);	// bleu moins fonce
var downAMG = new Array(152,167);
var downAMB = new Array(206,204);
// old var downMIR = new Array(199,199);	// jaune 252
// old var downMIG = new Array(238,238); // 251
// old var downMIB = new Array(239,239); // 180
var downMIR = new Array(183,183);	// jaune 252
var downMIG = new Array(224,224); // 251
var downMIB = new Array(225,225); // 180
var downPMR = new Array(194,215);	// orange
var downPMG = new Array(150,160);
var downPMB = new Array(179,55);


var COLOR_R_UP_AM  = upAMR[saison];
var COLOR_G_UP_AM  = upAMG[saison];
var COLOR_B_UP_AM  = upAMB[saison];
var COLOR_R_UP_MID = upMIR[saison];
var COLOR_G_UP_MID = upMIG[saison];
var COLOR_B_UP_MID = upMIB[saison];
var COLOR_R_UP_PM  = upPMR[saison];
var COLOR_G_UP_PM  = upPMG[saison];
var COLOR_B_UP_PM  = upPMB[saison];

var COLOR_R_DOWN_AM  = downAMR[saison];
var COLOR_G_DOWN_AM  = downAMG[saison];
var COLOR_B_DOWN_AM  = downAMB[saison];
var COLOR_R_DOWN_MID  = downMIR[saison];
var COLOR_G_DOWN_MID  = downMIG[saison];
var COLOR_B_DOWN_MID  = downMIB[saison];
var COLOR_R_DOWN_PM  = downPMR[saison];
var COLOR_G_DOWN_PM  = downPMG[saison];
var COLOR_B_DOWN_PM  = downPMB[saison];

// calcul des 'pas' de couleurs UP
if(COLOR_R_UP_MID > COLOR_R_UP_AM)
    var VAR_R_UP_AM  = (COLOR_R_UP_MID - COLOR_R_UP_AM) / ( (BEG_DAY-END_NIGHT) * 60 * 60);
else
    var VAR_R_UP_AM  = - (COLOR_R_UP_AM - COLOR_R_UP_MID) / ( (BEG_DAY-END_NIGHT) * 60 * 60);

if (COLOR_G_UP_MID > COLOR_G_UP_AM)
    var VAR_G_UP_AM  = (COLOR_G_UP_MID - COLOR_G_UP_AM) / ( (BEG_DAY-END_NIGHT) * 60 * 60);
else
    var VAR_G_UP_AM  = - (COLOR_G_UP_AM - COLOR_G_UP_MID) / ( (BEG_DAY-END_NIGHT) * 60 * 60);

if (COLOR_B_UP_MID > COLOR_B_UP_AM)
    var VAR_B_UP_AM  = (COLOR_B_UP_MID - COLOR_B_UP_AM) / ( (BEG_DAY-END_NIGHT) * 60 * 60);
else
    var VAR_B_UP_AM  = - (COLOR_B_UP_AM - COLOR_B_UP_MID) / ( (BEG_DAY-END_NIGHT) * 60 * 60);
//
if (COLOR_R_UP_PM > COLOR_R_UP_MID)
    var VAR_R_UP_MID = (COLOR_R_UP_PM - COLOR_R_UP_MID) / ( (PINK_SKY-END_DAY) * 60 * 60);
else
    var VAR_R_UP_MID = -(COLOR_R_UP_MID - COLOR_R_UP_PM) / ( (PINK_SKY-END_DAY) * 60 * 60);

if (COLOR_G_UP_PM > COLOR_G_UP_MID)
    var VAR_G_UP_MID = (COLOR_G_UP_PM - COLOR_G_UP_MID) / ( (PINK_SKY-END_DAY) * 60 * 60);
else
    var VAR_G_UP_MID = -(COLOR_G_UP_MID - COLOR_G_UP_PM) / ( (PINK_SKY-END_DAY) * 60 * 60);

if (COLOR_B_UP_PM > COLOR_B_UP_MID)
    var VAR_B_UP_MID = (COLOR_B_UP_PM - COLOR_B_UP_MID) / ( (PINK_SKY-END_DAY) * 60 * 60);
else
    var VAR_B_UP_MID = -(COLOR_B_UP_MID - COLOR_B_UP_PM) / ( (PINK_SKY-END_DAY) * 60 * 60);
//
if (COLOR_R_UP_AM > COLOR_R_UP_PM)
    var VAR_R_UP_PM  = (COLOR_R_UP_AM - COLOR_R_UP_PM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);
else
    var VAR_R_UP_PM  = -(COLOR_R_UP_PM - COLOR_R_UP_AM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);

if (COLOR_G_UP_AM > COLOR_G_UP_PM)
    var VAR_G_UP_PM  = (COLOR_G_UP_AM - COLOR_G_UP_PM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);
else
    var VAR_G_UP_PM  = -(COLOR_G_UP_PM - COLOR_G_UP_AM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);

if (COLOR_B_UP_AM - COLOR_B_UP_PM)
    var VAR_B_UP_PM  = (COLOR_B_UP_AM - COLOR_B_UP_PM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);
else
	var VAR_B_UP_PM  = -(COLOR_B_UP_AM - COLOR_B_UP_PM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);

// calcul des 'pas' de couleurs DOWN
if(COLOR_R_DOWN_MID > COLOR_R_DOWN_AM)
    var VAR_R_DOWN_AM  = (COLOR_R_DOWN_MID - COLOR_R_DOWN_AM) / ( (BEG_DAY-END_NIGHT) * 60 * 60);
else
    var VAR_R_DOWN_AM  = - (COLOR_R_DOWN_AM - COLOR_R_DOWN_MID) / ( (BEG_DAY-END_NIGHT) * 60 * 60);

if (COLOR_G_DOWN_MID > COLOR_G_DOWN_AM)
    var VAR_G_DOWN_AM  = (COLOR_G_DOWN_MID - COLOR_G_DOWN_AM) / ( (BEG_DAY-END_NIGHT) * 60 * 60);
else
    var VAR_G_DOWN_AM  = - (COLOR_G_DOWN_AM - COLOR_G_DOWN_MID) / ( (BEG_DAY-END_NIGHT) * 60 * 60);

if (COLOR_B_DOWN_MID > COLOR_B_DOWN_AM)
    var VAR_B_DOWN_AM  = (COLOR_B_DOWN_MID - COLOR_B_DOWN_AM) / ( (BEG_DAY-END_NIGHT) * 60 * 60);
else
    var VAR_B_DOWN_AM  = - (COLOR_B_DOWN_AM - COLOR_B_DOWN_MID) / ( (BEG_DAY-END_NIGHT) * 60 * 60);

if (COLOR_R_DOWN_PM > COLOR_R_DOWN_MID)
    var VAR_R_DOWN_MID = (COLOR_R_DOWN_PM - COLOR_R_DOWN_MID) / ( (PINK_SKY-END_DAY) * 60 * 60);
else
    var VAR_R_DOWN_MID = -(COLOR_R_DOWN_MID - COLOR_R_DOWN_PM) / ( (PINK_SKY-END_DAY) * 60 * 60);

if (COLOR_G_DOWN_PM > COLOR_G_DOWN_MID)
    var VAR_G_DOWN_MID = (COLOR_G_DOWN_PM - COLOR_G_DOWN_MID) / ( (PINK_SKY-END_DAY) * 60 * 60);
else
    var VAR_G_DOWN_MID = -(COLOR_G_DOWN_MID - COLOR_G_DOWN_PM) / ( (PINK_SKY-END_DAY) * 60 * 60);

if (COLOR_B_DOWN_PM > COLOR_B_DOWN_MID)
    var VAR_B_DOWN_MID = (COLOR_B_DOWN_PM - COLOR_B_DOWN_MID) / ( (PINK_SKY-END_DAY) * 60 * 60);
else
    var VAR_B_DOWN_MID = -(COLOR_B_DOWN_MID - COLOR_B_DOWN_PM) / ( (PINK_SKY-END_DAY) * 60 * 60);

if (COLOR_R_DOWN_AM > COLOR_R_DOWN_PM)
    var VAR_R_DOWN_PM  = (COLOR_R_DOWN_AM - COLOR_R_DOWN_PM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);
else
    var VAR_R_DOWN_PM  = -(COLOR_R_DOWN_PM - COLOR_R_DOWN_AM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);

if (COLOR_G_DOWN_AM > COLOR_G_DOWN_PM)
    var VAR_G_DOWN_PM  = (COLOR_G_DOWN_AM - COLOR_G_DOWN_PM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);
else
    var VAR_G_DOWN_PM  = -(COLOR_G_DOWN_PM - COLOR_G_DOWN_AM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);

if (COLOR_B_DOWN_AM - COLOR_B_DOWN_PM)
    var VAR_B_DOWN_PM  = (COLOR_B_DOWN_AM - COLOR_B_DOWN_PM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);
else
    var VAR_B_DOWN_PM  = -(COLOR_B_DOWN_AM - COLOR_B_DOWN_PM)  / ( (BEG_NIGHT-PINK_SKY) * 60 * 60);	
    

function initSky(){
    getSizeScreen();
    sky();
    timer_sky = setInterval("sky()",SPEED_SKY);
}

function clearTimer(){
    clearInterval(timer_sky);
    clearTimeout(timer_display_sky);
}


function getSizeScreen(){
	sky_screen_width = screen_width;
    sky_screen_height = screen_height - 50;
}


function sky() {
    var now = new Date();
    var h = now.getHours();
    var m = now.getMinutes();
    var s = now.getSeconds();

    // lever du jour
    if ( (END_NIGHT <= h) && (h < BEG_DAY) ){
        var r_up = COLOR_R_UP_AM + ( ( ( (h - END_NIGHT)*60*60 ) + (m*60) + s ) * VAR_R_UP_AM );
        var r_down = COLOR_R_DOWN_AM + ( ( ( (h - END_NIGHT)*60*60 ) + (m*60) + s ) * VAR_R_DOWN_AM );

        var g_up = COLOR_G_UP_AM + ( ( ( (h - END_NIGHT)*60*60 ) + (m*60) + s ) * VAR_G_UP_AM );
        var g_down = COLOR_G_DOWN_AM + ( ( ( (h - END_NIGHT)*60*60 ) + (m*60) + s ) * VAR_G_DOWN_AM );

        var b_up = COLOR_B_UP_AM + ( ( ( (h - END_NIGHT)*60*60 ) + (m*60) + s ) * VAR_B_UP_AM );
        var b_down = COLOR_B_DOWN_AM + ( ( ( (h - END_NIGHT)*60*60 ) + (m*60) + s ) * VAR_B_DOWN_AM );
    }
    // plein jour
    else if ( (BEG_DAY <= h) && (h < END_DAY)){
        var r_up = COLOR_R_UP_MID;
        var r_down = COLOR_R_DOWN_MID;
        var g_up = COLOR_G_UP_MID;
        var g_down = COLOR_G_DOWN_MID;
        var b_up = COLOR_B_UP_MID;
        var b_down = COLOR_B_DOWN_MID;
    }
    // couche soleil
    else if ( (END_DAY <= h) && (h < PINK_SKY) ){
        var r_up = COLOR_R_UP_MID + ( ( ( (h - END_DAY)*60*60 ) + (m*60) + s ) * VAR_R_UP_MID );
        var r_down = COLOR_R_DOWN_MID + ( ( ( (h - END_DAY)*60*60 ) + (m*60) + s ) * VAR_R_DOWN_MID );

        var g_up = COLOR_G_UP_MID + ( ( ( (h - END_DAY)*60*60 ) + (m*60) + s ) * VAR_G_UP_MID );
        var g_down = COLOR_G_DOWN_MID + ( ( ( (h - END_DAY)*60*60 ) + (m*60) + s ) * VAR_G_DOWN_MID );

        var b_up = COLOR_B_UP_MID + ( ( ( (h - END_DAY)*60*60 ) + (m*60) + s ) * VAR_B_UP_MID );
        var b_down = COLOR_B_DOWN_MID + ( ( ( (h - END_DAY)*60*60 ) + (m*60) + s ) * VAR_B_DOWN_MID );
    }
    // tombee de la nuit
    else if ( (PINK_SKY <= h) && (h < BEG_NIGHT)){
        var r_up = COLOR_R_UP_PM + ( ( ( (h - PINK_SKY)*60*60 ) + (m*60) + s ) * VAR_R_UP_PM );
        var r_down = COLOR_R_DOWN_PM + ( ( ( (h - PINK_SKY)*60*60 ) + (m*60) + s ) * VAR_R_DOWN_PM );

        var g_up = COLOR_G_UP_PM + ( ( ( (h - PINK_SKY)*60*60 ) + (m*60) + s ) * VAR_G_UP_PM );
        var g_down = COLOR_G_DOWN_PM + ( ( ( (h - PINK_SKY)*60*60 ) + (m*60) + s ) * VAR_G_DOWN_PM );

        var b_up = COLOR_B_UP_PM + ( ( ( (h - PINK_SKY)*60*60 ) + (m*60) + s ) * VAR_B_UP_PM );
        var b_down = COLOR_B_DOWN_PM + ( ( ( (h - PINK_SKY)*60*60 ) + (m*60) + s ) * VAR_B_DOWN_PM );
    }
    // nuit
    else {
        var r_up = COLOR_R_UP_AM;
        var r_down = COLOR_R_DOWN_AM;
        var g_up = COLOR_G_UP_AM;
        var g_down = COLOR_G_DOWN_AM;
        var b_up = COLOR_B_UP_AM;
        var b_down = COLOR_B_DOWN_AM;
    }

    var red_sky   = intToHexa(Math.floor(r_down));
    var green_sky = intToHexa(Math.floor(g_down));
    var blue_sky  = intToHexa(Math.floor(b_down));

    var color_back_sky = '#'+red_sky+''+green_sky+''+blue_sky;
    document.bgColor = color_back_sky;

    document.body.background = 'widgets/sky/img/sky.php?screen_height='+sky_screen_height+'&red_begin='+r_up+'&green_begin='+g_up+'&blue_begin='+b_up+'&red_end='+r_down+'&green_end='+g_down+'&blue_end='+b_down+'&hour='+h;

}

