var Wattages = new Array();
Wattages[0] = 7;
Wattages[1] = 7;
Wattages[2] = 4;
Wattages[3] = 2.5;


EnduraLabels = new Array();
EnduraLabels[0] = 'NR63';
EnduraLabels[1] = 'A-55';
EnduraLabels[2] = 'MR16';
EnduraLabels[3] = 'Candle';


jQuery("document").ready(
    function (){
        jQuery("select#BulbType").change(
            function(){
                jQuery("span#EnduraLampWattage").html(Wattages[jQuery(this).val()]);
                jQuery("span#LampLabel").html(EnduraLabels[jQuery(this).val()]);
                jQuery("input").val('');
                UpdateCalculation();
            }
        );
        
        jQuery("input#NumberLamps").keyup(
            function(){
                if(ValidNumberCheck(jQuery(this).val(), true)){
                    jQuery(this).removeClass("Error");
                } else {
                    if(jQuery(this).val()){
                        jQuery(this).addClass("Error");
                    } else {
                        jQuery(this).removeClass("Error");
                    }
                }
                UpdateCalculateNumberStores();
            }
        );
        
        jQuery("input#NumberFixturesPerStore").keyup(
            function(){
                if(ValidNumberCheck(jQuery(this).val(), true)){
                    jQuery(this).removeClass("Error");
                } else {
                    if(jQuery(this).val()){
                        jQuery(this).addClass("Error");
                    } else {
                        jQuery(this).removeClass("Error");
                    }
                }
                UpdateCalculateNumberStores();
            }
        );
        
        jQuery("input#NumberStores").keyup(
            function(){
                if(ValidNumberCheck(jQuery(this).val(), true)){
                    jQuery(this).removeClass("Error");
                } else {
                    if(jQuery(this).val()){
                        jQuery(this).addClass("Error");
                    } else {
                        jQuery(this).removeClass("Error");
                    }
                }
                UpdateCalculateNumberStores();
            }
        );
        
        jQuery("input#OperatingHours").keyup(
            function(){
                if(ValidNumberCheck(jQuery(this).val(), true)){
                    jQuery(this).removeClass("Error");
                } else {
                    if(jQuery(this).val()){
                        jQuery(this).addClass("Error");
                    } else {
                        jQuery(this).removeClass("Error");
                    }
                }
                UpdateCalculation();
            }
        );
        
        jQuery("input#CurrentWattage").keyup(
            function(){
                if(ValidNumberCheck(jQuery(this).val(), true)){
                    jQuery(this).removeClass("Error");
                } else {
                    if(jQuery(this).val()){
                        jQuery(this).addClass("Error");
                    } else {
                        jQuery(this).removeClass("Error");
                    }
                }
                UpdateCalculation();
            }
        );
        
        jQuery("select#EnergyCost").click(
            function(){
                UpdateCalculation();
            }
        );
        
        
        jQuery("span#EnduraLampWattage").html(Wattages[0]);
        jQuery("span#LampLabel").html(EnduraLabels[0]);
    }
);


function UpdateCalculateNumberStores(){
    if( ValidNumberCheck(jQuery("input#NumberLamps").val(), true) &&
        ValidNumberCheck(jQuery("input#NumberFixturesPerStore").val(), true) &&
        ValidNumberCheck(jQuery("input#NumberStores").val(), true)){
        
        jQuery("span#TotalNumberLamps").html(
            parseInt(jQuery("input#NumberLamps").val()) *
            parseInt(jQuery("input#NumberFixturesPerStore").val()) *
            parseInt(jQuery("input#NumberStores").val())
        );
    } else {
        jQuery("span#TotalNumberLamps").html("");
    }
    
    UpdateCalculation();
}


function UpdateCalculation(){
    if( ValidNumberCheck(jQuery("span#TotalNumberLamps").html(), true) &&
        ValidNumberCheck(jQuery("input#OperatingHours").val(), true)){
        
        var Temp = 
            /*parseInt(jQuery("span#TotalNumberLamps").html()) * 
            ( parseFloat(jQuery("select#EnergyCost").val()) / 1000) * 5 * parseInt(jQuery("input#OperatingHours").val())*/
            parseInt(jQuery("span#TotalNumberLamps").html()) *
            ( parseFloat(jQuery("select#EnergyCost").val()) / 1000 ) * 
            ( parseFloat(jQuery("input#CurrentWattage").val()) - parseFloat(jQuery("span#EnduraLampWattage").html()) ) *
            parseInt(jQuery("input#OperatingHours").val());
        jQuery("span#TotalSavings").html("$" + FormatCurrency(Temp));
        
        Temp = parseFloat(Temp) / parseInt(jQuery("span#TotalNumberLamps").html())
        jQuery("span#PerLamp").html("$" + FormatCurrency(Temp));
    } else {
        jQuery("span#TotalSavings").html("");
        jQuery("span#PerLamp").html("");
    }
}


function FormatCurrency(Number){
    var TempNumber = Number.toFixed(2), ReturnString = "";
    TempNumber = TempNumber.toString();
    for(var lp = TempNumber.length - 1, counter = 0, periodfound = false; lp > -1; lp--){
        var Character = TempNumber.charAt(lp);
        if(Character == "."){
            periodfound = true;
        } else {
            if(periodfound == true){
                if((++counter) == 4){
                    ReturnString = "," + ReturnString;
                    counter = 1;
                }
            }
        }
        
        ReturnString = Character + ReturnString;
    }
    return ReturnString;
}


function ValidNumberCheck(Number, Integer){
    if(Integer){
        if(parseInt(Number)){
            if(parseInt(Number) > 0){
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    } else {
        if(parseFloat(Number)){
            if(parseFloat(Number) > 0.0){
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
}
