// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

Ajax.Responders.register({
    onCreate: function() {
        Element.show('ajax_indicator_hider');
        Element.show('ajax_indicator');
    },
    onComplete: function() {
        Element.hide('ajax_indicator_hider');
        Element.hide('ajax_indicator');

        if ($('ajax_popup').visible()) {
            $('ajax_popup').scrollTo()
        }
    }
});

var prepear_admin_menu = function() {
    if ($('manage_links')) {
        $('manage_links').hide()
        if ($$('#manage_links li a.active').length > 0) {
            current_admin_menu = ":&nbsp;<strong>" + $$('#manage_links li a.active')[0].innerHTML + "</strong>"
        } else {
            current_admin_menu = ""
        }

        $('sections').innerHTML += current_admin_menu

        Event.observe($('sections'), 'click', function() {
            $('manage_links').setStyle({
                'top':   $('sections').offsetHeight - 5 + 'px',
                'width': $('sections').offsetWidth + 10 + 'px',
                'left': $('sections').offsetLeft + 'px'
            })
            $('manage_links_hider').show()
            $('manage_links').show()
        })

        Event.observe($('manage_links_hider'), 'click', function() {
            $('manage_links').hide()
            $('manage_links_hider').hide()
        })

    }
}

var toggle_adminmenu = function() {
    $$('.admin_menuitem').each(function(s) {
        $(s).toggle()
    });
    var c = jimAuld.utils.cookies;
    if (c.get('adminmenu') == 'hidden') {
        c.set('adminmenu', 'showed', 1);
    } else {
        c.set('adminmenu', 'hidden', 1);
    }
}

var focus_for_inputs = function() {
    var e = $A(document.getElementsByTagName('*')).find(function(e) {
        return (e.tagName.toUpperCase() == 'INPUT' && (e.type == 'text' || e.type == 'password'))
                || e.tagName.toUpperCase() == 'TEXTAREA' || e.tagName.toUpperCase() == 'SELECT';
    });
    if (e) e.focus();
}

Event.observe(window, 'load', function() {
    prepear_admin_menu()
    focus_for_inputs()

    $$('a.edit_pageblock').invoke('hide')
    $$('.actions a.edit_pageblock').invoke('show')
})

function destroy_model_item(element, action, auth_token) {
    if (confirm("Are you sure?")) {
        var f = document.createElement('form');
        f.style.display = 'none';
        element.parentNode.appendChild(f);
        f.method = 'POST';
        f.action = action;
        var m = document.createElement('input');
        m.setAttribute('type', 'hidden');
        m.setAttribute('name', '_method');
        m.setAttribute('value', 'delete');

        var auth = document.createElement('input');
        auth.setAttribute('type', 'hidden');
        auth.setAttribute('name', 'authenticity_token');
        auth.setAttribute('value', auth_token);

        f.appendChild(m);
        f.appendChild(auth);
        f.submit();
    }
    return false;
}

// Gallery slider
var image_slider = function(images_count, images_positions) {
    var current_image = 0;
    var positions = images_positions;
    var count = images_count;

    return {
        moveLeft: function() {
            if (current_image < count - 6) {
                current_image += 1;
                return new Effect.Move('thumb_images', { x: -positions[current_image], mode: 'absolute' });
            } else {
                return false;
            }
        },
        moveRight: function() {
            if (current_image != 0) {
                current_image -= 1;
                return new Effect.Move('thumb_images', { x: -positions[current_image], mode: 'absolute' });
            } else {
                return false;
            }
        }
    }
}

var change_current_image = function(object, src) {
  $$('#thumb_images li a.current').invoke('removeClassName', 'current');
  $(object).addClassName('current');
  Effect.ScrollTo('paginator', 1, 2);
  $('gallery_image').writeAttribute('src', src);  
}

// IE hack li:hover
Event.observe(window, 'load', function() {
    $$('#all #menu ul li').each(function(e) {
        Event.observe(e, 'mouseover', function() {
            Element.addClassName(e, 'hover');
        });
        Event.observe(e, 'mouseout', function() {
            Element.removeClassName(e, 'hover');
        });
    });
});