var apiUrl = '/api/';

jQuery.fn.addItems = function(data) {
    return this.each(function() {
        var list = jQuery(this);
        list.empty();
        jQuery.each(data, function(index, itemData) {
            jQuery('<option>').attr('value', itemData.value).html(itemData.text).appendTo(list);
        });
        list.change();
    });
};

jQuery(document).ready(function($){
    jQuery('#msgform').oneTime(10, function() {
      jQuery('#msgform > div.entry').load('/de/messages/new', function() {
        // AJAX Form Handling
        var options = { 
            target:        '#msgform > div.entry'
        }; 

        // bind to the form's submit event 
        jQuery('#msgsubmit').submit(function() { 
            jQuery(this).ajaxSubmit(options); 
            return false; 
        });
        
        // onChange handling the book selection
        jQuery('#verse_book').change(function(e){
            if(jQuery(this).val() > 0) {
                jQuery.getJSON(
                    apiUrl + 'chapters.json',
                    { book: jQuery(this).val() },
                    function(data) {
                        jQuery("#verse_chapter").addItems(data);
                    }
                );
                jQuery('#verse_chapter').show();
            } else {
                jQuery('#verse_chapter').empty().hide();
                jQuery('#verse_verse').empty().hide();
            }
        });
        // onChange handling for chapter selection
        jQuery('#verse_chapter').change(function(e){
            if(jQuery(this).val() > 0) {
                jQuery.getJSON(
                    apiUrl + 'verses.json',
                    {
                        book:		jQuery('#verse_book').val(),
                        chapter:	jQuery(this).val()
                    },
                    function(data) {
                        jQuery("#verse_verse").addItems(data);
                    }
                );
                jQuery('#verse_verse').show();
            } else {
                jQuery('#verse_verse').empty().hide();
            }
        });
        jQuery('#verse_verse').change(function(e) {
            if(jQuery(this).val() > 0) {
                jQuery("#verse_text").html('Loading...');
                jQuery.ajax({
                    url: 			apiUrl + 'versetext.json',
                    dataType:		'json',
                    data:			{
                        book:		jQuery('#verse_book').val(),
                        chapter:	jQuery('#verse_chapter').val(),
                        verse:		jQuery('#verse_verse').val()
                    },
                    success:		function(data) {
                        jQuery("#verse_text").html(data);
                    },
                    error:			function(request, status, error) {
                        jQuery("#verse_text").html('Error...');
                    }
                });
            } else {
                jQuery("#verse_text").html('');
            }
        });

        // Show the ajax form fields for the verse selection
        jQuery('tr.ajaxRow').show();        
      });
    })
    // periodic reloads of message history/queue
    jQuery('#msgqueue').oneTime(10, function() {
        jQuery('#msgqueue > div.entry').load('/de/messages/queue');
        jQuery('#msghistory > div.entry').load('/de/messages/history');
    });
    jQuery('#msgqueue').everyTime(30000, function() {
        jQuery('#msgqueue > div.entry').load('/de/messages/queue');
        jQuery('#msghistory > div.entry').load('/de/messages/history');
    });
});

