
// redirect to url
// will be redefine for agency sites
function lantaGoToURL(host, url) {
 	var mpath = host+'/main/cruisesway/cruisecompany/events/'+url+'/index.php';
	window.location.href = mpath;
 }



function ShowDialog(url, modal, dialogFeatures) {
	if(navigator.appName == 'Netscape') {
		window.open(url, '', dialogFeatures);
	}
	else {
		if(modal)
			window.showModalDialog(url, '', dialogFeatures);
		else
			window.showModelessDialog(url, '', dialogFeatures);
	}
}

function ShowDialogWithExtent(url, width, height, modal, resizable) {
	if(navigator.appName == 'Netscape') {
		dialogFeatures = 'width=' + width + ',height=' + height + ',,toolbar=no,directories=no,status=no,menubar=no,modal=yes,scrollbars=' + (resizable ? 'yes,': 'no,') + 'resizable=' + (resizable ? 'yes': 'no');
	}
	else {
		dialogFeatures = 'dialogWidth:' + width + 'px; dialogHeight: ' + height + 'px; help: no; scroll: ' + (resizable ? 'yes; ': 'no; ') + 'resizable: ' + (resizable ? 'yes': 'no');
	}
	ShowDialog(url, modal, dialogFeatures);
}

function ShowHelp(url) {
	ShowDialogWithExtent(url, 380, 410, false, false);
}

function getShipOptgroups () {
	if (!('_optgroups' in this)) {
		this._optgroups = $('#ship').children('optgroup');
	}
	return this._optgroups;
}

function checkSearchForm () {
	var isValid = true;
	var s = [];
	if ('0' == $('#count').val()) {
		s.push('Введите количество человек');
		isValid = false;
	}
	if (!isValid) {
		alert(s.join('\n'));
		return false;
	}
	else return true;
}

function selectCruiseLine (code) {
	var optgroups = getShipOptgroups();
	var cn = $('#company').children('option[value='+code+']').text();
	var shipEl = $('#ship');
	if ('' != code) {
		shipEl.val('');
		optgroups.each(function(i,el) {
			el = $(el).detach();
			if (cn == el.attr('label')) {
				el.appendTo(shipEl);
			}
		})
	}
	else {
		optgroups.detach().appendTo(shipEl);
	}
}

function isValidName(str) {
	return /^[\w\s]+$/.test(str);
}

function isValidEmail(str) {
	return /^[\w\d\.\_\%\+\-]+@[\w\d\.\-]+\.\w{2,4}$/.test(str);
}

function isValidPhone(str) {
	return /^[\d\-\s]+$/.test(str);
}

function isValidNumber(str, min, max) {
	return /^\d+$/.test(str) && (arguments.length < 2 || parseInt(str,10) >= min) && (arguments.length < 3 || parseInt(str,10) <= max);
}

function checkContactsForm () {
	try {
		if (!$('#contactName').val().length) {
			throw('Введите имя для контакта.');
		}
		if (!isValidEmail($('#contactEmail').val())) {
			throw('Введите свой адрес электронной почты');
		}
		if (!isValidPhone($('#contactPhone').val())) {
			throw('Введите контактный номер телефона.');
		}
	}
	catch (e) {
		alert(e);
		return false;
	}
	return true;
}

function checkPassengersForm () {
	var today = new Date();
	try {
		for (var i=1; i <= 4; i++) {
			if ($('#gender_'+i)[0]) {
				if (!isValidName($('#name_'+i).val())) {
					throw('Пассажир '+i+': введите свою фамилию. Допускаются только английские буквы.');
				}
				if (!isValidName($('#fname_'+i).val())) {
					throw('Пассажир '+i+': введите свое имя. Допускаются только английские буквы.');
				}
				if (!isValidNumber($('#birthDay_'+i).val(), 1, 31)) {
					throw('Пассажир '+i+': введите корректную дату рождения.');
				}
				if (!isValidNumber($('#birthMonth_'+i).val(), 1, 12)) {
					throw('Пассажир '+i+': введите корректную дату рождения.');
				}
				if (!isValidNumber($('#birthYear_'+i).val(), 1900, today.getFullYear()-1)) {
					throw('Пассажир '+i+': введите корректную дату рождения.');
				}
				if (!(/^[a-zA-Zа-яА-Я\d]{2}$/.test($('#serPass_'+i).val()))) {
					throw('Пассажир '+i+': введите корректную серию паспорта.');
				}
				if (!(/^\d{6,7}$/.test($('#numPass_'+i).val()))) {
					throw('Пассажир '+i+': введите корректный номер паспорта.');
				}
				if (!isValidNumber($('#validTo_Day_'+i).val(), 1, 31)) {
					throw('Пассажир '+i+': введите корректную дату истечения срока действия паспорта.');
				}
				if (!isValidNumber($('#validTo_Month_'+i).val(), 1, 12)) {
					throw('Пассажир '+i+': введите корректную дату истечения срока действия паспорта.');
				}
				if (!isValidNumber($('#validTo_Year_'+i).val(), today.getFullYear(), today.getFullYear() + 10)) {
					throw('Пассажир '+i+': введите корректную дату истечения срока действия паспорта.');
				}
			}
			else {
				break;
			}
		}
	}
	catch (e) {
		alert(e);
		return false;
	}
	return true;
}

function translit (input) {
	var ru = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЪЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщыъьэюя';
	var en = ['A','B','V','G','D','E','YO','ZH','Z','I','Y','K','L',
	'M','N','O','P','R','S','T','U','F','KH','TS','CH','SH','SCH','Y','\'','\'',
	'E','YU','YA','a','b','v','g','d','e','yo','zh','z','i','y','k','l','m','n',
	'o','p','r','s','t','u','f','kh','ts','ch','sh','sch','y','\'','\'','e',
	'yu','ya'];

	var out = '';
	for (var i = 0; i < input.length; i++) {
		var testChar = input.charAt(i);
		var index = ru.indexOf(testChar);

		if (index >= 0) {
			var transliterateChar = en[index];
			out += transliterateChar;
		}
		else {
			out += testChar;
		}
	}
	return out;
}


/**
 * Изменение регистра символов в строке
 * @param input - Исходная строка
 * @param letterCase - Тип преобразования: 1 - первая буква большая, остальные - маленькие. 2 - верхний регистр
 * всех символов в строке. 3 - нижний регистр символов в строке
 */

function SetLetterCase(input, letterCase) {
	var out = '';
	switch (letterCase) {
		case '1':
			out = input.substring(0, 1).toUpperCase() + input.substring(1, input.length).toLowerCase();
			break;
		case '2':
			out = input.toUpperCase();
			break;
		case '3':
			out = input.toLowerCase();
			break;
	}
	return out;
}

function checkMail(ob) {
	if (ob.value != "") {
		re = /^(?:[a-zA-Z0-9_'^&amp;/+-])+(?:\.(?:[a-zA-Z0-9_'^&amp;/+-])+)*@(?:(?:\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)|(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]){2,}\.?)$/
		if (!ob.value.match(re)) {
			alert("Введите корректный e-mail");
			ob.focus();
			ob.value = '';
		}
	}
}

/***
 * Проверка даты. Должно быть числовое поле и соответствовать типу:
 * @param ob - элемент формы
 * @param type - тип вводимых данных. 1 - день месяца, 2 - номер месяца,
 * 3 - год между 1930 и 2008, 4 - год между 2009 и 2014
 * @param next - не используется
 */

function checkDay(ob, type, next) {
	if (ob.value != "") {
		if (isNaN(ob.value)) {
			alert('Поле должно содержать числовое значение');
			ob.focus();
			ob.value = '';
		} else {
			if (type == 1) if (ob.value < 1 || ob.value > 31) {
				alert('День должен быть в диапазоне 1-31');
				ob.focus();
				ob.value = '';
			}
			if (type == 2) if (ob.value < 1 || ob.value > 12) {
				alert('Месяц должен быть в диапазоне 1-12');
				ob.focus();
				ob.value = '';
			}
			if (type == 3) if (ob.value < 1930 || ob.value > 2008) {
				alert('Год должен быть в диапазоне 1930-2008');
				ob.focus();
				ob.value = '';
			}
			if (type == 4) if (ob.value < 2010 || ob.value > 2017) {
				alert('Год должен быть в диапазоне 2010-2017');
				ob.focus();
				ob.value = '';
			}
		}
	}
}

/**
 * Проверка номера пасспорта
 */

function checkPassport(ob, type) {
	if (ob.value != "") {
		if (isNaN(ob.value)) {
			alert('Поле должно содержать числовое значение');
			ob.focus();
			ob.value = '';
		} else {
			if (type == 2) {
				var val = ob.value;
				if (val.length < 7 || val.length > 7) {
					alert('Длина поля должна быть 7 знаков');
					ob.focus();
					ob.value = '';
				}
			}
		}
	}
}

/**
 * Проверяет элементы формы типа text и password на заполненность в форме formrate
 */

function checkForm() {
	var args = checkForm.arguments;
	var frm = document.forms.formrate;
	var num_arr = 0;
	var errormsg = '';
	for (i = 0; i < frm.length; i++) {
		if (frm[i].type == 'text' || frm[i].type == 'password') if (frm[i].value == '' && !findExclusion(args, frm[i].id)) {
			// if(errormsg == '') errormsg = "Заполнены не все поля [  " + frm[i].name + " ]";
			if (errormsg == '') errormsg = "Заполнены не все поля";
			id = frm[i].id;
			document.getElementById(id).className = 'errcolor';
		}
	}

	if (errormsg != '') {
		alert(errormsg);
		return false;
	} else {
		return true;
	}
}

function changeInsurance(ins_name, ins_val, uri) {

	insn_val = ins_name.options[ins_name.selectedIndex].value;
	ins_val_value = ins_val.options[ins_val.selectedIndex].value;
	rate = $(".rate:checked").val();
	document.location.href = uri + '?optype=cruise&logged=1&code=' + insn_val + '&code1=' + ins_val_value + '&rate=' + rate;
}

/*
 function checkDelete(rsd, str)
 {
 return (confirm(str + ": " + rsd + " будет удален(а)\nВы уверены?"))?true:false;
 }
 */

function auth(type) {

	if (type == 1) {
		$.ajax({
			url: '/basket/ajax/login.php',
			data: {
				'atype': type,
				'login': $('#login').val(),
				'pass': $('#password').val(),
				'r': Math.random()
			},
			success: function (data) {
				$('#reg').html(data);
			}
		});
	}
	else if (type == 2) {
		$.ajax({
			url: '/basket/ajax/login.php',
			data: {
				'atype': type,
				'login': document.getElementById('login').value,
				'r': Math.random()
			},
			success: function (data) {
				$('#reg').html(data);
			}
		});
	}
	else {
		$.ajax({
			url: '/basket/ajax/login.php',
			data: {
				'atype': 0,
				'login': '',
				'pass': '',
				'r': Math.random()
			},
			success: function (data) {
				$('#reg').html(data);
			}
		});
	}

}

function authClient() {

	if (!document.getElementById('login').value) {
		alert('Введите логин');
		return;
	}

	if (!document.getElementById('pass').value) {
		alert('Введите пароль');
		return;
	}

	$.ajax({
		url: '/basket/ajax/login_client.php',
		type: 'POST',
		data: {
			'login': document.getElementById('login').value,
			'pass': document.getElementById('pass').value,
			'r': Math.random()
		},
		success: function (data) {
			$('#reg').html(data);
			setForm2status(false);
		}
	});
}

function logoutClient() {
	$.ajax({
		url: '/basket/ajax/login_client.php',
		type: 'POST',
		data: {
			'logout': 'true',
			'r': Math.random()
		},
		success: function (data) {
			$('#reg').html(data);
			setForm2status(false);
		}
	});
}

function shw(cElement) {
	cElement.style.top = getBodyScrollTop() + 100;
	cElement.style.left = getBodyScrollLeft() + 300;
	cElement.style.display = 'block';
}

function getBodyScrollTop() {
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft() {
	return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}

/**
 * Определяет, есть ли в массиве args элемент со значением test
 */
function findExclusion(args, test) {
	var ret = false;
	for (j = 0; j < args.length; j++) {
		if (args[j] == test) ret = true;
	}
	return ret;
}

/**
 * Выводит окно ввода логина для мастера
 * Если логин мастера привязан к логину на сайте, то в сессию сохраняются данные пользователя из мастера.
 * Если нет, то происходит привязка
 */
function authFilial() {
	var login = window.prompt("Введите Ваш логин в Мастере");

	if (login != null && login != '') {
		$.ajax({
			url: '/basket/ajax/add_master_login.php',
			data: {
				'login': login
			},
			success: function (data) {
				if (data != "OK") {
					alert(data);
					authFilial();
				}
				else {
					alert("Привязка успешно произошла");
				}
			}
		});
	}
}

function showDatepicker(input_id) {
	$('#'+input_id).datepicker('show');
}

_monthNames = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
    'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];

_dayNames =	['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'];

$(document).ready(function(){
	$('.input_date').datepicker({
		dateFormat: 'dd/mm/yy',
        firstDay: 1,
        monthNames: _monthNames,
	    dayNamesMin: _dayNames
	});
	$.spin.imageBasePath = staticUrl +'/img/';
	$('#duration').spin({
		interval: 1,
		min: 0
	});
	$('#price').spin({
		interval: 30000,
		min: 0
	});
});

