<?php if (!defined('PmWiki')) exit();
/**
 * 
 *
 * @author Sebastian Siedentopf <schlaefer@macnews.de>
 * @version 0.3.1
 **/
$RecipeInfo['SocialBookmarking']['Version'] = '0.3.1';

SDV($SBDeliciousLink, '<img src="http://images.del.icio.us/static/img/delicious.small.gif"/>Save This Page');
SDV($SBDiggLink, 'Digg');

Markup('socialbookmarking', '>links', "/\\(:(digglink|digg|redditsmall|reddit|delicious)(.*?):\\)/e", "Socialbookmarks('$pagename', '$1', '$2')" );

function Socialbookmarks ( $pagename, $service = 'digg', $args = '') {
    $parsed_args = ParseArgs($args);
    
    if (!isset($parsed_args['title']))  $parsed_args['title']   = PageVar($pagename, '$Title');
    if (!isset($parsed_args['url']))    $parsed_args['url']     = PageVar($pagename, '$PageUrl');
    #echo '<pre>'; echo print_r($parsed_args); echo '</pre>';
    
    $out = '';
    $tags = SBTagTranslate($service, $parsed_args);
    $out .= SBGenerateJSTags($tags);
    
    switch ($service) {
        case 'digg':
            $out .= "<script src='http://digg.com/tools/diggthis.js' type='text/javascript'></script>";
            break;
            
        case 'digglink':
            global $SBDiggLink;
            array_walk($tags, create_function('&$tag','$tag = urlencode($tag);'));
            $out .=  "<a href='http://digg.com/submit?phase=2".
                "&url=".$tags['digg_url'].
                "&title=".$tags['digg_title'].
                "&bodytext=".$tags['digg_bodytext'].
                "&topic=".$tags['digg_topic']."'>".
                $SBDiggLink."</a>";
            break;
        
        case 'reddit':    
            SDV($tags['reddit_type'], "2");
            $out .= '<script language="javascript" src="http://reddit.com/button.js?t='.$tags['reddit_type'].'"></script>';
            break;
            
        case 'delicious':
            global $SBDeliciousLink;
            $out .= '<a href="http://del.icio.us/post" onclick="window.open(\'http://del.icio.us/post?v=4&noui&jump=close&url=\'+encodeURIComponent(location.href)+\'&title=\'+encodeURIComponent(delicious_title), \'delicious\',\'toolbar=no,width=700,height=400\'); return false;">'.$SBDeliciousLink.'</a>';
            break;
    }

    return $out;
}

function SBTagTranslate($service, $parsed_args) {
    $digg = array( 'url'   => 'digg_url',
                   'title' => 'digg_title',
                   'body'  => 'digg_bodytext',
                   'topic' => 'digg_topic');         
    $digglink = $digg;
                        
    $reddit = array( 'url'     => 'reddit_url',
                     'title'   => 'reddit_title',
                     'type'    => 'reddit_type');
    $redditsmall = $reddit;
                     
    $delicious = array( 'title' => 'delicious_title');
    
    foreach($$service as $key => $tag) 
        if (isset($parsed_args[$key])) 
            $out[$tag] = $parsed_args[$key];
    
    return $out;
}

function SBGenerateJSTags($tags) {
    $out = '';
    if (count($tags) > 0) {
        $out .= '<script type="text/javascript">'."\n";
        foreach($tags as $tag => $value)
            $out .= $tag.' = \''.htmlspecialchars($value).'\';'."\n";
        $out .= '</script>'."\n";        
    }
    return $out;
}
?>