/*
 * Variabili di configurazione
 */
// Server url
var base_url = 'http://' + location.hostname;

// Static url
var static_url = "";

// Path per la cartella in cui è contenuta l'immagine per la finestra di loading
var loading_image_url = 'http://static.timcafe.pvt/js/ajax/images';

// Secondi che devono trascorrere prima della chiusura automatica della finestra
var open_seconds = 10;

// Testo per riempire la finestra in caso di errore di connessione
var connectionError =	{
							"header": "Errore",
							"body": "Errore di connessione: impossibile effettuare l'operazione",
							"footer": ""
						};

//Finestra di attesa
var wait = {
				"header": "Adicionando...",
				"body": "<center><img src=\"" + loading_image_url + "/loading.gif\" alt=\"Loading\" class=\"loading\"/></center>",
				"footer": ""
			};

var wait_send_message = {
		"header": "Sto inviando...",
		"body": "<center><img src=\"" + loading_image_url + "/loading_invio.gif\" alt=\"Loading\" class=\"loading\"/></center>",
		"footer": ""
	};

var user_data = new Array("uid", "nick", "image", "message", "player_id","type");

/*
 * Funzione interfaccia, viene chiamata nella finestra al primo passo
 */

function updatestatus(mid, step){
	
	var user = getUserData(2, arguments);
	if(step == 1){
	}
	else if(step == 2){
		
		user["status"] = document.getElementById("statusupdate").value;
		manageStepTwo("updatestatus", mid, user, false);
	}
}

function deleteprofile(mid, step){
	
	var user = getUserData(2, arguments);
	if(step == 1) manageStepOne("deleteprofile", mid, user);
}

function downloadclient(){
	var mid = null;
	var user = {
		uid : null,
		nick : null,
		image : null
	};
	manageStepOne("downloadclient", mid, user);
}

function sendms(mid, step)
{
	var user = getUserData(2, arguments);
		
	if(step == 1) manageStepOne("sendms", mid, user);
	else if(step == 2){
		user["message"] = document.getElementById("sendms_text").value;
		user["message_type"] ='sms'; /*document.getElementById("sendms_select").value;*/
		
		// controllo input
		var error = checkMessage(user.message, user.message_type);
		
		if(error){
			document.getElementById('messageWindowError').innerHTML = error;
		}
		else{
			manageStepTwo("sendms", mid, user, false);
		}
	}
}

function changenick(mid, step)
{
	if(step == 1){
		var user = getUserData(2, arguments);
		var callback = {
	
				// Successful XHR response handler
			    success : function (o) {
					
					// creazione opzioni html per select nick
	 				nicks = YAHOO.lang.JSON.parse(o.responseText);
	 				
	 				var optionHTML ='';
	 				for(var i = 0; i < nicks.length; i++){
	 					optionHTML += '<option value="' + nicks[i].nick + '">' + nicks[i].nick + '</option>';
	 				}
	 				user.nicks = optionHTML;
					manageStepOne("cambianick", mid, user);
			    },
			    failure : function (o) {
	
			    } 
			};
		// recupero nick utente
		YAHOO.util.Connect.asyncRequest("GET", base_url + "/gui_manager/get_nick", callback);
	}
	else if(step == 2){
		
		var action = arguments[2];
		var user = {};
		user.new_nick = document.getElementById('nicks').value;
		manageStepTwo(action, mid, user, false);
	}
}

/*
 * Funzione interfaccia, viene chiamata nella finestra al primo passo
 */
function addfriend(mid, step)
{
	var user = getUserData(2, arguments);
	
	if(step == 1) manageStepOne("addfriend", mid, user);
	else if(step == 2) manageStepTwo("addfriend", mid, user, false);
}

/*
 * Funzione interfaccia, viene chiamata nella finestra al primo passo
 */
function callfriend(mid, step)
{
	var user = getUserData(2, arguments);
	
	if(step == 1) manageStepOne("callfriend", mid, user);
	else if(step == 2){
		user['type']=arguments[7];
		manageStepTwo("callfriend", mid, user, false);
		//alert(arguments[7]);
	}
}


/*
 * Funzione interfaccia, viene chiamata nella finestra al primo passo
 */

function showMMS(mid, content_id, step){
	
	var user = {
		'content_id' : content_id
	};
	
	if(step == 2){
		manageStepTwo("showMMS", mid, user);
	}
	
}

function removefriend(mid, step)
{
	var user = getUserData(2, arguments);
	
	if(step == 1) manageStepOne("removefriend", mid, user);
	else if(step == 2) manageStepTwo("removefriend", mid, user, false);
}

function addblacklist(mid, step){
	
	var user = getUserData(2, arguments);
	
	if(step == 1) manageStepOne("addblacklist", mid, user);
	else if(step == 2) manageStepTwo("addblacklist", mid, user, false);
}

function removeblacklist(mid, step){
	
	var user = getUserData(2, arguments);
	
	if(step == 1) manageStepOne("removeblacklist", mid, user);
	else if(step == 2) manageStepTwo("removeblacklist", mid, user, false);
}

function deletemessage(mid, step){
	
	var user = getUserData(2, arguments);
	
	if(step == 1) manageStepOne("deletemessage", mid, user);
	else if(step == 2) manageStepTwo("deletemessage", mid, user, false);
}

/*
 * Funzione interfaccia, viene chiamata nella finestra al primo passo
 */
function chat(mid)
{
	var user = getUserData(1, arguments);
	
	manageStepTwo("chat", mid, user, true);
}

function simple(mid)
{
	var user = getUserData(0, arguments);
	
	manageStepOne("simple", mid, user, true);
}

function getStaticWindowParts(action, mid, user)
{
	var window_parts = new Array();
	var user_info_string = user.uid + ", '" + user.nick + "', '" + user.image + "'";
	
	// SMS, MMS
	window_parts["sendms"] = new Array();
	
	window_parts["sendms"] = {
			"header": "Envie uma mensagem para <span class='nickname'>" + user.nick + "</span>",
			
			"body":	'<div class="invioMessaggio" id="formOverlay">' +
						'<div style="padding-bottom:11px">' +
							'<form method="post" enctype="multipart/form-data" name="form_mms" id="form_mms_overlay">' +
							'<table>' +
								'<tbody>' +
									'<tr>' +
										'<td style="padding-top:5px; vertical-align:top;">' +
											'<img height="56" border="0" width="56" alt="" style="border: 1px solid rgb(0, 0, 0);" src="' + user.image + '"/>' +
										'</td>' +
										'<td class="w8"/>' +
										'<td style="vertical-align:top;">' +
											'<table>' +
												'<tbody>' +
													'<tr>' +
														'<td>' +
															'<label style="display:block; font-weight:bold; padding-right:5px;" for="messaggiotipo">Envia um sms</label>' +
														'</td>' +	
														'<input type="hidden" name="from"  value="sms"/>' +														
														'<td>' +
															'<div style="display:none;" id="mmsImmagineBox">' +
																'<table>' +
																	'<tbody>' +
																		'<tr>' +
																			'<td class="w10"/>' +
																			'<td>' +
																				'<label style="display:block; font-weight:bold; padding-right:5px;" for="immagine">Imagem:</label>' +
																			'</td>' +
																			'<td>' + 
																				'<input name="file" type="file" class="input" size="10" id="immagine"/>' +
																			'</td>' +
																		'</tr>' +
																	'</tbody>' + 
																'</table>' +
															'</div>' +
														'</td>' +
													'</tr>' +
												'</tbody>' + 
											'</table>' +
											'<textarea id="sendms_text" onFocus="this.value=\'\';" style="font-family: Trebuchet MS,Tahoma,Arial,Verdana,sans-serif; font-size:11px; height:30px; margin:6px 0; padding-left:4px; width:352px;" name="testo">Deixe  aqui seu recado...</textarea>' +
											'<input type="hidden" name="profile_id" value="' + user.uid + '"/>' +
											'<input type="hidden" name="player_id"  value="' + user.player_id + '"/>' +
											'<input type="hidden" name="from"  value="popup"/>' +
											'<div id="messageWindowError" style="width : 200px"></div>' +
											'<div>' +
												'<input type="button" class="bottonebluPopup" value="ENVIAR MENSAGEM" onclick="javascript:sendms(\'' + mid + '\', 2, ' + user_info_string + ',\'\',' + user.player_id + '); return false;"/>' + 
											'</div>' +
										'</td>' +
									'</tr>' +
								'</tbody>' + 
							'</table>' +
						'</form>' +
					'</div>' + 
				'</div>' +
				'<div id="waitingOverlay" style="display : none;"><center><img src="' + loading_image_url + '/loading_invio.gif" alt="Loading" class="loading"/></center></div>',
			
			"footer": ""		
	};
	
	// chiama/videochiama amico
	window_parts["callfriend"] = new Array();
	
	window_parts["callfriend"] = {
			"header": "Chamada ou vídeo chamada " + user.nick,
			"body": "<img src='" + user.image + "' alt='Avatar' style='margin:5px;' align='left'/><p/>\n<center>Escolha se deseja fazer uma chamada ou uma vídeo chamada <strong>" + user.nick + "</strong> do seu celular.<p/></center><center><input type='button' class='bottonebluPopup' value='Chiama' onClick=\"javascript:callfriend(" + mid + ", 2, " + user_info_string + ",'','',1);\"/>\n<input type='button' class='bottonebluPopup' value='VideoChiama' onClick=\"javascript:callfriend(" + mid + ", 2, " + user_info_string + ",'','',2);\"/>" +
					"<br/><br/><em>(Costo del servizio 0,50? ogni 3min.)</em></center>\n",
			"footer": ""
	};

	// Aggiungi amico
	window_parts["addfriend"] = new Array();
	
	window_parts["addfriend"] = {
			"header": "Adicionar amigo",
			"body": "<img src='" + user.image + "' alt='Avatar' style='margin:5px;' align='left'/><p/>\n<center>Tem certeza que deseja adicionar <strong>" + user.nick + "</strong> à sua Lista de Amigos?<p/></center><center><input type='button' class='bottonebluPopup' value='SIM' onClick=\"javascript:addfriend(" + mid + ", 2, " + user_info_string + ");\"/>\n<input type='button' class='bottonebluPopup' value='NÃO' onClick='YAHOO.container.hide();'/></center>\n",
			"footer": ""
	};

	// Rimuovi amico
	window_parts["removefriend"] = new Array();
	
	window_parts["removefriend"] = {
			"header": "Remover amigo",
			"body": "<img src='" + user.image + "' alt='Avatar' style='margin:5px;' align='left'/><p/>\nTem certeza que deseja excluir <strong>" + user.nick + "</strong> da sua buddylist ?<p/><center><input type='button' class='bottonebluPopup' value='SIM' onClick=\"javascript:removefriend(" + mid + ", 2, " + user_info_string + ");\"/>\n<input type='button' class='bottonebluPopup' value='NÃO' onClick='YAHOO.container.hide();'/></center>\n",
			"footer": ""
	};
	
	// aggiungi blacklist
	window_parts["addblacklist"] = new Array();
	
	window_parts["addblacklist"] = {
			"header": "Adicionar lista negra",
			"body": "<img src='" + user.image + "' alt='Avatar' style='margin:5px;' align='left'/><p/>\nTem certeza que deseja adicionar <strong>" + user.nick + "</strong> à sua lista negra?<p/><center><input type='button' class='bottonebluPopup' value='SIM' onClick=\"javascript:addblacklist(" + mid + ", 2, " + user_info_string + ");\"/>\n<input type='button' class='bottonebluPopup' value='NÃO' onClick='YAHOO.container.hide();'/></center>\n",
			"footer": ""
	};
	
	// rimuovi blacklist
	window_parts["removeblacklist"] = new Array();
	
	window_parts["removeblacklist"] = {
			"header": "Remover lista negra",
			"body": "<img src='" + user.image + "' alt='Avatar' style='margin:5px;' align='left'/><p/>\nTem certeza que deseja excluir  <strong>" + user.nick + "</strong> á lista negra?<p/><center><input type='button' class='bottonebluPopup' value='SIM' onClick=\"javascript:removeblacklist(" + mid + ", 2, " + user_info_string + ");\"/>\n<input type='button' class='bottonebluPopup' value='NÃO' onClick='YAHOO.container.hide();'/></center>\n",
			"footer": ""
	};
	
	// cancella messaggio
	window_parts["deletemessage"] = new Array();
	window_parts["deletemessage"] = {
			"header": "Elimina messaggio",
			"body": "<img src='" + user.image + "' alt='Avatar' style='margin:5px;' align='left'/><p/>\nTem certeza que deseja excluir esta mensagem?<p/><center><input type='button' class='bottonebluPopup' value='SIM' onClick=\"javascript:deletemessage(" + mid + ", 2, " + user_info_string + "," + user.message + ");\"/>\n<input type='button' class='bottonebluPopup' value='NÃO' onClick='YAHOO.container.hide();'/></center>\n",
			"footer": ""
	};
	
	// cancella profilo
	window_parts["deleteprofile"] = new Array();
	
	window_parts["deleteprofile"] = {
			"header": "Cancelar do TIMCafé",
			"body": 'Para cancelar do TIMCafé, envie um sms a 2233 com o texto <b>SAIR</b>.<br/>' +
					'Gostariamos de lembrar que ao se desenscrever, todas as suas fotos, vídeos, artículos, blogs e mensages serâo perdidos. O pessoa será excluido de todos os seus amigos e nâo poderá contatar os seus amigos.<br/>',
			"footer": ""
	};
	
	// autorizzazione download pc client
	window_parts["downloadclient"] = new Array();
	
	window_parts["downloadclient"] = {
			"header": "Download client",
			"body": "<font color=\"red\">Atenção: para continuar, você deve declarar que leu e aceitou os Termos e Condições e a Política de Privacidade do TIMCafé!</font>",
			"footer": ""
	};
	
	// cambia nick
	window_parts["cambianick"] = new Array();
	
	window_parts["cambianick"] = {
			"header": "Cambia nick",
			"body": '<div class="modificaNicknameBox">' +
						'<div style="padding:0px 15px 5px;">Escolha <strong>nickname</strong> que você deseja usar:</div>' +
						'<div style="background-color:#ECECEC; padding:15px;">' +
							'<table>' +
								'<tbody>' + 
									'<tr>' +
										'<td colspan="2">' +
											'<select style="width: 200px;" name="nick" id="nicks">' +
												user.nicks +
											'</select>' +
										'</td>' +																	
									'</tr>' +															
								'</tbody>' + 
							'</table>' +								
						'</div>' +
						'<div style="padding:15px 15px 5px;">' +
							'<table cellspacing="0" cellpadding="0" width="100%">' +	
								'<tbody>' + 
									'<tr>' +
										'<td width="50%">' +
											'<input type="button" class="bottonebluPopup" value="Invia" class="bottonebluPopup" onclick="javascript:changenick(' + mid + ', 2,\'changenick\')" />' +
										'</td>' +										
										'<td align="right" width="50%">' +
											'<a style="color: rgb(0, 0, 0);" href="#" onclick="javascript:changenick(' + mid + ', 2,\'addnick\')">Cria seu perfil</a>' +
										'</td>' +									
									'</tr>' +	
								'</tbody>' + 
							'</table>' +
						'</div>' +	
					'</div>',
			"footer": ""
	};
	
	// Semplice finestra
	window_parts["simple"] = new Array();
	
	window_parts["simple"] = {
			"header": "Finestra semplice",
			"body": "Semplice finestra senza nessuna azione associata (1 passo)",
			"footer": ""
	};
	
	// visualizzazione mms
	window_parts["showMMS"] = new Array();
	
	window_parts["showMMS"] = {
			"header": "Visualizzazione MMS",
			"body": wait.body,
			"footer": ""
	};
	
	
	return window_parts[action];
}

/*
 * Genera la framework action string
 */
function generateActionString(action, params)
{
	var url = '';
	switch(action){
		
		case 'addfriend':
			
			url = base_url + "/gui_manager/add_friend/" + params.user['nick'];
			break;
			
		case 'callfriend':
			
			url = base_url + "/gui_manager/call_friend/" + params.user['nick']+ "/"+ params.user['type'];
			break;	
			
		case 'removefriend':
		
			url = base_url + "/gui_manager/remove_friend/" + params.user['nick'];
			break;
			
		case 'addblacklist':
		
			url = base_url + "/gui_manager/add_blacklist/" + params.user['nick'];
			break;
			
		case 'removeblacklist':
		
			url = base_url + "/gui_manager/remove_blacklist/" + params.user['nick'];
			break;
			
		case 'deletemessage':
		
			url = base_url + "/gui_manager/delete_message/" + params.user['nick'] + "/" + params.user['uid'] + "/" + params.user['message'];
			break;
	
		case 'sendms':
			
			url = base_url + "/sms_box/" + params.user['message_type'] + "_send";
			break;
			
		case 'updatestatus':
			
			url = base_url + "/gui_manager/update_status";
			break;
			
		case 'addnick':
			
			url = base_url + "/gui_manager/add_nick";
			break;
			
		case 'changenick':
			
			url = base_url + "/gui_manager/change_nick/" + params.user['new_nick'];;
			break;
			
		case 'showMMS':
			
			url = base_url + "/gui_manager/show_mms/" + params.user['content_id'];;
			break;
	}		
	
	return url;
}