
//VARIANT JAVASCRIPT



function MouseOverVariant(arrFields, arrValues) 
{
	window.status = '';
	var i;
	for (i=0; i<arrFields.length; i++) {
		//Set the visible text
		SetText(arrFields[i],arrValues[i]);
	}
}

function MouseOutVariant(arrFields) 
{
	window.status = '';
	var i;
	for (i=0; i<arrFields.length; i++) {
		
		//Set the visible text back to the last selection
		SetText(arrFields[i],document.getElementById('hidden' + arrFields[i]).value);
	}	
}

function clearVariant(e) {
	var variantMatrix = document.getElementById(e);
	var variantSwatch = variantMatrix.getElementsByTagName('TD');
	for (var i = 0; i < variantSwatch.length; i++) {
		variantSwatch[i].className = "";
		var swatchImg = variantSwatch[i].getElementsByTagName('IMG');
		var imageSrc = swatchImg[0].getAttribute('src');
		var newImageSrc = imageSrc.replace(/_o.gif/, '.gif');
		swatchImg[0].setAttribute('src', newImageSrc);
	}
}

function SelectVariant(e, table, arrFields, arrValues, arrOriginalValues, strVariantID, selectedVariantId, variantSelectionError) 
{
	if (document.getElementById(variantSelectionError)) 
	{
		document.getElementById(variantSelectionError).style.display = 'none';
	}

	var imageSrc = e.firstChild.getAttribute('src');

	//deselect the image
	var newImageSrc = "";
	if (imageSrc.indexOf('_o.gif') > -1)
	{
		clearVariant(table);

		var i;
		for (i=0; i<arrFields.length; i++) 
		{
			//Set the visible text
			SetText(arrFields[i],arrOriginalValues[i]);
			
			//Set the visible text back to the last selection
			SetHiddenText(arrFields[i],arrOriginalValues[i]);
		}
		
		
		document.getElementById(selectedVariantId).value = "";
		return false;
	}

	clearVariant(table);
	newImageSrc = imageSrc.replace(/.gif/, '_o.gif');
		
	e.firstChild.setAttribute('src', newImageSrc);
	
	e.parentNode.className = "selected";
 	if (arrFields != null)
	{
		var i;
		for (i=0; i<arrFields.length; i++) {

			//Set the visible text
			SetText(arrFields[i],arrValues[i]);
			
			//Set the hidden text
			SetHiddenText(arrFields[i],arrValues[i]);
		}
	}
	
	//Set the product and variant id
	document.getElementById(selectedVariantId).value = strVariantID;
	
	//set the variant id on the non ajax text box
	var textboxName = "txtVariantCode";
	var textbox = document.getElementById(textboxName);
	textbox.value = strVariantID.split(',')[1];
	
}

function SelectCollectionItem(selectedCheckbox, strValue)
{
	//Set the selected checkbox value in the hidden input
	document.getElementById(selectedCheckbox).value = strValue;
	return true;
}

function CheckSelectedVariant(isAuth, authPage)
{
	if (isAuth != "True")
	{
		var variant = document.getElementById("selected-variant-id1").value;
		var pid = variant.split(",")[0];
		var vid = variant.split(",")[1];
		var originalVariant;
		if (document.getElementById('original-variant-id1'))
			originalVariant = document.getElementById('original-variant-id1').value;
		else
			originalVariant = pid;
		
		//escape the '/' in the productcode
		originalVariant = originalVariant.replace("/", "%2F"); 
		pid = pid.replace("/", "%2F"); 
		vid = vid.replace("/", "%2F"); 
		
		authPage = authPage.replace('ph0', pid + '|' + originalVariant + '.' + vid);
		location.href = authPage;
		return;
	}
		
	var retValue = true;
	
	var MyResult;
	if (typeof(Page_ClientValidate) == 'function')
	{
		Page_ClientValidate();
		MyResult = Page_IsValid;
	}
	else 
	{ 
		MyResult = true;
	}

	//selected-variant-id
	var variant = document.getElementById('selected-variant-id1');
	
	if (variant.value == "")
	{
		document.getElementById('variant-selection-error1').style.display = '';
		retValue = false;
	}
	else
		document.getElementById('variant-selection-error1').style.display = 'none';

	return retValue && MyResult;
}

function CheckSelectedVariants(isAuth, authPage)
{
	var idx = 1, numChecked = 0, variantChecked = true;
	
	var MyResult;
	if (typeof(Page_ClientValidate) == 'function')
	{
		Page_ClientValidate();
		MyResult = Page_IsValid;
	}
	else 
	{
		MyResult = true;
	}
	
	while (true)
	{
		var variant = document.getElementById('selected-variant-id'+idx);
		if (variant == null)
			break;

		var selectedCheck = document.getElementById('checkbox-variant-id'+idx);
		
		if (selectedCheck.checked)
		{
			if (variant.value == "")
			{
				document.getElementById('variant-selection-error'+idx).style.display = '';
				variantChecked = false;
			}
			else 
			{
				numChecked++;
			}
		}
		idx++;
	}

	if (!MyResult || numChecked == 0 || !variantChecked)
	{
		idx = 0;

		while(true)
		{
			var selectedCheck = document.getElementById('variant-select-field'+idx);
			if (selectedCheck == null)
				break;
			
			if (document.getElementById('select-error'+idx) == null)
			{
				var outputElem = document.createElement("div");
				outputElem.className = "error";
				outputElem.innerHTML = "Please select an item.";
				outputElem.id = "select-error"+idx;
				selectedCheck.appendChild(outputElem);
			}
			idx++;
		}

		var outputElem = document.createElement("div");
		outputElem.className = "error";
		outputElem.innerHTML = "Please select an item.";

		var controlElement = document.getElementById('product-control-1');

		if (controlElement)
		{
			if (document.getElementById('select-error-product1') == null)
			{
				outputElem.id = "select-error-product";
				controlElement.appendChild(outputElem);
			}
		}
			
		controlElement = document.getElementById('collection-product-control');

		if (controlElement)
		{
			if (document.getElementById('select-error-collectionproduct') == null)
			{
				outputElem.id = "select-error-collectionproduct";
				controlElement.appendChild(outputElem);
			}
		}
		
		return false;
	}

	if (isAuth != "True")
	{
		var pid = getSelectedProducts();
		var vid = getSelectedVariants();

		pid = pid.replace("/", "%2F"); 
		vid = vid.replace("/", "%2F"); 

		authPage = authPage.replace('ph0', pid);
		authPage = authPage.replace('ph1', vid);
		location.href = authPage;
	}

	return true;
}

function ClearErrors()
{
	var idx = 0;
	while(true)
	{
		var elem = document.getElementById('select-error'+idx);
		if (elem == null)
			break;
		
		elem.innerHTML = '';
		idx++;
	}
	
	if (document.getElementById("select-error-product"))
		document.getElementById("select-error-product").innerHTML = '';
		
	if (document.getElementById("select-error-collectionproduct"))
		document.getElementById("select-error-collectionproduct").innerHTML = '';
}

function SelectGiftWrap(cb, isChecked)
{
	document.getElementById(cb).value = isChecked;
}

function SetText(field, value)
{
	//Get the field
	var divField = document.getElementById(field);

	if (divField)
	{
		//Set the text on the field
		divField.innerHTML = ''
		divField.innerHTML = value;
	}
}

function SetHiddenText(field, value)
{
	document.getElementById('hidden' + field).value = value;
}

function ClearFields(field, value)
{
	SetText(field, value);
	SetHiddenText(field, value);
}

function getSelectedGiftWrap()
{
	if (document.getElementById('selected-giftwrap-id'))
		return document.getElementById('selected-giftwrap-id').value;
	else
		return "false";
}

function getSelectedGiftWraps()
{
	var idx = 0, giftWraps = "";
	while (true)
	{
		var selectedCheck = document.getElementById('checkbox-variant-id'+idx);	
		var giftwrap = document.getElementById('selected-giftwrap-id'+idx);
		
		if (selectedCheck == null || selectedCheck.value == "")
			break;

		if (giftwrap != null && giftwrap.value)
			giftWraps += giftwrap.value + ",";
		else
			giftWraps += "false,";
		idx++;
	}
	
	if (giftWraps.length > 0)
		giftWraps = giftWraps.substring(0, giftWraps.length-1);
	
	return giftWraps;
}

function getSelectedProduct()
{
	var retValue = true;

	//selected-variant-id
	var variant = document.getElementById('selected-variant-id1');
	
	retValue = variant.value.split(",")[0];
	
	return retValue;
}
	
function getSelectedVariant()
{
	var retValue = true;

	//selected-variant-id
	var variant = document.getElementById('selected-variant-id1');
	
	retValue = variant.value.split(",")[1];
	
	return retValue;
}

function getSelectedVariants()
{
	var variants = "";
	var idx = 0;

	while (true)
	{
		var variant = document.getElementById('selected-variant-id'+idx);
		if (variant == null)
			break;

		var selectedCheck = document.getElementById('checkbox-variant-id'+idx);	

		if (variant.value != "" && selectedCheck.checked)
		{
			var originalVariant = document.getElementById('original-variant-id'+idx);
			if (originalVariant)
				originalVariant = originalVariant.value + ".";
			else
				originalVariant	= "";
				
			var variantsSplit = variant.value.split(",")[1];
			variants += originalVariant + variantsSplit + ",";
		}
		idx++;
	}
	
	if (variants.length > 0)
		variants = variants.substring(0, variants.length-1);
	return variants;
}
var AjaxMatrix = {
	url : null,
	serverUrl : null,
	params : null,
	output : null,
	timeoutDuration : 10000,
	timeout : false,
	getMatrix : function(e, cid, pid, vid, output, originalPID, productCodeOutput) {
		if (!document.getElementById) { return true; }
		
		AjaxMatrix.output = document.getElementById(output);
		
		var matrixReq = new Ajax(e, {'cid': cid, 'pid': pid, 'getMatrix': vid, 'originalPID': originalPID}, output);
		matrixReq.busy = function() {
			AjaxMatrix.output.appendChild(AJAX.getLoadText());
			AjaxMatrix.output.appendChild(AJAX.getLoadImage());
		};
		matrixReq.complete = function() {
			DOM.emptyElement(AjaxMatrix.output);
			AjaxMatrix.output.innerHTML = "matrix req complete, response text: " + matrixReq.req.responseText + " ";
			if (productCodeOutput) {
				document.getElementById(productCodeOutput).innerHTML = vid;
			}
		};
		matrixReq.get();
		return false;
	}
};

function getSelectedProduct()
{
	var retValue = true;

	//selected-variant-id
	var variant = document.getElementById('selected-variant-id');
	
	retValue = variant.value.split(",")[0];
	
	return retValue;
}
	
function getSelectedVariant()
{
	var retValue = true;

	//selected-variant-id
	var variant = document.getElementById('selected-variant-id');
	
	retValue = variant.value.split(",")[1];
	
	return retValue;
}

function getSelectedVariants()
{
	var variants = "";
	var idx = 0;

	while (true)
	{
		var variant = document.getElementById('selected-variant-id'+idx);
		if (variant == null)
			break;

		if (variant.value != "")
		{
			var originalVariant = document.getElementById('original-variant-id'+idx);
			if (originalVariant)
				originalVariant = originalVariant.value + ".";
			else
				originalVariant	= "";
				
			var variantsSplit = variant.value.split(",")[1];
			variants += originalVariant + variantsSplit + ",";
		}
		idx++;
	}
	
	if (variants.length > 0)
		variants = variants.substring(0, variants.length-1);
	return variants;
}

function getSelectedProducts()
{
	var products = "";
	var idx = 0;

	while (true)
	{
		var variant = document.getElementById('selected-variant-id'+idx);
		if (variant == null)
			break;
			
		if (variant.value != "")
		{
			var productsSplit = variant.value.split(",")[0];
			products += productsSplit + ",";
		}

		idx++;
	}
	
	if (products.length > 0)
		products = products.substring(0, products.length-1);
	return products;
}


function getSelectedProducts()
{
	var products = "";
	var idx = 0;

	while (true)
	{
		var variant = document.getElementById('selected-variant-id'+idx);
		if (variant == null)
			break;
		
		var selectedCheck = document.getElementById('checkbox-variant-id'+idx);	
		
		if (variant.value != "" && selectedCheck.checked)
		{
			var productsSplit = variant.value.split(",")[0];
			products += productsSplit + ",";
		}

		idx++;
	}
	
	if (products.length > 0)
		products = products.substring(0, products.length-1);
	return products;
}
