/*
 * scaffolding script for thickbox based forms
 */

scaffold_form = function(contact_form, message_dialog, form_url){
    beforeForm = function(){ 
        contact_form.find(':submit').attr("disabled",true);
        contact_form.find('.errorlist').remove();
        contact_form.find('span.warning').remove();
        contact_form.find(':submit').append($('#ajax_loading').clone());
        return true;
    };
    makeErrHTML = function(errmsg){
        return '<span class="warning">'+errmsg+'</span>';
    };
    processJson = function(data){
        if (data) {
            if (!data['succesfull']) {
                $.each(data['errors'], function(fieldname,errmsg){
                    if (fieldname=="captcha")
                    {
                        id = "#id_captcha_0";
                        $.get('/captcha/gen_image/', function(data)
                        {
                            contact_form.find("#id_captcha_0").attr('value', data);
                            contact_form.find("img.captcha").attr('src','/captcha/image/'+data+'/')

                        });
                    } else
{
                        id = "#id_" + fieldname;
                    };
                    contact_form.find(id).parent().append( makeErrHTML(errmsg) );
                    
                });
                contact_form.find(':submit').attr("disabled",false);
            }else{
                message_dialog.find('.successRow').show();
                contact_form.hide();
                contact_form.resetForm();
                contact_form.find(':submit').attr("disabled", false);
            }
        } else {
            message_dialog.find('.errorRow').show();
        }
        contact_form.find(':submit')
        .children().remove();

    };
    var options = {
        url : form_url,
        dataType:  'json', 
        success:   processJson, 
        beforeSubmit: beforeForm
    };
    contact_form.ajaxForm(options);
    dismiss_modal_view = function(){
        tb_remove();
        message_dialog.find('.errorRow').hide();
        message_dialog.find('.successRow').hide();
        contact_form.show();
    }
    message_dialog.find(".close").click(function(event){
        event.preventDefault();
        dismiss_modal_view();
    })
    $('#TB_closeWindowButton').unbind().click(function(){
        tb_remove();
        message_dialog.find('.errorRow').hide();
        message_dialog.find('.successRow').hide();
        contact_form.show();
    });
}



$(document).ready(function() {
    $('div[id*=Container], div#SuggestPrice').each(function(k,v) {
        $(v).bind("dialogopen", function(event, ui) {
            var _form = $(v).find('form');
            if (_form.find("#id_captcha_0").width() == 0) {
                $.get('/captcha/gen_image/', function(data) {
                    _form.find("#id_captcha_0").attr('value', data);
                    _form.find("img.captcha").attr('src','/captcha/image/'+data+'/');
                });
            }
        });
    });
});


