﻿jQuery.fn.autoZoomLoadImage = function(scaling, width, height, loadPic) {
  if (loadPic == null) loadPic = "images/WhiteLoader.gif";
  return this.each(function() {
    var t = $(this);
    var src = $(this).attr("src");
    var img = new Image();
    //alert("Loading")
    img.src = src;
    //自动缩放图片
    var autoScaling = function() {
      if (scaling) {
        if (img.width > 0 && img.height > 0) {
          if (img.width / img.height >= width / height) {
            if (img.width > width) {
              t.width(width);
              t.height((img.height * width) / img.width);
			  
			  //图片x>y 并且大于框的x 横向图
			  var top =Math.abs((height-t.height())/2);
			  var left =Math.abs((width-t.width())/2);
			  t.css("top",top)
			  t.css("left",left)
			  //alert("1")
			   
            }
            else {
              t.width(img.width);
              t.height(img.height);
			  //图片x等于框x;且图片y<框y
			  var top =(height-img.height)/2
			  var left =(width-img.width)/2
			  t.css("top",top)
			  t.css("left",left)
			  //alert("2")
			  
            }
          }
          else {
            if (img.height > height) {
              t.height(height);
              t.width(img.width * height / img.height);
			  //图片y>x 并且大于框的y  竖向图
			  var left =(width-img.width * height / img.height)/2
			  t.css("left",left)
			  //alert("3")
			  
            }
            else {
              t.width(img.width);
              t.height(img.height);
			 
			  //图片x、y都比规定的框小
			  var top =(height-img.height)/2
			  var left =(width-img.width)/2
			  t.css("top",top)
			  t.css("left",left)
			  //alert("4")
			  
            }
          }
        }
      }
    }
    //处理ff下会自动读取缓存图片
    if (img.complete) {
      //alert("getToCache!");
      autoScaling();
      return;
    }
    $(this).attr("src", "");
    var loading = $("<img alt=\"加载中\" title=\"图片加载中\" src=\"" + loadPic + "\" />");
    t.hide();
    t.after(loading);
    $(img).load(function() {
      autoScaling();
      loading.remove();
      t.attr("src", this.src);
      t.show();
      //alert("finally!")
    });
  });
}
