/****************************************************************************************************
		 			THIS DOCUMENT CONTAINS ALL THE FUNCTION TO PROCESS ANY FORM IN THIS SITE LEVEL 				  
	 		THIS DOCUMENT HAS BEEN WRITTEN BY http://www.blueskystudio.com FOR INCLUISION IN THIS SITE 		  
						YOU CAN USE THIS DOCUMENT BUT PLEASE RETAIN THESE LINES IN THE DOCUMENT
THE FOLLOWING FIELD MUST BE IN THE FORM     <input type="hidden" id="error" name="error" value="<?=$error?>" />
****************************************************************************************************/

<!--

//DECLARE GLOBAL VARIABES THAT CAN BE USED IN ALL THE FUNCTIONS
var d = document; 					// CHANGE THE DOCUMENT DECLOTATION TO d
var BgColourOn = "#f3f0e9;"; // DEFINE THE BACKGROUND COLOR STYLE ATTRIBUTE FOR THE ACTIVE AND FALSE CELLS
var BgColour = "#FFFFFF"; 		// DEFINE THE BACKGROUND COLOR STYLE ATTRIBUTE FOR THE INACTIVE AND TRUE CELLS
var minLength = 0; 					// THE MINIMUM LENGTH THAT MUST BE IN ANY STRING

/**********************************************************************
THESE TWO FUNCTIONS CHANGE THE IMAGE TEXT AND ERROR FIELD WHEN CALLED 
***********************************************************************/

function changeToFalse(cellID,msg) 
{
	var server = serverName();
	d.getElementById(cellID).style.background = "#f3f0e9";
	var str_error = d.getElementById("error").value	
	if(str_error.indexOf(cellID) == -1) // IF THE NAME IS NOT IN THE CELL ADD THE cellID TO THE ERROR STRING
		{ d.getElementById("error").value =  str_error + cellID; }
	d.getElementById(cellID + "_error").innerHTML = "<a href=\"#\"><img src=\"" + server + "/_images/error.png\" alt=\"error\" /><span>" + msg + "</span></a>";
}


function changeToTrue(cellID)
{
	var errorSpan = cellID + "_error";	
	d.getElementById("error").value =  d.getElementById("error").value.replace(cellID, "") // CLEAR THE cellID FROM THE ERROR STRING
	d.getElementById(errorSpan).innerHTML = "";
}

/*******************************************************************************************
	THE FOLLOWING FUNCTIONS UPDATE THE CELLS ON ENTRY, WHILE IN THE CELL AND ON ENTRY
********************************************************************************************/

//RUN THIS FUNCTION WHEN ENTERING THE FIELD onfocus="enter(cellID)"	cellID = fieldname/id
function enter(cellID) 
{
	d.getElementById(cellID).style.background = BgColourOn; // CHANGE THE CELLS BACKGROUND COLOUR
}

//RUN THIS FUNCTION WHEN ENTERING THE FIELD onblur="leave(cellID)" cellID = fieldname/id
function leave(cellID)
{ 
	var checkError		= d.getElementById("error").value; // GET THE VALUE FROM THE ERROR FIELD
	checkerror = checkError.indexOf(cellID); // SEE IF THE CELL NAME APPEARS IN THE ERROR FIELD
	if(checkerror == -1) // IF THE NAME IS NOT IN THE CELL ADD REVERT THE COLOR OF THE CELLTHE cellID TO THE ERROR STRING
	{	
		d.getElementById(cellID).style.background = BgColour; 
	}
}

//RUN THIS FUNCTION WHEN ENTERING THE FIELD onkeyup()	cellID = fieldname/id ; type can have the following variables
//		"url"			VALIDATED A URL
//		"email"		VALIDATED AN EMAIL
//		"number"	A VALUE IS A NUMBER
// 		"text"			A VALUE IS TEXT
//		"file"			AN IMAGE BEING UPLOADED - US THE onchange COMMAND FOR THIS TYPE
//		"select"		A SELECT BOX WITH A DEFAULT INDEX OF "#"
//		"password"	verifies a password against another cell that ends with the name _reconfirm
//		"delete"		To check the value of a delete select box- US THE onchange COMMAND FOR THIS TYPE
//		"checkbox"	To checked that a checkbox has been ticked
//		"date"		To validate a date in a cell
//		"jpeg"		AN IMAGE BEING UPLOADED - US THE onchange COMMAND FOR THIS TYPE
//		"pdf"			A PDF BEING UPLOADED - US THE onchange COMMAND FOR THIS TYPE
function monitor(cellID,type,notAllowed)
{
	var cellValue		= d.getElementById(cellID).value;					//GET THE VALUE IN THE ACCESSED FIELD
	var value 			= isNaN(cellValue); //CHECK IF THE CELL IS A NUMBER
	
	if(type == "url") // VALIDATE FOR A URL
		{
			var check1 = cellValue.indexOf("www."); 							// CHECK FOR www. PREFIX
			var cellValue1 = cellValue.substring(5, cellValue.length);			//CHECK THAT THE STRING IS 5 CHARACTERS LONG BEFORE ANOTHER CHEK
			var check2 = cellValue1.indexOf(".");									// LOOK FOR ANOTHER FULL STOP
			var check3 = cellValue.indexOf(" "); 									// CHECK FOR NO SPACES
			if ((check1 == -1) || (check2 == -1) || (cellValue.length < parseInt(minLength)) && (check3 != -1))
				{ 
					changeToFalse(cellID,"This feild can only be a valid URL e.g. www.yoursite.com");
				}
			else if(cellValue == notAllowed) 
				{ 
					changeToFalse(cellID,"This is the default data and is not allowed, please see the tooltip");
				}
			else 
				{ 
					changeToTrue(cellID); 
				}
		}
	
	else if(type == "date")
		{
			check1 = cellValue.indexOf("/");
			if((check1 == -1) || (parseInt(cellValue.length) != 10))
				{
					changeToFalse(cellID,"Please enter a valid date in the format \"dd/mm/yyyy\"");
				}
			else
				{
					changeToTrue(cellID); 
				}
		}
	
	else if(type == "email") // VALIDATE FOR AN EMAIL ADDRESS
		{
			var check1 = cellValue.indexOf("@"); // CHECK FOR @
			var check2 = cellValue.indexOf("."); // CHECK FOR .
			if ((check1 == -1) || (check2 == -1) || (cellValue == "") || (cellValue == notAllowed))
				{ 
					changeToFalse(cellID,"This field must have a valid e-mail address e.g. admin@yoursite.com" ); 
				}
			else if(cellValue == notAllowed) 
				{ 
					changeToFalse(cellID,"This is the default data and is not allowed, please see the tooltip"); 
				}
			else 
				{ 
					changeToTrue(cellID); 
				}
		}
		
	else if(type == "number") // VALIDATE FOR A MUNBER
		{
			if((value == true) || (cellValue == "")) // IF THE VALUE IS NOT A NUMBER OR BLANK
				{ 
					changeToFalse(cellID,"This cell requires a number" ); 
				}
			else if(cellValue == notAllowed) 
				{ 
					changeToFalse(cellID,"This is the default data and is not allowed, please see the tooltip");
				}
			else
				{ 
					changeToTrue(cellID); 
				}
		}
		
	else if(type == "text") // VALIDATE FOR TEXT
		{
			if((value == false) || (cellValue == "") || (cellValue.length <= parseInt(minLength))) // IF THE VALUE IS NOT TEXT OR BLANK
				{ 
					changeToFalse(cellID,"This must be at least " + minLength + " charaters long and not a number" ); 
				}
			else if(cellValue == notAllowed) 
				{ 	
					changeToFalse(cellID,"This is the default data and is not allowed, please see the tooltip");
				}
			else
				{ 
					changeToTrue(cellID); 
				}
		}
	else if(type == "password")
		{
			cellID_2 = cellID + "_reconfirm";
			d.getElementById("reconfirmPassword").style.display = "block"; 
			cell1value = d.getElementById(cellID).value
			cell2value = d.getElementById(cellID_2).value
				if(cell1value != cell2value)
					{	
						changeToFalse(cellID,"The password in both feilds do not match, please re-enter" ); 
					}
				else
					{ 
						changeToTrue(cellID); 
						changeToTrue(cellID_2); 
						changeToTrue(cellID);
					}
		}
	else if(type == "file") // VALIDATE FOR THE FOLLOWING FILE TYPES
		{ 
			//prepare variables
			var check1 = cellValue.indexOf(".jpg");
			var check2 = cellValue.indexOf(".jpeg");
			var check3 = cellValue.indexOf(".JPG");
			var check4 = cellValue.indexOf(".JPEG");
			var check5 = cellValue.indexOf(".gif");
			var check6 = cellValue.indexOf(".GIF");
			var check7 = cellValue.indexOf(".png");
			var check8 = cellValue.indexOf(".PNG");
			
			if((check1 != -1) || (check2 != -1) || (check3 != -1) || (check4 != -1) || (check5 != -1) || (check6 != -1) || (check7 != -1) || (check8 != -1))
				{ 
					changeToTrue(cellID);
				}
			else
				{  
					alert("This file type is not valid, please upload a jpg, gif or png file")
					changeToFalse(cellID,"This file type is not valid, please upload a jpg, gif or png file");
				}	
			}
	else if(type == "jpg") // VALIDATE FOR THE FOLLOWING FILE TYPES
		{ 
			//prepare variables
			var check1 = cellValue.indexOf(".jpg")
			var check2 = cellValue.indexOf(".jpeg")
			var check3 = cellValue.indexOf(".JPG")
			var check4 = cellValue.indexOf(".JPEG")
			
			if((check1 != -1) || (check2 != -1) || (check3 != -1) || (check4 != -1))
				{ changeToTrue(cellID);
					if(d.getElementById("warnUpload"))
						{
							d.getElementById("warnUpload").style.display = "block";
						}
				}
			else
				{  
					alert("This file type is not valid, please upload a jpg file");
					changeToFalse(cellID,"This file type is not valid, please upload a jpg file");
					if(d.getElementById("warnUpload"))
						{
							d.getElementById("warnUpload").style.display = "none";
						}
				}	
			}
	else if(type == "pdf") // VALIDATE FOR THE FOLLOWING FILE TYPES
		{ 
			//prepare variables
			var check1 = cellValue.indexOf(".pdf")
			var check2 = cellValue.indexOf(".PDF")
			var msg 	= "This file type is not valid, please upload a pdf file";
			
			if((check1 != -1) || (check2 != -1))
				{ 
					changeToTrue(cellID);
					if(d.getElementById("warnUpload2"))
						{
							d.getElementById("warnUpload2").style.display = "block";
						}
				}
			else
				{  
					alert(msg);
					changeToFalse(cellID,msg);
				}	
			}
	else if(type == "select")
		{
			var selectedItem = d.getElementById(cellID).selectedIndex;
			var value = d.getElementById(cellID).options[selectedItem].value; // GET THE SELECTED INDEX IN THE SELECT BOX
			if(value == "#") 
				{	
					changeToFalse(cellID,'This selection is invalid, please change'); 	
				}
			else
				{	
					changeToTrue(cellID);	
				}
		}
	else if(type == "delete")
		{
			var validText	= cellID + "_error";	//DEFINE THE VALID TEXT ID
			var selectedItem = d.getElementById(cellID).selectedIndex;
			var value = d.getElementById(cellID).options[selectedItem].value; // GET THE SELECTED INDEX IN THE SELECT BOX
			if(value == 0) 
				{
					d.getElementById("submit").value = "Delete this record";
					alert("This record will be removed if you proceed\r\nRevert this selection now of you this was in error");
					d.getElementById(cellID + "_error").innerHTML = "<a href=\"#\"><img src=\"../_images/delete.png\" alt=\"error\" /><span>Record will be deleted</a>";	
				}	
			else 
				{
					d.getElementById("submit").value = "Save this record";
					d.getElementById(cellID + "_error").innerHTML = "";	
				}
		}
	else if(type =="checkbox")
		{
			if(d.getElementById(cellID).checked == true)
				{	
					changeToTrue(cellID); 
				}
			else
				{	
					changeToFalse(cellID); 
				}	
		}
// THIS IS THE DEFAULT SELECTION FOR THE FUNCTION IF NO VALIDATION TYPE HAS BEEN SET PREVIOUSLY
	else 
		{
			if(cellValue.length <= minLength)
				{ changeToFalse(cellID,"The cell data is invalid, please see the tooltip"); }
			else if(cellValue == notAllowed)
				{  changeToFalse(cellID,"This is the default data and is not allowed, please see the tooltip"); }
			else
				{ changeToTrue(cellID); }
		}
}

//DROPS AN IMAGE FROM A RECORD IN THE TABLE
function dropImage(imageID,first,searching)
{
	var url = "update.php?dropImage=" + imageID;
	if(first != 0) 
		{	if(url.indexOf("?") == -1) { url = url + "?"; } else { url = url + "&"; }
			url = url + "first=" + first; }
	if(searching != 0) 
		{	if(url.indexOf("?") == -1) { url = url + "?"; } else { url = url + "&"; }
			url = url + "search=" + searching; }
	window.location = url;
}


//USE onsubmit="return checkForm();" TO CALL THIS FINCTION IN THE FORM TAG TO CHECK THE FORM
// IF THE error FIELD IS NOT BLANK, THIS ERROR STRING AND CANCEL THE SENDING
function checkForm(str_msg) 
{ 
	var msg;
	var defaultMsg = "There are errors on this form.\r\nPlease review all the cells that have a yellow exclaimation mark \"!\" beside them.\r\nThey are either mandatory fields that are empty or hold invalid data.";
	if(str_msg) 
		{ 
			msg = str_msg; 
		} 
	else 
		{ 
			msg = defaultMsg; 
		}
		
	if(d.getElementById("error").value != "") 
		{	
			alert (msg); 
			return false;
		}
	 else 
	 	{	
			return true; 
		}
}

-->