﻿String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); }
window.onload = Startup;

prefix = 'ctl00_cphMain_';
var delimeter = '|*|';

function Startup()
{
	UpdateMyItems();
	UpdateItems();
	UpdateCheckBoxes();
}

//	----------------------------------------
//			   Special Items
//	----------------------------------------
function UpdateItems()
{
	var hfitemlist = document.getElementById(prefix + 'hfSpecialItems');
	var divSpecialItems = document.getElementById('divSpecialItems');
	var itemarray = new Array();
	var itemOutputArray = new Array();
	var currentitem = "";
	var currentdescription = "";
	var currentprice = "";
	var currentcategory
	var previouscategory = "";
	
	divSpecialItems.innerHTML = "";
	
	itemarray = hfitemlist.value.split(delimeter);
	itemarray.length = itemarray.length -1;			 //the -1 is because the last array item is blank
	itemarray.sort(SortOrder);
	
	for (counter in itemarray)
	{
		currentitem = document.getElementById("itemdesc" + itemarray[counter]);
		currentcategory = currentitem.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.innerHTML;
		currentdescription = currentitem.innerHTML;
		
		if (previouscategory != currentcategory) currentcategoryheader = '<h5>' + currentcategory + '</h5>'; else currentcategoryheader = "";
		previouscategory = currentcategory;
		
		if (document.getElementById("price" + itemarray[counter]) != null)
			currentprice = ' - ' + document.getElementById("price" + itemarray[counter]).innerHTML;
		else currentprice = "";
		
		itemOutputArray[itemOutputArray.length] = currentcategoryheader + '<div class="myslitem"> - ' + currentdescription + '<span class="myslprice">' +
			currentprice + '</span> <a class="smaller noprint" href="Javascript:DeleteItem(' + itemarray[counter] + ')">(delete)</a>' + '</div>';
		
		document.getElementById(itemarray[counter]).parentNode.parentNode.className = 'tablerowON';
	}
	
	divSpecialItems.innerHTML = itemOutputArray.join('');
	
	if (itemarray.length <= 0)
		divSpecialItems.innerHTML = "<span class='small'>To add items to your list, click on a category above, then click on the box beside an item.</span>";
}

// ordering by category title
function SortOrder(a, b)
{
	catA = document.getElementById("itemdesc" + a).parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.innerHTML;
	catB = document.getElementById("itemdesc" + b).parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.innerHTML;
	
	if (catA > catB) return 1; else return -1;
}

function AddItem(itemnum)
{
	if (document.getElementById(itemnum).checked)
	{
		lblTally = document.getElementById(prefix + 'hfSpecialItems');
		lblTally.value += itemnum + delimeter;
	
		UpdateItems();
	}
	else
		DeleteItem(itemnum);
}

//function IsItemInList(itemnum)
//{
//	var hfitemlist = document.getElementById(prefix + 'hfSpecialItems');
//	var itemarray = new Array();
//	itemarray = hfitemlist.value.split(delimeter);
//	
//	for(var counter = 0; counter < itemarray.length - 1; counter++) //the -1 is because the last array item is blank
//		if (itemnum == itemarray[counter]) rteurn true;
//	
//	return false;
//}

function DeleteItem(itemnum)
{
	var hfitemlist = document.getElementById(prefix + 'hfSpecialItems');
	var tempitemlist = '';
	var itemarray = new Array();
	itemarray = hfitemlist.value.split(delimeter);
	
	hfitemlist.value = '';
	for(var counter = 0; counter < itemarray.length - 1; counter++) //the -1 is because the last array item is blank
		if (itemarray[counter] != itemnum)	//prevents the specified one from being re-added
			hfitemlist.value += itemarray[counter] + delimeter;
		else
			document.getElementById(itemarray[counter]).parentNode.parentNode.className = '';

	UpdateItems();
	UpdateCheckBoxes();
}

function UpdateCheckBoxes()
{
	var hfitemlist = document.getElementById(prefix + 'hfSpecialItems');
	var itemarray = new Array();
	itemarray = hfitemlist.value.split(delimeter);
	
	for (i=0; i<document.getElementsByTagName("input").length; i++)
		document.getElementsByTagName("input")[i].checked = false;
	
	for(var counter = 0; counter < itemarray.length - 1; counter++) //the -1 is because the last array item is blank
		if (document.getElementById(itemarray[counter]) != null)
			document.getElementById(itemarray[counter]).checked = true;
}


//	----------------------------------------
//			   End Special Items
//	----------------------------------------


//	----------------------------------------
//			   My Items
//	----------------------------------------
function UpdateMyItems()
{
	var hfitemlist = document.getElementById(prefix + 'hfMyItems');
	var divmyitems = document.getElementById('divMyItems');
	var itemarray = new Array();
	var itemOutputArray = new Array();
	itemarray = hfitemlist.value.split(delimeter);
	
	divmyitems.innerHTML = "";
	for(var counter = 0; counter < itemarray.length - 1; counter++) //the -1 is because the last array item is blank
		itemOutputArray[itemOutputArray.length] = '<div class="myslitem">' + itemarray[counter] + ' <a class="smaller noprint" href="Javascript:DeleteMyItem(' + counter + ')">(delete)</a>' + '</div>';
		//divmyitems.innerHTML += '<div class="myslitem">' + itemarray[counter] + ' <a class="smaller noprint" href="Javascript:DeleteMyItem(' + counter + ')">(delete)</a>' + '</div>';
		
		divmyitems.innerHTML = itemOutputArray.join('');
		
	if (itemarray.length <=1)
		divmyitems.innerHTML = "<span class='small'>To add other items to your list that aren't listed above, simply type it into the box below, and press enter.</span>";
}

function AddMyItem()
{
	var newitem = document.getElementById(prefix + 'txtNewItem').value.trim();
	var hfitemlist = document.getElementById(prefix + 'hfMyItems');
	
	if (newitem != "")
		hfitemlist.value += newitem + delimeter;
	
	document.getElementById(prefix + 'txtNewItem').value = '';
	document.getElementById(prefix + 'txtNewItem').focus();
	UpdateMyItems();
}

function DeleteMyItem(whichone)
{
	var hfitemlist = document.getElementById(prefix + 'hfMyItems');
	var tempitemlist = '';
	var itemarray = new Array();
	itemarray = hfitemlist.value.split(delimeter);
	
	hfitemlist.value = '';
	for(var counter = 0; counter < itemarray.length - 1; counter++) //the -1 is because the last array item is blank
		if (counter != whichone)	//prevents the specified one from being re-added
			hfitemlist.value += itemarray[counter] + delimeter;

	UpdateMyItems();
}
//	----------------------------------------
//			   End My Items
//	----------------------------------------


//	-------------------------------------------
//	Showing / Hiding / Hovering over Categories
//	-------------------------------------------
function TurnOn(catheaderobject) {
	catheaderobject.className = 'catheader catheaderON'; }

function TurnOff(catheaderobject) {
	catheaderobject.className = 'catheader'; }

function ShowHide(catnum)
{
	object = document.getElementById('category' + catnum);
	
	if (object.style.display == 'block')
		object.style.display = 'none';
	else
	{
		HideAll();
		object.style.display = 'block';
	}
}

function HideAll()
{
	var maxcategories = 50;	//the highest dept #
	
	for(var counter = 1; counter < maxcategories; counter++)
		if (document.getElementById('category' + counter) != null)
			document.getElementById('category' + counter).style.display = 'none';
}

////// for subcategories
//function ShowHideSub(catnum)
//{
//	object = document.getElementById('subcategory' + catnum);
//	
//	if (object.style.display == 'block')
//		object.style.display = 'none';
//	else
//	{
//		//HideAllSub();		//THIS IS COMMENTED OUT RIGHT NOW SO THAT SUBCATEGORY CLICKS DON'T CLOSE SUBCATEGORIES OF OTHER CATEGORIES
//		object.style.display = 'block';
//	}
//}

//function HideAllSub()
//{
//	var maxcategories = 30; //this could be as low as 22
//	
//	for(var counter = 1; counter < maxcategories; counter++)
//		if (document.getElementById('subcategory' + counter) != null)
//			document.getElementById('subcategory' + counter).style.display = 'none';
//}
//	----------------------------------------
//		  End Showing / Hiding Categories
//	----------------------------------------