﻿//Legacy - to be refactored
var gvhxAds = new Array();
var gvhxCompanionAds = new Array();
var gvhxRefreshing = true;
var vsSelectorVehicle;

setTimeout('gvhxRefreshing=false', 2000);

String.prototype.trimStart = function(character) {
	character = character || '\\s'
	var regExp = new RegExp('^' + character + '+', 'g');
	return this.replace(regExp, '');
}
String.prototype.trimEnd = function(character) {
	character = character || '\\s'
	var regExp = new RegExp('' + character + '+$', 'g');
	return this.replace(regExp, '');
}
String.prototype.trim = function(character) {
	return this.trimStart(character).trimEnd(character)
}
String.prototype.isNullOrEmpty = function() {
	return (this != null && this.length > 0);
}
String.prototype.contains = function(value) {
	return this.indexOf(value) != -1;
}

String.prototype.extractAllNodes = function(nodes) {
	var retVal = "";
	for (i = 0; i < nodes.length; i++)
		retVal += nodes[i].nodeValue;
	return retVal;
}

String.prototype.formatNumber = function() {
	var rstr = this;
	var result = "";

	for (var i = rstr.length - 1; i >= 0; i--) {
		result = rstr.charAt(i) + result;
		if (i % 3 == 0 && i > 0)
			result = "," + result;
	}
	return result;
}

function refreshCompanionAds(brand, segment, ord, type, make, model, year) {
	try {
		gvhxRefreshing = true;
		if (typeof (ord) != "undefined" && ord != "")
			jsor = ord;
		for (advertisementIndex = 0; advertisementIndex < gvhxCompanionAds.length; advertisementIndex++) {
			var advertisement = document.getElementById(gvhxCompanionAds[advertisementIndex]);
			advertisement.isCompanion = true;
			var parameterSetCount = 0;
			var bmake = false;
			var bmodel = false;
			var byear = false;
			var btype = false;
			if (advertisement.parameters) {
				for (parameterIndex = 0; parameterIndex < advertisement.parameters.length; parameterIndex++) {
					var parameter = advertisement.parameters[parameterIndex];
					switch (parameter.name) {
						case "Make":
							parameter.value = make;
							parameterSetCount++;
							bmake = true;
							break;
						case "Model":
							parameter.value = model;
							parameterSetCount++;
							bmodel = true;
							break;
						case "BodyStyle":
							parameter.value = type;
							parameterSetCount++;
							btype = true;
							break;
						case "Year":
							parameter.value = year;
							parameterSetCount++;
							byear = true;
							break;
						case "Segment":
							parameter.value = segment;
							parameterSetCount++;
							break;
						case "Brand":
							parameter.value = brand;
							parameterSetCount++;
							break;
						case "Suspend":
							parameter.value = false;
							parameterSetCount++;
							break;
						case "Roadblock":
							parameter.value = true;
							parameterSetCount++;
							break;
					}
					if (parameterSetCount == 7)
						break;
				}
				if (make != "" && !bmake) {
					advertisement.parameters.push({ "name": "Make", "value": make });
				}
				if (model != "" && !bmodel) {
					advertisement.parameters.push({ "name": "Model", "value": model });
				}
				if (type != "" && !btype) {
					advertisement.parameters.push({ "name": "BodyStyle", "value": type });
				}
				if (year != "" && !byear) {
					advertisement.parameters.push({ "name": "Year", "value": year });
				}
				setTimeout(new Function('document.getElementById(\'' + gvhxCompanionAds[advertisementIndex] + '\').rotate()'), 1000);
			}
		}
	}
	catch (e) { gvhxRefreshing = false; }
	setTimeout('gvhxRefreshing=false;', 2000);
	//alert("adsection: " + section + ", ord: " + ord + ", type: " + type + ", make: " + make + ", model: " + model + ", year: " + year);
}
function resumeAds(params) {

	var ticks = Math.round(Math.random() * 10000000000000000);
	for (advertisementIndex = 0; advertisementIndex < gvhxAds.length; advertisementIndex++) {
		var advertisement = document.getElementById(gvhxAds[advertisementIndex]);
		if (advertisement.parameters && !advertisement.isCompanion) {
			for (overrideParamIndex = 0; overrideParamIndex < params.length; overrideParamIndex++) {
				var pa = true;
				var pn = params[overrideParamIndex].name
				var pv = params[overrideParamIndex].value
				for (parameterIndex = 0; parameterIndex < advertisement.parameters.length; parameterIndex++) {
					var parameter = advertisement.parameters[parameterIndex];
					if (parameter.name == "Ticks") {
						parameter.value = ticks;
					}
					else if (parameter.name == "Suspend") {
						parameter.value = "False"
					}
					else {

						if (parameter.name == pn) {
							parameter.value = pv;
							pa = false;
						}
					}
				}
				if (pa) advertisement.parameters.push({ name: pn, value: pv });
			}
			advertisement.rotate();
		}
	}
}
function refreshAds(bodystyle, make, model, limitTo) {
	if (!gvhxRefreshing) {
		try {
			gvhxRefreshing = true;
			if (typeof (vsSelectorVehicle) == "undefined") vsSelectorVehicle = new Object();
			//alert('refreshads ' + bodystyle + ' : ' + make + ' : ' + model);
			var refreshOnly = true;
			if ((typeof (bodystyle) != 'undefined' && bodystyle != null) || (typeof (make) != 'undefined' && make != null) || (typeof (model) != 'undefined' && model != null)) {
				if (typeof (bodystyle) != 'undefined' && bodystyle != null && bodystyle != '' && bodystyle.toString().toLowerCase() != 'select category' && bodystyle.toString().toLowerCase() != 'loading...') {
					vsSelectorVehicle.bodyStyle = bodystyle;
					vsSelectorVehicle.makeName = '';
					vsSelectorVehicle.model = '';
					refreshOnly = false;
				}
				if (typeof (make) != 'undefined' && make != null && make != '' && make.toLowerCase() != 'select make' && make.toLowerCase() != 'loading...') {
					vsSelectorVehicle.makeName = make;
					vsSelectorVehicle.model = '';
					refreshOnly = false;
				}
				if (typeof (model) != 'undefined' && model != null && model != '' && model.toLowerCase() != 'select model' && model.toLowerCase() != 'loading...') {
					vsSelectorVehicle.model = model;
					refreshOnly = false;
				}
			}
			//alert('refreshads ' + vsSelectorVehicle.bodyStyle + ' : ' + vsSelectorVehicle.makeName + ' : ' + vsSelectorVehicle.model);
			var ticks = Math.round(Math.random() * 10000000000000000);
			for (advertisementIndex = 0; advertisementIndex < gvhxAds.length; advertisementIndex++) {
				var advertisement = document.getElementById(gvhxAds[advertisementIndex]);
				var parameterSetCount = 0;
				if (advertisement.parameters && !advertisement.isCompanion) {
					for (parameterIndex = 0; parameterIndex < advertisement.parameters.length; parameterIndex++) {
						var parameter = advertisement.parameters[parameterIndex];
						switch (parameter.name) {
							case "Z3":
								if (!refreshOnly) {
									if (vsSelectorVehicle.makeName) parameter.value = vsSelectorVehicle.makeName;
									if (vsSelectorVehicle.model && vsSelectorVehicle.model != null && vsSelectorVehicle.model != 'Select Model') parameter.value = vsSelectorVehicle.model;
								}
								parameterSetCount++;
								break;
							case "Make":
								if (!refreshOnly) {
									parameter.value = '';
									if (vsSelectorVehicle.makeName) {
										parameter.value = vsSelectorVehicle.makeName;
									}
								}
								parameterSetCount++;
								break;
							case "Model":
								if (!refreshOnly) {
									parameter.value = '';
									if (vsSelectorVehicle.model && vsSelectorVehicle.model != null && vsSelectorVehicle.model != 'Select Model') {
										parameter.value = vsSelectorVehicle.model;
									}
								}
								parameterSetCount++;
								break;
							case "BodyStyle":
								if (!refreshOnly) {
									parameter.value = '';
									if (vsSelectorVehicle.bodyStyle) {
										parameter.value = vsSelectorVehicle.bodyStyle;
									}
								}
								parameterSetCount++;
								break;
							case "Year":
								if (!refreshOnly) {
									parameter.value = '';
									if (vsSelectorVehicle.year) {
										parameter.value = vsSelectorVehicle.year;
									}
								}
								parameterSetCount++;
								break;
							case "Ticks":
								parameter.value = ticks;
								parameterSetCount++;
								break;
							case "Suspend":
								parameter.value = false;
								parameterSetCount++;
								break;
						}
					}
					if (typeof (limitTo) == 'undefined' || limitTo == gvhxAds[advertisementIndex]) {
						advertisement.rotate();
					}
				}
			}
		}
		catch (err) {
			alert(err);
			gvhxRefreshing = false;
		}
		setTimeout('gvhxRefreshing=false', 2000);
	}
}

function hideEmptyAdSpaces() {
	for (advertisementIndex = 0; advertisementIndex < gvhxAds.length; advertisementIndex++) {
		var advertisement = document.getElementById(gvhxAds[advertisementIndex]);
		try {
			for (var i = 0; i < advertisement.childNodes.length; i++) {
				if (advertisement.childNodes[i].tagName == "A") {
					if (advertisement.childNodes[i].firstChild.tagName == "IMG") {
						if (advertisement.childNodes[i].firstChild.src.contains("/817-grey.gif") || advertisement.childNodes[i].firstChild.src.contains("/1x1.jpg"))
							advertisement.style.display = "none";
					}
				}
			}
		} catch (err) {

		}
	}
}

// Popup Window
var aOpenWindows = new Array();

function OpenWindow(sURL, sWindowName, bToolbar, bScrollBars, lWidth, lHeight, lTop, lLeft) {
	if (typeof lTop == 'undefined') {
		lTop = (screen.height - lHeight) / 2
	}
	if (typeof lLeft == 'undefined') {
		lLeft = (screen.width - lWidth) / 2
	}
	if (bToolbar == true) {
		bToolbar = 'yes'
		bMenubar = 'yes'
	} else {
		bToolbar = 'no'
		bMenubar = 'no'
	}
	if (bScrollBars == true) {
		bScrollBars = 'yes'
	} else {
		bScrollBars = 'no'
	}
	var lsFeatures = 'toolbar=' + bToolbar + ',scrollbars=' + bScrollBars + ',resizable=yes,status=yes';
	lsFeatures += ',top=' + lTop
	lsFeatures += ',left=' + lLeft
	if (lWidth > 0) { lsFeatures += ',width=' + lWidth };
	if (lHeight > 0) { lsFeatures += ',height=' + lHeight };
	lsFeatures += ',menubar=' + bMenubar;
	popupWin = window.open(sURL, sWindowName, lsFeatures);
	popupWin.focus();
}

//end Legacy


var __vehixRegisterNameSpace = function(nspath) {
	var p = window;
	var nsp = nspath.split('.');

	for (var i = 0; i < nsp.length; i++) {
		var c = nsp[i];
		var ns = p[c];
		if (ns && !ns.__namespace) { throw 'invalid namespace'; }
		if (!ns) {
			ns = p[c] =
			{
				__namespace: true
				, __typeName: nsp.slice(0, i + 1).join('.')
				, getName: function() { return this.__typeName; }
			};
			var n;
			try { n = eval(ns.__typeName); }
			catch (e) { n = null; }
			if (n !== ns) {
				delete p[c];
				throw 'invalid namespace: ' + nspath;
			}
		}
		p = ns;
	}
}

try { Type.registerNamespace("Vehix.Web.Consumer.Portal"); }
catch (er) {
	__vehixRegisterNameSpace("Vehix.Web.Consumer.Portal");
}

var $Get$Vehix$Web$Consumer$Portal$Main = function() {
	try {
		Vehix.Web.Consumer.Portal.Main = new Vehix$Web$Consumer$Portal$Main();
	} catch (er) {
		var inc = 0;
		if (arguments.length > 0 && !isNaN(arguments[0])) {
			inc = arguments[0];
		}
		if (inc < 15) {
			setTimeout(function() {
				$Get$Vehix$Web$Consumer$Portal$Main(inc + 1);
			}, 600);
		}
		else {
			return er;
		}
	}
	if (typeof (Vehix.Web.Consumer.Portal.Main) != "undefined") {
		Vehix.Web.Consumer.Portal.Main._init();
	}
}

Vehix$Web$Consumer$Portal$Main = function() {
	this.IsInitialized = false;
}

Vehix$Web$Consumer$Portal$Main.prototype =
{
	_init: function() {

		try {
			this.IsInitialized = true;
			//			var OnGetClientStateSuccess = this._bind(function(result) {
			//				this.IsInitialized = true;
			//				this.ClientState = result;
			//				window.VehixClientState = result;
			//			});

//			var OnGetClientStateFailed = this._bind(function(result) {
//				//alert(result.get_message());
//			});
			//Vehix.Presentation.ClientStateService.GetState(OnGetClientStateSuccess, OnGetClientStateFailed);
		}
		catch (err) {
			var inc = 0;
			if (arguments.length > 0 && !isNaN(arguments[0])) {
				inc = arguments[0];
			}
			if (inc < 15) {
				setTimeout(function() {
					Vehix.Web.Consumer.Portal.Main._init(inc + 1);
				}, 600);
			}
			else {
				return err;
			}
		}
	},

	_bind: function(fnc) {
		var obj = this;
		temp = function() {
			return fnc.apply(obj, arguments);
		};
		return temp;
	},

	Process: function(fnc) {
		if (Vehix.Web.Consumer.Portal.Main.IsInitialized) {
			fnc();
		}
		else {
			var inc = 0;
			if (arguments.length > 1 && !isNaN(arguments[1])) {
				inc = arguments[1];
			}
			if (inc < 20) {
				setTimeout(function() {
					Vehix.Web.Consumer.Portal.Main.Process(fnc, inc + 1);
				}, 600);
			}
			else {
				//alert("Vehix.Web.Consumer.Portal.Main.Process() timed out.");
			}
		}
	}
}

$Get$Vehix$Web$Consumer$Portal$Main();

