﻿
function checkEmail(source, arguments) {
    arguments.IsValid = isValidEmail($('#txtEmail').val());
}

var timeoutChange;
var selectItems;

//lookup location
$(document).ready(function () {

    //    $('#searchBox').keyup(function (event) {

    //        if (event.which == 13) {
    //            event.preventDefault();
    //            return false;
    //        }

    //        var term = $(this).val();

    //        if (term.length < 4) { return false };

    //        if (timeoutChange) { clearTimeout(timeoutChange); }
    //        timeoutChange = setTimeout(function () {
    //            searchLocations(term, function (items) {
    //                var citySelect = $('#city-selects');
    //                citySelect.html('');
    //                var cnt = 0;
    //                selectItems = $.map(items, function (item) {
    //                    citySelect.append('<a class=\"add-location-link\" href=\"javascript:void(0)\" onclick=\"submitLocation('+ cnt +');\" >' + item.label + '</a><br/><br/>');
    //                    cnt++;
    //                    return item;
    //                });
    //            });
    //        }, 100);

    //    });

    $('#txtEmail').keypress(function (e) {
        var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
        if (key == 13) {
            e.preventDefault();
            welcomeEmailSubmit($('#txtEmail').val());
            return false;
        }
    });

    //$("form").submit(function () { return false; });

    //$('#searchBox').keydown(function (e) {
    //    e.preventDefault();
    //    return false;
    //}

    $('#searchBox').keypress(function (e) {
        //e.preventDefault();
        //return false;
        //alert('down');
        var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
        if (key == 13) {
            //e.preventDefault();
            //return false;
            if ($('.ui-autocomplete').is(":visible")) {
                //alert('vis');
                e.preventDefault();
                return false;
            }

            //alert('press');
            submitLocation();
            e.preventDefault();
            return false;
        } else {
            $('#lblErrorMessage').html('').removeClass('error-msg').hide(); ;
            userlocation.label = "";
            userlocation.lat = "";
            userlocation.lon = "";
            userlocation.citytag = "";
            userlocation.zip = "";
        }
    });

    $("#searchBox").autocomplete({
        source: function (request, response) {
            searchLocations(request.term, function (items) {
                response(items);
            });

        },
        minLength: 4,
        delay: 100,
        autoFocus: false,
        //selectFirst: true,
        change: function (e, ui) {
        },
        select: function (e, ui) {
            displaySelectedItem(ui.item.data);
            $(this).val(ui.item.data.name);
            e.preventDefault();
            return false;
        },
        focus: function (e, ui) {
            e.preventDefault();
            return false;
        }
    })

});

//location selected
function displaySelectedItem(item) {
    userlocation.label = item.name;
    userlocation.lat = item.point.coordinates[0];
    userlocation.lon = item.point.coordinates[1];

    //getDealsForMap(item.point.coordinates[0], item.point.coordinates[1], 0, 0, 0, 0, false);
}

function welcomeEmailSubmit(email) {
	if(!isValidEmail(email)){
		$('#lblErrorMessage').html('Email is invalid.').addClass('error-msg').show();
	    return;
    }

    submitEmail(email, true, false,
    function () {
        userlocation.email = email;
        moveToStep2();
    },
	function (errorCode) {
	    if (errorCode == 1) {
	        $('#lblErrorMessage').html('A user with this email has already signed up.').addClass('error-msg').show();
	    } else {
	        $('#lblErrorMessage').html('Invalid email address. Do you already have an account?').addClass('error-msg').show();
	    }
	});
}

function moveToStep2() {
    $('#lblErrorMessage').hide();
    movepanelright();
    $('#wizard').addClass('wizard-2');
    $('#first').removeClass('active');
    $('#first').addClass('completed');
    $('#second').addClass('active');
    $('#searchBox').focus();
    $('#user').html('<span>' + userlocation.email + '</span>&nbsp;|&nbsp;<a href="/myaccount/">Account</a>');

}

function submitLocation() {

//    var item = selectItems[itemIndex].data;
//    userlocation.label = item.name;
//    userlocation.lat = item.point.coordinates[0];
//    userlocation.lon = item.point.coordinates[1];
//    userlocation.citytag = item.address.locality.replace(" ", "-").replace(".", "") + "-" + item.address.adminDistrict;
//    userlocation.zip = item.address.postalCode;


    var entered = $('#searchBox').val();

    //validation
    if (entered.length < 1) {
        $('#lblErrorMessage').html('Please enter a location.');
        return false;
    }

    if (userlocation.label.length < 1 || userlocation.lat.length < 1 || userlocation.lon.length < 1) {
        $('#lblErrorMessage').html('The location is invalid. Please enter a valid location.').addClass('error-msg').show();
        return false;
    }

    var data = "{ email:'" + userlocation.email + "', label:'" + userlocation.label + "', lat:'" + userlocation.lat + "', lon:'" + userlocation.lon + "' }";
    $.ajax({
        type: "POST",
        data: data,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: window.LDService + "SubmitLocation",
        success: function (o) {
            if (o != null && o.d != null && o.d == '0') {
                $('#lblErrorMessage').removeClass('error-msg').hide();
                $('#wizard').removeClass('wizard-2');
                $('#wizard').addClass('wizard-3');
                $('#second').removeClass('active');
                $('#second').addClass('completed');
                $('#third').addClass('active');
                $('#partners').fadeOut(500, function () {
                    movepanelright(function () {
                        $('.set-pre').slideDown(3000);
                    });
                });
            } else {
                $('#lblErrorMessage').html('The location is invalid. Please enter a valid location.').addClass('error-msg').show();
            }
        },
        error: function (request, textStatus, errorThrown) {
            if (request != null && request.responseText != null) {
                try {
                    var err = eval("(" + request.responseText + ")");
                    $('#lblErrorMessage').html(err.Message);
                    return;
                } catch (err) { }

                $('#lblErrorMessage').html('The location is invalid. Please enter a valid location.').addClass('error-msg').show();
            }
        }
    });
}

//navigate
function movepanelright(complete) { $("#panel-container").stop().animate({ scrollLeft: "+=1920" }, 500, complete); }
function movepanelleft() { $("#panel-container").stop().animate({ scrollLeft: "-=1920" }, 500); }
$(document).ready(function () {
    $(".next").bind("click", function (event) {
        event.preventDefault();
        movepanelright();
        $('#searchBox').focus();
        $('#searchBox').select();
    });
    $(".prev").bind("click", function (event) {
        event.preventDefault();
        movepanelleft();
    });

});
