
function updateType() {
	var type = document.getElementById("type").value ;
	var divd = document.getElementById("divDinoz") ;
	
	if (type == "1")
		divd.style.visibility = "visible" ;
	else
		divd.style.visibility = "hidden" ;
}


function select2select(sel1, sel2) {
	var select1 = document.getElementById(sel1) ;
	var select2 = document.getElementById(sel2) ;
	var value = '' ;
	var text = '' ;
	var title = '' ;

	if (select1.selectedIndex > -1) {
		for (var i = 0; i < select1.length; i++) {
			if (select1.options[i].selected) {
				value = select1.options[i].value ;
				text = select1.options[i].text ;
				title = select1.options[i].title ;
				add(select2, value, text, title) ; 
			}
		}
	}
}


function checkElements(type) {
	var tab = new Array() ;
	tab[0] = document.getElementById("feu") ;
	tab[1] = document.getElementById("bois") ;
	tab[2] = document.getElementById("eau") ;
	tab[3] = document.getElementById("foudre") ;
	tab[4] = document.getElementById("ciel") ;
	var count = 0 ;
	for (var i = 0; i < 5; i++) {
		if (tab[i].checked)
			count++ ;
	}
	if (count > 2) {
		var found = false ;
		var j = 0 ;
		while ((!found) && (j < 5)) {
			var elem = tab[j] ;
			if ((elem.id != document.getElementById(type).id) && (elem.checked)) {
				elem.checked = false ;
				found = true ;
			}
			j++ ;
		}
	}
}


function remove(sel1) {
	var select1 = document.getElementById(sel1) ;
	var value = '' ;
	var text = '' ;
	var title = '' ;

	if (select1.selectedIndex > -1) {
		for (var i = 0; i < select1.length; i++) {
			if (select1.options[i].selected) {
				for (var n = i; n < select1.length-1; n++) {
					select1.options[n].text = select1.options[n+1].text; 
					select1.options[n].value = select1.options[n+1].value; 
					select1.options[n].title = select1.options[n+1].title;
					if (select1.options[n+1].selected)
						select1.options[n].selected = true ;
					else
						select1.options[n].selected = false ;
				}
				i--;
				select1.length-- ;
			}
		}
	}
}


function add(sel, value, text, title) {   
	sel.length++;
	for (var n = sel.length-1; n > 0; n--) {
		sel.options[n].value = sel[n - 1].value ; 
		sel.options[n].text = sel[n - 1].text ; 
		sel.options[n].title = sel[n - 1].title ; 
	}
	
	sel.options[0].value = value ;
	sel.options[0].text = text ;
	sel.options[0].title = title ;
}


function resetVictories() {
	if (confirm ("Remettre Ã  zÃ©ro les stats de victoires des cartes  ?"))
		document.location = "/partyTest/resetVictories" ;
}


function submitCard(f, back) {
	var form = document.getElementById(f) ;
	var name = document.getElementById("name").value ;
	var type = document.getElementById("type").value ;
	var pound = document.getElementById("pound").value ;
	var level = document.getElementById("level").value ;
	var strength = document.getElementById("strength").value ;
	var endurance = document.getElementById("endurance").value ;
	var validity = true ;
	
	if (name == "") {
		validity = false ;
		alert("Le nom de la carte n'est pas dÃ©fini") ;
	}
	
	if (type == "dinoz") {
		if (strength != null) {
			if (isNaN(strength)) {
				validity = false ; 
				alert("La force n'est pas une valeur numÃ©rique") ;
			}
		} else {
			validity = false ; 
			alert("aucune valeur pour la force") ;
		}
		if (endurance != null) {
			if (isNaN(endurance)) {
				validity = false ; 
				alert("L'endurance n'est pas une valeur numÃ©rique") ;
			}
		} else {
			validity = false ; 
			alert("aucune valeur pour l'endurance") ;
		}
	}
	if (pound != null) {
		if (isNaN(pound)) {
			validity = false ; 
			alert("Le poids statistique n'est pas une valeur numÃ©rique") ;
		}
	} else {
		validity = false ; 
		alert("aucune valeur pour le poids statistique") ;
	}
	
	if (validity) {
		if (back != "") {
			var b = document.getElementById("back") ;
			b.value = back ;
		}
		form.submit() ;
	}
	
}


function submitTournament(formId) {
	var form = document.getElementById(formId) ;
	var name = document.getElementById("name") ;
	if (name == "")
		alert("Le nom du tournoi n'est pas dÃ©fini") ;
	else
		form.submit() ;
}


function submitCapacity(form) {
	var name = document.getElementById("name").value ;
	var val = document.getElementById("value").value ;
	var validity = true ;
	
	if (validity) {
		form.submit() ;
	}
}


function addOneCard(id) {
	var nb = document.getElementById("nb_" + id) ;
	nb.innerHTML++ ;
}


function addInstance(id, max) {
	var nb = document.getElementById("nb_" + id) ;
	if (nb.innerHTML < max) {
		nb.innerHTML++ ;
	}
}



function removeCard(id) {
	var nb = document.getElementById("nb_" + id) ;
	if (nb.innerHTML > 0) {
		nb.innerHTML-- ;
	}
}


/**
* Coche toutes les checkboxes
* @param Obj formulaire dont il faut cocher toutes les checkboxes
*/
function checkAll(form) {
    for(var i=0; i < form.elements.length; i++)
    {
        var e = form.elements[i];

        if ((e.type=='checkbox') && (!e.disabled)) {
		if (form.active_check_all.checked == true) {
			e.checked = true ;
		} else {
			e.checked = false ;
		}
	}
    }
}


/**
* Coche toutes les checkboxes de type remove
* @param Obj formulaire dont il faut cocher toutes les checkboxes
*/
function rm_checkAll(form) {
    for(var i=0; i < form.elements.length; i++) {
        var e = form.elements[i];

        if ((e.type=='checkbox') && (!e.disabled) && (e.name.indexOf("rm_", 0) != -1)) {
		if (form.rm_active_check_all.checked == true) {
			e.checked = true ;
		} else {
			e.checked = false ;
		}
	}
    }
}


/**
* Coche toutes les checkboxes de type publique
* @param Obj formulaire dont il faut cocher toutes les checkboxes
*/
function pub_checkAll(form) {
    for(var i=0; i < form.elements.length; i++)
    {
        var e = form.elements[i] ;

        if ((e.type=='checkbox') && (!e.disabled) && (e.name.indexOf("pub_", 0) != -1)) {
		if (form.pub_active_check_all.checked == true) {
			e.checked = true ;
		} else {
			e.checked = false ;
		}
	}
    }
}


function dissolve(formId, packId) {
	if (confirm ("Voulez-vous vraiment dissoudre ce pack ?")) {
		var form = document.getElementById(formId) ;
		form.action = "/pack/dissolve" ;
		var downPack = document.getElementById("downPack") ;
		downPack.value = packId ;
		form.submit() ;
	}
}


function mass(formId) {
	if (confirm ("Peter le joueur de cartes (copyright Lolo) ?")) {
		var form = document.getElementById(formId) ;
		form.action = "/card/massCards" ;
		form.submit() ;
	}
}


//gestion style css du formulaire addEditCapacity pour la méthode add_capacity
function switchValue(form, id) {
	var method = document.getElementById(id + "method") ;
	var divValue = document.getElementById(id + "value") ;
	var divCapList = document.getElementById( id + "capacityList") ;
	var divDinozList = document.getElementById(id + "dinozList") ;
	
	if ((method.value == 6) || (method.value == 12)) {
		divValue.style.visibility = "hidden" ;
		divDinozList.style.visibility = "hidden" ;
		divCapList.style.visibility = "visible" ;
	} else {
		if (method.value == 8) {
			divValue.style.visibility = "hidden" ;
			divDinozList.style.visibility = "visible" ;
			divCapList.style.visibility = "hidden" ;
		} else {
			divValue.style.visibility = "visible" ;
			divDinozList.style.visibility = "hidden" ;
			divCapList.style.visibility = "hidden" ;
		}
	}
}


//switch visible/hidden sur le style d'un objet
function reveal(id, height) {
	var obj = document.getElementById(id) ;
	if (obj != null) {
		if (obj.style.visibility == "visible") {
			obj.style.visibility = "hidden" ;
			obj.style.height = "0px" ;
		} else {
			if (obj.style.visibility == "hidden") {
				obj.style.visibility = "visible" ;
				obj.style.height = height + "px" ;
			}
		}
	}
}


//switch visible/hidden sur le style d'un objet
function revealSearch(id) {
	var obj = document.getElementById(id) ;
	if (obj != null) {
		if (obj.style.visibility == "visible") {
			obj.style.visibility = "hidden" ;
			obj.style.height = "0px" ;
		} else {
			if (obj.style.visibility == "hidden") {
				obj.style.visibility = "visible" ;
				obj.style.height = "260px" ;
			}
		}
	}
}


function newSwap(formId) {
	var form = document.getElementById(formId) ;
	form.action = "/swap/new" ;
	form.submit() ;
}


function newPack(formId) {
	var hid = document.getElementById("name") ;
	var form = document.getElementById(formId) ;
	var nbCards = document.getElementById("nbCards") ;
	if (nbCards.innerHTML < 20) {
		alert("Le nouveau pack ne contient que " + nbCards.innerHTML + " carte(s). Un pack doit en contenir au minimum 20.") ;
	} else {
		if (hid.value == "new") {
			var name = document.getElementById("packSetName").value ;
			if ((name == null) || (name == ""))
				alert("nouveau pack non sauvegardÃ© : aucun nom saisi. ") ;
			else {
				hid.value = name ;
				if (form.action == "")
					form.action = "/pack/saveNew" ;
				form.submit() ;
			}
		} else {
			if (form.action == "")
				form.action = "/pack/addTheCards" ;
			form.submit() ;
		}
	}
}



function setExch(formId, maxTokens) {
	var form = document.getElementById(formId) ;
	var state = document.getElementById("state") ;
	var nbCards = document.getElementById("nbCards") ;
	document.getElementById("tok").value = document.getElementById("ttokens").value ;
	document.getElementById("bonusCards").value = document.getElementById("temp").innerHTML ;
	var tokens = document.getElementById("tok").value ;
	
	if (isNaN(tokens)) {
		alert("Le nombre de tokens n'est pas valide.") ;
	} else {
		if (tokens > maxTokens) {
			alert("Le nombre de tokens proposÃ© est supÃ©rieur Ã  ce que vous possÃ©dez.") ;
		} else {
			if (state.value == "new") {
				if ((nbCards.innerHTML == 0) && (tokens <= 0)) {
					alert("Une nouvelle proposition d'Ã©change doit Ãªtre composÃ©e d'au moins une carte ou un token. ") ;
				} else {
					var response =document.form.content ;
					if (response.value == "") {
						alert("Vous ne pouvez pas crÃ©er de nouvelle proposition d'Ã©change sans message associÃ©.") ;
					} else {
						document.getElementById("response").value = response.value ;
						form.action = "/exchange/saveNew" ;
						form.submit() ;
					}
				}
			}
			if (state.value == "modify") {
				form.action = "/exchange/saveModification" ;
				form.submit() ;
			}
		}
	}
}

/*
function filterNewExch(formId) {
	var form = document.getElementById(formId) ;
	var state = document.getElementById("state") ;
	if (state == "new") {
		var resp = document.getElementById("resp") ;
		var response = document.getElementById("response") ;
		resp.value = response.value ;
	} else
		form.submit() ;
}
*/


function submitFight(form) {
	var html = document.getElementById("dispHtml") ;
	var xml = document.getElementById("dispXml") ;
	var flash = document.getElementById("dispFlash") ;
	var seed = document.getElementById("seed") ;
	
	if (seed.value != "") {
		if (isNaN(seed.value))
			seed.value ="" ;
	}
	
	if (html.checked) {
		form.action = "/partyTest/html" ;
	} else {
		if (xml.checked) {
			form.action = "/partyTest/testXml" ;
		} else {
			if (flash.checked) 
				form.action = "/partyTest/flash" ;
		}
	}
	form.submit() ;
}


function addStarter(formId) {
	var form = document.getElementById(formId) ;
	form.action = "/user/addStarter" ;
	form.submit() ;
}


function addCard(formId) {
	var exm = document.getElementById("exemplaire") ;
	if (isNaN(exm.value))
		alert("le nombre d'exemplaires n'est pas un nombre.") ;
	else {
		var form = document.getElementById(formId) ;
		form.action = "/card/addCard" ;
		form.submit() ;
	}
}


function duel(formId, id) {
	var form = document.getElementById(formId) ;
	var chosen = document.getElementById("chosenOpp") ;
	chosen.value = id ;
	form.submit() ;
}


function confirmResetFights() {
	if (confirm ("Remettre Ã  zÃ©ro le nombre de parties jouÃ©es par jour ? ")) {
		document.location = "/pack/resetPF" ;
	}
}



function cancelExch(idExch, idu, name) {
	if (confirm ("Annuler dÃ©finitivement cet Ã©change avec " + name + " ?")) {
		var form = document.getElementById("form") ;
		form.action = "/exchange/cancel" ;
		form.submit() ;
	}
}

function confirmExch(idExch, idu, name, nbOther, nbYou, tokOther, tokYou) {
	if (!((nbOther <= 0) && (nbYou <= 0) && (tokOther <= 0) && (tokYou <= 0))) {
		var text = "Valider l'Ã©change avec " + name + " ?" ;
		if ((nbOther == 0) && (tokOther == 0))
			text += "\nATTENTION : " + name + " ne vous propose ni carte, ni token. Assurez vous que vous voulez bien donner vos cartes/tokens sans rien attendre en Ã©change." ;
	
		if (confirm (text)) {
			var form = document.getElementById("form") ;
			form.action = "/exchange/confirm" ;
			form.submit() ;
		}
	} else {
		alert("L'Ã©change ne peut pas Ãªtre validÃ©. Aucune carte ou token n'est proposÃ© de chaque cÃ´tÃ©.") ;
	}
}



function sortCards(attr, d) {
	var filter = document.getElementById("ffilter") ;
	var sort = document.getElementById("sort") ;
	var desc = document.getElementById("desc") ;
	sort.value = attr ;
	if (d == "t")
		desc.value = "t" ;
	else
		desc.value = "f" ;
	if ((document.form != null) && (filter.fcontent != null))
		filter.fcontent.value = document.form.content.value ;
	if ((filter.ftokens != null) && (document.getElementById("ttokens")))
		filter.ftokens.value = document.getElementById("ttokens").value ;
	if (document.getElementById('temp') != null)
		filter.bc.value = document.getElementById('temp').innerHTML ;
		
	filter.submit() ;
}


function sortPackCards(attr, d) {
	var filter = document.getElementById("ffilter") ;
	var sort = document.getElementById("sort") ;
	var desc = document.getElementById("desc") ;
	sort.value = attr ;
	if (d == "t")
		desc.value = "t" ;
	else
		desc.value = "f" ;
	if (document.getElementById('temp') != null)
		filter.bc.value = document.getElementById('temp').innerHTML ;
		
	filter.submit() ;
}


function resetFilter() {
	var filter = document.getElementById("ffilter") ;
	document.getElementById("if").value = "" ;
	if (document.getElementById("bc") != null) 
		document.getElementById("bc").value = document.getElementById('temp').innerHTML ;
	filter.submit() ;
}


function resetInfo() {
	var filter = document.getElementById("ffilter") ;
	document.getElementById("if").value = "" ;
		document.getElementById("reset").value = "1" ;

	filter.submit() ;
}


function goToCard(cardId) {
	document.location = "/card/view?id=" + cardId;
}


function duplicateCard(id) {
	var input = document.getElementById("duplicate") ;
	if (isNaN(input.value))
		alert("A vue de nez, le numÃ©ro d'Ã©dition est un peu chelou.") ;
	else
		document.location = "/card/duplicate?id=" + id + "&edition=" + input.value ;
}


function newEffect() {
	var show = document.getElementById("sNewEffect") ;
	var form = document.getElementById("fcardEdit") ;
	var type = show.options[show.selectedIndex].value ;
	var container = document.getElementById("show") ;
	container.value = type ;
	form.action = "/card/edit#newEffect" ;
	form.submit() ;
}

function showDojoInfo (domainName,faceInfo,txt){
	//var d = document.getElementById('dojoInfo');
	
	var swf = new FlashObject(domainName+'/swf/portrait.swf', 'game', 60, 84, 7, 'cccccc');
	swf.addVariable('url', domainName+'/swf/avatar.swf');
	swf.addVariable('face', faceInfo);
	swf.addParam('wmode', 'transparent');
	swf.addParam('menu', 'false');
			
	var d = document.getElementById('dojoInfo');
	d.innerHTML = "<div class='borderWhite'><div id='dojoAvatar'></div>"+ txt + "</div>";
	swf.write("dojoAvatar") ;
	d.style.display='block';
	
}

function moodSelector (domainName,faceInfo,mood){

	var swf = new FlashObject(domainName+'/swf/portrait.swf', 'game', 120, 168, 7, 'FFFFFF');
	swf.addVariable('url', domainName+'/swf/avatar.swf');
	swf.addVariable('flip', '2');
	swf.addVariable('face', faceInfo);
	swf.addParam('wmode', 'transparent');
	
	

	var d = document.getElementById('avatarMood');
	d.innerHTML = "<input class='button' type='hidden' name='mood' value='"+ mood +"'/>";
	swf.write("forumAvatar") ;
	d.style.display='block';
}

function addACard(cardId) {
	var name = document.getElementById("name" + cardId) ;
	if (name == null)
		return ;
	if (confirm ("Ajouter " + name.innerHTML + " Ã  votre pack ? ")) {
		document.getElementById("cid").value = cardId ;
		document.getElementById("ac").submit() ;
	}
}


function removeWish(cardId, name) {
	var name = document.getElementById("name" + cardId) ;
	if (name == null)
		return ;
	if (confirm ("Retirer " + name.innerHTML + " de votre liste de recherche ? ")) {
		document.getElementById("rmWish").value = cardId ;
		document.getElementById("fwishList").submit() ;
	}
}


function hideDojoInfo (){
	var d = document.getElementById('dojoInfo');
	if (d) {d.style.display='none';} 
}	

function showUserMenu(id,nb) {
	nbFriends = parseInt(nb);
	var d = document.getElementById('friendMenu'+id);
	
		for (var i = 0; i<=nbFriends; i++) {
			if (document.getElementById('friendMenu'+i)) {document.getElementById('friendMenu'+i).style.display='none';}
		}

	if (d) {d.style.display='block';} 
} 


function scoreInt(v) {
	var s = v;
	if (s == null)
		return "null" ;
	var inv = Math.floor(s);
	var sign = "";
	if (inv < 0){
		sign = "-";
		inv = -1 * inv;
	}
	return sign + inv ;
}

function numberToImage(fonts, n) {
	var str = scoreInt(n);
	var res = "" ;
	for (var i = 0; i<str.length; ++i){
		var c = str.charAt(i);
		res = res + "<img alt=\"" ;
		res = res + c ;
		res = res + "\" src=\"" ;
		res = res + fonts;
		res = res + "/";
		if (c == ".") 
			res = res + "dot";
		else
			res = res + c ;
		res = res + ".gif\"/>";
	}
	return res ;
}

var zoomcard = false ;
var zoomId = '' ;

function showMeDaCard(idCard){
	//alert(idCard+'   '+zoomcard);
	
	if ( !zoomcard ){
		if (document.getElementById(idCard)) {
			document.getElementById(idCard).style.zIndex ='10';
			document.getElementById(idCard).style.marginTop ='-30px';
			zoomcard = true;
			zoomId = idCard;
			
			}
		
	}else{
		if (document.getElementById(zoomId)) {
			document.getElementById(zoomId).style.zIndex ='1';
			document.getElementById(zoomId).style.marginTop ='10px';
			zoomcard = false;	
			}
	}
}


function switchExchangeView() {
	document.getElementById('exc').value = document.getElementById('temp').innerHTML ;
	document.getElementById('swtokens').value = document.getElementById('ttokens').value ;
	document.getElementById('form').submit();
}


function submitView() {
	document.getElementById('bonusCards').value = document.getElementById('temp').innerHTML ;
	document.getElementById('form').submit()
}


function submitExchView() {
	document.getElementById('bonusCards').value = document.getElementById('temp').innerHTML ;
	document.getElementById('tok').value = document.getElementById('ttokens').value ;
	document.getElementById('fExchTemp').submit()
}


function submitFilterNewExch() {
	setToFilterNewExch() ;
	document.getElementById("ffilter").submit();
}

function setToFilterNewExch() {
	document.getElementById("ftokens").value = document.getElementById('ttokens').value ;
	document.getElementById("bc").value = document.getElementById('temp').innerHTML ;
	document.getElementById("fcontent").value = document.getElementById("form").content.value;
}


function filterColSwap(id, state) {
	var elem = document.getElementById(id) ;
	if (elem != null) {
		if (elem.value == "1")
			elem.value = "" ;
		else
			elem.value = "1" ;
		var aImg = document.getElementById("a" + id) ;
		aImg.className = "button" + id + elem.value ;
	}
}


function launchDuel() {
	document.fStrategy.bfc.value = document.getElementById('temp').innerHTML ;
	document.fStrategy.submit() ;
}


function exchangeInterface(value) {
	document.getElementById('ex').value = value ;
	document.getElementById('ffilter').submit();
}


function switchStartList(cardId, add) {
	var txt = "Retirer cette carte des listes de dÃ©part ?" ;
	if (add)
		txt = "Ajouter cette carte aux listes de dÃ©part ? " ;
	if (confirm (txt))
		document.location = "/card/switchStartList?id=" + cardId ;
}


function setPackDesc() {
	var text = document.getElementById("desc") ;
	var t = text.value ;
	if (t.length > 220)
		text.value = t.substring(0, 220) ;
}


function setLevelUp(type) {
	var info = document.getElementById(type) ;
	var oldNb = 0 ;
	var nb = 0 ;
	if (info != null) {
		oldNb = parseInt(info.innerHTML) ;
		nb = oldNb + 1
		info.innerHTML = nb ;
	}
	var end = "" ;
	switch(type) {
		case 1 :
			end = "les cartes bonus." ;
			break ;
		case 2 :
			end = "les points de vie." ;
			break ;
		case 3 :
			end = "la compÃ©tence StratÃ©gie." ;
			break ;
		case 4 : 
			end = "la compÃ©tence Perception." ;
			break ;
		case 5 :
			end = "le  nombre de parties quotidiennes." ;
			break ;
	}
	if (confirm("Cliquez sur Ok pour augmenter dÃ©finitivement " + end)) {
		var cInput = document.getElementById("c") ;
		cInput.value = type ;
		document.getElementById("fLevelUp").submit() ;
	} else {
		if (info != null)
			info.innerHTML = oldNb ;
	}
}


function addDojoCard() {
	if (confirm("Ajouter cette carte Ã  votre pack ? ")) {
		var form = document.getElementById("addCard") ;
		form.submit() ;
	}
}

function changeTokens(max, type) {
	var tok = document.getElementById("ttokens") ;
	if ((isNaN(tok.value)) || (tok.value == ""))  tok.value = "0" ;
	var v = parseInt(tok.value) ;
	if ((type == "sum") && (v < max))
		tok.value = v + 1 ;
	if ((type == "sub") && (v > 0))
		tok.value = v - 1 ;
}


function ban(id, t) {
	var form = document.getElementById("banForm") ;
	document.getElementById("banId").value = id ;
	if (t == "1")
		document.getElementById("banT").value = t ;
	document.getElementById("banWhy").value = prompt("Raison du ban : ", "") ;
	form.submit() ;

}