// IE setTimeout/setInterval extra arguments fix
// http://webreflection.blogspot.com/2007/06/simple-settimeout-setinterval-extra.html
/*@cc_on
(function(f){
 window.setTimeout =f(window.setTimeout);
 window.setInterval =f(window.setInterval);
})(function(f){return function(c,t){var a=[].slice.call(arguments,2);return f(function(){c.apply(this,a)},t)}});
@*/

function trace (argument) { console.log(argument); }


var db = {
  
  _init : function() {
    helpers._init();
    db.prepInterface();
  }
  
  ,prepInterface : function() {
    db.prepNavigation();
    db.prepAjax();
		db.tableCleanUp();
  }
  
  ,prepNavigation : function() {
    db.prepAjax();
  }
  
  ,prepAjax : function() {
    $('a.ajax').click(function() {
      var url = $(this).attr('href');
      ajaxPage(url);
    });
  }
  
  ,ajaxPage : function(url) {
    // start animation
    $('div#content').animate({
      opacity: 0
    }, 1000, function() {
      // ajax call
      $.get(url, null, function(data) { // TODO: {}
        // push content to UI
        $('div#content').html($($(data).find('div#content')).html());
        // end animation
        $('div#content').animate({
          opacity: 1
        }, 1000, function() { // callback
          // OPTIONAL: delayed callback
          window.setTimeout(db.afterAjax, 500);
        });
      });
    });
  }
  
  ,afterAjax : function() {
    
  }

	,tableCleanUp : function() {
		$('table tr').each(function(index) {
		  $("td:first", this).css({
				padding: "0 13px 0"
			})
		});
		
		$("p").each(function() {
		  if ($(this).html() == "") {
		    $(this).remove();
		  }
		})
	}
  
};

var helpers = {
  
  _init : function() {
    helpers.prepInputs();
  }
  
  ,prepInputs : function() { $('input').click(function() { $(this).select(); }); }
  ,t : function (argument) { return jQuery.trim(argument); }                          // trim
  
};


$(function() {
  db._init();
});
