/**
 * oi_ads.js.
 *
 * Adverts.
 */

function rand ( n )
{
	  return ( Math.floor ( Math.random ( ) * n + 1 ) );
}

function OiAds(type,obj,banners){
	this.banners = banners;
	this.type = type;
	this.obj = obj;

	this.queryString = "?type=" + type + "&obj=" + obj;

	this.expandedDiv = null;

	this.trackEvent = function(){


		var url = new String(window.location);

		if(url.substr(-1) == '/'){
			url = url + "index.htm";
		}

		var regex = "http://[a-zA-Z\\.]+/(.*[a-zA-Z])[-[0-9]*\\.htm|\\.htm]$";
		var pathRegex = new RegExp(regex);
		var matches = pathRegex.exec(url);
		var path = matches[1];
		path = path.replace(/\//g,".");
		pageTracker._trackEvent(this.banner['Banner']['ga_category'],'Banner',path);
	}

	this.display = function(id,width,height){
		var banner = this.banners[rand(this.banners.length) - 1];
		this.banner = banner;

		if(banner['Banner']['file'].match(".*swf$")){
			this.bannerEl = document.getElementById(id);
			var flashDiv = document.createElement("div");
			flashDiv.id = id + "-flashDiv";
			this.bannerEl.appendChild(flashDiv);
			swfobject.embedSWF("http://hw.ads.oimedia.co.uk/" + banner['Banner']['file'] + this.queryString,id + "-flashDiv",width,height,"9.0.0",null,{},{allowscriptaccess: 'always',wmode: 'opaque'});
		}else{
			this.bannerEl = document.getElementById(id);
			var anchor = document.createElement("a");
			var imgEl = document.createElement("img");

			imgEl.src = "http://hw.ads.oimedia.co.uk/" + banner['Banner']['file'] + this.queryString;
			anchor.href = "/Banners/view/" + banner['Banner']['id'] + "/" + this.type + "/" + this.obj;
			imgEl.alt = banner['Banner']['name'];
			this.bannerEl.appendChild(anchor);
			anchor.appendChild(imgEl);

			YUI().use('node',function(Y){
				function clickOnBanner(e){
					hb.trackEvent();
					e.preventDefault();
					var a = Y.get(e.target);
					window.open(anchor.href);
				}

				Y.on('click',clickOnBanner,anchor);
			});
		}
	}
	
	this.hideExpanded = function(){
		expandedDiv = this.expandedDiv;
		bannerEl = this.bannerEl;
		YUI().use('node',function(Y){
			if(expandedDiv != null){
				var expandNode = Y.get(expandedDiv);
				var bannerNode = Y.get(bannerEl);
				expandNode.removeClass("expandedBanner");
			}
		});
	}

	this.showExpanded = function(){
		if(this.expandedDiv == null){
			expandedDiv = this.expandedDiv = document.createElement("div");

			document.body.appendChild(expandedDiv);
			var expandedFlash = document.createElement("div");
			expandedFlash.id = "expflash-" + this.banner['Banner']['id'];
			expandedDiv.appendChild(expandedFlash);

			swfobject.embedSWF("http://hw.ads.oimedia.co.uk/" + this.banner['Banner']['expandable_file'] + this.queryString,"expflash-" + this.banner['Banner']['id'],this.banner['Banner']['expanded_width'],this.banner['Banner']['expanded_height'],"9.0.0",null,{},{allowscriptaccess: 'always'});

			var bannerEl = this.bannerEl;
			var expandedDiv = this.expandedDiv;
			
			YUI().use('node',function(Y){
				var bannerNode = Y.get(bannerEl);
				var expandNode = Y.get(expandedDiv);
				var left = (bannerNode.get("winWidth") / 2) - ( 728 / 2) + 2;
				expandNode.setStyle("left",left + "px");
				expandNode.addClass("bannerOver");
				expandNode.addClass("expandedBanner");
				Y.on('mouseout',hideExpanded,expandedDiv);
			});
		}else{
			var expandedDiv = this.expandedDiv;
			
			YUI().use('node',function(Y){
				var expandNode = Y.get(expandedDiv);
				expandNode.addClass("expandedBanner");
			});
		}
	}

	this.click = function(){
		this.trackEvent();
		var href = "/Banners/view/" + this.banner['Banner']['id'] + "/" + this.type + "/" + this.obj;
		window.open(href);
	}
}

function hideExpanded(){
	hb.hideExpanded();
}
