    function setShortie(result, element) {
	if(element=="Overview") {
	    jQuery("#reviewOverview").html(result);
	}
	if(element=="Detail") {
	    jQuery("#reviewDetail").html(result);

	}
	if(element.substr(0, 4)=="Vote") {
	    jQuery("#reviewDetail #rateVote" + element.substr(4)).html(result);
	}
		
    }


    function getReviewReadMore(mId, pageNo, sequence) {
	window.reviewLoader.getReview("ModelDetails.asp", "Detail", "mId=" + mId + "&pageNo=" + pageNo + "&sequence=" + sequence);
    }


    function getReviewWriteMore(parms) {
	window.reviewLoader.getReview("WriteReview.asp", "Detail", parms);
    }


    function sendReviewVote(rId, index, vote) {
	window.reviewLoader.getReview("Vote.asp", "Vote" + index, "rId=" + rId + "&vote=" + vote);
    }

    function getReviewPreview(parms) {
	window.reviewLoader.getReview("PreviewReview.asp", "Detail", parms);
    }

    function getReviewPost(parms) {
	window.reviewLoader.getReview("PostReview.asp", "Detail", parms);
    }


    jQuery(document).ready(function(){

	jQuery("#sequence").live("change", function() {
		getReviewReadMore(reviewModelId, 1, jQuery("#sequence").val());
	});


	jQuery("div.rateCollect img").live("click", function () { 

		if (jQuery(this).parent().children(".rateHidden").val() == jQuery(this).prevAll().length) { 
			jQuery(this).parent().children(".rateHidden").val(0);
		} else {
			jQuery(this).parent().children(".rateHidden").val(jQuery(this).prevAll().length)
		}

		switch (jQuery(this).parent().children(".rateHidden").val()) {
			case "1":
				jQuery(this).parent().children("span").html("Poor");
				break;
			case "2":
				jQuery(this).parent().children("span").html("Fair");
				break;
			case "3":
				jQuery(this).parent().children("span").html("Average");
				break;
			case "4":
				jQuery(this).parent().children("span").html("Good");
				break;
			case "5":
				jQuery(this).parent().children("span").html("Excellent");
				break;
			default:
				jQuery(this).parent().children("span").html("&nbsp;");
		}
	}); 

	jQuery("div.rateCollect img").live("mouseover", function () { 
		var rateShape;

		if (jQuery(this).attr("src").indexOf("Star") == -1) {
			rateShape = "Bar";
		} else {
			rateShape = "Star";
		}
		jQuery(this).attr("src", reviewSiteName + "/images/red" + rateShape + ".png");
		jQuery(this).prevAll().attr("src", reviewSiteName + "/images/red" + rateShape + ".png");
		jQuery(this).nextAll().attr("src", reviewSiteName + "/images/black" + rateShape + ".png");
	}); 

	jQuery("div.rateCollect img").live("mouseout", function () {
		var rating = jQuery(this).parent().children(".rateHidden").val();
		var sibs = jQuery(this).parent().children("img");
		var rateShape;

		if (jQuery(this).parent().children(".rateHidden").attr("name") == "OverallRating") {
			rateShape = "Star";
		} else {
			rateShape = "Bar";
		}
		jQuery(this).attr("src", reviewSiteName + "/images/black" + rateShape + ".png");
		jQuery(this).siblings().attr("src", reviewSiteName + "/images/black" + rateShape + ".png");

		for (var i = 0; i <= rating - 1; i++) {
			jQuery(sibs[i]).attr("src", reviewSiteName + "/images/red" + rateShape + ".png");
		}

	});


	jQuery("#ratePost #rateWriteForm").live("submit", function() {
		var Recommend =	jQuery(".rateCollect input[name='Recommend']");
		var complete = true;
		var message = "<b>Please correct the following issue(s):</b><br/>";


		if(!isValidEmailAddress(jQuery(".rateCollect input[name='Email']").val())) {
			complete = false;
			message = message + "<br/>Please enter your e-mail address."
			//alert("Please enter your E-mail Address");
		}

		if(jQuery(".rateCollect input[name='OverallRating']").val() == 0) {
			complete = false;
			message = message + "<br/>Please specify the Overall Rating."
			//alert("Please specify the Overall Rating");
		} 

		if(!(jQuery(Recommend[0]).attr("checked") || jQuery(Recommend[1]).attr("checked"))) {
			complete = false;
			message = message + "<br/>Please specify if you would recommend this product."
			//alert("Please specify if you would recommend this product");
		} 

		if(complete) {
			getReviewPreview(jQuery(this).serialize());
		} else {
			jQuery("#ratePost .rateMessage").css("padding", "10px");
			jQuery("#ratePost .rateMessage").css("margin-bottom", "20px");
			jQuery("#ratePost .rateMessage").css("border", "1px #ff0000 solid");
			jQuery("#ratePost .rateMessage").html(message);
		}

		return false;
	});

	jQuery("#ratePreviewForm").live("submit", function() {

		if(jQuery("#ratePost :input[name='Action']").val() == "Submit") {
			jQuery("#ratePost :input[name='Source']").val(document.location.hostname);
			getReviewPost(jQuery(this).serialize());
		} else if(jQuery("#ratePost :input[name='Action']").val() == "Edit") {
			getReviewWriteMore(jQuery(this).serialize());
		} 


		return false;
	});

	jQuery("#ratePost .rateButtons :image").live("click", function() {
		if(jQuery(this).val() == "Preview") {
			jQuery("#rateWriteForm").submit();
		} else if(jQuery(this).val() == "Cancel") {
			getReviewRead(reviewModelId, 1, 'Default');
		} else if(jQuery(this).val() == "Return") {
			getReviewRead(reviewModelId, 1, 'Default');
		}

		jQuery("#ratePost :input[name='Action']").val(jQuery(this).val());
		jQuery("#ratePreviewForm").submit();
	});


    });

	function isValidEmailAddress(email) {

		if (email == null || trim(email) == "") {
			return false;
		}
		email = trim(email);
	
		var atIdx = email.indexOf('@'); 
		var dotIdx = email.lastIndexOf('.');

		if (atIdx <= 0 || atIdx==email.length-1) {
			return false;
		}	
		if (dotIdx <= 0 || dotIdx==email.length-1) {
			return false;
		}
		if (dotIdx < atIdx) {
			return false;
		}	
		if (atIdx != email.lastIndexOf('@')) {
			return false;
		}
			
		return true;
	}

	function trim(str) {
		return (str.replace(/^\s+/,'')).replace(/\s+$/,'');
	}

    function sharePopup(share) {
	window.open(share.href, "share", "height=450, width=550, resizable=1");
    }

