var newMsg = '';

function init () {
	var tabs = document.getElementsByClassName('tabs');
	for (var i = 0; i < tabs.length; i++) {
		$(tabs[i].id).onclick = function () {
			var allTab = document.getElementsByClassName('tabActive');
			for (var i = 0; i < allTab.length; i++) {
				$(allTab[i].id).className = 'tabs';
				}
			
			// Cas de la recherche : onglet vers lightbox au premier clic
			if ((this.id == 'search' || this.id == 'stat') && this.className != 'tabActive')
				getLinkData(this.id);
			else 
				getTabData(this.id);

			this.className = 'tabActive';
		}
		$(tabs[i].id).onmouseover = function () {
			if (this.className != 'tabActive')
				this.className='tabHover';
		}
		$(tabs[i].id).onmouseout = function () {
			if (this.className != 'tabActive')
				this.className='tabs';
		}
	}
}

function initLinks() {
	var link = document.getElementsByClassName('ajax');
	for (var i = 0; i < link.length; i++) {
		if (link[i].name == 'direct') {
			$(link[i].id).onclick = function () {
				getDirectLinkData(this.id);
			}
		}
		else {
			$(link[i].id).onclick = function () {
				getLinkData(this.id);			
			}
		}
	}
}

function refreshTab() {
	var activeTab = document.getElementsByClassName('tabActive');
	if (activeTab[0]) {
		for (var i = 0; i < activeTab.length; i++) {
			getTabData($(activeTab[i].id).id);
		}
	}
	else {
		getTabData('action');
	}
}

function refreshLB(parentLB, parentId) {
	getLinkData(parentLB + '_modifier_' + parentId);
}

function getTabData(id) {
	var url = 'process.php';
	var rand = Math.random(9999);
	var pars = 'id=' + id + '&rand=' + rand;
	showLoad ();
	var myAjax = new Ajax.Request( 
		url, {
		method: 'get', 
		parameters: pars, 
		onSuccess: showResponse
	} );
}

function getLinkData(id) {
	var url = 'process.php';
	var rand = Math.random(9999);
	var pars = 'id=' + id + '&rand=' + rand;
	showLBLoad ();
	var myAjax = new Ajax.Request( 
		url, {
			method: 'get', 
			parameters: pars, 
			onSuccess: function (originalRequest) {
				if (originalRequest.responseText.search("<error_code>")!=-1) 
					showResponse(originalRequest);
				else
					showLBResponse(originalRequest);
			}
		} 
	);
}

function getDirectLinkData(id) {
	var tmp = id.split('_');
	if ((tmp[1] == 'archiver') || (tmp[1] == 'imprimer') || (tmp[1] == 'supprimer')) {
		if (!(confirm('Etes-vous sûr de vouloir ' + tmp[1] + ' cet élément ?') == true)) {
			return false;
		}
	}
	if (tmp[1] == 'imprimer') {
		var url = 'process.php';
		var rand = Math.random(9999);
		var pars = 'id=' + id + '&actionName=' + tmp[1] + '&' + tmp[0] + 'Id=' + tmp[2] + '&rand=' + rand;
		var myAjax = new Ajax.Request( url, {
			method: 'post', 
			parameters: pars, 
			onSuccess: function (originalRequest) {
				setInnerHTML($('tmpPrint'), originalRequest.responseText);								
				window.print();
			}
		});
	}
	else {
		var url = 'process.php';
		var rand = Math.random(9999);
		var pars = 'id=' + id + '&updateDb=true&actionName=' + tmp[1] + '&' + tmp[0] + 'Id=' + tmp[2] + '&rand=' + rand;
			if (! isNaN(tmp[4])) {
				pars += '&parentId=' + tmp[4] + '&parentLB' + tmp[3];
				showLoad ();
				var myAjax = new Ajax.Request( url, {
					method: 'post', 
					parameters: pars, 
					onSuccess: function (originalRequest) {
						newMsg = originalRequest.responseText; 
						refreshLB(tmp[3], tmp[4]);
					}
				});
			} else {
				showLoad ();
				var myAjax = new Ajax.Request( url, {method: 'post', parameters: pars, onSuccess: showDirectResponse} );	
		}
	}
}

function showLoad () {
	hideLB();
	showOverlay();
}

function showLBLoad () {
	hideLB();
	showLBOverlay();
}

function showResponse (originalRequest) {
	if (originalRequest.responseText.search("<error_code>")!=-1) {
		var newData = originalRequest.responseText.substr(12, originalRequest.responseText.length - 1);
		showSecureResponse(newData);
	}
	else {
		var newData = originalRequest.responseText;
		setInnerHTML($('content'), newData);
		initLinks();
		
		if (newMsg != '') {
			$('msg').innerHTML = newMsg;
			newMsg = '';
			$('msg').style.display = 'block';
		}
		hideOverlay();
		initialize();
		newData = '';
		

		originalRequest.responseText = '';
	}
}

function showDirectResponse (originalRequest) {
	newMsg = originalRequest.responseText;
	refreshTab();
	initialize();
}

function showLBResponse (originalRequest) {
	var newData = originalRequest.responseText;
	setInnerHTML($('contentLB'), newData);
	initLinks();
	showLB();
	initialize();
	
	if (originalRequest.responseText == 'ok')
		refreshTab();

	newData = '';
	originalRequest.responseText = '';
}

function showLog(rubriqueId, articleId) {
	var url = 'process.php';
	var rand = Math.random(9999);
	if (articleId != '')
		var pars = 'id=article_consulter_' + articleId + '&rand=' + rand;
	else
		var pars = 'id=rubrique_consulter_' + rubriqueId + '&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onSuccess: showResponse} );
}

function showSecureResponse (response) {
	setInnerHTML($('contentLB'), response);
	initLinks();
	showLB();
	initialize();
	response = '';
	showLog();
}

function showPanelResponse (originalRequest) {
	var newData = originalRequest.responseText;
	setInnerHTML($('contentLB'), newData);
	initLinks();

	if (newMsg != '') {
		setInnerHTML($('msgLB'), newMsg);
		newMsg = '';
		$('msgLB').style.display = 'block';
		showPanel('panel3');
	}	
	showLB();
}


	function majScat() {
		while (1 < $('scatId').length) {
			$('scatId').options[1] = null;
		}

		var myAjax = new Ajax.Request(
			'process.php',
			{
				method: 'post',
				parameters: 'id=scat_json_' + $('catId').options[$('catId').selectedIndex].value + '&actionName=json&moduleName=scat', 
				onComplete: gestionReponse
		});
	}

	function gestionReponse(xhr) {
		var scats = eval('(' + xhr.responseText + ')');
		if (scats) {
			for (var i=0 ; i < scats.length ; i++) {
				var scat = scats[i];
				$('scatId').options[i+2] = new Option(scat.titre);
				$('scatId').options[i+2].value = scat.scatId;
			}
		}
	}

	function majClient(xhr) {
		var clients = eval('(' + xhr.responseText + ')');
		if (clients) {
			for (var i=0 ; i < clients.length ; i++) {
				var client = clients[i];
				$('nom').value = client.nom;
				$('prenom').value = client.prenom;
				$('tel').value = client.tel;
				$('mail').value = client.mail;
				$('adresse').value = client.adresse;
				$('cp').value = client.cp;
				$('ville').value = client.ville;
				$('clientId').value = client.clientId;
				if (client.civ != '')
					$('civ_' + client.civ).checked = true;

				for (var j=0 ; j < $('catId').options.length ; j++) {
					$('catId').options[j].selected = '';
					if ($('catId').options[j].value == client.catId)
						$('catId').options[j].selected = 'selected';					
				}	

				majScat();

				$('scatId').options[0] = new Option(client.scatTitre);
				$('scatId').options[0].value = client.scatId;			
			}
		}
	}	

	function directSearch(clientId) {
		var url = 'process.php';
		var rand = Math.random(9999);
		var pars = 'id=search_result&actionName=result&clientId='+clientId;
		showLoad ();
		var myAjax = new Ajax.Request( url, {method: 'post', parameters: pars, onSuccess: showResponse} );
	}
	
Event.observe(window, 'load', init, false);
