﻿if(typeof ($) == 'undefined') alert('Vehix.Web.Ads.js requires the jquery framework');
if(typeof (Vehix) == 'undefined') Vehix = new Object();
if(typeof (Vehix.Web) == 'undefined') Vehix.Web = new Object();
Vehix.Web.Ads = function(url)
{
	this.items = new Array();
	this.parameters = new Array();
	this.parameters.set = this.__set_parameter;
	this.parameters.get = this.__get_parameter;
	this.url = url;
	this._disableAdvertisingKey = 'DisableAdvertising';
}
Vehix.Web.Ads.prototype=
{
	__get_parameter: function(name)
	{
		var result='';
		if (typeof name == "string")
		{
			for(var index=0;index<this.length;index++)
			{
				if(this[index].name.toLowerCase()==name.toLowerCase())
				{
					result=this[index].value;
					break;
				}
			}
		}
		return result;
	},
	__set_parameter: function(name,value)
	{
		if (typeof name == "string" && name.length > 0)
		{
			var exists=false;
			for(var index=0;index<this.length;index++)
			{
				if(exists=(this[index].name.toLowerCase()==name.toLowerCase()))
				{
					this[index].value=value;
					break;
				}
			}
			if(!exists)
			{
				var normalizedName = name.charAt(0).toUpperCase() + name.slice(1);
				this.push({ name: normalizedName, value: value });
			}
		}
	},
	get_disabled: function()
	{
		var result=window.location.search.match(this._disableAdvertisingKey+'=true');
		if(result)
		{
			$.cookie(this._disableAdvertisingKey,'true');
		}
		else
		{
			result=($.cookie(this._disableAdvertisingKey)=='true');
		}
		return result;
	},
	rotate: function(rotationGroup)
	{
		if(!this.get_disabled())
		{
			var url=this.url+'?'
			for(var index=0;index<this.items.length;index++)
			{
				var element=this.items[index];
				if(rotationGroup=='*'||element.rotationGroup==rotationGroup)
				{
					var width=$(element).width();
					var height=$(element).height();
					var param='&parameters=';
					for(var parameterIndex=0;parameterIndex<this.parameters.length;parameterIndex++)
					{
						var parameter=this.parameters[parameterIndex];
						param+=encodeURIComponent(parameter.name+'='+parameter.value+',');
					}
					for(var parameterIndex=0;parameterIndex<element.parameters.length;parameterIndex++)
					{
						var parameter=element.parameters[parameterIndex];
						param+=encodeURIComponent(parameter.name+'='+parameter.value)+',';
						if(parameter.name=="Width")
						{
							width=parameter.value;
						}
						if(parameter.name=="Height")
						{
							height=parameter.value;
						}
					}
					var src=url+'resourceID='+element.resourceID+'&width='+width+'&height='+height;
					src+=param;
					element.innerHTML='';
					element.innerHTML='<iframe src="'+src+'" width="'+width+'" height="'+height+'" frameborder="0" scrolling="no"></iframe>'
				}
			}
		}
	},
	create: function(id,resourceID,rotationGroup)
	{
		var advertisement=document.createElement("div");
		advertisement.className=id;
		advertisement.resourceID=resourceID;
		advertisement.rotationGroup=rotationGroup;
		advertisement.parameters=new Array();
		advertisement.parameters.set=this.__set_parameter;
		advertisement.parameters.get=this.__get_parameter;
		advertisement.parameters.push({ name: 'Tile',value: Vehix.Web.Ads.items.length });
		this.items.push(advertisement);
		var scpid=id;
		var scpad=advertisement;
		$(document).ready(function()
		{
			$("#"+scpid).replaceWith(scpad);
		});
		return advertisement;
	},
	getShowcaseAdScriptTag: function(location,condition,make,model,bodyStyle)
	{
		/// <summary>Writes out a showcase ad - delivered via OAS JX Tag.</summary>
		if(typeof location=='undefined'||location==null||location=='')
			throw "location is required.";
		if(typeof OAS_url=='undefined')
			OAS_url='http://oascentral.vehix.com';
		if(typeof OAS_pos=='undefined')
			OAS_pos='Top';
		if(typeof OAS_query=='undefined')
		{
			OAS_query=''
			// Prefer ad parameters over function arguments.
			if(typeof gvhxAds!='undefined'&&gvhxAds!=null&&gvhxAds.length>0&&document.getElementById(gvhxAds[0])!='undefined')
			{
				var parameters=document.getElementById(gvhxAds[0]).parameters;
				for(var index=0;index<parameters.length;index++)
				{
					var param=parameters[index];
					if(param.name=='Segment')
						condition=param.value;
					if(param.name=='Make')
						make=param.value;
					if(param.name=='Model')
						model=param.value;
					if(param.name=='BodyStyle')
						bodyStyle=param.value;
				}
			}
			else
			{
				try
				{
					condition=Vehix.Web.Ads.parameters.get('segment');
					make=Vehix.Web.Ads.parameters.get('make');
					model=Vehix.Web.Ads.parameters.get('model');
					bodyStyle=Vehix.Web.Ads.parameters.get('bodystyle');
				}
				catch(e) { }
			}

			// convert undefined to default values.
			if(typeof condition=='undefined' || condition == null) condition="new";
			if(typeof make=='undefined') make=null;
			if(typeof model=='undefined') model=null;
			if(typeof bodyStyle=='undefined') bodyStyle=null;

			// remove spaces
			if(condition!=null) condition=condition.replace(' ','');
			if(make!=null) make=make.replace(' ','');
			if(model!=null) model=model.replace(' ','');
			if(bodyStyle!=null) bodyStyle=bodyStyle.replace(' ','');

			var query='condition='+encodeURIComponent(condition).toLowerCase()
				+'&make='+encodeURIComponent(make).toLowerCase()
				+'&model='+encodeURIComponent(model).toLowerCase()
				+'&type='+encodeURIComponent(bodyStyle).toLowerCase();
			OAS_query+=query.replace(/%20/g,'+');
		}
		if(typeof OAS_sitepage=='undefined')
			OAS_sitepage='showcase.vehix.com/'+encodeURIComponent(location);
		if(typeof OAS_RN=='undefined')
			OAS_RN=new String(Math.random());
		if(typeof OAS_RNS=='undefined')
			OAS_RNS=OAS_RN.substring(2,11);
		return '<scr'+'ipt type="text/javascript" src="'+OAS_url+'/RealMedia/ads/adstream_jx.ads/'+OAS_sitepage+'/1'+OAS_RNS+'@'+OAS_pos+'?'+OAS_query+'"></scr'+'ipt>';
	},
	resizeRightPanel: function(num)
	{
		if(num==160)
		{
			$(".right-panel").css("width","162px");
			$(".right-panel .relatedInventoryFragmentSkyScraper").css("width","160px");
			$(".ad160x600").css("width","160px").css("margin-left","1px");
			$(".ad160x600 iframe").attr("width","160");
			$(".page .content .left-panel").addClass("wide");
		}
		else if(num==300)
		{
			$(".right-panel").css("width","300px");
			$(".right-panel .relatedInventoryFragmentSkyScraper").css("width","298px");
			$(".ad160x600").css("width","300px").css("margin-left","0");
			$(".ad160x600 iframe").attr("width","300");
			$(".page .content .left-panel").removeClass("wide");
		}
		if (typeof this.resizeEvent != "undefined" && this.resizeEvent != null) {
			$("body").trigger(this.resizeEvent);
		}
	},
	checkExternalAd: function()
	{
		$(".ad160x600").data("fitcontentcount",0);
		$(".ad160x600").bind("fitcontent",function(event)
		{
			if($(this).data("fitcontentcount")>5)
				clearInterval($(this).data("fitcntInt"));
			else
			{
				$(this).children().each(function(index)
				{
					if($(this)[0].tagName!="IFRAME")
					{
						var wdth=$(this).width();
						if(wdth>0&&wdth==160||wdth==300)
						{
							Vehix.Web.Ads.resizeRightPanel(wdth);
							$(this).data("fitcontentcount",9);
						}
					}
				});
				$(this).data("fitcontentcount",$(this).data("fitcontentcount")+1);
			}
		});
		$(".ad160x600").data("fitcntInt",setInterval(function()
		{
			$(".ad160x600").trigger("fitcontent");
		}),600);
	}
}
Vehix.Web.Ads = new Vehix.Web.Ads('/tagFrame.aspx');
