var objSelected = null;

function selectMenuItem(objectID) {
	var object = document.getElementById(objectID);
	var contentContainer = document.getElementById('content_container');
	if (objSelected != null) {
		var objectName = objSelected.id;
		var itemID = 'content_' + objectName.substring(5);
		var item = document.getElementById(itemID);
		jscss('remove',objSelected,'selected',null); 
		jscss('remove',contentContainer,'transparent',null);
		jscss('add',contentContainer,'hidden',null);
		jscss('add',item,'hidden',null);
	}
	var itemID = 'content_' + objectID.substring(5);
	var item = document.getElementById(itemID);
	if (objSelected != object) {
		jscss('add',object,'selected',null);
		objSelected = object;
		jscss('add',contentContainer,'transparent',null);
		jscss('remove',contentContainer,'hidden',null);
		jscss('remove',item,'hidden',null);
	} else {			
		objSelected = null;
	}
}

function addEvent(obj, eventType,fn, useCapture) {
    if (obj.addEventListener) {
        obj.addEventListener(eventType, fn, useCapture);
        return true;
    } else {
        if (obj.attachEvent) {
            var r = obj.attachEvent("on"+eventType, fn);
            return r;
        }
    }
}

function createHTTPHandler(){
	var xhr; 
    try {  xhr = new XMLHttpRequest();   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Msxml2.XMLHTTP');    }
        catch (e2) 
        {
          try { xhr = new ActiveXObject('Microsoft.XMLHTTP');      }
          catch (e3) {  xhr = false;   }
        }
    }
	return xhr;
}

function getNodeValue(obj, tag) {
	return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
}

/**
 *
 * actions: swap exchanges c1 and c2 in object o
 *			add adds class c1 to object o
 *			remove removes class c1 from object o
 *			check tests if class c1 is applied to object o
 */
function jscss(action,object,class1,class2) {

	switch (action){
		case 'swap':
			object.className=!jscss('check',object,class1)?object.className.replace(class2,class1):object.className.replace(class1,class2);
		break;
		case 'add':
			if(!jscss('check',object,class1)){object.className+=object.className?' '+class1:class1;}
		break;
		case 'remove':
			var rep=object.className.match(' '+class1)?' '+class1:class1;
			object.className=object.className.replace(rep,'');
		break;
		case 'check':
			return new RegExp('\\b'+class1+'\\b').test(object.className)
		break;
	}
}
