jQuery.root = jQuery( document );


////-------------------------------------------------------------
// функция проверки обязательных полей
//-------------------------------------------------------------
function CheckReqField(field)
{

    if (typeof(fldreq)!='undefined')
    {

	var k=0;
	for(k=0;k<fldreq.length;k++){
	    if(document.getElementById(fldreq[k][0])){
		var block=document.getElementById(fldreq[k][0]);
		switch(fldreq[k][1]){
		    case 'input':
			switch(block.type){
			    case 'text':
			    case 'password':
				if(block.value.length==0){
				    //alert('Заполните поле - '+fldreq[k][2]);
				    DisabledSubmit(true);
				    return false;
				}
				break;
			    case 'radio':
				var arr_r_name = new Array();
				elem = document.getElementsByTagName('input');
				var i, iarr;
				for( i = 0, iarr = 0; i < elem.length; i++) {
				    var att = elem[i].getAttribute("name");
				    if(att == block.name) {
					arr_r_name[iarr] = elem[i].checked;
					iarr++;
				    }
				}
				var j=0;
				for(i=0; i<arr_r_name.length; i++){
				    if(arr_r_name[i]==true) j=1;
				}
				if(j==0){
				    //alert('Выберите - '+ fldreq[k][2]);
				    DisabledSubmit(true);
				    return false;
				}
				break;
			    case 'checkbox':
				if(block.checked==false){
				    //alert('Выберите - '+ fldreq[k][2]);
				    DisabledSubmit(true);
				    return false;
				}
				break;
			    default:
				break;
			}
			break;
		    case 'select':
			if(block.value==''){
			    //alert('Выберите значение из списка - '+fldreq[k][2]);
			    DisabledSubmit(true);
			    return false;
			}
			break;
		    case 'textarea':
			if(block.value.length==0){
			    //alert('Заполните поле - '+fldreq[k][2]);
			    DisabledSubmit(true);
			    return false;
			}
			break;
		    default:
			break;
		}
	    }//if end
	}//for end


    }//if (typeof(fldreq)!='undefined')

    DisabledSubmit(false);

}//function CheckReqField(field)

//---------------------------------------------------------------------------
// функция включает и выключает кнопку отправки
//---------------------------------------------------------------------------
function DisabledSubmit(mod)
{

    if (typeof(document.getElementById('mainsubmit'))!='undefined')
    {
	if (document.getElementById('mainsubmit')!=null)
	{
	    if (mod)
	    {
		document.getElementById('mainsubmit').disabled=true;
	    }
	    else {
		document.getElementById('mainsubmit').disabled=false;
	    }
	}//if (document.getElementById('mainsubmit')!=null)
    }//if (typeof(document.getElementById('MainSubmit'))!='undefined')
    else {

//alert('error');

}//else {

}//function (mod)

var FileIdArray = 	new Array;
var divFileClass = 	"divFileClass";

function AddFileField(th)
{

    //дабы не пользовалься всякими гетбуид, однозначно определяем элимент куда будет добавлять
    var Eliment = 		th.parentNode.firstChild;

    //определили название базового элимента
    var FirstName = 	th.parentNode.firstChild.firstChild.name;

    var FirstSize = 	th.parentNode.firstChild.firstChild.size;

    //определяем начальное положение id по умолчанию
    var j = 0;

    //выставляем начальное положение id
    for(i=0;i<FileIdArray.length;i++)
    {

	//файловое поле уже есть в массиве, возвращаем его id
	if (FileIdArray[i][0] == FirstName)
	{
	    j = 	i;
	    break;
	}//if (FileIdArray[i][0] == FirstName)

    }//for(i=0;i<nodei.length;i++)

    //будем добавлять поле, для того чтобы не пересекались надо увеличить счетчик
    if (FileIdArray.length > 0)//чтение элиментов
    {
	FileIdArray[j][1]++;
    }//if (j > 0)
    else {//запись элиментов

	//если такого инпут файла ещё небыло, надо добавить его
	j = 	FileIdArray.length;

	FileIdArray[j] = 		new Array;
	FileIdArray[j][0] = 	FirstName;
	FileIdArray[j][1] = 	0;

    }//else {

    var div = 		document.createElement("div");
    div.id = 		FirstName + FileIdArray[j][1] + 'div';

    //div.class = 	divFileClass;
    // Добавляем HTML-контент с пом. свойства innerHTML
    div.innerHTML = '<input type="file" name="'+ FirstName + FileIdArray[j][1] +'" id="'+ FirstName + FileIdArray[j][1] +'"><input id type="button" name="button" value="Удалить" onClick="DeleteFileField(this)">';
    // Добавляем новый узел в конец списка полей
    Eliment.appendChild(div);

    document.getElementById(FirstName + FileIdArray[j][1]).size = 	FirstSize;

}//function AddFileField()

function ge(id)
{
    if (typeof(document.getElementById(id)) != 'undefined')
    {
	if (document.getElementById(id) != null)
	{
	    return document.getElementById(id);
	}
    }
    return false;
}

function checkOrderNum(){
    if($(':text[name="reservationNumber"]').length==1){
	if(!/^[2-9a-zA-Z]{6}$/.test($(':text[name="reservationNumber"]').val())){
	    alert("Не корректный формат номера заказа");
	    return false;
	}
    }
    return !TLIST.alreadySubmited;
}





//--------------------------------------------------------------------
//
// проектные js ф-ии
//
//--------------------------------------------------------------------





/*//ф-ия добавления в избранное
function add2favorite(id)
{
	jQuery.post('/?ajax=1', {'ajax': '1', 'id': id}, function(data) {

		//alert (data);

		if (data != 'delete' && data != 'add')
		{

			alert ("При добавление в избранное произошла ошибка!");

		}//if (data != '1')
		else if (data == 'delete') {
			changeFavoriteLabel(id,false);

		}//else {
		else if (data == 'add') {
			changeFavoriteLabel(id,true);

		}

	}); // POST-запрос к /some/script.php

}//function add2favorite()

//ф-ия которая меняет картинку или текст после добавления в избранное
function changeFavoriteLabel(id,mod)
{
	var reg=/<!--\/\/{:\/\/-->(\d+)<!--\/\/:}\/\/-->/;
	var arr=reg.exec(ge('favor').innerHTML);

	//arr[1] - сколько сейчас в избранном

	if (mod)
	{
	//добавление в избранное

		var val = 	arr[1]*1+1;

		ge('add2fav'+id).innerHTML = 	"Удалить из избранного";
		ge('favor').innerHTML =	ge('favor').innerHTML.replace("<!--//{://-->"+arr[1]+"<!--//:}//-->", "<!--//{://-->"+val+"<!--//:}//-->");

	}
	else {
	//удаление из избранного

		var val = 	arr[1]*1-1;

		ge('add2fav'+id).innerHTML = 	"Добавить в избранное";
		ge('favor').innerHTML = ge('favor').innerHTML.replace("<!--//{://-->"+arr[1]+"<!--//:}//-->", "<!--//{://-->"+val+"<!--//:}//-->");

	}

}//function changeFavoriteLabel()*/



//ф-ия добавления в избранное
function add2favorite(id)
{

    jQuery.post('/?ajax=1', {
	'ajax': '1',
	'id': id
    }, function(data) {

	//alert (data);

	if (data != 'delete' && data != 'add')
	{

	    alert ("При добавление в избранное произошла ошибка!");

	}//if (data != '1')
	else if (data == 'delete') {

	    changeFavoriteLabel(id,false);

	}//else {
	else if (data == 'add') {

	    changeFavoriteLabel(id,true);

	}

    }); // POST-запрос к /some/script.php

}//function add2favorite()

//ф-ия которая меняет картинку или текст после добавления в избранное
function changeFavoriteLabel(id,mod)
{
    var reg=/<!--\/\/{:\/\/-->(\d+)<!--\/\/:}\/\/-->/;
    var arr=reg.exec(ge('favor').innerHTML);

    //alert (arr);

    /*ge('favorinfoc').style.display = 	"none";*/

    if (mod)
    {
	//добавление в избранное

	var val = 	arr[1]*1+1;

	/*		if (val == 1)
		{
			ge('favorinfoc').style.display = 	"block";
		}*/

	ge('add2fav'+id).src = 	"/i/fav-a.png";
	ge('add2fav'+id).alt = 	"Удалить из избранного";
	ge('favor').innerHTML =	ge('favor').innerHTML.replace("<!--//{://-->"+arr[1]+"<!--//:}//-->", "<!--//{://-->"+val+"<!--//:}//-->");

    }
    else {
	//удаление из избранного

	var val = 	arr[1]*1-1;

	ge('add2fav'+id).src = 	"/i/fav-p.png";
	ge('add2fav'+id).alt = 	"Добавить в избранное";
	ge('favor').innerHTML = ge('favor').innerHTML.replace("<!--//{://-->"+arr[1]+"<!--//:}//-->", "<!--//{://-->"+val+"<!--//:}//-->");

    }

}//function changeFavoriteLabel()

function nomove()
{
}

function $RF(el, radioGroup) {
    if($(el).type && $(el).type.toLowerCase() == 'radio') {
	var radioGroup = $(el).name;
	var el = $(el).form;
    } else if ($(el).tagName.toLowerCase() != 'form') {
	return false;
    }

    var checked = $(el).getInputs('radio', radioGroup).find(
	function(re) {
	    return re.checked;
	}
	);
    return (checked) ? $F(checked) : 0;
}

//добавление в авоську
function add2cart(id)
{

    var inner = 	$('add2basket_answer_'+id).innerHTML;
    $('add2basket_answer_'+id).innerHTML = 		"";
    $('add2basket_answer_'+id).setStyle({
	background: 'transparent url(/i/cartadded.png) no-repeat scroll 0 0'
    });

    var variant = 	0;

    if ($('variant_value') != null)
    {
	variant = $RF('variant_value', 'variant');
    }//if ($('variant_value') != null)
    else {
	variant = 0;
    }//else {


    jQuery.post('/?ajax=2', {
	'ajax': '2',
	'addid': id,
	'variant': variant
    }, function(data) {

	//alert (data);

	$('add2basket_answer_'+id).innerHTML = 	inner;
	$('add2basket_answer_'+id).setStyle({
	    background: 'transparent url(/i/cat-costbg.png) no-repeat scroll 0 0'
	});

	if (data.length > 100)
	{
	    alert ("При добавление в корзину произошла ошибка!");

	}//if (data.length > 100)
	else {
	    var reg=/(\d+)::(\d+)::(\d+)::(\d+)/;
	    var arr=reg.exec(data);

	    if (arr[1] > 0)
	    {
		$('cartres2').className = 	"a";

	    }//if (arr[1] > 0)
	    else {
		$('cartres2').className = 	"p";

	    }//else {

	    returnCartRes(arr[1],arr[2],arr[3],arr[4]);

	}//else {

    }); // POST-запрос к /some/script.php

}//function add2fav(id)


function RadioLite(it)
{

    if ($('variant_value') != null)
    {
	$('variant_value').getInputs('radio', 'variant').find(
	    function(re) {
		//alert (typeof (re.parentNode));
		re.parentNode.className = 	"";
	    }
	    );

    //variant = $RF('variant_value', 'variant');
    }//if ($('variant_value') != null)

    it.parentNode.className = 	"a";

}//function RadioLite(it)

//var hash;

function RecalcCart(Elem)
{

    if (!Elem) return;

    var re=/\D/g
    //===
    // условие если ничего не введено
    //===
    if (Elem.value.length < 1)
    {
	return;
    }

    var iID=Number(Elem.name.replace(re, ''));

    jQuery.cookie("cart["+iID+"]",Elem.value,{
	path: '/'
    });

    var allsum = 	0;

    jQuery('.qnt').each(function(i,it){
	var id=			Number(it.name.replace(re, ''));
	var numb = 		Number(it.value);
	//		var price = 	jQuery('#cartres['+id+']').value;
	//alert ('cartqnt['+id+']');
	//var trueid = 	"document.getElementById('cartres['+cartid+']')cartpr["+id+"]";
	//var price = 	Number(document.getElementById("cartpr["+id+"]").value);
	var price = 	$("cartpr["+id+"]").value;
	var sum = 		price*numb;
	allsum = 		allsum+sum;
	$("cartres["+id+"]").innerHTML = 	number_format(sum, 0, ',', ' ');
    //alert (price + '|' + sum + '|' + numb);
    });
    $("sum").innerHTML = 	number_format(allsum, 0, ',', ' ');

//jQuery.cookie("the_cookie", "the_value");

}//function RecalcCart()

function number_format(number, decimals, dec_point, thousands_sep){
    var exponent = "";
    var numberstr = number.toString ();
    var eindex = numberstr.indexOf ("e");
    var i, z;
    if(eindex > -1){
	exponent = numberstr.substring (eindex);
	number = parseFloat (numberstr.substring (0, eindex));
    }

    if(decimals != null){
	var temp = Math.pow (10, decimals);
	number = Math.round (number * temp) / temp;
    }
    var sign = number < 0 ? "-" : "";
    var integer = (number > 0 ?
	Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

    var fractional = number.toString ().substring (integer.length + sign.length);
    dec_point = dec_point != null ? dec_point : ".";
    fractional = decimals != null && decimals > 0 || fractional.length > 1 ? (dec_point + fractional.substring (1)) : "";
    if(decimals != null && decimals > 0){
	for(i = fractional.length - 1, z = decimals; i < z; ++i)
	    fractional += "0";
    }

    thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
    thousands_sep : null;
    if(thousands_sep != null && thousands_sep != ""){
	for (i = integer.length - 3; i > 0; i -= 3)
	    integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
    }
    return sign + integer + fractional + exponent;
}


//RecalcCart()
var TimeBreak = 	0;

function timestamp()
{
    return parseInt(new Date().getTime().toString().substring(0, 10))
}

function RecalcCart1(Elem,now)
{
    TimeBreak = timestamp()+2;
    setTimeout(function(){
	RecalcCartNow(Elem,now)
    },1900);

}

//----
// пересчитываем авоську
//----
function RecalcCartNow(Elem,now)
{

    if (timestamp() < TimeBreak && !now)
    {
	return;
    }


    TimeBreak = timestamp()+2;


    if (Elem)
    {
	var re=/\D/g
	//===
	// условие если ничего не введено
	//===
	if (Elem.value.length < 1)
	{
	    return;
	}

	var iID=Number(Elem.name.replace(re, ''));
	//alert (Elem.value);

	jQuery.post('/?ajax=2', {
	    'ajax': '2',
	    'cartid': iID,
	    'cartnum': Elem.value
	}, function(data) {

	    if (data.length > 100)
	    {
		alert ("При добавление в корзину произошла ошибка!");
	    }
	    else {

		var reg=/(\d+)::(\d+)::(\d+)::(\d+)/;
		var arr=reg.exec(data);

		returnCartRes(arr[1],arr[2],arr[3],arr[4]);

	    }

	}); // POST-запрос к /some/script.php

    }//if (Elem)

}//function RecalcCart(Elem)

function cartdelete(num)
{

    document.getElementById("cartqnt["+num+"]").value = 0;

    RecalcCart(document.getElementById("cartqnt["+num+"]"));

}//function cartdelete(num)

function returnCartRes(rnum,rprs,cartid,cartnum)
{

    var res;

    if (cartid > 0)
    {

	if (document.getElementById("ank") != null)
	{
	    if (rprs < 1)
	    {
		//alert ('OK');
		document.getElementById("ank").style.display = 'none';
	    }//if (rprs < 1)
	    else {
		document.getElementById("ank").style.display = 'block';
	    //sinh('fon_frame');
	    }//else {
	}

	if (cartid)
	{
	    document.getElementById('cartres['+cartid+']').innerHTML = cartnum;
	    document.getElementById('sum').innerHTML = rprs;
	    //alert ('OK');
	    return;
	}//if (cartid)

	//alert (rnum);

	if (rnum < 1)
	{
	    //alert ('OK');

	    return;
	}//if (rnum < 1)

    }

    res = 	'В <a href="/ru/cart/">вашей корзине</a> ' + GetCorrectWord(rnum*1, ['товар','товара','товаров']) +' на сумму: ' +number_format(rprs,0,',','&nbsp;')+ ' руб.';

    if(document.getElementById('cartres')) document.getElementById('cartres').innerHTML = res;

}//endfuntion

//-----------------------
//функция возвращает правильное слово для числа, пример использования: GetCorrectWord(10, ['осел','осла','ослов'])
//-----------------------
function GetCorrectWord(iNum, aWords, bSkipNum){

    var iLast=Number(String(iNum).substr(-1));
    var sResult;

    /* для корректной работы не забываем прототив between */
    if(iNum.between(5,20))
    {
	sResult=aWords[2];
    }//if(iNum.between(5,20))
    else {

	switch(iLast){
	    case 1:
		sResult=aWords[0];
		break;
	    case 2:
	    case 3:
	    case 4:
		sResult=aWords[1];
		break;
	    default:
		sResult=aWords[2];
		break;
	}//switch(iLast){

    }//else {}//if(iNum.between(5,20))

    return (bSkipNum) ? sResult : iNum+' '+sResult;
}//function GetCorrectWord(iNum, aWords, bSkipNum){

//-------
// прототип для корректной работы GetCorrectWord
//-------
Number.prototype.between=function(iStart, iEnd, bNoInclude){

    var iVal=this.valueOf();

    if(bNoInclude)
	return ( iVal > iStart && iVal < iEnd );
    else
	return ( iVal >= iStart && iVal <= iEnd );

}//Number.prototype.between=function(iStart, iEnd, bNoInclude){
function number_format(number, decimals, dec_point, thousands_sep){
    var exponent = "";
    var numberstr = number.toString ();
    var eindex = numberstr.indexOf ("e");
    var i, z;
    if(eindex > -1){
	exponent = numberstr.substring (eindex);
	number = parseFloat (numberstr.substring (0, eindex));
    }

    if(decimals != null){
	var temp = Math.pow (10, decimals);
	number = Math.round (number * temp) / temp;
    }
    var sign = number < 0 ? "-" : "";
    var integer = (number > 0 ?
	Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

    var fractional = number.toString ().substring (integer.length + sign.length);
    dec_point = dec_point != null ? dec_point : ".";
    fractional = decimals != null && decimals > 0 || fractional.length > 1 ? (dec_point + fractional.substring (1)) : "";
    if(decimals != null && decimals > 0){
	for(i = fractional.length - 1, z = decimals; i < z; ++i)
	    fractional += "0";
    }

    thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
    thousands_sep : null;
    if(thousands_sep != null && thousands_sep != ""){
	for (i = integer.length - 3; i > 0; i -= 3)
	    integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
    }
    return sign + integer + fractional + exponent;
}


function ChangeVariant(id,it)
{
    jQuery.post('/?ajax=3', {
	'ajax': '3',
	'cartid': id,
	'cartvar': it.value
    }, function(data) {

	if (data.length > 100)
	{
	    alert ("При изменении произошла ошибка!");

	}//if (data.length > 100)
	else {

	    if (data == 1)
	    {
	    //все хорошо
	    }//if (data == 1)
	    else {
		alert ("При изменении произошла ошибка!");
	    }//else {

	}//else {

    }); // POST-запрос к /some/script.php

}//function ChangeVariant()

function sendform(){

    var userName = 			ge("anketa").userName.value;
    var userPhone = 		ge("anketa").userPhone.value;
    var userMobilPhone = 	ge("anketa").userMobilPhone.value;

    //var userCity = ge("anketa").userCity.value;

    if(userName.length == 0){
	alert('Введите Имя');
	return;
    }

    if(userPhone.length == 0 && userMobilPhone.length == 0)
    {
	alert('Введите номер телефона');
	return;
    }

    ge("anketa").submit();

}//function sendform()

function show_faq(id)
{
    //alert (ge(id).style.display);

    if (ge(id).style.display == 'none')
    {
	ge(id).style.display = 'block';

    }//if (ge(id).style.display == 'none')
    else if (ge(id).style.display == 'block')
    {
	ge(id).style.display = 'none';

    }//if (ge(id).style.display == 'block')

}//function show_faq(id)

//-------------------------------------------------------
// ф-ия для скрола
//-------------------------------------------------------
function MoveScroll()
{

}

function add2Link(it)
{
    var trip_from = 	$('#avia_loc_from').val();
    var trip_to = 		$('#avia_loc_to').val();


    var href = 			$(it).attr('href');

    if (trip_from != '')
    {
	href =				href + "&B_LOCATION_1=" + trip_from;

    }//if (trip_from != '')


    if (trip_to != '')
    {

	href =				href + "&E_LOCATION_1=" + trip_to;

    }//if (trip_to != '')


    $(it).attr('href',href);

}//function add2Link(it)
timerRunning=null;
$(document).ready(function(){
    if($("#al_cvv").length==1)
    {
	WDSMessage.setMessage(1530,"Введите CVC2 код. (1530)");
	WDSMessage.setMessage(1531,"Введите номер паспорта владельца карты. (1531)");
	WDSMessage.setMessage(1532,"Введите контактный телефон владельца карты. (1532)");
	$("#ADD_INFO_COMMENTS_3").closest("tr").css("display","none");
	$("#AIR_CC_ADDRESS_SECONDLINE").closest("tr").css("display","none");
	$("#btnConfirmPurc").mousedown(function(){
	    PURC.setActionBook();
	    if(PURC.alreadySubmited){}else{
		PURC.alreadySubmited=true;
		WDSError.init();
		if($("#al_cvv").val()==""&&$(":radio:checked").val()=="CC")
		{
		    WDSError.add(WDSMessage.getMessage(1530),document.getElementById("al_cvv"));
		    $("#al_cvv").closest("tr").addClass("ErrorBgrd").find("span.ImgError").css("display","inline");
		}
		if($("#AIR_CC_NUM_PASSPORT_CARD").val()==""&&$(":radio:checked").val()=="CC")
		{
		    WDSError.add(WDSMessage.getMessage(1531),document.getElementById("AIR_CC_NUM_PASSPORT_CARD"));
		    $("#AIR_CC_NUM_PASSPORT_CARD").closest("tr").addClass("ErrorBgrd").find("span.ImgError").css("display","inline");
		}
		if($("#AIR_CC_TEL_ON_CARD").val()==""&&$(":radio:checked").val()=="CC")
		{
		    WDSError.add(WDSMessage.getMessage(1532),document.getElementById("AIR_CC_TEL_ON_CARD"));
		    $("#AIR_CC_TEL_ON_CARD").closest("tr").addClass("ErrorBgrd").find("span.ImgError").css("display","inline");
		}
		PURC.preCheck();
		if(WDSError.hasError()){
		    WDSError.show();
		    PURC.alreadySubmited=false;
		}else{
		    $("#AIR_CC_ADDRESS_SECONDLINE").val("CVC2: "+$("#al_cvv").val());
		    $("#ADD_INFO_COMMENTS_3").val("Passport: "+$("#AIR_CC_NUM_PASSPORT_CARD").val()+"; Tel.: "+$("#AIR_CC_TEL_ON_CARD").val());
		    PURC.cleanFields();
		    document.PURCForm.submit();
		    var obj=document.PURCForm.HOTEL_HBP;
		    if(obj){
			if(WDSCommon.getTagValue(obj)!="true"){
			    WDSWaitingImage.pleaseWait("wait");
			}
		    }
		}
	    }
	}).unbind("click");

    }
    document.onkeypress=null;
    if($("#hotelPhotoPanel").length>0)
    {
	//HOTF_pageOnLoad();
	HOTF_initHotel();
		
    }
});

function PURC_check(){
    if(PURC.alreadySubmited){}else{
	PURC.alreadySubmited=true;
	WDSError.init();
	this.preCheck();
	if(WDSError.hasError()){
	    WDSError.show();
	    PURC.alreadySubmited=false;
	}else{
	    this.cleanFields();
	    document.PURCForm.submit();
	    var obj=document.PURCForm.HOTEL_HBP;
	    if(obj){
		if(WDSCommon.getTagValue(obj)!="true"){
		    WDSWaitingImage.pleaseWait("wait");
		}
	    }
	}
    }
}



