﻿$(document).ready(function() {
    setupNav();
    setupFilterResults();
    setupAutoCompletes();
    showStudentAIScores();
    
    $("input").checkBox();
});

function setupFilterResults() {
	$(".filter-options").hide();

    $("a.filter-results").click(function(event) {
        event.preventDefault();
        var filterOptions = $(this).parent().next(".filter-options");
        $(filterOptions).slideDown("fast");
    });
    
    $(".filter-options .cancel").click(function(event) {
        var filterOptions = $(this).parents(".filter-options");
        var filterLink = $(filterOptions).prev("p").find("a.filter-results");
        
        $(filterOptions).slideUp("slow");
    });


}


function showStudentAIScores() {
    $(".action-icon-score").each(function() {
        var userId = $(this).attr("id").replace("student", "");
        var container = $(this);

        $.getJSON(
                "/Student/ShowActionProfile",
                { userId: userId },
                function(json) {
                    var AIHtml = '';

                    $.each(json, function(i, item) {
                        var imageHtml = "<img src=\"/ActionIcon/ActionIconImage/" + item.categoryId + "\">";
                        AIHtml = AIHtml + imageHtml + item.score;
                    });

                    $(container).html(AIHtml);
                }
            );
            
	            
	    $(this).qtip({
	    	show: {
					effect: {length: 500}
				},
				hide: {
					fixed: true,
					effect: {
						length: 500
					}
				},
	      style: {
	          padding: 10,
	          textAlign: 'left',
	          color: '#E6EE9F',
	          width: '400px',
	          background: '#000',
	          border: {
	      	     color: '#a0cb4a',
	             width: 3,
	             radius: 2
	          },
	          tip: true
	      },
	       position: {
		      corner: {
		         tooltip: 'leftMiddle',
		         target: 'rightMiddle'
		      },
		      adjust: {
		      	screen: true
		      }
	   		},
	      content: {
	      	text: '<div class="action-icon"><img src="/images/ajax-loader.gif" alt="Loading..." /></div>',
	      	url: '/Student/ActionIconPopup',
	      	data: {userId : userId}
	      }
	   });
    });
    

}


function showMessage(header, message, type) {
    var messageHtml = "<div class='message' style='display:none'><h2></h2></div>";

    if ($(".message").size() == 0) {
        $("#content").prepend(messageHtml);
    }
    else {
        $(".message").replaceWith(messageHtml);
    }
    
    $(".message").removeAttr("class").attr("class", "message " + type);
    $(".message h2").text(header);
    $(".message h2").after(message);
    $(".message").fadeIn("slow");
    scrollToTopOfPage();
}

function setupNav() {
    $("#menu ul#nav").superfish({ autoArrows: false, dropShadows: true });
}

function setupFormValidation(formSelector)
{		
    addValidationMessageBox();

    $(formSelector).validate({
	   ignore: ":hidden",
	   errorContainer: ".message.validation",
	   errorLabelContainer: ".message.validation ul",
	   wrapper: "li",
	   errorElement: "span",
	   showErrors: function(errorMap, errorList)
	   {
		   this.defaultShowErrors();

			var messageBox = $(".message.validation");
			var messageList = $(messageBox).find("ul");
			
			// have to handle showing and hiding the messagebox
			// ourselves because of messages generated server side
			if ($(messageList).find("li.server").size() != 0)
			{
				$(messageBox).show();
				$(messageList).show();
			}
			
		},
	    invalidHandler: function(form, validator) {
			scrollToTopOfPage();
		}
	});
}

function setupAutoCompletes() {
    $(".job").autocomplete('/Career/JobTitles');
    $(".location").autocomplete('/StudentData/LocationNames');
    $(".company").autocomplete('/Company/CompanyNames');
    $(".major").autocomplete('/StudentData/MajorNames');
}

function addValidationMessageBox() {
    if ($(".message.validation").size() == 0) {
        $("#content").prepend("<div class='message validation' style='display:none'><h2>There are some problems</h2><ul /></div>");
    }
}

function scrollToTopOfPage() {
    $("body, html").animate({ scrollTop: 0 }, 'slow');
}

// Assumes both name and id are in the format fieldname-XX
// where XX is an integer
function updateInputNames(selector) {
    var index = 1;
    $(selector).each(function() {
        container = $(this);

        $(container).find(':input').each(function() {
            var newName = $(this).attr('id').replace(/(.*)-[0-9]*/, '$1-' + index);

            $(this).attr("id", newName);
            $(this).attr("name", newName);
        });

        index++;
    });
}
