//A poker-en az edit profile-ba nlevo javascript, a pokerrooms resz alatti resz funkcioiert felel
//Itt lehet uj pokerroomot hozzaadni akkor, ha meg nincs annyi, mint ahany poker szoba van.
//Torolni nem lehet, ha a sor valamelyik elemet kitoltetlenul hagyja a felhasznalo, akkor torlodik.
//A szamozas mindenhol 0-tol kezdodik.
//Minden valtoztatas utan a refreshSelects() fv-vel lehet frissiteni. Minden gombnyomas
//es valtozatatas utan is ez hivodik meg.
//Az osszes pokerszoba adatait egy rejtett div tarolja, ebbol klonoz minden uj pokerroomot.
//A correctInputFields fuggveny az IE floatbugot kuszoboli ki.

//Visszaadja, hogy legfeljebb hany Pokerroom-ot lehet hozzaadni(=A szobak szamaval)
function getAvailableNumOfPokerrooms(){
	return document.getElementById("defaultpokerroom").getElementsByTagName("option").length-1;
}

//Visszaadja a hidden div-ben levo osszes pokerszobat
function getDefaultPokerroomSelect(){
	return document.getElementById("defaultpokerroom").getElementsByTagName("select")[0];
}

//Visszaadja az adott sorszamu(0-tol inditva) pokerroom select-jet
function getPokerroomSelect(num){
	var tomb=document.getElementsByTagName("select");
	for(var i=0;i<tomb.length;i++){
		if(tomb[i].name!=null && tomb[i].name.indexOf("pokerroom_"+num+"_roomname")!=-1){
			return tomb[i];
		}
	}
}

//Visszaadja az adott pokerroom kivalasztott erteket(value)
function getSelectedValueFromSelect(num){
	if (getPokerroomSelect(num)!=null) return getPokerroomSelect(num).value;
	else return 0;
}

//Kitorli az osszes pokerroom select-jebol az adott erteket, kiveve a megadottbol
function removeOptionFromAllPokerRoomSelect(num,value){
	if(value=='') return;
	kulso:for(var i=0;i<getNumOfPokerrooms();i++){
		if(i==num) continue;
		if (getPokerroomSelect(i)!=null) {
			var tomb=getPokerroomSelect(i).getElementsByTagName("option");
			for(var j=0;j<tomb.length;j++){
				if(tomb[j].getAttribute("value").indexOf(value)==0){
					getPokerroomSelect(i).remove(j);
					continue kulso;
				}
			}
		}
	}
}

//Beallitja az adott pokerroom select-jenek az erteket
function setSelectForPokerroom(num,value){
	var select2=getPokerroomSelect(num);
	if (select2!=null && select2.options!=null){
	for(var i=0;i<select2.options.length;i++){
		if(select2.options[i].value.indexOf(value)==0){
			select2.selectedIndex=i;
			return;
		}
	}
	}
}

//Kitorli a bennelevot, majd hozzaadja az osszes valaszthato pokerroomot a megadott pokerroomhoz
function addAllOptionToPokerroom(num){
	var select3=getPokerroomSelect(num);
	if (select3!=null && select3.getElementsByTagName("option")!=null) var size=select3.getElementsByTagName("option").length;
	for(var i=0;i<size;i++){
		select3.remove(0);
	}
	var defaultSelect=getDefaultPokerroomSelect();
	var defOptions=defaultSelect.options;
	for(var i=0;i<defOptions.length;i++){
		if (select3!=null && defOptions[i]!=null) select3.appendChild(defOptions[i].cloneNode(true));
	}
}

//Frissiti es ujraszamolja a pokerroomok selectjeit, valamint a hozzaado gombot
function refreshSelects(){
	//Feltolteni a kivalasztott ertekekkel
	var originalValues=new Array(getNumOfPokerrooms());
	for(var i=0;i<originalValues.length;i++){
		originalValues[i]=getSelectedValueFromSelect(i);
	}
	//Eltavolitani, majd felvenni mindent mindenhova
	for(var i=0;i<originalValues.length;i++){
		addAllOptionToPokerroom(i);
	}
	//Kivalasztani a kivalasztottakat es eltavolitani azokat az elemeket az osszes tobbibol
	for(var i=0;i<originalValues.length;i++){
		setSelectForPokerroom(i,originalValues[i]);
		removeOptionFromAllPokerRoomSelect(i,originalValues[i]);
	}
	
	//Eltavolitjuk a gombot, ha nem adhatunk hozza tobbet
	if(getNumOfPokerrooms()>=getAvailableNumOfPokerrooms() && document.getElementById("newroomdiv")!=null){
		document.getElementById("newroomdiv").parentNode.removeChild(document.getElementById("newroomdiv"));
	}
}

//A gomb action handlere, hozzaad egy uj szobat, majd frissiti a selecteket
function doAddNewRoom(){
	var emptyRow=document.getElementById("defaultpokerroom").getElementsByTagName("p")[0];
	var newRow=emptyRow.cloneNode(true);
	newRow.getElementsByTagName("select")[0].setAttribute("name","pokerroom_"+getNumOfPokerrooms()+"_roomname");
	newRow.getElementsByTagName("input")[0].setAttribute("name","pokerroom_"+getNumOfPokerrooms()+"_nickname");
	var tomb=document.getElementById("pokerroomsDiv");
	tomb.appendChild(newRow);
	refreshSelects();
}

//Visszaadja, hogy hany pokerroom van jelenleg felveve
function getNumOfPokerrooms(){
	var tomb=document.getElementById("pokerroomsDiv").getElementsByTagName("p");
	var num=0;
	for(var i=0;i<tomb.length;i++){
		if(tomb[i].parentNode==document.getElementById("pokerroomsDiv")){
			num++;
		}
	}

	return num;
}

//Az IE floatbugot kuszoboli ki.
function correctInputFields(){
	if (navigator.appName == "Microsoft Internet Explorer"){
		var tomb=document.getElementById("pokerroomsDiv").getElementsByTagName("input");
		for(var i=0;i<tomb.length;i++){
			tomb[i].style.top="-2px";
			tomb[i].style.right="0px";
		}	
	}
}

//Init
addLoadEvent(refreshSelects);
addLoadEvent(correctInputFields);

