/*****************************************
** VARIABILI GLOBALI
*****************************************/
		var COOKIES = areCookiesEnabled();
    var USERID;

    if(COOKIES){
      if(Get_Cookie("userid")!==null){
        USERID=Get_Cookie("userid");
      }
      else{
        var now = Date.parse(new Date());
        Set_Cookie( 'userid', ""+now+"", 365, '/', '', '' );
        USERID=now;
      }
      //alert(USERID)
    }

/*****************************************
** LISTENER DELL'URL
*****************************************/
window.dhtmlHistory.create({
            toJSON: function(o) {
                    return Object.toJSON(o);
            },
            fromJSON: function(s) {
                    return s.evalJSON();
            }
    });  
    // funzione che redireziona tutti i link JavaScript
    function navigate(dest){
        //alert(window.location)
        var url = ""+window.location+"";
        var currLocation = ""+window.location+"";
        if(currLocation.indexOf("#")!=-1){
          url = currLocation.split("#")[0];
        }
        window.location=url+dest;
    }

    var myListener = function(newLocation, historyData) {
      // cancello il timer di aggiornamento degli ultimi commenti
      //if(lastCommentsIntervalId)
        //clearInterval(lastCommentsIntervalId)
        var data = [];
			if(newLocation.indexOf("/")!=-1){
        var locationArray = newLocation.split("/");
        //newLocation.scan(/\w+/, function(match){ data.push(match[0])});
				newLocation = locationArray[0];
        if(locationArray[1]){
          data[1] = locationArray[1];
          if(locationArray[2]){
            data[2] = locationArray[2];
          }
        }
			}
      //alert(historyData)
			//alert(newLocation)
			//alert(data)
            switch(newLocation) {
                case "home":
                    home();
                break;
                case "gruppi":
					        if(!data[1]){
                    gruppi();  
                  }
					        else{
						        gruppo(data[1]); 
                  }
                break;
                case "serie":
                  if(!data[1]){
                    allSerie();
                  }
					        else{
					          if(data[2]){
  					          serie(data[1]); 
  					          setTimeout("showReviews("+data[1]+")",2000);
					          }
					          else{
					            serie(data[1]); 
					          }
                  }

                break;
                case "cerca":
                     search(data[1]);
                break;
                case "utente":
                     utente(data[1]);
                break;
                case "blog":
                  if(!data[1]){
                      blog();
                    }
                    else{
                      if(data[2])
                        blog(data[1],data[2]);
                      else
                        blog(data[1]);
                    }
                break;
                case "faucet":
                     faucet();
                break;
                case "impostazioni":
                     emoticonsAjaxRequest();
                break;
                case "pm":
                      pm();
                break;
            } 
    }

/*****************************************
** getXHR()  Cross-browser function
**
** returns the XMLHttpRequest object
*****************************************/
		function getXHR(){
			if (window.XMLHttpRequest){
				// If IE7, Mozilla, Safari, etc: Use native object
				var xmlHttp = new XMLHttpRequest();
				}
			else{
				if (window.ActiveXObject){
						// ...otherwise, use the ActiveX control for IE5.x and IE6
						var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			    }
			}
			return xmlHttp;
		}
/********************************************
** SubITAnime functions
********************************************/    
	  	function makeBox(titolo,context,idbox){
  			var windows= document.getElementById('windows');
  			var titlebox = document.createElement('div');
  			titlebox.setAttribute('id','titlebox');
  			
  			var img_l=document.createElement('div');
  			img_l.setAttribute('class','img_left');
  			titlebox.appendChild(img_l);
  			
  			var tit = document.createElement('div');
 				tit.setAttribute('id','title');
  			tit.innerHTML = titolo;
  			titlebox.appendChild(tit);
  			
  			var linkk = document.createElement('a');
 				linkk.setAttribute('href','javascript: hide("'+idbox+'")');
  			titlebox.appendChild(linkk);
  			
  			var img_min=document.createElement('div');
  			img_min.setAttribute('class','minimize_large');
  			linkk.appendChild(img_min);
  			
  			var img_r=document.createElement('div');
  			img_r.setAttribute('class','img_right');
  			titlebox.appendChild(img_r);

        windows.appendChild(titlebox);
  			
  			var cont = document.createElement('div');
 				cont.setAttribute('id',idbox);
 				cont.setAttribute('class','contentbox');
  			cont.innerHTML = context;
  			windows.appendChild(cont);
	  	}
      
	  	function delBox(){
        var windows = document.getElementById('windows');
        var numChildNodes = 4;
        if(BrowserDetect.browser=="Explorer"){ numChildNodes = 2; }
        var counter=0;
        if ( windows.hasChildNodes() )
        {
            while ( windows.childNodes.length > numChildNodes )
            {
                windows.removeChild( windows.lastChild );
            } 
        }
			}
      
      function showWait(){
        document.getElementById("waitBox").style.visibility = "visible";
        $("waitBox").appear({ duration: 1, to: 0.75 });
      }
      
      function hideWait(){
        $("waitBox").hide({ duration: 1, to: 0 });
        document.getElementById("waitBox").style.visibility = "hidden";
      }
      
      var scrollFirstTime = true;
      function onPageVisualization(){
        // page scroll
        if(Get_Cookie("scroll")=="true" || Get_Cookie("scroll")==null)
          Effect.ScrollTo("scrollReference",{offset: -100});
        if(Get_Cookie("scroll")==null && scrollFirstTime){
          $('messagesBox').innerHTML="Per disabilitare lo spostamento automatico della pagina, andare in <a href=\"#\" onclick=\"window.location='#impostazioni'; return false;\" class=\"comm_text\">Impostazioni</a>."
          $('messagesBoxMask').appear();
          setTimeout("Effect.Fade(\"messagesBoxMask\", { duration: 3.0 })",10000)
          scrollFirstTime = false;
        }
        // add Google Analitycs stats
        //addGAStats();
      }
      
      function removeMenuClass(){
        $('menu-home').removeClassName('active_page')
        $('menu-gruppi').removeClassName('active_page')
        $('menu-serie').removeClassName('active_page')
        $('menu-blog').removeClassName('active_page')
      }

/***************************************************************
** SubITAnime 
** funzioni per la visualizzazione delle varie sezioni del Menu
****************************************************************/   
	  	function gruppi(){
                removeMenuClass()
                $('menu-gruppi').addClassName('active_page')
                showWait()
                new Ajax.Request("infogruppo.php", {
			          method:       'post', 
			          parameters:   'allgrp=true', 
			          asynchronous: true,
			          onComplete:   function(transport){
                                    delBox();
                                    makeBox('Gruppi',transport.responseText,"boxgruppi");
                                    addTooltip();
                                    onPageVisualization();
                                    hideWait();
                                  },
                onFailure: function(transport) { setTimeout("gruppi()",3000) }
                });
	  	}
	  	
	  	function allSerie(){
                removeMenuClass()
                $('menu-serie').addClassName('active_page')
                showWait()
                new Ajax.Request("serie.php", {
			          method:       'post', 
			          parameters:   '', 
			          asynchronous: true,
			          onComplete:   function(transport){
                                    delBox();
	  		                            makeBox('Serie',transport.responseText,"boxserie");
                                    onPageVisualization();
                                    addTooltip();
                                    hideWait();
                                  },
                onFailure: function(transport) { setTimeout("allSerie()",3000) }
                });
	  	}
	  	
	  	function serie(str){
        removeMenuClass()
        $('menu-serie').addClassName('active_page')
        showWait()
        this.complete = 0;
        this.delbox = false;
	  		delBox();
        var nomeserie
        new Ajax.Request("infogruppo.php", {method: 'post', parameters:   'serienome='+str, asynchronous: false, onComplete:   function(transport){
                                    nomeserie = transport.responseText
                                  }
                        });
        new Ajax.Request("serie.php", {method: 'post', parameters:   'serie='+str, asynchronous: false, onComplete:   function(transport){
                                    delBox();
                                    makeBox("Serie "+nomeserie+" - Informazioni",transport.responseText,"infoserie");
                                  }
                        });
        new Ajax.Request("generator.php", {method:  'post', parameters:   'serie='+str+'&id=torrent', asynchronous: true, onComplete:   function(transport){
                            	  		makeBox("Serie "+nomeserie+" - Torrent",transport.responseText,"boxtorrent");
                                    this.complete++
                                    if(this.complete==3){ addTooltip(); onPageVisualization(); hideWait()}
                                  },
                                  onFailure: function(transport) {  this.complete++; if(this.complete==3) { delBox(); setTimeout("serie("+str+")",3000)} }
                        });
        new Ajax.Request("generator.php", {method:  'post', parameters:   'serie='+str+'&id=softsub', asynchronous: true, onComplete:   function(transport){
	  		                            makeBox("Serie "+nomeserie+" - SoftSub",transport.responseText,"boxsoftsub");
                                    this.complete++
                                    if(this.complete==3){ addTooltip();  onPageVisualization(); hideWait()}
                                  },
                                  onFailure: function(transport) {  this.complete++; if(this.complete==3) { delBox(); setTimeout("serie("+str+")",3000)} }
                        });
        new Ajax.Request("generator.php", {method:  'post', parameters:   'serie='+str+'&id=ed2k', asynchronous: true, onComplete:   function(transport){
	  		                            makeBox("Serie "+nomeserie+" - Link Ed2k",transport.responseText,"boxed2k");
                                    this.complete++
                                    if(this.complete==3){ addTooltip();  onPageVisualization(); hideWait()}
                                  },
                                  onFailure: function(transport) {  this.complete++; if(this.complete==3) { delBox(); setTimeout("serie("+str+")",3000)} }
                        });
	  	}
      
	  	function gruppo(idgrp){
        removeMenuClass()
        $('menu-gruppi').addClassName('active_page')
        showWait()
	  		delBox();
        var nomegruppo;
        this.complete=0
        this.failuer=0
        new Ajax.Request("infogruppo.php", {
			          method:       'post', 
			          parameters:   'gruppo='+idgrp+'&nome=true', 
			          asynchronous: true,
			          onComplete:   function(transport){
                                  nomegruppo = transport.responseText
                                  new Ajax.Request("infogruppo.php", {method:  'post', parameters:  'gruppo='+idgrp, asynchronous: true, onComplete:   function(transport){
                                      makeBox("Gruppo "+nomegruppo+"",transport.responseText,"infogruppoDiv");
                                    }
                                   });
                                  new Ajax.Request("generator.php", {method:  'post', parameters:  'gruppo='+idgrp+'&id=torrent', asynchronous: true, onComplete:   function(transport){
	    		                            makeBox("Gruppo "+nomegruppo+" Torrents",transport.responseText,"boxtorrent"); 
                                      this.complete++
                                      if(this.complete==3){ addTooltip(); onPageVisualization(); hideWait()}
                                    },
                                    onFailure: function(transport) { this.complete++; if(this.complete==3) {delBox(); setTimeout("gruppo("+idgrp+")",3000)} }
                                   });
                                  new Ajax.Request("generator.php", {method:  'post', parameters:  'gruppo='+idgrp+'&id=softsub', asynchronous: true, onComplete:   function(transport){
	    		                            makeBox("Gruppo "+nomegruppo+" Softsubs",transport.responseText,"boxsoftsub");
                                      this.complete++
                                      if(this.complete==3){ addTooltip(); onPageVisualization(); hideWait()}
                                    },
                                    onFailure: function(transport) { this.complete++; if(this.complete==3) {delBox(); setTimeout("gruppo("+idgrp+")",3000)} }
                                   });
                                  new Ajax.Request("generator.php", {method:  'post', parameters:  'gruppo='+idgrp+'&id=ed2k', asynchronous: true, onComplete:   function(transport){
	    		                            makeBox("Gruppo "+nomegruppo+" Link Ed2k",transport.responseText,"boxed2k");
                                      this.complete++
                                      if(this.complete==3){ addTooltip(); onPageVisualization(); hideWait()}
                                    },
                                    onFailure: function(transport) { this.complete++; if(this.complete==3) {delBox(); setTimeout("gruppo("+idgrp+")",3000)} }
                                   });
                               }
        });
	  	}
      /*****************
      ** category can be:
      ** "torrent"
      ** "soft"
      ** "ed2k"
      *****************/
	  	function home(page,category){
                removeMenuClass()
                $('menu-home').addClassName('active_page')
                showWait();
                this.complete = 0;
                this.delbox = false;
	  		        this.tordata
                this.softdata
                this.ed2kdata
                if(page!=null){
                  var postVars="nextpage=true"
                }
                else
                  var postVars=""
                new Ajax.Request("generator.php", {
			          method:       'post', 
			          parameters:   postVars, 
			          asynchronous: true,
			          onComplete:   function(transport){
                                    if(!this.delbox) {this.delbox = true; delBox();}
                                    this.tordata=transport.responseText
                                    this.complete++
                                    if(this.complete==3) {
                                      makeBox("Torrent",this.tordata,"boxtorrent");
                                      makeBox("SoftSub",this.softdata,"boxsoftsub");
	  		                              makeBox("Link Ed2k",this.ed2kdata,"boxed2k");
                                      addTooltip()
                                      onPageVisualization()
                                      hideWait()
                                    }
                                  },
                onFailure: function(transport) { this.complete++; if(this.complete==3) {delBox(); setTimeout("home()",3000)} }
                });
                new Ajax.Request("generator.php", {
			          method:       'post', 
			          parameters:   'stage=soft', 
			          asynchronous: true,
			          onComplete:   function(transport){
                                    if(!this.delbox) {this.delbox = true; delBox();}
                                    this.softdata=transport.responseText
                                    this.complete++
                                    if(this.complete==3) {
                                      makeBox("Torrent",this.tordata,"boxtorrent");
                                      makeBox("SoftSub",this.softdata,"boxsoftsub");
	  		                              makeBox("Link Ed2k",this.ed2kdata,"boxed2k");
                                      addTooltip()
                                      onPageVisualization()
                                      hideWait()
                                    }
                },
                onFailure: function(transport) { this.complete++; if(this.complete==3) {delBox(); setTimeout("home()",3000)} }
                });
                new Ajax.Request("generator.php", {
			          method:       'post', 
			          parameters:   'stage=ed2k', 
			          asynchronous: true,
			          onComplete:   function(transport){
                                    if(!this.delbox) {this.delbox = true; delBox();}
                                    this.ed2kdata=transport.responseText
                                    this.complete++
                                    if(this.complete==3) {
                                      makeBox("Torrent",this.tordata,"boxtorrent");
                                      makeBox("SoftSub",this.softdata,"boxsoftsub");
	  		                              makeBox("Link Ed2k",this.ed2kdata,"boxed2k");
                                      addTooltip()
                                      onPageVisualization()
                                      hideWait()
                                    }
                 },
                 onFailure: function(transport) { this.complete++; if(this.complete==3) {delBox(); setTimeout("home()",3000)} }
                 });
	  	}
		
		function blog(num,idCommento){
        var param = ''
        if(num){
          param = "&id="+num
        }
        removeMenuClass()
        $('menu-blog').addClassName('active_page')
        showWait();
        new Ajax.Request("blog.php", {
                method:       'post', 
                parameters:   'get=true'+param, 
                asynchronous: true,
                onComplete:   function(transport){
                                      delBox();
                                      makeBox("Blog",substituteEmoticons(transport.responseText),"blog-container")
                                      
                                      hideWait()
                                      if(num){
                                       showBlogComments(num,num)
                                       if(idCommento)
                                        setTimeout("$('blogComment"+idCommento+"').scrollTo()",500);
                                      }
                                      else
                                        onPageVisualization()
                 },
                 onFailure: function(transport) { setTimeout("blog("+num+")",3000) }
                 });
      }

    function lastBlogPost(){
      new Ajax.Request("blog.php", {
                method:       'post', 
                parameters:   'get=true&last=true', 
                asynchronous: true,
                onComplete:   function(transport){
                                      $('lastPostDiv').innerHTML = transport.responseText
                 },
                 onFailure: function(transport) { setTimeout("lastBlogPost()",3000) }
                 });
    }
      
      function utente(nick){
        showWait();
        new Ajax.Request("utente.php", {
                method:       'post', 
                parameters:   'utente='+nick, 
                asynchronous: true,
                onComplete:   function(transport){
                                      delBox();
                                      makeBox("Utente "+nick,transport.responseText,"boxutente");
                                      onPageVisualization()
                                      hideWait()
                 },
                 onFailure: function(transport) { setTimeout("utente("+nick+")",3000) }
                 });
      }
      
      function faucet(){
        //showWait();
        delBox();
        var html = "<div id=\"faucetDiv\">"
          html += "<div style=\"font-size: 1.2em; padding 5px; background-color: white; border: 1px grey solid; width: 600px; margin-left: auto; margin-right: auto\">Registrati su <a href=\"http://www.vcast.it\" target=\"_blank\" class=\"link\">VCast.it</a>, poi torna qui, inserisci i tuoi dati e imposta le registrazioni dei tuoi anime preferiti trasmessi in TV!</div>"
          html += "<div style=\"font-size: .95em; padding 5px; background-color: white; width: 600px; margin-left: auto; margin-right: auto\">Appena registrati su VCast, andate alla pagina <a href='http://www.vcast.it/faucetpvr/' class='link'>http://vcast.it/faucetpvr/</a> e dichiarate di essere in regola con il pagamento del canone televisivo. Questa schermata compare solo la prima volta, e <u>solo</u> dopo questa accettazione sarete in grado di utilizzare il servizio.</div>"
          html += "<div id='FS-login-box' style='display: none; margin: 5px;'>"
            html += "<form name='FS_loginform' action='' method='get' onsubmit='FS_login(FS_loginform.user.value,FS_loginform.password.value); return false;'>"
              html += "<div><label for='user'>VCast Username</label><input type='text' name='user' class='small'></div>"
              html += "<div><label for='password'>VCast Password</label><input type='password' name='password' class='small'></div>"
              html += "<div><input type='reset' value='Cancella'><input type='submit' value='Invia'></div>"
            html += "</form>"
          html += "</div>"
            html += "<ul style=\"width: 500px; text-align: left; margin-right: auto; margin-left: auto; list-style-type: none\">"
              html += "<li>"
                html += "<div style=\"background-image:url(http://www.vcast.it/images/top_bar.png); font-weight: bold; background-color: orange; padding-right: 2px; padding-left: 2px;\">Che cos'&egrave; VCast ?</div>"
                html += "<ul style=\"list-style-type: none; margin-left: -15px\">"
                  html += "<li>VCast &egrave; un aggregatore di podcast.</li>"
                html += "</ul>"
              html += "</li>"
              html += "<li>"
                html += "<div style=\"background-image:url(http://www.vcast.it/images/top_bar.png); font-weight: bold; background-color: orange; padding-right: 2px; padding-left: 2px;\">Cosa c'entra VCast con la televisione ?</div>"
                html += "<ul style=\"list-style-type: none; margin-left: -15px\">"
                  html += "<li>VCast fornisce un ulteriore servizio chiamato Faucet PVR che consente a chiunque di registrare le trasmissioni televisive e radiofoniche in chiaro, a scopo personale.</li>"
                html += "</ul>"
              html += "</li>"
            html += "</ul>"
            html += "<div style=\"margin-left: auto; margin-right: auto; width: 600px\">"
              html += "<div id=\"faucet-user\" style=\"text-align: left; font-style: italic; margin-left: auto; margin-right: auto; width: 600px\"></div>"
              html += "<div style=\"padding: 1px; width: 130; background-color: #E8E8E8 ;\">"
                html += "<div style=\"padding: 5px; border: 1px solid #989898 ; background-color: white;\">Registrazioni selezionate</div>"
              html += "</div>"
              html += "<div id=\"recordings-list\">Devi inserire i tuoi dati di accesso a VCast per visualizzare gli anime disponibili.</div>"
              html += "<div style=\"padding: 1px; width: 130; background-color: #E8E8E8 ;\">"
                html += "<div style=\"padding: 5px; border: 1px solid #989898 ; background-color: white;\">Anime Disponibili</div>"
              html += "</div>"
              html += "<div id=\"available-recordings-list\"></div>"
              
              html += "<div id=\"strings\" style=\"visibility:hidden\"></div>"
              
              html += "<div id=\"faucet-powered\"><a href=\"http://www.vcast.it\" target=\"_blank\">powered VCAST</a></div>"
              html += "<div class=\"contentbox richiesta_faucet\">Conosci un anime che va in onda, o un film di animazione giapponese che sar&agrave; trasmesso in TV, non presenti nella lista? <a href=\"javascript: FS_segnalazione()\" >Segnalalo subito</a> &egrave; semplice e migliorer&agrave; il servizio a molti utenti.</div>"
            html += "</div>"
        html += "</div>";
        
        makeBox("Le tue registrazioni TV",html,"faucet-div");
        FS_init()
        //hideWait()
        onPageVisualization()
                
      }
      
      // variabile globale utilizzata in sendPM per prelevare il testo senza faccine sostituite
      var JSON_PM="";
      function pm(){
        showWait();
        new Ajax.Request("pm.php", {
                method:       'post', 
                parameters:   'get=true&idUtente='+Get_Cookie("sitoUserId"), 
                asynchronous: true,
                onComplete:   function(transport){
                                      delBox();
                                      var dragPMArray = new Array();
                                      var data = transport.responseText;
                                      JSON_PM = data;
                                      var st = "";
                                        
                                      if(data != "empty"){
                                        var data = transport.responseText.evalJSON(true);
                                        if(data[0].length>0){
                                          st += "<div class=\"minimize-narrow\" style=\"cursor: default\">"
                                            st += "<a href=\"#\" onclick=\"pm(); return false;\" class=\"comm_text\"><span class=\"btn-refresh\" title=\"Aggiorna i messaggi privati\"></span></a>"
                                            st += "<span id=\"pm-trash\" class=\"btn-trash\" style=\"margin-left: 2px;\" title=\"Trascina un PM sul cestino per cancellarlo\"></span>"
                                          st += "</div>"
                                          
                                          // START PM RICEVUTI
                                           st += "<div class=\"contenuto_grey pm-cont\"><div style=\"text-align: left; margin-left: 15px; font-weight: bold;\">Ricevuti</div>"
                                            st += "<div style=\"padding: 5px; background-color: rgb(40, 49, 63); color: white;\" id=\"cont-here\" class=\"pm-cont\">"
                                              st += "<ul style=\"list-style-type: none; display: block; height: 15px; font-size: 0.9em;\">"
                                                st += "<li>"
                                                  st += "<dl style=\"width: 100%; display: block;\">"
                                                    st += "<dt style=\"margin-left: -30px; width: 50%; text-align: left; clear: left; float: left;\">Titolo</dt>"
                                                    st += "<dd style=\"width: 28%; text-align: left; float: right;\">Data</dd>"
                                                    st += "<dd style=\"margin-left: 15px; width: 8%; text-align: center; float: right;\">Da</dd>"
                                                  st += "</dl>"
                                                st += "</li>"
                                              st += "</ul>"
                                              st += "<div>"
                                          for(var i=0; i< data[0].length; i++){
                                            var newPMimg = "";
                                            var action = "";
                                            if(data[0][i].read == 0 || data[0][i].read == "0"){
                                              var bg = "background-color: #8FEE71;";
                                              var mouseOut = "#8FEE71";
                                              newPMimg = "<div class=\"img-new-pm\"></div>"
                                              action = "setPMasRead('"+data[0][i].idPM+"');";
                                            }
                                            else{
                                              var bg ="background-color: white;";
                                              var mouseOut = "white";
                                            }
                                            st += "<ul id=\"pm-header-"+data[0][i].idPM+"\" onmouseout=\"this.style.backgroundColor='"+mouseOut+"'\" onmouseover=\"this.style.backgroundColor='#444444'\" style=\""+bg+" margin: 2px; font-size: 0.9em; list-style-type: none; display: block; height: 20px; cursor: move\">"
                                              st += "<li>"
                                                st += "<dl style=\"width: 100%; color: black; display: block;\">"
                                                  st += "<dt style=\"margin-left: -30px; width: 50%; text-align: left; clear: left; float: left;\">"
                                                    st += "<a class=\"comm_text\" href=\"#\" onclick=\"Effect.toggle('pm-"+data[0][i].idPM+"','blind'); "+action+" return false;\"><span id=\"pm-"+data[0][i].idPM+"-title\">"+data[0][i].title+"</span></a> "+newPMimg+""
                                                    st += "<br/>"
                                                  st += "</dt>"
                                                  st += "<dd style=\"width: 28%; text-align: left; float: right; font-style: italic; font-weight: .9em\">"
                                                    st += data[0][i].data
                                                  st += "</dd>"
                                                  st += "<dd style=\"margin-left: 15px; width: 8%; text-align: center; float: right;\">"
                                                    st += "<a class=\"comm_text\" href=\"#utente/"+data[0][i].fromNick+"\">"+data[0][i].fromNick+"</a>"
                                                  st += "</dd>"
                                                st += "</dl>"
                                              st += "</li>"
                                            st += "</ul>"
                                            // il pm nascosto
                                            st += "<ul id=\"pm-"+data[0][i].idPM+"\" style=\"background-color: white; margin: 2px; font-size: 0.9em; list-style-type: none; display: block; display: none; padding-bottom: 5px;\">"
                                              st += "<li>"
                                                st += "<dl style=\"width: 100%; color: black; display: block;\">"
                                                  st += "<dt style=\"margin-left: -30px; text-align: left;\">"
                                                    st += "<div><a href=\"#\" onclick=\"sendPM('"+data[0][i].fromId+"','"+data[0][i].idPM+"'); return false;\" class=\"comm_text\">Rispondi</a></div>"
                                                    st += "<div id=\"pm-text-"+data[0][i].idPM+"\" class=\"pm-text rounded-small\">"+substituteEmoticons(data[0][i].text)+"</div>"
                                                  st += "</dt>"
                                                st += "</dl>"
                                              st += "</li>"
                                            st += "</ul>"
                                            dragPMArray.push('pm-header-'+data[0][i].idPM);
                                          }
                                              st += "</div>"
                                            st += "</div>"
                                          st += "</div>"
                                          // END PM RICEVUTI
                                        }
                                        st += "<br>"

                                        if(data[1].length>0){
                                          // START PM INVIATI
                                          st += "<div class=\"minimize-narrow\" style=\"cursor: default\">"
                                            st += "<a href=\"#\" onclick=\"pm(); return false;\" class=\"comm_text\"><span class=\"btn-refresh\" title=\"Aggiorna i messaggi privati\"></span></a>"
                                            st += "<span id=\"pm-trash-inviati\" class=\"btn-trash\" style=\"margin-left: 2px;\" title=\"Trascina un PM sul cestino per cancellarlo\"></span>"
                                          st += "</div>"
                                          
                                           st += "<div class=\"contenuto_grey pm-cont\">"
                                             st += "<div style=\"text-align: left; margin-left: 15px; font-weight: bold;\">Inviati</div>"
                                            st += "<div style=\"padding: 5px; background-color: rgb(40, 49, 63); color: white;\" id=\"cont-here\" class=\"pm-cont\">"
                                              st += "<ul style=\"list-style-type: none; display: block; height: 15px; font-size: 0.9em;\">"
                                                st += "<li>"
                                                  st += "<dl style=\"width: 100%; display: block;\">"
                                                    st += "<dt style=\"margin-left: -30px; width: 50%; text-align: left; clear: left; float: left;\">Titolo</dt>"
                                                    st += "<dd style=\"width: 28%; text-align: left; float: right;\">Data</dd>"
                                                    st += "<dd style=\"margin-left: 15px; width: 8%; text-align: center; float: right;\">Per</dd>"
                                                  st += "</dl>"
                                                st += "</li>"
                                              st += "</ul>"
                                              st += "<div>"
                                          for(var i=0; i< data[1].length; i++){
                                            var newPMimg = "";
                                            var action = "";
                                            var bg ="background-color: white;";
                                            var mouseOut = "white";
                                            st += "<ul id=\"pm-header-inviati-"+data[1][i].idPM+"\" onmouseout=\"this.style.backgroundColor='"+mouseOut+"'\" onmouseover=\"this.style.backgroundColor='#444444'\" style=\""+bg+" margin: 2px; font-size: 0.9em; list-style-type: none; display: block; height: 20px; cursor: move\">"
                                              st += "<li>"
                                                st += "<dl style=\"width: 100%; color: black; display: block;\">"
                                                  st += "<dt style=\"margin-left: -30px; width: 50%; text-align: left; clear: left; float: left;\">"
                                                    st += "<a class=\"comm_text\" href=\"#\" onclick=\"Effect.toggle('pm-inviati-"+data[1][i].idPM+"','blind'); "+action+" return false;\"><span id=\"pm-inviati-"+data[1][i].idPM+"-title\">"+data[1][i].title+"</span></a> "+newPMimg+""
                                                    st += "<br/>"
                                                  st += "</dt>"
                                                  st += "<dd style=\"width: 28%; text-align: left; float: right; font-style: italic; font-weight: .9em\">"
                                                    st += data[1][i].data
                                                  st += "</dd>"
                                                  st += "<dd style=\"margin-left: 15px; width: 8%; text-align: center; float: right;\">"
                                                    st += "<a class=\"comm_text\" href=\"#utente/"+data[1][i].fromNick+"\">"+data[1][i].fromNick+"</a>"
                                                  st += "</dd>"
                                                st += "</dl>"
                                              st += "</li>"
                                            st += "</ul>"
                                            // il pm nascosto
                                            st += "<ul id=\"pm-inviati-"+data[1][i].idPM+"\" style=\"background-color: white; margin: 2px; font-size: 0.9em; list-style-type: none; display: block; display: none; padding-bottom: 5px;\">"
                                              st += "<li>"
                                                st += "<dl style=\"width: 100%; color: black; display: block;\">"
                                                  st += "<dt style=\"margin-left: -30px; text-align: left;\">"
                                                    st += "<div id=\"pm-text-inviati-"+data[1][i].idPM+"\" class=\"pm-text rounded-small\">"+substituteEmoticons(data[1][i].text)+"</div>"
                                                  st += "</dt>"
                                                st += "</dl>"
                                              st += "</li>"
                                            st += "</ul>"
                                            dragPMArray.push('pm-header-inviati-'+data[1][i].idPM);
                                          }
                                              st += "</div>"
                                            st += "</div>"
                                          st += "</div>"
                                          // END PM INVIATI
                                        }
                                      }
                                      else{
                                        st += "<div class=\"minimize-narrow\" style=\"cursor: default\">"
                                            st += "<a href=\"#\" onclick=\"pm(); return false;\" class=\"comm_text\"><span class=\"btn-refresh\" title=\"Aggiorna i messaggi privati\"></span></a>"
                                          st += "</div>"
                                        st += "Nessun messaggio privato";
                                      }
                                      
                                      
                                      makeBox("Messaggi Privati ",st,"boxpm");
                                      
                                      if(data != "empty"){
                                        for( var i = 0; i < dragPMArray.length; i++ ){
                                          new Draggable(dragPMArray[i],{revert: true});
                                        }
                                        
                                        if(data[0].length>0){
                                          Droppables.add('pm-trash',{
                                            hoverclass: 'btn-trash-dragHover',
                                            onDrop: deletePM
                                          });
                                        }
                                        if(data[1].length>0){
                                          Droppables.add('pm-trash-inviati',{
                                            hoverclass: 'btn-trash-dragHover',
                                            onDrop: deletePMinviati
                                          });
                                        }
                                      }
                                      onPageVisualization();
                                      hideWait()
                 },
                 onFailure: function(transport) { setTimeout("pm()",3000) }
                 });
      }
      function setPMasRead(idPM){
        new Ajax.Request("pm.php", {
                method:       'post', 
                parameters:   'setRead=true&idPM='+idPM, 
                asynchronous: true
         });
      }
      function deletePM(draggable, droparea){
        var el = draggable.getAttribute("id").split("-")
        var idPM = el[(el.length)-1]
        $('pm-header-'+idPM).hide();
        Effect.BlindUp('pm-'+idPM);
        new Ajax.Request("pm.php", {
                method:       'post', 
                parameters:   'delete=true&idPM='+idPM, 
                asynchronous: true
         });
      }
      function deletePMinviati(draggable, droparea){
        var el = draggable.getAttribute("id").split("-")
        var idPM = el[(el.length)-1]
        $('pm-header-inviati-'+idPM).hide();
        Effect.BlindUp('pm-inviati-'+idPM);
        new Ajax.Request("pm.php", {
                method:       'post', 
                parameters:   'delete=true&inviati=true&idPM='+idPM, 
                asynchronous: true
         });
      }
      
      function disclaimer(){
        var grayb = document.getElementById("richiesta");
          var content = ""
              + "<div id=\"ric\" class=\"richiesta\">"
                + "<div class=\"headerrichiesta\">"
                  + "<div class=\"titlerichiesta\">Disclaimer</div>"
                  + "<div id=\"closeButtonDiv\" onclick=\"hideRichiesta()\"></div>"
                + "</div>"
                + "<div class=\"containerrichiesta\">";
                var disclaimer = "SubITAnime &egrave; un sito senza scopo di lucro nato dalla passione per l'animazione giapponese.<br>";
                disclaimer += "L'obiettivo primario del sito &egrave; di rendere note al pubblico le opere di animazione che non sono ancora o non saranno mai localizzate per il mercato italiano.<br>Cos&igrave; facendo spera di poter promuovere l'arte dell'animazione e di avvicinare a questa cultura un maggior numero di appassionati possibile.<br>";
                disclaimer += "Date le premesse e non volendo in alcun modo contrastare l'operato di numerose aziende, l'etica del sito ci impone di rimuovere i link di anime che fossero licenziati per il mercato italiano.<br>";
                content += disclaimer;
              content += "</div>"
              + "</div>"
            grayb.innerHTML=content;
            var size = getPageSizeWithScroll()
          new Insertion.After("ric", "<div id=\"maskRichiesta\" class=\"maskrichiesta\" style=\"height: "+size[1]+"px\"></div>");
          $('richiesta').style.visibility="visible"
          $('richiesta').show()
          Effect.Appear('maskRichiesta', { duration: 1.0, to: 0.8 });
          setTimeout("Effect.Appear('ric', { duration: 1.0, to: 0.99 })",500);
      }

      function addTooltip(){
          if(Get_Cookie("sitoUser")&&Get_Cookie("sitoPass")){
            var els = $$('div.contentbox')
            for(var i=0; i<els.length;i++){
              if(els[i].id=="boxgruppi"){
              }
              else if(els[i].id=="boxserie"){
                var links = $$('a.link')
                for(var o=0;o<links.length;o++){
                  if(links[o].getAttribute("onclick")==null) continue;
                  var idSerie = links[o].getAttribute("onclick").split("/")[1]
                  idSerie = idSerie.split("\"")[0]
                  var serie = links[o].innerHTML
                  links[o].removeAttribute("title")
                  var rightSerie = serie.replace("Serie ","");
                  links[o].setAttribute("onmouseover","Tip('<div id=\"contenitore\"><div class=\"css_angoli\" id=\"angolo_superiore_sinistra\"><div class=\"css_angoli\" id=\"angolo_superiore_destra\"></div><div class=\"colore_sfondo\"></div></div><div class=\"contenuto\">    <div>Clicca per vedere tutte le release</div><div class=\"riga_hover\"><a href=\"javascript: addSeriePreferita("+idSerie+")\" style=\"color: black;\">Aggiungi <b>"+serie.replace("Serie ","")+"</b> ai preferiti</a></div><div class=\"riga_hover\"><a href=\"javascript: writeReview("+idSerie+")\" style=\"color: black;\">Scrivi una <b>recensione</b> della serie</a></div> </div><div class=\"css_angoli\" id=\"angolo_inferiore_sinistra\"><div class=\"css_angoli\" id=\"angolo_inferiore_destra\"></div><div class=\"colore_sfondo\"></div></div></div>',FADEIN, 300, FADEOUT, 300, STICKY, 1, CLICKCLOSE, true, DELAY,300)")
                  links[o].setAttribute("onmouseout","UnTip()")
                }
                return
              }
              else if(els[i].id.indexOf("box")!=-1){
                var links = $$('td.td_rel')
                for(var o=0;o<links.length;o++){
                  var boxId= links[o].parentNode.parentNode.parentNode.parentNode.id
                  if(links[o].parentNode.parentNode.parentNode.parentNode.id=="boxtorrent")
                    var num=2
                  else
                    var num=0
                  if(links[o].childNodes[num].getAttribute("onclick")==null) continue;
                  var idSerie = links[o].childNodes[num].getAttribute("onclick").split("/")[1]
                  idSerie = idSerie.split("\"")[0]
                  var serie = links[o].childNodes[num].title
                  var ni=num+1
                  var linkId = links[o].childNodes[ni].getAttribute("onclick")
                  if(linkId!=null){
                    linkId = linkId.split("(")[1]
                    linkId = linkId.split(",")[0]
                  }
                  var idGruppo = links[o].nextSiblings()[0].childElements()[0].getAttribute("onclick").split("/")[1]
                  idGruppo = idGruppo.split("\"")[0]
                  links[o].childNodes[num].removeAttribute("title")
                  links[o].childNodes[num].setAttribute("onmouseover","Tip('<div id=\"contenitore\"><div class=\"css_angoli\" id=\"angolo_superiore_sinistra\"><div class=\"css_angoli\" id=\"angolo_superiore_destra\"></div><div class=\"colore_sfondo\"></div></div><div class=\"contenuto\">    <div>Clicca per vedere tutte le release</div><div class=\"riga_hover\"><a href=\"javascript: addSeriePreferita("+idSerie+")\" style=\"color: black;\"><img src=\"images/icons/star.png\">Aggiungi <b>"+serie.replace("Serie ","")+"</b> ai preferiti</a></div><div class=\"riga_hover\"><a href=\"javascript: showComments("+linkId+","+idSerie+",&quot;"+boxId+"&quot;,"+idGruppo+")\" style=\"color: black;\"><img src=\"images/icons/recensione.png\"><b>Aggiungi</b></a> un commento alla serie</a></div><div class=\"riga_hover\"><a href=\"javascript: writeReview("+idSerie+")\" style=\"color: black;\"><img src=\"images/icons/rece.png\">Scrivi una <b>recensione</b> della serie</a></div>    </div><div class=\"css_angoli\" id=\"angolo_inferiore_sinistra\"><div class=\"css_angoli\" id=\"angolo_inferiore_destra\"></div><div class=\"colore_sfondo\"></div></div></div>',FADEIN, 300, FADEOUT, 300, STICKY, 1, CLICKCLOSE, true, DELAY,300)");
                  links[o].childNodes[num].setAttribute("onmouseout","UnTip()");
                }
                return
              }
            }
          }
      }
      function addSeriePreferita(idSerie){
        new Ajax.Request("add_preferiti.php", {
			          method:       'post', 
			          parameters:   'user='+Get_Cookie("sitoUser")+"&pass="+Get_Cookie("sitoPass")+"&idSerie="+idSerie, 
			          asynchronous: true,
			          onComplete:   function(transport){
                                    if(transport.responseText=="true"|| transport.responseText==true){
                                      $('messagesBox').innerHTML="Serie aggiunta ai Preferiti"
                                      $('messagesBoxMask').appear();
                                      setTimeout("Effect.Fade(\"messagesBoxMask\", { duration: 3.0 })",5000)
                                    }
                                    else if(transport.responseText=="auth false"){
                                      $('messagesBox').innerHTML="Per aggiungere i preferiti devi essere <a href=\"#\" onclick=\"registrazione(); return false;\" class=\"link\">registrato</a>."
                                      $('messagesBoxMask').appear();
                                      setTimeout("Effect.Fade(\"messagesBoxMask\", { duration: 3.0 })",5000)
                                    }
                                    else if(transport.responseText=="already present"){
                                      $('messagesBox').innerHTML="La serie &egrave; gi&agrave; presente nei tuoi preferiti."
                                      $('messagesBoxMask').appear();
                                      setTimeout("Effect.Fade(\"messagesBoxMask\", { duration: 3.0 })",5000)
                                    }
                                    else{
                                      $('messagesBox').innerHTML="Ops... si &egrave; verificato un errore."
                                      $('messagesBoxMask').appear();
                                      setTimeout("Effect.Fade(\"messagesBoxMask\", { duration: 3.0 })",5000)
                                    }
                                  },
                onFailure: function(transport) { setTimeout("addSeriePreferita("+idSerie+")",3000) }
         });
      }
      
      function aggiornaNumVisitatori(){
        //if($('numVisitatori')){
          new Ajax.Request("http://www.subitanime.it/stats/view_stats.js.php", {
                method:       'get', 
                parameters:   'mode=0', 
                asynchronous: true,
                onComplete:   function(transport){
                                    var resp = transport.responseText.split("'")[1]
                                    $('numVisitatori').innerHTML=resp
                                  },
                onFailure: function(transport) { setTimeout("aggiornaNumVisitatori()",3000) }
         });
        //}
      }
      function getVisiteTotali(){
        if($('numVisitatoriTotali')){
          new Ajax.Request("http://www.subitanime.it/stats/view_stats.js.php", {
                method:       'get', 
                parameters:   'mode=3', 
                asynchronous: true,
                onComplete:   function(transport){
                                    var resp = transport.responseText.split("'")[1]
                                    $('numVisitatoriTotali').innerHTML=resp
                                  },
                onFailure: function(transport) { setTimeout("getVisiteTotali()",3000) }
         });
        }
      }
      
      function showChatOnlineUsers(){
        if($('onlineChatDiv')){
          new Ajax.Request("subitanimealtervista_proxy.php", {
                method:       'post', 
                parameters:   'chat=true&online=true', 
                asynchronous: true,
                onComplete:   function(transport){
                                    var xmlMessage = transport.responseText
                                    xmlMessage = trim(xmlMessage)
                                    if(xmlMessage=="empty"){
                                      var output = "Nessun utente in chat."
                                    }
                                    else{
                                      if(BrowserDetect.browser=="Explorer") //Internet Explorer
                                      {
                                        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                                        xmlDoc.async="false";
                                        xmlDoc.loadXML(xmlMessage);
                                      }
                                      else //Firefox, Mozilla, Opera, etc.
                                      {
                                        parser=new DOMParser();
                                        xmlDoc=parser.parseFromString(xmlMessage,"text/xml");
                                      }
                                      var items = xmlDoc.getElementsByTagName('user')
                                      var output = "Utenti attualmente in chat:<br>"
                                      for (var i = 0 ; i < items.length ; i++) {
                                        var item = items[i]
                                        output += "<a href=\"#\" onclick=\"window.location='#utente/"+item.firstChild.nodeValue+"'; return false;\" class=\"comm_text\">"
                                        output += item.firstChild.nodeValue
                                        output += "</a>"
                                        if(i!=items.length-1) output += ", "
                                      }
                                    }
                                    $('onlineChatDiv').innerHTML=output
                                    
                                  },
                onFailure: function(transport) { setTimeout("showChatOnlineUsers()",3000) }
         });
        }
      }
      
      function updateRandomImage(){
        new Ajax.Request("randomimg.php", {
                method:       'post', 
                parameters:   '', 
                asynchronous: true,
                onComplete:   function(transport){
                                    var response = transport.responseText
                                    new Effect.Opacity('randomImagesDiv', { duration: 2.0, queue: 'front', from: 1, to: 0 });
                                    setTimeout('setRandomImageContent("'+encodeURIComponent(response)+'")',2000);
                                    new Effect.Opacity('randomImagesDiv', { queue: 'end', from: 0, to: 1 });
                                  },
                onFailure: function(transport) { setTimeout("updateRandomImage()",3000) }
         });
      }
      function setRandomImageContent(dati){
        $("randomImagesDiv").innerHTML=decodeURIComponent(dati);
      }
      
/*********************************
** Funzioni Area Attività utenti
**********************************/

function showSection(id, anchor){
	Set_Cookie( getSectionCookieName(id), true, 360*100, '/', '', '' );
	anchor.setAttribute("rel","clicked");
	$(id).style.display= 'block'; 
	new Effect.Opacity(id, { from: 0, to: 1, duration: 1 });
	anchor.setAttribute("onclick","hideSection('"+id+"', this)");
}
function hideSection(id, anchor){
	Set_Cookie( getSectionCookieName(id), false, 360*100, '/', '', '' );
	anchor.setAttribute("rel","");
	new Effect.Opacity(id, { from: 1, to: 0, duration: 1 });
	anchor.setAttribute("onclick","showSection('"+id+"', this)");
	setTimeout("$('"+id+"').style.display= 'none';",1000);
}
function getSectionCookieName(id){
	switch(id){
		case "bacheca":
			return "auShowBacheca";
			break;
		case "statistiche":
			return "auShowClassifica";
			break;
		case "lastPostDiv":
			return "auShowBlog";
			break;
		case "lastCommentsDiv":
			return "auShowComments";
			break;
		case "forum":
			return "auShowForum";
			break;
		case "areaVideo":
			return "auShowVideo";
			break;
	}
}
      
/*********************************************************************
** INIZIO funzioni commenti
*********************************************************************/
      
      var myDati;
      // Dati che servono per richiamare showComments dopo l'inserimento
      var showCommData = Class.create();
          showCommData.prototype = {
            initialize: function(rel, serie, box) {
              this.rel = rel;
              this.serie = serie;
              this.box = box;
            }
      };
      
      function showComments(idRel, idSerie, idBox, idGruppo){
          if($(idBox+'comments'+idRel)){ return;}
          myDati = new showCommData(idRel,idSerie,idBox)
          var torrentdiv=document.getElementById(idBox);
          var table=torrentdiv.childNodes[3];
          if(BrowserDetect.browser=="Explorer"){ var table=torrentdiv.childNodes[2]; }
          var tbody=table.childNodes[1];
          var xmlhttp = false;
          var trnew=document.createElement("tr");
          trnew.setAttribute('align','center');
          trnew.setAttribute('id',idBox+'comments'+idRel);
          var td=document.createElement("td");
          td.setAttribute("colspan","6");
          //td.style.backgroundImage = "url('images/bg_tartan2.png')";
          td.innerHTML="<img src='/images/loading.gif'>";
          if(BrowserDetect.browser!="Explorer") {trnew.style.display="none"}
          td.style.padding="5px"
          trnew.appendChild(td);
          if(BrowserDetect.browser!="Explorer"){ trnew.appear() }
          //tbody.insertAfter(trnew,x[count]);
          $(""+idRel+"").insert({ after: trnew });

          putComments(idRel, idSerie, idBox,td, idGruppo);
      }
      
      function putComments(idRel, idSerie, idBox, container, idGruppo){
        var insert = ""
            new Ajax.Request("manageComments.php", {
                method:       'post',
                parameters:   'action=get&idSerie='+idSerie, 
                asynchronous: true, 
                onComplete:   function(transport){
                                  var xmlMessage = transport.responseText;
                                  var xmlDoc;
                                  try //Internet Explorer
                                  {
                                    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                                    xmlDoc.async="false";
                                    xmlDoc.loadXML(xmlMessage);
                                  }
                                  catch(e){
                                    try //Firefox, Mozilla, Opera, etc.
                                    {
                                    parser=new DOMParser();
                                    xmlDoc=parser.parseFromString(xmlMessage,"text/xml");
                                    }
                                    catch(e){
                                      alert(e.message);
                                    }
                                  }
                                  xmlMessage=xmlDoc
                                  
                                  var nomeSerie = $('plus'+idRel).parentNode.getAttribute("href").split(",")[2];
                                  nomeSerie = nomeSerie.substring(1,nomeSerie.length-2).replace(/\+/g," ");
                                  
                                  insert += "<div><img src=\"images/icon_hide.gif\" style=\"margin-left: 520px; cursor: pointer;\" onclick=\"hideComments('"+idBox+"','"+idRel+"')\" title=\"Nascondi commenti\"></div>"
                                  insert += "<div id=\"serieImages"+idSerie+"\"></div>"
                                  insert += "<div style=\"text-align: left\">\
                                  	<a href=\"#\" onclick=\"addSeriePreferita("+idSerie+"); return false;\" class=\"comm_text small\" title=\"Aggiungi la serie ai preferiti\">\
                                  		<div class='preferiti-star-set' style='display: inline-block; vertical-align: middle'></div>\
                                  	</a> \
                                  	<a href=\"#\" onclick=\"writeReview("+idSerie+"); return false;\" class=\"comm_text small\" title=\"Scrivi una recensione\">\
                                  		<div class=\"img-rece\"></div>\
                                  	</a>\
                                  	<a href=\"http://twitter.com/home?status=Mi%20piace%20la%20serie%20anime%20"+nomeSerie+"%20(via%20@subitanime)%20http://tr.im/NOWf\" target=\"_blank\" class=\"comm_text small\" title=\"Segnala serie su Twitter\">\
                                  		<div class=\"img-twitter-small\"></div>\
                                  	</a>\
                                  </div>";
                                  insert += "<h2 style=\"border-top: 1px dashed #D2DADA; border-bottom: 1px dashed #D2DADA; padding-bottom: 5px\">Commenti</h2>"
                                  if(xmlMessage.getElementsByTagName('comments')[0].firstChild.nodeValue=="empty") insert += substituteEmoticons("<div>Nessun intervento ancora presente, potresti essere il primo :)</div><br>")
                                  else{
                                    var items = xmlMessage.getElementsByTagName('comment')
                                    for (var i = 0 ; i < items.length ; i++) {
                                      var item = items[i]
                                      insert += "<div class=\"comm_container\"><span class=\"comm_avatar_cont\">"
                                      if(!item.getElementsByTagName("avatar")[0].firstChild) var avatar="default-avatar.gif"
                                      else var avatar=item.getElementsByTagName("avatar")[0].firstChild.nodeValue
                                      insert += "<img src=\"avatars/"+avatar+"\" class=\"comm_avatar\">"
                                      insert += "</span>"
                                      insert += "<span class=\"comm_text\">"
                                        insert += "<strong>"
                                        insert += "<a href='#utente/"+item.getElementsByTagName("nome")[0].firstChild.nodeValue+"' class='comm_text'>"
                                        insert += item.getElementsByTagName("nome")[0].firstChild.nodeValue+"</a>"
                                        insert += "</strong> "
                                        insert += "<span>"+substituteEmoticons(item.getElementsByTagName("testo")[0].firstChild.nodeValue)+"</span>"
                                        insert += "<span class=\"comm_data\">"+item.getElementsByTagName("data")[0].firstChild.nodeValue+"</span>"
                                      insert += "</span>"
                                      insert += "</div>"
                                    }
                                  }
                                  if(Get_Cookie("sitoUser")&&Get_Cookie("sitoPass")){
                                    insert += "<br><div class=\"small\">Lascia un commento, una opinione o una recensione sulla serie, sar&agrave; visibile su tutte le release di questa serie!<br>Utente "+Get_Cookie("sitoUser")+"<div>"
                                    + "<div>"
                                      + "<textarea id=\"commentArea"+idRel+"\" class=\"input\" rows=\"10\" cols=\"55\"></textarea>"
                                      + "<div id=\"faccine-tooltip\" class=\"emoticons-tooltip\">Puoi anche inserire delle emoticons! Ecco i caratteri per farle comparire:<br>"
                                      + "<div style=\"word-spacing: 10px; padding-bottom: 1px; font-size: 1.1em;\">"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">:o </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">>.< </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">:D </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">:/ </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">:&deg; </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">-_- </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">XD </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">:O </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">:( </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">:) </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">^^ </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">:P </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">:p </a>"
                                        + "<a href=\"#\" onclick=\"addText($('commentArea"+idRel+"'),this); return false;\">;) </a>"
                                        + "</div>"
                                      + "<a href='#' onclick='emoticonsAjaxRequest(); return false;' class='link'>Scegli il set di emoticons</a><br>"
                                      + "</div>"
                                    + "</div>"
                                    + "<div><input type=\"submit\" value=\"Invia\" onclick=\"insertComment("+Get_Cookie("sitoUserId")+","+idSerie+",'commentArea"+idRel+"')\"></div>"
                                    insert += "<div id=\"commentArea"+idRel+"monitor\"></div>"
                                    insert += "<div><img src=\"images/icon_hide.gif\" style=\"margin-left: 520px; cursor: pointer;\" onclick=\"Effect.ScrollTo($('"+idRel+"')); hideComments('"+idBox+"','"+idRel+"')\" title=\"Nascondi commenti\"></div>"
                                  }
                                  else{
                                    insert += substituteEmoticons("<div>Per scrivere un commento devi essere registrato :)<br><b><a href=\"javascript:registrazione()\" class=\"comm_text\">Registrati subito e scopri tutte le nuove funzionalit&agrave;!</a></b></div><br>")
                                  }
                                container.innerHTML=insert
                                putRelImages(idRel, idSerie, idGruppo);
                              },
                              onFailure: function(transport) { container.hide(); setTimeout("showComments("+idRel+", "+idSerie+", "+idBox+")",3000)}
                    });
      }
      
      function putRelImages(idRel, idSerie, idGruppo){
        var out="";
        new Ajax.Request("upload_file.php", {
                method:       'post',
                parameters:   'serie='+idSerie+'&gruppo='+idGruppo+'&action=get&img=true', 
                asynchronous: true, 
                onComplete:   function(transport){
                                if(transport.responseText!="empty"){
                                  var imgs = transport.responseText.split(",")
                                  for(var i=0; i<imgs.length; i++){
                                      if(imgs[i]=="") continue;
                                      out += "<a href=\"images/serie_gruppi/"+imgs[i]+"\" rel=\"lightbox["+idSerie+"]\" title=\"Usare le frecce o il mouse per visualizzare la prossima immagine\"><img src=\"images/serie_gruppi/"+imgs[i]+"\" class=\"rel-images\" style=\"height: 40px; border: none\">"
                                  }
                                  $('serieImages'+idSerie).hide()
                                  $('serieImages'+idSerie).innerHTML=out;
                                  $('serieImages'+idSerie).appear()
                                }
                },
                onFailure: function(transport) { $('serieImages'+idSerie).hide(); setTimeout("putRelImages("+idRel+", "+idSerie+", "+idGruppo+")",3000)}
            });
      }
      
      function addText(textarea,a) {
        var newtext = textarea.value;
        aText = a.innerHTML
        aText = aText.replace("&gt;.&lt;",">.<")
        textarea.value = newtext +" "+ aText;
        scrollElementToEnd(textarea)
        textarea.focus()
      }
      function scrollElementToEnd(element) {
        if (typeof element.scrollTop != 'undefined' && typeof element.scrollHeight != 'undefined') {
            element.scrollTop = element.scrollHeight;
          }
      }

      function insertComment(idUtente, idSerie, idTextArea){
        var testo = $(idTextArea).value
        testo = trim(testo," ")
        if(testo==""||testo==null){ alert("Non hai scritto nessun commento."); return false; }
        testo = testo.replace(/\&/g,"'e-")
        testo = testo.replace(/\?/g,encodeURIComponent("?"))
        testo = testo.replace(/\"/g,"''")
        testo = testo.replace(/<a /g,"<a class=''comm_text'' ")
        while(testo.indexOf("\n")!=-1){
          testo = testo.replace("\n","<br>")
        }
        var dati = { idUtente: ""+idUtente+"", idSerie: ""+idSerie+"", testo: ""+testo+"" };
        new Ajax.Request("manageComments.php", {method:  'post', parameters:   'action=put&data='+Object.toJSON(dati), asynchronous: true, onComplete:   function(transport){
            if(transport.responseText=="true"){
              $(""+idTextArea+"monitor").style.color="green"
              $(""+idTextArea+"monitor").innerHTML="Inserimento avvenuto con successo. Grazie per l'intervento!"
              refreshComments(myDati.rel, myDati.serie, myDati.box)
            }
            else{
              $(""+idTextArea+"monitor").style.color="red"
              $(""+idTextArea+"monitor").innerHTML=substituteEmoticons("Spiacente, qualcosa non &egrave; andato a buon fine con l'inserimento :/ Riprova per favore...")
            }
                          },
                          onFailure: function(transport) { setTimeout("insertComment("+idUtente+", "+idSerie+", "+idTextArea+")",3000)}
        });
      }
      function refreshComments(idRel, idSerie, idBox){
        putComments(idRel, idSerie, idBox,$(idBox+'comments'+idRel).firstChild);
      }
      
      function hideComments(idBox,idRel){
        //$(idBox+'comments'+idRel).hide()
        $(""+idBox+"comments"+idRel+"").parentNode.removeChild($(""+idBox+"comments"+idRel+""))
      }
      
      function substituteEmoticons(text){
        var emo_path= "images/emoticons/"+EMOTICON_STYLE+"/"
        var style= "style=\"width: "+EMOTICON_DIM+"; vertical-align: bottom\""
        text = text.replace(/\:o/g,"<img src=\""+emo_path+"amazing.png\" title=\":o\" "+style+">")
        text = text.replace(/\>\.\</g,"<img src=\""+emo_path+"angry.png\" title=\">.<\" "+style+">")
        text = text.replace(/\:D/g,"<img src=\""+emo_path+"biggrin.png\" title=\":D\" "+style+">")
        text = text.replace(/\:\//g,"<img src=\""+emo_path+"confused.png\" title=\":/\" "+style+">")
        text = text.replace(/\:\&deg\;/g,"<img src=\""+emo_path+"cry.png\" title=\":&deg;\" "+style+">")
        text = text.replace(/\-\_\-/g,"<img src=\""+emo_path+"foot_in_mouth.png\" title=\"-_-\" "+style+">")
        text = text.replace(/XD/g,"<img src=\""+emo_path+"mdr.png\" title=\"XD\" "+style+">")
        text = text.replace(/\:O/g,"<img src=\""+emo_path+"Oh.png\" title=\":O\" "+style+">")
        text = text.replace(/\:\(/g,"<img src=\""+emo_path+"sad.png\" title=\":(\" "+style+">")
        text = text.replace(/\:\)/g,"<img src=\""+emo_path+"smile.png\" title=\":)\" "+style+">")
        text = text.replace(/\^\^/g,"<img src=\""+emo_path+"smile.png\" title=\":)\" "+style+">")
        text = text.replace(/\:P/g,"<img src=\""+emo_path+"tongue.png\" title=\":P\" "+style+">")
        text = text.replace(/\:p/g,"<img src=\""+emo_path+"tongue.png\" title=\":p\" "+style+">")
        text = text.replace(/\;\)/g,"<img src=\""+emo_path+"wink.png\" title=\";)\"  "+style+">")
        return text;
      }
      
      var bgColors =  new Array ("#FF6633","#28b528","#821dea","#edeca1")
      var dataColors =  new Array ("white","white","white","black")
      var bgcCounter=0;
      function insertLastComments(){
        //$('lastCommentsDiv').show();
        new Ajax.Request("manageComments.php", {
            method:       'post',
            parameters:   'action=last', 
            asynchronous: true, 
            onComplete:   function(transport){
                              var xmlMessage = transport.responseText;
                              if(xmlMessage!="empty"){
                                var xmlDoc;
                                if(BrowserDetect.browser=="Explorer") //Internet Explorer
                                {
                                  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                                  xmlDoc.async="false";
                                  xmlDoc.loadXML(xmlMessage);
                                }
                                else //Firefox, Mozilla, Opera, etc.
                                {
                                  parser=new DOMParser();
                                  xmlDoc=parser.parseFromString(xmlMessage,"text/xml");
                                }
                                xmlMessage=xmlDoc
                              }
                              insert = "Ultimi interventi"
                              if(xmlMessage+""=="empty"){ insert += "<div><p>Nessun intervento</p></div>"; }
                              else{
                                if (BrowserDetect.browser!="Explorer"){
                                  new Effect.Morph('lastCommentsDiv', {
                                    style: 'background:'+bgColors[bgcCounter], // CSS Properties
                                    duration: 2.0 // Core Effect properties
                                  });
                                }
                                else{ $('lastCommentsDiv').style.backgroundColor= bgColors[bgcCounter] }
                                var items = xmlMessage.getElementsByTagName('comment')
                                for (var i = 0 ; i < items.length ; i++) {
                                  var item = items[i]
                                  insert += "<div class=\"comm_container\" style=\"margin-left: 5px; margin-right: 5px;border: none; padding: 1px;\">"
                                  /*insert += "<span class=\"comm_avatar_cont\">"
                                    insert += "<img src=\"avatars/"+item.getElementsByTagName("avatar")[0].firstChild.nodeValue+"\" class=\"comm_avatar\">"
                                  insert += "</span>"*/
                                  insert += "<span class=\"comm_data\" style=\"display: inline; color: black;\" id=\"comm-data\">"+item.getElementsByTagName("data")[0].firstChild.nodeValue+"</span>"
                                  insert += "<span class=\"comm_text\" style=\"display: inline; margin-left: 5px;\">"
                                    insert += "<strong>"
                                    insert += "<a href='#utente/"+item.getElementsByTagName("nome")[0].firstChild.nodeValue+"' class='comm_text'>"
                                    insert += item.getElementsByTagName("nome")[0].firstChild.nodeValue+"</a>"
                                    insert += "</strong> "
                                    var raccordo=''
                                    var azione = ''
                                    if(item.getElementsByTagName("intervento")[0].attributes.getNamedItem("tipo").value=='commentoSerie'){
                                      raccordo = 'per la serie'
                                      azione = 'serie'
                                    }
                                    else if(item.getElementsByTagName("intervento")[0].attributes.getNamedItem("tipo").value=='commentoPostBlog'){
                                      raccordo = 'per il post'
                                      azione = 'blog'
                                    }
                                    else if(item.getElementsByTagName("intervento")[0].attributes.getNamedItem("tipo").value=='recensione'){
                                      raccordo = 'ha recensito'
                                      azione = 'serie'
                                    }
                                    var idCommento=''
                                    if(item.getElementsByTagName("intervento")[0].attributes.getNamedItem("idCommento").value!='')
                                      idCommento='/'+item.getElementsByTagName("intervento")[0].attributes.getNamedItem("idCommento").value
                                    insert += raccordo+" <span>"
                                      insert += "<a href='#"+azione+"/"+item.getElementsByTagName("intervento")[0].attributes.getNamedItem("id").value+""+idCommento+"' class='comm_text'>"
                                      insert += item.getElementsByTagName("intervento")[0].firstChild.nodeValue
                                      insert += "</a>"
                                    insert += "</span>"
                                  insert += "</span>"
                                  insert += "</div>"
                                }
                                if(bgcCounter==bgColors.length-1) bgcCounter=0;
                                else bgcCounter++;
                              }
                            $('lastCommentsDiv').innerHTML=insert
                          },
                          onFailure: function(transport) { setTimeout("insertLastComments()",3000)}
                });
      }
/*********************************************************************
** FINE funzioni commenti
*********************************************************************/

/*********************************************************************
** INIZIO funzioni commenti BLOG
*********************************************************************/
      
      // Dati che servono per richiamare showComments dopo l'inserimento
      var showBlogCommData = Class.create();
          showBlogCommData.prototype = {
            initialize: function(post, box) {
              this.post = post;
              this.box = box;
            }
      };
      
      function showBlogComments(idPost, idBox){
          if($('comments'+idBox)){ return;}
          myDati = new showBlogCommData(idPost,idBox)
          var xmlhttp = false;
          var divnew=document.createElement("div");
          divnew.setAttribute('align','center');
          divnew.setAttribute('id','comments'+idBox);
          divnew.innerHTML="<img src='/images/loading.gif'>";
          if(BrowserDetect.browser!="Explorer") {divnew.style.display="none"}
          divnew.style.padding="5px"
          if(BrowserDetect.browser!="Explorer"){ divnew.appear() }
          $("post"+idPost+"").insert({ after: divnew });

          putBlogComments(idPost,idBox,divnew);
      }
      
      function putBlogComments(idPost,idBox,container){
        var insert = ""
            new Ajax.Request("blog.php", {
                method:       'post',
                parameters:   'action=getComments&idPost='+idPost,
                asynchronous: true, 
                onComplete:   function(transport){
                                  if(transport.responseText=="empty"){
                                    insert += substituteEmoticons("<div>Nessun intervento ancora presente, potresti essere il primo :)</div><br>")
                                  }
                                  else{
                                    var xmlMessage = transport.responseText;
                                    var xmlDoc;
                                    if(BrowserDetect.browser=="Explorer"){
                                      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                                      xmlDoc.async="false";
                                      xmlDoc.loadXML(xmlMessage);
                                    }
                                    else{
                                      parser=new DOMParser();
                                      xmlDoc=parser.parseFromString(xmlMessage,"text/xml");
                                    }
                                    
                                    xmlMessage=xmlDoc
                                    insert += "<div><img src=\"images/icon_hide.gif\" style=\"margin-left: 520px; cursor: pointer;\" onclick=\"hideBlogComments('"+idBox+"','comments"+idPost+"')\" title=\"Nascondi commenti\"></div>"
                                    insert += "<h2 style=\"border-top: 1px dashed #D2DADA; border-bottom: 1px dashed #D2DADA; padding-bottom: 5px\">Commenti</h2>"
                                      var items = xmlMessage.getElementsByTagName('comment')
                                      for (var i = 0 ; i < items.length ; i++) {
                                        var item = items[i]
                                        insert += "<div class=\"comm_container\" id=\"blogComment"+item.attributes.getNamedItem("id").value+"\"><span class=\"comm_avatar_cont\">"
                                        if(!item.getElementsByTagName("avatar")[0].firstChild) var avatar="default-avatar.gif"
                                        else var avatar=item.getElementsByTagName("avatar")[0].firstChild.nodeValue
                                        insert += "<img src=\"avatars/"+avatar+"\" class=\"comm_avatar\">"
                                        insert += "</span>"
                                        insert += "<span class=\"comm_text\">"
                                          insert += "<strong>"
                                          insert += "<a href='#utente/"+item.getElementsByTagName("nome")[0].firstChild.nodeValue+"' class='comm_text'>"
                                          insert += item.getElementsByTagName("nome")[0].firstChild.nodeValue+"</a>"
                                          insert += "</strong> "
                                          insert += "<span>"+substituteEmoticons(item.getElementsByTagName("testo")[0].firstChild.nodeValue)+"</span>"
                                          insert += "<span class=\"comm_data\">"+item.getElementsByTagName("data")[0].firstChild.nodeValue+"</span>"
                                        insert += "</span>"
                                        insert += "</div>"
                                      }
                                  }
                                    if(Get_Cookie("sitoUser")&&Get_Cookie("sitoPass")){
                                      insert += "<br><div class=\"small\">Utente "+Get_Cookie("sitoUser")+"<div>"
                                      + "<div>"
                                        + "<textarea id=\"commentArea"+idPost+"\" class=\"input\" rows=\"10\" cols=\"55\"></textarea>"
                                        + "<div id=\"faccine-tooltip\" class=\"emoticons-tooltip\">Puoi anche inserire delle emoticons! Ecco i caratteri per farle comparire:<br>"
                                        + "<div style=\"word-spacing: 10px; padding-bottom: 1px; font-size: 1.1em;\">"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">:o </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">>.< </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">:D </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">:/ </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">:&deg; </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">-_- </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">XD </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">:O </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">:( </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">:) </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">^^ </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">:P </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">:p </a>"
                                          + "<a href=\"#\" onclick=\"addText($('commentArea"+idPost+"'),this); return false;\">;) </a>"
                                          + "</div>"
                                        + "<a href='#' onclick='emoticonsAjaxRequest(); return false;' class='link'>Scegli il set di emoticons</a><br>"
                                        + "</div>"
                                      + "</div>"
                                      + "<div><input type=\"submit\" value=\"Invia\" onclick=\"insertBlogComment("+Get_Cookie("sitoUserId")+","+idPost+",'commentArea"+idPost+"')\"></div>"
                                      insert += "<div id=\"commentArea"+idPost+"monitor\"></div>"
                                      insert += "<div><img src=\"images/icon_hide.gif\" style=\"margin-left: 520px; cursor: pointer;\" onclick=\"hideBlogComments('"+idBox+"','comments"+idPost+"')\" title=\"Nascondi commenti\"></div>"
                                    }
                                    else{
                                      insert += substituteEmoticons("<div>Per scrivere un commento devi essere registrato :)<br><b><a href=\"javascript:Effect.ScrollTo('cont'); registrazione()\" class=\"comm_text\">Registrati subito e scopri tutte le nuove funzionalit&agrave;!</a></b></div><br>")
                                    }
                                  
                                container.innerHTML=insert
                              },
                              onFailure: function(transport) { container.hide(); setTimeout("showBlogComments("+idPost+", "+idBox+")",3000)}
                    });
      }

      function insertBlogComment(idUtente, idPost, idTextArea){
        var testo = $(idTextArea).value
        testo = trim(testo," ")
        if(testo==""||testo==null){ alert("Non hai scritto nessun commento."); return false; }
        testo = testo.replace(/\&/g,"")
        testo = testo.replace(/\?/g,encodeURIComponent("?"))
        testo = testo.replace(/\"/g,"''")
        while(testo.indexOf("\n")!=-1){
          testo = testo.replace("\n","<br>")
        }
        var dati = { idUtente: ""+idUtente+"", idPost: ""+idPost+"", testo: ""+testo+"" };
        new Ajax.Request("blog.php", {method:  'post', parameters:   'action=put&data='+Object.toJSON(dati), asynchronous: true, onComplete:   function(transport){
            if(transport.responseText=="true"){
              $(""+idTextArea+"monitor").style.color="green"
              $(""+idTextArea+"monitor").innerHTML="Inserimento avvenuto con successo. Grazie per l'intervento!"
              refreshBlogComments(myDati.post, myDati.box)
            }
            else{
              $(""+idTextArea+"monitor").style.color="red"
              $(""+idTextArea+"monitor").innerHTML=substituteEmoticons("Spiacente, qualcosa non &egrave; andato a buon fine con l'inserimento :/ Riprova per favore...")
            }
                          },
                          onFailure: function(transport) { setTimeout("insertBlogComment("+idUtente+", "+idPost+", "+idTextArea+")",3000)}
        });
      }
      function refreshBlogComments(idPost, idBox){
        putBlogComments(idPost,idBox,$('comments'+idBox))
      }
      
      function hideBlogComments(idBox,idPost){
        //$(idBox+'comments'+idRel).hide()
        $("comments"+idBox+"").parentNode.removeChild($("comments"+idBox+""))
      }

/*********************************************************************
** FINE funzioni commenti blog
*********************************************************************/
      function insertBrowserWarning(){
        if (BrowserDetect.browser=="Explorer"){
          var htmlContent = "<p>Per la consultazione di SubITAnime si consiglia il potente browser open source <img style=\"vertical-align: middle;\" alt=\"Firefox\" title=\"Mozilla Firefox\" src=\"images/browser-firefox.png\"/> <a href=\"http://www.mozilla-europe.org/it/firefox/\">Firefox</a></p>"
          var txt = document.createElement("div");
          txt.innerHTML = htmlContent
          $('newsDiv').insert({top: txt});
        }
      }

      function hideInfo(id,link,serie){
          $(""+id+"").remove();
          id = id.replace("torrentinfo","")
          var imma=document.getElementById('plus'+id);
	  	    imma.setAttribute('src',"images/button_plus.gif");
	  	    var ahref=document.getElementById('link'+id);
	  	    ahref.setAttribute('href',"javascript:info("+id+",\""+encodeURI(link)+"\",\""+serie+"\")");
        }
        // informazioni sui singoli torrent
	  	function info(id,link,serie){
	  	    var imma=document.getElementById('plus'+id);
	  	    imma.setAttribute('src',"images/button_minus.jpeg");
	  	    var ahref=document.getElementById('link'+id);
	  	    ahref.setAttribute('href',"javascript:hideInfo('torrentinfo"+id+"',\""+encodeURI(link)+"\",\""+serie+"\")");
	  	    var torrentdiv=document.getElementById('boxtorrent');
	        var table=torrentdiv.childNodes[3];
          if(BrowserDetect.browser == "Explorer"){ var table=torrentdiv.childNodes[2]; }
	        var tbody=table.childNodes[1];
	  	    var xmlhttp = false;
	  	    var trnew=document.createElement("tr");
            trnew.setAttribute('align','center');
            trnew.setAttribute('id','torrentinfo'+id);
            var td=document.createElement("td");
            td.setAttribute("colspan","6");
            //td.style.backgroundImage = "url('images/bg_tartan2.png')";
            td.innerHTML="<img src='/images/loading.gif'>";
            if(BrowserDetect.browser != "Explorer"){ trnew.style.display="none" }
            td.style.padding="5px"
            trnew.appendChild(td);
            if(BrowserDetect.browser != "Explorer"){ trnew.appear() }
            //tbody.insertAfter(trnew,x[count]);
            $(""+id+"").insert({ after: trnew });
          
          var aniDBlink = "<a target=\"_blank\" href=\"http://anidb.net/perl-bin/animedb.pl?show=animelist&adb.search="+encodeURI(serie)+"&do.search=search\">Scheda della serie su AniDB</a><br><br>"                
	      	req = getXHR();
	      	// Call the Object:
            req.open("POST", "torrentstats.php", true);

            // When return:
            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    if(req.responseText.indexOf("Warning:")!=-1)
                        td.innerHTML=aniDBlink+"Impossibile ricavare informazioni sul torrent.";
                    else if(req.responseText.indexOf("Error")!=-1)
                        td.innerHTML=aniDBlink+"Impossibile ricavare informazioni sul torrent.";
                    else{
                        campi=req.responseText.split("+");
                        testo="Hash: "+campi[0]+"<br>Announce del tracker: "+campi[1]+"<br>Data di creazione: "+campi[2]+"<br><b>Files</b><br>";
                        i=3;
                        while(i<campi.length-1){
                            testo=testo+campi[i]+" "+campi[i+1]+"<br>";
                            i=i+2;
                        }
                        td.innerHTML=aniDBlink+testo;
                    }
                }
            }
            req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req.send("url="+link);
	  	}
      
      function hideShowForumDiv(el){
        if($("forumDiv").style.display=='none'){
          Effect.BlindDown('forumDiv');
          el.innerHTML="Nascondi ultimi post"
        }
        else{
          el.innerHTML="Mostra ultimi post"
          //$("forumDiv").hide()
          Effect.BlindUp('forumDiv');
        }
      }
        
		function rssForum(n){
			divForum=document.getElementById("forumDiv");
			req = getXHR();
	      		// Call the Object:
            		req.open("POST", "/phpBB2/rss.php", true);

			// When return:
			req.onreadystatechange = function() {
				if (req.readyState == 4) {
				
					 // Response XML parsing
					// primo <title> che non serve
					resp=req.responseText;
					//alert(resp);
          if(resp!="Rate Limit Exceeded."){
            tmp_title=resp.split("<title>");
            tmp_link=resp.split("<link>");
            tmp_author=resp.split("Autore: ");
            $('forumDivControl').innerHTML= "<span><a href=\"#\" onclick=\"hideShowForumDiv(this); return false;\">Nascondi ultimi post</a></span>"
            var myForumText="Ultimi Post del Forum:";
            n=parseInt(n);
              for(i=2;i<n+2;i++){
                tit=tmp_title[i].split("</title>");
                lin=tmp_link[i].split("</link>");
                if(tmp_author[i-1].indexOf("Oggetto:")!= -1)
                  aut=tmp_author[i-1].split("Oggetto: ");
                else
                  aut=tmp_author[i-1].split("Inviato: ");
                  
                var repairedStr = repairHTMLString(aut[0])
                var style = "class='rssLinks'";
                var autore = insertTextIntoString("<a ",style,repairedStr,"after");
                myForumText=myForumText+"<div style='width: 100%'><span style='float: left; width: 80%; text-align: left;'><a "+style+" href='"+lin[0]+"'>"+repairHTMLString(tit[0])+"</a></span><span style='text-align: justify; width: 20%;'>"+autore+"</span></div>";
              }
              divForum.innerHTML=myForumText+"<div style='text-align: left;'>Quanti post vuoi vedere? <select onChange=\"javascript:rssForum(this.options[this.selectedIndex].value);\"><option value=\"\"></option><option value=1>1</option><option value=2>2</option><option value=3>3</option><option value=4>4</option><option value=5>5</option><option value=6>6</option><optionvalue=7>7</option><option value=8>8</option><option value=9>9</option><option value=10>10</option><option value=11>11</option><optionvalue=12>12</option><option value=13>13</option><option value=14>14</option><option value=15>15</option></select><div>";
          }
				}
			}
			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req.send("");
		}
    function rssForumPhpBB3(n){
			divForum=document.getElementById("forumDiv");
      var span = document.createElement("span");
      span.innerHTML = "<a href=\"#\" onclick=\"hideShowForumDiv(this); return false;\">Nascondi ultimi post</a>";
      $('forumDivControl').appendChild(span);
      
      new Ajax.Request("/phpBB3/rss.php", {
            method:  'get', 
            parameters:   'limit='+n, 
            asynchronous: true, 
            onComplete:   function(transport){
                          var json = transport.responseText.substring(0,transport.responseText.length-2)+"]";
                          var obj = json.evalJSON(true);
                          color = ["white","#eaeef7"];
                          var counter = 0;
                          input = "<div style=\"display: table; background-color: #F87217; padding: 5px; color: white; width: 600px\">";
                          input += "<div>Ultimi Post sul Forum</div>";
                          for(var i=0; i<obj.length; i++){
                            input += "<div style=\"display: table-row; background-color: "+color[counter]+"; color: black; padding: 5px; margin-top:2px\" onmouseover=\"this.style.backgroundColor='#444444'\" onmouseout=\"this.style.backgroundColor='"+color[counter]+"'\">";
                            input += "<div style=\"padding: 5px; width: 70%; text-align: left; display: table-cell;\"><a href=\""+obj[i].link+"\" class=\"comm_text\" target=\"_blank\">"+html_entity_decode(obj[i].title)+"</a></div>";
                            input += "<div style=\"padding: 5px; width: 30%; text-align: right; display: table-cell;\"><a href=\""+obj[i].lastPoster.link+"\" target=\"_blank\" class=\"comm_text\">"+obj[i].author+"</a></div>";
                            
                            input += "</div>";
                            if(counter==1)
                              counter=0;
                            else
                              counter++;
                          }
                          input += "</div>";
                          
                          divForum.innerHTML= "<div id=\"contenitore\"><div class=\"css_angoli_grey\" id=\"angolo_superiore_sinistra\"><div class=\"css_angoli_grey\" id=\"angolo_superiore_destra\"></div><div class=\"colore_sfondo_grey\"></div></div><div class=\"contenuto_grey\">  "+input+"       </div><div class=\"css_angoli_grey\" id=\"angolo_inferiore_sinistra\"><div class=\"css_angoli_grey\" id=\"angolo_inferiore_destra\"></div><div class=\"colore_sfondo_grey\"></div></div></div>"
                },
                onFailure: function(transport) {  }
      });
		}
    function html_entity_decode(str)
    {
        try
      {
        var  tarea=document.createElement('textarea');
        tarea.innerHTML = str; return tarea.value;
        tarea.parentNode.removeChild(tarea);
      }
      catch(e)
      {
        //for IE add <div id="htmlconverter" style="display:none;"></div> to the page
        document.getElementById("htmlconverter").innerHTML = '<textarea id="innerConverter">' + str + '</textarea>';
        var content = document.getElementById("innerConverter").value;
        document.getElementById("htmlconverter").innerHTML = "";
        return content;
      }
    }
		
		function repairHTMLString(str) {
			var temp_div = document.createElement('div');
			temp_div.innerHTML = str;
			return temp_div.firstChild.nodeValue;
		}
		
		function insertTextIntoString(reference, text, string, where){
			var firstPart = string.split(reference)[0];
			var secondPart = string.split(reference)[1];
			if(where == "before")
				firstPart += text;
			else if(where == "after"){
				var tmp = text + secondPart;
				secondPart = tmp;
			}
			return firstPart + reference + secondPart;
		}
		
        function showSeedLeech(id,link){
            div=document.getElementById(id);
            content=div.innerHTML.split(" <");
            content=content[0];
            div.innerHTML="<img src='/images/ajax-loader_small.gif'>";
                
	      	req = getXHR();
	      	// Call the Object:
            req.open("POST", "fastscrape.php", true);

            // When return:
            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    if(req.responseText.indexOf("Warning:")!=-1){
                        div.innerHTML="<a href=\"javascript:hideSeedLeech('"+id+"','"+content+"','"+encodeURI(link)+"')\"><img src='images/freccina_alt.png' title='Nascondi' border='0'></a> - -";
                    }
                    else if(req.responseText.indexOf("Error")!=-1){
                        div.innerHTML="<a href=\"javascript:hideSeedLeech('"+id+"','"+content+"','"+encodeURI(link)+"')\"><img src='images/freccina_alt.png' title='Nascondi' border='0'></a> - -";
                    }
                    else{
                        div.innerHTML="<a href=\"javascript:hideSeedLeech('"+id+"','"+content+"','"+encodeURI(link)+"')\"><img src='images/freccina_alt.png' title='Nascondi' border='0'></a> "+req.responseText;
                    }
                }
            }
            req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req.send("url="+link);
        }
        function hideSeedLeech(id,cont,link){
            divi=document.getElementById(id);
            divi.innerHTML=cont+" <a href=\"javascript:showSeedLeech('"+id+"','"+encodeURI(link)+"');\"><img style='align: right' src='images/freccina.png' title='Seeders /Leechers' border=\"0\"></a>";
        
        }
	  	
	  	function request(pageUrl,postVar){
	  	    document.write
	  	    xhr = getXHR();
			xhr.open('POST', pageUrl, false);
			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xhr.send(postVar);
			
			if(xhr.readyState  == 4){
                if(xhr.status  == 200)
				{
								//alert(xhr.responseText);
								if(xhr.responseText=="true"){
				
								}
						}
        
			}
			return xhr.responseText;
		}
	  	
	  	// get css style
	  	function getStyle(oElm, strCssRule){
				var strValue = "";
				if(document.defaultView && document.defaultView.getComputedStyle){
					strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
				}
				else if(oElm.currentStyle){
					strCssRule = strCssRule.replace(/-(w)/g, function (strMatch, p1){
						return p1.toUpperCase();
					});a
					strValue = oElm.currentStyle[strCssRule];
				}
				return strValue;
		}
			
			// minimize window
	  	function hide(str){
	  		if(getStyle(document.getElementById(str), "display")=="none"){
          Effect.SlideDown(str)
	  		}
	  		else{
          Effect.SlideUp(str)
	  		}
	  		/*if(getStyle(document.getElementById(str), "visibility")=="visible"){
	  				document.getElementById(str).style.visibility="hidden";
	  				document.getElementById(str).style.height="0px";
	  		}
	  		else{
	  				document.getElementById(str).style.visibility="visible";
	  				document.getElementById(str).style.height="auto";
	  		}*/
	  	}
	  	function rss(){
	  		document.getElementById('rss').style.visibility = 'visible';
	  		var grayb=document.getElementById('rss');
	  		img1="<table align='center' cellspacing='10' style='border: solid 2px;margin-top: 200px; background-color: white; spacing: 20px'><tr><td><a href='rss.php' target='_blank'><img src='rss_big.png' class='banner'></a></td>";
	  		img2="<td><a href='rss_softsub.php' target='_blank'><img src='rss_big.png' class='banner'></a></td>";
	  		img3="<td><a href='rss_ed2k.php' target='_blank'><img src='rss_big.png' class='banner'></a></td></tr>";
	  		RSStext="<tr><td>RSS Torrent</td><td>RSS SoftSub</td><td>RSS Link Ed2k</td></tr>";
	  		var closeBut="<tr><td colspan='3' style='text-align: center;'><input type='button' onclick='hideRss()' value='Chiudi'></td></tr></table>";
	  		grayb.innerHTML=img1+""+img2+""+img3+""+""+RSStext+""+closeBut;
	  	}
	  	function hideRss(){
	  		document.getElementById('rss').style.visibility = 'hidden';
	  	}
	  	function hideContact(){
	  		document.getElementById('grayBox').style.visibility = 'hidden';
	  	}
	  	function contatti(){
	  		document.getElementById('grayBox').style.visibility = 'visible';
	  		var grayb=document.getElementById('grayBcont');
	  		var blabla="Webmaster mail: webm<a href='http://mailhide.recaptcha.net/d?k=01RSk3Ngx5z9jM0zk30bJ4oA==&amp;c=eIlMibpEDNaXbodK5tM8AYP10yTqafHmbj08pHlI5iM=' onclick='window.open('http://mailhide.recaptcha.net/d?k=01RSk3Ngx5z9jM0zk30bJ4oA==&amp;c=eIlMibpEDNaXbodK5tM8AYP10yTqafHmbj08pHlI5iM=', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;' title='Reveal this e-mail address'>...</a>@subitanime.it</a>";
	  		var infoCap="<br><br>Cliccare sui puntini<br><br>Questo sito utilizza <a href='http://recaptcha.net/' target='_blank'>reCAPTCHA</a><br><br>";
	  		var closeBut="<input type='button' onclick='hideContact()' value='Chiudi'>";
	  		grayb.innerHTML=blabla+infoCap+closeBut;
	  	}
      function searchLocation(){
        var indirizzo=""+document.location+"";
        if(indirizzo.indexOf("#")!=-1)
          indirizzo = indirizzo.split("#")[0]
        window.location=indirizzo+"#cerca/"+encodeURI(document.getElementById("search").value);
      }
	  	function search(data){
	  		var serc=data
        showWait();
        this.complete = 0;
        this.delbox = false;
        new Ajax.Request("generator.php", {method:  'post', parameters:   'serc='+serc+'&id=torrent', asynchronous: true, onComplete:   function(transport){
                                    if(!this.delbox) {this.delbox = true; delBox();}
                            	  		makeBox("Hai cercato "+decodeURI(serc)+" - Torrent",transport.responseText,"boxtorrent");
                                    this.complete++
                                    if(this.complete==3) { onPageVisualization(); addTooltip(); hideWait(); }
                                  },
                                  onFailure: function(transport) { this.complete++; if(this.complete==3) { delBox; setTimeout("search("+data+")",3000) } }
                        });
        new Ajax.Request("generator.php", {method:  'post', parameters:   'serc='+serc+'&id=softsub', asynchronous: true, onComplete:   function(transport){
                                    if(!this.delbox) {this.delbox = true; delBox();}
	  		                            makeBox("Hai cercato "+decodeURI(serc)+" - SoftSub",transport.responseText,"boxsoftsub");
                                    this.complete++
                                    if(this.complete==3) { onPageVisualization(); addTooltip(); hideWait(); }
                                  },
                                  onFailure: function(transport) { this.complete++; if(this.complete==3) { delBox; setTimeout("search("+data+")",3000) } }
                        });
        new Ajax.Request("generator.php", {method:  'post', parameters:   'serc='+serc+'&id=ed2k', asynchronous: true, onComplete:   function(transport){
                                    if(!this.delbox) {this.delbox = true; delBox();}
	  		                            makeBox("Hai cercato "+decodeURI(serc)+" - Ed2k",transport.responseText,"boxed2k");
                                    this.complete++
                                    if(this.complete==3) { onPageVisualization(); addTooltip(); hideWait(); }
                                  },
                                  onFailure: function(transport) { this.complete++; if(this.complete==3) { delBox; setTimeout("search("+data+")",3000) } }
                        });
	  	}
	  	function searchPlugin(str){
	  		delBox();
	  		makeBox("Hai cercato "+str+" - Torrent",request('generator.php','serc='+str+'&id=torrent'),"boxtorrent");
	  		makeBox("Hai cercato "+str+" - SoftSub",request('generator.php','serc='+str+'&id=softsub'),"boxsoftsub");
	  		makeBox("Hai cercato "+str+" - Ed2k",request('generator.php','serc='+str+'&id=ed2k'),"boxed2k");
	  	}
		
		
		/* constant timer ID */
		var timerId;
		/* constant first click on input type text */
		var click = false;
		
		function enableSearch(){
			clearTimeout(timerId);
			var input = document.getElementById("search");
			input.style.background = "white";
			input.style.color = "black";
			if(!click){
				input.value = "";
				click = true;
			}
		}
		
		function disableSearch(){
			click = false;
			var input = document.getElementById("search");
			input.style.background = "#D3D3D3";
			input.style.color = "#778899";
			input.value = "Cerca serie";
		}
		
		function unblurredSearch(){
			timerId = setTimeout('disableSearch()',10000);
		}
		// richiesta inserimento gruppo di fansub
		function checkParams(){
			var gruppo = document.getElementById("ricGruppo");
			var sito = document.getElementById("ricSito");
			var email = document.getElementById("ricEmail");
			var regex = new RegExp("[a-zA-Z0-9_\.]+@[a-zA-Z0-9-]+\.[a-zA-Z]{0,4}");
			var regexResult = regex.exec(email.value);
			if(gruppo.value==""||gruppo.value==null){
				gruppo.focus();
				gruppo.style.borderColor= "red";
				return false
			}
			else if(regexResult != email.value){
				alert("Inserire una mail valida")
				email.focus();
				email.select();
				email.style.borderColor= "red";
				return false
			}
			var result = inviaMail()
			if(result == "mailFalse"){
        $('segnalazione_error').style.color="red"
				$('segnalazione_error').innerHTML="Mail non valida"
				email.focus();
				email.select();
				email.style.borderColor= "red";
				return false
			}
			else if(result!="true"){
        $('segnalazione_error').style.color="red"
				$('segnalazione_error').innerHTML="Il server non &egrave; riuscito a creare un collegamento con la mail del webmaster.<br> Inviare una mail a: webmaster@subitanime.it con tutti i dati.<br> Scusate l'inconveniente.<br>Grazie."
      }
      else if(result=="true"){
        $('segnalazione_error').style.color="green"
				$('segnalazione_error').innerHTML="Grazie, ti verr&agrave;  inviata una mail di conferma di avvenuta registrazione, previa verifica degli admin :)"
        setTimeout("hideRichiesta()",3000)
      }
			return false
		}
		function inviaMail(){
			var gruppo = document.getElementById("ricGruppo").value;
			var sito = document.getElementById("ricSito").value;
			var email = document.getElementById("ricEmail").value;
			var canale = document.getElementById("ricCanale").value;
			var server = document.getElementById("ricServer").value;
			var variabili="email="+encodeURIComponent(email)+"&canale="+canale+"&server="+server+"&gruppo="+gruppo+"&sito="+sito

			var response = request('sendmail.php',variabili)
			return response
		}
		function richiesta(){
			var grayb = document.getElementById("richiesta");
			var content = ""
		      + "<div id=\"ric\" class=\"richiesta\">"
		        + "<div class=\"headerrichiesta\">"
		          + "<div class=\"titlerichiesta\">Richiesta di registrazione gruppo fansub</div>"
		          + "<div id=\"closeButtonDiv\" onclick=\"hideRichiesta()\"></div>"
		        + "</div>"
		        + "<div class=\"containerrichiesta\">"
					  + "<form onSubmit=\"return checkParams();\" action=\"#\" method=\"GET\">"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Nome gruppo:</span>"
					      + "<input type=\"text\" id=\"ricGruppo\" class=\"input\" name=\"gruppo\">"
					      + "<span class=\"monitor\"></span>"
					    + "</div>"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Sito (opzionale):</span>"
					      + "<input type=\"text\" id=\"ricSito\" class=\"input\" name=\"sito\">"
					      + "<span class=\"monitor\"></span>"
					    + "</div>"
						+ "<div class=\"riga\">"
					      + "<span class=\"what\">E-mail:</span>"
					      + "<input type=\"text\" id=\"ricEmail\" class=\"input\" name=\"email\">"
					      + "<span class=\"monitor\">A cui arriver&agrave; la conferma della registrazione.</span>"
					    + "</div>"
						+ "<div class=\"riga\">"
					      + "<span class=\"what\">Canale IRC (opzionale):</span>"
					      + "<input type=\"text\" id=\"ricCanale\" class=\"input\" name=\"canaleirc\">"
					      + "<span class=\"monitor\"></span>"
					    + "</div>"
						+ "<div class=\"riga\">"
					      + "<span class=\"what\">Server IRC (opzionale):</span>"
					      + "<input type=\"text\" id=\"ricServer\" class=\"input\" name=\"serverirc\">"
					      + "<span class=\"monitor\"></span>"
					    + "</div>"
              + "<div class=\"riga\">"
                + "<div id='segnalazione_error' style=\"padding: 3px; text-align: center\"></div>"
					    + "</div>"
					    + "<div class=\"riga\">"
                 + "<div class=\"form-controlls-div\">"
					          + "<input type=\"reset\" value=\"Azzera\">"
					          + "<input type=\"submit\" value=\"Invia\">"
    					    + "</div>"
					    + "</div>"
					  + "</form>"
					+ "</div>";		
	  		grayb.innerHTML=content
        var size = getPageSizeWithScroll()
        new Insertion.After("ric", "<div id=\"maskRichiesta\" class=\"maskrichiesta\" style=\"height: "+size[1]+"px\"></div>");
        $('richiesta').style.visibility="visible"
        $('richiesta').show();
        Effect.Appear('maskRichiesta', { duration: 1.0, to: 0.8 });
        setTimeout("Effect.Appear('ric', { duration: 1.0, to: 0.99 })",500);     

		}
	  	function hideRichiesta(){
        Effect.Fade('ric', { duration: 1.0});
        Effect.Fade('maskRichiesta', { duration: 1.0});
        setTimeout("$('richiesta').hide()",1000)
        setTimeout("$('richiesta').style.visibility='hidden'",1000)
	  	}

/*********************************************************************
** Segnalazione gruppo
*********************************************************************/
		function segnalaGruppo(){
			var grayb = document.getElementById("richiesta");
			var content = ""
		      + "<div id=\"ric\" class=\"richiesta\">"
		        + "<div class=\"headerrichiesta\">"
		          + "<div class=\"titlerichiesta\">Segnala un gruppo di fansub</div>"
		          + "<div id=\"closeButtonDiv\" onclick=\"hideRichiesta()\"></div>"
		        + "</div>"
		        + "<div class=\"containerrichiesta\">"
					  + "<form onSubmit=\"verifyCaptcha(); return false;\" action=\"\" method=\"POST\">"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Nome gruppo:</span>"
					      + "<input type=\"text\" id=\"ricGruppo\" class=\"input\" name=\"gruppo\">"
					      + "<span class=\"monitor\"></span>"
					    + "</div>"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Sito (opzionale):</span>"
					      + "<input type=\"text\" id=\"ricSito\" class=\"input\" name=\"sito\">"
					      + "<span class=\"monitor\"></span>"
					    + "</div>"
						+ "<div class=\"riga\">"
							+ "<div id='recaptcha' style='padding: 3px; margin-left: 154px;margin-right: auto;'></div>"
							+ "<div id='recaptcha_error' style=\"padding: 3px; text-align: center\"></div>"
						+ "</div>"
					    + "<div class=\"riga\">"
                  + "<div class=\"form-controlls-div\">"
					          + "<input type=\"reset\" value=\"Azzera\">"
					          + "<input type=\"submit\" value=\"Invia\">"
    					    + "</div>"
					    + "</div>"
					  + "</form>"
					+ "</div>";
			
	  		grayb.innerHTML=content;
        var size = getPageSizeWithScroll()
        new Insertion.After("ric", "<div id=\"maskRichiesta\" class=\"maskrichiesta\" style=\"height: "+size[1]+"px\"></div>");
			showRecaptcha("recaptcha", "white")
      $('richiesta').style.visibility="visible"
      $('richiesta').show();
      Effect.Appear('maskRichiesta', { duration: 1.0, to: 0.8 });
      setTimeout("Effect.Appear('ric', { duration: 1.0, to: 0.99 })",500); 
		}
		function showRecaptcha(elementId, themeName) {
			Recaptcha.create("6LfG5QQAAAAAAFWil9W4pbO7BGbi0PGKy646874Z", elementId, {
				theme: themeName,
        callback: function() {
          $('recaptcha_instructions_image').innerHTML="Digita le due parole"
          $('recaptcha_response_field').setAttribute("class","input")
        }
			});
		}
    function verifyCaptcha(){
      if($('ricGruppo').value==""){
        $('ricGruppo').focus()
        $('recaptcha_error').style.color="red"
        $('recaptcha_error').innerHTML="Specificare un gruppo per favore."
        return;
      }
      var ajaxRequest = new Ajax.Request("recaptcha_proxy.php", {
			          method:       'post', 
			          parameters:   'privatekey=6LfG5QQAAAAAAHhHveYEoX265af_Gmpyp4V0pF14&remoteip='+IP+'&challenge='+Recaptcha.get_challenge()+'&response='+Recaptcha.get_response(),
			          asynchronous: true,
                onComplete: callbackRecaptcha,
                onFailure: function(transport) { setTimeout("verifyCaptcha()",2000) }
			      });    
    }
    function callbackRecaptcha(transport){
      var response = transport.responseText.split("\n")[0]

      if(response=="true"){
        $('recaptcha_error').innerHTML=""
        if(inviaMailSegnalazioneGruppo()=="true"){
          $('recaptcha_error').style.color="green"
          $('recaptcha_error').innerHTML="Grazie! La tua segnalazione contribuir&agrave; a migliorare il sito!"
          setTimeout("hideRichiesta()",3000)
        }
        else{
          $('recaptcha_error').style.color="red"
          $('recaptcha_error').innerHTML="Ops... si è verificato un errore nell'invio della segnalazione. Riprova pi&ugrave; tardi. Scusa il disguido."
        }
      }
      else{
        $('recaptcha_error').style.color="red"
        $('recaptcha_error').innerHTML="Inserire le parole corrette, grazie :)"
        $('recaptcha_response_field').focus()
      }
    }
    function inviaMailSegnalazioneGruppo(){
			var gruppo = document.getElementById("ricGruppo").value;
			var sito = document.getElementById("ricSito").value;
			var variabili="gruppo="+gruppo+"&sito="+sito
			//alert(variabili)
			var response = request('sendmail.php',variabili)
			return response
		}
/*********************************************************************
** FINE Segnalazione gruppo
*********************************************************************/
var interval;
/*********************************************************************
** Form di registrazione
*********************************************************************/
		function registrazione(){
      Effect.ScrollTo("cont");
			var grayb = document.getElementById("richiesta");
			var content = ""
		      + "<div id=\"ric\" class=\"richiesta\">"
		        + "<div class=\"headerrichiesta\">"
		          + "<div class=\"titlerichiesta\">Registrazione utente su SubITAnime</div>"
		          + "<div id=\"closeButtonDiv\" onclick=\"clearInterval(interval); hideRichiesta()\"></div>"
		        + "</div>"
		        + "<div class=\"containerrichiesta\">"
					  + "<form onSubmit=\"verificaDati(); return false;\" action=\"\" method=\"POST\" id=\"formRegistrazione\">"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Nickname:</span>"
					      + "<input type=\"text\" id=\"regUser\" class=\"input\" name=\"un_Nickname\">"
					      + "<span class=\"monitor\" id=\"userMonitor\"></span>"
					    + "</div>"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Password:</span>"
					      + "<input type=\"password\" id=\"regPassword\" class=\"input\" name=\"la_Password\" onkeyup=\"checkPasswordLevel()\">"
					      + "<span class=\"monitor\" id=\"passMonitor\"></span>"
					    + "</div>"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Conferma Password:</span>"
					      + "<input type=\"password\" id=\"regConfPassword\" class=\"input\" name=\"la_Conferma_della_Password\">"
					      + "<span class=\"monitor\" id=\"confPassMonitor\"></span>"
					    + "</div>"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Email:</span>"
					      + "<input type=\"text\" id=\"regMail\" class=\"input\" name=\"l\'_Email\">"
					      + "<span class=\"monitor\" id=\"emailMonitor\"></span>"
					    + "</div>"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Conferma Email:</span>"
					      + "<input type=\"text\" id=\"regConfMail\" class=\"input\" name=\"la_Conferma_Email\">"
					      + "<span class=\"monitor\" id=\"confEmailMonitor\"></span>"
					    + "</div>"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Sesso:</span>"
					      + "<select id=\"regSesso\" class=\"input\" name=\"il_sesso\">"
  					      + "<option>--</option>"
  					      + "<option>Maschio</otpion>"
  					      + "<option>Femmina</otpion>"
					      + "</select>"
					      + "<span class=\"monitor\"></span>"
					    + "</div>"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\">Anno di nascita:</span>"
					      + "<select id=\"regAnno\" class=\"input\" name=\"l\'_anno_di_nascita\">"
  					      + "<option>--</option>"
                  + OPTIONS
					      + "</select>"
					      + "<span class=\"monitor\"></span>"
					    + "</div>"
						+ "<div class=\"riga\">"
							+ "<div id='recaptcha' style='padding: 3px; margin-left: 154px;margin-right: auto;'></div>"
							+ "<div id='recaptcha_error' style=\"padding: 3px; text-align: center\"></div>"
						+ "</div>"
            + "<div class=\"riga\" style=\"text-align: center\">"
                + "<span class=\"what\"></span>"
                + "<label for=\"regPrivacy\">Accettazione Privacy e Trattamento dei Dati Sensibili</label>"
                  + "<textarea class=\"small\" cols=\"60\" rows=\"5\" id=\"regPrivacy\">"
                  + "In base a quanto previsto dalla legge 675/96 sulla tutela della privacy, la informiamo che i dati da Lei fornitici saranno sottoposti a trattamento secondo le norme vigenti.\n"
                  + "Il trattamento per i quali le chiediamo autorizzazione &egrave;:\n"
                  + "- Archiviazione degli stessi nel database\n"
                  + "- Consultazione per il ricavo di informazioni statistiche\n"
                  + "- Condivisione di alcuni dati personali da Lei forniti (unicamente il Vostro sesso) e dei dati di utilizzo del portale SubITAnime, con altri utenti del sito.\n"
                  + "\n"
                  + "Il titolare del trattamento dei dati, ai sensi D.lgs. 196/2003 &egrave; Luca Restagno.\n"
                  + "I dati saranno conservati presso il server di SubITAnime, per il tempo prescritto dalle norme di legge.\n"
                  + "Il trattamento dei dati forniti, o altrimenti acquisiti nell'ambito dell' attivit&agrave;, potr&agrave; essere effettuato anche da soggetti facenti parte dello staff di SubITAnime a cui sia riconosciuta la facolt&agrave; di accedere ai Vostri dati personali da norme di legge o di normative secondarie e/o comunitarie.\n"
                  + "In qualsiasi momento si potr&agrave; richiedere la modifica o la cancellazione dei suddetti dati. Vi informiamo, inoltre, che potrete consultare, modificare, opporVi o far cancellare i Vostri dati o comunque esercitare tutti i diritti che Vi sono riconosciuti ai sensi dell'art. 7 del Codice, inviando una e-mail a questo indirizzo webmaster@subitanime.it\n"
                  + "Per consultare il testo completo del Codice in materia di protezione dei dati personali, visitate il sito ufficiale dell'Autorit&agrave; Garante www.garanteprivacy.it"
                  + "</textarea><br>"
                  + "<p>Accetto <input type=\"radio\" value=\"1\" name=\"consenso\"/>  Non accetto<input type=\"radio\" value=\"0\" name=\"consenso\"/></p>"
                + "<span class=\"monitor\" style=\"font-size: 1em\" id=\"finalMonitor\"></span>"
              + "</div>"
					    + "<div class=\"riga\">"
                  + "<div class=\"form-controlls-div\">"
					          + "<input type=\"reset\" value=\"Azzera\">"
					          + "<input type=\"submit\" value=\"Invia\">"
    					    + "</div>"
					    + "</div>"
					  + "</form>"
					+ "</div>";
	  		grayb.innerHTML=content;
        var size = getPageSizeWithScroll()
        new Insertion.After("ric", "<div id=\"maskRichiesta\" class=\"maskrichiesta\" style=\"height: "+size[1]+"px\"></div>");
			showRecaptcha("recaptcha", "white")
      $('richiesta').style.visibility="visible"
      $('richiesta').show();
      Effect.Appear('maskRichiesta', { duration: 1.0, to: 0.8 });
      setTimeout("Effect.Appear('ric', { duration: 1.0, to: 0.99 })",500); 
      new Ajax.Autocompleter("regUser", "userMonitor", "autocomplete.php", {
        paramName : 'nick',
        frequency : 0.1
      });
      interval=setInterval("$('userMonitor').show()",100)
		}

		function showRecaptcha(elementId, themeName) {
			Recaptcha.create("6LfG5QQAAAAAAFWil9W4pbO7BGbi0PGKy646874Z", elementId, {
				theme: themeName,
        callback: function() {
          $('recaptcha_instructions_image').innerHTML="Digita le due parole"
          $('recaptcha_response_field').setAttribute("class","input")
        }
			});
		}

    function checkPasswordLevel() {
      var strength = $('passMonitor');
      var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
      var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
      var enoughRegex = new RegExp("(?=.{6,}).*", "g");
      var pwd = $('regPassword')
      if (pwd.value.length<6 && pwd.value.length>0) {
        strength.innerHTML = 'Livello di sicurezza: <span style="color:red; font-weight: bold">Basso</span>';
      } else if (false == enoughRegex.test(pwd.value)) {
        strength.innerHTML = '';
      } else if (strongRegex.test(pwd.value)) {
        strength.innerHTML = 'Livello di sicurezza: <span style="color:green; font-weight: bold">Alto</span>';
      } else if (mediumRegex.test(pwd.value)) {
        strength.innerHTML = 'Livello di sicurezza: <span style="color:orange; font-weight: bold">Medio</span>';
      } else {
        strength.innerHTML = 'Livello di sicurezza: <span style="color:red; font-weight: bold">Basso</span>';
      }
    }
    function verificaDati(){
      var forms = $('formRegistrazione')
      for(var i=0; i < forms.elements.length; i++){
        var t= forms.elements[i].type
        if(t=="text" || t=="password"){
          if(forms.elements[i].value==""){
            forms.elements[i].focus()
            $('recaptcha_error').style.color="red"
            if(forms.elements[i].name=="recaptcha_response_field")
              var text="le parole di conferma"
            else
              var text = forms.elements[i].name.replace(/_/g," ")
            $('recaptcha_error').innerHTML="Specificare "+ text +" per favore."
            return;
          }
        }
        else if(t=="select-one"){
          var selezione=forms.elements[i].selectedIndex
          if(forms.elements[i].options[selezione].value=="--"){
            forms.elements[i].focus()
            $('recaptcha_error').style.color="red"
            var text = forms.elements[i].name.replace(/_/g," ")
            $('recaptcha_error').innerHTML="Specificare "+ text +" per favore."
            return;
          }
        }
      }
      if($('regPassword').value!=$('regConfPassword').value) {  
        $('regPassword').focus()
        $('recaptcha_error').style.color="red"
        $('recaptcha_error').innerHTML="Le due password non coindicono."
        return;
      }
      // controllo corretta digitazione della mail
      var email = $('regMail');
			var regex = new RegExp("[a-zA-Z0-9_\.]+@[a-zA-Z0-9-]+\.[a-zA-Z]{0,4}");
			var regexResult = regex.exec(email.value);
      if(regexResult!=email.value){
        $('regMail').focus()
        $('recaptcha_error').style.color="red"
        $('recaptcha_error').innerHTML="Inserire una email valida"
        return
      }
      if($('regMail').value!=$('regConfMail').value) {  
        $('regMail').focus()
        $('recaptcha_error').style.color="red"
        $('recaptcha_error').innerHTML="I due indirizzi Email non coindicono."
        return;
      }
      // controllo utente esiste già
      if($('userMonitor').innerHTML.indexOf("L'utente")!=-1 && $('userMonitor').innerHTML.indexOf("non")!=-1 && $('userMonitor').innerHTML.indexOf("disponibile")!=-1 ){
        $('regUser').focus()
        $('recaptcha_error').style.color="red"
        $('recaptcha_error').innerHTML="L'utente digitato &egrave; gi&agrave; stato utilizzato. Sceglierne un altro per favore."
        return;
      }
      // controllo accettazione privacy
      var valore="";
      for (i=0; i<$('formRegistrazione').consenso.length; i++){
        if ($('formRegistrazione').consenso[i].checked == true)
        valore = $('formRegistrazione').consenso[i].value
      }
      if(valore==""||valore==0){
        $('recaptcha_error').style.color="red"
        $('recaptcha_error').innerHTML="Per registrarti devi accettare le condizioni di Privacy e Trattamento dei Dati Sensibili."
        return
      }
      var ajaxRequest = new Ajax.Request("recaptcha_proxy.php", {
			          method:       'post', 
			          parameters:   'privatekey=6LfG5QQAAAAAAHhHveYEoX265af_Gmpyp4V0pF14&remoteip='+IP+'&challenge='+Recaptcha.get_challenge()+'&response='+Recaptcha.get_response(),
			          asynchronous: true,
                onComplete: callbackRegRecaptcha,
                onFailure: function(transport) { setTimeout("verificaDati()",2000) }
			      });
    }
    function callbackRegRecaptcha(transport){
      var response = transport.responseText.split("\n")[0]

      if(response=="true"){
        $('recaptcha_error').innerHTML=""
        var result=inviaMailRichiestaRegistrazione()
        if(result=="true"){
          $('finalMonitor').style.color="green"
          $('finalMonitor').innerHTML="Ti &egrave; stata inviata una mail all'indirizzo "+$('regMail').value+", nella quale troverai un link per confermare la registrazione. Grazie!"
          setTimeout("hideRichiesta()",6000)
        }
        else if(result=="mailFalse"){
          Recaptcha.reload();
          $('finalMonitor').style.color="red"
          $('finalMonitor').innerHTML="La mail che hai inserito non è valida."
        }
        else{
          Recaptcha.reload();
          $('finalMonitor').style.color="red"
          $('finalMonitor').innerHTML="Ops... si è verificato un errore. Riprova per favore e scusa il disguido :/"
        }
      }
      else{
        $('recaptcha_error').style.color="red"
        $('recaptcha_error').innerHTML="Inserire le parole corrette, grazie :)"
        $('recaptcha_response_field').focus()
      }
    }
    function inviaMailRichiestaRegistrazione(){
			var user = $('regUser').value
			var pass = $('regPassword').value
      var passMD5 = hex_md5($('regPassword').value)
      var mail = $('regMail').value
      var sesso = $('regSesso').options[$('regSesso').selectedIndex].value
      if(sesso=="Maschio") sesso="m"
      else if(sesso=="Femmina") sesso="f"
      var anno = $('regAnno').options[$('regAnno').selectedIndex].value
			var variabili="nick="+user+"&pass="+pass+"&email="+mail+"&sesso="+sesso+"&anno="+anno+"&criptpass="+passMD5+"&registrazione=r"
			var response = request('sendmail.php',variabili)
      request('subitanimealtervista_proxy.php',variabili)
      //request('forumaddUser.php',variabili)
			return response
		}
/*********************************************************************
** FINE Form di registrazione
*********************************************************************/
		
		function changeACThick(){
			var thick = document.getElementById("v_container")
			thick.style.width = "640px"
			thick.style.clip = "rect(0pt, 636px, 25px, 0pt)"
			for(var i = 1 ; i<18; i++){
				var news = document.getElementById("v_"+i)
				news.style.width = "640px"
				news.style.clip = "rect(0pt, 636px, 25px, 0pt)"
			}
			Effect.Appear("acthick", { duration: 3.0 })
			setTimeout("document.getElementById(\"acthick\").style.opacity = \"1\"",3000);
			setTimeout("document.getElementById(\"acthick\").style.opacity = \"1\"",3500);
			setTimeout("document.getElementById(\"acthick\").style.opacity = \"1\"",4000);
			setTimeout("document.getElementById(\"acthick\").style.opacity = \"1\"",4500);
		}
		// "type" must be: torrent or softsub or ed2k
		// id is the ID of the release
		// the functions increments the number of clicks of a rel
    function Clicks() {
      this.ids = new Array()
      this.types = new Array()
      this.insert=clicks_insert
      this.check=clicks_check
	    if(Get_Cookie("torrentRelClicks")==null)
		  Set_Cookie( 'torrentRelClicks', "", 15, '/', '', '' );
	    if(Get_Cookie("softsubRelClicks")==null)
		  Set_Cookie( 'softsubRelClicks', "", 15, '/', '', '' );
	    if(Get_Cookie("ed2kRelClicks")==null)
		  Set_Cookie( 'ed2kRelClicks', "", 15, '/', '', '' );

      function clicks_insert(id,type){
        this.ids[this.ids.length]=id
        this.types[this.types.length]=type
        //alert("Inserito id: "+id+" , type: "+type)
        // Cookies update
        var dati = Get_Cookie(type+"RelClicks")
        if(COOKIES){
            Set_Cookie( type+'RelClicks', dati+id+",", 15, '/', '', '' );
            //alert(Get_Cookie(type+"RelClicks"))
        }
      }
      function clicks_check(id,type){
        for(var i=0; i<this.ids.length;i++){
          if(this.ids[i]==id && this.types[i]==type){
            //alert("Gia'  cliccato!!!")
            return false
            break
          }
        }
        // checks if the rel has been already clicked, through the cookies
        var tempIds = Get_Cookie(type+"RelClicks")
	    tempIds = tempIds.split(",")
        for(var i=0; i<tempIds.length;i++){
          if(tempIds[i]==id){
            //alert("Gia'  cliccato!!!")
            return false
            break
          }
        }
        return true
      }
    }

    var userClicks = new Clicks()
    // incrementa il numero di clicks su una certa release
		function incrementRelClicks(id, kind, serie){
		//alert("here")
		// check if the release has been already clicked
		if(userClicks.check(id,kind) && COOKIES){
			// save the preference (click on the release) of the user
			storeSerieClicked(serie)
			var req = getXHR();
	        // Call the Object
            req.open("POST", "incrementClicks.php", false);

            req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req.send("t="+id+"&k="+kind);
			
			// When return
			if(req.readyState  == 4){
              if(req.status  == 200){
			    //alert(req.responseText);
			    if(req.responseText=="well donewell done"){
					userClicks.insert(id,kind)
				    return true;
			    }
			  }
			}
			else {return true}
      
		}
		else  {return true}
		}
    // salva le serie cliccate dall'utente, solo quando clicca su una release (salva le preferenze)
    function storeSerieClicked(serie){
      var ajaxRequest = new Ajax.Request("storeprefs.php", {
			          method:       'get', 
			          parameters:   'uid='+USERID+"&s="+serie, 
			          asynchronous: false,
                onFailure: function(transport) { setTimeout("storeSerieClicked("+serie+")",3000) }
			      });      
    }

    // funzione che parte a ogni click su una release
    function clickActions(id,kind,serie){
      incrementRelClicks(id,kind,serie)
      return true
    }


    function checkIfUser(){
      //alert("checkIfUser")
      var user= Get_Cookie("user");
      var pass= Get_Cookie("pass");
      if(user!=""&&pass!=""){
        
        var ajaxRequest = new Ajax.Request("ver_user.php", {
	          method:       'post', 
	          parameters:   'user='+user+"&pass="+pass+"&ajax=true", 
	          asynchronous: true,
            onComplete: checkIfUserCallback,
            onFailure: function(transport) { setTimeout("checkIfUser()",3000) }
			      });   
      }
    }
    function checkIfUserCallback(transport){
      if(transport.responseText!="false" && transport.responseText!="Rate Limit Exceeded."){
        new Ajax.Request("getInfo.php", {
          method: 'post', 
          parameters: 'gruppoId='+transport.responseText+'', 
          asynchronous: true, 
          onComplete: function(transport) {
                var xml = transport.responseXML
                var items = xml.getElementsByTagName('group')
                var item = items[0]
                var newDiv=document.createElement("div")
                newDiv.setAttribute("id","userAdminDiv")
                newDiv.setAttribute("class","contentbox userAdmin")
                output="Benvenuto Amministratore del gruppo "+item.getElementsByTagName("name")[0].firstChild.nodeValue +"<br/>"

                output += "Il tuo gruppo ha all'attivo:<br />"
                output += item.getElementsByTagName("totTorrent")[0].firstChild.nodeValue +" torrents<br />"
                output += item.getElementsByTagName("totSoftsub")[0].firstChild.nodeValue +" softsub<br />"
                output += item.getElementsByTagName("totEd2k")[0].firstChild.nodeValue +" link ed2k<br />"
                output += "Per gestirle vai al <a href='login.php'>Pannello di Gestione</a>."
                newDiv.innerHTML=output;
                //alert(output)
                $('acdiv').appendChild(newDiv)
              },
          onFailure: function(transport) { setTimeout("checkIfUserCallback("+transport+")",3000) }
        })
      }
    }

/*********************************************************************
** Funzioni login e Avatar
*********************************************************************/
		function selectAvatar(){
			var grayb = document.getElementById("richiesta");
      var size = getPageSizeWithScroll()
			var content = ""
		      + "<div id=\"ric\" class=\"richiesta\">"
		        + "<div class=\"headerrichiesta\">"
		          + "<div class=\"titlerichiesta\">Invia il tuo avatar</div>"
		          + "<div id=\"closeButtonDiv\" onclick=\"hideRichiesta()\"></div>"
		        + "</div>"
		        + "<div class=\"containerrichiesta\">"
					  + "<form onSubmit=\"return false;\" action=\"\" target=\"upload_iframe\" method=\"post\" enctype=\"multipart/form-data\">"
					    + "<div class=\"riga\">"
					      + "<span class=\"what\" style=\"width: 120px\">Seleziona immagine</span>"
					      + "<input type=\"file\" name=\"file\" id=\"file\" onChange=\"uploadImage(this.form.file)\" class=\"input\">"
					      + "<span class=\"monitor\" id=\"monitorFile\"></span>"
					    + "</div>"
              + "<div class=\"riga\" style=\"text-align: center\">"
					      + "<br>Risoluzione consigliata 200x200 pixel.<br> Dimensione massima 100 Kb."
					    + "</div>"
					  + "</form>"
            + "</div>"
          + "</div>"
        + "<div id=\"maskRichiesta\" class=\"maskrichiesta\" style=\"height: "+size[1]+"px\"></div>";
	  		grayb.innerHTML=content;
        
        //new Insertion.After("ric", );
      $('richiesta').style.visibility="visible"
      $('richiesta').show();
      Effect.Appear('maskRichiesta', { duration: 1.0, to: 0.8 });
      setTimeout("Effect.Appear('ric', { duration: 1.0, to: 0.99 })",500); 
		}
		function uploadImage(val){
      //alert(val.value)
      var ext = val.value.split(".")[1]
      ext = ext.toLowerCase()
      //alert(ext)
      $('monitorFile').innerHTML = "<img src=\"images/ajax-image-loader.gif\" style=\"width: 200px; margin-top: 3px\">"
      if(ext!="jpg" && ext!="jpeg" && ext!="png" && ext!="gif"){
        $('monitorFile').style.color="red"
        $('monitorFile').innerHTML = "Devi selezionare una immagine."
        return
      }
      // Create new JsHttpRequest object.
      var req = new JsHttpRequest();
      // Code automatically called on load finishing.
      req.onreadystatechange = function() {
        if (req.readyState == 4) {
            //alert(req.responseText);
            if(req.responseText==true||req.responseText=="true"){
              insertLoginWelcomeMessage()
              hideRichiesta()
            }
            else{
              $('monitorFile').style.color="red"
              $('monitorFile').innerHTML = req.responseText
            }
        }
    }
      // Prepare request object (automatically choose GET or POST).
      req.open(null, 'upload_file.php', true);
      // Send data to backend.
      req.send( { q: val } );  
    }
    function userLogin(){
      if($('userInput').value==""){
        $('userInput').focus(); return
      }
      else if($('passInput').value==""){
        $('passInput').focus(); return
      }
      
      // mostro il div che conterra' gli ultimi commenti
      $('lastCommentsDiv').show();
      insertLastComments()
      var lastCommentsIntervalId = setInterval("insertLastComments()",60000)
      // mostro il div che conterra'  gli utenti in chat
      //$('onlineChatDiv').show();
      
      //alert($('passInput').value)
      new Ajax.Request("ver_user.php", {
			          method:       'post', 
			          parameters:   "user="+$('userInput').value+"&pass="+hex_md5($('passInput').value)+"&sito=ok", 
			          asynchronous: true,
			          onComplete:   function(transport){
                                  //alert(transport.responseText)
                                  $('loginSpan').setStyle({
                                    color: 'red'
                                  });
                                  if(transport.responseText=="false" || transport.responseText==false){
                                    $('loginSpan').innerHTML="Dati errati"
                                  }
                                  else if(transport.responseText=="not validated"){
                                    $('loginSpan').innerHTML="Account non validato"
                                  }
                                  else{
                                    /* Login sul forum */
                                    new Ajax.Request("verificaRegistrazionePhpBBautoLogin.php", {
                                        method:       'post',
                                        parameters:   'user='+$('userInput').value+'&pass='+$('passInput').value,
                                        asynchronous: true
                                    });
                                    insertLoginWelcomeMessageCallback(transport)
                                  }
                    },
               onFailure: function(transport) { setTimeout("userLogin()",3000) }
         });
    }
    
    var idSeriePreferite= new Array()
    var NUMERO_PM_NUOVI = 0;
    function insertLoginWelcomeMessage(){
      // controllo se ci sono nuovi PM e salvo il numero in NUMERO_PM_NUOVI
      checkPM();
      new Ajax.Request("ver_user.php", {
			          method:       'post', 
			          parameters:   "user="+Get_Cookie("sitoUser")+"&pass="+Get_Cookie("sitoPass")+"&sito=ok", 
			          asynchronous: true,
			          onComplete:   insertLoginWelcomeMessageCallback,
                onFailure: function(transport) { setTimeout("insertLoginWelcomeMessage()",3000) }
         });
    }
    function insertLoginWelcomeMessageCallback(transport){
      var txt = transport.responseText
      var user = Get_Cookie("sitoUser")
      var output = "Benvenuto "+user+"!"
      if(txt!="false"){
              if(Get_Cookie("sitoUserAvatar")==null)
                output += "<div><a href='#' onclick='selectAvatar()' title='Seleziona un avatar'><img class=\"avatar\" src=\"avatars/default-avatar.gif\"/></a></div>"
              else{
                output += "<a href='#' onclick='selectAvatar()' title='Cambia avatar'><img class=\"avatar\" src='avatars/"+Get_Cookie("sitoUserAvatar")+"?"+new Date().getTime()+"'/></a><br>"
              }
              output += "<a href='#' onclick='logout(); return false;' id='logout'>Logout</a>"
              output += "<div id='loggedUserPanel'>"
              output += "<div class=\"user-logged-menu\" onclick='window.location=\"#utente/"+Get_Cookie("sitoUser")+"\"; return false;'><span id='profiloMenuDiv'>Profilo</span></div>"
              output += "<div class=\"user-logged-menu\" onclick='managePrefsAjaxRequest(); Effect.ScrollTo(\"cont\"); return false;'><span id='preferitiMenuDiv'>Preferiti</span></div>"
              output += "<div class=\"user-logged-menu\" onclick='chatVisible=true; initChatWin(); return false;'><span id='chatMenuDiv'>Chat</span></div>"
              output += "<div class=\"user-logged-menu\" onclick='window.location=\"#faucet\"; faucet(); return false;'><span id='faucetMenuDiv'>Registrazioni TV</span></div>"
              output += "<div class=\"user-logged-menu\" onclick='window.location=\"#impostazioni\"; return false;'><span id='impostazioniMenuDiv'>Impostazioni</span></div>"
              output += "<div class=\"user-logged-menu\" onclick='window.location=\"#pm\"; return false;'><span id='pmMenuDiv'>PM</span></div>"
              output += "</div>"
              $('loginBox').innerHTML= output
              // mostro il pulsante di Chat
              if($('chatDiv'))
                $('chatDiv').show()
              // nascondo il div con l'invito a registrarsi
              $('regAdv').hide()
              if(txt!="empty"){
                checkPreferiti(txt);
              }
              // timer che controlla se ci sono nuovi PM
              setInterval("checkForNewPM()",300000);
              // inserisco il div che segnala i nuovi PM da leggere
              if(NUMERO_PM_NUOVI != "0")
                alertNewPM();
              // recommendation
              /*getRecommendation()*/
              //aggiungo i tooltip
              addTooltip()
              // aggiungo l'utente come online
              putMeAsOnlineUser();
              // mostro la barra della Chat
              showChatBar();
              // visualizzo gli utenti online
              //setTimeout("getOnlineUsers()",5000);
              // aggiungo gli ultimi commenti
              //insertLastComments()
              //showChatOnlineUsers()
              //var lastCommentsIntervalId = setInterval("insertLastComments()",30000)
              //setInterval("showChatOnlineUsers()",60000)
              
      }
      
    }
    
    var winUserPreferiti;
    function checkPreferiti(txt){
    //alert(txt)
      parser=new DOMParser();
      xml=parser.parseFromString(txt,"text/xml");
      var items = xml.getElementsByTagName('release')
      releaseNum=items.length
      //alert(items.length)
      var div = document.createElement("div")
      div.setAttribute("class","alertdiv")
      if(releaseNum>1)
        var numero = "e";
      else
        var numero = "a";
      div.innerHTML="<a href='javascript: void(0)' onclick='Effect.ScrollTo(\"cont\"); winUserPreferiti.show(); return false;'>Hai "+releaseNum+" nuov"+numero+" release da visionare!</a><br>"
      $('loginBox').appendChild(div)
      winUserPreferiti = new Window({className: "dialog", title: "I tuoi preferiti",top:220, left: 0, width:280, height:80, destroyOnClose: false, recenterAuto:false}); 
      winUserPreferiti.setZIndex(10);
      var output = "I tuoi preferiti<br />"
      for (var i = 0 ; i < items.length ; i++) {
        var item = items[i]
        //alert(item.getElementsByTagName("link")[0].firstChild.nodeValue)
                if(item.getElementsByTagName("link"))
                  $('xmlUserPreferiti').innerHTML = decodeURI(item.getElementsByTagName("link")[0].firstChild.nodeValue)
                output += "<div class='preferiti-riga'><span style='float: left; width: 60%; text-align: left;'>"
                // Extract the text nodes from the name and quantity elements
                output += "("+item.getElementsByTagName("tipo")[0].firstChild.nodeValue+")"
                output += " <a "
                output += "onclick=\"incrementRelClicks("+item.getAttribute('id')+",\'torrent\')\" "
                output += "href='"+decodeURIComponent($('xmlUserPreferiti').innerHTML)+"' class='preferiti'>"
                output += " "+item.getElementsByTagName("serie")[0].firstChild.nodeValue
                output += " "+item.getElementsByTagName("episodio")[0].firstChild.nodeValue
                var node = item.getElementsByTagName("extra")
                if(item.getElementsByTagName("extra")[0].firstChild)
                  output += " "+item.getElementsByTagName("extra")[0].firstChild.nodeValue
                
                output += "</a></span>"
                //output += "<span>Clicks: "+item.getElementsByTagName("clicks")[0].firstChild.nodeValue+"</span>"
                output += "<span style='width: 40%; text-align: right'>"
                  output += "<a href='#gruppi/"+item.getElementsByTagName("gruppo")[0].attributes.getNamedItem("id").value+"' class='preferiti'>"
                  output += item.getElementsByTagName("gruppo")[0].firstChild.nodeValue
                  output += "</a>"
                if(item.getElementsByTagName("gruppo2")[0].firstChild.nodeValue!="-"){
                  output += " & "
                  output += "<a href='#gruppi/"+item.getElementsByTagName("gruppo2")[0].attributes.getNamedItem("id").value+"' class='preferiti'>"
                  output += item.getElementsByTagName("gruppo2")[0].firstChild.nodeValue
                  output += "</a>"
                }
                if(item.getElementsByTagName("gruppo3")[0].firstChild.nodeValue!="-"){
                  output += " & "
                  output += "<a href='#gruppi/"+item.getElementsByTagName("gruppo3")[0].attributes.getNamedItem("id").value+"' class='preferiti'>"
                  output += item.getElementsByTagName("gruppo3")[0].firstChild.nodeValue
                  output += "</a>"
                }
                /*var node = item.getElementsByTagName("gruppo2")
                var node2 = item.getElementsByTagName("gruppo3")
                if(node.length != 0)
                  output += " & "+item.getElementsByTagName("gruppo2")[0].firstChild.nodeValue
                if(node2.length != 0)
                  output += " & "+item.getElementsByTagName("gruppo3")[0].firstChild.nodeValue*/
                output += "</span>"
                output += "</div>"
      }
      winUserPreferiti.getContent().innerHTML= output
    }
    function checkPM(){
      new Ajax.Request("pm.php", {
                method:       'post', 
                parameters:   'new=true', 
                asynchronous: true,
                onComplete:   function(transport){ 
                                    NUMERO_PM_NUOVI = transport.responseText;
                                    LAST_CHECK_PM_NUM = NUMERO_PM_NUOVI;
                              },
                onFailure: function(transport) { setTimeout("checkPM()",3000) }
                });
    }
    function alertNewPM(){
      var numPM = parseInt(NUMERO_PM_NUOVI);
      if(numPM > 0){
        if(numPM == 1)
          var num = "o";
        else{
          var num = "i";
        }
      }
      var div = document.createElement("div");
      div.setAttribute("id","pm-notification");
      div.setAttribute("class","alertdiv");
      div.style.backgroundColor = "#F0FFF0";
      div.innerHTML="<a href=\"#pm\" onclick=\"$('pm-notification').fade()\">Hai "+numPM+" nuov"+num+" PM da leggere!</a><br>"
      $('loginBox').appendChild(div)
    }
    
    var LAST_CHECK_PM_NUM = 0;
    function checkForNewPM(){
      new Ajax.Request("pm.php", {
                method:       'post', 
                parameters:   'new=true', 
                asynchronous: true,
                onComplete:   function(transport){
                                    if(transport.responseText != "0" || transport.responseText != 0){
                                      var numPM = parseInt(transport.responseText);
                                      if(numPM > LAST_CHECK_PM_NUM){
                                        var divOut = new Element('div', { 'id': 'new-pm-alert', 'class': 'new-pm-alert' });
                                        var div = new Element('div', { 'id': 'new-pm-alert', 'class': 'new-pm-alert-in' });
                                        var html = "";
                                        if(numPM == 1) html += "<div>Hai un nuovo messaggio privato.</div>";
                                        else html += "<div>Hai "+numPM+" nuovi messaggi privati.</div>";
                                        html += "<input type=\"button\" value=\"Leggi subito\" onclick=\"window.location='#pm'; LAST_CHECK_PM_NUM=0; $('new-pm-alert').parentNode.removeChild($('new-pm-alert')); if(window.location.toString().indexOf('#pm')!=-1){ pm(); }\">"
                                        html += "<input type=\"button\" value=\"Leggi dopo\" onclick=\"$('new-pm-alert').parentNode.removeChild($('new-pm-alert'));\">"
                                        div.update(html);
                                        divOut.appendChild(div)
                                        document.getElementsByTagName('body')[0].appendChild(divOut);
                                        LAST_CHECK_PM_NUM = numPM;
                                      }
                                      else if(numPM < LAST_CHECK_PM_NUM) LAST_CHECK_PM_NUM = 0;
                                    }
                              },
                onFailure: function(transport) { setTimeout("checkPM()",3000) }
                });
    }
        
    function enableInput(el){
      if(el.getAttribute("value")=="Password"){
        el.setAttribute("type","password");
      }
      el.setAttribute("value","");
    }
    function logout(){
      new Ajax.Request("online_users.php", {
                method:       'post', 
                parameters:   'remove=1&idUser='+Get_Cookie('sitoUserId'), 
                asynchronous: true,
                onComplete: function(){
                  Set_Cookie("sitoUser","",365,"/","","");
                  Set_Cookie("sitoUserId","",365,"/","","");
                  Set_Cookie("sitoPass","",365,"/","","");
                  Set_Cookie("sitoUserAvatar","",365,"/","","");
                  window.location.reload();
                }
      });
      insertLogoutElements();
      
    }
    function insertLogoutElements(){
      var form = document.createElement("form");
      form.setAttribute("method","post");
      form.setAttribute("action",".");
      form.setAttribute("onsubmit","userLogin(); return false;");
      var output = "<input type='text' id='userInput' value='Nickname' size='10' onfocus='enableInput(this)' class='input inputLogin'><br>"
      output += "<input type='text' id='passInput' value='Password' size='10' onfocus='enableInput(this)' class='input inputLogin'><br>"
      output += "<a href='#' onclick='userLogin(); return false;' class='loginForm'>login</a><br>"
      output += "<a href='#' onclick='registrazione(); return false;' class='loginForm'>registrati</a><br>"
      output += "<span id='loginSpan'></span><input type=\"submit\" style=\"visibility: hidden\" name=\"submit\">";
      var br = document.createElement("br");
      form.innerHTML = output;
      while($('loginBox').hasChildNodes()){
        $('loginBox').removeChild($('loginBox').firstChild);
      };
      $('loginBox').appendChild(form);
      $('loginBox').appendChild(br);
      $('loginBox').appendChild(br);
      // nascondo il pulsante Chat
      if($('chatDiv'))
        $('chatDiv').hide()
    }
/*********************************************************************
** FINE Funzioni login e Avatar
*********************************************************************/

/*********************************************************************
** Funzioni Pannello Utenti Loggati
*********************************************************************/
  function managePrefsAjaxRequest(){
      new Ajax.Request("getPreferiti.php", {
                method:       'post', 
                parameters:   'userName='+Get_Cookie("sitoUser"), 
                asynchronous: true,
                onComplete:   function(transport){ 
                                    managePrefs(transport.responseXML);
                              },
                onFailure: function(transport) { setTimeout("managePrefsAjaxRequest()",3000) }
                });
  }

  function managePrefs(xml){
        var grayb = document.getElementById("richiesta");
          var content = ""
              + "<div id=\"ric\" class=\"richiesta\">"
                + "<div class=\"headerrichiesta\">"
                  + "<div class=\"titlerichiesta\">Le tue serie preferite</div>"
                  + "<div id=\"closeButtonDiv\" onclick=\"hideRichiesta()\"></div>"
                + "</div>"
                + "<div class=\"containerrichiesta\">";
                var items = xml.getElementsByTagName('serie');
                if(items.length==0) {
                 content += "<div class=\"riga riga_hover\" style=\"padding: 3px\">"
                                + "<div>"
                                + "Non hai ancora aggiunto nessuna serie preferita."
                                + "</div>"
                          + "</div>";
                }
                else{
                  for (var i = 0 ; i < items.length ; i++) {
                    var item = items[i];
                    if(item.attributes.getNamedItem("special").value=="0"){
                      var CSSclass = "preferiti-star";
                      var JSfunc = "setSpecialSerie("+item.attributes.getNamedItem("id").value+",this)";
                      var tipText = "Segna le serie significative con la stellina";
                    }
                    else{
                      var CSSclass = "preferiti-star-set";
                      var JSfunc = "unsetSpecialSerie("+item.attributes.getNamedItem("id").value+",this)";
                      var tipText = "Rimuovi dalle serie speciali";
                    }
                    // episodi
                    var epText = "";
                    if(item.getElementsByTagName("episodi")[0].getAttribute("visti") != "0"){
                      epText += ""+item.getElementsByTagName("episodi")[0].getAttribute("visti");
                      
                      if(item.getElementsByTagName("episodi")[0].getAttribute("totali") != "0"){
                        epText += "/"+item.getElementsByTagName("episodi")[0].getAttribute("totali");
                      }
                      epText += " ep visti";
                    }
                    else{
                      epText = "episodi visti";
                    }
                    var color = "";
                    if((item.getElementsByTagName("episodi")[0].getAttribute("visti") == item.getElementsByTagName("episodi")[0].getAttribute("totali")) && (item.getElementsByTagName("episodi")[0].getAttribute("visti") != "0")){
                        color = "style=\"color: green;\"";
                    }
                    content += "<div class=\"riga riga_hover\" style=\"padding: 3px\">"
                                  + "<div style=\"float: right; cursor: pointer\" onclick=\"removePrefs("+item.getAttribute("id")+",this)\"><img src=\"images/icon_delete.2.png\" title=\"Rimuovi serie\"></div>"
                                  + "<div style=\"float: right; cursor: pointer; margin-right: 5px; font-size: 0.85em;\"><a href=\"#\" class=\"comm_text\" style=\"font-weight: normal\" onclick=\"showNumEpBox("+item.attributes.getNamedItem("id").value+",1,24,this); return false;\">"
                                  + epText+"</a></div>"
                                  + "<div  onmouseout=\"UnTip()\" onmouseover=\"Tip('<div class=tooltip>"+tipText+"</div>')\" onclick=\""+JSfunc+"\" style=\"display: inline-block; float: left; margin-right: 4px\" class=\""+CSSclass+"\"></div>"
                                  + "<div>"
                                  + "<a href=\"#\" onclick=\"hideRichiesta(); window.location='#serie/"+item.attributes.getNamedItem("id").value+"'; return false;\" class=\"comm_text\" "+color+">"
                                  + item.getElementsByTagName("name")[0].firstChild.nodeValue
                                  + "</a>"
                                  + "</div>"
                            + "</div>"
                  }
                }
              content += "</div>"
              + "</div>"
            grayb.innerHTML=content;
            var size = getPageSizeWithScroll()
          new Insertion.After("ric", "<div id=\"maskRichiesta\" class=\"maskrichiesta\" style=\"height: "+size[1]+"px\"></div>");
          $('richiesta').style.visibility="visible"
          $('richiesta').show()
          Effect.Appear('maskRichiesta', { duration: 1.0, to: 0.8 });
          setTimeout("Effect.Appear('ric', { duration: 1.0, to: 0.99 })",500); 
  }
  
  function showNumEpBox(serieId, curr, tot, htmlElement){
    var box = new Element("div");
    var date = Date.parse(new Date());
    htmlElement.setAttribute("id",date);
    var html = "<input type=\"text\" maxlength=\"3\" size=\"3\" id=\"numEpViewed\">";
    html += "<input type=\"button\" value=\"Salva\" ";
    html += "onclick=\"modifyNumEp('"+serieId+"',$('numEpViewed').value); if($('numEpViewed').value!=''){$('"+date+"').innerHTML=$('numEpViewed').value+' ep visti'}; this.parentNode.parentNode.removeChild(this.parentNode);\">"
    html += "<input type=\"button\" value=\"Chiudi\" ";
    html += "onclick=\"this.parentNode.parentNode.removeChild(this.parentNode);\">";
    box.innerHTML = html;
    box.setStyle({
      position: "absolute",
      left: ""+findPosX(htmlElement.parentNode)-100+"px",
      top: ""+findPosY(htmlElement)+"px",
      width: "auto",
      height: "auto",
      zIndex: "1002",
      padding: "2px",
      border: "2px solid #F87217",
      backgroundColor: "white",
    });
    var body = document.getElementsByTagName("body")[0];
    body.appendChild(box);
    $('numEpViewed').focus();
  }
  
  function modifyNumEp(serieId, num){
    if(num != "" && num != "0"){
      new Ajax.Request("preferiti.php", {
                  method:       'post', 
                  parameters:   'action=update&numEpVisti=true&serieId='+serieId+'&numEp='+num, 
                  asynchronous: true,
                  onComplete:   function(transport){ },
                  onFailure: function(transport) { }
                  });
    }
  }
  
  
  function removePrefs(id, nodeElem){
    new Ajax.Request("getPreferiti.php", {
                method:       'post', 
                parameters:   'action=remove&serieId='+id+'&userName='+Get_Cookie("sitoUser"), 
                asynchronous: true,
                onComplete:   function(transport){ 
                                  nodeElem.parentNode.parentNode.removeChild(nodeElem.parentNode)
                              },
                onFailure: function(transport) { setTimeout("removePrefs("+id+", "+nodeElem+")",3000) }
                });
  }
  function setSpecialSerie(idSerie,starDiv){
    new Ajax.Request("add_preferiti.php", {
                method:       'post', 
                parameters:   'action=addStar&serieId='+idSerie+'&idUser='+Get_Cookie("sitoUserId"), 
                asynchronous: true,
                onComplete:   function(transport){ 
                                  if(transport.responseText == 'true'){
                                    starDiv.setAttribute("class","preferiti-star-set");
                                    starDiv.setAttribute("onclick","unsetSpecialSerie("+idSerie+",this)");
                                    var tipText = "Rimuovi dalle serie speciali";
                                    starDiv.setAttribute("onmouseover","Tip('<div class=tooltip>"+tipText+"</div>')");
                                  }
                              },
                onFailure: function(transport) { setTimeout("removePrefs("+id+", "+nodeElem+")",3000) }
                });
  }
  function unsetSpecialSerie(idSerie,starDiv){
    new Ajax.Request("add_preferiti.php", {
                method:       'post', 
                parameters:   'action=removeStar&serieId='+idSerie+'&idUser='+Get_Cookie("sitoUserId"), 
                asynchronous: true,
                onComplete:   function(transport){ 
                                  if(transport.responseText == 'true'){
                                    starDiv.setAttribute("class","preferiti-star");
                                    starDiv.setAttribute("onclick","setSpecialSerie("+idSerie+",this)");
                                    var tipText = "Segna le serie significative con la stellina";
                                    starDiv.setAttribute("onmouseover","Tip('<div class=tooltip>"+tipText+"</div>')");
                                  }
                              },
                onFailure: function(transport) { setTimeout("removePrefs("+id+", "+nodeElem+")",3000) }
                });
  }
  
  function showLastImagesAdded(){
    new Ajax.Request("upload_file.php", {
                method:       'post', 
                parameters:   'last=true&img=true', 
                asynchronous: true,
                onComplete:   function(transport){
                                  if(transport.responseText=="empty") { return; }
                                  else{
                                    var output="Ultime immagini<br>";
                                    var res=transport.responseText.split(",");
                                    var i=0;
                                    var counter = 0;
                                    while(i<res.length){
                                      if(res[i]!=""){
                                        var o=i+1;
                                        output += "<a href=\"#serie/"+res[o]+"\" class=\"comm_text\"";
                                        if(counter == 0)
                                          output += " style=\"background-color: #e6efff\"";
                                        output += ">"+res[i]+"</a><br>";
                                      }
                                      if(counter == 0 )
                                        counter = 1;
                                      else
                                        counter = 0;
                                      i=i+2;
                                    }
                                  }
                                  $('lastImagesAddedDiv').innerHTML=output;
                              },
                onFailure: function(transport) { setTimeout("showLastImagesAdded()",3000) }
                });
  }
  
  function getOnlineUsers(){
    new Ajax.Request("online_users.php", {
    method:       'post', 
                parameters:   'get=1', 
                asynchronous: true,
                onComplete: function(transport){
                              if(transport.responseText.indexOf("Errore")!=-1||transport.responseText==""){ 
                                //setTimeout("getOnlineUsers()",3000); return;
                              }
                              if(transport.responseText!="1"){
                                var output="Utenti online<br>";
                                var utentiOnline = transport.responseText.split(",");
                                //alert("Utenti online:"+utentiOnline)
                                var utentiChat;
                                // controllo gli utenti presenti in Chat
                                new Ajax.Request("subitanimealtervista_proxy.php", {
                                        method:       'post', 
                                        parameters:   'chat=true&online=true', 
                                        asynchronous: false,
                                        onComplete:   function(transport){
                                                            userChat="";
                                                            var xmlMessage = transport.responseText
                                                            xmlMessage = trim(xmlMessage)
                                                            if(xmlMessage=="empty"){
                                                              userChat = "none"
                                                              getOnlyOnlineUsers()
                                                            }
                                                            else{
                                                              if(BrowserDetect.browser=="Explorer") //Internet Explorer
                                                              {
                                                                xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                                                                xmlDoc.async="false";
                                                                xmlDoc.loadXML(xmlMessage);
                                                              }
                                                              else //Firefox, Mozilla, Opera, etc.
                                                              {
                                                                parser=new DOMParser();
                                                                xmlDoc=parser.parseFromString(xmlMessage,"text/xml");
                                                              }
                                                              var items = xmlDoc.getElementsByTagName('user')
                                                              for (var i = 0 ; i < items.length ; i++) {
                                                                var item = items[i]
                                                                userChat += item.firstChild.nodeValue
                                                                if(i!=items.length-1){ userChat += ", " }
                                                              }
                                                              utentiChat = userChat.split(",")
                                                              //alert("Utenti chat: "+utentiChat + " lunghezza " + utentiChat.length)
                                                              for(var i=0; i<utentiOnline.length;i++){
                                                                if(utentiOnline[i]!=""){
                                                                  var data = utentiOnline[i].split("#")
                                                                  var nomeUtente = data[0];
                                                                  var idUtente = data[1];
                                                                  
                                                                  if(nomeUtente != Get_Cookie("sitoUser")){
                                                                    var onmouseover = "$('send-pm-"+idUtente+"').show();"
                                                                    var onmouseout = "$('send-pm-"+idUtente+"').hide();"
                                                                  }
                                                                  else{
                                                                    var onmouseover = "";
                                                                    var onmouseout = "";
                                                                  }
                                                                  output += "<div onmouseover=\""+onmouseover+" this.style.background='#E6EFFF'\" onmouseout=\""+onmouseout+" this.style.background='white'\">";
                                                                    output += "<a href=\"#utente/"+nomeUtente+"\" class=\"comm_text\">"+nomeUtente+"</a>";
                                                                    if(nomeUtente != Get_Cookie("sitoUser")){
                                                                      output += "<a href=\"#\" id=\"send-pm-"+idUtente+"\" class=\"img-pm\" style=\"margin-left: 10px; display: none\" onclick=\"sendPM("+idUtente+"); return false;\" title=\"Invia un messaggio privato\"></a>";
                                                                    }
                                                                    if(userChat!="none" && userChat!=""){
                                                                      for(var u=0; u < utentiChat.length; u++){
                                                                        //alert("n"+trim(utentiOnline[i]) +"n # n"+trim(utentiChat[u])+"n")
                                                                        if(trim(nomeUtente)==trim(utentiChat[u])){
                                                                          //alert(utentiOnline[i] +" == "+ utentiChat[u])
                                                                          output += "<img src=\"images/chat_small_logo.png\" style=\"margin-left: 5px; vertical-align: middle;\" title=\"Utente presente in chat\">"
                                                                        }
                                                                      }
                                                                    }
                                                                    output += "</div>";
                                                                }
                                                              }
                                                              $('online-users-div').innerHTML=output;
                                                            }
                                                          },
                                        onFailure: function(transport) { 
                                          //setTimeout("getOnlyOnlineUsers()",3000) 
                                        }
                                });
                                
                              }
                },
                onFailure: function(transport) { 
                  //setTimeout("getOnlineUsers()",3000) 
                }
                });
  }

  // funzione di protezione, nel caso il dominio della chat non dovesse funzionare
  function getOnlyOnlineUsers(){
    new Ajax.Request("online_users.php", {
    method:       'post', 
                parameters:   'get=1', 
                asynchronous: true,
                onComplete: function(transport){
                              if(transport.responseText.indexOf("Errore")!=-1||transport.responseText==""){ 
                                //setTimeout("getOnlyOnlineUsers()",3000); return;
                              }
                              if(transport.responseText!="1"){
                                // funzione per la chat!!!!
                                setChatBarVars(transport.responseText);
                                var output="Utenti online<br>";
                                var res = transport.responseText.split(",");
                                for(var i=0; i<res.length;i++){
                                  if(res[i]!=""){
                                      var data = res[i].split("#");
                                      var nomeUtente = data[0];
                                      var idUtente = data[1];
                                      
                                      if(nomeUtente != Get_Cookie("sitoUser")){
                                        var onmouseover = "$('send-pm-"+idUtente+"').show();"
                                        var onmouseout = "$('send-pm-"+idUtente+"').hide();"
                                      }
                                      else{
                                        var onmouseover = "";
                                        var onmouseout = "";
                                      }
                                      output += "<div onmouseover=\""+onmouseover+" this.style.background='#E6EFFF'\" onmouseout=\""+onmouseout+" this.style.background='white'\">";
                                      output += "<a href=\"#utente/"+nomeUtente+"\" class=\"comm_text\">"+nomeUtente+"</a>";
                                      if(nomeUtente != Get_Cookie("sitoUser"))
                                        output += "<a href=\"#\" id=\"send-pm-"+idUtente+"\" class=\"img-pm\" style=\"margin-left: 10px; display: none\" onclick=\"sendPM("+idUtente+"); return false;\" title=\"Invia un messaggio privato\"></a>";
                                      output += "</div>";
                                    }
                                }
                                $('online-users-div').innerHTML=output;
                              }
                },
                onFailure: function(transport) { 
                  //setTimeout("getOnlyOnlineUsers()",3000) 
                }
                });
  }

  function putMeAsOnlineUser(){
    new Ajax.Request("online_users.php", {
                method:       'post', 
                parameters:   'put=1&idUser='+Get_Cookie('sitoUserId')+'&time='+Date.parse(new Date()), 
                asynchronous: true,
                onComplete: function(transport){
                            var res= transport.responseText
                            for(var i=0; i>res.length; i++){
                              if(res.charAt(i)!="1"){
                                //setTimeout("putMeAsOnlineUser()",3000);
                                return;
                              }
                            }
                },
                onFailure: function(transport) { 
                  //setTimeout("putMeAsOnlineUser()",3000) 
                }
                });
  }
  function updateMeAsOnlineUser(){
    new Ajax.Request("online_users.php", {
    method:       'post', 
                parameters:   'update=1&idUser='+Get_Cookie('sitoUserId')+'&time='+Date.parse(new Date()), 
                asynchronous: true,
                onFailure: function(transport) { 
                  //setTimeout("updateMeAsOnlineUser()",3000) 
                }
                });
  }
  
  function refreshOnlineUsers(){
    if(Get_Cookie("sitoUser")&&Get_Cookie("sitoPass")){
      putMeAsOnlineUser();
    }
    setTimeout("getOnlyOnlineUsers()",6000);
  }

/*******************************************
* Emoticons functions
********************************************/
  function setEmoticons(styleName){
    // styleName is the forlder of the emoticons
    EMOTICON_STYLE = styleName;
    Set_Cookie( 'emoticons', ""+styleName+"", 365, '/', '', '' );
    $('test-emoticon').setAttribute('src','images/emoticons/'+EMOTICON_STYLE+'/smile.png');
  }
  function emoticonsAjaxRequest(){
      new Ajax.Request("emoticons.php", {
                method:       'get', 
                parameters:   '', 
                asynchronous: true,
                onComplete:   function(transport){ 
                                    emoticonsBox(transport.responseText)
                              },
                onFailure: function(transport) { setTimeout("emoticonsAjaxRequest()",3000) }
                });
  }

  function emoticonsBox(txt){
        Effect.ScrollTo('cont')
        var grayb = document.getElementById("richiesta");
          var content = ""
              + "<div id=\"ric\" class=\"richiesta\">"
                + "<div class=\"headerrichiesta\">"
                  + "<div class=\"titlerichiesta\">Scegli set di emoticons</div>"
                  + "<div id=\"closeButtonDiv\" onclick=\"hideRichiesta()\"></div>"
                + "</div>"
                + "<div class=\"containerrichiesta\">";
                content += txt;
              content += "</div>"
              + "</div>"
            grayb.innerHTML=content;
            var size = getPageSizeWithScroll()
            new Insertion.After("ric", "<div id=\"maskRichiesta\" class=\"maskrichiesta\" style=\"height: "+size[1]+"px\"></div>");
            
            var scrollBox = new Element( 'div' ,{ 'id': 'imp-setScroll' });
            scrollBox.setStyle({
              'margin-bottom': '10px',
              'height' : '20px'
            });
            var div = new Element( 'div' ).update("Abilita spostamento automatico della pagina");
            div.setStyle({
              'float': 'left'
            });
            var checkBox = new Element( 'input' ,{ 'type':'checkbox', 'id':'imp-scrollCheckBox'});
            checkBox.setStyle({
              'float': 'right',
              marginRight: '250px'
            });
            if(Get_Cookie("scroll")=="true" || Get_Cookie("scroll")==null){
              checkBox.checked = true
            }
            scrollBox.appendChild(div)
            scrollBox.appendChild(checkBox)
            new Insertion.After('debug1', scrollBox)

          $('richiesta').style.visibility="visible"
          $('richiesta').show();
          Effect.Appear('maskRichiesta', { duration: 1.0, to: 0.8 });
          setTimeout("Effect.Appear('ric', { duration: 1.0, to: 0.99 })",500); 
          new Control.Slider('handle1', 'track1', {
            range: $R(21, 30),
            minimum: 21,
            maximum: 30,
            increment: 1,
            sliderValue: EMOTICON_DIM.substring(0,2),
            values: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
            onSlide: function(v) { $('test-emoticon').style.width = ''+v+'px'; $('debug1').innerHTML = v+"px"; },
            onChange: function(v) { $('test-emoticon').style.width = ''+v+'px'; $('debug1').innerHTML = v+"px"; }
          });
          
          $('debug1').innerHTML = EMOTICON_DIM;
          
          var img = document.createElement("img"); 
          img.setAttribute('src','images/emoticons/'+EMOTICON_STYLE+'/smile.png'); 
          img.setAttribute('id','test-emoticon'); 
          $('test-emo-cont').appendChild(img);
          
          $('test-emoticon').style.width = EMOTICON_DIM;
          $('test-emoticon').style.height = "auto";
  }
  
  function emoticonsSavePrefs(){
    if($('debug1').innerHTML!=""){
      Set_Cookie( 'emoticonsDim', $('debug1').innerHTML, 365, '/', '', '' );
      EMOTICON_DIM = $('debug1').innerHTML;
    }
    if($('imp-scrollCheckBox').checked==false)
      Set_Cookie("scroll",false,365, '/', '', '');
    else if($('imp-scrollCheckBox').checked==true)
      Set_Cookie("scroll",true,365, '/', '', '');
    
  }
  
/*****************************************
*
*  Javascript trim, ltrim, rtrim
*  http://www.webtoolkit.info/
*
*****************************************/
 
function trim(str, chars) {
  return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
  chars = chars || "\\s";
  return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
  chars = chars || "\\s";
  return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
/*****************************************
*
*  return an Array with page width and height
*
*****************************************/
function getPageSizeWithScroll(){
	if (window.innerHeight && window.scrollMaxY) {// Firefox
		yWithScroll = window.innerHeight + window.scrollMaxY;
		xWithScroll = window.innerWidth + window.scrollMaxX;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yWithScroll = document.body.scrollHeight;
		xWithScroll = document.body.scrollWidth;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		yWithScroll = document.body.offsetHeight;
		xWithScroll = document.body.offsetWidth;
  	}
	arrayPageSizeWithScroll = new Array(xWithScroll,yWithScroll);
	//alert( 'The height is ' + yWithScroll + ' and the width is ' + xWithScroll );
	return arrayPageSizeWithScroll;
}

/************************************
* Google Analitycs add AJAX stats
************************************/
Event.observe(window, 'load', function() {
 Ajax.Responders.register({
	onComplete: function(request){
		// Check if urchinTracker function is available.
		if(typeof(pageTracker._trackPageview) == 'function' && request && request.url){
			// Notice Analytics about the completed request.
			pageTracker._trackPageview(request.url);
		}
	 }
  });
});

function addGAStats(){
  if(typeof(pageTracker._trackPageview) === 'function'){
			// Notice Analytics about the completed request.
			pageTracker._trackPageview(window.location);
		}
}

/************************************
* Sistema di raccomandazione
************************************/
function getRecommendation(){
  // utente registrato
  if(Get_Cookie("sitoUserId")!="null"&&Get_Cookie("sitoUserId")!=""){
    var userId = Get_Cookie("sitoUserId")
    var post = "utenteid";
  }
  else if(Get_Cookie("userid")!="null"&&Get_Cookie("userid")!=""){
    // utente non registrato, ma utilizzatore di subitanime.it
    var userId = Get_Cookie("userid")
    var post = "userid";
  }
  else
    return false
    
  new Ajax.Request("admin_tools/elabUserPrefs.php", {
      method:       'post', 
      parameters:   post+"="+userId, 
      requestHeaders: {Accept: 'application/json'},
      asynchronous: true,
      onComplete:   function(transport){
                      if(transport.responseText!="empty"){
                          var obj = transport.responseText.evalJSON(true)
                          var output = "";
                          if(Get_Cookie("sitoUser")!="null"){
                            output += "Ciao <b>"+Get_Cookie("sitoUser")+"</b>! "
                          }
                          output += "SubITAnime ritiene che potrebbero piacerti anche le seguenti serie:<br>"
                          for(var i=0; i<obj.length; i++){
                            if(obj[i].id!=null){
                              output += "<a href=\"?stage=serie&id="+obj[i].id+"\" class=\"comm_text\" onclick=\"window.location = '#serie/"+obj[i].id+"'; return false;\">"+obj[i].nome+"</a>"
                              output += ", "
                            }
                          }
                          if(output.substring(output.length-2,output.length)==", ")
                            output = output.substring(0,output.length-2)
                            
                          if($('raccomandazione'))
                            var div = $('raccomandazione')
                          else{
                            var div = document.createElement("div");
                            div.setAttribute("id","raccomandazione");
                            div.style.fontSize = "12px";
                          }
                          var divHtml = "<div class=\"raccomandazione\">   "+output+"   </div>";
                          div.innerHTML = divHtml;
                          new Insertion.Top('newsDiv',div);
                      }
                    },
      onFailure: function(transport) {  }
  });
}

/********************************************
* Recensioni
*********************************************/
function writeReview(idSerie){
  Effect.ScrollTo("cont");
  var nomeSerie;
  new Ajax.Request("serie.php", {
    method:       'post', 
    parameters:   'nomeSerie=true&id='+idSerie, 
    asynchronous: true,
    onComplete:   function(transport){
                        nomeSerie = transport.responseText;
                        if($('rece-cont-title'))
                          $('rece-cont-title').innerHTML = "Scrivi una recensione di "+nomeSerie;
                        else{
                          setTimeout("$('rece-cont-title').innerHTML = 'Scrivi una recensione di "+nomeSerie+"'",1500);
                        }
                      },
    onFailure: function(transport) {  }
  });
  var grayb = document.getElementById("richiesta");
  var content = ""
      + "<div id=\"ric\" class=\"richiesta\">"
        + "<div class=\"headerrichiesta\">"
          + "<div class=\"titlerichiesta\" id=\"rece-cont-title\">Scrivi una recensione</div>"
          + "<div id=\"closeButtonDiv\" onclick=\"hideRichiesta()\"></div>"
        + "</div>"
        + "<div class=\"containerrichiesta\" style=\"text-align: center\">"
          + "Episodi visionati della serie: <input type=\"text\" id=\"ep_visti\" size=\"3\" maxlength=\"3\">"
          + "<textarea id=\"review"+idSerie+"\" class=\"input\" rows=\"10\" cols=\"55\"></textarea>"
          + "<div>Voto: <select id='votoSerie'>"
          + "<option value='0'>-<option value='1'>1<option value='2'>2<option value='3'>3<option value='4'>4<option value='5'>5"
          + "<option value='6'>6<option value='7'>7<option value='8'>8<option value='9'>9<option value='10'>10"
          + "</select>"
          + "<div id=\"receAlert\"></div>"
          + "<div><input type=\"submit\" value=\"Invia\" onclick=\"insertReview("+Get_Cookie("sitoUserId")+","+idSerie+",'review"+idSerie+"')\"></div>"
        + "</div>"
      + "</div>"
    grayb.innerHTML=content;
    var size = getPageSizeWithScroll()
  new Insertion.After("ric", "<div id=\"maskRichiesta\" class=\"maskrichiesta\" style=\"height: "+size[1]+"px\"></div>");
  $('richiesta').style.visibility="visible"
  $('richiesta').show()
  Effect.Appear('maskRichiesta', { duration: 1.0, to: 0.8 });
  setTimeout("Effect.Appear('ric', { duration: 1.0, to: 0.99 })",500);
}

function insertReview(idUser, idSerie, reviewContainer){
  var rc = $(reviewContainer);
  if($('ep_visti').value.length == 0){
    alert("Indica quanti episodi hai visto ;)");
    $('ep_visti').style.border = "solid red 2px";
    $('ep_visti').focus();
    return;
  }
  else if(rc.value == ""){
    alert("Scrivi una recensione nel campo di testo ;)");
    rc.style.border = "solid red 2px";
    rc.focus();
    return;
  }
  else if(rc.value.length < 200){
    alert("Scrivi almeno 200 caratteri per la recensione ;)");
    rc.style.border = "solid red 2px";
    rc.focus();
    return;
  }
  else if($('votoSerie').options[$('votoSerie').selectedIndex].value == 0){
    alert("Esprimi un voto per la serie ;)");
    $('votoSerie').style.border = "solid red 2px";
    $('votoSerie').focus();
    return;
  }
  var testo = rc.value;
  while(testo.indexOf("\n")!=-1){
    testo = testo.replace("\n","<br>");
  }
  testo = testo.replace(/\&/g,"'e-");
  testo = testo.replace(/\?/g,encodeURIComponent("?"));
  testo = testo.replace(/\"/g,"''");
  testo = testo.replace(/<a /g,"<a class=''comm_text'' ");
  
  
  var dati = { idUser: ""+idUser+"", idSerie: ""+idSerie+"", review: ""+testo+"", episodi: ""+$('ep_visti').value+"", voto: ""+$('votoSerie').options[$('votoSerie').selectedIndex].value+""};
  new Ajax.Request("recensioni.php", {
    method:       'post', 
    parameters:   'insert=true&data='+Object.toJSON(dati), 
    asynchronous: true,
    onComplete:   function(transport){
                        var t = transport.responseText;
                        if(t == "true"){
                          $('receAlert').style.color="green";
                          $('receAlert').innerHTML = "Ottimo intervento! ;) L'inserimento &egrave; avvenuto con successo! ;)";
                          setTimeout("hideRichiesta()",3000);
                        }
                        else{
                          $('receAlert').style.color="red";
                          $('receAlert').innerHTML = "Ops... si &egrave; verificato un problema. Ti prego salvare la tua recensione, di riprovare pi&ugrave; tardi o di contattare l'amministratore (webmaster@subitanime.it). Grazie.";
                        }
                      },
    onFailure: function(transport) {  }
  });
}

function showReviews(idSerie){
  var insert = ""
  new Ajax.Request("recensioni.php", {
      method:       'post',
      parameters:   'get=true&id='+idSerie, 
      asynchronous: true, 
      onComplete:   function(transport){
                        insert += "<div><img src=\"images/icon_hide.gif\" style=\"margin-left: 520px; cursor: pointer;\" onclick=\"Effect.SlideUp('reviews-box'); return false;\" title=\"Nascondi recensioni\"></div>"
                        insert += "<div style=\"text-align: left\"><a href=\"#\" onclick=\"addSeriePreferita("+idSerie+"); return false;\" class=\"comm_text small\">>> Aggiungi la serie ai preferiti</a></div>"
                        insert += "<h2 style=\"border-top: 1px dashed #D2DADA; border-bottom: 1px dashed #D2DADA; padding-bottom: 5px\">Recensioni</h2>"
                        if(transport.responseText=="empty") { return; }
                        else{
                          var items = transport.responseText.evalJSON(true);
                          var insert = '';
                          for (var i = 0 ; i < items.length ; i++) {
                            var item = items[i];
                            insert += "<div class=\"comm_container\" id=\"recensione-"+item.id+"\"><span class=\"comm_avatar_cont\">";
                            if(item.avatar=="") var avatar="default-avatar.gif";
                            else var avatar=item.avatar;
                            insert += "<img src=\"avatars/"+avatar+"\" class=\"comm_avatar\">"
                            insert += "</span>"
                            insert += "<span class=\"comm_text\">"
                              insert += "<div><strong>"
                              insert += "<a href='#utente/"+item.utente+"' class='comm_text'>"
                              insert += item.utente+"</a>"
                              insert += "</strong></div>"
                              insert += "<div><strong>Episodi visti: "+item.episodiVisti+"</strong></div>"
                              insert += "<div><strong>Voto: <span style=\"font-size: 1.2em\">"+item.voto+"</span></strong></div>"
                              insert += "<span>"+substituteEmoticons(item.recensione)+"</span>"
                              insert += "<span class=\"comm_data\">"+item.data+"</span>"
                            insert += "</span>"
                            insert += "</div>"
                          }
                        }
                        if(Get_Cookie("sitoUser") && Get_Cookie("sitoPass")){
                          if(Get_Cookie("sitoUser") != item.utente){
                            insert += "<br><div class=\"small\">Scrivi anche tu una <a href=\"#\" onclick=\"writeReview("+idSerie+"); return false;\" class=\"comm_text\">recensione</a>.<div>";
                            insert += "<div><img src=\"images/icon_hide.gif\" style=\"margin-left: 520px; cursor: pointer;\" onclick=\"$('reviews-box').hide();\" title=\"Nascondi recensioni\"></div>"
                          } 
                        }
                        else{
                          insert += substituteEmoticons("<div>Per scrivere una recensione devi essere registrato :)<br><b><a href=\"javascript:registrazione()\" class=\"comm_text\">Registrati subito e scopri tutte le nuove funzionalit&agrave;!</a></b></div><br>")
                        }
                      var rbox = document.createElement("div");
                      rbox.setAttribute("id","reviews-box");
                      rbox.style.display = "none";
                      rbox.innerHTML = insert;
                      $('infoserie').appendChild(rbox);
                      Effect.SlideDown('reviews-box');
                    },
                    onFailure: function(transport) { }
          });
}

/********************************************
* PM
*********************************************/
function sendPM(idUtente,idPM){
  if(Get_Cookie("sitoUser") && Get_Cookie("sitoPass")){
    Effect.ScrollTo("cont");
    var nomeUtente;
    new Ajax.Request("utente.php", {
      method:       'post', 
      parameters:   'getNome=true&idUtente='+idUtente, 
      asynchronous: true,
      onComplete:   function(transport){
                          nomeUtente = transport.responseText;
                          if($('pm-cont-title'))
                            $('pm-cont-title').innerHTML = "Messaggio Privato per "+nomeUtente;
                          else{
                            setTimeout("$('pm-cont-title').innerHTML = 'Messaggio Privato per "+nomeUtente+"'",1500);
                          }
                        },
      onFailure: function(transport) {  }
    });
    var grayb = document.getElementById("richiesta");
    var possibleText="";
    if(idPM){
      var titleValue = "RE: "+$("pm-"+idPM+"-title").innerHTML;
      if(JSON_PM!="empty"){
        // prendo il testo del PM per quotarlo
        JSON_PM = JSON_PM.evalJSON(true);
        for( var i = 0; i < JSON_PM.length; i++ ){
          if(JSON_PM[0][i].idPM == idPM){
            possibleText = "[QUOTE]"+JSON_PM[0][i].text+"[/QUOTE]";
            break;
          }
        }
      }
    }
    else
      var titleValue = "";
    var content = ""
        + "<div id=\"ric\" class=\"richiesta\">"
          + "<div class=\"headerrichiesta\">"
            + "<div class=\"titlerichiesta\" id=\"pm-cont-title\">Messaggio Privato</div>"
            + "<div id=\"closeButtonDiv\" onclick=\"hideRichiesta()\"></div>"
          + "</div>"
          + "<div class=\"containerrichiesta\" style=\"text-align: center\">"
            + "Titolo: <input type=\"text\" id=\"pm-title\" size=\"30\" maxlength=\"150\" value=\""+titleValue+"\">"
            + "<textarea id=\"pm"+idUtente+"\" class=\"input\" rows=\"10\" cols=\"55\">"+possibleText+"</textarea>"
            + "<div id=\"pmAlert\"></div>"
            + "<div><input type=\"submit\" value=\"Invia\" onclick=\"insertPM("+Get_Cookie("sitoUserId")+","+idUtente+",'pm"+idUtente+"')\"></div>"
          + "</div>"
        + "</div>"
      grayb.innerHTML=content;
      var size = getPageSizeWithScroll()
    new Insertion.After("ric", "<div id=\"maskRichiesta\" class=\"maskrichiesta\" style=\"height: "+size[1]+"px\"></div>");
    $('richiesta').style.visibility="visible"
    $('richiesta').show()
    Effect.Appear('maskRichiesta', { duration: 1.0, to: 0.8 });
    setTimeout("Effect.Appear('ric', { duration: 1.0, to: 0.99 })",500);
  }
  else{
    registrazione();
  }
}

function insertPM(idMittente, idDestinatario, pmTextContainer){
  var rc = $(pmTextContainer);
  if($('pm-title').value.length == 0){
    alert("Indica un titolo ;)");
    $('pm-title').style.border = "solid red 2px";
    $('pm-title').focus();
    return;
  }
  else if(rc.value == ""){
    alert("Scrivi il messaggio da inviare ;)");
    rc.style.border = "solid red 2px";
    rc.focus();
    return;
  }
  else if(rc.value.length < 2){
    alert("Sicuro che il messaggio sia questo? ;)");
    rc.style.border = "solid red 2px";
    rc.focus();
    return;
  }
  var testo = rc.value;
  testo = testo.replace(/\&/g,"'e-")
  testo = testo.replace(/\?/g,encodeURIComponent("?"))
  testo = testo.replace(/\"/g,"''")
  testo = testo.replace(/<a /g,"<a class=''comm_text'' ")
  
  $('pmAlert').innerHTML = "<img src=\"images/ajax-loader_small.gif\">"
  
  var dati = { from: ""+idMittente+"", to: ""+idDestinatario+"", title: ""+$('pm-title').value+"", text: ""+testo+""};
  new Ajax.Request("pm.php", {
    method:       'post', 
    parameters:   'insert=true&data='+Object.toJSON(dati), 
    asynchronous: true,
    onComplete:   function(transport){
                        var t = transport.responseText;
                        if(t == "true"){
                          $('pmAlert').style.color="green";
                          $('pmAlert').innerHTML = "Il messaggio &egrave; stato inviato con successo! ;)";
                          setTimeout("hideRichiesta()",3000);
                        }
                        else{
                          $('pmAlert').style.color="red";
                          $('pmAlert').innerHTML = "Ops... si &egrave; verificato un problema :( Ti prego salvare il tuo messaggio, di riprovare pi&ugrave; tardi o di contattare l'amministratore (webmaster@subitanime.it). Grazie.";
                        }
                      },
    onFailure: function(transport) {  }
  });
}
/*******************************
* Funzioni della Bacheca
*******************************/
var BACHECA_LAST_UPDATE = Math.round(new Date().getTime()/1000.0);
var NEXT_LIMIT = 5;
var BACHECA_TIMER = setInterval("requestBachecaMexs('', true);", 300000);

function insertMexToBacheca(){
	testo = $('bachecaMex').value;
	testo = trim(testo," ");
	if(testo == ""){
		$('bachecaMex').focus();
		return;
	}
	testo = testo.replace(/\&/g,"'e-");
	//testo = testo.replace(/\?/g,encodeURIComponent("?"));
	testo = testo.replace(/\"/g,"''");
	testo = testo.replace(/<a /g,"<a class=''comm_text'' ");
	while(testo.indexOf("\n")!=-1){
		testo = testo.replace("\n","<br>");
	}
	testo = encodeURIComponent(testo);
	var dati = { testo: ""+testo+"" };
	var dati = { testo: ""+testo+""};
	if($('bachecaMex').getAttribute("reply") != null && $('bachecaMex').getAttribute("reply") != ""){
		var reply = "&reply="+$('bachecaMex').getAttribute("reply");
	}
	else{
		var reply = "";
	}
	new Ajax.Request("bacheca.php", {
    method:       'post', 
    parameters:   'id='+Get_Cookie('sitoUserId')+'&data='+Object.toJSON(dati)+"&action=put"+reply, 
    asynchronous: true,
    onComplete:   function(transport){
    	if(transport.responseText == "true"){
    		$('bachecaMex').value = "";
    		removeReply();
    		requestBachecaMexs();
    	}
    }
  });
}

function setReply(id, el, nick){
	document.getElementById('bachecaMex').setAttribute('reply',id);
	$('bachecaMex').focus();
	el.parentNode.parentNode.parentNode.highlight();
	var span = document.createElement("span");
	span.setAttribute('id','bacReplyTo');
	span.setAttribute('style','float: right');
	span.innerHTML= "Stai rispondendo a "+nick+" <img src='images/icon_delete.2.png' onclick='removeReply(); return false;' style='cursor: pointer'>";
	$('bacSubtitle').appendChild(span);
	Effect.ScrollTo('bac-title');
}
function removeReply(){
	if($('bachecaMex').getAttribute("reply")){
		$('bachecaMex').setAttribute("reply","");
	}
	if($('bacReplyTo')){
		$('bacReplyTo').parentNode.removeChild($('bacReplyTo'));
	}
}

function requestBachecaMexs(num, noalert){
	if($('bachecaMex')){
		if($('bachecaMex').getAttribute("reply")){
			$('bachecaMex').setAttribute("reply","");
		}
	}
	if(num != null && num != ""){
		var limit = "&limit="+num;
		NEXT_LIMIT = num;
	}else{ var limit = "&limit="+NEXT_LIMIT; }
	new Ajax.Request("bacheca.php", {
    method:       'post', 
    parameters:   'action=get'+limit, 
    asynchronous: true,
    onComplete:   function(transport){
    	$('bac-posts').innerHTML = transport.responseText;
    	if(noalert != true){
    		$('messagesBox').innerHTML="Operazione completata";
				$('messagesBoxMask').appear();
				setTimeout("Effect.Fade(\"messagesBoxMask\", { duration: 3.0 })",5000);
			}
    }
  });
}



/*******************************
* Funzioni della Chat
*******************************/
// margine in pixel dei box
if(BrowserDetect.browser=="Opera")
  var MARGINE_BOX = 0;
else
  var MARGINE_BOX = 1;
  
var BAR_COLOR = "#F1C594";
var chatObj;
var CURRENT_WIN_WIDTH = '';
function showChatBar(){
  chatObj = new chatUsers();
  var chatBar = new Element('div' , { 'id': 'barChatContainer' });
  chatBar.setStyle({
    fontSize: '.9em',
    position: 'fixed',
    width: document.viewport.getWidth()-20+'px',
    height: '25px',
    marginLeft: '10px',
    bottom: '0',
  });

  var onlineUserPanel = new Element('div' , { 'id': 'barChatOnlineUserPanel' });
  onlineUserPanel.setAttribute("onmouseover","$('chat-online-text').style.color='black'");
  onlineUserPanel.setAttribute("onmouseout","$('chat-online-text').style.color='white'");
  onlineUserPanel.update("<a id=\"chat-online-text\" href=\"#\" onclick=\"showOnlineUsers(this); return false;\" class=\"chat\">Online (0)</a>");
  
  var chatBarLogo = new Element('div' , { 'id': 'barChatLogo' }).update("<b><a href=\"#\" onclick=\"getOnlyOnlineUsers(); return false;\" class=\"chat\">SA Chat <span style=\"font-size: .8em; color: #26E2E9\">beta</span></a></b>");
  var onlineUserDiv = new Element('div' , { 'id': 'barChatOnlineUser' });
  onlineUserDiv.setStyle({
    marginLeft: document.viewport.getWidth()-10-1-150+'px',
    display: 'none'
  });
  CURRENT_WIN_WIDTH = document.viewport.getWidth();
  
  // contiene gli utenti online
  var onlineUserContainer = new Element('div' , { 'id': 'barChatOnlineUserContainer' });
  onlineUserDiv.appendChild(onlineUserContainer);
  
  var audioDiv = new Element('div', {'id': 'chatAudioDiv'}).update("<div id=\"chatAudioLabel\">Segnale acustico</div><div id=\"chatAudioButton\" onclick=\"toggleChatAudio();\"></div>");
  onlineUserDiv.appendChild(audioDiv);  
  
  // Observer della dimensione della finestra
  setInterval('checkWinWidth()',500);
  
  chatBar.appendChild(onlineUserPanel);
  chatBar.appendChild(chatBarLogo);
  
  var body = document.getElementsByTagName('body')[0];
  body.appendChild(chatBar);
  body.appendChild(onlineUserDiv);
  
}

function toggleChatAudio(){
  if(SOUND_ACTIVE){
    SOUND_ACTIVE = false;
    $('chatAudioButton').style.backgroundPosition= '-90px -25px';
  }
  else{
    SOUND_ACTIVE = true;
    $('chatAudioButton').style.backgroundPosition= '-90px 0px';
  }
}

var oldDifference = '';
// Window width observer
function checkWinWidth(){
  if(parseInt(document.viewport.getWidth()) != parseInt(CURRENT_WIN_WIDTH)){
    $('barChatContainer').setStyle({
      width: document.viewport.getWidth()-20+'px'
    });
    $('barChatOnlineUser').setStyle({
      marginLeft: document.viewport.getWidth()-10-1-150+'px'
    });
    
    var difference = parseInt(document.viewport.getWidth()) - parseInt(CURRENT_WIN_WIDTH);
    if(oldDifference == ''){
      oldDifference = difference;    
    }
    else{
      if(oldDifference != difference){
        setTimeout("moveChatBoxes()",50); 
      }
      oldDifference = difference;
    }
  }
}

var hiddenBoxes = new Array();
function moveChatBoxes(){
  // se ci sono le frecce le rimuovo
  if($('rowChatRight'))
    $('barChatContainer').removeChild($('rowChatRight'));
    
  if($('rowChatLeft'))
    $('barChatContainer').removeChild($('rowChatLeft'));
      
  var body = document.getElementsByTagName('body')[0];
  var boxes = body.getElementsBySelector('[sub-attr="chat-box"]');

  // -30 i box delle due frecce
  // -20 rientro della barra
  // -90 SA CHAT beta
  // -100 Online
  if( (boxes.length*180) < (document.viewport.getWidth()-20-90-100-30) ){
    toLog("le finestre di chat ci stanno tutte");
    // le finestre di chat ci stanno tutte
    var panels = body.getElementsBySelector('[sub-attr="chat-panel"]');
    for( var i = 0; i < boxes.length; i++ ){
      boxes[i].setStyle({
        marginLeft: ''+(findPosX(panels[i])+ MARGINE_BOX)+'px'
      });
    }
  }
  else{
    toLog("le finestre di chat non ci stanno tutte");
    // le finestre di chat non ci stanno tutte
    var hidePanelCounter = 0;
    // conto quante finestre nascondere
    for(var i=1; i<10; i++){
      if( ((boxes.length - i)*180) < (document.viewport.getWidth()-20-90-100-30) ){
        hidePanelCounter = i;
        break;
      }
    }
    //toLog("devo nascondere: "+hidePanelCounter+" finestre di chat");
    for(var i = boxes.length-1; i > boxes.length-1-hidePanelCounter; i--){
      boxes[i].hide();
    }
    
    // inserisco le frecce
    var rowRx = new Element('div' , { 'id': 'rowChatRight' });
    rowRx.setAttribute("onmouseover","$('chat-row-right').style.color='black'");
    rowRx.setAttribute("onmouseout","$('chat-row-right').style.color='white'");
    rowRx.update("<a id=\"chat-row-right\" href=\"#\" onclick=\"showRightChatPanel(); return false;\" class=\"chat\">></a>");
    
    var rowLx = new Element('div' , { 'id': 'rowChatLeft' });
    rowLx.setAttribute("onmouseover","$('chat-row-left').style.color='black'");
    rowLx.setAttribute("onmouseout","$('chat-row-left').style.color='white'");
    rowLx.update("<a id=\"chat-row-left\" href=\"#\" onclick=\"showLeftChatPanel(); return false;\" class=\"chat\"><</a>");
    
    if(!$('rowChatRight'))
      $('barChatContainer').insertBefore(rowRx, $('barChatLogo').nextSibling);
      
    if(!$('rowChatLeft')){
      $('barChatContainer').insertBefore(rowLx, $('barChatContainer').childNodes[boxes.length-hidePanelCounter+3]);
    }
    else{
      $('barChatContainer').removeChild($('rowChatLeft'));
      $('barChatContainer').insertBefore(rowLx, $('barChatContainer').childNodes[boxes.length-hidePanelCounter+3]);
    }
    
    // sposto i pannelli di chat
    var panels = body.getElementsBySelector('[sub-attr="chat-panel"]');
    for( var i = 0; i < boxes.length; i++ ){
      boxes[i].setStyle({
        marginLeft: ''+(findPosX(panels[i])+ MARGINE_BOX)+'px'
      });
    }
    
    // salvo gli id dei pannelli di chat e li nascondo
    for(var i = boxes.length-1; i > boxes.length-1-hidePanelCounter; i--){
      hiddenBoxes.push(boxes[i]);
      var arr = boxes[i].getAttribute("id").split("-");
      var id = arr[arr.length-1];
      hideUserChat(id);
    }
  }
}
// la chat + a destra ha i 3
function showRightChatPanel(){
  var id = $('barChatContainer').childNodes[3].getAttribute("id");
  var arr =id.split("-");
  var num = arr[arr.length-1];
  hideUserChat(num);
  // chat bar
  var child = $('barChatContainer').childNodes[3]; 
  $('barChatContainer').removeChild(child);
  $('barChatContainer').appendChild(child);
  
  // sposto i pannelli di chat
  var body = document.getElementsByTagName('body')[0];
  var panels = body.getElementsBySelector('[sub-attr="chat-panel"]');
  for( var i = 0; i < panels.length; i++ ){
    var stringId = panels[i].getAttribute("id");
    var arr = stringId.split("-");
    var id = arr[arr.length-1];
    var box = $('user-chat-box-'+id);
    box.setStyle({
      marginLeft: ''+(findPosX(panels[i])+ MARGINE_BOX)+'px'
    });
  }
  
  moveChatBoxes();
}

function showLeftChatPanel(){
  // chat bar
  var lastChild = $('barChatContainer').lastChild;
  $('barChatContainer').removeChild(lastChild);
  $('barChatContainer').insertBefore(lastChild, $('barChatContainer').childNodes[3]);
  
  // sposto i pannelli di chat
  var body = document.getElementsByTagName('body')[0];
  var panels = body.getElementsBySelector('[sub-attr="chat-panel"]');
  for( var i = 0; i < panels.length; i++ ){
    var stringId = panels[i].getAttribute("id");
    var arr = stringId.split("-");
    var id = arr[arr.length-1];
    var box = $('user-chat-box-'+id);
    box.setStyle({
      marginLeft: ''+(findPosX(panels[i])+ MARGINE_BOX)+'px'
    });
  }
  
  moveChatBoxes();
}

Array.min = function( array ){
    return Math.min.apply( Math, array );
};
function insertAfter(parent, node, referenceNode) {
  parent.insertBefore(node, referenceNode.nextSibling);
}

function resetChatTimer(time){
  clearInterval(chatObj.interval);
  chatObj.intervalTime = time;
  chatObj.interval = setInterval("checkForNewMex()",chatObj.intervalTime);
}

var chatFirstMexArrived = false;
function checkForNewMex(){
  new Ajax.Request("chat.php", {
    method:       'post', 
    parameters:   'ajax_chat=true&id='+Get_Cookie('sitoUserId'), 
    asynchronous: true,
    onComplete:   function(transport){
                      if(transport.responseText.indexOf("Warning") == -1){
                        
                        // by default the timer time is 15000 (15 secs)
                        // here, when I received a mex, I set it to 3000 (3 secs)
                        resetChatTimer(3000);
                        chatObj.noMexCounter = 0;
                        chatFirstMexArrived = true;
                        
                        // play the new mex sound
                        if(SOUND_ACTIVE){
                          Sound.playSound(Sound.SOUNDchatNewMex);
                        }
                        
                        var tmp = transport.responseText.replace(/\\/g,"");
                        var json = tmp.evalJSON(true);
                        toLog(json.length);
                        for( var i = 0; i < json.length; i++ ){
                          var fromName = chatObj.getNick(json[i].from);
                          toLog(json[i].from)
                          toLog(fromName)
                          if(!fromName){
                            new Ajax.Request("utente.php", {
                              method:       'post', 
                              parameters:   'getNome=true&idUtente='+json[i].from, 
                              asynchronous: false,
                              onComplete:   function(transport){
                                fromName = transport.responseText;
                              }
                            });
                            var fromId = json[i].from
                            addUserChat(fromName,fromId);
                            toChat(fromId,fromName,json[i].message);
                          }
                          else{
                            var fromId = json[i].from
                            addUserChat(fromName,fromId);
                            toChat(fromId,fromName,json[i].message);
                          }
                          // avviso nel title  che hanno scritto
                          if(pageTitleTimer != ''){
                            clearInterval(pageTitleTimer);
                          }
                          pageTitleTimer = setInterval("changePageTitle('"+fromName+"')",1500);
                        }
                      }
                      else{
                        chatObj.noMexCounter++;
                        if(chatFirstMexArrived){
                          if(chatObj.noMexCounter == 70){
                            resetChatTimer(15000);
                            toLog("timer a 15 secondi");
                          }
                          else if(chatObj.noMexCounter == 50){
                            resetChatTimer(10000);
                            toLog("timer a 10 secondi");
                          }
                          else if(chatObj.noMexCounter == 30){
                            resetChatTimer(5000);
                            toLog("timer a 5 secondi");
                          }
                        }
                      }
                   }
    });
}
function showOnlineUsers(el){ 
  $('barChatOnlineUser').show();
  el.setAttribute("onclick", "hideOnlineUsers(this); return false;");
  $('barChatOnlineUserPanel').setStyle({
    backgroundImage: 'url(images/chat/chat_bar_background-over.png)',
    borderRight: '1px solid black',
    borderLeft: '1px solid black',
    borderBottom: '1px solid black',
    height: '18px',
  });
  $('chat-online-text').setStyle({
    color: 'black'
  });
}
function hideOnlineUsers(el){
  $('barChatOnlineUser').hide();
  el.setAttribute("onclick","showOnlineUsers(this); return false;");
  $('barChatOnlineUserPanel').setStyle({
    backgroundImage: '',
    backgroundColor: '',
    borderLeft: '1px solid #CCCCCC',
    borderRight: '',
    height: '24px',
  });
  $('chat-online-text').setStyle({
    color: ''
  });
}

function addUserChat(userNick, userId){
  /* controllo che una chat, con tale utente, non sia già aperta */
  if(chatObj.checkChat(userId,userNick)){
    /* pannellino nella barra chat */
    var userChatPanel = new Element('div' , { 'id': 'user-chat-panel-'+userId, 'class':'barChatPanel','sub-attr':'chat-panel' });
    userChatPanel.update("<a href=\"#\" id=\"user-chat-"+userId+"\" style=\"float: left; padding-left: 5px;\"><b>"+userNick+"</b></a><div class=\"chat-remove\" onclick=\"removeUserChatPanel("+userId+"); return false;\"></div>");
    userChatPanel.setStyle({
      backgroundImage: 'url(images/chat/chat_bar_background-over.png)',
      borderRight: '1px solid black',
      borderLeft: '1px solid black',
      borderBottom: '1px solid black',
      height: '18px',
      width: '180px',
    });
    
    $('barChatContainer').appendChild(userChatPanel);
    
    /* box di chat */
    var userChat = new Element('div' , { 'id': 'user-chat-box-'+userId, 'class': 'chatUserBox','sub-attr':'chat-box' });
    //Element.clonePosition(userChat, $('user-chat-panel-'+userId), { 'setLeft': 'true'});
    userChat.setStyle({
      marginLeft: ''+(findPosX($('user-chat-panel-'+userId))+ MARGINE_BOX)+'px',
      display: 'none',
      opacity: '0.85',
    });
    
    var userAvatarBox = new Element('div' , { 'id': 'user-chat-avatar-box-'+userId, 'class': 'chatUserAvatarBox' });
    var userAvatarNick = new Element('div' , { 'id': 'user-chat-avatar-nick-'+userId, 'class': 'chatUserAvatarNick' });
    userAvatarNick.update("<a href='#utente/"+userNick+"' class='comm_text'>"+userNick+"</a>");
    var userAvatarSpan = new Element('span' , { 'class': 'comm_avatar_cont' });
    var userAvatarImg = new Element('img' , { 'id':'user-chat-avatar-'+userId, 'src':'images/ajax-loader3.gif', 'class': 'comm_avatar' });
    userAvatarImg.setStyle({
      width: '25px',
      height: '25px'
    });
    userAvatarSpan.appendChild(userAvatarImg);
    userAvatarBox.appendChild(userAvatarSpan);
    userAvatarBox.appendChild(userAvatarNick);
    userChat.appendChild(userAvatarBox);
    new Ajax.Request("avatar.php", {
        method:       'post', 
        parameters:   'userId='+userId, 
        asynchronous: true,
        onComplete:   function(transport){
                          if(transport.responseText == ''){
                            $('user-chat-avatar-'+userId).setAttribute("src","avatars/default-avatar.gif");
                          }
                          else{
                            $('user-chat-avatar-'+userId).setAttribute("src","avatars/"+transport.responseText+"?"+Date.parse(new Date()));
                          }
                       },
        onFailure: function(transport) {  }
        });
    
    
    /* spazio in cui compaiono le chattate */
    var chatDiv = new Element('div' , { 'id': 'user-chat-box-space-'+userId, 'class': 'chatSpace' });
    userChat.appendChild(chatDiv);
    /* spazio in cui scrivere il testo di chat */
    var chatForm = new Element('form' , { 'id':'user-chat-form-'+userId, 'onSubmit':'sendMex('+userId+'); toChat('+userId+'); return false;' });
    var chatInputDiv = new Element('div' , { 'id':'user-chat-input-div-'+userId, 'class':'chatInputDiv' });
    var chatInputText = new Element('input' , { 'type':'text', 'id':'user-chat-box-input-'+userId, 'class':'chatInput' });
    chatForm.appendChild(chatInputDiv);
    chatInputDiv.appendChild(chatInputText);
    userChat.appendChild(chatForm);
        
    var body = document.getElementsByTagName("body")[0];
    body.appendChild(userChat);
    showUserChat(userId);
    
    // controllo se ci son frecce e agisco di conseguenza
    moveChatBoxes();
  }
}
function toChat(userId, userName, testo){
  if(!userName){
    var mittente = "Io";
    var text = $('user-chat-box-input-'+userId).value;
  }
  else{
    var mittente = userName;
    var text= testo;
  }
  var chatLineDiv = new Element('div' , { 'id':'user-chat-line-div-'+userId, 'class':'chatLine' }).update("<b>"+mittente+":</b> "+text);
  $('user-chat-box-space-'+userId).appendChild(chatLineDiv);
  $('user-chat-box-space-'+userId).scrollTop=$('user-chat-box-space-'+userId).scrollHeight ;
  if(!userName)
    $('user-chat-box-input-'+userId).value = "";
  if($('user-chat-box-'+userId).style.display == 'none'){
    if(!chatObj.checkUserTimer(userId)){
      chatObj.setChatColorQueue(userId, CHAT_COLOR);
      var colorTimer = setInterval("switchChatColor('"+userId+"')",800);    
      var aOnClick = $('user-chat-'+userId).parentNode.getAttribute("onclick");
      $('user-chat-'+userId).parentNode.setAttribute("onclick","removeTimerFromId('"+userId+"'); "+aOnClick );
      chatObj.storeUserTimer(userId, colorTimer);
    }
  }
}
var CHAT_COLOR = "#45D7DD";
function switchChatColor(userId){
  $('user-chat-'+userId).style.color = chatObj.getChatColorQueue(userId);
  if(chatObj.getChatColorQueue(userId) == CHAT_COLOR){
    chatObj.setChatColorQueue(userId,"white");
  }
  else{
    chatObj.setChatColorQueue(userId,CHAT_COLOR);
  }
}
function removeTimerFromId(userId){
  clearInterval(chatObj.getTimerFromId(userId));
  chatObj.removeUserTimer(userId);
}
function sendMex(destId){
  // speed up the checkForNewMex timer
  resetChatTimer(3000);
  
  // booleano utilizzato in checkForNewMex()
  chatFirstMexArrived = true;
  
  var testo = $('user-chat-box-input-'+destId).value;
  if(testo != ""){
    testo = testo.replace(/\&/g,"'e-")
    testo = testo.replace(/\?/g,encodeURIComponent("?"))
    testo = testo.replace(/\"/g,"''")
    var mex = '[{ "from":"'+Get_Cookie("sitoUserId")+'", "to":"'+destId+'", "message":"'+testo+'", "timestamp":"'+Math.round(new Date().getTime()/1000.0)+'" }]';
    new Ajax.Request("chat.php", {
        method:       'post', 
        parameters:   'message='+mex+'&dest='+destId, 
        asynchronous: true,
        onComplete:   function(transport){
                          },
        onFailure: function(transport) {  }
        });
  }
}
function removeUserChatPanel(userId){
  $('user-chat-box-'+userId).parentNode.removeChild($('user-chat-box-'+userId));
  $('user-chat-panel-'+userId).parentNode.removeChild($('user-chat-panel-'+userId));
  chatObj.removeUserChat(userId);
  var body = document.getElementsByTagName('body')[0];
  var boxes = body.getElementsBySelector('[sub-attr="chat-box"]');
  var panels = body.getElementsBySelector('[sub-attr="chat-panel"]');
  for( var i = 0; i < boxes.length; i++ ){
    boxes[i].setStyle({
      marginLeft: ''+(findPosX(panels[i])+ MARGINE_BOX)+'px'
    });
  }
  
  // controllo se ci son frecce e agisco di conseguenza
  moveChatBoxes();
}
function showUserChat(elId){
  // riposiziono il pannello di chat
  var panel = $('user-chat-panel-'+elId);
  var box = $('user-chat-box-'+elId);
  box.setStyle({
    marginLeft: ''+(findPosX(panel)+ MARGINE_BOX)+'px'
  });
  
  $('user-chat-box-'+elId).show();
  $('user-chat-panel-'+elId).setAttribute("onclick", "hideUserChat('"+elId+"'); return false;");
  $('user-chat-panel-'+elId).setStyle({
    backgroundImage: 'url(images/chat/chat_bar_background-over.png)',
    borderRight: '1px solid black',
    borderLeft: '1px solid black',
    borderBottom: '1px solid black',
    height: '18px',
  });
  $('user-chat-'+elId).setStyle({
    color: 'black'
  });
  $('user-chat-box-space-'+elId).scrollTop=$('user-chat-box-space-'+elId).scrollHeight;
  if($('user-chat-box-input-'+elId))
    $('user-chat-box-input-'+elId).focus();
}
function hideUserChat(elId){
  toLog("ho nascosto"+elId);
  $('user-chat-box-'+elId).hide();
  $('user-chat-panel-'+elId).setAttribute("onclick", "showUserChat('"+elId+"'); return false;");
  $('user-chat-panel-'+elId).setStyle({
    backgroundImage: '',
    backgroundColor: '',
    borderLeft: '1px solid #CCCCCC',
    borderRight: '',
    height: '24px',
  });
  $('user-chat-'+elId).setStyle({
    color: 'white'
  });
}

function setChatBarVars(dati){
  var res = dati.split(",");
  var onlineUserCounter = (res.length)-2;
  
  /* chat timer */
  if(res.length > 2){
    // c'è più di 1 utente online
    if(chatObj.interval == ''){
      checkForNewMex();
      chatObj.interval = setInterval("checkForNewMex()",chatObj.intervalTime);
      toLog("parte il timer chat! perché c'è più di 1 utente online");
    }
  }
  else{
    // c'è 1 solo utente online... fermo/non lancio il timer
    clearInterval(chatObj.interval);
    chatObj.interval = '';
      toLog("chat timer stoppato, c'è 1 utente online");
  }
  
  $('barChatOnlineUserPanel').update("<a id=\"chat-online-text\" href=\"#\" onclick=\"showOnlineUsers(this); return false;\" class=\"chat\">Online ("+onlineUserCounter+")</a>");
  var output = "";
  for(var i=0; i<res.length;i++){
    if(res[i]!=""){
        var data = res[i].split("#");
        var nomeUtente = data[0];
        var idUtente = data[1];
        // aggiungo l'utente alla lista di utenti dell'oggetto
        chatObj.addUser(idUtente,nomeUtente);
        // controllo se c'è una sua finestra di chat aperta
        if($('user-chat-input-div-'+idUtente)){
          var chatForm = $('user-chat-input-div-'+idUtente).parentNode;
          chatForm.removeChild($('user-chat-input-div-'+idUtente));
          var chatInputDiv = new Element('div' , { 'id':'user-chat-input-div-'+idUtente, 'class':'chatInputDiv' });
          var chatInputText = new Element('input' , { 'type':'text', 'id':'user-chat-box-input-'+idUtente, 'class':'chatInput' });
          chatForm.appendChild(chatInputDiv);
          chatInputDiv.appendChild(chatInputText);
        }
        if(nomeUtente != Get_Cookie('sitoUser'))
          output += "<div class='utente-online-chat' onclick='addUserChat(\""+nomeUtente+"\","+idUtente+"); return false;'>"+nomeUtente+"</div>";
      }
  }
  $('barChatOnlineUserContainer').update(output);
  for(var o=0; o < chatObj.openChat.length; o++){
    var counter = 0;
    var nomeUtente;
    var idUtente;
    for(var i=0; i < res.length; i++){
      if(res[i]!=""){
        var data = res[i].split("#");
        nomeUtente = data[0];
        idUtente = data[1];
        if(idUtente != chatObj.openChat[o]){
          toLog(idUtente +" != "+chatObj.openChat[o]);
          counter++;
        }
      }
    }
    toLog(counter);
    toLog(parseInt(res.length)-1);
    if(counter == parseInt(res.length)-1)
      setUserOffline(chatObj.openChat[o]);
  }
}

function setUserOffline(userId){
  $('user-chat-input-div-'+userId).update("<span style=\"margin: 5px; font-style: italic\">Utente offline</span>");
  $('user-chat-input-div-'+userId).setStyle({
    backgroundColor: '#C4CBCB',
    color: '#333737'
  });
}

var changePageTitleCounter = 0;
var oldTitle = '';
var pageTitleTimer = '';
function changePageTitle(user){
  if(changePageTitleCounter == 0){
    oldTitle = document.title;
  }
  if(changePageTitleCounter % 2){
    document.title = user+" dice....";
  }
  else{
    document.title = oldTitle;
  }
  changePageTitleCounter++;
  if(changePageTitleCounter == 10){
    clearInterval(pageTitleTimer);
    document.title = oldTitle;
    changePageTitleCounter = 0;
  }

}

/* Oggetto che contiene le info su chat aperte e online users */
function chatUsers(){
  // contiene gli ID degli utenti con cui è aperta una chat
  this.openChat = new Array();
  this.userList = new Array();
  this.online = new Array();
  this.pulsateTimers = new Array();
  this.chatColorQueue = new Array();
  this.checkChat = checkOpenChat;
  this.removeUserChat = removeUser;
  this.getNick = getNickFromId;
  this.addUser = addUserToList;
  this.interval = '';
  this.intervalTime = 15000;
  this.noMexCounter = 0;
  this.storeUserTimer = storeUserTimer;
  this.removeUserTimer = removeUserTimer;
  this.checkUserTimer = checkUserTimer;
  this.getTimerFromId = getTimerFromId;
  this.getChatColorQueue = getChatColorQueue;
  this.setChatColorQueue = setChatColorQueue;
  
  function checkOpenChat(idUser,nickUser){
    for( var i = 0; i < this.openChat.length; i++ ){
      if(this.openChat[i] == idUser){
        return false;
        break;
      }
    }
    this.openChat.push(idUser);
    return true;
  }
  function removeUser(idUser){
    for( var i = 0; i < this.openChat.length; i++ ){
      if(this.openChat[i] == idUser){
        this.openChat.splice(i,1);
        break;
      }
    }
  }
  function getNickFromId(userId){
    for( var i = 0; i < this.userList.length; i++ ){
      if(this.userList[i].id == userId){
        return this.userList[i].nick;
        break;
      }
    }
    return false;
  }
  function addUserToList(userId,userNick){
    for( var i = 0; i < this.userList.length; i++ ){
      if(this.userList[i].id == userId){
        return;
        break;
      }
    }
    var user = new Utente(userId,userNick);
    this.userList.push(user);
  }
  function storeUserTimer(userId,timer){
    for( var i = 0; i < this.pulsateTimers.length; i++ ){
      if(this.pulsateTimers[i].userId == userId){
        return;
        break;
      }
    }
    var timer = new Timer(userId,timer);
    this.pulsateTimers.push(timer);
  }
  function removeUserTimer(userId){
    for( var i = 0; i < this.pulsateTimers.length; i++ ){
      if(this.pulsateTimers[i].userId == userId){
        this.pulsateTimers.splice(i,1);
        break;
      }
    }
  }
  function checkUserTimer(userId){
    for( var i = 0; i < this.pulsateTimers.length; i++ ){
      if(this.pulsateTimers[i].userId == userId){
        return true;
        break;
      }
    }
    return false;
  }
  function getTimerFromId(userId){
    for( var i = 0; i < this.pulsateTimers.length; i++ ){
      if(this.pulsateTimers[i].userId == userId){
        return this.pulsateTimers[i].timerId;
        break;
      }
    }
    return false;
  }
  function setChatColorQueue(userId, color){
    for( var i = 0; i < this.chatColorQueue.length; i++ ){
      if(this.chatColorQueue[i].userId == userId){
        this.chatColorQueue[i].color = color;
        return true;
        break;
      }
    }
    var color = new Color(userId,color);
    this.chatColorQueue.push(color);
    return false;
  }
  function getChatColorQueue(userId){
    for( var i = 0; i < this.chatColorQueue.length; i++ ){
      if(this.chatColorQueue[i].userId == userId){
        return this.chatColorQueue[i].color;
        break;
      }
    }
    return false;
  }
}
function Utente(id,nick){
  this.id = id;
  this.nick = nick;
}
function Timer(userId,timerId){
  this.userId = userId;
  this.timerId = timerId;
}
function Color(userId,color){
  this.userId = userId;
  this.color = color;
}

/* Riproduttore SWF di suoni */
var SOUND_ACTIVE = true;

function SoundSystem(){
  this.playerURL = "http://www.subitanime.it/swf/FMP3.swf";
  this.soundsPath = "http://www.subitanime.it/suoni/";
  
  this.SOUNDsuccess = "subitanime-success.mp3";
  this.SOUNDerror = "subitanime-error.mp3";
  this.SOUNDchatNewMex = "subitanime-chat-new-mex.mp3";
  
  this.playSound = playSound;
  
  function playSound(sound){
    var file = this.soundsPath+""+sound;
    var flashObj = new SWFObject(this.playerURL+"?mp3="+file+"&action=play&loop=no", "FMP3", "1", "1", 7, "#FFFFFF", true);

    flashObj.write("mp3player");
  }
}

var Sound = new SoundSystem();

/***********************************
* Funzioni di servizio
***********************************/
function findPosX(obj){
  var curleft = 0;
  if(obj.offsetParent)
      while(1) {
        curleft += obj.offsetLeft;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.x)
      curleft += obj.x;
  return curleft;
}

function findPosY(obj){
  var curtop = 0;
  if(obj.offsetParent)
      while(1){
        curtop += obj.offsetTop;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.y)
      curtop += obj.y;
  return curtop;
}

DEBUG = true;

// Debugging function
function toLog(str){
  if(DEBUG){
    if(typeof(console)!='undefined'){
      console.log(str);
    }
  }
}

/* FINE FUNZIONI DI SERVIZIO */

