<?php
defined('_JEXEC') or die;

if (!defined('_ARTX_FUNCTIONS'))
  require_once dirname(__FILE__) . str_replace('/', DIRECTORY_SEPARATOR, '/../functions.php');

function modChrome_artstyle($module, &$params, &$attribs)
{
  $style = isset($attribs['artstyle']) ? $attribs['artstyle'] : 'bmpad-nostyle';
  $styles = array(
    'bmpad-nostyle' => 'modChrome_artnostyle',
    'bmpad-block' => 'modChrome_artblock',
    'bmpad-article' => 'modChrome_artarticle',
    'bmpad-vmenu' => 'modChrome_artvmenu'
  );
  // moduleclass_sfx support:
  //  '' or 'suffix'   - the default module style: custom suffix will not be added to the module tag
  //                     but will be added to the module elements.
  //  ' suffix'        - adds suffix to the module as well as to the module elements.
  //  'bmpad-...'        - overwrites the default module style.
  //  'suffix bmpad-...' - overwrites the default style and adds suffix to the module and
  //                     to its elements, does not add bmpad-... to the module elements.
  
  $classes = explode(' ', rtrim($params->get('moduleclass_sfx')));
  $keys = array_keys($styles);
  $art = array();
  foreach ($classes as $key => $class) {
    if (in_array($class, $keys)) {
      $art[] = $class;
      $classes[$key] = ' ';
    }
  }
  $classes = str_replace('  ', ' ', rtrim(implode(' ', $classes)));
  $style = count($art) ? array_pop($art) : $style;
  $params->set('moduleclass_sfx', $classes);
  
  $module->content = preg_replace_callback('/<script[^>]*>([\s\S]+?)<\/script>/', 'parseInlineModuleScripts', $module->content);
  
  call_user_func($styles[$style], $module, $params, $attribs);
}

function parseInlineModuleScripts($matches) {
    if (strpos($matches[1], '/*Artisteer scripts*/')) {
        $modulesJs = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'modules.js';
        $content = file_get_contents($modulesJs);
        file_put_contents($modulesJs, $content . $matches[1]);
        return "";
    } else {
        return $matches[0];
    }
}

function modChrome_artnostyle($module, &$params, &$attribs)
{
if (!empty ($module->content)) : ?>
<!-- begin nostyle -->
<div class="bmpad-nostyle<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif; ?>
<!-- begin nostyle content -->
<?php echo $module->content; ?>
<!-- end nostyle content -->
</div>
<!-- end nostyle -->
<?php endif;
}

function modChrome_artblock($module, &$params, &$attribs)
{
  if (!empty ($module->content))
    echo artxBlock(($module->showtitle != 0) ? $module->title : '', artxBalanceTags($module->content),
      $params->get('moduleclass_sfx'));
}

function modChrome_artvmenu($module, &$params, &$attribs)
{
  if (!empty ($module->content)) {
    if (function_exists('artxVMenuBlock'))
      echo artxVMenuBlock(($module->showtitle != 0) ? $module->title : '', $module->content,
        $params->get('moduleclass_sfx'));
    else
      echo artxBlock(($module->showtitle != 0) ? $module->title : '', $module->content,
        $params->get('moduleclass_sfx'));
  }
}

function modChrome_artarticle($module, &$params, &$attribs)
{
  if (!empty ($module->content)) {
    $data = array('classes' => $params->get('moduleclass_sfx'), 'content' => $module->content);
    if ($module->showtitle != 0)
      $data['header-text'] = $module->title;
    echo artxPost($data);
  }
}
