// JavaScript Document

//$("#id_name").val() --> gib Wert zurück

//Varname --> FieldID
uw = new Array();

uw["fk_km_jahr"]                    = "#uw_fk_km_jahr";
uw["fk_kaufpreis"]                  = "#uw_fk_kaufpreis";
uw["fk_besitz_zeitraum"]            = "#uw_fk_besitz_zeitraum";
uw["fk_versicherung"]               = "#uw_fk_versicherung";
uw["fk_steuer"]                     = "#uw_fk_steuer";
uw["fk_inspektion"]                 = "#uw_fk_inspektion";
uw["fk_verschleiss"]                = "#uw_fk_verschleiss";
uw["fk_pflege"]                     = "#uw_fk_pflege";
uw["fk_wertverlust"]                = "#uw_fk_wertverlust";
uw["fk_wertverlust1"]               = "#uw_fk_wertverlust1";
uw["fk_sonstiges"]                  = "#uw_fk_sonstiges";
uw["fk_summe"]                      = "#uw_fk_summe";
uw["fk_fixkosten"]                  = "#uw_fk_fixkosten";
uw["fk_fixkostenTemp"]              = "#uw_fk_fixkostenTemp";
uw['uw_fk_tage_arbeit_monatl']      = "#uw_fk_tage_arbeit_monatl";
uw['uw_fk_tage_arbeit_monatl_ok']   = "#uw_fk_tage_arbeit_monatl_ok";


/******************************************************************************/
function doSubmit(){
    $('#myform').submit();
}
/******************************************************************************/
/*Hilfsfunktin: gibt hier die Anzahl der Punkte zurück*/
function substr_count(string, substring, start, length){
    var anzahl = 0;
    if(start) {
        string = string.substr(start);
    }
    if(length) {
         string = string.substr(0,length);
    }
    for (var i=0;i<string.length;i++){
        if( substring == string.substr(i,substring.length) ){
              anzahl++;
        }
    }
    return anzahl;
}
/******************************************************************************/
function cleanFixkostenFelder(input){
    // ersetze alle kommata mit Punkten
    input = input.replace(/,/g,".");
    //lösche alle Nicht-Zahlen, behalte aber die Punkte
    input = input.replace(/[^0-9.]/gi,"");
    return input;
}

/******************************************************************************/

function cleanInput(input){
    // ersetze alle kommata mit Punkten
    input = input.replace(/,/g,".");
    //lösche alle Nicht-Zahlen, behalte aber die Punkte
    input = input.replace(/[^0-9.,]/gi,"");
    //wenn mehr als ein '.' vorhanden, schneide überflüssige '.' aus
    if( substr_count(input, '.') > 1 ){
        aNum = input.split(".");
        numNeu = "";
        for(i = 0; i < (aNum.length-1); i++){
            numNeu += aNum[i];
        }
        numNeu += "." + aNum[aNum.length-1];
        input = numNeu;
    }
    // in ein Float umwandeln
    //input = parseFloat(input);
    return input;
}

/******************************************************************************/

function cleanValues(num){
    // ersetze alle kommata mit Punkten
    num = num.replace(/,/g,".");
    
    //wenn mehr als ein '.' vorhanden, schneide überflüssige '.' aus
    if( substr_count(num, '.') > 1 ){
        aNum = num.split(".");
        numNeu = "";
        for(i = 0; i < (aNum.length-1); i++){
            numNeu += aNum[i];
        }
        numNeu += "." + aNum[aNum.length-1];
        num = numNeu;
    }


    //lösche alle Nicht-Zahlen, behalte aber die Punkte
    num = num.replace(/[^0-9.]/gi,"");

    // erstes Zeichen "."? kann aber auch parseFloat übernhemen
    //if( num.indexOf(".") == 0 ) return alert("Punkt am Anfang !");
    
    
    //falls ein leerer String auftaucht
    if(num == ""){
        num = 0;
    }
    
    // in ein Float umwandeln
    num = parseFloat(num);
    return num;
}

/******************************************************************************/

function checkFixkosten(wert){
    //Aktualisieren der Fixkosten pro km
    $(uw['fk_fixkosten']).val(wert);
}

/******************************************************************************/

function uebernimmWert(){
    $(uw['fk_fixkosten']).val($(uw['fk_fixkostenTemp']).val());
}

/******************************************************************************/

function uebernimmWertTage(){
    $(uw['uw_fk_tage_arbeit_monatl_ok']).val($(uw['uw_fk_tage_arbeit_monatl']).val());
}

/******************************************************************************/



function verarbeiteFixkosten(){
    
  var uw_fk_fixkosten = 0;

  var uw_fk_values    = new Array();
  
  //alle Werte in uw_fk_values speichern
  for(var i in uw){
    uw_fk_values[i] = cleanValues( $(uw[i]).val() );
  }
  
  if(uw_fk_values['fk_kaufpreis'] == 0){uw_fk_values['fk_kaufpreis'] = 0;}
  if(uw_fk_values['fk_besitz_zeitraum'] == 0){uw_fk_values['fk_besitz_zeitraum'] = 1;}
  if(uw_fk_values['fk_km_jahr'] == 0){uw_fk_values['fk_km_jahr'] = 15000;}
  
  //alternativ: Leasing [Jahr]
  uw_fk_values['fk_wertverlust'] = parseInt(uw_fk_values['fk_kaufpreis']) / parseInt(uw_fk_values['fk_besitz_zeitraum']);
  
  if(uw_fk_values['fk_kaufpreis'] == 0){uw_fk_values['fk_wertverlust'] = 0;}
  if(uw_fk_values['fk_besitz_zeitraum'] == 0){uw_fk_values['fk_wertverlust'] = parseInt(uw_fk_values['fk_kaufpreis']);}
  
  //Aktualisieren der Leasing-Summe
  $(uw['fk_wertverlust']).val(parseInt(uw_fk_values['fk_wertverlust']));
  $(uw['fk_wertverlust1']).val(parseInt(uw_fk_values['fk_wertverlust']));
  
  //Summe berechnen
  uw_fk_values['fk_summe'] =  parseInt(uw_fk_values['fk_versicherung']) + 
                              parseInt(uw_fk_values['fk_steuer'])       +
                              parseInt(uw_fk_values['fk_inspektion'])   + 
                              parseInt(uw_fk_values['fk_verschleiss'])  + 
                              parseInt(uw_fk_values['fk_pflege'])       + 
                              parseInt(uw_fk_values['fk_wertverlust'])  + 
                              parseInt(uw_fk_values['fk_sonstiges']);
  
  //Aktualisieren der Summe
  $(uw['fk_summe']).val(uw_fk_values['fk_summe']);
  
  var teiler = (uw_fk_values['fk_km_jahr'] * uw_fk_values['fk_besitz_zeitraum']);
  var temp = uw_fk_values['fk_kaufpreis'] / teiler;
  
  
  
  
  
  //Berechnung der Fixkosten pro Kilometer
  uw_fk_fixkosten = ( (uw_fk_values['fk_summe'] / uw_fk_values['fk_km_jahr']) + temp );
  
  //int --> String 
  var uw_fk_fixkosten_str     = uw_fk_fixkosten + "";
  var uw_fk_fixkosten_ausgabe = uw_fk_fixkosten_str.substring(0, 4);
  
  
  
  //Aktualisieren der Fixkosten pro km
  $(uw['fk_fixkostenTemp']).val(uw_fk_fixkosten_ausgabe);
  
        
}

/******************************************************************************/

function berechneArbeitstage(){
    
    //Varname --> FieldID
    uw_at = new Array();

    //ids in uw_at speichern
    uw_at["uw_at_tage_jahr_ges"]        = "#uw_fk_tage_jahr_ges";
    uw_at["uw_at_sonntage"]             = "#uw_fk_sonntage";
    uw_at["uw_at_samstage"]             = "#uw_fk_samstage";
    uw_at["uw_at_feiertage"]            = "#uw_fk_feiertage";
    uw_at["uw_at_urlaubstage"]          = "#uw_fk_urlaubstage";
    uw_at["uw_at_tage_frei_ges"]        = "#uw_fk_tage_frei_ges";
    uw_at["uw_at_tage_arbeit_ges"]      = "#uw_fk_tage_arbeit_ges";
    uw_at["uw_at_tage_arbeit_monatl"]   = "#uw_fk_tage_arbeit_monatl";
    
    
    //Arbeitstage - Werte
    var uw_at_values    = new Array();
    
    //alle Werte in uw_fk_values speichern
    for(var i in uw_at){
        uw_at_values[i] = cleanValues( $(uw_at[i]).val() );
    }
    
    
    //Summe der arbeitsfreien Tage    
    var uw_at_tage_frei_ges =   uw_at_values['uw_at_sonntage'] +
                                uw_at_values['uw_at_samstage'] +
                                parseInt(uw_at_values['uw_at_feiertage']) +
                                parseInt(uw_at_values['uw_at_urlaubstage']);
                                
    //Summe der freien Tage
    $(uw_at['uw_at_tage_frei_ges']).val(uw_at_tage_frei_ges);
    
    
    var uw_at_tage_arbeit_ges = uw_at_values['uw_at_tage_jahr_ges'] -
                                uw_at_tage_frei_ges;
    
    //Summe der Arbeitstage
    $(uw_at['uw_at_tage_arbeit_ges']).val(uw_at_tage_arbeit_ges);
   
    //durchschnittl. Arbeitstage pro Monat
    var uw_at_tage_arbeit_monatl = uw_at_tage_arbeit_ges / 12;
    var uw_at_tage_arbeit_monatl_str = uw_at_tage_arbeit_monatl + "";
    
    //richtig runden!
    var aTageTemp = uw_at_tage_arbeit_monatl_str.split(".");
    if(aTageTemp.length > 1){
        var tageInt = 0;
        var kommaStelle = aTageTemp[1];
        if(kommaStelle[0] > 4){
            tageInt = parseInt(aTageTemp[0]) + 1;
        }else{
            tageInt = parseInt(aTageTemp[0]);
        }
        uw_at_tage_arbeit_monatl_str = tageInt + "";
    }
    $(uw_at['uw_at_tage_arbeit_monatl']).val(uw_at_tage_arbeit_monatl_str);
    
}

/******************************************************************************/

function gibHinweisMeldung(){
    var input = $("#wohnort").val()+"; "+$("#arbeitsort").val();
    for(var i = 0; i < kV.length; i++){
        if(kV[i] == input){
            alert("WARNING! Berechnung eines Ticketpreises nicht möglich!");
        }
    }
}
/******************************************************************************/









