﻿var Utils = function() {

	this.findPosY = function(obj) {
		var posTop = 0;
		while (obj.offsetParent) { posTop += obj.offsetTop; obj = obj.offsetParent; }
		return posTop;
	}

	this.findPosX = function(obj) {
		var posLeft = 0;
		while (obj.offsetParent) { posLeft += obj.offsetLeft; obj = obj.offsetParent; }
		return parseInt(posLeft) + 10;
	}

	this.getInputValue = function(input) {
		///<summary>Получить значение TextBox-а. Если оно равно значению Watermark-a - вернет пустую строку.</summary>
		if (!input)
			return '';

		if (input.MaskedEditBehavior && !input.MaskedEditBehavior.get_MaskDisabled()) {
			if (input.MaskedEditBehavior.get_ClearMaskOnLostFocus()) {
				return input.MaskedEditBehavior._getClearMask(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(input).get_Value());
			}
			else {
				if (input.MaskedEditBehavior._EmptyMask == AjaxControlToolkit.TextBoxWrapper.get_Wrapper(input).get_Value()) {
					return '';
				}
				else {
					return AjaxControlToolkit.TextBoxWrapper.get_Wrapper(input).get_Value();
				}
			}
		}
		if (input.TextBoxWatermarkBehavior) {
			return input.TextBoxWatermarkBehavior.get_Text();
		}
		return AjaxControlToolkit.TextBoxWrapper.get_Wrapper(input).get_Value();
	}

	this.getSelectValue = function(select) {
		var index = select.selectedIndex;
		return select.options[index].innerHTML;
	}

	this.getPassportValue = function(input) {
		if (!input)
			return '';
		var result = input.value;
		var seria = result.substring(0, 4);
		var nomer = result.substring(4);
		return seria + " " + nomer;
	}

	this.setInputValue = function(input, value) {
		///<summary>Установить значение TextBox-a</summary>
		if (!input)
			return;

		if (input.MaskedEditBehavior && !input.MaskedEditBehavior.get_MaskDisabled()) {
			input.MaskedEditBehavior.loadValue(value.toString(), input.MaskedEditBehavior._LogicFirstPos);
			input.MaskedEditBehavior._PeforformValidLostFocus(true);
		}
		else {
			AjaxControlToolkit.TextBoxWrapper.get_Wrapper(input).set_Value(value);
		}
	}

	this.insertSpaces = function(value) {
		///<summary>Через каждые три символа вставляет пробелы в числа.</summary>
		value = value.split('');
		var result = "";
		var j = 0;
		for (var i = value.length - 1; i >= 0; i--) {
			result = value[i] + result;
			j++;
			if (j == 3) {
				result = " " + result;
				j = 0;
			}
		}
		return result.trim();
	}

	this.replaceSpaces = function(value) {
		///<summary>Удаляет все пробелы из строки</summary>
		return value.replace(/\s+/g, '');
	}

	this.getEventSrcElement = function(e) {
		return null;
	}
}

function PopupKeyDownHandler(event, enterDelegate, escDelegate) {
    if (event.keyCode == Sys.UI.Key.enter)
        enterDelegate.call();
    else if (event.keyCode == Sys.UI.Key.esc && escDelegate != null)
        escDelegate.call();
}

function WrongChars() {
	alert('Пожалуйста, переключитесь на русский язык');
}

//Показываем промо баннер 
function ShowPopupBanner() {
	var div = $get('popupBannerFrameDiv');
	if (div) {
		if (div.childNodes.length == 0) {
			div.innerHTML = '<iframe frameborder="0" src="banner_popup/popup.html"></iframe>';			
		}
		div.style.display = 'block';
	}
	return false;
}

//Отправляем на страницу с ошибкой
function callServerError() {
	if (typeof (errorLink) != 'undefined' && errorLink) {
		document.location = errorLink;
	}
}

//Переводим значения в верхний регистр
function UpperCaseInput(input) {
	var util = new Utils();
	util.setInputValue(input, util.getInputValue(input).toUpperCase());
}

function IsPoliceCanSave(lasteditdate) {
    var dataChanged = false;
    $.ajax({
        type: "POST",
        async: false,
        url: "default.aspx/IsPoliceCanSave",
        data: "{'LastSaveDate' : '" + lasteditdate + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(ret) {
            dataChanged = ret.d;
        }
    });
    return dataChanged;
}

function SetLastEditDate() {
    $.ajax({
        type: "POST",
        url: "default.aspx/GetLastEditDate",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(ret) {
            $get(hLastEditDateId).value = ret.d;
        }
    });
}

function ConfirmDataChange() {
    var datachanged = IsPoliceCanSave($get(hLastEditDateId).value);
    if (!datachanged) {
        return answer = confirm("В расчет уже внесены данные. Сохранение введенных изменений приведет к потере указанной информации. Перезаписать?");
    }

    return true;
}