// ************************
// Frueherer Schuldenstand in Mrd Euro
schuldSum        = 1.820
// Datum des frueheren Schuldenstandes
schuldJahr       = 2009;
schuldMonat      = 12;
schuldTag        = 31;
schuldStunde     = 0;
schuldMinute     = 0;
schuldSekunde    = 0;
// Jaehrliche Neuverschuldung in Mrd Euro
neuSchuldProJahr = 0.218
// Einwohnerzahl in Mio Einw.
personenAnzahl   = .349713
// ************************
schuldSum = schuldSum * 1E9
neuSchuldProJahr = neuSchuldProJahr * 1E9
personenAnzahl  = personenAnzahl * 1E6

var timerID = null
var timerRunning = false
var gesamtSchulden = 0
var teilSchulden = 0

monLen = initArray (12)
monLen[1] = 31
monLen[2] = 28
monLen[3] = 31
monLen[4] = 30
monLen[5] = 31
monLen[6] = 30
monLen[7] = 31
monLen[8] = 31
monLen[9] = 30
monLen[10] = 31
monLen[11] = 30
monLen[12] = 31

var statNo = 1

function stopclock(){
    if(timerRunning)
        clearTimeout(timerID)
    timerRunning = false
}
function startclock(mode){

    if (params = window.location.search) {
        param = params.split('=');
        schulden = (param[0] == '?start') ? param[1] : 0;
    } else {
        schulden=0;       
    }

    stopclock();
    zeigeSchulden(mode, schulden);
}
function initArray (n) {
    this.arraySize = n;
    for (i = 0; i<=n; ++i)
        this [i] = 0;
    return this;
}
function dateDiffHelp (p2,p1,maxP) {
    if (p2 - p1 - ueberlauf < 0) {
        p = maxP - p1 + p2 - ueberlauf
        ueberlauf = 1
    }
    else {
        p = p2 - p1 - ueberlauf
        ueberlauf = 0
    }
    return p
}
// BET - Okt. 1996
function dateToReal2 (lateYear,lateMonth,lateDay,lateHour,lateMinute,lateSecond,earlyYear,earlyMonth,earlyDay,earlyHour,earlyMinute,earlySecond) {
    ueberlauf = 0;
    secondsDiff = dateDiffHelp(lateSecond,earlySecond,60);
    minutesDiff = dateDiffHelp(lateMinute,earlyMinute,60);
    hoursDiff = dateDiffHelp(lateHour,earlyHour,24);
    daysDiff = dateDiffHelp(lateDay,earlyDay,monLen[earlyMonth]);
    if (lateMonth - earlyMonth - ueberlauf < 0) {
        for (i = earlyMonth + ueberlauf; i <= 12; ++i)
            daysDiff = daysDiff + monLen[i];
        for (i = 1; i < lateMonth; ++i)
            daysDiff = daysDiff + monLen[i];
        ueberlauf = 1;
    }
    else {
        for (i = earlyMonth + ueberlauf; i < lateMonth; ++i)
            daysDiff = daysDiff + monLen[i];
        ueberlauf = 0;
    }
    daysDiff = daysDiff + (lateYear - earlyYear - ueberlauf) * 366;
    return (daysDiff + (hoursDiff/24) + (minutesDiff/24/60) + (secondsDiff/24/60/60))/366;
}
function realToUnit (real,unitNumber, mode) {
    varReal = Math.round (real);
    for (i = 1; i < unitNumber; ++i)
        varReal = Math.floor (varReal / 1000);
    varReal = varReal - Math.floor (varReal / 1000) * 1000;
    result = varReal;
    if (mode == 2) {
    	result = 100 * Math.floor (result / 100.0)
    }
    if ((mode == 1) || (mode == 2)) {
        if (varReal < 100) result = '0'+result;
        if (varReal < 10) result = '0'+result;
        if (result == '00') result = '000';
    }
    if (unitNumber > 1) 
        result += '.';
    else {
        result +=  '';
    }
        
    if ((mode == 0) && (result == '0.'))
        result = '';
        
    return result;
}


function aktuelleSchulden(altSchuld,sJahr,sMonat,sTag,sStunde,sMinute,sSekunde,schuldProJahr,nJahr,nMonat,nTag,nStunde,nMinute,nSekunde){
    return altSchuld + (dateToReal2 (nJahr,nMonat,nTag,nStunde,nMinute,nSekunde,sJahr,sMonat,sTag,sStunde,sMinute,sSekunde)*schuldProJahr);
}
function zeigeSchulden(mode, schulden){

    aktuellesDatum = new Date();
    aktuellesJahr = aktuellesDatum.getYear();
    if (aktuellesJahr < 2000)
      {aktuellesJahr=aktuellesJahr+2000-100;
    }
    aktuellerMonat = aktuellesDatum.getMonth()+1;
    aktuellerTag = aktuellesDatum.getDate();
    aktuelleStunde = aktuellesDatum.getHours();
    aktuelleMinute = aktuellesDatum.getMinutes();
    aktuelleSekunde = aktuellesDatum.getSeconds();
    gesamtSchulden = aktuelleSchulden(schuldSum,schuldJahr, schuldMonat, schuldTag, schuldStunde, schuldMinute, schuldSekunde,neuSchuldProJahr,aktuellesJahr,aktuellerMonat,aktuellerTag,aktuelleStunde,aktuelleMinute,aktuelleSekunde);
    ein = realToUnit (gesamtSchulden,1,2);
    tsd = realToUnit (gesamtSchulden,2,1);
    mio = realToUnit (gesamtSchulden,3,1);
    mrd = realToUnit (gesamtSchulden,4,0);
    if (mode == 0) {
        document.getElementById('schuldEin').innerHTML = ein+' &euro;';
        document.getElementById('schuldTsd').innerHTML = tsd;
        document.getElementById('schuldMio').innerHTML = mio;
        document.getElementById('schuldMrd').innerHTML = mrd;
        document.getElementById('schuldPersTsd').innerHTML = realToUnit (Math.round(gesamtSchulden / personenAnzahl),2,0);
        document.getElementById('schuldPersEin').innerHTML = realToUnit (Math.round(gesamtSchulden / personenAnzahl),1,1)+' &euro;';
    } else {
		//statNo = 2;
        document.getElementById('stadtverschuldung').innerHTML =mrd+mio+tsd+ein;
        document.getElementById('stadtverschuldungLink').innerHTML = '<a target="_blank" href="stadtverschuldung2010.html?start='+Math.round (teilSchulden)+'"><img src="../../fileadmin/img/WfW/WuppertalTrends'+statNo+'.gif"></a>';
         statNo = (statNo == 1) ? 2 : 1;
    }

    if (teilSchulden > 0) {
        if (mode == 0) {
            SchuldTeil = Math.round (gesamtSchulden - teilSchulden)+'';
            //SchuldTeil = 4096+'';
            len = SchuldTeil.length;
            if (len > 3) {
                schuldTeilTsd = SchuldTeil.substring(0, (len-3))+'.';
                schuldTeilEin = SchuldTeil.substring(len-3);
            } else {
                schuldTeilTsd = '';
                schuldTeilEin = SchuldTeil;
            }
            document.getElementById('schuldTeil').innerHTML = schuldTeilTsd+schuldTeilEin+' &euro;';
        }
        delay=750;
    } else {  
        teilSchulden = schulden ? schulden : gesamtSchulden;
        delay=250;
    }
    timerRunning = true;
    timerID = setTimeout("zeigeSchulden("+mode+","+schulden+")",delay);
}




