// Main JavaScript file for the HSBC Public FAQ

$(function () {
    var feedback = false;

    // Decorating with scrollbarpaper
    $(".faqresults").scrollbarPaper();

    //--------------------------------------------------------------- ON CLICK EVENTS
    $("li", ".faqresults").click(function () {
        var newURL = $("a", $(this)).attr("href");
        window.location = newURL;
    });

    $("#searchbtn").click(function () {
        submitSearch();
    });

    $("#feedbackbtn, #thankyoubtn").click(function () {
        watermark("input#Feedback_Name", "[Name]", "#999", "#000");
        watermark("input#Feedback_Email", "[Phone or Email]", "#999", "#000");
        watermark("#Feedback_FeedbackInfo", "[Details]", "#999", "#000");
        $("#feedbackpanel").css("background-image", "url(/public/images/hsbcpublic/border_submit.png)");
        $("#feedbackform").show();
        $("#submitbtn").show();
        $(this).hide();
    });

    $("#feedbackballoon").click(function () {
        if (feedback) {
            $("#feedbackbtn").hide();
            $("#thankyoubtn").show();
            $("#submitbtn").hide();
            $("#feedbackform").hide();
            $("#feedbackpanel").css("background-image", "url(/public/images/hsbcpublic/border_thankyou.png)");
        }
        else {
            $("#feedbackbtn").show();
            $("#thankyoubtn").hide();
            $("#submitbtn").hide();
            $("#feedbackform").hide();
            $("#feedbackpanel").css("background-image", "url(/public/images/hsbcpublic/border_feedback.png)");
            resetForm("div#feedbackform");
        }
    });

    $("#submitbtn").click(function () {
        if (!$("input[name='Feedback.FeedbackRating']").is(":checked")) {
            alert("Please rate the question before submitting the feedback");
        }
        else if (!$("input[name='Feedback.NeedContact']").is(":checked")) {
            alert("Please indicate whether you wish to be contacted or not");
        }
        else if ($("input[name='Feedback.NeedContact']:checked").val() == 'y' &&
            ($("input#Feedback_Name").val() == '[Name]' ||
            $("input#Feedback_Email").val() == '[Phone or Email]')) {
            alert("Please enter your contact details");
        }
        else if ($("input[name='Feedback.NeedContact']:checked").val() == 'y' &&
            $("#Feedback_FeedbackInfo").val() == '[Details]') {
            alert("Please enter your feedback comments");
        }
        else {
            feedback = submitFeedback();
        }
    });
    //----------------------------------------------------------- ON CLICK EVENTS END

    // Change details/comments to left-aligned when clicking
    $("#Feedback_FeedbackInfo").click(function () {
        $(this).css("text-align", "left");
    });

    $("#Feedback_FeedbackInfo").blur(function () {
        if ($(this).val() == '[Details]' || $(this).val() == '') {
            $(this).css("text-align", "center");
        }
    });

    //------------------------------------------------------------ ON KEYPRESS EVENTS
    $("#searchbox").keypress(function (e) {
        if (e.keyCode == 13) {
            $("#searchbtn").click();
        }
    });

    $("input#Feedback_Name, input#Feedback_Email").keypress(function (e) {
        if (e.keyCode == 13) {
            $("#submitbtn").click();
        }
    });
    //-------------------------------------------------------- ON KEYPRESS EVENTS END

    // Create new SWFObject and pass some variables
    // WARNING: Only compatible with SWFObject 1.4
    var so = new SWFObject("/public/js/hsbcpublic/other/tagcloud.swf", "tagcloud", "600", "400", "7", "#ffffff");
    so.addParam("wmode", "transparent");
    so.addVariable("tcolor", "0xBBBBBB");
    so.addVariable("tcolor2", "0xBBBBBB");
    so.addVariable("hicolor", "0x323232");
    so.addVariable("tspeed", "50");
    so.addVariable("distr", "true");
    so.addVariable("xmlpath", "/public/js/hsbcpublic/other/tags.xml");

    // Renders the SWF object
    so.write("tags");
});

// Function to parse XML (obsolete)
// REMOVAL PENDING
function parseXml(xml) {
    if (jQuery.browser.msie) {
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.loadXML(xml);
        xml = xmlDoc;
    }
    return xml;
}

// Function to submit the search query
function submitSearch() {
    //var cid = 'a8556bf1-b895-4850-acd7-d51ad0832946';
    var searchKeys = $("#searchbox").val();
    searchKeys = $.trim(searchKeys);

    if (searchKeys.length > 0) {
        searchKeys = encodeURIComponent(searchKeys);

        var newUrl = "/FAQ/ExecuteSearch?searchTerm=" + searchKeys; //  + "&categoryId=" + cid;
        window.location = newUrl;
    }
    else {
        alert("Please enter a search keyword.");
    }
}

// Function to submit the feedback. It uses an AJAX call to the controller, and retrieves
// the feedback data object from common functions.
function submitFeedback() {
    var feedbackData = getFeedbackData();

    $.ajax({
        type: "POST",
        url: "/Feedback/SubmitFeedback" + "?random=" + Math.random() * 99999,
        data: $.toJSON(feedbackData),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            // Successful and submitted feedback
            if (data.IsFeedbackSubmitted) {
                // Reset form
                resetForm("div#feedbackform");

                // Show another message
                $("#thankyoubtn").show();
                $("#feedbackbtn").hide();
                $("#submitbtn").hide();
                $("#feedbackform").hide();
                $("#feedbackpanel").css("background-image", "url(/public/images/hsbcpublic/border_thankyou.png)");
                return true;
            }
        }
    });
}
