//$.noConflict();

jQuery(function() {
    jQuery("#word_category_select").live('change', function() {
        refreshStoryPage();
    });

    jQuery('#gen_category_submit').live('click', function() {
        var selected_category_id = jQuery("#word_category_select option:selected").val()
        var selected_category = jQuery("#word_category_select option:selected").text()
        var gen_category = jQuery('#gen_category_new_content').val();
        var gen_tag = jQuery('#gen_tag_select').val();

        if (selected_category == "--") {  
            jQuery.ajax({
                type: 'post',
                url: "/gen_categories/",
                dataType: 'script',
                data: {
                    'gen_category[title]': gen_category,
                    'gen_category[tags]': gen_tag,
                    authenticity_token: AUTH_TOKEN
                },
                success: function() {
                    jQuery('#select_block').load('/gen_categories/select_block', 
                    {
                        'gen_category' : gen_category,
                        authenticity_token: AUTH_TOKEN
                    },
                    function() {
                        refreshStoryPage();
                    });
                }
            });
        } else {
            jQuery.ajax({
                type: 'put',
                url: "/gen_categories/" + selected_category_id ,
                dataType: 'script',
                data: {
                    'gen_category[title]': gen_category,
                    'gen_category[tags]': gen_tag,
                    authenticity_token: AUTH_TOKEN
                },
                success: function() {
                    jQuery('#select_block').load('/gen_categories/select_block', 
                    {
                        'gen_category' : gen_category,
                        authenticity_token: AUTH_TOKEN
                    },
                    function() {
                        refreshStoryPage();
                    });
                }
            });
        }

    });

    // Delete category
    jQuery('img[name=gen_category_delete]').live('click', function() {
        var object_id = this.id.replace('gen_category_delete-', "");
        var delete_response = confirm("Do you want to delete category #" + object_id);
        if (delete_response) {
            jQuery.ajax({
                type: 'post',
                url: "/gen_categories/" + object_id,
                dataType: 'script',
                data: {
                    '_method': 'delete',
                    authenticity_token: AUTH_TOKEN
                },
                success: function() {
                    jQuery('#select_block').load('/gen_categories/select_block', {
                        'gen_category' : "",
                        authenticity_token: AUTH_TOKEN
                    });
                    jQuery('#list_block').html("");
                }
            });
        }
    });

    initGroup();

});


function initGroup() {
    jQuery('img[name=storygen_word_delete]').click(function() {
        var object_id = this.id.replace('storygen_word_delete-', "");
        var delete_response = confirm("Do you want to delete word #" + object_id);
        if (delete_response) {
            jQuery.ajax({
                type: 'post',
                url: "/storygen_words/" + object_id,
                dataType: 'script',
                data: {
                    '_method': 'delete',
                    authenticity_token: AUTH_TOKEN
                },
                success: function() {
                    jQuery('#list_block').load('/storygen_words/block?category=' + jQuery("#word_category_select option:selected").text(), function() {
                        initGroup();
                    });
                }
            });
        }
    });



    jQuery('img[name=storygen_word_new]').click(function() {
        var selected_category_id = jQuery("#word_category_select option:selected").val()
        var storygen_word = jQuery('#storygen_word_new_content').val();
        var storygen_category = jQuery("#word_category_select option:selected").text();
        jQuery.ajax({
            type: 'post',
            url: "/storygen_words/",
            dataType: 'script',
            data: {
                'storygen_word[word]': storygen_word,
                'storygen_word[category]': storygen_category,
                'storygen_word[gen_category_id]': selected_category_id,
                authenticity_token: AUTH_TOKEN
            },
            success: function() {
                jQuery('#list_block').load('/storygen_words/block?category=' + storygen_category, function() {
                    initGroup();
                });
            }
        });

    });

    //jQuery('#story_preview').button();
    
    jQuery('#story_preview').live('click', function() {
        jQuery('#preview_block').load('/storygen_words/preview',
        {
            'part_1' : jQuery("#word_category_select-1 option:selected").text(),
            'part_2' : jQuery("#word_category_select-2 option:selected").text(),
            'part_3' : jQuery("#word_category_select-3 option:selected").text(),
            'part_4' : jQuery("#word_category_select-4 option:selected").text(),
            'part_5' : jQuery("#word_category_select-5 option:selected").text(),
            authenticity_token: AUTH_TOKEN
        });
    });



    initDblclickField('[name=storygen_word_cell]');

}

function initDblclickField(object_selector) {  
    jQuery(object_selector).dblclick(function() {
        var original_object = this.id;
        var original_content = jQuery(this).html();
        var object_id = this.id.replace('storygen_word_cell-', "");
        var object_content = jQuery(this).text();
        var object_name = 'storygen_word_cell_content-' + object_id
        jQuery(this).html("<input id='"+object_name+"' name='"+object_name+"' size='100' type='text' value='"+object_content+"' /> \n\
		<img src='/images/icons/accept.png' id='storygen_word_update-" +object_id+ "' name='storygen_word_update' />\n\
                <img src='/images/icons/cancel.png' id='storygen_word_cancel-" +object_id+ "' name='storygen_word_cancel' />");
        //alert(object_content);

        jQuery("#" + original_object).unbind('dblclick');

        jQuery("#" + original_object).click(function(e){
            e.stopPropagation();
        });

        jQuery("#storygen_word_cancel-" +object_id).click(function() {
            jQuery("#" + original_object).html(original_content);
            //jQuery("body").unbind('click');
            initDblclickField("#" + original_object);
        });

        jQuery("#storygen_word_update-" +object_id).click(function() {
            //alert(jQuery('#' + object_name).val());
            jQuery.ajax({
                type: 'put',
                url: "/storygen_words/" + object_id,
                dataType: 'script',
                data: {
                    'storygen_word[word]': jQuery('#' + object_name).val(),
                    authenticity_token: AUTH_TOKEN
                },
                success: function() {
                    jQuery('#list_block').load('/storygen_words/block?category=' + jQuery("#word_category_select option:selected").text(), function() {
                        initGroup();
                        jQuery("body").unbind('click');
                    });
                }
            });
        });

    });

}

function refreshStoryPage() {
    var selected_category_id = jQuery("#word_category_select option:selected").val()
    var selected_category = jQuery("#word_category_select option:selected").text()

    if (selected_category == "--") {
        jQuery('#gen_category_delete_container').html("");
        jQuery('#gen_category_header').html('New List');
        jQuery('#gen_category_new_content').val("");
        jQuery('#list_block').html("");
    } else {
        jQuery('#gen_category_delete_container').html(
            "<img src='/images/icons/delete.png' id='gen_category_delete-" + selected_category_id + "' name='gen_category_delete' />"
            );
        jQuery('#gen_category_header').html('Edit List');
        jQuery('#gen_category_new_content').val(selected_category);
        jQuery('#list_block').load('/storygen_words/block?category=' + jQuery("#word_category_select option:selected").text(), function() {
            jQuery('#gen_tag_select').val(jQuery('#gen_category_tag').text());
            initGroup();
        });
    }
}



