var DISABLEVALIDATIONTOKEN = "disableValidation";

function buildCompareUrl( modelSkuArray )
{
	modelSkuArray.sort();
	var modelSkus = modelSkuArray.join( "," );
	var url = "../ProductCompare/default.html";

	var query = new Array();

	var validationDisabled = isValidationDisabled();
	if ( validationDisabled )
		query.push( DISABLEVALIDATIONTOKEN + "=" + validationDisabled );

	if ( modelSkus.length > 0 )
		query.push( "compare-product=" + modelSkus );

	if ( query.length > 0 )
		url = url + "?" + query.join( "&" );

	return url;
}

function getSkuArray( form )
{
	var modelSkuArray = new Array();
	var inputNodeList = form.getElementsByTagName( "input" );
	for ( var i = 0; i < inputNodeList.length; i ++ )
	{
		var inputNode = inputNodeList.item( i );
		if ( inputNode.checked )
			modelSkuArray.push( inputNode.value );
	}
	return modelSkuArray;
}

function redirectToCompare( sender )
{
	while ( ( sender != null ) && ( sender.nodeName.toLowerCase() != "form" ) ) {
		sender = sender.parentNode;
		if (sender.nodeName.toLowerCase() == "html") // there is no form container
		return false;
	}
	
	if ( sender != null )
	{
		var skuArray = getSkuArray( sender );
		if ( isValidationDisabled() || validateSkuArray( skuArray ) )
		{
			var url = buildCompareUrl( skuArray );
			window.location = url;
		}
		else
		{
			var inp = document.getElementById("inpCompareMessage");
			if (!inp || inp.innerHTML=="") return;
				alert(inp.innerHTML);
		}
	}
}

function isValidationDisabled()
{
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++)
	{
		var pair = vars[i].split("=");
		if ( ( pair[0] == DISABLEVALIDATIONTOKEN ) && ( pair[1] == "true" ) )
			return true;
	}
	return false;
}

function validateSkuArray( modelSkuArray )
{
	var minCompItems = 2;
	var maxCompItems = 4;
	if ( ( modelSkuArray.length >= minCompItems ) && ( modelSkuArray.length <= maxCompItems ) )
		return true;
	return false;
}

