// l10n
var cdt_text = {
    pattern1: {
        ru: "До начала контеста осталось:<br /> %D% %d%%H% %h%, %M% %m%, %S% %s%!",
        ua: "До початку контесту залишилось:<br /> %D% %d%%H% %h%, %M% %m%, %S% %s%!"
    },
    pattern2: {
        ru: "До окончания контеста осталось:<br /> %D% %d%%H% %h%, %M% %m%, %S% %s%.",
        ua: "До завершення контесту залишилось:<br /> %D% %d%%H% %h%, %M% %m%, %S% %s%."
    },
    
    day: {ru: "день", ua: "день"},
    day_4: {ru: "дня", ua: "днi"},
    days: {ru: "дней", ua: "днiв"},
    
    h: {ru: "час", ua: "година"},
    h_4: {ru: "часа", ua: "години"},
    hs: {ru: "часов", ua: "годин"},
    
    m: {ru: "минута", ua: "хвилина"},
    m_4: {ru: "минуты", ua: "хвилини"},
    ms: {ru: "минут", ua: "хвилин"},
    
    s: {ru: "секунда", ua: "секунда"},
    s_4: {ru: "секунды", ua: "секунди"},
    ss: {ru: "секунд", ua: "секунд"},
    
    message: {
        ru: "Контест завершен!",
        ua: "Контест завершено!"
    }
};


// Опции
var timer = 0;
var TargetDate = {
    t1: "3/13/2009 6:00 PM",
    t2: "3/20/2009 6:00 PM"
}   
var CountActive = true;
var CountStepper = -1;
var LeadingZero = true;


CountStepper = Math.ceil(CountStepper);
if (CountStepper == 0) {
    CountActive = false;
}
var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;




/*
 * При загрузке ищем дивку с class="countdown_timer".
 * Если нашли — выводим таймер (отображаем дивку, скрыта по-умол.)
 */
function start_cd_timer() {
    
    timer += 1;
     
    var timer_div = $('.countdown_timer');
    if (typeof(timer_div[0]) != "undefined") {
        
        var dthen = new Date(TargetDate["t"+timer]);
        
        var dnow = new Date();
        var localTime = dnow.getTime();
        var localOffset = dnow.getTimezoneOffset() * 60000;
        var utc = localTime + localOffset;
        var offset = 2;  
        var kiev = utc + (3600000*offset);
        dnow = new Date(kiev);
        
        if (CountStepper > 0) {
            ddiff = new Date(dnow-dthen);
        } else {
            ddiff = new Date(dthen-dnow);
        }
        gsecs = Math.floor(ddiff.valueOf() / 1000);

        set_cd_timer(gsecs);
        timer_div.show();
    }
     
}
 
 
 
/*
 * Значение таймера
 */
function set_cd_timer(sec) {
    
    var timer_div = $('.countdown_timer');
    
    if (TargetDate["t"+timer] == undefined) {
        timer_div.text(cdt_text.message[current_language]);
        return;
    }
    
    if (sec < 0) {
        start_cd_timer();
        return;
    }
    
    var timer_pattern = cdt_text["pattern"+timer][current_language];
    //alert("pattern"+timer);
    var str = timer_pattern;
    
    var d = calcage(sec, 86400, 100000);
    if (d != 0 && d != "00") {
        str = str.replace(/%D%/g, d);
        str = str.replace(/%d%/g, get_decl("day", d) + ", ");
    } else {
        str = str.replace(/%D%/g, "");
        str = str.replace(/%d%/g, "");
    }
    
    var h = calcage(sec, 3600, 24);
    str = str.replace(/%H%/g, h);
    str = str.replace(/%h%/g, get_decl("h", h));
    
    var m = calcage(sec, 60, 60);
    str = str.replace(/%M%/g, m);
    str = str.replace(/%m%/g, get_decl("m", m));
    
    var s = calcage(sec, 1, 60);
    str = str.replace(/%S%/g, s);
    str = str.replace(/%s%/g, get_decl("s", s));

    timer_div.html(str);
    
    if (CountActive) {
        setTimeout("set_cd_timer(" + (sec+CountStepper) + ")", SetTimeOutPeriod);
    }
    
}



/*
 * Определяем склонение
 */
function get_decl(pref, value) {
    
    if (value < 20 && value > 9) {
        return cdt_text[pref + "s"][current_language];
    }
    
    var last_n = String(value).substr(value.length-1, 1);
    
    var res = pref + "s";
    if (last_n == 1) {
        res = pref;
    } else if (last_n > 1 && last_n < 5) {
        res = pref + "_4";
    }

    return res = cdt_text[res][current_language];
    
}




/*
 * Считает сколько осталось
 */
function calcage(sec, num1, num2) {
    s = ((Math.floor(sec/num1))%num2).toString();
    if (LeadingZero && s.length < 2) {
        s = "0" + s;
    }
    return s;
}