﻿$jq.namespace('MatchCore');
$jq.namespace('MatchCore.UI.Communication');

var mobile = new MatchCore.Communication.MobilePhone();

var mo = {
    AreaCode: '',
    Prefix: '',
    Number: '',
    Carrier: '',
    Model: '',
    EmailAlert: '',
    WinkAlert: ''
}

var isValidate = 1;

var consumeForm = function(){

    var PhoneNumberRegex = /^[0-9]{10}$/;
    
    mo.AreaCode = $jq("#txtAreaCode").val().replace(" ", "", "gi");
    mo.Prefix = $jq("#txtPrefix").val().replace(" ", "", "gi");
    mo.Number = $jq("#txtNumber").val().replace(" ", "", "gi");
    mo.Carrier = $jq("#sltCarrier").val();
    mo.Model = $jq("#sltModel").val();

    mo.WinkAlert = $jq('INPUT[@name="chkWink"][@checked]').val() != null ? "1" : "0";
    mo.EmailAlert = $jq('INPUT[@name="chkEmail"][@checked]').val() != null ? "1" : "0";

    isValidate = 1;
    if (mo.AreaCode == "" || mo.Prefix == "" || mo.Number == "" || mo.Carrier == "" || mo.Model == "") {
        isValidate = 0;
        buildError();
        $jq(".errorMessage").html("<ul>" + errorMessage + "</ul>");
        $jq(".errorMessage").show();
        errorMessage = "";
        return;
    } 
    
    if (!PhoneNumberRegex.test(mo.AreaCode + mo.Prefix + mo.Number)) {
        isValidate = 0;
        errorMessage += "<li>Oops! The mobile number you entered is not valid. Please try again.</li>";
        $jq(".errorMessage").html("<ul>" + errorMessage + "</ul>");
        $jq(".errorMessage").show();
        errorMessage = "";
        return;
    }
}
    
var CheckUniqueAndSave = function() {
    mobile.CheckUnique({
        'phoneNumber': mo.AreaCode + mo.Prefix + mo.Number,
        'success': verification_callback
    });
}

var verification_callback = function(code) {
    if (code == 0) {
        savephonenumber();
    }
    else {                      //return 0 - success,
        errorMessage += "<li>Oops! The mobile number you selected is already in use.</li>";
        $jq(".errorMessage").html("<ul>" + errorMessage + "</ul>");
        $jq(".errorMessage").show();
        errorMessage = "";
    } 
}

var savephonenumber = function() {

    mobile.onFailure(alert);
    mobile.SaveMobilePhone({
        'areaCode': mo.AreaCode,
        'prefix': mo.Prefix,
        'number': mo.Number,
        'carrier': mo.Carrier,
        'model': mo.Model,
        'emailalert': mo.EmailAlert,
        'winkalert': mo.WinkAlert,
        'success': function(response) {
            if (response == 0) {                      //return 0 - success
                $jq("#pnlForm").hide();
                $jq(".errorMessage").hide()
                $jq(".errorMessage").empty();
                errorMessage = "";
                $jq("#pnlConfirm").show();
            }
        }
    });
}

$jq(document).ready(function() {
    $jq("#pnlForm .btnSave").click(function() {
        consumeForm();
        if (isValidate == 0) return;

        //if user change phone number, check unique
        if (phonenumber != mo.AreaCode + mo.Prefix + mo.Number) {
        
            CheckUniqueAndSave();
        }
        else {
            savephonenumber();
        }
        
        //track events
        mobile.TrackingEvents({
            'action': 22,
            'success': function(response) { }
        });

    });

    $jq(".close").click(function() {
        $jq("#pnlSettings").fadeOut("normal");
        return false;
    });
});