// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

document.observe("dom:loaded", function() {
  API = API_1484_11 = new LmsAPI();
});

var ELN = {
	ajaxToRails: function(relativePath, parameters, httpMethod, completeCallback, interactiveCallback) {
		if ( httpMethod == null ) {
			httpMethod = 'get';
		}
	  url = ELN.relativeURL(relativePath);
		new Ajax.Request(url, 
                     {asynchronous:true, evalScripts:true, method: httpMethod, parameters:parameters,
											onInteractive: function(transport) {
												if ( interactiveCallback != null ) {
													interactiveCallback(transport);
												}
											},
											onComplete: function(transport) {
												if ( completeCallback != null ) {
													completeCallback(transport);
												}
											}
										 }
										);
	},
	
	relativeURL: function(path) {
	  return (window.location.pathname.gsub("/$", "") + path).gsub("//", "/");
	},
	
	toggleTask: function(organizationId, taskId, checkedIconId, uncheckedIconId, taskTitleId) {
		var checked = Element.visible(checkedIconId);
		var action = '';
		if ( checked ) {
			Element.hide(checkedIconId);
			Element.show(uncheckedIconId);
			Element.removeClassName(taskTitleId, 'checked');
			action = 'activate';
		}
		else {
			Element.hide(uncheckedIconId);
			Element.show(checkedIconId);
			Element.addClassName(taskTitleId, 'checked');
			action = 'complete';
		}
		var url = '/organizations/' + organizationId + '/tasks/' + taskId + '/' + action;
		ELN.ajaxToRails(url, {}, 'post');
	}
};

var Learner = {
	selectCourse: function(coursesOrganizationId) {
		var loadingElement = $('load-course');
		loadingElement.show();
		var onInteractive = function(transport) {
			stopVideo();		// kill the current video (if one is playing)
		};
		var onComplete = function(transport) {
			loadingElement.hide();
		};
		ELN.ajaxToRails('/select_course', {courses_organization_id: coursesOrganizationId}, 'get', onComplete, onInteractive);
	}
};

function onSelectPassingScoreType(selectElement) {
	var value = null;
	var selectElement = $(selectElement);
	if ( selectElement && selectElement.selectedIndex >= 0 )
	{
		value = selectElement.options[selectElement.selectedIndex].value
	}
	if ( value == 1 ) {
		Element.hide('passing_score_div');
	}
	else {
		Element.show('passing_score_div');
	}
};

var REAOnline = {
	showMyLessons: function() {
		Element.show('my_lesson_plan');
		Element.addClassName('my_lesson_plan_nav_tab', 'selected_tab');
		Element.hide('course_details');
		Element.removeClassName('course_details_nav_tab', 'selected_tab');
	},
	
	showCourseDetails: function() {
		Element.show('course_details');
		Element.addClassName('course_details_nav_tab', 'selected_tab');
		Element.hide('my_lesson_plan');
		Element.removeClassName('my_lesson_plan_nav_tab', 'selected_tab');
	},
	
	showBox: function(boxElementId) {
		Element.show(boxElementId);
		Element.show(boxElementId + '_collapse_icon');
		Element.hide(boxElementId + '_expand_icon');
		storeInUserState(boxElementId + '_collapsed', false, 'FalseClass');
	},

	hideBox: function(boxElementId) {
		Element.hide(boxElementId);
		Element.hide(boxElementId + '_collapse_icon');
		Element.show(boxElementId + '_expand_icon');
		storeInUserState(boxElementId + '_collapsed', true, 'TrueClass');
	},
	
	showSmallBox: function(boxElementId, expandedHeaderElementId, collapsedHeaderElementId, boxBodyElementId) {
		Element.show(boxBodyElementId);
		Element.show(expandedHeaderElementId);
		Element.hide(collapsedHeaderElementId);
		storeInUserState(boxElementId + '_collapsed', false, 'FalseClass');
	},
	
	hideSmallBox: function(boxElementId, expandedHeaderElementId, collapsedHeaderElementId, boxBodyElementId) {
		Element.hide(boxBodyElementId);
		Element.hide(expandedHeaderElementId);
		Element.show(collapsedHeaderElementId);
		storeInUserState(boxElementId + '_collapsed', true, 'TrueClass');
	},
	
	showSeries: function(seriesId) {
    var thisLinkId = 'rea_online_videos_box_series_navigator_link_' + seriesId;
		var seriesMenuId = 'rea_online_videos_box_header_menu_link_' + seriesId;
		var seriesElementId = 'rea_online_videos_' + seriesId + '_series';
		var seriesIndicatorId = 'rea_online_' + seriesId + '_series_indicator';
		
		var elements = document.getElementsByClassName('rea_online_videos_box_series_navigator_link');
		for (var i=0; i<elements.length; i++) {
			Element.removeClassName(elements[i], 'selected');
		}
		Element.addClassName(seriesMenuId, 'selected');

		var elements = document.getElementsByClassName('rea_online_selected_series_indicator');
		for (var i=0; i<elements.length; i++) {
			Element.hide(elements[i]);
		}
		Element.show(seriesIndicatorId);

    $(thisLinkId).addClassName('selected');

		var elements = document.getElementsByClassName('rea_online_videos_series');
		for (var i=0; i<elements.length; i++) {
			Element.hide(elements[i]);
		}
		Element.show(seriesElementId);
	},
	
	onMouseOverTopic: function(selectedViewLessonsButtonId) {
		Element.show(selectedViewLessonsButtonId);
	},
	
	onMouseOutTopic: function(selectedViewLessonsButtonId) {
		Element.hide(selectedViewLessonsButtonId);
	}
}