﻿var Forms = {
    date: "",
    month: "",
    year: "",

    loginInit: function() {

        $("#loginDialogue #loginForm input#login").unbind('click', Forms.setupLoginForm);
        $("#loginDialogue #loginForm input#login").click(Forms.setupLoginForm);

        $("#loginDialogue .foot a").unbind('click', Forms.setupLinks);
        $("#loginDialogue .foot a").click(Forms.setupLinks);

        $("#loginDialogue .continue a").unbind('click', Forms.refresh);
        $("#loginDialogue .continue a").click(Forms.refresh);
    },
    registerInit: function() {
        $("#registerDialogue #registerForm input#submit").unbind('click', Forms.setupRegisterForm);
        $("#registerDialogue #registerForm input#submit").click(Forms.setupRegisterForm);

        $("#registerDialogue #registerForm select").unbind('change', Forms.checkRegAge);
        $("#registerDialogue #registerForm select").change(Forms.checkRegAge);

        $("#registerDialogue .continue a").unbind('click', Forms.refresh);
        $("#registerDialogue .continue a").click(Forms.refresh);

        var date = Forms.date;
        var month = Forms.month;
        var year = Forms.year;
        if ((date != undefined && month != undefined && year != undefined) &&
            (date != null && month != null && year != null) &&
            (date != "" && month != "" && year != "")
         ) {
            Forms.setDateOfBirth(date, month, year);
        }
            
        Forms.checkRegAge();
    },
    shareInit: function() {
        $("#shareDialogue #shareForm input#send").unbind('click', Forms.setupShareForm);
        $("#shareDialogue #shareForm input#send").click(Forms.setupShareForm);

        $("#shareDialogue #shareForm .share_again a").unbind('click', Forms.launchShare);
        $("#shareDialogue #shareForm .share_again a").click(Forms.launchShare);
    },

    reminderInit: function() {
        $("#reminderDialogue #reminderForm input#send").unbind('click', Forms.setupReminderForm);
        $("#reminderDialogue #reminderForm input#send").click(Forms.setupReminderForm);
    },

    setupLinks: function(e) {
        e.preventDefault();
        // grab dialogue id (file name)
        var id = this.href.replace(/(.*\/.*\/.*\/)(.*)(\.aspx)/, "$2");
        Dialogue.launch(id);
    },

    launchShare: function(e) {
        e.preventDefault();
        Dialogue.launch("share", "refresh=true&gameid=" + $("#shareDialogue #shareForm input#gameid").val());
    },

    setupShareForm: function(e) {
        e.preventDefault();
        var query = "email=" + $("#shareDialogue #shareForm input#email").val();
        query += "&friendname=" + $("#shareDialogue #shareForm input#friendname").val();
        query += "&r=1";
        query += "&gameid=" + $("#shareDialogue #shareForm input#gameid").val();
        Dialogue.launch("share", query);
    },

    setupRegisterForm: function(e) {
        e.preventDefault();
        var query = "email=" + $("#registerDialogue #registerForm input#email").val();
        query += "&alias=" + $("#registerDialogue #registerForm input#alias").val();
        query += "&password=" + $("#registerDialogue #registerForm input#password").val();
        query += "&date=" + $("#registerDialogue #registerForm select#date").val();
        query += "&month=" + $("#registerDialogue #registerForm select#month").val();
        query += "&year=" + $("#registerDialogue #registerForm select#year").val();
        query += "&password2=" + $("#registerDialogue #registerForm input#password2").val();
        query += "&parentemail=" + $("#registerDialogue #registerForm input#parentemail").val();
        query += "&bookblastoptin=" + ($("#registerDialogue #registerForm input#bookblastoptin").attr("checked") == true ? "1" : "0");
        query += "&r=1";

        Forms.date = $("#registerDialogue #registerForm select#date").val();
        Forms.month = $("#registerDialogue #registerForm select#month").val();
        Forms.year = $("#registerDialogue #registerForm select#year").val();

        Dialogue.launch("register", query);
    },

    setupReminderForm: function(e) {
        e.preventDefault();
        //alert($("#loginDialogue #loginForm input#alias").val() + " " + $("#loginDialogue #loginForm input#password").val());
        Dialogue.launch("reminder", "e=" + $("#reminderDialogue #reminderForm input#email").val());
    },

    setupLoginForm: function(e) {
        e.preventDefault();
        //alert($("#loginDialogue #loginForm input#alias").val() + " " + $("#loginDialogue #loginForm input#password").val());
        //$("#dialogueContainer").html("");//need to clear html as 'launch' appends
        Dialogue.launch("login", "n=" + $("#loginDialogue #loginForm input#alias").val()
            + "&p=" + $("#loginDialogue #loginForm input#password").val());
    },

    setDateOfBirth: function(day, month, year) {
        $("#registerDialogue #registerForm select#date").val(day);
        $("#registerDialogue #registerForm select#month").val(month);
        $("#registerDialogue #registerForm select#year").val(year);
        Forms.checkRegAge();
    },

    checkRegAge: function() {
        var date = $("#registerDialogue #registerForm select#date").val();
        var month = $("#registerDialogue #registerForm select#month").val();
        var year = $("#registerDialogue #registerForm select#year").val();
        var today = new Date();

        var threshold = new Date();
        threshold.setFullYear(today.getFullYear() - 12, today.getMonth(), today.getDate());

        date = isNaN(date) ? 1 : date;
        month = isNaN(month) ? 1 : month;
        month = month - 1;
        var dob = new Date();
        dob.setFullYear(year, month, date);

        var age = today.getFullYear() - year;

        if ((today.getMonth() < month) || (today.getMonth() == month && today.getUTCDate() < date)) {
            --age;
        }

        $("#registerDialogue #registerForm .parentemail").hide();
        
        //alert(age);
        if (isNaN(year) || isNaN(age)) {
            return;
        }

        //        if (dob >= threshold) {
        if (age <= 12) {
            $("#registerDialogue #registerForm .parentemail").show();
        }
    },
    refresh: function(e) {
        e.preventDefault();
        window.location = window.location.href.split('#')[0];
        return false;
    }
};

