	function thumbnailize(o, m, max_w, max_h){
		/*
		Developed by rogerleung@focus-global.com
		Last edited 26 MARCH 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();
		var nw = 0;
		var nh = 0;

		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);

		o.width(nw);
		o.height(nh);

		if(nw!=w || nh!=h){
			$(this).attr('rel', 'resized');
		}

		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));
			}
		}

		return true;
	}
