/*** Ricardo Amaral (01-02-2010) *****/

$(function()
{
  $.fn.menuBox = function (options)
  {
    /*options = jQuery.extend({
    		speedIn:200, 
    		speedOut:100, 
    		menuWi:150,
    		align:'horizontal'
    },options);*/
    
    var int_util_box=500;
    var timer_util_box=0;
    var background='';
    var menuprincipal=$(this).attr('id');
    var curObj='';
    var globalWi = $(window).width();
    
    $(this).find('ul').css('position','absolute');
    
    var close_util_box=function()
    {
      clearTimeout(timer_util_box); 
      $('#'+menuprincipal+' ul').hide();
    };
    
    var close_other_boxes=function()
    {
      clearTimeout(timer_util_box); 
      curObj.parent().siblings().children('ul').hide();
    };
    
    $('#'+menuprincipal+' ul').hover(
        function()
        {
          clearTimeout(timer_util_box);
        },
        function()
        {
          timer_util_box=setTimeout(close_util_box,int_util_box);
        }
    );
    
    $('#'+menuprincipal+' li a').hover(
      function()
      {
        curObj=$(this);
        if($(this).next('ul').length<1) //se não houver nenhum dropdown
          close_other_boxes();
        else if($(this).next('ul').css('display')=='none')
        {
          close_other_boxes();
          var pos=$(this).parent().position();
          var pos2=$(this).parent().offset();
          var height;
          var this_width=parseInt($(this).parent('li').width())+parseInt($(this).parent('li').css('padding-left'))+parseInt($(this).parent('li').css('padding-right'))+parseInt($(this).parent('li').css('margin-left'))+parseInt($(this).parent('li').css('margin-right'));
          
          //$("#p_temp").html('');
          
          var child=$(this).next('ul');
          var child_width=parseInt(child.width())+parseInt(child.css('padding-left'))+parseInt(child.css('padding-right'))+parseInt(child.css('margin-left'))+parseInt(child.css('margin-right'));
          var left;
          
          if(curObj.parent().parent().attr('id')==menuprincipal) //se estiver no nível inicial
          {
            height=$(this).parent().height()+13;
            left=pos.left;
          }
          else
          {
            height=0;
            left=pos.left+this_width+1;
          }          
          
          if(globalWi < (pos2.left+this_width+child_width))
          {
            if(curObj.parent().parent().attr('id')==menuprincipal) //se estiver no nível inicial
            {
              left=(pos.left+this_width)-child_width;
              //$("#p_temp").html(globalWi+' < '+(pos2.left+this_width+child_width));
            }
            else
              left=pos.left-child_width-1;
          }
          
          $(this).next('ul').css({ "left": left + "px", "top":(pos.top+height) + "px" } );
          $(this).next('ul').show();
        }
        else
          clearTimeout(timer_util_box);
      },
      function()
      {
        if($(this).next('ul').length>0)
        {
          timer_util_box=setTimeout(close_util_box,int_util_box);
        }
      }
    );
  };
});
	

