function currentValue(el)
{
 var i = el.selectedIndex;
 return i==-1 ? undefined : el.options[i].value;
}

function currentText(el)
{
 var i = el.selectedIndex;
 return i==-1 ? undefined : el.options[i].text;
}

function setCurrentValue(el, value)
{
  if (!value)
  {
    return;
  }
  var opt = $A(el.options).find(function(el) {return el.value==value});
  if (opt)
  {
    opt.selected = true;
  }
}

function textCounter( field, countfield, maxlimit ) {
  if ( field.value.length >= maxlimit )
  {
    field.value = field.value.substring( 0, maxlimit );
    alert( 'Textarea value can only be '+maxlimit+' characters in length.' );
    return false;
  }
  else
  {
    $(countfield).update(maxlimit - field.value.length);
  }
}

function showDropDownMenu(event,id)
{
    var sender = $(id);
    var target=$(sender.identify()+'_dropdown');
    
//    console.log("show",id,event.element().inspect(),target.visible());
    
    if (!target.visible())
    {
        target.setStyle({position:'absolute'});
        Element.clonePosition(target.identify(),sender,{setHeight:false,setWidth:false,offsetTop:+31,offsetLeft:0});

        new Effect.BlindDown(target.identify(),{duration:0.3});
        
        var body = $$("body")[0];
        sender.addClassName('nounderl');
        var hide = function(ev) { hideDropDownMenu(ev,id) };
        target.hideFunction = hide;                                                              
        body.observe("click", hide);
        Event.stop(event);
    }
}

function hideDropDownMenu(event,id)
{
    var sender = $(id);
    var from_menu = $(event.element()).up(".dropdmenu");
    var target=$(sender.identify()+'_dropdown');
    
//    console.log("hide",id,event.element().inspect(),target.visible());
    
    if (target.visible())
    {
      new Effect.BlindUp(target.identify(), {duration:0.3});
  
      var body = $$("body")[0];

      sender.removeClassName('nounderl');
      body.stopObserving("click", target.hideFunction);
    }

    // do not ignore clicks on our menu
    if (!from_menu)
    {
      Event.stop(event);
    }
}

////////////////////////////////////

function toggleAllCheckboxes(name)
{
  var state = $(name+'-all').getValue();
  $$('.'+name+'-cb').each(function(el) {el.setValue(state)});
}
        
function setMainCheckbox(name)
{ 
  var allSet = $$('.'+name+'-cb').all(function(cb) { return cb.getValue()=="on" });
  $(name+'-all').setValue( allSet ? "on" : null );
}

/////////////////////////////////////

function showComment(id)
{
  var cb = $("comment-box");
  var comment = $(id+"-comment");
  if (comment) 
  { 
    cb.update(comment.innerHTML);
    cb.show();
  }
}

function hideComment()
{
  $("comment-box").hide();
}

/////////////////////////////////////
function toggleMessage(id)
{
  var msgbox  = $("message-"+id);
  msgbox.toggleClassName("closed");
  
  if (!msgbox.hasClassName("closed") && msgbox.hasClassName("unread"))
  {
    msgbox.removeClassName("unread");
    decreaseText($("unread-messages-here"));
    decreaseText($("total-unread-messages"));
    decreaseText($("total-unread-messages2"));
    markAsRead(id);
  }
}


