﻿function showMultipleResults(searchPn)
{
    var containerDiv = document.getElementById("divMultipleResults");
    var trs = containerDiv.getElementsByTagName("tr");
    var len = trs.length;
    
    for (var i = 0; i < len; i++)
    {        
        if (searchPn == trs[i].title)
            setClass(trs[i], "");
        else
            setClass(trs[i].title, "doNotDisplay");
    }
    
    setClass(containerDiv.getElementsByTagName("table")[0], "");
}

function toggleTopLevel(img)
{
	var topLevelDiv = document.getElementById("topLevelContainer");
	
	if (img.src.indexOf("up") > -1)
	{
		img.src = "/PublishingImages/arrow_down.gif";
		setClass(topLevelDiv, "doNotDisplay");
	}
	else
	{
		img.src = "/PublishingImages/arrow_up.gif";
		setClass(topLevelDiv, "");	
	
	}
}

function toggleReportScheduler()
{
	var img = document.getElementById("toggleControlImage");
	var topLevelDiv = document.getElementById("reportSchedulerContainer");
	var toggleControlShowContainer = document.getElementById("toggleControlShowContainer");
	var toggleControlHideContainer = document.getElementById("toggleControlHideContainer");
	
	if (img.src.indexOf("up") > -1)
	{
		img.src = "/PublishingImages/arrow_down.gif";
		setClass(topLevelDiv, "doNotDisplay");
		setClass(toggleControlShowContainer , "");
		setClass(toggleControlHideContainer , "doNotDisplay");	
	}
	else
	{
		img.src = "/PublishingImages/arrow_up.gif";
		setClass(topLevelDiv, "");
		setClass(toggleControlShowContainer , "doNotDisplay");
		setClass(toggleControlHideContainer , "");	
	}
}


function addItems()
{
	var listName = document.getElementById("spnAddToList").getElementsByTagName("select")[0].value;
	if (listName == "New List")
	{
		alert("Please select a list.");
	}
	alert("The selected parts have been added to " + listName + ".");
}

function validatePartSearch(evt, buttonText)
{
	if (!evt)
		evt = window.event;
    var inputs = document.getElementsByTagName("input");
    var len = inputs.length;
    var error = false;
    var fieldCount = 0;    
    if (getContainedInput("divAccountNumber").value == "")
    {
		alert("Please select an account number before proceding.");
		cancelEvent(evt);
		return false;
    }
    for (var i = 0; i < len; i++)
    {
        if (inputs[i].name.indexOf("PartNumber") > -1 && inputs[i].value != "")
        {
            fieldCount++;    
            var qtyValue = document.getElementsByName(replace(inputs[i].name, "PartNumber", "Quantity"))[0].value;
			var regNumbers = new RegExp("^[0-9]+$");
			if (!checkForNumericValue(qtyValue, evt))
				return false;
        }
	}
    if (error)
    {
        alert("Please enter a date.");
        cancelEvent(evt);
		return false;

        
    }
    else if (0 == fieldCount)
    {
        alert("Please enter at least one part number.");
        cancelEvent(evt);
		return false;

    }
    insertHidden("newSearch", buttonText);
    return true;
}

function checkForNumericValue(textValue, evt)
{
	if (!evt)
		evt = window.event;
	var regNumbers = new RegExp("^[0-9]+$");
	if (textValue != "" && !regNumbers.test(textValue))
	{
		alert("All quantities must be whole number values.");
		cancelEvent(evt);
		return false;
	}
	return true;
}

function replace(str, whatToSearchFor, whatToInsert)
{
	return str.replace(new RegExp(whatToSearchFor), whatToInsert);
}

function cancelEvent(evt)
{
	if (navigator.userAgent.indexOf("MSIE") > -1)
	{
		evt.cancelBubble = true;
		evt.returnValue = false;
		return;
	}
    else if (evt.stopPropagation)
	{
		evt.stopPropagation();
		evt.preventDefault();
	}	
}

function getNextSibling(element)
{
	var returnElement = element.nextSibling;
	while (!returnElement.tagName || (returnElement.tagName != element.tagName))
		returnElement = element.nextSibling;
	return returnElement;
	
}

function getContainer(tagName, element)
{
    while (element.tagName != tagName)
        element = element.parentNode;
    return element;
}

function insertHidden(name, value)
{

	var arr = document.getElementsByName(name);
	var hidden = document.createElement("input");	
	if (arr && arr.length > 0)
	{
		hidden = arr[0];
	}
	else
	{
	    hidden.type = "hidden";
	    hidden.name = name;
	    document.forms[0].appendChild(hidden);
    }

    hidden.value = value;  
  
}


function clearSet(index)
{
	var div = document.getElementById("divSearchInputs");
	var tds = div.getElementsByTagName("td");
	clearInputs(tds[index + 6]);
	clearInputs(tds[index + 12]);
	clearInputs(tds[index + 18]);	
}

function addItem()
{
    alert("Item added.");
}

function clearInputs(element)
{
	var inputs = element.getElementsByTagName("input");
	var len = inputs.length;
	for (var i = 0; i < len; i++)
		inputs[i].value = "";
}

function checkDate(value)
{
	var r = new RegExp("^([0-1]?[0-9])[/]([0-9]{1,2})[/](20[0-9]{2})$");
	var results = r.exec(value);
	if (!results)
		return false;

	if (results[2] < 1)
		return false;
	else if (results[1] > 12 || results[1] < 1)
	{
		return false;
	}
	else if (2 == results[1])
	{
		var leapYear = isLeapYear(results[3]);
		if (isLeapYear && results[2] > 29)		
			return false;
		else if (isLeapYear && results[2] <= 29)
			return true;
		else
			return results[2] <= lastDayInMonth[2];
	}
	else
		return results[2] <= lastDayInMonth[results[1]];
	return true;
}

var lastDayInMonth = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function isLeapYear(year)
{
	if (0 == (year % 400))
		return true;
	else if (0 == (year % 4) && 0 != (year % 100))
		return true;
	else
		return false;
}

function getContainedInput(tagId)
{
	return document.getElementById(tagId).getElementsByTagName("input")[0];
}


function validateAccountSearch(evt)
{
	var city = getContainedInput("divCity").value;
	var state = getContainedInput("divState").value;
	var zip = getContainedInput("divZip").value;
	
	if (zip || (city && state))
	{
		document.getElementById("resultsFound").value = "";
		setTimeout(checkForAccountResults, 500);
	}
	else
	{
		alert("Please enter the combination of a city and state or simply a zip code.");
		cancelEvent(evt);
	}
}

function checkForAccountResults()
{
	var hidden = document.getElementById("resultsFound");
	if (hidden.value == "")
		setTimeout(checkForAccountResults, 500);
	else if (hidden.value == "True")
	{
		showAndCenter("divAccountSearchResults", 300, 600);
	}
}

function selectAccount(accountNumber)
{
    setCookie("accountNumber", accountNumber);
    getContainedInput("divAccountNumber").value = accountNumber;
    if (accountNumber != "")
    	toggleSearchInputs(false);
    setClass(document.getElementById("divAccountSearchResults"), "doNotDisplay");

}

function checkForAccountNumber()
{
	var accountNumber = getContainedInput("divAccountNumber").value;
	if (accountNumber == "")
		toggleSearchInputs(true);
}

function toggleSearchInputs(disable)
{
	var divSearchInputs = document.getElementById("divSearchInputs");
	var inputs = divSearchInputs.getElementsByTagName("input");
	var len = inputs.length;
	for (var i = 0; i < len; i++)
	{
		if (inputs[i].name.indexOf("requiredDate") == -1)
			inputs[i].readOnly = disable;
		if (inputs[i].type == "text")			
			inputs[i].style.backgroundColor = disable ? "#eeeeee" : "#ffffff";
	}	
}

function showCreateListItemDialog(sel)
{
	if (sel.value == "New List")
		alert("Add to list (Release 2)");
		//showAndCenter("divNewList", 100, 200);
}

function createNewList()
{
	var listName = document.getElementById("txtNewListName").value;
	if (listName == "")
	{
		alert("Please enter a name for the new list.");
		return;
	}
	getContainedInput("divCreateListButton").click();
}

function clearCheckboxes()
{
	var inputs = document.getElementsByTagName("input");
	var len = inputs.length;
	for (var i = 0; i < len; i++)
	{
		if (inputs[i].type.toLowerCase() == "checkbox")
			inputs[i].checked = false;
	}
}

function setCookie(name, value)
{
	document.cookie = escape(name) + "=" + escape(value) + "; expires=Monday, 04-Apr-2010 05:00:00 GMT";
}

var ie = navigator.userAgent.indexOf("MSIE") > -1;

function setClass(element, newClassName)
{
    if (!ie)
        element.setAttribute("class", newClassName);         
    else
        element.className = newClassName;
}

function clearResults()
{
	location.href = location.href;
}

function getContainedInput(id)
{
	return document.getElementById(id).getElementsByTagName("input")[0];
}
						
function centerElement(element, elementHeight, elementWidth)
{
	var newTop = Math.ceil(document.body.scrollTop + (document.body.clientHeight / 2) - (elementHeight / 2));
	if (newTop < 0)
	    newTop = 0;
	element.style.top = newTop.toString() + "px";	            
	var newLeft = Math.ceil((document.body.clientWidth / 2) - (elementWidth / 2));
	element.style.left = newLeft.toString() + "px";
}

function centerVertical(element)
{
	// Determine the hieght of the client window
	var myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    	//IE 4 compatible
    	myHeight = document.body.clientHeight;
    }
    // Determine if we have scrolled
    var scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
	    //Netscape compliant
	    scrOfY = window.pageYOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    	//DOM compliant
    	scrOfY = document.body.scrollTop;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
	}
	var newTop = Math.ceil(scrOfY + (myHeight * 0.33));
	if (newTop < 0)
	    newTop = 0;
	element.style.top = newTop.toString() + "px";	            
}

function closeDiv(div)
{
	setClass(div, "doNotDisplay");
}

function hideElement(id)
{
	var element = document.getElementById(id);
	setClass(element, "doNotDisplay");
}   

function showLengthsInputs(partNumber, quantity, warehouse)
{
	var pnInput = getContainedInput("divPartNumber");
	var qtyInput = getContainedInput("divQuantityAvailable");
	var warehouseInput = getContainedInput("divWarehouse");
	pnInput.value = partNumber;
	qtyInput.value = quantity;
	pnInput = getContainedInput("divHiddenPartNumber");
	qtyInput = getContainedInput("divHiddenQuantityAvailable");
	warehouseInput = getContainedInput("divHiddenWarehouse");
	pnInput.value = partNumber;
	qtyInput.value = quantity;
	warehouseInput.value = warehouse;
	setClass(document.getElementById("longLengthInputs"), "");
	setClass(document.getElementById("longLengthResults"), "doNotDisplay");
	showAndCenter("divLongLengths", 350, 250);
        
}     
		
function setClass(element, className)
{
	if (ie)
		element.className = className;
	else
		element.setAttribute("class", className);
}

// Date Scripts

var ie = navigator.userAgent.indexOf("MSIE") > -1;

var pendingInput = null;
 
function showDateDialog(td)
{
	var input = td.getElementsByTagName("input")[0];
	pendingInput = input.id;
	if (getContainedInput("divAccountNumber").value != "")
		showAndCenter("dateDiv", 150, 200);
	else
		alert("Please look up an account number.");
}
    
function showAndCenter(id, objectHeight, objectWidth)
{			
	var element = document.getElementById(id);
	setClass(element, "absolute");
	centerElement(element, objectHeight, objectWidth);
}
		
function closeDate()
{
    var lastDateSelected = document.getElementById("divDateValue").getElementsByTagName("span")[0].innerHTML;
	hideElement("dateDiv");
	setDate(lastDateSelected);
}

function setDate(lastDateSelected)
{
	document.getElementById(pendingInput).value = lastDateSelected;
	
}
		
function alternateSearch()
{
	alert("Alternate product search (Release 2)");
}