var digits = "0123456789";
var lLetters = "abcdefghijklmnopqrstuvwxyz"
var uLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var alphanum = lLetters + uLetters + digits;
var whitespace = " \t\n\r ";

function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}

function isWhitespace(s) {
	var i;
	if (isEmpty(s)) return true;
		for (i = 0; i < s.length; i++)
		{   
			var c = s.charAt(i);
			if (whitespace.indexOf(c) == -1) return false;
		}
	return true;
}

function StripIn (s, bag) {
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++) {   
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function StripNotIn (s, bag) {
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++) {
		 var c = s.charAt(i);
		 if (bag.indexOf(c) != -1) returnString += c;
	}
	return returnString;
}

function isLetter (c) {
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c) {
	return ((c >= "0") && (c <= "9"))
}

function isLetterOrDigit (c) {
	return (isLetter(c) || isDigit(c))
}

function isInteger (s) {
	var i;
	if (isEmpty(s)) return false;
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (!isDigit(c)) return false;
	}
	return true;
}

function AlphaNumeric(s) {
	var i;
	if (isEmpty(s)) return false;
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (!isLetterorDigit(c)) return false;
	}
	return true;
}

function isLength(s, lMin, lMax) {
	if ((s.length >= lMin) && (s.length <= lMax)) return true;
	return false;
}

function warnInvalid (theField, s) {
	if (theField != null) {
		theField.focus();
	}
	alert(s);
	return false;
}


function HideSubCategories(tmpActiveCategory)
{	
    var i=1;
    for(i=1;i<5;i++)
    {
        if(i != tmpActiveCategory)
        {
            var CategoryToHide = "cat" + i + "Group";
	            //alert(CategoryToHide);
            try {
	            document.getElementById(CategoryToHide).className = 'level2Group';
            } catch(err) {
            //	txt="TEST: There was an error on this page.\n\n";
            //	txt+="Error description: " + err.description + "\n\n";
            //	txt+="Click OK to continue.\n\n";
            //	alert(txt);
            }
        }
	    
    }
	return false;
}

function menuClick(hasCats, catid) {
    var isIE = (window.navigator.userAgent.indexOf("MSIE") > 0);
    var group = document.getElementById('cat' + catid + 'Group'); 
	
    for (k = 0; k < 1000; k++) {
        try
        {
		    document.getElementById(k).style.display = 'none';
		}
		catch (err) {}
    }
		
    //if the parent cat has subcats, open its accordian containing the subcats
    if (hasCats == "yes")
    {
        if (group.className == "level2Group") 
        {group.className = "level2GroupActive";}
		else 
        {group.className = "level2Group";}

		try 
            {
		    var navMenu = document.getElementById("nav").getElementsByTagName("div");
		    for (var n = 0; n < navMenu.length; n++) {
			    var obj = navMenu[n];
			    if ((obj.className == "level2GroupActive") && (obj != group)) {
					    obj.className = "level2Group";
			    }
		    }
	    } catch(err) {
	    }
        //otherwise direct customer to the parent category page

        return false;
    } 
    else {return true;}
}

function initAjaxProgress()
{
    var pageHeight = (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;
    //SET HEIGHT OF BACKGROUND
    var bg = document.getElementById('ajaxProgressBg');
    bg.style.height = (pageHeight + 1000) + 'px';
    //POSITION THE PROGRESS INDICATOR ON INITIAL LOAD
    reposAjaxProgress();
    //REPOSITION THE PROGRESS INDICATOR ON SCROLL
    window.onscroll = reposAjaxProgress;
}

function reposAjaxProgress()
{
    var div = document.getElementById('ajaxProgress');
    var st = document.body.scrollTop;
    if (st == 0) {
        if (window.pageYOffset) st = window.pageYOffset;
        else st = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
    }
    div.style.top = 150 + st + "px";
}


//******************************************************************
//Main Navigation
//******************************************************************
function FlyOutMouseOver(tmpDiv, tmpImg, tmpID, tmpHasCats) {
    //hide the divs
    for (k = 0; k < 1000; k++) {
        try {
            document.getElementById(k).style.display = 'none';
        } catch (err) {

        }
    }


    //hide the images
    //document.getElementById('Image1').style.display = 'none';

    if (tmpHasCats == "yes") {
        //display the correct div and image
        document.getElementById(tmpDiv).style.display = 'block';
    }
}

function AccordianLinkClick(tmpDiv, tmpImg, tmpID, tmpHasCats, subCatLink) 
{
    if (tmpHasCats == "no") 
    {
        return true;
        //window.location = subCatLink;
    } 
    else 
    {
        //check current div status
        var bIsOpen = false;
        var currStatus = document.getElementById(tmpDiv).style.display;
        if (document.getElementById(tmpDiv).style.display == "none") {
            bIsOpen = 0;
        } else {
            bIsOpen = 1;
        }

        //hide the divs
        for (k = 0; k < 1000; k++) {
            try {
                document.getElementById(k).style.display = 'none';
            } catch (err) {

            }
        }


        //hide the images
        //document.getElementById('Image1').style.display = 'none';

        if (tmpHasCats == "yes" && bIsOpen == 0) {
            //display the correct div and image
            document.getElementById(tmpDiv).style.display = 'block';
        } else if (tmpHasCats == "yes" && bIsOpen == 1) {
            document.getElementById(tmpDiv).style.display = 'none';
        }
        return false;
    }
}

function HideFlyOutDivs(tmpDiv) {
    //hide divs
    document.getElementById(tmpDiv).style.display = 'none';

    return false;
    //hide images
    //document.getElementById('Image1').style.display = 'none';
}

function UpdateFlyOutDisplay(catid, dis) {

    document.getElementById('div' + catid).style.display = dis;
}

