//for header function for the top nav
function roll(sName,sAction){
	if (document.images){
		var oImg=eval("document.images['"+sName+"']");
		oImg.src="../img/header/"+sName+"_"+sAction+".gif";
	}
}

// for header rollover function for the top nav
function rollbutton(sName,sAction){
	if (document.images){
		var oImg=eval("document.images['"+sName+"']");
		oImg.src="../img/buttons/"+sName+"_"+sAction+".gif";
	}
}

// function for valid email
//make sure the email address has one (@), atleast one (.). It also makes sure that there are no spaces, extra '@'s or a (.) just before or after the @. It also makes sure that there is atleast one (.) after the @.
function isValidEmail(str) {
		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		if (str.indexOf(at)==-1){
		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false;
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false;
		 }
		 
 		 return true;
}

// function for valid number
function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

function SubmitForm_event() {
		// Form Check Field Entries
			
			if(document.getElementById("seventtitle").value=="" )
			{
			alert("Please enter the Event Title")
			return false;
			}
						
			if(document.getElementById("seventcat").value=="" )
			{
			alert("Please enter the Event Category")
			return false;
			}
			
			if(document.getElementById("seventsingle").value=="" && document.getElementById("seventmulti1").value=="" && document.getElementById("seventmulti2").value=="")
			{
			alert("You must enter a Single Day or Multi-Day Event")
			return false;
			}
			
			if(document.getElementById("seventsingle").value!="" && document.getElementById("seventmulti1").value!="" && document.getElementById("seventmulti2").value!="")
			{
			alert("You must enter a Single Day or Multi-Day Event")
			return false;
			}
			
			if(document.getElementById("seventsingle").value!="" && document.getElementById("seventmulti1").value!="" && document.getElementById("seventmulti2").value=="")
			{
			alert("Your Event can only be Single Day or Multi-Day, but not both")
			return false;
			}
			
			if(document.getElementById("seventsingle").value!="" && document.getElementById("seventmulti1").value=="" && document.getElementById("seventmulti2").value!="")
			{
			alert("Your Event can only be Single Day or Multi-Day, but not both")
			return false;
			}
			
			if(document.getElementById("seventsingle").value=="" && document.getElementById("seventmulti1").value=="" && document.getElementById("seventmulti2").value!="")
			{
			alert("Please enter the Start Date of the Event")
			return false;
			}
			
			if(document.getElementById("seventsingle").value=="" && document.getElementById("seventmulti1").value!="" && document.getElementById("seventmulti2").value=="")
			{
			alert("Please enter the Finish Date of the Event")
			return false;
			}
			
			if(document.getElementById("seventtime").value=="" )
			{
			alert("Please enter the Time of Event")
			return false;
			}
			
			if(document.getElementById("saudcat").value=="" )
			{
			alert("Please enter the Audience Category")
			return false;
			}
			
			if(document.getElementById("sprice").value=="" )
			{
			alert("Please enter the Admission Details for the Event")
			return false;
			}
			 
			if(document.getElementById("saddress1").value=="" )
			{
			alert("Please enter the Venue Address line 1")
			return false;
			} 
			
			if(document.getElementById("saddress2").value=="" )
			{
			alert("Please enter the Venue Address Line 2")
			return false;
			} 
			
			if(document.getElementById("sregion").value=="")
			{
			alert("Please enter the Region")
			return false;
			}
			
			/*if(document.getElementById("snametitle").value=="")
			{
			alert("Please enter the Contact Person's Title")
			return false;
			}*/
			
			if(document.getElementById("snamefirst").value=="")
			{
			alert("Please enter the Contact Person's First Name")
			return false;
			}
			
			if(document.getElementById("snamesur").value=="")
			{
			alert("Please enter the Contact Person's Surname")
			return false;
			}
			
			if(document.getElementById("stelstd").value=="")
			{
			alert("Please enter the Telephone Number area code")
			return false;
			}
			
			if (!IsNumeric(document.getElementById("stelstd").value)) 
   			{ 
      		alert('Please enter only numbers in the Telephone Number area code field') 
			return false;
      		} 
			
			if(document.getElementById("stelnum").value=="")
			{
			alert("Please enter the Telephone Number")
			return false;
			}
			
			if (!IsNumeric(document.getElementById("stelnum").value)) 
   			{ 
      		alert('Please enter only numbers in the Telephone Number field') 
			return false;
      		} 
			
			if(document.getElementById("semail").value=="")
			{
			alert("Please enter your Email Address")
			return false;
			}
			
			if (!isValidEmail(document.getElementById("semail").value)) 
   			{ 
      		alert('Please enter a vaild Email Address') 
			return false;
      		}

			if(document.Form1.elements['snotresub'][0].checked == false)
			{
			alert("Please confirm that this is a new event and not a change to an existing event. If this is an amendment or change to existing event please contact the Science Week office at 01 6073042 or email the changes to scienceweek@forfas.ie")
			return false;
			}
			
			//Form1.submit()
			return true;
}

function Submit_merch()
{
		// Form Check Field Entries
			
			if(document.getElementById("meventtitle").value=="" )
			{
			alert("Please enter the Event Title")
			return false;
			}
			
			if(document.getElementById("menumber").value=="" )
			{
			alert("Please enter the Expected Number of Attendees")
			return false;
			}
			
			if(document.getElementById("mnametitle").value=="")
			{
			alert("Please enter the Contact Person's Title")
			return false;
			}
			
			if(document.getElementById("mnamefirst").value=="")
			{
			alert("Please enter the Contact Person's First name")
			return false;
			}
			
			if(document.getElementById("mnamesur").value=="")
			{
			alert("Please enter the Contact Person's Surname")
			return false;
			}
			
			if(document.getElementById("maddress1").value=="" )
			{
			alert("Please enter the Delivery Address")
			return false;
			} 
			
			if(document.getElementById("mtown").value=="" )
			{
			alert("Please enter the Town or City")
			return false;
			} 
			
			if(document.getElementById("mregion").value=="")
			{
			alert("Please enter the Region")
			return false;
			}
			
			if(document.getElementById("mtelstd").value=="")
			{
			alert("Please enter the Telephone Number area code")
			return false;
			}
			
			if (!IsNumeric(document.getElementById("mtelstd").value)) 
   			{ 
      		alert('Please enter only numbers in the Telephone Number area code field') 
			return false;
      		} 
			
			if(document.getElementById("mtelnum").value=="")
			{
			alert("Please enter the Telephone Number")
			return false;
			}
			
			if (!IsNumeric(document.getElementById("mtelnum").value)) 
   			{ 
      		alert('Please enter only numbers in the Telephone Number field') 
			return false;
      		} 
			
			if(document.getElementById("memail").value=="")
			{
			alert("Please enter your Email Address")
			return false;
			}
			
			if (!isValidEmail(document.getElementById("memail").value)) 
   			{ 
      		alert('Please enter a vaild Email Address') 
			return false;
      		}
			
			if (!IsNumeric(document.getElementById("m_ecopens").value)) 
   			{ 
      		alert('Please enter only numbers in the Eco Pen quantity field') 
			return false;
      		}
			 
			if (!IsNumeric(document.getElementById("m_snap").value)) 
   			{ 
      		alert('Please enter only numbers in the Snap-On Wrist Bands quantity field') 
			return false;
      		}
			
			if (!IsNumeric(document.getElementById("m_magic").value)) 
   			{ 
      		alert('Please enter only numbers in the Magic Cubes quantity field') 
			return false;
      		}
		
			if (!IsNumeric(document.getElementById("m_paper").value)) 
   			{ 
      		alert('Please enter only numbers in the Recycled Paper Post-Its quantity field') 
			return false;
      		}
			
			if (!IsNumeric(document.getElementById("m_bugs").value)) 
   			{ 
      		alert('Please enter only numbers in the Bugs (with science facts) quantity field') 
			return false;
      		}
			
			if (!IsNumeric(document.getElementById("m_poster").value)) 
   			{ 
      		alert('Please enter only numbers in the Posters quantity field') 
			return false;
      		}
			
			if (!IsNumeric(document.getElementById("m_tshirt").value)) 
   			{ 
      		alert('Please enter only numbers in the Childrens T-shirts quantity field') 
			return false;
      		}
			
			if (!IsNumeric(document.getElementById("m_atshirt").value)) 
   			{ 
      		alert('Please enter only numbers in the Adult T-shirts quantity field') 
			return false;
      		}
			
			return true;
}

/*Nice Email format checker*/
function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
}

function val_gal_photo_up() {
	

			if(document.getElementById("gal_name").value=="" )
			{
				alert("Please enter your Name")
				return false;
			}
			
			if(document.getElementById("gal_email").value=="" )
			{
				alert("Please enter your Email address")
				return false;
			}
			
			if ( echeck(document.getElementById('gal_email').value)==false ){
				alert("Please provide a valid email address")
				return false
			}
	
			if(document.getElementById("gal_tel").value=="" )
			{
				alert("Please enter a contact Telephone number")
				return false;
			}
			
			if (!IsNumeric(document.getElementById("gal_tel").value)) 
   			{ 
				alert('Please enter only digits in this field') 
				return false;
      		}
			
			if(document.getElementById("gal_text").value=="" )
			{
				alert("Please enter a Photo Caption")
				return false;
			}
			
			var myFile=document.getElementById("filename").value;
			if(myFile=="")
			{
				alert("Please upload your file");
				return false;
			}
			
			if(!document.getElementById("gal_disclaimer").checked)
			{
				alert("Please check Disclaimer checkbox before proceeding")
				return false;
			}

	return true;
}

function textCounter( field, countfield, maxlimit ) {
  if ( field.value.length > maxlimit )
  {
    field.value = field.value.substring( 0, maxlimit );
    alert( 'Please keep your Caption to under 255 characters' );
    return false;
  }
  else
  {
    countfield.value = maxlimit - field.value.length;
  }
}


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function alertme() {
	alert("hello");
}

function wii_submit() {
	/* First part is for checkboxes */
	/* The second is the same as osp (old)*/
	var itemName="item";
	var numberOfItems=17;	/* Check the asp page wii_details to fit */
	var numberOfItemsToCheck=3;
	var counter=0;
	
	// Check all checkboxes
	for(var i=0; i<=numberOfItems; i++) {
		if(document.getElementById(""+itemName+""+i+"") && document.getElementById(""+itemName+""+i+"").checked==true) {
			counter++;	// Increment counter
			// alert(""+itemName+""+i+"");
			// Last checkbox checked ("Other") -> check the field value
			if(i==numberOfItems) {
				if(document.getElementById("other").value=="")
				{
					alert("Please enter a value for 'Other'");
					return false;
				}
			}
		}
	}
	if(counter<3 || counter>3)
	{
		alert("Please select 3 items from the list");
		return false;
	}
	// OLD - return osp_submit();
	// NEW
	if(document.getElementById("name").value=="")
	{
		alert("Please enter your Name");
		return false;
	}
				
	if(document.getElementById("tel_std").value=="")
	{
		alert("Please enter your Telephone area code");
		return false;
	}
	
	if (!IsNumeric(document.getElementById("tel_std").value)) 
	{ 
		alert('Please enter only numbers in your Telephone area code') ;
		return false;
	} 
	
	if(document.getElementById("tel_num").value=="")
	{
		alert("Please enter your Telephone Number");
		return false;
	}
	
	if (!IsNumeric(document.getElementById("tel_num").value)) 
	{ 
		alert('Please enter only numbers in your Telephone Number') ;
		return false;
	} 
	
	if(document.getElementById("email").value=="")
	{
		alert("Please enter your Email Address");
		return false;
	}
	
	if (!echeck(document.getElementById("email").value)) 
	{ 
		alert('Please enter a vaild Email Address') ;
		return false;
	}

	return true;
}

function comp_submit() {
	/* First part is for answers */
	/* The second is the user */
	// Answers
	var correct_answer1=document.getElementById("rad1");
	var correct_answer2=document.getElementById("rad6");
	var correct_answer3=document.getElementById("rad7");
	
	if(!correct_answer1.checked || !correct_answer2.checked || !correct_answer3.checked)
	{
		alert("Please check your answers! You need to answer the three questions correctly before you enter your details for the competition.");
		return false;
	}
	
	// USER
	if(document.getElementById("name").value=="")
	{
		alert("Please enter your Name");
		return false;
	}
				
	if(document.getElementById("tel_std").value=="")
	{
		alert("Please enter your Telephone area code");
		return false;
	}
	
	if (!IsNumeric(document.getElementById("tel_std").value)) 
	{ 
		alert('Please enter only numbers in your Telephone area code') ;
		return false;
	} 
	
	if(document.getElementById("tel_num").value=="")
	{
		alert("Please enter your Telephone Number");
		return false;
	}
	
	if (!IsNumeric(document.getElementById("tel_num").value)) 
	{ 
		alert('Please enter only numbers in your Telephone Number') ;
		return false;
	} 
	
	if(document.getElementById("email").value=="")
	{
		alert("Please enter your Email Address");
		return false;
	}
	
	if (!echeck(document.getElementById("email").value)) 
	{ 
		alert('Please enter a valid Email Address') ;
		return false;
	}

	return true;
}

function osp_submit() {
			
			if(document.getElementById("name").value=="")
			{
				alert("Please enter your Name");
				return false;
			}
			
			if(document.getElementById("address1").value=="" )
			{
				alert("Please enter your Address line 1");
				return false;
			} 
			
			if(document.getElementById("address2").value=="" )
			{
				alert("Please enter your Address Line 2");
				return false;
			} 
			
			if(document.getElementById("county").value=="")
			{
				alert("Please enter your County ");
				return false;
			}
			
			if(document.getElementById("tel_std").value=="")
			{
				alert("Please enter your Telephone area code");
				return false;
			}
			
			if (!IsNumeric(document.getElementById("tel_std").value)) 
   			{ 
				alert('Please enter only numbers in your Telephone area code') ;
				return false;
      		} 
			
			if(document.getElementById("tel_num").value=="")
			{
				alert("Please enter your Telephone Number");
				return false;
			}
			
			if (!IsNumeric(document.getElementById("tel_num").value)) 
   			{ 
				alert('Please enter only numbers in your Telephone Number') ;
				return false;
      		} 
			
			if(document.getElementById("email").value=="")
			{
				alert("Please enter your Email Address");
				return false;
			}
			
			if (!echeck(document.getElementById("email").value)) 
   			{ 
				alert('Please enter a vaild Email Address') ;
				return false;
      		}
	
	return true;
	
}
/************* LECTURE FORM ****************/
function lu_submit() {
	/* First part is for checkboxes */
	/* The second is for user details */
	var itemName="lectname";
	var numberOfItems=5;	/* Check the asp page lecture_apply and DB lecturenames to fit */
	var counter=0;
	
	// Check all checkboxes
	for(var i=0; i<=numberOfItems; i++) {
		if(document.getElementById(""+itemName+""+i+"") && document.getElementById(""+itemName+""+i+"").checked==true) {
			counter++;	// Increment counter
		}
	}
	if(counter<1 || counter>4)
	{
		alert("Please select the lecture that you want to attend from the list");
		return false;
	}
	// User details
	if(document.getElementById("name").value=="")
	{
		alert("Please enter your Name");
		return false;
	}
				
	if(document.getElementById("tel_std").value=="")
	{
		alert("Please enter your Telephone area code");
		return false;
	}
	
	if (!IsNumeric(document.getElementById("tel_std").value)) 
	{ 
		alert('Please enter only numbers in your Telephone area code') ;
		return false;
	} 
	
	if(document.getElementById("tel_num").value=="")
	{
		alert("Please enter your Telephone Number");
		return false;
	}
	
	if (!IsNumeric(document.getElementById("tel_num").value)) 
	{ 
		alert('Please enter only numbers in your Telephone Number') ;
		return false;
	} 
	
	if(document.getElementById("email").value=="")
	{
		alert("Please enter your Email Address");
		return false;
	}
	
	if (!echeck(document.getElementById("email").value)) 
	{ 
		alert('Please enter a vaild Email Address') ;
		return false;
	}

	return true;
}
/********************************************************************************************/
/*										GOOGLE MAP											*/
/********************************************************************************************/

var newwin;
function launchwin(winurl,winname,winfeatures){
	newwin = window.open(winurl,winname,winfeatures);
	newwin.moveTo(0,0);
}
// stop hiding -->

// Function to get coordinates if exist, before launchingwin
function getCoordinates(coordinateField,winurl,winname,winfeatures)
{
	if(document.getElementById(coordinateField).value!='')
	{
		var tab=document.getElementById(coordinateField).value.split(',');
		var x=tab[0];
		var y=tab[1];
		
		// Test to add parameters
		var addGet='?';
		var re= '/\?/';
		if(winurl.match(re)){addGet='&';}
	
		winurl+=addGet+'x='+x+'&y='+y;

	}
	launchwin(winurl,winname,winfeatures);
}

function convert2_dms(dec_degrees) {
	var show_DMS = document.getElementById('sight_loc_coor_dec');
	var lat_dir="";
	var long_dir="";

	/*
	  Type   Dir.   Sign    Test
	  -------------------------
	  Lat.   N      +       > 0
	  Lat.   S      -       < 0
	  -------------------------
	  Long.  E      +       > 0
	  Long.  W      -       < 0
	*/
	
	var coordinates_array=dec_degrees.split(",");
	var lat = coordinates_array[0];	//87.728055
	if (lat>0) {lat_dir = 'N';} else if(lat<0) {lat_dir = 'S';lat=lat*-1} else {lat_dir = '';}
	
	var long = coordinates_array[1];
	if (long>0) {long_dir = 'E';} else if(long<0) {long_dir = 'W';long=long*-1} else {long_dir = '';}
	
	var lat_degrees_array  = String(lat).split("."); //87.728055
	var lat_degrees = lat_degrees_array[0];	//87.728055 = 87
	var lat_mins_secs = String(("0."+lat_degrees_array[1])*60);	//say 0.728055 x 60 = 43.6833 = 43 minutes.
	var lat_mins_secs_array = lat_mins_secs.split(".");
	var lat_mins = lat_mins_secs_array[0];	//43.6833 = 43 minutes.
	var lat_secs = Math.round(("0."+lat_mins_secs_array[1])*60);	//0.6833 x 60 = 40.998 = 41 seconds
	
	//var lat_DMS = lat_dir+"&nbsp;"+lat_degrees+"&deg;"+lat_mins+"&rsquo;"+lat_secs+"&quot;";
	var lat_DMS = lat_dir+" "+lat_degrees+"~"+lat_mins+"\'"+lat_secs+"\"";
	
	var long_degrees_array   = String(long).split(".");
	var long_degrees = long_degrees_array[0];
	var long_mins_secs = String(("0."+long_degrees_array[1])*60);
	var long_mins_secs_array = long_mins_secs.split(".");
	var long_mins = long_mins_secs_array[0];	//43.6833 = 43 minutes.
	var long_secs = Math.round(("0."+long_mins_secs_array[1])*60);	//0.6833 x 60 = 40.998 = 41 seconds
	
    //var long_DMS = long_dir+" "+long_degrees+"&deg;"+long_mins+"&rsquo;"+long_secs+"&quot;";
	var long_DMS = long_dir+" "+long_degrees+"~"+long_mins+"\'"+long_secs+"\"";
	
	show_DMS.value = long_DMS;
}

/*
Detect entries in the sight_loc_coor_dms form field, and add them as locations in the DB
*/
myObject='';
wObject = '';
currentCoord = '';
myJSONtext = '';
coord_field = document.getElementById('sight_loc_coor');

function detectNewCoords() {
	// detects a new, unique entry in the "Location Coordinates" field
	if(coord_field.value.length>0 && coord_field.value!=currentCoord){
		// a new location has been added from the map
		// save these coordinates as a string for later use
		currentCoord = coord_field.value;
		// alert(coord_field.value);
		addLocation();		
	}
}

function addLocation() {
	var location_name = document.getElementById('sight_loc_name').value;
	var coords_human = document.getElementById('sight_loc_coor_dms').value;
	var coords_real = document.getElementById('sight_loc_coor').value;

	//location_name = replaceChars(location_name);
	//location_name = encodeURIComponent(location_name);
	location_name = escape(location_name);
	//alert(location_name);
	
	// Initialise AJAX stuff
	var myConn = new XHConn();
	if (!myConn){ // XMLHTTP not available. exit method/handle error.  %u0103&u0106%F8%DF%u03AB%u0419 aCøß??
	}
	
	// display a message
	document.getElementById('noLocations_extraInfo').innerHTML = "Adding your location...";
	
	// send the location data to the database
	parameters = '&loc_name=' + location_name + '&loc_coords_human=' + coords_human + '&loc=' + coords_real;
	myConn.connect('handleLocations.php', 'POST', parameters, handleResponse);

}

function replaceChars(input) {
	output = input.replace(/á/, "a");
	output = output.replace(/é/, "e");
	output = output.replace(/í/, "i");
	output = output.replace(/ó/, "o");
	output = output.replace(/ú/, "u");
	output = output.replace(/Á/, "A");
	output = output.replace(/É/, "E");
	output = output.replace(/Í/, "I");
	output = output.replace(/Ó/, "O");
	output = output.replace(/Ú/, "U");
	output = output.replace(/&/, "");
	return output;
}
/*
Validate the form input
*/

function validateOnSubmit() {
	var errorsFound = false;
	var errorString = '';
	
	if(!document.getElementById('sight_existing_location').value){
		errorString += "\n- You need to enter a location for this sighting. You can do this by clicking on \"Find a new location\" and finding a location on the map.";
		errorsFound = true;
	}	
	
	/*
	var dateString = document.getElementById('sight_date').value;
	if (dateString.length==0) {
		errorString += "\n- Please enter a date. You can do this by clicking on the 'date' box and selecting a date on the pop-up calendar.";
		errorsFound = true;
	}
	*/
		
	if(errorsFound) {
		alert('We could not submit your sighting, because of the error(s) below:' + errorString);
		return false;
	}
	else {
		return true;
	}
}

function textLimit(field, maxlen) {
	if (field.value.length > maxlen) {
		// truncate field text
		field.value = field.value.substring(0, maxlen);
		// make "textarea_warning" visible
		document.getElementById('textarea_warning').innerHTML = 'Maximum length '+maxlen+' characters';
		document.getElementById('textarea_warning').style.display = 'block';
		// alert('your input has been truncated!');
	} 
	
}

function edit_information() {
	document.getElementById('inactive_datebox').style.display = 'none';
	document.getElementById('active_datebox').style.display = 'block';
	document.getElementById('inactive_species').style.display = 'none';
	document.getElementById('active_species').style.display = 'block';
}

function swapIt(id, newclass) { 
	if (document.getElementById) {
		document.getElementById(id).className = newclass;
	}
}

function closeIt(id) { 
	if (document.getElementById) {
		document.getElementById(id).style.display = 'none';
	}
}

function openIt_closeIt(idopen,idclose) { 
	if (document.getElementById) {
		document.getElementById(idopen).style.display = 'block';
		document.getElementById(idclose).style.display = 'none';
	}
}

function distance(lat1, lon1, lat2, lon2) {
	/*
	get the distance between two sets of lat/long coordinates
	(in miles)
	*/
	var rlat1 = Math.PI * lat1/180
	var rlat2 = Math.PI * lat2/180
	var rlon1 = Math.PI * lon1/180
	var rlon2 = Math.PI * lon2/180
	var dlon = lon1-lon2
	var raddlon = Math.PI * dlon/180
	var dist = Math.sin(rlat1) * Math.sin(rlat2) + Math.cos(rlat1) * Math.cos(rlat2) * Math.cos(raddlon);
	dist = Math.acos(dist)
	dist = dist * 180/Math.PI
	dist = dist * 60 * 1.1515
	return dist
}
/********************* CHANGE THE TEXT SIZE - need cookies ********************************/
function SetCookie (name, value, booleanInit) {
	// new date object
	var today = new Date();
	 
	// new date object
	var expdate = new Date();
	 
	// 15 days
	expdate.setTime( today.getTime() + ( 15*24*60*60*1000 ) );
	 
	// cookie creation
	document.cookie = name + "=" + value + ";expires=" + expdate.toGMTString();
	
	// Check if cookies are enabled
	if(!GetCookie(name) && !booleanInit) {alert('You must enable cookies to use this buttons'); return false;}
	else return true;
}

function GetCookie(name) {
	var nameLength=name.length;
	var currentCookieValue = "" ;
	
	if(document.cookie)
	{
		// Get all cookies ([name=value)
		var tabCookies=document.cookie.split("; ");
		var nbCookies=tabCookies.length;
		var equal=0;
		var currentCookie='';
		
		for(var i=0; i<nbCookies; i++) {
			equal=tabCookies[i].indexOf("=");
			currentCookie = tabCookies[i].substring(0,equal) ;
			// The one we looking for
			if(currentCookie==name) {
				currentCookieValue=tabCookies[i].substring ( nameLength + 1 );
				if ( currentCookieValue == "" ) {return false ;}
				else return currentCookieValue;
			}
		}
		// Not found
		if(currentCookieValue==''){
			return false ;
		}
	}
	else return false;
}

function initCSS() {
	var size = GetCookie("swFontSize");
	if(!size) {
		SetCookie("scienceweekcss", "0.8", true);
		document.body.style.fontSize = '0.8em';
	} else document.body.style.fontSize = size;
}

function decreaseFontSize() {
	var main = document.body;
	var size = main.style.fontSize; //default: 0.8em (see default.css)
	
	if (size=='1em') { main.style.fontSize='0.9em' }
	else if (size=='0.9em') { main.style.fontSize='0.8em' }
	else if (size=='0.8em' || size=='') { main.style.fontSize='0.7em' }
	else if (size=='0.7em') { main.style.fontSize='0.6em' }
	else if (size=='0.6em') { main.style.fontSize='0.5em' }
	else if (size=='0.5em') { main.style.fontSize='0.5em' }
	else { main.style.fontSize='0.8em' }
	
	SetCookie ('swFontSize', main.style.fontSize);
}

function increaseFontSize() {
	var main = document.body;
	var size = main.style.fontSize; //default: 0.8em (see default.css)

	if (size=='0.5em') { main.style.fontSize='0.6em' }
	else if (size=='0.6em') { main.style.fontSize='0.7em' }
	else if (size=='0.7em') { main.style.fontSize='0.8em' }
	else if (size=='0.8em' || size=='') { main.style.fontSize='0.9em' }
	else if (size=='0.9em') { main.style.fontSize='1em' }
	else if (size=='1em') { main.style.fontSize='1em' }
	else { main.style.fontSize='0.8em' }
	
	SetCookie ('swFontSize', main.style.fontSize);
}

/******************************************************************************************************/
// Diary - Ajax functions

function createXMLHttpRequest(){
	var types = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
	for (var i = 0; i < types.length; i++) { // if MSIE give him activeX
		try { return new ActiveXObject(types[i]); } catch(e) {}
	}
	try { return new XMLHttpRequest(); } catch(e) {} // if not MSIE - usual XHR
	return false; // XMLHttpRequest is not supported by browser
}

function diaryAddEvent(aSwID){
	var swID = aSwID.substring(1);
	var req = createXMLHttpRequest();
	var div_add = document.getElementById("d"+swID);
	var info_diary = document.getElementById('info_diary');
	
	var d = new Date();
	
	req.open('GET', 'includes/diary_ajax.asp?time='+d.getTime()+'&id='+swID, true);
	req.onreadystatechange = function() {
		if (req.readyState == 4) { 
			if (req.responseText == "added") {
				div_add.innerHTML = '<span><img src="media/images/event_added.png" alt="Part of your diary" /></span>';
				if (info_diary) { info_diary.style.display='none'; }
				document.getElementById('aViewDiary').setAttribute('onclick', '');
				document.getElementById('aDlDiary').setAttribute('onclick', '');
			}
		}
	};
	
	req.send(null);
}
				
function diaryRemoveEvent(aSwID){
	if (confirm("Are you sure you want to remove this event from your diary?")) {
		var swID = aSwID.substring(1);
		var req = createXMLHttpRequest();
		var fieldEvent = document.getElementById('field'+swID);
		
		var d = new Date(); // to prevent cache problems
		
		req.open('GET', 'includes/diary_ajax.asp?time='+d.getTime()+'&id='+swID+'&remove=remove', true);
		req.onreadystatechange = function() {
			if (req.readyState == 4) { 
				if (req.responseText == "removed") {
					fieldEvent.style.display = 'none';
				}
			}
		};
		
		req.send(null);
	}
}