Ajax чат (новая версия) - Форум вебмастеров-Моды и хаки для трекера
Страница 1 из 11
Форум вебмастеров-Моды и хаки для трекера » Моды и Хаки » Готовые моды и хаки » Ajax чат (новая версия) (Ajax чат (новая версия))
Ajax чат (новая версия)
Slash3977Дата: Вторник, 29.06.2010, 16:55 | Сообщение # 1
Админ!и что?
Группа: Администраторы
Сообщений: 74
Репутация: 3
Статус: Offline
Имеется тэг username, privat, чтобы очистить чат достаточно набрать в чат слово "Очистить" smile
В базу
Code
CREATE TABLE IF NOT EXISTS `shoutbox` (  
   `id` smallint(6) NOT NULL auto_increment,  
   `userid` smallint(6) NOT NULL default '0',  
   `username` varchar(25) character set cp1251 collate cp1251_bin NOT NULL default '',  
   `date` int(11) NOT NULL default '0',  
   `text` text character set cp1251 collate cp1251_bin NOT NULL,  
   PRIMARY KEY  (`id`)  
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=27 ;

Потом в корне создаем файл chat.php

Code
<?  

require_once("include/bittorrent.php");  

dbconn(false);  

loggedinorreturn();  

stdhead(Чат);  
if ($CURUSER["schoutboxpos"] == 'no')    
{    
stdmsg("Oшибка", "Вам было запрещено Использовать Чат .");    
stdfoot();    
exit;    
}   
?>  

<script language=javascript>  
function SmileIT(smile,form,text){  
     window.document.forms[form].elements[text].value = window.document.forms[form].elements[text].value+" "+smile+" ";  
     window.document.forms[form].elements[text].focus();  
}  
</script>  
<?  
begin_frame("Чат");  
     if (get_user_class() >= UC_MODERATOR)  
          print("<center><font size=\"-2\">[Чтобы очистить чат введите слово <b>Очистить</b>, или проследуйте по <a class=altlink href=clear.php?action=clearshout><b>ссылке</b></a>]</font></center>");  
print("<form action=\"shoutbox.php\" method=\"post\" name=\"shoutform\" onsubmit=\"return sendShout(this);\">");  

?>  
<table border="0" cellspacing="0" cellpadding="5" width="100%"  >  
<tr><td colspan="2" style="white-space: nowrap; border: none;" align="center">  
<a href="javascript: SmileIT(':)','shoutform','shout')"><img border="0" src="pic/smilies/smile1.gif"></a>  
<a href="javascript: SmileIT(':(','shoutform','shout')"><img border="0" src="pic/smilies/sad.gif"></a>  
<a href="javascript: SmileIT(';-)','shoutform','shout')"><img border="0" src="pic/smilies/wink.gif"></a>  
<a href="javascript: SmileIT(':-P','shoutform','shout')"><img border="0" src="pic/smilies/tongue.gif"></a>  
<a href="javascript: SmileIT(':whistle:','shoutform','shout')"><img border="0" src="pic/smilies/whistle.gif"></a>  
<a href="javascript: SmileIT(':yawn:','shoutform','shout')"><img border="0" src="pic/smilies/yawn.gif"></a>  
<a href="javascript: SmileIT(':blush:','shoutform','shout')"><img border="0" src="pic/smilies/blush.gif"></a>  
<a href="javascript: SmileIT(':book:','shoutform','shout')"><img border="0" src="pic/smilies/book.gif"></a>  
<a href="javascript: SmileIT('::'-(','shoutform','shout')"><img border="0" src="pic/smilies/cry.gif"></a>  
<a href="javascript: SmileIT(':angry:','shoutform','shout')"><img border="0" src="pic/smilies/angry.gif"></a>  
<a href="javascript: SmileIT(':guns:','shoutform','shout')"><img border="0" src="pic/smilies/guns.gif"></a>  
<a href="javascript: SmileIT(':mama:','shoutform','shout')"><img border="0" src="pic/smilies/mama.gif"></a>  
<a href="javascript: SmileIT(':wave:','shoutform','shout')"><img border="0" src="pic/smilies/wave.gif"></a>  
<a href="javascript: SmileIT(':idea:','shoutform','shout')"><img border="0" src="pic/smilies/idea.gif"></a>  
</td></tr>  
<tr>  
<td colspan="2" style="white-space: nowrap; border: none;" width="100%" >  
     <input type="text" name="shout" style="width: 75%"  MAXLENGTH="300" />  
     <input type="submit" value="Отправить" />  
       <input type="button" value="Смайлы" onClick="javascript:winop()">  

</td style="white-space: nowrap; border: none;">  

</tr>  

<tr>  
<td style="border: none;">  

     <div id="shoutbox" style="overflow: auto; height: 450px; width: 100%; padding-top: 0cm">  
             Загрузка, пожалуйста подождите.....    
     </div>  
     </td>  
          <td style="white-space: nowrap; border: none;" valign="top" width="20%">  
     <script language="javascript" type="text/javascript" src="js/radio.js"></script>  
<style type="text/css">  
.mju{width:150px;text-align:center;color:#444;font:10px Arial;}  
.mju a{color:#444;font:10px Arial;text-decoration:underline;}  
.mju a:hover{text-decoration:none;}  
</style>  
<div class="mju">  
     <object width="150" height="68" id="mju">  
         <param name="allowScriptAccess" value="sameDomain" />  
                 <param name="swLiveConnect" value="true" />  
         <param name="movie" value="mju.swf" />  
         <param name="flashvars" value="playlist=playlist.mpl&auto_run=false&repeat_one=false&shuffle=false" />  
         <param name="loop" value="false" />  
         <param name="menu" value="false" />  
         <param name="quality" value="high" />  
         <param name="wmode" value="transparent" />  
         <embed src="radio/mju.swf" flashvars="playlist=radio/playlist.mpl&auto_run=false&repeat_one=false&shuffle=false" loop="false" menu="false" quality="high" wmode="transparent" bgcolor="#202020" width="150" height="68" name="mju" allowScriptAccess="sameDomain" swLiveConnect="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />  
     </object>  
    </div>  
     <hr width="100%">  
     <div id="wol" style="overflow: auto; height: 380px; width: 150px;"><font size="-2">  

         Загрузка...  
         </font></div><br />  
</td>  

</tr>  
<table>  
<td style="border: none;"><tr><td style="border: none;"> <b>В чате запрещено:</b><br />   
     <img src="pic/buttons/control.png" border="0"> Материться, в том числе использовать скрытый мат.<br />  
     <img src="pic/buttons/control.png" border="0"> Оскорблять друг друга (задумайтесь над этим, не нужно хамить в ответ  если Вас кто-то оскорбил, мы не будем разбираться, "кто первый начал").<br />    <img src="pic/buttons/control.png" border="0"> Флудить текстом и смайлами.<br />  
<img src="pic/buttons/control.png" border="0"> Злоупотреблять BB кодом (выделение цветом, жирностью и т.п).<br />  
<img src="pic/buttons/control.png" border="0">      Обсуждать/рекламировать другие трекеры (реклама в ЛС так же запрещена).<br />  
<img src="pic/buttons/control.png" border="0"> Злоупотреблять Caps Lock (более 50% заглавных букв), а так же смайлами (более 5 на сообщение).<br />  
<img src="pic/buttons/control.png" border="0">  Вставлять смайлы/картинки с внешних ресурсов. <br /><br />  
       
<img src="pic/buttons/control_double.png" border="0"> <b>Нарушение данных правил карается предупреждением, закрытием доступа к чату, либо закрытием доступа к трекеру. </td>  

</tr></td></table>  
<?  

print("</form>");  
end_frame();  
stdfoot();  
?>  

<script language="javascript">  
function InsertSmilie(texttoins) {  
     document.shoutform.shout.value = document.shoutform.shout.value+' '+texttoins+' ';  
     document.shoutform.shout.focus();  
     return false;  
}  
</script>  

       <SCRIPT LANGUAGE="JAVASCRIPT">  
<!--  

function winop()  
{  
windop = window.open("moresmiles.php?form=shoutform&text=shout","mywin","height=500,width=450,resizable=no,scrollbars=yes");  
}  

function winoptag()  
{  
windop = window.open("tags.php?form=shbox&text=shbox_text","mywin","height=500,width=450,resizable=no,scrollbars=yes");  
}  

function winopar()  
{  
windop = window.open("shoutbox.php?form=shbox&text=shbox_text","mywin","height=500,width=450,resizable=no,scrollbars=yes");  
}  

//-->  
     </SCRIPT>  

<div id="loading-layer" style="display: none; font-family: Lucida Sans Unicode; font-size: 11px; width: 200px; height: 100px; background: #EDFCEF; padding: 10px; text-align: center; border: 1px solid #000">  
     <div style="font-weight:bold" id="loading-layer-text"><img src="http://zver.homelinux.net/treker/pic/smilies/baby.gif" border="0"><font color="red"> Загрузка. Пожалуйста, подождите...</font></div><br />  
     <img src="pic/loading.gif" border="0" />  
</div>  
<script language="javascript" type="text/javascript" src="js/ajax.js"></script>  
<script type="text/javascript">  
<!--  
function sendShout(formObj) {  

     /*if (postingShout) {  
         alert('Отправка сообщения...')  
         return false  
     }*/  

     Shout = formObj.shout.value  

     if (Shout.replace(/ /g, '') == '') {  
         alert('Вы должны вести сообщение!')  
         return false  
     }  

     sb_Clear();  

     var ajax = new tbdev_ajax();  
     ajax.onShow ('');  
     //ajax.onShow = function() { };  
     var varsString = "";  
     ajax.requestFile = "shoutbox.php";  
     ajax.setVar("do", "shout");  
     ajax.setVar("shout", escape(Shout));  
     ajax.method = 'GET';  
     ajax.element = 'shoutbox';  
     ajax.sendAJAX(varsString);  

     return false  
}  

function getShouts() {  

     var ajax = new tbdev_ajax();  
     ajax.onShow = function() { };  
     var varsString = "";  
     ajax.requestFile = "shoutbox.php";  
     ajax.method = 'GET';  
     ajax.element = 'shoutbox';  
     ajax.sendAJAX(varsString);  

     setTimeout('getShouts()', 10000);  

     return false  

}  

function getWOL() {  

     var ajax = new tbdev_ajax();  
     ajax.onShow = function() { };  
     var varsString = "";  
     ajax.requestFile = "online.php";  
     ajax.method = 'GET';  
     ajax.setVar("wol", 1);  
     ajax.element = 'wol';  
     ajax.sendAJAX(varsString);  

     setTimeout('getWOL()', 1000);  

     return false  

}  

function sb_Clear() {  
     document.forms["shoutform"].shout.value = ''  
     return true;  
}  

function deleteShout(id) {  
{  
         var ajax = new tbdev_ajax();  
         ajax.onShow = function() { };  
         var varsString = "";  
         ajax.requestFile = "shoutbox.php";  
         ajax.setVar("do", "delete");  
         ajax.setVar("id", id);  
         ajax.method = 'GET';  
         ajax.element = 'shoutbox';  
         ajax.sendAJAX(varsString);  
     }  

     return false  

}  

getShouts();  

getWOL();  

-->  
</script>

Далее создаем файл shoutbox.php
Code
<?  
require_once("include/bittorrent.php");  
dbconn();  
loggedinorreturn();  
header("Content-Type: text/html; charset=Windows-1251");  
if ($CURUSER["schoutboxpos"] == 'no')    
{    
stdmsg("Oшибка", "Вам было запрещено Использовать Чат .");    
stdfoot();    
exit;    
}   
if ($CURUSER)  
{  
///////////session/////////////////  
mysql_query("UPDATE users SET page=1 WHERE id = " . $CURUSER["id"]) or sqlerr(__FILE__,__LINE__);  
///////////////////////////////////  

}  

function decode_unicode_url($str) {  
     $res = '';  

     $i = 0;  
     $max = strlen($str) - 6;  
     while ($i <= $max) {  
         $character = $str[$i];  
         if ($character == '%' && $str[$i + 1] == 'u') {  
         $value = hexdec(substr($str, $i + 2, 4));  
         $i += 6;  

         if ($value < 0x0080) // 1 byte: 0xxxxxxx  
             $character = chr($value);  
         else if ($value < 0x0800) // 2 bytes: 110xxxxx 10xxxxxx  
             $character =  
                 chr((($value & 0x07c0) >> 6) | 0xc0)  
                 . chr(($value & 0x3f) | 0x80);  
         else // 3 bytes: 1110xxxx 10xxxxxx 10xxxxxx  
             $character =  
                 chr((($value & 0xf000) >> 12) | 0xe0)  
                 . chr((($value & 0x0fc0) >> 6) | 0x80)  
                 . chr(($value & 0x3f) | 0x80);  
         } else  
             $i++;  

         $res .= $character;  
     }  

     return $res . substr($str, $i);  
}  

function convert_text($s)  
{  
  $out = "";  

  for ($i=0; $i<strlen($s); $i++)  
  {  
   $c1 = substr ($s, $i, 1);  
   $byte1 = ord ($c1);  
   if ($byte1>>5 == 6) // 110x xxxx, 110 prefix for 2 bytes unicode  
   {  
   $i++;  
   $c2 = substr ($s, $i, 1);  
   $byte2 = ord ($c2);  
   $byte1 &= 31; // remove the 3 bit two bytes prefix  
   $byte2 &= 63; // remove the 2 bit trailing byte prefix  
   $byte2 |= (($byte1 & 3) << 6); // last 2 bits of c1 become first 2 of c2  
   $byte1 >>= 2; // c1 shifts 2 to the right  

   $word = ($byte1<<8) + $byte2;  
   if ($word==1025) $out .= chr(168);                    // ?  
   elseif ($word==1105) $out .= chr(184);                // ?  
   elseif ($word>=0x0410 && $word<=0x044F) $out .= chr($word-848); // ?-? ?-?  
   else  
   {  
     $a = dechex($byte1);  
     $a = str_pad($a, 2, "0", STR_PAD_LEFT);  
     $b = dechex($byte2);  
     $b = str_pad($b, 2, "0", STR_PAD_LEFT);  
     $out .= "&#x".$a.$b.";";  
   }  
   }  
   else  
   {  
   $out .= $c1;  
   }  
  }  

  return $out;  
}  

if ($_GET["do"] == "shout") {  
     $shout = convert_text(urldecode(decode_unicode_url($_GET["shout"])));  
     if ($shout == "очистить" && get_user_class() >= UC_MODERATOR) {  
         mysql_query("TRUNCATE TABLE shoutbox");  
         die("Сообшений нет");  
     }  
     $sender = $CURUSER["id"];  
     if (!empty($shout)) {  
         $shout = preg_replace("/\/me /", $CURUSER["username"]." ", $shout);  
$datee = time();  
         mysql_query("INSERT INTO shoutbox (date,  text, userid) VALUES (".implode(", ", array_map("sqlesc", array($datee, $shout, $sender))).")") or sqlerr(__FILE__,__LINE__);  
     } else  
         print("<script>alert('Введи сообщение');</script>");  
} elseif ($_GET["do"] == "delete" && get_user_class() >= UC_MODERATOR && is_valid_id($_GET["id"])) {  
     $id = $_GET["id"];  
     mysql_query("DELETE FROM shoutbox WHERE id = $id") or sqlerr(__FILE__,__LINE__);  
}   
$res = mysql_query("SELECT shoutbox.*, users.username, users.warned, users.id as uid, users.class FROM shoutbox INNER JOIN users ON shoutbox.userid = users.id ORDER BY id DESC LIMIT 35") or sqlerr(__FILE__,__LINE__);  
if (mysql_num_rows($res) == 0)  
     die("Сообшений нет");  
print("\n");  
while ($arr = mysql_fetch_array($res)) {  

if ($arr["warned"] == "yes")  
$warn = "<img src=\"pic/warned8.gif\" alt=\"Предупрежден\"/>";  
else  
$warn = "";  
$username = $arr["username"];  

$arr["text"] = format_comment($arr["text"]);   

$arr["text"] = str_replace("[$CURUSER[username]]","<font color=#000000>{</font><b style='color: red; background: #FFFFFF;'>$CURUSER[username]</b><font color=#000000>}</font>",$arr["text"]);   

$arr["text"] = preg_replace("/\[((\s|.)+?)\]/", "<font color=#000000>[</font><b style='color: black;'>\\1</b><font color=#000000>]</font>", $arr["text"]);   

if (strpos($arr["text"], "privat($CURUSER[username])") !== false) {   

$variabila = "privat($CURUSER[username])";   
$nume = substr($variabila, 7);   
$nume = substr($nume, 0, strlen($nume)-1);   

if (($CURUSER["username"] == $nume) || ($CURUSER["id"] == "".$arr["userid"]."")) {   

$arr["text"] = str_replace("privat($CURUSER[username])","<b style='color: red; background: #FFFFFF;'>$CURUSER[username]</b>:",$arr["text"]);   

$arr["text"] = preg_replace("/privat\(([^()<>\s]+?)\)/i","<b style='color: #000000; background: #FFFFFF;'>\\1</b>", $arr["text"]);  

     print("<span class='date'>[".strftime("%H:%M:%S",$arr["date"])."]</span>" . (get_user_class() >= UC_MODERATOR ? "<span onclick=\"deleteShout($arr[id]);\" style=\"cursor: pointer; color: red; font-weight: bold; text-decoration: underline\"><img src=\"pic/warned2.gif\" style=\"border: 0px;\" /></span>" : "") . "  
<a target=_blank href=message.php?action=sendmessage&receiver=".$arr['userid']." title=\"Отправить ЛС\"><img src=\"pic/pn_inbox.gif\" border=\"0\"></a> <a href=userdetails.php?id=".$arr["uid"]." target='_blank'><img src=\"pic/info/guest.gif\"  border=0  title=\"Посмотреть профиль\"><span onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='privat($username) '+parent.document.shoutform.shout.value;return false;\" title=\"Приват\" style=\"cursor: pointer; color: red; font-weight: bold;\"><img src=\"pic/info/group.gif\" alt=\"Приват\" title=\"Приват\"></span></a> <a href=\"userdetails.php?id=".$arr["uid"]."\" onClick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='[".$username."]: '+parent.document.shoutform.shout.value;return false;\">".get_user_class_color($arr["class"], $arr["username"]) . "</a>$warn: ".($arr["text"])."<br />\n");  
}  
} else  
if ((($CURUSER["id"] == "".$arr["userid"]."") OR (get_user_class() >= UC_MODERATOR)) AND (get_user_class() >= $arr["class"]) AND (strpos($arr["text"], "privat(") !== false)) {  

$arr["text"] = preg_replace("/privat\(([^()<>\s]+?)\)/i","<b style='color: red; background: #FFFFFF;'>{\\1}</b>", $arr["text"]);  

     print("<span class='date'>[".strftime("%H:%M:%S",$arr["date"])."]</span>" . (get_user_class() >= UC_MODERATOR ? "<span onclick=\"deleteShout($arr[id]);\" style=\"cursor: pointer; color: red; font-weight: bold; text-decoration: underline\"><img src=\"pic/warned2.gif\" style=\"border: 0px;\" /></span>" : "") . "  
     <a target=_blank href=message.php?action=sendmessage&receiver=".$arr['userid']." title=\"Отправить ЛС\"><img src=\"pic/pn_inbox.gif\" border=\"0\"></a> <a href=userdetails.php?id=".$arr["uid"]." target='_blank'><img src=\"pic/info/guest.gif\"  border=0  title=\"Посмотреть профиль\"></a><span onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='privat($username) '+parent.document.shoutform.shout.value;return false;\" title=\"Приват\" style=\"cursor: pointer; color: red; font-weight: bold;\"><img src=\"pic/info/group.gif\" alt=\"Приват\" title=\"Приват\"></span> <a href=\"userdetails.php?id=".$arr["uid"]."\" onClick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='[".$username."]: '+parent.document.shoutform.shout.value;return false;\">".get_user_class_color($arr["class"], $arr["username"]) . "</a>$warn: ".($arr["text"])."<br />\n");  
} elseif (strpos($arr["text"], "privat(") !== false) {  
} else {  

     print("<span class='date'>[".strftime("%H:%M:%S",$arr["date"])."]</span>" . (get_user_class() >= UC_MODERATOR ? "<span onclick=\"deleteShout($arr[id]);\" style=\"cursor: pointer; color: red; font-weight: bold; text-decoration: underline\"><img src=\"pic/warned2.gif\" style=\"border: 0px;\" /></span>" : "") . "  
<a target=_blank href=message.php?action=sendmessage&receiver=".$arr['userid']." title=\"Отправить ЛС\"><img src=\"pic/pn_inbox.gif\" border=\"0\"></a> <a href=userdetails.php?id=".$arr["uid"]." target='_blank'><img src=\"pic/info/guest.gif\"  border=0  title=\"Посмотреть профиль\"></a><span onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='privat($username) '+parent.document.shoutform.shout.value;return false;\" title=\"Приват\" style=\"cursor: pointer; color: red; font-weight: bold; \"><img src=\"pic/info/group.gif\" alt=\"Приват\" title=\"Приват\"></span> <a href=\"userdetails.php?id=".$arr["uid"]."\" onClick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='[".$username."]: '+parent.document.shoutform.shout.value;return false;\">".get_user_class_color($arr["class"], $arr["username"]) . "</a>$warn: ".($arr["text"])."<br />\n");  
}  
}  

?>

Далее создаем файл online.php

Code
<?  
include_once("include/bittorrent.php");  
dbconn();  
header("Content-Type: text/html; charset=Windows-1251");  

print "    <div id=\"wol\">";  
mysql_query("UPDATE users SET page=1 WHERE id = " . $CURUSER["id"]) or sqlerr(__FILE__,__LINE__);  

$dt = gmtime() - 5;  
$dt = sqlesc(get_date_time($dt));  
$res = mysql_query("SELECT id, username, gender, class, donor, warned, parked FROM users WHERE last_access >= $dt ORDER BY username") or print(mysql_error());  
while ($arr = mysql_fetch_assoc($res)) {  
if ($arr["gender"] == "1")   
  $gender = "<img src=\"pic/male.gif\" alt=\"Парень\" title=\"Парень\">";    
elseif ($arr["gender"] == "2")    
     $gender = "<img src=\"pic/female.gif\" alt=\"Девушка\" title=\"Девушка\">";    
    $username = $arr['username'];  
     $id = $arr['id'];  

     echo "<font size = 1,5><a href=userdetails.php?id=$id target='_blank'><img src=\"pic/info/guest.gif\"  border=0  title=\"Посмотреть профиль\"></a><span onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='privat($username) '+parent.document.shoutform.shout.value;return false;\" title=\"Приват\" style=\"cursor: pointer; color: red; font-weight: bold;\"><img src=\"pic/info/group.gif\" alt=\"Приват\" title=\"Приват\"></span> <a href=userdetails.php?id=$id onclick=\"parent.document.shoutform.shout.focus();parent.document.shoutform.shout.value='[$username]: '+parent.document.shoutform.shout.value;return false;\" target=_blank>".get_user_class_color($arr["class"], $arr["username"]) . "</a>".$gender."</font><br />";  
}  
print "</div>";  
?>

Далее clear.php

Code
<?php   
require_once("include/bittorrent.php");   
dbconn();   
loggedinorreturn();   
if (get_user_class() < UC_MODERATOR)   
     stderr('Ошибка', 'Не достаточно прав.');   

$action = ($_POST['action'] ? $_POST['action'] : ($_GET['action'] ? $_GET['action'] : 'start'));   

if ($action == 'clearshout') {   
     mysql_query('TRUNCATE TABLE shoutbox') or sqlerr(__FILE__, __LINE__);   
     header("Refresh: 3; url=chat.php");  
     stderr('Очистка прошла успешно.','Таблица чата была успешно очищена. Сейчас вы будете возвращены в чат.');   
}elseif ($action == 'start') {   
     stderr('Очистить таблицы','Нажмите <a href="'.$_SERVER['SCRIPT_NAME'].'?action=clearshout">сюда</a> что-бы очистить таблицы.',false);   
}   
?>
 
Slash3977Дата: Вторник, 29.06.2010, 16:55 | Сообщение # 2
Админ!и что?
Группа: Администраторы
Сообщений: 74
Репутация: 3
Статус: Offline
js/ajax.js
Code
function _get_obj_toppos(obj)  
{  
var top = obj.offsetTop;  
while( (obj = obj.offsetParent) != null )  
{  
top += obj.offsetTop;  
}  
return top;  
}  
function center_div()  
{  
this.divname = '';  
this.divobj  = '';  
}  
center_div.prototype.clear_div = function()  
{  
try  
{  
if ( ! this.divobj )  
{  
return;  
}  
else  
{  
this.divobj.style.display  = 'none';  
}  
}  
catch(e)  
{  
return;  
}  
}  
center_div.prototype.Ywindow = function()  
{  
var scrollY = 0;  
if ( document.documentElement && document.documentElement.scrollTop )  
{  
scrollY = document.documentElement.scrollTop;  
}  
else if ( document.body && document.body.scrollTop )  
{  
scrollY = document.body.scrollTop;  
}  
else if ( window.pageYOffset )  
{  
scrollY = window.pageYOffset;  
}  
else if ( window.scrollY )  
{  
scrollY = window.scrollY;  
}  
return scrollY;  
}  
center_div.prototype.move_div = function()  
{  
try  
{  
this.divobj = document.getElementById( this.divname );  
}  
catch(e)  
{  
return;  
}  
// Figure width and height  
var my_width  = 0;  
var my_height = 0;  
if ( typeof( window.innerWidth ) == 'number' )  
{  
my_width  = window.innerWidth;  
my_height = window.innerHeight;  
}  
else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )  
{  
my_width  = document.documentElement.clientWidth;  
my_height = document.documentElement.clientHeight;  
}  
else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) )  
{  
my_width  = document.body.clientWidth;  
my_height = document.body.clientHeight;  
}  
this.divobj.style.position = 'absolute';  
this.divobj.style.display  = 'block';  
this.divobj.style.zIndex   = 99;  
var divheight = parseInt( this.divobj.style.Height );  
var divwidth  = parseInt( this.divobj.style.Width );  
divheight = divheight ? divheight : 50;  
divwidth  = divwidth  ? divwidth  : 200;  
var scrolly = this.Ywindow();  
var setX = ( my_width  - divwidth  ) / 2;  
var setY = ( my_height - divheight ) / 2 + scrolly;  
setX = ( setX < 0 ) ? 0 : setX;  
setY = ( setY < 0 ) ? 0 : setY;  
this.divobj.style.left = setX + "px";  
this.divobj.style.top  = setY + "px";  
}  
function tbdev_ajax(file){  
this.AjaxFailedAlert = "Ваш браузер не поддерживает расширенные возможности управления сайтом, мы настоятельно рекомендуем сменить браузер.\n";  
this.requestFile = file;  
this.method = "POST";  
this.URLString = "";  
this.encodeURIString = true;  
this.execute = false;  
this.loading_fired        = 0;  
this.centerdiv          = null;  
this.onLoading = function() { };  
this.onLoaded = function() { };  
this.onInteractive = function() { };  
this.onCompletion = function() { };  
this.onShow = function( message )  
{  
if ( ! this.loading_fired )  
{  
this.loading_fired = 1;  
// Change text?  
if ( message )  
{  
document.getElementById( 'loading-layer-text' ).innerHTML = message;  
}  
this.centerdiv         = new center_div();  
this.centerdiv.divname = 'loading-layer';  
this.centerdiv.move_div();  
}  
return;  
};  
this.onHide = function()  
{  
try  
{  
if ( this.centerdiv && this.centerdiv.divobj )  
{  
this.centerdiv.clear_div();  
}  
}  
catch(e)  
{  
}  
this.loading_fired = 0;  
return;  
};  
this.createAJAX = function() {  
try {  
this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");  
} catch (e) {  
try {  
this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
} catch (err) {  
this.xmlhttp = null;  
}  
}  
if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")  
this.xmlhttp = new XMLHttpRequest();  
if (!this.xmlhttp){  
this.failed = true;  
}  
};  
this.setVar = function(name, value){  
if (this.URLString.length < 3){  
this.URLString = name + "=" + value;  
} else {  
this.URLString += "&" + name + "=" + value;  
}  
}  
this.encVar = function(name, value){  
var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);  
return varString;  
}  
this.encodeURLString = function(string){  
varArray = string.split('&');  
for (i = 0; i < varArray.length; i++){  
urlVars = varArray[i].split('=');  
if (urlVars[0].indexOf('amp;') != -1){  
urlVars[0] = urlVars[0].substring(4);  
}  
varArray[i] = this.encVar(urlVars[0],urlVars[1]);  
}  
return varArray.join('&');  
}  
this.encodeVAR = function(url){  
url = url.toString();  
var regcheck = url.match(/[x90-xFF]/g);  
if ( regcheck )  
{  
for (var i = 0; i < i.length; i++)  
{  
url = url.replace(regcheck[i], '%u00' + (regcheck[i].charCodeAt(0) & 0xFF).toString(16).toUpperCase());  
}  
}  
return escape(url).replace(/+/g, "%2B");  
}  
this.runResponse = function(){  
eval(this.response);  
}  
this.sendAJAX = function(urlstring){  
this.responseStatus = new Array(2);  
if(this.failed && this.AjaxFailedAlert){  
alert(this.AjaxFailedAlert);  
} else {  
if (urlstring){  
if (this.URLString.length){  
this.URLString = this.URLString + "&" + urlstring;  
} else {  
this.URLString = urlstring;  
}  
}  
if (this.encodeURIString){  
var timeval = new Date().getTime();  
this.URLString = this.encodeURLString(this.URLString);  
//this.setVar("rndval", timeval);  
}  
if (this.element) { this.elementObj = document.getElementById(this.element); }  
if (this.xmlhttp) {  
var self = this;  
if (this.method == "GET") {  
var totalurlstring = this.requestFile + "?" + this.URLString;  
this.xmlhttp.open(this.method, totalurlstring, true);  
} else {  
this.xmlhttp.open(this.method, this.requestFile, true);  
}  
if (this.method == "POST"){  
try {  
this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')  
} catch (e) {}  
}  
this.xmlhttp.send(this.URLString);  
this.xmlhttp.onreadystatechange = function() {  
switch (self.xmlhttp.readyState){  
case 1:  
self.onLoading();  
break;  
case 2:  
self.onLoaded();  
break;  
case 3:  
self.onInteractive();  
break;  
case 4:  
self.response = self.xmlhttp.responseText;  
self.responseXML = self.xmlhttp.responseXML;  
self.responseStatus[0] = self.xmlhttp.status;  
self.responseStatus[1] = self.xmlhttp.statusText;  
self.onCompletion();  
if(self.execute){ self.runResponse(); }  
if (self.elementObj) {  
var elemNodeName = self.elementObj.nodeName;  
elemNodeName.toLowerCase();  
self.onHide();  
if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){  
if (self.response == 'error') { alert('Доступ отклонен'); } else {  
self.elementObj.value = self.response;  
}  
} else {  
if (self.response == 'error') { alert('Доступ отклонен'); } else {  
self.elementObj.innerHTML = self.response;  
}  
}  
}  
self.URLString = "";  
break;  
}  
};  
}  
}  
};  
this.createAJAX();  
}  
function signup_check(action) {   
      var ajax = new tbdev_ajax();   
      ajax.onShow ('');   
      var varsString = "";   
      ajax.requestFile = "check_signup.php";   
      if (action == "username")   
      ajax.setVar("username", document.getElementById('wantusername').value);   
      if (action == "password"){   
      ajax.setVar("password", document.getElementById('wantpassword').value);   
      ajax.setVar("passagain", document.getElementById('passagain').value);}   
      if (action == "email")   
      ajax.setVar("email", document.getElementById('email').value);   
      ajax.element = 'check_' + action;   
      ajax.setVar("action", action);   
      ajax.method = 'POST';   
      ajax.sendAJAX(varsString);   
}

 
Форум вебмастеров-Моды и хаки для трекера » Моды и Хаки » Готовые моды и хаки » Ajax чат (новая версия) (Ajax чат (новая версия))
Страница 1 из 11
Поиск: