
var car_numbers_groups = {
    "regular":    ["a", "b", "e", "c", "f", "g", "h"],
    "individual": ["a", "b", "e", "c", "f", "g"],
    "trailer":    ["a", "b", "e"],
    "cab":        ["a", "e"],
    "bikes":      ["c", "f"],
    "mopeds":     ["f", "g"],
    "offroad":    ["h"]
};

var car_numbers_max_characters = {
    "individual": {
        "a":   8,
        "b":   7,
        "c":   8,
        "e":   4,
        "f":   5,
        "g":   4,
        "h":   5
    },        
    "trailer": {
        "a":   5,
        "b":   5,
        "e":   3
    },
    "other": {
        "a":   6,
        "b":   6,
        "c":   6,
        "e":   4,
        "f":   5,
        "g":   4,
        "h":   5        
    }
};

var car_numbers_max_characters_top = {
    "b":    3,
    "c":    4,
    "f":    2,
    "g":    1,
    "g":    2
};

function car_numbers_get_max_characters(group, type){
    var max_characters = 0;
    if(group=="individual"){
        max_characters = car_numbers_max_characters["individual"][type];
    }
    else if(group=="trailer"){
        max_characters = car_numbers_max_characters["trailer"][type];
    }
    else {
        max_characters = car_numbers_max_characters["other"][type];    
    }    
    return max_characters;
}

function car_numbers_update_group(car_numbers_group){
    var group = String($("select[name=number_group]").val()).toLowerCase();
    var html = "";
    if(car_numbers_groups[group]){
        var group_types = car_numbers_groups[group];
        for(var i=0; i<group_types.length; i++){
            var type = group_types[i];
            html += "<option value=\""+type+"\"";
            if(type==car_numbers_type) html += " selected";
            html += ">"+type.toUpperCase()+"-Tips</option>"
        }
    }
    $("select[name=number_type]").html(html);    
    $.get(car_dialog_options.url+"/show", car_dialog_prepare_values());

    car_numbers_update_type();
}

function car_numbers_prepare_options(values, selected_value){
    var html = "";            
    html += "<option value=\"_\"";
    if(selected_value=="_") html += " selected";
    html += "></option>";
            
    for(var i=0; i<values.length; i++){
        html += "<option value=\""+values[i]+"\"";
        if(values[i]==selected_value) html += " selected";
        html += ">"+values[i].toUpperCase()+"</option>";
    }
    
    return html;
}

function car_numbers_update_type(){
    car_numbers_type = $("select[name=number_type]").val();
    if(!car_numbers_type) return;    

    var group = $("select[name=number_group]").val();
    var max_characters = car_numbers_get_max_characters(group, car_numbers_type);
    if(!max_characters) return;

    var characters = $(".car_number_character");
    for(var i=0; i<characters.length; i++){
        if(i<max_characters){
            $(characters[i]).css("display", "");
        }
        else {
            $(characters[i]).css("display", "none");
        }
    }
    
    var letters_a = [
        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
        'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'v', 'z'
    ];
    var letters = [
        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
        'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
    ];
    var digits = [];
    for(var i=0; i<10; i++) digits.push(String(i));
    var digits_nonzero = [];
    for(var i=1; i<10; i++) digits_nonzero.push(String(i));    
    var dash = ['-'];

    if(group=="individual"){
        for(i=0; i<max_characters; i++){        
            var selected_value = $(characters[i]).val();
            var html = car_numbers_prepare_options(dash.concat(letters, digits), selected_value);
            $(characters[i]).html(html);
        }
    }
    else if(group=="cab"){
        for(var i=0; i<2; i++){
            var selected_value = $(characters[i]).val();
            var html = car_numbers_prepare_options(letters, selected_value);        
            $(characters[i]).html(html);
        }
        var selected_value = $(characters[2]).val();
        var html = car_numbers_prepare_options(digits_nonzero, selected_value);
        $(characters[2]).html(html);        
        for(i=3; i<max_characters; i++){
            var selected_value = $(characters[i]).val();
            var html = car_numbers_prepare_options(digits, selected_value);        
            $(characters[i]).html(html);            
        }    
    }    
    else if(group=="trailer" || car_numbers_type=='g'){
        if(car_numbers_type=="e"){
            var mixed_count = 1;
        }
        else {
            var mixed_count = 2;
        }
        
        var selected_value = $(characters[0]).val();
        var html = car_numbers_prepare_options(letters_a, selected_value);
        $(characters[0]).html(html);
        
        var selected_value = $(characters[1]).val();
        var html = car_numbers_prepare_options(digits_nonzero, selected_value);
        $(characters[1]).html(html);
        
        for(var i=2; i<max_characters-mixed_count; i++){
            var selected_value = $(characters[i]).val();
            var html = car_numbers_prepare_options(digits, selected_value);
            $(characters[i]).html(html);            
        }
        
        for(var i=max_characters-mixed_count; i<max_characters; i++){        
            var selected_value = $(characters[i]).val();
            var html = car_numbers_prepare_options(letters_a.concat(digits), selected_value);
            $(characters[i]).html(html);
        }
    }
    else {   
        for(var i=0; i<2; i++){        
            var selected_value = $(characters[i]).val();
            var html = car_numbers_prepare_options(letters_a, selected_value);
            $(characters[i]).html(html);
        }
        var selected_value = $(characters[2]).val();
        var html = car_numbers_prepare_options(digits_nonzero, selected_value);
        $(characters[2]).html(html);
        for(i=3; i<max_characters; i++){
            var selected_value = $(characters[i]).val();
            var html = car_numbers_prepare_options(digits, selected_value);
            $(characters[i]).html(html);            
        }    
    }
    
    if(group=="individual" && (car_numbers_type=="a"||car_numbers_type=="b")){
        $("#car_numbers_narrow").css("display", "inline");
    }
    else {
        $("#car_numbers_narrow").css("display", "none");
    }
    
    if(group=="offroad"){
        $("#car_numbers_old").css("display", "none");
    }
    else {
        $("#car_numbers_old").css("display", "block");    
    }
    
    if(car_numbers_max_characters_top[car_numbers_type] && group=="individual"){
        var max_characters_top = car_numbers_max_characters_top[car_numbers_type];
        var html = "<option value=\"\"></option>";
        for(var i=1; i<=max_characters_top; i++){
            var option_html = "<option value=\""+i+"\"";
            if(i==car_numbers_break) option_html += " selected";
            option_html += ">";
            option_html += i;
            option_html += "</option>";
            html += option_html;        
        }
        $("select[name=number_break]").html(html);
        car_numbers_break = $("select[name=number_break]").val();        
        $("#car_numbers_break").css("display", "inline");
    }
    else {
        $("#car_numbers_break").css("display", "none");        
    }

    car_numbers_characters_update();
}

function car_numbers_get_characters(){
    var car_number_type = $("select[name=number_type]").val();
    if(!car_number_type) return;    

    var group = $("select[name=number_group]").val();
    var max_characters = car_numbers_get_max_characters(group, car_numbers_type);
    if(!max_characters) return;

    var character_inputs = $(".car_number_character");

    var characters = [];
    for(var i=0; i<character_inputs.length&&i<max_characters; i++){
        characters.push(character_inputs[i].value);
    }    
    
    return characters;
}

function car_numbers_characters_update(){    
    var characters = car_numbers_get_characters();
    var number = characters.join("")
    $("input[name=number]").val(number);
    
    car_numbers_break = $("select[name=number_break]").val();
    
    var type = $("select[name=number_type]").val();
    var group = $("select[name=number_group]").val();

    if(type=="a" && group!="individual" && group!="trailer"){
        $("#car_number_separator").css("display", "inline");
    }    
    else {
        $("#car_number_separator").css("display", "none");    
    }
    
    if(type=="a" && group=="trailer"){
        $("#car_number_separator_trailer").css("display", "inline");    
    }
    else {
        $("#car_number_separator_trailer").css("display", "none");        
    }
    
    if(car_numbers_update_message){
        car_numbers_update_message();    
    }
    
    if(number){    
        var image_src = car_numbers_get_image_src("l");
        if($("#car_number_display img").length){
            $("#car_number_display img").attr("src", image_src);
        }
        else {
            var html = "<img src=\""+image_src+"\"/>";    
            $("#car_number_display").html(html);    
        }
        $(".search-car-ico").css("visibility", "visible");
    }
    else {
        $("#car_number_display").html("");
        $(".search-car-ico").css("visibility", "hidden");        
    }    
}

function car_numbers_get_image_src(size){
    var number = "";
    var characters = car_numbers_get_characters();

    var group = $("select[name=number_group]").val();
    var max_characters = car_numbers_get_max_characters(group, car_numbers_type);    
    for(var i=0; i<max_characters; i++){
        var c = $.trim(characters[i]);
        if(c=="") continue;
        number += c;
    }

    var src = car_numbers_image_url+"/"+size;
    if($("input[name=number_old]:checked").val()){
        src += "o";
    }
    if(group=="cab"){
        src += "t";
    }
    src += "-"
    src += car_numbers_type.toLowerCase();
    if(group=="individual") src += "i";
    if(group=="trailer") src += "t";    
    if(group=="individual" && (car_numbers_type=="a"||car_numbers_type=="b") && $("input[name=number_narrow]:checked").val()){
       src += "n";
    }
    if(car_numbers_break){
        src += car_numbers_break;
    }        
    src += "-"+number+".gif";
    return src;    
}


var car_numbers_update_message = null;

function car_numbers_update_message_list(){
    var number = $("input[name=number]").val();
    if(String(number).match(/^[_]+$/)){
        $("#number_message").html("");
        $(".search-info").addClass("search-info-empty");    
        return;
    }

    var exact = 0;
    if($("#number_exact").attr("checked")) exact = 1;

    $.getJSON(
        car_numbers_results_count_url,
        {"number": number,
         "exact":  exact},
        function(results_count){
            var html = "";
            if(results_count==0){
                html = "Atbilstoši numuri nav atrasti.";
            }
            else if(results_count==1){
                html = "Šādiem kritērijiem atbilst 1 auto numurs.";
            }
            else {
                html = "Šādiem kritērijiem atbilst "+results_count+" auto numuri.";
            }
            if(results_count!=0){
                html += " <a href=\"javascript:document.search_form.submit();\">Rādīt</a>";
            }
            $("#number_message").html(html);
            $(".search-info").removeClass("search-info-empty");
        }
    );               
}

var car_numbers_duplicates = 0;
function car_numbers_update_message_add(){
    var number = $("input[name=number]").val();
    var number_type = $("select[name=number_type]").val();
    var number_group = $("select[name=number_group]").val();    
    
    if(String(number).match(/^[_]+$/)){
        $("#number_message").html("");
        $(".search-info").addClass("search-info-empty");    
        return;
    }

    var offer_type = $("#offer_type").val();   
    if(!offer_type) offer_type = $("input[name=offer_type]:checked").val();
    if(!offer_type) return;
        
    var record_id = $("input[name=record_id]").val();

    $.getJSON(
        car_numbers_results_count_url,
        {"number": number,
         "number_type": number_type,
         "number_group": number_group,
         "offer_type": offer_type,
         "record_id": record_id},
        function(response){
            if(response["found"]){
                car_numbers_duplicates = 1;
            }
            else {
                car_numbers_duplicates = 0;
            }
            var html = "";
            if(!response["found"]){
                $("#number_message").html("");
                $("#number_message").removeClass("error");
                $(".search-info").addClass("search-info-empty");
            }
            else {
                html = "Šāds numurs irplate+src jau pievienots datu bāzē.";
                if(response["url"]){
                    html += " <a href=\""+response["url"]+"\">Skatīt šeit</a>";
                } 
                $("#number_message").html(html);
                $("#number_message").addClass("error");                
                $(".search-info").removeClass("search-info-empty");
            }
        }
    );               
}


var car_numbers_image_url = "";
var car_numbers_dialog_show_url = "";

function car_numbers_show_dialog(){
    var number = "";
    var characters = car_numbers_get_characters();

    var group = $("select[name=number_group]").val();
    var max_characters = car_numbers_get_max_characters(group, car_numbers_type);    
    for(var i=0; i<max_characters; i++){
        var c = $.trim(characters[i]);
        if(c=="") continue;
        number += c;
    }
    var old = $("input[name=number_old]:checked").val();
    var narrow = $("input[name=number_narrow]:checked").val()    

    car_dialog_show(car_numbers_get_image_src("s"), $("select[name=number_group]").val(), car_numbers_type, old, narrow, car_numbers_break, number);
    
    if(car_numbers_dialog_show_url){
        var values = car_dialog_prepare_values();
        if($("#number_exact").attr("checked")) values["exact"] = 1;
        $.get(car_numbers_dialog_show_url, values);
    }
    
    return false;
}

function car_numbers_reset(){
    $("#car_number_characters select.car_number_character").each(function(){
        $(this).val($(this).find("option:first").val());
    });
    car_numbers_update_group();
}

var car_numbers_type = null;
var car_numbers_break = null;

function car_numbers_init(image_url, number, number_type, number_group, number_old, number_narrow, number_break){
    car_numbers_image_url = image_url;
    car_numbers_type = number_type;
    car_numbers_break = number_break;
        
    $(document).ready(function(){
        $("select[name=number_type]").val(String(number_type).toUpperCase());
        var characters = String(number).toLowerCase().split("");   
        var character_inputs = $(".car_number_character");
        for(var i=0; i<characters.length; i++){
            character_inputs.eq(i).val(characters[i]);
        }
        $("select[name=number_group]").change(car_numbers_update_group);
        $("input[name=number_old]").click(car_numbers_update_group);
        $("input[name=number_narrow]").click(car_numbers_update_group);        
        $("select[name=number_type]").change(car_numbers_update_type);
        $("select[name=number_break]").change(car_numbers_characters_update);
        $("select[name=number_series]").change(car_numbers_update_type);        
        $(".car_number_character").change(car_numbers_characters_update);        
        $("a.search-car-ico").click(car_numbers_show_dialog);
        $("#reset").click(function(){car_numbers_reset(); return false});
        
        if(number_group) $("select[name=number_group]").val(number_group);
        
        if(parseInt(number_old)) $("#number_old_1").attr("checked", "checked");
        if(parseInt(number_narrow)) $("#number_narrow_1").attr("checked", "checked");        
        
        $("#number_exact").click(car_numbers_characters_update);        
        
        car_numbers_update_group();
    });
}


var car_dialog_options = {
    number:        "",
    number_group:  "",
    number_type:   "",
    number_old:    "",
    number_narrow: "",
    number_break:  "",    

    side:          null,
    image:         null,
    page_url:      null,
    record_id:     null,

    url:           null,
    
    number_fields: ["number", "number_group", "number_type", 
                    "number_old", "number_narrow", "number_break"],
                    
    submit_fields: ["number", "number_group", "number_type", 
                    "number_old", "number_narrow", "number_break",
                    "side", "image", "page_url", "record_id"],
    
    images: {
        regular: {
            a: {
                front: ["audi", "bmw", "lexus", "mercedes", "vw"],
                back:  ["bmw", "lexus"],
                sides: ["front", "back"]
            },
            b: {
                front: ["audi", "bmw", "lexus", "mercedes", "vw"],
                back:  ["toyota"],
                sides: ["back", "front"]
            },
            e: {
                front: ["audi", "bmw", "lexus", "mercedes", "vw"],
                back:  ["lexus", "nitro"],
                sides: ["back", "front"]
            },
            c: {
                back:  ["bike-c"],
                sides: ["back"]
            },
            f: {
                back:  ["bike-f"],
                sides: ["back"]
            },
            g: {
                back:  ["moped-g"],
                sides: ["back"]
            },
            h: {
                back:  ["offroad"],
                sides: ["back"]
            }
        },
        individual: {
            a: {
                front: ["audi", "bmw", "lexus", "mercedes", "vw"],
                back:  ["bmw", "lexus"],
                sides: ["front", "back"]
            },
            b: {
                front: ["audi", "bmw", "lexus", "mercedes", "vw"],
                back:  ["toyota"],
                sides: ["back", "front"]
            },
            e: {
                front: ["audi", "bmw", "lexus", "mercedes", "vw"],
                back:  ["lexus", "nitro"],
                sides: ["back", "front"]
            },
            c: {
                back:  ["bike-c"],
                sides: ["back"]
            },
            f: {
                back:  ["bike-f"],
                sides: ["back"]
            },
            g: {
                back:  ["moped-g"],
                sides: ["back"]
            },
            h: {
                back:  ["offroad"],
                sides: ["back"]
            }
        },        
        trailer: {
            a: {
                back:  ["trailer"],
                sides: ["back"]
            },
            b: {
                back:  ["trailer"],
                sides: ["back"]
            },
            e: {
                back:  ["trailer"],
                sides: ["back"]
            }
        },        
        cab: {
            a: {
                front: ["audi", "bmw", "lexus", "mercedes", "vw"],
                back:  ["bmw", "lexus"],                
                sides: ["front", "back"]
            },
            e: {
                front: ["audi", "bmw", "lexus", "mercedes", "vw"],
                back:  ["lexus", "nitro"],
                sides: ["back", "front"]
            }
        },        
        bikes: {
            c: {
                back:  ["bike-c"],
                sides: ["back"]
            },
            f: {
                back:  ["bike-f"],
                sides: ["back"]
            }
        },        
        mopeds: {
            f: {
                back:  ["moped-f"],
                sides: ["back"]
            },
            g: {
                back:  ["moped-g"],
                sides: ["back"]
            }
        },        
        offroad: {
            h: {
                back:  ["offroad"],
                sides: ["back"]
            }
        }    
    }
};

function car_dialog_show(plate_url, group, type, old, narrow, number_break, number, record_id, page_url){
    car_dialog_options.number_group = group;
    car_dialog_options.number_type = type;
    car_dialog_options.number_narrow = parseInt(narrow);
    car_dialog_options.number_old = parseInt(old);
    car_dialog_options.number_break = parseInt(number_break);
    car_dialog_options.number = number;
    car_dialog_options.page_url = page_url;
    car_dialog_options.record_id = record_id;    
    
    car_dialog_init_images();

    $("#car_dialog .plate").html("<img src=\""+plate_url+"\"/>");
    
    $("#car_dialog .step").css("display", "none");
    $("#car_dialog .step1").css("display", "block");
    $("#car_dialog .step3 .bottom div").css("display", "block");
    
    $("#car_dialog").dialog("open");
}

function car_numbers_plate_url(base_url, options){
    var url = base_url+"/s";
    if(options.number_old) url += "o";
    if(options.number_group=="cab") url +="t";    
    url += "-"
    url += options.number_type;
    if(options.number_group=="individual"){
        url += "i";
    }
    else if(options.number_group=="trailer"){
        url += "t";    
    }
    else if(options.number_group=="individual" && (options.number_type=="a"||options.number_type=="b") && options.number_narrow){
       url += "n";
    }
    if(options.number_break){
        url += options.number_break;
    }        
    url += "-"+options.number+".gif";
    return url;
};

function car_dialog_set_image(image, side){
    var number_options = {};
    for(var i=0; i<car_dialog_options.number_fields.length; i++){
        var field = car_dialog_options.number_fields[i];
        number_options[field] = car_dialog_options[field];
    }
    if(side=="front") number_options.number_type = "a";    
    
    var plate_url = car_numbers_plate_url(car_dialog_options.plate_url, number_options);

    $("#car_dialog .plate img").attr("src", plate_url);
    car_dialog_options.image = image;
    var image_classname = image+"-"+side;
    $("#car_dialog .step1 .step-content,#car_dialog .step3 .step-content").attr("class", "step-content "+image_classname);
    $("#car_dialog .step1 .buttons a").each(function(){
        $(this).attr("class", String($(this).attr("id")).replace("car-dialog-button-", ""));
    });
    $("#car_dialog .step1 .buttons a."+image).attr("class", image+"-active");
}

function car_dialog_button_clicked(){
    var image = String($(this).attr("id")).replace("car-dialog-button-", "");
    if(image) car_dialog_set_image(image, car_dialog_options.side);
    return false;    
}

function car_dialog_switch_sides(){
    var options = car_dialog_options.images[car_dialog_options.number_group][car_dialog_options.number_type];

    var idx = jQuery.inArray(car_dialog_options.side, options.sides)+1;
    if(idx>options.sides.length-1) idx = 0;
    var other_side = options.sides[idx];
    car_dialog_options.side = other_side;

    if(jQuery.inArray(car_dialog_options.image, options[car_dialog_options.side])==-1){
        car_dialog_options.image = options[car_dialog_options.side][0];
    }
    
    car_dialog_set_image(car_dialog_options.image, car_dialog_options.side);
    car_dialog_init_buttons(car_dialog_options.number_group, car_dialog_options.number_type, car_dialog_options.side);

    return false;
}

function car_dialog_init_buttons(number_group, number_type, side){
    var images = car_dialog_options.images[number_group][number_type][side]; 
    if(images.length>1){
        var html = "";    
        for(var i=0; i<images.length; i++){
            html += "<div><a href=\"#\" id=\"car-dialog-button-"+images[i]+"\"";
            if(images[i] == car_dialog_options.image){
                html += " class=\""+images[i]+"-active\"";
            }
            else {
                html += " class=\""+images[i]+"\"";        
            }
            html += "></a></div>";
        }
        $("#car_dialog .step1 .buttons").html(html);
        $("#car_dialog .step1 .buttons a").click(car_dialog_button_clicked);
    }
    else {
        $("#car_dialog .step1 .buttons").html("");    
    }
}

function car_dialog_init_images(){    
    var selected_button = false;
    
    var options = car_dialog_options.images[car_dialog_options.number_group][car_dialog_options.number_type];
    car_dialog_options.side = options.sides[0];
    car_dialog_options.image = options[car_dialog_options.side][0];
    
    car_dialog_set_image(car_dialog_options.image, car_dialog_options.side);    
    car_dialog_init_buttons(car_dialog_options.number_group, car_dialog_options.number_type, car_dialog_options.side);
    
    if(options.sides.length>1){
        $("#car_dialog .step1 .switch-sides a").css("display", "block");
    }
    else {
        $("#car_dialog .step1 .switch-sides a").css("display", "none");    
    }
    $("#car_dialog .step1 .switch-sides a").click(car_dialog_switch_sides);
}

function car_dialog_highlight_errors(validation_response){
    $("#car_dialog .step2 input,#car_dialog .step2 texarea").each(function(){
        if(validation_response["error_"+$(this).attr("name")]){
            $(this).parents(".form-field").addClass("form-field-error");
        }
        else {
            $(this).parents(".form-field").removeClass("form-field-error");        
        }        
    });
}

function car_dialog_prepare_values(){
    var values = {};
    $("#car_dialog .step2 input,#car_dialog .step2 textarea").each(function(){
        values[$(this).attr("name")] = $(this).val();    
    });
    for(i=0; i<car_dialog_options.submit_fields.length; i++){
        var field = car_dialog_options.submit_fields[i];
        var value = car_dialog_options[field];
        if(!value) value = "";
        values[field] = value;
    }
    return values;
}

function car_dialog_validate_and_call(success_callback){
    $.getJSON(
        car_dialog_options.url+"/validate", 
        car_dialog_prepare_values(),
        function(response){            
            if(response["errors"]){
                car_dialog_highlight_errors(response);
            }
            else {
                success_callback();
            }
            $("#car_dialog .step3 .preview").html(response["message"]);
        }
    );    
}

function car_dialog_switch_step1(){
    $("#car_dialog .step").css("display", "none");
    $("#car_dialog .step1").css("display", "block");
    return false;
}


function car_dialog_switch_step2(){
    $("#car_dialog .step").css("display", "none");
    $("#car_dialog .step2").css("display", "block");
    $("#car_dialog .step2 input:first").focus();
    return false;
}

function car_dialog_switch_step3(){
    car_dialog_validate_and_call(function(){
        $("#car_dialog .step").css("display", "none");
        $("#car_dialog .step3").css("display", "block");
    });
    return false;
}

function car_dialog_submit(){
    $("#car_dialog .step3 .bottom div").css("display", "none");
    $.getJSON(
        car_dialog_options.url, 
        car_dialog_prepare_values(),
        function(response){
            if(response["errors"]){
                car_dialog_highlight_errors(response);
                car_dialog_switch_step2();
            }
            else {
                $("#car_dialog .step3 .preview").html(response.message);
            }
        }
    );
    return false;
}

function car_dialog_init(url, plate_url){
    car_dialog_options.url = url;
    car_dialog_options.plate_url = plate_url;    
    $(document).ready(function(){
        $("#car_dialog").dialog({
            autoOpen: false,
            modal:  true,
            dialogClass: "car-dialog",
            resizable: false,
            width: 664,
            bgiframe: true            
        });
        $("#car-dialog-button-step1").click(car_dialog_switch_step1);        
        $("#car-dialog-button-step2, #car-dialog-button-step2-return").click(car_dialog_switch_step2);
        $("#car-dialog-button-step3").click(car_dialog_switch_step3);
        $("#car-dialog-button-submit").click(car_dialog_submit);        
        $("#car_dialog .step2 input,#car_dialog .step2 textarea").keyup(function(){
            $(this).parents(".form-field").removeClass("form-field-error");
        });
    });   
}


