﻿// JScript File
// (c) 2009 unternehmen online GmbH & Co. KG

function calculateWallpaper(){
    if( CheckFormFieldsWallpaper() != 31 ){
        //unfilled form
        showError(1);
    }
    else {
        // Produkt
        var p_length = getNumber( document.forms["calculator"].elements["p_length"].value );
        var p_width = getNumber( document.forms["calculator"].elements["p_width"].value );
        
        // Raum
        var width = getNumber( document.forms["calculator"].elements["r_width"].value );
        var length = getNumber( document.forms["calculator"].elements["r_length"].value );
        var height = getNumber( document.forms["calculator"].elements["r_height"].value );
        
        // Decke
        var d_width = getNumber( document.forms["calculator"].elements["d_width"].value );
        var d_length = getNumber( document.forms["calculator"].elements["d_length"].value );
        
        
        // Berechnung Raum qm
        var r_result = ((width + length)*2 )* height;
        
        // Berechnung Decke qm
        var d_result = d_width * d_length;
        
        if (isNaN(d_result)) {
          var g_result = r_result;
        } else {
          var g_result = r_result + d_result;
        }
        
        
        // Berechnung Produkt-Rolle qm
        var p_result = p_width * p_length;
    
        // Bedarf in Rollen
        var c_result = Math.ceil((g_result* 1.15) / p_result);
        
        g_result = Math.round(g_result * 100) / 100;
                
        document.forms["calculator"].elements["result_1"].value = g_result;
        document.forms["calculator"].elements["result_2"].value = c_result;
    }
}


function CheckFormFieldsWallpaper(){
    document.forms["calculator"].elements["r_width"].value = document.forms["calculator"].elements["r_width"].value.replace(/,/, ".");
    document.forms["calculator"].elements["r_length"].value = document.forms["calculator"].elements["r_length"].value.replace(/,/, ".");
    document.forms["calculator"].elements["r_height"].value = document.forms["calculator"].elements["r_height"].value.replace(/,/, ".");
    document.forms["calculator"].elements["p_width"].value = document.forms["calculator"].elements["p_width"].value.replace(/,/, ".");
    document.forms["calculator"].elements["p_length"].value = document.forms["calculator"].elements["p_length"].value.replace(/,/, ".");
    document.forms["calculator"].elements["d_width"].value = document.forms["calculator"].elements["d_width"].value.replace(/,/, ".");
    document.forms["calculator"].elements["d_length"].value = document.forms["calculator"].elements["d_length"].value.replace(/,/, ".");
    
    var checksum = 0;
    // tests if the width field is filled
    if( !isNaN(document.forms["calculator"].elements["r_width"].value ) && 
        document.forms["calculator"].elements["r_width"].value > 0 ){
        checksum += 1;
    }
    // tests if the length field is filled
    if( !isNaN(document.forms["calculator"].elements["r_length"].value ) && 
        document.forms["calculator"].elements["r_length"].value > 0 ){
        checksum += 2;
    }
    // tests if the height field is filled
    if( !isNaN(document.forms["calculator"].elements["r_height"].value ) && 
        document.forms["calculator"].elements["r_height"].value > 0 ){
        checksum += 4;
    }
    // tests if the product width field is filled
    if( !isNaN(document.forms["calculator"].elements["p_width"].value ) && 
        document.forms["calculator"].elements["p_width"].value > 0 ){
        checksum += 8;
    }
    // tests if the product length field is filled
    if( !isNaN(document.forms["calculator"].elements["p_length"].value ) && 
        document.forms["calculator"].elements["p_length"].value > 0 ){
        checksum += 16;
    }
    return checksum;
}

// Color

function calculateColor(){
    if( CheckFormFieldsColor()!= 39 ){
        //unfilled form
        showError(1);
    }
    else{
       // Produkt
        var p_yield = getNumber( document.forms["calculator"].elements["p_yield"].value );
        var p_name = document.forms["calculator"].elements["p_yield"].selectedIndex;
        p_name = document.forms["calculator"].elements["p_yield"].options[p_name].text;

        // Raum
        var width = getNumber( document.forms["calculator"].elements["r_width"].value );
        var length = getNumber( document.forms["calculator"].elements["r_length"].value );
        var height = getNumber( document.forms["calculator"].elements["r_height"].value );
        
        // Decke
        var d_width = getNumber( document.forms["calculator"].elements["d_width"].value );
        var d_length = getNumber( document.forms["calculator"].elements["d_length"].value );
       
       
        // Berechnung Raum qm
        var r_result = ((width + length)*2 )* height;
        
        // Berechnung Decke qm
        var d_result = d_width * d_length;
        
        if (isNaN(d_result)) {
          var g_result = r_result;
        } else {
          var g_result = r_result + d_result;
        }
        
        // Ergiebigkeit
        var p_result = Math.ceil(g_result / p_yield);
        
        g_result = Math.round(g_result * 100) / 100;
        
        document.forms["calculator"].elements["result_1"].value = g_result;
        document.forms["calculator"].elements["result_2"].value = p_result;
        document.forms["calculator"].elements["result_3"].value = "Benötigte Materialmenge für: " + p_name;
    }
}

function CheckFormFieldsColor(){
    document.forms["calculator"].elements["r_width"].value = document.forms["calculator"].elements["r_width"].value.replace(/,/, ".");
    document.forms["calculator"].elements["r_length"].value = document.forms["calculator"].elements["r_length"].value.replace(/,/, ".");
    document.forms["calculator"].elements["r_height"].value = document.forms["calculator"].elements["r_height"].value.replace(/,/, ".");
    document.forms["calculator"].elements["p_yield"].value = document.forms["calculator"].elements["p_yield"].value.replace(/,/, ".");
    document.forms["calculator"].elements["d_width"].value = document.forms["calculator"].elements["d_width"].value.replace(/,/, ".");
    document.forms["calculator"].elements["d_length"].value = document.forms["calculator"].elements["d_length"].value.replace(/,/, ".");
    
    var checksum = 0;
    // tests if the width field is filled
    if( !isNaN(document.forms["calculator"].elements["r_width"].value ) && 
        document.forms["calculator"].elements["r_width"].value > 0 ){
        checksum += 1;
    }
    // tests if the length field is filled
    if( !isNaN(document.forms["calculator"].elements["r_length"].value ) && 
        document.forms["calculator"].elements["r_length"].value > 0 ){
        checksum += 2;
    }
    // tests if the height field is filled
    if( !isNaN(document.forms["calculator"].elements["r_height"].value ) && 
        document.forms["calculator"].elements["r_height"].value > 0 ){
        checksum += 4;
    }
    // tests if the product yield field is filled
    if( !isNaN(document.forms["calculator"].elements["p_yield"].value ) && 
        document.forms["calculator"].elements["p_yield"].value > 0 ){
        checksum += 32;
    }
    return checksum;
}

// Laminate


function calculateLaminate(){
    
    if( CheckFormFieldsLaminate() != 27 ){
        //unfilled form
        showError(1);
    }
    else {
       // Produkt
        // Raum
        var width = getNumber( document.forms["calculator"].elements["r_width"].value );
        var length = getNumber( document.forms["calculator"].elements["r_length"].value );
       
       
       
        var p_name = document.forms["calculator"].elements["p_gesammt"].selectedIndex;
        p_name = document.forms["calculator"].elements["p_gesammt"].options[p_name].text;
 
        // Berechnung Raum qm
        var r_result = width * length;
       
        // Berechnung Produkt qm
        var p_result = getNumber( werte[document.forms["calculator"].elements["p_gesammt"].value][0] );
        // var p_result = p_width * p_length;
       
        // Ergiebigkeit
        var g_result = Math.ceil((r_result / p_result)*1.04);
        
        r_result = Math.round(r_result * 100) / 100;
        
        document.forms["calculator"].elements["result_1"].value = r_result;
        document.forms["calculator"].elements["result_2"].value = g_result;
        document.forms["calculator"].elements["result_3"].value = "Benötigte Materialmenge für: " + p_name;
      
    }
}

function CheckFormFieldsLaminate(){
    document.forms["calculator"].elements["r_width"].value = document.forms["calculator"].elements["r_width"].value.replace(/,/, ".");
    document.forms["calculator"].elements["r_length"].value = document.forms["calculator"].elements["r_length"].value.replace(/,/, ".");
   // document.forms["calculator"].elements["p_width"].value = document.forms["calculator"].elements["p_width"].value.replace(/,/, ".");
   // document.forms["calculator"].elements["p_length"].value = document.forms["calculator"].elements["p_length"].value.replace(/,/, ".");
    document.forms["calculator"].elements["p_gesammt"].value = document.forms["calculator"].elements["p_gesammt"].value.replace(/,/, ".");
    
    var checksum = 0;
    // tests if the width field is filled
    if( !isNaN(document.forms["calculator"].elements["r_width"].value ) && 
        document.forms["calculator"].elements["r_width"].value > 0 ){
        checksum += 1;
    }
    // tests if the length field is filled
    if( !isNaN(document.forms["calculator"].elements["r_length"].value ) && 
        document.forms["calculator"].elements["r_length"].value > 0 ){
        checksum += 2;
    }

    // tests if the product width field is filled
    /*
    if( !isNaN(document.forms["calculator"].elements["p_width"].value ) && 
        document.forms["calculator"].elements["p_width"].value > 0 ){
        checksum += 8;
    }
    // tests if the product length field is filled
    if( !isNaN(document.forms["calculator"].elements["p_length"].value ) && 
        document.forms["calculator"].elements["p_length"].value > 0 ){
        checksum += 16;
    }
    */
    // tests if the product length field is filled
    if( !isNaN(document.forms["calculator"].elements["p_gesammt"].value ) && 
        document.forms["calculator"].elements["p_gesammt"].value > 0 ){
        checksum += 24;
    }
    return checksum;
}



function calculateCarpet(){
    if( CheckFormFieldsCarpet() != 11 ){
        //unfilled form
        showError(1);
    }
    else{
       // Produkt
        
        var p_width = getNumber( document.forms["calculator"].elements["p_width"].value );
        var p_name = document.forms["calculator"].elements["p_width"].selectedIndex;
        p_name = document.forms["calculator"].elements["p_width"].options[p_name].text;
       
        // Raum
        var width = getNumber( document.forms["calculator"].elements["r_width"].value );
        var length = getNumber( document.forms["calculator"].elements["r_length"].value );
        
        // Berechnung Raum qm
        var r_result = width * length;
       
        // Bedarf in cm (Produktlänge) = Bodenfläche/Teppichbreite*1.0x (Verschnitt)
               
        // Produktlänge
        var g_result = Math.ceil(r_result / p_width)*1.05;
        
        //g_result = Math.ceil(g_result);
        g_result = Math.round(g_result * 100) / 100;
        
        r_result = Math.round(r_result * 100) / 100;
        
        document.forms["calculator"].elements["result_1"].value = r_result;
        document.forms["calculator"].elements["result_2"].value = g_result;
        document.forms["calculator"].elements["result_3"].value = "Benötigte Materialmenge für: " + p_name;
    
    }
}



function CheckFormFieldsCarpet(){
    document.forms["calculator"].elements["r_width"].value = document.forms["calculator"].elements["r_width"].value.replace(/,/, ".");
    document.forms["calculator"].elements["r_length"].value = document.forms["calculator"].elements["r_length"].value.replace(/,/, ".");
    document.forms["calculator"].elements["p_width"].value = document.forms["calculator"].elements["p_width"].value.replace(/,/, ".");
    
    var checksum = 0;
    // tests if the width field is filled
    if( !isNaN(document.forms["calculator"].elements["r_width"].value ) && 
        document.forms["calculator"].elements["r_width"].value > 0 ){
        checksum += 1;
    }
    // tests if the length field is filled
    if( !isNaN(document.forms["calculator"].elements["r_length"].value ) && 
        document.forms["calculator"].elements["r_length"].value > 0 ){
        checksum += 2;
    }

    // tests if the product width field is filled
    if( !isNaN(document.forms["calculator"].elements["p_width"].value ) && 
        document.forms["calculator"].elements["p_width"].value > 0 ){
        checksum += 8;
    }


    return checksum;
}



function showError(value){
    switch(value){
        case 1: window.alert("Bitte füllen Sie alle Felder aus!"); break;
        default: window.alert("Unbekannter Fehler!");
    }
}

function getNumber( value ){

    if( isNaN( value ) || 
        value < 0 ){
        return 0.0;
    }
    else{
        return parseFloat( value );
    }
}
