﻿$(document).ready(function () {
    var contactMenu = $('#contactMenu');
    var contactButton = $('#contactMenu .menuButton');
    var contactContent = $('#contactMenu .content');
    var ggMenu = $('#ggMenu');
    var ggButton = $('#ggMenu .menuButton');
    var ggContent = $('#ggMenu .content');
    var ggIsInactiveLink = $('#gginfo a');
    var contactOpenLinks = $('.ContactOpenLink');

    loadContactForm(contactContent, contactButton, contactMenu, ggButton, ggMenu);

    setupLinksToContactForm(contactOpenLinks, contactMenu);

    setupClickAreas(contactMenu, contactButton, contactContent, ggMenu, ggButton, ggContent, ggIsInactiveLink, contactOpenLinks);
});


function setupButtons(menuButton) {
    menuButton.fadeTo(0, 0.8, "slow");
    menuButton.mouseover(
				function () {
				    $(this).css('cursor', 'pointer');
				    $(this).fadeTo('fast', 1);
				}
			);
    menuButton.mouseout(
				function () {
				    $(this).css('cursor', 'default');
				    $(this).fadeTo('fast', 0.8);
				}
			);
}

function setupLinksToContactForm(contactOpenLinks, contactMenu) {
    contactOpenLinks.click(function (e) { contactMenu.animate({ left: 0 }); });
    contactOpenLinks.mouseover(function () { $(this).css('cursor', 'pointer'); });
    contactOpenLinks.mouseout(function () { $(this).css('cursor', 'default'); });
}

function setupLinksToGGForm(ggOpenLinks, ggMenu, contactMenu, contentWidth) {
    ggOpenLinks.click(function (e) {
        ggMenu.animate({ left: 0 });
        contactMenu.animate({ left: -contentWidth });
    });
    ggOpenLinks.mouseover(function () { $(this).css('cursor', 'pointer'); });
    ggOpenLinks.mouseout(function () { $(this).css('cursor', 'default'); });
}

function setupClickAreas(contactMenu, contactButton, contactContent, ggMenu, ggButton, ggContent, ggIsInactiveLink, contactOpenLinks) {
    $(document.body).click(
		function (e) {
		    if (mouseIsInside(ggIsInactiveLink, e.pageX, e.pageY)) {
		        changeMenu(contactMenu, ggMenu, contactContent.outerWidth());
		    }
		    else if (mouseIsInside(contactOpenLinks, e.pageX, e.pageY)) {
		        // Nie robimy nic bo kliknięto w jeden z przycisków otwierających menu.
		    }
		    else if (mouseIsInside(contactButton, e.pageX, e.pageY)) {
		        var offset = contactContent.offset();
		        contactMenu.animate({ left: (offset.left == 0 ? -contactContent.outerWidth() : 0) });
		        ggMenu.animate({ left: -ggContent.outerWidth() });
		    }
		    else if (mouseIsInside(ggButton, e.pageX, e.pageY)) {
		        var offset = ggContent.offset();
		        ggMenu.animate({ left: (offset.left == 0 ? -ggContent.outerWidth() : 0) });
		        contactMenu.animate({ left: -contactContent.outerWidth() });
		    }
		    else if (!mouseIsInside(contactContent, e.pageX, e.pageY) && !mouseIsInside(ggContent, e.pageX, e.pageY)) {
		        contactMenu.animate({ left: -contactContent.outerWidth() });
		        ggMenu.animate({ left: -ggContent.outerWidth() });
		    }
		}
	);
}

function changeMenu(contactMenu, ggMenu, contentWidth) {
    ggMenu.animate({ left: -contentWidth });
    contactMenu.animate({ left: 0 });
}

function loadContactForm(contactContent, contactButton, contactMenu, ggButton, ggMenu) {
    $.get('/ajax/contactForm.html', function (data) {
        contactContent.html(data);
        setupButtons(ggButton);
        setupButtons(contactButton);
        var ggOpenLink = contactContent.find('.GGOpenLink');
        setupLinksToGGForm(ggOpenLink, ggMenu, contactMenu,  contactContent.outerWidth());
        $('#contactForm').validate({
            errorPlacement: function (error, element) {
                error.appendTo(element.parent());
            },
            submitHandler: function (form) {
                sendSimpleMail();
            }
        });
    });
}

function mouseIsInside(element, mouseX, mouseY) {
    if (element) {
        var offset = element.offset();
        var left = offset.left == undefined ? 0 : offset.left;
        var top = offset.top == undefined ? 0 : offset.top;
        var width = left + element.outerWidth();
        var height = top + element.outerHeight();
        if (mouseX >= left && mouseX <= width && mouseY >= top && mouseY <= height) {
            return true;
        }
    }
}

function sendSimpleMail() {
	var loadingIcon = $('#contactForm #loadingIcon');
	loadingIcon.show();

	var errorSpan = $('#contactForm #error');

	var name = $('#contactForm #name');
	var email = $('#contactForm #email');
	var phone = $('#contactForm #phone');
	var subject = $('#contactForm #subject');
	var question = $('#contactForm #question');


	BrandSoft.WebService.MailService.SendSimpleMail
		(
			name.val(), email.val(), phone.val(), subject.val(), question.val(),
			function(result) {
				loadingIcon.hide();
				name.val('');
				email.val('');
				phone.val('');
				subject.val('');
				question.val('');
				$('div.leftMenu').animate({ left: -$('div.leftMenu .content').outerWidth() });
				alert('Wiadomość została przekazana do biura obsługi klienta.<br />Odpowiedź wyślemy w ciagu 24 godzin.');
				errorSpan.html("");
			},
			function(error) {
				loadingIcon.hide();
				errorSpan.html("Wystąpił błąd podczas wysyłania maila. Spróbuj wysłać jeszcze raz.<br/>Jeżeli błąd będzie sie powtarzał skontaktuj się z administratorem.");
			}
         );
}


/* Overriding Javascript's Alert Dialog */

function alert(msg) {
	var alert = $('#alert');
	alert.jqmShow()
    alert.find('div.jqmAlertContent').html(msg);
    alert.find('#okButton').click(function() {
      	$('#alert').jqmHide();
      	
      }); 
}

$().ready(function() {
	$('#alert').jqm({ overlay: 0, modal: true, trigger: false });

	// trigger an alert whenever links of class alert are pressed.
	$('a.alert').click(function() {
		alert('You Have triggered an alert!');
		return false;
	});
});

