// JavaScript Document

/* newsletter */
function validate_trader(trader_form)
{
	if(trader_form.title.value=='')
	{
		alert("Please select a title");
		trader_form.title.focus();
		return false;
	}
	if(trader_form.firstname.value=='')
	{
		alert("Please enter your first name.");
		trader_form.firstname.focus();
		return false;
	}
	if(trader_form.surname.value=='')
	{
		alert("Please enter your surname.");
		trader_form.surname.focus();
		return false;
	}
	if(trader_form.institution.value=='')
	{
		alert("Please enter a company or institution name.");
		trader_form.institution.focus();
		return false;
	}
	if(trader_form.position.value=='')
	{
		alert("Please enter your current position.");
		trader_form.position.focus();
		return false;
	}
	if (!validEmail(trader_form.email.value))
	{
		alert("Please enter your email address.");
		trader_form.email.focus();
		return false;
	}
	if(trader_form.agree.checked==false)
	{
		alert("You must agree to have your data shown in order to be considered.");
		trader_form.agree.focus();
		return false;
	}
}

function validateEcard(ecard_form)
{
	if(ecard_form.recipient_name.value=='')
	{
		alert("Please enter a recipient name.");
		ecard_form.recipient_name.focus();
		return false;
	}
	if(!validEmail(ecard_form.recipient_email.value))
	{
		alert("Please enter a valid recipient email address.");
		ecard_form.recipient_email.focus();
		return false;
	}
	if(ecard_form.recipient_name.value=='')
	{
		alert("Please enter a recipient name.");
		ecard_form.recipient_name.focus();
		return false;
	}
	if(ecard_form.message.value=='')
	{
		alert("Please write a message.");
		ecard_form.message.focus();
		return false;
	}
	if(ecard_form.sender_name.value=='')
	{
		alert("Please enter your name.");
		ecard_form.sender_name.focus();
		return false;
	}
	if(!validEmail(ecard_form.sender_email.value))
	{
		alert("Please enter a valid email address.");
		ecard_form.sender_email.focus();
		return false;
	}
	return true;
}

function validNewsletter(newsletterForm) {

	if (newsletterForm.name.value == 'Name...') {
		alert("Please enter your your Name");
		newsletterForm.name.focus();
		return false;
		}

	if (newsletterForm.name.value == '') {
		alert("Please enter your your Name");
		newsletterForm.name.focus();
		return false;
		}

	if (newsletterForm.email.value == 'Email...') {
		alert("Please enter your email address");
		newsletterForm.email.focus();
		return false;
		}

	if (newsletterForm.email.value == '') {
		alert("Please enter your email address");
		newsletterForm.email.focus();
		return false;
		}

	if (!validEmail(newsletterForm.email.value)) {
		alert("Please enter a valid email");
		newsletterForm.email.focus();
		return false;
		}

	var ajaxCall = SITE_URL + '/includes/newsletter/subscribe.php?do=add_subscriber&attribs=';
	ajaxCall += newsletterForm.name.value + '|';
	ajaxCall += newsletterForm.email.value;
	
	var results = doAJAX( ajaxCall );
	
	document.getElementById('newsletter-form').style.display = 'none';
	document.getElementById('newsletter-message').style.display = 'block';
	
	if ( results != 'You have been successfully<br />added to our mailing list.' )
		document.getElementById('newsletter-message').innerHTML = '<div style="padding: 7px 0 0 0;">' + results + '<br /><a href="javascript:;" onclick="javascript: resetSubsForm();">Try Again</a></div>';
	else
		document.getElementById('newsletter-message').innerHTML = results;
		
	return false;
	
}

function resetSubsForm() {
	document.newsletterForm.name.value = '';
	document.newsletterForm.email.value = '';
	document.getElementById('newsletter-message').style.display = 'none';
	document.getElementById('newsletter-form').style.display = 'block';
	document.getElementById('newsletter-message').innerHTML = '';
}

function validKidsContact(kidsContact) {



	if (kidsContact.firstname.value == '') {
		alert("Please enter your your First Name");
		kidsContact.firstname.focus();
		return false;
		}
		
	if (kidsContact.surname.value == '') {
		alert("Please enter your your Surname");
		kidsContact.surname.focus();
		return false;
		}

	if (kidsContact.email.value == '') {
		alert("Please enter your email address");
		kidsContact.email.focus();
		return false;
		}

	if (!validEmail(kidsContact.email.value)) {
		alert("Please enter a valid email");
		kidsContact.email.focus();
		return false;
		}
		
	if (!validNum(kidsContact.mobile.value)) {
		alert("Please enter a valid mobile number");
		kidsContact.mobile.focus();
		return false;
		}

	return true;

}


function validContactForm(contactForm) {



	if (contactForm.firstname.value == '') {
		alert("Please enter your your First Name");
		contactForm.firstname.focus();
		return false;
		}
		
	if (contactForm.surname.value == '') {
		alert("Please enter your your Surname");
		contactForm.surname.focus();
		return false;
		}

	if (contactForm.email.value == '') {
		alert("Please enter your email address");
		contactForm.email.focus();
		return false;
		}

	if (!validEmail(contactForm.email.value)) {
		alert("Please enter a valid email");
		contactForm.email.focus();
		return false;
		}
		
	if (!validNum(contactForm.mobile.value)) {
		alert("Please enter a valid mobile number");
		contactForm.mobile.focus();
		return false;
		}

	return true;

}



function validInviteAuthor(inviteForm) {



	if (inviteForm.authorname.value == '') {
		alert("Please enter your Author Name");
		inviteForm.authorname.focus();
		return false;
		}
		
	if (inviteForm.titlebook.value == '') {
		alert("Please enter Title of Book");
		inviteForm.titlebook.focus();
		return false;
		}
		
	if (inviteForm.genre.value == '') {
		alert("Please enter a genre");
		inviteForm.genre.focus();
		return false;
		}

	


	return true;

}

function validZone(zonelogintable) {

	if (zonelogintable.email.value == '') {
		alert("Please enter your User Name");
		zonelogintable.email.focus();
		return false;
		}
		

		
	if (zonelogintable.password.value == '') {
		alert("Please enter your password");
		zonelogintable.password.focus();
		return false;
		}


	


	return true;

}

/* ************** VALIDATION FUNCTIONS ***************** */



function validNum(telno) {
	var pattern = "0123456789+-)( ";
	var i = 0;

	

	do {
		var pos = 0;
		for (var j=0;j<pattern.length;j++)
			if (telno.charAt(i)==pattern.charAt(j))
				pos = 1;
		i++;

	}

	while (pos==1 && i<telno.length)
	

	if (pos==0) return false;
	return true;

}





function validEmail(addr){

	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=addr.match(emailPat)
	

	if (matchArray==null) {

		//alert("Please enter a valid email address (check @ and .'s)")
		return false

	}

	

	var user=matchArray[1]
	var domain=matchArray[2]


	if (user.match(userPat)==null) {
		//alert("The username doesn't seem to be valid.")
		return false

	}

	

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				//alert("Destination IP address is invalid!")
				return false

			}

		}

		return true

	}

	

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {

		//alert("The domain name doesn't seem to be valid.")

		return false

	}

	

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {

		//alert("The address must end in a three-letter domain, or two letter country.")

		return false

	}

	if (len<2) {

		//alert("This address is missing a hostname!")

		return false

	}

	return true;

}

/*search results pages for exhibitors and traders */
function change_paging(select_element, cat_type, current_page)
{
	results_per_page = select_element.value;
	//location='?page='+current_page+'&per_page='+results_per_page;
	location = SITE_URL+'/'+cat_type+'/catalogue/search-results/'+current_page+'/'+results_per_page;
}

/*search results pages for exhibitors and traders */
function change_paging_who(select_element, cat_type, current_page)
{
	results_per_page = select_element.value;
	//location='?page='+current_page+'&per_page='+results_per_page;
	location = SITE_URL+'/exhibitors/zone/search-whos-who-results/'+current_page+'/'+results_per_page;
}

/* ************ PROFILE PAGE SHOW/HIDE *************** */



function doProfile(id,selected) {

	

	if (document.getElementById) {

		// sort out the right thing to display
		for ( var i = 1; i < 5; i++ ) {

			// hide all
		
		//	document.getElementById('heading' + i).style.display = 'none';
			document.getElementById('content_b_' + i).style.display = 'none';

		}

		// show one with ID

		//document.getElementById('heading' + id).style.display = 'block';
		
		document.getElementById('content_b_' + id).style.display = 'block';

		

		// get all links inside the right column
		var nav_box = document.getElementById("menu-navigation");
		var links = nav_box.getElementsByTagName("a");	

		

		// set all the links classes to nothing

		for(var i=0; i<links.length; i++)
			links[i].className = "";

		

		// set selected link as selected
		
		selected.className = "selected";

		

		// purely cosmetic... (adjust right hand stripe and margins)

		 

		document.getElementById("menu-navigation").style.margin = '0';

		if (id > 0) {

		 
		document.getElementById("menu-navigation").style.margin = '0';

		}
		
	} else

		alert('Please update your browser');

}





function doProfile2(id,selected) {

	

	if (document.getElementById) {

		// sort out the right thing to display
		for ( var i = 0; i < 5; i++ ) {

			// hide all

		//	document.getElementById('heading' + i).style.display = 'none';
			document.getElementById('content_b_' + i).style.display = 'none';

		}

		// show one with ID

		//document.getElementById('heading' + id).style.display = 'block';
		document.getElementById('content_b_' + id).style.display = 'block';

		

		// get all links inside the right column
		var nav_box = document.getElementById("menu-navigation");
		var links = nav_box.getElementsByTagName("a");	

		

		// set all the links classes to nothing

		for(var i=0; i<links.length; i++)
			links[i].className = "";

		// set selected link as selected
		selected.className = "selected";
		// purely cosmetic... (adjust right hand stripe and margins)
		document.getElementById("menu-navigation").style.margin = '0';

		if (id > 0) {

		 
		document.getElementById("menu-navigation").style.margin = '0';

		}
		
	} else

		alert('Please update your browser');

}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}