﻿var escapeFeedbackChars = ['\\', '"'];

// appraiser("связаться с оценщиком")
function checkAndSendAppraiser(listingId) {
	var success = true;

	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var email = $("#mailFromAppriser").val();
	var name = $("#nameFromAppriser").val();
	var phone = $("#phoneFromAppriser").val();
	//var message = $("#feedbackMessage").val();
	if (name == ""
		|| containWrongSymbols(name)) {
		alert('Заполните поле "Ваше имя"'+getWrongCharsMsg());
		success = false;
	}
	else if (phone == ""
		|| containWrongSymbols(phone)) {
		alert('Введите номер телефона'+getWrongCharsMsg());
		success = false;
	}
	else if (email == "") {
		alert('Заполните поле "Email"');
		success = false;
	}
	else if (!reg.test(email)) {
		success = false;
		alert('поле "Email" должно иметь соответствующий формат');
	}

	if (success) {
		$('#contactAppraiserDialog').hide();
		//$("#feedbackMessage").val("");
		sendAppraiser(email, name, phone, listingId);
	}
}

function sendAppraiser(email, name, phone, listingId) {
	$.ajax({
		type: "POST",
		url: "../../WebServices/Notification.asmx/ContactAppraiser",
		contentType: "application/json; charset=utf-8",
		data: '{"email":"' + email + '",' +
				'"name":"' + name + '",' +
				'"phone":"' + phone + '",' +
				'"listingId":"' + listingId + '"}',
				//'"message":"' + message + '",' + '"}',
		dataType: "json",
		success: sendAppraiserSuccess,
		error: sendAppraiserError
	});
}

function sendAppraiserSuccess(dataObj) {
	var data = dataObj.d;
	if (data.IsSuccess)
		alert(data.OutMessage);
	else
		alert("Произошел cбой при отправки сообщения");
}

function sendAppraiserError(XMLHttpRequest, textStatus, errorThrown) {
	alert("При запросе или во время возвращения данных произошел сбой\n" + XMLHttpRequest.responseText);
}

// feedback("обратная связь")
function checkAndSendFeedback(rblFeedbackType) {
	var success = true;
	
	var reg=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var email = $("#feedbackEmail").val();
	var name = $("#feedbackName").val();
	var message = $("#feedbackMessage").val();
	var messageType = $("input[type='radio'][name='"+ rblFeedbackType +"']:checked").val();
	if (email == "") {
		alert('Заполните поле "Email"');
		success = false;
	}
	else if (!reg.test(email)) {
		success = false
		alert('поле "Email" должно иметь соответствующий формат');
	}
	else if (name == ""
		|| containWrongSymbols(name)) {
		alert('Заполните поле "Ваше имя"'+getWrongCharsMsg());
		success = false;
	}
	else if (message == "") {
		alert('Введите сообщение');
		success = false;
	}

	if (success) {
		//	get captcha values
		var inpFld = $("#fb_inpFld").val();
		var calcFld = $("#fb_calcFld").val();
		var origFld = $("#fb_origFld").val();
		
		$('#feedbackModule').hide();
		$("#feedbackMessage").val("");
		message = message.replace(/\"/g, "''");
		message = message.replace(/\\/g, "/");
		sendFeedback(email, name, message, messageType, inpFld, calcFld, origFld, getListingId());
	}
}

function sendFeedback(email, name, message, messageType, inpFld, calcFld, origFld, listingId) {
	$.ajax({
		type: "POST",
		url: "/WebServices/Notification.asmx/SendFeedback",
		contentType: "application/json; charset=utf-8",
		data:	'{"email":"' + email + '",' +
				'"name":"' + name + '",' +
				'"message":"' + message + '",' +
				'"feedbackType":"' + messageType + '",' +
				'"inpFld":"' + inpFld + '",' +
				'"calcFld":"' + calcFld + '",' +
				'"origFld":"' + origFld + '",' +
				'"listingId":"' + listingId + '"}',
		dataType: "json",
		success: onSendFeedbackSuccess,
		error: onSendFeedbackError
	});
}

function onSendFeedbackSuccess(dataObj) {
	var data = dataObj.d;
	if (data.IsSuccess)
		alert(data.OutMessage);
	else
		alert("произошел cбой при отправки сообщения");
}

function onSendFeedbackError(XMLHttpRequest, textStatus, errorThrown) {
	alert("При запросе или во время возвращения данных произошел сбой\n" + XMLHttpRequest.responseText);
}

// ListingError("Сообщить об ошибке - в обьявлении")
function checkAndSendListingError(listingId) {
    var success = true;

    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var email = $("#emailListingError").val();
    var name = $("#nameListingError").val();
    var listingErrorType = $("#ddlListingErrorType option:selected").val();
    var message = $("#messageListingError").val();
    if (name == ""
	 || containWrongSymbols(name)) {
        alert('Заполните поле "Ваше имя".' + getWrongCharsMsg());
        success = false;
    }
    else if (message == "") {
        alert('Опишите проблему');
        success = false;
    }
    else if (email == "") {
        alert('Заполните поле "Email"');
        success = false;
    }
    else if (!reg.test(email)) {
        success = false;
        alert('поле "Email" должно иметь соответствующий формат');
    }

    if (success) {
        //	get captcha values
        var inpFld = $("#er_inpFld").val();
        var calcFld = $("#er_calcFld").val();
        var origFld = $("#er_origFld").val();

        $('#reportProblemDialog').hide();
        $("#feedbackMessage").val("");
        message = message.replace(/\"/g, "''");
        message = message.replace(/\\/g, "/");
        sendListingError(email, name, message, listingErrorType, listingId, inpFld, calcFld, origFld);
    }
}
function checkAndSendAskTenant(listingId) {
    var mails = "";
    validationRules.beginErrGroup();
    $("#nameAskTenant,#emailAskTenant").change();
    if (validationRules.endErrGroup())
        return;
    $("[name=chkAskTenantEmail]").each(function(i, e) {
        if (e.checked)
            mails += (mails == "" ? "" : ";") + e.value;
    })
    if (mails == "") {
        alert("Выберете адрес для отправления сообщения!");
        return;
    }
    var message = $("#messageAskTenant").val();
    if (message == "") {
        alert('Наберите текст сообщения!');
        return;
    }
    var email = $("#emailAskTenant").val();
    var name = $("#nameAskTenant").val();
    var phone = $("#phoneAskTenant").val();
    var askTenantType = $("#ddlAskTenantType").val();
    //	get captcha values
    var inpFld = $("#er_inpFld").val();
    var calcFld = $("#er_calcFld").val();
    var origFld = $("#er_origFld").val();

    $('#asktenantDialog').hide();
    $("#messageAskTenant").val("");
    message = message.replace(/\"/g, "''");
    message = message.replace(/\\/g, "/");
    $.ajax({
        type: "POST",
        url: "../../WebServices/Notification.asmx/AskTenant",
        contentType: "application/json; charset=utf-8",
        data: '{"email":"' + email + '",' +
				'"name":"' + name + '",' +
				'"phone":"' + phone + '",' +
				'"mails":"' + mails + '",' +
				'"message":"' + message + '",' +
				'"askTenantType":"' + askTenantType + '",' +
				'"listingId":"' + listingId + '",' +
				'"inpFld":"' + inpFld + '",' +
				'"calcFld":"' + calcFld + '",' +
				'"origFld":"' + origFld + '"}',
        dataType: "json",
        success: sendListingErrorSuccess,
        error: sendsendListingErrorError
    });
}

function sendListingError(email, name, message, listingErrorType, listingId, inpFld, calcFld, origFld) {
	$.ajax({
		type: "POST",
		url: "../../WebServices/Notification.asmx/ListingError",
		contentType: "application/json; charset=utf-8",
		data: '{"email":"' + email + '",' +
				'"name":"' + name + '",' +
				'"message":"' + message + '",' +
				'"listingErrorType":"' + listingErrorType + '",' +
				'"listingId":"' + listingId + '",' +
				'"inpFld":"' + inpFld + '",' +
				'"calcFld":"' + calcFld + '",' +
				'"origFld":"' + origFld + '"}',
				//'"message":"' + message + '",' + '"}',
		dataType: "json",
		success: sendListingErrorSuccess,
		error: sendsendListingErrorError
	});
}

$(document).ready(function() { $("a[href=\"#authorContacts\"]").click(ContactInfoClick); $("#contact").click(ContactInfoClick); })
function ContactInfoClick() {
    var email = $("#feedbackEmail").val();
    $("a[href=\"#authorContacts\"]").unbind("click", ContactInfoClick);
    $("#contact").unbind("click", ContactInfoClick);
    $.ajax({
        type: "POST",
        url: "/WebServices/Notification.asmx/ContactInfoClick",
        contentType: "application/json; charset=utf-8",
        data: '{"email":"' + (email ? email:"") + '",' +
				'"listingId":"' + getListingId() + '"}',
        dataType: "json",
        success: null,
        error: null
    });
}

function sendListingErrorSuccess(dataObj) {
	var data = dataObj.d;
	if (data.IsSuccess)
		alert(data.OutMessage);
	else
		alert("Произошел сбой при отправке сообщения");
}

function sendsendListingErrorError(XMLHttpRequest, textStatus, errorThrown) {
	alert("При запросе или во время возвращения данных произошел сбой\n" + XMLHttpRequest.responseText);
}

function containWrongSymbols(text) {
	for (var i = 0; i < escapeFeedbackChars.length; i++)
		if (text.indexOf(escapeFeedbackChars[i]) > -1)
			return true;
		return false;
	}

function getWrongCharsMsg() {
	var theChars = "";
	for(var i = 0;i < escapeFeedbackChars.length; i++)
		theChars=theChars+escapeFeedbackChars[i]
		+(escapeFeedbackChars.length-1!=i?" , ":"");
	return ". Также поле не должно содержать символы: ".i+theChars;
}

function getListingId() {
    var listingId = 0;
    var str = $("#bListingId").html();
    if (str && str > " ")
        listingId = parseInt(str);
    return listingId;
}

var sendToFriend = new (function() {
    this.listingIds = [];
    this.windowResize = function() {
        var oWait = $("#sendtofriendDialog");
        oWait[0].style.top = (parseInt(getScrollTop(), 10) + ((getViewportHeight() - oWait.height()) / 2)) + "px";
        oWait[0].style.left = (parseInt(document.body.scrollLeft, 10) + ((getViewportWidth() - oWait.width()) / 2)) + "px";
    };
    this.resize = function() {
        if (sendToFriend.timeOut)
            clearTimeout(sendToFriend.timeOut);
        sendToFriend.timeOut = window.setTimeout(sendToFriend.windowResize, 6)
    };
    this.Show = function(obj) {
        if (obj)
            this.listingIds = [obj];
        $("#sendtofriendDialog").show();
        sendToFriend.resize();
//        $(window).bind("resize", sendToFriend.resize);
//        $(window).bind("scroll", sendToFriend.resize);
    };
    this.Hide = function() {
        $("#sendtofriendDialog").hide();
        $(window).unbind("resize", sendToFriend.resize);
        $(window).unbind("scroll", sendToFriend.resize);
    };
    this.checkAndSendToFriend = function() {
        validationRules.beginErrGroup();
        $("#nameFriend,#emailFriend,#emailUser,#nameUser").change();
        if (validationRules.endErrGroup())
            return;
        var email = $("#emailUser").val();
        var name = $("#nameUser").val();
        var mailFriend = $("#emailFriend").val();
        var nameFriend = $("#nameFriend").val();
        //	get captcha values
        var inpFld = $("#er_inpFld").val();
        var calcFld = $("#er_calcFld").val();
        var origFld = $("#er_origFld").val();

        sendToFriend.Hide();
        var ids = "", urls = "";
        $(this.listingIds).each(function(i, e) { ids += (i == 0 ? '"' : ',"') + e.id + '"'; urls += (i == 0 ? '"' : ',"') + e.url + '"'; });
        $.ajax({
            type: "POST",
            url: "../../WebServices/Notification.asmx/SendToFriend",
            contentType: "application/json; charset=utf-8",
            data: '{"email":"' + email + '",' +
				    '"name":"' + name + '",' +
				    '"mailFriend":"' + mailFriend + '",' +
				    '"nameFriend":"' + nameFriend + '",' +
				    '"origFld":"' + origFld + '",' +
				    '"inpFld":"' + inpFld + '",' +
				    '"calcFld":"' + calcFld + '",' +
				    '"listingIds":[' + ids + '],' +
				    '"urls":[' + urls + ']}',
            dataType: "json",
            success: sendListingErrorSuccess,
            error: sendsendListingErrorError
        });
    }
})();
