diff options
600 files changed, 5284 insertions, 0 deletions
diff --git a/includes/ShowUserPicture.php b/includes/ShowUserPicture.php new file mode 100644 index 00000000..8e058127 --- /dev/null +++ b/includes/ShowUserPicture.php @@ -0,0 +1,58 @@ +<?PHP + +include ("./inc/config.php"); +include ("./inc/error_handler.php"); +include ("./inc/config_db.php"); +if( !isset($_SESSION)) session_start(); +include ("./inc/secure.php"); + + +// Parameter check +if( !isset($_GET["UID"]) ) + $_GET["UID"]= "-1"; + +$SQL= "SELECT * FROM `UserPicture` WHERE `UID`='". $_GET["UID"]. "'"; +$res = mysql_query( $SQL, $con); + +if( mysql_num_rows($res) == 1) +{ + //genügend rechte + if( !isset($_SESSION['UID']) || $_SESSION['UID'] == -1) + { + header( "HTTP/1.0 403 Forbidden"); + die( "403 Forbidden"); + } + + // ist das bild sichtbar? + if( (mysql_result($res, 0, "show")=="N") AND + ($_SESSION['UID']!=$_GET["UID"]) AND + ($_SESSION['CVS'][ "admin/UserPicture.php" ] == "N")) + { + $SQL= "SELECT * FROM `UserPicture` WHERE `UID`='-1'"; + $res = mysql_query( $SQL, $con); + if( mysql_num_rows($res) != 1) + { + header( 'HTTP/1.0 404 Not Found'); + die( "404 Not Found"); + } + } + + /// bild aus db auslesen + $bild = mysql_result($res, 0, "Bild"); + + // ausgabe bild + header( "Accept-Ranges: bytes"); + header( "Content-Length: ". strlen($bild)); + header( "Content-type: ". mysql_result($res, 0, "ContentType")); + header( "Cache-control: public"); + header( "Cache-request-directive: min-fresh = 120"); + header( "Cache-request-directive: max-age = 360"); + echo $bild; +} +else +{ + header( 'HTTP/1.0 404 Not Found'); + die( "404 Not Found"); +} + +?> diff --git a/includes/UserCVS.php b/includes/UserCVS.php new file mode 100755 index 00000000..f6bc30ed --- /dev/null +++ b/includes/UserCVS.php @@ -0,0 +1,39 @@ +<?php + +if( !isset($_SESSION['UID'])) + $_SESSION['UID'] = -1; + +// CVS import Data +$SQL = "SELECT * FROM `UserCVS` WHERE UID=".$_SESSION['UID']; +$Erg_CVS = mysql_query($SQL, $con); +$_SESSION['CVS'] = mysql_fetch_array($Erg_CVS); + +//pagename ermitteln +$Page["Name"] = substr( $_SERVER['PHP_SELF'], strlen($ENGEL_ROOT) ); + + +//recht für diese seite auslesen +if( isset( $_SESSION['CVS'][ $Page["Name"] ])) + $Page["CVS"] = $_SESSION['CVS'][ $Page["Name"] ]; +else +{ + echo "SYSTEM ERROR: now right for ". $Page["Name"]. "exist"; + die; +} + +if( $DEBUG ) +{ +// echo "UserID:". $_SESSION["UID"]. "<br>"; +// echo "Nick:". $_SESSION["Nick"]. "<br>"; + + foreach( $_SESSION as $k => $v) + echo "$k = $v<br>\n"; + + if( strlen($Page["CVS"]) == 0 ) + echo "<h1><u> CVS ERROR, on page '". $Page["Name"]. "'</u></h1>"; + else + echo "CVS: ". $Page["Name"]. " => '". $Page["CVS"]. "'<br>"; + +} + +?> diff --git a/includes/avatar/avatar1.gif b/includes/avatar/avatar1.gif Binary files differnew file mode 100755 index 00000000..1404f299 --- /dev/null +++ b/includes/avatar/avatar1.gif diff --git a/includes/avatar/avatar10.gif b/includes/avatar/avatar10.gif Binary files differnew file mode 100755 index 00000000..6ef61330 --- /dev/null +++ b/includes/avatar/avatar10.gif diff --git a/includes/avatar/avatar100.gif b/includes/avatar/avatar100.gif Binary files differnew file mode 100755 index 00000000..1e00f0d3 --- /dev/null +++ b/includes/avatar/avatar100.gif diff --git a/includes/avatar/avatar101.gif b/includes/avatar/avatar101.gif Binary files differnew file mode 100755 index 00000000..15a41959 --- /dev/null +++ b/includes/avatar/avatar101.gif diff --git a/includes/avatar/avatar102.gif b/includes/avatar/avatar102.gif Binary files differnew file mode 100755 index 00000000..325d9173 --- /dev/null +++ b/includes/avatar/avatar102.gif diff --git a/includes/avatar/avatar103.gif b/includes/avatar/avatar103.gif Binary files differnew file mode 100755 index 00000000..c842fcdf --- /dev/null +++ b/includes/avatar/avatar103.gif diff --git a/includes/avatar/avatar104.gif b/includes/avatar/avatar104.gif Binary files differnew file mode 100755 index 00000000..83483253 --- /dev/null +++ b/includes/avatar/avatar104.gif diff --git a/includes/avatar/avatar105.gif b/includes/avatar/avatar105.gif Binary files differnew file mode 100755 index 00000000..1cdc0d10 --- /dev/null +++ b/includes/avatar/avatar105.gif diff --git a/includes/avatar/avatar106.gif b/includes/avatar/avatar106.gif Binary files differnew file mode 100755 index 00000000..be773e15 --- /dev/null +++ b/includes/avatar/avatar106.gif diff --git a/includes/avatar/avatar107.gif b/includes/avatar/avatar107.gif Binary files differnew file mode 100755 index 00000000..b111f9c8 --- /dev/null +++ b/includes/avatar/avatar107.gif diff --git a/includes/avatar/avatar108.gif b/includes/avatar/avatar108.gif Binary files differnew file mode 100755 index 00000000..12a21a94 --- /dev/null +++ b/includes/avatar/avatar108.gif diff --git a/includes/avatar/avatar109.gif b/includes/avatar/avatar109.gif Binary files differnew file mode 100755 index 00000000..32534f83 --- /dev/null +++ b/includes/avatar/avatar109.gif diff --git a/includes/avatar/avatar11.gif b/includes/avatar/avatar11.gif Binary files differnew file mode 100755 index 00000000..199b085d --- /dev/null +++ b/includes/avatar/avatar11.gif diff --git a/includes/avatar/avatar110.gif b/includes/avatar/avatar110.gif Binary files differnew file mode 100755 index 00000000..e2c70f54 --- /dev/null +++ b/includes/avatar/avatar110.gif diff --git a/includes/avatar/avatar111.gif b/includes/avatar/avatar111.gif Binary files differnew file mode 100755 index 00000000..f197ea67 --- /dev/null +++ b/includes/avatar/avatar111.gif diff --git a/includes/avatar/avatar112.gif b/includes/avatar/avatar112.gif Binary files differnew file mode 100755 index 00000000..ff4ec284 --- /dev/null +++ b/includes/avatar/avatar112.gif diff --git a/includes/avatar/avatar113.gif b/includes/avatar/avatar113.gif Binary files differnew file mode 100755 index 00000000..1dbd37aa --- /dev/null +++ b/includes/avatar/avatar113.gif diff --git a/includes/avatar/avatar114.gif b/includes/avatar/avatar114.gif Binary files differnew file mode 100755 index 00000000..6b4b107e --- /dev/null +++ b/includes/avatar/avatar114.gif diff --git a/includes/avatar/avatar115.gif b/includes/avatar/avatar115.gif Binary files differnew file mode 100755 index 00000000..2af52d2b --- /dev/null +++ b/includes/avatar/avatar115.gif diff --git a/includes/avatar/avatar116.gif b/includes/avatar/avatar116.gif Binary files differnew file mode 100755 index 00000000..7db21919 --- /dev/null +++ b/includes/avatar/avatar116.gif diff --git a/includes/avatar/avatar117.gif b/includes/avatar/avatar117.gif Binary files differnew file mode 100755 index 00000000..5cb57d35 --- /dev/null +++ b/includes/avatar/avatar117.gif diff --git a/includes/avatar/avatar118.gif b/includes/avatar/avatar118.gif Binary files differnew file mode 100755 index 00000000..fb1e43b5 --- /dev/null +++ b/includes/avatar/avatar118.gif diff --git a/includes/avatar/avatar119.gif b/includes/avatar/avatar119.gif Binary files differnew file mode 100755 index 00000000..6a78fee5 --- /dev/null +++ b/includes/avatar/avatar119.gif diff --git a/includes/avatar/avatar12.gif b/includes/avatar/avatar12.gif Binary files differnew file mode 100755 index 00000000..c6ee6937 --- /dev/null +++ b/includes/avatar/avatar12.gif diff --git a/includes/avatar/avatar120.gif b/includes/avatar/avatar120.gif Binary files differnew file mode 100755 index 00000000..278c5b14 --- /dev/null +++ b/includes/avatar/avatar120.gif diff --git a/includes/avatar/avatar121.gif b/includes/avatar/avatar121.gif Binary files differnew file mode 100755 index 00000000..77bb5793 --- /dev/null +++ b/includes/avatar/avatar121.gif diff --git a/includes/avatar/avatar122.gif b/includes/avatar/avatar122.gif Binary files differnew file mode 100755 index 00000000..67c03bfd --- /dev/null +++ b/includes/avatar/avatar122.gif diff --git a/includes/avatar/avatar123.gif b/includes/avatar/avatar123.gif Binary files differnew file mode 100755 index 00000000..351c7ee0 --- /dev/null +++ b/includes/avatar/avatar123.gif diff --git a/includes/avatar/avatar124.gif b/includes/avatar/avatar124.gif Binary files differnew file mode 100755 index 00000000..13a090bc --- /dev/null +++ b/includes/avatar/avatar124.gif diff --git a/includes/avatar/avatar125.gif b/includes/avatar/avatar125.gif Binary files differnew file mode 100755 index 00000000..e4338b9f --- /dev/null +++ b/includes/avatar/avatar125.gif diff --git a/includes/avatar/avatar126.gif b/includes/avatar/avatar126.gif Binary files differnew file mode 100755 index 00000000..80759725 --- /dev/null +++ b/includes/avatar/avatar126.gif diff --git a/includes/avatar/avatar127.gif b/includes/avatar/avatar127.gif Binary files differnew file mode 100755 index 00000000..e3c7e056 --- /dev/null +++ b/includes/avatar/avatar127.gif diff --git a/includes/avatar/avatar128.gif b/includes/avatar/avatar128.gif Binary files differnew file mode 100755 index 00000000..fb00ebd9 --- /dev/null +++ b/includes/avatar/avatar128.gif diff --git a/includes/avatar/avatar129.gif b/includes/avatar/avatar129.gif Binary files differnew file mode 100755 index 00000000..40651db7 --- /dev/null +++ b/includes/avatar/avatar129.gif diff --git a/includes/avatar/avatar13.gif b/includes/avatar/avatar13.gif Binary files differnew file mode 100755 index 00000000..8328c337 --- /dev/null +++ b/includes/avatar/avatar13.gif diff --git a/includes/avatar/avatar130.gif b/includes/avatar/avatar130.gif Binary files differnew file mode 100755 index 00000000..45faa378 --- /dev/null +++ b/includes/avatar/avatar130.gif diff --git a/includes/avatar/avatar131.gif b/includes/avatar/avatar131.gif Binary files differnew file mode 100755 index 00000000..92cff06c --- /dev/null +++ b/includes/avatar/avatar131.gif diff --git a/includes/avatar/avatar132.gif b/includes/avatar/avatar132.gif Binary files differnew file mode 100755 index 00000000..8835d905 --- /dev/null +++ b/includes/avatar/avatar132.gif diff --git a/includes/avatar/avatar133.gif b/includes/avatar/avatar133.gif Binary files differnew file mode 100755 index 00000000..15abbcbe --- /dev/null +++ b/includes/avatar/avatar133.gif diff --git a/includes/avatar/avatar134.gif b/includes/avatar/avatar134.gif Binary files differnew file mode 100755 index 00000000..f559359f --- /dev/null +++ b/includes/avatar/avatar134.gif diff --git a/includes/avatar/avatar135.gif b/includes/avatar/avatar135.gif Binary files differnew file mode 100755 index 00000000..d9a07c47 --- /dev/null +++ b/includes/avatar/avatar135.gif diff --git a/includes/avatar/avatar136.gif b/includes/avatar/avatar136.gif Binary files differnew file mode 100755 index 00000000..e7f9f76c --- /dev/null +++ b/includes/avatar/avatar136.gif diff --git a/includes/avatar/avatar137.gif b/includes/avatar/avatar137.gif Binary files differnew file mode 100755 index 00000000..b62b374b --- /dev/null +++ b/includes/avatar/avatar137.gif diff --git a/includes/avatar/avatar138.gif b/includes/avatar/avatar138.gif Binary files differnew file mode 100755 index 00000000..49c44308 --- /dev/null +++ b/includes/avatar/avatar138.gif diff --git a/includes/avatar/avatar139.gif b/includes/avatar/avatar139.gif Binary files differnew file mode 100755 index 00000000..4281e84a --- /dev/null +++ b/includes/avatar/avatar139.gif diff --git a/includes/avatar/avatar14.gif b/includes/avatar/avatar14.gif Binary files differnew file mode 100755 index 00000000..1edaa2ca --- /dev/null +++ b/includes/avatar/avatar14.gif diff --git a/includes/avatar/avatar140.gif b/includes/avatar/avatar140.gif Binary files differnew file mode 100755 index 00000000..b058941a --- /dev/null +++ b/includes/avatar/avatar140.gif diff --git a/includes/avatar/avatar141.gif b/includes/avatar/avatar141.gif Binary files differnew file mode 100755 index 00000000..33def8f5 --- /dev/null +++ b/includes/avatar/avatar141.gif diff --git a/includes/avatar/avatar142.gif b/includes/avatar/avatar142.gif Binary files differnew file mode 100755 index 00000000..416e7c26 --- /dev/null +++ b/includes/avatar/avatar142.gif diff --git a/includes/avatar/avatar143.gif b/includes/avatar/avatar143.gif Binary files differnew file mode 100755 index 00000000..18ee70d9 --- /dev/null +++ b/includes/avatar/avatar143.gif diff --git a/includes/avatar/avatar144.gif b/includes/avatar/avatar144.gif Binary files differnew file mode 100755 index 00000000..e322ac57 --- /dev/null +++ b/includes/avatar/avatar144.gif diff --git a/includes/avatar/avatar145.gif b/includes/avatar/avatar145.gif Binary files differnew file mode 100755 index 00000000..5f047a5f --- /dev/null +++ b/includes/avatar/avatar145.gif diff --git a/includes/avatar/avatar146.gif b/includes/avatar/avatar146.gif Binary files differnew file mode 100755 index 00000000..3d2fe843 --- /dev/null +++ b/includes/avatar/avatar146.gif diff --git a/includes/avatar/avatar147.gif b/includes/avatar/avatar147.gif Binary files differnew file mode 100755 index 00000000..d1d54f74 --- /dev/null +++ b/includes/avatar/avatar147.gif diff --git a/includes/avatar/avatar148.gif b/includes/avatar/avatar148.gif Binary files differnew file mode 100755 index 00000000..0e715ed8 --- /dev/null +++ b/includes/avatar/avatar148.gif diff --git a/includes/avatar/avatar149.gif b/includes/avatar/avatar149.gif Binary files differnew file mode 100755 index 00000000..9cbe72c6 --- /dev/null +++ b/includes/avatar/avatar149.gif diff --git a/includes/avatar/avatar15.gif b/includes/avatar/avatar15.gif Binary files differnew file mode 100755 index 00000000..d197e82a --- /dev/null +++ b/includes/avatar/avatar15.gif diff --git a/includes/avatar/avatar150.gif b/includes/avatar/avatar150.gif Binary files differnew file mode 100755 index 00000000..b790d296 --- /dev/null +++ b/includes/avatar/avatar150.gif diff --git a/includes/avatar/avatar151.gif b/includes/avatar/avatar151.gif Binary files differnew file mode 100755 index 00000000..afc3b333 --- /dev/null +++ b/includes/avatar/avatar151.gif diff --git a/includes/avatar/avatar152.gif b/includes/avatar/avatar152.gif Binary files differnew file mode 100755 index 00000000..e30287d6 --- /dev/null +++ b/includes/avatar/avatar152.gif diff --git a/includes/avatar/avatar153.gif b/includes/avatar/avatar153.gif Binary files differnew file mode 100755 index 00000000..82bb1775 --- /dev/null +++ b/includes/avatar/avatar153.gif diff --git a/includes/avatar/avatar154.gif b/includes/avatar/avatar154.gif Binary files differnew file mode 100755 index 00000000..872008da --- /dev/null +++ b/includes/avatar/avatar154.gif diff --git a/includes/avatar/avatar155.gif b/includes/avatar/avatar155.gif Binary files differnew file mode 100755 index 00000000..51931858 --- /dev/null +++ b/includes/avatar/avatar155.gif diff --git a/includes/avatar/avatar156.gif b/includes/avatar/avatar156.gif Binary files differnew file mode 100755 index 00000000..8b3781ff --- /dev/null +++ b/includes/avatar/avatar156.gif diff --git a/includes/avatar/avatar157.gif b/includes/avatar/avatar157.gif Binary files differnew file mode 100755 index 00000000..7c8667cf --- /dev/null +++ b/includes/avatar/avatar157.gif diff --git a/includes/avatar/avatar158.gif b/includes/avatar/avatar158.gif Binary files differnew file mode 100755 index 00000000..ce3472cd --- /dev/null +++ b/includes/avatar/avatar158.gif diff --git a/includes/avatar/avatar159.gif b/includes/avatar/avatar159.gif Binary files differnew file mode 100755 index 00000000..c54f2b29 --- /dev/null +++ b/includes/avatar/avatar159.gif diff --git a/includes/avatar/avatar16.gif b/includes/avatar/avatar16.gif Binary files differnew file mode 100755 index 00000000..d76a15cd --- /dev/null +++ b/includes/avatar/avatar16.gif diff --git a/includes/avatar/avatar160.gif b/includes/avatar/avatar160.gif Binary files differnew file mode 100755 index 00000000..deb3507c --- /dev/null +++ b/includes/avatar/avatar160.gif diff --git a/includes/avatar/avatar161.gif b/includes/avatar/avatar161.gif Binary files differnew file mode 100755 index 00000000..f425b1f2 --- /dev/null +++ b/includes/avatar/avatar161.gif diff --git a/includes/avatar/avatar162.gif b/includes/avatar/avatar162.gif Binary files differnew file mode 100755 index 00000000..5625fe09 --- /dev/null +++ b/includes/avatar/avatar162.gif diff --git a/includes/avatar/avatar163.gif b/includes/avatar/avatar163.gif Binary files differnew file mode 100755 index 00000000..8146a09d --- /dev/null +++ b/includes/avatar/avatar163.gif diff --git a/includes/avatar/avatar164.gif b/includes/avatar/avatar164.gif Binary files differnew file mode 100755 index 00000000..4690f9cb --- /dev/null +++ b/includes/avatar/avatar164.gif diff --git a/includes/avatar/avatar165.gif b/includes/avatar/avatar165.gif Binary files differnew file mode 100755 index 00000000..efe72a35 --- /dev/null +++ b/includes/avatar/avatar165.gif diff --git a/includes/avatar/avatar166.gif b/includes/avatar/avatar166.gif Binary files differnew file mode 100755 index 00000000..a1720be3 --- /dev/null +++ b/includes/avatar/avatar166.gif diff --git a/includes/avatar/avatar167.gif b/includes/avatar/avatar167.gif Binary files differnew file mode 100755 index 00000000..04d31691 --- /dev/null +++ b/includes/avatar/avatar167.gif diff --git a/includes/avatar/avatar168.gif b/includes/avatar/avatar168.gif Binary files differnew file mode 100755 index 00000000..4d804c2a --- /dev/null +++ b/includes/avatar/avatar168.gif diff --git a/includes/avatar/avatar169.gif b/includes/avatar/avatar169.gif Binary files differnew file mode 100755 index 00000000..afe58a3f --- /dev/null +++ b/includes/avatar/avatar169.gif diff --git a/includes/avatar/avatar17.gif b/includes/avatar/avatar17.gif Binary files differnew file mode 100755 index 00000000..994836b7 --- /dev/null +++ b/includes/avatar/avatar17.gif diff --git a/includes/avatar/avatar170.gif b/includes/avatar/avatar170.gif Binary files differnew file mode 100755 index 00000000..dae4c36a --- /dev/null +++ b/includes/avatar/avatar170.gif diff --git a/includes/avatar/avatar171.gif b/includes/avatar/avatar171.gif Binary files differnew file mode 100755 index 00000000..774aa9c2 --- /dev/null +++ b/includes/avatar/avatar171.gif diff --git a/includes/avatar/avatar172.gif b/includes/avatar/avatar172.gif Binary files differnew file mode 100755 index 00000000..e6f7bc6c --- /dev/null +++ b/includes/avatar/avatar172.gif diff --git a/includes/avatar/avatar173.gif b/includes/avatar/avatar173.gif Binary files differnew file mode 100755 index 00000000..3222ac99 --- /dev/null +++ b/includes/avatar/avatar173.gif diff --git a/includes/avatar/avatar174.gif b/includes/avatar/avatar174.gif Binary files differnew file mode 100755 index 00000000..a64201ca --- /dev/null +++ b/includes/avatar/avatar174.gif diff --git a/includes/avatar/avatar175.gif b/includes/avatar/avatar175.gif Binary files differnew file mode 100755 index 00000000..c172a6eb --- /dev/null +++ b/includes/avatar/avatar175.gif diff --git a/includes/avatar/avatar176.gif b/includes/avatar/avatar176.gif Binary files differnew file mode 100755 index 00000000..bda3bae5 --- /dev/null +++ b/includes/avatar/avatar176.gif diff --git a/includes/avatar/avatar177.gif b/includes/avatar/avatar177.gif Binary files differnew file mode 100755 index 00000000..d2951985 --- /dev/null +++ b/includes/avatar/avatar177.gif diff --git a/includes/avatar/avatar178.gif b/includes/avatar/avatar178.gif Binary files differnew file mode 100755 index 00000000..400ae2eb --- /dev/null +++ b/includes/avatar/avatar178.gif diff --git a/includes/avatar/avatar179.gif b/includes/avatar/avatar179.gif Binary files differnew file mode 100755 index 00000000..cfb7a1cf --- /dev/null +++ b/includes/avatar/avatar179.gif diff --git a/includes/avatar/avatar18.gif b/includes/avatar/avatar18.gif Binary files differnew file mode 100755 index 00000000..4c1d9b57 --- /dev/null +++ b/includes/avatar/avatar18.gif diff --git a/includes/avatar/avatar180.gif b/includes/avatar/avatar180.gif Binary files differnew file mode 100755 index 00000000..5be98c79 --- /dev/null +++ b/includes/avatar/avatar180.gif diff --git a/includes/avatar/avatar181.gif b/includes/avatar/avatar181.gif Binary files differnew file mode 100755 index 00000000..44918224 --- /dev/null +++ b/includes/avatar/avatar181.gif diff --git a/includes/avatar/avatar182.gif b/includes/avatar/avatar182.gif Binary files differnew file mode 100755 index 00000000..914c3efc --- /dev/null +++ b/includes/avatar/avatar182.gif diff --git a/includes/avatar/avatar183.gif b/includes/avatar/avatar183.gif Binary files differnew file mode 100755 index 00000000..27d55f8f --- /dev/null +++ b/includes/avatar/avatar183.gif diff --git a/includes/avatar/avatar184.gif b/includes/avatar/avatar184.gif Binary files differnew file mode 100755 index 00000000..2ce57015 --- /dev/null +++ b/includes/avatar/avatar184.gif diff --git a/includes/avatar/avatar185.gif b/includes/avatar/avatar185.gif Binary files differnew file mode 100755 index 00000000..8eb60378 --- /dev/null +++ b/includes/avatar/avatar185.gif diff --git a/includes/avatar/avatar186.gif b/includes/avatar/avatar186.gif Binary files differnew file mode 100755 index 00000000..d30bc664 --- /dev/null +++ b/includes/avatar/avatar186.gif diff --git a/includes/avatar/avatar187.gif b/includes/avatar/avatar187.gif Binary files differnew file mode 100755 index 00000000..34bcc7d2 --- /dev/null +++ b/includes/avatar/avatar187.gif diff --git a/includes/avatar/avatar188.gif b/includes/avatar/avatar188.gif Binary files differnew file mode 100755 index 00000000..3056d45a --- /dev/null +++ b/includes/avatar/avatar188.gif diff --git a/includes/avatar/avatar189.gif b/includes/avatar/avatar189.gif Binary files differnew file mode 100755 index 00000000..9fb4cd83 --- /dev/null +++ b/includes/avatar/avatar189.gif diff --git a/includes/avatar/avatar19.gif b/includes/avatar/avatar19.gif Binary files differnew file mode 100755 index 00000000..40d42724 --- /dev/null +++ b/includes/avatar/avatar19.gif diff --git a/includes/avatar/avatar190.gif b/includes/avatar/avatar190.gif Binary files differnew file mode 100755 index 00000000..f8c38853 --- /dev/null +++ b/includes/avatar/avatar190.gif diff --git a/includes/avatar/avatar191.gif b/includes/avatar/avatar191.gif Binary files differnew file mode 100755 index 00000000..e6af0d88 --- /dev/null +++ b/includes/avatar/avatar191.gif diff --git a/includes/avatar/avatar192.gif b/includes/avatar/avatar192.gif Binary files differnew file mode 100755 index 00000000..123ed736 --- /dev/null +++ b/includes/avatar/avatar192.gif diff --git a/includes/avatar/avatar193.gif b/includes/avatar/avatar193.gif Binary files differnew file mode 100755 index 00000000..f82524d9 --- /dev/null +++ b/includes/avatar/avatar193.gif diff --git a/includes/avatar/avatar194.gif b/includes/avatar/avatar194.gif Binary files differnew file mode 100755 index 00000000..ae1d743b --- /dev/null +++ b/includes/avatar/avatar194.gif diff --git a/includes/avatar/avatar195.gif b/includes/avatar/avatar195.gif Binary files differnew file mode 100755 index 00000000..e22c9ba0 --- /dev/null +++ b/includes/avatar/avatar195.gif diff --git a/includes/avatar/avatar196.gif b/includes/avatar/avatar196.gif Binary files differnew file mode 100755 index 00000000..87e6293d --- /dev/null +++ b/includes/avatar/avatar196.gif diff --git a/includes/avatar/avatar197.gif b/includes/avatar/avatar197.gif Binary files differnew file mode 100755 index 00000000..88764c73 --- /dev/null +++ b/includes/avatar/avatar197.gif diff --git a/includes/avatar/avatar198.gif b/includes/avatar/avatar198.gif Binary files differnew file mode 100755 index 00000000..58a64280 --- /dev/null +++ b/includes/avatar/avatar198.gif diff --git a/includes/avatar/avatar199.gif b/includes/avatar/avatar199.gif Binary files differnew file mode 100755 index 00000000..e3861e3e --- /dev/null +++ b/includes/avatar/avatar199.gif diff --git a/includes/avatar/avatar2.gif b/includes/avatar/avatar2.gif Binary files differnew file mode 100755 index 00000000..6c1e79a7 --- /dev/null +++ b/includes/avatar/avatar2.gif diff --git a/includes/avatar/avatar20.gif b/includes/avatar/avatar20.gif Binary files differnew file mode 100755 index 00000000..7480ddd1 --- /dev/null +++ b/includes/avatar/avatar20.gif diff --git a/includes/avatar/avatar200.gif b/includes/avatar/avatar200.gif Binary files differnew file mode 100755 index 00000000..bcee18dd --- /dev/null +++ b/includes/avatar/avatar200.gif diff --git a/includes/avatar/avatar201.gif b/includes/avatar/avatar201.gif Binary files differnew file mode 100755 index 00000000..7ff54bd0 --- /dev/null +++ b/includes/avatar/avatar201.gif diff --git a/includes/avatar/avatar202.gif b/includes/avatar/avatar202.gif Binary files differnew file mode 100755 index 00000000..9b9ad5aa --- /dev/null +++ b/includes/avatar/avatar202.gif diff --git a/includes/avatar/avatar203.gif b/includes/avatar/avatar203.gif Binary files differnew file mode 100755 index 00000000..777e6ab9 --- /dev/null +++ b/includes/avatar/avatar203.gif diff --git a/includes/avatar/avatar204.gif b/includes/avatar/avatar204.gif Binary files differnew file mode 100755 index 00000000..6e16ed30 --- /dev/null +++ b/includes/avatar/avatar204.gif diff --git a/includes/avatar/avatar205.gif b/includes/avatar/avatar205.gif Binary files differnew file mode 100755 index 00000000..f780d7d8 --- /dev/null +++ b/includes/avatar/avatar205.gif diff --git a/includes/avatar/avatar206.gif b/includes/avatar/avatar206.gif Binary files differnew file mode 100755 index 00000000..6a5b3ad7 --- /dev/null +++ b/includes/avatar/avatar206.gif diff --git a/includes/avatar/avatar207.gif b/includes/avatar/avatar207.gif Binary files differnew file mode 100755 index 00000000..d956d1f9 --- /dev/null +++ b/includes/avatar/avatar207.gif diff --git a/includes/avatar/avatar208.gif b/includes/avatar/avatar208.gif Binary files differnew file mode 100755 index 00000000..571e059f --- /dev/null +++ b/includes/avatar/avatar208.gif diff --git a/includes/avatar/avatar209.gif b/includes/avatar/avatar209.gif Binary files differnew file mode 100755 index 00000000..d2976d85 --- /dev/null +++ b/includes/avatar/avatar209.gif diff --git a/includes/avatar/avatar21.gif b/includes/avatar/avatar21.gif Binary files differnew file mode 100755 index 00000000..45b1b8a3 --- /dev/null +++ b/includes/avatar/avatar21.gif diff --git a/includes/avatar/avatar210.gif b/includes/avatar/avatar210.gif Binary files differnew file mode 100755 index 00000000..2bd579b9 --- /dev/null +++ b/includes/avatar/avatar210.gif diff --git a/includes/avatar/avatar211.gif b/includes/avatar/avatar211.gif Binary files differnew file mode 100755 index 00000000..6e95b7d5 --- /dev/null +++ b/includes/avatar/avatar211.gif diff --git a/includes/avatar/avatar212.gif b/includes/avatar/avatar212.gif Binary files differnew file mode 100755 index 00000000..39e012b7 --- /dev/null +++ b/includes/avatar/avatar212.gif diff --git a/includes/avatar/avatar213.gif b/includes/avatar/avatar213.gif Binary files differnew file mode 100755 index 00000000..659fbb65 --- /dev/null +++ b/includes/avatar/avatar213.gif diff --git a/includes/avatar/avatar214.gif b/includes/avatar/avatar214.gif Binary files differnew file mode 100755 index 00000000..822d3530 --- /dev/null +++ b/includes/avatar/avatar214.gif diff --git a/includes/avatar/avatar215.gif b/includes/avatar/avatar215.gif Binary files differnew file mode 100755 index 00000000..e0909042 --- /dev/null +++ b/includes/avatar/avatar215.gif diff --git a/includes/avatar/avatar216.gif b/includes/avatar/avatar216.gif Binary files differnew file mode 100755 index 00000000..7ba52487 --- /dev/null +++ b/includes/avatar/avatar216.gif diff --git a/includes/avatar/avatar217.gif b/includes/avatar/avatar217.gif Binary files differnew file mode 100755 index 00000000..1d69bb45 --- /dev/null +++ b/includes/avatar/avatar217.gif diff --git a/includes/avatar/avatar218.gif b/includes/avatar/avatar218.gif Binary files differnew file mode 100755 index 00000000..508bff13 --- /dev/null +++ b/includes/avatar/avatar218.gif diff --git a/includes/avatar/avatar219.gif b/includes/avatar/avatar219.gif Binary files differnew file mode 100755 index 00000000..6c695dd8 --- /dev/null +++ b/includes/avatar/avatar219.gif diff --git a/includes/avatar/avatar22.gif b/includes/avatar/avatar22.gif Binary files differnew file mode 100755 index 00000000..7f7d9a26 --- /dev/null +++ b/includes/avatar/avatar22.gif diff --git a/includes/avatar/avatar220.gif b/includes/avatar/avatar220.gif Binary files differnew file mode 100755 index 00000000..76604ced --- /dev/null +++ b/includes/avatar/avatar220.gif diff --git a/includes/avatar/avatar221.gif b/includes/avatar/avatar221.gif Binary files differnew file mode 100755 index 00000000..2d5ed7db --- /dev/null +++ b/includes/avatar/avatar221.gif diff --git a/includes/avatar/avatar222.gif b/includes/avatar/avatar222.gif Binary files differnew file mode 100755 index 00000000..607887e5 --- /dev/null +++ b/includes/avatar/avatar222.gif diff --git a/includes/avatar/avatar223.gif b/includes/avatar/avatar223.gif Binary files differnew file mode 100755 index 00000000..5c7f782f --- /dev/null +++ b/includes/avatar/avatar223.gif diff --git a/includes/avatar/avatar224.gif b/includes/avatar/avatar224.gif Binary files differnew file mode 100755 index 00000000..46e7f845 --- /dev/null +++ b/includes/avatar/avatar224.gif diff --git a/includes/avatar/avatar225.gif b/includes/avatar/avatar225.gif Binary files differnew file mode 100755 index 00000000..7eb3bfcd --- /dev/null +++ b/includes/avatar/avatar225.gif diff --git a/includes/avatar/avatar226.gif b/includes/avatar/avatar226.gif Binary files differnew file mode 100755 index 00000000..a030d2f9 --- /dev/null +++ b/includes/avatar/avatar226.gif diff --git a/includes/avatar/avatar227.gif b/includes/avatar/avatar227.gif Binary files differnew file mode 100755 index 00000000..fe631b92 --- /dev/null +++ b/includes/avatar/avatar227.gif diff --git a/includes/avatar/avatar228.gif b/includes/avatar/avatar228.gif Binary files differnew file mode 100755 index 00000000..459ed140 --- /dev/null +++ b/includes/avatar/avatar228.gif diff --git a/includes/avatar/avatar229.gif b/includes/avatar/avatar229.gif Binary files differnew file mode 100755 index 00000000..35546746 --- /dev/null +++ b/includes/avatar/avatar229.gif diff --git a/includes/avatar/avatar23.gif b/includes/avatar/avatar23.gif Binary files differnew file mode 100755 index 00000000..55f84741 --- /dev/null +++ b/includes/avatar/avatar23.gif diff --git a/includes/avatar/avatar230.gif b/includes/avatar/avatar230.gif Binary files differnew file mode 100755 index 00000000..22ffccb0 --- /dev/null +++ b/includes/avatar/avatar230.gif diff --git a/includes/avatar/avatar231.gif b/includes/avatar/avatar231.gif Binary files differnew file mode 100755 index 00000000..52a82830 --- /dev/null +++ b/includes/avatar/avatar231.gif diff --git a/includes/avatar/avatar232.gif b/includes/avatar/avatar232.gif Binary files differnew file mode 100755 index 00000000..a442015b --- /dev/null +++ b/includes/avatar/avatar232.gif diff --git a/includes/avatar/avatar233.gif b/includes/avatar/avatar233.gif Binary files differnew file mode 100755 index 00000000..ad676d9c --- /dev/null +++ b/includes/avatar/avatar233.gif diff --git a/includes/avatar/avatar234.gif b/includes/avatar/avatar234.gif Binary files differnew file mode 100755 index 00000000..bf9200c2 --- /dev/null +++ b/includes/avatar/avatar234.gif diff --git a/includes/avatar/avatar235.gif b/includes/avatar/avatar235.gif Binary files differnew file mode 100755 index 00000000..80aee34d --- /dev/null +++ b/includes/avatar/avatar235.gif diff --git a/includes/avatar/avatar236.gif b/includes/avatar/avatar236.gif Binary files differnew file mode 100755 index 00000000..036c71e1 --- /dev/null +++ b/includes/avatar/avatar236.gif diff --git a/includes/avatar/avatar237.gif b/includes/avatar/avatar237.gif Binary files differnew file mode 100755 index 00000000..bf78ace7 --- /dev/null +++ b/includes/avatar/avatar237.gif diff --git a/includes/avatar/avatar238.gif b/includes/avatar/avatar238.gif Binary files differnew file mode 100755 index 00000000..276187e1 --- /dev/null +++ b/includes/avatar/avatar238.gif diff --git a/includes/avatar/avatar239.gif b/includes/avatar/avatar239.gif Binary files differnew file mode 100755 index 00000000..818b54a3 --- /dev/null +++ b/includes/avatar/avatar239.gif diff --git a/includes/avatar/avatar24.gif b/includes/avatar/avatar24.gif Binary files differnew file mode 100755 index 00000000..99226b50 --- /dev/null +++ b/includes/avatar/avatar24.gif diff --git a/includes/avatar/avatar240.gif b/includes/avatar/avatar240.gif Binary files differnew file mode 100755 index 00000000..ccfa1346 --- /dev/null +++ b/includes/avatar/avatar240.gif diff --git a/includes/avatar/avatar241.gif b/includes/avatar/avatar241.gif Binary files differnew file mode 100755 index 00000000..b2afaa82 --- /dev/null +++ b/includes/avatar/avatar241.gif diff --git a/includes/avatar/avatar242.gif b/includes/avatar/avatar242.gif Binary files differnew file mode 100755 index 00000000..dfdb3baa --- /dev/null +++ b/includes/avatar/avatar242.gif diff --git a/includes/avatar/avatar243.gif b/includes/avatar/avatar243.gif Binary files differnew file mode 100755 index 00000000..14b7e935 --- /dev/null +++ b/includes/avatar/avatar243.gif diff --git a/includes/avatar/avatar244.gif b/includes/avatar/avatar244.gif Binary files differnew file mode 100755 index 00000000..bfc10515 --- /dev/null +++ b/includes/avatar/avatar244.gif diff --git a/includes/avatar/avatar245.gif b/includes/avatar/avatar245.gif Binary files differnew file mode 100755 index 00000000..79dd0453 --- /dev/null +++ b/includes/avatar/avatar245.gif diff --git a/includes/avatar/avatar246.gif b/includes/avatar/avatar246.gif Binary files differnew file mode 100755 index 00000000..26878722 --- /dev/null +++ b/includes/avatar/avatar246.gif diff --git a/includes/avatar/avatar247.gif b/includes/avatar/avatar247.gif Binary files differnew file mode 100755 index 00000000..0b041108 --- /dev/null +++ b/includes/avatar/avatar247.gif diff --git a/includes/avatar/avatar248.gif b/includes/avatar/avatar248.gif Binary files differnew file mode 100755 index 00000000..7aa13465 --- /dev/null +++ b/includes/avatar/avatar248.gif diff --git a/includes/avatar/avatar249.gif b/includes/avatar/avatar249.gif Binary files differnew file mode 100755 index 00000000..c5cdf5d8 --- /dev/null +++ b/includes/avatar/avatar249.gif diff --git a/includes/avatar/avatar25.gif b/includes/avatar/avatar25.gif Binary files differnew file mode 100755 index 00000000..d5e29f52 --- /dev/null +++ b/includes/avatar/avatar25.gif diff --git a/includes/avatar/avatar250.gif b/includes/avatar/avatar250.gif Binary files differnew file mode 100755 index 00000000..61c2b962 --- /dev/null +++ b/includes/avatar/avatar250.gif diff --git a/includes/avatar/avatar251.gif b/includes/avatar/avatar251.gif Binary files differnew file mode 100755 index 00000000..01c2a370 --- /dev/null +++ b/includes/avatar/avatar251.gif diff --git a/includes/avatar/avatar252.gif b/includes/avatar/avatar252.gif Binary files differnew file mode 100755 index 00000000..6656fe75 --- /dev/null +++ b/includes/avatar/avatar252.gif diff --git a/includes/avatar/avatar253.gif b/includes/avatar/avatar253.gif Binary files differnew file mode 100755 index 00000000..4aaa9318 --- /dev/null +++ b/includes/avatar/avatar253.gif diff --git a/includes/avatar/avatar254.gif b/includes/avatar/avatar254.gif Binary files differnew file mode 100755 index 00000000..4439c722 --- /dev/null +++ b/includes/avatar/avatar254.gif diff --git a/includes/avatar/avatar255.gif b/includes/avatar/avatar255.gif Binary files differnew file mode 100755 index 00000000..3a5fd768 --- /dev/null +++ b/includes/avatar/avatar255.gif diff --git a/includes/avatar/avatar256.gif b/includes/avatar/avatar256.gif Binary files differnew file mode 100755 index 00000000..200dc450 --- /dev/null +++ b/includes/avatar/avatar256.gif diff --git a/includes/avatar/avatar257.gif b/includes/avatar/avatar257.gif Binary files differnew file mode 100755 index 00000000..9d9c823c --- /dev/null +++ b/includes/avatar/avatar257.gif diff --git a/includes/avatar/avatar258.gif b/includes/avatar/avatar258.gif Binary files differnew file mode 100755 index 00000000..044edc01 --- /dev/null +++ b/includes/avatar/avatar258.gif diff --git a/includes/avatar/avatar259.gif b/includes/avatar/avatar259.gif Binary files differnew file mode 100755 index 00000000..83334fb9 --- /dev/null +++ b/includes/avatar/avatar259.gif diff --git a/includes/avatar/avatar26.gif b/includes/avatar/avatar26.gif Binary files differnew file mode 100755 index 00000000..40d42724 --- /dev/null +++ b/includes/avatar/avatar26.gif diff --git a/includes/avatar/avatar260.gif b/includes/avatar/avatar260.gif Binary files differnew file mode 100755 index 00000000..8ec72dbe --- /dev/null +++ b/includes/avatar/avatar260.gif diff --git a/includes/avatar/avatar261.gif b/includes/avatar/avatar261.gif Binary files differnew file mode 100755 index 00000000..90505322 --- /dev/null +++ b/includes/avatar/avatar261.gif diff --git a/includes/avatar/avatar262.gif b/includes/avatar/avatar262.gif Binary files differnew file mode 100755 index 00000000..4656c222 --- /dev/null +++ b/includes/avatar/avatar262.gif diff --git a/includes/avatar/avatar263.gif b/includes/avatar/avatar263.gif Binary files differnew file mode 100755 index 00000000..6954e902 --- /dev/null +++ b/includes/avatar/avatar263.gif diff --git a/includes/avatar/avatar264.gif b/includes/avatar/avatar264.gif Binary files differnew file mode 100755 index 00000000..4e46f7b9 --- /dev/null +++ b/includes/avatar/avatar264.gif diff --git a/includes/avatar/avatar265.gif b/includes/avatar/avatar265.gif Binary files differnew file mode 100755 index 00000000..df18535c --- /dev/null +++ b/includes/avatar/avatar265.gif diff --git a/includes/avatar/avatar266.gif b/includes/avatar/avatar266.gif Binary files differnew file mode 100755 index 00000000..838305a7 --- /dev/null +++ b/includes/avatar/avatar266.gif diff --git a/includes/avatar/avatar267.gif b/includes/avatar/avatar267.gif Binary files differnew file mode 100755 index 00000000..8ac405e4 --- /dev/null +++ b/includes/avatar/avatar267.gif diff --git a/includes/avatar/avatar268.gif b/includes/avatar/avatar268.gif Binary files differnew file mode 100755 index 00000000..fe61c645 --- /dev/null +++ b/includes/avatar/avatar268.gif diff --git a/includes/avatar/avatar269.gif b/includes/avatar/avatar269.gif Binary files differnew file mode 100755 index 00000000..c71da25a --- /dev/null +++ b/includes/avatar/avatar269.gif diff --git a/includes/avatar/avatar27.gif b/includes/avatar/avatar27.gif Binary files differnew file mode 100755 index 00000000..43cf2125 --- /dev/null +++ b/includes/avatar/avatar27.gif diff --git a/includes/avatar/avatar270.gif b/includes/avatar/avatar270.gif Binary files differnew file mode 100755 index 00000000..9c11d479 --- /dev/null +++ b/includes/avatar/avatar270.gif diff --git a/includes/avatar/avatar271.gif b/includes/avatar/avatar271.gif Binary files differnew file mode 100755 index 00000000..ac95c950 --- /dev/null +++ b/includes/avatar/avatar271.gif diff --git a/includes/avatar/avatar272.gif b/includes/avatar/avatar272.gif Binary files differnew file mode 100755 index 00000000..4d451488 --- /dev/null +++ b/includes/avatar/avatar272.gif diff --git a/includes/avatar/avatar273.gif b/includes/avatar/avatar273.gif Binary files differnew file mode 100755 index 00000000..e26b9106 --- /dev/null +++ b/includes/avatar/avatar273.gif diff --git a/includes/avatar/avatar274.gif b/includes/avatar/avatar274.gif Binary files differnew file mode 100755 index 00000000..a941aa4c --- /dev/null +++ b/includes/avatar/avatar274.gif diff --git a/includes/avatar/avatar275.gif b/includes/avatar/avatar275.gif Binary files differnew file mode 100755 index 00000000..f324f6c0 --- /dev/null +++ b/includes/avatar/avatar275.gif diff --git a/includes/avatar/avatar276.gif b/includes/avatar/avatar276.gif Binary files differnew file mode 100755 index 00000000..6b0d8fee --- /dev/null +++ b/includes/avatar/avatar276.gif diff --git a/includes/avatar/avatar277.gif b/includes/avatar/avatar277.gif Binary files differnew file mode 100755 index 00000000..6fddc745 --- /dev/null +++ b/includes/avatar/avatar277.gif diff --git a/includes/avatar/avatar278.gif b/includes/avatar/avatar278.gif Binary files differnew file mode 100755 index 00000000..59e3b51d --- /dev/null +++ b/includes/avatar/avatar278.gif diff --git a/includes/avatar/avatar279.gif b/includes/avatar/avatar279.gif Binary files differnew file mode 100755 index 00000000..c8c0bb84 --- /dev/null +++ b/includes/avatar/avatar279.gif diff --git a/includes/avatar/avatar28.gif b/includes/avatar/avatar28.gif Binary files differnew file mode 100755 index 00000000..9251bdb6 --- /dev/null +++ b/includes/avatar/avatar28.gif diff --git a/includes/avatar/avatar280.gif b/includes/avatar/avatar280.gif Binary files differnew file mode 100755 index 00000000..954920d5 --- /dev/null +++ b/includes/avatar/avatar280.gif diff --git a/includes/avatar/avatar281.gif b/includes/avatar/avatar281.gif Binary files differnew file mode 100755 index 00000000..68ebd8cc --- /dev/null +++ b/includes/avatar/avatar281.gif diff --git a/includes/avatar/avatar282.gif b/includes/avatar/avatar282.gif Binary files differnew file mode 100755 index 00000000..ec06f9f5 --- /dev/null +++ b/includes/avatar/avatar282.gif diff --git a/includes/avatar/avatar283.gif b/includes/avatar/avatar283.gif Binary files differnew file mode 100755 index 00000000..2d0fad8a --- /dev/null +++ b/includes/avatar/avatar283.gif diff --git a/includes/avatar/avatar284.gif b/includes/avatar/avatar284.gif Binary files differnew file mode 100755 index 00000000..9cc79890 --- /dev/null +++ b/includes/avatar/avatar284.gif diff --git a/includes/avatar/avatar285.gif b/includes/avatar/avatar285.gif Binary files differnew file mode 100755 index 00000000..baf2c0b0 --- /dev/null +++ b/includes/avatar/avatar285.gif diff --git a/includes/avatar/avatar286.gif b/includes/avatar/avatar286.gif Binary files differnew file mode 100755 index 00000000..d74af8d4 --- /dev/null +++ b/includes/avatar/avatar286.gif diff --git a/includes/avatar/avatar287.gif b/includes/avatar/avatar287.gif Binary files differnew file mode 100755 index 00000000..0e4169ef --- /dev/null +++ b/includes/avatar/avatar287.gif diff --git a/includes/avatar/avatar288.gif b/includes/avatar/avatar288.gif Binary files differnew file mode 100755 index 00000000..41c2e9b4 --- /dev/null +++ b/includes/avatar/avatar288.gif diff --git a/includes/avatar/avatar289.gif b/includes/avatar/avatar289.gif Binary files differnew file mode 100755 index 00000000..c68b431a --- /dev/null +++ b/includes/avatar/avatar289.gif diff --git a/includes/avatar/avatar29.gif b/includes/avatar/avatar29.gif Binary files differnew file mode 100755 index 00000000..10063690 --- /dev/null +++ b/includes/avatar/avatar29.gif diff --git a/includes/avatar/avatar290.gif b/includes/avatar/avatar290.gif Binary files differnew file mode 100755 index 00000000..f2ca018b --- /dev/null +++ b/includes/avatar/avatar290.gif diff --git a/includes/avatar/avatar291.gif b/includes/avatar/avatar291.gif Binary files differnew file mode 100755 index 00000000..b9b0bbc3 --- /dev/null +++ b/includes/avatar/avatar291.gif diff --git a/includes/avatar/avatar292.gif b/includes/avatar/avatar292.gif Binary files differnew file mode 100755 index 00000000..6eecd4d1 --- /dev/null +++ b/includes/avatar/avatar292.gif diff --git a/includes/avatar/avatar293.gif b/includes/avatar/avatar293.gif Binary files differnew file mode 100755 index 00000000..a1834818 --- /dev/null +++ b/includes/avatar/avatar293.gif diff --git a/includes/avatar/avatar294.gif b/includes/avatar/avatar294.gif Binary files differnew file mode 100755 index 00000000..6ef5611a --- /dev/null +++ b/includes/avatar/avatar294.gif diff --git a/includes/avatar/avatar295.gif b/includes/avatar/avatar295.gif Binary files differnew file mode 100755 index 00000000..4c9fa7c6 --- /dev/null +++ b/includes/avatar/avatar295.gif diff --git a/includes/avatar/avatar296.gif b/includes/avatar/avatar296.gif Binary files differnew file mode 100755 index 00000000..b6ab2095 --- /dev/null +++ b/includes/avatar/avatar296.gif diff --git a/includes/avatar/avatar297.gif b/includes/avatar/avatar297.gif Binary files differnew file mode 100755 index 00000000..38d1d659 --- /dev/null +++ b/includes/avatar/avatar297.gif diff --git a/includes/avatar/avatar298.gif b/includes/avatar/avatar298.gif Binary files differnew file mode 100755 index 00000000..f1ee804c --- /dev/null +++ b/includes/avatar/avatar298.gif diff --git a/includes/avatar/avatar299.gif b/includes/avatar/avatar299.gif Binary files differnew file mode 100755 index 00000000..0d0b77b6 --- /dev/null +++ b/includes/avatar/avatar299.gif diff --git a/includes/avatar/avatar3.gif b/includes/avatar/avatar3.gif Binary files differnew file mode 100755 index 00000000..d8cd4306 --- /dev/null +++ b/includes/avatar/avatar3.gif diff --git a/includes/avatar/avatar30.gif b/includes/avatar/avatar30.gif Binary files differnew file mode 100755 index 00000000..b339d48d --- /dev/null +++ b/includes/avatar/avatar30.gif diff --git a/includes/avatar/avatar300.gif b/includes/avatar/avatar300.gif Binary files differnew file mode 100755 index 00000000..2582b3a4 --- /dev/null +++ b/includes/avatar/avatar300.gif diff --git a/includes/avatar/avatar301.gif b/includes/avatar/avatar301.gif Binary files differnew file mode 100755 index 00000000..2350bc8f --- /dev/null +++ b/includes/avatar/avatar301.gif diff --git a/includes/avatar/avatar302.gif b/includes/avatar/avatar302.gif Binary files differnew file mode 100755 index 00000000..2e05d242 --- /dev/null +++ b/includes/avatar/avatar302.gif diff --git a/includes/avatar/avatar303.gif b/includes/avatar/avatar303.gif Binary files differnew file mode 100755 index 00000000..776cec3b --- /dev/null +++ b/includes/avatar/avatar303.gif diff --git a/includes/avatar/avatar304.gif b/includes/avatar/avatar304.gif Binary files differnew file mode 100755 index 00000000..219a1184 --- /dev/null +++ b/includes/avatar/avatar304.gif diff --git a/includes/avatar/avatar305.gif b/includes/avatar/avatar305.gif Binary files differnew file mode 100755 index 00000000..27071b78 --- /dev/null +++ b/includes/avatar/avatar305.gif diff --git a/includes/avatar/avatar306.gif b/includes/avatar/avatar306.gif Binary files differnew file mode 100755 index 00000000..6ab781bf --- /dev/null +++ b/includes/avatar/avatar306.gif diff --git a/includes/avatar/avatar307.gif b/includes/avatar/avatar307.gif Binary files differnew file mode 100755 index 00000000..d40998b8 --- /dev/null +++ b/includes/avatar/avatar307.gif diff --git a/includes/avatar/avatar308.gif b/includes/avatar/avatar308.gif Binary files differnew file mode 100755 index 00000000..aafbe741 --- /dev/null +++ b/includes/avatar/avatar308.gif diff --git a/includes/avatar/avatar309.gif b/includes/avatar/avatar309.gif Binary files differnew file mode 100755 index 00000000..fe701cbf --- /dev/null +++ b/includes/avatar/avatar309.gif diff --git a/includes/avatar/avatar31.gif b/includes/avatar/avatar31.gif Binary files differnew file mode 100755 index 00000000..d5a9caf6 --- /dev/null +++ b/includes/avatar/avatar31.gif diff --git a/includes/avatar/avatar310.gif b/includes/avatar/avatar310.gif Binary files differnew file mode 100755 index 00000000..e6072552 --- /dev/null +++ b/includes/avatar/avatar310.gif diff --git a/includes/avatar/avatar311.gif b/includes/avatar/avatar311.gif Binary files differnew file mode 100755 index 00000000..9b77a2a3 --- /dev/null +++ b/includes/avatar/avatar311.gif diff --git a/includes/avatar/avatar312.gif b/includes/avatar/avatar312.gif Binary files differnew file mode 100755 index 00000000..89acef5f --- /dev/null +++ b/includes/avatar/avatar312.gif diff --git a/includes/avatar/avatar313.gif b/includes/avatar/avatar313.gif Binary files differnew file mode 100755 index 00000000..fee5e41b --- /dev/null +++ b/includes/avatar/avatar313.gif diff --git a/includes/avatar/avatar314.gif b/includes/avatar/avatar314.gif Binary files differnew file mode 100755 index 00000000..e706e088 --- /dev/null +++ b/includes/avatar/avatar314.gif diff --git a/includes/avatar/avatar315.gif b/includes/avatar/avatar315.gif Binary files differnew file mode 100755 index 00000000..fb3ee057 --- /dev/null +++ b/includes/avatar/avatar315.gif diff --git a/includes/avatar/avatar316.gif b/includes/avatar/avatar316.gif Binary files differnew file mode 100755 index 00000000..662fe276 --- /dev/null +++ b/includes/avatar/avatar316.gif diff --git a/includes/avatar/avatar317.gif b/includes/avatar/avatar317.gif Binary files differnew file mode 100755 index 00000000..0a858151 --- /dev/null +++ b/includes/avatar/avatar317.gif diff --git a/includes/avatar/avatar318.gif b/includes/avatar/avatar318.gif Binary files differnew file mode 100755 index 00000000..4ca84803 --- /dev/null +++ b/includes/avatar/avatar318.gif diff --git a/includes/avatar/avatar319.gif b/includes/avatar/avatar319.gif Binary files differnew file mode 100755 index 00000000..503cae0a --- /dev/null +++ b/includes/avatar/avatar319.gif diff --git a/includes/avatar/avatar32.gif b/includes/avatar/avatar32.gif Binary files differnew file mode 100755 index 00000000..5f3b5d43 --- /dev/null +++ b/includes/avatar/avatar32.gif diff --git a/includes/avatar/avatar320.gif b/includes/avatar/avatar320.gif Binary files differnew file mode 100755 index 00000000..0cd51805 --- /dev/null +++ b/includes/avatar/avatar320.gif diff --git a/includes/avatar/avatar321.gif b/includes/avatar/avatar321.gif Binary files differnew file mode 100755 index 00000000..eefbbda9 --- /dev/null +++ b/includes/avatar/avatar321.gif diff --git a/includes/avatar/avatar322.gif b/includes/avatar/avatar322.gif Binary files differnew file mode 100755 index 00000000..0243065b --- /dev/null +++ b/includes/avatar/avatar322.gif diff --git a/includes/avatar/avatar323.gif b/includes/avatar/avatar323.gif Binary files differnew file mode 100755 index 00000000..b1e08c05 --- /dev/null +++ b/includes/avatar/avatar323.gif diff --git a/includes/avatar/avatar324.gif b/includes/avatar/avatar324.gif Binary files differnew file mode 100755 index 00000000..a2168e48 --- /dev/null +++ b/includes/avatar/avatar324.gif diff --git a/includes/avatar/avatar325.gif b/includes/avatar/avatar325.gif Binary files differnew file mode 100755 index 00000000..dac85af5 --- /dev/null +++ b/includes/avatar/avatar325.gif diff --git a/includes/avatar/avatar326.gif b/includes/avatar/avatar326.gif Binary files differnew file mode 100755 index 00000000..afe5442f --- /dev/null +++ b/includes/avatar/avatar326.gif diff --git a/includes/avatar/avatar327.gif b/includes/avatar/avatar327.gif Binary files differnew file mode 100755 index 00000000..7db04c45 --- /dev/null +++ b/includes/avatar/avatar327.gif diff --git a/includes/avatar/avatar328.gif b/includes/avatar/avatar328.gif Binary files differnew file mode 100755 index 00000000..4d1d8a4a --- /dev/null +++ b/includes/avatar/avatar328.gif diff --git a/includes/avatar/avatar329.gif b/includes/avatar/avatar329.gif Binary files differnew file mode 100755 index 00000000..ede4d487 --- /dev/null +++ b/includes/avatar/avatar329.gif diff --git a/includes/avatar/avatar33.gif b/includes/avatar/avatar33.gif Binary files differnew file mode 100755 index 00000000..03ca160e --- /dev/null +++ b/includes/avatar/avatar33.gif diff --git a/includes/avatar/avatar330.gif b/includes/avatar/avatar330.gif Binary files differnew file mode 100755 index 00000000..e4a0a821 --- /dev/null +++ b/includes/avatar/avatar330.gif diff --git a/includes/avatar/avatar331.gif b/includes/avatar/avatar331.gif Binary files differnew file mode 100755 index 00000000..6a047501 --- /dev/null +++ b/includes/avatar/avatar331.gif diff --git a/includes/avatar/avatar332.gif b/includes/avatar/avatar332.gif Binary files differnew file mode 100755 index 00000000..6bde912c --- /dev/null +++ b/includes/avatar/avatar332.gif diff --git a/includes/avatar/avatar333.gif b/includes/avatar/avatar333.gif Binary files differnew file mode 100755 index 00000000..1bb07ba9 --- /dev/null +++ b/includes/avatar/avatar333.gif diff --git a/includes/avatar/avatar334.gif b/includes/avatar/avatar334.gif Binary files differnew file mode 100755 index 00000000..c4ec9f85 --- /dev/null +++ b/includes/avatar/avatar334.gif diff --git a/includes/avatar/avatar335.gif b/includes/avatar/avatar335.gif Binary files differnew file mode 100755 index 00000000..3ce39e43 --- /dev/null +++ b/includes/avatar/avatar335.gif diff --git a/includes/avatar/avatar336.gif b/includes/avatar/avatar336.gif Binary files differnew file mode 100755 index 00000000..e9876066 --- /dev/null +++ b/includes/avatar/avatar336.gif diff --git a/includes/avatar/avatar337.gif b/includes/avatar/avatar337.gif Binary files differnew file mode 100755 index 00000000..f4e15213 --- /dev/null +++ b/includes/avatar/avatar337.gif diff --git a/includes/avatar/avatar338.gif b/includes/avatar/avatar338.gif Binary files differnew file mode 100755 index 00000000..0b70f568 --- /dev/null +++ b/includes/avatar/avatar338.gif diff --git a/includes/avatar/avatar339.gif b/includes/avatar/avatar339.gif Binary files differnew file mode 100755 index 00000000..08afad48 --- /dev/null +++ b/includes/avatar/avatar339.gif diff --git a/includes/avatar/avatar34.gif b/includes/avatar/avatar34.gif Binary files differnew file mode 100755 index 00000000..49c49577 --- /dev/null +++ b/includes/avatar/avatar34.gif diff --git a/includes/avatar/avatar340.gif b/includes/avatar/avatar340.gif Binary files differnew file mode 100755 index 00000000..640984a3 --- /dev/null +++ b/includes/avatar/avatar340.gif diff --git a/includes/avatar/avatar341.gif b/includes/avatar/avatar341.gif Binary files differnew file mode 100755 index 00000000..a4556966 --- /dev/null +++ b/includes/avatar/avatar341.gif diff --git a/includes/avatar/avatar342.gif b/includes/avatar/avatar342.gif Binary files differnew file mode 100755 index 00000000..8022e7a2 --- /dev/null +++ b/includes/avatar/avatar342.gif diff --git a/includes/avatar/avatar343.gif b/includes/avatar/avatar343.gif Binary files differnew file mode 100755 index 00000000..71a99e9a --- /dev/null +++ b/includes/avatar/avatar343.gif diff --git a/includes/avatar/avatar344.gif b/includes/avatar/avatar344.gif Binary files differnew file mode 100755 index 00000000..fcdc99e8 --- /dev/null +++ b/includes/avatar/avatar344.gif diff --git a/includes/avatar/avatar345.gif b/includes/avatar/avatar345.gif Binary files differnew file mode 100755 index 00000000..57a63f4b --- /dev/null +++ b/includes/avatar/avatar345.gif diff --git a/includes/avatar/avatar346.gif b/includes/avatar/avatar346.gif Binary files differnew file mode 100755 index 00000000..f41dcd30 --- /dev/null +++ b/includes/avatar/avatar346.gif diff --git a/includes/avatar/avatar347.gif b/includes/avatar/avatar347.gif Binary files differnew file mode 100755 index 00000000..8d8a54cb --- /dev/null +++ b/includes/avatar/avatar347.gif diff --git a/includes/avatar/avatar348.gif b/includes/avatar/avatar348.gif Binary files differnew file mode 100755 index 00000000..7c54eb39 --- /dev/null +++ b/includes/avatar/avatar348.gif diff --git a/includes/avatar/avatar349.gif b/includes/avatar/avatar349.gif Binary files differnew file mode 100755 index 00000000..64de8b9e --- /dev/null +++ b/includes/avatar/avatar349.gif diff --git a/includes/avatar/avatar35.gif b/includes/avatar/avatar35.gif Binary files differnew file mode 100755 index 00000000..29eec4ac --- /dev/null +++ b/includes/avatar/avatar35.gif diff --git a/includes/avatar/avatar350.gif b/includes/avatar/avatar350.gif Binary files differnew file mode 100755 index 00000000..c57f1061 --- /dev/null +++ b/includes/avatar/avatar350.gif diff --git a/includes/avatar/avatar351.gif b/includes/avatar/avatar351.gif Binary files differnew file mode 100755 index 00000000..8ccb8185 --- /dev/null +++ b/includes/avatar/avatar351.gif diff --git a/includes/avatar/avatar352.gif b/includes/avatar/avatar352.gif Binary files differnew file mode 100755 index 00000000..8737e658 --- /dev/null +++ b/includes/avatar/avatar352.gif diff --git a/includes/avatar/avatar353.gif b/includes/avatar/avatar353.gif Binary files differnew file mode 100755 index 00000000..b6da0623 --- /dev/null +++ b/includes/avatar/avatar353.gif diff --git a/includes/avatar/avatar354.gif b/includes/avatar/avatar354.gif Binary files differnew file mode 100755 index 00000000..7565e6f9 --- /dev/null +++ b/includes/avatar/avatar354.gif diff --git a/includes/avatar/avatar355.gif b/includes/avatar/avatar355.gif Binary files differnew file mode 100755 index 00000000..3b08b30f --- /dev/null +++ b/includes/avatar/avatar355.gif diff --git a/includes/avatar/avatar356.gif b/includes/avatar/avatar356.gif Binary files differnew file mode 100755 index 00000000..7d0dc95b --- /dev/null +++ b/includes/avatar/avatar356.gif diff --git a/includes/avatar/avatar357.gif b/includes/avatar/avatar357.gif Binary files differnew file mode 100755 index 00000000..ed1157a0 --- /dev/null +++ b/includes/avatar/avatar357.gif diff --git a/includes/avatar/avatar358.gif b/includes/avatar/avatar358.gif Binary files differnew file mode 100755 index 00000000..2dc844a5 --- /dev/null +++ b/includes/avatar/avatar358.gif diff --git a/includes/avatar/avatar359.gif b/includes/avatar/avatar359.gif Binary files differnew file mode 100755 index 00000000..8ac3f7fd --- /dev/null +++ b/includes/avatar/avatar359.gif diff --git a/includes/avatar/avatar36.gif b/includes/avatar/avatar36.gif Binary files differnew file mode 100755 index 00000000..cab160e5 --- /dev/null +++ b/includes/avatar/avatar36.gif diff --git a/includes/avatar/avatar360.gif b/includes/avatar/avatar360.gif Binary files differnew file mode 100755 index 00000000..b01fb184 --- /dev/null +++ b/includes/avatar/avatar360.gif diff --git a/includes/avatar/avatar361.gif b/includes/avatar/avatar361.gif Binary files differnew file mode 100755 index 00000000..c4573da7 --- /dev/null +++ b/includes/avatar/avatar361.gif diff --git a/includes/avatar/avatar362.gif b/includes/avatar/avatar362.gif Binary files differnew file mode 100755 index 00000000..189c9276 --- /dev/null +++ b/includes/avatar/avatar362.gif diff --git a/includes/avatar/avatar363.gif b/includes/avatar/avatar363.gif Binary files differnew file mode 100755 index 00000000..8ff0b39c --- /dev/null +++ b/includes/avatar/avatar363.gif diff --git a/includes/avatar/avatar364.gif b/includes/avatar/avatar364.gif Binary files differnew file mode 100755 index 00000000..8f22d79f --- /dev/null +++ b/includes/avatar/avatar364.gif diff --git a/includes/avatar/avatar365.gif b/includes/avatar/avatar365.gif Binary files differnew file mode 100755 index 00000000..950aea2a --- /dev/null +++ b/includes/avatar/avatar365.gif diff --git a/includes/avatar/avatar366.gif b/includes/avatar/avatar366.gif Binary files differnew file mode 100755 index 00000000..b1dc12d2 --- /dev/null +++ b/includes/avatar/avatar366.gif diff --git a/includes/avatar/avatar367.gif b/includes/avatar/avatar367.gif Binary files differnew file mode 100755 index 00000000..0de8fe4b --- /dev/null +++ b/includes/avatar/avatar367.gif diff --git a/includes/avatar/avatar368.gif b/includes/avatar/avatar368.gif Binary files differnew file mode 100755 index 00000000..b3f7e0f6 --- /dev/null +++ b/includes/avatar/avatar368.gif diff --git a/includes/avatar/avatar369.gif b/includes/avatar/avatar369.gif Binary files differnew file mode 100755 index 00000000..0efb8393 --- /dev/null +++ b/includes/avatar/avatar369.gif diff --git a/includes/avatar/avatar37.gif b/includes/avatar/avatar37.gif Binary files differnew file mode 100755 index 00000000..32b73e09 --- /dev/null +++ b/includes/avatar/avatar37.gif diff --git a/includes/avatar/avatar370.gif b/includes/avatar/avatar370.gif Binary files differnew file mode 100755 index 00000000..d5dbc5df --- /dev/null +++ b/includes/avatar/avatar370.gif diff --git a/includes/avatar/avatar371.gif b/includes/avatar/avatar371.gif Binary files differnew file mode 100755 index 00000000..868546f7 --- /dev/null +++ b/includes/avatar/avatar371.gif diff --git a/includes/avatar/avatar372.gif b/includes/avatar/avatar372.gif Binary files differnew file mode 100755 index 00000000..6458885d --- /dev/null +++ b/includes/avatar/avatar372.gif diff --git a/includes/avatar/avatar373.gif b/includes/avatar/avatar373.gif Binary files differnew file mode 100755 index 00000000..b1e04070 --- /dev/null +++ b/includes/avatar/avatar373.gif diff --git a/includes/avatar/avatar374.gif b/includes/avatar/avatar374.gif Binary files differnew file mode 100755 index 00000000..e29653ba --- /dev/null +++ b/includes/avatar/avatar374.gif diff --git a/includes/avatar/avatar375.gif b/includes/avatar/avatar375.gif Binary files differnew file mode 100755 index 00000000..e5aefc87 --- /dev/null +++ b/includes/avatar/avatar375.gif diff --git a/includes/avatar/avatar376.gif b/includes/avatar/avatar376.gif Binary files differnew file mode 100755 index 00000000..b5785477 --- /dev/null +++ b/includes/avatar/avatar376.gif diff --git a/includes/avatar/avatar377.gif b/includes/avatar/avatar377.gif Binary files differnew file mode 100755 index 00000000..67fd7cf4 --- /dev/null +++ b/includes/avatar/avatar377.gif diff --git a/includes/avatar/avatar378.gif b/includes/avatar/avatar378.gif Binary files differnew file mode 100755 index 00000000..c3924d9c --- /dev/null +++ b/includes/avatar/avatar378.gif diff --git a/includes/avatar/avatar379.gif b/includes/avatar/avatar379.gif Binary files differnew file mode 100755 index 00000000..def8a49d --- /dev/null +++ b/includes/avatar/avatar379.gif diff --git a/includes/avatar/avatar38.gif b/includes/avatar/avatar38.gif Binary files differnew file mode 100755 index 00000000..109ce01a --- /dev/null +++ b/includes/avatar/avatar38.gif diff --git a/includes/avatar/avatar380.gif b/includes/avatar/avatar380.gif Binary files differnew file mode 100755 index 00000000..d02ed852 --- /dev/null +++ b/includes/avatar/avatar380.gif diff --git a/includes/avatar/avatar381.gif b/includes/avatar/avatar381.gif Binary files differnew file mode 100755 index 00000000..762871c2 --- /dev/null +++ b/includes/avatar/avatar381.gif diff --git a/includes/avatar/avatar382.gif b/includes/avatar/avatar382.gif Binary files differnew file mode 100755 index 00000000..201872f9 --- /dev/null +++ b/includes/avatar/avatar382.gif diff --git a/includes/avatar/avatar383.gif b/includes/avatar/avatar383.gif Binary files differnew file mode 100755 index 00000000..a71bbad9 --- /dev/null +++ b/includes/avatar/avatar383.gif diff --git a/includes/avatar/avatar384.gif b/includes/avatar/avatar384.gif Binary files differnew file mode 100755 index 00000000..6a9e2a45 --- /dev/null +++ b/includes/avatar/avatar384.gif diff --git a/includes/avatar/avatar385.gif b/includes/avatar/avatar385.gif Binary files differnew file mode 100755 index 00000000..8b51fdef --- /dev/null +++ b/includes/avatar/avatar385.gif diff --git a/includes/avatar/avatar386.gif b/includes/avatar/avatar386.gif Binary files differnew file mode 100755 index 00000000..e1d42707 --- /dev/null +++ b/includes/avatar/avatar386.gif diff --git a/includes/avatar/avatar387.gif b/includes/avatar/avatar387.gif Binary files differnew file mode 100755 index 00000000..186869c5 --- /dev/null +++ b/includes/avatar/avatar387.gif diff --git a/includes/avatar/avatar388.gif b/includes/avatar/avatar388.gif Binary files differnew file mode 100755 index 00000000..369f01bb --- /dev/null +++ b/includes/avatar/avatar388.gif diff --git a/includes/avatar/avatar389.gif b/includes/avatar/avatar389.gif Binary files differnew file mode 100755 index 00000000..d0cb95e4 --- /dev/null +++ b/includes/avatar/avatar389.gif diff --git a/includes/avatar/avatar39.gif b/includes/avatar/avatar39.gif Binary files differnew file mode 100755 index 00000000..307632c4 --- /dev/null +++ b/includes/avatar/avatar39.gif diff --git a/includes/avatar/avatar390.gif b/includes/avatar/avatar390.gif Binary files differnew file mode 100755 index 00000000..901e2a4e --- /dev/null +++ b/includes/avatar/avatar390.gif diff --git a/includes/avatar/avatar391.gif b/includes/avatar/avatar391.gif Binary files differnew file mode 100755 index 00000000..65f58627 --- /dev/null +++ b/includes/avatar/avatar391.gif diff --git a/includes/avatar/avatar392.gif b/includes/avatar/avatar392.gif Binary files differnew file mode 100755 index 00000000..ff98710d --- /dev/null +++ b/includes/avatar/avatar392.gif diff --git a/includes/avatar/avatar393.gif b/includes/avatar/avatar393.gif Binary files differnew file mode 100755 index 00000000..693be70b --- /dev/null +++ b/includes/avatar/avatar393.gif diff --git a/includes/avatar/avatar394.gif b/includes/avatar/avatar394.gif Binary files differnew file mode 100755 index 00000000..baf43448 --- /dev/null +++ b/includes/avatar/avatar394.gif diff --git a/includes/avatar/avatar395.gif b/includes/avatar/avatar395.gif Binary files differnew file mode 100755 index 00000000..bff14e63 --- /dev/null +++ b/includes/avatar/avatar395.gif diff --git a/includes/avatar/avatar396.gif b/includes/avatar/avatar396.gif Binary files differnew file mode 100755 index 00000000..882469c0 --- /dev/null +++ b/includes/avatar/avatar396.gif diff --git a/includes/avatar/avatar397.gif b/includes/avatar/avatar397.gif Binary files differnew file mode 100755 index 00000000..de246f0d --- /dev/null +++ b/includes/avatar/avatar397.gif diff --git a/includes/avatar/avatar398.gif b/includes/avatar/avatar398.gif Binary files differnew file mode 100755 index 00000000..07bae656 --- /dev/null +++ b/includes/avatar/avatar398.gif diff --git a/includes/avatar/avatar399.gif b/includes/avatar/avatar399.gif Binary files differnew file mode 100755 index 00000000..c3b92047 --- /dev/null +++ b/includes/avatar/avatar399.gif diff --git a/includes/avatar/avatar4.gif b/includes/avatar/avatar4.gif Binary files differnew file mode 100755 index 00000000..e525aa86 --- /dev/null +++ b/includes/avatar/avatar4.gif diff --git a/includes/avatar/avatar40.gif b/includes/avatar/avatar40.gif Binary files differnew file mode 100755 index 00000000..34e32133 --- /dev/null +++ b/includes/avatar/avatar40.gif diff --git a/includes/avatar/avatar400.gif b/includes/avatar/avatar400.gif Binary files differnew file mode 100755 index 00000000..fe77d5a7 --- /dev/null +++ b/includes/avatar/avatar400.gif diff --git a/includes/avatar/avatar401.gif b/includes/avatar/avatar401.gif Binary files differnew file mode 100755 index 00000000..a4d84be4 --- /dev/null +++ b/includes/avatar/avatar401.gif diff --git a/includes/avatar/avatar402.gif b/includes/avatar/avatar402.gif Binary files differnew file mode 100755 index 00000000..f8b7834f --- /dev/null +++ b/includes/avatar/avatar402.gif diff --git a/includes/avatar/avatar403.gif b/includes/avatar/avatar403.gif Binary files differnew file mode 100755 index 00000000..7f5f4bcb --- /dev/null +++ b/includes/avatar/avatar403.gif diff --git a/includes/avatar/avatar404.gif b/includes/avatar/avatar404.gif Binary files differnew file mode 100755 index 00000000..00ac94bc --- /dev/null +++ b/includes/avatar/avatar404.gif diff --git a/includes/avatar/avatar405.gif b/includes/avatar/avatar405.gif Binary files differnew file mode 100755 index 00000000..c8b2506c --- /dev/null +++ b/includes/avatar/avatar405.gif diff --git a/includes/avatar/avatar406.gif b/includes/avatar/avatar406.gif Binary files differnew file mode 100755 index 00000000..831ccfc6 --- /dev/null +++ b/includes/avatar/avatar406.gif diff --git a/includes/avatar/avatar407.gif b/includes/avatar/avatar407.gif Binary files differnew file mode 100755 index 00000000..9b989638 --- /dev/null +++ b/includes/avatar/avatar407.gif diff --git a/includes/avatar/avatar408.gif b/includes/avatar/avatar408.gif Binary files differnew file mode 100755 index 00000000..5699f755 --- /dev/null +++ b/includes/avatar/avatar408.gif diff --git a/includes/avatar/avatar409.gif b/includes/avatar/avatar409.gif Binary files differnew file mode 100755 index 00000000..4300f609 --- /dev/null +++ b/includes/avatar/avatar409.gif diff --git a/includes/avatar/avatar41.gif b/includes/avatar/avatar41.gif Binary files differnew file mode 100755 index 00000000..f6f631ba --- /dev/null +++ b/includes/avatar/avatar41.gif diff --git a/includes/avatar/avatar410.gif b/includes/avatar/avatar410.gif Binary files differnew file mode 100755 index 00000000..a2ddb3e0 --- /dev/null +++ b/includes/avatar/avatar410.gif diff --git a/includes/avatar/avatar411.gif b/includes/avatar/avatar411.gif Binary files differnew file mode 100755 index 00000000..8658510f --- /dev/null +++ b/includes/avatar/avatar411.gif diff --git a/includes/avatar/avatar412.gif b/includes/avatar/avatar412.gif Binary files differnew file mode 100755 index 00000000..1a4bae4b --- /dev/null +++ b/includes/avatar/avatar412.gif diff --git a/includes/avatar/avatar413.gif b/includes/avatar/avatar413.gif Binary files differnew file mode 100755 index 00000000..14eb3a92 --- /dev/null +++ b/includes/avatar/avatar413.gif diff --git a/includes/avatar/avatar414.gif b/includes/avatar/avatar414.gif Binary files differnew file mode 100755 index 00000000..5f23cc79 --- /dev/null +++ b/includes/avatar/avatar414.gif diff --git a/includes/avatar/avatar415.gif b/includes/avatar/avatar415.gif Binary files differnew file mode 100755 index 00000000..c7312a64 --- /dev/null +++ b/includes/avatar/avatar415.gif diff --git a/includes/avatar/avatar416.gif b/includes/avatar/avatar416.gif Binary files differnew file mode 100755 index 00000000..fee5e41b --- /dev/null +++ b/includes/avatar/avatar416.gif diff --git a/includes/avatar/avatar417.gif b/includes/avatar/avatar417.gif Binary files differnew file mode 100755 index 00000000..d3b3dbbe --- /dev/null +++ b/includes/avatar/avatar417.gif diff --git a/includes/avatar/avatar418.gif b/includes/avatar/avatar418.gif Binary files differnew file mode 100755 index 00000000..3f648c4f --- /dev/null +++ b/includes/avatar/avatar418.gif diff --git a/includes/avatar/avatar419.gif b/includes/avatar/avatar419.gif Binary files differnew file mode 100755 index 00000000..87587fe5 --- /dev/null +++ b/includes/avatar/avatar419.gif diff --git a/includes/avatar/avatar42.gif b/includes/avatar/avatar42.gif Binary files differnew file mode 100755 index 00000000..5828d2af --- /dev/null +++ b/includes/avatar/avatar42.gif diff --git a/includes/avatar/avatar420.gif b/includes/avatar/avatar420.gif Binary files differnew file mode 100755 index 00000000..2aca0620 --- /dev/null +++ b/includes/avatar/avatar420.gif diff --git a/includes/avatar/avatar421.gif b/includes/avatar/avatar421.gif Binary files differnew file mode 100755 index 00000000..152f5252 --- /dev/null +++ b/includes/avatar/avatar421.gif diff --git a/includes/avatar/avatar422.gif b/includes/avatar/avatar422.gif Binary files differnew file mode 100755 index 00000000..228f17d5 --- /dev/null +++ b/includes/avatar/avatar422.gif diff --git a/includes/avatar/avatar423.gif b/includes/avatar/avatar423.gif Binary files differnew file mode 100755 index 00000000..5f25f9c4 --- /dev/null +++ b/includes/avatar/avatar423.gif diff --git a/includes/avatar/avatar424.gif b/includes/avatar/avatar424.gif Binary files differnew file mode 100755 index 00000000..d8e9b029 --- /dev/null +++ b/includes/avatar/avatar424.gif diff --git a/includes/avatar/avatar425.gif b/includes/avatar/avatar425.gif Binary files differnew file mode 100755 index 00000000..ec35e12b --- /dev/null +++ b/includes/avatar/avatar425.gif diff --git a/includes/avatar/avatar426.gif b/includes/avatar/avatar426.gif Binary files differnew file mode 100755 index 00000000..9e13452d --- /dev/null +++ b/includes/avatar/avatar426.gif diff --git a/includes/avatar/avatar427.gif b/includes/avatar/avatar427.gif Binary files differnew file mode 100755 index 00000000..aca392ec --- /dev/null +++ b/includes/avatar/avatar427.gif diff --git a/includes/avatar/avatar428.gif b/includes/avatar/avatar428.gif Binary files differnew file mode 100755 index 00000000..2663bb30 --- /dev/null +++ b/includes/avatar/avatar428.gif diff --git a/includes/avatar/avatar429.gif b/includes/avatar/avatar429.gif Binary files differnew file mode 100755 index 00000000..f6ae8487 --- /dev/null +++ b/includes/avatar/avatar429.gif diff --git a/includes/avatar/avatar43.gif b/includes/avatar/avatar43.gif Binary files differnew file mode 100755 index 00000000..4ba29bd2 --- /dev/null +++ b/includes/avatar/avatar43.gif diff --git a/includes/avatar/avatar430.gif b/includes/avatar/avatar430.gif Binary files differnew file mode 100755 index 00000000..f64e8229 --- /dev/null +++ b/includes/avatar/avatar430.gif diff --git a/includes/avatar/avatar431.gif b/includes/avatar/avatar431.gif Binary files differnew file mode 100755 index 00000000..28791161 --- /dev/null +++ b/includes/avatar/avatar431.gif diff --git a/includes/avatar/avatar432.gif b/includes/avatar/avatar432.gif Binary files differnew file mode 100755 index 00000000..7edc6132 --- /dev/null +++ b/includes/avatar/avatar432.gif diff --git a/includes/avatar/avatar433.gif b/includes/avatar/avatar433.gif Binary files differnew file mode 100755 index 00000000..b300940b --- /dev/null +++ b/includes/avatar/avatar433.gif diff --git a/includes/avatar/avatar434.gif b/includes/avatar/avatar434.gif Binary files differnew file mode 100755 index 00000000..020863e3 --- /dev/null +++ b/includes/avatar/avatar434.gif diff --git a/includes/avatar/avatar435.gif b/includes/avatar/avatar435.gif Binary files differnew file mode 100755 index 00000000..98122e5b --- /dev/null +++ b/includes/avatar/avatar435.gif diff --git a/includes/avatar/avatar436.gif b/includes/avatar/avatar436.gif Binary files differnew file mode 100755 index 00000000..7698c886 --- /dev/null +++ b/includes/avatar/avatar436.gif diff --git a/includes/avatar/avatar437.gif b/includes/avatar/avatar437.gif Binary files differnew file mode 100755 index 00000000..262ace97 --- /dev/null +++ b/includes/avatar/avatar437.gif diff --git a/includes/avatar/avatar438.gif b/includes/avatar/avatar438.gif Binary files differnew file mode 100755 index 00000000..84033e11 --- /dev/null +++ b/includes/avatar/avatar438.gif diff --git a/includes/avatar/avatar439.gif b/includes/avatar/avatar439.gif Binary files differnew file mode 100755 index 00000000..04fb6876 --- /dev/null +++ b/includes/avatar/avatar439.gif diff --git a/includes/avatar/avatar44.gif b/includes/avatar/avatar44.gif Binary files differnew file mode 100755 index 00000000..9db2cd9f --- /dev/null +++ b/includes/avatar/avatar44.gif diff --git a/includes/avatar/avatar440.gif b/includes/avatar/avatar440.gif Binary files differnew file mode 100755 index 00000000..b414dfcb --- /dev/null +++ b/includes/avatar/avatar440.gif diff --git a/includes/avatar/avatar441.gif b/includes/avatar/avatar441.gif Binary files differnew file mode 100755 index 00000000..db79f0c8 --- /dev/null +++ b/includes/avatar/avatar441.gif diff --git a/includes/avatar/avatar442.gif b/includes/avatar/avatar442.gif Binary files differnew file mode 100755 index 00000000..341395ac --- /dev/null +++ b/includes/avatar/avatar442.gif diff --git a/includes/avatar/avatar443.gif b/includes/avatar/avatar443.gif Binary files differnew file mode 100755 index 00000000..063034ac --- /dev/null +++ b/includes/avatar/avatar443.gif diff --git a/includes/avatar/avatar444.gif b/includes/avatar/avatar444.gif Binary files differnew file mode 100755 index 00000000..c4f6aa92 --- /dev/null +++ b/includes/avatar/avatar444.gif diff --git a/includes/avatar/avatar445.gif b/includes/avatar/avatar445.gif Binary files differnew file mode 100755 index 00000000..5c26ccb3 --- /dev/null +++ b/includes/avatar/avatar445.gif diff --git a/includes/avatar/avatar446.gif b/includes/avatar/avatar446.gif Binary files differnew file mode 100755 index 00000000..0e14a043 --- /dev/null +++ b/includes/avatar/avatar446.gif diff --git a/includes/avatar/avatar447.gif b/includes/avatar/avatar447.gif Binary files differnew file mode 100755 index 00000000..8622aafb --- /dev/null +++ b/includes/avatar/avatar447.gif diff --git a/includes/avatar/avatar448.gif b/includes/avatar/avatar448.gif Binary files differnew file mode 100755 index 00000000..3e35bfe4 --- /dev/null +++ b/includes/avatar/avatar448.gif diff --git a/includes/avatar/avatar449.gif b/includes/avatar/avatar449.gif Binary files differnew file mode 100755 index 00000000..d53551f8 --- /dev/null +++ b/includes/avatar/avatar449.gif diff --git a/includes/avatar/avatar45.gif b/includes/avatar/avatar45.gif Binary files differnew file mode 100755 index 00000000..c216f489 --- /dev/null +++ b/includes/avatar/avatar45.gif diff --git a/includes/avatar/avatar450.gif b/includes/avatar/avatar450.gif Binary files differnew file mode 100755 index 00000000..6e0ab918 --- /dev/null +++ b/includes/avatar/avatar450.gif diff --git a/includes/avatar/avatar451.gif b/includes/avatar/avatar451.gif Binary files differnew file mode 100755 index 00000000..7d0d79bd --- /dev/null +++ b/includes/avatar/avatar451.gif diff --git a/includes/avatar/avatar452.gif b/includes/avatar/avatar452.gif Binary files differnew file mode 100755 index 00000000..c64e07fc --- /dev/null +++ b/includes/avatar/avatar452.gif diff --git a/includes/avatar/avatar453.gif b/includes/avatar/avatar453.gif Binary files differnew file mode 100755 index 00000000..22f597a4 --- /dev/null +++ b/includes/avatar/avatar453.gif diff --git a/includes/avatar/avatar454.gif b/includes/avatar/avatar454.gif Binary files differnew file mode 100755 index 00000000..81fd63c4 --- /dev/null +++ b/includes/avatar/avatar454.gif diff --git a/includes/avatar/avatar455.gif b/includes/avatar/avatar455.gif Binary files differnew file mode 100755 index 00000000..8e6e39ee --- /dev/null +++ b/includes/avatar/avatar455.gif diff --git a/includes/avatar/avatar456.gif b/includes/avatar/avatar456.gif Binary files differnew file mode 100755 index 00000000..6fba116c --- /dev/null +++ b/includes/avatar/avatar456.gif diff --git a/includes/avatar/avatar457.gif b/includes/avatar/avatar457.gif Binary files differnew file mode 100755 index 00000000..1a685aa9 --- /dev/null +++ b/includes/avatar/avatar457.gif diff --git a/includes/avatar/avatar458.gif b/includes/avatar/avatar458.gif Binary files differnew file mode 100755 index 00000000..20f5e33a --- /dev/null +++ b/includes/avatar/avatar458.gif diff --git a/includes/avatar/avatar459.gif b/includes/avatar/avatar459.gif Binary files differnew file mode 100755 index 00000000..049cfc17 --- /dev/null +++ b/includes/avatar/avatar459.gif diff --git a/includes/avatar/avatar46.gif b/includes/avatar/avatar46.gif Binary files differnew file mode 100755 index 00000000..112346ca --- /dev/null +++ b/includes/avatar/avatar46.gif diff --git a/includes/avatar/avatar460.gif b/includes/avatar/avatar460.gif Binary files differnew file mode 100755 index 00000000..155e84b5 --- /dev/null +++ b/includes/avatar/avatar460.gif diff --git a/includes/avatar/avatar461.gif b/includes/avatar/avatar461.gif Binary files differnew file mode 100755 index 00000000..28057664 --- /dev/null +++ b/includes/avatar/avatar461.gif diff --git a/includes/avatar/avatar462.gif b/includes/avatar/avatar462.gif Binary files differnew file mode 100755 index 00000000..acd3d942 --- /dev/null +++ b/includes/avatar/avatar462.gif diff --git a/includes/avatar/avatar463.gif b/includes/avatar/avatar463.gif Binary files differnew file mode 100755 index 00000000..caf0b9c5 --- /dev/null +++ b/includes/avatar/avatar463.gif diff --git a/includes/avatar/avatar464.gif b/includes/avatar/avatar464.gif Binary files differnew file mode 100755 index 00000000..30a066f3 --- /dev/null +++ b/includes/avatar/avatar464.gif diff --git a/includes/avatar/avatar465.gif b/includes/avatar/avatar465.gif Binary files differnew file mode 100755 index 00000000..768c4003 --- /dev/null +++ b/includes/avatar/avatar465.gif diff --git a/includes/avatar/avatar466.gif b/includes/avatar/avatar466.gif Binary files differnew file mode 100755 index 00000000..ddf8c54c --- /dev/null +++ b/includes/avatar/avatar466.gif diff --git a/includes/avatar/avatar467.gif b/includes/avatar/avatar467.gif Binary files differnew file mode 100755 index 00000000..c293c4c8 --- /dev/null +++ b/includes/avatar/avatar467.gif diff --git a/includes/avatar/avatar468.gif b/includes/avatar/avatar468.gif Binary files differnew file mode 100755 index 00000000..ec0c778f --- /dev/null +++ b/includes/avatar/avatar468.gif diff --git a/includes/avatar/avatar469.gif b/includes/avatar/avatar469.gif Binary files differnew file mode 100755 index 00000000..12a62367 --- /dev/null +++ b/includes/avatar/avatar469.gif diff --git a/includes/avatar/avatar47.gif b/includes/avatar/avatar47.gif Binary files differnew file mode 100755 index 00000000..f9edc8c9 --- /dev/null +++ b/includes/avatar/avatar47.gif diff --git a/includes/avatar/avatar470.gif b/includes/avatar/avatar470.gif Binary files differnew file mode 100755 index 00000000..a6feb187 --- /dev/null +++ b/includes/avatar/avatar470.gif diff --git a/includes/avatar/avatar471.gif b/includes/avatar/avatar471.gif Binary files differnew file mode 100755 index 00000000..3ce796c4 --- /dev/null +++ b/includes/avatar/avatar471.gif diff --git a/includes/avatar/avatar472.gif b/includes/avatar/avatar472.gif Binary files differnew file mode 100755 index 00000000..467432c9 --- /dev/null +++ b/includes/avatar/avatar472.gif diff --git a/includes/avatar/avatar473.gif b/includes/avatar/avatar473.gif Binary files differnew file mode 100755 index 00000000..47bf9a19 --- /dev/null +++ b/includes/avatar/avatar473.gif diff --git a/includes/avatar/avatar474.gif b/includes/avatar/avatar474.gif Binary files differnew file mode 100755 index 00000000..7518dc8d --- /dev/null +++ b/includes/avatar/avatar474.gif diff --git a/includes/avatar/avatar475.gif b/includes/avatar/avatar475.gif Binary files differnew file mode 100755 index 00000000..1cd12980 --- /dev/null +++ b/includes/avatar/avatar475.gif diff --git a/includes/avatar/avatar476.gif b/includes/avatar/avatar476.gif Binary files differnew file mode 100755 index 00000000..b300940b --- /dev/null +++ b/includes/avatar/avatar476.gif diff --git a/includes/avatar/avatar477.gif b/includes/avatar/avatar477.gif Binary files differnew file mode 100755 index 00000000..d2ea55a0 --- /dev/null +++ b/includes/avatar/avatar477.gif diff --git a/includes/avatar/avatar478.gif b/includes/avatar/avatar478.gif Binary files differnew file mode 100755 index 00000000..924b2282 --- /dev/null +++ b/includes/avatar/avatar478.gif diff --git a/includes/avatar/avatar479.gif b/includes/avatar/avatar479.gif Binary files differnew file mode 100755 index 00000000..1b4756ee --- /dev/null +++ b/includes/avatar/avatar479.gif diff --git a/includes/avatar/avatar48.gif b/includes/avatar/avatar48.gif Binary files differnew file mode 100755 index 00000000..c34d4a50 --- /dev/null +++ b/includes/avatar/avatar48.gif diff --git a/includes/avatar/avatar480.gif b/includes/avatar/avatar480.gif Binary files differnew file mode 100755 index 00000000..5fa9878f --- /dev/null +++ b/includes/avatar/avatar480.gif diff --git a/includes/avatar/avatar481.gif b/includes/avatar/avatar481.gif Binary files differnew file mode 100755 index 00000000..f48cf52f --- /dev/null +++ b/includes/avatar/avatar481.gif diff --git a/includes/avatar/avatar482.gif b/includes/avatar/avatar482.gif Binary files differnew file mode 100755 index 00000000..754fa21c --- /dev/null +++ b/includes/avatar/avatar482.gif diff --git a/includes/avatar/avatar483.gif b/includes/avatar/avatar483.gif Binary files differnew file mode 100755 index 00000000..d72a4c09 --- /dev/null +++ b/includes/avatar/avatar483.gif diff --git a/includes/avatar/avatar484.gif b/includes/avatar/avatar484.gif Binary files differnew file mode 100755 index 00000000..7429a913 --- /dev/null +++ b/includes/avatar/avatar484.gif diff --git a/includes/avatar/avatar485.gif b/includes/avatar/avatar485.gif Binary files differnew file mode 100755 index 00000000..aab93132 --- /dev/null +++ b/includes/avatar/avatar485.gif diff --git a/includes/avatar/avatar486.gif b/includes/avatar/avatar486.gif Binary files differnew file mode 100755 index 00000000..99278401 --- /dev/null +++ b/includes/avatar/avatar486.gif diff --git a/includes/avatar/avatar487.gif b/includes/avatar/avatar487.gif Binary files differnew file mode 100755 index 00000000..2e41a5e9 --- /dev/null +++ b/includes/avatar/avatar487.gif diff --git a/includes/avatar/avatar488.gif b/includes/avatar/avatar488.gif Binary files differnew file mode 100755 index 00000000..3444526d --- /dev/null +++ b/includes/avatar/avatar488.gif diff --git a/includes/avatar/avatar489.gif b/includes/avatar/avatar489.gif Binary files differnew file mode 100755 index 00000000..6f63b13d --- /dev/null +++ b/includes/avatar/avatar489.gif diff --git a/includes/avatar/avatar49.gif b/includes/avatar/avatar49.gif Binary files differnew file mode 100755 index 00000000..2c637ed0 --- /dev/null +++ b/includes/avatar/avatar49.gif diff --git a/includes/avatar/avatar490.gif b/includes/avatar/avatar490.gif Binary files differnew file mode 100755 index 00000000..80a07e2b --- /dev/null +++ b/includes/avatar/avatar490.gif diff --git a/includes/avatar/avatar491.gif b/includes/avatar/avatar491.gif Binary files differnew file mode 100755 index 00000000..65bb584e --- /dev/null +++ b/includes/avatar/avatar491.gif diff --git a/includes/avatar/avatar492.gif b/includes/avatar/avatar492.gif Binary files differnew file mode 100755 index 00000000..c8ce0d9d --- /dev/null +++ b/includes/avatar/avatar492.gif diff --git a/includes/avatar/avatar493.gif b/includes/avatar/avatar493.gif Binary files differnew file mode 100755 index 00000000..4ed86532 --- /dev/null +++ b/includes/avatar/avatar493.gif diff --git a/includes/avatar/avatar494.gif b/includes/avatar/avatar494.gif Binary files differnew file mode 100755 index 00000000..47d5e2e2 --- /dev/null +++ b/includes/avatar/avatar494.gif diff --git a/includes/avatar/avatar495.gif b/includes/avatar/avatar495.gif Binary files differnew file mode 100755 index 00000000..9b7bdd44 --- /dev/null +++ b/includes/avatar/avatar495.gif diff --git a/includes/avatar/avatar496.gif b/includes/avatar/avatar496.gif Binary files differnew file mode 100755 index 00000000..2a4429e8 --- /dev/null +++ b/includes/avatar/avatar496.gif diff --git a/includes/avatar/avatar497.gif b/includes/avatar/avatar497.gif Binary files differnew file mode 100755 index 00000000..aebb9cad --- /dev/null +++ b/includes/avatar/avatar497.gif diff --git a/includes/avatar/avatar498.gif b/includes/avatar/avatar498.gif Binary files differnew file mode 100755 index 00000000..2dab371f --- /dev/null +++ b/includes/avatar/avatar498.gif diff --git a/includes/avatar/avatar499.gif b/includes/avatar/avatar499.gif Binary files differnew file mode 100755 index 00000000..c23e44fd --- /dev/null +++ b/includes/avatar/avatar499.gif diff --git a/includes/avatar/avatar5.gif b/includes/avatar/avatar5.gif Binary files differnew file mode 100755 index 00000000..c0134ee8 --- /dev/null +++ b/includes/avatar/avatar5.gif diff --git a/includes/avatar/avatar50.gif b/includes/avatar/avatar50.gif Binary files differnew file mode 100755 index 00000000..101883c4 --- /dev/null +++ b/includes/avatar/avatar50.gif diff --git a/includes/avatar/avatar51.gif b/includes/avatar/avatar51.gif Binary files differnew file mode 100755 index 00000000..310d6f66 --- /dev/null +++ b/includes/avatar/avatar51.gif diff --git a/includes/avatar/avatar52.gif b/includes/avatar/avatar52.gif Binary files differnew file mode 100755 index 00000000..01ce7062 --- /dev/null +++ b/includes/avatar/avatar52.gif diff --git a/includes/avatar/avatar53.gif b/includes/avatar/avatar53.gif Binary files differnew file mode 100755 index 00000000..7ba2db43 --- /dev/null +++ b/includes/avatar/avatar53.gif diff --git a/includes/avatar/avatar54.gif b/includes/avatar/avatar54.gif Binary files differnew file mode 100755 index 00000000..2f4ef2a0 --- /dev/null +++ b/includes/avatar/avatar54.gif diff --git a/includes/avatar/avatar55.gif b/includes/avatar/avatar55.gif Binary files differnew file mode 100755 index 00000000..7e9cd013 --- /dev/null +++ b/includes/avatar/avatar55.gif diff --git a/includes/avatar/avatar56.gif b/includes/avatar/avatar56.gif Binary files differnew file mode 100755 index 00000000..e9d115b5 --- /dev/null +++ b/includes/avatar/avatar56.gif diff --git a/includes/avatar/avatar57.gif b/includes/avatar/avatar57.gif Binary files differnew file mode 100755 index 00000000..a4d85078 --- /dev/null +++ b/includes/avatar/avatar57.gif diff --git a/includes/avatar/avatar58.gif b/includes/avatar/avatar58.gif Binary files differnew file mode 100755 index 00000000..597b70bd --- /dev/null +++ b/includes/avatar/avatar58.gif diff --git a/includes/avatar/avatar59.gif b/includes/avatar/avatar59.gif Binary files differnew file mode 100755 index 00000000..9032b75b --- /dev/null +++ b/includes/avatar/avatar59.gif diff --git a/includes/avatar/avatar6.gif b/includes/avatar/avatar6.gif Binary files differnew file mode 100755 index 00000000..6c0416b1 --- /dev/null +++ b/includes/avatar/avatar6.gif diff --git a/includes/avatar/avatar60.gif b/includes/avatar/avatar60.gif Binary files differnew file mode 100755 index 00000000..33744c36 --- /dev/null +++ b/includes/avatar/avatar60.gif diff --git a/includes/avatar/avatar61.gif b/includes/avatar/avatar61.gif Binary files differnew file mode 100755 index 00000000..a88f6971 --- /dev/null +++ b/includes/avatar/avatar61.gif diff --git a/includes/avatar/avatar62.gif b/includes/avatar/avatar62.gif Binary files differnew file mode 100755 index 00000000..4f8d1bee --- /dev/null +++ b/includes/avatar/avatar62.gif diff --git a/includes/avatar/avatar63.gif b/includes/avatar/avatar63.gif Binary files differnew file mode 100755 index 00000000..d55fe2bd --- /dev/null +++ b/includes/avatar/avatar63.gif diff --git a/includes/avatar/avatar64.gif b/includes/avatar/avatar64.gif Binary files differnew file mode 100755 index 00000000..b7cf7a83 --- /dev/null +++ b/includes/avatar/avatar64.gif diff --git a/includes/avatar/avatar65.gif b/includes/avatar/avatar65.gif Binary files differnew file mode 100755 index 00000000..e7d2ad6b --- /dev/null +++ b/includes/avatar/avatar65.gif diff --git a/includes/avatar/avatar66.gif b/includes/avatar/avatar66.gif Binary files differnew file mode 100755 index 00000000..0ce01bfc --- /dev/null +++ b/includes/avatar/avatar66.gif diff --git a/includes/avatar/avatar67.gif b/includes/avatar/avatar67.gif Binary files differnew file mode 100755 index 00000000..a99192c7 --- /dev/null +++ b/includes/avatar/avatar67.gif diff --git a/includes/avatar/avatar68.gif b/includes/avatar/avatar68.gif Binary files differnew file mode 100755 index 00000000..d41c748c --- /dev/null +++ b/includes/avatar/avatar68.gif diff --git a/includes/avatar/avatar69.gif b/includes/avatar/avatar69.gif Binary files differnew file mode 100755 index 00000000..d8e3a099 --- /dev/null +++ b/includes/avatar/avatar69.gif diff --git a/includes/avatar/avatar7.gif b/includes/avatar/avatar7.gif Binary files differnew file mode 100755 index 00000000..32e2aab7 --- /dev/null +++ b/includes/avatar/avatar7.gif diff --git a/includes/avatar/avatar70.gif b/includes/avatar/avatar70.gif Binary files differnew file mode 100755 index 00000000..c38e5813 --- /dev/null +++ b/includes/avatar/avatar70.gif diff --git a/includes/avatar/avatar71.gif b/includes/avatar/avatar71.gif Binary files differnew file mode 100755 index 00000000..bc81138d --- /dev/null +++ b/includes/avatar/avatar71.gif diff --git a/includes/avatar/avatar72.gif b/includes/avatar/avatar72.gif Binary files differnew file mode 100755 index 00000000..7105469a --- /dev/null +++ b/includes/avatar/avatar72.gif diff --git a/includes/avatar/avatar73.gif b/includes/avatar/avatar73.gif Binary files differnew file mode 100755 index 00000000..c5cf7b5f --- /dev/null +++ b/includes/avatar/avatar73.gif diff --git a/includes/avatar/avatar74.gif b/includes/avatar/avatar74.gif Binary files differnew file mode 100755 index 00000000..3c6b4e38 --- /dev/null +++ b/includes/avatar/avatar74.gif diff --git a/includes/avatar/avatar75.gif b/includes/avatar/avatar75.gif Binary files differnew file mode 100755 index 00000000..c193589f --- /dev/null +++ b/includes/avatar/avatar75.gif diff --git a/includes/avatar/avatar76.gif b/includes/avatar/avatar76.gif Binary files differnew file mode 100755 index 00000000..7926bb97 --- /dev/null +++ b/includes/avatar/avatar76.gif diff --git a/includes/avatar/avatar77.gif b/includes/avatar/avatar77.gif Binary files differnew file mode 100755 index 00000000..72991ce6 --- /dev/null +++ b/includes/avatar/avatar77.gif diff --git a/includes/avatar/avatar78.gif b/includes/avatar/avatar78.gif Binary files differnew file mode 100755 index 00000000..2972aa4f --- /dev/null +++ b/includes/avatar/avatar78.gif diff --git a/includes/avatar/avatar79.gif b/includes/avatar/avatar79.gif Binary files differnew file mode 100755 index 00000000..d20e13af --- /dev/null +++ b/includes/avatar/avatar79.gif diff --git a/includes/avatar/avatar8.gif b/includes/avatar/avatar8.gif Binary files differnew file mode 100755 index 00000000..b3e710cb --- /dev/null +++ b/includes/avatar/avatar8.gif diff --git a/includes/avatar/avatar80.gif b/includes/avatar/avatar80.gif Binary files differnew file mode 100755 index 00000000..4c6afccc --- /dev/null +++ b/includes/avatar/avatar80.gif diff --git a/includes/avatar/avatar81.gif b/includes/avatar/avatar81.gif Binary files differnew file mode 100755 index 00000000..2513d085 --- /dev/null +++ b/includes/avatar/avatar81.gif diff --git a/includes/avatar/avatar82.gif b/includes/avatar/avatar82.gif Binary files differnew file mode 100755 index 00000000..ba761468 --- /dev/null +++ b/includes/avatar/avatar82.gif diff --git a/includes/avatar/avatar83.gif b/includes/avatar/avatar83.gif Binary files differnew file mode 100755 index 00000000..085cab2b --- /dev/null +++ b/includes/avatar/avatar83.gif diff --git a/includes/avatar/avatar84.gif b/includes/avatar/avatar84.gif Binary files differnew file mode 100755 index 00000000..07ee7424 --- /dev/null +++ b/includes/avatar/avatar84.gif diff --git a/includes/avatar/avatar85.gif b/includes/avatar/avatar85.gif Binary files differnew file mode 100755 index 00000000..cd510ece --- /dev/null +++ b/includes/avatar/avatar85.gif diff --git a/includes/avatar/avatar86.gif b/includes/avatar/avatar86.gif Binary files differnew file mode 100755 index 00000000..0c791d78 --- /dev/null +++ b/includes/avatar/avatar86.gif diff --git a/includes/avatar/avatar87.gif b/includes/avatar/avatar87.gif Binary files differnew file mode 100755 index 00000000..dac9b589 --- /dev/null +++ b/includes/avatar/avatar87.gif diff --git a/includes/avatar/avatar88.gif b/includes/avatar/avatar88.gif Binary files differnew file mode 100755 index 00000000..e27c3b3b --- /dev/null +++ b/includes/avatar/avatar88.gif diff --git a/includes/avatar/avatar89.gif b/includes/avatar/avatar89.gif Binary files differnew file mode 100755 index 00000000..c07019c0 --- /dev/null +++ b/includes/avatar/avatar89.gif diff --git a/includes/avatar/avatar9.gif b/includes/avatar/avatar9.gif Binary files differnew file mode 100755 index 00000000..448c6ecc --- /dev/null +++ b/includes/avatar/avatar9.gif diff --git a/includes/avatar/avatar90.gif b/includes/avatar/avatar90.gif Binary files differnew file mode 100755 index 00000000..f71a5957 --- /dev/null +++ b/includes/avatar/avatar90.gif diff --git a/includes/avatar/avatar91.gif b/includes/avatar/avatar91.gif Binary files differnew file mode 100755 index 00000000..9b12113f --- /dev/null +++ b/includes/avatar/avatar91.gif diff --git a/includes/avatar/avatar92.gif b/includes/avatar/avatar92.gif Binary files differnew file mode 100755 index 00000000..c3c22c89 --- /dev/null +++ b/includes/avatar/avatar92.gif diff --git a/includes/avatar/avatar93.gif b/includes/avatar/avatar93.gif Binary files differnew file mode 100755 index 00000000..1c33f2af --- /dev/null +++ b/includes/avatar/avatar93.gif diff --git a/includes/avatar/avatar94.gif b/includes/avatar/avatar94.gif Binary files differnew file mode 100755 index 00000000..a91b90a2 --- /dev/null +++ b/includes/avatar/avatar94.gif diff --git a/includes/avatar/avatar95.gif b/includes/avatar/avatar95.gif Binary files differnew file mode 100755 index 00000000..dc7fe45f --- /dev/null +++ b/includes/avatar/avatar95.gif diff --git a/includes/avatar/avatar96.gif b/includes/avatar/avatar96.gif Binary files differnew file mode 100755 index 00000000..f9aec5bf --- /dev/null +++ b/includes/avatar/avatar96.gif diff --git a/includes/avatar/avatar97.gif b/includes/avatar/avatar97.gif Binary files differnew file mode 100755 index 00000000..018fd0dc --- /dev/null +++ b/includes/avatar/avatar97.gif diff --git a/includes/avatar/avatar98.gif b/includes/avatar/avatar98.gif Binary files differnew file mode 100755 index 00000000..e963d44f --- /dev/null +++ b/includes/avatar/avatar98.gif diff --git a/includes/avatar/avatar99.gif b/includes/avatar/avatar99.gif Binary files differnew file mode 100755 index 00000000..3270bd87 --- /dev/null +++ b/includes/avatar/avatar99.gif diff --git a/includes/config_MessegeServer.php b/includes/config_MessegeServer.php new file mode 100644 index 00000000..3454ae0c --- /dev/null +++ b/includes/config_MessegeServer.php @@ -0,0 +1,8 @@ +<? +// Set the ip and port we will listen on +define( SERVER_ADDRESS, "127.0.0.1" ); +define( SERVER_PORT, 9000 ); + +define( DEBUG, TRUE); + +?> diff --git a/includes/config_modem.php b/includes/config_modem.php new file mode 100644 index 00000000..0625936d --- /dev/null +++ b/includes/config_modem.php @@ -0,0 +1,11 @@ +<?PHP + +//ist ein modem angeschlossen +$ModemEnable = false; + +// COM port +$ModemDev="/dev/ttyS0"; + +// vorwahl, bei tnovis telefonanlage für das programmieren von weckrufen +$WackupNumber="**3"; +?> diff --git a/includes/crypt.php b/includes/crypt.php new file mode 100755 index 00000000..38867064 --- /dev/null +++ b/includes/crypt.php @@ -0,0 +1,18 @@ +<?php + + +function PassCrypt($passwort) { +include "./inc/config.php"; + +switch ($crypt_system) { + case "crypt": + return "{crypt}".crypt($passwort, "77"); + case "md5": + return md5($passwort); + } + +} + + + +?> diff --git a/includes/css/grossbild.js b/includes/css/grossbild.js new file mode 100755 index 00000000..618ecc1f --- /dev/null +++ b/includes/css/grossbild.js @@ -0,0 +1,62 @@ + function isClass(object, className) { + return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1); + } + + var grossbild_an = 0 + + function grossbild_over(e) { + if(grossbild_an) return + grossbild_an = 1 + if(!e) e = window.event; + body = document.getElementsByTagName("body")[0] + i = document.createElement("img") + i.src = e.target.src; + i.style.position = "absolute" + /*a = "" + for(b in e) a += b + " " + alert(a)*/ + i.style.top = e.clientY + window.scrollY + i.style.left = e.clientX + window.scrollX + i.id = "mouseoverphoto" + i.onmouseover = grossbild_over + i.onmouseout = grossbild_out + //i.onmousemove = grossbild_move + body.appendChild(i); + } + + function grossbild_out(e) { + if(!grossbild_an) return + grossbild_an = 0 + if(!e) e = window.event; + body = document.getElementsByTagName("body")[0] + i = document.getElementById("mouseoverphoto") + body.removeChild(i) + } + + function grossbild_move(e) { + if(!e) e = window.event; + i = document.getElementById("mouseoverphoto") + i.style.top = e.clientY + window.scrollY + i.style.left = e.clientX + window.scrollX +} + + function grossbild_register(objekt) { + objekt.onmouseover = grossbild_over + objekt.onmouseout = grossbild_out + objekt.onmousemove = grossbild_move + } + + function grossbild_registrieren() { + if(grossbild_altonload) + grossbild_altonload() + + objekte = document.getElementsByTagName("img"); + for(var i = 0; i < objekte.length; i++) { + if(isClass(objekte[i], "photo")) { + grossbild_register(objekte[i]) + } + } + } + + var grossbild_altonload = window.onload + window.onload = grossbild_registrieren diff --git a/includes/css/style.css.old b/includes/css/style.css.old new file mode 100755 index 00000000..254fb1b7 --- /dev/null +++ b/includes/css/style.css.old @@ -0,0 +1,53 @@ +H1 { + font-family : Helvetica,Arial,Verdana; + font-size : 25pt; +} +H4 { + font-family : Arial,Verdana; +} +A { + font-family : Arial; + font-size : small; + text-decoration : none; + color : #0000a0; +} +A:Visited { + font-family : Arial; + font-size : small; + color : #0000a0; + text-decoration : none; +} + A:Active { + text-decoration : none; + font-family : Arial; + font-size : small; +} +A:Hover { + font-family : Arial; + font-size : small; + color : #0000a0; + text-decoration : underline; + font-weight : bold; +} +B { + font-weight : bold; + font-family : Arial; + font-size : small; +} + +TD { + font-size : small; + font-family : Arial; + padding-left : 1cm; +} + +BODY { + font-size : small; + font-family : Arial; + background-color : #f3b115; + color : navy; +} +a.title { + color:#ffa000; +} + diff --git a/includes/css/style.css.old2 b/includes/css/style.css.old2 new file mode 100755 index 00000000..9f7c0c90 --- /dev/null +++ b/includes/css/style.css.old2 @@ -0,0 +1,69 @@ +H1 { + font-family : Helvetica,Arial,Verdana; + font-size : 25pt; +} + +H4 { + font-family : Arial,Verdana; +} + +A { + font-family : Arial; + font-size : small; + text-decoration : none; + color : #778899; +} + +A:Visited { + font-family : Arial; + font-size : small; + color : #778899; + text-decoration : none; +} + +A:Active { + text-decoration : none; + font-family : Arial; + font-size : small; +} + +A:Hover { + font-family : Arial; + font-size : small; + color : #778899; + text-decoration : underline; + font-weight : bold; +} + +B { + font-weight : bold; + font-family : Arial; + font-size : small; +} + +TD { + font-size : small; + font-family : Arial; +} + +BODY { + font-size : small; + font-family : Arial; + background-color : #f3b115; + color : navy; +} + + +a.title { +color:#ffa000; +} + + +p.question { + font-weight: bold; +} + +p.answer { + margin-left: 30px; + margin-right: 30px; +} diff --git a/includes/css/style1.css b/includes/css/style1.css new file mode 100755 index 00000000..4a597f35 --- /dev/null +++ b/includes/css/style1.css @@ -0,0 +1,79 @@ + +body { + font-family: Arial; + background-color: #3e9fef; + color: #000000; + font-size: small +} + +a { + text-decoration: none; + color: #304930 +} + +td { + font-size: small +} + +a:active, a:hover { + font-weight: bold +} + +li { + font-size: small +} + +.content { + background-color: #bdd9ef; + color: #000000 +} + +.contenttopic { + font-weight: bold; + font-size: small; + color: #fe961e; + background-color: #157cc1 +} + +.border { + background-color: #050509 +} + +.menu { + background-color: #bdd9ef; + color: #000022; + font-size: small +} +h4.menu { + font-weight: bold; + font-size: small; + color: #3e9fef +} + +.linkbox { + background-color: #ffffff +} + +.linkboxtitle { + font-weight: bold; + background-color: #000000; + color: #bdd9ef +} + +.question { + font-weight: bold; + font-size: 9pt +} + +.engeltreffen { + font-weight: bold; + font-size: 9pt; + color: #ff0000; +} + +.answer { + font-size: 9pt; +} +.comment { + font-size : 6pt; +} diff --git a/includes/css/style2.css b/includes/css/style2.css new file mode 100755 index 00000000..e8510809 --- /dev/null +++ b/includes/css/style2.css @@ -0,0 +1,117 @@ +body { + font-size : small; + font-family : Arial; + background-color : #f3b115; + color : navy; +} +a { + font-family : Arial; + font-size : small; + text-decoration : none; + color : #0000a0; +} + +td { + font-size : small; +} + +A:Visited { + font-family : Arial; + font-size : small; + color : #0000a0; + text-decoration : none; +} + +A:Active { + text-decoration : none; + font-family : Arial; + font-size : small; +} + +A:Hover { + font-family : Arial; + font-size : small; + color : #0000a0; + text-decoration : underline; + font-weight : bold; +} + +li { + font-size: small +} + + +H4 { + font-family : Arial,Verdana; +} + + +B { + font-weight : bold; + font-family : Arial; + font-size : small; +} + +.content { + background-color: #aa8822; +<!-- #ffeba2 --> + color: #000000 +} + +.contenttopic { + font-weight: bold; + font-size: small; + color: #ffffff; + background-color: #ff1111 +} +<!-- #157cc1 --> + + +a.title { + color:#ffa000; +} +.border { + background-color: #050509 + } + +.menu { + background-color: #bdd9ef; + color: #000022; + font-size: small +} + +h4.menu { + font-weight: bold; + font-size: small; + color: #3e9fef +} + +.linkbox { + background-color: #ffffff +} + +.linkboxtitle { + font-weight: bold; + background-color: #000000; + color: #bdd9ef +} + +.question { + font-weight: bold; + font-size: 9pt +} + +.engeltreffen { + font-weight: bold; + font-size: 9pt; + color: #ff0000; +} + +.answer { + font-size: 9pt; +} + +.comment { + font-size : 6pt; +} + diff --git a/includes/css/style3.css b/includes/css/style3.css new file mode 100755 index 00000000..ca45d73c --- /dev/null +++ b/includes/css/style3.css @@ -0,0 +1,105 @@ +body { + font-size : small; + font-family : Arial; + background-color : #f3b115; + color : navy; +} +a { + font-family : Arial; + font-size : small; + text-decoration : none; + color : #0000a0; +} + +td { + font-size : small; +} + +A:Visited { + font-family : Arial; + font-size : small; + color : #0000a0; + text-decoration : none; +} + +A:Active { + text-decoration : none; + font-family : Arial; + font-size : small; +} + +A:Hover { + font-family : Arial; + font-size : small; + color : #0000a0; + text-decoration : underline; + font-weight : bold; +} + +li { + font-size: small +} + + +H4 { + font-family : Arial,Verdana; +} + + +B { + font-weight : bold; + font-family : Arial; + font-size : small; +} + +.content { + background-color: #ffeba2; + color: #000000 +} + +.contenttopic { + font-weight: bold; + font-size: small; + color: #ffa000; + background-color: navy +} + + + +a.title { + color:#ffa000; +} +.border { + background-color: #050509 + } + +.menu { + background-color: #ffeba2; + color: navy; + font-size: small +} + +h4.menu { + font-weight: bold; + font-size: small; +} + +.question { + font-weight: bold; + font-size: 9pt +} + +.engeltreffen { + font-weight: bold; + font-size: 9pt; + color: #ff0000; +} + +.answer { + font-size: 9pt; +} + +.comment { + font-size : 6pt; +} + diff --git a/includes/css/style4.css b/includes/css/style4.css new file mode 100755 index 00000000..b818c9c9 --- /dev/null +++ b/includes/css/style4.css @@ -0,0 +1,70 @@ + +body { + font-family: Arial; + background-color: #00009f; + color: #e0a09f; + font-size: small +} + +a { + text-decoration: none; + color: #e0ffff +} + +td { + font-size: small; + color: #e0a09f + +} + +a:active, a:hover { + font-weight: bold +} + +li { + font-size: small +} + +.content { + background-color: #90009f; + color: #e0a09f +} + +.contenttopic { + font-weight: bold; + font-size: small; + color: #e0e09f; + background-color: #740057 +} + +.border { + background-color: #0000FF +} + +.menu { + background-color: #5f0043; + color: #e0ff9f; + font-size: small +} +h4.menu { + font-weight: bold; + font-size: small; + color: #e0ff9f +} +.question { + font-weight: bold; + font-size: 9pt +} + +.engeltreffen { + font-weight: bold; + font-size: 9pt; + color: #ff0000; +} + +.answer { + font-size: 9pt; +} +.comment { + font-size : 6pt; +} diff --git a/includes/css/style5.css b/includes/css/style5.css new file mode 100755 index 00000000..4a8f7bcc --- /dev/null +++ b/includes/css/style5.css @@ -0,0 +1,79 @@ + +body { + font-family: Verdana,Helvetica,Arial; + background-color: #e1d6d6; + color: #8a0000; + font-size: small +} + +a { + text-decoration: none; + color: #583a3a +} + +td { + font-size: small +} + +a:active, a:hover { + font-weight: bold +} + +li { + font-size: small +} + +.content { + background-color: #e7e2e2; + color: #8a0000 +} + +.contenttopic { + font-weight: bold; + font-size: small; + color: #ffeded; + background-color: #8a0000 +} + +.border { + background-color: #8a0000 +} + +.menu { + background-color: #e7e2e2; + color: #8a0000; + font-size: small +} +h4.menu { + font-weight: bold; + font-size: small; + color: #8a0000 +} + +.linkbox { + background-color: #e7e2e2 +} + +.linkboxtitle { + font-weight: bold; + background-color: #e7e2e2; + color: #8a0000 +} + +.question { + font-weight: bold; + font-size: 9pt +} + +.engeltreffen { + font-weight: bold; + font-size: 9pt; + color: #ff0000; +} + +.answer { + font-size: 9pt; +} +.comment { + font-size : 6pt; +} diff --git a/includes/css/style6.css b/includes/css/style6.css new file mode 100755 index 00000000..72e1024d --- /dev/null +++ b/includes/css/style6.css @@ -0,0 +1,68 @@ + +body { + font-family: Arial, Helvetica, sans-serif; + background-color: #121327; + color: #FFFFFF; + font-size: small +} + +a { + text-decoration: none; + color: #ff9900 +} + +td { + font-size: small +} + +a:active, a:hover { + font-weight: bold +} + +li { + font-size: small +} + +.content { + background-color: #636e77; + color: #FFFFFF +} + +.contenttopic { + font-weight: bold; + font-size: small; + color: #FF9900; + background-color: #333e47 +} + +.border { + background-color: #000000 +} + +.menu { + background-color: #1f203f; + color: #fff3bf; + font-size: small +} +h4.menu { + font-weight: bold; + font-size: small; + color: #fff3bf +} +.question { + font-weight: bold; + font-size: 9pt +} + +.engeltreffen { + font-weight: bold; + font-size: 9pt; + color: #FF0000; +} + +.answer { + font-size: 9pt; +} +.comment { + font-size : 6pt; +} diff --git a/includes/css/style7.css b/includes/css/style7.css new file mode 100755 index 00000000..297f1d0c --- /dev/null +++ b/includes/css/style7.css @@ -0,0 +1,70 @@ + +body { + font-family: Arial; + background-color: #353d87; + color: #FFFFFF; + font-size: small +} + +a { + text-decoration: none; + color: #832fb8 +} + +td { + font-size: small; + color: #353d87 + +} + +a:active, a:hover { + font-weight: bold +} + +li { + font-size: small +} + +.content { + background-color: #fff3bf; + color: #353d87 +} + +.contenttopic { + font-weight: bold; + font-size: small; + color: #fff3bf; + background-color: #353daa +} + +.border { + background-color: #0000FF +} + +.menu { + background-color: #c5bfff; + color: #973cff; + font-size: small +} +h4.menu { + font-weight: bold; + font-size: small; + color: #973cff +} +.question { + font-weight: bold; + font-size: 9pt +} + +.engeltreffen { + font-weight: bold; + font-size: 9pt; + color: #ff0000; +} + +.answer { + font-size: 9pt; +} +.comment { + font-size : 6pt; +} diff --git a/includes/css/style8.css b/includes/css/style8.css new file mode 100755 index 00000000..91d3b325 --- /dev/null +++ b/includes/css/style8.css @@ -0,0 +1,70 @@ + +body { + font-family: Arial; + background-color: #a4ffff; + color: #f7ff00; + font-size: small +} + +a { + text-decoration: none; + color: #a45f9f +} + +td { + font-size: small; + color: #f7ff00 + +} + +a:active, a:hover { + font-weight: bold +} + +li { + font-size: small +} + +.content { + background-color: #bd9bff; + color: #f7ff00 +} + +.contenttopic { + font-weight: bold; + font-size: small; + color: #f7ff00; + background-color: #ffb2ff +} + +.border { + background-color: #0000FF +} + +.menu { + background-color: #ffb2ff; + color: #f7ff00; + font-size: small +} +h4.menu { + font-weight: bold; + font-size: small; + color: #f7ff00 +} +.question { + font-weight: bold; + font-size: 9pt +} + +.engeltreffen { + font-weight: bold; + font-size: 9pt; + color: #ff0000; +} + +.answer { + font-size: 9pt; +} +.comment { + font-size : 6pt; +} diff --git a/includes/css/style9.css b/includes/css/style9.css new file mode 100755 index 00000000..4310ca8c --- /dev/null +++ b/includes/css/style9.css @@ -0,0 +1,84 @@ + +body { + background-color: #ffffff; + + color: black; + + line-height: 150%; + font-family: Trebuchet MS, Lucida Grande, Arial, sans-serif; + + margin-bottom: 20px; +} + +a { + text-decoration: none; + color: #304930 +} + +td { + font-size: small +} + +a:active, a:hover { + font-weight: bold +} + +li { + font-size: small +} + +.content { + background-color: #ffffff; + color: #000000 +} + +.contenttopic { + font-weight: bold; + font-size: small; + color: #000000; + background-color: #A4C93C +} + +.border { + background-color: #A4C93C +} + +.menu { + background-color: #ffffff; + color: #000000; + font-size: small +} +h4.menu { + background-color: #A4C93C; + font-weight: bold; + font-size: small; + color: #000000 +} + +.linkbox { + background-color: #ffffff +} + +.linkboxtitle { + font-weight: bold; + background-color: #000000; + color: #ffffff +} + +.question { + font-weight: bold; + font-size: 9pt +} + +.engeltreffen { + font-weight: bold; + font-size: 9pt; + color: #ff0000; +} + +.answer { + font-size: 9pt; +} +.comment { + font-size : 6pt; +} diff --git a/includes/error_handler.php b/includes/error_handler.php new file mode 100755 index 00000000..b0a41581 --- /dev/null +++ b/includes/error_handler.php @@ -0,0 +1,129 @@ +<?php + + require_once("./inc/funktion_jabber.php"); + + // global array for collected error_messages + $error_messages = array(); + + // general error handler collecting all messages in an array + function Error_Handler($error_number, $error_string, $error_file, $error_line, $error_context) + { + global $error_messages, $con; + + //SQL error genauer analysiert + $Temp = ""; + foreach ($error_context as $k => $v ) + if( (strpos( "0$k", "sql") > 0) || (strpos( "0$k", "SQL") > 0)) + $Temp .= "Error Context: $k = $v\n"; + + if( (strpos( "0$error_string", "MySQL") > 0) ) + $Temp .= "Error MySQL: ". mysql_error($con). "\n"; + + //übergeben des arrays + array_push( $error_messages, "Error Number: $error_number\n". + "Error String: $error_string\n". + "Error File: $error_file\n". + "Error Line: $error_line\n". + (strlen($Temp)? "$Temp": "") + ); + } + + // register error handler + set_error_handler("Error_Handler"); + + ini_set( "error_reporting", E_ALL); + if( $DEBUG) + { + ini_set( "display_errors", "On"); + ini_set( "display_startup_errors", "On"); + ini_set( "html_errors", "On"); + } + + // send errors + function send_errors() + { + global $error_messages; + + if (!$error_messages) return; + + $url = $_SERVER['PHP_SELF']; + + $message = ""; + foreach($error_messages as $value) + $message .= $value."\n"; + $message .= "\n"; + + if( isset( $_POST)) + { + foreach ($_POST as $k => $v ) + $message .= "_POST: $k = ". ( $k!="password"? $v : "???..."). "\n"; + $message .= "\n"; + } + + if( isset( $_GET)) + { + foreach ($_GET as $k => $v ) + $message .= "_GET: $k = $v\n"; + $message .= "\n"; + } + + $message .= "\n\n"; + + if( isset( $_SESSION)) + { + foreach ($_SESSION as $k => $v ) + $message .= "_SESSION: $k = $v\n"; + $message .= "\n"; + } + + if( isset( $_SESSION['CVS'])) + { + foreach ($_SESSION['CVS'] as $k => $v ) + if( strlen($k)>3 ) + $message .= "_SESSION['CVS']: $k = $v\n"; + $message .= "\n"; + } + + foreach ($_SERVER as $k => $v ) + if( strpos( "0$k", "SERVER_")==0) + $message .= "_SERVER: $k = $v\n"; + + send_message($message); + + // display error messages on screen too for developers + if ($_SESSION['CVS']['admin/debug.php']=='Y') + { + echo "<pre id='error'>\n".$message."</pre>"; + } + +} + + register_shutdown_function("send_errors"); + + // send jabber message and email + function send_message(&$message) + { + chdir(dirname(__FILE__)); + require_once('../inc/config_jabber.php'); + + if (isset($jabber_recipient) && count($jabber_recipient)) { + $jabber = new Jabber($server, $port, $username, $password, $resource); + if ($jabber->Connect() && $jabber->SendAuth()) { + foreach($jabber_recipient as $value) + { + $jabber->SendMessage($value, "normal", NULL, array("body" => $message, "subject" => "Error in Pentabarf"), NULL); + } + $jabber->Disconnect(); + } else { + array_push($message, "Couldn't connect to Jabber Server."); + } + } + + if (isset($mail_recipient) && count($mail_recipient)) { + foreach($mail_recipient as $to) { + mail($to, isset($mail_subject) ? $mail_subject : "Pentabarf Error", $message); + } + } + } + +?> diff --git a/includes/flag/de.gif b/includes/flag/de.gif Binary files differnew file mode 100755 index 00000000..15739e2e --- /dev/null +++ b/includes/flag/de.gif diff --git a/includes/flag/en.gif b/includes/flag/en.gif Binary files differnew file mode 100755 index 00000000..34936ee3 --- /dev/null +++ b/includes/flag/en.gif diff --git a/includes/footer.php b/includes/footer.php new file mode 100755 index 00000000..70613d29 --- /dev/null +++ b/includes/footer.php @@ -0,0 +1,67 @@ +<?PHP + +if( $Page["ShowTabel"]=="Y" ) +{ +//############################### ShowTable Start ############################## + +?> + + + +<!-- anfang des footers //--> + + + + + <br> + <p align="center"> + <?PHP If (IsSet($_SESSION['oldurl'])) + echo "<a href=\"". $_SESSION["oldurl"]. "\">".Get_Text("back")."</a> "; + ?> + <a href="#top"><?PHP echo Get_Text("top"); ?></a> + </p> + </td> + </tr> +</table> + </td> + + + + +<!-- anfang des menue parts //--> +<?PHP +if( $_SESSION['Menu'] =="R") include("./inc/menu.php"); +?> + </td> + + + +<!-- ende des menue parts //--> + + + + </tr> + <tr> + <td colspan="2"> + <h5 align="center"> © copyleft - <a href="mailto:erzengel@lists.ccc.de">Kontakt</a> + <?PHP + include( "./inc/funktion_counter.php"); + include( "./inc/funktion_flag.php"); + ?></h5> + </td> + </tr> +</table> + +<!-- </div> --> +<?php mysql_close($con); ?> +</div> + + +<?PHP +//############################### ShowTable Start ############################## +} /* if (ShowTabel....*/ +?> + + +</BODY> +</HTML> diff --git a/includes/funktion_SendMessenges.php b/includes/funktion_SendMessenges.php new file mode 100644 index 00000000..c6676c6c --- /dev/null +++ b/includes/funktion_SendMessenges.php @@ -0,0 +1,18 @@ +<?php
+
+
+function SendData($Data)
+{
+ include("./inc/config_MessegeServer.php");
+ // Create a UDP socket
+ $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
+ //send packed
+ socket_sendto($sock, $Data, 9999, 0x4, SERVER_ADDRESS, SERVER_PORT);
+}
+
+function SendMessageJabber($Adresse, $Nachricht)
+{
+ SendData( "#message $Adresse $Nachricht");
+}
+
+?>
diff --git a/includes/funktion_activeUser.php b/includes/funktion_activeUser.php new file mode 100755 index 00000000..946af304 --- /dev/null +++ b/includes/funktion_activeUser.php @@ -0,0 +1,61 @@ +<?PHP + +// Functionen gibt es nicht auf ellen rechern +if( !function_exists("bcdiv")) +{ + function bcdiv( $param1, $param2) + { + return floor( $param1 / $param2); + } +} + +if( !function_exists("bcmod")) +{ + function bcmod( $param1, $param2) + { + return $param1 - ( $param2 * bcdiv( $param1, $param2)); + } +} + + +echo "<h4 class=\"menu\">Engel online</h4>"; + +$SQL = "SELECT UID, Nick, lastLogIn ". + "FROM User ". + "WHERE (`lastLogIn` > '". gmdate("YmdHis", time()-(60*60)). "' AND NOT (UID=". $_SESSION['UID']. ")) ". + "ORDER BY lastLogIn DESC;"; + +$Erg = mysql_query( $SQL, $con); + + +$Tist = (gmdate("d", time()) * 60 * 60 * 24) + // Tag + (gmdate("H", time()) * 60 * 60) + // Stunde + (gmdate("i", time()) * 60) + // Minute + (gmdate("s", time()) ); // Sekunde + +for( $i=0; $i<mysql_num_rows($Erg); $i++) +{ + echo "\t\t\t<li>"; + if( $_SESSION['UID']>0 ) + echo DisplayAvatar( mysql_result( $Erg, $i, "UID")); + // Schow Admin Page + if( $_SESSION['CVS'][ "admin/user.php" ] == "Y" ) + echo " <a href=\"./../admin/user.php?enterUID=". mysql_result( $Erg, $i, "UID"). "&Type=Normal\">". + mysql_result( $Erg, $i, "Nick"). "</a>"; + else + echo mysql_result( $Erg, $i, "Nick"); + + $Tlog = (substr( mysql_result( $Erg, $i, "lastLogIn"), 8, 2) * 60 * 60 * 24) + // Tag + (substr( mysql_result( $Erg, $i, "lastLogIn"), 11, 2) * 60 * 60) + // Stunde + (substr( mysql_result( $Erg, $i, "lastLogIn"), 14, 2) * 60) + // Minute + (substr( mysql_result( $Erg, $i, "lastLogIn"), 17, 2) ); // Sekunde + + $Tlog = $Tist-$Tlog; + echo " ". bcdiv( $Tlog, 60). ":"; + if( strlen(bcmod( $Tlog, 60))==1) + echo "0"; + echo bcmod( $Tlog, 60); + echo "</li>\n"; +} + +?> diff --git a/includes/funktion_counter.php b/includes/funktion_counter.php new file mode 100644 index 00000000..70b104d4 --- /dev/null +++ b/includes/funktion_counter.php @@ -0,0 +1,24 @@ +<?PHP + +$SQL = "SELECT `Anz` FROM `Counter` WHERE `URL`=\"". $Page["Name"]. "\""; +$Erg = mysql_query($SQL, $con); + +echo mysql_error($con); + +if(mysql_num_rows($Erg)==0) +{ +// echo "Counter: 1"; + $SQL = "INSERT INTO `Counter` ( `URL` , `Anz` ) ". + "VALUES ('". $Page["Name"]. "', '1');"; + $Erg = mysql_query($SQL, $con); +} +elseif(mysql_num_rows($Erg)==1) +{ +// echo "Counter: ". (mysql_result($Erg, 0, 0)+1); + $SQL = "UPDATE `Counter` SET `Anz` = '". (mysql_result($Erg, 0, 0) +1). "' ". + "WHERE `URL` = '". $Page["Name"]. "' LIMIT 1 ;"; + $Erg = mysql_query($SQL, $con); +} + + +?> diff --git a/includes/funktion_cron.php b/includes/funktion_cron.php new file mode 100755 index 00000000..7f47e346 --- /dev/null +++ b/includes/funktion_cron.php @@ -0,0 +1,143 @@ +<?PHP + +function UID2DECT($UID) +{ + global $con; + $SQL = "SELECT DECT FROM `User` WHERE UID='$UID'"; + $Erg = mysql_query($SQL, $con); + if( mysql_num_rows( $Erg) == 1) + return mysql_result($Erg, 0); + else + return ""; +} +function RID2Room($RID) +{ + global $con; + $SQL = "SELECT Name FROM `Room` WHERE RID='$RID'"; + $Erg = mysql_query($SQL, $con); + if( mysql_num_rows( $Erg) == 1) + return mysql_result($Erg, 0); + else + return ""; +} + +function TID2Engeltype($TID) +{ + global $con; + $SQL = "SELECT Name FROM `EngelType` WHERE TID='$TID'"; + $Erg = mysql_query($SQL, $con); + if( mysql_num_rows( $Erg) == 1) + return mysql_result($Erg, 0); + else + return ""; +} + + +function DialNumberIAX( $DECTnumber, $Time, $RID, $TID) +{ + global $IAXenable, $IAXcontent, $IAXserver, $AnrufDelay, $DebugDECT; + + //Parameter verarbeiten + $TimeH = substr( $Time, 11, 2); + $TimeM = substr( $Time, 14, 2); + $TimeM = substr( $Time, 14, 2) + $AnrufDelay; + if( $TimeM < 0 ) + { + $TimeM += 60; + $TimeH -= 1; + } + if( $TimeH < 0 ) + $TimeH += 24; + + if( strlen( $TimeH) == 1) + $TimeH = "0".$TimeH; + + if( $IAXenable) + { $Message="die-nee shisht beh-kinned , in where-neegin me-nooten . . . your shift beginns in a few minutes"; + if (isset($SetHttpIAX)) + { + $post_data = array(); + $post_data['code'] = "89o8eu9cg4"; + $post_data['callerid'] = "1023"; + $post_data['nr'] = "$DECTnumber"; + //$post_data['message'] = "Deine schicht beginnt in ein paar minuten . . . your shift beginns in a few minutes "; + $post_data['message'] = "die-nee shisht beh-kinned , in where-neegin me-nooten . . . your shift beginns in a few minutes "; + $url = "https://23c3.eventphone.de/~bef/call.php"; + + $o=""; + foreach ($post_data as $k=>$v) + { + $o.= "$k=".urlencode(utf8_encode($v))."&"; + } + $post_data=substr($o,0,-1); + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_HEADER, 0); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + $result = curl_exec($ch); + echo curl_error($ch); + curl_close($ch); + } + else + { + // IAX file Schareiebn + $CallFile = "/tmp/call_". date("Ymd_His"). "_$DECTnumber"; + + if($DebugDECT) echo "IAX create file for dialing Number $DECTnumber\n"; + $file = fopen( $CallFile, 'w' ); + if( $file != FALSE) + { + fputs( $file, "Channel: SIP/$DECTnumber@$IAXserver\n"); //Ziel nummer + fputs( $file, "Callerid: Engelserver\n"); + // fputs( $file, "Callerid: $IAXcontent\n"); + // fputs( $file, "Context: $DECTnumber@$IAXserver\n"); + fputs( $file, "Extension: s\n"); + fputs( $file, "MaxRetries: 1\n"); + fputs( $file, "RetryTime: 10\n"); + fputs( $file, "SetVar: msg=$Message\n"); +// fputs( $file, "SetVar: TimeH=$TimeH\n"); +// fputs( $file, "SetVar: TimeM=$TimeM\n"); +// fputs( $file, "SetVar: DECTnumber=$DECTnumber\n"); +// fputs( $file, "SetVar: Room=". RID2Room( $RID). "\n"); +// fputs( $file, "SetVar: Engeltype=". TID2Engeltype( $TID). "\n"); + fclose($file); + system( "chmod 777 $CallFile"); + system( "mv $CallFile /var/spool/asterisk/outgoing"); + } + else + echo "error: $CallFile not created"; + } + } + else + if($DebugDECT) echo "IAX is disable\n"; +} + +function DialNumberModem( $DECTnumber, $Time) +{ + global $AnrufDelay; + + //Parameter verarbeiten + $TimeH = substr( $Time, 11, 2); + $TimeM = substr( $Time, 14, 2); + $TimeM = substr( $Time, 14, 2) + $AnrufDelay; + if( $TimeM < 0 ) + { + $TimeM += 60; + $TimeH -= 1; + } + if( $TimeH < 0 ) + $TimeH += 24; + + if( strlen( $TimeH) == 1) + $TimeH = "0".$TimeH; + + SetWackeup( $DECTnumber, $TimeH, $TimeM); +} + +return 0; + +?> + diff --git a/includes/funktion_db.php b/includes/funktion_db.php new file mode 100644 index 00000000..cbfb198f --- /dev/null +++ b/includes/funktion_db.php @@ -0,0 +1,149 @@ +<?PHP + +if( !function_exists("db_query")) +{ + function Ausgabe_Daten($SQL) + { + global $con; + $Erg = mysql_query($SQL, $con); + + echo mysql_error($con); + + $Zeilen = mysql_num_rows($Erg); + $Anzahl_Felder = mysql_num_fields($Erg); + + $Diff = "<table border=1>"; + $Diff .= "<tr>"; + for ($m = 0 ; $m < $Anzahl_Felder ; $m++) + $Diff .= "<th>". mysql_field_name($Erg, $m). "</th>"; + $Diff .= "</tr>"; + + for ($n = 0 ; $n < $Zeilen ; $n++) + { + $Diff .= "<tr>"; + for ($m = 0 ; $m < $Anzahl_Felder ; $m++) + $Diff .= "<td>".mysql_result($Erg, $n, $m). "</td>"; + $Diff .= "</tr>"; + } + $Diff .= "</table>"; + return $Diff; + } + + function db_querry_getDatenAssocArray($SQL) + { + global $con; + + $Erg = mysql_query($SQL, $con); + echo mysql_error($con); + + $Daten = array(); + for( $i=0; $i<mysql_num_rows($Erg); $i++) + $Daten[$i] = mysql_fetch_assoc($Erg); + + return $Daten; + } + + function db_querry_diffDaten($Daten1, $Daten2) + { + $Gefunden=False; + + $Diff = "\n<table border=1>\n"; + $Diff .= "<tr>\n\t<th>Feldname</th>\n\t<th>old Value</th>\n\t<th>new Value</th>\n"; + $Diff .= "</tr>\n"; + foreach($Daten1 as $DataKey => $Data1) + { + if( isset( $Daten2[$DataKey])) + { + $Data2 = $Daten2[$DataKey]; + foreach($Data1 as $key => $value) + if( $value != $Data2[$key]) + { + $Gefunden=TRUE; + $Diff .= "<tr>\n\t<td>$key</td>\n\t<td>$value</td>\n\t<td>".$Data2[$key]."</rd>\n</tr>"; + } + } + else + foreach($Data1 as $key => $value) + { + $Gefunden=TRUE; + $Diff .= "<tr>\n\t<td>$key</td>\n\t<td>$value</td>\n\t<td></rd>\n</tr>"; + } + } + $Diff .= "</table>\n"; + + if( $Gefunden) + return $Diff; + else + return "\nno changes Fount\n"; + } + + function db_query( $SQL, $comment) + { + global $con, $Page; + $Diff = ""; + + //commed anlyse udn daten sicherung + if( strpos( "#$SQL", "UPDATE") > 0) + { + //Tabellen name ermitteln + $Table_Start = strpos( $SQL, "`"); + $Table_End = strpos( $SQL, "`", $Table_Start+1); + $Table = substr( $SQL, $Table_Start, ($Table_End-$Table_Start+1)); + + //SecureTest + if( $Table_Start == 0 || $Table_End == 0) die("<h1>funktion_db ERROR SQL: '$SQL' nicht OK</h1>"); + + //WHERE ermitteln + $Where_Start = strpos( $SQL, "WHERE"); + $Where = substr( $SQL, $Where_Start); + if( $Where_Start == 0) $Where = ";"; + + if( strlen( $Where) < 2) + { + $Diff = "can't show, too mutch data (no filter was set)"; + $querry_erg = mysql_query($SQL, $con); + } + else + { + $Daten1 = db_querry_getDatenAssocArray( "SELECT * FROM $Table $Where"); + $querry_erg = mysql_query($SQL, $con); + $Daten2 = db_querry_getDatenAssocArray( "SELECT * FROM $Table $Where"); + $Diff = db_querry_diffDaten($Daten1, $Daten2); + } + } + elseif( strpos( "#$SQL", "DELETE") > 0) + { + $TableWhere = substr( $SQL, 6); + $Diff .= Ausgabe_Daten( "SELECT * $TableWhere"); + + //execute command + $querry_erg = mysql_query($SQL, $con); + } + elseif( strpos( "#$SQL", "INSERT") > 0) + { + //execute command + $querry_erg = mysql_query($SQL, $con); + } + else + { + //execute command + $querry_erg = mysql_query($SQL, $con); + } + + $SQLCommand = "SQL:<br>". htmlentities( $SQL, ENT_QUOTES); + if( strlen($Diff) > 0) + $SQLCommand .= "<br><br>Diff:<br>$Diff"; + + $Commend = htmlentities( ($Page["Name"]. ": ". $comment), ENT_QUOTES); + //LOG commands in DB + $SQL_SEC = "INSERT INTO `ChangeLog` ( `UID` , `SQLCommad` , `Commend` ) ". + " VALUES ( '". $_SESSION['UID']. "', ". + "'". mysql_escape_string( $SQLCommand). "', ". + "'". mysql_escape_string( $Commend). "' );"; + $erg = mysql_query($SQL_SEC, $con); + echo mysql_error($con); + return $querry_erg; + }//function db_query( +} + +?> diff --git a/includes/funktion_db_list.php b/includes/funktion_db_list.php new file mode 100755 index 00000000..fbf1c821 --- /dev/null +++ b/includes/funktion_db_list.php @@ -0,0 +1,34 @@ +<?PHP + +function funktion_db_list($Table_Name) { + + global $con; + +$SQL = "SELECT * FROM `".$Table_Name."`"; +$Erg = mysql_query($SQL, $con); + +// anzahl zeilen +$Zeilen = mysql_num_rows($Erg); + +$Anzahl_Felder = mysql_num_fields($Erg); + +echo "<table border=1>"; + +echo "<tr>"; +for ($m = 0 ; $m < $Anzahl_Felder ; $m++) { + echo "<th>". mysql_field_name($Erg, $m). "</th>"; + } +echo "</tr>"; + +for ($n = 0 ; $n < $Zeilen ; $n++) { + echo "<tr>"; + for ($m = 0 ; $m < $Anzahl_Felder ; $m++) { + echo "<td>".mysql_result($Erg, $n, $m). "</td>"; + } + echo "</tr>"; +} + +echo "</table>"; +} + +?> diff --git a/includes/funktion_faq.php b/includes/funktion_faq.php new file mode 100755 index 00000000..7b6b526c --- /dev/null +++ b/includes/funktion_faq.php @@ -0,0 +1,12 @@ +<?PHP + +function noAnswer() { + global $con; + + $SQL = "SELECT UID FROM Questions WHERE (Answer=\"\")"; + $Res=mysql_query($SQL, $con); + + return mysql_num_rows($Res); +} + +?> diff --git a/includes/funktion_flag.php b/includes/funktion_flag.php new file mode 100644 index 00000000..2c3ecc13 --- /dev/null +++ b/includes/funktion_flag.php @@ -0,0 +1,12 @@ +<?PHP +echo "<br>"; + +if( strpos( $_SERVER["REQUEST_URI"], "?") >0) + $URL = $_SERVER["REQUEST_URI"]. "&SetLanguage="; +else + $URL = $_SERVER["REQUEST_URI"]. "?SetLanguage="; + +echo "<a href=\"". $URL. "DE\"><img src=\"./inc/flag/de.gif\" alt=\"DE\"></a> "; +echo "<a href=\"". $URL. "EN\"><img src=\"./inc/flag/en.gif\" alt=\"En\"></a> "; + +?> diff --git a/includes/funktion_jabber.php b/includes/funktion_jabber.php new file mode 100755 index 00000000..9c699d70 --- /dev/null +++ b/includes/funktion_jabber.php @@ -0,0 +1,1853 @@ +<?php + +/*************************************************************************** + + Class.Jabber.PHP v0.4.2 + (c) 2004 Nathan "Fritzy" Fritz + http://cjphp.netflint.net *** fritzy@netflint.net + + This is a bugfix version, specifically for those who can't get + 0.4 to work on Jabberd2 servers. + + last modified: 24.03.2004 13:01:53 + + ***************************************************************************/ + +/*************************************************************************** + * + + * + ***************************************************************************/ + +/* + Jabber::Connect() + Jabber::Disconnect() + Jabber::SendAuth() + Jabber::AccountRegistration($reg_email {string}, $reg_name {string}) + + Jabber::Listen() + Jabber::SendPacket($xml {string}) + + Jabber::RosterUpdate() + Jabber::RosterAddUser($jid {string}, $id {string}, $name {string}) + Jabber::RosterRemoveUser($jid {string}, $id {string}) + Jabber::RosterExistsJID($jid {string}) + + Jabber::Subscribe($jid {string}) + Jabber::Unsubscribe($jid {string}) + + Jabber::CallHandler($message {array}) + Jabber::CruiseControl([$seconds {number}]) + + Jabber::SubscriptionApproveRequest($to {string}) + Jabber::SubscriptionDenyRequest($to {string}) + + Jabber::GetFirstFromQueue() + Jabber::GetFromQueueById($packet_type {string}, $id {string}) + + Jabber::SendMessage($to {string}, $id {number}, $type {string}, $content {array}[, $payload {array}]) + Jabber::SendIq($to {string}, $type {string}, $id {string}, $xmlns {string}[, $payload {string}]) + Jabber::SendPresence($type {string}[, $to {string}[, $status {string}[, $show {string}[, $priority {number}]]]]) + + Jabber::SendError($to {string}, $id {string}, $error_number {number}[, $error_message {string}]) + + Jabber::TransportRegistrationDetails($transport {string}) + Jabber::TransportRegistration($transport {string}, $details {array}) + + Jabber::GetvCard($jid {string}[, $id {string}]) -- EXPERIMENTAL -- + + Jabber::GetInfoFromMessageFrom($packet {array}) + Jabber::GetInfoFromMessageType($packet {array}) + Jabber::GetInfoFromMessageId($packet {array}) + Jabber::GetInfoFromMessageThread($packet {array}) + Jabber::GetInfoFromMessageSubject($packet {array}) + Jabber::GetInfoFromMessageBody($packet {array}) + Jabber::GetInfoFromMessageError($packet {array}) + + Jabber::GetInfoFromIqFrom($packet {array}) + Jabber::GetInfoFromIqType($packet {array}) + Jabber::GetInfoFromIqId($packet {array}) + Jabber::GetInfoFromIqKey($packet {array}) + Jabber::GetInfoFromIqError($packet {array}) + + Jabber::GetInfoFromPresenceFrom($packet {array}) + Jabber::GetInfoFromPresenceType($packet {array}) + Jabber::GetInfoFromPresenceStatus($packet {array}) + Jabber::GetInfoFromPresenceShow($packet {array}) + Jabber::GetInfoFromPresencePriority($packet {array}) + + Jabber::AddToLog($string {string}) + Jabber::PrintLog() + + MakeXML::AddPacketDetails($string {string}[, $value {string/number}]) + MakeXML::BuildPacket([$array {array}]) +*/ + + + +class Jabber +{ + function Jabber($server, $port, $username, $password, $resource) + { + + $this->server = $server; + $this->port = $port; + + $this->username = $username; + $this->password = $password; + $this->resource = $resource; + + $this->enable_logging = FALSE; + $this->log_array = array(); + $this->log_filename = ''; + $this->log_filehandler = FALSE; + + $this->packet_queue = array(); + $this->subscription_queue = array(); + + $this->iq_sleep_timer = 1; + $this->delay_disconnect = 1; + + $this->returned_keep_alive = TRUE; + $this->txnid = 0; + + $this->iq_version_name = "Class.Jabber.PHP -- http://cjphp.netflint.net -- by Nathan 'Fritzy' Fritz, fritz@netflint.net"; + $this->iq_version_version = "0.4"; + $this->iq_version_os = $_SERVER['SERVER_SOFTWARE']; + + $this->connection_class = "CJP_StandardConnector"; + + $this->error_codes = array(400 => "Bad Request", + 401 => "Unauthorized", + 402 => "Payment Required", + 403 => "Forbidden", + 404 => "Not Found", + 405 => "Not Allowed", + 406 => "Not Acceptable", + 407 => "Registration Required", + 408 => "Request Timeout", + 409 => "Conflict", + 500 => "Internal Server Error", + 501 => "Not Implemented", + 502 => "Remove Server Error", + 503 => "Service Unavailable", + 504 => "Remove Server Timeout", + 510 => "Disconnected"); + } + + + + function Connect() + { + $this->_create_logfile(); + + $this->CONNECTOR = new $this->connection_class; + + if ($this->CONNECTOR->OpenSocket($this->server, $this->port)) + { + $this->SendPacket("<?xml version='1.0' encoding='UTF-8' ?" . ">\n"); + $this->SendPacket("<stream:stream to='{$this->server}' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>\n"); + + sleep(2); + + if ($this->_check_connected()) + { + $this->connected = TRUE; // Nathan Fritz + return TRUE; + } + else + { + $this->AddToLog("ERROR: Connect() #1"); + return FALSE; + } + } + else + { + $this->AddToLog("ERROR: Connect() #2"); + return FALSE; + } + } + + + + function Disconnect() + { + if (is_int($this->delay_disconnect)) + { + sleep($this->delay_disconnect); + } + + $this->SendPacket("</stream:stream>"); + $this->CONNECTOR->CloseSocket(); + + $this->_close_logfile(); + $this->PrintLog(); + } + + + + function SendAuth() + { + $this->auth_id = "auth_" . md5(time() . $_SERVER['REMOTE_ADDR']); + + $this->resource = ($this->resource != NULL) ? $this->resource : ("Class.Jabber.PHP " . md5($this->auth_id)); + $this->jid = "{$this->username}@{$this->server}/{$this->resource}"; + + // request available authentication methods + $payload = "<username>{$this->username}</username>"; + $packet = $this->SendIq(NULL, 'get', $this->auth_id, "jabber:iq:auth", $payload); + + // was a result returned? + if ($this->GetInfoFromIqType($packet) == 'result' && $this->GetInfoFromIqId($packet) == $this->auth_id) + { + // yes, now check for auth method availability in descending order (best to worst) + + if (!function_exists('mhash')) + { + $this->AddToLog("ATTENTION: SendAuth() - mhash() is not available; screw 0k and digest method, we need to go with plaintext auth"); + } + + // auth_0k + if (function_exists('mhash') && isset($packet['iq']['#']['query'][0]['#']['sequence'][0]["#"]) && isset($packet['iq']['#']['query'][0]['#']['token'][0]["#"])) + { + return $this->_sendauth_0k($packet['iq']['#']['query'][0]['#']['token'][0]["#"], $packet['iq']['#']['query'][0]['#']['sequence'][0]["#"]); + } + // digest + elseif (function_exists('mhash') && isset($packet['iq']['#']['query'][0]['#']['digest'])) + { + return $this->_sendauth_digest(); + } + // plain text + elseif ($packet['iq']['#']['query'][0]['#']['password']) + { + return $this->_sendauth_plaintext(); + } + // dude, you're fucked + { + $this->AddToLog("ERROR: SendAuth() #2 - No auth method available!"); + return FALSE; + } + } + else + { + // no result returned + $this->AddToLog("ERROR: SendAuth() #1"); + return FALSE; + } + } + + + + function AccountRegistration($reg_email = NULL, $reg_name = NULL) + { + $packet = $this->SendIq($this->server, 'get', 'reg_01', 'jabber:iq:register'); + + if ($packet) + { + $key = $this->GetInfoFromIqKey($packet); // just in case a key was passed back from the server + unset($packet); + + $payload = "<username>{$this->username}</username> + <password>{$this->password}</password> + <email>$reg_email</email> + <name>$reg_name</name>\n"; + + $payload .= ($key) ? "<key>$key</key>\n" : ''; + + $packet = $this->SendIq($this->server, 'set', "reg_01", "jabber:iq:register", $payload); + + if ($this->GetInfoFromIqType($packet) == 'result') + { + if (isset($packet['iq']['#']['query'][0]['#']['registered'][0]['#'])) + { + $return_code = 1; + } + else + { + $return_code = 2; + } + + if ($this->resource) + { + $this->jid = "{$this->username}@{$this->server}/{$this->resource}"; + } + else + { + $this->jid = "{$this->username}@{$this->server}"; + } + + } + elseif ($this->GetInfoFromIqType($packet) == 'error' && isset($packet['iq']['#']['error'][0]['#'])) + { + // "conflict" error, i.e. already registered + if ($packet['iq']['#']['error'][0]['@']['code'] == '409') + { + $return_code = 1; + } + else + { + $return_code = "Error " . $packet['iq']['#']['error'][0]['@']['code'] . ": " . $packet['iq']['#']['error'][0]['#']; + } + } + + return $return_code; + + } + else + { + return 3; + } + } + + + + function SendPacket($xml) + { + $xml = trim($xml); + + if ($this->CONNECTOR->WriteToSocket($xml)) + { + $this->AddToLog("SEND: $xml"); + return TRUE; + } + else + { + $this->AddToLog('ERROR: SendPacket() #1'); + return FALSE; + } + } + + + + function Listen() + { + $incoming = ""; + + while ($line = $this->CONNECTOR->ReadFromSocket(4096)) + { + $incoming .= $line; + } + + $incoming = trim($incoming); + + if ($incoming != "") + { + $this->AddToLog("RECV: $incoming"); + } + + if ($incoming != "") + { + $temp = $this->_split_incoming($incoming); + + for ($a = 0; $a < count($temp); $a++) + { + $this->packet_queue[] = $this->xmlize($temp[$a]); + } + } + + return TRUE; + } + + + + function StripJID($jid = NULL) + { + preg_match("/(.*)\/(.*)/Ui", $jid, $temp); + return ($temp[1] != "") ? $temp[1] : $jid; + } + + + + function SendMessage($to, $type = "normal", $id = NULL, $content = NULL, $payload = NULL) + { + if ($to && is_array($content)) + { + if (!$id) + { + $id = $type . "_" . time(); + } + + $content = $this->_array_htmlspecialchars($content); + + $xml = "<message to='$to' type='$type' id='$id'>\n"; + + if (isset($content['subject'])) + { + $xml .= "<subject>" . $content['subject'] . "</subject>\n"; + } + + if (isset($content['thread'])) + { + $xml .= "<thread>" . $content['thread'] . "</thread>\n"; + } + + $xml .= "<body>" . $content['body'] . "</body>\n"; + $xml .= $payload; + $xml .= "</message>\n"; + + + if ($this->SendPacket($xml)) + { + return TRUE; + } + else + { + $this->AddToLog("ERROR: SendMessage() #1"); + return FALSE; + } + } + else + { + $this->AddToLog("ERROR: SendMessage() #2"); + return FALSE; + } + } + + + + function SendPresence($type = NULL, $to = NULL, $status = NULL, $show = NULL, $priority = NULL) + { + $xml = "<presence"; + $xml .= ($to) ? " to='$to'" : ''; + $xml .= ($type) ? " type='$type'" : ''; + $xml .= ($status || $show || $priority) ? ">\n" : " />\n"; + + $xml .= ($status) ? " <status>$status</status>\n" : ''; + $xml .= ($show) ? " <show>$show</show>\n" : ''; + $xml .= ($priority) ? " <priority>$priority</priority>\n" : ''; + + $xml .= ($status || $show || $priority) ? "</presence>\n" : ''; + + if ($this->SendPacket($xml)) + { + return TRUE; + } + else + { + $this->AddToLog("ERROR: SendPresence() #1"); + return FALSE; + } + } + + + + function SendError($to, $id = NULL, $error_number, $error_message = NULL) + { + $xml = "<iq type='error' to='$to'"; + $xml .= ($id) ? " id='$id'" : ''; + $xml .= ">\n"; + $xml .= " <error code='$error_number'>"; + $xml .= ($error_message) ? $error_message : $this->error_codes[$error_number]; + $xml .= "</error>\n"; + $xml .= "</iq>"; + + $this->SendPacket($xml); + } + + + + function RosterUpdate() + { + $roster_request_id = "roster_" . time(); + + $incoming_array = $this->SendIq(NULL, 'get', $roster_request_id, "jabber:iq:roster"); + + if (is_array($incoming_array)) + { + if ($incoming_array['iq']['@']['type'] == 'result' + && $incoming_array['iq']['@']['id'] == $roster_request_id + && $incoming_array['iq']['#']['query']['0']['@']['xmlns'] == "jabber:iq:roster") + { + $number_of_contacts = count($incoming_array['iq']['#']['query'][0]['#']['item']); + $this->roster = array(); + + for ($a = 0; $a < $number_of_contacts; $a++) + { + $this->roster[$a] = array( "jid" => strtolower($incoming_array['iq']['#']['query'][0]['#']['item'][$a]['@']['jid']), + "name" => $incoming_array['iq']['#']['query'][0]['#']['item'][$a]['@']['name'], + "subscription" => $incoming_array['iq']['#']['query'][0]['#']['item'][$a]['@']['subscription'], + "group" => $incoming_array['iq']['#']['query'][0]['#']['item'][$a]['#']['group'][0]['#'] + ); + } + + return TRUE; + } + else + { + $this->AddToLog("ERROR: RosterUpdate() #1"); + return FALSE; + } + } + else + { + $this->AddToLog("ERROR: RosterUpdate() #2"); + return FALSE; + } + } + + + + function RosterAddUser($jid = NULL, $id = NULL, $name = NULL) + { + $id = ($id) ? $id : "adduser_" . time(); + + if ($jid) + { + $payload = " <item jid='$jid'"; + $payload .= ($name) ? " name='" . htmlspecialchars($name) . "'" : ''; + $payload .= "/>\n"; + + $packet = $this->SendIq(NULL, 'set', $id, "jabber:iq:roster", $payload); + + if ($this->GetInfoFromIqType($packet) == 'result') + { + $this->RosterUpdate(); + return TRUE; + } + else + { + $this->AddToLog("ERROR: RosterAddUser() #2"); + return FALSE; + } + } + else + { + $this->AddToLog("ERROR: RosterAddUser() #1"); + return FALSE; + } + } + + + + function RosterRemoveUser($jid = NULL, $id = NULL) + { + $id = ($id) ? $id : 'deluser_' . time(); + + if ($jid && $id) + { + $packet = $this->SendIq(NULL, 'set', $id, "jabber:iq:roster", "<item jid='$jid' subscription='remove'/>"); + + if ($this->GetInfoFromIqType($packet) == 'result') + { + $this->RosterUpdate(); + return TRUE; + } + else + { + $this->AddToLog("ERROR: RosterRemoveUser() #2"); + return FALSE; + } + } + else + { + $this->AddToLog("ERROR: RosterRemoveUser() #1"); + return FALSE; + } + } + + + + function RosterExistsJID($jid = NULL) + { + if ($jid) + { + if ($this->roster) + { + for ($a = 0; $a < count($this->roster); $a++) + { + if ($this->roster[$a]['jid'] == strtolower($jid)) + { + return $a; + } + } + } + else + { + $this->AddToLog("ERROR: RosterExistsJID() #2"); + return FALSE; + } + } + else + { + $this->AddToLog("ERROR: RosterExistsJID() #1"); + return FALSE; + } + } + + + + function GetFirstFromQueue() + { + return array_shift($this->packet_queue); + } + + + + function GetFromQueueById($packet_type, $id) + { + $found_message = FALSE; + + foreach ($this->packet_queue as $key => $value) + { + if ($value[$packet_type]['@']['id'] == $id) + { + $found_message = $value; + unset($this->packet_queue[$key]); + + break; + } + } + + return (is_array($found_message)) ? $found_message : FALSE; + } + + + + function CallHandler($packet = NULL) + { + $packet_type = $this->_get_packet_type($packet); + + if ($packet_type == "message") + { + $type = $packet['message']['@']['type']; + $type = ($type != "") ? $type : "normal"; + $funcmeth = "Handler_message_$type"; + } + elseif ($packet_type == "iq") + { + $namespace = $packet['iq']['#']['query'][0]['@']['xmlns']; + $namespace = str_replace(":", "_", $namespace); + $funcmeth = "Handler_iq_$namespace"; + } + elseif ($packet_type == "presence") + { + $type = $packet['presence']['@']['type']; + $type = ($type != "") ? $type : "available"; + $funcmeth = "Handler_presence_$type"; + } + + + if ($funcmeth != '') + { + if (function_exists($funcmeth)) + { + call_user_func($funcmeth, $packet); + } + elseif (method_exists($this, $funcmeth)) + { + call_user_func(array(&$this, $funcmeth), $packet); + } + else + { + $this->Handler_NOT_IMPLEMENTED($packet); + $this->AddToLog("ERROR: CallHandler() #1 - neither method nor function $funcmeth() available"); + } + } + } + + + + function CruiseControl($seconds = -1) + { + $count = 0; + + while ($count != $seconds) + { + $this->Listen(); + + do { + $packet = $this->GetFirstFromQueue(); + + if ($packet) { + $this->CallHandler($packet); + } + + } while (count($this->packet_queue) > 1); + + $count += 0.25; + usleep(250000); + + if ($this->last_ping_time + 180 < time()) + { + // Modified by Nathan Fritz + if ($this->returned_keep_alive == FALSE) + { + $this->connected = FALSE; + $this->AddToLog('EVENT: Disconnected'); + } + if ($this->returned_keep_alive == TRUE) + { + $this->connected = TRUE; + } + + $this->returned_keep_alive = FALSE; + $this->keep_alive_id = 'keep_alive_' . time(); + //$this->SendPacket("<iq id='{$this->keep_alive_id}'/>", 'CruiseControl'); + $this->SendPacket("<iq type='get' from='" . $this->username . "@" . $this->server . "/" . $this->resource . "' to='" . $this->server . "' id='" . $this->keep_alive_id . "'><query xmlns='jabber:iq:time' /></iq>"); + // ** + + $this->last_ping_time = time(); + } + } + + return TRUE; + } + + + + function SubscriptionAcceptRequest($to = NULL) + { + return ($to) ? $this->SendPresence("subscribed", $to) : FALSE; + } + + + + function SubscriptionDenyRequest($to = NULL) + { + return ($to) ? $this->SendPresence("unsubscribed", $to) : FALSE; + } + + + + function Subscribe($to = NULL) + { + return ($to) ? $this->SendPresence("subscribe", $to) : FALSE; + } + + + + function Unsubscribe($to = NULL) + { + return ($to) ? $this->SendPresence("unsubscribe", $to) : FALSE; + } + + + + function SendIq($to = NULL, $type = 'get', $id = NULL, $xmlns = NULL, $payload = NULL, $from = NULL) + { + if (!preg_match("/^(get|set|result|error)$/", $type)) + { + unset($type); + + $this->AddToLog("ERROR: SendIq() #2 - type must be 'get', 'set', 'result' or 'error'"); + return FALSE; + } + elseif ($id && $xmlns) + { + $xml = "<iq type='$type' id='$id'"; + $xml .= ($to) ? " to='" . htmlspecialchars($to) . "'" : ''; + $xml .= ($from) ? " from='$from'" : ''; + $xml .= "> + <query xmlns='$xmlns'> + $payload + </query> + </iq>"; + + $this->SendPacket($xml); + sleep($this->iq_sleep_timer); + $this->Listen(); + + return (preg_match("/^(get|set)$/", $type)) ? $this->GetFromQueueById("iq", $id) : TRUE; + } + else + { + $this->AddToLog("ERROR: SendIq() #1 - to, id and xmlns are mandatory"); + return FALSE; + } + } + + + + // get the transport registration fields + // method written by Steve Blinch, http://www.blitzaffe.com + function TransportRegistrationDetails($transport) + { + $this->txnid++; + $packet = $this->SendIq($transport, 'get', "reg_{$this->txnid}", "jabber:iq:register", NULL, $this->jid); + + if ($packet) + { + $res = array(); + + foreach ($packet['iq']['#']['query'][0]['#'] as $element => $data) + { + if ($element != 'instructions' && $element != 'key') + { + $res[] = $element; + } + } + + return $res; + } + else + { + return 3; + } + } + + + + // register with the transport + // method written by Steve Blinch, http://www.blitzaffe.com + function TransportRegistration($transport, $details) + { + $this->txnid++; + $packet = $this->SendIq($transport, 'get', "reg_{$this->txnid}", "jabber:iq:register", NULL, $this->jid); + + if ($packet) + { + $key = $this->GetInfoFromIqKey($packet); // just in case a key was passed back from the server + unset($packet); + + $payload = ($key) ? "<key>$key</key>\n" : ''; + foreach ($details as $element => $value) + { + $payload .= "<$element>$value</$element>\n"; + } + + $packet = $this->SendIq($transport, 'set', "reg_{$this->txnid}", "jabber:iq:register", $payload); + + if ($this->GetInfoFromIqType($packet) == 'result') + { + if (isset($packet['iq']['#']['query'][0]['#']['registered'][0]['#'])) + { + $return_code = 1; + } + else + { + $return_code = 2; + } + } + elseif ($this->GetInfoFromIqType($packet) == 'error') + { + if (isset($packet['iq']['#']['error'][0]['#'])) + { + $return_code = "Error " . $packet['iq']['#']['error'][0]['@']['code'] . ": " . $packet['iq']['#']['error'][0]['#']; + $this->AddToLog('ERROR: TransportRegistration()'); + } + } + + return $return_code; + } + else + { + return 3; + } + } + + + + function GetvCard($jid = NULL, $id = NULL) + { + if (!$id) + { + $id = "vCard_" . md5(time() . $_SERVER['REMOTE_ADDR']); + } + + if ($jid) + { + $xml = "<iq type='get' to='$jid' id='$id'> + <vCard xmlns='vcard-temp'/> + </iq>"; + + $this->SendPacket($xml); + sleep($this->iq_sleep_timer); + $this->Listen(); + + return $this->GetFromQueueById("iq", $id); + } + else + { + $this->AddToLog("ERROR: GetvCard() #1 - to and id are mandatory"); + return FALSE; + } + } + + + + function PrintLog() + { + if ($this->enable_logging) + { + if ($this->log_filehandler) + { + echo "<h2>Logging enabled, logged events have been written to the file {$this->log_filename}.</h2>\n"; + } + else + { + echo "<h2>Logging enabled, logged events below:</h2>\n"; + echo "<pre>\n"; + echo (count($this->log_array) > 0) ? implode("\n\n\n", $this->log_array) : "No logged events."; + echo "</pre>\n"; + } + } + } + + + + // ====================================================================== + // private methods + // ====================================================================== + + + + function _sendauth_0k($zerok_token, $zerok_sequence) + { + // initial hash of password + $zerok_hash = mhash(MHASH_SHA1, $this->password); + $zerok_hash = bin2hex($zerok_hash); + + // sequence 0: hash of hashed-password and token + $zerok_hash = mhash(MHASH_SHA1, $zerok_hash . $zerok_token); + $zerok_hash = bin2hex($zerok_hash); + + // repeat as often as needed + for ($a = 0; $a < $zerok_sequence; $a++) + { + $zerok_hash = mhash(MHASH_SHA1, $zerok_hash); + $zerok_hash = bin2hex($zerok_hash); + } + + $payload = "<username>{$this->username}</username> + <hash>$zerok_hash</hash> + <resource>{$this->resource}</resource>"; + + $packet = $this->SendIq(NULL, 'set', $this->auth_id, "jabber:iq:auth", $payload); + + // was a result returned? + if ($this->GetInfoFromIqType($packet) == 'result' && $this->GetInfoFromIqId($packet) == $this->auth_id) + { + return TRUE; + } + else + { + $this->AddToLog("ERROR: _sendauth_0k() #1"); + return FALSE; + } + } + + + + function _sendauth_digest() + { + $payload = "<username>{$this->username}</username> + <resource>{$this->resource}</resource> + <digest>" . bin2hex(mhash(MHASH_SHA1, $this->stream_id . $this->password)) . "</digest>"; + + $packet = $this->SendIq(NULL, 'set', $this->auth_id, "jabber:iq:auth", $payload); + + // was a result returned? + if ($this->GetInfoFromIqType($packet) == 'result' && $this->GetInfoFromIqId($packet) == $this->auth_id) + { + return TRUE; + } + else + { + $this->AddToLog("ERROR: _sendauth_digest() #1"); + return FALSE; + } + } + + + + function _sendauth_plaintext() + { + $payload = "<username>{$this->username}</username> + <password>{$this->password}</password> + <resource>{$this->resource}</resource>"; + + $packet = $this->SendIq(NULL, 'set', $this->auth_id, "jabber:iq:auth", $payload); + + // was a result returned? + if ($this->GetInfoFromIqType($packet) == 'result' && $this->GetInfoFromIqId($packet) == $this->auth_id) + { + return TRUE; + } + else + { + $this->AddToLog("ERROR: _sendauth_plaintext() #1"); + return FALSE; + } + } + + + + function _listen_incoming() + { + $incoming = ""; + + while ($line = $this->CONNECTOR->ReadFromSocket(4096)) + { + $incoming .= $line; + } + + $incoming = trim($incoming); + + if ($incoming != "") + { + $this->AddToLog("RECV: $incoming"); + } + + return $this->xmlize($incoming); + } + + + + function _check_connected() + { + $incoming_array = $this->_listen_incoming(); + + if (is_array($incoming_array)) + { + if ($incoming_array["stream:stream"]['@']['from'] == $this->server + && $incoming_array["stream:stream"]['@']['xmlns'] == "jabber:client" + && $incoming_array["stream:stream"]['@']["xmlns:stream"] == "http://etherx.jabber.org/streams") + { + $this->stream_id = $incoming_array["stream:stream"]['@']['id']; + + return TRUE; + } + else + { + $this->AddToLog("ERROR: _check_connected() #1"); + return FALSE; + } + } + else + { + $this->AddToLog("ERROR: _check_connected() #2"); + return FALSE; + } + } + + + + function _get_packet_type($packet = NULL) + { + if (is_array($packet)) + { + reset($packet); + $packet_type = key($packet); + } + + return ($packet_type) ? $packet_type : FALSE; + } + + + + function _split_incoming($incoming) + { + $temp = preg_split("/<(message|iq|presence|stream)/", $incoming, -1, PREG_SPLIT_DELIM_CAPTURE); + $array = array(); + + for ($a = 1; $a < count($temp); $a = $a + 2) + { + $array[] = "<" . $temp[$a] . $temp[($a + 1)]; + } + + return $array; + } + + + + function _create_logfile() + { + if ($this->log_filename != '' && $this->enable_logging) + { + $this->log_filehandler = fopen($this->log_filename, 'w'); + } + } + + + + function AddToLog($string) + { + if ($this->enable_logging) + { + if ($this->log_filehandler) + { + #fwrite($this->log_filehandler, $string . "\n\n"); + print "$string \n\n"; + } + else + { + $this->log_array[] = htmlspecialchars($string); + } + } + } + + + + function _close_logfile() + { + if ($this->log_filehandler) + { + fclose($this->log_filehandler); + } + } + + + + // _array_htmlspecialchars() + // applies htmlspecialchars() to all values in an array + + function _array_htmlspecialchars($array) + { + if (is_array($array)) + { + foreach ($array as $k => $v) + { + if (is_array($v)) + { + $v = $this->_array_htmlspecialchars($v); + } + else + { + $v = htmlspecialchars($v); + } + } + } + + return $array; + } + + + + // ====================================================================== + // <message/> parsers + // ====================================================================== + + + + function GetInfoFromMessageFrom($packet = NULL) + { + return (is_array($packet)) ? $packet['message']['@']['from'] : FALSE; + } + + + + function GetInfoFromMessageType($packet = NULL) + { + return (is_array($packet)) ? $packet['message']['@']['type'] : FALSE; + } + + + + function GetInfoFromMessageId($packet = NULL) + { + return (is_array($packet)) ? $packet['message']['@']['id'] : FALSE; + } + + + + function GetInfoFromMessageThread($packet = NULL) + { + return (is_array($packet)) ? $packet['message']['#']['thread'][0]['#'] : FALSE; + } + + + + function GetInfoFromMessageSubject($packet = NULL) + { + return (is_array($packet)) ? $packet['message']['#']['subject'][0]['#'] : FALSE; + } + + + + function GetInfoFromMessageBody($packet = NULL) + { + return (is_array($packet)) ? $packet['message']['#']['body'][0]['#'] : FALSE; + } + + function GetInfoFromMessageXMLNS($packet = NULL) + { + return (is_array($packet)) ? $packet['message']['#']['x'] : FALSE; + } + + + + function GetInfoFromMessageError($packet = NULL) + { + $error = preg_replace("/^\/$/", "", ($packet['message']['#']['error'][0]['@']['code'] . "/" . $packet['message']['#']['error'][0]['#'])); + return (is_array($packet)) ? $error : FALSE; + } + + + + // ====================================================================== + // <iq/> parsers + // ====================================================================== + + + + function GetInfoFromIqFrom($packet = NULL) + { + return (is_array($packet)) ? $packet['iq']['@']['from'] : FALSE; + } + + + + function GetInfoFromIqType($packet = NULL) + { + return (is_array($packet)) ? $packet['iq']['@']['type'] : FALSE; + } + + + + function GetInfoFromIqId($packet = NULL) + { + return (is_array($packet)) ? $packet['iq']['@']['id'] : FALSE; + } + + + + function GetInfoFromIqKey($packet = NULL) + { + return (is_array($packet)) ? $packet['iq']['#']['query'][0]['#']['key'][0]['#'] : FALSE; + } + + + + function GetInfoFromIqError($packet = NULL) + { + $error = preg_replace("/^\/$/", "", ($packet['iq']['#']['error'][0]['@']['code'] . "/" . $packet['iq']['#']['error'][0]['#'])); + return (is_array($packet)) ? $error : FALSE; + } + + + + // ====================================================================== + // <presence/> parsers + // ====================================================================== + + + + function GetInfoFromPresenceFrom($packet = NULL) + { + return (is_array($packet)) ? $packet['presence']['@']['from'] : FALSE; + } + + + + function GetInfoFromPresenceType($packet = NULL) + { + return (is_array($packet)) ? $packet['presence']['@']['type'] : FALSE; + } + + + + function GetInfoFromPresenceStatus($packet = NULL) + { + return (is_array($packet)) ? $packet['presence']['#']['status'][0]['#'] : FALSE; + } + + + + function GetInfoFromPresenceShow($packet = NULL) + { + return (is_array($packet)) ? $packet['presence']['#']['show'][0]['#'] : FALSE; + } + + + + function GetInfoFromPresencePriority($packet = NULL) + { + return (is_array($packet)) ? $packet['presence']['#']['priority'][0]['#'] : FALSE; + } + + + + // ====================================================================== + // <message/> handlers + // ====================================================================== + + + + function Handler_message_normal($packet) + { + $from = $packet['message']['@']['from']; + $this->AddToLog("EVENT: Message (type normal) from $from"); + } + + + + function Handler_message_chat($packet) + { + $from = $packet['message']['@']['from']; + $this->AddToLog("EVENT: Message (type chat) from $from"); + } + + + + function Handler_message_groupchat($packet) + { + $from = $packet['message']['@']['from']; + $this->AddToLog("EVENT: Message (type groupchat) from $from"); + } + + + + function Handler_message_headline($packet) + { + $from = $packet['message']['@']['from']; + $this->AddToLog("EVENT: Message (type headline) from $from"); + } + + + + function Handler_message_error($packet) + { + $from = $packet['message']['@']['from']; + $this->AddToLog("EVENT: Message (type error) from $from"); + } + + + + // ====================================================================== + // <iq/> handlers + // ====================================================================== + + + + // application version updates + function Handler_iq_jabber_iq_autoupdate($packet) + { + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: jabber:iq:autoupdate from $from"); + } + + + + // interactive server component properties + function Handler_iq_jabber_iq_agent($packet) + { + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: jabber:iq:agent from $from"); + } + + + + // method to query interactive server components + function Handler_iq_jabber_iq_agents($packet) + { + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: jabber:iq:agents from $from"); + } + + + + // simple client authentication + function Handler_iq_jabber_iq_auth($packet) + { + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: jabber:iq:auth from $from"); + } + + + + // out of band data + function Handler_iq_jabber_iq_oob($packet) + { + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: jabber:iq:oob from $from"); + } + + + + // method to store private data on the server + function Handler_iq_jabber_iq_private($packet) + { + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: jabber:iq:private from $from"); + } + + + + // method for interactive registration + function Handler_iq_jabber_iq_register($packet) + { + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: jabber:iq:register from $from"); + } + + + + // client roster management + function Handler_iq_jabber_iq_roster($packet) + { + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: jabber:iq:roster from $from"); + } + + + + // method for searching a user database + function Handler_iq_jabber_iq_search($packet) + { + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: jabber:iq:search from $from"); + } + + + + // method for requesting the current time + function Handler_iq_jabber_iq_time($packet) + { + if ($this->keep_alive_id == $this->GetInfoFromIqId($packet)) + { + $this->returned_keep_alive = TRUE; + $this->connected = TRUE; + $this->AddToLog('EVENT: Keep-Alive returned, connection alive.'); + } + $type = $this->GetInfoFromIqType($packet); + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + $id = ($id != "") ? $id : "time_" . time(); + + if ($type == 'get') + { + $payload = "<utc>" . gmdate("Ydm\TH:i:s") . "</utc> + <tz>" . date("T") . "</tz> + <display>" . date("Y/d/m h:i:s A") . "</display>"; + + $this->SendIq($from, 'result', $id, "jabber:iq:time", $payload); + } + + $this->AddToLog("EVENT: jabber:iq:time (type $type) from $from"); + } + + + + // method for requesting version + function Handler_iq_jabber_iq_version($packet) + { + $type = $this->GetInfoFromIqType($packet); + $from = $this->GetInfoFromIqFrom($packet); + $id = $this->GetInfoFromIqId($packet); + $id = ($id != "") ? $id : "version_" . time(); + + if ($type == 'get') + { + $payload = "<name>{$this->iq_version_name}</name> + <os>{$this->iq_version_os}</os> + <version>{$this->iq_version_version}</version>"; + + #$this->SendIq($from, 'result', $id, "jabber:iq:version", $payload); + } + + $this->AddToLog("EVENT: jabber:iq:version (type $type) from $from -- DISABLED"); + } + + + + // keepalive method, added by Nathan Fritz + /* + function Handler_jabber_iq_time($packet) + { + if ($this->keep_alive_id == $this->GetInfoFromIqId($packet)) + { + $this->returned_keep_alive = TRUE; + $this->connected = TRUE; + $this->AddToLog('EVENT: Keep-Alive returned, connection alive.'); + } + } + */ + + + // ====================================================================== + // <presence/> handlers + // ====================================================================== + + + + function Handler_presence_available($packet) + { + $from = $this->GetInfoFromPresenceFrom($packet); + + $show_status = $this->GetInfoFromPresenceStatus($packet) . " / " . $this->GetInfoFromPresenceShow($packet); + $show_status = ($show_status != " / ") ? " ($addendum)" : ''; + + $this->AddToLog("EVENT: Presence (type: available) - $from is available $show_status"); + } + + + + function Handler_presence_unavailable($packet) + { + $from = $this->GetInfoFromPresenceFrom($packet); + + $show_status = $this->GetInfoFromPresenceStatus($packet) . " / " . $this->GetInfoFromPresenceShow($packet); + $show_status = ($show_status != " / ") ? " ($addendum)" : ''; + + $this->AddToLog("EVENT: Presence (type: unavailable) - $from is unavailable $show_status"); + } + + + + function Handler_presence_subscribe($packet) + { + $from = $this->GetInfoFromPresenceFrom($packet); + $this->SubscriptionAcceptRequest($from); + $this->RosterUpdate(); + + $this->log_array[] = "<b>Presence:</b> (type: subscribe) - Subscription request from $from, was added to \$this->subscription_queue, roster updated"; + } + + + + function Handler_presence_subscribed($packet) + { + $from = $this->GetInfoFromPresenceFrom($packet); + $this->RosterUpdate(); + + $this->AddToLog("EVENT: Presence (type: subscribed) - Subscription allowed by $from, roster updated"); + } + + + + function Handler_presence_unsubscribe($packet) + { + $from = $this->GetInfoFromPresenceFrom($packet); + $this->SendPresence("unsubscribed", $from); + $this->RosterUpdate(); + + $this->AddToLog("EVENT: Presence (type: unsubscribe) - Request to unsubscribe from $from, was automatically approved, roster updated"); + } + + + + function Handler_presence_unsubscribed($packet) + { + $from = $this->GetInfoFromPresenceFrom($packet); + $this->RosterUpdate(); + + $this->AddToLog("EVENT: Presence (type: unsubscribed) - Unsubscribed from $from's presence"); + } + + + + // Added By Nathan Fritz + function Handler_presence_error($packet) + { + $from = $this->GetInfoFromPresenceFrom($packet); + $this->AddToLog("EVENT: Presence (type: error) - Error in $from's presence"); + } + + + + // ====================================================================== + // Generic handlers + // ====================================================================== + + + + // Generic handler for unsupported requests + function Handler_NOT_IMPLEMENTED($packet) + { + $packet_type = $this->_get_packet_type($packet); + $from = call_user_func(array(&$this, "GetInfoFrom" . ucfirst($packet_type) . "From"), $packet); + $id = call_user_func(array(&$this, "GetInfoFrom" . ucfirst($packet_type) . "Id"), $packet); + + $this->SendError($from, $id, 501); + $this->AddToLog("EVENT: Unrecognized <$packet_type/> from $from"); + } + + + + // ====================================================================== + // Third party code + // m@d pr0ps to the coders ;) + // ====================================================================== + + + + // xmlize() + // (c) Hans Anderson / http://www.hansanderson.com/php/xml/ + + function xmlize($data) + { + $vals = $index = $array = array(); + $parser = xml_parser_create('utf-8'); + xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); + xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); + xml_parse_into_struct($parser, $data, $vals, $index); + xml_parser_free($parser); + + $i = 0; + + $tagname = $vals[$i]['tag']; + $array[$tagname]['@'] = $vals[$i]['attributes']; + $array[$tagname]['#'] = $this->_xml_depth($vals, $i); + + return $array; + } + + + + // _xml_depth() + // (c) Hans Anderson / http://www.hansanderson.com/php/xml/ + + function _xml_depth($vals, &$i) + { + $children = array(); + + if (isset($vals[$i]['value'])) + { + array_push($children, trim($vals[$i]['value'])); + } + + while (++$i < count($vals)) + { + switch ($vals[$i]['type']) + { + case 'cdata': + array_push($children, trim($vals[$i]['value'])); + break; + + case 'complete': + $tagname = $vals[$i]['tag']; + $size = isset($children[$tagname]) ? sizeof($children[$tagname]) : 0; + $children[$tagname][$size]['#'] = isset($vals[$i]['value']) ? trim($vals[$i]['value']) : ""; + if (isset($vals[$i]['attributes'])) + { + $children[$tagname][$size]['@'] = $vals[$i]['attributes']; + } + break; + + case 'open': + $tagname = $vals[$i]['tag']; + $size = isset($children[$tagname]) ? sizeof($children[$tagname]) : 0; + if ($vals[$i]['attributes']) + { + $children[$tagname][$size]['@'] = $vals[$i]['attributes']; + $children[$tagname][$size]['#'] = $this->_xml_depth($vals, $i); + } + else + { + $children[$tagname][$size]['#'] = $this->_xml_depth($vals, $i); + } + break; + + case 'close': + return $children; + break; + } + } + + return $children; + } + + + + // TraverseXMLize() + // (c) acebone@f2s.com, a HUGE help! + + function TraverseXMLize($array, $arrName = "array", $level = 0) + { + if ($level == 0) + { + echo "<pre>"; + } + + while (list($key, $val) = @each($array)) + { + if (is_array($val)) + { + $this->TraverseXMLize($val, $arrName . "[" . $key . "]", $level + 1); + } + else + { + echo '$' . $arrName . '[' . $key . '] = "' . $val . "\"\n"; + } + } + + if ($level == 0) + { + echo "</pre>"; + } + } +} + + + +class MakeXML extends Jabber +{ + + function MakeXML() + { + $nodes = array(); + } + + + + function AddPacketDetails($string, $value = NULL) + { + if (preg_match("/\(([0-9]*)\)$/i", $string)) + { + $string .= "/[\"#\"]"; + } + + $temp = @explode("/", $string); + + for ($a = 0; $a < count($temp); $a++) + { + $temp[$a] = preg_replace("/^[@]{1}([a-z0-9_]*)$/i", "[\"@\"][\"\\1\"]", $temp[$a]); + $temp[$a] = preg_replace("/^([a-z0-9_]*)\(([0-9]*)\)$/i", "[\"\\1\"][\\2]", $temp[$a]); + $temp[$a] = preg_replace("/^([a-z0-9_]*)$/i", "[\"\\1\"]", $temp[$a]); + } + + $node = implode("", $temp); + + // Yeahyeahyeah, I know it's ugly... get over it. ;) + echo "\$this->nodes$node = \"" . htmlspecialchars($value) . "\";<br/>"; + eval("\$this->nodes$node = \"" . htmlspecialchars($value) . "\";"); + } + + + + function BuildPacket($array = NULL) + { + + if (!$array) + { + $array = $this->nodes; + } + + if (is_array($array)) + { + array_multisort($array, SORT_ASC, SORT_STRING); + + foreach ($array as $key => $value) + { + if (is_array($value) && $key == "@") + { + foreach ($value as $subkey => $subvalue) + { + $subvalue = htmlspecialchars($subvalue); + $text .= " $subkey='$subvalue'"; + } + + $text .= ">\n"; + + } + elseif ($key == "#") + { + $text .= htmlspecialchars($value); + } + elseif (is_array($value)) + { + for ($a = 0; $a < count($value); $a++) + { + $text .= "<$key"; + + if (!$this->_preg_grep_keys("/^@/", $value[$a])) + { + $text .= ">"; + } + + $text .= $this->BuildPacket($value[$a]); + + $text .= "</$key>\n"; + } + } + else + { + $value = htmlspecialchars($value); + $text .= "<$key>$value</$key>\n"; + } + } + + return $text; + } + } + + + + function _preg_grep_keys($pattern, $array) + { + while (list($key, $val) = each($array)) + { + if (preg_match($pattern, $key)) + { + $newarray[$key] = $val; + } + } + return (is_array($newarray)) ? $newarray : FALSE; + } +} + + + +class CJP_StandardConnector +{ + function OpenSocket($server, $port) + { + if ($this->active_socket = fsockopen($server, $port)) + { + socket_set_blocking($this->active_socket, 0); + socket_set_timeout($this->active_socket, 31536000); + + return TRUE; + } + else + { + return FALSE; + } + } + + + + function CloseSocket() + { + return fclose($this->active_socket); + } + + + + function WriteToSocket($data) + { + return fwrite($this->active_socket, $data); + } + + + + function ReadFromSocket($chunksize) + { + set_magic_quotes_runtime(0); + $buffer = fread($this->active_socket, $chunksize); + set_magic_quotes_runtime(get_magic_quotes_gpc()); + + return $buffer; + } +} + + + +?> diff --git a/includes/funktion_lang.php b/includes/funktion_lang.php new file mode 100755 index 00000000..d5d3e144 --- /dev/null +++ b/includes/funktion_lang.php @@ -0,0 +1,35 @@ +<?PHP + + +function Get_Text ($TextID, $NoError=FALSE) +{ + GLOBAL $con, $error_messages, $DEBUG; + + if( !isset($_SESSION['Sprache'])) + $_SESSION['Sprache'] = "EN"; + if( $_SESSION['Sprache']=="") + $_SESSION['Sprache']="EN"; + if( isset($_GET["SetLanguage"])) + $_SESSION['Sprache']= $_GET["SetLanguage"]; + + $SQL = "SELECT * FROM `Sprache` WHERE TextID=\"$TextID\" AND Sprache ='".$_SESSION['Sprache']."'"; + @$Erg = mysql_query($SQL, $con); + + if( mysql_num_rows( $Erg) == 1) + return (@mysql_result($Erg, 0, "Text")); + elseif( $NoError && !$DEBUG) + return ""; + else + { + array_push($error_messages, "Get_Text, '$TextID' found ". mysql_num_rows( $Erg). "x in Sprache Database Table for Language (".$_SESSION['Sprache'].")\n"); + return "Error Data, '$TextID' found ". mysql_num_rows( $Erg). "x"; + } + +} + +function Print_Text ($TextID, $NoError=FALSE) +{ + echo Get_Text ($TextID, $NoError); +} + +?> diff --git a/includes/funktion_menu.php b/includes/funktion_menu.php new file mode 100755 index 00000000..e728e339 --- /dev/null +++ b/includes/funktion_menu.php @@ -0,0 +1,44 @@ +<?PHP + +function ShowMenu( $MenuName) +{ + global $MenueTableStart, $MenueTableEnd, $_SESSION, $DEBUG, $url, $ENGEL_ROOT; + $Gefunden=FALSE; + + //Überschift + $Text = "<h4 class=\"menu\">". Get_Text("$MenuName/"). "</h4>"; + + //einträge + foreach( $_SESSION['CVS'] as $Key => $Entry ) + if( strpos( $Key, ".php") > 0) + if( (strpos( "00$Key", "0$MenuName") > 0) || + ((strlen($MenuName)==0) && (strpos( "0$Key", "/") == 0) ) ) + { + $TempName = Get_Text($Key, TRUE); + if(( TRUE||$DEBUG) && (strlen($TempName)==0) ) + $TempName = "not found: \"$Key\""; + + if( $Entry == "Y") + { + //zum absichtlkichen ausblenden von einträgen + if( strlen($TempName)>1) + { + //sonderfälle: + if( $Key=="admin/faq.php") + $TempName .= " (". noAnswer(). ")"; + //ausgabe + $Text .= "\t\t\t<li><a href=\"". $url. substr( $ENGEL_ROOT, 1). $Key. "\">$TempName</a></li>\n"; + $Gefunden = TRUE; + } + } + elseif( $DEBUG ) + { + $Gefunden = TRUE; + $Text .= "\t\t\t<li>$TempName ($Key)</li>\n"; + } + } + if( $Gefunden) + echo $MenueTableStart.$Text.$MenueTableEnd; +}//function ShowMenue + +?> diff --git a/includes/funktion_modem.php b/includes/funktion_modem.php new file mode 100755 index 00000000..6cbbb49b --- /dev/null +++ b/includes/funktion_modem.php @@ -0,0 +1,35 @@ +<?PHP +include "./inc/config_modem.php"; + +function DialNumber( $Number ) +{ + global $Dev, $ModemEnable; + + if( $ModemEnable) + { + echo "Dial number: '<u>$Number</u>' was called<br>\n"; + $fp = fopen( $ModemDev, "w"); + sleep(1); + fwrite( $fp, "+++"); + sleep(1); + fwrite( $fp, "ATZ\n"); + sleep(1); + fwrite( $fp, "ATX1\n"); + sleep(1); + fwrite( $fp, "ATD $Number \n"); + sleep(8); + fclose($fp); + sleep(1); + } + else + echo "Modem is Disable, number: '<u>$Number</u>' was not called<br>\n"; +} + + +function SetWackeup( $Number, $TimeH, $TimeM) +{ + global $WackupNumber; + DialNumber( "$WackupNumber$TimeH$TimeM$Number"); +} + +?> diff --git a/includes/funktion_schichtplan.php b/includes/funktion_schichtplan.php new file mode 100755 index 00000000..b8babed9 --- /dev/null +++ b/includes/funktion_schichtplan.php @@ -0,0 +1,379 @@ +<?php + + +/*####################################################### +# gibt die engelschischten aus # +#######################################################*/ +function ausgabe_Feld_Inhalt( $SID, $Man ) +{ +// gibt, nach übergabe der der SchichtID (SID) und der RaumBeschreibung, +// die eingetragenden und und offenden Schichteintäge zurück + global $EngelType, $EngelTypeID, $TID2Name, $con, $DEBUG, $gmdateOffset; + + $Spalten = ""; + + if( !isset($_GET["Icon"])) + $_GET["Icon"]=1; + + /////////////////////////////////////////////////////////////////// + // Schow Admin Page + /////////////////////////////////////////////////////////////////// + if( $_SESSION['CVS'][ "admin/schichtplan.php" ] == "Y" ) + { + $Spalten.= "<a href=\"./../admin/schichtplan.php?action=change&SID=$SID\">edit</a><br>\n\t\t"; + } + + + /////////////////////////////////////////////////////////////////// + // Ausgabe des Schischtnamens + /////////////////////////////////////////////////////////////////// + $SQL = "SELECT `URL` FROM `Shifts` WHERE (`SID` = '$SID');"; + $Erg = mysql_query($SQL, $con); + if( mysql_result($Erg, 0, 0) != "") + $Spalten.="<a href=\"". mysql_result($Erg, 0, 0). "\" target=\"_black\"><u>$Man:</u></a><br>"; + else + $Spalten.="<u>".$Man.":</u><br>"; + + + /////////////////////////////////////////////////////////////////// + // SQL abfrage für die benötigten schichten + /////////////////////////////////////////////////////////////////// + $SQL = "SELECT * FROM `ShiftEntry` WHERE (`SID` = '$SID') ORDER BY `TID`, `UID` DESC ;"; + $Erg = mysql_query($SQL, $con); + + $Anzahl = mysql_num_rows($Erg); + $Feld=0; + $Temp_TID_old=-1; + for( $i = 0; $i < $Anzahl; $i++ ) + { + if( isset($Temp[$Feld]["TID"])) + $Temp_TID_old = $Temp[$Feld]["TID"]; + if( isset($Temp[$Feld]["UID"])) + $Temp_UID_old = $Temp[$Feld]["UID"]; + + $Temp_TID = mysql_result($Erg, $i, "TID"); + + // wenn sich der Type ändert wird zumnästen feld geweckselt + if( $Temp_TID_old != $Temp_TID ) + $Feld++; + + $Temp[$Feld]["TID"] = $Temp_TID; + $Temp[$Feld]["UID"] = mysql_result($Erg, $i, "UID"); + + // sonderfall ersten durchlauf + if( $i == 0 ) + { + $Temp_TID_old = $Temp[$Feld]["TID"]; + $Temp_UID_old = $Temp[$Feld]["UID"]; + } + + // ist es eine zu vergeben schicht? + if( $Temp[$Feld]["UID"] == 0 ) + { + if( isset($Temp[$Feld]["free"])) + $Temp[$Feld]["free"]++; + else + $Temp[$Feld]["free"]=1; + } + else + $Temp[$Feld]["Engel"][] = $Temp[$Feld]["UID"]; + } // FOR + + + /////////////////////////////////////////////////////////////////// + // Aus gabe der Schicht + /////////////////////////////////////////////////////////////////// + if( isset($Temp)) + if( count($Temp) ) + foreach( $Temp as $TempEntry => $TempValue ) + { + if( !isset($TempValue["free"])) + $TempValue["free"] = 0; + + // ausgabe EngelType + $Spalten.= $EngelTypeID[ $TempValue["TID"] ]. " "; + + // ausgabe Eingetragener Engel + if( isset($TempValue["Engel"])) + if( count($TempValue["Engel"]) > 0 ) + { + if( count($TempValue["Engel"]) == 1 ) + $Spalten.= Get_Text("inc_schicht_ist"). ":<br>\n\t\t"; + else + $Spalten.= Get_Text("inc_schicht_sind"). ":<br>\n\t\t"; + + foreach( $TempValue["Engel"] as $TempEngelEntry=> $TempEngelID ) + { + if( $_SESSION['CVS'][ "admin/user.php" ] == "Y" ) + $Spalten.= " <a href=\"./../admin/user.php?enterUID=$TempEngelID&Type=Normal\">"; + + if( $_SESSION['CVS'][ "admin/schichtplan.php" ] == "Y" ) + { + if( UIDgekommen( $TempEngelID ) == "1") + $Spalten.= " <span style=\"color: blue;\">". + UID2Nick( $TempEngelID ). + ($_GET["Icon"]==1? DisplayAvatar( $TempEngelID ): ""). + "</span><br>\n\t\t"; + else + $Spalten.= " <span style=\"color: red;\">". + UID2Nick( $TempEngelID ). + ($_GET["Icon"]==1? DisplayAvatar( $TempEngelID ): ""). + "</span><br>\n\t\t"; + } + else + $Spalten.= " ". UID2Nick( $TempEngelID ). + ($_GET["Icon"]==1? DisplayAvatar( $TempEngelID ): ""). + "<br>\n\t\t"; + if( $_SESSION['CVS'][ "admin/user.php" ] == "Y" ) + $Spalten.= " </a>"; + } + $Spalten = substr( $Spalten, 0, strlen($Spalten)-7 ); + } + + // ausgabe benötigter Engel + //////////////////////////// + //in vergangenheit + $SQLtime = "SELECT `DateE` FROM `Shifts` WHERE (`SID`='$SID' AND `DateE` >= '". + gmdate("Y-m-d H:i:s", time()+ $gmdateOffset). "')"; + $Ergtime = mysql_query($SQLtime, $con); + if( mysql_num_rows( $Ergtime) > 0) + { + //wenn keien rechte definiert sind + if( !isset($_SESSION['CVS'][ $TID2Name[$TempValue["TID"]] ])) + $_SESSION['CVS'][ $TID2Name[$TempValue["TID"]] ] = "Y"; + + if( $_SESSION['CVS'][ $TID2Name[$TempValue["TID"]] ] == "Y") + if( $TempValue["free"] > 0 ) + { + $Spalten.= "<br>\n\t\t <a href=\"./schichtplan_add.php?SID=$SID&TID=". + $TempValue["TID"]."\">"; + $Spalten.= $TempValue["free"]; + if( $TempValue["free"] != 1 ) + $Spalten.= Get_Text("inc_schicht_weitere"). + " ".Get_Text("inc_schicht_Engel"). + Get_Text("inc_schicht_wird"); + else + $Spalten.= Get_Text("inc_schicht_weiterer"). + " ".Get_Text("inc_schicht_Engel"). + Get_Text("inc_schicht_werden"); + $Spalten.= Get_Text("inc_schicht_noch_gesucht"); + $Spalten.= "</a>"; + } + } + else + { + if( isset($TempValue["free"])) + if( $TempValue["free"] > 0 ) + $Spalten.= "<br>\n\t\t <h3><a>Fehlen noch: ". + $TempValue["free"]. "</a></h3>"; + } + $Spalten.= "<br>\n\t\t"; + + } // FOREACH + return $Spalten; +} // function Ausgabe_Feld_Inhalt + + + +/*####################################################### +# gibt die engelschischten Druckergerecht aus # +#######################################################*/ +function Ausgabe_Feld_Inhalt_Druck($RID, $Man ) +{ +// gibt, nach übergabe der der SchichtID (SID) und der RaumBeschreibung, +// die eingetragenden und und offenden Schichteintäge zurück + + +} // function Ausgabe_Feld_Inhalt + + + + +/*####################################################### +# Ausgabe der Raum Spalten # +#######################################################*/ +function CreateRoomShifts( $raum ) +{ + global $Spalten, $ausdatum, $con, $DEBUG, $GlobalZeileProStunde, $error_messages; + + ///////////////////////////////////////////////////////////// + // beginnt die erste schicht vor dem heutigen tag und geht darüber hinaus + ///////////////////////////////////////////////////////////// + $SQLSonder = "SELECT `SID`, `DateS`, `DateE` , `Len`, `Man` FROM `Shifts` ". + "WHERE ((`RID` = '$raum') AND (`DateE` > '$ausdatum 23:59:59') AND ". + "(`DateS` < '$ausdatum 00:00:00') ) ORDER BY `DateS`;"; + $ErgSonder = mysql_query($SQLSonder, $con); + if( (mysql_num_rows( $ErgSonder) > 1) ) + { + if( $_SESSION['CVS'][ "admin/schichtplan.php" ] == "Y" ) + { + echo "<h1>". Get_Text("pub_schichtplan_colision"). "</h1> "; + echo "<a href=\"./../admin/schichtplan.php?action=change&SID=". mysql_result($ErgSonder, 0, "SID"). "\">". + mysql_result($ErgSonder, 0, "DateS"). + " '". mysql_result($ErgSonder, 0, "Man")."' (RID $raum) (00-24)". + "</a><br>\n\t\t"; + } + } + elseif( (mysql_num_rows( $ErgSonder) == 1) ) + { + $Spalten[0].= "\t\t<td valign=\"top\" rowspan=\"". (24 * $GlobalZeileProStunde). "\">\n". + "\t\t\t<h3>↑↑↑</h3>". + Ausgabe_Feld_Inhalt( mysql_result($ErgSonder, 0, "SID"), + mysql_result($ErgSonder, 0, "Man") ). + "\t\t\t<h3>↓↓↓</h3>". + "\n\t\t</td>\n"; + return; + } + + $ZeitZeiger = 0; + + ///////////////////////////////////////////////////////////// + // beginnt die erste schicht vor dem heutigen tag? + ///////////////////////////////////////////////////////////// + $SQLSonder = "SELECT `SID`, `DateS`, `DateE` , `Len`, `Man` FROM `Shifts` ". + "WHERE ((`RID` = '$raum') AND (`DateE` > '$ausdatum 00:00:00') AND ". + "(`DateS` < '$ausdatum 00:00:00') ) ORDER BY `DateS`;"; + $ErgSonder = mysql_query($SQLSonder, $con); + if( (mysql_num_rows( $ErgSonder) > 1) ) + { + if( $_SESSION['CVS'][ "admin/schichtplan.php" ] == "Y" ) + { + echo "<h1>". Get_Text("pub_schichtplan_colision"). "</h1> "; + echo "<a href=\"./../admin/schichtplan.php?action=change&SID=". mysql_result($ErgSonder, 0, "SID"). "\">". + mysql_result($ErgSonder, 0, "DateS"). + " '". mysql_result($ErgSonder, 0, "Man")."' (RID $raum) (00-xx)". + "</a><br>\n\t\t"; + } + } + elseif( (mysql_num_rows( $ErgSonder) == 1) ) + { + $ZeitZeiger = substr( mysql_result($ErgSonder, 0, "DateE"), 11, 2 )+ + (substr( mysql_result($ErgSonder, 0, "DateE"), 14, 2 ) / 60); + $Spalten[0].= "\t\t<td valign=\"top\" rowspan=\"". ($ZeitZeiger * $GlobalZeileProStunde). "\">\n". + "\t\t\t<h3>↑↑↑</h3>". + Ausgabe_Feld_Inhalt( mysql_result($ErgSonder, 0, "SID"), + mysql_result($ErgSonder, 0, "Man") ). + "\n\t\t</td>\n"; + } + + ///////////////////////////////////////////////////////////// + // gibt die schichten für den tag aus + ///////////////////////////////////////////////////////////// + $SQL = "SELECT `SID`, `DateS`, `Len`, `Man` FROM `Shifts` ". + "WHERE ((`RID` = '$raum') and ". + "(`DateS` >= '$ausdatum $ZeitZeiger:00:00') and ". + "(`DateS` like '$ausdatum%')) ORDER BY `DateS`;"; + $Erg = mysql_query($SQL, $con); + for( $i = 0; $i < mysql_num_rows($Erg); ++$i ) + { + $ZeitPos = substr( mysql_result($Erg, $i, "DateS"), 11, 2 )+ + (substr( mysql_result($Erg, $i, "DateS"), 14, 2 ) / 60); + $len = mysql_result($Erg, $i, "Len"); + + if( $len <= 0) + array_push( $error_messages, "Error in shift denition SID=". mysql_result($Erg, $i, "SID"). " Len=$len"); + + if( $ZeitZeiger < $ZeitPos ) + { + $Spalten[$ZeitZeiger * $GlobalZeileProStunde].= + "\t\t<td valign=\"top\" rowspan=\"". ( ($ZeitPos - $ZeitZeiger ) * $GlobalZeileProStunde ). "\"> </td>\n"; + + $ZeitZeiger += $ZeitPos - $ZeitZeiger; + } + if($ZeitZeiger == $ZeitPos ) + { + //sonderfall wenn die schicht über dei 24 stunden hinaus geht + // (eintrag abkürzen, pfeiel ausgeben) + $Spalten[$ZeitZeiger * $GlobalZeileProStunde].= + "\t\t<td valign=\"top\" rowspan=\"". + ( ( ($len+$ZeitZeiger)? $len : 24-$len+$ZeitZeiger) * $GlobalZeileProStunde). + "\">\n". + "\t\t\t". + Ausgabe_Feld_Inhalt( mysql_result($Erg, $i, "SID"), + mysql_result($Erg, $i, "Man") ). + (( ($ZeitZeiger+$len) > 24)? "\t\t\t<h3>↓↓↓</h3>" : ""). + "\n\t\t</td>\n"; + $ZeitZeiger += $len; + } + else + { + echo Get_Text("pub_schichtplan_colision"). " ". + mysql_result($Erg, $i, "DateS"). + " '". mysql_result($Erg, $i, "Man"). "' ". + " (". mysql_result($Erg, $i, "SID"). " R$raum) (xx-xx)<br><br>"; + } + } + if( $ZeitZeiger < 24 ) + $Spalten[($ZeitZeiger * $GlobalZeileProStunde)].= + "\t\t<td valign=\"top\" rowspan=\"". + ((24 - $ZeitZeiger) * $GlobalZeileProStunde ). + "\"> </td>\n"; +} // function CreateRoomShifts + + +/*####################################################### +# Ausgabe der freien schichten # +#######################################################*/ +function showEmptyShifts( ) +{ + global $con, $DEBUG, $RoomID, $gmdateOffset; + + echo "<table border=\"1\">\n"; + echo "<tr>\n"; + echo "\t<th>". Get_Text("inc_schicht_date"). "</th>\n"; + echo "\t<th>". Get_Text("inc_schicht_time"). "</th>\n"; + echo "\t<th>". Get_Text("inc_schicht_room"). "</th>\n"; + echo "\t<th>". Get_Text("inc_schicht_commend"). "</th>\n"; + echo "</tr>\n"; + + $sql = "SELECT `SID`, `DateS`, `Man`, `RID` FROM `Shifts` ". + "WHERE (`Shifts`.`DateS`>='". gmdate("Y-m-d H:i:s", time()+$gmdateOffset). "') ". + "ORDER BY `DateS`, `RID`;"; + $Erg = mysql_query($sql, $con); + + $angezeigt = 0; + for ($i=0; ($i<mysql_num_rows($Erg)) && ($angezeigt< 15); $i++) + if( isset($RoomID[mysql_result( $Erg, $i, "RID")])) + if( $RoomID[mysql_result( $Erg, $i, "RID")]!="" ) + { + $Sql2 = "SELECT `UID` FROM `ShiftEntry` ". + "WHERE `SID`=". mysql_result( $Erg, $i, "SID"). " AND ". + "`UID`='0';"; + $Erg2 = mysql_query($Sql2, $con); + + if( mysql_num_rows($Erg2)>0) + { + $angezeigt++; + echo "<tr>\n"; + echo "\t<td>". substr(mysql_result( $Erg, $i, "DateS"), 0, 10). "</td>\n"; + echo "\t<td>". substr(mysql_result( $Erg, $i, "DateS"), 11). "</td>\n"; + echo "\t<td>". $RoomID[mysql_result( $Erg, $i, "RID")]. "</td>\n"; + echo "\t<td>". + ausgabe_Feld_Inhalt( mysql_result( $Erg, $i, "SID"), mysql_result( $Erg, $i, "Man")). + "</td>\n"; + echo "</tr>\n"; + } + } + + echo "</table>\n"; + +} //function showEmptyShifts + + +/*####################################################### +# Gibt die anzahl der Schichten im Raum zurück # +#######################################################*/ +function SummRoomShifts( $raum ) +{ + global $ausdatum, $con, $DEBUG, $GlobalZeileProStunde; + + $SQLSonder = "SELECT `SID`, `DateS`, `Len`, `Man` FROM `Shifts` ". + "WHERE ((`RID` = '$raum') AND (`DateE` >= '$ausdatum 00:00:00') AND ". + "(`DateS` <= '$ausdatum 23:59:59') ) ORDER BY `DateS`;"; + + $ErgSonder = mysql_query($SQLSonder, $con); + + return mysql_num_rows($ErgSonder); +} + +?> diff --git a/includes/funktion_schichtplan_Tage.php b/includes/funktion_schichtplan_Tage.php new file mode 100755 index 00000000..5ac92e7e --- /dev/null +++ b/includes/funktion_schichtplan_Tage.php @@ -0,0 +1,87 @@ +<?PHP + +if( !function_exists("DatumUm1TagErhoehen")) +{ + function DatumUm1TagErhoehen( $Datum) + { + $Jahr = substr( $Datum, 0, 4); + $Monat = substr( $Datum, 5, 2); + $Tag = substr( $Datum, 8, 2); + + $Tag++; + + switch( $Monat) + { + case 1: $Mmax=31; break; + case 2: $Mmax=28; break; + case 3: $Mmax=31; break; + case 4: $Mmax=30; break; + case 5: $Mmax=31; break; + case 6: $Mmax=30; break; + case 7: $Mmax=31; break; + case 8: $Mmax=31; break; + case 9: $Mmax=30; break; + case 10: $Mmax=31; break; + case 11: $Mmax=30; break; + case 12: $Mmax=31; break; + } + + if( $Tag > $Mmax) + { + $Tag = 1; + $Monat++; + } + + if( $Monat > 12 ) + { + $Monat = 1; + $Jahr++; + } + + $Tag = strlen( $Tag ) == 1 ? "0".$Tag : $Tag; + $Monat = strlen( $Monat ) == 1 ? "0".$Monat : $Monat; + + return ("$Jahr-$Monat-$Tag"); + } //function DatumUm1Tagerhoehen( +} + +//suchen den ersten eintrags +$SQL = "SELECT `DateS` FROM `Shifts` ORDER BY `DateS` LIMIT 1"; +$Erg = mysql_query($SQL, $con); + +$Pos=0; + +if( mysql_num_rows($Erg)>0) +{ + do + { + //Startdatum einlesen und link ausgeben + $DateS = substr(mysql_result($Erg, 0 , 0), 0,10); + $VeranstaltungsTage[$Pos++] = $DateS; + + //auslesen den endes und eventuelle weitere tage ausgeben + $SQL2 = "SELECT MAX(`DateE`) FROM `Shifts` ". + "WHERE ( (`DateS` like '$DateS%') AND NOT (`DateE` like '%00:00:00'))"; + $Erg2 = mysql_query($SQL2, $con); + $DateE = substr(mysql_result($Erg2, 0 , 0), 0,10); + + if( strlen($DateE) == 0) + $DateE = $DateS; + else + while( $DateS != $DateE) + { + $DateS = DatumUm1TagErhoehen( $DateS); + $VeranstaltungsTage[$Pos++] = $DateS; + } + + //suchen den nästen eintrag + $SQL = "SELECT `DateS` FROM `Shifts` ". + "WHERE (`DateS` > '$DateE 23:59:59' ) ". + "ORDER BY `DateS` ". + "LIMIT 1"; + $Erg = mysql_query($SQL, $con); + } while( mysql_fetch_row($Erg) > 0); +} +$VeranstaltungsTageMax = $Pos-1; + +?> diff --git a/includes/funktion_schichtplan_aray.php b/includes/funktion_schichtplan_aray.php new file mode 100755 index 00000000..02ea8dfd --- /dev/null +++ b/includes/funktion_schichtplan_aray.php @@ -0,0 +1,38 @@ +<?php + +/*####################################################### +# Aufbau von Standart Feldern # +#######################################################*/ + +// erstellt ein Array der Reume + $sql = "SELECT `RID`, `Name` FROM `Room` ". + "WHERE `Show`='Y'". + "ORDER BY `Number`, `Name`;"; + + $Erg = mysql_query($sql, $con); + $rowcount = mysql_num_rows($Erg); + + for ($i=0; $i<$rowcount; $i++) + { + $Room[$i]["RID"] = mysql_result($Erg, $i, "RID"); + $Room[$i]["Name"] = mysql_result($Erg, $i, "Name"); + + $RoomID[ mysql_result($Erg, $i, "RID") ] = mysql_result($Erg, $i, "Name"); + } + +// erstellt ein Aray der Engeltypen + $sql = "SELECT `TID`, `Name` FROM `EngelType` ORDER BY `Name`"; + $Erg = mysql_query($sql, $con); + $rowcount = mysql_num_rows($Erg); + for ($i=0; $i<$rowcount; $i++) + { + $EngelType[$i]["TID"] = mysql_result($Erg, $i, "TID"); + $EngelType[$i]["Name"] = mysql_result($Erg, $i, "Name").Get_Text("inc_schicht_engel"); + + $EngelTypeID[ mysql_result($Erg, $i, "TID") ] = + mysql_result($Erg, $i, "Name").Get_Text("inc_schicht_engel"); + $TID2Name[ mysql_result($Erg, $i, "TID") ] = mysql_result($Erg, $i, "Name"); + } + +include ("./inc/funktion_schichtplan_Tage.php"); +?> diff --git a/includes/funktion_schichtplan_beamer.php b/includes/funktion_schichtplan_beamer.php new file mode 100755 index 00000000..280b2cb9 --- /dev/null +++ b/includes/funktion_schichtplan_beamer.php @@ -0,0 +1,182 @@ +<?php + +/*####################################################### +# Aufbau von Standart Feldern # +#######################################################*/ + +// erstellt ein Array der Reume + $sql = "SELECT `RID`, `Name` FROM `Room` ". + "WHERE `Show`='Y'". + "ORDER BY `Number`, `Name`;"; + + $Erg = mysql_query($sql, $con); + $rowcount = mysql_num_rows($Erg); + + for ($i=0; $i<$rowcount; $i++) + { + $Room[$i]["RID"] = mysql_result($Erg, $i, "RID"); + $Room[$i]["Name"] = mysql_result($Erg, $i, "Name"); + + $RoomID[ mysql_result($Erg, $i, "RID") ] = mysql_result($Erg, $i, "Name"); + } + +// erstellt ein Aray der Engeltypen + $sql = "SELECT `TID`, `Name` FROM `EngelType` ORDER BY `Name`"; + $Erg = mysql_query($sql, $con); + $rowcount = mysql_num_rows($Erg); + for ($i=0; $i<$rowcount; $i++) + { + $EngelType[$i]["TID"] = mysql_result($Erg, $i, "TID"); + $EngelType[$i]["Name"] = mysql_result($Erg, $i, "Name").Get_Text("inc_schicht_engel"); + + $EngelTypeID[ mysql_result($Erg, $i, "TID") ] = + mysql_result($Erg, $i, "Name").Get_Text("inc_schicht_engel"); + } + + +/*####################################################### +# gibt die engelschischten aus # +#######################################################*/ +function ausgabe_Feld_Inhalt( $SID, $Man ) +{ +// gibt, nach übergabe der der SchichtID (SID) und der RaumBeschreibung, +// die eingetragenden und und offenden Schichteintäge zurück + global $EngelType, $EngelTypeID, $con; + //form Config + global $DEBUG; + + $Out.= "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" frame=\"void\">\n"; + + $Out.= "\t\t\t<colgroup span=\"2\" align=\"left\" valign=\"center\">\n". + "\t\t\t\t<col width=\"45%\">\n". + "\t\t\t\t<col width=\"*\">\n". + "\t\t\t\t</colgroup>\n"; + + /////////////////////////////////////////////////////////////////// + // SQL abfrage für die benötigten schichten + /////////////////////////////////////////////////////////////////// + $SQL = "SELECT * FROM `ShiftEntry` WHERE (`SID` = '$SID') ORDER BY `TID`, `UID` DESC ;"; + $Erg = mysql_query($SQL, $con); + + $Anzahl = mysql_num_rows($Erg); + $Feld=0; + for( $i = 0; $i < $Anzahl; $i++ ) + { + $Temp_TID_old = $Temp[$Feld]["TID"]; + $Temp_UID_old = $Temp[$Feld]["UID"]; + + $Temp_TID = mysql_result($Erg, $i, "TID"); + + // wenn sich der Type ändert wird zumnästen feld geweckselt + if( $Temp_TID_old != $Temp_TID ) + $Feld++; + + $Temp[$Feld]["TID"] = $Temp_TID; + $Temp[$Feld]["UID"] = mysql_result($Erg, $i, "UID"); + + // sonderfall ersten durchlauf + if( $i == 0 ) + { + $Temp_TID_old = $Temp[$Feld]["TID"]; + $Temp_UID_old = $Temp[$Feld]["UID"]; + } + + // ist es eine zu vergeben schicht? + if( $Temp[$Feld]["UID"] == 0 ) + $Temp[$Feld]["free"]++; + else + $Temp[$Feld]["Engel"][] = $Temp[$Feld]["UID"]; + } // FOR + + + /////////////////////////////////////////////////////////////////// + // Aus gabe der Schicht + /////////////////////////////////////////////////////////////////// + if( count($Temp) ) + foreach( $Temp as $TempEntry => $TempValue ) + { + $Out.= "\t\t\t<tr>\n"; + + // ausgabe EngelType + $Out.= "\t\t\t\t<td>". $EngelTypeID[ $TempValue["TID"] ]; + + // ausgabe Eingetragener Engel + if( count($TempValue["Engel"]) > 0 ) + { + if( count($TempValue["Engel"]) == 1 ) + $Out.= " ". trim(Get_Text("inc_schicht_ist")). ":"; + else + $Out.= " ". trim(Get_Text("inc_schicht_sind")). ":"; + $Out.= "</td>\n"; + $Out.= "\t\t\t\t<td>"; + + foreach( $TempValue["Engel"] as $TempEngelEntry=> $TempEngelID ) + $Out.= UID2Nick( $TempEngelID ). ", "; +// $Out.= UID2Nick( $TempEngelID ). DisplayAvatar( $TempEngelID ). ", "; + $Out = substr( $Out, 0, strlen($Out)-2 ); + } + else + { + $Out.= ":</td>\n"; + $Out.= "\t\t\t\t<td>\n"; + } + + + // ausgabe benötigter Engel + //////////////////////////// + //mit sonder status + $SQLerlaubnis = "SELECT Name FROM `EngelType` WHERE TID = '". $TempValue["TID"]. "'"; + $Ergerlaubnis = mysql_query( $SQLerlaubnis, $con); + if( mysql_num_rows( $Ergerlaubnis)) + if( $_SESSION['CVS'][mysql_result( $Ergerlaubnis, 0, "Name")] == "Y" || + $_SESSION['CVS'][mysql_result( $Ergerlaubnis, 0, "Name")] == "") + { + if ( $TempValue["free"] > 0) + $Out.= ", ". $TempValue["free"]. "x free "; + } + $Out.= "</td>\n"; + $Out.= "\t\t\t</tr>\n"; + + } // FOREACH + + $Out.= "\t\t\t</table>\n\t"; + + return $Out; +} // function Ausgabe_Feld_Inhalt + + + +/*####################################################### +# gibt die engelschischten für einen Ruam aus # +#######################################################*/ +function ausgabe_Zeile( $RID, $Time, &$AnzahlEintraege ) +{ + global $con; + + $SQL = "SELECT `SID`, `Len`, `Man` FROM `Shifts` ". + "WHERE ( (`RID` = '$RID') AND ". + "((`DateE` like '". gmdate("Y-m-d H", $Time+3600). "%') OR ". + " (`DateS` like '". gmdate("Y-m-d H", $Time). "%')) ) ORDER BY `DateS`;"; + + $ErgRoom = mysql_query($SQL, $con); + $Out= "\t<td>"; + if( mysql_num_rows( $ErgRoom)>0 ) + for( $i=1; $i<=mysql_num_rows( $ErgRoom); $i++ ) + { + $AnzahlEintraege++; + $Out.= ausgabe_Feld_Inhalt( mysql_result( $ErgRoom, $i-1, "SID"), + mysql_result( $ErgRoom, $i-1, "Man")); + if( (mysql_num_rows( $ErgRoom) > 1) && !($i==mysql_num_rows( $ErgRoom)) ) + $Out.= "<br>"; +// $Out.= "<hr width=\"95%\" align=\"center\">\n\t\t\t\t"; + + } + else + $Out.= " "; + + $Out.= "</td>\n"; + + return $Out; +} + +?> diff --git a/includes/funktion_user.php b/includes/funktion_user.php new file mode 100755 index 00000000..c99e54fe --- /dev/null +++ b/includes/funktion_user.php @@ -0,0 +1,119 @@ +<?php + +function UID2Nick($UID) +{ + global $con; + + $SQL = "SELECT Nick FROM `User` WHERE UID='$UID'"; + $Erg = mysql_query($SQL, $con); + + //echo $UID."#"; + if( mysql_num_rows($Erg)) + return mysql_result($Erg, 0); + else + { + if( $UID == -1) + return "logout User"; + else + return "UserID $UID not found"; + } +} + + +function TID2Type($TID) +{ + global $con; + + $SQL = "SELECT Name FROM `EngelType` WHERE TID='$TID'"; + $Erg = mysql_query($SQL, $con); + + return mysql_result($Erg, 0); +} + + +function ReplaceSmilies($eckig) { + + $neueckig = $eckig; + $neueckig = str_replace(";o))","<img src=\"./inc/smiles/icon_redface.gif\">",$neueckig); + $neueckig = str_replace(":-))","<img src=\"./inc/smiles/icon_redface.gif\">",$neueckig); + $neueckig = str_replace(";o)","<img src=\"./inc/smiles/icon_wind.gif\">",$neueckig); + $neueckig = str_replace(":)","<img src=\"./inc/smiles/icon_smile.gif\">",$neueckig); + $neueckig = str_replace(":-)","<img src=\"./inc/smiles/icon_smile.gif\">",$neueckig); + $neueckig = str_replace(":(","<img src=\"./inc/smiles/icon_sad.gif\">",$neueckig); + $neueckig = str_replace(":-(","<img src=\"./inc/smiles/icon_sad.gif\">",$neueckig); + $neueckig = str_replace(":o(","<img src=\"./inc/smiles/icon_sad.gif\">",$neueckig); + $neueckig = str_replace(":o)","<img src=\"./inc/smiles/icon_lol.gif\">",$neueckig); + $neueckig = str_replace(";o(","<img src=\"./inc/smiles/icon_cry.gif\">",$neueckig); + $neueckig = str_replace(";(","<img src=\"./inc/smiles/icon_cry.gif\">",$neueckig); + $neueckig = str_replace(";-(","<img src=\"./inc/smiles/icon_cry.gif\">",$neueckig); + $neueckig = str_replace("8)","<img src=\"./inc/smiles/icon_rolleyes.gif\">",$neueckig); + $neueckig = str_replace("8o)","<img src=\"./inc/smiles/icon_rolleyes.gif\">",$neueckig); + $neueckig = str_replace(":P","<img src=\"./inc/smiles/icon_evil.gif\">",$neueckig); + $neueckig = str_replace(":-P","<img src=\"./inc/smiles/icon_evil.gif\">",$neueckig); + $neueckig = str_replace(":oP","<img src=\"./inc/smiles/icon_evil.gif\">",$neueckig); + $neueckig = str_replace(";P","<img src=\"./inc/smiles/icon_mad.gif\">",$neueckig); + $neueckig = str_replace(";oP","<img src=\"./inc/smiles/icon_mad.gif\">",$neueckig); + $neueckig = str_replace("?)","<img src=\"./inc/smiles/icon_question.gif\">",$neueckig); + return $neueckig; +} + + +function GetPicturShow($UID) +{ + global $con; + + $SQL= "SELECT `show` FROM `UserPicture` WHERE `UID`='$UID'"; + $res = mysql_query( $SQL, $con); + if( mysql_num_rows($res) == 1) + return mysql_result( $res, 0, 0); + else + return ""; +} + + +/* Parameter: + <UserID> + [<Höhe des Bildes (wenn die höhe kleiner 1 ist wird die höhe nicht begrenzt)>] */ +function displayPictur($UID, $height="30") +{ + if( $height > 0) + return( "<img src=\"./inc/ShowUserPicture.php?UID=$UID\" height=\"$height\" alt=\"picture of USER$UID\" class=\"photo\">"); + else + return( "<img src=\"./inc/ShowUserPicture.php?UID=$UID\" alt=\"picture of USER$UID\">"); +} + + +/* Parameter: + <UserID> + [<Höhe des Bildes (wenn die höhe kleiner 1 ist wird die höhe nicht begrenzt)>] */ +function displayavatar( $UID, $height="30") +{ + global $con; + + if( GetPicturShow($UID) == 'Y') + return " ". displayPictur( $UID, $height); + + // show avator + $asql = "select * from User where UID = $UID"; + $aerg = mysql_query ($asql, $con); + if( mysql_num_rows($aerg) ) + if( mysql_result($aerg, 0, "Avatar") > 0) + return (" <img src=\"./inc/avatar/avatar". mysql_result($aerg, 0, "Avatar"). ".gif\">"); + +} + +function UIDgekommen($UID) +{ + global $con; + + $SQL = "SELECT `Gekommen` FROM `User` WHERE UID='$UID'"; + $Erg = mysql_query($SQL, $con); + + //echo $UID."#"; + if( mysql_num_rows($Erg)) + return mysql_result($Erg, 0); + else + return "0"; +} + +?> diff --git a/includes/funktion_xml.php b/includes/funktion_xml.php new file mode 100755 index 00000000..12dbc254 --- /dev/null +++ b/includes/funktion_xml.php @@ -0,0 +1,160 @@ +<?PHP + + +class element +{ + var $name = ''; + var $attributes = array(); + var $data = ''; + var $depth = 0; + var $sub = array(); +} + +$XMLDEBUG = 0; +$depth = 0; +$XMLmain = new element; +$XMLpos = array( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); +//$XMLpos = array( 0, 0, 0, 0, 0, 0); + +function convertValues( $Data) +{ + global $XMLDEBUG; + if( $XMLDEBUG) + { + $Data = htmlspecialchars($Data); + $Data = mysql_escape_string($Data); + $Data = htmlentities($Data); + } + $Data = utf8_decode($Data); + return $Data; +} + + +function dataXMLmain( $Data, &$Objekt, $Tiefe ) +{ + global $XMLmain, $XMLpos, $depth, $XMLDEBUG; + + if( $XMLDEBUG) + echo "?$Tiefe$depth"; + if( ($depth-1)==$Tiefe) + { +// $Objekt->sub[ $XMLpos[$Tiefe] ]->data .= convertValues($Data); + $Objekt->sub[ $XMLpos[$Tiefe] ]->data .= htmlentities( convertValues($Data), ENT_QUOTES); + + if( $XMLDEBUG) + echo "???". $Objekt->sub[ $XMLpos[$Tiefe] ]->name. "|$Data|$Tiefe???<br>"; + } + else + dataXMLmain( $Data, $Objekt->sub[ $XMLpos[$Tiefe] ], $Tiefe+1); +} + +function startXMLmain( $Data, &$Objekt, $Tiefe ) +{ + global $XMLpos, $depth, $XMLDEBUG; + + if( $XMLDEBUG) + if($Tiefe==1) + { print_r(array_values ($XMLpos)); echo "--".$Data->name; + echo " #$Tiefe/$depth#"; + } + + if( $depth==$Tiefe) + { + $Objekt->sub[ $XMLpos[$Tiefe] ] = $Data; + if( $XMLDEBUG) + echo "|". $XMLpos[$Tiefe]."|". $Objekt->sub[ $XMLpos[$Tiefe] ]->name. " ". $Data->name." save|". "#-#<br>"; + } + else + startXMLmain( $Data, $Objekt->sub[ $XMLpos[$Tiefe] ], $Tiefe+1); +} + +function start_element_handler($parser, $name, $attribs) +{ + global $depth, $XMLmain, $XMLpos; + + $Data = new element; + $Data->name = $name; + while(list($key, $value) = each($attribs)) + $Data->attributes[$key] = convertValues($value); + $Data->depth = $depth; + $XMLpos[$depth]++; + + if( $depth==0) + $XMLmain= $Data; + else + startXMLmain( $Data, $XMLmain, 1); + + $depth++; +} + +function end_element_handler($parser, $name) +{ + global $depth, $XMLpos; + $XMLpos[$depth]=0; + $depth--; +} + +function character_data_handler($parser, $data) +{ + global $XMLmain; + if( strlen(trim($data)) ) + dataXMLmain( $data, $XMLmain, 1); +} + +/*#######################################################################################*/ +function readXMLfile( $file ) +{ + global $XMLDEBUG; + + //$xml_parser = xml_parser_create_ns(); + $xml_parser = xml_parser_create("UTF-8"); + xml_set_element_handler($xml_parser, "start_element_handler", "end_element_handler"); + xml_set_character_data_handler($xml_parser, "character_data_handler"); + + if (file_exists($file)) + { + if (!($fp = fopen($file, "r"))) + { + echo(" <h1>could not open XML file \"$file\"</h1>"); + return -1; + } + } + else + { + echo(" <h1>XML file \"$file\" not exist</h1>"); + return -1; + } + + if( $XMLDEBUG) echo "<pre>"; + while ($data = fread($fp, 4096)) + { + if (!xml_parse($xml_parser, $data, feof($fp))) + { + die(sprintf("XML error: %s at line %d", + xml_error_string(xml_get_error_code($xml_parser)), + xml_get_current_line_number($xml_parser))); + } + } + if( $XMLDEBUG) echo "</pre>"; + xml_parser_free($xml_parser); + return 0; +} + +/*#######################################################################################*/ +function getXMLsubPease( $Sourse, $Name ) +{ + while(list($key, $value) = each($Sourse->sub)) + if( $value->name == $Name) + return $value; + + echo "<h1>Fehler: getXMLsubPease( $Sourse, $Name ) not found</h1>"; +// die; +} + +/*#######################################################################################*/ +function getXMLsubData( $Sourse, $Name ) +{ + $XML = getXMLsubPease( $Sourse, $Name); + return $XML->data; +} +?> diff --git a/includes/funktion_xml_room.php b/includes/funktion_xml_room.php new file mode 100755 index 00000000..a8f626d1 --- /dev/null +++ b/includes/funktion_xml_room.php @@ -0,0 +1,69 @@ +<?PHP
+
+
+/*##############################################################################################
+ R o o m
+ ##############################################################################################*/
+echo "\n\n<br>\n<h1>Rooms:</h1>\n";
+
+function saveRoomData()
+{
+ global $con;
+ if( isset($_GET["NameXML"]))
+ {
+ $SQL= "INSERT INTO `Room` ( `Name`, `FromPentabarf` ) ".
+ "VALUES ('". mysql_escape_string($_GET["NameXML"]). "', 'Y');";
+ $Erg = mysql_query($SQL, $con);
+ if( $Erg )
+ echo "Aenderung, an Raum ". $_GET["NameXML"]. ", war erfogreich<br>";
+ else
+ echo "Aenderung, an Raum ". $_GET["NameXML"]. ", war <u>nicht</u> erfogreich.(".
+ mysql_error($con). ")<br>[$SQL]<br>";
+ }
+ else
+ echo "Fehler in den Parametern!<br>";
+} /*function saveRoomData*/
+
+if( isset($_GET["RoomUpdate"]))
+ saveRoomData();
+
+//INIT Status counter
+$DS_KO = 0;
+
+//Ausgabe
+echo "<table border=\"0\">\n";
+echo "<tr><th>Name</th><th>state</th></tr>\n";
+if( $EnableSchudle)
+foreach($XMLmain->sub as $EventKey => $Event)
+{
+ if( $Event->name == "VEVENT")
+ {
+ $NameXML = getXMLsubData( $Event, "LOCATION");
+ if( !isset( $RoomName[$NameXML]))
+ {
+ $RoomName[$NameXML] = "";
+
+ if( isset($_GET["UpdateALL"]))
+ {
+ $_GET["NameXML"] = $NameXML;
+ saveRoomData();
+ CreateRoomArrays();
+ }
+ else
+ {
+ echo "<form action=\"dbUpdateFromXLS.php\">\n";
+ echo "\t<tr>\n";
+ echo "\t<td><input name=\"NameXML\" type=\"text\" value=\"$NameXML\" readonly></td>\n";
+ echo "\t<td><input type=\"submit\" name=\"RoomUpdate\" value=\"update\"></td>\n";
+ $DS_KO++;
+ echo "\t</tr>\n";
+ echo "</form>\n";
+ echo "<br>";
+ }
+ }
+ }
+}
+echo "<tr><td colspan=\"6\">status: $DS_KO nicht vorhanden.</td></tr>\n";
+echo "</table>\n";
+
+?>
diff --git a/includes/funktion_xml_schudle.php b/includes/funktion_xml_schudle.php new file mode 100755 index 00000000..7e40f260 --- /dev/null +++ b/includes/funktion_xml_schudle.php @@ -0,0 +1,246 @@ +<?PHP + +/*############################################################################################## + S c h e d u l e + ##############################################################################################*/ +echo "\n\n<h1>Schudle:</h1>\n"; + + +function SaveSchedule() +{ + global $RoomID, $RoomName; + global $con; + + if( isset($_GET["PSIDXML"]) && + isset($_GET["DateXML"]) && + isset($_GET["RIDXML"]) && + isset($_GET["LenXML"]) && + isset($_GET["ManXML"]) && + isset($_GET["URLXML"]) ) + { + //erzeuge von `DateE` + $TimeStart = substr( $_GET["DateXML"], 11, 2) + (substr($_GET["DateXML"], 14, 2)/60); + $TimeEnd = ($_GET["LenXML"] + $TimeStart) * 60; + $TimeM = $TimeEnd % 60; + $TimeH = ($TimeEnd - $TimeM)/60; + if( $TimeH>=24 ) + { + $TimeH -= 24; + $DateEnd = substr($_GET["DateXML"], 0, 8). + (substr($_GET["DateXML"], 8, 2)+1). " "; + } + else + $DateEnd = substr($_GET["DateXML"], 0, 11); + $DateEnd .= "$TimeH:$TimeM:00"; + + //Namen ermitteln + $_GET["RIDXML"] = $RoomName[$_GET["RIDXML"]]; + + //Update OR insert ? + $SQL1 = "Select `SID` FROM `Shifts` WHERE `PSID`='". $_GET["PSIDXML"]. "';"; + $Erg1 = mysql_query($SQL1, $con); + + if( mysql_num_rows($Erg1)==0) + $SQL= "INSERT INTO `Shifts` (`PSID`, `DateS`, `DateE`, `Len`, `RID`, `Man`, `URL`) ". + "VALUES ('". $_GET["PSIDXML"]. "', ". + "'". $_GET["DateXML"]. "', ". + "'". $DateEnd. "', ". + "'". $_GET["LenXML"]. "', ". + "'". $_GET["RIDXML"]. "', ". + "'". mysql_escape_string($_GET["ManXML"]). "', ". + "'". $_GET["URLXML"]. "'". + ");"; + else + $SQL= "UPDATE `Shifts` SET ". + "`DateS` = '". $_GET["DateXML"]. "', ". + "`DateE` = '". $DateEnd. "', ". + "`Len` = '". $_GET["LenXML"]. "', ". + "`RID` = '". $_GET["RIDXML"]. "', ". + "`Man` = '". mysql_escape_string($_GET["ManXML"]). "', ". + "`URL`= '". $_GET["URLXML"]. "' ". + "WHERE `PSID` = '". $_GET["PSIDXML"]. "' LIMIT 1;"; + $Erg = mysql_query($SQL, $con); + if( $Erg ) + { + echo "Aenderung, am Schedule '". $_GET["PSIDXML"]. "', war erfogreich<br>\n"; + if( mysql_num_rows($Erg1)==0) + { + echo "-->Create Shifts:<br>\n"; + + //SID auslesen + $SQL1 = "Select `SID` FROM `Shifts` WHERE `PSID`='". $_GET["PSIDXML"]. "';"; + $Erg1 = mysql_query($SQL1, $con); + + // erstellt ein Array der Reume + $sql2 = "SELECT * FROM `Room` ". + "WHERE `RID`='".$_GET["RIDXML"]. "' ". + "ORDER BY `Number`, `Name`;"; + $Erg2 = mysql_query( $sql2, $con); + for( $j=0; $j<mysql_num_fields( $Erg2); $j++) + if( substr( mysql_field_name($Erg2, $j), 0, 12)=="DEFAULT_EID_" && + mysql_result($Erg2, 0, $j) > 0 ) + { + echo "---->Create engeltype: ". substr( mysql_field_name($Erg2, $j), 12). + " ". mysql_result($Erg2, 0, $j). "x<br>\n"; + for( $i=0; $i < mysql_result($Erg2, 0, $j); $i++ ) + { + $SQL3 = "INSERT INTO `ShiftEntry` (`SID`, `TID`) VALUES (". + "'". mysql_result($Erg1, 0, 0). "', ". + "'". substr( mysql_field_name($Erg2, $j), 12). "');"; + + $Erg3 = mysql_query($SQL3, $con); + if ($Erg3 == 1) + echo "------>pass<br>\n"; + else + echo "------>fail <u>". + mysql_error($con). + "</u>($SQL3)<br>\n"; + } + + } + echo "<br>\n"; + } + } + else + echo "Aenderung, am Schedule '". $_GET["PSIDXML"]. "', war <u>nicht</u> erfogreich.(". + mysql_error($con). ")<br>[$SQL]<br>\n"; + } + else + echo "Fehler in den Parametern!<br>"; +} /*SaveSchedule*/ + +if( isset($_GET["ScheduleUpdate"])) + SaveSchedule(); + +//INIT Status counter +$DS_OK = 0; +$DS_KO = 0; +$Where = ""; + +//ausgabe +echo "<table border=\"0\">\n"; +echo "<tr><th>PSID</th><th>Date</th>". + "<th>Room</th><th>Len</th><th>Name</th><th>state</th></tr>\n"; +echo "<tr align=\"center\"><td>XML - DB</td><td>XML - DB</td>". + "<td>XML - DB</td><td>XML - DB</td><td>XML - DB</td><td></td></tr>\n"; + +if( $EnableSchudle) +foreach($XMLmain->sub as $EventKey => $Event) +{ + if( $Event->name == "VEVENT") + { + echo "<form action=\"dbUpdateFromXLS.php\">\n"; + echo "\t<tr>\n"; + + $PSIDXML = getXMLsubData( $Event, "UID"); + $DateXML = + substr( getXMLsubData( $Event, "DTSTART"), 0, 4). "-". + substr( getXMLsubData( $Event, "DTSTART"), 4, 2). "-". + substr( getXMLsubData( $Event, "DTSTART"), 6, 2). " ". + substr( getXMLsubData( $Event, "DTSTART"), 9, 2). ":". + substr( getXMLsubData( $Event, "DTSTART"), 11,2). ":00"; + $LenXML = substr( getXMLsubData( $Event, "DURATION"), 0, 2) + ( substr( getXMLsubData( $Event, "DURATION"), 3, 2)/60); + $RIDXML = getXMLsubData( $Event, "LOCATION"); + $ManXML = getXMLsubData( $Event, "SUMMARY"); + $URLXML = getXMLsubData( $Event, "URL"); + + if( isset($_GET["UpdateALL"])) + { + $_GET["PSIDXML"] = $PSIDXML; + $_GET["DateXML"] = $DateXML; + $_GET["LenXML"] = $LenXML; + $_GET["RIDXML"] = $RIDXML; + $_GET["ManXML"] = $ManXML; + $_GET["URLXML"] = $URLXML; + SaveSchedule(); + } + + $SQL = "SELECT * FROM `Shifts` WHERE `PSID`='$PSIDXML'"; + $Erg = mysql_query($SQL, $con); + if(mysql_num_rows($Erg)>0) + { + $SIDDB = mysql_result($Erg, 0, "SID"); + $PSIDDB = mysql_result($Erg, 0, "PSID"); + $TimeDB = mysql_result($Erg, 0, "DateS"); + $LenDB = mysql_result($Erg, 0, "Len"); + if( isset($RoomID[mysql_result($Erg, 0, "RID")])) + $RIDDB = $RoomID[mysql_result($Erg, 0, "RID")]; + else + $RIDDB = "RID". mysql_result($Erg, 0, "RID"); + + $ManDB = mysql_result($Erg, 0, "Man"); + $URLDB = mysql_result($Erg, 0, "URL"); + } + else + $SIDDB = $PSIDDB = $TimeDB = $LenDB = $RIDDB = $ManDB = $URLDB = ""; + + echo "\t<td><input name=\"PSIDXML\" type=\"text\" value=\"$PSIDXML\" size=\"2\" eadonly></td>\n"; + echo "\t<td><input name=\"DateXML\" type=\"text\" value=\"$DateXML\" size=\"17\" readonly>\n\t\t". + "<input name=\"DateDB\" type=\"text\" value=\"$TimeDB\" size=\"17\" readonly></td>\n"; + echo "\t<td><input name=\"RIDXML\" type=\"text\" value=\"$RIDXML\" size=\"15\" readonly>\n\t\t". + "<input name=\"RIDDB\" type=\"text\" value=\"$RIDDB\" size=\"15\" readonly></td>\n"; + echo "\t<td><input name=\"LenXML\" type=\"text\" value=\"$LenXML\" size=\"1\"readonly>\n\t\t". + "<input name=\"LenDB\" type=\"text\" value=\"$LenDB\" size=\"1\"readonly></td>\n"; + echo "\t<td><input name=\"ManXML\" type=\"text\" value=\"$ManXML\" size=\"40\"readonly>\n\t\t". + "<input name=\"ManDB\" type=\"text\" value=\"$ManDB\" size=\"40\"readonly></td>\n"; + echo "\t<td><input name=\"URLXML\" type=\"hidden\" value=\"$URLXML\"></td>\n"; + echo "\t<td><input name=\"URLDB\" type=\"hidden\" value=\"$URLDB\"></td>\n"; + if( !( $PSIDXML==$PSIDDB && + $DateXML==$TimeDB && + $RIDXML==$RIDDB && + $LenXML==$LenDB && + $ManXML==$ManDB && + $URLXML==$URLDB) ) + { + echo "\t<td><input type=\"submit\" name=\"ScheduleUpdate\" value=\"update\"></td>\n"; + $DS_KO++; + } + else + { + echo "\t<td><a href=\"./schichtplan.php?action=change&SID=$SIDDB\">edit</a></td>\n"; + $DS_OK++; + } + echo "\t</tr>\n"; + echo "</form>\n"; + $Where.= " OR `PSID`='$PSIDXML'"; + } +} +echo "<tr><td colspan=\"6\">status: $DS_KO/$DS_OK nicht Aktuel.</td></tr>\n"; + + +//Anzeige von nicht im XML File vorkommende entraege +if( $Where =="") + $SQL2 = "SELECT * FROM `Shifts` WHERE NOT `PSID`='';"; +else + $SQL2 = "SELECT * FROM `Shifts` WHERE NOT (".substr( $Where, 4). ") AND NOT PSID = '';"; + +$Erg2 = mysql_query($SQL2, $con); +echo mysql_error($con); +if(mysql_num_rows($Erg2)>0 && $EnableSchudleDB ) + for( $i=0; $i<mysql_num_rows( $Erg2); $i++) + { + echo "\t<tr>\n"; + $SID = mysql_result($Erg2, $i, "SID"); + $Time = mysql_result($Erg2, $i, "DateS"); + $Len = mysql_result($Erg2, $i, "Len"); + if( isset($RoomID[ mysql_result($Erg2, $i, "RID")])) + $RID = $RoomID[ mysql_result($Erg2, $i, "RID")]; + else + $RID = "RID.". mysql_result($Erg2, $i, "RID"); + $Man = mysql_result($Erg2, $i, "Man"); + echo "\t<td><input name=\"SIDXML\" type=\"text\" value=\"$SID\" size=\"2\" eadonly></td>\n"; + echo "\t<td><input name=\"DateXML\" type=\"text\" value=\"\" size=\"17\" readonly>\n\t\t". + "<input name=\"DateDB\" type=\"text\" value=\"$Time\" size=\"17\" readonly></td>\n"; + echo "\t<td><input name=\"RIDXML\" type=\"text\" value=\"\" size=\"15\" readonly>\n\t\t". + "<input name=\"RIDDB\" type=\"text\" value=\"$RID\" size=\"15\" readonly></td>\n"; + echo "\t<td><input name=\"LenXML\" type=\"text\" value=\"\" size=\"1\"readonly>\n\t\t". + "<input name=\"LenDB\" type=\"text\" value=\"$Len\" size=\"1\"readonly></td>\n"; + echo "\t<td><input name=\"ManXML\" type=\"text\" value=\"\" size=\"40\"readonly>\n\t\t". + "<input name=\"ManDB\" type=\"text\" value=\"$Man\" size=\"40\"readonly></td>\n"; + echo "\t<td><a href=\"./schichtplan.php?action=change&SID=$SID\">edit</a></td>\n"; + echo "\t<tr>\n"; + } +echo "</table>"; + + +?> diff --git a/includes/funktionen.php b/includes/funktionen.php new file mode 100755 index 00000000..d841e6ec --- /dev/null +++ b/includes/funktionen.php @@ -0,0 +1,26 @@ +<?php + +/* Schichtverplanung im Adminbereich */ +function Dsubstr($DateString,$re) { + if ($re==1) + return substr($DateString, 0, 2); + elseif ($re==2) + return substr($DateString, 3, 2); + else + return substr($DateString, 6, 4); +} + +/* Schichtverplanung im Engelbereich */ + +function engeldate($edate,$m) { + if ($m==t) + return substr($edate, 8, 2); + elseif ($m==m) + return substr($edate, 5, 2); + elseif ($m==u) + return substr($edate, 11, 5); + else + return substr($edate, 0, 4); +} + +?> diff --git a/includes/header.php b/includes/header.php new file mode 100755 index 00000000..0e435ab0 --- /dev/null +++ b/includes/header.php @@ -0,0 +1,177 @@ +<?PHP +ini_set( "session.gc_maxlifetime", "65535"); + +include ("./inc/config.php"); +include ("./inc/error_handler.php"); +include ("./inc/config_db.php"); +include ("./inc/funktion_lang.php"); +include ("./inc/funktion_faq.php"); //für noAnswer() im menu +include ("./inc/funktion_menu.php"); +include ("./inc/funktion_user.php"); + +if( !isset($_SESSION)) + session_start(); +include ("./inc/secure.php"); + +if( !isset($_SESSION['IP'])) + $_SESSION['IP'] = $_SERVER['REMOTE_ADDR']; + +if (IsSet($_SESSION['UID']) and ($_SESSION['IP'] <> $_SERVER['REMOTE_ADDR'])) +{ + session_destroy (); + header("Location: $url". substr($ENGEL_ROOT,1) ); +} + +include ("./inc/UserCVS.php"); + + +//UPdate LASTlogin +if( isset($_SESSION['UID'])) +{ + $SQLlastLogIn = "UPDATE `User` SET ". + "`lastLogIn` = '". gmdate("Y-m-j H:i:s", time()). "'". + " WHERE `UID` = '". $_SESSION['UID']. "' LIMIT 1;"; + mysql_query ($SQLlastLogIn, $con); +} + + +echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"; +?> +<HTML> +<HEAD> +<?PHP + +// SVN versions auswertung +exec("svnversion", $VersionArray); +if( strlen($VersionArray[0])) + $Version = "(r ". $VersionArray[0]. ")"; + +echo "<TITLE>--- $title $Version ---</TITLE>"; +?> +<meta name="keywords" content="Engel, Himmelsverwaltung"> +<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> +<meta http-equiv="Content-Style-Type" content="text/css"> +<meta http-equiv="expires" content="0"> +<meta name="robots" content="index"> +<meta name="revisit-after" content="1 days"> +<meta http-equiv="content-language" content="de"> +<script type="text/javascript" src="./inc/css/grossbild.js"></script> +<link rel=stylesheet type="text/css" href="./inc/css/style<?PHP + if (!IsSet($_SESSION['color'])) + echo "1"; + else + echo $_SESSION['color']; + ?>.css"> +<?PHP +if (isset($reload)) { + if ($reload=="") $reload=3330; + echo "\n<meta http-equiv=\"refresh\" content=\"".$reload. + "; URL=./?reload=".$reload."\">\n"; + } + +if (isset($Page["AutoReload"])) { + echo "\n<meta http-equiv=\"refresh\" content=\"". $Page["AutoReload"]. + "; URL=". substr($url, 0, strlen($url)-1). $ENGEL_ROOT. $Page["Name"]."\">\n"; + } +?> +</HEAD> +<BODY> +<?PHP + +if( isset($SystemDisableMessage)) + if( strlen($SystemDisableMessage)>0) + { + echo $SystemDisableMessage; + echo "\n\n<BODY>\n</HTML>"; + die(); + } + + +if( !isset($Page["ShowTabel"]) ) $Page["ShowTabel"]="Y"; +if( $Page["ShowTabel"]=="Y" ) +{ +//############################### ShowTable Start ############################## + +?> + <div align="center"> + <a name="#top"><img src="./inc/himmel<?PHP if( isset($_SESSION['color'])) + if ($_SESSION['color']==6) echo "_w"; ?>.png" alt="Unser Himmel"></a> + <p> +<?PHP +//ausgabe new message +if( isset($_SESSION['CVS']["nonpublic/messages.php"])) + if( $_SESSION['CVS']["nonpublic/messages.php"] == "Y") + { + $SQL = "SELECT `Datum` FROM `Messages` WHERE `RUID`=". $_SESSION["UID"]. " AND `isRead`='N'"; + $erg = mysql_query($SQL, $con); + if( mysql_num_rows( $erg ) > 0 ) + echo "<br><a href=\"". $url. substr($ENGEL_ROOT, 1). + "nonpublic/messages.php\">". Get_Text("pub_messages_new1"). + " ". mysql_num_rows( $erg ). " ". + Get_Text("pub_messages_new2"). "</a><br><br>"; + } +?> +<table width="95%" align="center" border="0" cellpadding="7" cellspacing="0"> + <tr> +<?PHP +//ausgaeb Menu +if( !isset($_SESSION['Menu'])) $_SESSION['Menu'] = "L"; +if( $_SESSION['Menu'] =="L") include("./inc/menu.php"); +?> + + <td valign="top" align="center"> +<table border="0" width="100%" align="center" class="border" cellpadding="5" cellspacing="1"> + <tr class="contenttopic"> + <td> +<?PHP + echo "\t<a name=\"#$header\" class=\"contenttopic\">"; + if( strlen( $header) == 0 ) + echo "\n\t<b>". Get_Text($Page["Name"]). "</b></a>\n"; + else + echo "\n\t<b>$header</b></a>\n"; + +?> + </td> + </tr> + <tr class="content"> + <td> +<br> +<?php +echo "\n\n\n"; + +if (IsSet($_SESSION['UID'])) { + if( isset($_SESSION['oldurl'])) + $BACKUP_SESSION_OLDURL = $_SESSION['oldurl']; + if( isset($_SESSION['newurl'])) + $_SESSION['oldurl'] = $_SESSION['newurl']; + $_SESSION['newurl'] = $_SERVER["REQUEST_URI"]; +} + + +//############################### ShowTable Start ############################## +} /* if (ShowTabel....*/ + + +function SetHeaderGo2Back () +{ + global $BACKUP_SESSION_OLDURL; + $_SESSION['oldurl'] = $BACKUP_SESSION_OLDURL; +} + + +if ( $Page["CVS"] != "Y" ) +{ + echo "Du besitzt kein Rechte für diesen Bereich.<br>\n"; + If (IsSet($_SESSION['oldurl'])) + echo "<a href=\"". $_SESSION["oldurl"]. "\">".Get_Text("back")."</a> geht's zurück...\n"; + else + echo "<a href=\"". $url. substr($ENGEL_ROOT, 0, -1 )."\">".Get_Text("back")."</a> geht's zurück...\n"; + exit (); +} +?> + + +<!-- ende des header parts //--> + + + diff --git a/includes/himmel.png b/includes/himmel.png Binary files differnew file mode 100755 index 00000000..6a2b5000 --- /dev/null +++ b/includes/himmel.png diff --git a/includes/himmel_w.png b/includes/himmel_w.png Binary files differnew file mode 100755 index 00000000..2dd648ab --- /dev/null +++ b/includes/himmel_w.png diff --git a/includes/login_eingabefeld.php b/includes/login_eingabefeld.php new file mode 100755 index 00000000..afb0c90e --- /dev/null +++ b/includes/login_eingabefeld.php @@ -0,0 +1,21 @@ + + +<form action="<?PHP +include ("./inc/config.php"); +echo substr($url, 0, strlen($url)-1). $ENGEL_ROOT +?>nonpublic/index.php" method="post"> +<table> +<tr> + <td align="right"><?PHP echo Get_Text("index_lang_nick");?></td> + <td><input type="text" name="user" size="23"></td> +</tr> +<tr> + <td align="right"><?PHP echo Get_Text("index_lang_pass");?></td> + <td><input type="password" name="password" size="23"></td> +</tr> +</table> +<br> +<input type="submit" value="<?PHP echo Get_Text("index_lang_send");?>"> +</form> + + diff --git a/includes/menu.php b/includes/menu.php new file mode 100755 index 00000000..ea65383a --- /dev/null +++ b/includes/menu.php @@ -0,0 +1,63 @@ + +<!-- anfang des menue parts //--> + <td width="160" valign="top"> +<?PHP +$MenueTableStart=" +<table align=\"center\" class=\"border\" cellpadding=\"3\" cellspacing=\"1\"> + <tr> + <td width=\"160\" class=\"menu\"> +"; +$MenueTableEnd=" + <br> + </td> + </tr> +</table><br> +"; + +ShowMenu(""); +ShowMenu("nonpublic"); +ShowMenu("admin"); + +if( !isset($submenus)) + $submenus = 0; + +if ($submenus >= 1 ) { + $inc_name=$_SERVER['PHP_SELF']; + $filenamepos=strrpos($inc_name, '/'); + $filenamepos+=1; + $filename = substr ($inc_name, $filenamepos ); + $filepost = substr ($filename, 0, -4); + $filepre = substr ($filename, -4 ); + $verzeichnis = substr ($inc_name, 0 , $filenamepos); + + for ($index_nummer=1; $index_nummer <= $submenus; $index_nummer++) { +?> +<table align="center" class="border" cellpadding="3" cellspacing="1"> + <tr> + <td width="160" class="menu"> + <?php include ("./".$filepost.".".$index_nummer.$filepre); ?> + </td> + </tr> +</table> + +<br> +<?PHP + } +} + +if( isset($_SESSION['UID'])) +{ +?> +<table align="center" class="border" cellpadding="3" cellspacing="1"> + <tr> + <td width="160" class="menu"> + <?php include("./inc/funktion_activeUser.php"); ?> + </td> + </tr> +</table> +<?PHP +} +?> + </td> + +<!-- ende des menue parts //--> diff --git a/includes/secure.php b/includes/secure.php new file mode 100755 index 00000000..d6b5c512 --- /dev/null +++ b/includes/secure.php @@ -0,0 +1,41 @@ +<?php +//soll dein funktion entahlten die alle übergebenen parameter überprüft +//'`'" + +if( $DEBUG) + echo "secure.php START<br>\n"; + +foreach ($_GET as $k => $v) +{ +// $v = htmlspecialchars($v, ENT_QUOTES); +// $v = mysql_escape_string($v); + $v = htmlentities($v, ENT_QUOTES); + if (preg_match('/([\'"`\'])/', $v, $match)) + { + print "sorry get has illegal char '$match[1]'"; + exit; + } + $_GET[$k] = $v; + + if( $DEBUG) + echo "GET $k=\"$v\"<br>"; +} + +foreach ($_POST as $k => $v) +{ +// $v = htmlspecialchars($v, ENT_QUOTES); +// $v = mysql_escape_string($v); + $v = htmlentities($v, ENT_QUOTES); + if (preg_match('/([\'"`\'])/', $v, $match)) { + print "sorry post has illegal char '$match[1]'"; + exit; + } + $_POST[$k] = $v; + + if( $DEBUG) + echo "POST $k=\"$v\"<br>"; +} +if( $DEBUG) + echo "secure.php END<br>\n"; + +?> diff --git a/includes/smiles/aerger2.gif b/includes/smiles/aerger2.gif Binary files differnew file mode 100755 index 00000000..accb9774 --- /dev/null +++ b/includes/smiles/aerger2.gif diff --git a/includes/smiles/alien.gif b/includes/smiles/alien.gif Binary files differnew file mode 100755 index 00000000..1404f299 --- /dev/null +++ b/includes/smiles/alien.gif diff --git a/includes/smiles/blush.gif b/includes/smiles/blush.gif Binary files differnew file mode 100755 index 00000000..28ce436b --- /dev/null +++ b/includes/smiles/blush.gif diff --git a/includes/smiles/boggle.gif b/includes/smiles/boggle.gif Binary files differnew file mode 100755 index 00000000..472a3c3c --- /dev/null +++ b/includes/smiles/boggle.gif diff --git a/includes/smiles/bounce.gif b/includes/smiles/bounce.gif Binary files differnew file mode 100755 index 00000000..942318f3 --- /dev/null +++ b/includes/smiles/bounce.gif diff --git a/includes/smiles/bun.gif b/includes/smiles/bun.gif Binary files differnew file mode 100755 index 00000000..c6ee6937 --- /dev/null +++ b/includes/smiles/bun.gif diff --git a/includes/smiles/candycane.gif b/includes/smiles/candycane.gif Binary files differnew file mode 100755 index 00000000..4469a5c5 --- /dev/null +++ b/includes/smiles/candycane.gif diff --git a/includes/smiles/cheesy.gif b/includes/smiles/cheesy.gif Binary files differnew file mode 100755 index 00000000..52d35b27 --- /dev/null +++ b/includes/smiles/cheesy.gif diff --git a/includes/smiles/dead.gif b/includes/smiles/dead.gif Binary files differnew file mode 100755 index 00000000..8328c337 --- /dev/null +++ b/includes/smiles/dead.gif diff --git a/includes/smiles/depressed.gif b/includes/smiles/depressed.gif Binary files differnew file mode 100755 index 00000000..17c24c42 --- /dev/null +++ b/includes/smiles/depressed.gif diff --git a/includes/smiles/ginger.gif b/includes/smiles/ginger.gif Binary files differnew file mode 100755 index 00000000..199b085d --- /dev/null +++ b/includes/smiles/ginger.gif diff --git a/includes/smiles/hirsch1.gif b/includes/smiles/hirsch1.gif Binary files differnew file mode 100755 index 00000000..6ef61330 --- /dev/null +++ b/includes/smiles/hirsch1.gif diff --git a/includes/smiles/huh.gif b/includes/smiles/huh.gif Binary files differnew file mode 100755 index 00000000..448c6ecc --- /dev/null +++ b/includes/smiles/huh.gif diff --git a/includes/smiles/icon_arrow.gif b/includes/smiles/icon_arrow.gif Binary files differnew file mode 100755 index 00000000..2880055c --- /dev/null +++ b/includes/smiles/icon_arrow.gif diff --git a/includes/smiles/icon_biggrin.gif b/includes/smiles/icon_biggrin.gif Binary files differnew file mode 100755 index 00000000..d3527723 --- /dev/null +++ b/includes/smiles/icon_biggrin.gif diff --git a/includes/smiles/icon_confused.gif b/includes/smiles/icon_confused.gif Binary files differnew file mode 100755 index 00000000..0c49e069 --- /dev/null +++ b/includes/smiles/icon_confused.gif diff --git a/includes/smiles/icon_cool.gif b/includes/smiles/icon_cool.gif Binary files differnew file mode 100755 index 00000000..cead0306 --- /dev/null +++ b/includes/smiles/icon_cool.gif diff --git a/includes/smiles/icon_cry.gif b/includes/smiles/icon_cry.gif Binary files differnew file mode 100755 index 00000000..7d54b1f9 --- /dev/null +++ b/includes/smiles/icon_cry.gif diff --git a/includes/smiles/icon_eek.gif b/includes/smiles/icon_eek.gif Binary files differnew file mode 100755 index 00000000..5d397810 --- /dev/null +++ b/includes/smiles/icon_eek.gif diff --git a/includes/smiles/icon_evil.gif b/includes/smiles/icon_evil.gif Binary files differnew file mode 100755 index 00000000..ab1aa8e1 --- /dev/null +++ b/includes/smiles/icon_evil.gif diff --git a/includes/smiles/icon_exclaim.gif b/includes/smiles/icon_exclaim.gif Binary files differnew file mode 100755 index 00000000..6e50e2ee --- /dev/null +++ b/includes/smiles/icon_exclaim.gif diff --git a/includes/smiles/icon_frown.gif b/includes/smiles/icon_frown.gif Binary files differnew file mode 100755 index 00000000..d2ac78c0 --- /dev/null +++ b/includes/smiles/icon_frown.gif diff --git a/includes/smiles/icon_idea.gif b/includes/smiles/icon_idea.gif Binary files differnew file mode 100755 index 00000000..a40ae0d7 --- /dev/null +++ b/includes/smiles/icon_idea.gif diff --git a/includes/smiles/icon_lol.gif b/includes/smiles/icon_lol.gif Binary files differnew file mode 100755 index 00000000..374ba150 --- /dev/null +++ b/includes/smiles/icon_lol.gif diff --git a/includes/smiles/icon_mad.gif b/includes/smiles/icon_mad.gif Binary files differnew file mode 100755 index 00000000..1f6c3c2f --- /dev/null +++ b/includes/smiles/icon_mad.gif diff --git a/includes/smiles/icon_mrgreen.gif b/includes/smiles/icon_mrgreen.gif Binary files differnew file mode 100755 index 00000000..b54cd0f9 --- /dev/null +++ b/includes/smiles/icon_mrgreen.gif diff --git a/includes/smiles/icon_neutral.gif b/includes/smiles/icon_neutral.gif Binary files differnew file mode 100755 index 00000000..4f311567 --- /dev/null +++ b/includes/smiles/icon_neutral.gif diff --git a/includes/smiles/icon_question.gif b/includes/smiles/icon_question.gif Binary files differnew file mode 100755 index 00000000..9d072265 --- /dev/null +++ b/includes/smiles/icon_question.gif diff --git a/includes/smiles/icon_razz.gif b/includes/smiles/icon_razz.gif Binary files differnew file mode 100755 index 00000000..29da2a2f --- /dev/null +++ b/includes/smiles/icon_razz.gif diff --git a/includes/smiles/icon_redface.gif b/includes/smiles/icon_redface.gif Binary files differnew file mode 100755 index 00000000..ad762832 --- /dev/null +++ b/includes/smiles/icon_redface.gif diff --git a/includes/smiles/icon_rolleyes.gif b/includes/smiles/icon_rolleyes.gif Binary files differnew file mode 100755 index 00000000..d7f5f2f4 --- /dev/null +++ b/includes/smiles/icon_rolleyes.gif diff --git a/includes/smiles/icon_sad.gif b/includes/smiles/icon_sad.gif Binary files differnew file mode 100755 index 00000000..d2ac78c0 --- /dev/null +++ b/includes/smiles/icon_sad.gif diff --git a/includes/smiles/icon_smile.gif b/includes/smiles/icon_smile.gif Binary files differnew file mode 100755 index 00000000..7b1f6d30 --- /dev/null +++ b/includes/smiles/icon_smile.gif diff --git a/includes/smiles/icon_surprised.gif b/includes/smiles/icon_surprised.gif Binary files differnew file mode 100755 index 00000000..cb214243 --- /dev/null +++ b/includes/smiles/icon_surprised.gif diff --git a/includes/smiles/icon_twisted.gif b/includes/smiles/icon_twisted.gif Binary files differnew file mode 100755 index 00000000..502fe247 --- /dev/null +++ b/includes/smiles/icon_twisted.gif diff --git a/includes/smiles/icon_wind.gif b/includes/smiles/icon_wind.gif Binary files differnew file mode 100755 index 00000000..d1482880 --- /dev/null +++ b/includes/smiles/icon_wind.gif diff --git a/includes/smiles/koenig1.gif b/includes/smiles/koenig1.gif Binary files differnew file mode 100755 index 00000000..b3e710cb --- /dev/null +++ b/includes/smiles/koenig1.gif diff --git a/includes/smiles/laser1.gif b/includes/smiles/laser1.gif Binary files differnew file mode 100755 index 00000000..32e2aab7 --- /dev/null +++ b/includes/smiles/laser1.gif diff --git a/includes/smiles/love1.gif b/includes/smiles/love1.gif Binary files differnew file mode 100755 index 00000000..88dd553a --- /dev/null +++ b/includes/smiles/love1.gif diff --git a/includes/smiles/moo.gif b/includes/smiles/moo.gif Binary files differnew file mode 100755 index 00000000..e525aa86 --- /dev/null +++ b/includes/smiles/moo.gif diff --git a/includes/smiles/nuts.gif b/includes/smiles/nuts.gif Binary files differnew file mode 100755 index 00000000..12d4c5d1 --- /dev/null +++ b/includes/smiles/nuts.gif diff --git a/includes/smiles/robin.gif b/includes/smiles/robin.gif Binary files differnew file mode 100755 index 00000000..ee0f0500 --- /dev/null +++ b/includes/smiles/robin.gif diff --git a/includes/smiles/sheep.gif b/includes/smiles/sheep.gif Binary files differnew file mode 100755 index 00000000..d1691491 --- /dev/null +++ b/includes/smiles/sheep.gif diff --git a/includes/smiles/sick.gif b/includes/smiles/sick.gif Binary files differnew file mode 100755 index 00000000..488d0e8e --- /dev/null +++ b/includes/smiles/sick.gif diff --git a/includes/smiles/sleep.gif b/includes/smiles/sleep.gif Binary files differnew file mode 100755 index 00000000..7e1a0c51 --- /dev/null +++ b/includes/smiles/sleep.gif diff --git a/includes/smiles/soppy.gif b/includes/smiles/soppy.gif Binary files differnew file mode 100755 index 00000000..6c0416b1 --- /dev/null +++ b/includes/smiles/soppy.gif diff --git a/includes/smiles/stress.gif b/includes/smiles/stress.gif Binary files differnew file mode 100755 index 00000000..133913d7 --- /dev/null +++ b/includes/smiles/stress.gif diff --git a/includes/smiles/sweet.gif b/includes/smiles/sweet.gif Binary files differnew file mode 100755 index 00000000..6c1e79a7 --- /dev/null +++ b/includes/smiles/sweet.gif diff --git a/includes/smiles/tired.gif b/includes/smiles/tired.gif Binary files differnew file mode 100755 index 00000000..d8cd4306 --- /dev/null +++ b/includes/smiles/tired.gif diff --git a/includes/smiles/urgh.gif b/includes/smiles/urgh.gif Binary files differnew file mode 100755 index 00000000..16a9bc1d --- /dev/null +++ b/includes/smiles/urgh.gif diff --git a/includes/smiles/winken1.gif b/includes/smiles/winken1.gif Binary files differnew file mode 100755 index 00000000..98f1821b --- /dev/null +++ b/includes/smiles/winken1.gif diff --git a/includes/smiles/worm.gif b/includes/smiles/worm.gif Binary files differnew file mode 100755 index 00000000..c0134ee8 --- /dev/null +++ b/includes/smiles/worm.gif diff --git a/includes/smiles/worry.gif b/includes/smiles/worry.gif Binary files differnew file mode 100755 index 00000000..c598b575 --- /dev/null +++ b/includes/smiles/worry.gif |