/* 																																									*/
/* 										FUNZIONI CON I TEMPLATE DA MODIFICARE													*/
/* 																																									*/
/* questa è la parte che puoi modificare.occhio a mantenere la forma in cui è   		*/
/* memorizzata la variabile	e cioè																									*/
/* nomevar = ' blabla '																															*/
/* +'		blabla '																																		*/
/* +' blabla ';	                      																							*/
/* queste sono rispettivamente la prima riga, ogni altra riga nel mezzo e l'ultima 	*/
/* proprio come è ora insomma																											 	*/
/*																																								 	*/
/* RICORDA:se inserisci nel codice qualche cosa che contenga il  ' (apice singolo) 	*/
/* devi scrivere \' (slash in alto a sinistra e poi apice singolo)                 	*/

//////////////////////////////////////////////////////////////////////////////////////////

function urlencode (str) {
                   
    var hash_map = {}, unicodeStr='', hexEscStr='';
    var ret = (str+'').toString();
     
    var replacer = function (search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
   // The hash_map is identical to the one in urldecode.
    hash_map["'"]   = '%27';
    hash_map['(']   = '%28';
    hash_map[')']   = '%29';
    hash_map['*']   = '%2A';
    hash_map['~']   = '%7E';
    hash_map['!']   = '%21';
    hash_map['%20'] = '+';
    hash_map['\u00DC'] = '%DC';
    hash_map['\u00FC'] = '%FC';
    hash_map['\u00C4'] = '%D4';
    hash_map['\u00E4'] = '%E4';
    hash_map['\u00D6'] = '%D6';
    hash_map['\u00F6'] = '%F6';
    hash_map['\u00DF'] = '%DF';
    hash_map['\u20AC'] = '%80';
    hash_map['\u0081'] = '%81';
    hash_map['\u201A'] = '%82';
    hash_map['\u0192'] = '%83';
    hash_map['\u201E'] = '%84';
   hash_map['\u2026'] = '%85';
    hash_map['\u2020'] = '%86';
    hash_map['\u2021'] = '%87';
    hash_map['\u02C6'] = '%88';
    hash_map['\u2030'] = '%89';
    hash_map['\u0160'] = '%8A';
    hash_map['\u2039'] = '%8B';
    hash_map['\u0152'] = '%8C';
    hash_map['\u008D'] = '%8D';
    hash_map['\u017D'] = '%8E';
    hash_map['\u008F'] = '%8F';
    hash_map['\u0090'] = '%90';
   hash_map['\u2018'] = '%91';
    hash_map['\u2019'] = '%92';
    hash_map['\u201C'] = '%93';
    hash_map['\u201D'] = '%94';
    hash_map['\u2022'] = '%95';
    hash_map['\u2013'] = '%96';
    hash_map['\u2014'] = '%97';
    hash_map['\u02DC'] = '%98';
   hash_map['\u2122'] = '%99';
   hash_map['\u0161'] = '%9A';
   hash_map['\u203A'] = '%9B';
   hash_map['\u0153'] = '%9C';
   hash_map['\u009D'] = '%9D';
   hash_map['\u017E'] = '%9E';
    hash_map['\u0178'] = '%9F';
     
    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);
 
    for (unicodeStr in hash_map) {
        hexEscStr = hash_map[unicodeStr];
        ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
    }
     
    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function (full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
}


/*	funzione che contiene il form di login																					*/
/*																																									*/
/*  COSE CHE NON SI POSSONO CAMBIARE: non puoi modificare il value e il name e 			*/
/*	onClick del input type button e il name del text e password.                    */
/*  cioè:  value="Login" name="nomebottone" onClick=\'document.userlog.nomebottone.value="Loading";this.disabled=true;makepost();\'  */
/*	name="quickloguser"																															*/
/*	name="quicklogpsw"																															*/

/*  qualunque cosa tu faccia queste cose devono essere mantenute										*/

function return_str_form()
{
	strform='	<table border="0" cellpadding="0" cellspacing="0" bordercolor="#111111" id="AutoNumber1" style="font-family: verdana; font-size: 10 pt; border-collapse:collapse" align="right">'
	+'<tr><td width="20" rowspan="2" align="right" valign="bottom"> </td><td valign="middle"><div id="login"><font face="Verdana" size="1"></font></div></td><td valign="middle"><div id="chiave"><font face="Verdana" size="1"></font></div></td></td>	<td rowspan="2" valign="bottom"><p align="right">		'
	+'  <input type="button" value="Login" name="nomebottone" style="font-size:10px;font-weight:bold;" onClick=\'document.userlog.nomebottone.value="Login";this.disabled=true;makepost();\' src="/parts/chat-login.gif" valign="right"  ></td><td width="20" rowspan="2" align="right" valign="bottom"><p align="right"><a href="javascript:PopupWindow(\'http://www.fuorissimo.com/php-bin/chat/password.php\', \'Password\', 520, 340);"><img border="0" src="/parts/help_login.gif" width="12" height="16" alt="Aiuto / Recupero Password" style="margin-bottom:2px"></a></td></tr>'
	+'  <tr>'
	+'   <td valign="bottom"><input type="text" name="quickloguser" value="NickName oppure Email" size=25 maxlength=100 style="text-align: center;font-family: verdana;font-size:10px; color:#FF0000; font-weight:bold;" onFocus=\'document.userlog.quickloguser.value="";\' />&nbsp;</td>'
	+'<td valign="bottom"> '
	+ '<input type="text" name="quicklogpswInput" value="Password" size=10 maxlength=100 style="text-align: center; font-family: verdana;font-size:10px; color:#FF0000; font-weight:bold;" onFocus=\'document.userlog.quicklogpswInput.style.display="none";document.userlog.quicklogpsw.style.display="inline";document.userlog.quicklogpsw.focus();\' /> '
	+ '<input type="password" style="display:none" name="quicklogpsw" size=10 maxlength=100 style="text-align: center; font-family: verdana;font-size:10px; color:#FF0000; font-weight:bold;" onFocus=\'document.userlog.quicklogpsw.value="";\' /> '	
	+ '&nbsp;</td>'
	+'  </tr>'
	+'</table>';

	return strform;
}


/*   funzione che contiene ciò che deve sostituire il form di login una volta loggato       	*/
/*																																														*/
/*  COSE CHE NON SI POSSONO CAMBIARE: non puoi modificare onClick															*/
/*  cioè:  onClick="eraseAll()"  																															*/


function return_log_data()
{
	logdata='<table border="0" cellpadding="0" cellspacing="0" bordercolor="#111111" id="AutoNumber1" style="font-family: verdana; font-size: 10 pt; border-collapse:collapse">  <td valign="bottom">  <div align="right">'
	 +'     <div Style="margin-top: 14px;"><tr><td style="padding-right: 2px;" align="left" width="20"><p align="center"><font face="Verdana"> </font></p></td> <td><font face="Verdana" size="1"><font color="#ff0000"></font><b> </b></font></td>  </tr></div>'
	 +'			</div></td></table>';

		//alert(logdata);
	 return logdata
}

/*   funzione che contiene il contenuto della colonna sinistra da sloggato o durante il caricamento		*/
/*																																														*/
/*  COSE CHE NON SI POSSONO CAMBIARE: puoi spaccare tutto.l'unica cosa non cambiare il JS e attento a +'	'+immagine+'	e a ' '+intestazione+'  '	*/


function stampa_colonnasinistra(use)
{
	if (use=='loading') {
			immagine=' <img border="0" src="/parts/loading_small.gif" width="15" height="15" style="margin-top:88;">';
			intestazione=' ';
	}
	else {
			immagine='<a target="_self" href="/php-bin/chat/register.php">  <img src=/php-bin/rotatorchat/random.php alt="ISCRIZIONE GRATUITA | DIVERTIMENTO ASSICURATO" border=0></a>';
			intestazione= '				<div align="center">'
			+'				  <center>'
			+'					        <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="126" id="AutoNumber2" bgcolor="#DCEDFE">'
			+'					          <tr>'
			+'					            <td width="3" height="14" background="/parts/backbottonmini.gif">'
			+'					            <p align="left">'
			+'					            <img border="0" src="/parts/aperturamini.gif" width="3" height="14"></td>'
			+'					            <td width="120" height="14" background="/parts/backbottonmini.gif">'
			+'					            <p align="center"><b><font face="Verdana" size="1" color="#FFCC00">Incontri / Chat</font></b></td>'
			+'					            <td width="3" height="14" background="/parts/backbottonmini.gif">'
			+'					            <p align="right"><img border="0" src="/parts/chiusuramini.gif" width="3" height="14"></td>'
			+'					          </tr>'
			+'					        </table>'
			+'				  </center>'
			+'			</div>'
	}
	var colonnasinistra = ' '+intestazione+'  '
	+'<div align="center">'
	+'	  <center>'
	+'  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="126" height="200" id="AutoNumber3" bgcolor="#DCEDFE"> '
	+'  <tr>'
	+'  <td style="border-style: solid; border-width: 0; " bordercolor="#000000" valign="top" align="center" bgcolor="#FFCC00">'
	+'<p align="center">'
	+'					      <font face="Arial, Helvetica, sans-serif">'
	+'	'+immagine+'				      '
	+'					  </font></td></tr>'
	+'					  </table>'
	+'					  </center>'
	+'					</div>';


	return colonnasinistra;
}



/*																																												*/
/*	 														FINE PARTE MODIFICABILE																		*/
/*																																												*/
/*	non toccare per nessun motivo il codice che segue																																										*/

	//crea un numero casuale
function getRandom(min, max)
	{
		return(Math.floor(Math.random() * (max - min)) + min);
	}


	//crea i cookie
function createCookie(sNome, sValore, iGiorni)
{
	//da scommentare per estendere l'uso in tutte le parti del sito
	var path="/";
  var dtOggi = new Date()
  var dtExpires = new Date()

    dtExpires.setTime
    (dtOggi.getTime() + 24 * iGiorni * 3600000)
  document.cookie = sNome + "=" + escape(sValore) +
    								"; expires=" + dtExpires.toGMTString() +
    								"; path=" + path;
}

//crea cookie che durano 5 minuti (usato per il cookie di update)
function createFastCookie(sNome, sValore) {
	//da scommentare per estendere l'uso in tutte le parti del sito
	var path="/";
  var dtOggi = new Date()
  var dtExpires = new Date()


    dtExpires.setTime
    (dtOggi.getTime() + 1200000)
  document.cookie = sNome + "=" + escape(sValore) +
    "; expires=" + dtExpires.toGMTString() +
    "; path=" + path;
}




// restituisce il valore del cookie sNome
function GetCookie(sNome) {
  // genera un array di coppie "Nome = Valore"
  // NOTA: i cookies sono separati da ';'
  var asCookies = document.cookie.split("; ");
  // ciclo su tutti i cookies
  for (var iCnt = 0; iCnt < asCookies.length; iCnt++)
  {
    // leggo singolo cookie "Nome = Valore"
    var asCookie = asCookies[iCnt].split("=");
    if (sNome == asCookie[0]) {
      return (unescape(asCookie[1]));
    }
  }

  // SE non esiste il cookie richiesto
  return("");
}

	//cancella il cookie
function eraseCookie(name) {
	createCookie(name,"",-1);
}

	//funzione che controlla e scrive cookie con numero casuale per conteggio utenti
function creaunico() {
	if (GetCookie('unico')=='') {
		casuale=getRandom(0,4294967000);
		createCookie('unico',casuale,1);
	}
}


/*Ajax*/
var http_request = false;

function makePOSTRequest(url, parameters, handler)
{
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			// set type accordingly to anticipated content type
			//http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		}
	}
	else if (window.ActiveXObject)
	{ // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request)
	{
		alert('Cannot create XMLHTTP instance');
		return false;
	}

	http_request.onreadystatechange = handler;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}


/* Funzioni che effettuano la chiamata http*/
function makepost ()
{
	var form = document.userlog;

	Stringa = "&quicklog="+urlencode(document.userlog.quickloguser.value)+"&quickpass="+urlencode(document.userlog.quicklogpsw.value)+"&unico="+GetCookie('unico');
	//alert(Stringa);
	//alert("/include/general/loginajax.php?"+Stringa);
	makePOSTRequest("/include/general/loginajax.php",Stringa,myElaboraCerca);
	document.getElementById("colsxmodified").innerHTML=stampa_colonnasinistra('loading');
}



function myElaboraCerca ()
{
	strform=return_str_form();

	// Se ho avuto risposta dal server
	if (http_request.readyState == 4 && http_request.status == 200)
	{
		//Converto la stringa Json in vettore Javascript
		var myJSONText = eval('json = ' + http_request.responseText);

		//alert(myJSONText[0]);
		//alert(myJSONText[1]);
		//alert(myJSONText[2]);
		//alert(myJSONText[3]);
		//alert(myJSONText[4]);
		//alert(myJSONText[5]);
		//alert(myJSONText[6]);
		//alert(myJSONText[7]);	
													
		//ho tutti e tre i cookie attivi
		if (myJSONText[0] == 'justlogged')
		{
			//stampo la col di sinistra modificata(parte che riguarda la col sx dinamica che viene scritta in ajax
			// ed all'inizio è vuota + il banner della col sx normale
			document.getElementById("colsxmodified").innerHTML=myJSONText[1];
			document.getElementById("testo").innerHTML=myJSONText[2];
			document.getElementById("IscrivitiHome").style.display='none';
		}
		else if (myJSONText[0] == 'yes')
		{
			// Se il login è OK	e sono alla prima volta che mi loggo(quindi devo creare i cookie)
			if ((GetCookie('ChatForumstringa')=='') || (GetCookie('ChatForumAuth')==''))
			{
				createCookie('ChatForumAuth',myJSONText[2],7);
				createCookie('ChatForumUID',myJSONText[1],7);
				createCookie('Nick',myJSONText[7],7)
				createFastCookie('update','yes');
				//window.location.href="/index2.php";
				document.getElementById("IscrivitiHome").style.display='none';
				//window.location.href="/php-bin/chat/pannello.php?ID="+myJSONText[1];
			}
			else
			{
				createFastCookie('update','yes');
			}
			document.getElementById("colsxmodified").innerHTML=myJSONText[3];
			document.getElementById("testo").innerHTML=myJSONText[4];
			document.getElementById("IscrivitiHome").style.display='none';
		}
		else if (myJSONText[0] == 'fols') {
			document.getElementById("testo").innerHTML=strform;
			document.getElementById("colsxmodified").innerHTML=stampa_colonnasinistra();
			document.getElementById("IscrivitiHome").style.display='inline';
			// alert ("ATTENZIONE: ACCESSO NEGATO! Combinazione Nickname/Password errata. Se non ricordi i tuoi dati di accesso, clicca il simbolo [?] accanto al tasto di Login e li riceverai nella tua casella di posta. E prendi del fosforo. :-)");
		}
		else if (myJSONText[0] == 'false') {
			document.getElementById("testo").innerHTML=strform;
			document.getElementById("colsxmodified").innerHTML=stampa_colonnasinistra();
			document.getElementById("IscrivitiHome").style.display='inline';
			alert ("ATTENZIONE: ACCESSO NEGATO! Combinazione Nickname/Password errata. Se non ricordi i tuoi dati di accesso, clicca il simbolo [?] accanto al tasto di Login e li riceverai nella tua casella di posta. E prendi del fosforo. :-)");
		}



		//parte aggiunta per il conteggio dei connessi
		nickname=GetCookie('Nick');
		uid=GetCookie('ChatForumUID');
		//	parte da ripristinare per avere valori reali
		//document.getElementById("connessi").innerHTML = 'CACCA';
		//parte falsa(da cancellare poi)
		
	
		if (nickname!='') {
			//caso in cui ho il cookie e quindi prendo il nome dal cookie
			//alert('ANO');
			document.getElementById("connessi").innerHTML="<img border=\"0\" src=\"/parts/users.gif\" hspace=\"1\" align=\"absbottom\"> <font size=\"1\" face=\"Verdana\">Benvenuto <b><a href=\"/php-bin/chat/profilo.php?ID="+uid+"\" >"+ nickname +"</a></b>. Sul sito ci sono <a href=\"/php-bin/chat/ricerca_utenti.php\"><b>"+ myJSONText[5] +"</b> utenti registrati</a> di cui <b><a href=\"/php-bin/chat/connessi.php\">"+ myJSONText[6] +" connessi!</b></a></font>";
		} else {
			//caso in cui non ho nessun nickname.e quindi ci devo mettere anonimo
			//alert('ONE');			
			document.getElementById("connessi").innerHTML="<img border=\"0\" src=\"/parts/users.gif\" hspace=\"1\" align=\"absbottom\"> <font size=\"1\" face=\"Verdana\">Benvenuto <b><a href=\"/php-bin/chat/register.php\" >Anonimo</a></b>. Sul sito ci sono <a href=\"/php-bin/chat/ricerca_utenti.php\"><b>"+ myJSONText[5] +"</b> utenti registrati</a> di cui <b><a href=\"/php-bin/chat/connessi.php\">"+ myJSONText[6] +" connessi!</b></a></font>";
		}
	}
	else
	{
		//non ho ancora effettuato il ritorno dalla pagina phph in ajax
	}
	
	
}


//richiamata al caricamento della pagina e che analizza la situazione dell'utente in base ai cookie attivati
function startajax()
{
	strform=return_str_form();
	
	//generazione numero casuale da memorizzare per lista connessi
	creaunico();

	//crea cookie veloge se già altri cookie(da ved)
	//if ((GetCookie('ChatForumUID')!='') && (GetCookie('ChatForumAuth')!='')) {
	//	createFastCookie('update','yes');
	//}


//alert('update');
	//cookie update pieno
	if ((GetCookie('update')!=''))
	{
		//alert(GetCookie('ChatForumUID'));
		//cookie update pieno e cookie login pieno
		if ((GetCookie('ChatForumUID')!='') && (GetCookie('ChatForumAuth')!=''))
		{
			//alert('cookie update pieno e cookie login pieno');

			//faccio la richiesta ajax con il parametro justlogged(si carica le colonne senza aver bisogno di rifere il login)
			Stringa = "&justlogged=yes&quicklog="+GetCookie('ChatForumUID')+"&quickpass="+GetCookie('ChatForumAuth')+"&unico="+GetCookie('unico');
			//alert(Stringa);
			makePOSTRequest("/include/general/loginajax.php",Stringa,myElaboraCerca);

		//cookie update pieno e cookie login vuoto
		}
		else
		{
			//alert('cookie update pieno e cookie login vuoto');
			//ho cancellato il cookie di login
			eraseCookie('update');
			//			document.getElementById("testo").innerHTML=str;
			//alert(str);
			//alert("str");

			//parte aggiunta per il numero di utenti connessi(da fare in ajax e quindi con richiesta a caso)
			Stringa = "&numconn=doit&unico="+GetCookie('unico');
			alert(Stringa);
			makePOSTRequest("/include/general/loginajax.php",Stringa,myElaboraCerca);
		}
		//cookie update vuoto
	}
	else
	{
		//cookie login pieno e update vuoti
		if ((GetCookie('ChatForumUID')!='') && (GetCookie('ChatForumAuth')!=''))
		{
			//alert('cookie login pieno e update vuoti');
			//richiamo la pagina php con ajax e nei cookie ho già i dati di login(no nick e passwd ma ID e auth)
			//praticamente è scaduto il cookie update
			Stringa = "&reload=yes&quicklog="+GetCookie('ChatForumUID')+"&quickpass="+GetCookie('ChatForumAuth')+"&unico="+GetCookie('unico');
			//alert(Stringa);
			makePOSTRequest("/include/general/loginajax.php",Stringa,myElaboraCerca);
			//alert(Stringa);

			//cookie login vuoto e update vuoti
		}
		else
		{
			//alert('cookie login vuoto e update vuoti');

			Stringa = "&nologged=yes&unico="+GetCookie('unico');
			//alert(Stringa);
			//navigazione normale senza avere nessun cookie
			//chiamata ajax usata per modificare le statistiche
			makePOSTRequest("/include/general/loginajax.php",Stringa,myElaboraCerca);
		}
	}

	//alert(Stringa);
}


/*
function startajax2 ()
{
	strform=return_str_form ();
	creaunico ();

	if ((GetCookie ('update')!=''))
	{
		if ((GetCookie ('ChatForumUID')!='') && (GetCookie ('ChatForumAuth')!=''))
		{
			Stringa = "&justlogged=yes&quicklog=" + GetCookie ('ChatForumUID') + "&quickpass=" + GetCookie ('ChatForumAuth') + "&unico=" + GetCookie ('unico');
			makePOSTRequest ("/include/general/loginajax.php", Stringa, myElaboraCerca);
		}
		else
		{
			eraseCookie ('update');
			Stringa = "&numconn=doit&unico=" + GetCookie ('unico');
			makePOSTRequest ("/include/general/loginajax.php", Stringa, myElaboraCerca);
		}
	}
	else
	{
		if ((GetCookie ('ChatForumUID') != '') && (GetCookie ('ChatForumAuth') != ''))
		{
			Stringa = "&reload=yes&quicklog=" + GetCookie ('ChatForumUID') + "&quickpass=" + GetCookie ('ChatForumAuth') + "&unico=" + GetCookie ('unico');
			makePOSTRequest ("/include/general/loginajax.php", Stringa, myElaboraCerca);
		}
		else
		{
			Stringa = "&nologged=yes&unico=" + GetCookie ('unico');
			makePOSTRequest ("/include/general/loginajax.php", Stringa, myElaboraCerca);
		}
	}
}
*/

//cancella tutti i cookie del login (richiamata dal pulsante di logout)
function eraseAll ()
{
	Stringa = "&logout=yes&quicklog="+GetCookie('ChatForumUID')+"&quickpass="+GetCookie('ChatForumAuth')+"&unico="+GetCookie('unico');
	//alert(Stringa);
	//alert(Stringa);
	makePOSTRequest("/include/general/loginajax.php",Stringa,myElaboraCerca);
	//alert("chiamata finita secondo lui");
	createCookie("ChatForumUID","",-1);
	createCookie("ChatForumAuth","",-1);
	createCookie("Nick","",-1);
	createCookie("update","",-1);
	//ritornano subito la colonna di sx e il form di login
	document.getElementById("colsxmodified").innerHTML=stampa_colonnasinistra();
	document.getElementById("testo").innerHTML=return_str_form();
	document.getElementById("IscrivitiHome").style.display='inline';
	//alert(return_str_form());
	//alert("return_str_form()");
	//cambiamento fatto che connette alla index
	//location.replace("http://www.fuorissimo.com/");
	// richiama funzione che controlla lo stato del logging
	startajax();
}


