﻿var urlEn = /\/en\//;
var urlDe = /\/de\//;
var urlRu = /\/ru\//;

// number of milliseconds in day
var MILLIS_IN_DAY = 86400000;
// number of milliseconds in year
var MILLIS_IN_YEAR = MILLIS_IN_DAY * 365;

/**
 * Show upper login block.
 */
function showFfpLoginBlock() {
	if (typeof (userFirstLastName) == "undefined") {
		return;
	}
	
	if (userFirstLastName != null) {
		if (userCardNumber != null) {
			document.getElementById('ffpLoginLogged').style.display = 'block';
			document.getElementById('logged_username').innerHTML = userFirstLastName;
		} else {
			document.getElementById('ffpLoginLoggedNonFFP').style.display = 'block';
			document.getElementById('logged_username_nonffp').innerHTML = userFirstLastName;
		}	
		$(".loginLink").hide();
	} else {
		document.getElementById('ffpLoginNonLogged').style.display = 'block';
		$(".loginLink").show();
	}
}

/**
 * Show card in left block for new pages. 
 */
function showFfpLeftContentBlock() {
	if (typeof (userFirstLastName) == "undefined") {
		return;
	}

	var lang = '';
	var path = document.location.pathname;
	
	if (urlDe.test(path)) {
		lang = 'de';
	} else if (urlRu.test(path)) {
		lang = 'ru';
	} else {
		lang = 'en';
	}

	/*
	 * We need to use parameters 'card' and 'update' just for disable caching. 
	 */
	if (userFirstLastName != null) {
		document.getElementById('ffp_card_div').style.display = 'block';
		if (userCardNumber != null) {
			document.getElementById('ffp_card_img').src = '/servlet/card.png?background=gradient&lang='+lang+'&card='+userCardNumber+'&update='+userUpdateTime;
			document.getElementById('ffp_card_img').useMap = '#Map_ffp';
		} else {
			document.getElementById('ffp_card_img').src = '/servlet/card.png?background=gradient&lang='+lang+'&card='+userCardNumber+'&update='+userUpdateTime;
			document.getElementById('ffp_card_img').useMap = '#Map_not_ffp';

			if (document.getElementById('ffp_banner')) {
				document.getElementById('ffp_banner').style.display = 'block';
			}

		}
		if (document.getElementById('sep')) {
			document.getElementById('sep').style.display = 'block';
		}
	} else {
		document.getElementById('ffp_logo_div').style.display = 'block';

		if (document.getElementById('ffp_banner')) {
			document.getElementById('ffp_banner').style.display = 'block';
		}
	}
}


/**
 * Show card in left block for old pages.
 */
function showFfpLeftContentBlock2() {
	if (typeof (userFirstLastName) == "undefined") {
		return;
	}

	var lang = '';
	var path = document.location.pathname;
	
	if (urlDe.test(path)) {
		lang = 'de';
	} else if (urlRu.test(path)) {
		lang = 'ru';
	} else {
		lang = 'en';
	}

	if (userFirstLastName != null) {
		document.getElementById('ffp_card_div').style.display = 'block';

//		var backgroundColor = "8dc240";
//		var backgroundColor = "ffffff";
		var backgroundColor = "gradient";

		if (userCardNumber != null) {
			document.getElementById('ffp_card_img').src = '/servlet/card.png?background='+backgroundColor+'&lang='+lang+'&card='+userCardNumber+'&update='+userUpdateTime;
			document.getElementById('ffp_card_img').useMap = '#Map_ffp';
		} else {
			document.getElementById('ffp_card_img').src = '/servlet/card.png?background='+backgroundColor+'&lang='+lang+'&card='+userCardNumber+'&update='+userUpdateTime;
			document.getElementById('ffp_card_img').useMap = '#Map_not_ffp';

			if (document.getElementById('ffp_banner')) {
				document.getElementById('ffp_banner').style.display = 'block';
			}
		}
		if (document.getElementById('sep')) {
			document.getElementById('sep').style.display = 'block';
		}
	} else {
		if (document.getElementById('ffp_banner')) {
			document.getElementById('ffp_banner').style.display = 'block';
		}
	}
	$(".left_column .subscribe").hide().show();
}


/**
 * Show/hide Ffp central content block.
 */
function showFfpContentBlock(stateCount) {
	if (typeof (userFirstLastName) == "undefined") {
		return;
	}

	switch (stateCount) {
		case 2:
			if (userFirstLastName != null) {
				document.getElementById('ffpContentLogged').style.display = 'block';	
			} else {
				document.getElementById('ffpContentNonLogged').style.display = 'block';
			}
			break;
		case 3:
			if (userFirstLastName != null) {
				if (userCardNumber != null) {
					document.getElementById('ffpContentLogged').style.display = 'block';
				} else {
					document.getElementById('ffpContentLoggedNonFFP').style.display = 'block';
				}	
			} else {
				document.getElementById('ffpContentNonLogged').style.display = 'block';
			}
			break;
		default:
			break;
	}
}

/**
 * Show/hide Ffp top submenu items.
 */
function showHeaderMenu() {
	if (typeof (userFirstLastName) == "undefined" || typeof (userCardNumber) == "undefined") {
	    return;
    }

	var menuId = '';

	if (userFirstLastName != null) {
		if (userCardNumber != null) {
			for (var i = 0; i < submenuHeader.length; i++) {
				menuId = 'submenu_top_li_' + submenuHeader[i]["id"];
				if (submenuHeader[i]["showType"] == 'ffp') {
					if (document.getElementById(menuId)!=null)
						document.getElementById(menuId).style.display = 'block';
				}
			}
		} else {
			for (var i = 0; i < submenuHeader.length; i++) {
				menuId = 'submenu_top_li_' + submenuHeader[i]["id"];
				if (submenuHeader[i]["showType"] == 'not_ffp') {
					document.getElementById(menuId).style.display = 'block';
				}
			}
		}	
	} else {
		for (var i = 0; i < submenuHeader.length; i++) {
			menuId = 'submenu_top_li_' + submenuHeader[i]["id"];
			if (submenuHeader[i]["showType"] == 'not_ffp') {
				document.getElementById(menuId).style.display = 'block';
			}
		}
	}
}

/**
 * Show/hide Ffp left menu items.
 */
function showLeftMenu() {
	if (typeof (userFirstLastName) == "undefined") {
		return;
	}

	var menuId = '';

	if (userFirstLastName != null) {
		if (userCardNumber != null) {
			for (var i = 0; i < menuLeft.length; i++) {
				menuId = 'menu_left_li_' + menuLeft[i]["id"];
				if (menuLeft[i]["showType"] == 'ffp') {
					document.getElementById(menuId).style.display = 'block';
				}
			}
		} else {
			for (var i = 0; i < menuLeft.length; i++) {
				menuId = 'menu_left_li_' + menuLeft[i]["id"];
				if (menuLeft[i]["showType"] == 'not_ffp') {
					document.getElementById(menuId).style.display = 'block';
				}
			}
		}
		document.getElementById('leftMenu').style.display = 'block';
	}
}

/**
 * Show/hide Ffp central menu items.
 */
function showCentralMenu() {
	if (typeof (userFirstLastName) == "undefined") {
		return;
	}

	var menuId = '';

	if (userFirstLastName != null && userCardNumber != null) {
		for (var i = 0; i < submenuLeft.length; i++) {
			menuId = 'submenu_left_li_' + submenuLeft[i]["id"];
			if (submenuLeft[i]["showType"] == 'ffp') {
				document.getElementById(menuId).style.display = 'block';
				menuId = 'submenu_left_li_sep_' + submenuLeft[i]["id"];
				if (document.getElementById(menuId)) {
					document.getElementById(menuId).style.display = 'block';
				}
			}
		}
	}
}


/**
 * Show/hide Visa balance.
 */
function showVisaBalance() {
	if (typeof (visaPromotionBalance) == "undefined" || typeof (visaLastUpdateMillis) == "undefined") {
	    return;
	}

	if (visaPromotionBalance != null && visaLastUpdateMillis != null) {
		var date = new Date(visaLastUpdateMillis);
		var time = "";
		if (date.getHours() < 10) {
                	time += '0';
		}
		time += date.getHours() + ":";
		if (date.getMinutes() < 10) {
                	time += '0';
		}
		time += date.getMinutes();// + " GMT";
		//var gmt = -date.getTimezoneOffset()/60;
		//if (gmt >= 0) {time += "+"};
		//time += gmt;

		document.getElementById('visaBalance').innerHTML = visaPromotionBalance;
		document.getElementById('visaLastTime').innerHTML = time;
		document.getElementById('visaBalanceBlock').style.display = 'block'; 
	}
}

/**
 * Show services unavailable block.
 */
function showServicesUnavailableBlock() {
	if (typeof (siteState) == "undefined") {
		return;
	}

	// siteState: 0 - OK, 1 - some services unavailbale, 2 - all services unavailable
	if (siteState != 0) {
		if (siteState == 1) {
			$("div.error-message-wrap").show();
			$("#error-message-2").show();
		} else if (siteState == 2) {
			$("div.error-message-wrap").show();
			// disable flight section
			$("#buy_flight").removeClass("active").addClass("disabled").unbind("click");
			//$("#error-message-1").show();
			$("#error-message-0").show();
			fillUserData("#error-message-1");
		}
	}
}

/**
 * Hide services unavailable block.
 */
function hideServicesUnavailableBlock() {
	$("div.error-message-wrap").hide();
	$("div.error-message").hide();
}

function fillUserData(_ctrl) {
	if (typeof (userPhone) == "undefined" || typeof (userEmail) == "undefined") {
		return;
	}

	$ctrl = $(_ctrl);
	if (userPhone != null) {
		$ctrl.find("#user_phone").removeClass("example").val(userPhone);
	}
	if (userEmail != null) {
		$ctrl.find("#user_email").val(userEmail);
	}
}

/**
 * Hide some menu and links when services unavailable.
 */
function hideMenuServicesUnavailableBlock() {
	if (typeof (siteState) == "undefined") {
		return;
	}

	// siteState: 0 - OK, 1 - some services unavailbale, 2 - all services unavailable
	if (siteState == 2) {
		$("#menu_top_1").attr("href", "#").click(function() { return false; });
		$("div.new-fares .blue-line a").each(function() {
			$(this).attr("onclick", "").attr("href", "#").click(function() { return false; });
		});
		$("div.new-fares .violet-line a").each(function() {
			$(this).attr("onclick", "").attr("href", "#").click(function() { return false; });
		});
	}
}

function validateUserInput(_ctrl) {
	var $ctrl = $(_ctrl);
	var phonePattern = /(^([\d]{10,10})$)/;
	var emailPattern = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

	var phoneValue = trim($ctrl.find('#user_phone').val());
	var emailValue = trim($ctrl.find('#user_email').val());
	$ctrl.find(".error-message-text > span").each(function(){
		$(this).hide();
	});

	var data = {};
	data['status'] = true;
	if ($ctrl.find('#user_phone').hasClass('example') && emailValue == '') {
		$ctrl.find(".error-message-text > span.field-0").show();
		 data['status'] = false;
	}
	if (!$ctrl.find('#user_phone').hasClass('example') && !phonePattern.test(phoneValue)) {
		$ctrl.find(".error-message-text > span.field-1").show();
		data['status'] = false;
	}
	if (emailValue != '' && !emailPattern.test(emailValue)) {
		$ctrl.find(".error-message-text > span.field-2").show();
		data['status'] = false;
	}
	data['userPhone'] = ($ctrl.find('#user_phone').hasClass("example")) ? "" : $ctrl.find('#user_phone').val();
	data['userEmail'] = $ctrl.find('#user_email').val();
	return data;
}

/**
 * submit form by id
 */
function submitForm(formId){
    document.getElementById(formId).submit();
}

function validateSubmitForm(formId, validationRules) {
	if (validateFormNew(validationRules, true)) {
		document.getElementById(formId).submit();
	}
}

function setActionMethodName(methodName) {
	document.getElementById('actionMethodName').value = methodName;
}

// stringDate must be in format dd.mm.yyyy
function parseDate(stringDate){
    var pattern = /^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$/;
    if (!pattern.test(stringDate)) {
        return null;
    }
    var day = parseInt((stringDate).substring(0, 2), 10);
    var month = parseInt((stringDate).substring(3, 5), 10);
    var year = parseInt((stringDate).substring(6), 10);
    var dateValue = new Date(year, month-1, day);
    return dateValue;
}
    
/**
 * Submit search form
 */
function doSearch() {
	var form = document.forms['form_search'];
	var queryElem = form.elements['query'];

	if (queryElem.value == "") {
		alert(error_empty_field);
		form.elements['query'].focus();
		return false;
	} else {
		setCookie("query", queryElem.value, true, MILLIS_IN_YEAR);
		form.submit();
	}	

	return false;
}

function getMillis(increment) {
	var curr = new Date();
	curr = Date.parse(curr.toGMTString());
	return curr + increment;
}


/*
	Set cookie without converting to Hex
*/
function setCookie(name, value, isSession, expireMillis) {
	if (!name) return;
	var result = name;
	if (!value) return;
	result += "=" + escape(value) + ";";
	if (!isSession)
		result += "expires=" + new Date(getMillis(expireMillis)).toUTCString() + ";"
	result += "path=/;";
	document.cookie = result;
}
    
function getCookie(sName) {
	var aCookie = document.cookie.split("; ");
	for (var i = 0; i < aCookie.length; i++) {
		var aCrumb = aCookie[i].split("=");
		if (sName == aCrumb[0])
			return unescape(aCrumb[1]);
	}
	return null;
}
    
/*
	Functions for counters drawing
*/
function createCounter(counter) {
	if (location.href.indexOf('http://') == 0) {
		document.write(counter);
	}
}

function createCountersLogo() {
	var counter = '';

	counter += '<a href="http://top100.rambler.ru/top100/" target="_blank">';
	counter += '<img id="counter_rambler" src="';

	if (location.href.indexOf('https://') == 0) {
		counter += rootPath +'images/rambler.gif';
	} else {
		counter += 'http://top100-images.rambler.ru/top100/banner-88x31-rambler-green2.gif';
	}						

	counter += '" alt="Rambler\'s Top100" title="Rambler\'s Top100" width="88" height="31" border="0"/></a> ';
	counter += '<a href="http://www.liveinternet.ru/click" target="_blank">';

	counter += '<img id="counter_live_internet" src="';

	if (location.href.indexOf('https://') == 0) {
		counter += rootPath +'images/liveinternet.gif';
	} else {
		counter += 'http://counter.yadro.ru/logo?21.16';
	}
	
	counter += '" border="0" alt="liveinternet.ru" title="liveinternet.ru" width="88" height="31"/></a>';

	document.write(counter);
}

// Set Home
function setHome(obj, url) {
	if (document.all) {
		obj.style.behavior = 'url(#default#homepage)';
		obj.setHomePage(url);
		return false;
	}

	return true;
}

/*
	Added by Nataliya_Niakhai
*/
// create flash banner HTML
function createFlashHTML_ffp(link, title, width, height, bgcolor, name, imgLink, version, paramList) {
	var resHtml = "";

	if (typeof (version) == 'undefined') version = 7;

	var fo = new FlashObject(link, name, width, height, version, bgcolor);

	if (fo.installedVer.versionIsValid(fo.getAttribute("version"))) {
		fo.addParam("wmode","transparent");
		if (paramList != null) {
        		for (var i = 0; i < paramList.length; i++)
        			fo.addVariable(paramList[i]["name"], paramList[i]["value"]);
    		}
		document.write('<div id="flashholder_' + name + '"></div>');

		fo.write("flashholder_" + name);
		isFlashBannerCreated = true;

		return '';
	} else if (imgLink != '') {
		if (name.indexOf("flash_banner_") != -1) {
			resHtml += createImageHTML_ffp(imgLink, title, width, height, 0);
			return resHtml;
		} else {
			resHtml += '<a href="http://www.macromedia.com/go/getflashplayer/" target="_blank">';
			resHtml += createImageHTML_ffp(imgLink, title, width, height, 0);
			resHtml += '</a>';
			document.write(resHtml);
		}
	}
}

// create image HTML
function createImageHTML_ffp(link, title, width, height, vspace) {
	var resHtml = "";
	// default is width="219" height="99"
	resHtml += '<img border="0" ';
	resHtml += 'vspace="' + vspace + '" ';
	resHtml += 'src="' + link + '" ';
	resHtml += 'title="' + title + '" ';
	resHtml += 'alt="' + title + '" ';
	resHtml += 'width="' + width + '" ';
	resHtml += 'height="' + height + '"/>';

	return resHtml;
}

// Fix jQuery toggle bug under Safari
// Author: Andrei Hryshanovich
function toggleFix(divName) {
	if($.browser.safari){
		$(divName).toggle();
	} else {
		$(divName).toggle('slow');
	}
}

// Open Popup
var op = null;
function openPopup(page) {

	if (op != null && !op.closed) op.close();

	op = window.open(page, 'popup', 'resizable=no,menubar=no,status=no,scrollbars=yes,width=556,height=595,top=10,left=10');
	if (op != null) {
		op.focus();
	}
	return false;
}

function trim(str) {
	return str.replace(/^\s+/, '').replace(/\s+$/, '');
}

function setDropdownValue(id, code, loc) {
/*
	var tmp = originName[code].name.split("+");
	var name = tmp[0] + ' ('+ code + ') ' + tmp[1] + ' ';
	$('#'+id).removeClass('control-notinit').attr('value', name).attr('firstfoc', 'firstfoc');
*/
	var j = -1;
	for (var i=0;i<loc.length;i++) {
		try {
			if (code == loc[i][0]) {
				j = i;
				break;
			}
		} catch (err) {
		}
	}
	if (j != -1) {
		var name = loc[j][1] + ' (' + loc[j][0] + ') ' + loc[j][2];
		$('#'+id).removeClass('control-notinit').attr('value', name).attr('firstfoc', 'firstfoc');
	}
}

function setDropdownAirportValue(id, code, loc) {
	var j = -1;
	for (var i=0;i<loc.length;i++) {
		try {
			if (code == loc[i][0]) {
				j = i;
				break;
			}
		} catch (err) {
		}
	}
	if (j != -1) {
		var name = loc[j][1]; //+ ' (' + loc[j][0] + ') ' + loc[j][2];
		$('#'+id).removeClass('control-notinit').attr('value', name).attr('firstfoc', 'firstfoc');
	}
}

/*
function pop(hidden_input, loc) {
	var c = $('#'+hidden_input).val();
	var j = -1;
	for (var i=0;i<loc.length;i++) {
		try {
			if (c == loc[i][0]) {
				j = i;
				break;
			}
		} catch (err) {
		}
	}
	if (j == -1) {
		return '';
	} else {
		return loc[j][1] + ' (' + loc[j][0] + ') ' + loc[j][2];
	}
}
*/

function restoreUserValues() {
	var origin1 = getCookie('bot_from');
	var dest = getCookie('bot_to');
	var direct = getCookie('bot_direction');
	var departure = getCookie('bot_departure');
	var ret = getCookie('bot_return');
	var flex = getCookie('bot_flexible');
	var cabin_class = getCookie('bot_cabin_class');
	var adults = getCookie('bot_adults');
	var children = getCookie('bot_children');
	var infants = getCookie('bot_infants');

	//city
	if ((typeof (origin1) != "undefined") && (origin1 != null)) {
		setDropdownValue('from_buy', origin1, airportsList);
		$('#origin').val(origin1);
		$("#to_buy")[0].suggestObject
			.setSource(getToAirportItems(airportMap,airportsList,$("#from_buy")[0].suggestObject.getExtIndex())); 

	} else if ((typeof (userAirDeparture) != "undefined") && (userAirDeparture != null)) {
		setDropdownValue('from_buy', userAirDeparture, airportsList);
		$('#origin').val(userAirDeparture);
		$("#to_buy")[0].suggestObject
			.setSource(getToAirportItems(airportMap,airportsList,$("#from_buy")[0].suggestObject.getExtIndex())); 


	} else if ((typeof (userAirCity) != "undefined") && (userAirCity != null)) {
		setDropdownValue('from_buy', userAirCity, airportsList);
		$('#origin').val(userAirCity);
		$("#to_buy")[0].suggestObject
			.setSource(getToAirportItems(airportMap,airportsList,$("#from_buy")[0].suggestObject.getExtIndex())); 

	}

	if ((typeof (dest) != "undefined") && (dest != null)) {
		setDropdownValue('to_buy', dest, airportsList);
		$('#destination').val(dest);
	} else if ((typeof (userAirArrival) != "undefined") && (userAirArrival != null)) {
		setDropdownValue('to_buy', userAirArrival, airportsList);
		$('#destination').val(userAirArrival);
	}

	if ((typeof (direct) != "undefined") && (direct != null)) {
		$('#'+direct).attr('checked', 'checked');
	}

	//dates
	if ((typeof (departure) != "undefined") && (departure != null)) {
		var tmp = departure.split("-");
		var today = new Date();
		var user_day = new Date(tmp[0], tmp[1]-1, tmp[2]);
		var ll = tmp[2]+'.'+tmp[1]+'.'+tmp[0];
		if (user_day >= today) {
			$('#flight_departure').removeClass('control-notinit')
			.attr('value', ll)
			.setDatepickerDate(user_day.setDate(user_day.getDate()));
			$('#departureDate').val(ll);
		}

	}

	if ((typeof (ret) != "undefined") && (ret != null)) {
		var tmp = ret.split("-");
		var today = new Date();
		var user_day = new Date(tmp[0], tmp[1]-1, tmp[2]);
		var ll = tmp[2]+'.'+tmp[1]+'.'+tmp[0];
		if (user_day >= today) {
			$('#flight_return').removeClass('control-notinit')
			.attr('value', ll)
			.setDatepickerDate(user_day.setDate(user_day.getDate()));
			$('#returnDate').val(ll);
		}

	}
	checkWay();

	//other
	if ((typeof (flex) != "undefined") && (flex != null)) {
		if (flex == 'true') {
			$('#searchTypeCheckBox').attr('checked', 'checked');
			changeFlex($('#searchTypeCheckBox').get(0));
		}
	}

	if ((typeof (cabin_class) != "undefined") && (cabin_class != null)) {
		$('#cabinClass').val(cabin_class);
	}

	if ((typeof (adults) != "undefined") && (adults != null)) {
		$('#numAdults').val(adults);
		setTravellers();
	}
	if ((typeof (children) != "undefined") && (children != null)) {
		$('#numChildren').val(children);
	}
	if ((typeof (infants) != "undefined") && (infants != null)) {
		$('#numInfants').val(infants);
	}
}

// number of milliseconds in 10 day
var MILLIS_IN_10_DAYS = 86400000 * 10;

function saveFlightSearchCookie() {
	setCookie('bot_from', $('#origin').val(), false, MILLIS_IN_10_DAYS);
	setCookie('bot_to', $('#destination').val(), false, MILLIS_IN_10_DAYS);
	setCookie('bot_direction', $("input[name='journeySpan']:checked").attr('id'), false, MILLIS_IN_10_DAYS);

	setCookie("bot_departure", $('#departureDate').val(), false, MILLIS_IN_10_DAYS);
	if ($('#returnDate').val() != '') {
		setCookie("bot_return", $('#returnDate').val(), false, MILLIS_IN_10_DAYS);
	}

	setCookie("bot_flexible", (document.getElementById('searchTypeCheckBox').checked) ? 'true' : 'false', false, MILLIS_IN_10_DAYS);

	if ($('#cabinClass').val() != '') {
		setCookie("bot_cabin_class", $('#cabinClass').val(), false, MILLIS_IN_10_DAYS);
	} else {
		setCookie("bot_cabin_class", '-', false, MILLIS_IN_10_DAYS);
	}

	setCookie("bot_adults", $('#numAdults').val(), false, MILLIS_IN_10_DAYS);
	setCookie("bot_children", $('#numChildren').val(), false, MILLIS_IN_10_DAYS);
	setCookie("bot_infants", $('#numInfants').val(), false, MILLIS_IN_10_DAYS);
}

function doFlightSearch() {
	var message = '';
	var form = document.forms['form_flight'];

	// enable flexibility
	if (document.getElementById('searchTypeCheckBox').checked) {
		document.getElementsByName('searchType')[0].value='FLEXIBLE';
	}

	var from = form.elements['from_buy'].value;
	var from_alt = form.elements['from_buy'].alt;
	var to = form.elements['to_buy'].value;
	var to_alt = form.elements['to_buy'].alt;
	var departure = form.elements['flight_departure'].value;
	var departure_alt = form.elements['flight_departure'].alt;
	var ret = form.elements['flight_return'].value;
	var ret_alt = form.elements['flight_return'].alt;


	if (from == '' || from == from_alt) {
		message += error_select_from_destination.toString() + "<br/>";
	}
	if (to == '' || to == to_alt) {
		message += error_select_to_destination.toString() + "<br/>";
	}
	if (form != '' && to != '' & from == to) {
	    message += error_timetable_equal_cities.toString() + "<br/>";
	}

	var mess1 = '';
	if (departure == '' || departure == departure_alt) {
		message += error_date_departure.toString() + "<br/>";
	} else {
		mess1 = validateDate(departure, true, false);
		if (mess1 != '') {
			message += mess1;
		}
	}
	if (form.elements['journeySpan'][1].checked) {
		if (ret == '' || ret == ret_alt) {
			message += error_date_arrival.toString() + "<br/>";
		} else {
			var mess2 = validateDate(ret, false, false);
			if (mess2 != '') {
				message += mess2;
			} else if (mess1 == '' && !checkDatesBefore(departure, ret, false)) {
				message += error_wrong_return_date + "<br />";
			}
		}	
	}
	if (form.elements['numAdults'].options[form.elements['numAdults'].selectedIndex].text == 0 && 
	form.elements['numChildren'].options[form.elements['numChildren'].selectedIndex].text == 0 && 
	form.elements['numInfants'].options[form.elements['numInfants'].selectedIndex].text == 0 ) {
		message += error_wrong_passengers_number;
	}

	if (message != '') {
		$('#botBuyError').html(message).show();
		return false;
	} else {
		$('#botBuyError').hide();
	}

	//origin
	if (form.elements['origin'].value == '')
		form.elements['origin'].value = from.substring(from.lastIndexOf('(')+1, from.lastIndexOf(')'));

	//destination
	if (form.elements['destination'].value == '')
		form.elements['destination'].value = to.substring(to.lastIndexOf('(')+1, to.lastIndexOf(')'));

	//Hot fix for POST
	form.elements['from_buy'].value = '';
	form.elements['to_buy'].value = '';  

	//departure date
	var tmp = departure.split(".");
	var day = tmp[0];
	var month = tmp[1];
	var year = tmp[2];
	form.elements['departureDate'].value = year + '-' + month + '-' + day;

	//arrival date
	if (form.elements['journeySpan'][1].checked) {
		var tmp = ret.split(".");
		var day = tmp[0];
		var month = tmp[1];
		var year = tmp[2];
		if (ret != '') {
			form.elements['returnDate'].value = year + '-' + month + '-' + day;
		}
	}
	saveFlightSearchCookie();

	form.submit();
	return false;
}

function doExpressSearch() {
	var message = '';
	var form = document.forms['form_express'];

	var from = form.elements['from'].value;
	var from_alt = form.elements['from'].alt;
	var to = form.elements['to'].value;
	var to_alt = form.elements['to'].alt;
	var departure = form.elements['express_departure'].value;
	var departure_alt = form.elements['express_departure'].alt;
	var departure_time =  form.elements['departureTime'].value;
	var serviceClass = form.elements['serviceClass'].value;

	if (from == '' || from == from_alt) {
		message += error_select_from_destination.toString() + "<br/>";
	}
	if (to == '' || to == to_alt) {
		message += error_select_to_destination.toString() + "<br/>";
	}
	if (form != '' && to != '' & from == to) {
	    message += error_timetable_equal_cities.toString() + "<br/>";
	}

	var mess1 = '';
	if (departure == '' || departure == departure_alt) {
		message += error_date_departure2.toString() + "<br/>";
	} else {
		mess1 = validateDate(departure, true, false);
		if (mess1 != '') {
			message += mess1 + "<br/>";
		}
	}
	if (serviceClass == 'B' && departure_time == 0) {
	    message += error_time_departure.toString();
	}

	if (message != '') {
		$('#botBuyExpressError').html(message).show();
		return false;
	} else {
		$('#botBuyExpressError').hide();
	}

	form.submit();
	return false;
}

function doHotelSearch(isValidate) {
	var message = '';
	var form = document.forms['form_hotel'];

	var from = form.elements['location'].value;
	var from_alt = form.elements['location'].alt;

	var departure = form.elements['hotel_departure'].value;
	var departure_alt = form.elements['hotel_departure'].alt;

	var ret = form.elements['hotel_return'].value;
	var ret_alt = form.elements['hotel_return'].alt; 

	var room = form.elements['roomType'].selectedIndex;
	var room_items = form.elements['roomType'].options.length;

	if (isValidate) {
		if (from == '' || from == from_alt) {
		    message += error_hotel_select_city.toString() + "<br/>";
		}

		var mess1 = '';
		if (departure == '' || departure == departure_alt) {
			message += error_hotel_date_arrival.toString() + "<br/>";
		} else {
			mess1 = validateDate(departure, true, true);
			if (mess1 != '') {
				message += mess1;
			}
		}
		if (ret == '' || ret == ret_alt) {
			message += error_hotel_date_departure.toString() + "<br/>";
		} else {
			var mess2 = validateDate(ret, false, true);
			if (mess2 != '') {
				message += mess2;
			}
			if (mess1 == '' && !checkDatesBefore(departure, ret, true)) {
				message += error_wrong_hotel_return_date + "<br/>";
			}
		}
			
		if (room_items == 3) {
			message += error_select_room_type.toString() + "<br/>";
		} else if (room_items == 2 && room == 0) {
			document.getElementById('singleRooms').value='1';
			document.getElementById('doubleRooms').value='';
		} else if (room_items == 2 && room == 1) {
			document.getElementById('singleRooms').value='';
			document.getElementById('doubleRooms').value='1';
		}
	}

	if (message != '') {
		$('#botBuyHotelError').html(message).show();
		return false;
	} else {
		$('#botBuyHotelError').hide();
	}

	var tmp = departure.split(".");
	document.getElementById('startDateDay').value = tmp[0];
	document.getElementById('startDateMonth').value = tmp[1];
	document.getElementById('startDateYear').value = tmp[2];

	tmp = ret.split(".");
	document.getElementById('endDateDay').value = tmp[0];
	document.getElementById('endDateMonth').value = tmp[1];
	document.getElementById('endDateYear').value = tmp[2];

	if(isValidate) {
		document.getElementById('activity').value = 'startSearch';
	} else {
		document.getElementById('activity').value = 'initSearch';
	}

	form.submit();
	return false;
}

function doCarSearch() {
	var message = '';
	var form = document.forms['form_car'];

	var from = $("#from_car").val();
	var from_alt = $("#from_car").attr("alt");  
	var departure = $("#car_departure").val();
	var departure_alt = $("#car_departure").attr("alt");	
	var ret = $("#car_arrival").val();
	var ret_alt = $("#car_arrival").attr("alt");

	
	if (from == '' || from == from_alt) {
		message += error_car_select_city.toString() + "<br/>";
	}

	var mess1 = '';
	if (departure == '' || departure == departure_alt) {
		message += error_car_date_departure.toString() + "<br/>";
	} else {
		mess1 = validateDate(departure, true, true);
		if (mess1 != '') {
			message += mess1;
		}
	}
	if (ret == '' || ret == ret_alt) {
		message += error_car_date_return.toString() + "<br/>";
	} else {
		var mess2 = validateDate(ret, false, true);
		if (mess2 != '') {
			message += mess2;
		}
		if (mess1 == '' && !checkDatesBefore(departure, ret, true)) {
			message += error_wrong_car_return_date + "<br/>";
		}
	}

	if (message != '') {
		$('#botBuyCarError').html(message).show();
		return false;
	} else {
		$('#botBuyCarError').hide();
	}

	form.elements['CTR'].value = $("#car_origin").val();
	var monthShort = ['jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'];
	var dateDep = $.datepicker.formatDate('ddMy', $("#car_departure").datepicker("getDate"), {monthNamesShort: monthShort});
	var dateRet = $.datepicker.formatDate('ddMy', $("#car_arrival").datepicker("getDate"), {monthNamesShort: monthShort});
	form.elements['ETA'].value = dateDep + '/' + $("#ETAHour").val() + $("#ETAMinute").val();
	form.elements['ETT'].value = dateRet + '/' + $("#ETTHour").val() + $("#ETTMinute").val();

	form.submit();
	return false;
}

function doBookingSearch() {
	var message = '';
	var reLastName = /(^[a-zA-Z]+$)/;
	var rePnr = /(^[a-zA-Z0-9]+$)/;
	var form = document.forms['form_booking'];

	var name = trim(form.elements['passengerLastName'].value);

	var pnr = trim(form.elements['pnr'].value);

	if (name == '') {
		message += error_booking_lastName.toString() + "<br/>";
	} else if (!name.match(reLastName)) {
		message += error_booking_lastName_latin.toString() + "<br/>";
	}

	if (pnr == '') {
		message += error_booking_pnr.toString() + "<br/>";
	} else {
		if (!pnr.match(rePnr)) {
			message += error_booking_pnr_latin.toString() + "<br/>";
		}
		if (pnr.length > 5) {
			message += error_booking_ref_maxlength.toString() + "<br/>";
		}
	}

	if (message != '') {
		$('#botBookingError').html(message).show();
		return false;
	} else {
		$('#botBuyError').hide();
	}

	form.submit();
	return false;
}

function doBoardSearch() {
	var message = '';
	var re = /(^\d{1,4})([A-Za-z]{0,1}$)/ig;
	var form = document.forms['form_board'];

	var from_city = form.elements['from_city_board'].value;
	var from_city_alt = form.elements['from_city_board'].alt;

	var from = form.elements['from_board'].value;
	var from_alt = form.elements['from_board'].alt;
	var to = form.elements['to_board'].value;
	var to_alt = form.elements['to_board'].alt;

	var flight = trim(form.elements['flight'].value);
	var flight_alt = form.elements['flight'].alt;

	var dep = form.elements['board_departure'].value; 
	var dep_alt = form.elements['board_departure'].alt; 

	if (form.elements['board_type'][0].checked) {
		if (from_city == '' || from_city == from_city_alt) {
		    message += error_select_from_destination.toString() + "<br/>";
		}
	}
	if (form.elements['board_type'][1].checked) {
		if (from == '' || from == from_alt) {
			message += error_select_from_destination.toString() + "<br/>";
		}
		if (to == '' || to == to_alt) {
			message += error_select_to_destination.toString() + "<br/>";
		}
		if (from != '' && to != '' && from == to) {
			message += error_timetable_equal_cities.toString() + "<br/>";
			form.elements['to_board'].focus();
		}
	}
	if (form.elements['board_type'][2].checked) {
		if (flight == '' || flight == flight_alt || !flight.match(re)) {
			message += error_board_flightNumber.toString() + "<br/>";
		}
	}

	if (dep == '' || dep == dep_alt) {
		message += error_date_departure.toString() + "<br/>";
	} else {
		message += validateDate(dep, true, false);
	}

	if (message != '') {
		$('#botBoardError').html(message).show();
		return false;
	} else {
		$('#botBuyError').hide();
	}

	if (form.elements['board_type'][0].checked) {
		//city
		form.elements['origin_city_board'].value = from_city.substring(from_city.lastIndexOf('(')+1, from_city.lastIndexOf(')'));
	}
	if (form.elements['board_type'][1].checked) {
		//origin
		form.elements['origin_board'].value = from.substring(from.lastIndexOf('(')+1, from.lastIndexOf(')'));
		//destination
		form.elements['destination_board'].value = to.substring(to.lastIndexOf('(')+1, to.lastIndexOf(')'));
	}
	
	saveForm('form_board');

	form.submit();
	return false;
}

function doWebCheckinSearch() {
	var message = '';
	
	var reEticket = /(^[0-9]+$)/;
	var rePnr = /(^[a-zA-Z0-9]+$)/;
	var form = document.forms['form_reg'];

	
	var type = "pnr";
	if($("#tab_reg_eticket").css("display")!="none"){
	    type = "eticket";
	}

	var surname = trim($("#surname_"+type).val());
	var number = trim($("#number_"+type).val());
	
	//validate

	var surname_alt = $("#surname_"+type).attr("alt");
	var number_alt = $("#number_"+type).attr("alt");

	
	if( surname=='' || surname==surname_alt ){
	    message += error_booking_lastName.toString() + "<br/>";
	}

	if( number=='' || number==number_alt ){
	    message += error_eticket_or_pnr.toString() + "<br/>";
	}else{
	    if( type=="pnr" ){
		if (!number.match(rePnr)) {
		    message += error_booking_pnr_latin.toString() + "<br/>";
		}
		if (number.length > 5) {
			message += error_booking_ref_maxlength.toString() + "<br/>";
		}
	    }else{
		if (!number.match(reEticket)) {
			message += error_eticket_format.toString() + "<br/>";
		}
		if (number.length > 13) {
			message += error_eticket_maxlength.toString() + "<br/>";
		}
	    }
	}

	if (message != '') {
		$('#botWebCheckinError').html(message).show();
		return false;
	} else {
		$('#botBuyError').hide();
	}

	//fill form values
	form.elements['identificationMethod'].value = type;
	form.elements['number'].value = number;
	form.elements['surname'].value = surname;

	form.submit();
	return false;
}





function doWebCheckinSearchOld() {
	var message = '';
	var reEticket = /(^[0-9]+$)/;

	var fakeLogonType = $(".newListSelected>.selectedTxt").text();
	var fakeLogonTypeIdx = $("#logonType option:contains("+fakeLogonType+")").index();
        
/*
/(^(([0-9]{3,3})[ ])?([0-9])+$)/;
*/
	var rePnr = /(^[a-zA-Z0-9]+$)/;
	var form = document.forms['form_reg'];

	var from = ""; // trim(form.elements['from_airport'].value);
	var from_alt = ""; //form.elements['from_airport'].alt;

	var type = fakeLogonTypeIdx; // form.elements['logonType'].selectedIndex;
	//var type_items = form.elements['logonType'].options.length;
	var type_items = 3;


	var pnr = trim(form.elements['logonValue'].value);
	var pnr_alt = form.elements['logonValue'].alt;
	var isAirportFromList = false;

	var surname = trim(form.elements['surname'].value);
	var surname_alt = form.elements['surname'].alt;

	/*if (from == '' || from == from_alt) {
		message += error_select_from_destination.toString() + "<br/>";
	} else */ //city may be empty
	if (surname == '' || surname == surname_alt) {
                message += error_booking_lastName.toString() + "<br/>";
	} else {
	        if( from != '' && from != from_alt){
	
			for (var i = 0; i < airportsCheckinList.length; i++) {
				var rex;
				if (airportsCheckinList[i][1].length > 23) rex = new RegExp(airportsCheckinList[i][1].substr(0,23), "i");
				else rex = new RegExp(airportsCheckinList[i][1] + " \\(" + airportsCheckinList[i][0] + "\\)", "i");
				
				if (from.search(rex) == 0) isAirportFromList = true;
			}

			if (!isAirportFromList) message += error_not_in_list.toString() + "<br/>";
		}
	}

	/*if (type_items == 3) {
		message += error_identification_type.toString() + "<br/>";
		if (pnr == '' || pnr == pnr_alt) {
			message += error_eticket_or_pnr.toString() + "<br/>";
		}
	} else*/ 
                if (pnr == '' || pnr == pnr_alt) {
			message += error_eticket_or_pnr.toString() + "<br/>";
		}else
		if (type_items == 2 && type == 0) {
			if (pnr == '' || pnr == pnr_alt) {
				message += error_eticket_number.toString() + "<br/>";
			} else {
				if (!pnr.match(reEticket)) {
					message += error_eticket_format.toString() + "<br/>";
				}
				if (pnr.length > 13) { //was 14
					message += error_eticket_maxlength.toString() + "<br/>";
				}
			}
		} else if (type_items == 2 && type == 1) {
			if (pnr == '' || pnr == pnr_alt) {
				message += error_booking_ref.toString() + "<br/>";
			} else {
				if (!pnr.match(rePnr)) {
					message += error_booking_pnr_latin.toString() + "<br/>";
				}
				if (pnr.length > 5) {
					message += error_booking_ref_maxlength.toString() + "<br/>";
				}
			}	
		}

       	if (message != '') {
		$('#botWebCheckinError').html(message).show();
		return false;
	} else {
		$('#botBuyError').hide();
	}

	//airport
	//form.elements['airportOrigin'].value = from.substring(from.lastIndexOf('(')+1, from.lastIndexOf(')'));
	if( type==1 ){
		form.elements['identificationMethod'].value = "eticket";
	}else if( type==2 ){
		form.elements['identificationMethod'].value = "pnr";
	}


	form.submit();
	return false;
}

function validateDate(date, isDeparture, isHotel) {
	// validate date in format dd.mm.yyyy
	// author: Andrei Hryshanovich

	var message = '';

	if (!checkValidDate(date)) {
		if (isHotel) {
			isDeparture ? message += error_hotel_date_arrival_format : message += error_hotel_date_departure_format;
		} else {
			isDeparture ? message += error_date_departure_format : message += error_date_arrival_format;
		}
		message += '<br/>';
	} else if (!checkDateInPast(date)) {
		if (isHotel) {
			isDeparture ? message += error_select_hotel_depart_day_early : message += error_select_hotel_return_day_early;
		} else {
			isDeparture ? message += error_select_depart_day_early : message += error_select_return_day_early;
		}
		message += '<br/>';
	}
	return message;
}

// author: Nataliya Niakhai  
function checkValidDate(date) {
	var isValid = true;

	var tmp = date.split(".");
	var day = tmp[0];
	var month = tmp[1];
	var year = tmp[2];

	if (isNaN(day) || isNaN(month) || isNaN(year) || day < 1 || day > 31 || month < 1 || month > 12 || year.length > 4) {
		isValid = false;
	}  
	if (day == 31 && (month == 2 || month == 4 || month == 6 || month == 9 || month == 11)) {
		isValid = false;
	}
	if (day == 30 && month == 2) {
		isValid = false;
	}
	if (day == 29 && month == 2 && (year % 4) != 0) {
		isValid = false;
	}

	return isValid;
}

function checkDateInPast(date) {
	var isValid = true;

	var tmp = date.split(".");
	var day = tmp[0];
	var month = tmp[1];
	var year = tmp[2];
	var currDate = new Date();   

	if (year < currDate.getFullYear()) {
		isValid = false;
	}
	if (month < (currDate.getMonth()+1) && year == currDate.getFullYear()) {
		isValid = false;
	}
	if (day < currDate.getDate() && month == (currDate.getMonth()+1) && year == currDate.getFullYear()) {
		isValid = false;
	}  	

	return isValid;
}

function checkDatesBefore(dep, ret, isHotel) {
	// check depDate <= retDate
	// author: Andrei Hryshanovich
	var tmp = dep.split(".");
	var depD = tmp[0];
	var depM = tmp[1];
	var depY = tmp[2];
    
	tmp = ret.split(".");
	var retD = tmp[0];
	var retM = tmp[1];
	var retY = tmp[2];
    
	if (depY < retY) {
		return true;
	} else if (depY > retY) {
		return false;
	} else if (depM < retM) {
		return true;
	} else if (depM > retM) {
		return false;
	} else if (depD <= retD && !isHotel) {
		return true;
	} else if (depD < retD && isHotel) {
		return true;
	} else return false;
}

function changeFlex(obj) {
	var dropdown = document.getElementsByName('cabinClass')[0];
	var opt;

	if (obj.checked) {
		dropdown.options.length = 0;
		for (var i = 0; i < cabins.length; i++) {
			opt = new Option(cabins[i].name, cabins[i].code);
			dropdown.options[i] = opt;
		}
	} else {
		dropdown.options.length = 0;
		for (var i = 1; i < cabins.length; i++) {
			opt = new Option(cabins[i].name, cabins[i].code);
			dropdown.options[i - 1] = opt;
		}
	}
}

function setBoardDate() {
	var dateString = '';
	var date = new Date();
	
	if (date.getDate() < 10) {
		dateString += '0';
	}
	dateString += date.getDate() + '.';
	
	if (date.getMonth()+1 < 10) {
		dateString += '0';
	}
	dateString += date.getMonth()+1 + '.';
	dateString += date.getFullYear();
       	document.getElementById('board_departure').value = dateString;
}

function setBoardDate( date ) {
	var dateString = '';
	date = new Date();
	
	if (date.getDate() < 10) {
		dateString += '0';
	}
	dateString += date.getDate() + '.';
	
	if (date.getMonth()+1 < 10) {
		dateString += '0';
	}
	dateString += date.getMonth()+1 + '.';
	dateString += date.getFullYear();
       	document.getElementById('board_departure').value = dateString;
}


function changePrice() {
	var message = '';
	$('#calcError').html(message).hide();
	var from = trim(document.getElementById('from_calc').value);
	var to = trim(document.getElementById('to_calc').value);
	var fromCode = document.getElementById('origin_calc').value;
	var toCode = document.getElementById('destination_calc').value;
	var weight = document.getElementById('envWeight').options[document.getElementById('envWeight').selectedIndex].value;
	var isOrigAirportFromList = false;
	var isDestAirportFromList = false;
	var price = '0';

	if (from != '' && to != '' && weight != 'none'){
		var origArea = '';
		for (var i = 0; i < airportsList.length; i++) {
			var rex;
			if (airportsList[i][1].length > 23) rex = new RegExp(airportsList[i][1].substr(0,23), "i");
			else rex = new RegExp(airportsList[i][1] + " \\(" + airportsList[i][0] + "\\)", "i");

			if (from.search(rex) == 0) isOrigAirportFromList = true;
			if (to.search(rex) == 0) isDestAirportFromList = true;
		}
		if (!isOrigAirportFromList || !isDestAirportFromList) {
					
			message += error_calc_not_in_list.toString() + "<br/>";
		} else if (from == to){
			message += error_calc_equal_cities.toString() + "<br/>";
		} else {
			var orig = document.getElementById('origin_calc').value;
			var dest = document.getElementById('destination_calc').value;
			var origArea = '';
			var destArea = '';
			for (var i = 0; i < areaList.length; i++) {
				if (areaList[i][0] == orig) origArea = areaList[i][1];
				if (areaList[i][0] == dest) destArea = areaList[i][1];
			}
			if (origArea.length != 0 && destArea.length != 0) {
				var area = origArea + destArea;
				var tariff = '';
				for (var i = 0; i < tariffList.length; i++){
					if (tariffList[i][0] == area) tariff = tariffList[i][1];
				}
				if (tariff.length != 0) {
					for (var i = 0; i < priceList.length; i++){
						if (priceList[i][0] == weight){
							if (tariff == 'A') price = priceList[i][1];
							else if (tariff == 'B') price = priceList[i][2];
							else if (tariff == 'C') price = priceList[i][3];
						}
					}
				}
			}
		}
	}
	if (message.length != 0) {
		$('#calcError').html(message).show();
		$('#price').html('0');
	} else {
		$('#price').html(price);
	}
	return false;
}

function changeCabinClass(obj) {
	if ($(obj).val() == 'B') {
		$("#time").css("visibility", "visible");
	} else {
		$("#time").css("visibility", "hidden");
	}	
	loadPrice();
}

function changeFrom() {
	loadPrice();
	loadTimetable();
	var from = $('#express_origin').val();
	var to = $('#express_destination').val();	
	if (from != '' && to != '') {
		var direction = 0;
		if (from == "VKO" || to == "VKO") {
		    direction = 1;
		} else if (from == "DME" || to == "DME") {
		    direction = 2;
		} else if (from == "SVO" || to == "SVO") {
		    direction = 3;
		}
		$('#direction').val(direction);
		$('#timetable').show();
	} else {
		$('#timetable').hide();
	}
}
/*
function recountPrice() {
	var adult_price = 0;
	var children_price = 0;
	adult_price = ($("#serviceClass").val() == 'E')?adultPrice[0]:adultPrice[1];
	children_price = ($("#serviceClass").val() == 'E')?childPrice[0]:childPrice[1];
	var price = $('#adultCount').val()*adult_price + $('#childCount').val()*children_price;
	$('#tab_buy .total-price span:first').text(price);
}
*/
function showTimetable(url) {
    return openPopup(url+'?direction='+$('#direction').val()+'&request_locale='+$('input[name=request_locale]').val());
}

function loadTimetable() {
	var url = '/servlet/express?method=timetable';
	var direction = $('#express_origin').val();
	var date = ($('#express_departure').val() != $('#express_departure').attr('alt')) ? $('#express_departure').val() : "";
	var formData = {direction: direction, date: date};
	if (direction != '' && date != '') {
		$.ajax({type:"GET", url:url, data:formData, dataType:"script", success:function(data,textStat){
			if (expressTimetable != null) {
				$('#time > option:gt(0)').remove();
				for (var i = 0; i < expressTimetable.length; i++) {
					$('#time').append("<option value='"+expressTimetable[i]+"'>"+expressTimetable[i]+"</option>");
				}
			}
		} });
	}
}

function loadPrice() {
	var url = '/servlet/express?method=price';
	var from = $('#express_origin').val();
	var to = $('#express_destination').val();
	var date = ($('#express_departure').val() != $('#express_departure').attr('alt')) ? $('#express_departure').val() : "";
	var time = ($('#time').val() != '') ? $('#time').val() : "";
	var adults = $('#adultCount').val();
	var childs = $('#childCount').val();
	var service = $('#serviceClass').val();
	var formData = {from: from, to: to, departureDate: date, departureTime: time, adultCount: adults, childCount: childs, serviceClass: service};
	if (from != '' && to != '' && date != '' && adults != '' && childs != '' && service != '') {
		$.ajax({type:"GET", url:url, data:formData, dataType:"script", success:function(data,textStat){
			if (expressPrice != null) {
				var price = expressPrice.substring(0, expressPrice.indexOf(','));
				$('#tab_buy .total-price span:first').text(price);
			}
		} });
	}
}

function toggleBlock(_this, _ctrl) {
	var $ctrl = $(_ctrl);
	if ($ctrl.is(":hidden")) {
		$ctrl.show();
		$(_this).parent().find("img").attr("src","/images/icons/collapse.gif");
	} else if ($ctrl.is(":visible")) {
		$ctrl.hide();
		$(_this).parent().find("img").attr("src","/images/icons/expand.gif");
	}
}

/* Migration to XHTML */
function showPrint2() {
	var url = document.location.href;
	openPopup(langPath + 'print.html?print=true&pageURL=' + url + '#&rootPath=' + rootPath + '&langPath=' + langPath);
	return false;
}

function openPopupCustom(link, width, height) {
	var style = 'resizable=no,menubar=no,status=no,scrollbars=no,top=10,left=10';
	style += ',width=' + width;
	style += ',height=' + height;
	op = window.open(rootPath + link, 'popup', style);
	if (op != null) {
		op.focus();
	}
	return false;
}

function openPopupCustom(link, width, height, scrollbars) {
	var style = 'resizable=no,menubar=no,status=no,';
	style += 'scrollbars=' + scrollbars;
	style += ',top=10,left=10';
	style += ',width=' + width;
	style += ',height=' + height;
	op = window.open(rootPath + link, 'popup', style);
	if (op != null) {
		op.focus();
	}
	return false;
}


function openPopupNoScroll(page) {
	if (op != null && !op.closed) op.close();

	op = window.open(page, 'popup', 'resizable=no,menubar=no,status=no,scrollbars=no,width=540,height=595,top=10,left=10');
	if (op != null) {
		op.focus();
	}
	return false;
}
function setFareToBuy(from, to, lang) {
	setCookie('bot_from', from, false, MILLIS_IN_10_DAYS);
	setCookie('bot_to', to, false, MILLIS_IN_10_DAYS);
	setCookie('bot_direction', 'returnWay', false, MILLIS_IN_10_DAYS);
	location.href = '/' + lang + 'index.html';
}

function setCookie(name, value, isSession, expireMillis) {
	if (!name) return;
	var result = name;
	if (value) result += "=" + escape(value);
	result += ";";
	if (!isSession)
		result += "expires=" + new Date(getMillis(expireMillis)).toUTCString() + ";"
	result += "path=/;";
	document.cookie = result;
}

function getCookie(sName) {
	var aCookie = document.cookie.split("; ");
	for (var i = 0; i < aCookie.length; i++) {
		var aCrumb = aCookie[i].split("=");
		if (sName == aCrumb[0])
			return unescape(aCrumb[1]);
	}
	return null;
}

function getCookieHex(sName) {
    var aCookie = document.cookie.split("; ");
    for (var i = 0; i < aCookie.length; i++) {
        var aCrumb = aCookie[i].split("=");
        if (sName == aCrumb[0]) {
          return decodeHex(aCrumb[1]);
        }
    }
    return null;
}

function eraseCookie(name) {
    setCookie(name, "", false, -99999999);
}

function isCookieless() {
	setCookie("test_cookieless", "1", true, MILLIS_IN_DAY);
	var cookie = document.cookie;

	if (cookie == null || cookie == '') {
		return true;
	} else {
		return false;
	}
}

function getMillis(increment) {
	var curr = new Date();
	curr = Date.parse(curr.toGMTString());
	return curr + increment;
}

function checkWarningCookie(value){
	if (getCookie('mainPageWarning') == value && getCookie('closeWarningDiv2') == 'true')
		return false;
	else
		if (getCookie('mainPageWarning') != value && getCookie('closeWarningDiv2') == 'true')
			setCookie("closeWarningDiv2", 'false', false, MILLIS_IN_YEAR );	
	setCookie("mainPageWarning", value, false, MILLIS_IN_YEAR );	
	return true;
}

function closeWarningDiv(){
	setCookie("closeWarningDiv2", 'true', false, MILLIS_IN_YEAR );	
	return false;
}

function getMillis(increment) {
	var curr = new Date();
	curr = Date.parse(curr.toGMTString());
	return curr + increment;
}

function initOneWorldFilter(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames){
    setCountryOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames);
}

function setCountryOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames){
    $(_country).children("option").remove();
    $.each(country2city2address2view, function(i, val){
        $(_country).append('<option value="' + i + '">' + countriesNames[i] + '</option>');
    });
    $(_country).children("option[value=0]").attr("selected", "selected");
    setCityOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames);
    $(_country).change(function(){
        setCityOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames);
    });
}

function setCityOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames){
    //$(_country).selectmenu('destroy');
    $(_city).children("option").remove();
    var selectedCountryInd = $(_country).get(0).selectedIndex;
    var selectedCountryCode = $(_country).find('option:eq(' + selectedCountryInd + ')').attr("value");
    var cities = country2city2address2view[selectedCountryCode];
    cities[0] = {};
    $.each(cities, function(i, val){
    	var _objCount = 0;
    	for (_obj in country2city2address2view[selectedCountryCode][i]) {
    		_objCount++;
    		if (_objCount == 2)
    			break;
    	}
    	if (_objCount > 1 || i == 0)
    		$(_city).append('<option value="' + i + '">' + citiesNames[i] + '</option>');
    });
    setAddressOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames);
    $(_city).change(function(){
        setAddressOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames);
    });
}

function setAddressOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames){
    $(_address).children("option").remove();
    var selectedCountryInd = $(_country).get(0).selectedIndex;
    var selectedCountryCode = $(_country).find('option:eq(' + selectedCountryInd + ')').attr("value");
    var selectedCityInd = $(_city).get(0).selectedIndex;
    var selectedCityCode = $(_city).find('option:eq(' + selectedCityInd + ')').attr("value");
    var addresses = country2city2address2view[selectedCountryCode][selectedCityCode];
    addresses["0"] = {};
    $.each(addresses, function(i, val){
        $(_address).append('<option value="' + i + '">' + addressNames[i] + '</option>');
    });
    /*setViewOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames);
    $(_address).change(function(){
        setViewOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames);
    });*/
}

function setViewOWValues(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames){
    $("#view_ddown").children("option").remove();
    var selectedCountryInd = $(_country).get(0).selectedIndex;
    var selectedCountryCode = $(_country).find('option:eq(' + selectedCountryInd + ')').attr("value");
    var selectedCityInd = $(_city).get(0).selectedIndex;
    var selectedCityCode = $(_city).find('option:eq(' + selectedCityInd + ')').attr("value");
    var selectedAddressInd = $(_address).get(0).selectedIndex;
    var selectedAddressCode = $(_address).find('option:eq(' + selectedAddressInd + ')').attr("value");
    
    var views = country2city2address2view[selectedCountryCode][selectedCityCode][selectedAddressCode];
    views["0"] = {};
    $.each(views, function(i, val){
        $("#view_ddown").append('<option value="' + i + '">' + viewOWNames[i] + '</option>');
    });
}

function showCountriesPhotosByView(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames){
	
	var resultsDiv = $("#resultsOW")
	var results = "";
	resultsDiv.empty();
	$('#resultsOWpager').hide();
    
	var selectedViewInd = $("#view_ddown").get(0).selectedIndex;
	var selectedViewCode = $("#view_ddown").find('option:eq(' + selectedViewInd + ')').attr("value");
    
	var _countries = [];
    var _i=0;

	$.each(country2city2address2view, function(i, val){
    	if (i!=0 && i!="0") {
		    var exists = false;
		    $.each(country2city2address2view[i], function(j, val2){
			if (j!=0 && j!="0" && !exists) {
				$.each(country2city2address2view[i][j], function(k, val3){
					if (k!=0 && k!="0") {
						var photosExists = val3[selectedViewCode]
						if(photosExists) {
							_countries[_i++] = i;
							exists = true;
							return false;
							
						}							
					}
				});
				if (exists) return false;
			}
		    });
		}
	});

   if (_i > 1) {
	   $('#resultsOWpager').empty();	
	   $('#resultsOWpager').show();
	   $('#resultsOWpager').aqPaging({
  		current: 1, 
   		pages: _i, 
   		flip: true,
   		cb: function(page){ 
	   		var selectedCountryCode = _countries[page-1];
	   		showCountryViewPhotos(resultsDiv, _address, selectedCountryCode, country2city2address2view, countriesNames, citiesNames, addressNames);
	   	}
   	}
   );} else if (_i == 1){
		   showCountryViewPhotos(resultsDiv, _address, _countries[0], country2city2address2view, countriesNames, citiesNames, addressNames);
	   } else
		   showCountryCityPhotos(resultsDiv, _address, "0", country2city2address2view, countriesNames, citiesNames, addressNames);


}


function showCountryViewPhotos(resultsDiv, _address, selectedCountryCode, country2city2address2view, countriesNames, citiesNames, addressNames){
	var results = "";
	resultsDiv.empty();
	
	var selectedAddressInd = $(_address).get(0).selectedIndex;
    var selectedAddressCode = $(_address).find('option:eq(' + selectedAddressInd + ')').attr("value");
    var selectedViewInd = $("#view_ddown").get(0).selectedIndex;
    var selectedViewCode = $("#view_ddown").find('option:eq(' + selectedViewInd + ')').attr("value");

    var city2address2view = country2city2address2view[selectedCountryCode];


$.each(city2address2view, function(i,val){


    var addresses = city2address2view[i];
    
    		if (selectedAddressCode != 0) {
    			addresses = {};
    			addresses[selectedAddressCode] = 0;;
    		}
    	    $.each(addresses, function(j,val3){
    	    	if (j!=0) {
    		var views = city2address2view[i][j];
    	    		if (selectedViewCode != 0) {
    	    			views = {};
    	    	    	views[selectedViewCode] = 0;
    	    		}
    	    		var _first = true;
    	    	    $.each(views, function(k,val4){
    	            	if (k!=0) {
            		var photos = city2address2view[i][j][k];
    	        			if (photos != undefined) {
    	        				if (_first) {
	            			results += '<h2>' + ((selectedCountryCode != "0")?countriesNames[selectedCountryCode] + ', ':"") + citiesNames[i] + ', ' + addressNames[j] + '</h2>';
        	            			_first = false;
        	            		}
        				results +='<h3><a href="#" onclick="return false;">' + viewOWNames[k] + '</a></h3>';
        				results += '<div style=""><table class="zoomclass"><tr class="topNote"><td>S7 Airlines</td><td>S7 Airlines + <span class="textBold2">one</span>world</td></tr>';
    	        				results += '<tr><td>';
    	        				if (photos["0"] != undefined && photos["0"] != null)
    	        					results += '<a class="zoom" href="' + rootPath + 'images/one_world/before/' + bigLinks[photos["0"]]+ '"><img src="'  + rootPath + 'images/one_world/before/' + photos["0"] + '"/></a>';
    	        				results += '</td><td>';
    	        				if (photos["1"] != undefined && photos["1"] != null )
    	        					results += '<a class="zoom" href="' + rootPath + 'images/one_world/after/' + bigLinks[photos["1"]]+ '"><img src="'  + rootPath + 'images/one_world/after/' + photos["1"]+ '"/></a>';
    	        				results += '</td></tr></table><div class="separator10"> </div></div>';
    	        			}
    	        		} 
    	             });
    	    	}
     });
});
    
    resultsDiv.html(results);
    $('a.zoom').fancyzoom({Speed:400,showoverlay:true,imgDir:'../../images/zoom/'});
    initFaq();    
}



function showOWPhotos(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames){
	var resultsDiv = $("#resultsOW")
	var results = "";
	resultsDiv.empty();
	$('#resultsOWpager').hide();
	var selectedCountryInd = $(_country).get(0).selectedIndex;
    var selectedCountryCode = $(_country).find('option:eq(' + selectedCountryInd + ')').attr("value");
    var selectedCityInd = $(_city).get(0).selectedIndex;
    var selectedCityCode = $(_city).find('option:eq(' + selectedCityInd + ')').attr("value");
    var selectedViewInd = $("#view_ddown").get(0).selectedIndex;
    var selectedViewCode = $("#view_ddown").find('option:eq(' + selectedViewInd + ')').attr("value");
    if (selectedCountryCode == "0" && selectedViewInd != 0)  {
    	/*var cities = {};
	$.each(country2city2address2view, function(i, val){
    	        if (i != "0") {
           	    var _cities = country2city2address2view[i];
		    $.each(_cities, function(j, val2){
			cities[j] = val2;
		    });
		}
		
    	     });*/
	return showCountriesPhotosByView(_country, _city, _address, country2city2address2view, countriesNames, citiesNames, addressNames);
    		
    } 
    if (selectedCountryCode == "0" && $("#view_ddown").get(0).selectedIndex == 0)    
	return;
    		
    if (selectedCountryCode != "0" ) {
        var cities = country2city2address2view[selectedCountryCode];
    }
    if (selectedCityCode != 0 && selectedCityCode != "0" ) {
    	cities = {};
    	cities[selectedCityCode] = 0;
    } 
    var _cities = [];
    var _i=0;
    $.each(cities, function(i,val){
    	if (i!=0 && i!="0") {
                var exists = false;
		$.each(country2city2address2view[selectedCountryCode][i], function(j, val2){
			if (j!=0 && j!="0" && !exists) {
				var photosExists = val2[selectedViewCode];
				if(photosExists != undefined && photosExists) {
			    		_cities[_i++] = i;
					exists = true;
					return false;
				}							
    	}
    });
	}
    		
    });
   if (_i > 1) {
	   $('#resultsOWpager').empty();	
	   $('#resultsOWpager').show();
	   $('#resultsOWpager').aqPaging({
   		current: 1, 
   		pages: _i, 
   		flip: true,
   		cb: function(pageN){ 
	   		var selectedCityCode = _cities[pageN-1];
	   		showCountryCityPhotos(resultsDiv, _address, selectedCountryCode, selectedCityCode, country2city2address2view, countriesNames, citiesNames, addressNames);
	   	}
   	}
   );} else if (_i == 1){
		   showCountryCityPhotos(resultsDiv, _address, selectedCountryCode, _cities[0], country2city2address2view, countriesNames, citiesNames, addressNames);
	   } else
		   showCountryCityPhotos(resultsDiv, _address, selectedCountryCode, 0, country2city2address2view, countriesNames, citiesNames, addressNames);
	   
}

function showCountryCityPhotos(resultsDiv, _address, selectedCountryCode, selectedCityCode, country2city2address2view, countriesNames, citiesNames, addressNames){
	var results = "";
	resultsDiv.empty();
	
	var selectedAddressInd = $(_address).get(0).selectedIndex;
    var selectedAddressCode = $(_address).find('option:eq(' + selectedAddressInd + ')').attr("value");
    var selectedViewInd = $("#view_ddown").get(0).selectedIndex;
    var selectedViewCode = $("#view_ddown").find('option:eq(' + selectedViewInd + ')').attr("value");
    
    var city2address2view = country2city2address2view[selectedCountryCode];
    var addresses = city2address2view[selectedCityCode];
    
	if (selectedAddressCode != 0) {
		addresses = {};
		addresses[selectedAddressCode] = 0;;
	}
    $.each(addresses, function(j,val3){
    	if (j!=0) {
    		var views = city2address2view[selectedCityCode][j];
    		if (selectedViewCode != 0) {
    			views = {};
    	    	views[selectedViewCode] = 0;
    		}
    		var _first = true;
    	    $.each(views, function(k,val4){
            	if (k!=0 && city2address2view[selectedCityCode][j] != undefined) {
            		var photos = city2address2view[selectedCityCode][j][k];
        			if (photos != undefined) {
        				if (_first) {
	            			results += '<h2>' + ((selectedCountryCode != "0")?countriesNames[selectedCountryCode] + ', ':"") + citiesNames[selectedCityCode] + ', ' + addressNames[j] + '</h2>';
	            			_first = false;
	            		}
        				results +='<h3><a href="#" onclick="return false;">' + viewOWNames[k] + '</a></h3>';
        				results += '<div style=""><table class="zoomclass"><tr class="topNote"><td>S7 Airlines</td><td>S7 Airlines + <span class="textBold2">one</span>world</td></tr>';
        				results += '<tr><td>';
        				if (photos["0"] != undefined && photos["0"] != null)
        					results += '<a class="zoom" href="' + rootPath + 'images/one_world/before/' + bigLinks[photos["0"]]+ '"><img src="'  + rootPath + 'images/one_world/before/' + photos["0"] + '"/></a>';
        				results += '</td><td>';
        				if (photos["1"] != undefined && photos["1"] != null )
        					results += '<a class="zoom" href="' + rootPath + 'images/one_world/after/' + bigLinks[photos["1"]]+ '"><img src="'  + rootPath + 'images/one_world/after/' + photos["1"]+ '"/></a>';
        				results += '</td></tr></table><div class="separator10"> </div></div>';
        			}
        		} 
             });
    	}
     });
    
    resultsDiv.html(results);
    $('a.zoom').fancyzoom({Speed:400,showoverlay:true,imgDir:'../../images/zoom/'});
    initFaq();    
}

function isChildSearch(){
	var form = document.forms['form_flight'];
	if (form.elements['numAdults'].value == 0 && (form.elements['numInfants'].value > 0 || form.elements['numChildren'].value > 0)) {
		$("#botBuyError").hide();
		$("div.error-message-wrap").show();
		$("#error-message-6").show();
		var from = form.elements['from_buy'].value;
		var to = form.elements['to_buy'].value;
		var origCountry = from.substring(from.lastIndexOf(')')+1);
		var destCountry = to.substring(to.lastIndexOf(')')+1);
		if (origCountry != undefined && destCountry != undefined && origCountry != destCountry)
			$("#error-notice2").show();
		else
			$("#error-notice2").hide();
		return true;
	}
	return false;
}

function getPostalCodePattern() {
    if (page.indexOf('ffpEnrollment') == 0) {
        return enrollmentFormEx[rule_position][1][1][2];
    } else if (page.indexOf('ffpAccount') == 0) {
        return accountFormEx[2][1][1][2];
    }
}

function getPostalCodeFieldName() {
    if (page.indexOf('ffpEnrollment') == 0) {
        return enrollmentFormEx[rule_position][1][1][0];
    } else if (page.indexOf('ffpAccount') == 0) {
        return accountFormEx[2][1][1][0];
    }
}

function fillRegionAreaCityByPostalCode() {
    var zip = $('#zip').val();
	
    if($("#country").val()!="RU"){
	return;
    }	

    if ((zip != null) && (zip.length > 0) ) {
        if (_checkPattern('zip', getPostalCodePattern()) && zip.length == 6) {
            $('#' + getPostalCodeFieldName()).css('display', 'none');
            $('#region').addClass('processing');
            $('#area').addClass('processing');
            $('#city').addClass('processing');
            $.ajax({
                type: 'GET'
                , cache: true
                , url: '/kladr/index.json'
                , data: {'action': 'fillRegionAreaCityByPostalCode', 'postalCode': zip}
                , dataType: 'json'
                , success: function(data) {
                    if (data != null) {
                        activeElementId = document.activeElement.id;

                        $('#zip_error_not_exist').css('display', 'none');
                        $('#zip_required').css('display', 'none');
                        $('#area_ExceedsMaxLength').css('display', 'none');
                        $('#area_error').css('display', 'none');
                        $('#area_level_error').css('display', 'none');
                        $('#city_required').css('display', 'none');
                        $('#city_ExceedsMaxLength').css('display', 'none');
                        $('#city_error').css('display', 'none');
                        $('#city_level_error').css('display', 'none');
                        $('#street_required').css('display', 'none');
                        $('#street_ExceedsMaxLength').css('display', 'none');
                        $('#street_error').css('display', 'none');
                        $('#street_level_error').css('display', 'none');

                        $('#region').val(data.regionName);
                        var regionType = firstLetterToUpperCase(data.regionType);
                        $('#regionType').val(regionType);
                        $('#regionLabel').text(regionType);
                        $('#regionBlock').css('display', '');
                        $('#regionCode').val(data.regionCode);
                        if ('area' != activeElementId) {
                            $('#area').val(data.areaName ? data.areaName : areaHint);
                            if ($('#area').val() == areaHint) {
                                $('#area').addClass('textGrey');
                            } else {
                                $('#area').removeClass('textGrey');
                            }
                            $('#areaCode').val(data.areaCode);
                        }
                        if ('city' != activeElementId) {
                            $('#city').val(data.cityName ? data.cityName : cityHint);
                            if ($('#city').val() == cityHint) {
                                $('#city').addClass('textGrey');
                                $('#street').attr('disabled', 'disabled');
                            } else {
                                $('#city').removeClass('textGrey');
                                var cityType = firstLetterToUpperCase(data.cityType);
                                $('#cityType').val(cityType);
                                $('#cityLabel').text(cityType);
                                $('#cityCode').val(data.cityCode);
                                $('#street').removeAttr('disabled');
                            }
                        }
                        $('#streetCode').val('');
                        $('#street').addClass('textGrey');
                        $('#street').val(streetHint);
                        $('#house').val('');
                        $('#bulk').val('');
                        $('#building').val('');
                        $('#flat').val('');
                    } else {
                        /*
                        clearAddressFields();
                        $('#area').addClass('textGrey');
                        $('#area').val(areaHint);
                        $('#city').addClass('textGrey');
                        $('#city').val(cityHint);
                        $('#street').addClass('textGrey');
                        $('#street').val(streetHint);
                        $('#street').attr('disabled', 'disabled');
                        $('#house').attr('disabled', 'disabled');
                        $('#houseType').val('house');
                        $('#bulk').attr('disabled', 'disabled');
                        $('#building').attr('disabled', 'disabled');
                        $('#flat').attr('disabled', 'disabled');
                        */
                        $('#zip_error_not_exist').css('display', '');
                    }
                    refreshEnrollErrors();
                }
                , complete: function(XMLHTTPRequest, textStatus) {
                    $('#region').removeClass('processing');
                    $('#area').removeClass('processing');
                    $('#city').removeClass('processing');
                }
                , error: function(XMLHTTPRequest, textStatus, errorThrown) {
                    $('#zip').val('');
                }
            });
        } else {
            if (page.indexOf('ffpEnrollment') == 0) {
                $('#' + enrollmentFormEx[rule_position][1][1][0]).css('display', '');
            } else if (page.indexOf('ffpAccount') == 0) {
                $('#' + accountFormEx[2][1][1][0]).css('display', '');
            }
            $('#zip_error_not_exist').css('display', 'none');
        }
        refreshEnrollErrors();
    }
}

function fillRegionByCity(cityCode) {
    $('#region').addClass('processing');
    $.ajax({
        type: 'GET'
        , cache: true
        , url: '/kladr/index.json'
        , data: {'action': 'fillRegionByCity', 'cityCode': cityCode}
        , dataType: 'json'
        , success: function(data) {
            if (data != null) {
                $('#region').val(data.regionName);
                var regionType = firstLetterToUpperCase(data.socrname);
                $('#regionType').val(regionType);
                $('#regionLabel').text(regionType);
                $('#regionCode').val(data.regionCode);
                $('#regionBlock').css('display', '');

                var areaName = $("#area").val()  ;

                if( areaName.substring(0,data.regionName.length )==data.regionName ){
            	    $("#area").val('');
            	    $("#areaBlock").hide('');
                }else{
            	    $("#areaBlock").show();
                }
            }
        }
        , error: function(XMLHTTPRequest, textStatus, errorThrown) {
            
        }
        , complete: function(XMLHTTPRequest, textStatus) {
            $('#region').removeClass('processing');
        }
    });
}

function fillPostalCodeByHouse() {
    if ($('#house').val() == '') {
        $('#bulk').val('');
        $('#building').val('');
        $('#flat').val('');
    } else {
        fillPostalCodeByStreet();
    }
}

function fillPostalCodeByCityOrStreetOrHouse() {
    var cityCode = $('#cityCode').val();
    var streetCode = $('#streetCode').val();
    var houseNumber = $('#house').val();
    if (((cityCode != null) && (cityCode.length > 0))
            || ((streetCode != null) && (streetCode.length > 0))
            || ((houseNumber != null) && (houseNumber.length > 0))) {
        $('#zipUI').addClass('processing');
        $.ajax({
            type: 'GET'
            , cache: true
            , url: '/kladr/index.json'
            , data: {'action': 'fillPostalCodeByCityOrStreetOrHouse', 'cityCode': cityCode, 'streetCode': streetCode, 'houseNumber': ''}
            , dataType: 'json'
            , success: function(data) {
                if ((data != null) && (data.postalCode != null)) {
                    var postalCode = $('#zip').val();
                    if ((postalCode == null) || (postalCode.length == 0)) {
                        $('#zip').val(data.postalCode);
                        $('#zipUI').val(data.postalCode);
                        $('#zip_required').css('display', 'none');
                        $('#zip_error').css('display', 'none');
                        $('#zip_error_digit').css('display', 'none');
                        $('#zip_error_not_exist').css('display', 'none');
                    }
                }
                refreshEnrollErrors();
            }
            , error: function(XMLHTTPRequest, textStatus, errorThrown) {
                
            }
            , complete: function(XMLHTTPRequest, textStatus) {
                $('#zipUI').removeClass('processing');
            }
        });
    }
}

function fillPostalCodeByStreet() {
    var cityCode = $('#cityCode').val();
    var streetCode = $('#streetCode').val();
    var houseNumber = $('#house').val();
    if (((cityCode != null) && (cityCode.length > 0))
            || ((streetCode != null) && (streetCode.length > 0))
            || ((houseNumber != null) && (houseNumber.length > 0))) {
        $('#zipUI').addClass('processing');
        $.ajax({
            type: 'GET'
            , cache: true
            , url: '/kladr/index.json'
            , data: {'action': 'fillPostalCodeByCityOrStreetOrHouse', 'cityCode': cityCode, 'streetCode': streetCode, 'houseNumber': houseNumber}
            , dataType: 'json'
            , success: function(data) {
                if ((data != null) && (data.postalCode != null)) {
                    $('#zip').val(data.postalCode);
                    $('#zipUI').val(data.postalCode);
                    $('#zip_required').css('display', 'none');
                    $('#zip_error').css('display', 'none');
                    $('#zip_error_digit').css('display', 'none');
                    $('#zip_error_not_exist').css('display', 'none');
                }else{
                    fillPostalCodeByCityOrStreetOrHouse();
            	    //$('#zipUI').removeAttr('disabled');
                }
                refreshEnrollErrors();
            }
            , error: function(XMLHTTPRequest, textStatus, errorThrown) {
                
            }
            , complete: function(XMLHTTPRequest, textStatus) {
                $('#zipUI').removeClass('processing');
            }
        });
    }
}

var areaCheckTimeout;
var cityCheckTimeout;
var streetCheckTimeout;
var timeoutValue = 500;

function changeFields(countryCode) {
    if ('RU' == countryCode) {
        /*
        if (page.indexOf('ffpEnrollment') == 0) {
            clearAddressFields();
        }
        */

        $("#country").bind('click',function(){
        	clearAddressFields();
        });


        //$('#zip').bind('blur', fillRegionAreaCityByPostalCode);
        $('#zipUI').bind('blur', function(){
    	    $("#zip").val($('#zipUI').val());
    	});

        $('#zipHint').css('display', '');
        $('#zipInfo').css('display', '');
        if (page.indexOf('ffpEnrollment') == 0) {
            enrollmentFormEx[rule_position][1][1][0] = "zip_error_digit";
            enrollmentFormEx[rule_position][1][1][2] = /^[0-9]*$/;
            //enrollmentFormEx[rule_position][1].push([null, _checkRequired]);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormEx[2][1][1][0] = 'zip_error_digit';
            accountFormEx[2][1][1][2] = /^[0-9]*$/;
        }
        if ($('#region').val() == '') {
            $('#regionBlock').css('display', 'none');
        }
        $('#regionBlock .label').removeClass('labelOptional');
        $('#region').attr('disabled', 'disabled');
        if (page.indexOf('ffpEnrollment') == 0) {
            enrollmentFormEx[rule_position + 2][1].push(['region_required', _checkRequired]);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormEx[4][1].push(['region_required', _checkRequired]);
        }
        $('#areaBlock').css('display', 'none');
        if ($('#area').val() == '') {
    //        $('#area').addClass('textGrey');
            $('#area').val(areaHint);
        }
        $('#area').focus(function() {
    //        $('#area').removeClass('textGrey');
            clearTimeout(areaCheckTimeout);
            if ($('#area').val() == areaHint) {
                $('#area').val('');
            }
        });
        $('#area').blur(function() {
            if ($('#area').val() == '') {
    //            $('#area').addClass('textGrey');
                $('#area').val(areaHint);
                $('#areaCode').val('');
            }
        });
        $('#area').change(function() {
            if ($('#area').val() != '') {
        	//area is readonly, no validation
                //areaCheckTimeout = setTimeout(checkAreaExistence, timeoutValue);
            }
        });
        //suggestArea();
        //no area validation
        /*if (page.indexOf('ffpEnrollment') == 0) {
	    enrollmentFormEx.push(['areaCode', [['area_error', _checkCode, areaHint ]]]);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormAddressHomeEx.push(['areaCode', [['area_error', _checkCode, areaHint ]]]);
        }*/
        
        if ($('#city').val() == '') {
            $('#city').addClass('textGrey');
            $('#city').val(cityHint);
        }
        $('#city').focus(function() {
            $('#city').removeClass('textGrey');
            clearTimeout(cityCheckTimeout);
            if ($('#city').val() == cityHint) {
                $('#city').val('');
            }
        });
        $('#city').blur(function() {
            if ($('#city').val() == '') {
                $('#city').addClass('textGrey');
                $('#city').val(cityHint);
                $('#cityCode').val('');
            }
        });
        $('#city').change(function() {

            if ($('#city').val() != '') {
                cityCheckTimeout = setTimeout(checkCityExistence, timeoutValue);
            }
            $('#zipUI').attr('disabled','true');
        });
        suggestCity();
        if (page.indexOf('ffpEnrollment') == 0) {
            enrollmentFormEx.push(['cityCode', [['city_error', _checkCode, cityHint ]]]);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormAddressHomeEx.push(['cityCode', [['city_error', _checkCode, cityHint ]]]);
        }
        if ($('#street').val() == '') {
            $('#street').addClass('textGrey');
            $('#street').val(streetHint);
        }
        $('#street').focus(function() {
            $('#street').removeClass('textGrey');
            clearTimeout(streetCheckTimeout);
            if ($('#street').val() == streetHint) {
                $('#street').val('');
            }
        });
        $('#street').blur(function() {
            if ($('#street').val() == '') {
                $('#street').addClass('textGrey');
                $('#street').val(streetHint);
                $('#streetCode').val('');
            }
        });
        
        $('#street').keyup(function() {
            $("#zip").val('');
            $("#zipUI").val('');
        });
        
        $('#street').change(function() {
            if ($('#street').val() != '') {
                streetCheckTimeout = setTimeout(checkStreetExistence, timeoutValue);
            }
        });
        suggestStreet();
        if (page.indexOf('ffpEnrollment') == 0) {
            enrollmentFormEx.push(['streetCode', [['street_error', _checkCode, streetHint ]]]);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormAddressHomeEx.push(['streetCode', [['street_error', _checkCode, streetHint ]]]);
        }
        if ((($('#city').val() == '') || (($('#city').val() == cityHint)))
                && (($('#street').val() == '') || ($('#street').val() == streetHint))) {
            $('#street').attr('disabled', 'disabled');
        }
        $('#house').bind('keyup', checkHouseField);
        $('#house').bind('blur', fillPostalCodeByHouse);
        $('#house').change(function() {
            if (($('#house').val() != '') && isHouseRequiredRulePushed) {
                checkHouseExistence();
            }
        });
	//if (page.indexOf('ffpEnrollment') == 0) {
    	    if ($('#house').val() == '') {
	        $('#house').attr('disabled', 'disabled');
            }
    	    $('#houseLabel').html(houseTypeRu);
            if (($('#house').val() == '') && ($('#bulk').val() == '')) {
    		$('#bulk').attr('disabled', 'disabled');
	    }
            if (($('#house').val() == '') && ($('#building').val() == '')) {
        	$('#building').attr('disabled', 'disabled');
	    }
    	    if (($('#house').val() == '') && ($('#flat').val() == '')) {
	        $('#flat').attr('disabled', 'disabled');
	    }
	//}
    } else {
        /*
        if (page.indexOf('ffpEnrollment') == 0) {
            clearAddressFields();
        }
        */
        $('#zip').unbind('blur');
        $('#zipHint').css('display', 'none');
        $('#zipInfo').css('display', 'none');
        if (page.indexOf('ffpEnrollment') == 0) {
            enrollmentFormEx[rule_position][1][1][0] = "zip_error";
            enrollmentFormEx[rule_position][1][1][2] = /^[a-zA-Z0-9]*$/;
            //enrollmentFormEx[rule_position][1].splice(2, 1);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormEx[2][1][1][0] = 'zip_error';
            accountFormEx[2][1][1][2] = /^[a-zA-Z0-9]*$/;
        }
        $('#regionBlock').css('display', '');
        $('#regionBlock .label').addClass('labelOptional');
        $('#region').removeAttr('disabled');
        if (page.indexOf('ffpEnrollment') == 0) {
            enrollmentFormEx[rule_position + 2][1].splice(1, 1);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormEx[4][1].splice(1, 1);
        }
        $('#areaBlock').css('display', 'none');
        $('#area').unbind();
        if (page.indexOf('ffpEnrollment') == 0) {
            enrollmentFormEx.splice(rule_position + 21, 1);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormAddressHomeEx.splice(5, 1);
        }
        $('#area').removeClass('textGrey');
        $('#city').unbind();
        if (page.indexOf('ffpEnrollment') == 0) {
            enrollmentFormEx.splice(rule_position + 21, 1);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormAddressHomeEx.splice(5, 1);
        }
        $('#city').removeClass('textGrey');
        $('#street').unbind();
        if (page.indexOf('ffpEnrollment') == 0) {
            enrollmentFormEx.splice(rule_position + 21, 1);
        } else if (page.indexOf('ffpAccount') == 0) {
            accountFormAddressHomeEx.splice(5, 1);
        }
        $('#street').removeAttr('disabled');
        $('#street').removeClass('textGrey');
        $('#house').unbind('keyup');
        //$('#house').unbind('blur');
        $('#house').unbind('change');
        $('#house').removeAttr('disabled');
        houseTypeRu = $('#houseLabel').html();
        $('#houseLabel').html(houseTypeNonRu)
        $('#bulk').removeAttr('disabled');
        $('#building').removeAttr('disabled');
        $('#flat').removeAttr('disabled');
    }
    showPostcodeHint(countryCode);
}

function clearAddressFields() {
    $('#zip').val('');
    $('#zipUI').val('');
    $('#region').val('');
    $('#regionType').val('');
    $('#regionLabel').text(defaultRegionLabel);
    $('#regionCode').val('');
    $('#area').val('');
    $('#areaCode').val('');
    $('#city').val('');
    $('#cityType').val('');
    $('#cityLabel').text(defaultCityLabel);
    $('#cityCode').val('');
    $('#street').val('');
    $('#streetType').val('');
    $('#streetLabel').text(defaultStreetLabel);
    $('#streetCode').val('');
    $('#houseType').val('house');
    $('#house').val('');
    $('#bulk').val('');
    $('#building').val('');
    $('#flat').val('');

    $('#zipValidationHint').hide();
}

function clearAddressFieldsWithoutCity() {

    $('#zip').val('');
    $('#zipUI').val('');
    $('#region').val('');
    $('#regionType').val('');
    $('#regionLabel').text(defaultRegionLabel);
    $('#regionCode').val('');
    $('#area').val('');
    $('#areaCode').val('');
//    $('#city').val('');
    $('#cityType').val('');
    $('#cityLabel').text(defaultCityLabel);
    $('#cityCode').val('');
    $('#street').val('');
    $('#streetType').val('');
    $('#streetLabel').text(defaultStreetLabel);
    $('#streetCode').val('');
    $('#houseType').val('house');
    $('#house').val('');
    $('#bulk').val('');
    $('#building').val('');
    $('#flat').val('');

    $('#zipValidationHint').hide();
}


function checkHouseField() {
    if ($('#house').val() != '') {
        $('#bulk').removeAttr('disabled');
        $('#building').removeAttr('disabled');
        $('#flat').removeAttr('disabled');
    } else {
        $('#bulk').attr('disabled', 'disabled');
        $('#building').attr('disabled', 'disabled');
        $('#flat').attr('disabled', 'disabled');
    }
}

function firstLetterToUpperCase(word) {
    if ((word != null) && (word.length > 0)) {
        return word.charAt(0).toUpperCase() + word.substring(1, word.length);
    } else {
        return "";
    }
}

function suggestArea() {
    $('#area').suggest(
            '/kladr/index.json?action=findAreas'
            , {
                delay: 700
                , minchars: 2
                , onSelect: function(item) {
                    onAreaSelect(item);
                    clearTimeout(areaCheckTimeout);
                }
                , zip: 'zip'
            }
    );
}

function onAreaSelect(item) {
    $('#areaCode').val(item.id);
    $('#cityCode').val('');
    $('#city').addClass('textGrey');
    $('#city').val(cityHint);
    $('#streetCode').val('');
    $('#street').addClass('textGrey');
    $('#street').val(streetHint);
    $('#house').val('');
    $('#bulk').val('');
    $('#building').val('');
    $('#flat').val('');
    $('#area_level_error').css('display', 'none');
    $('#area_error').css('display', 'none');
    refreshEnrollErrors();
}

function suggestCity() {
    $('#city').suggest(
            '/kladr/index.json?action=findCities'
            , {
                delay: 700
                , minchars: 2
                , onSelect: function(item) {
                    onCitySelect(item);
                    clearTimeout(cityCheckTimeout);
                }
                , parentCode: 'arearCode'
                , zip: ''
            }
    );
}

function onCitySelect(item) {

    $('#cityCode').val(item.id);
    var cityType = firstLetterToUpperCase(item.postfix);
    $('#cityType').val(cityType);
    $('#cityLabel').text(cityType);
    $('#area').val(item.extra);
    fillRegionByCity(item.id);
    $('#street').removeAttr('disabled');
    $('#streetCode').val('');
    $('#street').addClass('textGrey');
    $('#street').val(streetHint);
    unlockHouseBulkBuildingFlat();
    isStreetRequired();
    $('#house').val('');
    $('#bulk').val('');
    $('#building').val('');
    $('#flat').val('');
    $('#zip').val('');
    $('#zipUI').val('');
//    fillPostalCodeByCityOrStreetOrHouse();
    $('#city_level_error').css('display', 'none');
    $('#city_error').css('display', 'none');
    refreshEnrollErrors();
}

function suggestStreet() {
    $('#street').suggest(
            '/kladr/index.json?action=findStreets'
            , {
                delay: 700
                , minchars: 1
                , onSelect: function(item) {
                    onStreetSelect(item);
                    clearTimeout(streetCheckTimeout);
                }
                , parentCode: 'cityCode'
            }
    );
}

function onStreetSelect(item) {
    $('#streetCode').val(item.id);
    var streetType = firstLetterToUpperCase(item.postfix);
    $('#streetType').val(streetType);
    $('#streetLabel').text(streetType);
    $('#house').removeAttr('disabled');
    $('#house').val('');
    $('#bulk').val('');
    $('#building').val('');
    $('#flat').val('');
//    fillPostalCodeByStreet();
    fillDistrictByStreet(item);
    isHouseRequired();
    $('#street_level_error').css('display', 'none');
    $('#street_error').css('display', 'none');
    refreshEnrollErrors();
}

function fillDistrictByStreet(item){
    //var cityName= $("#city").val();
    //alert(cityName+":"+item.postfix+" "+item.text);
}

function unlockHouseBulkBuildingFlat() {
    var cityCode = $('#cityCode').val();
    if ((cityCode != null) && (cityCode.length > 0)) {
        $.ajax({
            type: 'GET'
            , cache: true
            , url: '/kladr/index.json'
            , data: {'action': 'unlockHouseBulkBuildingFlat', 'cityCode': cityCode}
            , dataType: 'json'
            , success: function(data) {
                if ((data != null) && (data.count > 0)) {
                    $('#house').removeAttr('disabled');
                    $('#bulk').removeAttr('disabled');
                    $('#building').removeAttr('disabled');
                    $('#flat').removeAttr('disabled');
                } else {
                    //$('#house').attr('disabled', 'disabled');
                    $('#bulk').attr('disabled', 'disabled');
                    $('#building').attr('disabled', 'disabled');
                    $('#flat').attr('disabled', 'disabled');
                }
            }
            , error: function(XMLHTTPRequest, textStatus, errorThrown) {
                
            }
            , complete: function(XMLHTTPRequest, textStatus) {
                
            }
        });
    }
}

var isStreetRequiredRulePushed = true;

function isStreetRequired() {
    var cityCode = $('#cityCode').val();
    if ((cityCode != null) && (cityCode.length > 0)) {
        $.ajax({
            type: 'GET'
            , cache: true
            , url: '/kladr/index.json'
            , data: {'action': 'isStreetRequired', 'cityCode': cityCode}
            , dataType: 'json'
            , success: function(data) {
                if ((data != null) && (!data.required)) {
                    if (isStreetRequiredRulePushed) {
                        if (page.indexOf('ffpEnrollment') == 0) {
                            enrollmentFormEx[rule_position + 3][1].splice(1, 1);
                            enrollmentFormEx.splice(rule_position + 23, 1);
                        } else if (page.indexOf('ffpAccount') == 0) {
                            accountFormEx[5][1].splice(1, 1);
                            accountFormAddressHomeEx.splice(7, 1);
                        }
                        isStreetRequiredRulePushed = false;
                    }
                    $('#house').removeAttr('disabled');
                } else {
                    if (!isStreetRequiredRulePushed) {
                        if (page.indexOf('ffpEnrollment') == 0) {
                            enrollmentFormEx[rule_position + 3][1].push(['street_required', _checkRequiredWithHint, streetHint]);
                            enrollmentFormEx.push(['streetCode', [['street_error', _checkCode, streetHint ]]]);
                        } else if (page.indexOf('ffpAccount') == 0) {
                            accountFormEx[5][1].push(['street_required', _checkRequiredWithHint, streetHint]);
                            accountFormAddressHomeEx.push(['streetCode', [['street_error', _checkCode, streetHint ]]]);
                        }
                        isStreetRequiredRulePushed = true;
                    }
//                    $('#house').attr('disabled', 'disabled');
                }
            }
            , error: function(XMLHTTPRequest, textStatus, errorThrown) {
                
            }
            , complete: function(XMLHTTPRequest, textStatus) {
                
            }
        });
    }
}

var isHouseRequiredRulePushed = false;

function isHouseRequired() {
    var streetCode = $('#streetCode').val();
    if ((streetCode != null) && (streetCode.length > 0)) {
        $.ajax({
            type: 'GET'
            , cache: true
            , url: '/kladr/index.json'
            , data: {'action': 'isHouseRequired', 'streetCode': streetCode}
            , dataType: 'json'
            , success: function(data) {
                if ((data != null) && (!data.required)) {
                    if (isHouseRequiredRulePushed) {
                        if (page.indexOf('ffpEnrollment') == 0) {
                            enrollmentFormEx[rule_position + 19][1].splice(1, 1);
                        } else if (page.indexOf('ffpAccount') == 0) {
                            accountFormAddressHomeEx[2][1].splice(1, 1);
                        }
                        isHouseRequiredRulePushed = false;
                    }
                } else {
                    if (!isHouseRequiredRulePushed) {
                        if (page.indexOf('ffpEnrollment') == 0) {
                            enrollmentFormEx[rule_position + 19][1].push(['house_required', _checkRequired]);
                        } else if (page.indexOf('ffpAccount') == 0) {
                            accountFormAddressHomeEx[2][1].push(['house_required', _checkRequired]);
                        }
                        isHouseRequiredRulePushed = true;
                    }
                }
            }
            , error: function(XMLHTTPRequest, textStatus, errorThrown) {
                
            }
            , complete: function(XMLHTTPRequest, textStatus) {
                
            }
        });
    }
}

function checkAreaExistence() {

    $('#area').addClass('processing');
    var area = $('#area').val();
    var postalCode = $('#zip').val();
    $.ajax({
        type: 'GET'
        , cache: true
        , url: '/kladr/index.json'
        , data: {'action': 'checkExistence', 'postalCode': postalCode, 'area': area}
        , dataType: 'json'
        , success: function(data) {
            if ((data != null) && (data.exists)) {
                onAreaSelect(data);
                $('#area').removeClass('textGrey');
                $('#area').val(data.text);
            } else if ((data != null) && (data.errorLevel)) {
                $('#areaCode').val('');
                $('#area_error').css('display', 'none');
                $('#area_level_error').css('display', '');
            } else {
                $('#areaCode').val('');
                $('#area_error').css('display', '');
            }
            refreshEnrollErrors();
        }
        , error: function(XMLHTTPRequest, textStatus, errorThrown) {
            
        }
        , complete: function(XMLHTTPRequest, textStatus) {
            $('#area').removeClass('processing');
        }
    });
}

function checkCityExistence() {

    if( $(".scrollingSuggest:last()").css("display")=="block" ){
	return;
    }

    $('#city').addClass('processing');
    var postalCode = $('#zip').val();
    var city = $('#city').val();
    var areaCode = $('#areaCode').val();
    $.ajax({
        type: 'GET'
        , cache: true
        , url: '/kladr/index.json'
        , data: {'action': 'checkExistence', 'postalCode': postalCode, 'areaCode': areaCode, 'city': city}
        , dataType: 'json'
        , success: function(data) {
            if ((data != null) && (data.exists)) {
                var cityType = firstLetterToUpperCase(data.postfix);
                if ($('#cityCode').val() != data.id
                        && $('#city').val() != data.text
                        && $('#cityType').val() != cityType
                        && $('#cityLabel').val() != cityType) {
                    onCitySelect(data);
                    $('#city').removeClass('textGrey');
                    $('#city').val(data.text);
                }
            } else if ((data != null) && (data.errorLevel)) {
                $('#cityCode').val('');
                $('#city_error').css('display', 'none');
                $('#city_level_error').css('display', '');
            } else {
                $('#cityCode').val('');
                $('#city_error').css('display', '');
            }
            refreshEnrollErrors();
        }
        , error: function(XMLHTTPRequest, textStatus, errorThrown) {
            
        }
        , complete: function(XMLHTTPRequest, textStatus) {
            $('#city').removeClass('processing');
        }
    });
}

function checkStreetExistence() {

    if( $(".scrollingSuggest:last()").css("display")=="block" ){
	return;
    }

    $('#street').addClass('processing');
    var street = $('#street').val();
    var cityCode = $('#cityCode').val();
    $.ajax({
        type: 'GET'
        , cache: true
        , url: '/kladr/index.json'
        , data: {'action': 'checkExistence', 'cityCode': cityCode, 'street': street}
        , dataType: 'json'
        , success: function(data) {
            if ((data != null) && (data.exists)) {
                onStreetSelect(data);
                $('#street').removeClass('textGrey');
                $('#street').val(data.text);
            } else if ((data != null) && (data.errorLevel)) {
                $('#streetCode').val('');
                $('#street_error').css('display', 'none');
                $('#street_level_error').css('display', '');
            } else {
                $('#streetCode').val('');
                $('#street_error').css('display', '');
            }
            refreshEnrollErrors();
        }
        , error: function(XMLHTTPRequest, textStatus, errorThrown) {
            
        }
        , complete: function(XMLHTTPRequest, textStatus) {
            $('#street').removeClass('processing');
        }
    });
}

function checkHouseExistence() {

    if( $(".scrollingSuggest:last()").css("display")=="block" ){
	return;
    }

    $('#house').addClass('processing');
    var house = $('#house').val();
    var streetCode = $('#streetCode').val();
    var cityCode = $('#cityCode').val();
    $.ajax({
        type: 'GET'
        , cache: true
        , url: '/kladr/index.json'
        , data: {'action': 'checkExistence', 'cityCode': cityCode, 'streetCode': streetCode, 'house': house}
        , dataType: 'json'
        , success: function(data) {
            if ((data != null) && (data.exists)) {
                $('#house_error').css('display', 'none');
                fillPostalCodeByHouse();
            } else {
                $('#house_error').css('display', '');
            }
            refreshEnrollErrors();
        }
        , error: function(XMLHTTPRequest, textStatus, errorThrown) {
            
        }
        , complete: function(XMLHTTPRequest, textStatus) {
            $('#house').removeClass('processing');
        }
    });
}

function checkFfpCard(){
if( $("#ffpEnrollment_form_cardNumberUi").val()!="" ){
	$("#ffpEnrollment_form_cardNumberUi").addClass("processing");
	var lang = '';
	var path = document.location.pathname;
	
	if (urlDe.test(path)) {
		lang = 'de';
	} else if (urlRu.test(path)) {
		lang = 'ru';
	} else {
		lang = 'en';
	}
	$.ajax({
        type: "GET",
        url: "/"+lang + "/ffpEnrollment!checkFfpCard.action?form.cardNumberUi="+$("#ffpEnrollment_form_cardNumberUi")[0].value, 
        dataType: "json",
        error: function(){
        	$("#ffpEnrollment_form_cardNumberUi").removeClass("processing");
        	$("#cardNumberId").text("");
        	$("#ffpEnrollment_form_cardNumber").val("");
        },
      	success: function(data){       	     	
      		var result = null;
      		try {
      			result = eval(data);
      		} catch (e) {};
      		$("#ffpEnrollment_form_cardNumberUi").removeClass("processing");
      		if (result!=undefined && result!=null) {
      			$("#cardNumber > td.error-row > div").css('display', 'none');
      			if (result.success) {
      				$("#cardNumberId").text($("#ffpEnrollment_form_cardNumberUi")[0].value);
				//$("#ffpEnrollment_form_cardNumber").text($("#ffpEnrollment_form_cardNumberUi")[0].value);
      				$("#cardSaved span").text($("#ffpEnrollment_form_cardNumberUi")[0].value);//TODO spaces between digits
      				$("#ffpEnrollment_form_cardNumber").val($("#ffpEnrollment_form_cardNumberUi")[0].value);
      				$("#cardInput").hide();
      				$("#cardSaved").show();
      			}
      			else {
      				$("#cardNumberId").text("");
      				$("#ffpEnrollment_form_cardNumber").val("");
      			}
      			if (result.messageId != null && result.messageId != "")
      				$('#' + result.messageId).css('display', '');
      		} else {
      			$("#cardNumberId").text("");
      			$("#ffpEnrollment_form_cardNumber").val("");
      		}
            refreshEnrollErrors();
  		}
  });
}
  $("#latCardNumber").val($("#cardNumberId").val());
}

function bindHintsToEnrollForm(ru2en) {
	
	$("#middlenameCyr").blur( function() {
    	if (!cyrillicRegexp.test($(this).val())) {
    		$("#middlenameCyr_error").show();
    	} else
    		$("#middlenameCyr_error").hide();       
    	$(this).val(ru2en.norm($(this).val(), true));
        }
	);
    
	$("#middlenameCyr").keyup(function() {
    	if (!cyrillicRegexp.test($(this).val())) {
    		$("#middlename_hint").hide();
    		$("#middlenameCyr_error").show();
    	} else
    		$("#middlenameCyr_error").hide();        		
	 });
	
	
	
	$(".enroll .hasHint, .enroll div.hasHint select").focus(function(){
		$(this).parents("td").next("td").children(".fieldError").hide();
    	$(this).parents("td").next("td").children(".hint").show();
    }); 
    $(".enroll .hasHint, .enroll div.hasHint select").blur(function(){
    	$(this).parents("td").next("td").children(".hint").hide();
    });
}

function clearFfpCardNumberBlock(){
	
	$("#ffpEnrollment_form_cardNumber").val("");
	$("#cardNumberId").text("");
	$("#cardInput").show();
	$("#cardSaved").hide();
}

function addExpirePassport() {
	   var year = $("#birthDateYear").val();
	   var month = $("#birthDateMonth").val();
	   var day = $("#birthDateDay").val();
	   if (year == "" || day == "")
		   return;//user has not entered birthdate
	   var date = new Date();
	   var age = date.getFullYear() - year;
	   if( month > date.getMonth() || (month == date.getMonth() && date.getDate() < day)) {
		   age = age - 1;
	   } 
	   
	   var expYear;
	   try {
	     if(_passposrtIsBirthSertificate("passportDescription option:selected")){
	        month = parseInt(date.getMonth());
		day = parseInt(date.getDate());
		expYear = 2 + parseInt(date.getFullYear());
	     }	
	     else if( age >= 45 ) {
	         expYear = 110 + parseInt(year);
	     } else if (age >= 20){
	         expYear = 45 + parseInt(year);		       
	     } else {
	         expYear = 20 + parseInt(year);			   
	     } 
	   } catch(e) {
	   }
	   //userEnteredDate = document.getElementById(expiryDateField).value; TODO

    $("#expireDateDay").val(day);
    $("#expireDateMonth").val(month);
    $("#expireDateYear").val(expYear);
}

function expPassport( ) {
	//var name= "#"+expiryDateField;

	if(_passposrtIsBirthSertificate("passportDescription option:selected")){
		$("#passportRange").hide();
		$("#passportCountry").val('RU');
		$("#passportCountryBlock").hide();

		addExpirePassport();

		$("#passportExp select").attr("disabled","disabled");
		$("#passportExp select").attr("readonly","true");

		$("#passportNo").css("width","210px");
		$("#passportNo").attr("maxlength","6");

		$("#passportSeriesText").hide();
		$("#passportNumberText").show();               

		return;
	}else{   
		$("#passportNo").css("width","130px"); 
		$("#passportNo").attr("maxlength","10");
		$("#passportRange").show();
		$("#passportCountryBlock").show();
		$("#passportSeriesText").show();
		$("#passportNumberText").hide();

	}
	
	if($("#passportCountry").val() == 'RU') {
		if($("#passportDescription").attr("selectedIndex") == 0) {//
			addExpirePassport();
		//	$("#passportExp select").attr("disabled","disabled");
			$("#passportExp select").attr("readonly","true");
			$("#passportCountryBlock").show();
    		return;	
		}
		$("#passportDescription").removeAttr('disabled');
		
	}  else {
		$("#passportDescription").attr("selectedIndex",1);
	//	$("#passportDescription").attr("disabled",'disabled');
	} 


	//document.getElementById(expiryDateField).value = userEnteredDate;TODO
	//document.getElementById(expiryDateField).readOnly = '';
//	$("#passportExp select").removeAttr("disabled");
	$("#passportExp select").removeAttr("readonly");
}

function _passposrtIsBirthSertificate(){
	return _passposrtIsBirthSertificate("passportDescription option:selected");
}


function _passposrtIsBirthSertificate(id){
	return $("#"+id).val().indexOf('видетельство')>0 || $("#"+id).val().indexOf('certificate')>0;
}


function showFirstPhone(){
	$("#addPhoneLink").hide();
	showPhone('first');
}

function addFirstPhone(){
	addPhone('first');
	$("#first" + $(".phoneTypeRadio :checked").val() + "Text").show();
}

function setPhoneType(){
	$(".firstPhone .used a").show();
	$("#add" + $(".phoneTypeRadio :checked").val()+"Link").hide();
}

function showSecondPhone(){
	$(".firstPhone .used.link").hide();
	showPhone('second');
}

function showPhone(phone){
	$("."+phone+"Phone").show();
	$("."+phone+"Phone .used").hide();
	$("."+phone+"Phone").addClass("dark");
	$("."+phone+"Phone .phoneType span").hide();
	$("#"+phone+"DefaultText").show();
}

function addSecondPhone(){
	addPhone('second');
	$("#second" + $(".phoneTypeRadio input").not(":checked").val() + "Text").show();
}

function addPhone(phone){
	$("."+phone +"Phone .unused, ."+phone +"Phone.unused").hide();
	$("."+phone +"Phone .used").show();
	$("."+phone +"Phone").removeClass("dark");
	$("."+phone +"Phone .phoneType span").hide();
	$("p." + phone + "PhonePref").show();
}

function hidePhone(phone){
	$("p." + phone + "PhonePref").hide();
	if (phone=='first' && $("tr.secondPhone:visible").length == 1) {
		//copy from second to first
		$(".firstPhone select").val($(".secondPhone select").val());
		$("#phoneFirstAreaCode").val($("#phoneSecondAreaCode").val());
		$("#phoneFirstNumber").val($("#phoneSecondNumber").val());
		var prevValue = $(".phoneTypeRadio input:checked").val();
		$(".phoneTypeRadio input").not(":checked").attr("checked","checked");
		$(".phoneTypeRadio input#ffpEnrollment_form_phone_type"+prevValue).removeAttr("checked");
		if ($(".phoneTypeRadio input:checked").val() == $("#preferredPhoneTr input:checked").val()) {
			$(".preferIcon").attr("src","../images/icons/notprefer.png");
			$(".firstPhone .preferIcon").attr("src","../images/icons/prefer.png");			
		} 
		setPhoneType();
		$("tr.firstPhone td.label.phoneType span").hide();
		$("#first" + $(".phoneTypeRadio :checked").val() + "Text").show(); 
		hidePhone('second');
		return;
	}	
	clearInfo(phone);
	if (phone=='second')
		$(".firstPhone .used").show();
	if (phone=='first')
		$("#addPhoneLink").show();
	$("."+phone+"Phone").hide();
	if ((phone=='second' && $("#preferredPhoneTr input:checked").val() == $(".phoneTypeRadio input").not(":checked").val()) ||
			(phone=='first' && $("#preferredPhoneTr input:checked").val() == $(".phoneTypeRadio input:checked").val()) ) {
		$("#preferredPhoneTr input").removeAttr("checked");
		$("#preferredPhoneTr input#preferredPhoneM").attr("checked", "checked");
		$(".preferIcon").attr("src","../images/icons/notprefer.png");
		$(".mobilePhone .preferIcon").attr("src","../images/icons/prefer.png");
	} 
	setupPhone();
}

function clearInfo(phone) {
	var className=phone+"Phone";
	$("."+className + " select, ."+className + " input:text").val("");

	$("#phoneFirstCountryCode").val("7");
	$("#phoneSecondCountryCode").val("7");
}

function doPreferPhone(phone){
	$(".preferIcon").attr("src","../images/icons/notprefer.png");
	$("."+phone+"Phone .preferIcon").attr("src","../images/icons/prefer.png");
	$("#preferredPhoneTr input:checked").removeAttr("checked");
	var prefPhType="M";//by default
	
	if (phone=='first') {
		prefPhType = $(".phoneTypeRadio input:checked").val();
	}
	if (phone=='second') {
		prefPhType = $(".phoneTypeRadio input").not(":checked").val();
	}
	$("#preferredPhone"+prefPhType).attr("checked","checked");
	setupPhone();
}

function getAnotherCaptcha(){
	//$("#captcha").addClass("processing");
	var date = new Date();
	$("img.captcha").attr("src","/servlet/kaptcha" + '?v=' + date.getTime());
}

function showPreferrableBlock(){
	if ($("tr.preferrableOptions:visible").length==0) {
		$("tr.preferrableOptions").show();
	} else {
		$("tr.preferrableOptions").hide();
	}
}

function setupPhone() {
	var phone = 'Mobile';
	var prefPhone= $("#preferredPhoneTr input:checked").val();
	if (prefPhone != 'M') {//B or H
		if (prefPhone == $("td.phoneTypeRadio input:checked").val()) {
			phone = 'First';
		}
		if (prefPhone == $("td.phoneTypeRadio input").not(":checked").val()) {
			phone = 'Second';
		}
	} 
	
	var prefCallPhone = "+"+$("#phone" + phone + "CountryCode").val() + "-"+$("#phone" + phone + "AreaCode").val()+"-"+$("#phone" + phone + "Number").val();
	var prefMobilePhone = "+"+$("#phoneMobileCountryCode").val() + "-"+$("#phoneMobileAreaCode").val()+"-"+$("#phoneMobileNumber").val();
	
	$("p span#prefCallPhone").html(addBrsToLongText(prefCallPhone,11));
	$("p span#prefMobilePhone").html(addBrsToLongText(prefMobilePhone,11));
}

function setupEmail(){
	var emailText = addBrsToLongText($("#email").val(),28);
	$("span#prefEmail").html(emailText);
}


function addBrsToLongText(longText, count){
    var maxWidth=count;
    var result = "<br/>";
    var j=0;

    for(var i=0;i<longText.length;++i){
	result += longText.charAt(i);
	++j;

	if( j>=maxWidth ){
	    result += '<br/>';
	    j=0;
	}
    }
    
    return result;
}



function initPhoneBlock(){
	var prefPhone= $("#preferredPhoneTr input:checked").val();
	var firstPhoneType = $("td.phoneTypeRadio input:checked").val();
	var secondPhoneType = $("td.phoneTypeRadio input").not(":checked").val();
	var isFirstPhoneAdded = $("#firstPhoneAdded").val();
	var isSecondPhoneAdded = $("#secondPhoneAdded").val();
	if (isFirstPhoneAdded == "true") {
		showFirstPhone();
		addFirstPhone();
		if (isSecondPhoneAdded == "true") {
			showSecondPhone();
			addSecondPhone();
		}
	} 
	var phone = "mobile";
	if (prefPhone != "M") {
		if (prefPhone == firstPhoneType)
			phone = "first";
		if (prefPhone == secondPhoneType)
			phone = "second";
	}
	
	$(".preferIcon").attr("src","../images/icons/notprefer.png");
	$("."+phone+"Phone .preferIcon").attr("src","../images/icons/prefer.png");
	
	setupPhone();
}

function refreshEnrollErrors() {
	$(".enroll tr").removeClass("tr-error");
	$(".enroll tr td.error-row div.fieldError:visible").parents(".enroll tr").addClass("tr-error");	
}


function checkBirthDate(){
	if ($("#birthDateYear").val() != "0" && $("#birthDateDay").val() != "0") {
		if (!_checkBirthDate('birthDate_error', 'birthDateYear','birthDateMonth', 'birthDateDay', 12, 100)) {
			showError("birthDate_error");	
		} else {
			hideError("birthDate_error");
		}
	}
}


function checkPassportRange(){
    if(_passposrtIsBirthSertificate("passportDescription option:selected")){
         if(_checkPassportPattern('passportNo', 'passportCountry', 'passportDescription', /^[0-9]{6}$/, /^[0-9]{7}$/, /^[a-zA-Z0-9]{6}$/)){
		hideError('passportRange_error');
   	 }else{
		showError('passportRange_error');
         }
		
    }else if ($("#passportCountry option:selected").val() == 'RU'&& _checkPassportPattern('passportRange', 'passportCountry', 'passportDescription', /^[0-9]{2,4}$/, /^[0-9]{2}$/, /^[a-zA-Z0-9]{4}$/)){
    	hideError('passportRange_error');    	
    }else if ($("#passportCountry option:selected").val() != 'RU'&& _checkPattern('passportRange', /^[a-zA-Z0-9]{1,10}$/)){
    	hideError('passportRange_error');    	
    }else {
    	showError('passportRange_error');
    }
}


function checkPassportNumber(){
    if ($("#passportCountry option:selected").val() == 'RU' && _checkPassportPattern('passportNo', 'passportCountry', 'passportDescription', /^[0-9]{6,7}$/, /^[0-9]{7}$/, /^[a-zA-Z0-9]{6}$/)){
    	hideError('passportNo_error');
    }else if ($("#passportCountry option:selected").val() != 'RU' && _checkPattern('passportNo', /^[a-zA-Z0-9]{1,10}$/)){
    	hideError('passportNo_error');
    }else{
    	showError('passportNo_error');
    }
}

function checkIssueDate() {
	if ($("#issueDateYear").val() != "0" && $("#issueDateDay").val() != "0") {
		if (!_checkDateAlt('issueDate', new Date(1900, 0, 0), new Date() )) {
			showError("passportBirthday_error");
		} else {
			hideError("passportBirthday_error");			
		}
	}
}

function showError(error) {
	$("#" + error).show();
	$("div#"+error).parents(".enroll tr").addClass("tr-error");
}

function hideError(error) {
	$("#" + error).hide();
	$("div#"+error).parents(".enroll tr").removeClass("tr-error");
}

function checkExpireDate() {
	if ($("#expireDateYear").val() != "0" && $("#expireDateDay").val() != "0") {
		if (!_checkDateAlt('expireDate', new Date(), nextDate ) ){  
			showError('passportExp_error');
		} else 
			hideError('passportExp_error');
	}
}

function checkMobileNumber() {
	if ($("#phoneMobileAreaCode").val()!="" && $("#phoneMobileNumber").val()!="" ) {
		
		if ($("#phoneMobileCountryCode").val() == '7' && _checkPattern('phoneMobileAreaCode',/^[0-9]{3}$/) && _checkPattern('phoneMobileNumber',/^[0-9]{7}$/) ) {
			hideError("phoneFormat_error");
		}
		else if($("#phoneMobileCountryCode").val() != '7'){
			hideError("phoneFormat_error");			

			var maxMobileNumberLength=15;
                        var mobileNumberLength= $("#phoneMobileCountryCode").val().length+
					$("#phoneMobileAreaCode").val().length+
					$("#phoneMobileNumber").val().length;
			if(mobileNumberLength<=maxMobileNumberLength){
				hideError("phoneExceedsMaxLength");
			}
			else{
				showError("phoneExceedsMaxLength");
			}
			
		} 
		else{
			showError("phoneFormat_error");
		}
	}
}

function checkEmail(){
	if (_checkEmail('email')) {
		hideError("email_error");
	} else 
		showError("email_error");
}

function checkPassword(){
	
	if (_checkPasswordComplexity('ffpPass')) {
		hideError("ffpPass_error");
	} else
		showError("ffpPass_error");
   
}

function checkConfPassword(){

	if (_checkEquals('ffpPassConfirm',"$('#ffpPass')[0].value" )) {
		hideError("ffpPassConfirm_error");
	} else
		showError("ffpPassConfirm_error");   
	
}



function setPriceForRoute(airportPricesList){
    $("#price *").remove();

    var orig = $("#origin_timetable").val();
    var dest = $("#destination_timetable").val();
    var journeyTypeIdx = $('#div_timetable input:radio:checked').val();

    var journeyType = "1";
    if(journeyTypeIdx == 'OW'){
	journeyType = "1";			
	}else{
	journeyType = "2";
    }


    var price ="";
    var calcAllowed = true;

    var params =[ $("#from_timetable").val(), $("#to_timetable").val() ];

    for (var j=0;j<params.length;j++){
	if( params[j]=="" || params[j]==null ){
	calcAllowed = false;
	break;
	}
    }
    if(calcAllowed){
	for (var i=0;i<airportPricesList.length;i++) {
		currentOrig = airportPricesList[i][0];
		currentDest = airportPricesList[i][1];
		currentJourneyType = airportPricesList[i][2];

		if( currentOrig==orig && currentDest==dest && currentJourneyType==journeyType ){
			price = airportPricesList[i][3]+" "+airportPricesList[i][4];
			break;
		}
	}

	$("#price").html(price);
    }
 /*   var selectedAirport   = $("#from_timetable").val();
    if( orig !=null && selectedAirport!=null ){
	doShowTable( orig );
    }*/
}


function doShowWebfaresTable(anchor) {
	var selectedAnchor = '';
	var all = $("div#ttable div");
	var displayMode = $("#citiesTable").css("display");
	
	all.hide();

	if (selectedAnchor.length != 0 && selectedAnchor != "ALL") {
		document.getElementById(selectedAnchor).style.display = 'none';
	} else if (selectedAnchor.length != 0 && selectedAnchor == "ALL") {
		document.getElementById("tButton").style.display = 'none';
		for (var i = 0; i < all.length; i++) {
			document.getElementById(all[i].id).style.display = 'none';
		}						
	}

					 
	if (anchor == 'ALL') {
		
		if(displayMode == "none"){
			$("#citiesTable").show();
		}
		else{
			$("#citiesTable").hide();
		}

		if (document.getElementById("tButton")){
			document.getElementById("tButton").style.display = '';
		}
	} else {
		document.getElementById(anchor).style.display = 'block';
	}
	selectedAnchor = anchor;
}

function showPostcodeHint(countryCode){
/*
	if (typeof(postcodePatterns) != "undefined") {
		$("#zipPatternHint *").remove();

		var pattern = postcodePatterns[countryCode];
		if(typeof(pattern) != "undefined" && pattern != null){
			$("#zipHintPopup").show();
			$("#zipPatternHint").html(pattern);
		}else{
			$("#zipHintPopup").hide();
		}
	}
*/
}

function getRandomFares(){
	var result = "<ul class='flight_list'>";

	var faresCount = 9;
	var minIdx = 0;
	var maxIdx = 0;
	
	$.each(airportSpringPricesList, function(index, value) {maxIdx++;});
		
	var now = new Date();
	var randomIndexesArray = new Array();
	
	for( var i=0;i<faresCount;i++ ){randomIndexesArray[i] = Math.floor( Math.random() * (maxIdx - minIdx) ) + minIdx;}
	
	$.each(randomIndexesArray, function(index, value) {
		var randomIndex = randomIndexesArray[index];
		var ibeLink = getIBESpringLink(airportSpringPricesList[randomIndex][0],
					airportSpringPricesList[randomIndex][1],
					airportSpringPricesList[randomIndex][2]);

        	result+="<li><span class='flight_city'>";
	        result+=airportSpringPricesList[randomIndex][5];
        	result+="</span><span class='flight_direction fd_";
	        result+=airportSpringPricesList[randomIndex][2];
        	result+="'>&nbsp;</span><span class='flight_city'>";
	        result+=airportSpringPricesList[randomIndex][6];
	        result+="</span><div class='f_price fp_t_";
		result+=index+1;
		result+="'><a href='";
		result+=ibeLink;
		result+="'>";
	        result+=getCurrency(airportSpringPricesList[randomIndex][3], airportSpringPricesList[randomIndex][4]);
	        result+="</a></div></li>";
	});


	return result;
}

function getIBESpringOnClick(origin,dest,journeyType){

	var ibeLink = "'"+getIBESpringLink(origin,dest,journeyType)+"'";


	ibeLink+="if(typeof(pageTracker)=='undefined') { javascript:location.href=link;} else { pageTracker._trackPageview('/ru/best_fares/MOW_KUF_MOW');";
	ibeLink+="javascript:location.href=link;";

        return ibeLink;
}


function getIBESpringLink(origin,dest,journeyTypeId){

	var journeyType = "OW";
	if(journeyTypeId==2){
		journeyType = "RT";
	}

	var now = new Date();

        now.setMonth(now.getMonth()+1);
        var departureDate = formatDate(now);
	now.setMonth(now.getMonth()+1);	
	var returnDate = formatDate(now);

	var ibeLink = "http://dev.s7.ru:7220/servlet/ticketForward?searchOrigin=HOMEPAGE_special_offers&searchType=PROMO&";

	ibeLink+="journeySpan=";
	ibeLink+=journeyType
	ibeLink+="&origin=";
	ibeLink+=origin;
	ibeLink+="&destination=";
	ibeLink+=dest;
	ibeLink+="&departureDate=";
	ibeLink+=departureDate;
	ibeLink+="&returnDate=";
	ibeLink+=returnDate;
	ibeLink+="&cabinClass=&numAdults=1&numChildren=0&numInfants=0&lang=ru";

        return ibeLink;
}

function formatDate(now){
	
	var month = now.getMonth()+1;
	var day = now.getDate();

	if(month<10){
		month="0"+month;
	}
	if(day<10){
		day="0"+day;
	}


	return now.getFullYear()+"-"+month+"-"+day;
}


function getCurrency( currencyValue, currencyCode ){
	var result = "";
	/*if(currencyCode=="RUB"){
		result = "<span class='money rouble'>"+currencyValue+"</span>";
	}
	else if(currencyCode=="USD"){
		result = "<span class='money dollar'>"+currencyValue+"</span>";
	}
	else if(currencyCode=="EUR"){
		result = "<span class='money euro'>"+currencyValue+"</span>";
	}
	else{*/
		result = currencyValue+"&nbsp;"+currencyCode;
	//}

	return result;
}

function clickToCall(isFfp){
	if(isFfp){
		return zingayaWebCall('c0a0fc8a8882dc6572998e0004a0a97a',true);
	}else{
		return zingayaWebCall('0e17b463d7825f2b17582a8d2fcfca6d',true);
	}
}

function drawTagCloud(){

    var list = "<div id='tags_cloud_wrapper' >";

    for (var i=0;i<tagsList.length;i++) {
	list += "<a style='color:white; font-size:"+tagsList[i][2]+"px;' href='"+tagsList[i][1]+"'>"+tagsList[i][0]+"</a>";
    }

    list += "</div>";

    $("#tagCloud").html(list);
    /*
    $("#tagCloud ul li").each(function(index,element){
	var marginLeft = rand(100);
	$(element).css( "margin-left",marginLeft );
     });
*/
}

function rand(n){
    return Math.floor(Math.random()*n);
}

function translit( sourceString ){
	var ru2en = {
  		ru_str : "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя",
  		en_str : ['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','SHCH','','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','shch','','y','','e','yu','ya'],

        translit : function(inp_str) {
        	var tmp_str = [];
    		for(var i = 0, l = inp_str.length; i < l; i++) {
    	    	var s = inp_str.charAt(i), n = this.ru_str.indexOf(s);
    	        if (n >= 0) { tmp_str[tmp_str.length] = this.en_str[n]; }
    	        else { tmp_str[tmp_str.length] = s; }
    	    }
            return tmp_str.join("");
	    },
        
        norm : function(tran_str, sign) {
            var tmp = "";
            if (tran_str.length > 0) {
            	var re = /[- ]/;
            	var arr = tran_str.split(re);
                for (var i = 0; i < arr.length; i++) {
                	str = arr[i];
                    if (str != null && str != '') {
                    	tmp += str.charAt(0).toUpperCase() + str.substring(1, str.length).toLowerCase();
                        if (sign) {tmp += "-";}
                    }
                }
            }
            if (sign) { return tmp.substring(0, tmp.length - 1);}
            else return tmp;
	    },

	    removeMinus : function(tran_str) {
            return tran_str.replace(/[^a-zA-Z]+/,"");
	    }
        
	}

	return encodeURIComponent(ru2en.translit(sourceString));
}

function resizeLeftBlock(){
	/*var h = $("#main").height();
	$("#leftTable").height(h);*/

	setTimeout(function(){ 
			$("#leftTable").height($(".central_column1").height()); 
		},100);


	$(".central_column1").mouseup(function(){
		setTimeout(function(){
		$("#leftTable").height($(".central_column1").height());
		},100);
	});
}        

function resizeLeftBlock2(){
	var h = $("#leftColumnWrapper").height();
	$("#leftTable").height(h);

	$("#centerContentDiv").mouseup(function(){
	    setTimeout(function(){
		$("#leftTable").height($("#centerColumnWrapper").height());
	    },100);
	});

}

function saveForm(formName) {
	var form = document.forms[formName];
	if (typeof(form) == 'undefined') {
		return;
	}
	
	for (var i = 0; i < form.elements.length; i++) {
		var elem = form.elements[i];
		if (elem != null) {
			setCookie(elem.id, elem.value, false, MILLIS_IN_10_DAYS);
		}
	}
} 

function restoreForm(formName) {
	var form = document.forms[formName];
	if (typeof(form) == 'undefined') {
		return;
	}
	
	for (var i = 0; i < form.elements.length; i++) {
		var elem = form.elements[i];
		if (elem != null) {
			var value = getCookie(elem.id);
			if ((value != null) && (value != "undefined") && (value != "")) {
				elem.value = value;
			}
		}
	}
}

