/* Default kinoafisha api namespace "ka" */

var KaApi = {

    /**
     * Выполняет необходимые операции в момент загрузки данных с сеансами.
     *
     * @param  string  iId    ID контейнера с индикатором загрузки
     * @param  string  msc    ID основного контейнера , в который будут загружаться данные с сеансами.
     */
    doSeanceAjaxLoadingRoutines: function(iId, msc)
    {
        var i=document.getElementById(iId);
        if (!i){
            if(console){
                console.info('Seance indicator container not found.');
            }
            return;
        }
        i.style.display='block';
        i=jQuery('#' + msc);
        if (!i){
            if(console){
                console.info('Main seance container not found. ID=' + msc);
            }
            return ;
        }
        i.hide('fast');
    },
    
    /**
     * Выполняет необходимые операции в момент завершения загрузки данных через ajax запрос.
     *
     * @param  string  iId    ID контейнера с индикатором загрузки
     * @param  string  msc    ID основного контейнера , в который будут загружаться данные с сеансами.
     */
    doSeanceAjaxCompleteRoutines: function(iId ,msc )
    {
        var i=document.getElementById(iId);
        if(!i){
            if(console){
                console.info('Indicator container with ID=' + indicatorId + ' not found in the document.');
            }
            return ;
        }
        i.style.display='none';
        i=jQuery('#' + msc);
        if (!i){
            if(console){
                console.info('Main seance container with ID='+msc+' not found.');
            }
            return;
        }
        i.show('fast');
    },

    doSeanceChangeDateTitle : function(message,cId)
    {
        jQuery('#' + cId).html(message);
    },

    /**
     * Вынесено из свёрстанного макета.
     * С ajax-ом не работает. Теперь , эта функция будет срабатывать каждый раз , как триггер
     * при успешном завершении получения данных.
     */
    preRenderInit: function ()
    {
      jQuery('.rbmlist table tr').hover(function() {
        jQuery(this).addClass('hover');
      }, function() {
        jQuery(this).removeClass('hover');
      });
    },

    /**
     * Загружает данные через xmlhttprequest запрос в определённый html контейнер.
     *
     * Загрузит информацию о сеансах в контейнер с id=(string)с ( второй параметр метода )
     * Фильтры читаются из формы с id=(string)f ( второй параметр метода )
     *
     * @param string   c      Название html контейнера , в который будет загружаться информация ( список ) сеансов
     * @param string   f      Название html формы , с которой будут прочитаны фильтры для отбора сеансов.
     * @param string   url    Ajax url
     * @param ingteger mainId 
     */
    doLoadContentOnSubmit: function (c, f, url, mainId, newTitle)
    {
      var $j,form,f,film_id,date,time,cinema_id,val;
      $j = jQuery;
      form = $j('#' + f);
      url += '/id/' + mainId;
      $j('select' , form).each(function(i){
          f = $j(this);
          val = ( f.val() !== "" ? f.val() : 0 ) ;
          switch (f.attr('name')) {
                case 'film_id':
                    url += '/film_id/' + val;
                    break;
                case 'cinema_id':
                    url += '/cinema_id/' + val;
                    break;
                case 'date':
                    url += '/date/' + val;
                    break;
                case 'time':
                    url += '/time/' + val;
                    break;
          }
      });
      new Ajax.Updater(c, url, {
          asynchronous:true,
          evalScripts:false,
          onComplete:function(request, json){
              KaApi.doSeanceAjaxCompleteRoutines('indicator' , c);
              KaApi.preRenderInit();
          },
          onLoading:function(request, json){
              KaApi.doSeanceAjaxLoadingRoutines('indicator' , c);
          }
      });
      // TODO : дописать 
    },

    /* Для подстветки сеансов у "рекомендованных" кинотеатров*/
    indentRecomendedSeances: function (rowClassName)
    {
        var tags , tds , ss, el;
        tags = jQuery(rowClassName);
        ss = '1px solid rgb(0,0,0)';
        //console.info(tags);
        if ( tags ) {
            for ( var i = 0 ; i < tags.size() ; i++ ) {
                tds = jQuery('td' , tags.get(i));
                if ( ! tds ) continue;
                for ( var j = 0 ; j < tds.size() ; j++ ) {
                    el = jQuery( tds.get(j) );
                    if ( j == 0 ) {
                        el.css('border-left', ss);
                        el.css('border-top', ss);
                        el.css('border-bottom' , ss);
                    } else if ( j == tds.size() - 1) {
                        el.css('border-right' , ss);
                        el.css('border-top', ss);
                        el.css('border-bottom' , ss);
                    } else {
                        el.css('border-top', ss);
                        el.css('border-bottom' , ss);
                    }
                }
            }
        }
    }
}

