// Copyright (c) 2008 Mirchev Ideas Ltd. All rights reserved.

EDU = new function()
{
	this.Home = {};
	this.ML = {};	// Multilanguage
};

EDU.Home = new function()
{
	this.reloadTable = function(url, tableId)
	{
		$.post(
			url,
			{},
			function reloadTableSuccess(data) {
				// Set the html & eval the scripts
				$('#' + tableId).html(data);
				$("#loading").hide();
//				$('#' + tableId).html(data).evalScripts();
			},
			'html'
		);
	}
	
	this.filterForm = function(formName, ajaxTable)
	{
		var form = $('#' + formName);
		var data = form.formSerialize();
		EDU.Home.reloadTable(form.attr('action') + data, ajaxTable);
	}
		
};

EDU.ML = new function()
{
	var LANG_SELECTED_CLASS = 'lang_selected';
	this.activeLanguages = [];
	this.currentLang = null;
	this.mlControlNames = [];
	
	this.registerMultilanguageControl = function(controlName)
	{
		this.mlControlNames[controlName] = controlName;
	}
	
	this.registerMultilanguageControls = function(controlNames)
	{
		for (var i = 0; i < controlNames.length; i++)
			this.registerMultilanguageControl(controlNames[i]);
	}
	
	this.unregisterMultilanguageControl = function(controlName)
	{
		delete this.mlControlNames[controlName];
	}
	
	this.unregisterMultilanguageControls = function(controlNames)
	{
		for (var j = 0; j < controlNames.length; j++)
			this.unregisterMultilanguageControl(controlNames[i]);
	}
	
	this.show = function()
	{
		$('#dataLanguages>div>a[@href=#' + EDU.ML.currentLang + ']').click();
	}
	
	this.initMultilanguageForm = function(formName, languageId)
	{
		$('#dataLanguages>div>a').click(function() {
			var languageId = this.href.split('#')[1];
			EDU.ML.changeLanguage(languageId);
			return false;
		});
		
		// Find all active languages
		var allLanguages = $('#dataLanguages>div>a').get();
		var re = /#(\d+)$/;
		for(var i = 0, l = allLanguages.length; i < l; i++) {
			EDU.ML.activeLanguages.push(String(allLanguages[i]).match(re)[1]);
		}
			
		$('#dataLanguages>div>a[@href=#' + languageId + ']').click();
	}
	
	this.nextLanguage = function()
	{
		// Get the next language
		for (var i = 0; i < EDU.ML.activeLanguages.length; i++) {
			if (EDU.ML.currentLang == EDU.ML.activeLanguages[i])
				break;
		}
		
		// Change to the next language
		if (i + 1 == EDU.ML.activeLanguages.length)
			this.changeLanguage(EDU.ML.activeLanguages[0]);
		else
			this.changeLanguage(EDU.ML.activeLanguages[i + 1]);
	}
	
	this.changeLanguage = function(languageId)
	{
		// Make the chosen language selected
		$('#dataLanguages>div>a').removeClass(LANG_SELECTED_CLASS);
		$('#dataLanguages>div>a[@href=#' + languageId + ']').addClass(LANG_SELECTED_CLASS);
		
		// Hide the current language
		if (EDU.ML.currentLang != null) {
			for (var c in EDU.ML.mlControlNames) {
				spanElem = document.getElementById('span' + c + '-' + EDU.ML.currentLang);
				if (spanElem)
					spanElem.style.display = 'none';
			}
		}
		
		// Show the new language
		for (var c in EDU.ML.mlControlNames) {
			spanElem = document.getElementById('span' + c + '-' + languageId);
			if (spanElem)
				spanElem.style.display = '';
		}
		
		EDU.ML.currentLang = languageId;
	}
	
	this.openWysiwygEditor = function(name, title)
	{
		var id = name + '[' + EDU.ML.currentLang + ']';
		var url = 'popup/html_editor.php?id=' + id + '&TB_iframe=true&height=600&width=700';
		tb_show(title, url, false);
		$("#TB_overlay").unbind();
	}
	
	this.initMultilanguageTable = function(formName, ajaxTable, languageId)
	{
		$('#dataLanguages>div>a').click(function() {
			var languageId = this.href.split('#')[1];
			$('input[@name=DataLanguage]').val(languageId);
			EDU.Home.filterForm(formName, ajaxTable);
			
			// Make the chosen language selected
			$('#dataLanguages>div>a').removeClass(LANG_SELECTED_CLASS);
			$('#dataLanguages>div>a[@href=#' + languageId + ']').addClass(LANG_SELECTED_CLASS);
		});
		
		$('#dataLanguages>div>a[@href=#' + languageId + ']').addClass(LANG_SELECTED_CLASS);
	}
}

