var time_list = new Array("Midnight", "1 AM", "2 AM", "3 AM", "4 AM", "5 AM", "6 AM", "7 AM", "8 AM", "9 AM", "10 AM", "11 AM", "Noon", "1 PM", "2 PM", "3 PM", "4 PM", "5 PM", "6 PM", "7 PM", "8 PM", "9 PM", "10 PM", "11 PM");

function deptSettingsEdit()
{
    var form = document.forms[0];
    var dept = form.dept.options[form.dept.options.selectedIndex].value;

    setRequired(dept, form);
    setGameSystem(dept, form);
    setStartTime(dept, form);
    setAllowPrereg(dept, form);
}

function deptSettings(form)
{
    var dept = form.dept.options[form.dept.options.selectedIndex].value;

    setRequired(dept, form);
    setGameSystem(dept, form);
    setDuration(dept, form.duration_hour);
    setPlayersPerGame(dept, form.players_per_board);
    setStartTime(dept, form);
    setAllowPrereg(dept, form);
}

function setGameSystem(dept, form)
{
    var game_system_row = document.getElementById("game_system_row");
    if (dept == "S" || dept == "O")
    {
        game_system_row.style.visibility = "hidden";
    }
    else
    {
        game_system_row.style.visibility = "visible";
    }
}

function setRequired(dept, form)
{
    rpga_input = document.getElementById("rpga_input");
    rpga_input.style.visibility = "hidden";

    tr_elem = document.getElementById("title_row");
    th_title = tr_elem.getElementsByTagName("th")[0];
    tr_elem = document.getElementById("description_row");
    th_desc = tr_elem.getElementsByTagName("th")[0];
    tr_elem = document.getElementById("game_system_row");
    th_game_system = tr_elem.getElementsByTagName("th")[0];
    switch (dept)
    {
        case "B":
            th_title.innerHTML = "Title";
            th_desc.innerHTML = "Description";
            th_game_system.innerHTML = "Game System <span class=\"required\">*</span>";
            break;
        case "C":
            th_title.innerHTML = "Title <span class=\"required\">*</span>";
            th_desc.innerHTML = "Description";
            th_game_system.innerHTML = "Game System <span class=\"required\">*</span>";
            break;
        case "S":
            th_title.innerHTML = "Title <span class=\"required\">*</span>";
            th_desc.innerHTML = "Description <span class=\"required\">*</span>";
            th_game_system.innerHTML = "Game System";
            break;
        case "R":
            rpga_input.style.visibility = "visible";
        default:
            th_title.innerHTML = "Title <span class=\"required\">*</span>";
            th_desc.innerHTML = "Description <span class=\"required\">*</span>";
            th_game_system.innerHTML = "Game System <span class=\"required\">*</span>";
    }
}

function daySettings(form, choice)
{
    var dept = form.dept.options[form.dept.options.selectedIndex].value;
    setStartTime(dept, form, choice);
}

function setDuration(dept, duration)
{
    switch (dept)
    {
        case "B":
        case "C":
        case "L":
        case "R":
            duration.value = 4; break;
        case "M":
            duration.value = 6; break;
        case "P":
            duration.value = 1; break;
        case "S":
            duration.value = 2; break;
    }
}

function setPlayersPerGame(dept, players_per_board)
{
    switch (dept)
    {
        case "B":
            players_per_board.value = 4; break;
        case "C":
        case "M":
            players_per_board.value = 2; break;
        case "R":
            players_per_board.value = 6; break;
        case "P":
            players_per_board.value = 1; break;
        case "L":
        case "S":
            players_per_board.value = ''; break;
    }
}

function setStartTimeAll(dept, form)
{
	setStartTime(dept, form, 1);
	setStartTime(dept, form, 2);
	setStartTime(dept, form, 3);
}

function setStartTime(dept, form, choice)
{
    var day = eval("form.start_day" + choice + ".options.selectedIndex");
	var selected_time_index = eval("form.start_hour" + choice + ".options.selectedIndex");
    var selected_time = eval("form.start_hour" + choice + ".options[" + selected_time_index + "].value");
                    
    var num_hr_options = eval("form.start_hour" + choice + ".length");
                    
    var j = 0;
    var start_index = 0;
    var end_index = 23;
    if (day == 0) var start_index = 12;
    if (day == 3) var end_index = 15;

    for (var i = 0; i < num_hr_options; i++)
	{
    	switch (choice)
    	{
        	case 1:
        		form.start_hour1.options[i] = null;
				break;
        	case 2:
        		form.start_hour2.options[i] = null;
				break;
        	case 3:
        		form.start_hour3.options[i] = null;
		}
	}

	for (var i = start_index; i <= end_index; i++)
	{
   		switch (choice)
   		{
			case 1:
				form.start_hour1.options[j] = new Option(time_list[i], i);
				/* Set selected value, if any */ /* Question the > not >= */
				if (i == selected_time)
					form.start_hour1.options[j].selected = true;
				form.start_hour1.length = ++j;
				break;
			case 2:
				form.start_hour2.options[j] = new Option(time_list[i], i);
				/* Set selected value, if any */ /* Question the > not >= */
				if (i == selected_time)
					form.start_hour2.options[j].selected = true;
				form.start_hour2.length = ++j;
				break;
			case 3:
				form.start_hour3.options[j] = new Option(time_list[i], i);
				/* Set selected value, if any */ /* Question the > not >= */
				if (i == selected_time)
					form.start_hour3.options[j].selected = true;
				form.start_hour3.length = ++j;
		}
	}
}

function setAllowPrereg(dept, form)
{
    if (dept == "S")
    {
        form.allow_event_prereg.options[1].selected = true;
    }
    else
    {
        form.allow_event_prereg.options[0].selected = true;
    }
}

function checkData(form)
{
    var error_list = "";

    if (form.dept.value.length <= 0)
        error_list += "A Department must be selected.\n";
    if (form.title.value.length <= 0)
        error_list += "Game title is required.\n";
    if (form.game_desc.value.length <= 0)
        error_list += "Game description is required.\n";
    if (form.gm.value.length <= 0)
        error_list += "GM is required.\n";
    if ((form.duration_hour.value <= 0) && (form.duration_min.value <= 0))
        error_list += "A duration is required.\n";

    if (error_list.length > 0)
    {
        form.step = 1;
        alert(error_list);
    }
    else
    {
        form.step = 2;
        form.submit();
    }
}

function countChars(form)
{
    var num_chars = 400 - form.game_desc.value.length;
    document.getElementById("char_count").innerHTML = num_chars;
    if (num_chars < 0)
        document.getElementById("char_count").style.color = "#ff0000"; 
    else
        document.getElementById("char_count").style.color = "#000000"; 
}

