PageSourceSearch

http://gatchinapalace.ru/sourse/basket.js

js gatchinapalace.ru collected 2026-09-24 22:35:13 UTC 18,677 bytes, 649 lines download raw bytes

1$(document).ready(function(){
2    
3   /* Function for ours ajax inquiry  */
4   var itogo = [];
5   var size = $('.basket table tr').size();
6   for(var i=0 ;i<=size;i++){
7     itogo[i] = 0;
8   }
9
10function ajaxpostshow(urlres, datares, wherecontent, th ){
11       $.ajax({
12           type: "POST",
13           url: urlres,
14           data: datares,
15           dataType: "html",
16           beforeSend: function(){
17                var elementheight = $(wherecontent).height();
18                $(wherecontent).prepend('<div class="ajaxloader"></div>');
19                $('.ajaxloader').css('height', elementheight);
20                $('.ajaxloader').prepend('<img class="imgcode" src="/js/ajax/ajax-loader.gif">');
21            },
22           success: function(fillter){
23                $(wherecontent).html(fillter);
24                //alert(th);
25                if(th!=null){
26
27                    var n = th.parents('.table-line').find('tr').not('.empty').size();
28                    if(n==1) th.parents('.table-line').remove();
29                    else{
30                       var k = th.parents('tbody').children('tr').index(th.parents('tr'));
31                       if(k==0){
32                        var tr_html = th.parents('table').find('tr').eq(0).children('td').eq(0).html();
33                        var tr_html0 = '<td width="147" valign="middle" style="padding-left: 13px;vertical-align: top;" rowspan="10">'+tr_html+'</td>';
34                        th.parents('table').find('tr').eq(1).prepend(tr_html0);
35                       }
36
37                       th.parents('tr').remove();
38
39                    }
40                    itogo_sum2_del();
41                }
42           }
43      });
44}
45 $('.input-basket-submit').live("click",function(e){
46        e.preventDefault();
47         var countbasketid = $(this).attr('id');
48         var countbasketcount = $(this).parents('form').find('.quantity').val();
49         //alert(countbasketcount);
50         var ajaxcount = countbasketid + '&ajaxbasketcount=' + countbasketcount;
51         //alert(ajaxcount);
52         ajaxpostshow("/include/ajax/basket.php", ajaxcount, ".basket_small", null );
53   });
54  /* Inquiry ajax at removal of the goods from a basket  */
55  $('.basket .basket-list-delete').live("click",function(){
56         var deletebasketid = $(this).attr('id');
57         ajaxpostshow("/include/ajax/basket.php", deletebasketid, ".basket_small" );
58         return false;
59   });
60  /* Inquiry ajax at change of quantity of the goods */
61  /*$(".basket  .quantity").live("change", function(){
62         var countbasketid = $(this).attr('id');
63         var countbasketcount = $(this).val();
64         //alert(countbasketcount);
65         var ajaxcount = countbasketid + '&ajaxbasketcount=' + countbasketcount;
66         ajaxpostshow("/include/ajax/basket.php", ajaxcount, ".basket_small" );
67         return false;
68   });*/
69   $("input[name^='QUANTITY_']").live("change", function(){
70         $("form[name='basket_form']").submit();
71   });   
72
73   //Переключение вкладок
74   var show = false;
75   $('.ticket_header ul li a').click(function(e){
76     e.preventDefault();
77     var n = $('.ticket_header ul li').index($(this).parent());
78     $('.ticket_header ul li').removeClass('active');
79     $(this).parent('li').addClass('active');
80
81        $('.tickets .basket').hide();
82        $('.tickets .basket').eq(n).show();
83
84        $('.personal .order').hide();
85        $('.personal .order').eq(n).show();
86
87    if(show) return;
88     var params = {
89		changedEl: ".tickets .basket:eq(1) .quantity",
90		visRows: 20,
91		scrollArrows: true
92	}
93	//cuSelRefresh(params);
94    cuSel(params);
95    show = true;
96   })
97
98   //Устанавливаем чекбоксы
99   
100   jQuery("#content .niceCheck").mousedown(
101	/* при клике на чекбоксе меняем его вид и значение */
102	function() {
103
104	     changeCheck(jQuery(this));
105
106	});
107
108    jQuery("#content .niceCheck").each(
109	/* при загрузке страницы нужно проверить какое значение имеет чекбокс и в соответствии с ним выставить вид */
110	function() {
111
112	     changeCheckStart(jQuery(this));
113
114	});
115
116    jQuery(".niceCheck1").mousedown(
117	/* при клике на чекбоксе меняем его вид и значение */
118	function() {
119
120	     changeCheck1(jQuery(this));
121    
122	});
123
124    jQuery(".niceCheck1").each(
125	/* при загрузке страницы нужно проверить какое значение имеет чекбокс и в соответствии с ним выставить вид */
126
127	function() {
128
129	     changeCheckStart1(jQuery(this));
130
131	});
132
133    function changeCheck(el)
134	/*
135	    функция смены вида и значения чекбокса
136	    el - span контейнер дял обычного чекбокса
137	    input - чекбокс
138	*/
139	{
140	     var el = el;
141	      //    input = el.find("input").eq(0);
142//	     if(!input.attr("checked")) {
143//	        el.css("background-position","-18px 0px");
144//	        input.attr("checked", true);
145//            var n = $('.basket table tr').index(el.parents('tr'));
146//            //alert(n);
147//            var count = parseInt(el.parents('td').prev().find('input').val());
148//            var price = parseInt(el.parents('td').children('.catalog-price').text());
149//            var sum = count*price;
150//            //alert(sum);
151//            itogo[n] = sum;
152//            itogo_sum();
153
154            //el.parents('td').next().text(sum+' руб')*/
155            //alert(price);
156
157	   // } else {
158	      //  el.css("background-position","0 0");
159	      //  input.attr("checked", false);
160            var n = $('.basket table tr').index(el.parents('tr'));
161           // itogo[n] = 0;
162            itogo_sum();
163	    //}
164	     return true;
165	}
166
167	function changeCheckStart(el)
168	/*
169	    если установлен атрибут checked, меняем вид чекбокса
170	*/
171	{
172	var el = el,
173	        input = el.find("input").eq(0);
174	      if(input.attr("checked")) {
175	        el.css("background-position","-18px 0px");
176	        }
177	     return true;
178	}
179
180    function changeCheck1(el)
181	/*
182	    функция смены вида и значения чекбокса
183	    el - span контейнер дял обычного чекбокса
184	    input - чекбокс
185	*/
186	{
187	     var el = el,
188	          input = el.find("input").eq(0);
189	     if(!input.attr("checked")) {
190	        el.css("background-position","-15px 0px");
191	        input.attr("checked", true);
192	    } else {
193	        el.css("background-position","0 0");
194	        input.attr("checked", false);
195	    }
196	     return true;
197	}
198
199	function changeCheckStart1(el)
200	/*
201	    если установлен атрибут checked, меняем вид чекбокса
202	*/
203	{
204	var el = el,
205	        input = el.find("input").eq(0);
206	      if(input.attr("checked")) {
207	        el.css("background-position","-15px 0px");
208	        }
209	     return true;
210	}
211
212    //Расчет стоимости корзины
213
214    $('.tickets input[name="quantity"]').live('change', changeSelect);
215
216
217    function changeSelect(){
218        
219   
220        
221      //alert('TEST');
222        var n = $('.basket table tr').index($(this).parents('tr'));
223        //alert(n);
224        var count = parseInt($(this).val());
225        //alert(count);
226        var price = parseInt($(this).parents('td').next().children('.catalog-price').text());
227        //alert(price);
228        var sum = count*price;
229      //  if($(this).parents('td').next().find('input').attr("checked")){
230            //alert('test');
231            itogo[n] = sum;
232            itogo_sum();
233
234       // }
235      // / //alert(sum);
236        $(this).parents('tr').find('.all_price').text(sum+' руб.');
237        //var sum =
238     cnt();
239        //alert($(this).parents('td').next().text());
240    }
241
242    function itogo_sum(){
243      //alert('test');
244      var sum = 0;
245      for(var i=0; i<=size;i++){
246        sum+=itogo[i];
247        //alert(itogo[i]);
248      }
249      //alert(sum);
250      $('.sum #itogo').find('span').text(' '+sum+' руб.');
251      //$('.sum #itogo_count').find('span').text(' '+tickets+' руб.');
252      //alert(sum);
253    }
254
255    function itogo_sum2(){
256      var tickets = 0;
257      var sum = 0;
258      $('.basket .table-line table tr').not('.empty').each(function(){
259        tickets+=parseInt($(this).find('[name="quantity"]').val());
260        sum += parseInt($(this).find('.all_price').text());
261        //alert($(this).children('td').eq(4).text());
262      })
263
264      //alert(sum);
265      $('.sum #itogo').find('span').text(' '+sum+' руб.');
266      $('.sum #itogo_count').find('span').text(' '+tickets);
267      inCart2();
268    }
269
270    function itogo_sum2_del(){
271      var tickets = 0;
272      var sum = 0;
273      $('.basket .table-line table tr').not('.empty').each(function(){
274        tickets+=parseInt($(this).find('[name="quantity"]').val());
275        sum += parseInt($(this).find('.all_price').text());
276        //alert($(this).children('td').eq(4).text());
277      })
278
279
280      //alert(sum);
281      $('.sum #itogo').find('span').text(' '+sum+' руб.');
282      $('.sum #itogo_count').find('span').text(' '+tickets);
283
284    }
285
286    //Добавление билетов в корзину
287
288
289    //alert(arr_id);
290    $('#in_cart').bind('click', inCart);
291
292    function inCart(e){
293
294        e.preventDefault();   
295       cnt();
296    }
297
298
299function cnt(){
300    
301          var arr_id = new Array();
302    var arr_count = new Array();
303    var arr_type = new Array();
304    var arr_price = new Array();
305    var arr_date = new Array();
306    var arr_name = new Array();
307
308   
309      var i = 0;
310      $('.basket tr').not('.empty').each(function(){
311        
312        arr_count[i] = parseInt($(this).find('input[name="quantity"]').eq(0).val());
313
314        if(arr_count[i]==0 || isNaN(arr_count[i])){
315          arr_count.splice(i, 1);
316         return;
317        }
318 
319        arr_name[i] = $(this).parents('table').find('.name').text();
320
321        arr_id[i] = $(this).attr('id');
322        arr_price[i] = $(this).find('.catalog-price').text();
323
324        arr_type[i] = $(this).attr('class');
325
326        if($(this).parents('table').find('input[name="time"]').size()>0){
327           arr_date[i] = $(this).parents('table').find('input[name="time"]').eq(0).val();
328         
329        }else{
330           arr_date[i] = ' ';
331        }
332         
333 
334        i++;
335      })
336      
337
338  var ajaxstring = 'id='+arr_id+'&'+'count='+arr_count+'&name='+arr_name+'&price='+arr_price+'&type='+arr_type+'&date='+
338arr_date;
339
340if(arr_count.length == 0){
341    $('#next_step').addClass('na');
342    ajaxstring = "clear_cart=Y";
343} 
344else {
345    $('#next_step').removeClass('na');
346}
347    ajaxpostshow("/include/ajax/basket.php", ajaxstring, ".basket_small", null );
348    arr_id = new Array();
349    arr_count = null;
350    arr_type = null;
351    arr_price = null; 
352    arr_date = null;
353    arr_name = null;
354
355       
356}
357
358    function inCart2(){
359      var i = 0;
360      $('.basket .table-line tr').not('.empty').each(function(){
361
362        arr_count[i] = parseInt($(this).find('input[name="quantity"]').val());
363        if(arr_count[i]==0){
364          arr_count.splice(i, 1);
365
366          return;
367        }
368        arr_id[i] = $(this).attr('id');
369        i++;
370      })
371      var ajaxstring = 'id2='+arr_id+'&'+'count2='+arr_count;
372      //alert(ajaxstring);
373      ajaxpostshow("/include/ajax/basket.php", ajaxstring, ".basket_small", null );
374    }
375
376    //Шаг второй - редактирвоанеи заказа
377    //$('.tickets2 input[name="quantity"]').live('change', changeSelect2);
378    function changeSelect2(){
379      //alert('TEST');
380        var n = $('.basket table tr').index($(this).parents('tr'));
381        //alert(n);
382        var count = parseInt($(this).val());
383        //alert(count);
384        var price = parseInt($(this).parents('td').next().children('.catalog-price').text());
385
386        var sum = count*price;
387        //alert(count);
388        $(this).parents('tr').find('.all_price').text(sum+' руб.');
389        itogo_sum2();
390        //var sum =
391
392        //alert($(this).parents('td').next().text());
393    }
394
395    //Шаг второй - удаление
396    $('.delete').click(function(e){
397        e.preventDefault();
398
399        var id = $(this).parents('tr').attr('class');
400        var ajaxstring = 'ajaxdeleteid='+id;
401        //alert($(this).parents('.table-line').find('tr').size());
402
403        //$(this).parents('.table-line').find('tbody').remove();
404
405        //var n = $(this).parents('table').children('tbody').children('tr').size();
406        //alert($(this).parents('table').children('tbody').children('tr').eq(0).attr('id'));
407        ajaxpostshow("/include/ajax/basket.php", ajaxstring, ".basket_small", $(this) );
408
409    })
410
411
412    //Сабмит формы
413    $('.tickets3 #next_step .next_step_right, .tickets3 #next_step .next_step_left').click(function(e){
414        e.preventDefault();
415        //$('.tickets3 .reg-auth').children('div:visible').find('form').submit();
416
417        //$('.register').each(function(){
418            //if($(this).find('input[name="descr"]').attr('checked') && $(this).find('input[name="agree"]').attr('checked')){
419
420            //}
421      if(read !=1 )
422           return;
423
424            var k =$('.tickets3').find('.niceCheck1').size();
425            if(k!=0){
426                if($('.tickets3').find('input[type="checkbox"]').eq(0).attr('checked')){
427                    //console.log($('.tickets3 form'));return false;
428                    $('.tickets3 form').submit();
429                }
430            }else{
431               //console.log($('.tickets3 form'));return false; 
432               $('.tickets3 form').submit();
433            }
434
435
436        //})
437
438    })
439
440    $('.ticket_buy .register input[type="submit"]').click(function(e){
441      //alert('test');
442       if($('.register').find('input[type="checkbox"]').eq(0).attr('checked') && $('.register').find('input[type="checkbox"]').eq(1).attr('checked')){
443
444       }else e.preventDefault();
445
446    })
447
448    $('.tickets input[name="time"]').live('change', changeSelect3);
449
450    function changeSelect3(){
451
452        var id = $(this).parents('.cusel').find('.cuselActive').attr('id');
453        $(this).parents('table').find('tr').attr('id', id);
454    }
455
456
457
458} )
459
460
461var rad = false;
462jQuery(document).ready(function(){
463
464	jQuery(".niceRadio input").each(
465	/* при загрузке страницы меняем обычные на стильные radio */
466	function() {
467
468	     changeRadioStart(jQuery(this));
469
470	});
471
472
473    if($('.radio').children().eq(1).children('span').hasClass('radioChecked')){
474        //alert('test');
475        rad = true;
476        var params = {
477		changedEl: "#day",
478		visRows: 20,
479		scrollArrows: true
480	}
481
482	cuSel(params);
483
484    var params = {
485		changedEl: "#month",
486		visRows: 20,
487		scrollArrows: true
488	}
489
490	cuSel(params);
491
492    var params = {
493		changedEl: "#year",
494		visRows: 20,
495		scrollArrows: true
496	}
497
498	cuSel(params);
499    }
500
501	});
502
503
504	function changeRadio(el)
505	/*
506	    функция смены вида и значения radio при клике на контейнер
507	*/
508	{
509
510	    var el = el,
511	        input = el.find("input").eq(0);
512	    var nm=input.attr("name");
513
514	    jQuery(".niceRadio input").each(
515
516	    function() {
517
518	        if(jQuery(this).attr("name")==nm)
519	        {
520	            jQuery(this).parent().removeClass("radioChecked");
521	        }
522
523
524	    });
525
526
527	    if(el.attr("class").indexOf("niceRadioDisabled")==-1)
528	    {
529            el.addClass("radioChecked");
530	        input.attr("checked", true);
531	    }
532        //alert(input.val());
533        if(input.val()==0){
534            $('.reg-auth .auth').show();
535            $('.reg-auth .register').hide();
536        }else{
537            $('.reg-auth .auth').hide();
538            $('.reg-auth .register').show();
539        }
540
541    if($('.radio').children().eq(0).children('span').hasClass('radioChecked') && !rad){
542        var params = {
543		changedEl: "#day",
544		visRows: 20,
545		scrollArrows: true
546	}
547
548	cuSel(params);
549
550    var params = {
551		changedEl: "#month",
552		visRows: 20,
553		scrollArrows: true
554	}
555
556	cuSel(params);
557
558    var params = {
559		changedEl: "#year",
560		visRows: 20,
561		scrollArrows: true
562	}
563    rad = true;
564	cuSel(params);
565    }
566
567	    return true;
568	}
569
570	function changeVisualRadio(input)
571	{
572	/*
573	    меняем вид radio при смене значения
574	*/
575	    var wrapInput = input.parent();
576	    var nm=input.attr("name");
577
578	    jQuery(".niceRadio input").each(
579
580	    function() {
581
582	        if(jQuery(this).attr("name")==nm)
583	        {
584	            jQuery(this).parent().removeClass("radioChecked");
585	        }
586
587
588	    });
589
590	    if(input.attr("checked"))
591	    {
592	        wrapInput.addClass("radioChecked");
593
594	    }
595
596	}
597
598	function changeRadioStart(el)
599	/*
600	    новый контрол выглядит так <span class="niceRadio"><input type="radio" name="[name radio]" id="[id radio]" [checked="checked"] /></span>
601	    новый контрол получает теже name, id и другие атрибуты что и были у обычного
602	*/
603	{
604
605	try
606	{
607	var el = el,
608	    radioName = el.attr("name"),
609	    radioId = el.attr("id"),
610	    radioChecked = el.attr("checked"),
611	    radioDisabled = el.attr("disabled"),
612	    radioTab = el.attr("tabindex"),
613	    radioValue = el.attr("value");
614	    if(radioChecked)
615	        el.after("<span class='niceRadio radioChecked'>
615"+
616	            "<input type='radio'"+
617	            "name='"+radioName+"'"+
618	            "id='"+radioId+"'"+
619                "checked='"+radioChecked+"'"+
620	            "tabindex='"+radioTab+"'"+
621	            "value='"+radioValue+"' /></span>");
622	    else
623	        el.after("<span class='niceRadio'>"+
624	            "<input type='radio'"+
625	            "name='"+radioName+"'"+
626	            "id='"+radioId+"'"+
627	            "tabindex='"+radioTab+"'"+
628	            "value='"+radioValue+"' /></span>");
629
630	    /* если контрол disabled - добавляем соответсвующий класс для нужного вида и добавляем атрибут disabled для вложенного radio */
631	    if(radioDisabled)
632	    {
633	        el.next().addClass("niceRadioDisabled");
634	        el.next().find("input").eq(0).attr("disabled","disabled");
635	    }
636
637	    /* цепляем обработчики стилизированным radio */
638	    el.next().bind("mousedown", function(e) { changeRadio(jQuery(this)) });
639	    if(jQuery.browser.msie) el.next().find("input").eq(0).bind("click", function(e) { changeVisualRadio(jQuery(this)) });
640	    else el.next().find("input").eq(0).bind("change", function(e) { changeVisualRadio(jQuery(this)) });
641	    el.remove();
642	}
643	catch(e)
644	{
645	    // если ошибка, ничего не делаем
646	}
647
648	    return true;
649	}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.