
function goInStock(id) {
	var outOfStock = document.getElementById('outofstockline' + id);
	var inStock = document.getElementById('addtobasketline' + id);
	var outOfStockMessage = document.getElementById('outofstockmessage' + id);
	outOfStock.style.display = 'none';
	outOfStock.style.visibility = 'hidden';
	outOfStockMessage.style.display = 'none';
	outOfStockMessage.style.visibility = 'hidden';
	inStock.style.display = '';
	inStock.style.visibility = 'visible';

}

function goOutOfStock(id) {
	var outOfStock = document.getElementById('outofstockline' + id);
	var inStock = document.getElementById('addtobasketline' + id);
	var outOfStockMessage = document.getElementById('outofstockmessage' + id);
	inStock.style.display = 'none';
	inStock.style.visibility = 'hidden';
	outOfStockMessage.style.display = '';
	outOfStockMessage.style.visibility = 'visible';
	outOfStock.style.display = '';
	outOfStock.style.visibility = 'visible';
}

function goOutOfStockRemove(id) {
    var outOfStock = document.getElementById('outofstockline' + id);
    var inStock = document.getElementById('addtobasketline' + id);
    var outOfStockMessage = document.getElementById('outofstockmessage' + id);
    inStock.style.display = 'none';
    inStock.style.visibility = 'hidden';
    outOfStockMessage.style.display = '';
    outOfStockMessage.style.visibility = 'visible';
    outOfStock.style.display = '';
    outOfStock.style.visibility = 'visible';
}



function checkStock(id,outOfStockItems) {
	// Build up out options selections

	var selections = new Array();
	var selectionCount = 0;
	for (i=0;i<document.getElementById('options' + id).elements.length;i++) {
		var element = document.getElementById('options' + id).elements[i];
		if(element.name.substring(0,6)=='OPT_ID') {
			switch(element.type)
			{
				case 'checkbox':
					// is this checkbox selected?
					if(element.checked == true) {
						// use this ID
						selections[selectionCount]=element.value;
						selectionCount++;
					} else {
						// otherwise we have to get out the nocheckvalue
						var nocheck = document.getElementById('options' + id).elements['NOCHECK_' + element.name]
						selections[selectionCount]=nocheck.value;
						selectionCount++;
					}
					break;

				case 'radio':
					if(element.checked == true) {
						selections[selectionCount]=element.value;
						selectionCount++;
					}
					break;

				case 'select-one':
					selections[selectionCount]=element.value;
					selectionCount++;
					break;

				default:
					break;

			}

		}

	}

	selections = (selections.sort());
	var selection = selections.join('-');
	var isOutOfStock = false;
//alert(selection);
	// Does this combination exist in out outofstock array?
	for (i = 0; i < outOfStockItems.length; i++) {
		if(outOfStockItems[i]==selection) {
			isOutOfStock = true;
			break;
		}
	}

	if (isOutOfStock) {
		goOutOfStock(id);
	} else {
		goInStock(id);
	}
}

function checkStockRemove(id, outOfStockItems) {
    // Build up out options selections

    var selections = new Array();
    var selectionCount = 0;
    for (i = 0; i < document.getElementById('options' + id).elements.length; i++) {
        var element = document.getElementById('options' + id).elements[i];
        if (element.name.substring(0, 6) == 'OPT_ID') {
            switch (element.type) {
                case 'checkbox':
                    // is this checkbox selected?
                    if (element.checked == true) {
                        // use this ID
                        selections[selectionCount] = element.value;
                        selectionCount++;
                    } else {
                        // otherwise we have to get out the nocheckvalue
                        var nocheck = document.getElementById('options' + id).elements['NOCHECK_' + element.name]
                        selections[selectionCount] = nocheck.value;
                        selectionCount++;
                    }
                    break;

                case 'radio':
                    if (element.checked == true) {
                        selections[selectionCount] = element.value;
                        selectionCount++;
                    }
                    break;

                case 'select-one':
                    selections[selectionCount] = element.value;
                    selectionCount++;
                    break;

                default:
                    break;

            }

        }

    }

    selections = (selections.sort());
    var selection = selections.join('-');
    var isOutOfStock = false;

    // Does this combination exist in out outofstock array?
    for (i = 0; i < outOfStockItems.length; i++) {
        if (outOfStockItems[i] == selection) {
            isOutOfStock = true;
            break;
        }
    }

    if (isOutOfStock) {
        goOutOfStockRemove(id);
    } else {
        goInStock(id);
    }
}

/*-----------------------------------------------------------+
 | addLoadEvent: Add event handler to body when window loads |
 +-----------------------------------------------------------*/
function addLoadEvent(func) {
	var oldonload = window.onload;

	if (typeof window.onload != "function") {
		window.onload = func;
	} else {
		window.onload = function () {
			oldonload();
			func();
		}
	}
}

/*------------------------------------+
 | Functions to run when window loads |
 +------------------------------------*/
addLoadEvent(function () {
	initChecklist();
});

/*----------------------------------------------------------+
 | initChecklist: Add :hover functionality on labels for IE |
 +----------------------------------------------------------*/
function initChecklist() {
	if (document.all && document.getElementById) {
		// Get all unordered lists
		var lists = document.getElementsByTagName("ul");

		for (i = 0; i < lists.length; i++) {
			var theList = lists[i];

			// Only work with those having the class "checklist"
			if (theList.className.indexOf("checklist") > -1) {
				var labels = theList.getElementsByTagName("label");

				// Assign event handlers to labels within
				for (var j = 0; j < labels.length; j++) {
					var theLabel = labels[j];
					theLabel.onmouseover = function() { this.className += " hover"; };
					theLabel.onmouseout = function() { this.className = this.className.replace(" hover", ""); };
				}
			}
		}
	}
}
