﻿/* ArtworkLocationsManager.ascx */
function artworkLocationsManager_artworkLocationsValidator_onValidate(sender,args)
{
	var prefix = sender.id.replace("_ArtworkLocationsValidator","");
	args.IsValid = (parseInt(document.getElementById(prefix + "_ArtworkLocationsCount").value) > 0);
}

function artworkLocationsManager_inkColorValidator_onValidate(sender,args)
{
	var prefix = sender.id.replace("_InkColorValidator","");
	var count = artworkInkSelector_getInkCount(prefix + "_Inks");
	args.IsValid = (count > 0 && count <= 6);
}

/* ArtworkInkSelector.ascx */
function artworkInkSelector_getInkCount(prefix)
{
	var countField = document.getElementById(prefix + "_InkColorCount");
	var count = parseInt(countField.value);
	
	//add PMS colors
	var pmsField;
	pmsField = document.getElementById(prefix + "_PMS1");
	if (pmsField && pmsField.value.length) count++;
	pmsField = document.getElementById(prefix + "_PMS2");
	if (pmsField && pmsField.value.length) count++;
	pmsField = document.getElementById(prefix + "_PMS3");
	if (pmsField && pmsField.value.length) count++;
	pmsField = document.getElementById(prefix + "_PMS4");
	if (pmsField && pmsField.value.length) count++;
	pmsField = document.getElementById(prefix + "_PMS5");
	if (pmsField && pmsField.value.length) count++;
	pmsField = document.getElementById(prefix + "_PMS6");
	if (pmsField && pmsField.value.length) count++;
	
	return count;
}

function artworkInkSelector_onClick(prefix,color,cleanColorName)
{
	var countField = document.getElementById(prefix + "_InkColorCount");
	var baseCount = parseInt(countField.value);
	var currentCount = artworkInkSelector_getInkCount(prefix);
	var inkNameField = document.getElementById(prefix + "_InkColorNames");
	var inkNames = inkNameField.value;
	var colorImage = document.getElementById("InkColor" + cleanColorName);
	var increment = 0;	
	
	if (colorImage)
	{
		if (colorImage.className == "ColorOption")
		{
			if (currentCount < 6)
			{
				colorImage.className = "SelectedColorOption";

				//add color to list
				if (inkNames)
					inkNameField.value += ", " + color;
				else
					inkNameField.value = color;
					
				countField.value = baseCount + 1;
			}
			else
				alert("You may not select more than 6 inks.")
		}
		else
		{
			colorImage.className = "ColorOption";
			
			//remove color from list
			inkNameField.value = artworkInkSelector_removeColor(inkNames,color);
			countField.value = baseCount - 1;
		}		
	}
}

function artworkInkSelector_onLoad(prefix)
{
	var countField = document.getElementById(prefix + "_InkColorCount");
	var inkNameField = document.getElementById(prefix + "_InkColorNames");
	var colors = inkNameField.value.split(", ");
	
	//clear hidden field, then reselect each color
	countField.value = "0";
	inkNameField.value = "";
	for (var i=0; i<colors.length; i++)
		artworkInkSelector_onClick(prefix,colors[i],colors[i].replace(" ",""));
}

function artworkInkSelector_removeColor(names,color)
{
	var colors = names.split(", ");
	
	//remove entry
	for (var i=0; i<colors.length; i++)
		if (colors[i] == color)
			colors.splice(i,1);
	
	//recreate csv names value
	names = "";
	for (var i=0; i<colors.length; i++)
	{
		if (names.length)
			names += ", " + colors[i];
		else
			names = colors[i];
	}

	return names;
}

/* CategoryView.ascx */
function categoryView_catalogItem_hideDetail(prefix)
{
	modalDialog_toggle(prefix + "_Dialog",false);
}

function categoryView_catalogItem_viewDetail(prefix,id)
{
	var field = document.getElementById(prefix + "_CatalogItemID");
	if (field)
	{
		field.value = id;
		window.setTimeout("__doPostBack('" + field.name + "', '')",0);
	}
}

function categoryView_itemButton_hide(type,id)
{
	document.getElementById(type + id).src = oImages[type + "Off"].src;
}

function categoryView_itemButton_show(type,id)
{
	document.getElementById(type + id).src = oImages[type + "On"].src;
}

/* ColorSelector.ascx */
function colorSelector_onSelect(prefix,optionID)
{
	var idField = document.getElementById(prefix + "_ColorOptionID");
	var lastOptionID = idField.value;
	var el;

	//deselect previous
	if (lastOptionID.length && lastOptionID != "0")
	{
		el = document.getElementById("ColorOption" + lastOptionID);
		if (el)
			el.className = "ColorOption";	
	}		

	//select new option
	idField.value = optionID;
	document.getElementById("ColorOption" + optionID).className = "SelectedColorOption";
}

function colorSelector_onValidate(sender,args)
{
	var prefix = sender.id.substring(0, sender.id.lastIndexOf("_"));
	var field = document.getElementById(prefix + "_ColorOptionID");
	args.IsValid = (parseInt(field.value) > 0);	
	
	//if no option selected, see if CustomColorName field has text entered
	if (!args.IsValid)
	{
		var customColorField = document.getElementById(prefix + "_CustomColorName");
		if (customColorField && customColorField.value.length)
			args.IsValid = true;
	}
}

/* NamesAndNumbersManager.ascx */
function namesAndNumbersManager_color_onSelect(prefix,type,color)
{
	var colorField = document.getElementById(prefix + "_" + type + "ColorValue");
	if (colorField)
	{
		var lastColor = colorField.value;
		var el;

		//deselect previous
		if (lastColor.length)
		{
			el = document.getElementById(type + "Color_" + lastColor.replace(" ",""));
			if (el)
				el.className = "ColorOption";
		}		

		//select new option
		colorField.value = color;
		if (color && color.length)
			document.getElementById(type + "Color_" + color.replace(" ","")).className = "SelectedColorOption";
	}	
}

function namesAndNumbersManager_namesColor_onValidate(sender,args)
{
	var prefix = sender.id.substring(0, sender.id.lastIndexOf("_"));
	var field = document.getElementById(prefix + "_NamesColorValue");
	args.IsValid = (field.value && field.value.length);
}

function namesAndNumbersManager_numbersColor_onValidate(sender,args)
{
	var prefix = sender.id.substring(0, sender.id.lastIndexOf("_"));
	var field = document.getElementById(prefix + "_NumbersColorValue");
	args.IsValid = (field.value && field.value.length);
}

function namesAndNumbersManager_onChange(prefix)
{
	var namesField = document.getElementById(prefix + "_IncludeNames");
	var numbersField = document.getElementById(prefix + "_IncludeNumbers");
	var gridFields = document.getElementById(prefix + "_GridBlock");
	var grid = document.getElementById(prefix + "_Grid");

	if (namesField && numbersField)
	{
		var useNames = namesField.checked;
		var useNumbers = numbersField.checked;
		var namesOptions = document.getElementById(prefix + "_NamesOptionsBlock");
		var numbersOptions = document.getElementById(prefix + "_NumbersOptionsBlock");
		
		if (useNames || useNumbers)
		{
			//toggle name/number fields
			if (grid)
			{
				var trs = grid.getElementsByTagName("tr");
				var nameDisplay = useNames ? "" : "none";
				var numberDisplay = useNumbers ? "" : "none";
				for (var i=0; i<trs.length; i++)
				{
					var tr = trs[i];
					if (tr.cells.length >= 3)
					{
						tr.cells[1].style.display = nameDisplay;
						tr.cells[2].style.display = numberDisplay;
					}
				}
			}
			
			gridFields.style.display = "block";
		}
		else
			gridFields.style.display = "none";
			
		//name & number option blocks
		namesOptions.style.display = (useNames ? "block" : "none");
		numbersOptions.style.display = (useNumbers ? "block" : "none");
		
		//names & numbers validators
		ValidatorEnable(document.getElementById(prefix + "_NamesFontValidator"),useNames);
		ValidatorEnable(document.getElementById(prefix + "_NamesColorValidator"),useNames);
		ValidatorEnable(document.getElementById(prefix + "_NumbersFontValidator"),useNumbers);
		ValidatorEnable(document.getElementById(prefix + "_NumbersColorValidator"),useNumbers);
	}
}

/* SizesManager.ascx */
function sizesManager_isNotFinal_onClick(prefix)
{
	var field = document.getElementById(prefix + "_IsNotFinal");
	var sizesFields = document.getElementById(prefix + "_SizesFields");
	
	if (field)
	{
		ValidatorEnable(document.getElementById(prefix + "_Validator"),(!field.checked));
		sizesFields.style.display = field.checked ? "none" : "block";
	}
}

function sizesManager_onValidate(sender,args)
{
	var prefix = sender.id.substring(0, sender.id.lastIndexOf("_"));
	var fields = document.getElementById(prefix + "_Grid").getElementsByTagName("input");
	var value;
	var total = 0;
	
	args.IsValid = false; //assume no valid elements
	for (var i = 0; i < fields.length; i++)
	{
		value = fields[i].value;
		if (value.length)
		{
			//alert(value);
			total += parseInt(value);
		}
	}

	//require min qty of 6
	if (total >= 6)
		args.IsValid = true;
}