function noBubble(e){
	if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
}

// Depends on prototype.js

function showOneOf (needle, haystack) {

	var args = $A(arguments);
	var needle = args.shift();
	
	// Hide the passed elements
	args.each(function (item) {
		$(item).hide();
	});
	
	// Show the needle unless it's unset or blank
	if(needle) $(needle).show();
	
}

function passwordMatch(password, retype) {
	var passElem = $(password);
	var retypeElem = $(retype);
	
	if(!$F(retype)) return;
	
	if ($F(passElem) == $F(retype)) {
		retype.removeClassName('password-mismatch');
		retype.addClassName('password-match');
	} else {
		retype.addClassName('password-mismatch');
		retype.removeClassName('password-match');
	}	
	
}

function disableFormElementsStartingWith(form, match) {
    var matchStrings = $A(arguments);
    var form = matchStrings.shift();
    var elements = $(form).getElements().findAll(function (element) {
        for(index = 0; index < matchStrings.length; index++) if (element.id.startsWith(matchStrings[index])) { return true; }
        return false; }).invoke('disable');
}

function enableFormElementsStartingWith(form, match) {
    var matchStrings = $A(arguments);
    var form = matchStrings.shift();

    var elements = $(form).getElements().findAll(function (element) { 
        for(index = 0; index < matchStrings.length; index++) if (element.id.startsWith(matchStrings[index])) { return true };
        return false; }).invoke('enable');
}

