﻿function ge(element)
{
  return document.getElementById(element);
}

function show(el)
{
   var element = ge(el);
   if (element && element.style) element.style.display = 'block';
}


function hide(el)
{
	var element = ge(el);
  if (element && element.style) element.style.display = 'none';
}

activity_editor = {
    active: false,
    menu_active: false,
    activity_text: '',
    activity_blur: false,
    activity_reblur: false,

    setup: function(initial_activity) {
        this.activity_text = initial_activity;
    },

    reset: function() {
        ge('txtUserStatus').value = '';
        return false;
    },

    show: function() {
        if (!this.active) {
            this.hide_menu();
            show('activity_editor');
            ge('txtUserStatus').value = this.activity_text;
            ge('txtUserStatus').focus();
            ge('txtUserStatus').select();
            this.activity_blur = true;
            setTimeout(function() { activity_editor.active = true; }, 200);

        } else {
            ge('txtUserStatus').focus();
        }
        return false;
    },

    hide: function() {
        if (!this.active) {
            return;
        }

        setTimeout(function() { activity_editor.active = false; }, 200);
        this.activity_blur = false;
        hide('activity_editor');
        return false;
    },

    toggle_menu: function(event) {
        if (this.isSafari() || this.isIE() || this.isOpera()) {
            this.activity_reblur = true;
        }
        if (this.menu_active) {
            return this.hide_menu();
        } else {
            return this.show_menu();
        }
    },

    show_menu: function(event) {
        this.menu_active = true;
        ge('edit_activity_toggle').style.backgroundColor = '#fff';
        ge('edit_activity_select').style.display = 'block';
        return false;
    },

    hide_menu: function() {
        this.menu_active = false;
        ge('edit_activity_toggle').style.backgroundImage = 'url(images/dropdown_off.gif)';
        ge('edit_activity_toggle').style.backgroundColor = '#D8DFEA';
        hide('edit_activity_select');
        return false;
    },

    activity_select: function(elem) {
        if (this.isSafari() || this.isIE() || this.isOpera()) {
            this.activity_reblur = true;
        }
        this.hide_menu();

        ge('txtUserStatus').value = elem.innerHTML;
        ge('txtUserStatus').focus();
        ge('txtUserStatus').select();
        return false;
    },

    menu_over: function(elem) {
        Element.addClassName(elem, "menu-element");

        //		elem.style.backgroundColor = '#abcea2';
        //		elem.style.color = '#fff';  	
    },

    menu_out: function(elem) {
        Element.removeClassName(elem, "menu-element");
        //		elem.style.backgroundColor = 'white';
        //		elem.style.color = '#000';  	
    },

    blur: function(real_blur) {
        if (this.isOpera() && !real_blur) {
            setTimeout(function() { activity_editor.blur(1); }, 100);
            return false;
        }
        if (this.activity_reblur) {
            ge('txtUserStatus').focus();
            this.activity_reblur = false;
            return false;
        }
        if (this.activity_blur) {
            if (ge('txtUserStatus').value != this.activity_text) {

            } else {
                this.hide();
            }
        }
        return true;
    },

    //
    // User Interaction
    //

    handle_key_press: function(event) {
        event = event || window.event;
        key_code = event.keyCode || event.which;


        if (key_code == this.KEYS.ESC) {
            this.toggle();
            return false;
        }
        return true;
    },

    KEYS: { BACKSPACE: 8, TAB: 9, RETURN: 13, ESC: 27, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46 },

    isOpera: function() {
        return (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
    },

    isIE: function() {
        return (navigator.userAgent.toLowerCase().indexOf("msie") != -1);
    },

    isSafari: function() {
        return (navigator.userAgent.indexOf("Safari") != -1);
    }
}

