/* sIFR inicializace */
var ffont = { src: 'http://duha.web.cognito.cz/images/franklin.swf',ratios: [7,1.32,11,1.31,13,1.24,14,1.25,19,1.23,27,1.2,34,1.19,42,1.18,47,1.17,48,1.18,69,1.17,74,1.16,75,1.17,1.16] };
/**/
sIFR.delayCSS  = true;
sIFR.activate(ffont);
/**/

var formValues = new Array();

$(function() {
	$('.lightbox a, a.lightbox').lightBox({
    overlayBgColor:'#000',
    overlayOpacity:0.8,
    fixedNavigation:false,
    imageLoading:'/images/lightbox-ico-loading.gif',
    imageBtnPrev:'/images/lightbox-btn-prev.png',
    imageBtnNext:'/images/lightbox-btn-next.png',
    imageBtnClose:'/images/lightbox-btn-close.png',
    imageBlank:'/images/transparent.gif',
    containerBorderSize:10,
    containerResizeSpeed:400,
    txtImage:'Obrázek: ',
    txtOf:'z',
    keyToClose:'c',
    keyToPrev:'p',
    keyToNext:'n',
    imageArray:[],
    activeImage:0
  });
});

// var evenOdd = {
//   init: function()
//   {
//     $('table tr:odd' ).addClass('odd');
//     $('table tr:even').addClass('even');
//   }
// }

var makeColumns = {
  config:
  {
    // pocet sloupcu
    columns:  3,
    // element zpracovavany do sloupce
    item:     '.columnarize',
    // obal sloupcu
    wrapID:   '.columns',
    // html obalu sloupcu
    wrapHTML: '<div class="cleaned box columns columnsA"></div>',
    // sloupec
    colClass: '.column',
    // html sloupce
    colHTML:  '<ul class="column"></ul>'
  },
  init: function()
  {
    // za rodice zpracovavanych elementu (posledni) prilepime obal sloupcu
    $(makeColumns.config.item /*+ ':last'*/ ).parent('ul').after(makeColumns.config.wrapHTML );
    // objekt obalu sloupcu
    this.wrapper = $(makeColumns.config.wrapID );
    // do obalu sloupcu prilepime dany pocet sloupcu
    for ( i = 0; i < makeColumns.config.columns; i++ )
    {
      this.wrapper.append($(makeColumns.config.colHTML).css('float', 'left' ) );
    }
    // TODO: krajinich sloupcu nastavit nulovy okraj
    // nastavime sirku sloupcu ze sirky obalu sloupcu, poctu sloupcu a okraje sloupce
    $(makeColumns.config.wrapID + ' ' + makeColumns.config.colClass ).css('width', this.wrapper.width() / makeColumns.config.columns - parseInt($(makeColumns.config.wrapID + ' ' + makeColumns.config.colClass ).css('margin-right') ) + 'px' );

    i = 0;

    // projdeme zpracovavane elementy
    $(makeColumns.config.item ).each(
      function()
      {
        // do kazdeho sloupce presuneme po jednom zpracovavanem elementu
        if ( i < makeColumns.config.columns )
        {
           $(this).appendTo(makeColumns.config.wrapID + ' ' + makeColumns.config.colClass + ':eq(' + i + ')' );
        }
        // dalsi zpracovavany element presuneme do nejnizsiho sloupce
        else
        {
          // za nejnizsi sloupec povazujeme prvni
          makeColumns.minHeight = parseInt($(makeColumns.config.wrapID + ' ' + makeColumns.config.colClass + ':first' ).height() );
          makeColumns.appendCol = 0;
          // projdeme ostatni sloupce, jestli nenajdeme nizsi sloupec
          for ( j = 1; j < makeColumns.config.columns; j++ )
          {
            if ( makeColumns.minHeight > parseInt($(makeColumns.config.wrapID + ' ' + makeColumns.config.colClass + ':eq(' + j + ')' ).height() ) )
            {
              makeColumns.minHeight = parseInt($(makeColumns.config.wrapID + ' ' + makeColumns.config.colClass + ':eq(' + j + ')' ).height() );
              makeColumns.appendCol = j;
            }
          }
          // zpracovavany element presuneme do nejnizsiho sloupce
          $(this).appendTo(makeColumns.config.wrapID + ' ' + makeColumns.config.colClass + ':eq(' + makeColumns.appendCol + ')' );
        }
        i++;
      }
    );
    // odstranime rodice zpracovavanych elementu
    this.wrapper.prev('ul').remove();
  }
};

var makeSubmitForm = {
  config:
  {
    formID: '.autoSubmit',
    wrapID: '.submit'
  },
  init: function()
  {
    $(makeSubmitForm.config.formID + ' :submit').hide();
    $(makeSubmitForm.config.formID + ' ' + makeSubmitForm.config.wrapID ).hide();
    $(makeSubmitForm.config.formID + ' :checkbox, ' + makeSubmitForm.config.formID + ' :radio').click(
      function()
      {
        $(makeSubmitForm.config.formID).submit();
      }
    );
//     $(makeSubmitForm.config.formID + ' label').click(
//       function()
//       {
//         $('#' + $(this).attr('for') ).attr('checked', 'checked');
//         $(makeSubmitForm.config.formID).submit();
//       }
//     );
  }
}

var makeSelect = {
  config:
  {
    selectID: '.select',
    titleID:  '#pageTitle',
    openedID: 'opened',
    closedID: 'closed'
//     itemID:   '.filterItem',
    // 
//     itemHTML: '<li class="filterItem"></li>',
    //
//     controlID: '.control',
    //
//     controlHTML: '<li class="control"><a href="#"><!-- --></a></li>',
    //
//     colHTML:  '<ul class="column"></ul>'
  },
  init: function()
  {

//     $('#pageTitle' + makeSelect.config.itemID );
    
    $(makeSelect.config.selectID ).addClass(makeSelect.config.closedID );
    
//     $(makeSelect.config.selectID + ' ' + makeSelect.config.itemID ).hide();
//
//     $(makeSelect.config.selectID ).prepend($(makeSelect.config.itemHTML ).append($('#pageTitle' + makeSelect.config.itemID ) ).addClass('selected' ) );
    
    $(makeSelect.config.selectID ).prepend($(makeSelect.config.titleID ) );
    
//     $(makeSelect.config.selectID ).append(makeSelect.config.controlHTML );
//
//     $(makeSelect.config.controlID ).click(
//       function()
//       {
//         if ( $(makeSelect.config.selectID ).hasClass('opened' ) )
//         {
// //           $(makeSelect.config.selectID + ' ' + makeSelect.config.itemID ).hide();
//           $(makeSelect.config.selectID ).removeClass('opened' );
//           $(makeSelect.config.selectID ).addClass('closed' );
//         }
//         else
//         {
// //           $(makeSelect.config.selectID + ' ' + makeSelect.config.itemID ).show();
//           $(makeSelect.config.selectID ).removeClass('closed' );
//           $(makeSelect.config.selectID ).addClass('opened' );
//         }
//         return false;
//       }
// //       function()
// //       {
// //         $(makeSelect.config.selectID + ' ' + makeSelect.config.itemID ).show();
// //         $(makeSelect.config.selectID ).removeClass('closed' );
// //         $(makeSelect.config.selectID ).addClass('opened' );
// //       },
// //       function()
// //       {
// //         $(makeSelect.config.selectID + ' ' + makeSelect.config.itemID + ':not .selected' ).hide();
// //         $(makeSelect.config.selectID ).removeClass('opened' );
// //         $(makeSelect.config.selectID ).addClass('closed' );
// //       }
//     );
    
    
    $(makeSelect.config.selectID ).hover(
      function()
      {
//         $(makeSelect.config.selectID ).toggleClass('closed', 'opened' );
        $(makeSelect.config.selectID ).removeClass(makeSelect.config.closedID );
        $(makeSelect.config.selectID ).addClass(makeSelect.config.openedID );

      },
      function()
      {
//         $(makeSelect.config.selectID ).toggleClass('closed', 'opened' );
        $(makeSelect.config.selectID ).removeClass(makeSelect.config.openedID );
        $(makeSelect.config.selectID ).addClass(makeSelect.config.closedID );
      }
    );
  }
};

var balanceColumns = {
  config:
  {
    wrapID:     '.balancing',
    columnID:   '.balanced',
    balanceID:  '.balance'
  },
  init: function()
  {
    $(balanceColumns.config.wrapID ).each(
      function()
      {
        // maximalni vyska elementu
        makeColumns.maxHeight = $(this).height();
        // projdeme zpracovavane elementy
        $(this).find(balanceColumns.config.columnID ).each(
          function()
          {
            // element potrebuje vyvazit vysku
            if ( $(this).height() < makeColumns.maxHeight )
            {
              // vyrovnavaci element
              makeColumns.balance = $(this).find(balanceColumns.config.balanceID );
              // nastavovana vyska
              makeColumns.height  = makeColumns.balance.height() + makeColumns.maxHeight - $(this).height();

// alert(makeColumns.maxHeight + ' ' + $(this).height() + ' ' + makeColumns.balance.height() + ' ' + makeColumns.height );
              
              // nastaveni vysky
              if($.browser.msie && parseInt($.browser.version ) < 7 )
              {
                // pro IE6
                makeColumns.balance.css('height', makeColumns.height );
              }
              else
              {
                // pro ostatni prohlizece
                makeColumns.balance.css('min-height', makeColumns.height );
              }
            }
          }
        );
      }
    );
  }
}

var makeTips = {
  config:
  {
    wrapID:   '#tips',
    tipID:    '.item',
    showID:   'show',
    timeout:  3000
  },
  init: function()
  {
    $(makeTips.config.wrapID ).hover(
      function()
      {
        clearTimeout(makeTips.interval );
      },
      function()
      {
        makeTips.go();
      }
    );
    makeTips.go();
  },
  go: function()
  {
    makeTips.interval = setInterval('makeTips.change()', makeTips.config.timeout );
  },
  change: function()
  {
    makeTips.showed = $(makeTips.config.wrapID + ' .' + makeTips.config.showID );
    if ( makeTips.showed.next(makeTips.config.tipID ).length )
    {
      makeTips.showed.next(makeTips.config.tipID ).toggleClass(makeTips.config.showID );
    }
    else
    {
      $(makeTips.config.wrapID + ' ' + makeTips.config.tipID + ':first' ).toggleClass(makeTips.config.showID );
    }
    makeTips.showed.toggleClass(makeTips.config.showID );
  }
}

/*******************************************
 *
 *  on DOM ready
 *
 ********************************************/
$(document).ready(function()
{

  jQuery.easing.def = 'easeOutCubic';


  makeColumns.init();
  balanceColumns.init();
  makeSubmitForm.init();
  makeSelect.init();
//   evenOdd.init();
  makeTips.init();

  // fix eolas
  var objects = document.getElementsByTagName('object');
  for ( var i=0; i<objects.length; i++ )
  {
    objects[i].outerHTML = objects[i].outerHTML;
  }

  var colors = new Array();
  colors[1] = '#418200';
  colors[2] = '#ffffff';

  var fonts = new Array();
  fonts[1] = '36px';
  fonts[2] = '30px';
  fonts[3] = '32px';

  /* sIFR replace */
  sIFR.replace(ffont,
  {
    selector: '#tips .sifr',
    css:
      [
      '.sIFR-root { text-transform: uppercase; font-size: '+fonts[3]+'; color: '+colors[2]+'; }',
      'a { color: '+colors[1]+'; text-decoration: none; }',
      'a:link { color: '+colors[2]+'; }',
      'a:visited { color: '+colors[2]+'; }',
      'a:hover { color: '+colors[2]+'; }',
      'a:focus { color: '+colors[2]+'; }',
      'a:active { color: '+colors[2]+'; }'
      ],
    wmode: 'transparent',
    fitExactly: true,
    filters: {
      DropShadow: {
        knockout: false,
        distance: 2,
        color: '#000000',
        strength: 1
      }
    }
  });

  /* sIFR replace */
  sIFR.replace(ffont,
  {
    selector: '#actualItem .sifr',
    css:
      [
      '.sIFR-root { font-size: '+fonts[2]+'; color: '+colors[1]+'; }',
      'a { color: '+colors[1]+'; text-decoration: none; }',
      'a:link { color: '+colors[1]+'; }',
      'a:visited { color: '+colors[1]+'; }',
      'a:hover { color: '+colors[1]+'; }',
      'a:focus { color: '+colors[1]+'; }',
      'a:active { color: '+colors[1]+'; }'
      ],
    wmode: 'transparent',
    fitExactly: true
  });

  /* sIFR replace */
  sIFR.replace(ffont,
  {
    selector: '.sifr',
    css:
      [
      '.sIFR-root { font-size: '+fonts[1]+'; color: '+colors[1]+'; }',
      'a { color: '+colors[1]+'; text-decoration: none; }',
      'a:link { color: '+colors[1]+'; }',
      'a:visited { color: '+colors[1]+'; }',
      'a:hover { color: '+colors[1]+'; }',
      'a:focus { color: '+colors[1]+'; }',
      'a:active { color: '+colors[1]+'; }'
      ],
    wmode: 'transparent',
    fitExactly: true
  });

  // odkaz Vytisknout
  $('.appendPrint').prepend(' <a href="javascript:window.print();" class="icon iPrint">Vytisknout<'+'/a> <span class="icon iBurster"><span>|<'+'/span><'+'/span> ' );
  $('.appendPrintForm .nextStep').before(' <span class="print"><a href="javascript:window.print();" class="button">Vytisknout<'+'/a> <'+'/span> ' );

  /* slide * /
  $('#slideArea').after('<span id="slideRight" class="slider"><a href="#"><!-- --></a></span><span id="slideLeft" class="slider"><a href="#"><!-- --></a></span>');

  var slideMarginLeft    = 0;
  var maxSlideMarginLeft = 0;
  var itemWidth          = parseInt($('#slideArea .item').css('margin-left')) + parseInt($('#slideArea .item').css('margin-right')) +
                           parseInt($('#slideArea .item').css('border-left-width')) + parseInt($('#slideArea .item').css('border-right-width')) +
                           parseInt($('#slideArea .item').css('padding-left')) + parseInt($('#slideArea .item').css('padding-right')) +
                           $('#slideArea .item').width();
  var countItem          = 0;

// TODO: počítat z šířky slideArea a itemWidth počet zobrazených položek

  $('#slideRight a').click(
    function()
    {
      if ( slideMarginLeft > maxSlideMarginLeft )
      {
        slideMarginLeft -= itemWidth;
        $('.items').animate({marginLeft: slideMarginLeft }, 'normal');
//         $('#slideRight').removeClass('hidden');
      }
      if ( slideMarginLeft <= maxSlideMarginLeft )
      {
        $('#slideRight a').fadeOut('normal');
      }
      if ( slideMarginLeft < 0 )
      {
        $('#slideLeft a').fadeIn('normal');
      }
      return false;
    }
  );

  $('#slideLeft a').click(
    function()
    {
      if ( slideMarginLeft < 0 )
      {
        slideMarginLeft += itemWidth;
        $('.items').animate({marginLeft: slideMarginLeft }, 'normal');
      }
      if ( slideMarginLeft >= 0 )
      {
        $('#slideLeft a').fadeOut('normal');
      }
      if ( slideMarginLeft > maxSlideMarginLeft )
      {
        $('#slideRight a').fadeIn('normal');
      }
      return false;
    }
  );

  countItem = $('.items  .item').length;

  maxSlideMarginLeft = ( -itemWidth * ( countItem - 3 ) );

  if ( slideMarginLeft >= 0 )
  {
    $('#slideLeft a').hide();
  }

  if ( maxSlideMarginLeft >= 0 || countItem == 0 )
  {
    $('#slideRight a').hide();
  }

  /* change events */
//   $('select').change(
//     function()
//     {
//       $(this).parents('form').submit();
//     }
//   );

  /* focus events */
  $('#search-string').focus(
    function()
    {
      var itemID = $(this).attr('id');

      if ( formValues[itemID] == null || $(this).val() == formValues[itemID] )
      {
        formValues[itemID] = $(this).val();
        $(this).val('');
      }
    }
  );

  /* onblur events */
  $('#search-string').blur(
    function()
    {
      if( $(this).val() == '')
      {
        $(this).val(formValues[$(this).attr('id')]);
      }
    }
  );

});
