﻿function incPlayerValue(val)
{
	val = val * 1;
	totalValue = totalValue + val;
	cashValue = cashValue - val;
	
	updateRecruiting();
}

function decPlayerValue(val)
{
	val = val * 1;
	totalValue = totalValue - val;
	cashValue = cashValue + val;
	
	updateRecruiting();
}

function updateRecruiting()
{
	var textTotalValue = formatCurrency(totalValue);
	var textCashValue = formatCurrency(cashValue);

	//document.getElementById("totalValueTop").innerHTML = textTotalValue;
	document.getElementById("totalValueBottom").innerHTML = textTotalValue;
	//document.getElementById("valueTop").innerHTML = textCashValue;
	document.getElementById("valueBottom").innerHTML = textCashValue;
}

function formatCurrency(value)
{
	var val = formatNumber(value);
	val = 'R$ '+ addDots(val);

	return val;
}

function formatNumber(value)
{
	var val;
	if(value == null)
	{
		val = 0;
	}
	else
	{
		if(!isNaN(value))
		{
			val = parseFloat(value);
		}
	}

	return val.toFixed(2);
}

function addDots(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? ',' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) 
	{
		x1 = x1.replace(rgx, '$1' + '.' + '$2');
	}

	return x1 + x2;
}



//------------------
//manipula o objeto player na página de gerenciar equipe
var position = -1;
var players = new Array();
var currentSearch = -1;
var currentDesPosition = "";
var amountPlayers = 0;
var searchMaxResultsPerPage = 15;
var playerPositionModality = new Array();


function setPosition(pos)
{
	if(position != pos)
	{
		elem = document.getElementById('innerPlayerName_'+pos);
		if(elem != null)
		{
      elem.getElementsByTagName('input')[0].value="<< Escolha ao lado";
      elem.getElementsByTagName('input')[0].disabled=true;
		}

		if(position > -1)
		{
			elem = document.getElementById('innerPlayerName_'+position);
			if(elem != null)
			{
        elem.getElementsByTagName('input')[0].value="CONTRATAR";
        elem.getElementsByTagName('input')[0].disabled=false;
			}
		}

		position = pos;
	}
}

//adiciona um novo player na lista
function addPlayer(player, pos)
{
	if(player != null && pos != null)
	{
		if(player.idtPosition == playerPositionModality[pos])
		{
			players[pos]  = player;
		}
		else
		{
			alert('O jogador não pode ser contratado devido a incompatibilidade de posição');
		}
	}
}

function setAmountPlayersTeam(num)
{
	amountPlayers = num;
}

function checkPosition(pos){
  /* Verifica se todas as posições foram preenchidas */
  posicoesPreenchidas=0;
  ObjsTbodyPos=document.getElementById('tbodyPos'+pos).getElementsByTagName('tr');
  for(var i=0;i<ObjsTbodyPos.length;i++){
    if(ObjsTbodyPos[i].getElementsByTagName('td')[1].getElementsByTagName('input').length>0){
      posicoesPreenchidas=1;
      break;
    }
  }
  if(posicoesPreenchidas==0 && document.getElementById("boxPilotos").className.indexOf("posicoesPreenchidas")==-1){
    document.getElementById("boxPilotos").className+=" posicoesPreenchidas ";
  }else if(posicoesPreenchidas==1){
    document.getElementById("boxPilotos").className=document.getElementById("boxPilotos").className.replace("posicoesPreenchidas","");
  }
}

function storePlayer(player)
{

	//checa se o jogador já existe no time
	for(i=0; i < players.length; i++)
	{
		if(players[i] != null && players[i].id==player.id)
		{
			alert("Esta contratação não pode ser feita, pois o atleta/equipamento já existe em sua equipe.");
			return;
		}
	}
	
  //checa se a posição do jogador a ser contratado é válida
		//alert('O jogador não pode ser contratado devido a incompatibilidade de posição');
    ObjsTbodyPos=document.getElementById('tbodyPos'+player.idtPosition).getElementsByTagName('tr')
    for(var i=0;i<ObjsTbodyPos.length;i++){
      if(ObjsTbodyPos[i].getElementsByTagName('td')[1].getElementsByTagName('input').length>0){
        position=parseInt(ObjsTbodyPos[i].getElementsByTagName('td')[1].getElementsByTagName('span')[0].id.replace("playerName_",""));
        break;
      }
    }
    //alert(player.idtPosition + ' -- ' + playerPositionModality[position]);

	//checa se já existe jogador para a posição
	pCurrent = players[position];
	if(pCurrent != null)
	{
		dismiss = confirm('Você já tem um jogador para esta posição, deseja dispensar o atleta '+pCurrent.name+' para contratar o novo atleta');
		if(dismiss)
		{
      if(playersRecruitedIdList.indexOf("|"+pCurrent.id+"|")>=0)
        playersRecruitedIdList=playersRecruitedIdList.replace("|"+pCurrent.id+"|","");
      playerResultsAdminIdTRAjust();
			decPlayerValue(pCurrent.currentValue);
		}
		else
		{
			return;
		}
	}
	
	//checa se o usuário tem credito para comprar atleta
	if( cashValue < player.currentValue )
	{
		alert("Você não tem crédito suficiente para comprar este jogador.");
		return;
	}
	
	//faz a compra do atleta
	incPlayerValue(player.currentValue);
	
	players[position]=player;

	document.getElementById('id_'+position).value=player.id;
  
	/* ***************** */
  if(playersRecruitedIdList.indexOf("|"+player.id+"|")==-1)
    playersRecruitedIdList+="|"+player.id+"|";
  playerResultsAdminIdTRAjust();
  
  /*
  if(document.getElementById('playerResultsAdminId'+player.id).className.indexOf('comprado')==-1)
    document.getElementById('playerResultsAdminId'+player.id).className+=" comprado ";
  */

	PLAYER_HTML_TR=document.createElement("tr");
	PLAYER_HTML_TR.id="tr_player_"+position;
	
  PLAYER_HTML_TD=document.createElement("td");
	PLAYER_HTML_TD.className="num";
	PLAYER_HTML_TD.vAlign="top";
	PLAYER_HTML_TD.innerHTML="<div>"+(position+1)+".</div>";
	PLAYER_HTML_TR.appendChild(PLAYER_HTML_TD);
	
  PLAYER_HTML_TD=document.createElement("td");
	PLAYER_HTML_TD.className="nome";
	PLAYER_HTML_TD.innerHTML="<div>"+player.name+"</div><em>"+player.teamName+"</em>";
	PLAYER_HTML_TR.appendChild(PLAYER_HTML_TD);

  PLAYER_HTML_TD=document.createElement("td");
	PLAYER_HTML_TD.className="inicial";
	PLAYER_HTML_TD.vAlign="top";
	PLAYER_HTML_TD.innerHTML="<div>"+formatCurrency(player.initialValue);+"</div>";
	PLAYER_HTML_TR.appendChild(PLAYER_HTML_TD);
	
  PLAYER_HTML_TD=document.createElement("td");
	PLAYER_HTML_TD.className="atual";
	PLAYER_HTML_TD.vAlign="top";
	PLAYER_HTML_TD.innerHTML="<div><input type=\"image\" src=\"http://e.i.uol.com.br/new/campeonatovirtual/bt-x.gif\" onclick=\"setPosition("+position+"); deletePlayer("+player.idtChampionship+","+currentSearch+",'"+currentDesPosition+"',"+player.id+");\" border=\"0\" />"+formatCurrency(player.currentValue)+"</div>";
	PLAYER_HTML_TR.appendChild(PLAYER_HTML_TD);
	
	document.getElementById('tr_player_'+position).id='tr_player_'+position+'deletar';
	PLAYER_HTML_TR.id='tr_player_'+position;
  document.getElementById('tr_player_'+position+'deletar').parentNode.insertBefore(PLAYER_HTML_TR,document.getElementById('tr_player_'+position+'deletar'));
  document.getElementById('tr_player_'+position+'deletar').parentNode.removeChild(document.getElementById('tr_player_'+position+'deletar'));
	/* ***************** */

/*
  document.getElementById('playerName_'+position).innerHTML=player.name;
	document.getElementById('playerStartValue_'+position).innerHTML=formatCurrency(player.initialValue);
	document.getElementById('playerCurrentValue_'+position).innerHTML=formatCurrency(player.currentValue);
	document.getElementById('playerDismiss_'+position).innerHTML="<input type='button' value='X'>";
*/

  document.getElementById('saveButton').style.visibility='visible';

  if(player.disqualified!="false")
	{
		document.getElementById('tr_player_'+position).className='playerDisqualifiedStyle';
	}

  
  //alert(player.idtPosition+" | "+position);
  checkPosition(player.idtPosition);

	/*
	else
	{
		document.getElementById('tr_player_'+position).className='playerStyle';
	}
	*/

}

function deletePlayer(idtChampionship, idtPosition, desPlayerPosition, playerId)
{
  idtPositionSafe=idtPosition;
  player = players[position];
	decPlayerValue(player.currentValue);
	players[position] = null;

	document.getElementById('id_'+position).value='';

	PLAYER_HTML_TR=document.createElement("tr");

  PLAYER_HTML_TD=document.createElement("td");
	PLAYER_HTML_TD.className="num";
	PLAYER_HTML_TD.vAlign="top";
	PLAYER_HTML_TD.innerHTML="<div>"+(position+1)+".</div>";
	PLAYER_HTML_TR.appendChild(PLAYER_HTML_TD);

  PLAYER_HTML_TD=document.createElement("td");
	PLAYER_HTML_TD.className="nome";
	PLAYER_HTML_TD.colSpan="3";
	PLAYER_HTML_TD.innerHTML="<span id=\"playerName_"+position+"\"><span id=\"innerPlayerName_"+position+"\"><input type=\"Button\" class=\"btInput tipo2\" value=\"CONTRATAR\" onclick=\"search("+idtChampionship+", "+idtPosition+", '"+desPlayerPosition+"'); setPosition("+position+")\"></span></span>";
	PLAYER_HTML_TR.appendChild(PLAYER_HTML_TD);
	
	document.getElementById('tr_player_'+position).id='tr_player_'+position+'deletar';
	PLAYER_HTML_TR.id='tr_player_'+position;
  document.getElementById('tr_player_'+position+'deletar').parentNode.insertBefore(PLAYER_HTML_TR,document.getElementById('tr_player_'+position+'deletar'));
  document.getElementById('tr_player_'+position+'deletar').parentNode.removeChild(document.getElementById('tr_player_'+position+'deletar'));

  document.getElementById('saveButton').style.visibility='visible';
  
  position = -1;

  if(playersRecruitedIdList.indexOf("|"+playerId+"|")>=0)
    playersRecruitedIdList=playersRecruitedIdList.replace("|"+playerId+"|","");
  playerResultsAdminIdTRAjust();

	//checa se o time do usuário possui algum jogador
	for(i=0; i < players.length; i++)
	{
		if(players[i] != null)
		{
			return;
		}
	}
  checkPosition(idtPositionSafe);
	alert("Sua equipe não marcará pontos se estiver vazia");
}

var idtPositionOLD=-1;
function search(idtChampionship, idtPosition, desPlayerPosition, page)
{

  if(idtPositionOLD!=idtPosition){
  	if(document.getElementById('theadPos'+idtPositionOLD))
  		document.getElementById('theadPos'+idtPositionOLD).className="subDiv";
  	if(document.getElementById('tbodyPos'+idtPositionOLD))
  		document.getElementById('tbodyPos'+idtPositionOLD).className="subDiv";

  	if(document.getElementById('theadPos'+idtPosition))
  		document.getElementById('theadPos'+idtPosition).className="";
  	if(document.getElementById('tbodyPos'+idtPosition))
  		document.getElementById('tbodyPos'+idtPosition).className="";
	}
  idtPositionOLD=idtPosition;
	

	if(page==null && currentSearch==idtPosition)
	{
		return;
	}
	
	var url = '/searchPlayersAdmin.html';
	var pars = 'idtChampionship='+idtChampionship+'&idtPlayerPosition='+idtPosition+'&desPlayerPosition='+desPlayerPosition+'&maxPerPage='+searchMaxResultsPerPage;

	document.getElementById('listPlayers').innerHTML="<div class=\"carregando\">Carregando...</div>";
  document.getElementById('apostaAjuda').style.display="none";
  getHTMLlistPlayers(url, pars, 'listPlayers', reportError);

	if(currentSearch != idtPosition)
	{
   
		currentSearch=idtPosition;
		currentDesPosition=desPlayerPosition;
	}
}

var playerResultsAdminIdTRAjust=function playerResultsAdminIdTRAjust(){
  playerResultsAdminIdTR=document.getElementById('listPlayers').getElementsByTagName('tr');
  for(var i=0;i<playerResultsAdminIdTR.length;i++){
    if(playerResultsAdminIdTR[i].id.indexOf('playerResultsAdminId')>=0 && playersRecruitedIdList.indexOf("|"+playerResultsAdminIdTR[i].id.replace('playerResultsAdminId','')+"|")>=0){
      if(playerResultsAdminIdTR[i].className.indexOf('comprado')==-1)
        playerResultsAdminIdTR[i].className+=" comprado ";
    }else if(playerResultsAdminIdTR[i].id.indexOf('playerResultsAdminId')>=0 && playersRecruitedIdList.indexOf("|"+playerResultsAdminIdTR[i].id.replace('playerResultsAdminId','')+"|")==-1){
      if(playerResultsAdminIdTR[i].className.indexOf('comprado')>=0)
        playerResultsAdminIdTR[i].className=playerResultsAdminIdTR[i].className.replace("comprado","");
    }
  }
  if(idtPositionOLD>=0) checkPosition(idtPositionOLD);
}

function getHTMLlistPlayers(url, pars, placeholder, scriptFailure)
{
  var ajaxUpdater = new Ajax.Updater( {success: placeholder}, url, { method: 'get', parameters: pars, onFailure: scriptFailure, onComplete: playerResultsAdminIdTRAjust });
	//var ajax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: placeholder, onFailure: scriptFailure});	
	
	return;
	
}

//function changePlayers(originalRequest)
//{
	//document.getElementById('listPlayers').innerHTML = originalRequest.responseText;
//	var frm = originalRequest.responseText;
//	document.getElementById('listPlayers').innerHTML = frm;
//}


function reportError(request)
{
	alert('Erro ao carregar página');
}

function isCompleteTeam()
{
	if(amountPlayers != players.length)
	{
		return false;
	}

	for(i=0; i < players.length; i++)
	{
		if(players[i]==null)
		{
			return false;
		}
	}

	return true;
}

function isPlayersInCorrectPosition()
{
	for(i=0; i < players.length; i++)
	{
		if(players[i].idtPosition != playerPositionModality[i])
		{
			return false;
		}
	}

	return true;
}

function validate_form()
{
	if(canNegotiate)
	{
		if( isCompleteTeam() )
		{
			if( isPlayersInCorrectPosition() )
			{
				//return true;
        submitFormReturn('formListPlayersRecruiting','submitFormReturnContent');
        return false;
			}
			else
			{
				alert('Existe jogadores em sua equipe que estão em posições inválidas');
			}
		}
		else
		{
			alert('Todas as posições da equipe devem ser preenchidas');	
		}
	}
	else
	{
		alert('O campeonato está fechado para contratações.');
	}

	return false;
}

function submitFormReturn(formId,placeholder)
{
  var pars="";
  document.getElementById(placeholder).innerHTML="";
  inputs=document.getElementById(formId).getElementsByTagName('input');
  for(i=0;i<inputs.length;i++){
    if(inputs[i].name!=false) pars+=((pars!="")?"&":"")+inputs[i].name+"="+inputs[i].value
    inputs[i].style.visibility="hidden";
  }
  selects=document.getElementById(formId).getElementsByTagName('select');
  for(i=0;i<selects.length;i++){
    if(selects[i].name!=false) pars+=((pars!="")?"&":"")+selects[i].name+"="+selects[i].value
  }
  var ajaxUpdater = new Ajax.Updater( {success: placeholder}, document.getElementById(formId).action, { evalScripts:true, method: 'get', parameters: pars, onFailure: reportError });
  document.getElementById(placeholder).style.display='block';
  document.getElementById(placeholder).className='ok';
  submitFormReturnInputsShow(formId,placeholder);
}

function submitFormReturnInputsShow(formId,placeholder){
  if(document.getElementById(placeholder).innerHTML!=""){
    inputs=document.getElementById(formId).getElementsByTagName('input');
    for(i=0;i<inputs.length;i++){
      inputs[i].style.visibility="visible";
    }
  }else{
    setTimeout("submitFormReturnInputsShow('"+formId+"','"+placeholder+"')",500);
  }
}

var listPlayersHTMLtemp="";

function showApostaAjuda(){
  document.getElementById("apostaAjuda").style.top="2em";
  if(document.getElementById("apostaAjuda").style.display=="none"){
    document.getElementById("apostaAjuda").style.display="block";
    document.getElementById("apostaAjudaHeader").style.display="block";
    document.getElementById("listPlayers").style.display="none";
    if(typeof(setHeight)!="undefined"){
      if(document.getElementById('corpo')) document.getElementById('corpo').style.height='';
      if(document.getElementById('col-esquerda')) document.getElementById('col-esquerda').style.height='';
      if(document.getElementById('col-centro')) document.getElementById('col-centro').style.height='';
      setTimeout("setHeight('corpo','col-esquerda','col-centro');",100);
    }
  }else{
    document.getElementById("apostaAjuda").style.display="none";
    document.getElementById("apostaAjudaHeader").style.display="none";
    document.getElementById("listPlayers").style.display="block"; 
    if(typeof(setHeight)!="undefined"){
      if(document.getElementById('corpo')) document.getElementById('corpo').style.height='';
      if(document.getElementById('col-esquerda')) document.getElementById('col-esquerda').style.height='';
      if(document.getElementById('col-centro')) document.getElementById('col-centro').style.height='';
      setTimeout("setHeight('corpo','col-esquerda','col-centro');",100);
    }
  }
}
