<?php
/*************************
  Coppermine Photo Gallery
  ************************
  Copyright (c) 2003-2005 Coppermine Dev Team
  v1.1 originaly written by Gregory DEMAR

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.
  ********************************************
  Coppermine version: 1.4.3
  $Source: /cvsroot/coppermine/stable/include/smilies.inc.php,v $
  $Revision: 1.10 $
  $Author: gaugau $
  $Date: 2005/11/28 07:42:15 $
**********************************************/

// ------------------------------------------------------------------------- //
// CODE IN THIS MODULE IS TAKEN FROM phpBB                                   //
// ------------------------------------------------------------------------- //


define('SMILIES_PHP', true);
function get_smilies_table1()
{
    global $lang_smilies_inc_php;

    return array(
        array(':!:', 'icon_exclaim.gif', $lang_smilies_inc_php['Exclamation']),
        array(':?:', 'icon_question.gif', $lang_smilies_inc_php['Question']),
        array(':D', 'icon_biggrin.gif', $lang_smilies_inc_php['Very Happy']),
        array(':-D', 'icon_biggrin.gif', $lang_smilies_inc_php['Very Happy']),
        array(':grin:', 'icon_biggrin.gif', $lang_smilies_inc_php['Very Happy']),
        array(':)', 'icon_smile.gif', $lang_smilies_inc_php['Smile']),
        array(':-)', 'icon_smile.gif', $lang_smilies_inc_php['Smile']),
        array(':smile:', 'icon_smile.gif', $lang_smilies_inc_php['Smile']),
        array(':(', 'icon_sad.gif', $lang_smilies_inc_php['Sad']),
        array(':-(', 'icon_sad.gif', $lang_smilies_inc_php['Sad']),
        array(':sad:', 'icon_sad.gif', $lang_smilies_inc_php['Sad']),
        array(':o', 'icon_surprised.gif', $lang_smilies_inc_php['Surprised']),
        array(':-o', 'icon_surprised.gif', $lang_smilies_inc_php['Surprised']),
        array(':eek:', 'icon_surprised.gif', $lang_smilies_inc_php['Surprised']),
        array(':shock:', 'icon_eek.gif', $lang_smilies_inc_php['Shocked']),
        array(':?', 'icon_confused.gif', $lang_smilies_inc_php['Confused']),
        array(':-?', 'icon_confused.gif', $lang_smilies_inc_php['Confused']),
        array(':???:', 'icon_confused.gif', $lang_smilies_inc_php['Confused']),
        array('8)', 'icon_cool.gif', $lang_smilies_inc_php['Cool']),
        array('8-)', 'icon_cool.gif', $lang_smilies_inc_php['Cool']),
        array(':cool:', 'icon_cool.gif', $lang_smilies_inc_php['Cool']),
        array(':lol:', 'icon_lol.gif', $lang_smilies_inc_php['Laughing']),
        array(':x', 'icon_mad.gif', $lang_smilies_inc_php['Mad']),
        array(':-x', 'icon_mad.gif', $lang_smilies_inc_php['Mad']),
        array(':mad:', 'icon_mad.gif', $lang_smilies_inc_php['Mad']),
        array(':P', 'icon_razz.gif', $lang_smilies_inc_php['Razz']),
        array(':-P', 'icon_razz.gif', $lang_smilies_inc_php['Razz']),
        array(':razz:', 'icon_razz.gif', $lang_smilies_inc_php['Razz']),
        array(':oops:', 'icon_redface.gif', $lang_smilies_inc_php['Embarassed']),
        array(':cry:', 'icon_cry.gif', $lang_smilies_inc_php['Crying or Very sad']),
        array(':evil:', 'icon_evil.gif', $lang_smilies_inc_php['Evil or Very Mad']),
        array(':twisted:', 'icon_twisted.gif', $lang_smilies_inc_php['Twisted Evil']),
        array(':roll:', 'icon_rolleyes.gif', $lang_smilies_inc_php['Rolling Eyes']),
        array(':wink:', 'icon_wink.gif', $lang_smilies_inc_php['Wink']),
        array(';)', 'icon_wink.gif', $lang_smilies_inc_php['Wink']),
        array(';-)', 'icon_wink.gif', $lang_smilies_inc_php['Wink']),
        array(':idea:', 'icon_idea.gif', $lang_smilies_inc_php['Idea']),
        array(':arrow:', 'icon_arrow.gif', $lang_smilies_inc_php['Arrow']),
        array(':|', 'icon_neutral.gif', $lang_smilies_inc_php['Neutral']),
        array(':-|', 'icon_neutral.gif', $lang_smilies_inc_php['Neutral']),
        array(':neutral:', 'icon_neutral.gif', $lang_smilies_inc_php['Neutral']),
        array(':mrgreen:', 'icon_mrgreen.gif', $lang_smilies_inc_php['Mr. Green']),
		<br>
        array(':^_:', 'icon_8735-2046710580322u27.gif', $lang_smilies_inc_php['BGB']),
		array(':{|:', 'icon_aa.BMP', $lang_smilies_inc_php['BîB']),
	    array(':^*:', 'icon_9274-25183459073873u31.BMP', $lang_smilies_inc_php['yGB']),
		array(':{+:', 'icon_885-81038545651611u18.BMP', $lang_smilies_inc_php['Bîu']),
		array(':netmeeting:', 'icon_885-315132941393711u5.BMP', $lang_smilies_inc_php['netmeeting']),
		array(':8:', 'icon_8615-5906379072984u4.GIF', $lang_smilies_inc_php['cîB']),
	    array(':^!:', 'icon_8615-1549168959454u4.GIF', $lang_smilies_inc_php['ymB']),
		array(':}{:', 'icon_8192-23886980427184u2.BMP', $lang_smilies_inc_php['hbu']),
	    array(':ho:', 'icon_8018-24973492257378u7.GIF', $lang_smilies_inc_php['ho']),
		array(':ro:', 'icon_8018-22133890399808u7.GIF', $lang_smilies_inc_php['ro']),
	    array(':qo:', 'icon_8018-21747976706698u6.GIF', $lang_smilies_inc_php['qo']),
		array(':wo:', 'icon_8018-11781197442488u6.GIF', $lang_smilies_inc_php['wo']),
		array(':io:', 'icon_8018-112889622288u7.GIF', $lang_smilies_inc_php['io']),
		array(':eo:', 'icon_7816-16494553801723u27.GIF', $lang_smilies_inc_php['eo']),
	    array(':to:', 'icon_7816-12232493207566u7.GIF', $lang_smilies_inc_php['yo']),
		array(':uu:', 'icon_7560-20716747278822u14.BMP', $lang_smilies_inc_php['uu']),
	    array(':po:', 'icon_7359-33271699782363u9.GIF', $lang_smilies_inc_php['po']),
		array(':ao:', 'icon_7358-6796744687257u4.GIF', $lang_smilies_inc_php['ao']),
	    array(':so:', 'icon_7358-18091364730247u5.GIF', $lang_smilies_inc_php['so']),
		array(':do:', 'icon_7358-11802459904917u5.GIF', $lang_smilies_inc_php['do']),
		array(':fo:', 'icon_7358-1032491122397u5.GIF', $lang_smilies_inc_php['fo']),
		<br>
		array(':go:', 'icon_6992-28821466395702u20.JPG', $lang_smilies_inc_php['go']),
	    array(':ho:', 'icon_676-267000042067110u30.GIF', $lang_smilies_inc_php['ho']),
		array(':jo:', 'icon_6737-31739739364262u7.GIF', $lang_smilies_inc_php['jo']),
	    array(':ko:', 'icon_6412-26673957690232u8.JPG', $lang_smilies_inc_php['ko']),
		array(':zo:', 'icon_CAYFGXE3.png', $lang_smilies_inc_php['zo']),
		array(':lo:', 'icon_CAYCTT2L.png', $lang_smilies_inc_php['lo']),
		array(':xo:', 'icon_CAYBU98F.png', $lang_smilies_inc_php['xo']),
	    array(':co:', 'icon_CAYADSNV.png', $lang_smilies_inc_php['co']),
		array(':vo:', 'icon_CAWZM3PW.png', $lang_smilies_inc_php['vo']),
	    array(':bo:', 'icon_CAWJQFO9.png', $lang_smilies_inc_php['bo']),
		array(':no:', 'icon_CAW9Q67H.png', $lang_smilies_inc_php['no']),
	    array(':mo:', 'icon_CAW5QFO5.png', $lang_smilies_inc_php['mo']),
		array(':qw:', 'icon_CAW1A34P.png', $lang_smilies_inc_php['qw']),
		array(':ww:', 'icon_CAUZQBCF.png', $lang_smilies_inc_php['ww']),
		array(':ew:', 'icon_CAUVS5AV.png', $lang_smilies_inc_php['ew']),
	    array(':rw:', 'icon_CAU400TU.png', $lang_smilies_inc_php['rw']),
		array(':tw:', 'icon_CAT449YZ.png', $lang_smilies_inc_php['tw']),
	    array(':yw:', 'icon_CASKSA9B.png', $lang_smilies_inc_php['yw']),
		array(':uw:', 'icon_CASFSDIJ.png', $lang_smilies_inc_php['uw']),
	    array(':iw:', 'icon_CAS45LNI.png', $lang_smilies_inc_php['iw']),
		array(':fw:', 'icon_CAQZ6R0L.png', $lang_smilies_inc_php['fw']),
		array(':pw:', 'icon_CAQBGHQN.png', $lang_smilies_inc_php['pw']),
		array(':aw:', 'icon_CAQ9QJ8N.png', $lang_smilies_inc_php['aw']),
	    array(':sw:', 'icon_CAQ309QZ.png', $lang_smilies_inc_php['sw']),
		array(':dw:', 'icon_CAPY3TNJ.png', $lang_smilies_inc_php['dw']),
		             );
}

function get_smilies_table2()
{
    global $lang_smilies_inc_php;

    return array(
        array(':lol:', 'icon_lol.gif', $lang_smilies_inc_php['Laughing']),
        array(':-P', 'icon_razz.gif', $lang_smilies_inc_php['Razz']),
        array(':-D', 'icon_biggrin.gif', $lang_smilies_inc_php['Very Happy']),
        array(':-)', 'icon_smile.gif', $lang_smilies_inc_php['Smile']),
        array(':-|', 'icon_neutral.gif', $lang_smilies_inc_php['Neutral']),
        array(':-(', 'icon_sad.gif', $lang_smilies_inc_php['Sad']),
        array(':cry:', 'icon_cry.gif', $lang_smilies_inc_php['Crying or Very sad']),
        array('8-)', 'icon_cool.gif', $lang_smilies_inc_php['Cool']),
        array(':-o', 'icon_surprised.gif', $lang_smilies_inc_php['Surprised']),
        array(':-?', 'icon_confused.gif', $lang_smilies_inc_php['Confused']),
        array(':oops:', 'icon_redface.gif', $lang_smilies_inc_php['Embarassed']),
        array(':shock:', 'icon_eek.gif', $lang_smilies_inc_php['Shocked']),
        array(':-x', 'icon_mad.gif', $lang_smilies_inc_php['Mad']),
        array(':roll:', 'icon_rolleyes.gif', $lang_smilies_inc_php['Rolling Eyes']),
        array(';-)', 'icon_wink.gif', $lang_smilies_inc_php['Wink']),
        array(':idea:', 'icon_idea.gif', $lang_smilies_inc_php['Idea']),
        array(':!:', 'icon_exclaim.gif', $lang_smilies_inc_php['Exclamation']),
        array(':?:', 'icon_question.gif', $lang_smilies_inc_php['Question']),
	    array(':^_:', 'icon_8735-2046710580322u27.gif', $lang_smilies_inc_php['BGB']),
		array(':{|:', 'icon_aa.BMP', $lang_smilies_inc_php['BîB']),
	    array(':^*:', 'icon_9274-25183459073873u31.BMP', $lang_smilies_inc_php['yGB']),
		array(':{+:', 'icon_885-81038545651611u18.BMP', $lang_smilies_inc_php['Bîu']),
		array(':netmeeting:', 'icon_885-315132941393711u5.BMP', $lang_smilies_inc_php['netmeeting']),
		array(':8:', 'icon_8615-5906379072984u4.GIF', $lang_smilies_inc_php['cîB']),
	    array(':^!:', 'icon_8615-1549168959454u4.GIF', $lang_smilies_inc_php['ymB']),
		array(':}{:', 'icon_8192-23886980427184u2.BMP', $lang_smilies_inc_php['hbu']),
	    array(':ho:', 'icon_8018-24973492257378u7.GIF', $lang_smilies_inc_php['ho']),
		array(':ro:', 'icon_8018-22133890399808u7.GIF', $lang_smilies_inc_php['ro']),
	    array(':qo:', 'icon_8018-21747976706698u6.GIF', $lang_smilies_inc_php['qo']),
		array(':wo:', 'icon_8018-11781197442488u6.GIF', $lang_smilies_inc_php['wo']),
		array(':io:', 'icon_8018-112889622288u7.GIF', $lang_smilies_inc_php['io']),
		array(':eo:', 'icon_7816-16494553801723u27.GIF', $lang_smilies_inc_php['eo']),
	    array(':to:', 'icon_7816-12232493207566u7.GIF', $lang_smilies_inc_php['yo']),
		array(':uu:', 'icon_7560-20716747278822u14.BMP', $lang_smilies_inc_php['uu']),
	    array(':po:', 'icon_7359-33271699782363u9.GIF', $lang_smilies_inc_php['po']),
		array(':ao:', 'icon_7358-6796744687257u4.GIF', $lang_smilies_inc_php['ao']),
	    array(':so:', 'icon_7358-18091364730247u5.GIF', $lang_smilies_inc_php['so']),
		array(':do:', 'icon_7358-11802459904917u5.GIF', $lang_smilies_inc_php['do']),
		array(':fo:', 'icon_7358-1032491122397u5.GIF', $lang_smilies_inc_php['fo']),
		array(':go:', 'icon_6992-28821466395702u20.JPG', $lang_smilies_inc_php['go']),
	    array(':ho:', 'icon_676-267000042067110u30.GIF', $lang_smilies_inc_php['ho']),
		array(':jo:', 'icon_6737-31739739364262u7.GIF', $lang_smilies_inc_php['jo']),
	    array(':ko:', 'icon_6412-26673957690232u8.JPG', $lang_smilies_inc_php['ko']),
		array(':zo:', 'icon_CAYFGXE3.png', $lang_smilies_inc_php['zo']),
		array(':lo:', 'icon_CAYCTT2L.png', $lang_smilies_inc_php['lo']),
		array(':xo:', 'icon_CAYBU98F.png', $lang_smilies_inc_php['xo']),
	    array(':co:', 'icon_CAYADSNV.png', $lang_smilies_inc_php['co']),
		array(':vo:', 'icon_CAWZM3PW.png', $lang_smilies_inc_php['vo']),
	    array(':bo:', 'icon_CAWJQFO9.png', $lang_smilies_inc_php['bo']),
		array(':no:', 'icon_CAW9Q67H.png', $lang_smilies_inc_php['no']),
	    array(':mo:', 'icon_CAW5QFO5.png', $lang_smilies_inc_php['mo']),
		array(':qw:', 'icon_CAW1A34P.png', $lang_smilies_inc_php['qw']),
		array(':ww:', 'icon_CAUZQBCF.png', $lang_smilies_inc_php['ww']),
		array(':ew:', 'icon_CAUVS5AV.png', $lang_smilies_inc_php['ew']),
	    array(':rw:', 'icon_CAU400TU.png', $lang_smilies_inc_php['rw']),
		array(':tw:', 'icon_CAT449YZ.png', $lang_smilies_inc_php['tw']),
	    array(':yw:', 'icon_CASKSA9B.png', $lang_smilies_inc_php['yw']),
		array(':uw:', 'icon_CASFSDIJ.png', $lang_smilies_inc_php['uw']),
	    array(':iw:', 'icon_CAS45LNI.png', $lang_smilies_inc_php['iw']),
		array(':fw:', 'icon_CAQZ6R0L.png', $lang_smilies_inc_php['fw']),
		array(':pw:', 'icon_CAQBGHQN.png', $lang_smilies_inc_php['pw']),
		array(':aw:', 'icon_CAQ9QJ8N.png', $lang_smilies_inc_php['aw']),
	    array(':sw:', 'icon_CAQ309QZ.png', $lang_smilies_inc_php['sw']),
		array(':dw:', 'icon_CAPY3TNJ.png', $lang_smilies_inc_php['dw']),
                             );
}
// Smilies code ... would this be better tagged on to the end of bbcode.php?
// Probably so and I'll move it before B2

function process_smilies($message, $url_prefix = '')
{
    static $orig, $repl;

    if (!isset($orig)) {
        global $db, $board_config,$THEME_DIR;
        $orig = $repl = array();

        $smilies = get_smilies_table1();

        $paths = array($THEME_DIR.'/smiles/','images/smiles/');

        for($i = 0; $i < count($smilies); $i++) {
            $orig[] = "/(?<=.\W|\W.|^\W)" . preg_quote($smilies[$i][0], "/") . "(?=.\W|\W.|\W$)/";
            $smile_path = (file_exists($paths[0].$smilies[$i][1]))?($paths[0]):($paths[1]);
            $repl[] = '<img src="' . $url_prefix . $smile_path . ($smilies[$i][1]) . '" alt="' . ($smilies[$i][2]) . '"  />';
        }
    }

    if (count($orig)) {
        $message = preg_replace($orig, $repl, ' ' . $message . ' ');
        $message = substr($message, 1, -1);
    }
    return $message;
}

// Fill smiley templates (or just the variables) with smileys
// Either in a window or inline

function generate_smilies($form = 'post', $field = 'message')
{
    global $THEME_DIR;
    $smilies = get_smilies_table2();
    $paths = array($THEME_DIR.'/smiles/','images/smiles/');

    if (function_exists('theme_generate_smilies'))
    {
        $html = theme_generate_smilies($smilies, $form);
    }
    else
    {

        $html = '<table width="100%" border="0" cellspacing="0" cellpadding="0">' . "\n" . '        <tr align="center" valign="middle">' . "\n";

        foreach($smilies as $smiley) {
            $smile_path = (file_exists($paths[0].$smiley[1]))?($paths[0]):($paths[1]);
            $caption = $smiley[2] . " " . $smiley[0];
            $html .= '                <td width="5%"><img src="images/smiles/' . $smiley[1] . '" alt="' . $caption . '" width="15" height="15" border="0" style="cursor:pointer;" title="' . $caption . '" onclick="javascript:emoticon_' . $form . '(\'' . $smiley[0] . '\')" /></td>' . "\n";
        }

        $html .= '        </tr>' . "\n" . '</table>' . "\n";
    }

    $html .= <<<EOT

<script language="JavaScript" type="text/javascript">
<!--
function emoticon_$form(text) {
        text = ' ' + text + ' ';
        if (document.$form.$field.createTextRange && document.post.message.caretPos) {
                var caretPos = document.$form.$field.caretPos;
                caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
                document.$form.$field.focus();
        } else {
                document.$form.$field.value  += text;
                document.$form.$field.focus();
        }
}

function storeCaret_$form(textEl) {
        if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}
//-->

EOT;
    $html .= "</script>\n";
    return $html;
}

?>
