
FOS= {};

//use browser sniffing to determine if IE or Opera (ugly, but required)
var isOpera, isIE = false;
if(typeof(window.opera) != 'undefined'){isOpera = true;}
if(!isOpera && navigator.userAgent.indexOf('Internet Explorer')){isIE = true;}

//fix both IE and Opera (adjust when they implement this method properly)
if(isOpera || isIE){
  document.nativeGetElementById = document.getElementById;
  //redefine it!
  document.getElementById = function(id){
    var elem = document.nativeGetElementById(id);
    if(elem){
      //verify it is a valid match!
      if(elem.attributes['id'] && elem.attributes['id'].value == id){
        //valid match!
        return elem;
      } else {
        //not a valid match!
        //the non-standard, document.all array has keys for all name'd, and id'd elements
        //start at one, because we know the first match, is wrong!
        for(var i=1;i<document.all[id].length;i++){
          if(document.all[id][i].attributes['id'] && document.all[id][i].attributes['id'].value == id){
            return document.all[id][i];
          }
        }
      }
    }
    return null;
  };
}


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;
	};
	
	var req;
	
	function callAjax(url) {
		
	    // branch for native XMLHttpRequest object
	    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
	    	try {
				req = new XMLHttpRequest();
	        } catch(e) {
				req = false;
	        }
	    // branch for IE/Windows ActiveX version
	    } else  {
	       	try {
	        	req = new ActiveXObject("Microsoft.XMLHTTP");
	      	} catch(e) {
	        	try {
	          		req = new ActiveXObject("Msxml2.XMLHTTP");
	        	} catch(e) {
	          		req = false;
	        	}
			}
	    }
		if(req) {
			req.open("GET", url, true);
			req.onreadystatechange = processReqChange;
			req.send("");
		}
		
		//req = null;
	}
	
	function stripslashes(str) {
		str=str.replace(/\\'/g,'\'');
		str=str.replace(/\\"/g,'"');
		str=str.replace(/\\0/g,'\0');
		str=str.replace(/\\\\/g,'\\');
		return str;
	}
	 	
	function isNumeric(sText){
	   var validChars = "0123456789.";
	   var isNumber=true;
	   var char;
	 
	   for (i = 0; i < sText.length && isNumber == true; i++){ 
	      char = sText.charAt(i); 
	      if (validChars.indexOf(char) == -1){
	         isNumber = false;
	      }
	   }
	   return isNumber;
	}
	
	function submitForm(id){
		document.getElementById(id).submit();
	}

	function validateForm(id, submit){
	
		if (submit === undefined)
			submit = true;
		
		hideFormErrorMessages();
		var form = document.getElementById(id);
		var requiredElements = [];
		var requiredClass = new RegExp('\\brequired\\b');
		var elem = form.getElementsByTagName('*');
		for (var i = 0; i < elem.length; i++) {
			var classes = elem[i].className;
			if (requiredClass.test(classes)) requiredElements.push(elem[i]);
		}

		for(var i=0; i<requiredElements.length; i++){
			
			requiredElem = requiredElements[i];
			var anchorName = requiredElem.id+"Anchor";
			//alert(requiredElem.id);
			if((requiredElem.type=='text')||(requiredElem.type=='password')||(requiredElem.type=='file')){
				if(requiredElem.value==''){
					var div = document.createElement('div');
					div.setAttribute('class', 'form_error_message');
					div.setAttribute('color', 'red');
					div.appendChild(document.createTextNode(requiredElem.getAttribute('description')+' is a required field.'));
					var parent = requiredElem.parentNode;
					parent.appendChild(div);
					
					window.location.hash=anchorName;
					return false;
				}
			} else if(requiredElem.type=='checkbox'){				
				if(!requiredElem.checked){
					var div = document.createElement('div');
					div.setAttribute('class', 'form_error_message');
					div.setAttribute('color', 'red');
					div.appendChild(document.createTextNode(requiredElem.getAttribute('description')+' is a required field.'));
					var parent = requiredElem.parentNode;
					parent.appendChild(div);
					window.location.hash=anchorName;
					return false;					
				}
			} else if(requiredElem.type=='radio'){
				//get all radio buttons 
				var elemName = requiredElem.name;
				var requiredRadios=document.getElementsByName(elemName);
				var oneRadioChosen=false;
				for(var j=0; j<requiredRadios.length; j++){
					var requiredRadio = requiredRadios[j];
					if(requiredRadio.checked){
						oneRadioChosen=true;
					}
				}
				if(!oneRadioChosen){
					var div = document.createElement('div');
					div.setAttribute('class', 'form_error_message');
					div.setAttribute('color', 'red');
					div.appendChild(document.createTextNode('You must choose one of the '+requiredElem.getAttribute('description')+' options.'));
					var parent = requiredElem.parentNode;
					parent.appendChild(div);
					window.location.hash=anchorName;
					return false;						
				}
			} else if(requiredElem.tagName.toUpperCase()=='SELECT'){
				var selectValue = requiredElem.options[requiredElem.selectedIndex].value;
				if((selectValue==0)||(selectValue=='')){
					var div = document.createElement('div');
					div.setAttribute('class', 'form_error_message');
					div.setAttribute('color', 'red');
					div.appendChild(document.createTextNode('You must select a '+requiredElem.getAttribute('description')+'.'));
					var parent = requiredElem.parentNode;
					parent.appendChild(div);
					window.location.hash=anchorName;
					return false;				
				}
			}
			
		}
		var requiredTimeElements = [];
		var requiredClass = new RegExp('\\brequiredTime\\b');
		var elem = form.getElementsByTagName('*');
		for (var i = 0; i < elem.length; i++) {
			var classes = elem[i].className;
			if (requiredClass.test(classes)) requiredTimeElements.push(elem[i]);
		}	
		for(var i=0; i<requiredTimeElements.length; i++){
			requiredElem = requiredTimeElements[i];
			var anchorName = requiredElem.id+"Anchor";
			if((requiredElem.type=='text')||(requiredElem.type=='password')||(requiredElem.type=='file')){
				if((requiredElem.value=='')){
					var div = document.createElement('div');
					div.setAttribute('class', 'form_error_message');
					div.setAttribute('color', 'red');
					div.appendChild(document.createTextNode(requiredElem.getAttribute('description')+' is a required field.'));
					var parent = requiredElem.parentNode;
					parent.appendChild(div);
					
					window.location.hash=anchorName;
					return false;
				} else {
					if(!validateTimeFormat(requiredElem)){
						return false;
					}
				}
			}	
		}
		if (submit)
			submitForm(id);
	}		
	function hideFormErrorMessages(){
		var elems = [];
		elems = document.getElementsByClassName('form_error_message');
		if(elems!='undefined'){
			//alert(elems.length);
			for(var i=0; i<elems.length; i++){
				elems[i].innerHTML = '';
				elems[i].className="hidden";
				elems[i].style.display='none';
				var parent = elems[i].parentNode;
				parent.removeChild(elems[i]);
			}
		}
	}	

	function validateTimeFormat(elem){
		//alert('validateTimeFormat('+elem+') called');
		hideFormErrorMessages();
		var time = elem.value;
		var valid = 1;
		var errorMsg = '';
		var anchorName = elem.id+"Anchor";
		if(time==null){
			elem.value='hh:mm:ss';
			errorMsg = "You must enter a time in a valid format 'hh:mm:ss'";
			valid=0;	
	
		} else {
			if(time==''){
				elem.value='hh:mm:ss';
				errorMsg = "You must enter a time with numbers in a valid format 'hh:mm' e.g. 01:14";
				valid=0;				
			}
			if(time=='hh:mm:ss'){
				elem.value='hh:mm:ss';
				errorMsg = "You must enter a time with numbers in a valid format 'hh:mm:ss' e.g. 01:14:07";
				valid=0;				
			}
			var timeParts = time.split(':');
			if(timeParts.length!=3){
				elem.value='hh:mm:ss';
				errorMsg = "You must enter a time in a valid format 'hh:mm:ss'";
				valid=0;
			} else {
				//check for length and value of each one
				if(timeParts[0].length!=2){
						
					elem.value='hh:mm:ss';
					errorMsg = "You must enter a time in a valid format 'hh:mm:ss'";
					valid=0;
				}
				if((timeParts[1].length!=2)||(timeParts[1]>60)){
					elem.value='hh:mm:ss';
					errorMsg = "You must enter a time in a valid format 'hh:mm:ss'";
					valid=0;
				}
				
				if((timeParts[2].length!=2)||(timeParts[2]>60)){
					elem.value='hh:mm:ss';
					errorMsg = "You must enter a time in a valid format 'hh:mm:ss'";
					valid=0;					
				}	
				
				if((!isNumeric(timeParts[0]))||(!isNumeric(timeParts[1]))){
		
					elem.value='hh:mm:ss';
					errorMsg = "You must enter a time with numbers in a valid format 'hh:mm' e.g. 01:14:07";
					valid=0;				
				}		
			}
		}
		if(valid==1){
			//alert('returning troo');
			return true;	
		} else {
			var div = document.createElement('div');
			div.setAttribute('class', 'form_error_message');
			div.setAttribute('color', 'red');
			div.appendChild(document.createTextNode(errorMsg));
			var parent = elem.parentNode;
			parent.appendChild(div);
			window.location.hash=anchorName;
			//alert('returning false');
			return false;			
		}
	}
	
	function validateEmail(elem){  
	    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
	    if(emailPattern.test(elem.value)){
	    	return true;
	    } else {
	    	hideFormErrorMessages();
	    	var anchorName = elem.id+"Anchor";
	    	var div = document.createElement('div');
		div.setAttribute('class', 'form_error_message');
		div.className="form_error_message";
		div.appendChild(document.createTextNode('Please enter a valid email address'));
		var parent = elem.parentNode;
		parent.appendChild(div);
		elem.value='';
		window.location.hash=anchorName;
		return false;	    	
					
	    }
	}	


	function checkExistingOrganiserName(elem){
		hideFormErrorMessages();
		if(elem.value==''){
			return;	
		}
		var url = "ajax/checkOrganiserName.php?organiserName="+elem.value;
		callAjax(url);	
	}	
	function checkExistingEmail(elem){
		hideFormErrorMessages();
		var url = "ajax/checkEmail.php?email="+elem.value;
		callAjax(url);	
	}	
	function populateOrganiserContactDetails(){
		document.getElementById('firstName').value=document.getElementById('memberFirstName').value;
		document.getElementById('lastName').value=document.getElementById('memberLastName').value;
		document.getElementById('email').value=document.getElementById('memberEmail').value;
		document.getElementById('address1').value=document.getElementById('memberAddress1').value;
		document.getElementById('address2').value=document.getElementById('memberAddress2').value;
		document.getElementById('address3').value=document.getElementById('memberAddress3').value;
		document.getElementById('city').value=document.getElementById('memberCity').value;
		document.getElementById('regionId').value=document.getElementById('memberRegionId').value;
		document.getElementById('countryId').value=document.getElementById('memberCountryId').value;
		document.getElementById('postcode').value=document.getElementById('memberPostcode').value;
		document.getElementById('telNo').value=document.getElementById('memberHomeNo').value;
	}	
	function validateDateFormat(elem){
		hideFormErrorMessages();
		var valid = 1;
		var errorMsg = '';
		var anchorName = elem.id+"Anchor";
				
		var dateStr = elem.value;
		if(dateStr==''){
			elem.value='dd/mm/yyyy';
			errorMsg = "You must enter a date in a valid format 'dd/mm/yyyy'";
			valid=0;			
		} else {
			var dateParts = dateStr.split('/');
			if(dateParts.length!=3){
				errorMsg = "You must enter the date in a valid format\n\ndd/mm/yyyy";	
				valid=0;
			} else {
				if((!isNumeric(dateParts[0]))||(!isNumeric(dateParts[1]))||(!isNumeric(dateParts[2]))){
					errorMsg = "You must enter the date with number in a valid format\n\ndd/mm/yyyy\n\ne.g. 07/04/1991";	
					valid=0;			
				} else {
					//check for length and value of each one
					if((dateParts[0].length!=2)||(dateParts[0]<1)||(dateParts[0]>31)){
						errorMsg = "You must enter a valid date in the format\n\ndd/mm/yyyy";	
						valid=0;					
					}
					if((dateParts[1].length!=2)||(dateParts[1]<1)||(dateParts[1]>12)){
						errorMsg = "You must enter a valid date in the format\n\ndd/mm/yyyy";	
						valid=0;					
					}
					var d = new Date();
					if((dateParts[2].length!=4)||(dateParts[2]<1910)||(dateParts[2]>d.getFullYear())){
						errorMsg = "You must enter a valid date in the format\n\ndd/mm/yyyy";	
						valid=0;					
					}	
				}
			}
		}
		if(valid==1){
			return true;	
		} else {
			elem.value='';
			var div = document.createElement('div');
			div.setAttribute('class', 'form_error_message');
			div.className="form_error_message";
			div.appendChild(document.createTextNode(errorMsg));			
			var parent = elem.parentNode;
			parent.appendChild(div);
			window.location.hash=anchorName;
			return false;			
		}			
	}	
	
	function validatePasswords(){
		hideFormErrorMessages();
		if(document.getElementById('memberPassword')==null){
			return true;	
		}
		var elem = document.getElementById('memberPassword');
		var password = elem.value;
		
		var retypePasswordElem = document.getElementById('retypeMemberPassword');
		var retypePassword = retypePasswordElem.value;
		//alert(password+':'+retypePassword);
		if(password!=retypePassword){
			elem.value='';
			retypePasswordElem.value='';
			var div = document.createElement('div');
			div.setAttribute('class', 'form_error_message');
			div.className="form_error_message";
			div.appendChild(document.createTextNode('Passwords do not match, please retype'));
			var parent = elem.parentNode;
			parent.appendChild(div);
			window.location.hash='';
			window.location.hash='memberRetypePasswordAnchor';
			return false;		
		
		} else if(password.length<6){
			elem.value='';
			retypePasswordElem.value='';
			var div = document.createElement('div');
			div.setAttribute('class', 'form_error_message');
			div.className="form_error_message";
			div.appendChild(document.createTextNode('Password must be at least 6 characters'));
			var parent = elem.parentNode;
			parent.appendChild(div);
			window.location.hash='';
			window.location.hash='memberPasswordAnchor';
			return false;
		
		
		} 
		return true;
	}	

	function toggleDiv(id){
		var elem = document.getElementById(id);
		if(elem.style.display=='block'){
			elem.style.display='none';
		} else {
			elem.style.display='block';
		}
	}

	function togglePanel(panelId){
		var contentPanel = document.getElementById(panelId);
		var image = document.getElementById(panelId+'Image');
		if(contentPanel.style.display=='none'){
			contentPanel.style.display='block';
			image.src='images/buttons/upArrow.png';
			image.alt='Hide';
			image.title='Hide';
		} else {
			contentPanel.style.display='none';
			image.src='images/buttons/downArrow.png';
			image.alt='Show';
			image.title='Show';
		}
	}	

var catalogueProductId;
var enterNow;
function addToBasket(productId){
	catalogueProductId = productId;
	var basketId = document.getElementById('basketId').value;
	var url = "ajax/addToBasket.php?productId="+productId+"&basketId="+basketId;
	//alert(url);
	callAjax(url);
}
function addSeriesToItemBasket(seriesId, memberId, entryTitle){
	seriesId = seriesId;
	var basketId = document.getElementById('basketId').value;
	var url = "ajax/addSeriesToBasket.php?seriesId="+seriesId+"&memberId="+memberId+"&basketId="+basketId+"&entryTitle="+entryTitle;
	//alert(url);
	callAjax(url);
}
function addToUniqueItemBasket(productId, memberId){
	
	 
		
	catalogueProductId = productId;
	var basketId = document.getElementById('basketId').value;
	var url = "ajax/addToBasket.php?productId="+productId+"&memberId="+memberId+"&basketId="+basketId;
	//alert(url);
	callAjax(url);
}
function updatedDeliveryAddress(){
	var deliveryAddressId = document.getElementById('deliveryAddress').options[document.getElementById('deliveryAddress').selectedIndex].value;
	var purchaseOrderId = document.getElementById('basketId').value;
	var url = "ajax/updateDeliveryAddress.php?deliveryAddressId="+deliveryAddressId+"&purchaseOrderId="+purchaseOrderId;
	
	callAjax(url);
}


 

function createMemberAndAddUniqueItem(productId){
	hideFormErrorMessages();
	
	var url = '';
	var url2 = '';
	
	var basketId = document.getElementById('basketId').value;
	 
	
	FOS.formName = 'newMemberForm'+productId;
	 
	if (validateForm (FOS.formName, false) == false)
		return false;
		
	
	var form = document.getElementById(FOS.formName);
	var elems = form.getElementsByTagName('input');

	for(var i=0;i<elems.length;i++){
		var elem = elems[i];
		var att = elem.getAttribute('name');
			
		 
			
		   if (elem.getAttribute('type') == 'radio') 
		   {  
		     
		     if (elem.checked == true)
             url =  url  + att + "=" + elem.value + "&";
       
       }
       else
         url =  url  + att + "=" + elem.value + "&";
			 
	}
	   
	 url2 = "ajax/addToBasket.php?bff=1&productId="+productId+"&basketId="+basketId+"&"+url;
	 
	// alert(url2);
	 callAjax(url2);
	
	 
	 	
	 
	/* document.getElementById('createMemberDiv'+catalogueProductId).style.display='none';*/
	 document.getElementById('productDiv'+catalogueProductId).style.display='none'; 
	
}
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function setCatalogueProductId(productId){
	catalogueProductId=productId;
}
function setEnterNow(eN){
	enterNow=eN;
}
function removeBasketItem(purchaseOrderItemId){
	var basketId = document.getElementById('basketId').value;
	var url = "ajax/removeFromBasket.php?purchaseOrderItemId="+purchaseOrderItemId+"&basketId="+basketId;
	
	
	if (document.getElementById('series_page') != null)  { 
		
		//try { 
			 
			//if (document.getElementById('add_now_'+purchaseOrderItemId) != null)
				//document.getElementById('add_now_'+purchaseOrderItemId).innerHTML = 'Add To Basket';
			//}
		//catch (e)
		//{}
	}
	
		
		//alert(url);
	callAjax(url);
}

function findMemberDetails(textId){
	hideFormErrorMessages();
	var memberEmailElem = document.getElementById(textId);
	var memberEmail = memberEmailElem.value;
	if(memberEmail==''){
		//alert('You must enter an email address');
		var div = document.createElement('div');
		div.setAttribute('class', 'form_error_message');
		div.className="form_error_message";
		div.appendChild(document.createTextNode('You must enter a valid email address'));
		//var parent = createMemberDiv.parentNode;
		
		//var createMemberDiv = document.getElementById('productDiv'+catalogueProductId);
		
		memberEmailElem.parentNode.appendChild(div);		
		return false;
	}
	var url = "ajax/getMemberDetails.php?memberEmail="+memberEmail;
	//alert(url);
	callAjax(url);
	
}

function filterCatalogue(){
	var organiserId = document.getElementById('organiserId').options[document.getElementById('organiserId').selectedIndex].value;

	var eventId = document.getElementById('eventId').options[document.getElementById('eventId').selectedIndex].value;

var uniqueGroupId = document.getElementById('uniqueGroupId').options[document.getElementById('uniqueGroupId').selectedIndex].value;

	window.location.href='?module=catalogue&action=browse&organiserId='+organiserId+'&eventId='+eventId;
}

function processReqChange() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			var response=trim(req.responseText);
			//alert(response+':'+response.indexOf('<option'));
			var parts = response.split('|');
			
			if(parts[0]=='BAD_AGE'){
				 alert('The participant you are trying to enter into this event is too young. The minimum age is ' + parts[1]);		
				return false;
			} 
			
			if(response=='BAD'){
				hideFormErrorMessages();
				var createMemberDiv = document.getElementById('createMemberDiv'+catalogueProductId); 
				if(createMemberDiv.style.display=='none'){
					toggleDiv('createMemberDiv'+catalogueProductId);
				}
				
				var div = document.createElement('div');
				div.setAttribute('class', 'form_error_message');
				div.className="form_error_message";
				div.appendChild(document.createTextNode('The email address you entered does not exist on our system.  Please enter the member details.'));
				createMemberDiv.appendChild(div);			
				return false;
			} 
			else if(response=='UNIQUE_SERIES'){
				hideFormErrorMessages();
				
				var divs = document.getElementsByName("all_all_to_basket");
				
				for (i=0;i<divs.length;i++){  
					divs[i].innerHTML = 'Already Added';
				}
			}
			
			else if(response=='UNIQUE'){
				hideFormErrorMessages();
				var div = document.createElement('div');
				div.setAttribute('class', 'form_error_message');
				div.className="form_error_message";
				
				if (document.getElementById('series_page') != null)  { 
					div.appendChild(document.createTextNode("You can only purchase one of these items per person. This event is already in your shopping basket."));
					
					if (document.getElementById('add_now_'+catalogueProductId) != null)
						document.getElementById('add_now_'+catalogueProductId).innerHTML = 'Already Added';
				}
				else
					div.appendChild(document.createTextNode("You can only purchase one of these items per person. This event is already in your shopping basket. If you would like to enter for a friend then click the 'Buy for friend button.'"));	
				
				//var parent = createMemberDiv.parentNode;
				var productDiv = document.getElementById('productDiv'+catalogueProductId);
				
				var createMemberDiv = document.getElementById('productDiv'+catalogueProductId);
				
				productDiv.parentNode.parentNode.appendChild(div);
				//createMemberDiv.style.display='block';
				//productDiv.style.display='block';				

				return false;
			}else if(response.indexOf('<option')>=0){
				document.getElementById('deliveryAddress').innerHTML=req.responseText;			
				document.getElementById('addDeliveryAddress').style.display='none';
			}else if(response.indexOf('|')>0){
				var parts = response.split('|');//need to parse EMAIL|rod@dcoedcom and ORGANISER|Paddy's Running Club
				//alert(parts[0]);
				if(parts[0]=='EMAIL'){
					hideFormErrorMessages();
					var requiredElem = document.getElementById('email');
					var div = document.createElement('div');
					var br1 = document.createElement('br');
			
					div.setAttribute('class', 'form_error_message');
					div.className="form_error_message";
					
					div.appendChild(document.createTextNode('The email address \''+stripslashes(parts[1])+'\' already exists on the system.  Please login using the form above, or request your password be resent to you.'));
					div.appendChild(br1);
					div.appendChild(document.createTextNode('For more help, please use our support pages.'));
			
					var parent = requiredElem.parentNode;
					parent.appendChild(div);	            		
					
					document.getElementById('email').value='';
					return false;
				}else if(parts[0]=='IMAGE'){
					document.getElementById('viewImageDiv').innerHTML = parts[1];
				}else if(parts[0]=='ORGANISER'){
					hideFormErrorMessages();
					var requiredElem = document.getElementById('organiserName');
					var div = document.createElement('div');
					var br1 = document.createElement('br');
					var br2 = document.createElement('br');
					
					div.setAttribute('class', 'form_error_message');
					div.className="form_error_message";
					div.appendChild(document.createTextNode('The Organiser \''+stripslashes(parts[1])+'\' is already being administered on the system.'));
					div.appendChild(br1);
					div.appendChild(document.createTextNode('Please contact the Organiser to discuss becoming an administrator on our system.'));
					div.appendChild(br2);
					div.appendChild(document.createTextNode('For more help, please use our support pages.'));
					
					var parent = requiredElem.parentNode;
					parent.appendChild(div);	            		
					
					document.getElementById('organiserName').value='';
					return false;
					
				}else if(parts[0]=='ADDRESS'){
					document.getElementById('deliveryAddress').innerHTML=req.responseText;	
					document.getElementById('addDeliveryAddress').style.display='none';
				}else if(parts[0]=="SHOPPING"){
				
					try {
					 if (document.getElementById("checkoutHolder") != null)
					 	removeElement("checkoutHolder");
						
					
					}
					catch (e) {
					
					}
					
					if (location.search ==  "?module=catalogue&action=checkout")
							window.location.href = "?module=catalogue&action=checkout";
					
					
					document.getElementById('shoppingBasket').innerHTML=parts[1];

					var noOfItems = parts[2];
					var basketTotal = parts[3];
					var newHtml = "";
					
					if(noOfItems>0){
						newHtml += "<a href=\"?module=catalogue\">View Basket ("+noOfItems+")</a><a href=\"?module=catalogue&amp;action=checkout\">Checkout ("+basketTotal+")</a>";
					}
					newHtml += "<a href=\"?module=member\">View Profile</a><a href=\"logout.php\">Logout <span class=\"lBlue\">&raquo;</span></a>";
					document.getElementById('profileLinks').innerHTML=newHtml;							

					if(enterNow){
						window.location.href="?module=catalogue&action=checkout";
					
					}
					enterNow=0;
					return true;
					
					var form = document.getElementById(FOS.formName );
	
	 				form.reset();
	 
				}
				if(parts.length==4){
					var memberId = parts[0];
					var email = parts[1];
					var firstName = parts[2];
					var lastName = parts[3];
					addToUniqueItemBasket(catalogueProductId, memberId);
					var formName = 'newMemberForm'+catalogueProductId;
					var form = document.getElementById(formName);
					form.reset();
					document.getElementById('createMemberDiv'+catalogueProductId).style.display='none';
					document.getElementById('productDiv'+catalogueProductId).style.display='none';
					
					
					
				} else {
					document.getElementById('paypalAddress1').value=parts[0];
					document.getElementById('paypalAddress2').value=parts[1];
					document.getElementById('paypalCity').value=parts[3];
					document.getElementById('paypalPostcode').value=parts[6];
					document.getElementById('paypalForm').submit();
				}
				return true;	
			} else if(response.indexOf('basket_item')>0){
				//alert(req.responseText);
				document.getElementById('shoppingBasket').innerHTML = req.responseText;
				if(enterNow){
					window.location.href="?module=catalogue&action=checkout";
					
				}
				enterNow=0;
				
				document.getElementById('profile_links').innerHTML="";
				/**
				Need to hide / show Enter Now and Add to Basket buttons and update Cart at top of page. 
				*/
				return true;
			} else if(response.indexOf('No Items')>0){
				//alert(req.responseText);
				document.getElementById('shoppingBasket').innerHTML = req.responseText;
				if(enterNow){
					window.location.href="?module=catalogue&action=checkout";
					
				}
				enterNow=0;
				/**
				Need to hide / show Enter Now and Add to Basket buttons and update Cart at top of page. 
				*/
				return true;				
			} else if(isNumeric(response)){
				var organiserId = trim(req.responseText);
				document.getElementById('organiserId').value=organiserId;			
				//alert('Set organiserId to:'+organiserId);
			}			
		} else {
			hideFormErrorMessages();
			//var requiredElem = document.getElementById('email');
			var div = document.createElement('div');
			var br1 = document.createElement('br');
			var br2 = document.createElement('br');
	
			div.setAttribute('class', 'form_error_message');
			div.className="form_error_message";
			
			div.appendChild(document.createTextNode('There was a problem validating your information.  Please ensure the information you have entered is valid.'));
	
			//var parent = requiredElem.parentNode;
			//parent.appendChild(div);	            		
				
			//document.getElementById('email').value='';
			return false;
		}
	}
	
	//req = null;
}

function removeElement(id) {
  var element = document.getElementById(id);
  element.parentNode.removeChild(element);
}

function addDeliveryAddress(){
	var url = "ajax/addDeliveryAddress.php?";
	url+="address1="+document.getElementById('address1').value+"&";
	url+="address2="+document.getElementById('address2').value+"&";
	url+="address3="+document.getElementById('address3').value+"&";
	url+="city="+document.getElementById('city').value+"&";	
	url+="region="+document.getElementById('region').value+"&";	
	url+="country="+document.getElementById('country').value+"&";	
	url+="postcode="+document.getElementById('postcode').value+"&";
	url+="memberId="+document.getElementById('memberId').value;
	
	//alert(url);
	callAjax(url);
}

function displayImage(photoId){
	var memberId = document.getElementById('memberId').value;
	
	var url = "ajax/getImage.php?photoId="+photoId+"&memberId="+memberId;
	callAjax(url);
}
