/*-------------------------------------------------------------------- 
 * JQuery Plugin: "EqualHeights"
 * by:	Scott Jehl, Todd Parker, Maggie Costello Wachs (http://www.filamentgroup.com)
 *
 * Copyright (c) 2008 Filament Group
 * Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
 *
 * Description: Compares the heights or widths of the top-level children of a provided element 
 		and sets their min-height to the tallest height (or width to widest width). Sets in em units 
 		by default if pxToEm() method is available.
 * Dependencies: jQuery library, pxToEm method	(article: 
		http://www.filamentgroup.com/lab/retaining_scalable_interfaces_with_pixel_to_em_conversion/)							  
 * Usage Example: $(element).equalHeights();
  		Optional: to set min-height in px, pass a true argument: $(element).equalHeights(true);
 * Version: 2.0, 08.01.2008
--------------------------------------------------------------------*/

$.fn.equalHeights = function(px) {
	$(this).each(function(){
		var currentTallest = 0;
		$(this).children().each(function(i){
			if ($(this).height() > currentTallest) { currentTallest = $(this).height(); }
		});
		//if (!px || !Number.prototype.pxToEm) currentTallest = currentTallest.pxToEm(); //use ems unless px is specified
		// for ie6, set height since min-height isn't supported
		if ($.browser.msie && $.browser.version == 6.0) { $(this).children().css({'height': currentTallest}); }
		$(this).children().css({'min-height': currentTallest}); 
	});
	return this;
};

(function($) {
  $.fn.equalizeCols = function(children){
    var child = Array(0);
    if (children) child = children.split(",");
    var maxH = 0;
    this.each(
      function(i) 
      {
        if (this.offsetHeight>maxH) maxH = this.offsetHeight;
      }
    ).css("height", "auto").each(
      function(i)
      {
        var gap = maxH-this.offsetHeight;
        if (gap > 0)
        {
          t = document.createElement("div");
          $(t).attr("class","fill").css("height",gap+"px");
          if (child.length > i)
          {
            $(this).find(child[i]).children(':last-child').after(t);
          } 
          else 
          {
            $(this).children(':last-child').after(t);
          }
        }
      }  
    );
    
  }
})(jQuery);

(function($){  

$.fn.positionFooter = function(center){  
  
var element = this; 

var originalPosition = $(element).offset();
var originalTopPosition = originalPosition.top;  

positionTheFooter();  
  
$(window).bind("resize", function(){  
    positionTheFooter();  
});
 
function positionTheFooter(){ 
  
  var elementPosition = $(element).offset();
  var elementPaddingTop = $(element).css("padding-top");
  var elementPaddingBottom = $(element).css("padding-bottom");
  var elementPaddingleft = $(element).css("padding-left");
  var elementPaddingRight = $(element).css("padding-right");
  var elementHeight = $(element).height();
  var elementWidth = $(element).width();
  
  var windowHeight = $(window).height();
  var windowWidth = $(window).width();
  
  elementPaddingTop = elementPaddingTop.replace(/px/,"");
  elementPaddingBottom = elementPaddingBottom.replace(/px/,"");
  elementPaddingleft = elementPaddingleft.replace(/px/,"");
  elementPaddingRight = elementPaddingRight.replace(/px/,"");
  
  var newPosition = (parseInt(windowHeight) - (parseInt(elementHeight) + (parseInt(elementPaddingTop) + parseInt(elementPaddingBottom))));
  var currentPosition = elementPosition.top - (parseInt(elementHeight) + (parseInt(elementPaddingTop) + parseInt(elementPaddingBottom)));
    
  if(originalTopPosition < windowHeight){
    
    $(element).css({  
      "position" : "absolute",
      "top" : newPosition
    });
    
    if(center == true){
      $(element).css({  
        "left" : windowWidth / 2 - (((elementWidth + parseInt(elementPaddingleft) + parseInt(elementPaddingRight)) / 2))
      });
    }
  
  }
  
  if(newPosition <= originalTopPosition){

    $(element).css({  
      "position" : "absolute",
      "top" : originalTopPosition
    });
    
    if(center == true){
      $(element).css({  
        "left" : windowWidth / 2 - (((elementWidth + parseInt(elementPaddingleft) + parseInt(elementPaddingRight)) / 2))
      });
    }
  
  }
  
};
  
};  
  
})(jQuery); 

