// JavaScript Document

/* Function in this file

ToggleButton(checkbox_id, button_id)
isABC(fieldStr)
CheckName(name_id,row_id)
CheckText(text_id,row_id)
echeck(str)
CheckEmailFormat(email_id,row_id)
CheckEmail(email_id,row_id)
CheckSelected(option_id,row_id)
isNum(fieldStr)
CheckNum(num_id,row_id)
CheckRegister()
CheckDate(date_id,row_id)
increaseFontSize()
decreaseFontSize()

*/


function ToggleButton(checkbox_id, button_id)
{
	var box = document.getElementById(checkbox_id);
	var button = document.getElementById(button_id);
	
	//alert("Default = " + box.defaultChecked+" "+box.value+" "+box.type+" "+box.id);
	
	if(box.checked)
	{
		//alert("Checkbox = " + box.checked + " " + "true");
		button.disabled = false;
		button.focus();
	}
	else
	{
		//alert("Checkbox = " + box.checked + " " + "false"+document.getElementById(checkbox_id).id);
		button.disabled = true;
		
	}
	return true;
}

function isABC(fieldStr) 
{
	for (i = 0; i < fieldStr.length; i++) 
	{
		switch(fieldStr.charAt(i))
		{
			case 'a':
			case 'A':
			case 'b':
			case 'B':
			case 'c':
			case 'C':
			case 'd':
			case 'D':
			case 'e':
			case 'E':
			case 'f':
			case 'F':
			case 'g':
			case 'G':
			case 'h':
			case 'H':
			case 'i':
			case 'I':
			case 'j':
			case 'J':
			case 'k':
			case 'K':
			case 'l':
			case 'L':
			case 'm':
			case 'M':
			case 'n':
			case 'N':
			case 'o':
			case 'O':
			case 'p':
			case 'P':
			case 'q':
			case 'Q':
			case 'r':
			case 'R':
			case 's':
			case 'S':
			case 't':
			case 'T':
			case 'u':
			case 'U':
			case 'v':
			case 'V':
			case 'w':
			case 'W':
			case 'x':
			case 'X':
			case 'y':
			case 'Y':
			case 'z':
			case 'Z':
			case '\'':
			case '-':
			case ' ':
			break;
			default:
     			return false;
    	}
  	}
 	return true;
}


function CheckName(name_id,row_id)
{		
	var name = document.getElementById(name_id);
	var row = document.getElementById(row_id);
	
	if(name.value == '')
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return 0;
	}
	if(!isABC(name.value))
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return 0;
	}
	row.style.display="none";
	return 1;
}


function CheckText(text_id,row_id)
{
	var txt = document.getElementById(text_id);
	var row = document.getElementById(row_id);
	
	if(txt.value == '')
	{	
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return 0;
	}
	row.style.display="none";
	return 1;
}


function echeck(str) 
{
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	
	// @ does not exist. Not sure why I need this when it is tested below?????
	if (str.indexOf(at) == -1)
	{
		return false;
	}
	// @ does not exist in the string or is at the start of the string or is at the end of the string
	if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr)
	{
		return false;
	}
	// . does not exist in the string or is at the start of the string or is at the end of the string
	if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr)
	{
		return false;
	}
	// Check there is only one @
	if (str.indexOf(at,(lat+1)) != -1)
	{
		return false;
	}
	// Check for a . just and just after the @
	if (str.substring(lat-1,lat) == dot || str.substring(lat+1,lat+2) == dot)
	{
		return false;
	}
	// Checking for . after @. There has to be at least one
	if (str.indexOf(dot,(lat+2)) == -1)
	{
		return false;
	}
	// Checking for spaces in the string
	if (str.indexOf(" ") != -1)
	{
		return false;
	}
 	return true;					
}


function CheckEmailFormat(email_id,row_id)
{
	var email = document.getElementById(email_id);
	var row = document.getElementById(row_id);
	
	if (email.value == "")
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return false;
	}
	if (echeck(email.value) == false)
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return false;
	}
	return true;
 }

 
function CheckEmail(email_id,row_id)
{
	var email = document.getElementById(email_id);
	var row = document.getElementById(row_id);
	
	if (email.value == "")
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return 0;
	}
	if (echeck(email.value) == false)
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return 0;
	}
	row.style.display="none";
	return 1;
 }



function CheckSelected(option_id,row_id)
{
	var sel=document.getElementById(option_id);
	var row = document.getElementById(row_id);
	
	if(!sel)
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return 0;
	}
	if(sel.selectedIndex == 0)
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return 0;
	}
	row.style.display="none";
	return 1;
}



function isNum(fieldStr) 
{
	var digits = "1234567890"; 
	for (i = 0; i < fieldStr.length; i++) 
	{
   		if (digits.indexOf(fieldStr.charAt(i)) < 0) 
		{
     			return false;
    	}
  	}
 	return true;
}


function CheckNum(num_id,row_id)
{
	var num = document.getElementById(num_id);	
	var row = document.getElementById(row_id);
			
	if(num.value == '')
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return 0;
	}		
	if(!isNum(num.value))
	{
		try
		{
			row.style.display="table-row";
		}
		catch(err)
		{
			row.style.display="inline";
		}
		return 0;
	}
	row.style.display="none";
	return 1;
}

function CheckRegister()
{
	var count = 0;
	var namefield = document.getElementById('pname');
	var emailfield = document.getElementById('pemail');
	var name_row = document.getElementById('pname_error');
	var email_row = document.getElementById('pemail_error');
	
	
	// First Name
	count += CheckName('fname','fname_error');
	// Preferred First Name
	// Checking if user entered data if so then check the format
	if (namefield.value != "")
	{
		CheckName('pname','pname_error');
	}
	else
	{
		name_row.style.display="none";
	}
	// Surname
	count += CheckName('sname','sname_error');
	// University
	count += CheckSelected('uni','uni_error');
	// Student Number
	count += CheckNum('snum','snum_error');
	// Medical School Study Year
	count += CheckSelected('stage','stage_error');
	// Student Email
	count += CheckEmail('semail','semail_error');
	//Preferred Email
	// Checking if user entered data if so then check the format
	if (emailfield.value != "")
	{
		CheckEmail('pemail','pemail_error');
	}
	else
	{
		email_row.style.display="none";
	}
	
	//alert("Count = "+count);
	if(count == 6)
	{
		//alert("True = "+count);
		return true;
	}
	else
	{
		//alert("False = "+count);
		return false;
	}
}

/* Not needed in 2008
function CheckDate(date_id,row_id)
{
	var date_field = document.getElementById(date_id);
	var dob = date_field.value;
	
	if( dob.length != 10 )
	{
		document.getElementById(row_id).style.color="#ff0000";
		return 0;
	}
	var day = dob.charAt(0)+dob.charAt(1);
	var month = dob.charAt(3)+dob.charAt(4);
	var year = dob.charAt(6)+dob.charAt(7)+dob.charAt(8)+dob.charAt(9);
	var slash1 = dob.charAt(2);
	var slash2 = dob.charAt(5);
	
	if( (slash1 != '/') || (slash2 != '/'))
	{
		document.getElementById(row_id).style.color="#ff0000";
		return 0;
	}
	
	if((!isNum(day)) || (!isNum(month)) || (!isNum(year)))
	{
		document.getElementById(row_id).style.color="#ff0000";
		return 0;
	}
	switch(month)
	{
		case '01':
		case '03':
		case '05':
		case '07':
		case '08':
		case '10':
		case '12':
			if(day > 31)
			{
				document.getElementById(row_id).style.color="#ff0000";
				return 0;
			}
		break;
		case '04':
		case '06':
		case '09':
		case '11':
			if(day > 30)
			{
				document.getElementById(row_id).style.color="#ff0000";
				return 0;
			}
		break;
		case '02':
			// Check Feburary for Leap Year
			if(year % 4 == 0)
			{
				if(day > 29)
				{
					document.getElementById(row_id).style.color="#ff0000";
					return 0;
				}
			}
			else
			{
				if(day > 28)
				{
					document.getElementById(row_id).style.color="#ff0000";
					return 0;
				}
			}
		break;
		default:
			document.getElementById(row_id).style.color="#ff0000";
			return 0;
	}
	document.getElementById(row_id).style.color="#000000";
	return 1;
}
*/

var min=8; 
var max=18;

function increaseFontSize() 
{
	var p = document.getElementsByTagName('font');
	for(i=0;i<p.length;i++)
	{
		if(p[i].style.fontSize) 
		{
			var s = parseInt(p[i].style.fontSize.replace("px",""));
		}
		else
		{
			var s = 12;
		}
		if(s!=max)
		{
			s += 1;
		}
		p[i].style.fontSize = s+"px"
	}
	var p2 = document.getElementsByTagName('span');
	for(i=0;i<p2.length;i++)
	{
		if(p2[i].style.fontSize)
		{
			var s2 = parseInt(p2[i].style.fontSize.replace("px",""));
		}
		else
		{
			var s2 = 12;
		}
		if(s2!=max)
		{
			s2 += 1;
		}
		p2[i].style.fontSize = s2+"px"
	}
}

function decreaseFontSize()
{
	var p = document.getElementsByTagName('font');
	for(i=0;i<p.length;i++)
	{
		if(p[i].style.fontSize)
		{
			var s = parseInt(p[i].style.fontSize.replace("px",""));
		}
		else
		{
			var s = 12;
		}
		if(s!=min)
		{
			s -= 1;
		}
		p[i].style.fontSize = s+"px";
	}   
	var p2 = document.getElementsByTagName('span');
	for(i=0;i<p2.length;i++)
	{
		if(p2[i].style.fontSize)
		{
			var s2 = parseInt(p2[i].style.fontSize.replace("px",""));
		}
		else
		{
			var s2 = 12;
		}
		if(s2!=min)
		{
			s2 -= 1;
		}
		p2[i].style.fontSize = s2+"px";
	}
}