function ajax_review(theID) {

    jQuery.noConflict();

	var SessionID	  = jQuery('input[name=SessionID]').val();
	var SecurityImage = jQuery('input[name=SecurityImage]').val();

	var the_rating = jQuery('input[name=Review_Rating]:checked').val();

	var subject  = jQuery('#Review_Subject').val();
	var contents = jQuery('#Review_Contents').val();
	var byline   = jQuery('#Review_ByLine').val();
	var guestemail = jQuery('#Review_GuestEmail').val();
	var guestname = jQuery('#Review_GuestName').val();

	if (!the_rating) {
		alert("Please choose a rating for your review. This is between 1 and 5 (5 being the best)");
		jQuery('#Review_Rating-1').focus();
		return false;
	}
	

	if (subject.length < 2) {
		alert("Please enter a subject for your review!");
		jQuery('#Review_Subject').focus();
		return false;
	}

	if (contents.length < 2) {
		alert("Please enter your contents for the review!");
		jQuery('#Review_Contents').focus();
		return false;
	}

	if (guestemail && emailCheck(guestemail) == false) {
		alert("Please enter a valid email address");
		jQuery('#Review_GuestEmail').focus();
		return false;
	}

      jQuery('#ajax_rate_indicator').fadeIn();


   /* if they are NOT logged in, we need to pass through this system... */
	if (guestname) {
	      jQuery.post("/cgi-bin/trips/review.cgi", {
	        Review_Rating: the_rating,
			ID:  theID,
			add_this_review: 1,
			Review_Contents: contents,
			Review_Subject: subject,
			Review_ByLine: byline,
			Review_GuestName: guestname,
			Review_GuestEmail: guestemail,
			add_review: 1,
			SecurityImage: SecurityImage,
			SessionID:     SessionID
	
	      }, function(response){
	
	        jQuery('#ajax_rate_indicator').fadeOut();
	        setTimeout("finishAjaxReview('the_rating_box', '"+escape(response)+"')", 400);
	      });	


  /* if logged in, we dont need to pass in the Review_GuestName/Review_GuestEmail fields - as these wikl throw up errors otherwise, and stop the review being added */
	} else {

	      jQuery.post("/cgi-bin/trips/review.cgi", {
	        Review_Rating: the_rating,
			ID:  theID,
			add_this_review: 1,
			Review_Contents: contents,
			Review_Subject: subject,
			Review_ByLine: byline,
			add_review: 1,
			SecurityImage: SecurityImage,
			SessionID:     SessionID
	
	      }, function(response){
	
	        jQuery('#ajax_rate_indicator').fadeOut();
	        setTimeout("finishAjaxReview('the_rating_box', '"+escape(response)+"')", 400);
	      });	

	}

	return false; 

}


function finishAjaxReview(id, response) {
  jQuery('#ajax_rate_indicator').hide();

  response = unescape(response);

  myregexp1 = /You have already voted for this review./;   
  myregexp2 = /Please select a rating from 1 to 5 only./;  
  myregexp4 = /Please fill out your name to add a review!/;  
  myregexp5 = /Please enter your e-mail address to add a review!/; 
  myregexp6 = /You have already submitted a review for this link.  Please wait for it to be validated./;   
  myregexp7 = /Invalid security image entered./;
  myregexp8 = /Please login/;

 /* an erorr test, in case we get an error in the <div id="error"> div, which didn't get caught before for some reason */
  var test = jQuery(response).find('div.error ul li').html();

  if (test) {
	  jQuery('#review_message').html("<font color='red'>" + test + "</font>");	
	  return false;
  } else if (myregexp1.test(response) == true) {
	  jQuery('#review_message').html("<font color='red'>Your already seem to have review this listing.</font>");	
	  return false;
  } else if (myregexp2.test(response) == true) {
	  jQuery('#review_message').html("<font color='red'>Please select a review from 1 to 5 only</font>");	
	  return false;
  } else if (myregexp4.test(response) == true) {
	  jQuery('#review_message').html("<font color='red'>Please fill out your name to submit a review</font>");	
	  return false;
  } else if (myregexp5.test(response) == true) {
	  jQuery('#review_message').html("<font color='red'>Please enter your email to submit a review</font>");	
	  return false;
  } else if (myregexp6.test(response) == true) {
	  jQuery('#review_message').html("<font color='red'>You have already submitted a review for this listing. Please wait for it to be validated.</font>");	
	  return false;
  } else if (myregexp7.test(response) == true) {
	  jQuery('#review_message').html("<font color='red'>Invalid security image code entered. Please try again.</font>");	
  	  jQuery('#SecurityImage').focus();
	  return false;
  } else if (myregexp8.test(response) == true) {
	  jQuery('#review_message').html("<font color='red'>Please login before you can make a review!</font>");	
  	  jQuery('#SecurityImage').focus();
	  return false;
  } else {
	  jQuery('#review_message').html("<font color='green'>'Your review has been accepted.</font>");

	  jQuery('#Review_Rating-1').attr('disabled', true); 
	  jQuery('#Review_Rating-2').attr('disabled', true); 
	  jQuery('#Review_Rating-3').attr('disabled', true); 
	  jQuery('#Review_Rating-4').attr('disabled', true); 
	  jQuery('#Review_Rating-5').attr('disabled', true); 
	  jQuery('#Review_Subject').attr('disabled', true); 
	  jQuery('#Review_Contents').attr('disabled', true); 
	  jQuery('#Review_ByLine').attr('disabled', true); 
	  jQuery('#Review_GuestName').attr('disabled', true); 
	  jQuery('#Review_GuestEmail').attr('disabled', true); 
	  jQuery('#SecurityImage').attr('disabled', true); 
	  jQuery('input[name=add_review]').attr('disabled', true); 

  }
} //finishAjax

function emailCheck(this_value) {
  var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  if (filter.test(this_value)) {
	return true;
  }
  return false;
 }