﻿// --------------------------------------------------------------------------------------------------------
//      Standard Report Display Functions
// --------------------------------------------------------------------------------------------------------

/// <reference path="../../scripts/jquery-1.3-vsdoc.js" />
/// <reference path="daw.jquery.base.js" />

function CallReport(reportAction, params)
{
    CallActionWithParams('Report', reportAction, params);
    ShowInfo("Loading report data...");
}

function CallReportWithCriteria(reportAction, criteriaFormName, params)
{
    var form = $("#" + criteriaFormName);
    try { 
        form.validate(); 
    } 
    catch (e) { 
        alert("You tried to validate a form that has not been set up for validation." ); 
        return false;
    }
    
    if(params == null) params = ''; // for FF
    if(params != '') params = '&' + params;
    
    if (form.valid()) {
        CallActionWithParams('Report', reportAction, form.serialize() + params);
        ShowInfo("Loading report data...");
    }
}

function CallReportForSelectedItems(reportAction, itemFormName, additionalParams)
{
    var form = $("#" + itemFormName);
    var params = form.serialize();
    if (params == '') { 
        ShowFail("No items were selected for viewing in the report." ); 
        return false;
    }
    if (additionalParams != "") {
        params += "&" + additionalParams;
    }    
    CallActionWithParams('Report', reportAction, params);
    ShowInfo("Loading report data...");
}

function PrepareReport()
{
    CallAction('Report', 'PrepareReport');
    ShowSuccess('Preparing report for display...');
}

function DisplayReport(windowName)
{
    var winAttributes = "width=1000,height=650,menubar=no,toolbar=no,resizable=yes,scrollbars=yes,status=yes,top=20,left=20";
	var reportWindow = null; 
	
    reportWindow = window.open(GetUrlWithParams("Report", "ViewReport", "unique=" + windowName), "reportWindow", winAttributes);

	if(!reportWindow) 
	{
	    ShowFail("The report could not be displayed because of a pop-up blocker.  Please disable all popup blockers for this website.");
	    return false;
	}
    else
    {
        ClearMessage();
        return true;
    }
}

function DisplayInlineReport() 
{
    ClearMessage();
    Redirect('Report', 'OpenReportViewer');
}

function DownloadReport()
{
    HideSpinner();
    ShowSuccess('Downloading report...')
    $('#downloadForm').attr('action', GetUrl('Report', 'ViewReport'));
    $('#downloadForm').submit();
}

function DirectoryReport(controller, reportType) {
    var params = "reportType=" + reportType;
    CallActionWithParams(controller, "DirectoryReport", params);
}


// --------------------------------------------------------------------------------------------------------
//      Share Report Display Functions
// --------------------------------------------------------------------------------------------------------

function AssessmentReport(id, docType, asDownload, returnUrl) {
	if (asDownload == null) { asDownload = false; }
	var params;
	if (returnUrl == null) {
		params = $.param({ "assessmentid": id, "reportType": docType, "asDownload": asDownload }); 
	}
	else {
		params = $.param({ "assessmentid": id, "reportType": docType, "asDownload": asDownload, "returnUrl": returnUrl });
	}
	CallReport('ExecutiveSummaryChooser', params);
}



// --------------------------------------------------------------------------------------------------------
//      Assessment Popup Display Functions
// --------------------------------------------------------------------------------------------------------

function AddBubbleBox(textareaID, bubbleBoxListID) {

    var textArea = $("#" + textareaID)[0];
    if (textArea) {
        var selectionStart = textArea.selectionStart;
        var selectionEnd = textArea.selectionEnd;
        var keyword = $("#" + bubbleBoxListID).val();

        if (selectionStart == selectionEnd) {
            alert("Text must be selected before a Bubble Box can be added.");
            return;
        }

        if (keyword == "") {
            alert("Select a Bubble Box.");
            return;
        }

        var text = textArea.value;
        var beforeText = text.substring(0, selectionStart);
        var selectedText = text.substring(selectionStart, selectionEnd);
        var afterText = text.substring(selectionEnd);

        textArea.value = beforeText + "{bubble|" + keyword + "|" + selectedText + "}" + afterText;

    }

}

function ShowBubbleBox(keyword) {
    ShowPopup("BubbleBox", keyword);
}

function ShowBlueBox(keyword) {
    ShowPopup("BlueBox", keyword);
}

function ShowPopup(popupType, keyword) {
    var params = $.param({ "popupType": popupType, "keyword": keyword });
    LoadInputForm("Question", "ViewPopup", params, "PopupContainer", null);
}


// --------------------------------------------------------------------------------------------------------
//      Shared Account-related Functions
// --------------------------------------------------------------------------------------------------------



function SubmitLogOn() {
    ClearMessage();
    var form = $("#LogOnForm");
    form.validate();
    if (form.valid()) {
        ShowSpinner();
        var params = form.serialize();
        CallActionWithParams('Account', 'LogOn', params);
    }
}

function ForgotPassword() {
    if (confirm('Click OK to have a temporary password sent to the email address used as your Username.')) {
        if ($("#LogOnForm").validate().element("#LogOn_UserName")) {
            ShowSpinner();
            var params = $("#LogOnForm").serialize();
            CallActionWithParams('Account', 'ResetPassword', params)
        }            
    }
}    

function SubmitChangePassword() {
    ClearMessage();
    var form = $("#ChangePasswordForm");
    form.validate();
    if (form.valid()) {
        ShowSpinner();
        var params = form.serialize();
        CallActionWithParams('Account', 'ChangePassword', params);
    }
}

function NotifyAccountNeeded() {
	var msg = "This person does not currently have a user account.  You can create one by navigating ";
	msg += "to this person's record and clicking the Save link.";
	alert(msg);
}

// --------------------------------------------------------------------------------------------------------
//      Shared School-site-related Functions
// --------------------------------------------------------------------------------------------------------

function ShowAllSchools() {
    $("div.schoolRow").fadeIn(300);
    $(".showSchool").hide();
    $(".hideSchool").show();
}

function HideAllSchools() {
    $("div.schoolRow").fadeOut(300);
    $(".showSchool").show();
    $(".hideSchool").hide();
}

function ShowSchools(districtID) {
    $("#District-" + districtID).fadeIn(300);
    $("#Hide-" + districtID).show();
    $("#Show-" + districtID).hide();
}

function HideSchools(districtID) {
    $("#District-" + districtID).fadeOut(300);
    $("#Hide-" + districtID).hide();
    $("#Show-" + districtID).show();
}

function PreviewSurvey(parentID, surveyID)
{
    var params = $.param({"parentID":parentID, "surveyID":surveyID});
    LoadInputForm("Program", "PreviewSurvey",params,"SurveyResultsContainer");            
}

function PreviewSchools(schoolSetID)
{
    var params = $.param({"schoolSetID":schoolSetID});
    LoadInputForm("Program", "PreviewSchoolSet", params, "SchoolSetResultsContainer");            
}


// --------------------------------------------------------------------------------------------------------
//      Misc Shared Functions
// --------------------------------------------------------------------------------------------------------

function ShowSelectContactWorksiteForm(assessmentType) {
    var callback = function () { RedirectToAssessmentHome(assessmentType); };
    LoadInputForm("WhaContact", "AssignedWorksites", null, "contactWorksitesContainer", callback);
}

function RedirectToAssessmentHome(assessmentType) {
    var form = $("#ContactWorksiteForm");
    var params = form.serialize() + "&assessmentType=" + assessmentType;
    RedirectWithParams("Assessment", "AssessmentHome", params);
	CloseDialog();
}


function ShowSwitchOrganizationDialog(refreshPage, controller) {

    if (controller == null) { controller = "WhaContact"; }

	params = $.param({ "refreshPage": refreshPage });
    LoadInputForm(controller, "AssignedOrganizations", params, "dialogSwitchOrganizationContainer", function() { SwitchOrganization(controller); } );
}

function SwitchOrganization(controller) {
    if (controller == null) { controller = "WhaContact"; }

	var form = $("#SwitchOrganizationForm");
    CallActionWithParams(controller, "SwitchOrganization", form.serialize());
    CloseDialog();
    ShowInfo("Switching organizations... please wait");
}

function ImpersonateUser(webUserID) {
    if (confirm('Are you sure you want to impersonate this user?')) {
        CallActionWithID("Account", "Impersonate", webUserID);
    }
}

function ShowColorPicker(elementID) {
    $("#" + elementID).miniColors();
}

function SelectCountiesForState(countyElementID, stateAbbreviation, emptyItemLabel) {
	ClearDropdownList(countyElementID, true);
	var params = $.param({ "dropdownListID": countyElementID, "stateAbbreviation": stateAbbreviation, "emptyItemLabel": emptyItemLabel });
	RefreshContent('Map', 'GetCountiesForState', params, countyElementID.replace('.', '_') + "Container");
}
// example handler setup for above method: 
// $('#PREFIX_STATE').change(function () { SelectCountiesForState('AddressPrefix.County', $('#' + this.id).val(), '- Select -'); });

function ShowNoToolboxDialog(hasSubscription, topicName) {
	var content;
	if (hasSubscription) {
		content = "To view this toolbox you must first complete and submit a " + topicName + " module.";
	}
	else {
		content = "Your subscription does not include access to this toolbox. ";
		content += "To learn how you can access toolboxes please contact NCPP at (919) 969-7022 ";
		content += "(additional fees may apply).";
	}
	ShowSimpleDialog("toolboxMessageContainer", content);
}


function ShowHelp(key) {
    var params = $.param({ 'key': key });
    LoadInputForm("Help", "ShowHelp", params, "helpContainer");
}

