/**
 * 	jQuery.fn - jQuery Functions
*/

var fn = {};
var Dropdown = {};

(function($) {
    fn = $.fn;
    epoint = {fn : fn};
    
    globalEnv = {
    	POPUP_INTERVAL: false,
    	DROPDOWN_INTERVAL: false,
    	IE6: $.browser.msie && $.browser.version=="6.0" ? true : false,
    	HIDDEN_SELECT_FIELDS: false,
    	BLOCK_HIDING_LAYERS: false,
    	IS_DROPDOWN_OPENED: false,
    	DEFINED_HIDE_TIMEOUT: false,
    	SET_POSITION_INTERVAL: false,
    	TEMPORARY_POPUP_POSITION: false
    };

/**
 * Compare globalEnv & localEnv
 * @param opts module params
 * @return object
 */
  fn.addEnv = function(/* object */ opts) {
    return $.extend(globalEnv, opts);
  };
  
/**
 * Synchronize heights elements
 */  
 
fn.synchronizeHeights = function () {
	var $elements = $(this);
	if($elements.size() == 0) return;
	var maxHeight = 0;
	$elements.each(function() {
		maxHeight = $(this).height() > maxHeight ? $(this).height() : maxHeight;
	});
	$elements.height(maxHeight);
}

/**
 * mit license. paul irish. 2010.
 * webkit fix from Oren Solomianik. thx!
*/

$.fn.imagesLoaded = function(callback){
  var elems = this.find('img'),
      len = elems.length,
      //blank = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
      blank = "";
  var $i = 1;
  $(elems).bind('load',function(i){
      if (--len <= 0 && this.src !== blank){ 
      	callback.call(elems,this);
      	$i++;
      }
  }).each(function(){
     // cached images don't fire load sometimes, so we reset src.
     if (this.complete || this.complete === undefined){
        var src = this.src;
        // webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
        // data uri bypasses webkit log warning (thx doug jones)
        this.src = blank;
        this.src = src;
     }
  });

  return this;
};


})(jQuery);
