function check_other(object)
{
	var other = document.getElementById(object.id + "_other");
	var enable = false;
	other.disabled = true;
	
	if (object.type == "checkbox")
	{
		if (object.checked == true)
		{
			enable = true;
		}
	}
	else if (object.value == "X")
	{
		enable = true;
	}	
	
	if (enable)
	{
		other.disabled = false;
		other.focus();
	}
}

function check_submit(object)
{
	var d = document;
	var f = object.parentNode.parentNode;
	var fields = f.getElementsByTagName("select");
	var others = f.getElementsByTagName("input");
	var cb = f.getElementsByTagName("input");
	var chk_groups = new Array();
	var ready = true;
	var pos = "";
	var name = "";
	var other;
	var i = 0;
	var cond = conditions();
	var do_check = true;
	
	for (i=0;i<others.length;i++)
	{
		if (others[i].id != "formsubmit")
		{
			others[i].style.border = "";
		}
	}
	
	for (i=0;i<fields.length;i++)
	{
		fields[i].style.border = "";
		do_check = true;
		for(x in cond)
		{
			if (fields[i].id == cond[x])
			{
				do_check = false;
			}
		}
		
		if (do_check)
		{
			if (fields[i].value == "")
			{
				fields[i].style.border = "1px solid red";
				ready = false;
			}
			else if (fields[i].value == "X")
			{
				other = d.getElementById(fields[i].id + "_other");
				if (other.value == "")
				{
					other.style.border = "1px solid red";
					ready = false;
					
					if (pos == "")
						pos = fields[i].id;
				}
			}
		}			
	}
	
	for(i=0;i<cb.length;i++)
	{
		if (cb[i].type == "checkbox")
		{
			name = cb[i].id.substr(0,strpos(cb[i].id,"_"));
			if (chk_groups[name] == undefined)
			{
				chk_groups[name] = false;
			}
			
			if (chk_groups[name] == false)
			{
				chk_groups[name] = cb[i].checked;
			}
			
			if (strpos(cb[i].id,"_checkbox") !== false)
			{
				chk_groups[name] = true;
			}
		}
	}
	
	for (name in chk_groups)
	{
		document.getElementById("pg_" + name).style.color = "";
		do_check = true;
		
		for(x in cond)
		{
			if (name == cond[x])
			{
				do_check = false;
			}
		}
		
		if (do_check)
		{
			if (!chk_groups[name])
			{
				document.getElementById("pg_" + name).style.color = "red";
				ready = false;
				
				if (pos == "")
					pos = name + "_1";
			}
		}			
	}
	
	if (ready)
	{
		f.submit();
	}
	else
	{
		alert("This survey is not ready for submission. Please\r\nfill out the highlighted fields and try again");
		if (pos != "") { document.getElementById(pos).focus(); }
		window.scrollBy(0,-50);
	}
}

function strpos( haystack, needle, offset)
{
    var i = (haystack+'').indexOf(needle, (offset ? offset : 0));
    return i === -1 ? false : i;
}
