
//--------------------------------------------------------------------
// TRIM A STRING
//--------------------------------------------------------------------
function trim(str)
{
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i > 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}



//--------------------------------------------------------------------
// SHOW THE MESSAGE BAR AT THE TOP OF THE PAGE
//--------------------------------------------------------------------
function showTopMsgBar(sMsg,sClass)
{
	if( sMsg != '' ) document.getElementById('topMsg').innerHTML = sMsg;
	if( sClass != '' ) document.getElementById('topMsg').className = sClass;
	document.getElementById('topMsgBar').style.display = '';
	document.documentElement.scrollTop = 0;
	return false;
}



//--------------------------------------------------------------------
// HIDE THE MESSAGE BAR AT THE TOP OF THE PAGE
//--------------------------------------------------------------------
function hideTopMsgBar()
{
	document.getElementById('topMsgBar').style.display = 'none';
	return false;
}



//--------------------------------------------------------------------
// 	Check if a string is a numeric value
//--------------------------------------------------------------------

function isNumeric( vTestValue )
{
	// put the TEST value into a string object variable
	var sField = new String(this.trim(vTestValue));

	// check for a length of 0 - if so, return false
	if(sField.length==0) { return false; }
	else if(sField.length==1 && (sField.charAt(0) == '.' || sField.charAt(0) == ',' || (sField.charAt(0) == '-'))) { return false; }

	// loop through each character of the string
	for(var x=0; x < sField.length; x++) {
		// if the character is < 0 or > 9, return false (not a number)
		if((sField.charAt(x) >= '0' && sField.charAt(x) <= '9') || sField.charAt(x) == '.' || sField.charAt(x) == ',' || (sField.charAt(x) == '-' && x==0)) { /* do nothing */ }
		else { return false; }
	}

	// made it through the loop - we have a number
	return true;
}


//--------------------------------------------------------------------
// 	Check if a string is an integer value
//--------------------------------------------------------------------

function isInteger( vTestValue )
{
	// put the TEST value into a string object variable
	var sField = new String(this.trim(vTestValue));

	// check for a length of 0 - if so, return false
	if(sField.length==0) { return false; }

	// loop through each character of the string
	for(var x=0; x < sField.length; x++) {
		// if the character is < 0 or > 9, return false (not a number)
		if((sField.charAt(x) >= '0' && sField.charAt(x) <= '9')) { /* do nothing */ }
		else { return false; }
	}

	// made it through the loop - we have a number
	return true;
}


//--------------------------------------------------------------------
// 	Set a dropdown box value
//--------------------------------------------------------------------

function selectDropdownValue( dropdownObjectId, valueToSelect )
{
	var obj = document.getElementById(dropdownObjectId);
	for( var o=0; o<obj.options.length; o++ )
	{
		if( obj.options[o].value == valueToSelect ) obj.options[o].selected = true;
		else obj.options[o].selected = false;
	}
}

//------------------------------------------------
// Run function after document is fully loaded
//------------------------------------------------
function windowLoad(loadFunction)
{
  if (window.addEventListener)
  {
    window.addEventListener("load", loadFunction, false); 
  }
  else if (window.attachEvent)
  {
    window.attachEvent('onload', loadFunction);
  }
  else 
  {
    window.onload = loadFunction;
  }
}

function setupSalary()
{
	var salaryHtml = '';
	if (salaryBands != null && salaryBands != '') {
		var selected = '';
		var salaryBandsArr = JSON.parse(salaryBands);
		var jobLocation = document.getElementById('jobLocation').value;
		if (jobLocation == 'London') jobLocation = 'United Kingdom';
		if (jobLocation == '') jobLocation = 'all';
		var jobType = document.getElementById('jobType').value;
		if (jobType == '') jobType = 'all';
		
		jobSalary = (selectedSalaries != null && selectedSalaries != '') ? JSON.parse(selectedSalaries) : '';
		
		for (i in salaryBandsArr) {
			selected = '';
			if ((salaryBandsArr[i].location == jobLocation) && (salaryBandsArr[i].jobtype == jobType)) {
				
				if(jobSalary != null && jobSalary != '')
				{
					for(j=0; j<jobSalary.length; j++)
					{
						if(jobSalary[j] == i) selected = "selected='selected'";
					}				
				}
				
				salaryHtml += '<option value="'+i+'" '+selected+'>'+salaryBandsArr[i].salary+'</option>';
			}
		}
		if (salaryHtml == '') { /* Supply default salary band */
			for (i in salaryBandsArr) {
				if ((salaryBandsArr[i].location == 'all') && (salaryBandsArr[i].jobtype == 'all')) {
					salaryHtml += '<option value="'+i+'">'+salaryBandsArr[i].salary+'</option>';
				}
			}
		}
	}
	var salaryHtml = '<select id="jobSalary" name="jobSalary[]" multiple="multiple">'+ salaryHtml + '</select>';
	var jobSalaryParent = document.getElementById('jobSalary').parentNode;
	jobSalaryParent.innerHTML = salaryHtml;
}
	
	
//-------------------------------------------------------------------
//  Validate an email address
//-------------------------------------------------------------------

function isValidEmail(email) 
{
	if (email && email.match(/^\w+([\._-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/))  return true;
	else return false;
}

function createEmailAlert()
{
	var jobLocation='';
	var jobType='';
	var jobSalary='';
	var freeTextSearch='';
	var email='';
	var ikasUser='';
	jobLocation = document.getElementById("jobLocation").value;
	jobType = document.getElementById("jobType").value;
	jobSalary = document.getElementById("jobSalary").value;
	freeTextSearch = document.getElementById("freeTextSearch").value;
	if (document.getElementById("ikas__userId")) ikasUser = document.getElementById("ikas__userId").value;
	if (ikasUser == '' || ikasUser=='Array') {
		ikasUser='';
		email = prompt("Please enter your email address",'');
		if (email==null) return false;
		if (isValidEmail(email)==false) {
			alert("Invalid email address");
			return false;
		}
	}
	url="ikasUser="+ikasUser+"&email="+escape(email)+"&jobLocation="+jobLocation+"&jobType="+jobType+"&jobSalary="+jobSalary+"&freeTextSearch="+escape(freeTextSearch);
	url=WEB_ROOT+"ajax.createEmailAlert.php?"+url;
	var ajaxObject = (window.XMLHttpRequest)? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
	ajaxObject.open('GET', url, false);
	ajaxObject.send(null);
	var result = ajaxObject.responseText;
	if (result=='OK') alert("Thank you for creating an email alert. Jobs matching your search criteria will now be emailed to you as soon as they are released. ");
	else alert(result);
	return false;
}


