$(document).ready(function() {
	/* main menu js */
	
	$('ul.nav li.search-jobs').mouseenter(function() {
		$('ul.nav li.search-jobs a img').attr('src', '/img/search-jobs-a.jpg');;
	});
	
	$('ul.nav li.search-jobs').mouseleave(function() {
		$('ul.nav li.search-jobs a img').attr('src', '/img/search-jobs.jpg');
	});
	
	$('ul.nav li.browse-jobs').mouseenter(function() {
		$('ul.nav li.browse-jobs a img').attr('src', '/img/browse-jobs-a.jpg');;
	});
	
	$('ul.nav li.browse-jobs').mouseleave(function() {
		$('ul.nav li.browse-jobs a img').attr('src', '/img/browse-jobs.jpg');
	});
	
	$('ul.nav li.upload-resume').mouseenter(function() {
		$('ul.nav li.upload-resume a img').attr('src', '/img/upload-resume-a.jpg');;
	});
	
	$('ul.nav li.upload-resume').mouseleave(function() {
		$('ul.nav li.upload-resume a img').attr('src', '/img/upload-resume.jpg');
	});
	
	$('ul.nav li.resources').mouseenter(function() {
		$('ul.nav li.resources img').attr('src', '/img/resources-a.jpg');;
	});
	
	$('ul.nav li.resources').mouseleave(function() {
		$('ul.nav li.resources img').attr('src', '/img/resources.jpg');
	});
	
	$('ul.nav li.post-jobs').mouseenter(function() {
		$('ul.nav li.post-jobs a img').attr('src', '/img/post-jobs-a.jpg');;
	});
	
	$('ul.nav li.post-jobs').mouseleave(function() {
		$('ul.nav li.post-jobs a img').attr('src', '/img/post-jobs.jpg');
	});
	
	$('ul.nav li.recruiter-login').mouseenter(function() {
		$('ul.nav li.recruiter-login a img').attr('src', '/img/recruiter-login-a.jpg');;
	});
	
	$('ul.nav li.recruiter-login').mouseleave(function() {
		$('ul.nav li.recruiter-login a img').attr('src', '/img/recruiter-login.jpg');
	});
	
	/* apply now js */
	
	$('#apply-form').validationEngine();
	$('#advertise-form').validationEngine();
	$('#recruit-form').validationEngine();
	
	/* homepage search js */
	
	//$('#index_search').validationEngine();
	
	/* footer newsletter js */
	
	$('#newsletter_form').validationEngine();
	
	$('#newsletter_form #name').focus(function() {
		var searchVal = $('#newsletter_form #name').val();
		
		if(searchVal == 'Name') {
			$('#newsletter_form #name').val('');
		}
	});
	
	$('#newsletter_form #name').blur(function() {
		var searchVal = $('#newsletter_form #name').val();
		
		if(searchVal == '') {
			$('#newsletter_form #name').val('Name');
		}
	});
	
	$('#newsletter_form #email').focus(function() {
		var searchVal = $('#newsletter_form #email').val();
		
		if(searchVal == 'Email') {
			$('#newsletter_form #email').val('');
		}
	});
	
	$('#newsletter_form #email').blur(function() {
		var searchVal = $('#newsletter_form #email').val();
		
		if(searchVal == '') {
			$('#newsletter_form #email').val('Email');
		}
	});
	
	/* posting sidebar js */
	
	$('#show-jobs').click(function() {
		$('.more-jobs-no-show').slideToggle("slow");
		
		if($('#show-jobs').html() == 'more...') {
			$('#show-jobs').html('less...');
		}
		else {
			$('#show-jobs').html('more...');
		}
	});
	
	$('#show-spec').click(function() {
		$('.more-spec-jobs-no-show').slideToggle("slow");									
		
		if($('#show-spec').html() == 'more...') {
			$('#show-spec').html('less...');
		}
		else {
			$('#show-spec').html('more...');
		}
	});
	
	$('#show-companies').click(function() {
		$('.more-companies-no-show').slideToggle("slow");
		
		if($('#show-companies').html() == 'more...') {
			$('#show-companies').html('less...');
		}
		else {
			$('#show-companies').html('more...');
		}
	});
	
	$(".nav li ul").css({display: "none"}); // Opera Fix
	$(".nav li").hover(
		function(){$(this).find('ul:first').css({visibility: "visible",display: "none"}).slideDown(200);},
		function(){$(this).find('ul:first').css({visibility: "hidden"});}
	);
});

function showAddress(address, display) {
	var map = new GMap2(document.getElementById("map_canvas"));
	var geocoder = new GClientGeocoder();
	
	geocoder.getLatLng(
		address,
		function(point) {
			if (!point) {
				// oops...
				// alert(address + ' not found');
			} 
			else {
				map.setCenter(point, 13);
				var marker = new GMarker(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml(display);
			}
		}
	);
}

function formValidator(){
	// Make quick references to our fields
	var firstname = document.getElementById('First_Name');
	var lastname = document.getElementById('Last_Name');
	var phone = document.getElementById('Phone');
	var email = document.getElementById('Email');
	var securitycode = document.getElementById('security_code');
	
	// Check each input in the order that it appears in the form!
	if(isAlphabet(firstname, "Please enter only letters for your First Name !")){
		if(isAlphabet(lastname, "Please enter only letters for your Last Name !")){
			if(isNumeric(phone, "Please enter Phone Number in digits only!")){
				if(emailValidator(email, "Please enter a valid Email Address !")){
					if(SecurityCodelength(securitycode,5)) {
						return true;
					}
				}
			}
		}
	}
		
	return false;
}

function FocusSetter(elem) {
	elem.focus();
}

function isEmpty(elem, helperMsg){
	if(elem.value.length == 0){
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return true;
	}
	return false;
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	$success = 0;
	
	if(elem.value.match(numericExpression)){
		$success = 1;
	}
	else {
		alert(helperMsg);
		elem.focus();
		return false;
	}
	
	var length = elem.value.length;
	
	if(length == 10) {
		$success = 1;
	}
	else {
		alert("Please enter phone number in a ten digit format!");
		elem.focus();
		return false;
	}
	
	if($success == 1) {
		return true;
	}
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z ]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z ]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter between " +min+ " and " +max+ " characters");
		elem.focus();
		return false;
	}
}

function SecurityCodelength(elem,max){
	var uInput = elem.value;
	if(uInput.length == max ){
		return true;
	}else{
		alert("Please enter five character security code");
		elem.focus();
		return false;
	}
}

function madeSelection(elem, helperMsg){
	if(elem.value == ""){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}
