var Type = { };
Type.mail = /^[a-z0-9][^\(\)\<\>\@\,\;\:\\\"\[\]]*\@[a-z0-9\.\-]*\.[a-z]{2,4}$/i;

jQuery(function(){
  var getDropdown = function(parent){
    var contentID = parent.id.match(/parent\-nav\-(\d+)/)[1];
    if($('#sub-nav-'+contentID).length) 
      return $('#sub-nav-'+contentID);
    else
      return false;
  };
  
  var getTab = function(menu){
    var contentID = menu.id.match(/sub\-nav\-(\d+)/)[1];
    if($('#parent-nav-'+contentID).length) 
      return $('#parent-nav-'+contentID);
    else
      return false;
  };
  
  var testBounds = function(e, object){
    object     = $(object);
    var offset = object.offset();
    
    if(e.pageX >= offset.left && e.pageX <= (offset.left + object.outerWidth())){
      if(e.pageY >= offset.top && e.pageY <= (offset.top + object.outerHeight()))
        return true;
    }
    
    return false;
  };
  
  $('a.site-menu-item').mouseover(function(){
    var offset    = $(this).offset();
    var menu      = getDropdown(this);
    
    if(menu){
      menu.css('left', offset.left);
      menu.css('top', offset.top + $(this).height());
      menu.slideDown('fast');
    }
  });
  
  $('a.site-menu-item').mouseout(function(e){
    var menu   = getDropdown(this);
    if(!menu)
      return;
    
    if(!testBounds(e, menu))
      menu.slideUp('fast');
  });
  
  $('div.site-menu-dropdown').mouseout(function(e){
    var tab = getTab(this);
    
    if(!tab)
      return;
    
    if(!testBounds(e, tab) && !testBounds(e, this))
      $(this).slideUp('fast');
  });
  
  $('.default').each(function(){
    var obj = $(this);
    obj.data('default', $(this).val());
    
    obj.data('submit', function(){ if(obj.val() == obj.data('default')) obj.val(''); });
    
    obj.focus(function(){
      if($(this).val() == $(this).data('default'))
        $(this).val('');
    });
    
    obj.blur(function(){
      if($(this).val() == '')
        $(this).val($(this).data('default'));
    });
  });
});

var NumberFormat = function(num){
                     var decimals  = (arguments.length > 1 && !isNaN(parseInt(arguments[1]))) ? arguments[1] : 0;
                     var seperator = (arguments.length > 2) ? arguments[2].toString() : ",";
                     
                     num = num.toFixed(decimals);
                     
                     while(num.indexOf(seperator) > 3 || (num.indexOf(seperator) == -1 && num.indexOf(".") > 3)){
                       var index = (num.indexOf(seperator) != -1) ? num.indexOf(seperator) : num.indexOf(".");
                       num       = num.substr(0, index - 3) + seperator + num.substr(index - 3);
                     }
                     return num;
                   };


var AnalyticsLoader = Class.extend({
  interval:   420,
  init:       function(trackingNo){
                this.trackingNo = trackingNo;
                
                var obj      = this;
                var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
                var script   = $('<script src="'+gaJsHost+'google-analytics.com/ga.js" type="text/javascript"></script>');
                $('head').appendChild(script);
                setTimeout(function(){ obj.checkLoad(); }, this.interval);
              },
  checkLoad:  function(){
                var obj = this;
                setTimeout((window['_gat']) ? function(){ obj.startup(); } : function(){ obj.checkLoad(); }, this.interval);
              },
  startup:    function(){
                this.tracker = _gat._getTracker(this.trackingNo);
                this.tracker._initData();
                $(this).trigger('load');
              }
});