String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
}
function checkEmail(emailStr)
{
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(emailStr)){
		return true;
	} else {
		return false;
	}	
}
function checkDateFormat(dateStr)
{
	var filter = /^(\d){1,2}-(\d){1,2}-(\d){4}$/
	if(filter.test(dateStr)){
		return true;
	} else {
		return false;
	}	
}
function checkDate(dateElem, fieldTitle)
{
	if(!checkDateFormat(dateElem.value.trim())){
		alert('Please enter a valid date format (dd-mm-yyyy) for the ' + fieldTitle + ' field!');
		dateElem.focus();
		return false;
	}else {
		var dateAr = new Array();
		dateAr = dateElem.value.trim().split('-');	
			
		var d = new Date();
		curYear = d.getFullYear();
		curMonth = d.getMonth() + 1;
		curDay = d.getDate();		
		
		var monthDays = new Array();
		monthDays[1] = monthDays[3] = monthDays[5] = monthDays[7] = monthDays[8] = monthDays[10] = monthDays[12] = 31;
		monthDays[4] = monthDays[6] = monthDays[9] = monthDays[11] = 30;
		monthDays[2] = dateAr[0] % 4 == 0 ? 29: 28;
		
		if(dateAr[2] > curYear){
			alert('Please enter a valid date for the ' + fieldTitle + ' field!');
			dateElem.focus();
			return false;
		} else if(dateAr[2] == curYear && dateAr[1] > curMonth){
			alert('Please enter a valid date for the ' + fieldTitle + ' field!');
			dateElem.focus();
			return false;
		} else if(dateAr[2] == curYear && dateAr[1] == curMonth && dateAr[0] > curDay){
			alert('Please enter a valid date for the ' + fieldTitle + ' field!');
			dateElem.focus();
			return false;
		} else if(dateAr[2] < 0001 || dateAr[1] < 1 || dateAr[1] > 12 || dateAr[0] < 1 || dateAr[0] > monthDays[dateAr[1]-0]){
			alert('Please enter a valid date for the ' + fieldTitle + ' field!');
			dateElem.focus();
			return false;
		}		
	}	
	return true;
}
function changeSelection(element)
{
	selected = document.getElementsByClassName('LeftColumnNavigationS');
	if(selected[0])
		selected[0].setAttribute('class', 'LeftColumnNavigationN');
	element.setAttribute('class', 'LeftColumnNavigationS');
}
function ClearDateField(elem)
{
	if(elem.value == '(dd-mm-yyyy)')
		elem.value = '';
}
function CheckEmailForm()
{
	myForm = document.getElementById('MemberIdForm');
	if(myForm.email.value.trim() == ''){
		alert('Please fill in the email field!');
		myForm.email.focus();
		return false;
	}else if(!checkEmail(myForm.email.value)){
		alert('Please enter a valid email address!');
		myForm.email.focus();
		return false;
	}
	myForm.submit();
}

function CheckChangeDetailsForm()
{
	var message = "";
	
	cMemberPartnerCode = document.getElementById('memberPartnerCode');
	cMemberId = document.getElementById('memberId');
	cMemberEmailAddress = document.getElementById('memberEmailAddress');
	cMemberOldPostCode = document.getElementById('memberOldPostCode');
	
	if((cMemberPartnerCode.value.length != 3 || cMemberId.value.length != 10) &&
	   (cMemberEmailAddress.value.length < 1) && (cMemberOldPostCode.value.length < 1))
	{
		
		alert("Please provide at least one of the identification details...");
	}
	else
	{
		document.getElementById('ChangeDetailsForm').submit();
	}
}

function hide_answers(page_title)
{
	answers = document.getElementsByClassName('faq_answer');
	for(i=0; i<answers.length; i++)
	{
		answers[i].style.display = 'none';
	}
}

function toogle_answer(elem)
{
	var nav = navigator.userAgent.toLowerCase();
	if(nav.indexOf("msie") != -1)
		elem.parentNode.nextSibling.firstChild.style.display = elem.parentNode.nextSibling.firstChild.style.display == 'none' ? 'block' : 'none' ;
	else
		elem.parentNode.nextSibling.nextSibling.firstChild.style.display = elem.parentNode.nextSibling.nextSibling.firstChild.style.display == 'none' ? 'block' : 'none' ;	
}

function CheckForm2()
{
	myForm = document.getElementById('UnsubscribeForm');
	if(myForm.email_address.value.trim() == ''){
		alert('Please complete the email address field!');
		myForm.email_address.focus();
		return false;
	} else if(!checkEmail(myForm.email_address.value)) {
		alert('Please enter a valid email address!');
		myForm.email_address.focus();
		return false;
	}
	myForm.submit();
}

function membershipIdFocus(thisControl, idOfOtherControl)
{
	var otherControl = document.getElementById(idOfOtherControl);
	thisControl.value = thisControl.value.toUpperCase();
	if(thisControl.value.length == 3) otherControl.focus();
}
