/* *************************************************************
                             SKIN.JS
                Derniere mise a jour : 23/04/2008

Contient toutes les fonctions cote client applicable au site :

- initLunch			: Lance la procedure d'initialisation
- deconnexion		: Lance la procedure de deconnexion
- getPage			: Redirige sur le numero de page voulu
- Loading			: Affiche le calque d'attente
- countCarac		: Verifie le nombre maxi de caractere dans un textarea
- addAction			: Active une action en fonction du formulaire utilise
- getFlag			: Active une langue
- copyID			: Copie une valeur pour envoi et utilisation ulterieur
- getHentaiCG		: Lance le telechargement d'une serie Hentai
- resetSelect		: Reset les selecteurs connu de la page avant un appel de page
- insertCharAt		: Insert un texte au niveau de la zone clique
- getSmilies		: Obtient la page de Smiley
- pasteSmilies		: Colle le smiley selectionne
- findPos			: Obtient la position absolue d'un objet
- setObjPos			: Definie la position absolue d'un objet
- setObjDim			: Definie les dimensions d'un objet
************************************************************** */
function initLunch(typepage, id){
	Loading(1);
	if (typepage == "") typepage = "news";
	document.getElementById("action").value = "init";
	document.getElementById("typepage").value = typepage;
	document.getElementById("id").value = id;
	document.getElementById("dbaccess").target = "dbaccess";
	document.getElementById("dbaccess").submit();
}

function deconnexion(){
	document.getElementById("action").value = "deconnexion";
	document.getElementById("dbaccess").submit();
}

function getPage(num, typepage){
	Loading(1);
	document.getElementById("action").value = "getpage";
	document.getElementById("page").value = num;
	document.getElementById("typepage").value = typepage;
	document.getElementById("dbaccess").submit();
}

function Loading(isLoad){
	(isLoad)?
		document.getElementById("waiting").style.display = "block":
		document.getElementById("waiting").style.display = "none";
}

function countCarac(oArea, idSpan, nbMax){
	var nbCarac = oArea.value.length;
	if (nbCarac < 0) return;
	if (nbCarac > nbMax){
		alert(MsgAlertCarac);
		oArea.value = oArea.value.substring(0, nbMax);
	}
	var nbCaracLeft = nbMax - nbCarac;
	if (nbCaracLeft < 0) nbCaracLeft = 0;
	document.getElementById(idSpan).innerHTML = nbCaracLeft;
}

function addAction(action){
	document.getElementById('action').value = action;
}

function getFlag(lng){
	Loading(1);
	document.getElementById("action").value = "getflag";
	document.getElementById("flag").value = lng;
	document.getElementById("dbaccess").submit();
}

function copyID(id){
	document.getElementById("id").value = id;
}

function getHentaiCG(){
	document.getElementById("action").value = "download";
	document.getElementById("dbaccess").submit();
}

function resetSelect(){
	if (document.getElementById("choixTri"))
		document.getElementById("choixTri").options[document.getElementById("choixTri").selectedIndex].value = "undefined";
	if (document.getElementById("choixOrdre"))
		document.getElementById("choixOrdre").options[document.getElementById("choixOrdre").selectedIndex].value = "undefined"
}

function insertCharAt(txt, id) {
	var obj = document.getElementById(id), sel;
	obj.focus();
	if(document.selection && document.selection.createRange){
		sel = document.selection.createRange();
		if (sel.parentElement()==obj) sel.text += txt;
	} else if(String(typeof obj.selectionStart) != "undefined"){
		sel = obj.selectionStart;
		obj.value = (obj.value).substring(0, sel) + txt + (obj.value).substring(sel, obj.value.length);
	} else obj.value += txt;
	obj.focus();
}

function getSmilies(id){
	if(document.getElementById("smiliesTable").style.display == "block"){
		document.getElementById("smiliesTable").style.display = "none";
		document.getElementById(id).style.visibility = "visible";
	} else {
		setObjPos("smiliesTable", id);
		setObjDim("smiliesTable", null, null, id, 1);
		document.getElementById(id).style.visibility = "hidden";
		document.getElementById("smiliesTable").style.display ="block";
	}
}

function pasteSmilies(txt, id, idspan, nbcarac){
	document.getElementById(id).style.visibility = "visible";
	document.getElementById("smiliesTable").style.display="none";
	insertCharAt(txt, id);
	countCarac(document.getElementById(id), idspan, nbcarac);
}

function findPos(id) {
	obj = document.getElementById(id);
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft, curtop];
}

function setObjPos(id, idRef) {
	var coords = findPos(idRef);	
	var obj = document.getElementById(id);	
	obj.style.left = coords[0] + "px";
	obj.style.top = coords[1] + "px";
}

function setObjDim(id, w, h, idRef, isBorder){
	var obj = document.getElementById(id);
	if (idRef != ""){
		var objRef = document.getElementById(idRef);
		w = objRef.offsetWidth;
		h = objRef.offsetHeight;
		if (isBorder){
			w -= 2;
			h -= 2;
		}
	}
	if (w != null) obj.style.width = w + "px";
	if (h != null) obj.style.height = h + "px";	
}