var $j = jQuery.noConflict();

$j(function() {
  $j("img");//.pngfix();
  showMessages();
  roundedEdgesInit();
  
  var changeAd = function(nextOrPrev) {
    var selected = $j('.mlrandom div.group.selected');
    
    if (selected.length > 0) {
      var target = selected[nextOrPrev]('div.group');

      if (target.size() == 0) {
        target = $j('.mlrandom div.group:' + (nextOrPrev == 'next' ? 'first' : 'last'));
      }

      var img = target.find('img.picture');
      img.attr('src', img.metadata().src);

      selected.fadeOut('fast', function() {
        selected.removeClass('selected');
        target.fadeIn('fast', function() {
          target.addClass('selected');
        });
      });
    }
  }
  
  var changeAdInterval = setInterval(function() {
    changeAd('next');
  }, 6000);
  
  $j('.mlrandom .commands a').click(function() {
    if (this.className.match(/next|prev/)) {
      changeAd(this.className);
    }
    clearInterval(changeAdInterval);

    return false;
  });
  
  $j('.mlrandom a.ad, .mlbar a').click(function() {
    clearInterval(changeAdInterval);
    registerPmsClick(this.href);
  });
  
  var mlbar = $j('.mlbar');
  
  $j('.mlbar label').click(function() {
    $j('.mlbar input').focus();
  });
  
  var input = $j('.mlbar input.search');
  
  input.focus(function() {
    $j('.mlbar label').hide();
  }).blur(function() {
    if (this.value.length == 0) {
      $j('.mlbar label').show();
    }
  })
  
  var registerPmsClick = function(url) {
    var tracker = url.match(/tool=(.*?)&/)[1];
    pageTracker._trackPageview('/pms/' + tracker);
  }
  
  var search = function() {
    var term = input.val();
    
    
    if (term.length > 0) {
      var url =  $j('.mlbar .search-button')[0].href + term.replace(/ /g, '-');
      // input.val("").blur();
      // mlbar.find('a.search-button').focus().blur(); // for ie7
      // var popUnder = window.open(url, '_blank');
      
      registerPmsClick(url);
      window.location = url;
    }
    
    return false;
  }
  
  $j('.mlbar form').submit(search);
  
  $j('.mlbar .search-button').click(search);
  
  $j('.mlbar input.search').val('').keydown(function(event) {
    if (event.which == 13) {
    } else if (event.keyCode == 27) {
      this.value = "";
      this.blur();
    }
  })
  
  $j('.mlbar a').click(function() {
    this.blur();
  });
  
  $j('.mlbar .hide a').click(function() {
    mlbar.animate({ bottom: '-34px' }, "normal", null, function() {
      mlbar.toggleClass('hidden');
      mlbar.find('.hide a').attr('title', mlbar.hasClass('hidden') ? 'Mostrar' : 'Esconder');
      mlbar.animate({ bottom: '0' });
      
      if (mlbar.hasClass('hidden')) {
        createCookie('mlbar', 'hidden', 36);
      } else {
        deleteCookie('mlbar');
      }
    });
    
    return false;
  })
  
  if (!hasCookie('mlbar')) {
    mlbar.removeClass('hidden');
  } else {
    mlbar.find('.hide a').attr('title', 'Mostrar');
  }
});

function createCookie(name, value, hours) {
  if (!hours) {
    var expires = "";
  } else {
    var date = new Date();
    date.setTime(date.getTime() + (hours * 60 * 60 * 1000));
    var expires = "; expires=" + date.toGMTString();
  }
  
  document.cookie = name + "=" + value + expires + "; path=/";
}

function deleteCookie(name) {
  createCookie(name, '1', -1);
}

function hasCookie(name) {
  return document.cookie.match(name) != null;
}

function showMessages() {
    if (anyMessage()) { 
        new Effect.Highlight('messages');
    }
    if (isNotice()) {
        setTimeout("hideMessages()", 15000);
    }
}

function hideMessages() {
    if (anyMessage()) { new Effect.Fade('messages') }
}

function isNotice() {
    return anyMessage() && ($j('#messages').html().match("li class=\"notice\"") != null)
}

function anyMessage() {
    return $j('#messages').size() > 0
}

function noop() {}

/* ================================= box =================================== */

function roundedEdgesInit() {
    boxify();
    buttonize();
}

function makeRounded(parentElement) {
    boxify(parentElement);
    buttonize(parentElement);
}

function buttonize(parent) {
    parent = (parent) ? $j(parent) : $j('body');
    parent.find('.button').each(function() {
        $j(this).prepend('<b class="left"></b>');
        $j(this).append('<b class="right"></b>');
    });
}

function boxify(parent) {
    parent = (parent) ? $j(parent) : $j('body');
    parent.find(".box").each(function() { 
        if ($j(this).is('.bottom-half') == false) {
          $j(this).prepend('<div class="top left tl"></div><div class="top right tr"></div>');
        }
        if ($j(this).is('.top-half') == false) {
          $j(this).append('<div class="bottom left bl"></div><div class="bottom right br"></div>');
        }
    });
}
