﻿/// <reference path="/content/scripts/jquery-1.5.1.js"/>

var ArmsList = new Object();
var armslist = {};

ArmsList.CheckTerms = function() {
    if ((document.cookie.length == 0 || document.cookie.indexOf("terms=agreed") == -1)
        && window.location.href.indexOf("/info/terms") == -1
        && document.cookie.indexOf("armslist_auth") == -1) {
        ArmsList.ShowTerms();        
    }
    else
        ArmsList.AgreeTerms();
}
ArmsList.ShowTerms = function() {
    $("#tacticalRepublic").hide();
    jQuery.ajax({
        url: "/info/termsagreement",
        dataType: "html",
        success: function(data) {
            if (jQuery("#termsagreement").length == 0)
                jQuery("body").append("<div id='termsagreement' style='display: none;' />");

            jQuery("#termsagreement").html("<h2>ARMSLIST - TERMS OF USE</h2>" + data + "<p style='font-size: 7pt; margin-top: 2em;'>* COOKIES MUST BE ENABLED FOR THIS SITE TO WORK.<br />&nbsp;&nbsp;&nbsp;We recommend the use of Google Chrome, Firefox 3.0+, or Internet Explorer 7.0+ for the best browsing experience.</p>")
            .dialog({
                closeOnEscape: false,
                modal: true,
                title: "Please read and agree to our Terms of Use:",
                width: Math.min(800, $(window).width() - 30),
                height: Math.min(400, $(window).height() - 30),
                buttons: {
                    "I Agree": function() { ArmsList.AgreeTerms(); jQuery(this).dialog("close"); },
                    "I Do Not Agree": function() { window.location = "http://www.google.com" }
                }
            });
            jQuery(".ui-dialog-titlebar-close").hide();
        }
    });
}
ArmsList.AgreeTerms = function(returnurl) {
    var date = new Date()
    date.setHours(date.getHours() + 25);
    document.cookie = "terms=agreed; expires=" + date.toUTCString() + "; path=/";
    $("#tacticalRepublic").show();
}

ArmsList.HtmlValidator = function(source, arguments) {
    var pattern = new RegExp("<.+?>", "gi");    
    if (pattern.test(arguments.Value)) {
        arguments.IsValid = false;
    }
}

ArmsList.LinkImage = function($target) {    
    var url = prompt("Enter image url to link:", "");
    if (url) { $target.val($target.val() + "[img]" + url + "[/img]"); }
}
ArmsList.LinkUrl = function ($target) {
    var url = prompt("Enter URL to link:", "");
    var title = prompt("Enter the title for your link:", "");
    if (url && title) { $target.val($target.val() + "[url=" + url + "]" + title + "[/url]"); }
}

ArmsList.PromotionLink = function() {
    jQuery.ajax({
        url: "/promoters/linkbuilder",
        data: { url: window.location.pathname + window.location.search },
        dataType: "html",
        success: function(data, status, xhr) {
            if (status == "success") {
                var linkbuilderdialog = jQuery("#linkbuilderdialog");
                if (linkbuilderdialog.length == 0) {
                    jQuery("body").append("<div id='linkbuilderdialog'></div>");
                    linkbuilderdialog = jQuery("#linkbuilderdialog");
                    linkbuilderdialog.dialog({
                        title: "Promotion Link",
                        autoOpen: false,
                        modal: true,
                        buttons: { "Ok": function() { $(this).dialog("close"); } }                        
                    });
                }
                linkbuilderdialog.html(xhr.responseText).dialog("open");
            }
        }
    });
}

ArmsList.ShowMessage = function (type, text) {
    var div = $("#messagePlaceholder");
    if (div.length == 0)
        alert(text);
    else {
        div.append("<div class='message " + type + "'>" + text + "</div>")
        div.show();
        window.setTimeout(function () { div.hide("fast"); div.html(""); }, 10000);
    }
}

ArmsList.initEntities = function() {
    $(".entities .more").live("click", function() {
        var $this = $(this);
        $this.toggleClass("more", false).toggleClass("less", true).html("Less");
        $this.siblings(".extra-entities").show();
    });
    $(".entities .less").live("click", function() {
        var $this = $(this);
        $this.toggleClass("less", false).toggleClass("more", true).html("More");
        $this.siblings(".extra-entities").hide();
    });
}

$.fn.postback = function () {    
    $(this).closest("form").submit();
}

armslist.initDataClick = function () {
    $("[data-click]").live("click", function () {
        var func = eval($(this).attr("data-click"));
        func.call(this);
        return false;
    });
}

$(function () {
    var parentPostBack = function ($element) { }
    armslist.initDataClick();
    $("input.autopostback").live("click", function () { $(this).postback(); });
    $("select.autopostback").bind("change", function () { $(this).postback(); });
    ArmsList.initEntities();
    $(".httppost").live("click", function () {
        var $this = $(this);
        var form = $("<form action=\"" + $this.attr("href") + "\" method=\"post\" />");
        $("body").append(form);
        form.submit();
        return false;
    });
    $("label").click(function () {
        var checkbox = $("#" + $(this).attr('for'));
        if (checkbox.is(":checked")) {
            checkbox.removeAttr("checked");
        } else {
            checkbox.attr("checked", "checked");
        }
        checkbox.click();
    });
});




/****************************************************************************/
/* jQuery SETUP */

jQuery.ajaxSetup({
    beforeSend: function() { ArmsList.ShowLoading(); },
    complete: function() { ArmsList.HideLoading(); }
});

ArmsList.ShowLoading = function() {        
    jQuery("#loading").show();
}
ArmsList.HideLoading = function() {
    jQuery("#loading").hide();
}

ArmsList.favorites = {    
    createFav: function () {
        $.ajax({
            url: "/account/favorites/create",
            data: { idpost: postid },
            type: "POST",
            dataType: "json",
            success: function (data) {
                ArmsList.ShowMessage(data.Status, data.Message);
            }
        });
    },
    deleteFav: function () {
        var $this = $(this);
        var $tr = $this.closest("tr");
        var idpost = $tr.attr("data-id");
        if (!confirm($this.attr("data-confirm")))
            return;
        $.ajax({
            url: "/account/favorites/delete",
            data: { idpost: idpost },
            type: "POST",
            dataType: "json",
            success: function (data) {
                ArmsList.ShowMessage(data.Status, data.Message);
                $("table.favorites tr[data-id=" + idpost + "]").hide();
            }
        });
    }
}
