jQuery( function() {
/*
    var  pos;
    alert( "RZ" );
*/
    var  date_local   = new Date( 2011, 1, 1, 0, 0, 0 );
    var  date_server = new Date( 2011, 1, 1, 0, 0, 0 );
    var  result;
    var  citylist;

    var  tr={ 'ua' : { 'but_product' : 'Продукти',
                             'but_serv' : 'Сервіси',
                             'link_next' : 'далі',
                             'phone_before' : 'Довідковий центр:',
                             'phone_number' : '0-800-300-050',
                             'phone_after' : 'цілодобово',
                             'flag_new' : 'нове',
                             'txt_open_yes' : 'У Вашій панелі швидкого доступу є нові повідомлення!',
                             'txt_open_no' : 'На даний момент нових повідомлень немає',
                             'txt_close' : 'Закрити вікно' },
                  'ru' : { 'but_product' : 'Продукты',
                            'but_serv' : 'Сервисы',
                            'link_next' : 'далее',
                            'phone_before' : 'Справочный центр:',
                            'phone_number' : '0-800-300-050',
                            'phone_after' : 'круглосуточно',
                            'flag_new' : 'новое',
                            'txt_open_yes' : 'В Вашей панели быстрого доступа есть новые сообщения',
                            'txt_open_no' : 'На данный момент нет новых сообщений',
                            'txt_close' : 'Закрыть окно' },
                  'en' : {'but_product' : 'Products',
                            'but_serv' : 'Services',
                            'link_next' : 'more',
                            'phone_before' : 'Help Center:',
                            'phone_number' : '0-800-300-050',
                            'phone_after' : 'around the clock',
                            'flag_new' : 'new',
                            'txt_open_yes' : 'There are new messages in your Quick Access Toolbar',
                            'txt_open_no' : 'We have no new messages',
                            'txt_close' : 'Close window' } };

    var  sel_win     = jQuery(window);
    var  stop         = "";
    var  ptop         = 0;
    var  ntop         = 0;
    var  sel_total   = jQuery('#total');
    var  hbx          = jQuery('#bx-panel').height();
    var  sel           = jQuery( '#sliding_panel' );
    var  s_id         = sel ? sel.attr( 'id' ) : "";

    var  citycurr_index  = '0';
    var  citycurr_name   = jQuery.cookie( 'otpb_info_panel_city_name' );
    var  citycurr_id        = jQuery.cookie( 'otpb_info_panel_city_id' );
    var  areacurr_name  = jQuery.cookie( 'otpb_info_panel_area_name' );
    var  areacurr_id       = jQuery.cookie( 'otpb_info_panel_area_id' );


    if( ! citycurr_name ) {

        citycurr_name   = "";
        citycurr_id        = '-1';
        areacurr_name  = "";
        areacurr_id       = '0';
    }


  jQuery( 'body' ).oneTime( "3s", function() {

    jQuery.get(  '/bitrix/templates/TOTPB/sliding_panel_get_data.php',
            { "s_citycurr_id"       : citycurr_id,
               "s_citycurr_name"  :  citycurr_name,
               "s_areacurr_id"      : areacurr_id,
               "s_areacurr_name" :  areacurr_name },
            function(data) {

                eval("result=" + data + ";");

                if( result['result'] == 0 ) {
                    //
                    var lng                 = result['lang'];
                    var s_pan;
                    var s_md5            = result[ 'md5' ];
                    var s_md5_local    = jQuery.cookie( 'otpb_info_panel_md5' );
                    var s_ndl              = jQuery.cookie( 'otpb_info_panel_date' );

                    if( ! s_ndl )
                          s_ndl             = '01.01.2010 00:00:00';

                    if( s_ndl.toString().length > 10 ) {
                        var yy                  = parseInt( s_ndl.substr(6,4), 10 );
                        var mm                = parseInt( s_ndl.substr(3,2), 10 ) - 1;
                        var dd                  = parseInt( s_ndl.substr(0,2), 10 );
                        var hh                  = parseInt( s_ndl.substr(11,2), 10 );
                        var hm                 = parseInt( s_ndl.substr(14,2), 10 );
                        var hs                  = parseInt( s_ndl.substr(17,2), 10 );
                        date_local             = new Date( yy, mm, dd, hh, hm, hs );
                    } else {
                        var yy                  = parseInt( s_ndl.substr(6,4), 10 );
                        var mm                = parseInt( s_ndl.substr(3,2), 10 ) - 1;
                        var dd                  = parseInt( s_ndl.substr(0,2), 10 );
                        date_local             = new Date( yy, mm, dd );
                    }
                    //
                    if( result['date_max'].toString().length > 10  ) {
                        yy                        = parseInt( result['date_max'].substr(6,4), 10 );
                        mm                      = parseInt( result['date_max'].substr(3,2), 10 ) - 1;
                        dd                        = parseInt( result['date_max'].substr(0,2), 10 );
                        hh                        = parseInt( result['date_max'].substr(11,2), 10 );
                        hm                       = parseInt( result['date_max'].substr(14,2), 10 );
                        hs                        = parseInt( result['date_max'].substr(17,2), 10 );
                        date_server           = new Date( yy, mm, dd, hh, hm, hs );
                    } else {
                        yy                        = parseInt( result['date_max'].substr(6,4), 10 );
                        mm                      = parseInt( result['date_max'].substr(3,2), 10 ) - 1;
                        dd                        = parseInt( result['date_max'].substr(0,2), 10 );
                        date_server           = new Date( yy, mm, dd );
                    }
                    var s_class           = "";
                    var s_hint            = "";
/*
                    var date_test     = new Date( 2010, 0, 1, 13, 50, 0 );
                    alert( date_test );
                    alert( s_ndl.substr(0,2) );
                    alert( 'server:'+date_server+' local:'+date_local );
*/
                    if( s_md5 == s_md5_local || date_server <= date_local ) {
                        s_class = "sliding_old_info";
                        s_hint   = tr[lng]['txt_open_no'];
                    } else {
                        s_class = "sliding_new_info";
                        s_hint   = tr[lng]['txt_open_yes'];
                    }

                    s_pan   =  '<div id="sliding_panel" class="' + s_class + '">';
                    s_pan +=  '<div id="sliding_label" class="label_hintable" hint="' + s_hint + '"></div>'; // class="sliding_' + result['lang'] +  '"></div>';
                    s_pan +=  '</div>';

                    sel_total.before( s_pan );
                    //
                    //  Do hints hintable ...
                    //
                    do_tag_hintable( '.label_hintable' );

                    sel_total.oneTime( "1s", function() {

                        sel        = jQuery( '#sliding_panel' );

                        stop      = sel.css( 'top' );
                        stop      = stop.toString().substring( 0, stop.toString().length - 2 );
                        ptop      = parseInt( stop, 10 );
                        if( ptop == 0 ) // for IE7 {  top: expression( eval(document.documentElement.scrollTop) ); }
                            ptop   = 300;

                        ntop      = ptop + hbx;

                        sel.css( "top", ntop.toString() + "px" );
                        sel.animate( {left : "0px"}, 1000 );
                    });

                    //
                    if( result['city_name'] != "" && result['city_name'] != citycurr_name ) {
                        citycurr_name   = result['city_name'];
                        citycurr_id        = result['city_id'];
                        areacurr_name  = result['area_name'];
                        areacurr_id       = result['area_id'];

                        jQuery.cookie( 'otpb_info_panel_city_name', citycurr_name, { path: "/", expires: 365 } );
                        jQuery.cookie( 'otpb_info_panel_city_id', citycurr_id, { path: "/", expires: 365 } );
                        jQuery.cookie( 'otpb_info_panel_area_name', areacurr_name, { path: "/", expires: 365 } );
                        jQuery.cookie( 'otpb_info_panel_area_id', areacurr_id, { path: "/", expires: 365 } );
                    }
                }
            }    // function
      );

  });


  jQuery('#info_panel_close').live('click', function(e) {
    jQuery( '#info_panel' ).hide();
  });

  jQuery('#sliding_label').live('click', function(e) {

    var sel_pinfo      = jQuery( '#info_panel' );
    var info_showed = false;
    var h_win          = sel_win.height();
    var w_win          = sel_win.width();
    var h_info          = 0;
    var w_info          = 0;
    var top_info       = 10;
    var left_info       = 0;
/*
    var cl_open        = "sliding_" + result['lang'];
    var cl_close        = "sliding_close_" + result['lang'];
*/
    var s_md5          = result[ 'md5' ];

    if( sel_pinfo.length <= 0 ) {
         //
        make_panel_prepare();
        info_showed  = true;
/*
        jQuery(this).removeClass( cl_open );
        jQuery(this).addClass( cl_close );
*/
//      jQuery.cookie( 'otpb_info_panel_md5', s_md5, { path: "/", domain: result['domain'], expires: 7, secure: true  } );
        jQuery.cookie( 'otpb_info_panel_md5', s_md5, { path: "/", expires: 365 } );

        if( date_server > date_local ) {
            jQuery.cookie( 'otpb_info_panel_date', result['date_max'], { path: "/", expires: 365 } );
        }
    }

    if( ! info_showed ) {                  // IS NOT the first
      if( sel_pinfo.is( ":hidden" ) ) {  //  SHOW

        h_info          = sel_pinfo.height();
        w_info          = sel_pinfo.width();
        top_info       = Math.floor( (h_win - h_info)/2 );
        left_info       = Math.floor( (w_win - w_info)/2 );

        sel_pinfo.css( "top", top_info + "px" );
        sel_pinfo.css( "left", left_info + "px" );

        sel_pinfo.show();
/*
        jQuery(this).removeClass( cl_open );
        jQuery(this).addClass( cl_close );
*/
      } else {                                //  HIDE
        sel_pinfo.hide();
/*
        jQuery(this).removeClass( cl_close );
        jQuery(this).addClass( cl_open );
*/
      }
    }

  });


  function make_panel_prepare() {

    if( ! citylist ) {
      var   s_html             = "";
      var   sel_city_select  = jQuery('#info_panel_city_sel');

      sel_city_select.html();

      jQuery.get(  '/bitrix/templates/TOTPB/get_city_list.php',
          function(data) {
              eval("citylist=" + data + ";");

              for( var i=0; i < citylist.length; i++ ) {
                   if( citylist[i]['ID'] == result['city_id'] ) {
                       citycurr_index = i;
                       break;
                   }
              }
              //
              make_panel();
              append_info_html();
              //
              //  Do hints hintable ...
              //
              do_tag_hintable( '.panel_hintable' );
          }
      );
    }
  }


  function make_panel() {

    var sel_pinfo;
    var sel_pinfo_info;
    var h_pinfo_info = 0;
    var h_win          = sel_win.height();
    var w_win          = sel_win.width();
    var h_info          = 0;
    var w_info         = 0;
    var top_info       = 10;
    var left_info       = 0;
    var s_info;
    var lng              = result['lang'];

    s_info   =  '<div id="info_panel" class="info_' + lng +  '">' +
                      '<div id="info_panel_alltop">' +
                         '<div id="info_panel_alltop-left"></div>' +
                         '<div id="info_panel_alltop-center"></div>' +
                         '<div id="info_panel_alltop-right"><div id="info_panel_close" class="panel_hintable" hint="' + tr[lng]['txt_close'] + '"></div>' +
                         '</div>' +
                      '</div>' +
                      '<div id="info_panel_all">' +
                        '<div id="info_panel_top">' +
                          '<div id="info_panel_top_main">' +
                            '<div id="info_panel_top_main_city">' +
                                '<div>' +
                                  '<span><a href="javascript:void(0)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a></span>' +
                                  '<span id="info_panel_city_curr" value="' + citycurr_index +  '">' + citycurr_name + '</span>' +
                                  '<select id="info_panel_city_sel">';

                                  for( var i=0; i < citylist.length; i++ ) {
                                      if( i != citycurr_index )
                                         s_info = s_info + '<option value="' + i + '" city_id="' + citylist[i]['ID'] +
                                                                                                   '" area_id="' + citylist[i]['ID_REG'] +
                                                                                                   '" area_name="' + citylist[i]['NAMEAREA'] +
                                                                                                   '">' + citylist[i]['NAMECITY'] + '</option>';
                                      else
                                         s_info = s_info + '<option value="' + i + '" city_id="' + citylist[i]['ID'] +
                                                                                                   '" area_id="' + citylist[i]['ID_REG'] +
                                                                                                   '" area_name="' + citylist[i]['NAMEAREA'] +
                                                                                                   '" selected>' + citylist[i]['NAMECITY'] + '</option>';
                                  }

    s_info +=                '</select>' +
                                '</div>' +
                            '</div>' +
                            '<div id="info_panel_top_main_center">&nbsp;</div>' +
                            '<div id="info_panel_top_main_phone">' +
                                '<div><label>' + tr[lng]['phone_before'] + '</label></div>' +
                                '<div><span>' + tr[lng]['phone_number'] + '</span></div>' +
                                '<div>' + tr[lng]['phone_after'] + '</div>' +
                            '</div>' +
                          '</div>' +
                          '<div id="info_panel_top_but">' +
                            '<div>' +
                              '<a id="sel_products" class="sel" href="javascript:void(0)">' + tr[lng]['but_product'] + '</a>' +
                            '</div>' +
                            '<div>' +
                              '<a id="sel_services" class="notsel" href="javascript:void(0)">' + tr[lng]['but_serv'] + '</a>' +
                            '</div>' +
                          '</div>' +
                        '</div>' +
                        '<div id="info_panel_splitter"></div>' +
                        '<div id="info_panel_bgr_pc"></div>' +
                        '<div id="info_panel_splitter"></div>' +
                        '<div id="info_panel_top_info"></div>' +
                      '</div>' +
                      '<div id="info_panel_allsplit">' +
                        '<div id="info_panel_bgr_info"></div>' +
                      '</div>' +
                      '<div id="info_panel_allbottom">' +
                        '<div id="info_panel_bottom"></div>' +
                      '</div>' +
                    '</div>';

    jQuery('#sliding_panel').before( s_info );
    //
    jQuery('#info_panel_city_sel').hide();
    make_html_pc( 'info_panel_bgr_products', 'items_prod' );
    make_html_pc( 'info_panel_bgr_services', 'items_serv' );
    jQuery('#info_panel_bgr_services').hide();

    sel_pinfo      = jQuery( '#info_panel' );

    h_info          = sel_pinfo.height();
    w_info          = sel_pinfo.width();
    top_info       = Math.floor( (h_win - h_info)/2 );
    left_info       = Math.floor( (w_win - w_info)/2 );

    sel_pinfo.css( "top", top_info + "px" );
//      sel_pinfo.animate( {left : left_info + "px"}, "fast" );
    sel_pinfo.css( "left", left_info + "px" );

    sel_pinfo_info = jQuery( '#info_panel_bgr_info' );
    h_pinfo_info   = sel_pinfo_info.height();
    if( h_pinfo_info < 70 )
        sel_pinfo_info.height( 70 );
  }




  jQuery('#info_panel_top_main_city div span a, #info_panel_city_curr').live('click', function(e) {

    var   sel_city_current = jQuery('#info_panel_city_curr');
    var   sel_city_select  = jQuery('#info_panel_city_sel');

    if( sel_city_select.is(':hidden') ) {
        sel_city_current.hide();
        sel_city_select.show();
    } else {
        sel_city_select.hide();
        sel_city_current.show();
    }

  });

///////////////////////////////////////////////////////
  jQuery('body').delegate( '#info_panel_city_sel', "change", function() {

    var   sel_city_select       = jQuery('#info_panel_city_sel');
    var   sel_city_current      = jQuery('#info_panel_city_curr');

    var   city_index_selected = jQuery(this).find('option:selected').val();
    var   citycurr_name         = jQuery(this).find('option:selected').text();
    var   citycurr_id              = jQuery(this).find('option:selected').attr( 'city_id' );
    var   areacurr_name        = jQuery(this).find('option:selected').attr( 'area_name' );
    var   areacurr_id             = jQuery(this).find('option:selected').attr( 'area_id' );

    sel_city_current.attr( 'value', city_index_selected );
    sel_city_current.html( citycurr_name );

    sel_city_select.hide();
    sel_city_current.show();

    jQuery.cookie( 'otpb_info_panel_city_name', citycurr_name, { path: "/", expires: 365 } );
    jQuery.cookie( 'otpb_info_panel_city_id', citycurr_id, { path: "/", expires: 365 } );
    jQuery.cookie( 'otpb_info_panel_area_name', areacurr_name, { path: "/", expires: 365 } );
    jQuery.cookie( 'otpb_info_panel_area_id', areacurr_id, { path: "/", expires: 365 } );
  });

///////////////////////////////////////////////////////

  jQuery('#sel_products').live('click', function(e) {
        set_buttons_notselected();
        jQuery(this).removeClass( "notsel" ).addClass( "sel" );
//      make_html_pc( 'info_panel_bgr_products', 'items_prod' );
        jQuery('#info_panel_bgr_services').hide();
        jQuery('#info_panel_bgr_products').show();
  });

  jQuery('#sel_services').live('click', function(e) {
        set_buttons_notselected();
        jQuery(this).removeClass( "notsel" ).addClass( "sel" );
//      make_html_pc( 'info_panel_bgr_services', 'items_serv' );
        jQuery('#info_panel_bgr_products').hide();
        jQuery('#info_panel_bgr_services').show();
  });

///////////////////////////////////////////////////////
  function  set_buttons_notselected() {
      jQuery('#info_panel_top_but a').removeClass( "sel" ).addClass( "notsel" );
  }
/////////////////////////////////////////////////////// make_html_pc( 'info_panel_bgr_products', 'items_prod' )
/////////////////////////////////////////////////////// make_html_pc( 'info_panel_bgr_services', 'items_serv' )
  function make_html_pc( pc_id, arr_name ) {

    if( jQuery( '#' + pc_id ).length <= 0 ) {
        var lng              = result['lang'];
        var s_html         = '';

        s_html =  '<div id="' + pc_id + '">';

        for( var i=0; i < result[arr_name].length; i++ ) {

            s_html = s_html + '<div class="panel_central_item">' +
                                          '<div class="panel_central_new">';

            if( result[arr_name][i]['ISNEW'] == "1" )
                s_html = s_html +     '<div>' + tr[lng]['flag_new'] +  '</div>';

            s_html = s_html +    '</div>' +
                                          '<div class="panel_central_part">' +
                                              '<div class="info_panel_adds">';

            if( result[arr_name][i]['ADDS'] == "1" )
                s_html = s_html +        '<div><a class="panel_hintable" href="' + result[arr_name][i]['ADDSLINK'] + '" hint="' + result[arr_name][i]['ADDSHINT'] + '"></a></div>';

            s_html = s_html +        '</div>' +
                                              '<div class="panel_central_icon">' +
                                                 '<a class="panel_hintable" href="' + result[arr_name][i]['LINK'] + '" hint="' + result[arr_name][i]['HINT'] + '" alt="' + result[arr_name][i]['HINT'] + '">' +
                                                      '<img src="' + result[arr_name][i]['ICON_PATH'] + '">' +
                                                 '</a>' +
                                              '</div>' +
                                          '</div>' +
                                          '<div class="panel_central_desc">' +
                                            '<a class="panel_hintable" href="' + result[arr_name][i]['LINK'] + '" hint="' + result[arr_name][i]['HINT'] + '">' + result[arr_name][i]['DESC'] + '</a>' +
                                          '</div>' +

                                       '</div>';
        }

        s_html = s_html +  '</div>';

        jQuery('#info_panel_bgr_pc').append( s_html );
    }
  }
///////////////////////////////////////////////////////
  function append_info_html() {
    var lng              = result['lang'];
    var s_html         = '';
    var s_item_beg  = '<div class="info_panel_info_item"><div class="picture"><img src="';
    var txt_class      = "";
    var lnk_class      = "";
    var blk_shadow   = "";

    for( var i=0; i < result['items_info'].length; i++ ) {

        if( result['items_info'][i]['TEXT'].length > 86 ) {
            txt_class      = "info_panel_text_shadow";
            lnk_class      = "link_shadow";
            blk_shadow  = '<div class="info_panel_shadow_end">&nbsp;</div>';
        } else {
            txt_class      = "info_panel_text_noshadow";
            lnk_class      = "link_noshadow";
            blk_shadow  = '&nbsp;&nbsp;&nbsp;';
        }

        s_html = s_html + s_item_beg + result['items_info'][i]['ICON_PATH'];
        s_html = s_html + '"></div><div class="txt_msg"><div class="' + txt_class + '">';
        s_html = s_html + result['items_info'][i]['TEXT'] + '</div>' + blk_shadow;

        if( result['items_info'][i]['LINK'] != "" )
            s_html = s_html + '<a class="' + lnk_class + '" href="' + result['items_info'][i]['LINK'] + '"> ' + tr[lng]['link_next'] +  '&nbsp;</a>';

        s_html = s_html + '</div></div>';
    }

    jQuery('#info_panel_bgr_info').html( s_html );
  }
///////////////////////////////////////////////////////
  function do_tag_hintable( sel_hint ) {
  //
  //  Do hints hintable ...
  //
  jQuery( sel_hint ).tooltip({
    top: 30,
    left:    0,
    fixPNG: false,
    track: true,
    delay: 0,
    showURL: false,
    showBody: " - ",
    fade: 0,
    bodyHandler : function () {
      var s;

      s    = "<div class=\"hint\">" +
              "   <div class=\"hint-top\"></div>" +
              "   <div class=\"hint-center\">" +
              "      <p>" + $(this).attr('hint') + "</p>" +
              "   </div>" +
              "   <div class=\"hint-bottom\"></div>" +
              "</div>";

      return s;
      }
  });

  }

});

