function load_component( id, href, size, condition, option ) {
	var rand = randobet(5);
	$('#'+id).html('');
	$('#'+id).append('<div class="ajax"><div class="loading" id="loading_' + rand +'"><img src="/img/home/ajax-loader'+ (option['ajax_loader'] == 'small' ? '-small' : '') + '.gif" /></div></div>');
	$('#'+id).append('<div class="ajax_contents '+id+'"></div>');
	if(size['canvasw'] > 0 && size['canvash'] > 0){
		$("#"+id).css({"width":size['canvasw'], "height":size['canvash']});
		$(".loading").css({"width":"100%", "height":"auto"});
	}
	$("#"+id).find("."+id).load( href, {
		condition:toJSON(condition),
		size:toJSON(size),
		option:toJSON(option)
		
	}, function(data, status) {
		var paginate = "#" + id + " #pagination a";
		var sort     = "#" + id + " #sort a";
		
		$("#"+id).find("#loading_" + rand).hide();
		$("#"+id).removeClass("ajax");
		if(size['bodyw'] == 0 || size['bodyh'] == 0){
			$("#"+id).css({"width":"auto", "height":"auto"});
		}
		$(paginate).click(function() {
			var thisHref = $(this).attr("href");
			load_component(id,thisHref, size, condition, option);
			return false;
		});
		
		$(sort).click(function() {
			var thisHref = $(this).attr("href");
			load_component(id,thisHref, size, condition, option);
			return false;
		});
	});
}

function toJSON(o) {
	if (o == void(0)) {
		return 'null';
	}
	var c = o.constructor;
	if (c == Boolean) {
		return o.toString();
	}
	if (c == Number) {
		return isNaN(o) ? '"NaN"' : !isFinite(o) ? '"Infinity"' : o.toString(10);
	}
	if (c == String) {
		return '"' + esc(o) + '"';
	}
	if (c == Array) {
		var tmp = [];
		for (var i=0; i<o.length; i++) {
		tmp[i] = toJSON(o[i]);
		}
		return '[' + tmp.join(',') + ']';
	}
	if (o.toString() == '[object Object]') {
		var tmp = [];
		for (var i in o) {
		if (o.hasOwnProperty(i)) {
			tmp.push('"' + esc(i) + '":' + toJSON(o[i]));
		}
		}
		return '{' + tmp.join(',') + '}';
	}
	return '\"' + esc(o.toString()) + '\"';
}

function esc(s) {
	return escape(s).replace(/%([0-9A-F]{2})/g,'\\u00$1').replace(/%u/g,'\\u');
}

function randobet(n, b) {
	b = b || '';
	var a = 'abcdefghijklmnopqrstuvwxyz'
		+ '123456789'
		+ b;
	a = a.split('');
	var s = '';
	for (var i = 0; i < n; i++) {
		s += a[Math.floor(Math.random() * a.length)];
	}
	return s;
}

