	function thumbnailize(o, m, max_w, max_h){
		/*
		Developed by rogerleung@focus-global.com
		Last edited 25 MAY 2010

		var o: selected object
		var mode:
			inner_fit
			outer_fit
		var max_w: width
		var max_h height
		*/

		o.css('width', '').css('height', '');

		var w = o.width();
		var h = o.height();
		if(w > 0 && h > 0){
			var nw = w;
			var nh = h;

			if(m=='inner_fit'){
				if(w > h){	//horzontal
					if(w > max_w){
						nw = max_w;
						r = max_w / w;
						nh = h * r;
					}

					if(nh > max_h){
						r = max_h / nh;
						nh = max_h;
						nw = nw * r;
					}
				}else if(w < h){ //vertical
					if(h > max_h){
						nh = max_h;
						r = max_h / h;
						nw = w * r;
					}

					if(nw > max_w){
						r = max_w / nw;
						nw = max_w;
						nh = nh * r;
					}
				}else{	//square
					if(w > max_w){
						nw = max_w;
						r = max_w / w;
						nh = h * r;
					}else if(h > max_h){
						nh = max_h;
						r = max_h / h;
						nw = w * r;
					}
				}
			}else if(m=='outer_fit'){
				if(w > h){	//horzontal
					nh = max_h;
					r = max_h / h;
					nw = w * r;
				}else if(h > w){	//vertical
					nw = max_w;
					r = max_w / w;
					nh = h * r;
				}else{	//square
					nh = max_h;
					r = max_h / h;
					nw = w * r;
				}
			}

			nw = Math.floor(nw);
			nh = Math.floor(nh);

			if(nw > 0 & nh > 0){
				o.width(nw);
				o.height(nh);
				if(m=='outer_fit'){
					if(w > h){	//horzontal
						o.css('margin-left', (max_w / 2) - (nw / 2));
					}else if(h > w){	//vertical
						o.css('margin-top', (max_h / 2) - (nh / 2));
					}
				}

				o.attr('rel', 'resized');
			}

			return true;
		}else{
			return false;
		}
	}
