(function($) {
	$.fn.hpRotator = function(options) {
		var opts = $.extend({}, $.fn.hpRotator.defaults, options);
	
		return this.each(function() {
			$this = $(this);
		
			var o = $.metadata ? $.extend({}, opts, $this.metadata()) : opts;
		
			var hp = o.location + getHomepage(o.homepages, o.percentages) + o.type;
			
			var queryString = unescape(vw.util.getQueryString());
			var queryArray = queryString.split("&");
			var deepLinkHP = null;
			$(queryArray).each(function(i){
				var split = queryArray[i].split("=");
				var name = split[0];
				var value = split[1];
				if(name == 'id' && o.homepages[parseInt(value)] != null){
					deepLinkHP = o.homepages[parseInt(value)];
				}
			});
			if(deepLinkHP != null) hp = o.location + deepLinkHP + o.type;
		
			var so = new SWFObject(hp, "sohomepage", o.width, o.height, o.version, o.bgcolor);
			so.addVariable("domain_path", o.domain);
			so.addVariable("language_code", o.language);
			so.setAttribute("redirectUrl", o.redirect);
			so.addParam('allowscriptaccess',o.allowscriptaccess);
			so.addParam('wmode', o.wmode);
			so.write(this.id);
		
		
		});
	};
	
	function getHomepage(hps, pcts){
		if(hps.length < 2){
			return hps[0];
		}
		
		var val = randRange(1, 100);
		var id = 0;
		var total = 0;
		
		for(var i = 0; i < hps.length; i++){
			total += (pcts[i] * 100)
			if(val <= total){
				id = i;
				break;
			}
		}
		if(id <= -1){
			id = 0;
		}
		
		
		return hps[id];
	}
	
	function randRange(min, max) {
		var randomNum = Math.floor(Math.random() * (max - min + 1)) + min;
		return randomNum;
	}

	$.fn.hpRotator.defaults = {
		homepages: 			[],
		percentage: 		[],
		location: 			"/en/us/swf/",
		type: 				".swf",
		height: 			488,
		width: 				998,
		bgcolor: 			"#ffffff",
		version: 			"9.0.45",
		wmode: 				"opaque",
		allowscriptaccess: 	"always",
		redirect: 			"/update/en/us/",
		language: 			"en_us",
		domain: 			"/" 
	};
	
}) (jQuery);