﻿function initialize() 
{
	//alert('init');
	dhtmlHistory.initialize();
	dhtmlHistory.addListener(historyChange);
	
	if (dhtmlHistory.isFirstLoad())
	{
		//debug("Adding values to browser "+ "history", false);
		//dhtmlHistory.add("helloworld", "Hello World Data");
		//debug("Storing key 'fakeXML' into " + "history storage", false);
		//alert('first');
		var fakeXML = 
			'<?xml version="1.0" '
			+      'encoding="ISO-8859-1"?>'
			+      '<foobar>'
			+         '<foo-entry/>'
			+      '</foobar>';
		historyStorage.put("fakeXML", fakeXML);
	} 
		
	var savedXML = historyStorage.get("fakeXML");
	savedXML = prettyPrintXml(savedXML);
	var hasKey = historyStorage.hasKey("fakeXML");
	var message =
		"historyStorage.hasKey('fakeXML')="
		+ hasKey + "<br>"
		+ "historyStorage.get('fakeXML')=<br>"
		+ savedXML;
	//debug(message, false);*/
}
	 
function historyChange(newLocation, historyData) 
{
	//alert('!');
	//alert(newLocation);
	
	if (!newLocation)
	{
		document.refresh();
		return;
	}
	
	var keys = newLocation.split('|');
	
	var mdir	= keys[0];
	var mid		= keys[1];
	var currtpl	= keys[2];
	var tpl		= keys[3];
	var gets	= keys[4];
	var lang	= keys[5];
	
	if (!gets) gets='';
	gets = gets.replace('-','=');
	gets = gets.replace('_','&');
	
	showUserModule(mdir,mid,currtpl,tpl,gets,lang);
}
  
function prettyPrintXml(content) 
{
	if (content == null)	return null;
	content = content.replace(/</g, "&lt;");
	content = content.replace(/>/g, "&gt;<br>");
	return content;
}



//----------------------------------------------------------------------------------------------------------------



function showUserModuleFast(mid,gets)
{	
	showUserModule
	(
		document.getElementById('modules_dir').innerHTML,
		mid,
		document.getElementById('curr_template').innerHTML,
		document.getElementById('curr_template').innerHTML,
		gets,
		document.getElementById('curr_language').innerHTML
	)
}

function showUserModule(mdir,mid,currtpl,tpl,gets,lang) 
{	
	//alert(mdir+'+'+mid+'+'+currtpl+'+'+tpl+'+'+gets+'+'+lang);
	
	if (tpl != currtpl)
	{	
		document.location.href='index.php5?module='+mid+'&template='+tpl+'&language='+lang+gets;
		return;
		//document.getElementById(mid+'_template').innerHTML
	}
	
	var key0 = gets;
	var key1 = key0.replace('=','-');
	var key2 = key1.replace('&','_');
	var key3 = mdir+'|'+mid+'|'+currtpl+'|'+tpl+'|'+key2+'|'+lang;
	//alert(key3);
	//alert('history_add');
	//dhtmlHistory.add(key3,'x');
	
	var myurl1 = mdir+"/"+mid+"/main.php5?mID="+mid+gets+"&template="+tpl+"&language="+lang;
	
	advAJAX.get
	(
		{
			url 				: myurl1,
			uniqueParameter		: "custom_unique_param",
			onInitialization	: function(obj) { document.getElementById('ElMain').innerHTML = "Preparing..."; },
			onLoading 			: function(obj) { document.getElementById('ElMain').innerHTML = "Loading..."; },
			onSuccess 			: function(obj) 
			{	
				var data=obj.responseText;

									data = obj.responseText.split('\n');
									
									arraylen = data.length;
									var i = 0;
									var txt='';
									
									while(i < arraylen)
									{
										if( data[i].indexOf("<script") > -1)
										{
											txt=txt+data[i];
											i++;
											while(data[i].indexOf("/script") < 0)
											{
												eval(data[i]);
												txt=txt+data[i];
												i++;
											}
										}
										txt=txt+data[i];
										i++;
									}
			
				document.getElementById('ElMain').innerHTML = txt;
				
				var aInput=document.getElementsByName('submenu_elem');
				for (i=0; i<aInput.length; i++)
				{
					aInput.item(i).style.fontWeight = 'normal';
				}
				//document.getElementById('submenu_'+mid+"_"+gets).style.fontWeight = 'bold';
			},
			onError 			: function(obj) { document.getElementById('ElMain').innerHTML = "Error..."; }
		}
	);
}


function module_submit(mid,form,params)
{
	advAJAX.submit
	(
		form,
		{
			onSuccess : function(obj)
			{
				if (obj.responseText == '1')	showAdminModuleFast(mid,params);
				else							alert(obj.responseText);
			}
		}
	);
}
