if (window.addEventListener)
	window.addEventListener("load", extranetInit, false);
else if (window.attachEvent)
	window.attachEvent("onload", extranetInit, false);

function	extranetInit(e)
{
	//if (navigator.appVersion.match(/MSIE [0-6]\./))
		//ieMouseOver();
	/*{
		var tags = document.getElementsByTagName('*');
		for (var i = 0; i < tags.length; i++)
		{
			if (tags[i].currentStyle.backgroundImage != 'none')
			{
				var image = tags[i].currentStyle.backgroundImage;
				image = tags[i].currentStyle.backgroundImage.substring(5, image.length - 2);
				tags[i].style.backgroundImage = 'none';
				tags[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')";
			}
		}
	}*/
	
	var idVar = '';
	if (document.getElementsByName('ID_VAR')[0])
		var idVar = document.getElementsByName('ID_VAR')[0].value;
	if (idVar == '' || idVar == undefined || idVar == 0)
		document.getElementById('extranetTitle').style.display = 'none';
	
	if (document.getElementById('extranetTitle'))
		document.getElementById('extranetTitle').onclick = toggleExtranet;
			
	/*var extranet = document.getElementById('extranet');
	extranet.onmouseout = function () { this.style.opacity = '0.5'; }
	extranet.onmouseover = function () { this.style.opacity = '1.0'; }*/
	
	var forms = document.getElementsByTagName('form');
	for (i = 0; i < forms.length; i++)
	{
		var l = forms[i].action.length;
		var action = forms[i].action.substring(l - 13, l);
		if (action == 'connexion.php')
			forms[i].action = 'plugins/Extranet/connexion.php';
	}
}

function	refreshContainers()
{
	var msgContainers = document.getElementsByTagName('div');
	for (var i = 0; i < msgContainers.length; i++)
		if (msgContainers[i].className == 'msgContainer')
			msgContainers[i].scrollTop = msgContainers[i].scrollHeight;
}

function	toggleExtranet()
{
	var display = document.getElementById('extranetContent').style.display;
	
	display = display == 'none' ? '' : 'none';
	if (display == '')
		getTopics();
	document.getElementById('extranetContent').style.display = display;
}

function	toggleSubject(obj)
{
	var s = 1;
	
	while (document.getElementById('subject_' + s))
	{
		document.getElementById('subject_' + s).nextSibling.style.display = 'none';
		document.getElementById('subject_' + s).style.backgroundImage = '';
		document.getElementById('subject_' + s).getElementsByTagName('span')[0].style.color = '';
		document.getElementById('subject_' + s).getElementsByTagName('span')[0].style.fontWeight = '';
		document.getElementById('subject_' + s).getElementsByTagName('span')[0].parentNode.style.backgroundImage = '';
		s++;
	}
	obj.nextSibling.style.display = '';
	obj.style.backgroundImage = 'url(plugins/Extranet/pics/subjectBackground.png)';
	obj.getElementsByTagName('span')[0].style.color = '#000';
	obj.getElementsByTagName('span')[0].style.fontWeight = 'bolder';
	obj.getElementsByTagName('span')[0].parentNode.style.backgroundImage = 'url(plugins/Extranet/pics/bullet_arrow_down.png)';
	refreshContainers();
}

function	getTopics()
{
	var idVar = document.getElementById('extranetVar').value;
	var div = document.getElementById('extranetContent');
	
	xmlhttp = new ajaxObject();
	div.innerHTML = xmlhttp.ajaxRequest('GET', 'plugins/Extranet/extranet.php?var=' + idVar, false, false);	
}

function refreshExtranet(data, idSubject)
{
	var idVar = document.getElementById('extranetVar').value;
	var div = document.getElementById('extranetContent');
	
	xmlhttp = new ajaxObject();
	div.innerHTML = xmlhttp.ajaxRequest('GET', 'plugins/Extranet/extranet.php?var=' + idVar, false, false);
	if (idSubject != undefined)
		toggleSubject(document.getElementById('container_' + idSubject).previousSibling);
}

function	newTopic()
{
	var div = document.getElementById('box');
	var overlay = document.getElementById('overlay');
	var navx = window.screen.availWidth;
	var navy = window.screen.availHeight;
	var left = (navx - 500) / 2;
	var top = (navy / 4);
	
	div.style.top = top + 'px';
	div.style.left = left + 'px';
	
	overlay.style.width = (window.screen.availWidth - 16) + 'px';
	overlay.style.height = window.screen.availHeight + 'px';
		
	if (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf('MSIE 6.0') > -1)
	{	
		overlay.style.width = '100%';
		overlay.style.height = '100%';
	}
		
	overlay.onclick = closeTopic;
	overlay.style.display = '';
	div.style.display = '';
}

function	group(idSubject)
{
	var div = document.getElementById('groupBox');
	var overlay = document.getElementById('overlay');
	var navx = window.screen.availWidth;
	var navy = window.screen.availHeight;
	var left = (navx - 500) / 2;
	var top = (navy / 4);
	var xmlhttp = new ajaxObject();
	var data = 'action=getGroup&idSubject=' + idSubject;
	var target = document.getElementById('groupMulti');
	
	div.style.top = top + 'px';
	div.style.left = left + 'px';
	
	
	
	overlay.style.width = (window.screen.availWidth - 16) + 'px';
	overlay.style.height = window.screen.availHeight + 'px';
		
	if (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf('MSIE 6.0') > -1)
	{	
		overlay.style.width = '100%';
		overlay.style.height = '100%';
	}
	
	
	target.innerHTML = xmlhttp.ajaxRequest('POST', 'plugins/Extranet/extranet.ajax.php', data, false, false);
	
	
	overlay.onclick = closeGroup;
	overlay.style.display = '';
	div.style.display = '';
}

function	updateGroup()
{
	var idSubject = document.getElementById('groupSubject').value;
	var add = document.getElementById('targetSelectb');
	var data = 'action=updateGroup&idSubject=' + idSubject;
	var xmlhttp = new ajaxObject();
	var authors = '';
	
	for (var i = 0; i < add.options.length; i++)
		authors += '[' + add.options[i].value + ']';
	data += '&authors=' + authors;
	xmlhttp.ajaxRequest('POST', 'plugins/Extranet/extranet.ajax.php', data, false, false);
	closeGroup();	
}

function submitGroup()
{
	var target = document.getElementById('targetSelectf');
	for (var i = 0; i < target.options.length; i++)
		target.options[ i ].selected = true;
}

function	closeGroup()
{
	document.getElementById('groupBox').style.display = 'none';
	document.getElementById('overlay').style.display = 'none';
}

function	closeTopic()
{
	document.getElementById('box').style.display = 'none';
	document.getElementById('overlay').style.display = 'none';
}

function	createTopic(free)
{
	if (free != 'free')
		free = '';
	if (free == 'free')
		var idVar = 0;
	else
		var idVar = document.getElementById('extranetVar').value;
	var text = document.getElementById('subjectMessage').value;
	var type = document.getElementById('subjectType').value;
	var title = document.getElementById('subjectTitle').value;
	if (free == 'free')
		var target = document.getElementById('targetSelectf');
	else
		var target = document.getElementById('targetSelect');
	var selected = '';
		
	if (title == undefined || title == '')
	{
		DisplayAlert('Veuillez écrire un titre.')
		return;
	}
	
	if (text == undefined || text == '')
	{
		DisplayAlert('Veuillez écrire un message.')
		return;
	}

	for (var i = 0; i < target.options.length; i++)
		selected += '[' + target.options[ i ].value + ']';
	
	var data = 'action=createTopic&idVar=' + idVar + '&text=' + text + '&type=' + type + '&title=' + title + '&group=' + selected;
	if (free == 'free')
	{
		var theme = document.getElementById('idTheme').value;
		if (theme == '' || theme == undefined)
		{
			DisplayAlert('Veuillez choisir ou créer un theme.')
			return;
		}
		data += '&idTheme=' + theme;
		if (theme == -1)
		{
			data += '&theme=' + document.getElementById('moreTheme').value;
		}
	}
		
	xmlhttp = new ajaxObject();
	xmlhttp.ajaxRequest('POST', 'plugins/Extranet/extranet.ajax.php', data, false, refreshExtranet);
	if (free == 'free')
		self.location = '?m&page=1337&url=plugins/Extranet/freeTopics.php';
	else
		closeTopic();
}

function	createMessage(idSubject, free)
{
	var last = document.getElementById('lastFrame_' + idSubject);
	var text = document.getElementById('text_' + idSubject).value;
	var data = 'action=createMessage&idSubject=' + idSubject + '&text=' + text;
	var file = last.contentWindow.document.getElementById('file').value;
	
	if (text == undefined || text == '')
	{
		DisplayAlert('Veuillez écrire un message.')
		return;
	}

	xmlhttp = new ajaxObject();
	xmlhttp.ajaxRequest('POST', 'plugins/Extranet/extranet.ajax.php', data, false, false);
	if (file != '' && file != undefined)
		last.contentWindow.upload(idSubject);
	else
	{
		if (free == 'free')
			readTopic('', idSubject);
		else
			refreshExtranet('', idSubject);
	}
}

function	extern(idSubject)
{
	var idVar = document.getElementById('extranetVar').value;
	var file = 'plugins/Extranet/extern.php?var=' + idVar + '&subject=' + idSubject;
	var h = 360;
	var w = 800;
	var l = (screen.width / 2) - (w / 2);
	window.open(file, 'map', 'width=' + w + ', height=' + h + ', left=' + l + ', top=0, scrollbars=yes, resizable=no');
}

function	readTopic(data, idSubject)
{
	var div = document.getElementById('topicList');
	var data = 'idSubject=' + idSubject + '&action=readTopic';
	var xmlhttp = new ajaxObject();
	
	div.innerHTML = xmlhttp.ajaxRequest('POST', 'plugins/Extranet/freeTopics.ajax.php', data, false);
	refreshContainers();
}

function	editAuthor(obj, type, id, author)
{
	var input = document.createElement('input');
	var inputId = document.createElement('input');
	var inputType = document.createElement('input');
	var inputOld = document.createElement('input');
	
	input.value = author;
	if (type == 'pass')
		input.type = 'password';
	else
		input.type = 'text';
	input.onblur = validAuthor;
	inputId.type = 'hidden';
	inputId.value = id;
	inputType.type = 'hidden';
	inputType.value = type;
	inputOld.value = author;
	inputOld.type = 'hidden';
	obj.innerHTML = '';
	obj.onclick = '';
	obj.appendChild(input);
	obj.appendChild(inputId);
	obj.appendChild(inputType);
	obj.appendChild(inputOld);
	input.focus();
}

function selectProfile(obj, id)
{
	var idProfil = obj.value;
	var xmlhttp = new ajaxObject();
	
	data = 'action=selectProfile&id=' + id + '&value=' + idProfil;
	xmlhttp.ajaxRequest('POST', 'plugins/Extranet/admin.ajax.php', data, true);
	return false;
}

function	blockAuthor(obj, id, unblock)
{
	var data;
	var xmlhttp = new ajaxObject();
	
	if (unblock == 1)
		data = 'action=unblockAuthor&id=' + id;
	else
		data = 'action=blockAuthor&id=' + id;
	xmlhttp.ajaxRequest('POST', 'plugins/Extranet/admin.ajax.php', data, false, false);
	obj.className = (unblock == 1 ? 'block' : 'unblock');
	obj.onclick = function () { blockAuthor(obj, id, (unblock == 1 ? '0' : '1'))}
}

function	promoteAuthor(obj, id, value)
{
	var data;
	var xmlhttp = new ajaxObject();
	
	data = 'action=promoteAuthor&id=' + id + '&value=' + value;
	xmlhttp.ajaxRequest('POST', 'plugins/Extranet/admin.ajax.php', data, false, false);
	obj.className = (value == 1 ? 'checked' : 'unchecked');
	obj.onclick = function () { promoteAuthor(obj, id, (value == 1 ? '0' : '1'))}
}

function	validAuthor()
{
	var author = this.value;
	var id = this.nextSibling.value;
	var type = this.nextSibling.nextSibling.value;
	var old = this.nextSibling.nextSibling.nextSibling.value;
	var parent = this.parentNode;
	var xmlhttp = new ajaxObject();
	var pass = this.type;
	
	parent.onclick = function () { editAuthor(parent, type, id, author) };
	
	if (old != author)
	{
		data = 'action=editAuthor&author=' + author + '&id=' + id + '&type=' + type;
		var ret = xmlhttp.ajaxRequest('POST', 'plugins/Extranet/admin.ajax.php', data, false);
		if (ret == '[AUTHOR EXISTS]')
		{
			alert('Cet auteur existe déjà');
			author = old;
		}
	}
			
	if (pass == 'password')
	{
		parent.innerHTML = '<input type="password" style="display: none" value="'+ author +'" />';
		parent.innerHTML += '********';
	}
	else
		parent.innerHTML = author;
}

function	colorPicker(e, obj, id)
{
	var colorPicker = document.getElementById('colorPicker');
	var colorPickerBg = document.getElementById('colorPickerBg');
	var authorId = document.getElementById('authorId');
	var caseId = document.getElementById('caseId');
	caseId.value = obj.id;
	authorId.value = id;
	
	var posx = 0;
	var posy = 0;
	if (!e) e = window.event;
	
	if (e.pageX || e.pageY)
	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	
	colorPicker.style.top = posy + 'px';
	colorPicker.style.left = posx + 'px';
	colorPicker.style.display = '';
	colorPickerBg.style.top = posy + 'px';
	colorPickerBg.style.left = posx + 'px';
	colorPickerBg.style.display = '';
}

function	hexColor(styleColor)
{
	var dec, hex = styleColor;
	
	if (dec = hex.match(/^rgb\(([0-9]+), *([0-9]+), *([0-9]+)\)$/))
	{
		hex = (1*dec[3] + 256*dec[2] + 65536*dec[1]).toString(16);
		while (hex.length < 6)
			hex = '0' + hex;
		hex = '#' + hex
	}
	hex = hex.substr(1, 6);
	return hex;
}

function	pickColor(obj)
{
    var rgb = hexColor(obj.style.backgroundColor);
	var colorPicker = document.getElementById('colorPicker');
	var colorPickerBg = document.getElementById('colorPickerBg');
	var authorId = document.getElementById('authorId').value;
	var caseId = document.getElementById('caseId').value;
	var xmlhttp = new ajaxObject();
	var data = 'action=editColor&id=' + authorId + '&value=' + rgb;
	
	xmlhttp.ajaxRequest('POST', 'plugins/Extranet/admin.ajax.php', data, false, false);
	document.getElementById(caseId).style.backgroundColor = '#' + rgb;
	colorPicker.style.display = 'none';
	colorPickerBg.style.display = 'none';
}

function	choseColor(obj)
{
	var rgb = hexColor(obj.style.backgroundColor);
	var iColor = document.getElementById('aaColor');
	var chosen = document.getElementById('chosenColor');
	
	iColor.value = rgb;
	chosen.style.backgroundColor = '#' + rgb;
}

function	addAuthor()
{
	var login = document.getElementById('aaLogin').value;
	var password = document.getElementById('aaPassword').value;
	var firstName = document.getElementById('aaFirstName').value;
	var lastName = document.getElementById('aaLastName').value;
	var email = document.getElementById('aaMail').value;
	var color = document.getElementById('aaColor').value;
	var profile = document.getElementById('aaProfile').value;
	var xmlhttp = new ajaxObject();
	var error = '';
	
	if (login == '' || login == undefined)
		error += 'Veuillez indiquer un login.<br />';
	if (password == '' || password == undefined)
		error += 'Veuillez indiquer un mot de passe.<br />';
	if (firstName == '' || firstName == undefined)
		error += 'Veuillez indiquer un nom.<br />';
	if (lastName == '' || lastName == undefined)
		error += 'Veuillez indiquer un prénom.<br />';
	if (email == '' || email == undefined)
		error += 'Veuillez indiquer une adresse email.<br />';
	if (profile == '' || profile == undefined)
		error += 'Veuillez indiquer un profil extranaute.<br />';
	
	if (error != '')
	{
		DisplayAlert(error);
		return;
	}
	data = 'action=addAuthor&login=' + login + '&password=' + password + '&firstName=' + firstName + '&lastName=' + lastName + '&email=' + email + '&color=' + color + '&idProfile=' + profile;
	var ret = xmlhttp.ajaxRequest('POST', 'plugins/Extranet/admin.ajax.php', data, false);
	if (ret == '[AUTHOR EXISTS]')
	{
		alert('Cet auteur existe deja');
	}
	else
		window.location.reload();
}

function	deleteMessage(idMessage, idSubject, free)
{
	var xmlhttp = new ajaxObject();
	var data = 'action=delMessage&idMessage=' + idMessage + '&idSubject=' + idSubject;
	var ret;
	
	ret = xmlhttp.ajaxRequest('POST', 'plugins/Extranet/extranet.ajax.php', data, false);
	if (ret == 'KO')
		DisplayAlert('Hack attempt...');
	else if (ret == 'SD')
		DisplayAlert('Sujet et message effacé.');
	else if (ret == 'OK')
		DisplayAlert('Message effacé.');
	else
		DisplayAlert('Probleme serveur');
	if (free != 1)
		refreshExtranet('', idSubject);
	else
		readTopic('', idSubject);
}

function	resurectMessage(idMessage, idSubject, free)
{
	var xmlhttp = new ajaxObject();
	var data = 'action=resMessage&idMessage=' + idMessage + '&idSubject=' + idSubject;
	var ret;
	
	ret = xmlhttp.ajaxRequest('POST', 'plugins/Extranet/extranet.ajax.php', data, false);
	if (ret == 'KO')
		DisplayAlert('Hack attempt...');
	else if (ret == 'OK')
		DisplayAlert('Message rétabli.');
	else
		DisplayAlert('Probleme serveur');
	if (free != 1)
		refreshExtranet('', idSubject);
	else
		readTopic('', idSubject);
}

function	addItem(source, target)
{
	source = document.getElementById(source);
	target = document.getElementById(target);
	selected = new Array();
	
	for (var i = 0; i < source.options.length; i++)
		if (source.options[ i ].selected)
			selected.push(source.options[ i ]);
			
	for (var i = 0; i < selected.length; i++)
		target.appendChild(selected[i]);			
}

function	selectVar(idVar)
{
	MEM_set_action(19,'frm_accueil');
	document.getElementById('ID_VAR').value = idVar;
	document.getElementById('frm_accueil').submit();
}

function	sortBy(idTheme, type, way, obj)
{
	var tbody = document.getElementById('t_' + idTheme);
	var xmlhttp = new ajaxObject();
	var data = 'action=sortBy&idTheme=' + idTheme + '&type=' + type + '&way=' + way;
	
	var th = obj.parentNode.parentNode.getElementsByTagName('th');
	for (var i = 0; i < th.length; i++)
		th[i].className = 'nosort';
		
	if (way == '1')
		obj.className = 'sortup';
	else
		obj.className = 'sortdown';
	
	obj.onclick = function () { sortBy(idTheme, type, way ^ 1, obj) };
	while (tbody.childNodes[0])
		tbody.removeChild(tbody.childNodes[0]);
	
	var text = xmlhttp.ajaxRequest('POST', 'plugins/Extranet/extranet.ajax.php', data, false, false);
	var topics = eval('(' + text + ')');
	for (var i in topics)
	{
		var tr = tbody.insertRow(0);
		var tdType = tr.insertCell(0);
		var tdSubject = tr.insertCell(1);
		var tdAuthor = tr.insertCell(2);
		var tdDate = tr.insertCell(3);
		var divType = document.createElement('div');
		
		tr.className = 'topic';
		tr.onmouseover = function () { this.className = 'topicHover'; };
		tr.onmouseout =  function () { this.className = 'topic'; };
		tr.onclick = function () { readTopic(1, topics[i]['idSujet']); };
		
		divType.className = 'topicType' + topics[i]['liblType'];
		tdType.title =  topics[i]['liblType'];
		tdType.style.width = '40px';
		tdType.appendChild(divType);
		
		tdSubject.innerHTML = topics[i]['liblSujet'];
		tdSubject.className = 'freeTopicCell';
		
		tdAuthor.innerHTML =  topics[i]['prenomAuthor'] + ' ' +  topics[i]['nomAuthor'];
		tdAuthor.className = 'freeTopicCell';
		
		tdDate.innerHTML = 'le ' + topics[i]['lastModif'];		
		tdDate.className = 'freeTopicCell';
	}
}

function	ieMouseOver()
{
	var cl;
	var sp;
	var tr;
	var i;
	var j;
	var k;
	
	cl = getElementsByClass('extranetTheme');
	if (cl)
	for (j = 0; j < cl.length; j++)
	{
		sp = cl[j].getElementsByTagName('span');
		if (sp)
		for (i = 0; i < sp.length; i++)
		{
			sp[i].onmouseover = function () { this.className = 'extranetThemeSpanHover' };
			sp[i].onmouseout = function () { this.className = '' };
		}
	}
	
	cl = getElementsByClass('author');
	if (cl)
	for (j = 0; j < cl.length; j++)
	{
		sp = cl[j].getElementsByTagName('tbody');
		if (sp)
		for (k = 0; k < sp.length; k++)
		{
			tr = sp[k].getElementsByTagName('tr');
			if (tr)
			for (i = 0; i < tr.length; i++)
			{
				var mytr = tr[i];
				mytr.onmouseover = function () { this.style.backgroundImage = 'url(plugins/Extranet/pics/subjectBackground.png)' };
				mytr.onmouseout = function () { this.style.backgroundImage = '' };
			}
		}
	}
	assignHover('inputSend');
	assignHover('inputExtern');
	assignHover('inputGroup');
	assignHover('addSubject');
	assignHover('boxSubmit');
	assignHover('boxCancel');
	assignHover('boxCancel');
	assignHover('boxCancel');
	assignHover('boxCancel');
	assignHover('boxCancel');
	assignHover('boxCancel');
	assignHover('boxCancel');
	assignHover('boxCancel');
}

function	assignHover(className, over, out)
{
	var cl = getElementsByClass(className);
	if (over == undefined)
		over = className + 'Hover';
	
	if (out == undefined)
		out = className;	
	if (cl)
	for (var i = 0; i < cl.length; i++)
	{
		cl[i].onmouseover = function () { this.className = over };
		cl[i].onmouseout = function () { this.className = out };
	}
}

function	getElementsByClass(searchClass, node, tag)
{
	var classElements = new Array();
	if (node == null || node == undefined)
		node = document;
	if (tag == null || tag == undefined)
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++)
	{
		if (pattern.test(els[i].className))
		{
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
