/* show
    Shows a specified element.
    @environment ALL
    @param element - The specified element.
    @return True if successful, false otherwise.
*/
function show( element ) {
    if( ! element ) { return false; }
    
    if( isHidden( element ) ) {
        // Remove 'hidden' from the class name of the element.
        return ( element.className = element.className.slice( 0, element.className.indexOf( "hidden" ) ) + element.className.slice( element.className.indexOf( "hidden" )+6 ) );
    }

    return false;
} // show

/* isShowing
    Determines whether a specified element is showing or not.
    @environment ALL
    @param element - The specified element.
    @return True if showing, false otherwise.
*/
function isShowing( element ) {
    return ( ! isHidden( element ) );
} // isShowing

/* hide
    Hides a specified element.
    @environment ALL
    @param element - The specified element.
    @return True if successful, false otherwise.
*/
function hide( element ) {
    if( ! element ) { return false; }
    
    if( isShowing( element ) ) {
        // Add 'hidden' to the class name of the element.
        // This places hidden as the last class in the class name attribute.
        if( element.className == "" ) { return ( element.className = "hidden" ); }
        else { return ( element.className = element.className + " hidden" ); }
    }

    return false;
} // hide

/* isHidden
    Determines whether a specified element is hidden or not.
    @environment ALL
    @param element - The specified element.
    @return True if hidden, false otherwise.
*/
function isHidden( element ) {
    // Checks the element's class name for 'hidden'.
    // element.className.indexOf( 'hidden' ) will be -1 if 'hidden' is not found.
    return ( element.className.indexOf( "hidden" ) != -1 );
} // isHidden




/* toggle
    Looks for a custom attribute value on specific elements on the page to either show or hide them.
    @environment ALL
    @param  elem - The attribute to look for on elements.
    @param  disp - Either 'show' or 'hide' to dictate the action to perform.
*/
function toggle( elem, disp ) {

//alert(elem);

    elements = document.getElementsByTagName("tr"); // handle trs    
    for(i = 0; i < elements.length; i++) {
        if(elements[i].getAttribute(elem)=="yes" && disp=="show") {        
            show( elements[i] );
            //elements[i].className = "";
        } else if(elements[i].getAttribute(elem)=="yes" && disp=="hide") {
            hide( elements[i] );
            //elements[i].className = "hidden"
        }
    }

    elements = document.getElementsByTagName("td"); // handle tds
    for(i = 0; i < elements.length; i++) {
        if(elements[i].getAttribute(elem)=="yes" && disp=="show") {
            if( elements[i].className.indexOf("hidden") != 0 ) {
                elements[i].className = elements[i].className.substring(0, elements[i].className.indexOf("hidden")-1);
            } else {
                show( elements[i] );
                //elements[i].className = "";
            }
        } else if(elements[i].getAttribute(elem)=="yes" && disp=="hide") {
           hide( elements[i] );
            //elements[i].className = "hidden"
        }
    }

    elements = document.getElementsByTagName("div"); // handle divs
    for(i = 0; i < elements.length; i++) {
        if(elements[i].getAttribute(elem)=="yes" && disp=="show") {
//alert('show');
            if( elements[i].className.indexOf("hidden") != 0 ) {       
                elements[i].className = elements[i].className.substring(0, elements[i].className.indexOf("hidden")-1);
            } else {
                show( elements[i] );
                //elements[i].className = "";
            }
        } else if(elements[i].getAttribute(elem)=="yes" && disp=="hide") {
//alert('hide');
           hide( elements[i] );
            //elements[i].className = "hidden"
        }
    }
    
    elements = document.getElementsByTagName("li"); // handle li's
    for(i = 0; i < elements.length; i++) {
        if(elements[i].getAttribute(elem)=="yes" && disp=="show") {
            show( elements[i] );
        } else if(elements[i].getAttribute(elem)=="yes" && disp=="hide") {
            hide( elements[i] );
        }
    }

    elements = document.getElementsByTagName("hr"); // handle hr's
    for(i = 0; i < elements.length; i++) {
        if(elements[i].getAttribute(elem)=="yes" && disp=="show") {
            show( elements[i] );
        } else if(elements[i].getAttribute(elem)=="yes" && disp=="hide") {
            hide( elements[i] );
        }
    }

    elements = document.getElementsByTagName("span"); // handle spans
    for(i = 0; i < elements.length; i++) {
        if(elements[i].getAttribute(elem)=="yes" && disp=="show") {
            show( elements[i] );
        } else if(elements[i].getAttribute(elem)=="yes" && disp=="hide") {
            hide( elements[i] );
        }
    }
    elements = document.getElementsByTagName("a"); // handle hyperlinks
    for(i = 0; i < elements.length; i++) {
        if(elements[i].getAttribute(elem)=="yes" && disp=="show") {
            show( elements[i] );
        } else if(elements[i].getAttribute(elem)=="yes" && disp=="hide") {
            hide( elements[i] );
        }
    }
    
    
} // toggle



/* checkFields
    Form Validator for the Scrimmage Finder page.
    @environment ALL
*/
function checkFields() {
missinginfo = "";
	if (document.friendlygamefinder.teamname.value == "") {
		missinginfo += "\n     -  Team Name";
	}
	if (document.friendlygamefinder.homelocation.value == "") {
		missinginfo += "\n     -  Home Town Location";
	}
	if (document.friendlygamefinder.flight.value == "") {
		missinginfo += "\n     -  Flight";
	}
	if (document.friendlygamefinder.agegroup.value == "") {
		missinginfo += "\n     -  Agegroup";
	}
	if (document.friendlygamefinder.contactname.value == "") {
		missinginfo += "\n     -  Contact Name";
	}
	if (document.friendlygamefinder.traveldistance.value == "") {
		missinginfo += "\n     -  Travel Distance";
	}
	if (document.friendlygamefinder.possibledates.value == "") {
		missinginfo += "\n     -  Possible Game Dates";
	}
	if ((document.friendlygamefinder.email.value == "") || 
	(document.friendlygamefinder.email.value.indexOf('@') == -1) || 
	(document.friendlygamefinder.email.value.indexOf('.') == -1)) {
		missinginfo += "\n     -  Email address";
	}
	if (missinginfo != "") {
		missinginfo ="_____________________________\n" +
			"You failed to correctly fill in your:\n" +
		missinginfo + "\n_____________________________" +
			"\nPlease re-enter and submit again!";
		alert(missinginfo);
		return false;
	}
	else return true;
}
// checkFields
