//карусель для главной
$.fn.infiniteCarousel = function (kol) {

    function repeat(str, num) {
        return new Array( num + 1 ).join( str );
    }

    return this.each(function (kol) {
        var $wrapper = $('> div', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $single = $items.filter(':first'),

            singleWidth = $single.outerWidth(),
            visible = Math.ceil($wrapper.innerWidth() / singleWidth),
            currentPage = 1,
            pages = Math.ceil($items.length / visible);


        // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
        if (($items.length % visible) != 0) {
            $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
            $items = $slider.find('> li');
        }

        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
        $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
        $items = $slider.find('> li'); // reselect

        // 3. Set the left position to the first 'real' item
        $wrapper.scrollLeft(singleWidth * visible);

        // 4. paging function
        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = singleWidth * dir * visible * n;

            $wrapper.filter(':not(:animated)').animate({
                scrollLeft : '+=' + left
            }, 500, function () {
                if (page == 0) {
                    $wrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    $wrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                }

                currentPage = page;
            });

            return false;
        }

        $wrapper.after('<a class="arrow back"></a><a class="arrow forward"></a>');

        // 5. Bind to the forward and back buttons
        $('a.back', this).click(function () {
            return gotoPage(currentPage - 1);
        });

        $('a.forward', this).click(function () {
            return gotoPage(currentPage + 1);
        });

        // create a public interface to move to a specific page
        $(this).bind('goto', function (event, page) {
            gotoPage(page);
        });
    });
};



var limit_places_get = 0, coast_tikets=0;
var cl=0, cl2='', rat=0,  flag_bron=0;

$(document).ready(function() {

	$("#TB_sloi").click( function () { appends('premieres',0);   });

	//форма авторизации
	$(".v-z, .v-z_2").click(function() {
		if (cl2 != '') $(cl2).hide();
		cl2='#ff-'+$(this).attr("id"), cl=1;
		$(cl2).toggle();
	});

	$('.f-user').click(function(e){ var clicked = $(e.target); cl=1;  });
	$(document).click(function(e){
		if ( (cl == 0 ) &&  (cl2 != '') ){
			$(cl2).hide();
			cl=0, cl2='';
		}  else  cl=0;
	});

	$(".cl").click(function() {  $(cl2).hide(); cl=0,  cl2=0; });

  $("#footer").corner("bottom 18px");
  $("#f-pas_d").corner("8px");
  $("#time_label").corner("3px cc:#e4e5e6");
  $(".c-tab tr:even").attr("class","c-tab_nch");

	var limit_places = parseInt($('#limit_places').html());
	if (limit_places==0) $('#count_tiket, #buy_tikets, #hide_vis').hide();

	// выбор дня недели при просмотре фильма или брони
	$('.select_date_mov').click(function() {
		if ($(this).attr('id') != select_date){
			$('#select_date_mov_'+$(this).attr('id')).show();

			var select_ = (select_date != '') ? '#select_date_mov_'+select_date : '#'+$(".mov_2").attr('id');
			$(select_).hide();
			if (select_date == '')$(select_).attr('class', 'select_date_mov');
			select_date=$(this).attr('id');

			$('#select_date_mov_'+$(this).attr('id')).attr('class', 'select_date_mov mov_2');

			$(".mov_").attr('class', 'select_date_mov');
			$(this).attr('class', 'select_date_mov mov_ d_act');
		}
	});


	// бронирование билетов
	$('#buy_tikets').click(function() {
		var mas_plases  = '', count_place=0;
		$('.pl-5').each(function(){
			mas_plases = mas_plases+$(this).attr('lang')+'/';
			count_place++;
		});
		if (mas_plases == '') { $('#result_buy').show();  $('#result_buy').html('Вы не выбрали места'); }
		else {
			$('#result_buy').hide();
			$('#result_buy_get').show(); $('#buy_tikets').hide();
                         //      alert('Касса кинотеатра не доступна! Попробуйте забронировать позже.');
                 //  alert('/bron/do_reserv/'+$(this).attr('lang')+'/'+mas_plases);

			$.ajax({
			  timeout: 120000,
		      url: '/bron/do_reserv/'+$(this).attr('lang')+'/'+mas_plases,
		      success: function(data){

					$('#result_buy').html(data);
					$('#limit_places').html($('#limit_places_do').html());
					limit_places = parseInt($('#limit_places_do').html());
					if (limit_places==0) $('#count_tiket, #buy_tikets, #hide_vis').hide();

					$('#places_count_busy').html( parseInt($('#places_count_busy').html()) - count_place );
					$('#places_count_give').html($('#limit_places_do').attr("title"));


					if ( $('#result_buy').html().substring(0, 24) == '<div class="green_bron">'){
						// если все хорошо
						$('#result_buy_get').hide();
						$('#result_buy').show();

						// выставляем флаг о невозможности бронирования
						 flag_bron=1;
						// помечаем места как забронированные
						$('.pl-5').each(function(){
							$(this).attr("class","pl-4");
							$(this).attr("alt","pl-4");
						});

					} else {
					  // если не очень
						$('#result_buy_get').hide();
						$('#result_buy, #buy_tikets').show();



						// перебираем занятые места, если их нельзя забронировать
						$('.pl6').each(function(){
							id_this	= $(this).attr("lang");
							$('.pl-5').each(function(){
								if ( id_this == $(this).attr("lang") ){
									$(this).attr("class","pl-4");
									$(this).attr("alt","pl-4");


									limit_places_get--;
									$("#count_tiket").html(declOfNum(limit_places_get));

									// отнимаем к общей стоимости
									coast_tikets -= parseInt($(this).attr('id'));
									$("#coast_tikets strong").html((coast_tikets/100)+'р.');

									$('#lt-'+$(this).attr('lang')).remove();
									$('#place_hid-'+$(this).attr('lang')).remove();


									if (limit_places_get==0){
										$("#count_tiket").html('Выберите места');
										$("#hide_vis").hide();
									}
								}
							});
						});
					}
		      },
		      error: function(jqXHR, textStatus, errorThrown){
		           alert('Касса кинотеатра не доступна! Попробуйте забронировать позже.');

		           // alert(textStatus + ' === '+ errorThrown);
		      }
		   });
		}

	});


	$('.pl-5').each(function(){

		limit_places_get++;
		$("#count_tiket").html(declOfNum(limit_places_get));
		$("#hide_vis").show();

		// прибавляем к общей стоимости
		coast_tikets += parseInt($(this).attr('id'));
		$("#coast_tikets strong").html((coast_tikets/100)+'р.');

		$("#hidden_enter_bron").append('<input type="hidden" name="place_hid[]" value="'+$(this).attr('lang')+'" id="place_hid-'+$(this).attr('lang')+'" />');
		$("#plice_list").append('<div id="lt-'+$(this).attr('lang')+'">'+$(this).attr('title')+', <u>'+( $(this).attr('id') / 100 ) +'р.</u></div>');
	});

	// выбор мест на плане зала
	$('.pl-1, .pl-2, .pl-3, .pl-5').click(function() {
		limit_places = parseInt($('#limit_places').html());
		var idp=$(this).attr("id");

		if ($(this).attr("class") != 'pl-4' && flag_bron == 0) {

			// отмена выбранного места
			if ($(this).attr("class")=='pl-5') { /*отказаться от места*/
				if (limit_places_get >= limit_places-limit_places+1){
					$("#limit_now").html('');
					limit_places_get--;
					$("#count_tiket").html(declOfNum(limit_places_get));

					// отнимаем к общей стоимости
					coast_tikets -= parseInt($(this).attr('id'));
					$("#coast_tikets strong").html((coast_tikets/100)+'р.');

					$('#lt-'+$(this).attr('lang')).remove();
					$('#place_hid-'+$(this).attr('lang')).remove();
					$(this).attr("class", $(this).attr("alt")); // возвращием тип места

					if (limit_places_get==0){
						$("#count_tiket").html('Выберите места');
						$("#hide_vis").hide();
					}
				}
			}
			else
			{
				/*Выбрать место*/
				if (limit_places_get <= limit_places-1){
					$("#limit_now").html('');
					limit_places_get++;
					$("#count_tiket").html(declOfNum(limit_places_get));


					// прибавляем к общей стоимости
					coast_tikets += parseInt($(this).attr('id'));
					$("#coast_tikets strong").html((coast_tikets/100)+'р.');

					$(this).attr("class","pl-5");

					$("#hidden_enter_bron").append('<input type="hidden" name="place_hid[]" value="'+$(this).attr('lang')+'" id="place_hid-'+$(this).attr('lang')+'" />');
					$("#plice_list").append('<div id="lt-'+$(this).attr('lang')+'">'+$(this).attr('title')+', <u>'+( $(this).attr('id')/100) +'р.</u></div>');

					$("#hide_vis").animate({   opacity: 'show'}, { duration: 'slow' });

				} else { if (limit_places != 0) $("#limit_now").html('Вы не можете забронировать больше '+declOfNum2(limit_places)+' на данный сеанс'); }
			}

		}

	});


	// делаем голосование за фильмаки
	$('.r-pl, .r-mn, .r-pl-2, .r-mn-2').click(function() {
		if (rat==0){
		//	alert($(this).attr("id"));
			rat=1;
			$(this).load("/collection/go_rating/"+$(this).attr("id")+"/"+$(this).attr("lang")+"/"+$(this).attr("alt"), 	function(){  rat=0; });
		}
	});

	// faq
	 $('.faq > b').click(function() {
		 $("#s-"+$(this).attr("id")).toggle();
	});


		// виртуальный тур
		$('.but_toor').click(function() {

			$('.cat_h').each(function(){
				$(this).hide();
			});

				$("#etah_"+$(this).attr('id')).animate({   opacity: 'show'}, { duration: 'slow' });
				$('.tour_act').attr('class', 'cursor_ but_toor');
				$(this).attr('class', 'but_toor tour_act');
		});



		 // планы залов
		$('.but_toor_2').click(function() {

			$('.cat_h').each(function(){
				$(this).hide();
			});
				$("#etah_"+$(this).attr('id')).animate({   opacity: 'show'}, { duration: 'slow' });
				$('.floor').attr('class', 'cursor_2 but_toor_2');
				$(this).attr('class', 'but_toor_2 floor');
		});

		 // проверка на эл ящик
		$('#login').change(function() {
				 $.post('/users/login/', { login: $(this).val() }, OnChangelogin );

		});

		function OnChangeNic(data){ $("#au_nic_").html(data); }
		function OnChangelogin(data){ $("#login_").html(data); }

		 // проверка на ник
		$('#au_nic').change(function() {
				 $.post('/users/au_nic/', { au_nic: $(this).val() }, OnChangeNic );
		});

});




function appends(app,init){
	$("#"+app).animate({   opacity: 'toggle'}, { duration: 'slow' });
	$("#TB_sloi").animate({   opacity: 'toggle'}, { duration: 'slow' });
	if (init==1) {
		$('.infiniteCarousel').infiniteCarousel();
	}
}


// часы
function myclock(){

	ndata=new Date();
	secs= ndata.getSeconds();
	hours = ndata.getHours();
	mins = ndata.getMinutes();

	if (secs==0) mins = mins+1; if (mins==60) { hours=hours+1;  mins=0;  }
	hours=(hours==24)? 0:hours;
	hours2=(hours < 10)?"0"+hours:hours;
	mins2= (mins < 10 )?"0"+mins:mins;
	datastr =hours2+''+toc+''+mins2;
	toc = (toc==":") ? '&nbsp;' : ':';$("#clockexam").html(datastr+' ');setTimeout("myclock()", 1000);
}

function myclock_look(){
	ndata=new Date();
	secs= ndata.getSeconds();
	hours = ndata.getHours();
	mins = ndata.getMinutes();

	if (secs==0) mins = mins+1; if (mins==60) { hours=hours+1;  mins=0;  }
	hours=(hours==24)? 0:hours;
	hours2=(hours < 10)?"0"+hours:hours;
	mins2= (mins < 10 )?"0"+mins:mins;
	datastr =hours2+''+toc2+''+mins2;
	toc2 = (toc2==":") ? '&nbsp;' : ':';$("#clockexam_").html(datastr+' ');setTimeout("myclock_look()", 1000);
}



//
function parseStr(s) {
  var rv = {}, decode = window.decodeURIComponent || window.unescape;
  (s == null ? location.search : s).replace(/^[?#]/, "").replace(
    /([^=&]*?)((?:\[\])?)(?:=([^&]*))?(?=&|$)/g,
    function ($, n, arr, v) {
      if (n == "")
        return;
      n = decode(n);
      v = decode(v);
      if (arr) {
        if (typeof rv[n] == "object")
          rv[n].push(v);
        else
          rv[n] = [v];
      } else {
        rv[n] = v;
      }
    });
  return rv;
}


// возвращает тип числа с окончание
function declOfNum(number) {
	   titles = new Array('билет', 'билета', 'билетов');
	   cases = [2, 0, 1, 1, 1, 2];
	   return "<b>" + number + "</b> " + titles[ (number%100>4 && number%100<20)? 2 : cases[Math.min(number%10, 5)] ];
}

// возвращает тип числа с окончание
function declOfNum2(number) {
	   titles = new Array('места', 'мест', 'мест');
	   cases = [2, 0, 1, 1, 1, 2];
	   return "<b>" + number + "</b> " + titles[ (number%100>4 && number%100<20)? 2 : cases[Math.min(number%10, 5)] ];
}

// партнерусы
function partners(ns,img) {
  $("#parts-"+ns).attr("src",img);
}


// проверка на пустоту при добавлении сообщения
function blogs_checkFrmToAdd(oForm) {
	var bPermit = true;
	//
	var arrFields = oForm.elements;
	var i = 0;
	for (i=0; i<arrFields.length; i++) {
		var theFld = arrFields[i];
		var sName = theFld.name;
		if ( sName === 'text' || sName === 'login' || sName === 'capcha') {
			var sValue = theFld.value;
			if (!sValue.length) {
				bPermit = false;
				break;
			}
		}
	}
	//
	if (!bPermit) alert("Необходимо заполнить все обязательные поля");
	//
	return bPermit;
}


// проверка на пустоту при добавлении сообщения
function blogs_checkFrmToAdd_aut(oForm) {
	var bPermit = true;
	//
	var arrFields = oForm.elements;
	var i = 0;
	for (i=0; i<arrFields.length; i++) {
		var theFld = arrFields[i];
		var sName = theFld.name;
		if ( sName === 'text' ) {
			var sValue = theFld.value;
			if (!sValue.length) {
				bPermit = false;
				break;
			}
		}
	}
	//
	if (!bPermit) alert("Напишите хоть что ни-будь...");
	//
	return bPermit;
}


// проверка на пустоту при добавлении faq
function validate_faq_no_auth(oForm) {
	var bPermit = true;
	//
	var arrFields = oForm.elements;
	var i = 0;
	for (i=0; i<arrFields.length; i++) {
		var theFld = arrFields[i];
		var sName = theFld.name;
		if ( sName === 'faq_name' || sName === 'faq_email' || sName === 'faq_question' || sName === 'image_code') {
			var sValue = theFld.value;
			if (!sValue.length) {
				bPermit = false;
				break;
			}
		}
	}
	//
	if (!bPermit) alert("Необходимо заполнить все обязательные поля");
	//
	return bPermit;
}

// проверка на пустоту при добавлении faq
function validate_quest(oForm) {
	var bPermit = true;
	//
	var arrFields = oForm.elements;
	var i = 0;
	for (i=0; i<arrFields.length; i++) {
		var theFld = arrFields[i];
		var sName = theFld.name;
		if ( sName === 'e_name' || sName === 'e_name' || sName === 'e_question' || sName === 'image_code') {
			var sValue = theFld.value;
			if (!sValue.length) {
				bPermit = false;
				break;
			}
		}
	}
	//
	if (!bPermit) alert("Необходимо заполнить все обязательные поля");
	//
	return bPermit;
}

// проверка на пустоту при добавлении faq
function validate_faq(oForm) {
	var bPermit = true;
	//
	var arrFields = oForm.elements;
	var i = 0;
	for (i=0; i<arrFields.length; i++) {
		var theFld = arrFields[i];
		var sName = theFld.name;
		if (  sName === 'faq_question' ) {
			var sValue = theFld.value;
			if (!sValue.length) {
				bPermit = false;
				break;
			}
		}
	}
	//
	if (!bPermit) alert("Напишите хоть что ни-будь...");
	//
	return bPermit;
}


// голосование, выбор радиобаттуна
function answers(id) {
	var str = "#"+"an-"+id;
	$(".v-v-act").attr("class","v-v");
	$(str).attr("class","v-v-act");
	$("#cur_value").attr("value",id);

}



// голосование одиночное
function votings(id){
	if (id != ''){
		var vote_num = $("#vote_num").val();
		$(".vote").load("/voting/go_vote/"+vote_num+"/0/"+id);
	}
}


// голосование множественное
function votings_more(){
	var vote_num = $("#vote_num").val();

 root = document.getElementById("answes_data");
 els = root.getElementsByTagName("input");
 var mask = '';
   for(i = 0; i < els.length; i++)
     if (els[i].type == "checkbox"  )
	   if (els[i].checked == true  )
	      mask =   mask+els[i].value+',';
	if (mask != '')  $(".vote").load("/voting/go_vote/"+vote_num+"/1/"+mask);


}


window.reEmail = /^([a-z0-9\.\-\_])+\@(([a-zA-Z0-9\-\_])+\.)+([a-zA-Z0-9]{2,4})+$/i;

function validate_newuser() {
        var wrong = false;

		 if (!reEmail.test( $("#login").val() )){
           alert( 'Неккоректно введен "Эл.ящик"' );
           focus_name = 'login';  return false;
        } else
        if ($("#pass").val()==''){
           alert( 'Неккоректно введена "Пароль"' );
           focus_name = 'pass';  return false;
        }  else
		if ($("#pass2").val()==''){
           alert( 'Неккоректно введена "Пароль подтверждение"' );
           focus_name = 'pass2';  return false;
        }  else
		if ( $("#pass2").val() != $("#pass").val() ){
           alert( 'Пароли не совпадают' );
           focus_name = 'pass2';  return false;
        }  else
        if ($("#au_nic").val()==''){
           alert( 'Неккоректно введено "Ник"' );
           focus_name = 'au_nic'; return false;
        } else
        if ($("#name2").val()==''){
           alert( 'Неккоректно введено "Имя"' );
           focus_name = 'name2'; return false;
        } else
        if ($("#name").val()==''){
           alert( 'Неккоректно введена "Фамилия"' );
           focus_name = 'name';  return false;
        }  else
        if ($("#image_code").val() == ""){
            alert("Неккоректно введен 'код с картинки'");
            focus_name = 'image_code'; return false;
        }

        document.sendform.submit.disabled = true;
        return true;
}

function validate_olduser() {
        var wrong = false;

		if ( $("#pass").val() != ''  ){
			if ( ($("#pass2").val() != $("#pass").val()) ){
			   alert( 'Пароли не совпадают' );
			   focus_name = 'pass';  return false;
			}
        }

         if ($("#au_nic").val()==''){
           alert( 'Неккоректно введено "Ник"' );
           focus_name = 'au_nic'; return false;
        } else
        if ($("#name2").val()==''){
           alert( 'Неккоректно введено "Имя"' );
           focus_name = 'name2'; return false;
        } else
        if ($("#name").val()==''){
           alert( 'Неккоректно введена "Фамилия"' );
           focus_name = 'name';  return false;
        }



        document.sendform.submit.disabled = true;
        return true;
}

function delComment(com_id) {
  if (confirm("Удалить комментарий?")) {
      $.get('/mpanel/comments/proc_comment_del/'+com_id);
      $("#comdiv"+com_id).toggle();
  }
}

function actComment(com_id) {
  $.get('/mpanel/comments/proc_comment_act/'+com_id);
  $("#comact"+com_id).toggle();
}
