 // Global variables to check browser type.
var ns4 = (document.layers) ? true : false;
var ie4 = (document.all && !document.getElementById) ? true : false;
var ie5 = (document.all && document.getElementById) ? true : false;
var ns6 = (!document.all && document.getElementById) ? true : false;

//----------------------------------------------------------------------------------

function HideSection(thisSection)
{
	if (ns4) 
    	    {
	    document.layers[thisSection].visibility = "hide";
	    }
   	else if (ie4 || ie5)
    	    {
	    document.all[thisSection].style.visibility = "hidden"; document.all[thisSection].style.display = "none";
	    }
}

//----------------------------------------------------------------------------------

// Show a parsed DIV section.
function ShowSection(thisSection)
{
	if (ns4)
    	  {
	  document.layers[thisSection].visibility = "show";
	  }

	else if (ie4 || ie5) 
    	  {
	  document.all[thisSection].style.visibility = "visible"; document.all[thisSection].style.display = "block";
	  }
}

// --------------------------------------------------------------------------------

// Open a window with a parsed object, width and height.
function OpenWindow(obj,thisWidth,thisHeight)
{
	window.open(obj,'newWindow','width='+thisWidth+',height='+thisHeight+',scrollbars=no,resizable=yes,left=10,top=20');
}

// --------------------------------------------------------------------------------
// Open a sizable window with a parsed image name.
function OpenImageSizableWindow(thisImage,thisWindowTitle,thisWindowWidth,thisWindowHeight)
{		
	thisWindowWidth = thisWindowWidth + 40;
	thisWindowHeight = thisWindowHeight + 55;
	
	newWindow=window.open('','newWindow','width='+thisWindowWidth+',height='+thisWindowHeight+',scrollbars=yes, resizable, left=20,top=20');
	newWindow.document.open();
	newWindow.document.write("<html>");
	newWindow.document.write("<head>");
	newWindow.document.write("<title>"+thisWindowTitle+"</title>");
	newWindow.document.write('<LINK rel=stylesheet type="text/css" href="/stylesheets/clientstyles.css" title="style">');
	newWindow.document.write("</head>");
	newWindow.document.write("<body topmargin='10' leftmargin='10' rightmargin='10'>");
	newWindow.document.write("<br><center><img src='"+thisImage+"'><center><br>");
	newWindow.document.write('<center><a href="#" onclick="JavaScript:window.print();">[Print]</a> &nbsp;&nbsp; <a href="#" onclick="JavaScript:window.close()">[Close]</a></center>');
	newWindow.document.write("</body>");
	newWindow.document.write("</html>");
	newWindow.document.close();
	newWindow.focus();
}

// --------------------------------------------------------------------------------
// Open a pop-up window with the provided URL, width and height of the window.
function OpenPopWindow(thisURL,thisWidth,thisHeight)
{
	var thisWindowWidth = thisWidth + 30;
	var thisWindowHeight = thisHeight + 10;

	window.open(""+thisURL+"","OrderWindow","width="+thisWindowWidth+",height="+thisWindowHeight+",left=5,top=5,status=Yes,toolbar=no,scrollbars=yes, resizable");
}
	
// --------------------------------------------------------------------------------
// Open a pop-up frame type window with the provided URL, width and height of the window.
function OpenSmallPopWindowFrame(thisURL,thisWidth,thisHeight)
{
	window.open(""+thisURL+"","OrderWindow","width="+thisWidth+",height="+thisHeight+",left=50,top=100,status=no,toolbar=no,scrollbars=no");
}

// --------------------------------------------------------------------------------

// Open a non-sizeable window with a parsed image name.
function OpenShopPopWindow(thisWindowTitle, thisImage, thisWindowWidth, thisWindowHeight)
{		
	thisWindowWidth = thisWindowWidth + 40;
	thisWindowHeight = thisWindowHeight + 60;
	
	newWindow=window.open('','newWindow','width='+thisWindowWidth+',height='+thisWindowHeight+',scrollbars=no,left=20,top=20');
	newWindow.document.open();
	newWindow.document.write("<html>");
	newWindow.document.write("<head>");
	newWindow.document.write("<title>"+thisWindowTitle+"</title>");
	newWindow.document.write('<LINK rel=stylesheet type="text/css" href="/stylesheets/clientstyles.css" title="style">');
	newWindow.document.write("</head>");
	newWindow.document.write("<body topmargin='20' leftmargin='10' rightmargin='10'>");
	newWindow.document.write("<br><center><img src='"+thisImage+"'><center><br>");
	newWindow.document.write('<center><a href="#" onclick="JavaScript:window.print();">[Print]</a> &nbsp;&nbsp; <a href="#" onclick="JavaScript:window.close()">[Close]</a></center>');
	newWindow.document.write("</body>");
	newWindow.document.write("</html>");
	newWindow.document.close();
	newWindow.focus();
}

// --------------------------------------------------------------------------------

// Define a list of acceptable characters for use in the CheckValidCharacters function.
var identifierCharList = new RegExp(/[^a-zA-Z0-9()\_\-:.\ ]/);
var nameCharList = new RegExp(/[^a-zA-Z0-9()\_\-:.&\ \"\'\[\]\|\@]/); 
var numericCharList = new RegExp(/[^0-9.]/);
var alphaNumericCharList =  new RegExp(/[^a-zA-Z0-9]/);
var descriptionCharList = new RegExp(/[^a-zA-Z0-9~!@$%&*()\_\+\-\=\[\]\\{};:\./?,\"\'\|\ \r\n]/);


function CheckValidCharacters(thisField, thisFieldName, thisCharList)
{
RemoveXSWhiteSpace(thisField);

//Check the acceptable character list.
if (thisField.value.match(thisCharList))
	{
	alert("Data  Error:\n\nInvalid characters in the " +thisFieldName+ " field.\n\nPlease remove any non-standard characters (eg. `~^<>#)\n\nAdditionally, for any non-alphanumeric characters, try retyping them.");
	thisField.focus();
	return false;
	}
else
	{
	return true;
	}
}

// --------------------------------------------------------------------------------

function RemoveXSWhiteSpace(item)
{ //Remove excess white space (ie. trailing/leading)
  var tmp = "";
  var itemLength = item.value.length;
  var itemLengthMinus1 = item.value.length - 1;
  for (index = 0; index < itemLength; index++)
  {
    if (item.value.charAt(index) != ' ')
    {
      tmp += item.value.charAt(index);
    }
    else
    {
      if (tmp.length > 0)
      {
        if (item.value.charAt(index+1) != ' ' && index != itemLengthMinus1)
        {
          tmp += item.value.charAt(index);
        }
      }
    }
  }
  item.value = tmp;
}

// --------------------------------------------------------------------------------
function CheckSecurity(thisWMSAddress)
{ // Alert the user before going to In-Control.
  if (confirm("                           - SECURITY WARNING -\n\nYou are about to be transferred to In-Control's secure login facility.\n\n  Please click 'CANCEL' if you are not authorised to utilise this facility.\n\n                  Unauthorised access is prohibited."))
    document.location.href = thisWMSAddress;
}

// --------------------------------------------------------------------------------
// Check for a valid email address.
function IsEmailAddr(email)
{
  var result = false
  var theStr = new String(email)
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

// --------------------------------------------------------------------------------
// Check all required fields have been entered on the Contact Us Form.
function ValidateContact() 
{
    var formOk = true;
    var errormsg = "Please complete/check the following required fields:\n";	

    if (theContactForm("Full_Name").value == "")
       {
       errormsg += "\n- Contact Name";
       formOk = false;
       }

    if (theContactForm("Email_Address").value == "")
       {
       errormsg += "\n- Email Address";
       formOk = false;
       }
		
    if ((theContactForm("Email_Address").value != "") && (!IsEmailAddr(theContactForm("Email_Address").value)))
       {
       errormsg += "\n- Email Address is invalid";
       formOk = false;
       }

    if (theContactForm.Comments.value == "")
       {
       errormsg += "\n- Comments";
       formOk = false;
       }

    if (!formOk)
       {
       alert(errormsg);
       return false;
       }
    else
       {
       alert("Thank you - your request will now be submitted.");
       return (true);
       }
}  

// --------------------------------------------------------------------------------
// Check all required fields have been entered on the Job Application form.
function ValidateApplyNow()
{
    var formOk = true;
    var errormsg = "Please complete/check the following required fields:\n";	
	
    if (theApplyNowForm("Job_Reference").value == "")
       {
       errormsg += "\n- Job Reference";
       formOk = false;
       }
			
    if (theApplyNowForm("Job_Title").value == "")
       {
       errormsg += "\n- Job Title";
       formOk = false;
       }
		
    if (theApplyNowForm("First_Name").value == "")
       {
       errormsg += "\n- First Name";
       formOk = false;
       }		

    if (theApplyNowForm("Last_Name").value == "")
       {
       errormsg += "\n- Last Name";
       formOk = false;
       }
				
    if (theApplyNowForm("Email_Address").value == "")
       {
       errormsg += "\n- Email Address";
       formOk = false;
       }
		
    if ((theApplyNowForm("Email_Address").value != "") && (!IsEmailAddr(theApplyNowForm("Email_Address").value)))
       {
       errormsg += "\n- Email Address is invalid";
       formOk = false;
       }	
				
    if (theApplyNowForm("Home_Phone").value == "")
       {
       errormsg += "\n- Home Phone";
       formOk = false;
       }

    if (theApplyNowForm("File_Applicant_CV").value == "")
       {
       errormsg += "\n- Your C.V.";
       formOk = false;
       }

    if (theApplyNowForm("File_Applicant_CV").value.length > 5)
       {
       var theFileNameLength = theApplyNowForm("File_Applicant_CV").value.length;
       var theFileNameExtension = theApplyNowForm("File_Applicant_CV").value.substr(theFileNameLength - 4);
       if (theFileNameExtension.toLowerCase() != ".pdf" && theFileNameExtension.toLowerCase() != ".doc")
          {
          errormsg += "\n- Your C.V. file type is invalid (.DOC or .PDF only)";
          formOk = false;
          }
       }
		
    if (!formOk)
       {
       alert(errormsg);
       return false;
       }
    else
       {
       theApplyNowForm.Email_Subject.value = theApplyNowForm.Email_Subject.value + " (Ref " + theApplyNowForm.Job_Reference.value + " - " + theApplyNowForm.Job_Title.value + ")";
       alert("Thank you - your application will now be submitted.");
       return (true);
       }
}  

// --------------------------------------------------------------------------------
// Check for a parsed name in the URL.
function GetURLParameter(thisString)
{
  var thisURL = document.location.href.toLowerCase();  //Get the current page url and change it to lowercase for ease of checking for parameters.
  var thisStartPos = thisURL.indexOf(thisString);  //Find the starting position in the string.
  
  if (thisStartPos != -1)  //ie. thisString exists in the URL.
    {
    var thisStringName = thisURL.slice(thisStartPos + thisString.length);   //Get just the parameter.
    }
   return thisStringName;
 }

// --------------------------------------------------------------------------------
// BookMark parsed URL to Favourites
function BookMark(url,title)
{
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) 
	    {
  	    window.external.AddFavorite(url,title);
  	    }
	else if (navigator.appName == "Netscape") 
	    {
    	    window.sidebar.addPanel(title,url,"");
  	    } 
	else
	    {
    	    alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
  	    }
}

// --------------------------------------------------------------------------------

  // Function to check for and grab the job reference and job title being parsed in the URL.
function SetDetails()
{
	var theURL = document.URL.toLowerCase();  // Get the page url/name and change it to lowercase for ease of checking for parameters.
	var theOriginalURL = document.URL;
	var theJobTitleStartPos = theURL.indexOf("jobtitle");  // Check if the required variable is present in the parsed URL.
	var theJobRefStartPos = theURL.indexOf("jobref");
	var theJobTitle = "";
	var theJobRef =    "";//eg.jobref=1234&jobTitle=General%20Manager

	if (theJobTitleStartPos != -1)
    	{
    	theJobTitle = theOriginalURL.slice(theJobTitleStartPos + 9);
    	if (theJobTitle.length != 0)
      		{
      		document.theApplyNowForm.Job_Title.value = theJobTitle.replace('%20',' ');
      		}
    	}
	
	if (theJobRefStartPos != -1)
		{
		if (theJobTitleStartPos != -1)
			{
			theJobRef = theOriginalURL.slice(theJobRefStartPos + 7, theJobTitleStartPos);
			document.theApplyNowForm.Job_Reference.value = theJobRef;
			}			
		}	
}
