var searchResultCounter;
var searchResultLevels;

var systole = {
    changeLanguage: function(id)
    {
        $.getJSON("/Profile/ChangeLanguage", { id: id }, function(data)
        {
            if (data == true) {
                var href = window.location.href + "";
               if (href.indexOf("Search") != -1) {
                    window.location = "/Search/QuestionaireSearch";
                    parent.location.reload();
                } else {
                    parent.location.reload(); 
                }
            }
        });
    },
    init: function() {
        /*** Search Results ***/

        if ($(".searchResult tr").length > 0) {

            searchResultCounter = 0;
            searchResultLevels = $(".searchResultLevels").val().split(";");

            $(".searchResult tr").each(systole.parseSearchResultTrs);
        }

        /*** Requirements profile ***/

        $("input[name='level']").click(systole.changeLevelBar);

        $("#refId").click(function() {
            $("#questionaireIntro").slideToggle();
            return false;
        });

        $("input[value='Signera kravprofil']").click(function() {
            $("#directSign").val("yes");
            $("#questionareForm").submit();
        });

    },
    setProfileVisible: function()
    {
        $.getJSON("/RequirementProfile/SetVisible", function(data)
        {
            if (data == true) {
                window.location.reload();
            }
        });
    },
    setProfileInVisible: function()
    {
        $.getJSON("/RequirementProfile/SetInVisible", function(data)
        {
            if (data == true) {
                window.location.reload();
            }
        });
    },
    parseSearchResultTrs: function(i, tr) {
        var id = $(tr).find("input").val();

        if (id) 
        {
            var companyTd = $(tr).children("td:eq(1)");
            companyTd.html("<a>" + companyTd.text() + "</a>");

            $(tr).children("td:eq(1)").children("a").click(function() {
                $("#" + id).toggle();
                systole.showCompanyInformation(id, $(this).closest("tr").attr("id"));
            });
        }
    },
    showCompanyInformation: function(id, trId) {
        if ($("#" + trId).next().hasClass("insertedRow")) {
            $("#" + id).toggle();
            $("#" + trId).next().find("div").slideUp('slow', function() { $("#inserted_" + trId).remove(); });
        } else {
            $.ajax({
            url: '/Requirementprofile/ExtendedProfile/' + id,
            success: function(data) {
                    $("#" + trId).after('<tr class="insertedRow expandedResultRow" id="inserted_' + trId + '"><td colspan="4" class="expandedResultCell"><div style="display: none;">' + data + '</div></td></td>');

                    var counter = 0;
                    //var levels = $("#" + trId).next().find(".levels").val().split(";");
                    //alert(levels);

                    $("#" + trId).next().find("div").slideDown('slow');
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    alert(XMLHttpRequest + "\n" + textStatus + "\n" + errorThrown);
                }
            });
        }
        return false;
    },
    changeLevelBar: function() {
        var level;
        if(this.checked) {
            level = parseInt($(this).val());
        } else {
            var currentValue = $(this).val();
            var boxes = $('input.answercheckbox:checkbox');
            boxes.each( function(boxIndex) {
                if($(this).val() == currentValue) {
                    level = boxIndex == 0 ? 0 : parseInt($(boxes[boxIndex-1]).val());
                }
            });
        }

        systole.updateFields(level);
    },
    initToolTips: function(tooltip)
    {
         try {
            $(".tooltip").tooltip({
                showURL: false,
                fixPNG: true,
                bodyHandler: function() {
                    return '<div id="innerdiv">' + $("#tooltip_" + $(this).attr("id").substring(7)).html() + '</div>';
                }
            });
        } catch(ex) {}
    },
    updateFields: function(level)
    {
        var boxes = $('input.answercheckbox:checkbox');
        var free = false;
	    for(var i in boxes) {
	        var boxLevel = parseInt(boxes[i].value);
	        boxes[i].checked =  boxLevel <= level ? true : false;
            boxes[i].disabled = free;
	        if(boxLevel > level) {
	            free = true;
	        }
	    }
	    
	    for(var i = 0; i <= 7; i++) {
	        $('#demandLevelRow'+i+' td').toggleClass('greenField', i <= level && level >= 1);
	    }
    }
};

// Events
$(document).ready(function(event) {
    systole.init();
    systole.initToolTips($(this));
    
    // Change Language
    $(".change-language").click(function(event) { event.preventDefault(); systole.changeLanguage($(this).attr("id")); });
    
    $("#make-visible").click(function(event) { event.preventDefault(); systole.setProfileVisible(); });
    $("#make-invisible").click(function(event) { event.preventDefault(); systole.setProfileInVisible(); });
});



