$(function() {
	var PRODUCT_CONTENTS = 'productComments';
	var PRODUCT_RATINGS = 'productRatings';
	var PRODUCT_GROUPS = 'productGroups';
	
	var PRODUCT_CONTENTS_TAB_BASE_HIDER_POSITION = '1px';
	var PRODUCT_RATINGS_TAB_BASE_HIDER_POSITION = '237px';
	var PRODUCT_GROUPS_TAB_BASE_HIDER_POSITION = '473px';
	
	var PRODUCT_SOCIAL_ELEMENT_ARRAY_ELEMENT_NAME = 0;
	var PRODUCT_SOCIAL_ELEMENT_ARRAY_ELEMENT_TAB_BASE_HIDER_POSITION = 1;
	
	var PRODUCT_SOCIAL_ELEMENT_TAB_EXTENSION = "Tab";
	var PRODUCT_SOCIAL_ELEMENT_CONTAINER_EXTENSION = "Container";	
	
	var productSocialElementArray = new Array([PRODUCT_CONTENTS, PRODUCT_CONTENTS_TAB_BASE_HIDER_POSITION], [PRODUCT_RATINGS, PRODUCT_RATINGS_TAB_BASE_HIDER_POSITION], [PRODUCT_GROUPS, PRODUCT_GROUPS_TAB_BASE_HIDER_POSITION]);
	
	$("#" + PRODUCT_CONTENTS + PRODUCT_SOCIAL_ELEMENT_TAB_EXTENSION).click(function() {
		var currentSocialElement = $('#selectedSocialElement').attr('value');
		
		if(currentSocialElement != PRODUCT_CONTENTS) {
			toggleProductSocialElements(currentSocialElement, PRODUCT_CONTENTS);
		}
	})

	$("#averageRating").click(function() {
		var currentSocialElement = $('#selectedSocialElement').attr('value');
		
		if(currentSocialElement != PRODUCT_RATINGS) {
			toggleProductSocialElements(currentSocialElement, PRODUCT_RATINGS);
		}
	})
		
	$("#" + PRODUCT_RATINGS + PRODUCT_SOCIAL_ELEMENT_TAB_EXTENSION).click(function() {
		var currentSocialElement = $('#selectedSocialElement').attr('value');
		
		if(currentSocialElement != PRODUCT_RATINGS) {
			toggleProductSocialElements(currentSocialElement, PRODUCT_RATINGS);
		}
	})
		
	$("#" + PRODUCT_GROUPS + PRODUCT_SOCIAL_ELEMENT_TAB_EXTENSION).click(function() {
		var currentSocialElement = $('#selectedSocialElement').attr('value');
		
		if(currentSocialElement != PRODUCT_GROUPS) {
			toggleProductSocialElements(currentSocialElement, PRODUCT_GROUPS);
		}
	})
		
	function toggleProductSocialElements (currentSocialElement, selectedSocialElement) {
		toggleTabs (currentSocialElement, selectedSocialElement);
		transitionBodyContainer (currentSocialElement, selectedSocialElement);
	}
		
	function toggleTabs (currentSocialElement, selectedSocialElement) {
		for (i = 0; i < productSocialElementArray.length; i++) {			
			if((productSocialElementArray[i][PRODUCT_SOCIAL_ELEMENT_ARRAY_ELEMENT_NAME] == currentSocialElement) || (productSocialElementArray[i][PRODUCT_SOCIAL_ELEMENT_ARRAY_ELEMENT_NAME] == selectedSocialElement)) {
				toggleTab(productSocialElementArray[i][PRODUCT_SOCIAL_ELEMENT_ARRAY_ELEMENT_NAME]);
				
				if(productSocialElementArray[i][PRODUCT_SOCIAL_ELEMENT_ARRAY_ELEMENT_NAME] == selectedSocialElement) {
					$("#productSocialElements .tabBaseHiderContainer > .tabBaseHider").css("left", productSocialElementArray[i][PRODUCT_SOCIAL_ELEMENT_ARRAY_ELEMENT_TAB_BASE_HIDER_POSITION]);
				}
			}
		}
		$('#selectedSocialElement').val(selectedSocialElement);
	}
	
	function toggleTab (socialElement) {
		$('#' + socialElement + PRODUCT_SOCIAL_ELEMENT_TAB_EXTENSION).toggleClass("selected");
	}

	function transitionBodyContainer (currentSocialElement, selectedSocialElement) {
		$('#' + currentSocialElement + PRODUCT_SOCIAL_ELEMENT_CONTAINER_EXTENSION).fadeOut('slow', function(){
			$('#' + selectedSocialElement + PRODUCT_SOCIAL_ELEMENT_CONTAINER_EXTENSION).fadeIn('slow');
		});		
	}
})