// Copies the width of the header cells to the first row's cells
function init()
{
	for(i=1; i<6; i++)
	{
		if(document.getElementById("data" + i)) {
			eval("var fill" + i +  " = document.getElementById(\"fill" + i + "\")");
			eval("var data" + i +  " = document.getElementById(\"data" + i + "\")");
			eval("data" + i + ".width = fill" + i +".width");
			//eval("var fill" + i +  " = document.getElementById(\"count_as_10_fill" + i + "\")");
			//eval("var data" + i +  " = document.getElementById(\"count_as_10_data" + i + "\")");
			//eval("count_as_10_data" + i + ".width = count_as_10_fill" + i +".width");
		}
	}

	if(document.getElementById("count_as_10_courses_content")){
	for(i=1; i<5; i++)
	{
		//eval("var fill" + i +  " = document.getElementById(\"fill" + i + "\")");
		//eval("var data" + i +  " = document.getElementById(\"data" + i + "\")");
		//eval("data" + i + ".width = fill" + i +".width");
		eval("var count_as_10_fill" + i +  " = document.getElementById(\"count_as_10_fill" + i + "\")");
		eval("var count_as_10_data" + i +  " = document.getElementById(\"count_as_10_data" + i + "\")");
		eval("count_as_10_data" + i + ".width = count_as_10_fill" + i +".width");
	}

	}
}

function alternate_tables (
		str_tableid, // table id (req.)
		num_header_offset, // how many rows to skip before applying effects at the begining (opt.)
		num_footer_offset, // how many rows to skip at the bottom of the table (opt.)
		str_odd_color, // background color for odd rows (opt.)
		str_even_color // background color for even rows (opt.)
	) {

	 // skip non DOM browsers
	if (typeof(document.all) != 'object') return;

	// validate required parameters
	if (!str_tableid) return alert ("No table(s) ID specified in parameters");
	var obj_tables = (document.all ? document.all[str_tableid] : document.getElementById(str_tableid));
	if (!obj_tables) return alert ("Can't find table(s) with specified ID (" + str_tableid + ")");

	// set defaults for optional parameters
	var col_config = [];
	col_config.header_offset = (num_header_offset ? num_header_offset : 0);
	col_config.footer_offset = (num_footer_offset ? num_footer_offset : 0);
	col_config.odd_color = (str_odd_color ? str_odd_color : '#ffffff');
	col_config.even_color = (str_even_color ? str_even_color : '#dbeaf5');

	
	// init multiple tables with same ID
	if (obj_tables.length)
		for (var i = 0; i < obj_tables.length; i++)
			tt_init_table(obj_tables[i], col_config);
	// init single table
	else
		tt_init_table(obj_tables, col_config);
}

function tt_init_table (obj_table, col_config) {
	var col_lconfig = [],
		col_trs = obj_table.rows;
	for (var i = col_config.header_offset; i < col_trs.length - col_config.footer_offset; i++) {
		col_trs[i].config = col_config;
		col_trs[i].lconfig = col_lconfig;
		col_trs[i].set_color = tt_set_color;
		col_trs[i].onmouseover = tt_mover; 
		col_trs[i].onmouseout = tt_mout;
		col_trs[i].onmousedown = tt_onclick;
		col_trs[i].order = (i - col_config.header_offset) % 2;
		col_trs[i].onmouseout();
	}
}
function tt_set_color(str_color) {
	this.style.backgroundColor = str_color;
}

// event handlers
function tt_mover () {
	if (this.lconfig.clicked != this)
		this.set_color(this.config.mover_color);
}
function tt_mout () {
	if (this.lconfig.clicked != this)
		this.set_color(this.order ? this.config.odd_color : this.config.even_color);
}
function tt_onclick () {
	if (this.lconfig.clicked == this) {
		this.lconfig.clicked = null;
		this.onmouseover();
	} else {
		var last_clicked = this.lconfig.clicked;
		this.lconfig.clicked = this;
		if (last_clicked) last_clicked.onmouseout();
		this.set_color(this.config.onclick_color);
	}
}

// global index for sorting ... do not remove
var current_sort_index = 0;
var current_sort_type = "STRING";
var sort_cell_direction_array = new Array(1,1,1,1,1,1,1,1,1,1);

function cellObj() {
	this.className = "";
	this.id = "zz";
	this.width = "bbbb";
	this.innerText = "";
	this.innerHTML = "";
}

function sortTable(table_id, curr_column, sort_type) {
	var header_array = new Array();
	var cell_array = new Array();
	var table_elem = document.getElementById(table_id);
	var row_array = new Array();
	var row_counter = 0;
	current_sort_type = sort_type;

	current_sort_index = curr_column;
	
	// we will store the id of the tr in the last array cell

	if(table_elem.rows.length > 0) {
		var myrow = table_elem.rows.item(0);
		for(var counter = 0; counter < myrow.cells.length; counter++) {
			var cell_obj = new cellObj();
			cell_obj.width = myrow.cells[counter].style.width;
			cell_obj.id = myrow.cells[counter].id;
			header_array[counter] = cell_obj;
		}
	}

	while(table_elem.rows.length > 0) {
		var myrow = table_elem.rows.item(0);
		row_array[row_counter] = new Array(myrow.cells.length + 1);
		for(var counter = 0; counter < myrow.cells.length; counter++) {
			var cell_obj = new cellObj();
			cell_obj.className = myrow.cells[counter].className;
			cell_obj.id = myrow.cells[counter].id;
			cell_obj.width = myrow.cells[counter].width;
			cell_obj.innerHTML = myrow.cells[counter].innerHTML;
			cell_obj.innerText = myrow.cells[counter].innerText;

			row_array[row_counter][counter] = cell_obj;
		}
		row_counter++;
		table_elem.deleteRow(0);
	}

	row_array = row_array.sort(tableSort);

	// add header row

	for(var counter = 0; counter < row_array.length; counter++) {
		var myrow = row_array[counter];
		new_row = table_elem.insertRow();
		new_row.id = myrow[myrow.length - 1];

		for(var counter2 = 0; counter2 < myrow.length - 1; counter2++) {
			new_cell = new_row.insertCell();
			var my_cell = myrow[counter2];
			new_cell.innerHTML = my_cell.innerHTML;
			new_cell.style.width = my_cell.width;
			new_cell.id = my_cell.id;
		}
	}
	alternate_tables(table_id, 0, 0, '#ffffff', '#eef', '#ffcc66', '#cccccc');

	if(sort_cell_direction_array[current_sort_index] == 0) {
		sort_cell_direction_array[current_sort_index] = 1;
		var arrowObj = document.getElementById("img" + curr_column);
		arrowObj.src = "images/sort_down.gif";
		arrowObj.alt = "Ascending";
	} else {
		sort_cell_direction_array[current_sort_index] = 0;
		var arrowObj = document.getElementById("img" + curr_column);
		arrowObj.src = "images/sort_up.gif";
		arrowObj.alt = "Descending";
	}
}

function tableSort(r1, r2) {

	try
	{
		switch(new String(current_sort_type).toUpperCase()) {

			case "NUMBER":
			
				if(sort_cell_direction_array[current_sort_index] == 0) {
					if(parseFloat(r1[current_sort_index].innerText) < parseFloat(r2[current_sort_index].innerText)) {
						retVal = -1;
					} else if(parseFloat(r1[current_sort_index].innerText) > parseFloat(r2[current_sort_index].innerText)) {
						retVal = 1;
					}	else {
						retVal = 0;
					}
				} else {
					if(parseFloat(r1[current_sort_index].innerText) < parseFloat(r2[current_sort_index].innerText)) {
						retVal = 1;
					} else if(parseFloat(r1[current_sort_index].innerText) > parseFloat(r2[current_sort_index].innerText)) {
						retVal = -1;
					}	else {
						retVal = 0;
					}
				}
				
				break;

			case "DATE":
			
				if(sort_cell_direction_array[current_sort_index] == 0) {
					if(new Date(r1[current_sort_index].innerText) < new Date(r2[current_sort_index].innerText)) {
						retVal = -1;
					} else if(new Date(r1[current_sort_index].innerText) > new Date(r2[current_sort_index].innerText)) {
						retVal = 1;
					}	else {
						retVal = 0;
					}
				} else {
					if(new Date(r1[current_sort_index].innerText) < new Date(r2[current_sort_index].innerText)) {
						retVal = 1;
					} else if(new Date(r1[current_sort_index].innerText) > new Date(r2[current_sort_index].innerText)) {
						retVal = -1;
					}	else {
						retVal = 0;
					}
				}
				
				break;

			default: // String
			
				if(sort_cell_direction_array[current_sort_index] == 0) {
					if(r1[current_sort_index].innerText.toLowerCase() < r2[current_sort_index].innerText.toLowerCase()) {
						retVal = -1;
					} else if(r1[current_sort_index].innerText.toLowerCase() > r2[current_sort_index].innerText.toLowerCase()) {
						retVal = 1;
					}	else {
						retVal = 0;
					}
				} else {
					if(r1[current_sort_index].innerText.toLowerCase() < r2[current_sort_index].innerText.toLowerCase()) {
						retVal = 1;
					} else if(r1[current_sort_index].innerText.toLowerCase() > r2[current_sort_index].innerText.toLowerCase()) {
						retVal = -1;
					}	else {
						retVal = 0;
					}
				}
				break;
		}
	} catch (objError) {
		retVal = 0;
	}	

	return retVal;
}

function alternate_colors()
{
	alternate_tables("courses_content", 0, 0, '#ffffff', '#eef');
}

// Formatting of Content Starts Here
function insertStrong(aField) {
if (document.selection && document.selection.createRange) {
    var str = document.selection.createRange().text;
  } else {
    alert("Sorry, the \"Bold\" feature only works with Internet Explorer.");
  }

  	eval("document.forms[0]." + aField + ".focus()");
	str = "<strong>" + str + "</strong>\r"
	document.selection.createRange().text = str;
}

function underline(aField) {
if (document.selection && document.selection.createRange) {
    var str = document.selection.createRange().text;
  } else {
    alert("Sorry, the \"Underline\" feature only works with Internet Explorer.");
  }

  	eval("document.forms[0]." + aField + ".focus()");
	str = "<u>" + str + "</u>\r"
	document.selection.createRange().text = str;
}

function makeItalic(aField) {
if (document.selection && document.selection.createRange) {
    var str = document.selection.createRange().text;
  } else {
    alert("Sorry, the \"Italic\" feature only works with Internet Explorer.");
  }

  	eval("document.forms[0]." + aField + ".focus()");
	str = "<i>" + str + "</i>\r"
	document.selection.createRange().text = str;
}

function addList(aField)
{
	var numOfLists= parseInt(prompt ("How many List Items would you like to create?","3"))

	if (document.selection && document.selection.createRange) {
    var str = "";
  } else {
    alert("Sorry, the creating a \"New List\" feature only works with Internet Explorer.");
  }
  
	eval("document.forms[0]." + aField + ".focus()");
  	for(i=0; i<numOfLists; i++)
	{
		eval("document.forms[0]." + aField + ".focus()");
		str += "<li>REPLACE" + (i+1) + "</li>\r";
	}
	if(isNaN() && (numOfLists > 0))
	{
		document.selection.createRange().text = "<ul>\r" + str + "</ul>\r";
	}
}

function makeRed(aField) {
if (document.selection && document.selection.createRange) {
    var str = document.selection.createRange().text;
  } else {
    alert("Sorry, the \"Important !\" feature only works with Internet Explorer.");
  }

  	eval("document.forms[0]." + aField + ".focus()");
	str = "<span class='red'>" + str + "</span>\r"
	document.selection.createRange().text = str;
}

function makeLink(aField) {
if (document.selection && document.selection.createRange) {
    var str = document.selection.createRange().text;
  } else {
    alert("Sorry, the inserting a \"New Link\" feature only works with Internet Explorer.");
  }

  	eval("document.forms[0]." + aField + ".focus()");
	var url = prompt("What is the actual website Address?","http://www.REPLACE.com/");
	if(url.indexOf("REPLACE") == -1)
	{
		str = "<a href='" + url + "' target='newWin'>" + str + "</a>\r";
		document.selection.createRange().text = str;
	}
	else
	{
		return;
	}
}

function newLine(aField) {
if (document.selection && document.selection.createRange) {
    var str = document.selection.createRange().text;
  } else {
    alert("Sorry, the inserting a \"New Line\" feature only works with Internet Explorer.");
  }

  	eval("document.forms[0]." + aField + ".focus()");
	str = "<br>\r"
	document.selection.createRange().text = str;
}

// Toggling of Edit / Preview Modes
var onEditMode = true;
function toggleModes(label)
{
	var textareaArray = document.getElementsByTagName("TEXTAREA");
	var edit_divs = [];
	var preview_divs = [];
	
	for(i=1; i<=textareaArray.length; i++)
	{
		edit_divs[i] = document.getElementById("edit_interface" + i);
		preview_divs[i] = document.getElementById("preview" + i);
	}

	if(onEditMode)
	{
		for(i=1; i<=textareaArray.length; i++)
		{
			preview_divs[i].innerHTML = textareaArray[i-1].value;
			edit_divs[i].style.display = "none";
			preview_divs[i].style.display = "block";
		}
		label.value = "Edit";
		onEditMode = false;
	}
	else
	{
		for(i=1; i<=textareaArray.length; i++)
		{
			edit_divs[i].style.display = "block";
			preview_divs[i].style.display = "none";
		}
		label.value = "Preview";
		onEditMode = true;
	}
}
function chkDropDown(objForm)
{
  if (objForm.state_key.value =="")
	{
	 	 return false;
	}
	else
	{
	 		objForm.submit();
	}
} 