/* functions */
function goTo(address, timeout, new_window)
{
  if(timeout > 0)
  {
    window.setTimeout(function(){
      if(new_window == 'yes')
      {
        window.open(address);
      }
      else
      {
        document.location.href = address;
      }
    }, timeout);
  }
  else
  {
    if(new_window == 'yes')
    {
      window.open(address);
    }
    else
    {
      document.location.href = address;
    }
  }
}

function confirmQuestion(question, address)
{
  if(confirm(question))
  {
    goTo(address);
  }
}

function showEmail(name, domain, cy, text)
{
  return '<a href="mailto:'+name+'@'+domain+'.'+cy+'">'+text+'</a>';
}


function popUp(url, p)
{
  popup = window.open(url, 'popup', 'width='+p.width+',height='+p.height+',status='+p.status+',location='+p.location+',scrollbars='+p.scrollbars+',resizable='+p.resizable+',menubar='+p.menubar+',toolbar='+p.toolbar+',top='+p.top+',left='+p.left);
  popup.focus();
}

function showConfigPictureLayer(pp_id)
{
  $.ajax({
    url: '../ajax/request-zoomPicture.php',
    data: {'p_imagepath': pp_id, 'p_image_type': 'product', 'p_size': 'program_layer'},
    type: 'POST',
    async: false,
    cache: false,
    success: function(val) {
      $('#program-layer-config-picture').html(val);
      $('#program-layer-config-content').slideUp('slow', function(){ $('#program-layer-config-picture').slideDown('slow'); $('#program-layer > div[name="close-btn"]', parent.document).hide(); });
    }
  });
}

function openPictureLayer(image_path, image_type)
{
  program_layer_open = false;

  if(image_type)
  {
    var img_width = 800;
    var img_height = 600;

    $.ajax({
      url: 'ajax/request-zoomPicture.php',
      data: {'p_imagepath': image_path, 'p_image_type': image_type},
      type: 'POST',
      async: false,
      cache: false,
      success: function(val) {
        $('#site-shadow').fadeIn('slow');
        $('#picture-layer > div[name="close-btn"]').show();
        $('#picture-layer').css({top: ((document.documentElement.clientHeight / 2) - (img_height / 2))+'px', left: ((document.documentElement.clientWidth / 2) - (img_width / 2))+'px'}).fadeIn('slow');
        $('#picture-layer > div[name="picture"]').html(val);
      }
    });
  }
  else
  {
    var img_height = 0;
    var img_width = 0;

    $.ajax({
      url: 'ajax/request-imageDimension.php',
      data: {'p_imagepath': image_path},
      type: 'POST',
      async: false,
      cache: false,
      success: function(val) {
        var dimensions = val.split(';');
        img_width = parseFloat(dimensions[0]) + 2; // + 2 border px
        img_height = parseFloat(dimensions[1]) + 2; // + 2 border px

        $('#site-shadow').fadeIn('slow');
        $('#picture-layer > div[name="close-btn"]').hide();
        $('#picture-layer').css({top: ((document.documentElement.clientHeight / 2) - (img_height / 2))+'px', left: ((document.documentElement.clientWidth / 2) - (img_width / 2))+'px'}).fadeIn('slow');
        $('#picture-layer > div[name="picture"]').html('<img src="' + image_path + '" onClick="closePictureLayer();">');
      }
    });
  }
}

function closePictureLayer()
{
  if(program_layer_open === false)
  {
    $('#site-shadow, #picture-layer').fadeOut('slow', function(){ $('#picture-layer > div[name="picture"]').html(''); });
  }
}

function openDirectionLayer(langCode, translateContent, addressIframe)
{
  program_layer_open = false;
  var htmlContent = '';

  if(addressIframe == 'de')
  {
    htmlContent = '<iframe width="800" height="600" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.de/maps?hl=' + langCode + '&amp;ie=UTF8&amp;q=Fromm+%26+Co.+GmbH&amp;fb=1&amp;gl=' + langCode + '&amp;hq=Fromm+%26+Co.+GmbH&amp;hnear=Saarbr%C3%BCcken&amp;view=map&amp;cid=10134490752212976393&amp;t=h&amp;ll=49.235366,6.996467&amp;spn=0.008407,0.017145&amp;z=16&amp;iwloc=A&amp;output=embed"></iframe><br><small><a href="http://maps.google.de/maps?hl=' + langCode + '&amp;ie=UTF8&amp;q=Fromm+%26+Co.+GmbH&amp;fb=1&amp;gl=' + langCode + '&amp;hq=Fromm+%26+Co.+GmbH&amp;hnear=Saarbr%C3%BCcken&amp;view=map&amp;cid=10134490752212976393&amp;t=h&amp;ll=49.235366,6.996467&amp;spn=0.008407,0.017145&amp;z=16&amp;iwloc=A&amp;source=embed" style="text-align: left;" target="_blank">' + translateContent.largerMap + '</a></small>';
  }
  else
  {
    htmlContent = '<iframe width="800" height="600" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.de/maps?f=q&amp;source=s_q&amp;hl=' + langCode + '&amp;geocode=&amp;q=163+Cowie,+Suite+103,+Granby-Quebec,+J2G+3V5,+Kanada&amp;sll=51.151786,10.415039&amp;sspn=20.363792,57.084961&amp;ie=UTF8&amp;hq=&amp;hnear=163+Rue+Cowie,+Granby,+La+Haute-Yamaska,+Qu%C3%A9bec+J2G+3V5,+Kanada&amp;t=h&amp;ll=45.397486,-72.726402&amp;spn=0.036161,0.068579&amp;z=14&amp;iwloc=A&amp;output=embed"></iframe><br><small><a href="http://maps.google.de/maps?f=q&amp;source=embed&amp;hl=' + langCode + '&amp;geocode=&amp;q=163+Cowie,+Suite+103,+Granby-Quebec,+J2G+3V5,+Kanada&amp;sll=51.151786,10.415039&amp;sspn=20.363792,57.084961&amp;ie=UTF8&amp;hq=&amp;hnear=163+Rue+Cowie,+Granby,+La+Haute-Yamaska,+Qu%C3%A9bec+J2G+3V5,+Kanada&amp;t=h&amp;ll=45.397486,-72.726402&amp;spn=0.036161,0.068579&amp;z=14&amp;iwloc=A" style="text-align: left;" target="_blank">' + translateContent.largerMap + '</a></small>';
  }

  $('#site-shadow').fadeIn('slow');
  $('#direction-layer > div[name="map"]').html(htmlContent);
  $('#direction-layer').css({top: ((document.documentElement.clientHeight / 2) - 307)+'px', left: ((document.documentElement.clientWidth / 2) - 400)+'px'}).fadeIn('slow');
}

function closeDirectionLayer()
{
  if(program_layer_open === false)
  {
    $('#site-shadow, #direction-layer').fadeOut('slow');
  }
}

function openProgramLayer(assortment_id)
{
  program_layer_open = true;

  $('#program-layer > iframe').attr('src', 'program/index.php?include=select&a=' + assortment_id + '&start=yes');
  $('#site-shadow').fadeIn('slow');
  $('#program-layer').css({top: '43px', left: ((document.documentElement.clientWidth / 2) - 480)+'px'}).fadeIn('slow');
}

function closeProgramLayer(close_msg)
{
  if(close_msg && program_layer_open == true)
  {
    if(confirm(close_msg) === true)
    {
      $('#site-shadow, #program-layer').fadeOut('slow');
    }
  }
  else
  {
    $('#site-shadow, #program-layer').fadeOut('slow');
  }
}

function toggleSubNavi(element_id)
{
  var sn_id = 'sn-' + element_id;
  var n_id = 'n-' + element_id;

  var sn_display = $('#' + sn_id).css('display');

  $('.subnavi').hide();

  if(sn_display == 'none')
  {
    var link_offset = $('#' + n_id).offset();
    $('#' + sn_id).css({'left': link_offset.left + 'px', 'top': (link_offset.top + 27) + 'px'}).show();
  }
}

function toggleDisplay(element_id)
{
  if($('#' + element_id).css('display') == 'none')
  {
    $('#' + element_id).show();
  }
  else
  {
    $('#' + element_id).hide();
  }
}

function productCategorySliderNavi(product_category_id)
{
  var active_layer = $('div[id^="pp-all-pc-' + product_category_id + '"]:visible');

  var active_numb_array = active_layer.attr('id').split('-');
  var active_numb = active_numb_array[4];

  if($('#pp-all-pc-' + product_category_id + '-' + (parseFloat(active_numb) - 1)).length > 0)
  {
    $('#pc-slider-prev-' + product_category_id).removeClass('text-button-disabled').addClass('text-button-enabled');
  }
  else
  {
    $('#pc-slider-prev-' + product_category_id).removeClass('text-button-enabled').addClass('text-button-disabled');
  }

  if($('#pp-all-pc-' + product_category_id + '-' + (parseFloat(active_numb) + 1)).length > 0)
  {
    $('#pc-slider-next-' + product_category_id).removeClass('text-button-disabled').addClass('text-button-enabled');
  }
  else
  {
    $('#pc-slider-next-' + product_category_id).removeClass('text-button-enabled').addClass('text-button-disabled');
  }
}

function productCategorySlider(product_category_id, mode)
{
  var count_layers = $('div[id^="pp-all-pc-' + product_category_id + '"]').length;
  var active_layer = $('div[id^="pp-all-pc-' + product_category_id + '"]:visible');

  var active_numb_array = active_layer.attr('id').split('-');
  var active_numb = active_numb_array[4];

  switch(mode)
  {
    case 'prev':
      if(active_numb > 1)
      {
        $('#pp-all-pc-' + product_category_id + '-' + active_numb).fadeOut('slow', function(){
          $('#pp-all-pc-' + product_category_id + '-' + (parseFloat(active_numb) - 1)).fadeIn('slow');
          productCategorySliderNavi(product_category_id);
        });
      }
    break;
    case 'next':
      if(active_numb < count_layers)
      {
        $('#pp-all-pc-' + product_category_id + '-' + active_numb).fadeOut('slow', function(){
          $('#pp-all-pc-' + product_category_id + '-' + (parseFloat(active_numb) + 1)).fadeIn('slow');
          productCategorySliderNavi(product_category_id);
        });
      }
    break;
  }
}

function roomCategorySlider(site)
{
  $('.rcs-row').hide();
  $('#rcs-row-' + site).fadeIn();
}

function changeOfferType(offer_id, assortment_id)
{
  $('.ot-radio').attr('checked', '');
  $('.ot-text-enabled').removeClass('ot-text-enabled').addClass('ot-text-disabled');

  $('#ot-radio-' + offer_id).attr('checked', 'checked');
  $('#ot-text-' + offer_id).removeClass('ot-text-disabled').addClass('ot-text-enabled');

  $('div[id^="offer-content-"]').hide();

  switch(offer_id)
  {
    case 1:
    case 2:
      $('#offer-content-' + offer_id).slideDown('slow');
    break;
    /*
    case 3:
      goTo('index.php?include=config&a=' + assortment_id);
    break;
    */
  }
}

function roomtypeChange(mode, removeId)
{
  var max_roomtype_fields = $('tr[id^="roomtype_"]').length;
  var roomtype_fields_visible = $('tr[id^="roomtype_"]:visible').length;

  switch(mode)
  {
    case 'remove':
      if(roomtype_fields_visible > 0)
      {
        $('input[name="roomtype_dscrtn_' + removeId + '"], input[name="roomtype_amount_' + removeId + '"]').val('');

        $('#roomtype_' + removeId).hide();
        $('#roomtype_add').show();
      }
    break;
    case 'add':
      if(roomtype_fields_visible < max_roomtype_fields)
      {
        for(var r = 1; r <= max_roomtype_fields; r++)
        {
          if($('#roomtype_' + r + ':hidden').length > 0)
          {
            $('#roomtype_' + r).show();
            break;
          }
        }

        if($('tr[id^="roomtype_"]:visible').length >= max_roomtype_fields)
        {
          $('#roomtype_add').hide();
        }
      }
    break;
  }
}

function toggleCategoryNavi(cn_id)
{
  $('div[id^="pc-"]').hide();
  $('#pc-' + cn_id).slideDown('slow');
}

function toolTip(tt_id, mode)
{
  $('div[class*="toolTip"]').hide();

  switch(mode)
  {
    case 'show':
      $('#' + tt_id).show();
    break;
    case 'hide':
      $('#' + tt_id).hide();
    break;
  }

  var div = $('#' + tt_id);
  var pos = div.offset();
  var height = pos.top + div.outerHeight();
  var window_height = $(window).height();
  if( height > window_height ) {
    var new_offset = -1 * (height - window_height);
    div.css('top', (new_offset - 10) + 'px');
  }
}

function preloadImages()
{
  var d = document;

  if(d.images)
  {
     if(!d.x_p){ d.x_p = new Array(); }

     var i, j = d.x_p.length, a = preloadImages.arguments;
     for(i = 0; i < a.length; i++)
     {
        if (a[i].indexOf("#") != 0)
        {
           d.x_p[j] = new Image;
           d.x_p[j++].src = a[i];
        }
     }
  }
}

function hoverAssortment(assortment_id, picture, first_assortment_id)
{
  if(curr_assortment_id > 0)
  {
    $('#bcg-image-' + curr_assortment_id).css('background-image', 'url(images/' + $('#bcg-image-' + curr_assortment_id).attr('apft') + ')');
  }

  if(first_assortment_id != assortment_id)
  {
    $('#bcg-image-' + first_assortment_id).css('background-image', 'url(images/' + $('#bcg-image-' + first_assortment_id).attr('apft') + ')');
  }

  $('#bcg-image-' + assortment_id).css('background-image', 'url(images/' + picture + ')');

  curr_assortment_id = assortment_id;
  curr_assortment_picture = picture;
}

function ajax_indexNews(site)
{
  $.ajax({
    url: 'ajax/request-indexNews.php',
    data: {'site': site},
    type: 'POST',
    async: false,
    cache: false,
    success: function(val) {
      $('#indexNews').html(val);
    }
  });
}

function ajax_programAssortment(site, category, last_assortment_id)
{
  $('#programAssortment').fadeOut('slow', function(){
    $.ajax({
      url: 'ajax/request-programAssortment.php',
      data: {'site': site, 'category': category, 'last_assortment_id': last_assortment_id},
      type: 'POST',
      async: false,
      cache: false,
      success: function(val) {
        $('#programAssortment').html(val).fadeIn('slow');
      }
    });
  });
}

function ajax_programAssortmentTab(site, layer, category, assortment)
{
  $('.bc-v3-tab-active').removeClass('bc-v3-tab-active').addClass('bc-v3-tab');

  $('#bc-v3-tab-content').fadeOut('slow', function(){
    $.ajax({
      url: 'ajax/request-programAssortmentTab.php',
      data: {'site': site, 'layer': layer, 'category': category, 'assortment': assortment},
      type: 'POST',
      async: false,
      cache: false,
      success: function(val) {
        $('#bc-v3-tab-id-' + layer).removeClass('bc-v3-tab').addClass('bc-v3-tab-active');
        $('#bc-v3-tab-content').html(val).fadeIn('slow');
      }
    });
  });
}

function protectImages(path)
{
  if (!path)
  {
    path = '';
  }

  $(document).ready(function(){
    var clearPixel = 'clear.png';
    $.each($('img'), function(index, image){
      var img_src = $(image).attr('src');
      if (img_src.indexOf(clearPixel) == -1)
      {
        var img_height = $(image).height();
        var img_width = $(image).width();

        $.ajax({
          url: path+'ajax/request-imageDimension.php',
          data: {'p_imagepath': img_src},
          type: 'POST',
          async: false,
          cache: false,
          success: function(val) {
            var dimensions = val.split(';');
            img_width = dimensions[0];
            img_height = dimensions[1];
          }
        });

        $(image).css({
          width: img_width+'px',
          height: img_height+'px',
          background: 'url('+img_src+') no-repeat top left'
        });

        $(image).attr('src', path+'images/'+clearPixel);
      }
    });
  });
}


/* globals */
var timeout_view = null;
var curr_assortment_id = 0;
var curr_assortment_picture = 0;
var program_layer_open = false;
