function _getElementById(el)
{
    if (document.getElementById)
	return document.getElementById(el);
    else if (document.all)
	return document.all[el];
    else if (document.layers)
	return document.layers[el];
    else
	return false;
}

function clickRow(which)
{
    if (which)
    {
	var qty   = document.form.elements["qty" + which];
	var chk   = document.form.elements["chk" + which];

	if (!chk.checked)
	{
	    if (qty.value)
	    {
		if (qty.value.match(/[^\d]/))
		    qty.value = parseInt(qty.value.replace(/[^\d\.]/g, "")) || 1;
	    }
	    else
		qty.value = 1;

	    chk.checked = true;
	}
	else
	    chk.checked = false;

        checkItemParent();
    }

    return false;
}

function clickFolderRow(which)
{
    if (which)
    {
	var chk   = document.form.elements["folder" + which];
        if (chk)
            chk.checked = !chk.checked;
    
        //subCheckboxClicked(_getElementById("folders"), document.form.elements["folders_all"]);
        checkFolderParent();
    }

    return false;
}

function enteredQty(which)
{
    if (which)
    {
	var qty     = document.form.elements["qty" + which];
	var chk     = document.form.elements["chk" + which];
	if (qty.value.length)
	{
	    var clean = parseInt(qty.value.replace(/[^\d\.]/g, ""));
	    if (clean)
	        chk.checked = true;
	    else
	        chk.checked = false;
	}
	else
	    chk.checked = false;

        checkItemParent();
    }

    return false;
}

function stopEvent(ev)
{
    ev = ev || window.event;
    ev.cancelBubble = true;
    ev.returnValue  = false;

    if (ev.preventDefault)
    {
	ev.preventDefault();
	ev.stopPropagation();
    }

};

function swapFolderDiv(show, hide)
{
    if (show && (show = _getElementById(show)))
        show.style.display = (show.style.display=="none") ? '' : 'none';
    
    if (typeof hide=="object")
    {
        var hideEl;
        for(var i=0;i<hide.length;i++)
            if (hideEl = _getElementById(hide[i]))
                hideEl.style.display = 'none';
    }
    else if (hide = _getElementById(hide))
        hide.style.display = 'none';

    return (show && show.style.display=='');
}

function verifyDelete()
{
    return confirm('Are you sure you want to delete the selected items?');
}

function selectAllClicked(which, checkbox)
{
    var div = _getElementById(which);
    if (div)
    {
	var subs  = div.getElementsByTagName("input");

	for (var counter=0;counter<subs.length;counter++)
	    if (subs[counter].type=="checkbox")
		subs[counter].checked = checkbox.checked;
        
        subCheckboxClicked(div, checkbox, hasCheckedItems((which=="items") ? "folders" : "items"));
    }
}

function subCheckboxClicked(which, parent_checkbox, somethingIsCheckedElsewhere)
{
    if(which)
    {
	var somethingIsChecked = false;

	var check_box = true;
	var subs      = which.getElementsByTagName("input");

	for(var counter=0;counter<subs.length;counter++)
	{
	    if(subs[counter].type=="checkbox" && subs[counter] != parent_checkbox)
	    {
		if(subs[counter].checked==false)
		{
		    check_box = false;
		}
		else
		{
		    somethingIsChecked = true;
		    var qty = subs[counter].name.replace(/^chk/, "qty");
		    if (qty && (qty = document.form.elements[qty]))
		        if (!qty.value.length)
		            qty.value = 1;
		}
            }
        }


	parent_checkbox.checked = check_box;
	enableToolButtons(somethingIsChecked || somethingIsCheckedElsewhere);
    }
}

function checkFolderParent()
{
    var parent;
    var folders = _getElementById("folders");
    if (folders && (parent = document.form.folders_all))
        subCheckboxClicked(folders, parent, hasCheckedItems("items"));
}

function checkItemParent()
{
    var parent;
    var items   = _getElementById("items");    
    if (items   && (parent = document.form.items_all))
        subCheckboxClicked(items, parent, hasCheckedItems("folders"));
}

function enableToolButtons(torf)
{
    if (torf)
    {
        enableButton(document.form.elements["additems"]);
        enableButton(document.form.elements["deleteitems"]);
        enableButton(document.form.elements["move_selected_btn"]);    
    }
    else
    {
        disableButton(document.form.elements["additems"]);
        disableButton(document.form.elements["deleteitems"]);
        disableButton(document.form.elements["move_selected_btn"]);
    }
}

function disableButton(button)
{
    button.disabled  = true;
    button.className = "frequent_buttons_disabled";
}

function enableButton(button)
{
    button.disabled  = false;
    button.className = "frequent_buttons";
}

function clearTableData(which)
{
    if (which = _getElementById(which))
    {
        var subs = document.getElementsByTagName("input");
        for (var counter=0;counter<subs.length;counter++)
            if (subs[counter].type=="checkbox")
                subs[counter].checked = false;
            //else if (subs[counter].type=="text")
            //    subs[counter].value   = "";
    }
}

function hasCheckedItems(which)
{
    if (which = _getElementById(which))
    {
        var subs = document.getElementsByTagName("input");
        for (var counter=0;counter<subs.length;counter++)
            if (subs[counter].type=="checkbox" && 
                subs[counter].parentNode.tagName.toLowerCase()=="td")
                if (subs[counter].checked)
                    return true;
    
        return false;
    }
}

function setSort(which, to)
{
    document.form.elements[which].value = to;
    document.form.submit();
    
    return false;
}

function printList(folder, parent, icount, fcount)
{
    var args = [];
    
    args.push("print=1");
    if (folder) { args.push("folder=" + folder); }
    if (parent) { args.push("parent=" + parent); }
    
    var SKUs    = [];
    var Folders = [];
    var form = document.form;
    if (form && (icount || fcount))
    {
        for (var i=1;i<=fcount;i++)
            if (form.elements["folder"+i] && form.elements["folder"+i].checked)
                Folders.push(form.elements["folder" + i + "_id"].value);

        for (var i=1;i<=icount;i++)
            if (form.elements["chk" + i] && form.elements["chk" + i].checked)
                SKUs.push(form.elements["sku"+i].value + "|" +
                          form.elements["msk"+i].value + "|" + 
                          form.elements["dpt"+i].value);
    }

    if (SKUs.length)
        args.push("SKUS=" + SKUs.join(";"));
        
    if (Folders.length)
        args.push("FOLDERS=" + Folders.join(";"))

    doSizedWindow('/shop/frequent_items.asp?' + args.join("&"), 600, 450);
}

