// changes the displayed page
function changePage(pageId, containerId) {
//	var pages = $(containerId).getElements('.page'); //Mootools 
	var pages = $('#' + containerId +' > .page').get(); //JQuery stylee	
	for (var i = 0; i < pages.length; i++) {
		if (pages[i].id == pageId) {
			cssHandler("rem", pages[i], 'hiddendiv');
		} else {
			if (!cssHandler("check", pages[i], 'hiddendiv')) {
				cssHandler("add", pages[i], 'hiddendiv');
			}
		}
	}
}

// handle tab switching
// Example: switchTabs(this, changePage('page1', 'pageContainer'))
function switchTabs(selectedTab, functionToFire) {
    // get the tab container element
    var tabList = selectedTab.parentNode;

    // get the list items (tabs)
    var listItems = tabList.getElementsByTagName(selectedTab.tagName);

    // cycle through the tabs
    for (var i in listItems) {
        if (listItems[i] == selectedTab) {
            // apply the class 'selected' to the selectedTab
            cssHandler("add", selectedTab, 'selected');

            // if the user passed in a function then fire it
            if (functionToFire && functionToFire.isFunction()) {
                 functionToFire();
            }
        } else {
            // remove the class 'selected' from any other tabs
            if (cssHandler("check", listItems[i], 'selected')) {
                 cssHandler("rem", listItems[i], 'selected');
            }
        }
    }
    return false;
}

// Handles swap/add/removal of classes from the specified element, 
// can also check whether the element contains the specified class
function cssHandler(action,element,class1,class2) {
                                
	if (typeof element == "string") {
		// have they passed in an ID
		element = document.getElementById(element);
	}
	
	switch (action){
		case 'swp':
			// swap classes
			element.className = 
							!cssHandler('check',element,class1) ? element.className.replace(class2,class1) : element.className.replace(class1,class2);
		break;
		case 'add':
			// add class1
			if (!cssHandler('check',element,class1)) {
							element.className += element.className ? ' '+class1 : class1;
			}
		break;
		case 'rem':
			// remove class1
			var rep = element.className.match(' ' + class1) ? ' ' + class1 : class1;
			element.className = element.className.replace(rep, '');
		break;
		case 'check':
			// check if element contains a class
			return new RegExp('\\b'+class1+'\\b').test(element.className);
		break;
	}
	return false;
}