//var root="http://localhost:8888/www.barnardos.ie/";
var root="http://www.barnardos.ie/";

//JQuery functions
$(document).ready(function() {
	
	var $toggle=0; //Expand/collapse newsletter form
	var $expand=document.getElementById("expand");
	var $expandlink=document.getElementById("expand").getElementsByTagName("a");

	$("#form_layer").slideUp(1);
	$("#expand > a").click(function() {
		$("#form_layer").slideToggle("fast");
		if ($toggle==0) {
			$toggle=1;
			$expand.className="open";
			$expandlink[0].innerHTML="close";
		} else {
			$toggle=0;
			$expand.className="closed";
			$expandlink[0].innerHTML="Click here to sign-up";
		}
		return false;
	});

	$('a.email').each(function() { //Email address obfuscation
		e = this.rel.replace('/','@');
		this.href = 'mailto:' + e;
		$(this).text(e);
	});
	
	//enhanceDocument();
});

//Show/hide job table
function showJobTable($id) {
	var $link=document.getElementById("morelink"+$id);
	var $table=document.getElementById("jobtable"+$id);
	
	if ($table.style.display=="block") {
		$table.style.display="none";
		$link.innerHTML="+ More info";
	} else {
		$table.style.display="block";
		$link.innerHTML="- Close info";
	}
}

//Validate newsletter sign-up form
function validateNewsletter() {
	var error=0;
	var response="There were problems filling out the form:\n";

	var form=document.getElementById("newsletter_form");
	var firstname=form.nl_first_name.value;
	var email=form.nl_email.value;

	if (!isString(firstname) || firstname=="First Name*") {
		error=1;
		response+="Please enter your first name\n";
	}

	if (!isEmail(email)) {
		error=1;
		response+="Please enter a valid email address\n";
	}

	if (error==1) {
		alert(response);
		return false;
	} else {
		return true;
	}
}

//Validate search
function validateSearch() {
	var form=document.getElementById("search_form");
	var keywords=form.keywords.value;

	if (keywords.length<3) {
		error=1;
		alert("Please enter a valid search term (minimum 3 characters)");
	}

	if (error==1) {
		return false;
	} else {
		return true;
	}
}

//Validate publication quantity
function validateQuantity(form) {
	if (isInteger(form.quantity.value)) {
		return true;
	} else {
		alert("Please enter only whole numbers for quantity");
		return false;
	}
}

//String validation
function isEmail(str) {

	var emailRegExp="^[\\w-_\.']*[\\w-_\.']\@[\\w]\.+[\\w]+[\\w]$";
	var regex=new RegExp(emailRegExp);
	if (regex.test(str)) {
		return true;
	} else {
		return false;
	}

}

function isString(str) {
	if (str!="") {
		return true;
	} else {
		return false;
	}
}

function isNumeric(str) {
	var ValidChars = "0123456789.";
	var isNumber=true;
	var Char;

	for (i=0; i<str.length && isNumber==true; i++) {
		Char=str.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			isNumber = false;
		}
	}
	
	if (str=="") {
		isNumber=false;
	}

	return isNumber;
}

function isInteger(str) {
	var ValidChars = "0123456789";
	var isNumber=true;
	var Char;

	for (i=0; i<str.length && isNumber==true; i++) {
		Char=str.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			isNumber = false;
		}
	}

	return isNumber;
}

//Check DOM
document.getElementsByClassName = function($class) {
	var $results = Array();
	var $elements = document.getElementsByTagName("*");
	for (var $i=0; $i<$elements.length; $i++) {
		var $classes = $elements[$i].className.split(" ");
		for (var $j=0; $j<$classes.length; $j++) {
			if ($classes[$j] == $class) {
				$results[$results.length] = $elements[$i];
			}
		}
	}
	return $results;
}