
var VCompares = null;
var CurrentURL = '';
//1sr2g3c4l5lg


function vCompare() { }
vCompare.prototype.ProductCode = '';
vCompare.prototype.DisplayType = '';
vCompare.prototype.IndexID = 0;
vCompare.prototype.Checkbox = null;
vCompare.prototype.CheckboxClick = function(checkbox) {
	VCompares.CheckboxClick(checkbox, this.ProductCode);
}
vCompare.prototype.WriteLink = function () {
	var instance = this;
	var id = 'VCompare' + this.IndexID.toString();
	document.write('<div id="' + id + '_div' + '"></div>');
	jQuery('#' + id + '_div').html('<nobr><input type="checkbox" id="' + id + '_checkbox' + '" style="position:relative;top:3px;" /><a href="javascript:void(0);" id="' + id + '_link' + '" style="text-decoration:underline;">' + PageText_822 + '</a></nobr>');
	jQuery('#' + id + '_checkbox').click(function () {
		if (this.checked && (VCompares.CachedIDs.length + 1 > Config_VCompare_MaxProducts)) {
			window.setTimeout(MaxLimitDialog, 50);
			return false;
		}
		instance.CheckboxClick(this);
	});
	this.Checkbox = document.getElementById(id + '_checkbox');
	jQuery('#' + id + '_link').click(function () {
		VCompares.LinkFollow(this);
	});
}

var OVERLAY = true;
function vCompares() { }
vCompares.prototype.vCompareLinks = null;
vCompares.prototype.CachedIDs = null;
vCompares.prototype.VCompareURLBase = '/ProductComparison.asp';
vCompares.prototype.VCompareURL = '';
vCompares.prototype.LinkFollow = function(link) {
	this.VCompareURL = '';
	for (var i = 0; i < Config_VCompare_MaxProducts; i++) {
		if (this.CachedIDs[i]) {
			var ProductCodePrefix = 'ProductCode' + (i + 1).toString();
			if (this.VCompareURL) {
				this.VCompareURL += '&';
			}
			this.VCompareURL += ProductCodePrefix + '=';
			this.VCompareURL += encodeURIComponent(this.CachedIDs[i]);
		}
	}
	if (this.VCompareURL) {
		this.VCompareURL = this.VCompareURLBase + '?' + this.VCompareURL;
	}
	if (this.CachedIDs.length == 1) {
		location.href = '/ProductDetails.asp?ProductCode=' + this.CachedIDs[0];
		return false;
	}
	if (this.VCompareURL) {
		switch (OVERLAY) {
			case true:
				CurrentURL = this.VCompareURL;
				this.VCompareURL += '&o=1';
				Overlay(this.VCompareURL);
				return false;
			default:
				location.href = this.VCompareURL;
				return false;
		}
	}
	return false;
}
vCompares.prototype.CheckboxClick = function(checkbox, ProductCode) {
	var vCompareIDs = [];
	for (var i = 0, l = this.vCompareLinks.length; i < l; i++) {
		var v = this.vCompareLinks[i];
		if (v.Checkbox.checked) {
			vCompareIDs[vCompareIDs.length] = v.ProductCode;
		}
	}
	vCompareIDs = CombineArrays(vCompareIDs, this.CachedIDs);
	if (!checkbox.checked) {
		vCompareIDs = RemoveFromArray(vCompareIDs, ProductCode);
	}
	this.PersistCachedIDs(vCompareIDs);
	this.CachedIDs = vCompareIDs;
}

vCompares.prototype.Remove = function(ProductCode) {
	for (var i = 0; i < this.vCompareLinks.length; i++) {
		var v = this.vCompareLinks[i];
		if (v.ProductCode.toLowerCase() == ProductCode.toLowerCase()) {
			v.Checkbox.checked = false;
		}
	}
	this.CheckboxClick(v.Checkbox, ProductCode);
}

vCompares.prototype.PersistCachedIDs = function(array) {
	var s = '';
	for (var i = 0, l = array.length; i < l; i++) {
		if (s) { s += ',' }
		s += '\'' + array[i].replace(/\'/, '') + '\'';
	}
	s = '{vCompareIDs:[' + s + ']}';
	if (window.sessionStorage) {
		sessionStorage['vCompareIDs'] = s;
	} else {
		var cookie = '';
		cookie = 'vCompareIDs=' + s;
		document.cookie = cookie;
	}
}

vCompares.prototype.RetrieveCachedIDs = function() {
	var s = '';
	if (window.sessionStorage) {
		s = sessionStorage['vCompareIDs'];
	} else {
		var cookies = document.cookie.split(';');
		for (var i = 0, l = cookies.length; i < l; i++) {
			var c = cookies[i];
			var kv = c.split('=');
			switch (kv[0].replace(/^\s+|\s+$/g, '')) {
				case 'vCompareIDs':
					s = kv[1];
					break;
			}
		}
	}
	if (/^\{[\w\W]*\}$/.test(s)) {
		json = eval('(' + s + ')');
		this.CachedIDs = json['vCompareIDs']
	} else {
		this.CachedIDs = [];
	}
	for (var i = 0, l = this.vCompareLinks.length; i < l; i++) {
		var v = this.vCompareLinks[i];
		if (ArrayContains(this.CachedIDs, v.ProductCode)) {
			v.Checkbox.checked = true;
		}
	}

	return this.CachedIDs;
}

vCompares.prototype.InitTimer = 0;
vCompares.prototype.Init = function() {
	this.InitTimer++;
	var instance = this;
	var InitTimer = this.InitTimer - 0;
	window.setTimeout(function() {
		if (InitTimer == instance.InitTimer) {
			instance.RetrieveCachedIDs();
		}
	}, 100)
}

var IndexID = -1;
function VCompare(ProductCode, DisplayType) {
	IndexID++;
	if (VCompares == null) {
		VCompares = new vCompares();
		VCompares.vCompareLinks = [];
		VCompares.RetrieveCachedIDs();
	}
	var v = new vCompare();
	v.ProductCode = ProductCode;
	v.DisplayType = DisplayType;
	v.IndexID = IndexID;
	v.WriteLink();
	VCompares.vCompareLinks[IndexID] = v;
	VCompares.Init();
}

function RemoveFromArray(array, item) {
	var dest = []
	for (var i = array.length - 1; i >= 0; i--) {
		if (array[i].toLowerCase() != item.toLowerCase()) {
			dest[dest.length] = array[i];
		}
	}
	return dest;
}

function ArrayContains(array, item) {
	for (var i = 0, l = array.length; i < l; i++) {
		if (array[i].toLowerCase() == item.toLowerCase()) {
			return true;
		}
	}
	return false;
}

function CombineArrays(a1, a2) {
	var dest = []
	for (var i = 0, l = a1.length; i < l; i++) {
		if (!this.ArrayContains(dest, a1[i])) {
			dest[dest.length] = a1[i];
		}
	}
	for (var i = 0, l = a2.length; i < l; i++) {
		if (!this.ArrayContains(dest, a2[i])) {
			dest[dest.length] = a2[i];
		}
	}
	return dest;
}


function Overlay(url) {

	jQuery.ajax({
		url: url,
		cache: false,
		dataType: 'text',
		success: function(data, textStatus, XMLHttpRequest) {
			OverlayComplete(data, textStatus, XMLHttpRequest);
		},
		error: function() {
			return false;
		}
	});

}

function OverlayComplete(data, textStatus, XMLHttpRequest) {

	var height = jQuery(document).height();

	var el = document.getElementById('VCompareOverlay');
	if (!el) {
		var s = '<div id="VCompareOverlay" class="VCompareOverlay"><img src="/a/i/blank.gif" width="1" height="' + height + '" style="float:left;" /></div>' +
				'<div id="VCompareOverlayBox" class="VCompareOverlayBox" align="center">' +
				'<table class="VCompareOverlayTable">' +
				'<tr><td id="VCompareOverlayX" class="VCompareOverlayX" align="right" valign="top">' +
				'<div id="VCompareOverlayXDivBound" class="VCompareOverlayXDivBound">' +
				'<div id="VCompareOverlayXDiv" class="VCompareOverlayXDiv">X</div></div>' +
				'</td></tr>' +
				'<tr><td id="VCompareOverlayContent" class="VCompareOverlayContent" align="left" valign="top"></td></tr>' +
				'</table>' +
				'</div>';
		jQuery('body').append(s);
		jQuery('#VCompareOverlayXDivBound').click(function() {
			jQuery('#VCompareOverlayBox').fadeOut('fast');
			el = document.getElementById('VCompareOverlay');
			el.style.display = 'none';
		});
		el = document.getElementById('VCompareOverlay');
	}

	el.style.display = 'block';

	el = document.getElementById('VCompareOverlayContent');

	el.innerHTML = data;

	el = document.getElementById('VCompareOverlayBox');

	jQuery(window).scrollTop(0);

	el.style.display = 'block';

	if (Config_EnableSoftAddToCart) {
		//to make sure soft add to cart is enabled on links in the vcompare overlay
		jQuery('a').each(FindAddToCartLinks)
	}
}


function RemoveItem(ProductCode) {
	VCompares.Remove(ProductCode);

	var url = '';
	var ctr = 1;
	var q = CurrentURL.split('?')[1].split('&');
	for (var i = 0, l = q.length; i < l; i++) {
		var kv = q[i].split('=');
		if ((kv.length > 1) && (kv[1].toLowerCase() != encodeURIComponent(ProductCode.toLowerCase()))) {
			if (url) {
				url += '&';
			}
			url += 'ProductCode' + ctr.toString() + '=' + (kv[1]);
			ctr++;
		}
	}
	if (!url) {
		return;
	}
	url = CurrentURL.split('?')[0] + '?' + url

	CurrentURL = url;

	url += '&o=1';
	
	Overlay(url);

}


function RemoveAllItems() {
    VCompares.CachedIDs = [];
    VCompares.PersistCachedIDs([]);
    $("input[type=checkbox]").each(function (i, ele) {
        if (ele.id.match(/^VCompare.+$/i))
            ele.checked = false;
    })
    Overlay(CurrentURL.split('?')[0] + '?' + 'Action=ClearAll&o=1');
}


function MaxLimitDialog() {

	var text = PageText_785;
	text = text.replace(/\{0\}/g, Config_VCompare_MaxProducts);
	text = text.replace(/\{1\}/g, PageText_783);
	text = text.replace(/\{2\}/g, PageText_784);

	var el = document.getElementById('MaxLimitDialog');
	if (!el) {
		var s = '<div id="MaxLimitDialog" class="MaxLimitDialog">' + text +
				'</div>';
		jQuery('body').append(s);
	}

	var buttons = {}
	buttons[PageText_783] = function() {
		jQuery(this).dialog('close');
		VCompares.LinkFollow();
	}
	buttons[PageText_784] = function() {
		jQuery(this).dialog('close');
	}

	jQuery("#MaxLimitDialog").dialog({
		autoOpen: false,
		resizable: false,
		title: PageText_819,
		buttons: buttons
	});

	jQuery('#MaxLimitDialog').dialog('open');
		
}
