var multiCheckDropDowns = true;

function addEvent(elm, evType, fn, useCapture)
{
	if (elm.addEventListener)
	{
		elm.addEventListener(evType,fn,useCapture);
		return (true);
	}
	else if ( elm.attachEvent )
	{
		var r = elm.attachEvent('on' + evType, fn);
		return (r);
	}
	else
	{
		elm['on' + evType] = fn;
	}
}

var frmMultiOrderForm = null;
var popupToggle = false;

function checkMultiOrderForm(e)
{
	var event;
	if (window.event)
		event = window.event.srcElement;
	else
		event = e.target;

	var frmOk = false;
	var noMorePopup = false;
	
	// check if at least one item is included.
	if (frmMultiOrderForm["vwitem0"] && frmMultiOrderForm["vwitem0"].type == 'hidden')
	{
	    frmOk = true;
	}
	else
	{
	    for (i = 0; i < frmMultiOrderForm.elements.length; i++)
	    {
		    var elem = frmMultiOrderForm.elements[i];
		    if (elem.name.match("vwitem"))
		    {
			    if (elem.type.toLowerCase() == "checkbox" && elem.checked)
			    {
				    frmOk = true;
				    if (!multiCheckDropDowns)
				        break;
				    else
				    {
	                    var re = /vwitem(\d+)/;
	                    var m = re.exec(elem.name);
	                    if (m)
	                    {
	                        // find all drop-downs whose name starts with vwattr + m[1]
	                        for (var j = 0; j < frmMultiOrderForm.elements.length; j++)
	                        {
	                            elem = frmMultiOrderForm.elements[j];
	                            if (elem.type.toLowerCase() == 'select-one')
	                            {
	                                if (elem.name.match("vwattr" + m[1] + "_"))
	                                {
	                                    // see if selectedIndex is larger than 0
	                                    if (elem.selectedIndex == 0)
	                                    {
	                                        frmOk = false;
	                                        elem.style.backgroundColor = "yellow";
	                                        alert("Please select an option for " + elem.name.substr(("vwattr" + m[1] + "_").length));
	                                        elem.focus();
	                                        noMorePopup = true;
	                                        break;
	                                    }
	                                    else
	                                        elem.style.backgroundColor = "white";
	                                }
	                            }
	                        }
	                        if (noMorePopup)
	                            break;
	                    }
				    }
			    }
		    }
	    }
    }
	
	if (!frmOk)
	{
	    if (!noMorePopup)
	    {
	        if (popupToggle)
	        {
                alert("Please select at least one item");
                popupToggle = false;
            }
		}
		if (!window.event)
		{
			e.stopPropagation();
			e.preventDefault();
		}
		else
		{
			window.event.returnValue = false;
			window.event.cancelBubble = true;
		}
	}
}

function setMultiCheckbox(e)
{
	var srcElem;
	
	if (window.event)
	{
		srcElem = window.event.srcElement;
	}
	else
	{
		srcElem = e.target;
	}

	var vwitem = null;
	var re = /vwquantity(\d+)/;
	var m = re.exec(srcElem.name);
	if (m)
	{
		var vwitemName = "vwitem" + m[1];
		vwitem = frmMultiOrderForm[vwitemName];
	}

	if (vwitem && vwitem.type.toLowerCase() == "checkbox")
	{
		if ( !isNaN(parseInt(srcElem.value) ) && parseInt(srcElem.value) > 0 )
		{
			vwitem.checked = true;
		}
		else
		{
			vwitem.checked = false;
		}
	}
}

function setMultiAddHandler()
{
	for (i = 0; i < document.forms.length; i++)
	{
		if ((document.forms[i].action.match("order.store.yahoo") || document.forms[i].action.match("test-order")) && document.forms[i]["multiple-add"])
		{
			frmMultiOrderForm = document.forms[i];
			addEvent(frmMultiOrderForm, 'submit', checkMultiOrderForm);
			break;
		}
	}
	if (frmMultiOrderForm)
	{
		for (i=0; i<frmMultiOrderForm.elements.length; i++)
		{
			if (frmMultiOrderForm.elements[i].name.toLowerCase().match("vwquantity"))
			{
				addEvent(frmMultiOrderForm.elements[i],'blur',setMultiCheckbox);
			}
		}
	}
}

addEvent(window, 'load', setMultiAddHandler);

