
var $j = jQuery.noConflict();

function customCleanFormat(ed) {
    var button = $j("#"+ed.controlManager.get('removeformat').id);
    if (button.length) {
        var span = button.find('span');
        button.append(button.attr('title'));
        button.css('line-height', '20px').css('width', '150px');
        span.css('float', 'left').css('margin-right', '5px');
        ed.hasCustomCleanFormat=true;
    }
}

function inplaceeditform_ready(form_prefix, field_name, obj_id, content_type_id, form, filters){

    $j('#view_'+form_prefix+'-'+field_name+'').unbind('.inplaceeditform');
    $j('#tools_'+form_prefix+'-'+field_name+'_cancel_id').unbind('.inplaceeditform');
    $j('#tools_'+form_prefix+'-'+field_name+'_apply_id').unbind('.inplaceeditform');


    $j('#view_'+form_prefix+'-'+field_name+'').bind('dblclick.inplaceeditform', function (){
        $j('span#view_'+form_prefix+'-'+field_name+'_save').fadeOut();
        document.getElementById('view_'+form_prefix+'-'+field_name+'').style.display = 'none';
        document.getElementById('tools_'+form_prefix+'-'+field_name+'').style.display = 'block';
        var tools_error = document.getElementById('tools_'+form_prefix+'-'+field_name+'_error');
        var child_nodes = tools_error.childNodes;
        for (i=0; i<child_nodes.length; i++)
        {
            tools_error.removeChild(child_nodes[i]);
        }
        if (typeof(tinyMCE) != 'undefined') {
            var editor = tinyMCE.get('id_'+form_prefix+'-'+field_name+'');
            if (typeof(editor)!='undefined' && typeof(editor.hasCustomCleanFormat)=='undefined') {
                customCleanFormat(editor);
                editor.onPostRender.dispatch(editor);
           }
        }
    });

    $j('#tools_'+form_prefix+'-'+field_name+'_cancel_id').bind('click.inplaceeditform', function (){
        if (typeof(tinyMCE) != 'undefined') {
            var editor = tinyMCE.get('id_'+form_prefix+'-'+field_name+'');
            if (typeof(editor)!='undefined') {
                var cancelmsg = $j(this).parent().find('.cancel_message').text();
                if (!confirm(cancelmsg)) {
                    return false;
                }
                editor.setContent($j('#view_'+form_prefix+'-'+field_name+'_id').html(), {format : 'html'});
           }
        }
        $j('span#view_'+form_prefix+'-'+field_name+'_save').fadeOut();
        document.getElementById('tools_'+form_prefix+'-'+field_name+'').style.display = 'none';
        document.getElementById('view_'+form_prefix+'-'+field_name+'').style.display = 'block';
    });

    $j('#tools_'+form_prefix+'-'+field_name+'_apply_id').bind('click.inplaceeditform', function (){

        if (typeof(tinyMCE) != 'undefined') {
            var editor = tinyMCE.get('id_'+form_prefix+'-'+field_name+'');
            if (typeof(editor)!='undefined') {
                editor.save();
            }
        }

        var value_input = $j('#id_'+form_prefix+'-'+field_name+'');

        var value_input = $j('#id_'+form_prefix+'-'+field_name+'')[0];
        var value;

        if (value_input.multiple)
        {
            var options_selected = $j('#id_'+form_prefix+'-'+field_name+' option:selected');
            value = [];
            for( i =0; i< options_selected.length; i++)
            {
                value[i] = options_selected[i].value;
            }
        }
        else{
            value = value_input.value;
        }
        var form_query = '';
        if (form)
        {
            form_query = '&form='+form;
        }
//         filters[filters.length]='|safe';
        x = filters;
        var lang = $j(document).find('html').attr('xml:lang');
        var data = 'id='+obj_id+'&field='+field_name+'&value='+escape($j.toJSON(value))+'&content_type_id='+content_type_id+form_query+'&'+'includelanguageinformstoken='+lang+'&filters='+$j.toJSON(filters);
        $j.ajax({
        data: data,
        url: "/inplaceeditform/",
        type: "POST",
        async:true,
        success: function(response){

            response = eval("("+ response +")");
            if (response.errors)
            {
                var tools_error = $j('#tools_'+form_prefix+'-'+field_name+'_error')[0];
                var child_nodes = tools_error.childNodes;
                for (i=0; i<child_nodes.length; i++)
                {
                    tools_error.removeChild(child_nodes[i]);
                }
                var ul = document.createElement('ul');
                ul.className = "errors";
                $j('#tools_'+form_prefix+'-'+field_name+'_error')[0].appendChild(ul);
                for (var error in response)
                {
                    if (error != 'errors')
                    {
                        var li = document.createElement('li');
                        if ("'+field_name+'" == error)
                            li.innerHTML = response[error];
                        else
                            li.innerHTML = error+ ": " +response[error];
                        ul.appendChild(li);
                    }
                }
            }
            else
            {
                $j('#tools_'+form_prefix+'-'+field_name+'')[0].style.display = 'none';
                $j('#view_'+form_prefix+'-'+field_name+'')[0].style.display = 'block';
                if (response.translation) {
                    $j('#view_'+form_prefix+'-'+field_name+'_id')[0].innerHTML = response.translation;
                    $j('div#translation_'+form_prefix+'-'+field_name+'_save').fadeIn();
                    window.setTimeout("$j('div#translation_"+form_prefix+"-"+field_name+"_save').fadeOut()", 2000);
                } else {
                    $j('#view_'+form_prefix+'-'+field_name+'_id')[0].innerHTML = response.value;
                    $j('div#view_'+form_prefix+'-'+field_name+'_save').fadeIn();
                    window.setTimeout("$j('div#view_"+form_prefix+"-"+field_name+"_save').fadeOut()", 2000);
                }
            }
        }
    });
  });
}
