var reviewurl		= '/cgi-bin/hd_reviews.pl';

/* ------------------------------------------------------------------------------------------------------------------------------ */
function createReviewRequest() {

	hideElement('createbutton');
	showElement('selectprodnote');
	showElement('productdiv');

	return 1;
}
/* ------------------------------------------------------------------------------------------------------------------------------ */

/* ------------------------------------------------------------------------------------------------------------------------------ */
function selectProduct(prodselect) {

	//showElement();

	//processSelectProductRequest(prodselect);
	
	
	
	return 1;
}
/* ------------------------------------------------------------------------------------------------------------------------------ */

/*--------------------------------------------------------------------------------------------------------------------------------*/
function validate_review() {

	try {
		frm	= document.reviewform;
		var error	= '';

		title			= frm.title.value;
		reviewtext		= frm.body.value;
		reviewername	= frm.author.value;
		reviewerloc		= frm.location.value;
	
		if (title.length < 1)												{ error	 = '- Review headline\n' };
		if (reviewtext.length<1)											{ error	+= '- Review\n' };
		if ((reviewername.length<1 || reviewername == 'Your name here'))	{ error	+= '- Your name\n' };
		if (reviewerloc.length<1 || reviewerloc == 'Your location here')	{ error	+= '- Your location\n' };

		cleanFields();
	
		if (error) {
			msg	= 'Your submission is missing the following:\n' + error + '\n';
			alert(msg);
			return false;
		}
		
		if (validateTextFields()) {
			return true;
		} else {
			return false;
		}
		
		return true;
	}
	catch(err) {
		alert(err);
		return false;
	}
}
/* ------------------------------------------------------------------------------------------------------------------------------ */

/*--------------------------------------------------------------------------------------------------------------------------------*/
function validateTextFields() {
	
	// validate the text to ensure no non-ascii chars were entered - see input_validation.js
	// prompt for automatic removal of unreplaceable invalid chars
	var frm						= document.reviewform;

	var error					= '';
	var field					= 'the Review Headline';
	var cleantext				= cleanTextInput(frm.title.value, field);
	if (cleantext.length>0) {	frm.title.value	= cleantext; } else { error	= field; };

	field						= 'the Review Text';
	cleantext					= cleanTextInput(frm.body.value, field);
	if (cleantext.length>0) {	frm.body.value	= cleantext; } else { error	= field; };

	field						= 'the Reviewer info';
	cleantext					= cleanTextInput(frm.author.value, field);
	if (cleantext.length>0) {	frm.author.value	= cleantext; } else { error	= field; };

	field						= 'the Reviewer\'s location';
	cleantext					= cleanTextInput(frm.location.value, field);
	if (cleantext.length>0) {	frm.location.value	= cleantext; } else { error	= field; };

	if (error.length>0) {
		return false;
	} else {
		return true;
	}
}
/*--------------------------------------------------------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------------------------------------------------------*/
function cleanFields() {
	
	// translate specified chars to know ascii - see input_validation.js
	frm	= document.reviewform;
	frm.title.value		= cleanString(frm.title.value);
	frm.body.value		= cleanString(frm.body.value);
	frm.author.value	= cleanString(frm.author.value);
	frm.location.value	= cleanString(frm.location.value);
}
/*--------------------------------------------------------------------------------------------------------------------------------*/

/* ------------------------------------------------------------------------------------------------------------------------------ */
function validateReviewerEmail(frm) {

	//frm				= document.createreviewform;
	var validemail	= validEmail(frm.email.value);
	
	if (!validemail) {
		alert('invalid email address provided');
	}

	return validemail;
}
/* ------------------------------------------------------------------------------------------------------------------------------ */

/* ------------------------------------------------------------------------------------------------------------------------------ */
function processReviewRequest(mode,frm) {

	//var rm		= document.reviewform.rm;
	//var runmode	= rm.value;

	try {
		if (mode) {
	
			if (mode=='create') {
				var validsubmit	= validateReviewerEmail(frm);
				frm.action		= 'http://www.healingtaousa.com/cgi-bin/hd_reviews.pl';
				frm.submit();
				return validsubmit;

			} else if (mode.name=='edit') {
				showElement('reviewui');
				hideElement('reviewuimsg');
				document.reviewform.rm.value	= 'preview edit';

			} else if (mode.name=='submit') {
				//showElement('reviewui');
				//hideElement('reviewuimsg');
				document.reviewform.rm.value	= 'submit';
			}

		} else {
			hideElement('reviewui');
			showElement('reviewuimsg');
			//rm.value		= runmode.match(/preview/) ? runmode : 'submit';
		}

	
		submitReviewRequest();
	}
	catch(err) {
		alert(err);
		return false;
	}

	return false;
}
/*--------------------------------------------------------------------------------------------------------------------------------*/

/* ------------------------------------------------------------------------------------------------------------------------------ */
function submitReviewRequest() {

	try {
		if (!validate_review()) {
			showElement('reviewui');
			hideElement('reviewuimsg');
			return false;
		}
		frm			= document.reviewform;
		//var url		= 'http://www.healingtaousa.com/cgi-bin/hd_reviews.pl';
		//var url		= '/cgi-bin/hd_reviews.pl';
		//var parms	= {'' : ''};

		//writeToElement('reviewuimsg', 'dev intercept');
		//return false;
	
		var status = AjaxRequest.submit(
			frm,
			{	'url'		: reviewurl,
				'onSuccess'	: function(req) { processSubmitResult(req.responseText) },
				'onLoading'	: function(req) { writeToElement('reviewuimsg','submitting review...'); }
			}
		);
	}
	catch(e) {
		writeToElement('reviewuimsg', 'unexpected error<br>' + e);
	}
	//return status;
	return false;
}
/* ------------------------------------------------------------------------------------------------------------------------------ */

/* ------------------------------------------------------------------------------------------------------------------------------ */
function processSubmitResult(response) {

	//alert('response received');

	// process review submission responses
	try {

		writeToElement('reviewuimsg', response);

		if (response.match(/reload/i)) {
			// refresh the display for admin edit submissions
			//document.reviewadminform.adminpcode.value		= '';
			//var plist		= document.reviewadminform.adminreviews_prod;
			//setTimeout('adminReviews(document.reviewadminform.adminreviews_prod)', 3000);
			
			setTimeout('adminReviews()', 1000);
		}
	}
	catch(e) {
		writeToElement('reviewuimsg', 'unexpected error<br>' + e);
	}
}
/* ------------------------------------------------------------------------------------------------------------------------------ */

/* ------------------------------------------------------------------------------------------------------------------------------ */
function editReview(rid) {

	var editid		= 'editreview_'+rid;
	var editdiv		= document.getElementById(editid);
	var editmode	= true;

	try {
		if (editdiv) {
			editmode	= editdiv.innerHTML.length>0 ? false : true;
		}
		if (!editmode && editdiv.style.display != 'none') {
			hideElement(editid);
			writeToElement(editid, '');
		} else {
			showElement(editid);
			//var url		= 'http://www.healingtaousa.com/cgi-bin/hd_reviews.pl';
			//var parms	= {'' : ''};
	
			//writeToElement('reviewuimsg', 'dev intercept');
			//return false;
		
			var status = AjaxRequest.get(
				{	'url'		: reviewurl,
					'redit'		: rid,
					'onSuccess'	: function(req) { writeToElement(editid, ''+req.responseText); },
					'onLoading'	: function(req) { writeToElement(editid, 'requesting Review Edit'); }
				}
			);
		}
	}
	catch(e) {
		writeToElement(editid, 'unexpected error<br>' + e);
	}
	//return status;
	//return false;
}
/* ------------------------------------------------------------------------------------------------------------------------------ */

/* ------------------------------------------------------------------------------------------------------------------------------ */
// Reviews Admin
/* ------------------------------------------------------------------------------------------------------------------------------ */
function adminReviews() {

	// load the reviews for the selected product
	try {
		//var adminpcode	= document.reviewadminform.adminpcode;
		//var rgid		= document.reviewadminform.rgid;
		//var pcode		= plist[plist.selectedIndex].value;
		var rgid	= getSelectedGroup();

		if (rgid.value != rgid && rgid.length>0) {
			rgid.value	= rgid;
			//var url				= 'http://www.healingtaousa.com/cgi-bin/hd_reviews.pl';
			var status = AjaxRequest.get(
				{	'url'		: reviewurl,
					'adminreviews_prod'		: rgid,
					'rgid'		: rgid,
					'onSuccess'	: function(req) { writeToElement('reviewsdiv', req.responseText); },
					'onLoading'	: function(req) { writeToElement('reviewsdiv', 'requesting Reviews'); }
				}
			);
		} else {
			//var msg	= '<br>pcode ' + pcode;
			//msg		+= '<br>adminpcode ' + adminpcode.value;
			//writeToElement('reviewuimsg', msg, 'a');
		}
	}
	catch(e) {
		writeToElement(reviewsdiv, 'unexpected error<br>' + e);
	}
	//return status;
	//return false;
}
/* ------------------------------------------------------------------------------------------------------------------------------ */

/* ------------------------------------------------------------------------------------------------------------------------------ */
function requestReviewOrderUpdate(select,rid) {

	var order	= select.value;
	
	var msg	= 'order: ' + order;
	msg	= 'updating review order...';

	//var url		= 'http://www.healingtaousa.com/cgi-bin/hd_reviews.pl';
	var status	= AjaxRequest.get(
		{	'url'		: reviewurl,
			'rorder'	: order,
			'rid'		: rid,
			'onSuccess'	: function(req) { adminReviews(document.reviewadminform.adminreviews_prod) },
			'onLoading'	: function(req) { writeToElement('adminmsg_'+rid, msg); }
		}
	);
	//'onSuccess'	: function(req) { writeToElement('adminmsg_'+rid, req.responseText); },
	
	document.reviewadminform.adminpcode.value		= '';
	//return 1;
}
/* ------------------------------------------------------------------------------------------------------------------------------ */

/* ------------------------------------------------------------------------------------------------------------------------------ */
function requestReviewValidationUpdate(validcheckbox,rid) {

	var valid	= validcheckbox.checked;
	
	var msg	= 'valid: ' + valid;
	
	msg	= 'updating validation...';
	//var url		= 'http://www.healingtaousa.com/cgi-bin/hd_reviews.pl';
	var status	= AjaxRequest.get(
		{	'url'		: reviewurl,
			'rvalid'	: valid,
			'rid'		: rid,
			'onSuccess'	: function(req) { writeToElement('adminmsg_'+rid, req.responseText); },
			'onLoading'	: function(req) { writeToElement('adminmsg_'+rid, msg); }
		}
	);

}
/* ------------------------------------------------------------------------------------------------------------------------------ */

