
var g_activePage = null;

 function setElementHTMLById( id, html ){ 
    try { 
       var El = document.getElementById(id); 
       if( El.attachEvent ){ 
          var elTmp = document.createElement('div'); 
          elTmp.innerHTML = html; 
          El.innerHTML = ""; 
          for( var i = 0; i < elTmp.childNodes.length; i++ ){ 
             El.appendChild( elTmp.childNodes[i] ); 
          } 
       } 
       else { 
          El.innerHTML = html; 
       } 
    } 
    catch( Er ){ 
       return false; 
    } 
    return El.innerHTML; 
 }

function tc_fetch(source, destination) {
	//destination = getElementById
	if (destination == null)
		return;
	destination.innerHTML = '<br/><br/><center><img src="images/ajax-loader.gif" alt="Loading Page" border="0"></center>';	
    var xmlHttp;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    }
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                alert("Your browser does not support AJAX!");

                return false;
            }
        }
    }
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
	
			//Get the content, and set up a content span for it
			var qp = source.indexOf('.');
			var innerDest = source.substr(0, qp);
			var resp = xmlHttp.responseText;
			innerDest = innerDest + "_div";
            var body = '<div id="' + innerDest + '">' + xmlHttp.responseText + '</div>';
			
            //Ugly loading of CSS pulled by ajax. :(
			var headID = document.getElementsByTagName("head")[0];         
			var cssNode = document.createElement('link');
			cssNode.type = 'text/css';
			cssNode.rel = 'stylesheet';
			cssNode.href = innerDest.replace("_div", ".css");
			cssNode.media = 'screen';
			headID.appendChild(cssNode);
			//destination.innerText = xmlHttp.responseText;
			//document.getElementById('canvas').innerHTML = xmlHttp.responseText;
			setElementHTMLById('canvas', body);
			/*
			
			
			
			
			//*/
        }
    }
    xmlHttp.open("GET", source, true);
    xmlHttp.send(null);

    return true; //*/
}

function tc_changePage(obj)
{
	//alert("Active page is now " + obj.innerHTML);
	if (g_activePage == obj)
	{
		return;
	}
	
	if (g_activePage == null)
	{
		g_activePage = document.getElementById('active_page');
	}
	
	if (g_activePage != null)
	{
		g_activePage.className = 'tc_inactivePage';
	}

	g_activePage = obj;
	g_activePage.className = 'tc_activePage';
}

function tc_setActivePage(obj, id)
{
	tc_changePage(obj);
	
	var canvas = document.getElementById('canvas');
	if (canvas != null)
	{	
		var content = document.getElementById(id);
		if (content != null)
		{
			canvas.innerHTML = content.innerHTML;
		}
	}
}

function tc_setActivePageAjax(obj, url)
{
	tc_changePage(obj);
	tc_fetch(url, document.getElementById('canvas'));
}
