$(document).ready(function() {
	
	$("a.btn-post").click(function(){
		var textField = document.getElementById('originalCommentId');
		
		if (textField != null) {
			textField.value = '';
		}
		
		$("#post-comment").slideToggle("slow");
		$("#post-naked").slideUp("slow");
		$(this).toggleClass("active");
		$("#commentTextArea").focus();
		return false;
	});
	
	$("a.btn-naked-stuff").click(function(){
		$("#post-naked").slideToggle("slow");
		$(this).toggleClass("active"); return false;
	});
		
	$("a.viewthis").click(function(){ 
		$("#panel").fadeIn({ 
		  "width": "toggle", "opacity": 1 
		}, { duration: "slow" });
	});
	$(".icon").click(function(){ 
		$("#panel").fadeIn({ 
		  "width": "toggle", "opacity": 1 
		}, { duration: "slow" });
	}); 
	$("#panel a.closethis").click(function(){ 
		$("#panel").fadeOut({ 
		  "width": "toggle", "opacity": 1 
		}, { duration: "slow" });
	});	
});

function toggleEditMode(which) {
	switch (which) {
	case 'TASTER_PROFILE_IMAGE':
		toggleTextEditMode('tasterProfileImageDisplay', 'uploadPhoto', null);
		break;
	case 'TASTER_PROFILE_MESSAGE':
		toggleTextEditMode('tasterProfileMessageDisplay', 'tasterProfileMessageEdit', 'tasterProfileMessage');
		break;
	case 'TASTER_LIKES':
		for (var i = 0; i < 5; i++) {
			toggleTextEditMode('tasterLikesDisplay[' + i + ']', 'tasterLikes[' + i + ']', 'tasterLikes[' + i + ']');
			toggleElementVisibility('tasterLikesButton');
		}
		break;
	case 'DRINKING_BUDDY_MESSAGE':
		toggleTextEditMode('drinkingBuddyMessageDisplay', 'drinkingBuddyMessageEdit', 'drinkingBuddyMessage');
		break;
	case 'NAKED_ANGEL_MESSAGE':
		toggleTextEditMode('nakedAngelMessageDisplay', 'nakedAngelMessageEdit', 'nakedAngelMessage');
		break;
	}
}

function toggleTextEditMode(displayElementId, editElementId, textElementId) {
	var displayElement = document.getElementById(displayElementId);
	var editElement = document.getElementById(editElementId);

	if (editElement.style.display == 'none') {
		
		if (textElementId != null) {
			var textElement = document.getElementById(textElementId);
			textElement.value = displayElement.innerHTML;
		}
		
		displayElement.style.display = 'none';
		editElement.style.display = '';
	}
	else {
		displayElement.style.display = '';
		editElement.style.display = 'none';
	}
}

function toggleElementVisibility(elementId) {
	var element = document.getElementById(elementId);
	
	if (element.style.display == 'none') {
		element.style.display = '';
	}
	else {
		element.style.display = 'none';
	}
}

function uploadText(which) {
	var textElement;
	var displayElement;
	
	switch (which) {
	case 'TASTER_PROFILE_MESSAGE':
		textElement = document.getElementById('tasterProfileMessage');
		
		$.post("/taster/upload_text.htm", { text: textElement.value, name: 'taster_profile_message' }, function() {
			displayElement = document.getElementById('tasterProfileMessageDisplay');
			displayElement.innerHTML = textElement.value;
			toggleTextEditMode('tasterProfileMessageDisplay', 'tasterProfileMessageEdit', 'tasterProfileMessage');
		});
		break;
	case 'TASTER_LIKES':
		for (var i = 0; i < 5; i++) {
			textElement = document.getElementById('tasterLikes[' + i + ']');
			
			$.post("/taster/upload_text.htm", { text: textElement.value, name: 'taster_profile_favourite[' + i + ']' });
			
			// Assumes the above post was successful, not ideal
			
			displayElement = document.getElementById('tasterLikesDisplay[' + i + ']');
			displayElement.innerHTML = textElement.value;
			toggleTextEditMode('tasterLikesDisplay[' + i + ']', 'tasterLikes[' + i + ']', 'tasterLikes[' + i + ']');
			
			toggleElementVisibility('tasterLikesButton');
		}
		break;
	case 'DRINKING_BUDDY_MESSAGE':
		textElement = document.getElementById('drinkingBuddyMessage');
		
		$.post("/taster/upload_text.htm", { text: textElement.value, name: 'drinking_buddy_message' }, function() {
			displayElement = document.getElementById('drinkingBuddyMessageDisplay');
			displayElement.innerHTML = textElement.value;
			toggleTextEditMode('drinkingBuddyMessageDisplay', 'drinkingBuddyMessageEdit', 'drinkingBuddyMessage');
		});
		break;
	case 'NAKED_ANGEL_MESSAGE':
		textElement = document.getElementById('nakedAngelMessage');
		
		$.post("/taster/upload_text.htm", { text: textElement.value, name: 'naked_angel_message' }, function() {
			displayElement = document.getElementById('nakedAngelMessageDisplay');
			displayElement.innerHTML = textElement.value;
			toggleTextEditMode('nakedAngelMessageDisplay', 'nakedAngelMessageEdit', 'nakedAngelMessage');
		});
		break;
	}
}
function uploadPhoto() {
	var viewPhoto = document.getElementById('viewPhoto');
	var uploadPhoto = document.getElementById('uploadPhoto');
	viewPhoto.style.display = 'none';
	uploadPhoto.style.display = 'block';
	return false;
}
function replyToComment(id) {
	var originalCommentId = document.getElementById('originalCommentId');
	
	if (originalCommentId != null) {
		originalCommentId.value = id;
	}
	
	$("#post-comment").slideToggle("slow");
	$(this).toggleClass("active");
	$("#commentTextArea").focus();
	return false;
}
function wallPostSetPinned(wallPostId, pinned) {
	var form = document.getElementById('wallPostSetPinnedForm' + wallPostId);
	form.pinned.value = pinned;
	form.submit();
}
function toggleEditComment(which, index) {
	toggleTextEditMode(which + 'DisplayDiv[' + index + ']', which + 'EditDiv[' + index + ']', which + 'TextArea[' + index + ']');
}
function commentOnProduct(which, index, id) {
	switch (which) {
	case 'wine':
		rateProduct(id, null, null, null, which + 'TextArea[' + index + ']');
		break;
	case 'winemaker':
		rateProduct(null, id, null, null, which + 'TextArea[' + index + ']');
		break;
	case 'nakedStuff':
		rateProduct(null, null, id, null, which + 'TextArea[' + index + ']');
		break;
	}
	
	document.getElementById(which + 'DisplayDiv[' + index + ']').innerHTML = document.getElementById(which + 'TextArea[' + index + ']').value;
	toggleTextEditMode(which + 'DisplayDiv[' + index + ']', which + 'EditDiv[' + index + ']', which + 'TextArea[' + index + ']');
}
function rateProduct(productId, winemakerId, nakedStuffId, ratingElementId, commentElementId) {
	var rating = null;
	var comment = null;
	
	if (ratingElementId != null) {
		rating = document.getElementById(ratingElementId).value;
	}
	
	if (commentElementId != null) {
		comment = document.getElementById(commentElementId).value;
	}
	
	var parameters = new Object();
	
	if (productId != null) {
		parameters['productId'] = productId;
	}
	
	if (winemakerId != null) {
		parameters['winemakerId'] = winemakerId;
	}
	
	if (nakedStuffId != null) {
		parameters['nakedStuffId'] = nakedStuffId;
	}
	
	if (rating != null) {
		parameters['rating'] = rating;
	}
	
	if (comment != null) {
		parameters['comment'] = comment;
	}
	
	$.post("/taster/ajax_rate_product.htm",	parameters);
}
var DDSPEED = 10;
var DDTIMER = 15;

// main function to handle the mouse events //
function ddMenu(id,d){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
  clearInterval(c.timer);
  if(d == 1){
    clearTimeout(h.timer);
    if(c.maxh && c.maxh <= c.offsetHeight){return}
    else if(!c.maxh){
      c.style.display = 'block';
      c.style.height = 'auto';
      c.maxh = c.offsetHeight;
      c.style.height = '0px';
    }
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
  }else{
    h.timer = setTimeout(function(){ddCollapse(c)},50);
  }
}

// collapse the menu //
function ddCollapse(c){
  c.timer = setInterval(function(){ddSlide(c,-1)},DDTIMER);
}
// cancel the collapse if a user rolls over the dropdown //
function cancelHide(id){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
  clearTimeout(h.timer);
  clearInterval(c.timer);
  if(c.offsetHeight < c.maxh){
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
  }
}
// incrementally expand/contract the dropdown and change the opacity //
function ddSlide(c,d){
  var currh = c.offsetHeight;
  var dist;
  if(d == 1){
    dist = (Math.round((c.maxh - currh) / DDSPEED));
  }else{
    dist = (Math.round(currh / DDSPEED));
  }
  if(dist <= 1 && d == 1){
    dist = 1;
  }
  c.style.height = currh + (dist * d) + 'px';
  c.style.opacity = currh / c.maxh;
  c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')';
  if((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)){
    clearInterval(c.timer);
  }
}
function reviewRating(productRatingId, radioButton) {
	$.post("/taster/ajax_review_rating.htm", { productRatingId: productRatingId, useful: radioButton.value });
	radioButton.checked = true;
}
function setProfileVisibilty(radioButton) {
	$.post("/taster/ajax_profile_visibility.htm", { visible: radioButton.value });
	radioButton.checked = true;
}
function followTwitterUser(customerId) {
	$.ajax({
		type: "POST",
		url: "/taster/ajax_follow_twitter_user.htm",
		data: "customerId=" + customerId,
		success: function(data) {
			document.getElementById("twitterUserDiv").innerHTML = "You are following this user";
		},
		error: function(data) {
			document.getElementById("twitterUserDiv").innerHTML = "There was an error following this user";
		}
	});
}
function rateProductViaStar(spanId, productId, rating) {
	for (var i = 0; i < 5; i++) {
		$('#' + spanId + ' span').get(i).onmouseout = function() {
			highlightRatingStars(spanId, rating);
		};
	}
	
	$.post('/taster/ajax_rate_product.htm', { productId: productId, rating: rating });
}

function rateNakedStuffViaStar(spanId, nakedStuffId, rating) {
	for (var i = 0; i < 5; i++) {
		$('#' + spanId + ' span').get(i).onmouseout = function() {
			highlightRatingStars(spanId, rating);
		};
	}
	
	$.post('/taster/ajax_rate_product.htm', { nakedStuffId: nakedStuffId, rating: rating });
}


