﻿/*****************************************************************************************/
/*                                        Fields                                         */
/*****************************************************************************************/

CwTime.prototype.UpdateTime = UpdateTime;
CwTime.prototype.ShowCountDw = ShowCountDw;
CwTime.prototype.ShowResults = ShowResult;

/* Variables for Date [today, releas date]*/
var today = new Date();
var relDate = new Date();

var relDay = 20;
var relMonth = 10;
var relYear = 2009;
var relTime = "10:00:00";

/*****************************************************************************************/
/*                                Check for Date                                         */                            
/*****************************************************************************************/
function CheckDate() {

    /* Set Date */
    relDate.setFullYear(relYear, relMonth, relDay);

    if (today < relDate)
        Load();
    else
        document.getElementById("cwcontainer").innerHTML = FinaleRelease();
}

/*****************************************************************************************/
/*                                  Countdown                                            */
/*****************************************************************************************/
function Load() {

    var month = new Array();
    var myStr = new String();
    
    month[0] = "January";
    month[1] = "February";
    month[2] = "March";
    month[3] = "April";
    month[4] = "May";
    month[5] = "June";
    month[6] = "July";
    month[7] = "August";
    month[8] = "September";
    month[9] = "October";
    month[10] = "November";
    month[11] = "December";

    myStr = month[relMonth] + " " + relDay + ", " + relYear + " " + relTime;
    
    /* Set destination Date/Time [June 9, 2009 17:00:00] */
    StartProc(myStr);
}

function StartProc(date) {

    var futuredate = new CwTime("cwcontainer", date);
    futuredate.ShowCountDw("days", FormatResult);
}

function CwTime(container, targetdate) {

    if (!document.getElementById || !document.getElementById(container))
        return;

    this.container = document.getElementById(container)
    this.currentTime = new Date()
    this.targetdate = new Date(targetdate)
    this.timesup = false
    this.UpdateTime()
}

function UpdateTime() {

    var thisobj = this
    this.currentTime.setSeconds(this.currentTime.getSeconds() + 1)
    setTimeout(function() { thisobj.UpdateTime() }, 1000) //update time every second     
}

function ShowCountDw(baseunit, functionref) {

    this.baseunit = baseunit
    this.formatresults = functionref
    this.ShowResults()
}

function ShowResult() {

    var thisobj = this

    var timediff = (this.targetdate - this.currentTime) / 1000 //difference btw target date and current date, in seconds

    if (timediff < 0) { //if time is up
        this.timesup = true
        this.container.innerHTML = this.formatresults()
        return
    }

    var oneMinute = 60 //minute unit in seconds
    var oneHour = 60 * 60 //hour unit in seconds
    var oneDay = 60 * 60 * 24 //day unit in seconds
    var dayfield = Math.floor(timediff / oneDay)
    var hourfield = Math.floor((timediff - dayfield * oneDay) / oneHour)
    var minutefield = Math.floor((timediff - dayfield * oneDay - hourfield * oneHour) / oneMinute)
    var secondfield = Math.floor((timediff - dayfield * oneDay - hourfield * oneHour - minutefield * oneMinute))

    if (this.baseunit == "hours") { //if base unit is hours, set "hourfield" to be topmost level
        hourfield = dayfield * 24 + hourfield
        dayfield = "n/a"
    }
    else if (this.baseunit == "minutes") { //if base unit is minutes, set "minutefield" to be topmost level
        minutefield = dayfield * 24 * 60 + hourfield * 60 + minutefield
        dayfield = hourfield = "n/a"
    }
    else if (this.baseunit == "seconds") { //if base unit is seconds, set "secondfield" to be topmost level
        var secondfield = timediff
        dayfield = hourfield = minutefield = "n/a"
    }
    this.container.innerHTML = this.formatresults(dayfield, hourfield, minutefield, secondfield)
    setTimeout(function() { thisobj.ShowResults() }, 1000) //update results every second    
}

function FormatResult() {
    if (this.timesup == false) { //if target date/time not yet met
        var displaystring = "<span class='lcdstyle'>" + arguments[0] +
                            " <sup>days</sup> " + arguments[1] +
                            " <sup>hours</sup> " + arguments[2] +
                            " <sup>minutes</sup> " + arguments[3] + 
                            " <sup>seconds</sup></span>" +
                            "<p>...left to release day of Narben der Zeit</p>" 
    }
    else { //else if target date/time met
        var displaystring = "" //Don't display any text            
    }
    return displaystring
}

function FinaleRelease() {
	
     var displaystring = "<p id='index1'>Out now</p>"
     return displaystring;
}



 
