String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

function showRights() {
  var window = open("bookinginfo.jsp","dispwin","width=640,height=480,scrollbars=yes,menubar=no");
  window.focus();
}

function showUPT(fare,remark,ac) {
  var window = open("remark?fare="+fare+"&remark="+remark+"&ac="+ac,"uptpwin","width=640,height=480,scrollbars=yes,menubar=no");
  window.focus();
}

function showUPT2(variant, direction, flights, flight, price) {
  var window = open("remark?variant="+variant+"&direction="+direction+"&flights="+flights+"&flight="+flight+"&price="+price,"uptpwin","width=640,height=480,scrollbars=yes,menubar=no");
  window.focus();
}

function showHelpPage(alias) {
  var window = open("stepcomment?alias="+alias,"helppwin","width=640,height=480,scrollbars=yes,menubar=no");
  window.focus();
}

function showMap(salePointId) {
  var window = open("map?id="+salePointId,"mappwin","width=640,height=480,scrollbars=yes,menubar=no");
  window.focus();
}

function doUseBack() {
  var useBackElement = document.getElementById("useBack");
  var backDateElement = document.getElementById("backDate");

  if(useBackElement.checked) {
    backDateElement.disabled = "";
  } else {
    backDateElement.disabled = "disabled";
  }
}

function showCities(id) {
  var citiesWindow = window.open("info/cities.jsp?return="+id,"citiespwin","width=200,height=480,left=400,top=50,scrollbars=yes,menubar=no");
  citiesWindow.focus();
}


function showCountries(id) {
    var citiesWindow = window.open("lettered-countries?return="+id,"countriespwin","width=200,height=480,left=400,top=50,scrollbars=yes,menubar=no");
    citiesWindow.focus();
}

function showNotification(nowDate) {
    var clientNotificationWindow = window.open("partner/client-notification.jsp?nowDate="+nowDate, "clientWindow","width=800,height=600,left=0,top=0,scrollbars=yes,menubar=yes");
    var aircompanyNotificationWindow = window.open("partner/aircompany-notification.jsp?nowDate="+nowDate,"aircompanyWindow","width=800,height=600,left=0,top=0,scrollbars=yes,menubar=yes");
}

//показывает маршрут квитанцию
function showReceipt(nowDate) {
    var receiptWindow = window.open("receipt?nowDate="+nowDate, "clientWindow","width=800,height=600,left=0,top=0,scrollbars=yes,menubar=yes");
}

function showHtmlReceipt(pnr,lastName,passengerId) {
    var htmlReceiptWindow = window.open("receipt?type=html&pnr="+pnr+"&lastName="+lastName+"&passengerId="+passengerId, "clientWindow","width=640,height=600,left=0,top=0,scrollbars=yes,menubar=yes");
}

function isNumeric(text) {
    text = text.trim();
    var validChars = "0123456789";

    for (var i = 0; i < text.length; i++) {
        var ch = text.charAt(i);
        if (validChars.indexOf(ch) == -1) {
            return false;
        }
    }

    return true;
}

function showLinkedFlightInformation(prefix,flightchainId,type) {
    var window = open("timetable-linkedflightinfo?flightchainId="+flightchainId+"&prefix="+prefix+"&type="+type,"helppwin","width=800,height=200,scrollbars=yes,menubar=no");
    window.focus();
}

function showLinkedFlightInfoPricing(prefix) {
    var window = open("pricing-linkedflightinfo?prefix="+prefix,"helppwin","width=800,height=200,scrollbars=yes,menubar=no");
    window.focus();
}

function enableDivById(id) {
    var element = document.getElementById(id);
    if (element) {
        element.style.display = "block";
    }
}

function disableDivById(id) {
    var element = document.getElementById(id);
    if (element) {
        element.style.display = "none";
    }
}


function showTicketTypeInformation(prefix) {
    var window = open("ticket-type-info?prefix="+prefix,"helppwin","width=800,height=200,scrollbars=yes,menubar=no");
    window.focus();
}

function showRaidInfo(originCode,destinationCode,companyCode,raceNum,depatureDate) {
    var window = open("raidinfo?departureCode="+originCode +"&arrivalCode="+destinationCode+"&company="+companyCode+"&raceNum="+raceNum+"&date="+depatureDate, "helppwin","width=800,height=400,scrollbars=yes,menubar=no");
    window.focus();
}

/*function showHelpPage(alias) {
    var window = open("../info/help?alias="+alias,"dispwin","width=640,height=480,scrollbars=yes,menubar=no");
}

function showCitiesShedule(id) {
    var citiesWindow = window.open("../info/cities.jsp?return="+id,"citiespwin","width=200,height=480,left=400,top=50,scrollbars=yes,menubar=no");
    citiesWindow.focus();
}*/

function lockScreen() {
	var screenLocker = document.getElementById("screenLocker");
	if(!screenLocker) {
		screenLocker = document.createElement("div");
		screenLocker.className = "screenLocker";
		document.body.appendChild(screenLocker);
		if(lockScreenParameter && !Globals.isIE6()) {
			setElementOpacity(screenLocker, 0.5);
		}
		else {
			screenLocker.style.background = "none";
		}
	}
	screenLocker.style.display = "block";
	screenLocker.style.height = getDocumentHeight() + "px";
}

function unlockScreen() {
	var screenLocker = document.getElementById("screenLocker");
	if(screenLocker) {
		screenLocker.style.display = "none";
	}
}

function getDocumentHeight() {
  return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight, getViewportHeight());
}

function getViewportHeight() {
  return ((document.compatMode || Globals.isIE()) && !Globals.isOpera()) ? (document.compatMode == 'CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight : (document.parentWindow || document.defaultView).innerHeight;
}


function setElementOpacity(elem, nOpacity) {
  var opacityProp = getOpacityProperty();

  if (!elem || !opacityProp) return; // Если не существует элемент с указанным id или браузер не поддерживает ни один из известных функции способов управления прозрачностью

  if (opacityProp=="filter")  // Internet Exploder 5.5+
  {
    nOpacity *= 100;

    // Если уже установлена прозрачность, то меняем её через коллекцию filters, иначе добавляем прозрачность через style.filter
    var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
    if (oAlpha) oAlpha.opacity = nOpacity;
    else elem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")"; // Для того чтобы не затереть другие фильтры используем "+="
  }
  else // Другие браузеры
    elem.style[opacityProp] = nOpacity;
}

function getOpacityProperty()
{
  if (typeof document.body.style.opacity == 'string') // CSS3 compliant (Moz 1.7+, Safari 1.2+, Opera 9)
    return 'opacity';
  else if (typeof document.body.style.MozOpacity == 'string') // Mozilla 1.6 и младше, Firefox 0.8
    return 'MozOpacity';
  else if (typeof document.body.style.KhtmlOpacity == 'string') // Konqueror 3.1, Safari 1.1
    return 'KhtmlOpacity';
  else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) // Internet Exploder 5.5+
    return 'filter';

  return false; //нет прозрачности
}

function getJsonData(url) {
    var req = Spry.Utils.loadURL("GET", url, false, null, {headers: {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "accept-charset" : "utf-8"}});
    var data = {};
    var json = req.xhRequest.responseText;
    if(json) {
        eval("data = " + json);
    }
    return data;
}

function postJsonData(url, query) {
    var req = Spry.Utils.loadURL("POST", url, false, null, {postData: query, headers: {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "accept-charset" : "utf-8"}});
    var data = {};
    var json = req.xhRequest.responseText;
    if(json) {
        eval("data = " + json);
    }
    return data;
}


