
var tab_current = null;

var tab_titles = Array();

var tab_basePageTitle = document.title;

function tab_set_info(tabID, section, title)
{
	tab_titles[tabID] = title;
}

function tab_set_active(tabID)
{
	if (tab_current != null)
	{
		var tabLI = document.getElementById('tab_' + tab_current);
		
		if (tabLI)
		{
			tabLI.className = '';
		}
	}

	var tabLI = document.getElementById('tab_' + tabID);

	if (tabLI)
	{
		tabLI.className = 'active';
	}

	tab_current = tabID;
}

var tab_watch_lastURL = null;

function tab_got_anchor()
{
	if (document.location.href.match(/#/))
	{
		return true;
	}

	return false;
}

function tab_watch_history() 
{
	if (tab_watch_lastURL != document.location.href)
	{
		if (document.location.href.match(/#/))
		{
		
			var tabID = document.location.href.replace(/[^#].*#(.*?)/, '$1');
			
			if (tab_titles[tabID] != null)
			{
				document.title = tab_titles[tabID] + ' - ' + tab_basePageTitle;
			}

			tab_load_content(tabID);
		}
	}

	tab_watch_lastURL = document.location.href;

	window.setTimeout('tab_watch_history()', 100);
}

var ajax_get_vars = new Array();

function ajax_add_getvar(name, value)
{
	ajax_get_vars[name] = value;
}

var xmlhttp=false;

function ajax_load(url, arguments)
{
//	var matches = window.location.href.match(/^(http|https)\:\/\/.+?(\/.+?)(\?|#|$)/i);
//	var sHref = matches[2];
//	
//	if(sHref.substr(sHref.length -1 , 1) != "/")
//		sHref += "/";
//
//	url = sHref+url;

	if (!arguments)
	{
		var arguments = new Array();
	}

	var name, argString = '';
	
	for(name in ajax_get_vars)
	{
		arguments[name] = ajax_get_vars[name];
	}
	
	var xml_out_obj = document.getElementById('xml_out');

	if (xml_out_obj)
	{
		xml_out_obj.innerHTML = 'Gepost naar: ' + url + '<br /><br />';
		
		var fr = document.getElementById('frits_debug_form');
		fr.action = url;
	}

	if (arguments)
	{
		var i = 0, varName, varValue;

		for(varName in arguments)
		{
			varValue = arguments[varName];

			if (xml_out_obj)
			{
				var tr = document.createElement('tr');

				var td = document.createElement('td');
				td.innerHTML = '<b>' + varName + '</b>';
				tr.appendChild(td);

				var td = document.createElement('td');
				var inp = document.createElement('textarea');
				inp.name = varName;
				inp.value = varValue;
				inp.style.width = '300px';
				inp.style.height = '20px';
				td.appendChild(inp);
				tr.appendChild(td);

				xml_out_obj.appendChild(tr);
			}

			argString += (argString ? '&' : '') + escape(varName) + '=' + escape(varValue);
		}
	}

	if (xml_out_obj)
	{
		var tr = document.createElement('tr');

		var td = document.createElement('td');
		tr.appendChild(td);

		var td = document.createElement('td');
		var inp = document.createElement('input');
		inp.type = 'submit';
		inp.value = 'Doe request in browser';
		td.appendChild(inp);
		tr.appendChild(td);

		xml_out_obj.appendChild(tr);
	}
	
	var tabbodyLoadingSave = document.getElementById('tabbody_loading_save');
	var tabbodyLoading = document.getElementById('tabbody_loading');
	var tabbodyContent = document.getElementById('tabbody');

	var fritsCheckableLoading = document.getElementById('frits_checkable_loading');
	var fritsCheckableContent = document.getElementById('frits_checkable_content');

	if (tabbodyLoading)
	{
		if (url.match(/submit/) || 
				arguments['action'] == 'VERSTUURVOORSTEL')
		{
			tabbodyLoadingSave.style.display = 'block';
			tabbodyLoading.style.display = 'none';
		}
		else
		{
			tabbodyLoading.style.display = 'block';
			tabbodyLoadingSave.style.display = 'none';
		}
		
		tabbodyContent.style.display = 'none';
	}
	else if (fritsCheckableLoading)
	{
		if (url.match(/submit/))
		{
			var sContent = 'Op dit moment worden de gegevens naar onze database weggeschreven, dit kan enige tijd duren. Wij verzoeken u het scherm niet te sluiten totdat de actie is afgerond.';
		}
		else
		{
			var sContent = 'Uw gegevens worden opgevraagd, dit kan enige tijd duren. Een moment geduld alstublieft.';
		}
		
		var oContent = document.getElementById('frits_checkable_loading_content');
		oContent.innerHTML = sContent;
		
		fritsCheckableLoading.style.display = 'block';
		fritsCheckableContent.style.display = 'none';
		
		
		
	}
	
	frits_hide_dynamicTooltips();

	////////////////////////////////////////////////////////////////////////

	xmlhttp=false;

	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	 try {
	  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
	  try {
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (E) {
	   xmlhttp = false;
	  }
	 }
	@end @*/

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}

	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4)
		{
			if (xmlhttp.status == 200)
			{
				var xml_in_obj = document.getElementById('xml_in');

				if (xml_in_obj)
				{
					xmlResponseText = xmlhttp.responseText;
					if (xmlResponseText.search(/ERROR_VOOR_FRITS/i) > -1) {
						window.location = "/error";
					} else {
						xml_in_obj.value = xmlResponseText;
					}
				}
				eval(xmlhttp.responseText);
			}
		}
	}

	////////////////////////////////////////////////////////////////////////

	//alert('test');
	//AANZETTEN OM PROFILE CACHE GRIND BESTAND TE MAKEN

	//argString = '?XDEBUG_PROFILE=1' + (argString != "" ? '&'+argString : '');

	//stond "+ argString" achter de URL waarom??

	//xmlhttp.open("POST", url + argString , true);
	xmlhttp.open("POST", url , true);
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send(argString);
}

var ruri = new String(document.location);

if (ruri.match(/fritsDebug=1/))
{
	document.write('<form id="frits_debug_form" target="_new" method="post"><b>Request richting PHP:</b><br /><table id="xml_out"></table><br />');
	document.write('<b>Response van PHP:</b><br /><textarea id="xml_in" style="width:800px; height:300px;" ></textarea></form>');
}

function tab_hide_loadingScreen()
{
	var tabbodyLoading = document.getElementById('tabbody_loading');
	var tabbodyLoadingSave = document.getElementById('tabbody_loading_save');
	var tabbodyContent = document.getElementById('tabbody');

	var fritsCheckableLoading = document.getElementById('frits_checkable_loading');
	var fritsCheckableContent = document.getElementById('frits_checkable_content');

	if (tabbodyLoading)
	{
		tabbodyLoading.style.display = 'none';
		tabbodyLoadingSave.style.display = 'none';
		tabbodyContent.style.display = 'block';
	}
	else if (fritsCheckableLoading)
	{
		fritsCheckableLoading.style.display = 'none';
		fritsCheckableContent.style.display = 'block';
	}

	frits_show_dynamicTooltips();
}

function tab_set_content(content)
{
	var txt = document.getElementById('tabbody');
	txt.innerHTML = '<ul id="taberrors"></ul>' + content;

	tab_is_loading = false;
/* alert('Thanh-tab_set_content \n. Content is :\n ' + content); */
	tab_hide_loadingScreen();
}

var ajax_base_uri = '';

function ajax_set_baseURI(URI)
{
	ajax_base_uri = URI;
}

function ajax_modulerequest(URI, arguments)
{
	ajax_load(ajax_base_uri + URI, arguments);
}

function tab_getID(name)
{
}

function tab_reload(arguments)
{
	ajax_load('ajax/tab/' + tab_current, arguments);
}

var tab_is_loading = false;

function tab_load_content(tabID, arguments)
{
	if (tab_current != tabID && !tab_is_loading)
	{
		frits_deactiveer_tabbox();

		frits_clear_dynamicTooltips();
		


		tab_is_loading = true;

		ajax_load('ajax/tab/' + tabID + '/', arguments);

		tab_set_active(tabID);
		
		frits_clear();
	}
}

function _utf8_decode (utftext)
{
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}

		}

		return string;
	}

