function SB_getHTTPObject() { var xmlhttp; if(window.XMLHttpRequest)
xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ try { xhr = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP");}
}
else { alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false;}
return xhr;}
function callInProgress(xmlhttp) { switch ( xmlhttp.readyState ) { case 1: case 2: case 3:
return true; break; default:
return false; break;}
}
var timeoutId; var http_zone_messages = SB_getHTTPObject(); var http_zone_saisie = SB_getHTTPObject(); var http_avoir_donnees = SB_getHTTPObject(); var http_connexion = SB_getHTTPObject(); var http_wiz = SB_getHTTPObject(); var patternMsg = new RegExp('@([^@]{15})@([0-9]{2}-[0-9]{2}-[0-9]{2})@([0-9]{2}:[0-9]{2})@(connecte_[^@]+)@([^@]+)@([^@]+)','g'); var patternConnecte = new RegExp('@([^@]{4,15})@(createur_h|createur_f|createur_i|h|f|i)@(0|1|2)@([^@]+)','g'); var patternMOZ_HTML_DEBUT = new RegExp('^(<span)','i'); var patternMOZ_HTML_FIN = new RegExp('(</span>)$','i'); function afficherPseudo (status,pseudo){ var contenu = "<span class='"+status+"'><em>"+pseudo.substring(0,1).toUpperCase()+pseudo.substring(1)+"</em></span><span>&gt;&nbsp;</span>"; if(IE) { window.frames['editeur'].focus(); window.frames['editeur'].document.body.innerHTML = contenu; SB_setRng();}
if(MOZ) { document.getElementById('editeur').contentDocument.body.innerHTML = contenu;}
}
function SB_creerMessage(w_id_message,w_jour,w_heure,w_status_auteur,w_auteur,w_message) { var date = w_jour + '&nbsp;' + w_heure + "&nbsp;"; return "<div class='post' id='" + w_id_message + "'><p class='auteur'><span class='heure'>" + date + "</span><a style='text-decoration:none' href='#' title='Converser / Chat' onclick='javascript:afficherPseudo(\""+w_status_auteur+"\",\""+w_auteur+"\");return false;'><span class='" + w_status_auteur + "'>" + w_auteur + "&nbsp;:&nbsp;</span></a></p><p class='message'>" + w_message + "</p></div>";}
function SB_creerConnecte(w_login,w_sexe,w_rang_connecte,w_avatar,w_rang_utilisateur) { var img_avatar = "<img src='http://chat.shootbox.fr/images/avatars/" + w_avatar + "' alt='Avatar' height='19' width='19' />&nbsp;"; var wiz = "<a class='wiz' href='#' onclick='javascript:SB_wiz_demande(\"" + w_login + "\")' title='Wiizer " + w_login.toUpperCase() + " !'>Wiiizz !</a>"; return "<p class='connecte_" + w_sexe + "'>" + img_avatar + w_login + "&nbsp;" + wiz + "</p>";}
function SB_avoirDonnees(idshootbox) { var url = 'avoir_donnees.php?idshootbox=' + escape(idshootbox)+ '&offset=' + glob_offset + '&utilisateur=' + escape(trans['utilisateur']) + '&invite=' + escape(trans['invite']); timeoutId = window.setTimeout( function() { if ( callInProgress(http_avoir_donnees) ) { http_avoir_donnees.abort(); return;}
}, 5000 ); http_avoir_donnees.open("GET", url , true); http_avoir_donnees.onreadystatechange = SB_majZones; http_avoir_donnees.send(null);}
function SB_majZones() { if (http_avoir_donnees.readyState == 4) { window.clearTimeout(timeoutId); retour = http_avoir_donnees.responseText.split("<SEP>"); if(typeof retour[1] == 'undefined') {return;}
retour[0] = trim(retour[0]); var zone_visiteurs = trim(document.getElementById('zone_visiteurs').innerHTML); var tab_visiteurs_local = new Array(); var tab_visiteurs_ligne = new Array(); var i = 0; zone_visiteurs.replace(/\/etat_(.).*?<p class=\\"login\\">(.{4,15})<\/p>/gi,function ($0,$1,$2) {tab_visiteurs_local[i++] = $2; return}); var j = 0; retour[0].replace(patternConnecte,function ($0,$1) {tab_visiteurs_ligne[j++] = $1; return}); if((i == 0 && j == 0) || !tab_visiteurs_local.compare(tab_visiteurs_ligne)) { if(glob_chat_lancement) { glob_chat_lancement = false;}
retour[0] = retour[0].replace(patternConnecte,function ($0,$1,$2,$3,$4) {return SB_creerConnecte($1,$2,$3,$4,retour[5])}); document.getElementById('zone_visiteurs').innerHTML = retour[0]; document.getElementById('zone_visiteurs').innerHTML += '<div id="bouton_fermeture"><a href="#" onmouseover="javascript:document.getElementById(\'zone_visiteurs\').style.display = \'none\'"><img alt="Fermer / Close" src="http://www.shootbox.fr/images/compte-supprimer.gif" /></a></div>';}
if(typeof retour[7] != 'undefined' && retour[7].length > 0) { document.getElementById('zone_messages').innerHTML = '';}
if(retour[1].length > 2) { post_a_supprimer = new Array(); j=0; for(i=0;i<glob_id_messages.length;i++) { post = new RegExp('.?@' + glob_id_messages[i] + '@([0-9]{2}-[0-9]{2}-[0-9]{2})@([0-9]{2}:[0-9]{2})@(connecte_[^@]+)@([^@]+)@([^@]+)'); if(post.test(retour[1])) { retour[1] = retour[1].replace(post,''); post_a_supprimer[j++] = i;}
}
for(i=0;i<post_a_supprimer.length;i++) { glob_id_messages.splice(post_a_supprimer[i],1);}
glob_indice_message-=post_a_supprimer.length; retour[1] = retour[1].replace(patternMsg,function ($0,$1,$2,$3,$4,$5,$6,$7) {return SB_creerMessage($1,$2,$3,$4,$5,$6,$7)}); document.getElementById('zone_messages').innerHTML += retour[1]; if(retour[1].toLowerCase().indexOf(document.getElementById('zone_status').innerHTML.toLowerCase()) >= 0) SB_jouer('beep',true); SB_descendreScrollMessages();}
if(glob_offset != retour[2]) {glob_offset = retour[2];}
invite = document.getElementById('zone_status').className == 'connecte_invite' && retour[4] == 'invite'; chgt_status = document.getElementById('zone_status').innerHTML != retour[3]; if(invite == false && chgt_status) { document.getElementById('zone_status').innerHTML = retour[3]; document.getElementById('zone_status').className = 'connecte_' + retour[4];}
if(chgt_status) { if(retour[4] == 'invite') { document.getElementById('lienTournant').innerHTML = trans['reserver_pseudo']; document.getElementById('connexion-deconnexion').innerHTML = trans['connexion']; document.getElementById('connexion-deconnexion').onclick = function () { if (document.getElementById('connexion_connecte').style.display == 'none' || document.getElementById('connexion_connecte').style.display == '') { document.getElementById('connexion_invite').style.display = 'none'; document.getElementById('connexion_connecte').style.display = 'inline'; document.getElementById('pseudo_connexion').focus();}
else { document.getElementById('connexion_invite').style.display = 'inline'; document.getElementById('connexion_connecte').style.display = 'none'; document.getElementById('mot_de_passe_connexion').value = ''; document.getElementById('pseudo_connexion').value = '';}
}
if (document.getElementById('connexion_connecte').style.display != 'inline') { document.getElementById('connexion_invite').style.display = 'inline'; document.getElementById('connexion_invite_etape1').style.display = 'inline';}
}
else { document.getElementById('connexion_invite').style.display = 'none'; document.getElementById('lienTournant').innerHTML = trans['creer_shootbox']; document.getElementById('connexion-deconnexion').innerHTML = trans['deconnexion']; document.getElementById('preloader').style.display = 'none'; document.getElementById('connexion-deconnexion').onclick = function () { document.getElementById('preloader').style.display = 'inline'; http_connexion.abort(); http_connexion.open('POST', 'deconnexion.php',true); var requete = 'idshootbox=' + glob_idshootbox; http_connexion.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); http_connexion.setRequestHeader('Content-Length', requete.length); http_connexion.send(requete);}
}
document.getElementById('preloader').style.display = 'none';}
if(retour[6].length > 0) { SB_jouer('beep',true); alert(retour[6].toUpperCase() + trans['wiz_recu']);}
document.getElementById('status_gauche_champ1').innerHTML = trans['stats_site'] + ' : '; document.getElementById('status_gauche_champ2').innerHTML = retour[8] + ' '; document.getElementById('status_gauche_champ3').innerHTML = ' / Shootbox : '; document.getElementById('status_gauche_champ4').innerHTML = '<a href="#" onclick="javascript:document.getElementById(\'zone_visiteurs\').style.display=\'inline\'">' + retour[9] + '</a>';}
}
function SB_majShootbox(idshootbox,delai) { glob_idshootbox = idshootbox; SB_avoirDonnees(idshootbox); SB_descendreScrollMessages(); setTimeout("SB_majShootbox('"+idshootbox+"',"+delai+")",delai);}
function SB_connexion() { var pseudo = document.getElementById('pseudo_connexion').value; var mdp = document.getElementById('mot_de_passe_connexion').value; var url = 'connexion.php?pseudo=' + pseudo + '&mdp=' + MD5(mdp) + '&idshootbox=' + glob_idshootbox; if(pseudo == '' || mdp == '') {alert(trans['champs_incomplet']);document.getElementById('pseudo_connexion').focus(); return}
if(pseudo.length < 4) {alert(trans['pseudo_longueur_insuffisante']); document.getElementById('pseudo_connexion').focus(); return}
if(mdp.length < 6) {alert(trans['mdp_longueur_insuffisante']); document.getElementById('mot_de_passe_connexion').focus(); return}
document.getElementById('preloader').style.display = 'inline'; http_connexion.abort(); http_connexion.open("GET", url , true); http_connexion.onreadystatechange = SB_demandeIdentification; http_connexion.send(null);}
function SB_demandeIdentification() { if (http_connexion.readyState == 4) { SB_afficherCacherConnexion(document.getElementById('connexion_connecte'),document.getElementById('pseudo_connexion'),document.getElementById('mot_de_passe_connexion')); if(http_connexion.status == 200) { retour = trim(http_connexion.responseText); if(retour != '1') { if(retour == '5') alert(trans['banni']); else alert(trans['identification_incorrecte']); document.getElementById('preloader').style.display = 'none'; SB_afficherCacherConnexion(document.getElementById('connexion_connecte'),document.getElementById('pseudo_connexion'),document.getElementById('mot_de_passe_connexion')); document.getElementById('pseudo_connexion').focus();}
else { document.getElementById('connexion_invite').style.display = 'none'; SB_reinitZoneSaisie();}
}
}
}
function SB_connexion_invite() { var pseudo = document.getElementById('pseudo_connexion_invite').value; var sexe = document.getElementsByName('sexe'); var indice = 0; while(indice < sexe.length) { if(sexe[indice].checked) {choix_sexe_precedent = sexe[indice].value; break;}
indice++;choix_sexe_precedent = sexe;}
var url = 'connexion_invite.php?pseudo=' + pseudo + '&sexe=' + choix_sexe_precedent + '&idshootbox=' + glob_idshootbox; document.getElementById('preloader').style.display = 'inline'; http_connexion.abort(); http_connexion.open("GET", url , true); http_connexion.onreadystatechange = SB_demandeIdentification_invite; http_connexion.send(null);}
function SB_demandeIdentification_invite() { if (http_connexion.readyState == 4) { if(http_connexion.status == 200) { retour = trim(http_connexion.responseText); if(retour != '1') { if(retour == '5') alert(trans['banni']); else alert(trans['pseudo_reserve']); document.getElementById('preloader').style.display = 'none'; document.getElementById('connexion_invite_etape1').style.display = 'inline'; document.getElementById('pseudo_connexion_invite').select(); document.getElementById('pseudo_connexion_invite').focus();}
else { document.getElementById('connexion_invite').style.display = 'none'; SetCookie('pseudo', document.getElementById('pseudo_connexion_invite').value, 24*3600*365, '/',false,0); SetCookie('sexe', choix_sexe_precedent, 24*3600*365, '/',false,0); SB_reinitZoneSaisie();}
}
}
}
function SB_posterMessage(idshootbox){ if(typeof edoc == 'undefined' || edoc.body.innerHTML == '<span></span>' || edoc.body.innerHTML == '&nbsp;' || edoc.body.innerHTML == ' &nbsp;' || edoc.body.innerHTML == '') {SB_reinitZoneSaisie();return false;}
if(edoc.body.innerHTML.length > 2000) {alert(trans['message_trop_long']); return false}
if(MOZ && ((!patternMOZ_HTML_DEBUT.test(edoc.body.innerHTML) || !patternMOZ_HTML_FIN.test(edoc.body.innerHTML))))
{alert(trans['copier_coller_interdit']);SB_reinitZoneSaisie();return false;}
message = get_xhtml(edoc.body,'en','iso-8859-1'); if(message.indexOf('id="preloader"') > -1) {return false;}
var expEspaces = new RegExp('>(&nbsp; *)+</','gi'); var expImg = new RegExp('<img','gi'); if(expEspaces.test(message) && !expImg.test(message)) {SB_reinitZoneSaisie();return false;}
if(IE) message = message.replace(/<a /gi,'<a title="chat shootbox" onclick="this.target=\'_blank\'" '); if (MOZ) message = message.replace(/[^(src=\")](http|news|ftp|https):\/\/([-éa-z0-9\/\.\?_=#@:~]+)/gi, function ($0,$1,$2) {return "<a href='" + $1 + "://" + $2 + "' onclick=\"window.open(this.href,'_blank');return false;\" title='chat mini tchat shootbox'>" + $1 + "://" + $2 + "</a>"}); message = message.replace(/<br \/>|<p>|<\/p>/gi,''); if(message.indexOf('<img') > -1) { if(message.indexOf('images/emoticons/') < 0) {SB_reinitZoneSaisie();return false;}
message = message.replace(/width: \d*px; height: \d*px/gi,'width: 19px; height: 19px'); message = message.replace(/width=\"\d*\"/gi,'width="19"'); message = message.replace(/height=\"\d*\"/gi,'height="19"'); message = message.replace(/alt=\"\"/,'alt="shoutbox gratuite tchat shootbox"');}
if(MOZ) message = message.replace(/src="images\/emoticons/gi,'src="http:\/\/chat.shootbox.fr\/images\/emoticons');

  // On supprime les espaces inutiles devant le texte
  message = message.replace(/>(&nbsp; *)+/,'>');

  // On supprime les espaces inutiles derriere le texte
  message = message.replace(/(&nbsp; *)+</,'<');

  // On supprime les espaces inutiles entre 2 blocs de texte
  // on remplace par 1 seul espace
  message = message.replace(/(&nbsp; *){1,}/gi,' ');

  //On cree une variable "auteur" qui sera postee
  auteur = document.getElementById('zone_status').innerHTML;

  //On cree une variable "status" qui sera postee
  status_auteur = document.getElementById('zone_status').className;

  // On cree 2 variables contenant la date et l'heure sur le pc local
aujourdhui = new Date(); var jour; if(langue == 'fr') jour = aujourdhui.dateFormat('d-m-y'); else jour = aujourdhui.dateFormat('m-d-y'); heure = aujourdhui.dateFormat('H:i'); if(MOZ) http_zone_saisie.abort(); id_message = randomID(15); glob_id_messages[glob_indice_message]=id_message; glob_indice_message++; document.getElementById('zone_messages').innerHTML += SB_creerMessage(id_message,jour,heure,status_auteur,auteur,message); SB_descendreScrollMessages(); message = message.replace(/\+/g, '%2b'); message = message.replace(/&gt;/g, '%3e'); message = message.replace(/&lt;/g, '%3c'); message = message.replace(/&amp;/g, '%26'); message = message.replace(/@/g, '_AT_'); var requete = 'idshootbox=' + idshootbox + '&id_message=' + id_message + '&status=' + status_auteur + '&auteur=' + auteur + '&message=' + message; http_zone_saisie.open('POST', 'zone_saisie.php',true); http_zone_saisie.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); http_zone_saisie.setRequestHeader('Content-Length', requete.length); http_zone_saisie.send(requete); SB_reinitZoneSaisie();}
function SB_wiz_demande(login_receveur) { document.getElementById('zone_visiteurs').style.display = 'none'; if(document.getElementById('zone_status').innerHTML == login_receveur) return; alert(login_receveur.toUpperCase() + trans['wiz_demande']); var requete = 'idshootbox=' + glob_idshootbox + '&receveur=' + login_receveur; http_wiz.open('POST', 'wiz_demande.php',true); http_wiz.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); http_wiz.setRequestHeader('Content-Length', requete.length); http_wiz.send(requete);}

