﻿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) {
		elem.style.backgroundColor = 'grey';
		elem.style.color = '#fff';  	
  },
  
  menu_out: function(elem) {
		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);		
  }  
}
