/******************   global variable declaration,  begin *****************/

/******************   global variable declaration,  end *******************/

/******************   class declaration,  begin *****************/

/******************   class declaration,  end *******************/

/***** init section, begin *****/
$(document).ready(
    function() {
        step2Init();
    }
);

var isShowingBlock = false;

function step2Init()
{
   $("#step2_year").children().eq(0).attr("selected", "selected");
   $("#step2_month").children().eq(0).attr("selected", "selected");    
   step2BindEvents();
}

function step2BindEvents()
{    
    $("#step2_year").bind('change', function(e){step2CheckBefore2000(e);});
    $("#step2_month").bind('change', function(e){step2DateChange(e);});
    $("#step2_brand_name").bind('change', function(e){step2BrandChange(e);});
    $("#step2_model_name").bind('change', function(e){step2ModelChange(e);});
    $("#step2_energy_name").bind('change', function(e){step2EnergyChange(e);});
    $("#step2_bodywork_name").bind('change', function(e){step2BodyworkChange(e);});
    $("#step2_door_name").bind('change', function(e){step2DoorChange(e);});
    $("#step2_motorization_name").bind('change', function(e){step2MotorizationChange(e);});
    $("#step2_gearbox_name").bind('change', function(e){step2GearBoxChange(e);});
}

function verifyStep2()
{
    var checkResult = true;
    $("select[name*=step2]").each(function(){
        if($(this).attr("selectedIndex") == 0) {
            $(this).parent().children(":eq(1)").removeClass('tip').addClass('tip');
            checkResult = false;
        } else {
            $(this).parent().children(":eq(1)").removeClass('tip');
        }
    });

    if(!checkResult) {
        showTips("Merci de compléter tous les champs");
    }
    return checkResult;
}

function checkDate()
{
    var checkResult = true;
    $("#step2_year, #step2_month").each(function(){
        if($(this).val()=="NULL" || $(this).val()=="") {
            checkResult = false;
        }
    });

    return checkResult;
}

function goStep2()
{
    var params = {
            "data_format" : 'json',
            "step" : 2
        };

    var submitUrl;

    showBlockUILoading("#eurotax_valuation_form" );

    submitUrl = BASE_URL + "eurotax/goStep2";

    $.ajax({
        url: submitUrl,
        global: true,
        type: "GET",
        data: params,
        dataType: "json",
        success: function(jsonData){
            goStep2CallBack(jsonData);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
            //debugLog("goStep2 Error: " + $(this).dump()); // the options for this ajax request
        }
    });
}

function goStep2CallBack(jsonData)
{
    if(jsonData.info.status == operationStatus.Error) {
        showTips(jsonData.info.error_info);
    } else {
        showStepForm(formStatus.currentStep);
    }
    hideBlockUI("#eurotax_valuation_form");
}

// avant 2000
function step2CheckBefore2000(e)
{   
    if ( $("#step2_year").val() == 'avant' ) {
        showBlockUILoading("#eurotax_valuation_form" );
        $("#percent_img").hide();
        $("#step_form_btn").hide();
        showStepForm('before2000');
        hideBlockUI("#eurotax_valuation_form");
    } else {
        step2DateChange(e);
    }
}

// **************************************** annee + mois ************************************************************//
function step2DateChange(e)
{
    var params = {
        "data_format" : 'json',
        "year": $("#step2_year").val(),
        "month": $("#step2_month").val()
    };
    var submitUrl = BASE_URL + "eurotax/getBrandList";

    if(checkDate()){
        showBlockUILoading("#eurotax_valuation_form" );
        $.ajax({
            url: submitUrl,
            global: true,
            type: "GET",
            data: params,
            dataType: "json",
            success: function(jsonData){
                step2DateChangeCallBack(jsonData);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
            }
        });
    }
}
function step2DateChangeCallBack(jsonData)
{    
   
    if(jsonData.info.status == operationStatus.Error) {
        showTips(jsonData.info.error_info);
    } else {
        $('#step2_brand_name').empty();
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_brand_name');
        
        for(i=0;i<jsonData['items']['brands'].length;i++) {
            $('<option value="' + jsonData['items']['brands'][i].key +'">' + jsonData['items']['brands'][i].value +'</option>').appendTo("#step2_brand_name");
        }

        if (jsonData['items']['brands'].length == 1) {
            $('#step2_brand_name').val(jsonData['items']['brands'][0].key);
        }
        $('#step2_brand_name').change();
    }
    hideBlockUI("#eurotax_valuation_form");
}






// **************************************** marque ************************************************************//
function step2BrandChange(e)
{
    var params = {
        "data_format" : 'json',
        "year": $("#step2_year").val(),
        "month": $("#step2_month").val(),
        "brand_name": $("#step2_brand_name").val()
    };
    var submitUrl = BASE_URL + "eurotax/getModelList";

    if($("#step2_brand_name").val() != "NULL"){
        if (isShowingBlock == false) {
            showBlockUILoading("#eurotax_valuation_form" );
            isShowingBlock = true; 
        }
        $.ajax({
            url: submitUrl,
            global: true,
            type: "GET",
            data: params,
            dataType: "json",
            success: function(jsonData){
                step2BrandChangeCallBack(jsonData);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
            }
        });
    } else {
    	$('#step2_model_name').empty();   
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_model_name');
        $('#step2_model_name').change();
    }
}
function step2BrandChangeCallBack(jsonData)
{    
    var hideBlock = true;
    if(jsonData.info.status == operationStatus.Error) {
        showTips(jsonData.info.error_info);
    } else {

        $('#step2_model_name').empty();   
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_model_name');

        for (i=0;i<jsonData['items']['models'].length;i++)  {
            $('<option value="' + jsonData['items']['models'][i].key +'">' + jsonData['items']['models'][i].value +'</option>').appendTo('#step2_model_name');
        }

        if (jsonData['items']['models'].length == 1) {
            $('#step2_model_name').val(jsonData['items']['models'][0].key);
            hideBlock = false;
        }
        $('#step2_model_name').change();
    }
    if (isShowingBlock == true && hideBlock == true) {
        hideBlockUI("#eurotax_valuation_form");
        isShowingBlock = false;
    }
}


// **************************************** modele ************************************************************//
function step2ModelChange(e)
{
    var params = {
        "data_format" : 'json',
        "year": $("#step2_year").val(),
        "month": $("#step2_month").val(),
        "brand_name": $("#step2_brand_name").val(),
        "model_name": $("#step2_model_name").val()
    };
    var submitUrl = BASE_URL + "eurotax/getEnergyList";

    if($("#step2_model_name").val() != "NULL"){
        if (isShowingBlock == false) {
            showBlockUILoading("#eurotax_valuation_form" );
            isShowingBlock = true; 
        }
        $.ajax({
            url: submitUrl,
            global: true,
            type: "GET",
            data: params,
            dataType: "json",
            success: function(jsonData){
                step2ModelChangeCallBack(jsonData);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
            }
        });
    } else {
    	 $('#step2_energy_name').empty();     
         $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_energy_name');
         $('#step2_energy_name').change();
    }
}
function step2ModelChangeCallBack(jsonData)
{    
    var hideBlock = true;
   
    if(jsonData.info.status == operationStatus.Error) {
        showTips(jsonData.info.error_info);
    } else {
        $('#step2_energy_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_energy_name');
        
        for(i=0;i<jsonData['items']['energys'].length;i++) {
            $('<option value="' + jsonData['items']['energys'][i].key +'">' + jsonData['items']['energys'][i].value +'</option>').appendTo('#step2_energy_name');
        }

        if (jsonData['items']['energys'].length == 1) {
            $('#step2_energy_name').val(jsonData['items']['energys'][0].key);
            hideBlock = false;
        }
        $('#step2_energy_name').change();
        
    }
    if (isShowingBlock == true && hideBlock == true) {
        hideBlockUI("#eurotax_valuation_form");
        isShowingBlock = false;
    }
}





// **************************************** energie ************************************************************//
function step2EnergyChange(e)
{
    var params = {
        "data_format" : 'json',
        "year": $("#step2_year").val(),
        "month": $("#step2_month").val(),
        "brand_name": $("#step2_brand_name").val(),
        "model_name": $("#step2_model_name").val(),
        "energy_name": $("#step2_energy_name").val()
    };
    var submitUrl = BASE_URL + "eurotax/getBodyworkList";

    if ($("#step2_energy_name").val() != "NULL") {

        if (isShowingBlock == false) {
            showBlockUILoading("#eurotax_valuation_form" );
            isShowingBlock = true; 
        }
        $.ajax({
            url: submitUrl,
            global: true,
            type: "GET",
            data: params,
            dataType: "json",
            success: function(jsonData){
                step2EnergyChangeCallBack(jsonData);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
            }
        });
    } else {
    	$('#step2_bodywork_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_bodywork_name');
        $('#step2_bodywork_name').change();
    }
}
function step2EnergyChangeCallBack(jsonData)
{    
    var hideBlock = true;
       
    if(jsonData.info.status == operationStatus.Error) {
        showTips(jsonData.info.error_info);
    } else {
        $('#step2_bodywork_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_bodywork_name');
        
        for(i=0;i<jsonData['items']['bodyworks'].length;i++) {
            $('<option value="' + jsonData['items']['bodyworks'][i].key +'">' + jsonData['items']['bodyworks'][i].value +'</option>').appendTo('#step2_bodywork_name');
        }
        if (jsonData['items']['bodyworks'].length == 1) {
            $('#step2_bodywork_name').val(jsonData['items']['bodyworks'][0].key);
            hideBlock = false;
        }
        $('#step2_bodywork_name').change();
        
    }
    if (isShowingBlock == true && hideBlock == true) {
        hideBlockUI("#eurotax_valuation_form");
        isShowingBlock = false;
    }
}








// **************************************** carrosserie ************************************************************//
function step2BodyworkChange(e)
{
    var params = {
        "data_format" : 'json',
        "year": $("#step2_year").val(),
        "month": $("#step2_month").val(),
        "brand_name": $("#step2_brand_name").val(),
        "model_name": $("#step2_model_name").val(),
        "energy_name": $("#step2_energy_name").val(),
        "bodywork_name": $("#step2_bodywork_name").val()
    };
    var submitUrl = BASE_URL + "eurotax/getDoorList";

    if($("#step2_bodywork_name").val() != "NULL"){
        if (isShowingBlock == false) {
            showBlockUILoading("#eurotax_valuation_form" );
            isShowingBlock = true; 
        }
        $.ajax({
            url: submitUrl,
            global: true,
            type: "GET",
            data: params,
            dataType: "json",
            success: function(jsonData){
                step2BodyworkChangeCallBack(jsonData);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
            }
        });
    } else {
    	$('#step2_door_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_door_name');
        $('#step2_door_name').change();
    }
}
function step2BodyworkChangeCallBack(jsonData)
{    
    var hideBlock = true;
    if(jsonData.info.status == operationStatus.Error) {
        showTips(jsonData.info.error_info);
    } else {

        $('#step2_door_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_door_name');
        
        for(i=0;i<jsonData['items']['doors'].length;i++) {
            $('<option value="' + jsonData['items']['doors'][i].key +'">' + jsonData['items']['doors'][i].value +'</option>').appendTo('#step2_door_name');
        }

        if (jsonData['items']['doors'].length == 1) {
            $('#step2_door_name').val(jsonData['items']['doors'][0].key);
            hideBlock = false;
        }
        $('#step2_door_name').change();
        
    }
    if (isShowingBlock == true && hideBlock == true) {
        hideBlockUI("#eurotax_valuation_form");
        isShowingBlock = false;
    }
}








// **************************************** nombre de portes ************************************************************//
function step2DoorChange(e)
{
    var params = {
        "data_format" : 'json',
        "year": $("#step2_year").val(),
        "month": $("#step2_month").val(),
        "brand_name": $("#step2_brand_name").val(),
        "model_name": $("#step2_model_name").val(),
        "energy_name": $("#step2_energy_name").val(),
        "bodywork_name": $("#step2_bodywork_name").val(),
        "door_name": $("#step2_door_name").val()
    };
    var submitUrl = BASE_URL + "eurotax/getMotorizationList";

    if($("#step2_door_name").val() != "NULL"){
        if (isShowingBlock == false) {
            showBlockUILoading("#eurotax_valuation_form" );
            isShowingBlock = true; 
        }
        $.ajax({
            url: submitUrl,
            global: true,
            type: "GET",
            data: params,
            dataType: "json",
            success: function(jsonData){
                step2DoorChangeCallBack(jsonData);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
            }
        });
    } else {
    	 $('#step2_motorization_name').empty();     
         $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_motorization_name');
         $('#step2_motorization_name').change();
    }
}
function step2DoorChangeCallBack(jsonData)
{    
    var hideBlock = true;
    if(jsonData.info.status == operationStatus.Error) {
        showTips(jsonData.info.error_info);
    } else {
        $('#step2_motorization_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_motorization_name');
        
        for(i=0;i<jsonData['items']['motorizations'].length;i++) {
            $('<option value="' + jsonData['items']['motorizations'][i].key +'">' + jsonData['items']['motorizations'][i].value +'</option>').appendTo('#step2_motorization_name');
        }
        
        if (jsonData['items']['motorizations'].length == 1) {
            $('#step2_motorization_name').val(jsonData['items']['motorizations'][0].key);
            hideBlock = false;
        }
        $('#step2_motorization_name').change();
        
    }
    if (isShowingBlock == true && hideBlock == true) {
        hideBlockUI("#eurotax_valuation_form");
        isShowingBlock = false;
    }
}







// **************************************** motorisation ************************************************************//
function step2MotorizationChange(e)
{
    var params = {
        "data_format" : 'json',
        "year": $("#step2_year").val(),
        "month": $("#step2_month").val(),
        "brand_name": $("#step2_brand_name").val(),
        "model_name": $("#step2_model_name").val(),
        "energy_name": $("#step2_energy_name").val(),
        "bodywork_name": $("#step2_bodywork_name").val(),
        "door_name": $("#step2_door_name").val(),
        "motorization_name": $("#step2_motorization_name").val()
    };
    var submitUrl = BASE_URL + "eurotax/getGearBoxList";

    if($("#step2_motorization_name").val() != "NULL"){
        if (isShowingBlock == false) {
            showBlockUILoading("#eurotax_valuation_form" );
            isShowingBlock = true; 
        }
        $.ajax({
            url: submitUrl,
            global: true,
            type: "GET",
            data: params,
            dataType: "json",
            success: function(jsonData){
                step2MotorizationChangeCallBack(jsonData);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
            }
        });
    } else {
    	$('#step2_gearbox_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_gearbox_name');
        $('#step2_gearbox_name').change();
    }
}
function step2MotorizationChangeCallBack(jsonData)
{    
    var hideBlock = true;
    if(jsonData.info.status == operationStatus.Error) {
        showTips(jsonData.info.error_info);
    } else {
        $('#step2_gearbox_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_gearbox_name');
        for (i=0;i<jsonData['items']['gearboxs'].length;i++) {
            $('<option value="' + jsonData['items']['gearboxs'][i].key +'">' + jsonData['items']['gearboxs'][i].value +'</option>').appendTo('#step2_gearbox_name');
        }
        
        if (jsonData['items']['gearboxs'].length == 1) {
            $('#step2_gearbox_name').val(jsonData['items']['gearboxs'][0].key);
            hideBlock = false;
        }
        $('#step2_gearbox_name').change();
        
    }
    if (isShowingBlock == true && hideBlock == true) {
        hideBlockUI("#eurotax_valuation_form");
        isShowingBlock = false;
    }
}

//**************************************** gearbox ************************************************************//
function step2GearBoxChange(e)
{
    var params = {
        "data_format" : 'json',
        "year": $("#step2_year").val(),
        "month": $("#step2_month").val(),
        "brand_name": $("#step2_brand_name").val(),
        "model_name": $("#step2_model_name").val(),
        "energy_name": $("#step2_energy_name").val(),
        "bodywork_name": $("#step2_bodywork_name").val(),
        "door_name": $("#step2_door_name").val(),
        "motorization_name": $("#step2_motorization_name").val(),
        "gearbox_name": $("#step2_gearbox_name").val()
    };
    var submitUrl = BASE_URL + "eurotax/getFinishList";
    
    if($("#step2_gearbox_name").val() != "NULL"){
        if (isShowingBlock == false) {
            showBlockUILoading("#eurotax_valuation_form" );
            isShowingBlock = true; 
        }
        $.ajax({
            url: submitUrl,
            global: true,
            type: "GET",
            data: params,
            dataType: "json",
            success: function(jsonData){
                step2GearBoxChangeCallBack(jsonData);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
            }
        });
    } else {
    	$('#step2_finish_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_finish_name');
        $('#step2_finish_name').change();
    }
}
function step2GearBoxChangeCallBack(jsonData)
{    
    if(jsonData.info.status == operationStatus.Error) {
        showTips(jsonData.info.error_info);
    } else {
        $('#step2_finish_name').empty();     
        $('<option value="NULL">S&eacute;lectionner</option>').appendTo('#step2_finish_name');
        for (i=0;i<jsonData['items']['finishs'].length;i++) {
            $('<option value="' + jsonData['items']['finishs'][i].key +'">' + jsonData['items']['finishs'][i].value +'</option>').appendTo('#step2_finish_name');
        }
        
        if (jsonData['items']['finishs'].length == 1) {
            $('#step2_finish_name').val(jsonData['items']['finishs'][0].key);
        }
        $('#step2_finish_name').change();
    }
    if (isShowingBlock == true) {
        hideBlockUI("#eurotax_valuation_form");
        isShowingBlock = false;
    }
}
