var clientDomain = "http://site.livingcomforts.com";
var clientName = "Living Comforts";

/*******************************************/
/*********** UTITLITY FUNCTIONS ************/
/*******************************************/
function popIt(width, height, scrollbars){ 
	if(!width) width = "400";
	if(!height) height = "400";
	if(!scrollbars) scrollbars = 1;
	var windowString = 'width=' + width + ',height=' + height + ',resizable=1,status=0,toolbar=no,scrollbars=' + scrollbars + ',scrolling=auto';
	var popItWindow = window.open('',"popIt", windowString);
	return false;
}
function isBlankOrWhitespaceOrWhitespace(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
	}
	return true;
}
function isValidEmail(str) {
   return (str.indexOf(".")) && (str.indexOf("@") > 0);
}
function getRadioValue(radioset){
	var val;
	for (var i=0; i<radioset.length; i++){
		if (radioset[i].checked){
			val = radioset[i].value;
		}
	}
	return val;
}

function isBlankOrWhitespace(item) {
	item = String(item).toLowerCase();
	if(item == "undefined" || item == "" || item == "null") return true;
	else return false;
}

/*******************************************/
/******** REVIEW FORM FUNCTIONS ************/
/*******************************************/
function validate_pdReviewForm(thisform) {
	var message = "";
	//****** TEST FOR REQUIRED FORM VALUES ******
	with(thisform){
		var recommendVal = getRadioValue(recommend);
		
		if(isBlankOrWhitespace(rating.value)){message += "Please rate this item. \r\n";} 
		if(isBlankOrWhitespace(name.value)){message += "Please enter your name. \r\n";} 
		if(isBlankOrWhitespace(email.value)){message += "Please enter your email address. \r\n";} 
		if(isBlankOrWhitespace(location.value)){message += "Please enter your location. \r\n";}
		if(isBlankOrWhitespace(recommendVal)){message += "Please choose yes or no for \"would you recommend this item\". \r\n";}

		if(!isBlankOrWhitespace(email.value)){
			if(!isValidEmail(email.value)){
				message += "Please enter a correctly formatted email address. \r\n";
			}
		}
	}
	//****** TEST FOR HTML IN REVIEW BODY ******
	var bodyText = document.prForm.reviewBody.value;
	if(bodyText.match("<") || bodyText.match(">") || bodyText.match("/")){
		message += "Please remove the HTML from your review. \r\n";
	}

	//****** SHOW MESSAGE IF VALIDATION FAILS ******
	if(!isBlankOrWhitespace(message)){
		alert(message);
		return false;
	}else{
		return true;
	}
}
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
}
function prReviewFormDisplay(state){
	//*********** DEFINE VARIABLES *********//
	var fadeBg = document.getElementById('prFormWrapperFade');
	var wrapper = document.getElementById('prFormWrapper');
	var reviewForm = document.getElementById('prFormInner');
	var messageDisplay = document.getElementById('prMessage')
	var winHeight = window.document.body.scrollHeight;
	var winWidth = window.document.body.scrollWidth - 10;
	
	if(state == 'on'){
		ieHideSelect(true);
		//************ SET DIV HEIGHT/WIDTH *************
		fadeBg.style.height = winHeight + 'px';
		fadeBg.style.width = winWidth + 'px';
		wrapper.style.width = winWidth + 'px';
		//************ SET DIV DISPLAY *************
		messageDisplay.style.display = "none";
		fadeBg.style.display = "block";
		wrapper.style.display = "block";
		reviewForm.style.display = "block";
	}else{
		ieHideSelect(false);
		fadeBg.style.display = "none";
		wrapper.style.display = "none";
	}
	if(document.prForm.recommend.value == "yes"){
		document.getElementById('sendEmails').style.display = "block";
	}
}
function ieHideSelect(state){
	var selectTags = document.getElementsByTagName("SELECT");
	for(var i=0; i<selectTags.length; i++){
		if(state){
			if(selectTags[i].className != "prSelect"){
				selectTags[i].style.display = "none";
			}
		}else{
			selectTags[i].style.display = "block";
		}
	}
}
function prRatingStars(){
	var prRatingStars = document.getElementById('prRatingStars');
	if(prRatingStars){
		var starLinks = prRatingStars.getElementsByTagName("IMG");
		for(var i=0;i<starLinks.length;i++){
			starLinks[i].className = "dptLinkOff"; 
			//******* MOUSEOVER EVENT ********//
			starLinks[i].onmouseover=function(){
				var pos = this.title - 0;
				for(var i=0;i<pos;i++){
					starLinks[i].src = clientDomain + "/pd_productReviews/images/starOn.gif";
				}
			}
			//******* MOUSEOUT EVENT ********//
			starLinks[i].onmouseout=function(){
				var pos = this.title - 0;
				var rating = document.prForm.rating.value;
				for(var i=0;i<pos;i++){
					if(i > rating - 1){
						starLinks[i].src = clientDomain + "/pd_productReviews/images/starOff.gif";
					}
				}
			}
			//******* ONCLICK EVENT ********//
			starLinks[i].onclick=function(){
				var pos = this.title - 0;
				document.prForm.rating.value = pos;
				for(var i=0;i<5;i++){
					if(i + 1 <= pos){
						starLinks[i].src = clientDomain + "/pd_productReviews/images/starOn.gif";
					}else{
						starLinks[i].src = clientDomain + "/pd_productReviews/images/starOff.gif";
					}
				}
			}
		}
	}
}
function prMessage(state){
	var messageDisplay = document.getElementById('prMessage');
	var fadeBg = document.getElementById('prFormWrapperFade');
	var wrapper = document.getElementById('prFormWrapper');
	var reviewForm = document.getElementById('prFormInner');
	var messageText = document.getElementById('prMessageText');

	var name = getQueryVariable("name");
	var review = getQueryVariable("reviewSubmit");
	var image = getQueryVariable("imageSubmit");
	var winHeight = window.document.body.scrollHeight;
	var winWidth = window.document.body.scrollWidth - 10;
	
	if(state == 'off'){
		ieHideSelect(false);
		fadeBg.style.display = "none";
		wrapper.style.display = "none";
		messageDisplay.style.display = "none";
		reviewForm.style.display = "block";
	}else if(review || image){
		ieHideSelect(true);
		//************ SET DIV HEIGHT/WIDTH *************
		fadeBg.style.height = winHeight + 'px';
		fadeBg.style.width = winWidth + 'px';
		wrapper.style.width = winWidth + 'px';
		//************ SET  MESSAGE TEXT *************
		if(review == 'true' && image == 'false'){
			messageText.innerHTML += '<b>Thank you for your time ' + unescape(name) +'! </b><br><br>';
			messageText.innerHTML += 'We appreciate your involvement in helping  ' + clientName + '  create the ultimate online shopping experience.';
			messageText.innerHTML += '<br><br>Please note that while we received your review, the images did not meet our requirements and were not posted with the review.  Please feel free to try again with a smaller image size.';
			messageText.innerHTML += '<br><br><a href="#" onClick="prMessage(\'off\')">Continue Shopping</a>';
			
		}else if(review == 'false'){
			messageText.innerHTML += '<b>Thank you for your time ' + unescape(name) +' !</b><br><br>';
			messageText.innerHTML += 'We appreciate your involvement in helping  ' + clientName + '  create the ultimate online shopping experience.';
			messageText.innerHTML += "<br><br>&raquo; There was an error submitting your review, please try again."
			messageText.innerHTML += '<br><br><a href="#" onClick="prMessage(\'off\')">Continue Shopping</a>';
		}else{
			messageText.innerHTML += '<b>Thank you for your time ' + unescape(name) +' !</b><br><br>';
			messageText.innerHTML += 'We appreciate your involvement in helping  ' + clientName + '  create the ultimate online shopping experience.';
			messageText.innerHTML += '<br><br><a href="#" onClick="prMessage(\'off\')">Continue Shopping</a>';
		}
		//************ SET DIV DISPLAY *************
		fadeBg.style.display = "block";
		wrapper.style.display = "block";
		messageDisplay.style.display = "block";
		reviewForm.style.display = "none";
		
	}
}
function sendEmailsDisplay(state){
	if(state == "on"){
		document.getElementById('sendEmails').style.display = "block";
	}else{
		document.getElementById('sendEmails').style.display = "none";
		document.prForm.sendEmail1.value = "";
		document.prForm.sendEmail2.value = "";
		document.prForm.sendEmail3.value = "";
	}
}
/*******************************************/
/*********** DISPLAY REVIEWS ***************/
/*******************************************/
function ratingDisplay(){
	var ratingDisplayDiv = document.getElementById('prOverallRating');
	if(ratingDisplayDiv){
		/*******************************************/
		/*********** DISPLAY RATING GRAPHIC ********/
		/*******************************************/
		html = '';
		if(reviewCount > 0){
			html += '<table width="100%"><tr valign="top">';
			html += '<td>';
			html += '<h1><nobr>Average Customer Rating:</nobr></h1>';
			html += '<u>Based on ' + reviewCount + ' rating(s)</u>';
			html += '</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td>';
			html += '<img src="' + clientDomain + '/pd_productReviews/images/' + overallRating + '.gif" border="0">';
			html += '<br>&nbsp;(' + overallRating + ' out of 5)';
			html += '</td>';
			html += '<td valign="top" align="right" width="99%"><a href="#top" onClick="prReviewFormDisplay(\'on\')"><img src="' + clientDomain + '/pd_productReviews/images/writeReview.gif" border="0" hspace="6"></a></td>';
			html+= '</tr></table>';
			ratingDisplayDiv.innerHTML = html;
		}else{
			ratingDisplayDiv.style.display = 'none';
			ratingDisplayDiv.innerHTML = '';
		}
	}
	//**** RENDER A SECONDARY OVERALL RATING DISPLAY ****/
	var ratingDisplayDivSm = document.getElementById('prOverallRatingSm');
	if(ratingDisplayDivSm){
		html = '';
		html += '<table border="0" cellpadding="0" cellspacing="0"><tr>';
		
		if(reviewCount > 0){
			html += '<td>';
			html += '<img src="' + clientDomain + '/pd_productReviews/images/' + overallRating + '.gif" border="0" hspace="8">';
			html += '</td>';
	
			html += '<td>';
			html += '<div class="prSmLink">';
			html += '<a href="#reviews" onClick="openReviewsTab();">Read Reviews</a> / ';
			html += '<a href="#top" onClick="prReviewFormDisplay(\'on\')">Write a Review</a>';
			html += '</div>';
			html += '</td>';
		}else{
			html += '<td>';
			html += '<div class="prSmLink">';
			html += '<a href="#top" onClick="prReviewFormDisplay(\'on\')">Write a Review</a>';
			html += '</div>';
			html += '</td>';
		}
		html += '</tr></table>';
		ratingDisplayDivSm.innerHTML = html;
	}
}
function reviewDisplay(){
	var reviewsDisplayDiv = document.getElementById('prReviews');
	
	if(reviewsDisplayDiv){
		var reviewLength = productReviews.length;
		/*******************************************/
		/*********** FORMAT REVIEW HTML ************/
		/*******************************************/
		var reviewHTML = '';

		reviewHTML += '<table class="prReviewsTable">';

		for(var i=0; i < reviewLength; i++){
			reviewHTML += '<tr>';
			reviewHTML += '<th>';
			if(productReviews[i].rating){reviewHTML += '<img src="' + clientDomain + '/pd_productReviews/images/' + productReviews[i].rating + '.gif" border="0" vspace="4">';}
			//if(productReviews[i].avatar && productReviews[i].avatar != 'error.jpg'){reviewHTML += '<div><img src="' + clientDomain + '/pd_reviewImages/avatars/' + productReviews[i].avatar + '" border="0"></div>';}
			if(productReviews[i].name){reviewHTML += '<h2>' + productReviews[i].name + '</h2>';}
			if(productReviews[i].location){reviewHTML += '<b>Location:</b> ' + productReviews[i].location}
			if(productReviews[i].countrycode){reviewHTML += '<img src="' + clientDomain + '/pd_productReviews/images/flags/' + productReviews[i].countrycode + '.gif" hspace="4"><br>';}
			if(productReviews[i].recommend == 'yes'){
				reviewHTML += '<div class="prReviewsTableRecommend">I recommend this item!</div>';
			}
			reviewHTML += '</th><td>';
			reviewHTML += '<div class="prReviewsTableTitle">' + productReviews[i].title + '</div>';
			//*********************************************************************//
			//******** DISPLAY SUBMITTED DATE, HANDLE OLD REVIEWS FORMAT **********//
			//*********************************************************************//
			reviewHTML += '<div class="prReviewsTableDate">Posted: '
			if(productReviews[i].dateSubmittedImported){
				reviewHTML += productReviews[i].dateSubmittedImported;
			}else{
				reviewHTML += productReviews[i].dateSubmitted;
			}
			reviewHTML += '</div>';

			if(productReviews[i].looksGoodFor){reviewHTML += '<br><br><b>This look is good for:</b> ' + productReviews[i].looksGoodFor;}
			if(productReviews[i].body){reviewHTML += '<br><br>' + productReviews[i].body;}
			//******************************************//
			//******** REVIEW PHOTOS DISPLAY **********//
			//******************************************//
			var img1 = productReviews[i].img1;
			var img2 = productReviews[i].img2;
			var img3 = productReviews[i].img3;
			reviewHTML += '<div class="prReviewsTablePhotos">';
			if(img1 && img1 != "error.jpg"){
				reviewHTML += '<a href="' + clientDomain + '/pd_reviewImages/medium-' + img1 +  '" onClick="popIt();" target="popIt">';
				reviewHTML += '<img src="' + clientDomain + '/pd_reviewImages/small-' + img1 + '" border="0">';
				reviewHTML += '</a>';
			}
			if(img2 && img2 != "error.jpg"){
				reviewHTML += '<a href="' + clientDomain + '/pd_reviewImages/medium-' + img2 +  '" onClick="popIt();" target="popIt">';
				reviewHTML += '<img src="' + clientDomain + '/pd_reviewImages/small-' + img2 + '" border="0">';
				reviewHTML += '</a>';
			}
			if(img3 && img3 != "error.jpg"){
				reviewHTML += '<a href="' + clientDomain + '/pd_reviewImages/medium-' + img3 +  '" onClick="popIt();" target="popIt">';
				reviewHTML += '<img src="' + clientDomain + '/pd_reviewImages/small-' + img3 + '" border="0">';
				reviewHTML += '</a>';
			}
			reviewHTML += '</div>';
			//******************************************//
			//******************************************//
			//******************************************//

			reviewHTML += '</td>';
			reviewHTML += '</tr>';
			reviewHTML += '<tr><td colspan="2"><hr size="1" color="#ffffff" noshade></td></tr>';
		}
		reviewHTML += '</table>';

		if(reviewLength > 0){
			reviewsDisplayDiv.innerHTML = reviewHTML;
		}else{
			reviewsDisplayDiv.innerHTML = '<table class="prReviewsTable"><tr><td><i><br><b>Be the first person to rate and review this item!  Click the "Write Review" button.</b></i><br><br></td></tr></table>';
		}
	}
}
