﻿Type.registerNamespace("Finatica");
Type.registerNamespace("Finatica.Registration");
if (typeof (Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

Finatica.Registration.checkCompanyPage = function () {
	if ($("#" + Finatica.Registration.tbCompanyPageName).val().length == 0) {
		$("#" + Finatica.Registration.tbCompanyPageName).parent().find("p > span").text(' www.finatica.ru/compamies/MyCompany');
		return;
	}
	var regServiceProxy = new Finatica.WebServices.ValidationHelper();
	var result = regServiceProxy.ValidatePageName($("#" + Finatica.Registration.tbCompanyPageName).val(), Finatica.Registration.OnServiceSuccess, Finatica.Registration.OnServiceFail);
}

Finatica.Registration.checkEmail = function () {
	var email = $("#" + Finatica.Registration.tbEmail).val();
	if (email.length == 0)
		return;
	$('span.emailcheck').text(email);
	var regServiceProxy = new Finatica.WebServices.ValidationHelper();
	var result = regServiceProxy.ValidateUserEmail(email, Finatica.Registration.OnServiceSuccess, Finatica.Registration.OnServiceFail);
}

Finatica.Registration.checkDisplayName = function () {
	if ($("#" + Finatica.Registration.tbDisplayName).val().length == 0)
		return;
	var regServiceProxy = new Finatica.WebServices.ValidationHelper();
	var result = regServiceProxy.ValidateNickName($("#" + Finatica.Registration.tbDisplayName).val(), Finatica.Registration.OnServiceSuccess, Finatica.Registration.OnServiceFail);
}

Finatica.Registration.tabSelecting = function (sender, args) {
	return false;
	//	var value = args.get_tab().get_value();
	//	args.set_cancel((value = "2" || value == "3") && $("#" + Finatica.Registration.cbRegisterCompany).is(":checked") == false && Finatica.Registration.regViaLink == false)		
}


Finatica.Registration.regionsSearch = function (sender, args) {
	var proxy = new Finatica.WebServices.HDictionaryService();
	var value = args.get_item().get_value();
	var text = args.get_item().get_text();
	if (value != null && value.length == 36)
		proxy.GetCountryByCity(value, Finatica.Registration.OnServiceSuccess);
}

Finatica.Registration.tabSelected = function (sender, args) {
	var value = args.get_tab().get_value();

	$("#" + Finatica.Registration.btnFwd).removeAttr('disabled');
	$("#" + Finatica.Registration.btnBack).removeAttr('disabled');
	$("#" + Finatica.Registration.btnCancel).val('Отмена');

	$("div.step1").remove();
	var header = value != "4" ? Finatica.Registration.miniHelp[0] : "<h2>Важная информация</h2>";
	$("div.minihelp").html(header + Finatica.Registration.miniHelp[Number(value)]);

	if (value == 1) {
		$("#" + Finatica.Registration.btnBack).attr("disabled", "true");
		$("#" + Finatica.Registration.btnFwd).removeAttr('disabled');
		$("div.minihelp").before("<div class=\"minihelp step1\">" + Finatica.Registration.miniHelp[6] + "</div>");
		return;
	}
	if (value == 5) {
		$("#" + Finatica.Registration.btnBack).removeAttr('disabled');
		$("#" + Finatica.Registration.btnFwd).attr("disabled", "true");
		$("#" + Finatica.Registration.btnCancel).val('Готово');
		return;
	}
}

Finatica.Registration.OnDictionaryLoaded = function () { alert('xczxczxcxcvxcv'); }

Finatica.Registration.stepBack = function () {
	try {
		var tabs = $find(Finatica.Registration.rtsTabs);
		var value = tabs.get_selectedTab().get_value();
		if (Number(value) > 1) {
			if (value == "4") {
				if ($("#" + Finatica.Registration.cbRegisterCompany).is(":checked") == false) {
					tabs.findTabByValue(value - 3).select();
					return false;
				}
			}

			if (value == '4' && ($("#" + Finatica.Registration.hdnJoin).val().length > 0 || Finatica.Registration.regViaLink == true)) {
				tabs.findTabByValue(2).select();
				return false;
			}

			tabs.findTabByValue(value - 1).select();
		}
	} catch (e)
	{ alert(e); }
	return false;
}

Finatica.Registration.stepFwd = function () {
	var tabs = $find(Finatica.Registration.rtsTabs);
	var value = tabs.get_selectedTab().get_value();
	if (value < 5) {
		switch (value) {
			case "1":
				if ($find(Finatica.Registration.vmTab1).getIsValid() == false) return false;
				break;
			case "2":
				if ((Finatica.Registration.regViaLink == true)) {
					if ($find(Finatica.Registration.vmRegViaLink).getIsValid() == false) return false;
				}
				else
					if ($("#" + Finatica.Registration.hdnJoin).val().length == 0 && $find(Finatica.Registration.vmTab2).getIsValid() == false) return false;
				break;
			case "3":
				if ($("#" + Finatica.Registration.hdnJoin).val().length == 0 && ($find(Finatica.Registration.finMD).isValid() == false || $find(Finatica.Registration.finMDExtender).isValid() == false)) return false;
				break;
			case "4":
				if ($find(Finatica.Registration.vmTab4).getIsValid() == false) return false;
				break;
		}

		$("div.notificator.alert").remove();

		var nextValue = Number(value) + 1;
		if (value == '1') {
			if (Finatica.Registration.regViaLink == false && $("#" + Finatica.Registration.cbRegisterCompany).is(":checked") == false)
				nextValue = Number(value) + 3;
			else
				if ($("#" + Finatica.Registration.cbRegisterCompany).is(":checked") && $find(Finatica.Registration.rtsTabs).get_allTabs()[1].get_enabled() == false)
					return true;
		}

		if (value == '2' && ($("#" + Finatica.Registration.hdnJoin).val().length > 0 || Finatica.Registration.regViaLink == true))
			nextValue = 4;


		var nextTab = tabs.findTabByValue(nextValue);
		if (nextTab != null) {
			nextTab.enable();
			nextTab.select();
			return false;
		}
	}
	return true;
}

Finatica.Registration.cancel = function () {
	var tab = $find(Finatica.Registration.rtsTabs).get_selectedTab();
	var value = tab.get_value();
	if (value == "5") return true;

	if ((value == "2" || value == "3") && $('#' + Finatica.Registration.hdnJoin).val().length > 0) {
		$('#' + Finatica.Registration.hdnJoin).val('');
		$("div.companyInfo").show();
		$("div.companySectors").show();
		$("#" + Finatica.Registration.cbRegisterCompany).removeAttr("disabled");
		$("p.pJoin").remove();
		$("div.simcompanies > div.highlighted").remove();
		$find(Finatica.Registration.rtsTabs).get_allTabs()[2].set_visible(true);
		$find(Finatica.Registration.rtsTabs).get_allTabs()[3].set_text("Шаг четвертый");
		return false;
	}


	var element = tab.get_pageView().get_element();
	$(element).find('input[type=text],input[type=hidden]').val('');
	$(element).find('select').val("Не выбрано...");
	$(element).find('input[type=checkbox], input[type=radio]').attr('checked', false);

	if (value == "2") {
		var description = $find(Finatica.Registration.teDescription);
		if (description != null)
			description.set_html('');
		else
			$('#' + Finatica.Registration.tbRegCorpEmail).removeAttr('readonly');
	}

	return false;
}

Finatica.Registration.OnServiceSuccess = function (result, usercontext, methodName) {
	if (methodName == "ValidateNickName" && !result) {
		$("#" + Finatica.Registration.tbDisplayName).val('');
		var info = new Object();
		info.ValidateMessage = "Введенный ник уже существует"
		$find(Finatica.Registration.vmTab1).createErrorMessage($("#" + Finatica.Registration.tbDisplayName).attr("id"), info);
	}

	if (methodName == "ValidateUserEmail" && !result) {
		$("#" + Finatica.Registration.tbEmail).val('');
		var info = new Object();
		info.ValidateMessage = "Введенный e-mail уже зарегистрирован"
		$find(Finatica.Registration.vmTab1).createErrorMessage($("#" + Finatica.Registration.tbEmail).attr("id"), info);
	}

	if (methodName == "ValidatePageName") {
		if (result) {
			$("#" + Finatica.Registration.tbCompanyPageName).parent().find("p > span").text(' www.finatica.ru/compamies/' + $("#" + Finatica.Registration.tbCompanyPageName).val());
			return;
		}
		$("#" + Finatica.Registration.tbCompanyPageName).val('');
		var info = new Object();
		info.ValidateMessage = "Такая страница уже зарегистрирована"
		$find(Finatica.Registration.vmTab1).createErrorMessage($("#" + Finatica.Registration.tbCompanyPageName).attr("id"), info);
	}

	if (methodName == "GetSimCompanies") {
		if (result.length > 0) {
			$("div.simcompanies").show();
			$("div.simcompanies > div.highlighted").remove();
			$("div.simcompanies").append(result);
		} else {
			$("div.simcompanies").hide();
		}
	}

	if (methodName == "GetCountryByCity" && result != null && result.length > 1) {
		$('#' + Finatica.Registration.tbCompanyCountry).val(result[0]);
		$('#' + Finatica.Registration.tbCompanyRegionRF).val(result[1] != null ? result[1] : "");
	}
}

Finatica.Registration.getSimCompanies = function () {
	if ($("#" + Finatica.Registration.tbCompanyName).val().length < 2)
		return;
	var regServiceProxy = new Finatica.WebServices.CompanyHelper();
	var result = regServiceProxy.GetSimCompanies($("#" + Finatica.Registration.tbCompanyName).val(), Finatica.Registration.OnServiceSuccess, Finatica.Registration.OnServiceFail);
}

Finatica.Registration.setJoinHidden = function (sender, compID) {

	var position = prompt("Введите вашу позицию в этой компании");
	if (position == null || position.length == 0)
		return;

	$('#' + Finatica.Registration.hdnJoin).val('<result><cid>' + compID.toString() + '</cid><position>' + position + '</position></result>');
	$("div.companyInfo").hide();
	$("div.companySectors").hide();
	$("#" + Finatica.Registration.cbRegisterCompany).attr('disabled', 'true');

	var companyLink = $(sender).parent().parent().find("a.linkComp");

	$("div.companyInfo").parent().append("<p class='pJoin'></p>");
	$("div.companySectors").parent().append("<p class='pJoin'></p>");

	$("p.pJoin").append("После подтверждения регистрации, ваша заявка на присоединение будет отправлена администратору компании ");
	$("p.pJoin").append(companyLink.clone());
	$("p.pJoin").append(".</p>");

	var tabs = $find(Finatica.Registration.rtsTabs).get_allTabs();
	tabs[2].set_visible(false);
	tabs[3].set_text("Шаг третий");
}

Finatica.Registration.copyEmail = function () {
	var corpEmail = $('#' + Finatica.Registration.tbRegCorpEmail);
	if ($('#cbSameAsMain').is(":checked") == true) {
		var email = $('#' + Finatica.Registration.tbEmail).val();
		if (email.length > 0) {
			corpEmail.val(email);
			corpEmail.attr('readonly', 'readonly');
			corpEmail.parent().find("label > span.error").remove();
		}
		else { $('#cbSameAsMain').removeAttr('checked'); }

	}
	else {
		corpEmail.removeAttr('readonly');
	}
}

Finatica.Registration.OnTabStripLoad = function (sender) {
	var value = sender.get_selectedTab().get_value();
	$("div.minihelp").html(Finatica.Registration.miniHelp[0] + Finatica.Registration.miniHelp[Number(value)]);
	$("div.step1").remove();
	if (value == 1) {
		$("div.minihelp").before("<div class=\"minihelp step1\">" + Finatica.Registration.miniHelp[6] + "</div>");
		$("#" + Finatica.Registration.btnBack).attr("disabled", "true");
	}
}

Finatica.Registration.daysInMonth = function (month, year) {
	return new Date(year, month, 0).getDate();
}

Finatica.Registration.monthChanged = function () {
	var month = $('#' + Finatica.Registration.ddlMonth + ' option:selected').val();
	var year = $find(Finatica.Registration.rntbYear).get_value();
	if (year == 1920)
		$find(Finatica.Registration.rntbYear).set_value('');
	var days = $('#' + Finatica.Registration.ddlDay + ' option');
	var daysInMonth = Finatica.Registration.daysInMonth(month, year);

	$('#' + Finatica.Registration.ddlDay).html('');
	var options = '';
	for (var i = 1; i <= daysInMonth; i++) {
		options += "<option>";
		options += i;
		options += "</option>";
	}
	$('#' + Finatica.Registration.ddlDay).append(options);
}

Finatica.Registration.registerCompanyChanged = function () {
	var checked = $("#" + Finatica.Registration.cbRegisterCompany).is(":checked");
	var tabs = $find(Finatica.Registration.rtsTabs).get_allTabs();
	if (checked == true) {
		$(tabs[1].get_element()).find('a').show();
		$(tabs[2].get_element()).find('a').show();
		tabs[3].set_text("Шаг четвертый");
	}
	else {
		$(tabs[1].get_element()).find('a').hide();
		$(tabs[2].get_element()).find('a').hide();
		tabs[3].set_text("Шаг второй");
	}
}

$(document).ready(function () {
	Finatica.Registration.displName = $("#" + Finatica.Registration.tbDisplayName).val();
	$('input[type=text]').bind('focus', Finatica.Registration.showInfo);
});

Finatica.Registration.checkDisplNameOnEdit = function () {
	if ($("#" + Finatica.Registration.tbDisplayName).val() != Finatica.Registration.displName)
		Finatica.Registration.checkDisplayName();
	else
		$find(Finatica.Registration.vmTab1).removeErrorMessage($("#" + Finatica.Registration.tbDisplayName).attr("id"));
}

Finatica.Registration.showInfo = function (e) {
	var sender = e.currentTarget;
	if ($(sender).hasClass('rcbInput') == true) {
		sender = $(sender).parent().parent().parent().parent().parent();
	}
	$("div.reg-notif-container").hide();
	var helpText = $(sender).parent().find("div.help input[type=hidden]").val();
	if (helpText != null && helpText != '') {
		$("div.reg-info").html(helpText);
		$("div.reg-notif-container").show();
		var top = $(sender).offset().top - $(".reg-table").offset().top;
		var divHeight = $("div.reg-notif-container").height();
		var tableHeihgt = $(".reg-table").height();

		top -= tableHeihgt / 2;

		if (top - divHeight / 2 < -tableHeihgt / 2) {
			top = top + divHeight / 2;
		}

		$("div.reg-notif-container").css("top", top.toString() + "px");
	}
}

Finatica.Registration.hideInfo = function () {
	$("div.reg-notif-container").hide();
}

Finatica.Registration.radShowInfo = function (sender) {
	Finatica.Registration.showInfo($("div#" + sender.get_id()));
}

Finatica.Registration.openPopup = function () {
	$(".overlayShadow").show();
	$('div.RegLog').fadeIn('slow');
}

Finatica.Registration.closePopup = function () {
	if ($('.firstStep').css('display') == "block" || $('.divReg').css('display') == "block")
		Finatica.Registration.setShowRegPopupCookie(false);
	if ($('.divComp').css('display') == "block")
		Finatica.Registration.setShowCompPopupCookie(false);
	$('div.RegLog').fadeOut('slow');
	$(".overlayShadow").hide();
}

Finatica.Registration.setShowRegPopupCookie = function (value) {
	$.cookie('showRegPopup', value, { expires: 365, path: "/", domain: "finatica.ru", secure: true });
}

Finatica.Registration.getShowRegPopupCookie = function () {
	return $.cookie('showRegPopup') == undefined || $.cookie('showRegPopup') == null || $.cookie('showRegPopup') == 'true';
}

Finatica.Registration.setShowCompPopupCookie = function (value) {
	$.cookie('showCompPopup', value, { expires: 365,  path: "/",  domain: "finatica.ru", secure: true});
}

Finatica.Registration.getShowCompPopupCookie = function () {
	return $.cookie('showCompPopup') == undefined || $.cookie('showCompPopup') == null || $.cookie('showCompPopup') == 'true';
}

Finatica.Registration.checkLoginInfo = function (postBackTarget) {
	if ($(".loginPopupUsernameInput").val() == '') { $find(Finatica.Common.NotificatorID).addMessage('alert', 'Не введен e-mail', 3000); return false; }
	if ($(".loginPopupPasswordInput").val() == '') { $find(Finatica.Common.NotificatorID).addMessage('alert', 'Не введен пароль', 3000); return false; }

	var validationProxy = new Finatica.WebServices.ValidationHelper();
	validationProxy.TryLogIn($(".loginPopupUsernameInput").val(), $(".loginPopupPasswordInput").val(), Finatica.Head.onServiceSucceeded, Finatica.Head.onFail, postBackTarget);
}

Finatica.Registration.showRegister = function () {
	$("div.divReg").height(280);
	$("div.RegLog").height(350);
	$("div.firstStep").fadeOut("slow", function () { $("div.divReg").fadeIn("slow"); });
}

$(document).ready(function () {
	if (
	(($('.firstStep').css('display') == "block" || $('.divReg').css('display') == "block") && Finatica.Registration.getShowRegPopupCookie() == true) || $('.divComp').css('display') == "block")
		Finatica.Registration.openPopup();
	shortcut.add('esc', function () { $('.similarCompanies').hide(); });
	//$('.RegLog').click(function () { $('.similarCompanies').hide() });
});

Finatica.Registration.registerSimilarComp = function () {
	shortcut.add('space', function () { Finatica.Registration.checkSimilarComp(); $('.tbCompName').val($('.tbCompName').val() + ' '); });
}

Finatica.Registration.checkSimilarComp = function () {
	var filter = {
		description:"",
		itemsOnPage: 20,
		pageNumber: 1,
		optionEnabled: false,
		description: "",
		regions: "",
		sectors: "",
		goods: "",
		legformDDL: null,
		hasSite: false,
		buybusiness: false,
		sellbusiness: false,
		creditsale: false,
		creditbuy: false,
		investor: false,
		needinvestor: false,
		patnershipsearch: false,
		patnershipoffer: false
	};

	filter.description = $('.tbCompName').val(); 
	var filterParameters = Finatica.FindCompany.GetFilterXML(filter);
	Finatica.WebServices.CompanyHelper.GetSimilarCompanies(filterParameters, Finatica.Registration.userID, Finatica.Registration.OnSimSearchComplete);
}

Finatica.Registration.OnSimSearchComplete = function (result, usercontext, methodName) {
	if (result != null && result.length > 0) {
		$('.similarCompanies ul').html(result);
		$('.similarCompanies').show();
	}
	else { Finatica.Registration.removeSimilarComp(); }

}

Finatica.Registration.showSimInfo = function (sender) {
	var name = $(sender).find('span').html();
	$(sender).parent().find('div').show();
	$(sender).parent().prepend('<b>' + name + "</b>");
	$(sender).remove();
}

Finatica.Registration.removeSimilarComp = function () {
	$('.similarCompanies').hide();
}


Finatica.Registration.joinSim = function (userID, compID) {
	position = $.trim(prompt("Введите вашу позицию в этой компании"));
	if (position == null || position.length == 0)
		return;

	var joinCompanyServiceProxy = new Finatica.WebServices.CompanyHelper();
	joinCompanyServiceProxy.JoinCompany(compID, true, position, Finatica.Registration.OnJoinSucceeded);
	
}

Finatica.Registration.OnJoinSucceeded = function () {
	Finatica.Registration.closePopup();
	$find(Finatica.Common.NotificatorID).addMessage('success', 'Вы успешно присоединились к компании');
}
