var locked;
var old_modcat = old_id = false;
if(navigator.userAgent.indexOf('Safari')!==-1)
	browser = 'Safari';
else if(navigator.userAgent.indexOf('MSIE')!==-1)
	browser = 'IE';
	else if(navigator.userAgent.indexOf('Opera')!==-1)
	browser = 'Opera';
else
	browser = 'FFox';

function check_cf()
{
	if (submit_is_red&&!submit_pressed)
	{
		return "Your changes are not saved!";
	}
}

function doOnload()
{
	var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;
	if (typeof(root.onbeforeunload) != "undefined")root.onbeforeunload = check_cf;

	var layer;
	if(layer = document.getElementById('LOx_layer'))
	{
		var total_width,right,left = getLeft(1),padding=4;
		left -= padding;
//		layer.style.left = 0;
//		layer.style.top = 0;
		document.getElementById('LOx_table').left = 0;

		// set the total width of the table
		for(i=2;column = document.getElementById('LO_col'+(i-1));i++)
		{}
		total_width = getLeft(i-1) - getLeft(1) + padding;
		document.getElementById('LOx_table').width = total_width;

		total_width = 0;
		for(i=2;column = document.getElementById('LO_col'+(i));i++)
		{
			right = getLeft(i);
			if(i==2)
				subtract = padding*3;
			else
				subtract = padding*2;

			//if(browser!='Safari')
				subtract += 2;

			document.getElementById('LO_col'+(i-1)).width = right - left - subtract;
			if(layer_header = document.getElementById('LO_col_layer_header'+(i-1)))
				layer_header.width = right - left - subtract;
			if(layer_header = document.getElementById('LO_col_layer_header2_'+(i-1)))
				layer_header.width = right - left - subtract;

			left = right;
		}
		i++;

		//if(browser!='Safari')
			subtract = 2;
		//else
		//	subtract = 0;

		document.getElementById('LO_col'+(i-2)).width = getLeft(i-1) - getLeft(i-2) - padding - subtract;
		if(layer_header = document.getElementById('LO_col_layer_header'+(i-1)))
			layer_header.width = getLeft(i-1) - getLeft(i-2) - padding - subtract;
		if(layer_header = document.getElementById('LO_col_layer_header2_'+(i-1)))
			layer_header.width = getLeft(i-1) - getLeft(i-2) - padding - subtract;

		//if(browser!='Safari')
			window.setInterval('doOnscroll()',50);
		//else
		//	window.onscroll = doOnscroll;
		window.onresize = doOnresize;
	}

	if(layer = document.getElementById('LOy_layer'))
	{
		var top = getTop(1)+1;
		if(browser=='Opera')
		{
		top--;
	}
		left = getLeft(1);
		layer.style.left = 0;

		layer.style.top = top;
		document.getElementById('LOy_table').left = 0;
		document.getElementById('LOy_table').top = top;

/*		for(i=1;row = document.getElementById('LOy_row'+i);i++)
		{
			bottom = getTop(i);
			maxHeight = row.cells[1].offsetHeight;
			for(j=1;j<row.cells.length;j++)
			{
				if(maxHeight<row.cells[j].offsetHeight)
					maxHeight = row.cells[j].offsetHeight;
			}
			//document.getElementById('LO_row'+(i-1)).height = bottom-top-2;
			document.getElementById('LOy_floatingrow'+i).height = maxHeight;
			top = bottom;
		}
*/		//document.getElementById('LOy_table').width = getLeft(2)-getLeft(1);
	}
	if(layer = document.getElementById('LOy_layer_header'))
	{
		//fix25022010 added check
//		if(document.getElementById('LOy_header_row')) that is wrong //05032010
		{
			//ShowProps(document.getElementById('LO_header_row').style,"style");
			var bounds = getBounds(document.getElementById('LO_header_row'));
			var bottom,top = bounds.top;
			left = getLeft(1);
			layer.style.left = 0;
			layer.style.top = top;
			//layer.firstChild.height = bounds.height; //
			document.getElementById('LOy_layer_header_table').style.height = bounds.height;
			document.getElementById('LOy_table').left = 0;
			document.getElementById('LOy_table').top = top;
		}
		//end fix25022010
/*		for(i=1;row = document.getElementById('LOy_row'+i);i++)
		{
			bottom = getTop(i);
			maxHeight = row.cells[1].offsetHeight;
			for(j=1;j<row.cells.length;j++)
			{
				if(maxHeight<row.cells[j].offsetHeight)
					maxHeight = row.cells[j].offsetHeight;
			}
			//document.getElementById('LO_row'+(i-1)).height = bottom-top-2;
			document.getElementById('LOy_floatingrow'+i).height = maxHeight;
			top = bottom;
		}
*/		//document.getElementById('LOy_table').width = document.getElementById('LOy_layer_header_table').width = document.getElementById('LOy_layer_header2_table').width = getLeft(2)-getLeft(1);
	}

	if(layer = document.getElementById('LOy_layer_header2'))
	{
		//fix 25022010 added check
		if(document.getElementById('LOx_table'))
		{
    			bounds = getBounds(document.getElementById('LOx_table'));
    	    		left = getLeft(1),padding=4;
			left -= padding;
			layer.style.left = 0;
			layer.style.top = top;
			document.getElementById('LOy_layer_header2_table').left = 0;
			document.getElementById('LOy_layer_header2_table').style.height = bounds.height;
		}
		//end fix25022010
	}

	window.onresize = doOnresize;
	window.setInterval('doOnscroll()',50);
	window.onscroll = doOnscroll;

	if(typeof positionMenus == "function")
		positionMenus();

	putFocus();
}

function getBounds(element)
{
	var left = element.offsetLeft;
	var top = element.offsetTop;
	for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
	{
		left += parent.offsetLeft - parent.scrollLeft;
		top += parent.offsetTop - parent.scrollTop
	}

return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}

submit_is_red = false;
submit_pressed=false;
function redSubmit()
{
	if(submit_is_red==false)
	{
		submit_is_red = true;
		if(document.getElementById('top_submit'))
		{
			document.getElementById('top_submit').style.backgroundColor='red';
			document.getElementById('top_submit').style.color='white';
			document.getElementById('top_submit').style.fontWeight='bold';
		}
		if(document.getElementById('bottom_submit'))
		{
			document.getElementById('bottom_submit').style.backgroundColor='red';
			document.getElementById('bottom_submit').style.color='white';
			document.getElementById('bottom_submit').style.fontWeight='bold';
		}
		if(document.getElementById('savebutton'))
		{
			document.getElementById('savebutton').style.backgroundColor='red';
			document.getElementById('savebutton').style.color='white';
			document.getElementById('savebutton').style.fontWeight='bold';
		}
	}
}

function synchronizeFields(obj) {
	return 1;
}

function doOnresize()
{
	doOnload();
	doOnscroll();
}

var unlocking = false;
function dOr()
{
	if(unlocking==false)
		doOnresize();
}

var old_modcat = false;
var opened = false;
function doOnBodyClick()
{
	if(old_modcat!=false && opened==false)
	{
		document.getElementById("menu_hidden"+old_modcat).style.visibility = "hidden";
		document.getElementById("button_"+old_modcat).style.backgroundColor = "transparent";
		document.getElementById("button_"+old_modcat).style.color = '#000000';
		old_modcat = false;
	}
	opened = false;
}

function doOnscroll()
{
	var layer;
	if(layer = document.getElementById("LOx_layer"))
	{
		var pY = (window.document.body.scrollTop ? window.document.body.scrollTop : window.pageYOffset);
		if(pY > getListTop())
			layer.style.visibility = "visible";
		else
			layer.style.visibility = "hidden";
		if(pY)
			layer.style.top = (window.document.body.scrollTop ? window.document.body.scrollTop : window.pageYOffset);
	}

	if(layer = document.getElementById("LOy_layer_header2"))
	{
		var pX = (window.document.body.scrollLeft ? window.document.body.scrollLeft : window.pageXOffset);
		var pY = (window.document.body.scrollTop ? window.document.body.scrollTop : window.pageYOffset);
		if(pY > getListTop() && pX > 25)
			layer.style.visibility = "visible";
		else
			layer.style.visibility = "hidden";
		if(pY)
			layer.style.top = (window.document.body.scrollTop ? window.document.body.scrollTop : window.pageYOffset);
		if(pX)
			layer.style.left = (window.document.body.scrollLeft ? window.document.body.scrollLeft : window.pageXOffset);
	}

	if(layer = document.getElementById("LOy_layer"))
	{
		var pX = (window.document.body.scrollLeft ? window.document.body.scrollLeft : window.pageXOffset);
		if(pX > 25)
			layer.style.visibility = "visible";
		else
			layer.style.visibility = "hidden";
		if(pX)
			layer.style.left = (window.document.body.scrollLeft ? window.document.body.scrollLeft : window.pageXOffset);
	}

    if(layer = document.getElementById("LOy_layer_header"))
	{
		var pX = (window.document.body.scrollLeft ? window.document.body.scrollLeft : window.pageXOffset);
		if(pX > 25)
			layer.style.visibility = "visible";
		else
			layer.style.visibility = "hidden";
		if(pX)
			layer.style.left = (window.document.body.scrollLeft ? window.document.body.scrollLeft : window.pageXOffset);
	}
}

function getLeft(column_number)
{
	var x = 0;
	if(document.layers)
		x = document.layers['LOx'+column_number].pageX;
	else if(document.all || document.getElementById)
	{
		var cell = document.all ? document.all['LOx'+column_number] : document.getElementById('LOx'+column_number);
		while(cell)
		{
			x += cell.offsetLeft;
			cell = cell.offsetParent;
		}
	}
	return x;
}

function getTop(row_number)
{
	var y = 0;
	if(document.layers)
		y = document.layers['LOy'+row_number].pageY;
	else if(document.all || document.getElementById)
	{
		var cell = document.all ? document.all['LOy'+row_number] : document.getElementById('LOy'+row_number);
		while(cell)
		{
			y += cell.offsetTop;
			cell = cell.offsetParent;
		}
	}
	return y-6;
}

function getListTop()
{
	var y = 0;
	if(document.layers)
		y = document.layers['LOx1'].pageY;
	else if(document.all || document.getElementById)
	{
		var cell = document.all ? document.all['LOx1'] : document.getElementById('LOx1');
		while(cell)
		{
		  y += cell.offsetTop;
		  cell = cell.offsetParent;
		}
	}
	return y;
}

function getListBottom(column_number)
{
	var y = 0;
	if(document.layers)
		y = document.layers['LOx'+column_number].pageY;
	else if(document.all || document.getElementById)
	{
		var cell = document.all ? document.all['LOx'+column_number] : document.getElementById('LOx'+column_number);
		while(cell)
		{
			y += cell.offsetTop;
			cell = cell.offsetParent;
		}
	}
	return y-6;
}

var runPutFocus = true;
function putFocus()
{
	var i,o,y=0;
	if(document.forms.length > 0 && runPutFocus==true)
	{
		// we don't want this function to do anything if it's being called a second time (for instance if a hidden field is clicked)
		runPutFocus = false;
		if(document.getElementById("red_button_form"))
		{
//			with(document.getElementById('red_button_form'))
//			{
//				onchange = function() { redSubmit(); }
//			}
//			if(browser=='IE')
			{
				with(document.getElementById('red_button_form'))
				{
					for(i=0;i<length;i++)
					{
						var element = elements[i];
						if(!element.attributes['nored'] || element.attributes['nored'].value!='nored')
						{
							if(element.type == "checkbox" || element.type == "radio")
							{
								element.prioronclick = element.onclick;
								element.onclick = function()
								{
									var ret = true;
									if(this.prioronclick)
										ret = this.prioronclick();

									redSubmit();
									return ret;
								}
								element.prioronkeypress = element.onkeypress;
								element.onkeypress = function()
								{
									var ret = true;
									if(this.prioronkeypress)
									{
										ret = this.prioronkeypress();
									}
									redSubmit();
									return ret;
								}
							}
							else
							{
								element.prioronchange = element.onchange;
								element.onchange = function()
								{
									var ret = true;
									if(this.prioronchange)
									{
										ret = this.prioronchange();
									}
									redSubmit();
									return ret;
								}
							}
						}
					}
				}
			}
		}

		for(o=0;o<document.forms.length;o++)
		{
			for(i=0;i<document.forms[o].elements.length;i++)
			{
				if(document.forms[o].elements[i].type=='text' && document.forms[o].elements[i].name!='LO_search')
				{
					try
					{
						var cell = document.forms[o].elements[i];
						while(cell)
						{
							y += cell.offsetTop;
							cell = cell.offsetParent;
						}

						if(y<getWindowHeight())
							document.forms[o].elements[i].focus();
						return;
					}
					catch(err)
					{}
				}
			}
		}
	}
}

function getWindowHeight()
{
	if(window.innerHeight)
		return window.innerHeight;
	else if(document.documentElement && document.documentElement.clientHeight)
		 return document.documentElement.clientHeight;
	else if(document.body)
		 return document.body.clientHeight;
}

function getWindowWidth()
{
	if(window.innerWidth)
		return window.innerWidth;
	else if(document.documentElement && document.documentElement.clientWidth)
		 return document.documentElement.clientWidth;
	else if(document.body)
		return document.body.clientWidth;
}

function addHTML(html,id,replace)
{
	if(locked!=false)
	{
		if(replace==true)
			document.getElementById(id).innerHTML = html;
		else
			document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + html;
	}
}

function changeHTML(show,hide)
{
	for(key in show)
		document.getElementById(key).innerHTML = document.getElementById(show[key]).innerHTML;
	for(i=0;i<hide.length;i++)
		document.getElementById(hide[i]).innerHTML = '';
}

function checkAll(form,value,name_like)
{
	if(value==true)
		checked = true;
	else
		checked = false;

	for(i=0;i<form.elements.length;i++)
	{
		//if(form.elements[i].type=='checkbox' && form.elements[i].name!='controller' && form.elements[i].name.substr(0,name_like.length)==name_like && form.elements[i].disabled == false)
		if(form.elements[i].type=='checkbox' && form.elements[i].name!='controller' && form.elements[i].name.indexOf(name_like) == 0 && form.elements[i].disabled == false)
			form.elements[i].checked = checked;
	}
}

function checkChildren(id,self,name_like)
{
	var ObjectRange = document.getElementById(id);

	inputItems = ObjectRange.getElementsByTagName('input');

	for (i=0;i<inputItems.length;i++)
	{
		if(inputItems[i].type=='checkbox' && inputItems[i].disabled == false)
		{
			if (name_like != false)
			{
				if (inputItems[i].name.indexOf(name_like) != -1)
				{
					if (inputItems[i].checked == true)
						inputItems[i].checked = self.checked;
					else
				 		inputItems[i].checked = self.checked;
				}
			}
			else
			{
				if (inputItems[i].checked == true)
					inputItems[i].checked = self.checked;
				else
			 		inputItems[i].checked = self.checked;
			}

		}
	}
}

function openMenu(modcat)
{
	document.getElementById("menu_"+modcat).display = 'block';
	if(old_modcat!=false)
		document.getElementById("menu_"+old_modcat).display = 'none';
	//document.getElementById("modcat_input").value=modcat;
	if(old_modcat==modcat)
		old_modcat = false;
	else
		old_modcat = modcat;
}

function getXPos(id)
{
	var x = 0;
	if(document.layers)
		x = document.layers[id].pageX;
	else if(document.all || document.getElementById)
	{
		var cell = document.all ? document.all[id] : document.getElementById(id);
		while(cell)
		{
			x += cell.offsetLeft;
			cell = cell.offsetParent;
		}
	}
	return x;
}

function getYPos(id)
{
	var y = 0;
	if(document.layers)
		y = document.layers[id].pageY;
	else if(document.all || document.getElementById)
	{
		var cell = document.all ? document.all[id] : document.getElementById(id);
		while(cell)
		{
			y += cell.offsetTop;
			cell = cell.offsetParent;
		}
	}
	return y;
}


function replaceAll(haystack,needle,replacement)
{
	haystack = haystack.replace(needle,replacement);
	if(haystack.match(needle))
		haystack = replaceAll(haystack,needle,replacement);
	return haystack;
}

function switchMenu(id)
{
	if(document.getElementById(id).style.display=='none')
	{
		document.getElementById(id).style.display = 'block';
		if(arrow = document.getElementById(id+'_arrow'))
			arrow.src = 'assets/arrow_down.gif';
	}
	else
	{
		document.getElementById(id).style.display = 'none';
		if(arrow = document.getElementById(id+'_arrow'))
			arrow.src = 'assets/arrow_right.gif';
	}
	if(typeof positionMenus == "function")
		positionMenus();
}

function setSI(id,value)
{
	if(value)
	{
		for(i=0;i<=document.getElementById(id).options.length;i++)
		{
			if(document.getElementById(id).options[i].value==value)
			{
				document.getElementById(id).options[i].selected=true;
				return true;
			}
		}
	}
}

var single_quote = "'";
var double_quote = '``';

function hl_cb(cb)
{
	if(browser!="IE")
	{
		cb.checked=!cb.checked;
		hilite_checked(cb);
	}
}

function hilite_checked(cb, row)
{
	if(browser!="IE")
	{
		if(!row || row.tagName.toLowerCase()!='tr')
		{
			var i = 0;
			row = cb;
			do
			{
				row = row.parentNode;
				i++;
			} while (row.tagName.toLowerCase() != "tr" && i<5);
		}
		if(cb.checked)
		{
			row.className+=' hilite';
		}
		else
		{
			row.className=row.className.replace(/hilite/g,'');
		}
	}
}

function check_clicked(row)
{
	if(browser!="IE")
	{
		var cb=row,i=0;
		do
		{
			cb=cb.firstChild;
			i++;
		} while(cb.type!="checkbox" && i<5);
		cb.checked = !cb.checked;
		hilite_checked(cb, row);
	}
}

function CheckAll_hilite(form,value,name_like)
{
	for(i=0;i<form.elements.length;i++)
	{
		if(form.elements[i].type=='checkbox' && form.elements[i].name!='controller' && form.elements[i].name.substr(0,name_like.length)==name_like)
		{
			hilite_checked(form.elements[i]);
		}
	}
}

function enable_input(input, cb)
{
	document.getElementById(input).disabled = cb.checked;
}

function enable_all_inputs(form, name_like, enable)
{
	for(i=0;i<form.elements.length;i++)
	{
		if((form.elements[i].type=='select-one' || form.elements[i].type=='checkbox' || form.elements[i].type=='text' || form.elements[i].type=='radio' ) && form.elements[i].name.substr(0,name_like.length)==name_like)
		{
			form.elements[i].disabled = !enable;
		}
	}
}

function add_benchmark_card_longer_comments(form, name_like, value, replace)
{
	for(i=0;i<form.elements.length;i++)
	{
		if((form.elements[i].type=='textarea') && form.elements[i].name!='controller' && form.elements[i].name.indexOf(name_like)!=-1)//substr(0,name_like.length)==name_like)
		{
			if(replace)
			{
				form.elements[i].value = value;
			}
			else
			{
				form.elements[i].value+=value;
			}
		}
	}
}

function Delete_file(Upload_file_field_id,FileID,log_field_name)
{
	if(confirm('Are you sure you want to delete file?'))
	{
		if(document.student)
		{
			document.student.action = document.student.action + '&log_field_name='+log_field_name+ '&DeleteFileOK=1&FileID=' + FileID + '&Upload_file_field_id=' + Upload_file_field_id;
			document.student.submit();
	 	};
		if(document.user)
		{
			document.user.action = document.user.action +'&log_field_name='+log_field_name+  '&DeleteFileOK=1&FileID=' + FileID + '&Upload_file_field_id=' + Upload_file_field_id;
			document.user.submit();
		};
		if(document.school)
		{
			document.school.action = document.school.action +'&log_field_name='+log_field_name+  '&DeleteFileOK=1&FileID=' + FileID + '&Upload_file_field_id=' + Upload_file_field_id;
			document.school.submit();
		};
		if(document.intervention)
		{
			document.intervention.action = document.intervention.action + '&log_field_name='+log_field_name+ '&DeleteFileOK=1&FileID=' + FileID + '&Upload_file_field_id=' + Upload_file_field_id;
			document.intervention.submit();
		};
	}
}

//Fix for LOy_layer_header;
$( function(){
    if ($('#LOy_layer_header'))
    {
	if ($('#LOy_layer_header').length > 0)
	{
		$('#LOy_layer_header').width($('#LO_header_row .LO_header').width());

		$(window).scroll(function(){
			var scrollPos = ($(window).scrollLeft());
			if (scrollPos > 0)
			{
				//var initialPos = $('#add_div').css("left");
				//var index = initialPos.indexOf('px');
				//initialPos = initialPos.substr(0,index)*1;

				//make sure so the php $left and js initialPos variables are equal (Modules.js)
				var initialPos = 20;
				var newPos = initialPos + scrollPos;
				$('#add_div').css("left",newPos+"px");
			}
		});
	}
    }
});

