Event.observe(window, 'dom:loaded', onLoad);
Event.observe(window, 'dom:loaded', function() {

    CKEDITOR.replace('content',
    {
        filebrowserBrowseUrl : '/ckfinder/ckfinder.html',
        filebrowserImageBrowseUrl : '/ckfinder/ckfinder.html?Type=Images',
        filebrowserFlashBrowseUrl : '/ckfinder/ckfinder.html?Type=Flash',
        filebrowserUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
        filebrowserImageUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
        filebrowserFlashUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
    });

});

function BrowseServer()
{
    var finder = new CKFinder() ;
    finder.BasePath = '/ckfinder/';
    finder.SelectFunction = SetFileField ;
    finder.Popup() ;
}
    
function SetFileField( fileUrl )
{
    $('image').value = fileUrl;
}

function onLoad()
{

    jQuery("a[rel='imageGallery']").colorbox({transition: 'fade'});

    jQuery('.popup').colorbox({
        width: 720,
        height: 520,
        onComplete: onLoad
    });

    if ($('xFileNav'))
    {
        $('xFileNav').stopObserving();
        $('xFileNav').observe('click', BrowseServer);
    }

    $$('table#courses input[type="checkbox"]').each(function(element) {

        element.value = element.parentNode.previous().innerHTML;

    });

    $$('a.select, a.delete, a.moveup, a.movedown').each(function(element) {

        element.stopObserving();
        element.observe('click', function(event) {

            event.stop();

            var value = null;

            if ($('id'))
                value = $('id').value;
            
            var href = element.readAttribute('href');
            var pattern=/[0-9\-]{1,}$/;
            var num = href.match(pattern);

            if (num != value)
            {

                var response = true;

                if (num < 0)
                    response = confirm('Are you sure you want to delete this entry?');
                    
                if (response)
                {

                    new Ajax.Request(href, {
                        onSuccess: function(transport) {
                            var json = transport.responseText.evalJSON();
                            for (var key in json)
                            {
                                if ($(key))
                                {
                                    var nodeName = $(key).nodeName;

                                    if (nodeName === 'INPUT')
                                    {
                                        $(key).value = json[key];
                                    }
                                    else if (nodeName === 'TEXTAREA')
                                    {
                                        if (key === 'content')
                                        {
                                            CKEDITOR.instances.content.setData(json[key]);
                                        }
                                        else
                                        {
                                            $(key).innerHTML = json[key];
                                        }
                                    }
                                    else if (nodeName === 'SELECT')
                                    {
                                        $$('#' + key + ' option').each(function(e) {
                                            if (e.value === json[key])
                                            {
                                                e.selected = true;
                                            }
                                            else
                                            {
                                                e.selected = false;
                                            }
                                        });
                                    }
                                    else
                                    {
                                        $(key).innerHTML = json[key];
                                    }
                                }
                            }

                            if ( (!element.hasClassName('moveup')) &&
                                 (!element.hasClassName('movedown')) )
                            {

                                if (num >= 0)
                                {
                                    var status = $('form').style.display;
                                    if (status === 'none')
                                    {
                                        Effect.BlindDown('form');
                                    }
                                }
                                else if (num < 0)
                                {
                                    var id = Event.findElement(event, 'tr').readAttribute('id');
                                    Effect.Fade(id);
                                }

                            }

                            onLoad();

                        }
                    });

                }
            }
            else
            {
                var status = $('form').style.display;
                if (status === 'none')
                {
                    Effect.BlindDown('form');
                }

            }

        });
    
    });

    $$('form').each(function(element) {
        element.stopObserving();
        element.observe('submit', function(event) {
            event.stop();

            var form = Event.findElement(event, 'form');
            var content = null;

            if ($('content'))
                content = CKEDITOR.instances.content.getData();

            var submit2 = null;

            form.request({
                parameters: {
                    content: content },
                onCreate: function() {
                    if ($('submit'))
                    {
                        submit2 = $('submit').value;
                        $('submit').value = 'Submitting... ';
                    }
                },
                onSuccess: function(transport) {
                    if (submit2 != null)
                    {
                        $('submit').value = submit2;
                    }
                    var json = transport.responseText.evalJSON();
                    $('form').getElements().each(function(element) {
                        element.removeClassName('error');
                    });
                    for (var key in json)
                    {
                        if ($(key))
                        {
                            var nodeName = $(key).nodeName;

                            if (nodeName === 'INPUT')
                            {
                                if ($(key).readAttribute('type') != 'submit')
                                {
                                    $(key).writeAttribute('title', json[key]);
                                    $(key).addClassName('error');
                                }
                                else
                                {
                                    $(key).value = json[key];
                                }
                            }
                            else if (nodeName === 'TEXTAREA')
                            {
                                $(key).writeAttribute('title', json[key]);
                                $(key).addClassName('error');
                            }
                            else if (nodeName === 'SELECT')
                            {
                                $(key).writeAttribute('title', json[key]);
                                $(key).addClassName('error');
                            }
                            else
                            {
                                $(key).innerHTML = json[key];
                            }
                        }
                    }
                    onLoad();
                }
            });
        });
    });

    if ($('close'))
    {
        $('close').stopObserving();
        $('close').observe('click', function() {
            Effect.BlindUp('form');
        });
    }

    if ($('create'))
    {

        $('create').stopObserving();
        $('create').observe('click', function() {

            $('form').getElements().each(function(element) {
                element.removeClassName('error');
            });

            if ($('id'))
                $('id').value = '0';

            if ($('image'))
                $('image').value = '';

            if ($('label'))
                $('label').value = '';

            if ($('uri'))
                $('uri').value = '';

            if ($('title'))
                $('title').value = '';

            if ($('heading'))
                $('heading').value = '';

            if ($('blurb'))
                $('blurb').value = '';

            if ($('unlist_date'))
                $('unlist_date').value = '';

            if ($('class'))
                $('class').value = '';

            if ($('content'))
                CKEDITOR.instances.content.setData('');

            var status = $('form').style.display;
            if (status === 'none')
            {
                Effect.BlindDown('form');
            }
        });
    }

}
