<?php

/**
 * Implements hook_menu().
 */
function diy_oewa_menu() {
  $items = array();

  $items['admin/config/diy/oewa'] = array(
    'title' => 'OEWA Settings',
    'description' => 'Configuration for oewa pixel',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('diy_oewa_settings_form'),
    'access arguments' => array('administer diy defaults'),
    'type' => MENU_NORMAL_ITEM,
  );

  return $items;
}

/**
 * Page callback: DIY settings
 */
function diy_oewa_settings_form($form, &$form_state) {
  $form['diy_oewa_livemode'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable OEWA pixel live mode'),
    '#default_value' => variable_get('diy_oewa_livemode', false),
    '#required' => FALSE,
  );

  return system_settings_form($form);
}

/**
 * Implements template_preprocess_html().
 */
function diy_oewa_preprocess_html(&$variables) {
  // if user is admin or redaktion, do not provide pixel
  global $user;
  $role_ids = array_keys($user->roles);
  if((in_array(3, $role_ids) || in_array(4, $role_ids)) && variable_get('diy_oewa_livemode', false)) {
    return;
  }

  $settings = array();
  $settings['SKTGEANGmoewa'] = _diy_oewa_get_SKTGEANGmoewa();
  $settings['PAGEID'] = _diy_oewa_get_PAGEID();

  $current_domain = domain_get_domain();
  $sitename_mapping = array(
    4 => 'at_w_atdiybook',
    3 => 'at_w_chdiybook',
    5 => 'at_w_dediybook'
  );

  $oewa_st = $sitename_mapping[4];
  if(isset($sitename_mapping[$current_domain['domain_id']])) {
    $oewa_st = $sitename_mapping[$current_domain['domain_id']];
  }

  $variables['oewa_head'] = array(
    'cn' => 'at',
    'st' => $oewa_st,
    'cp' => $settings['SKTGEANGmoewa'] . '/' . $settings['PAGEID']
  );

  $variables['oewa_live'] = variable_get('diy_oewa_livemode', false);
}


function _diy_oewa_get_SKTGEANGmoewa() {
  // frontpage
  if(drupal_is_front_page()) {
    return 'Service/Homepage/Homepage';
  }

  if($menu_item = menu_get_item()) {
    if(isset($menu_item['path']) && !empty($menu_item['path'])) {

      if($menu_item['path'] == 'meine-token/aktuell'
        || $menu_item['path'] == 'checkout/%'
        || $menu_item['path'] == 'checkout/%/%'
        || $menu_item['path'] == 'confirm_cancellation'
        || $menu_item['path'] == 'user/%/orders'
        || $menu_item['path'] == 'user/%/orders/%') {
        return 'Ecommerce/OnlineShop/Service';
      }

    }
  }

  if(arg(0) == 'node' && arg(1) == 'add' && arg(2) == 'token-paket') {
    return 'Ecommerce/OnlineShop/Service';
  }

  if(arg(0) == 'node' && arg(1) == 'add' && arg(2) == 'inserat') {
    return 'Service/Rubrikenmaerkte/Sonstiges';
  }

  // content types
  if($node = menu_get_object()) {

    // check for pixelpath
    if($field_oewa_pixelpfad = field_get_items('node', $node, 'field_oewa_pixelpfad')) {
      return $field_oewa_pixelpfad[0]['value'];
    }

    if(isset($node->type) && in_array($node->type, array('article', 'material', 'video', 'ct_werkzeug', 'topic', 'product'))) {
      return 'RedCont/Lifestyle/FreizeitgestaltungUndHobbies';
    }
    if(isset($node->type) && in_array($node->type, array('news'))) {
      return 'RedCont/Lifestyle/FreizeitgestaltungUndHobbies';
    }

    if(isset($node->type) && in_array($node->type, array('branche'))) {
      return 'Service/Rubrikenmaerkte/Sonstiges';
    }

    if(isset($node->type) && in_array($node->type, array('inserat'))) {
      return 'Service/Rubrikenmaerkte/Sonstiges';
    }

  }

  // views
  $views_page = views_get_page_view();
  if (is_object($views_page)) {

    if($views_page->name == 'guidebook_channel') {
      return 'RedCont/Lifestyle/FreizeitgestaltungUndHobbies';
    }

    if($views_page->name == 'taxonomy_search') {
      return 'RedCont/Lifestyle/FreizeitgestaltungUndHobbies';
    }

    if($views_page->name == 'news' || $views_page->name == 'newsfeed') {
      return 'RedCont/Lifestyle/FreizeitgestaltungUndHobbies';
    }

    if($views_page->name == 'heimwerker_suchen') {
      return 'Service/Suchmaschinen/Spezialsuche';
    }

    if($views_page->name == 'inserate_suche_map') {
      return 'Service/Suchmaschinen/Spezialsuche';
    }

  }

  // NO PATH FOUND LOG IT
  #watchdog('diy_oewa', 'no SKTG/EANG/moewa found at !url', array('!url' => current_path()), WATCHDOG_ERROR);

  // default
  return 'Service/Unternehmenskommunikation/Unternehmenskommunikation';

}

function _diy_oewa_get_PAGEID() {
  $current_domain = domain_get_domain();
  $domain = $current_domain['subdomain'];

  return $domain;
}