﻿function initRepairForm() {
    $(".repair-form-success").hide();
    $(".ed-repair-progress").hide();
    if (arrDateTexts != '' && arrDateValues != '') {
        for (var i = 0; i < arrDateValues.length; i++)
            $('.ed-preferred-date').append(new Option(arrDateTexts[i], arrDateValues[i]));
    }
    if (arrTimeTexts != '' && arrTimeValues != '') {
        for (var i = 0; i < arrTimeValues.length; i++)
            $('.ed-preferred-time').append(new Option(arrTimeTexts[i], arrTimeValues[i]));
    }
}

function initEdmunds() {
    var d = new Date();
    var year = d.getFullYear();
    var month = d.getMonth();
    if (month > 6)
        year++;

    $('.ed-year').append(new Option('Select Year', ''));
    for (var i = year; i >= 1990; i--) {
        $('.ed-year').append(new Option(i, i));
    }
    resetMake(null);

    $(".ed-year").change(function() {
        var year = $('.ed-year').val();
        resetMake(null);
        if (year == '')
            return;

        var url = edmundsUrl + '?fn=find-makes-by-model-year&year=' + year;
        $.ajax({
            url: url,
            cache: false,
            beforeSend: function() {
                $('.ed-year-progress').show();
            },
            success: function(data) {
                var obj = jQuery.parseJSON(data).makeHolder;
                resetMake(obj);
            },
            complete: function() {
                $('.ed-year-progress').hide();
            },
            error: function() {
                alert("Sorry, your request could not be completed.");
            }
        });
    });
    $(".ed-make").change(function() {
        var year = $('.ed-year').val();
        var make = $('.ed-make').val();
        resetModel(null);
        if (year == '' || make == '')
            return;

        var url = edmundsUrl + '?fn=find-models-by-make-and-year&year=' + year + '&make=' + make;
        $.ajax({
            url: url,
            cache: false,
            beforeSend: function() {
                $('.ed-make-progress').show();
            },
            success: function(data) {
                var obj = jQuery.parseJSON(data).modelHolder;
                resetModel(obj);
            },
            complete: function() {
                $('.ed-make-progress').hide();
            },
            error: function() {
                alert("Sorry, your request could not be completed.");
            }
        });
    });
    $(".ed-model").change(function() {
        var year = $('.ed-year').val();
        var make = $('.ed-make').val();
        var model = $('.ed-model').val();
        resetTrim(null);
        if (year == '' || make == '' || model == '')
            return;

        var url = edmundsUrl + '?fn=find-styles-by-make-model-year&year=' + year + '&make=' + make + '&model=' + model;
        $.ajax({
            url: url,
            cache: false,
            beforeSend: function() {
                $('.ed-model-progress').show();
            },
            success: function(data) {
                var obj = jQuery.parseJSON(data).styleHolder;
                resetTrim(obj);
                currentModels = obj;
            },
            complete: function() {
                $('.ed-model-progress').hide();
            },
            error: function() {
                alert("Sorry, your request could not be completed.");
            }
        });
    });
    $(".ed-trim").change(function() {
        var id = $('.ed-trim').val();
        currentModelYearId = 0;
        if (currentModels == null) {
            resetTrim(null);
        } else if (id == '') {
            resetEngine(null);
            resetTransmission(null);
        } else {
            $('.ed-trim-progress').show();
            resetEngine(null);
            resetTransmission(null);
            for (var i = 0; i < currentModels.length; i++) {
                if (currentModels[i].id == id) {
                    resetEngine(currentModels[i]);
                    resetTransmission(currentModels[i]);
                    currentModelYearId = currentModels[i].modelYearId;
                    break;
                }
            }
            $('.ed-trim-progress').hide();
        }
    });
    $(".ed-btn").click(function() {
        var year = $('.ed-year').val();
        var make = $('.ed-make').val();
        var model = $('.ed-model').val();
        var trim = $('.ed-trim').val();
        var engine = $('.ed-engine').val();
        var transmission = $('.ed-transmission').val();
        var mileage = $('.ed-mileage').val();
        if (year == '')
            alert("Please select 'Vehicle Year'");
        else if (make == '')
            alert("Please select 'Make'");
        else if (model == '')
            alert("Please select 'Model'");
        else if (trim == '')
            alert("Please select 'Trim'");
        else if (engine == '')
            alert("Please select 'Engine'");
        else if (transmission == '')
            alert("Please select 'Transmission'");
        else if (mileage == '' || isNaN(mileage))
            alert("Please enter 'Current Mileage'");
        else {
            var url = edmundsUrl + '?fn=find-actions-by-modelyearid&modelyearid=' + currentModelYearId + '&year=' + year + '&trim=' + trim + '&engine=' + engine + '&transmission=' + transmission + '&mileage=' + mileage + '&keepThis=true&TB_iframe=true&height=510&width=700';
            $('#edBtn').attr('href', url);
            $('#edBtn').click();
//            $.ajax({
//                url: url,
//                cache: false,
//                beforeSend: function() {
//                    $('.ed-btn').attr('disabled', 'disabled');
//                },
//                success: function(data) {
//                    alert(data);
//                    //var obj = jQuery.parseJSON(data).actionHolder;
//                    $("#ed-results").html(data);
//                    $("#ed-results").show();
//                },
//                complete: function() {
//                    $('.ed-btn').removeAttr('disabled');
//                },
//                error: function() {
//                    alert("Sorry, your request could not be completed.");
//                }
//            });
        }
        return false;
    });

    $(".ed-repair-btn").click(function() {
        var year = $('.ed-year').val();
        var make = $('.ed-make').val();
        var model = $('.ed-model').val();
        var trim = $('.ed-trim').val();
        var engine = $('.ed-engine').val();
        var transmission = $('.ed-transmission').val();
        var mileage = $('.ed-mileage').val();
        var firstname = $('.ed-first-name').val();
        var lastname = $('.ed-last-name').val();
        var email = $('.ed-email').val();
        var phone = $('.ed-phone').val();
        var preferreddate = $('.ed-preferred-date').val();
        var preferredtime = $('.ed-preferred-time').val();
        var message = $('.ed-message').val();

        if (year == '')
            alert("Please select 'Vehicle Year'");
        else if (make == '')
            alert("Please select 'Make'");
        else if (model == '')
            alert("Please select 'Model'");
        else if (trim == '')
            alert("Please select 'Trim'");
        else if (engine == '')
            alert("Please select 'Engine'");
        else if (transmission == '')
            alert("Please select 'Transmission'");
        else if (mileage == '' || isNaN(mileage))
            alert("Please enter 'Current Mileage'");
        else if (firstname == '')
            alert("Please enter 'First Name'");
        else if (lastname == '')
            alert("Please enter 'Last Name'");
        else if (email == '' && phone == '')
            alert("Please enter 'E-Mail' or 'Phone'");
        else {
            var url = '/Edmunds.aspx?fn=save-repair-service&modelyearid=' + currentModelYearId + '&year=' + year + '&trim=' + trim + '&engine=' + engine + '&transmission=' + transmission + '&mileage=' + mileage + '&firstname=' + firstname + '&lastname=' + lastname + '&email=' + email + '&phone=' + phone + '&preferreddate=' + preferreddate + '&preferredtime=' + preferredtime + '&message=' + message + '&keepThis=true';
            $.ajax({
                url: url,
                cache: false,
                beforeSend: function() {
                    $('.ed-repair-btn').attr('disabled', 'disabled');
                    $(".ed-repair-progress").show();
                },
                success: function(data) {
                    if (data != "")
                        alert(data);
                    else {
                        $(".repair-form").hide();
                        $(".repair-form-success").show();
                        $('html,body').animate({
                            scrollTop: 0
                        }, 2000);
                    }
                },
                complete: function() {
                    $('.ed-repair-btn').removeAttr('disabled');
                },
                error: function() {
                    alert("Sorry, your request could not be completed.");
                }
            });
        }
        return false;
    });
}

function resetMake(obj) {
    $('.ed-make > option').remove();
    $('.ed-make').append(new Option('Select Make', ''));
    if (obj == null) {
        $('.ed-make').attr('disabled', 'disabled');
    } else {
        for (var i = 0; i < obj.length; i++) {
            $('.ed-make').append(new Option(obj[i].name, obj[i].niceName));
        }
        $('.ed-make').removeAttr('disabled');
    }
    resetModel(null);
}
function resetModel(obj) {
    $('.ed-model > option').remove();
    $('.ed-model').append(new Option('Select Model', ''));
    if (obj == null) {
        $('.ed-model').attr('disabled', 'disabled');
    } else {
        for (var i = 0; i < obj.length; i++) {
            $('.ed-model').append(new Option(obj[i].name, obj[i].niceName));
        }
        $('.ed-model').removeAttr('disabled');
    }
    resetTrim(null);
}
function resetTrim(obj) {
    currentModels = null;
    $('.ed-trim > option').remove();
    $('.ed-trim').append(new Option('Select Trim', ''));
    if (obj == null) {
        $('.ed-trim').attr('disabled', 'disabled');
    } else {
        for (var i = 0; i < obj.length; i++) {
            $('.ed-trim').append(new Option(obj[i].name, obj[i].id));
        }
        $('.ed-trim').removeAttr('disabled');
    }
    resetEngine(null);
    resetTransmission(null);
}
function resetEngine(obj) {
    $('.ed-engine > option').remove();
    $('.ed-engine').append(new Option('Select Engine', ''));
    if (obj == null) {
        $('.ed-engine').attr('disabled', 'disabled');
    } else {
        $('.ed-engine').append(new Option(obj.engine, obj.engineName));
        $('.ed-engine').removeAttr('disabled');
        $('.ed-engine').val(obj.engineName);
    }
}
function resetTransmission(obj) {
    $('.ed-transmission > option').remove();
    $('.ed-transmission').append(new Option('Select Transmission', ''));
    if (obj == null) {
        $('.ed-transmission').attr('disabled', 'disabled');
    } else if (obj.transmissionType == 'AUTOMATIC') {
        $('.ed-transmission').append(new Option(obj.transmissionType, obj.transmissionType));
        $('.ed-transmission').removeAttr('disabled');
        $('.ed-transmission').val(obj.transmissionType);
    } else {
        $('.ed-transmission').append(new Option('AUTOMATIC', 'AUTOMATIC'));
        $('.ed-transmission').append(new Option('MANUAL', 'MANUAL'));
        $('.ed-transmission').removeAttr('disabled');   
    }
}
