<?php



  function getMenuItemsByLocation($location) {
    $theme_locations = get_nav_menu_locations();
    if(isset($theme_locations[$location]))
      return wp_get_nav_menu_items($theme_locations[$location]);
    else
      return array();
  }



  function countItems($items, $parent) {
    $count = 0;
    foreach($items as $item)
      if($item->menu_item_parent == $parent)
        $count++;

    return $count;
  }



  function echoMenuItems($items, $args = array(), $parent = 0, $deepness = 0) {

    $started = false;

    foreach($items as $item){
      if($item->menu_item_parent == $parent){

        if(!$started){
          ?>
            <?php if(!isset($args['ul-show-'.$deepness]) || $args['ul-show-'.$deepness] !== false) { ?>
                <<?php echo isset($args['ul-element-'.$deepness]) ? $args['ul-element-'.$deepness] : 'ul' ?>
                  id="<?php echo isset($args['ul-id-'.$deepness]) ? $args['ul-id-'.$deepness] : '' ; ?>"
                  class="<?php echo isset($args['ul-class-'.$deepness]) ? $args['ul-class-'.$deepness] : '' ; ?>"
                  style="<?php echo isset($args['ul-style-'.$deepness]) ? $args['ul-style-'.$deepness] : '' ; ?>"
                  <?php
                    if(isset($args['ul-custom-'.$deepness])){
                      foreach($args['ul-custom-'.$deepness] as $key => $value){
                        echo $key . '="' . $value . '"';
                      }
                    }
                  ?>
                >
            <?php } ?>
          <?php
          $started = true;
        }

        ?>
          <?php if(!isset($args['li-show-'.$deepness]) || $args['li-show-'.$deepness] !== false) { ?>
            <<?php echo isset($args['li-element-'.$deepness]) ? $args['li-element-'.$deepness] : 'li' ?>
              class='<?php echo isset($args['li-class-'.$deepness]) ? $args['li-class-'.$deepness] : '' ; ?> <?php if(CountItems($items, $item->ID) > 0 && isset($args['li-class-'.$deepness.'-if'])) echo $args['li-class-'.$deepness.'-if'] ? $args['li-class-'.$deepness.'-if'] : ''; ?>'
              style='<?php echo isset($args['li-style-'.$deepness]) ? $args['li-style-'.$deepness] : '' ; ?> <?php if(CountItems($items, $item->ID) > 0 && isset($args['li-style-'.$deepness.'-if'])) echo $args['li-style-'.$deepness.'-if'] ? $args['li-style-'.$deepness.'-if'] : ''; ?>'
              <?php
                if(isset($args['li-custom-'.$deepness])){
                  foreach($args['li-custom-'.$deepness] as $key => $value){
                    echo $key . '="' . $value . '"';
                  }
                }
              ?>
            >
          <?php } ?>

            <<?php echo isset($args['a-element-'.$deepness]) ? $args['a-element-'.$deepness] : 'a' ?>
              class='<?php if(CountItems($items, $item->ID) > 0) echo isset($args['a-class-'.$deepness.'-if']) ? $args['a-class-'.$deepness.'-if'] : ''; ?> <?php echo isset($args['a-class-'.$deepness]) ? $args['a-class-'.$deepness] : '' ; ?> <?php if ($args['link'] == $item->url) echo $args['active-class']; ?>'
               style='<?php if(CountItems($items, $item->ID) > 0) echo isset($args['a-style-'.$deepness.'-if']) ? $args['a-style-'.$deepness.'-if'] : ''; ?> <?php echo isset($args['a-style-'.$deepness]) ? $args['a-style-'.$deepness] : '' ; ?>'
               href='<?php echo $item->url; ?>'
               <?php
                 if(isset($args['a-custom-'.$deepness])){
                   foreach($args['a-custom-'.$deepness] as $key => $value){
                     echo $key . '="' . $value . '"';
                   }
                 }
                 if(CountItems($items, $item->ID) > 0 && isset($args['a-custom-'.$deepness.'-if'])){
                   foreach($args['a-custom-'.$deepness.'-if'] as $key => $value){
                     echo $key . '="' . $value . '"';
                   }
                 }
               ?>
            >
              <?php echo $item->title; ?>
            </<?php echo isset($args['a-element-'.$deepness]) ? $args['a-element-'.$deepness] : 'a' ?>>

            <?php
              EchoMenuItems($items, $args, $item->ID, $deepness + 1);
            ?>

          <?php if(isset($args['li-show-'.$deepness]) && $args['li-show-'.$deepness] !== false) { ?>
            </<?php echo isset($args['li-element-'.$deepness]) ? $args['li-element-'.$deepness] : 'li' ?>>
          <?php } ?>

        <?php
      }
    }

    if($started){
      ?>
        <?php if(isset($args['ul-show-'.$deepness]) && $args['ul-show-'.$deepness] !== false) { ?>
          </<?php echo isset($args['ul-element-'.$deepness]) ? $args['ul-element-'.$deepness] : 'ul' ?>>
        <?php } ?>
      <?php
    }
  }
