// JavaScript Document

$(document).ready(function(){ 
	
	$('#diamondListing, #selectedDiamondListing').find('input').css('display', 'none');
	
	$('#captchaButton').click(function(){
		$('#captcha').attr('src', 'captcha/securimage_show.php?' + Math.random());
		return false;
	});
	
    $(document).pngFix(); 
	
	if ($('#slider').length > 0) {
		$.preloadImages(["images/colorSlider_0.png", 
						"images/colorSlider_1.png",
						"images/colorSlider_2.png",
						"images/colorSlider_3.png",
						"images/colorSlider_4.png",
						"images/colorSlider_5.png",
						"images/cutExcellentdiamond.jpg",
						"images/cutVeryGoodDiamond.jpg",
						"images/cutGoodDiamond.jpg",
						"images/cutFairDiamond.jpg",
						"images/cutPoorDiamond.jpg"]);	
	}
	
	if ($('#slider2').length > 0) {
		$.preloadImages("images/colorSlider2_0.png", 
						"images/colorSlider2_1.png",
						"images/colorSlider2_2.png",
						"images/colorSlider2_3.png",
						"images/colorSlider2_4.png",
						"images/colorSlider2_5.png",
						"images/colorSlider2_6.png",
						"images/colorSlider2_7.png",
						"images/colorSlider2_8.png",
						"images/colorSlider2_9.png",
						"images/colorD.jpg",
						"images/colorE.jpg",
						"images/colorF.jpg",
						"images/colorG.jpg",
						"images/colorH.jpg",
						"images/colorI.jpg",
						"images/colorJ.jpg",
						"images/colorK.jpg",
						"images/colorL.jpg");	
	}
	$.preloadImages.start();
	if ($('#priceSlider')) {
		$("#priceSlider").slider({ 
									 animate: "slow",
									 range: true,
									 step: 0.5,
									 values: [0,100],
									 slide: function (event, ui) {
										 setSliderPrice('price1', 'price2', $(this).slider('values', 0), $(this).slider('values', 1));
										 clearTimeout(doSearch);
									 },
									 change: function(event, ui) {
											initStoneSearch('reset');
									 }
							     });			
	}
	
	if ($('#priceSlider2')) {
		$("#priceSlider2").slider({ 
									 animate: "slow",
									 range: true,
									 step: 1,
									 values: [0,100],
									 slide: function (event, ui) {
										 setSliderPrice2('price2_1', 'price2_2', $(this).slider('values', 0), $(this).slider('values', 1));
									 	 clearTimeout(doSearch);
									},
									 change: function(event, ui) {
											initStoneSearch('reset');
									}
							     });			
	}
	
	if ($('#caratSlider')) {
		$("#caratSlider").slider({ 
									 animate: "slow",
									 range: true,
									 step: 0.1,
									 values: [0,100],
									 slide: function (event, ui) {
										 setSliderCarat('carat1', 'carat2', $(this).slider('values', 0), $(this).slider('values', 1));
									 	 clearTimeout(doSearch);
									 },
									 change: function(event, ui) {
											initStoneSearch('reset');
									 }
							     });			
	}
	
	if ($('#cutSlider')) {
		$("#cutSlider").slider({ 
									 animate: "slow",
									 range: true,
									 step: 20,
									 values: [0,100],
									 slide: function (event, ui) {
										 setCutValues($(this).slider('values', 0), $(this).slider('values', 1));
									 	 clearTimeout(doSearch);
									 },
									 change: function(event, ui) {
											initStoneSearch('reset');
									 }
							     });			
	}
	
	if ($('#claritySlider')) {
		$("#claritySlider").slider({ 
									 animate: "slow",
									 range: true,
									 step: 20,
									 values: [0,100],
									 slide: function (event, ui) {
										 setClarityValues($(this).slider('values', 0), $(this).slider('values', 1));
										 clearTimeout(doSearch);
									 },
									 change: function(event, ui) {
											initStoneSearch('reset');
									 }
							     });			
	}
	
	if ($('#colorSlider')) {
		$("#colorSlider").slider({ 
									 animate: "slow",
									 range: true,
									 step: 10,
									 values: [0,100],
									 slide: function (event, ui) {
										 setColorValues($(this).slider('values', 0), $(this).slider('values', 1));
									 	 clearTimeout(doSearch);
									 },
									 change: function(event, ui) {
											initStoneSearch('reset');
									 }
							     });			
	}
	
	$(document).keyup(function(event){
		if (event.keyCode == 27) {
			$('.tooltip').each(function(){
				$(this).fadeOut('slow');							
			});	
		}
	});
	
	$('li.listItem:odd').addClass('greyBack');
	$('#detailBox div.mid ul.detailList:odd li').addClass('greyBack');
	
	if ($('div.specsBox')) {
		$(document).mousemove(function(e){ 
			$('div.specsBox').css('top', e.pageY + 5);					   
		});		
	}
	
	$('#compareDetailsList').sortable({
									  	handle: '.move',
										axis: 'x',
										update: function(event, ui) {
											reOrderFromDrag();
										}
									  });
}); 

function setPageMenu(data)
{
	$('#pageMenu').html(data);	
}

function nextStonesPage(page)
{
	var pageValue = $('#pageInput').val();
	
	if (pageValue != page) {
		$('#pageInput').val(page);
		initStoneSearch();
	} else {
		return false;	
	}
}

function setCutValues(beginValue, endValue)
{
	var cutValue = $('#cutInput').val();
	var cutArray = cutValue.split('#@#');
	cutArray[0] = beginValue;
	cutArray[1] = endValue;	
	$('#cutInput').val(cutArray.join('#@#'));
}

function setColorValues(beginValue, endValue)
{
	var colorValue = $('#colorInput').val();
	var colorArray = colorValue.split('#@#');
	colorArray[0] = beginValue;
	colorArray[1] = endValue;	
	$('#colorInput').val(colorArray.join('#@#'));
}

function setClarityValues(beginValue, endValue)
{
	var clarityValue = $('#clarityInput').val();
	var clarityArray = clarityValue.split('#@#');
	clarityArray[0] = beginValue;
	clarityArray[1] = endValue;	
	$('#clarityInput').val(clarityArray.join('#@#'));
}

function setSortValue(sortType)
{
	var sortValue = $('#sort').val();
	var newValue  = '';
	
	if (sortValue == '') {
		newValue = sortType + '#@#ASC';
	} else {
		var valueArray = sortValue.split('#@#');
		
		if (valueArray[0] == sortType) {
			newValue = (valueArray[1] == 'DESC') ? sortType + '#@#ASC' : sortType + '#@#DESC';	
		} else {
			newValue = sortType + '#@#ASC';	
		}
	}
	$('#sort').val(newValue);
	initStoneSearch();
}

function initStoneSearch(resetValue)
{
	if (resetValue == 'reset') {
		$('#pageInput').val('0');	
	}
	$('#resultBox').stonesearch({
		loaderBox: 'loaderStatus',
		resultsTarget: 'diamondListing',
		url: 'index.php?section=ajax/search_stones',
		shapesId: 'shapesInput',
		pricesId: 'pricesInput',
		caratId: 'caratInput',
		cutId: 'cutInput',
		colorId: 'colorInput',
		clarityId: 'clarityInput',
		pageId: 'pageInput',
		sortId: 'sort',
		priceTypeId: 'priceType',
		certsId: 'certsInput'
	}); 	
}

function setStoneResults(target, value)
{
	$('#' + target).html(value);	
}

function diamondSelected(list)
{ 
	$(list).children().each(function(){
		if ($(this).attr('class') == 'compare') {
			$(this).addClass('compareOver');	
		} else {
			$(this).addClass('over');	
		}
	});	
	$(document).ready(function(){
		launchSpecs(list);							   
	});
}
	
function diamondUnSelected(list)
{ 
	$(list).children().removeClass('over');			
	$(list).children().removeClass('compareOver');	
	closeSpecs();
}

function replaceItem(list, input)
{
	var list = $(list).parent();
	var selectType = 0;
	var boxHeight  = $('#resultBox').height();
	var selectionsValue = $('#selections').val();
	
	$(list).parents().map(function(){
		if (this.id == "selectedDiamondListing") {
			selectType = 1;	
		}
    });

	if (selectType == 0) {	
		$('#selectedDiamondListing').show();
		var selectedAmount = $('#selectedDiamondListing li.compare').length;
		
		if (selectedAmount == 8 && !$(list).children('.compare').children('input').attr('checked')) {
			alert('Maximum 8 selections alowed.');	
		} else { 
			$(list).children().removeClass('over');			
			$(list).children().removeClass('compareOver');
			
			var item = $(list).parent().html();
			
			if ($(list).children('.compare').children('input').attr('checked')) {
				$(list).children('.compare').children('input').attr('checked', false);
				$(list).children('.compare').children('img').attr('src', 'images/checkBoxInactive.png');
				var removeId = $(list).children('.compare').children('input').attr('class');
				$('#selectedDiamondListing li ul li.compare').children('input.' + removeId).parent('li').parent('ul').parent('li.listItem').remove();
				$('#resultBox').height(boxHeight + 20);
				
				var selectionsArray = selectionsValue.split('#@#');
				var newSelections = new Array();
				
				for (var j = 0; j < selectionsArray.length; j++)
				{
					if (selectionsArray[j] != $(list).find('input').val()) {
						newSelections.push(selectionsArray[j]);	
					}
				}
			
				$('#selections').val(newSelections.join('#@#'));
				
				$.post('ajax/rebuild_selections/', {
					   		action: 'edit',
							stones: newSelections.join('#@#')
					   }, function(data){
						   		return true;
						   });
			} else {
				$(list).children('.compare').children('input').attr('checked', true);
				$(list).children('.compare').children('img').attr('src', 'images/checkBoxActive.png');
				$('#selectedDiamondListing').append('<li class="listItem">' + item + '</li>');
				$('#resultBox').height(boxHeight - 20);
				
				if (selectionsValue == '') { 
					$('#selections').val($(list).find('input').val());	
				} else {
					$('#selections').val(selectionsValue + '#@#' + $(list).find('input').val());	
				}
				var newStones = $('#selections').val();
				$.post('ajax/rebuild_selections/', {
					   		action: 'edit',
							stones: newStones
					   }, function(data){
						   		return true;
						   });
			}
			
			
			$('#selectedDiamondListing').find('input').attr('checked', true);
			$('#selectedDiamondListing').find('img').attr('src', 'images/checkBoxActive.png');
			
			
			$('#diamondListing li.listItem').each(function(){
				$(this).removeClass('greyBack');											   
			});
			$('#selectedDiamondListing li.listItem').each(function(){
				$(this).removeClass('greyBack');											   
			});
			$('li.listItem:odd').addClass('greyBack');
			
			if ($('#selectedDiamondListing').children().length < 1) {
				$('#selectedDiamondListing').hide();	
			}
			
			
		}
	} else { 
			$(list).children().removeClass('over');			
			$(list).children().removeClass('compareOver');
			$(list).parent().remove();
			
			var removeId = $(list).children('.compare').children('input').attr('class');
			$('#diamondListing').find('input.' + removeId).attr('checked', false);
			$('#diamondListing').find('input.' + removeId).next().attr('src', 'images/checkBoxInactive.png');
			
			$('#diamondListing li.listItem').each(function(){
				$(this).removeClass('greyBack');											   
			});
			$('#selectedDiamondListing li.listItem').each(function(){
				$(this).removeClass('greyBack');											   
			});
			$('li.listItem:odd').addClass('greyBack');
			
			if ($('#selectedDiamondListing').children().length < 1) {
				$('#selectedDiamondListing').hide();	
			}
			$('#resultBox').height(boxHeight + 20);
			
			var selectionsArray = selectionsValue.split('#@#');
			var newSelections = new Array();

			for (var i = 0; i < selectionsArray.length; i++)
			{
				if (selectionsArray[i] != $(list).find('input').val()) {
					newSelections.push(selectionsArray[i]);	
				}
			}
			
			$('#selections').val(newSelections.join('#@#'));	
			
			$.post('ajax/rebuild_selections/', {
					   		action: 'edit',
							stones: newSelections.join('#@#')
					   }, function(data){
						   		return true;
						   });
	}
}

function launchSpecs(target)
{
	var specifications = $(target).find('li.popupDetails').html();
	$('div.specsBox div.mid').html(specifications);
	$('div.specsBox').show();
}

function closeSpecs()
{
	$('div.specsBox').hide();	
}

function changeToolSlider (targetId, image)
{
	$('#' + targetId).css('background-image', 'url(' + image + ')');
}


if ($('#slider')) {
	this.defaultSliderImage = '';	
}

if ($('#slider2')) {
	this.defaultSliderImage2 = '';	
}

function setDefaultSliderImage(targetId, newImage)
{
	if (newImage) { 
		defaultSliderImage = newImage;	
	}
	$('#' + targetId).css('background-image', 'url(' + defaultSliderImage + ')');
}

function setDefaultSliderImage2(targetId, newImage)
{
	if (newImage) { 
		defaultSliderImage2 = newImage;	
	}
	$('#' + targetId).css('background-image', 'url(' + defaultSliderImage2 + ')');
}

function changeToolBox(parentElement, newElement, titleTarget, infoElement, title)
{ 

	$('.toolBoxSide ul li').hide();
	$('#' + infoElement).fadeIn(500);
	$('#' + parentElement + ' div').each(function(){
		$(this).hide();	
	});	
	
	$('#' + newElement).fadeIn('slow');
	$('#' + titleTarget).html(title);
}

function switchImage(target, image)
{
	$(target).attr('src', image);
}

function toggleShapeImage(target, imageName) 
{
	var current = target.src.split('/');
	var image = current.pop();
	var names = image.split('.');
	var shapesValue = $('#shapesInput').val();
	var shapesArray = shapesValue.split('#@#');
	if (imageName == names[0]) {
		target.src = "images/shapes/" + names[0] + "Over.jpg";
		
		if (shapesValue == '') { 
			$('#shapesInput').val(names[0].replace('shape', ''));	
		} else {
			$('#shapesInput').val(shapesValue + '#@#' + names[0].replace('shape', ''));	
		}
	} else {
		var newShapesArray = new Array();
		for (var i = 0; i < shapesArray.length; i++)
		{
			if (imageName.replace('shape', '') != shapesArray[i]) {
				newShapesArray.push(shapesArray[i]);
			}
		}
		$('#shapesInput').val(newShapesArray.join('#@#'));
		target.src = "images/shapes/" + imageName + ".jpg";	
	}
	initStoneSearch('reset');
}

function setSliderPrice(beginId, endId, beginValue, endValue)
{
	var priceValue = $('#pricesInput').val();
	var priceArray = priceValue.split('#@#');
	priceArray[0] = beginValue * 200;
	priceArray[1] = endValue * 200;
	$('#pricesInput').val(priceArray.join('#@#'));
	$('#' + beginId).val(beginValue * 200);
	$('#' + endId).val(endValue * 200);
}

function setSliderPrice2(beginId, endId, beginValue, endValue)
{ 
	var priceValue = $('#pricesInput').val();
	var priceArray = priceValue.split('#@#');
	priceArray[0] = beginValue * 1000;
	priceArray[1] = endValue * 1000;
	$('#pricesInput').val(priceArray.join('#@#'));
	$('#' + beginId).val(beginValue * 1000);
	$('#' + endId).val(endValue * 1000);
}

function setSliderCarat(beginId, endId, beginValue, endValue)
{
	var roundedBeginValue =  Math.round((beginValue * 0.1) * Math.pow(10, 2))/Math.pow(10, 2);
	var roundedEndValue   =  Math.round((endValue * 0.1) * Math.pow(10, 2))/Math.pow(10, 2);

	var caratValue = $('#caratInput').val();
	var caratArray = caratValue.split('#@#');
	caratArray[0] = roundedBeginValue;
	caratArray[1] = roundedEndValue;
	$('#caratInput').val(caratArray.join('#@#'));

	$('#' + beginId).val(roundedBeginValue);
	$('#' + endId).val(roundedEndValue);
}

function setLeftPriceSlider(price)
{
	var values = $('#priceSlider').slider('option', 'values');
	var countSliderPoint = Math.round(price / 200);
	
	
	if (countSliderPoint <= values[1] && isInt(price)) {
		$('#priceSlider').slider('values', 0, parseInt(countSliderPoint));	
	} else if (!isInt(price)) {
		$('#priceSlider').slider('values', 0, 0);	
	} else {
		$('#priceSlider').slider('values', 0, values[1]);	
	}
	var priceValues = $('#pricesInput').val();
	var priceArray = priceValues.split('#@#');
	priceArray[0] = price;
	$('#pricesInput').val(priceArray.join('#@#'));
}

function setRightPriceSlider(price)
{
	var values = $('#priceSlider').slider('option', 'values');
	var countSliderPoint = Math.round(price / 200);
	
	if (countSliderPoint >= values[0] && isInt(price)) {
		$('#priceSlider').slider('values', 1, parseInt(countSliderPoint));	
	} else if (!isInt(price)) { 
		$('#priceSlider').slider('values', 1, 100);	
	} else { 
		$('#priceSlider').slider('values', 1, values[0]);	
	}
	var priceValues = $('#pricesInput').val();
	var priceArray = priceValues.split('#@#');
	priceArray[1] = price;
	$('#pricesInput').val(priceArray.join('#@#'));
}

function setLeftPriceSlider2(price)
{
	var values = $('#priceSlider2').slider('option', 'values');
	var countSliderPoint = Math.round(price / 1000);
	
	if (countSliderPoint <= values[1] && isInt(price)) {
		$('#priceSlider2').slider('values', 0, parseInt(countSliderPoint));	
	} else if (!isInt(price)) {
		$('#priceSlider2').slider('values', 0, 0);	
	} else {
		$('#priceSlider2').slider('values', 0, values[1]);	
	}
	var priceValues = $('#pricesInput').val();
	var priceArray = priceValues.split('#@#');
	priceArray[0] = price;
	$('#pricesInput').val(priceArray.join('#@#'));
}

function setRightPriceSlider2(price)
{
	var values = $('#priceSlider2').slider('option', 'values');
	var countSliderPoint = Math.round(price / 1000);
	
	if (countSliderPoint >= values[0] && isInt(price)) {
		$('#priceSlider2').slider('values', 1, parseInt(countSliderPoint));	
	} else if (!isInt(price)) { 
		$('#priceSlider2').slider('values', 1, 1000);	
	} else { 
		$('#priceSlider2').slider('values', 1, values[0]);	
	}
	var priceValues = $('#pricesInput').val();
	var priceArray = priceValues.split('#@#');
	priceArray[1] = price;
	$('#pricesInput').val(priceArray.join('#@#'));
}

function setLeftCaratSlider(carat)
{
	var values = $('#caratSlider').slider('option', 'values');
	var countSliderPoint = carat * 10;
	
	if (countSliderPoint <= values[1] && (isInt(carat) || isFloat(carat))) {
		$('#caratSlider').slider('values', 0, parseFloat(countSliderPoint));	
	} else {
		$('#caratSlider').slider('values', 0, values[1]);	
	}
	
	var caratValues = $('#caratInput').val();
	var caratArray = caratValues.split('#@#');
	caratArray[0] = carat;
	$('#caratInput').val(caratArray.join('#@#'));
}

function setRightCaratSlider(carat)
{
	var values = $('#caratSlider').slider('option', 'values');
	var countSliderPoint = carat * 10;
	
	if (countSliderPoint >= values[0] && (isInt(carat) || isFloat(carat))) {
		$('#caratSlider').slider('values', 1, parseFloat(countSliderPoint));	
	} else {
		$('#caratSlider').slider('values', 1, values[0]);	
	}
	var caratValues = $('#caratInput').val();
	var caratArray  = caratValues.split('#@#');
	caratArray[1]   = carat;
	$('#caratInput').val(caratArray.join('#@#'));
}

function checkLeftValue(targetId, compareId, defaultValue)
{
	var targetValue  = parseFloat($('#' + targetId).val());
	var compareValue = parseFloat($('#' + compareId).val());
	
	if (targetValue > compareValue) {
		$('#' + targetId).val(compareValue);	
	}
}

function checkRightValue(targetId, compareId, defaultValue)
{
	var targetValue = parseFloat($('#' + targetId).val());
	var compareValue = parseFloat($('#' + compareId).val());
	
	if (targetValue < compareValue) {
		$('#' + targetId).val(compareValue);	
	}
}

function isInt(x) 
{ 
   var y=parseInt(x); 
   if (isNaN(y)) return false; 
   return x==y && x.toString()==y.toString(); 
}

function isFloat(value) {
	if (/\./.test(value)) {
		return true;
	} else {
		return false;
	}
}

function togglePriceSlider()
{
	var priceValues = $('#pricesInput').val();
	var priceType   = ($('#priceType').val() == 20000) ? 100000 : 20000;
	var priceArray  = priceValues.split('#@#');
	
	if (priceType == 100000) {
		priceArray[0] = $('#price2_1').val();
		priceArray[1] = $('#price2_2').val();
	} else {
		priceArray[0] = $('#price1').val();
		priceArray[1] = $('#price2').val();
	}
	
	$('#priceType').val(priceType);
	$('#pricesInput').val(priceArray.join('#@#'));
	
	$(".sliderSwitch").toggle();
	initStoneSearch('reset');
}

function toggleImage(target, image1, image2, alt1, alt2)
{
	var splitImage = target.src.split('/');
	var currentImage = splitImage.pop();
	
	if (currentImage == image1) {
		$(target).attr('src', 'images/' + image2);
		$(target).attr('alt', alt2);
		$(target).attr('title', alt2);
	} else {
		$(target).attr('src', 'images/' + image1);
		$(target).attr('alt', alt1);
		$(target).attr('title', alt1);
	}
}

function launchPopup(targetId, targetClass, trigger)
{
	var triggerPos = $(trigger).offset();
	var leftPos = triggerPos.left + 25;
	var topPos  = triggerPos.top - 30;
	$('#' + targetId).css({'left': leftPos + 'px', 'top' : topPos + 'px'});
	$('.' + targetClass).each(function(){
		$(this).hide();									   
	});
	$('#' + targetId).fadeIn();	
}

function closePopup(targetClass)
{
	$('.' + targetClass).each(function(){
		$(this).fadeOut();									   
	});
}

function slideImages(targetId, slideId, image)
{	
	if ($('#' + targetId + ' li:visible').attr('id') != slideId) {
    	$('#' + targetId + ' li:visible').animate({width:'hide'}, 1000);
		$('#' + slideId).animate({width:'show'}, 1000);
		$('#zoomLink').attr('href', image);
	}
}

function toggleElement(elementClass)
{
	$('.' + elementClass).toggle();	
}

function toggleElement2(target)
{
	$('#' + target).toggle();		
}

function removeCompareItem(item, stoneId)
{
	var type = '';
	$.post('ajax/edit_compare_stones/', {
		   	action: 'edit',
			stone: stoneId
		   }, function(data){
			   	$('#shareButton').html(data);
			   	return true;
			   });
	$(item).parent().addClass('empty');
	if ($(item).parent().attr('class') != 'opacity') {
		$(item).parent().addClass('opacity');
	}
	if ($(item).siblings('div.goldBack').length > 0) {
		removeCompareBox('goldBox');
		type = 'gold';
	} else if ($(item).siblings('div.silverBack').length > 0) {
		removeCompareBox('silverBox');
		type = 'silver';
	} else if ($(item).siblings('div.bronzeBack').length > 0) {
		$(item).siblings('div.label').removeClass('bronzeBack');	
		removeCompareBox('bronzeBox');
		type = 'bronze';
	}
	
	$.post('ajax/compare_stones/', {
			   		action: 'delete',
					type: type
				}, function(data){
						$('#shareButton').html(data);
				   		return true;
				   });
	
	$(item).parent().children().remove();
}

function removeCompare(toggleClass)
{
	toggleElement(toggleClass);
	$('.' + toggleClass).parent().addClass('opacity');
	$('.' + toggleClass).parent().children('.close').addClass('opacity');
	
	var type = '';
	
	if ($('.' + toggleClass).siblings('div.goldBack').length > 0) {
		$('.' + toggleClass).siblings('div.label').removeClass('goldBack');
		removeCompareBox('goldBox');
		type = 'gold';
	} else if ($('.' + toggleClass).siblings('div.silverBack').length > 0) {
		$('.' + toggleClass).siblings('div.label').removeClass('silverBack');
		removeCompareBox('silverBox');
		type = 'silver';
	} else if ($('.' + toggleClass).siblings('div.bronzeBack').length > 0) {
		$('.' + toggleClass).siblings('div.label').removeClass('bronzeBack');	
		removeCompareBox('bronzeBox');
		type = 'bronze';
	}
	
	$.post('ajax/compare_stones/', {
			   		action: 'delete',
					type: type
				}, function(data){
						$('#shareButton').html(data);
				   		return true;
				   });
	
	$('.' + toggleClass).siblings('div.label').addClass('blueBack');
}

function removeCompareBox(boxType)
{
	$('#' + boxType).children('.image').children('div.info').hide();
	$('#' + boxType).children('.image').children('div.empty').fadeIn('slow');
	$('#' + boxType).children('.image').children('img').fadeOut('slow');
	$('#' + boxType).children('.detailBoxTop').children('div.about').fadeOut('slow');
	$('#' + boxType).children('.detailBoxMid').children('ul.compareDetailsListHolder').fadeOut('slow');
	$('#' + boxType).children('.detailBoxMid').children('ul.compareDetailsListHolder').remove();
	$('#' + boxType).children('.compareBottom').children('div.orderMenu').fadeOut('slow');
	
	switch(boxType)
	{
		case 'goldBox':
			$('#' + boxType).children('.compareBottom').removeClass('detailBoxGoldBottom');
			break;
		case 'silverBox':
			$('#' + boxType).children('.compareBottom').removeClass('detailBoxSilverBottom');
			break;
		default:
			$('#' + boxType).children('.compareBottom').removeClass('detailBoxBronzeBottom');
	}
	$('#' + boxType).children('.compareBottom').addClass('detailBoxEmptyBottom');
}

function switchCompare(source, toggleClass, idPrefix)
{
	if ($(source).parent().attr('class') == 'opacity') {
		addCompare(toggleClass, idPrefix);	
	} else {
		removeCompare(toggleClass);	
	}
}

function addCompare(toggleClass, idPrefix, place)
{
	var stoneId = idPrefix.replace('d', '');
	var actives = $('.' + toggleClass).parent().siblings('.opacity');
	
	if (actives.length == 4) {
		alert('Maximum 3 selections alowed');	
	} else {
		toggleElement(toggleClass);
		$('.' + toggleClass).parent().removeClass('opacity');
		$('.' + toggleClass).siblings('.blueBack').removeClass('blueBack');
		var type = '';
		
		if (place && place != '') {
			switch (place)
			{
				case 'gold':
					$('.' + toggleClass).siblings('div.label').addClass('goldBack');
					fillCompareBox(idPrefix, 'goldBox', toggleClass);
					break;
				case 'silver':
					$('.' + toggleClass).siblings('div.label').addClass('silverBack');
					fillCompareBox(idPrefix, 'silverBox', toggleClass);
					break;
				case 'bronze':
					$('.' + toggleClass).siblings('div.label').addClass('bronzeBack');	
					fillCompareBox(idPrefix, 'bronzeBox', toggleClass);
					break;
			}
			type = place;
		} else {
			if ($('div.goldBack').length < 1) {
				$('.' + toggleClass).siblings('div.label').addClass('goldBack');
				fillCompareBox(idPrefix, 'goldBox', toggleClass);
				type = 'gold';
			} else if ($('div.silverBack').length < 1) {
				$('.' + toggleClass).siblings('div.label').addClass('silverBack');
				fillCompareBox(idPrefix, 'silverBox', toggleClass);
				type = 'silver';
			} else {
				$('.' + toggleClass).siblings('div.label').addClass('bronzeBack');	
				fillCompareBox(idPrefix, 'bronzeBox', toggleClass);
				type = 'bronze';
			}
		}
		$.post('ajax/compare_stones/', {
			   		action: 'add',
					type: type,
					stone: stoneId
			   }, function(data){
				   		$('#shareButton').html(data);
						return true;
				   });
	}
}

function fillCompareBox(sourcePrefix, target, thumbClass)
{
	var stoneId = sourcePrefix.replace('d', '');
	$('#' + target).children('.image').children('img.thumb').attr('src', $('#' + sourcePrefix + 'Image img').attr('src'));
	$('#' + target).children('.image').children('img.hide').fadeIn('slow');
	$('#' + target).children('.image').children('img.arrow').attr('ref', thumbClass);
	$('#' + target).children('.detailBoxTop').children('div.about').fadeIn('slow');
	$('#' + target).children('.image').children('.empty').hide();
	$('#' + target).children('.image').children('.info').html($('#' + sourcePrefix + 'Link').html() + '<input type="hidden" name="stone' + stoneId + '" id="stoneIdValue' + stoneId + '" value="' + stoneId + '" />');
	$('#' + target).children('.image').children('.info').fadeIn('slow');
	$('#' + target).children('.detailBoxMid').html($('#' + sourcePrefix + 'Info').html());
	$('#' + target).children('.detailBoxMid').children('ul.compareDetailsListHolder').children('li.holder:odd').addClass('greyBack');
	$('#' + target).children('.detailBoxMid').children('ul.compareDetailsListHolder').fadeIn('slow');
	$('#' + target).children('.compareBottom').removeClass('detailBoxEmptyBottom');
	$('#' + target).children('.compareBottom').children('div.orderMenu').fadeIn('slow');
	
	switch(target)
	{
		case 'goldBox':
			$('#' + target).children('.compareBottom').addClass('detailBoxGoldBottom');
			break;
		case 'silverBox': 
			$('#' + target).children('.compareBottom').addClass('detailBoxSilverBottom');
			break;
		default:
			$('#' + target).children('.compareBottom').addClass('detailBoxBronzeBottom');
	}
}

function unSelectCompare(target)
{
	removeCompareBox($(target).parent('div').parent('li').attr('id'));
	removeCompare($(target).attr('ref'));
}

function switchCompareThumbs(source, target, sourceClass, targetClass, targetContent)
{
	$('.' + source).siblings('.label').removeClass(sourceClass);
	$('.' + source).siblings('.label').addClass(targetClass);
	
	$('.' + target).siblings('.label').removeClass(targetClass);
	if (targetContent == '') {
		$('.' + target).siblings('.label').addClass('blueBack');	
	} else {
		$('.' + target).siblings('.label').addClass(sourceClass);
	}
}

function reOrder(source, target, sourceClass, targetClass)
{ 
	var sourceImageContent = $('#' + source).children('.image').html();
	var sourceTopContent   = $('#' + source).children('.detailBoxTop').html();
	var sourceInfoContent  = $('#' + source).children('.detailBoxMid').html();
	
	var targetImageContent = $('#' + target).children('.image').html();
	var targetTopContent   = $('#' + target).children('.detailBoxTop').html();
	var targetInfoContent  = $('#' + target).children('.detailBoxMid').html();
	
	var sourceThumb = $('#' + source).children('.image').children('.arrow').attr('ref');
	var targetThumb = $('#' + target).children('.image').children('.arrow').attr('ref');
	switchCompareThumbs(sourceThumb, targetThumb, sourceClass, targetClass, targetInfoContent);
	
	$('#' + source).hide();
	
	$('#' + target).hide();
	
	$('#' + source).children('.image').html(targetImageContent);
	$('#' + source).children('.detailBoxTop').html(targetTopContent);
	$('#' + source).children('.detailBoxMid').html(targetInfoContent);
	
	if (targetInfoContent == '') {
		$('#' + source).children('.compareBottom').children('.orderMenu').hide();
		switch(source)
		{
			case 'goldBox':
				$('#' + source).children('.compareBottom').removeClass('detailBoxGoldBottom');
				break;
			case 'silverBox':
				$('#' + source).children('.compareBottom').removeClass('detailBoxSilverBottom');
				break;
			case 'bronzeBox':
				$('#' + source).children('.compareBottom').removeClass('detailBoxBronzeBottom');
				break;
		}
		$('#' + source).children('.compareBottom').addClass('detailBoxEmptyBottom');
		$('#' + target).children('.compareBottom').removeClass('detailBoxEmptyBottom');
		switch(target)
		{
			case 'goldBox':
				$('#' + target).children('.compareBottom').addClass('detailBoxGoldBottom');
				break;
			case 'silverBox':
				$('#' + target).children('.compareBottom').addClass('detailBoxSilverBottom');
				break;
			case 'bronzeBox':
				$('#' + target).children('.compareBottom').addClass('detailBoxBronzeBottom');
				break;
		}
		$('#' + target).children('.compareBottom').children('.orderMenu').fadeIn('slow');
	}
	
	$('#' + target).children('.image').html(sourceImageContent);
	$('#' + target).children('.detailBoxTop').html(sourceTopContent);
	$('#' + target).children('.detailBoxMid').html(sourceInfoContent);
	$('#' + source).fadeIn('slow');
	$('#' + target).fadeIn('slow');
	
	var goldValue   = $('#goldBox').find('input').val();
	var silverValue = $('#silverBox').find('input').val();
	var bronzeValue = $('#bronzeBox').find('input').val();
	
	$.post('ajax/compare_stones/', {
			   		action: 'reorder',
					gold: goldValue,
					silver: silverValue,
					bronze: bronzeValue
			   }, function(data){
				   		$('#shareButton').html(data);
				   		return true;
				   });
}

function reOrderFromDrag()
{
	$('#compareDetailsList li:first').attr('id', 'goldBox');
	$('#compareDetailsList li:first').next().attr('id', 'silverBox');
	$('#compareDetailsList li:first').next().next().attr('id', 'bronzeBox');
	
	$('#goldBox .compareBottom').removeClass('detailBoxSilverBottom');
	$('#goldBox .compareBottom').removeClass('detailBoxBronzeBottom');
	
	$('#silverBox .compareBottom').removeClass('detailBoxGoldBottom');
	$('#silverBox .compareBottom').removeClass('detailBoxBronzeBottom');
	
	$('#bronzeBox .compareBottom').removeClass('detailBoxGoldBottom');
	$('#bronzeBox .compareBottom').removeClass('detailBoxSilverBottom');

	if ($('#goldBox .detailBoxMid').html() != '' && $('#goldBox .detailBoxGoldBottom').length < 1) {
		$('#goldBox .compareBottom').addClass('detailBoxGoldBottom');
		var goldThumb = $('#goldBox .arrow').attr('ref');
		$('.' + goldThumb).siblings('.label').removeClass('silverBack');
		$('.' + goldThumb).siblings('.label').removeClass('bronzeBack');
		$('.' + goldThumb).siblings('.label').addClass('goldBack');
		var goldMenu = 
		$('#goldBox span.reOrderMenu').html('1 <a href="javascript: reOrder(\'goldBox\', \'silverBox\', \'goldBack\', \'silverBack\');" alt="silver" title="silver">2</a> <a href="javascript: reOrder(\'goldBox\', \'bronzeBox\', \'goldBack\', \'bronzeBack\');" alt="bronze" title="bronze">3</a>');
	}
	
	if ($('#silverBox .detailBoxMid').html() != '' && $('#silverBox .detailBoxSilverBottom').length < 1) {
		$('#silverBox .compareBottom').addClass('detailBoxSilverBottom');	
		var silverThumb = $('#silverBox .arrow').attr('ref');
		$('.' + silverThumb).siblings('.label').removeClass('goldBack');
		$('.' + silverThumb).siblings('.label').removeClass('bronzeBack');
		$('.' + silverThumb).siblings('.label').addClass('silverBack');
		$('#silverBox span.reOrderMenu').html('<a href="javascript: reOrder(\'silverBox\', \'goldBox\', \'silverBack\', \'goldBack\');" alt="gold" title="gold">1</a> 2 <a href="javascript: reOrder(\'silverBox\', \'bronzeBox\', \'silverBack\', \'bronzeBack\');" alt="bronze" title="bronze">3</a>');
	}
	
	if ($('#bronzeBox .detailBoxMid').html() != '' && $('#bronzeBox .detailBoxBronzeBottom').length < 1) {
		$('#bronzeBox .compareBottom').addClass('detailBoxBronzeBottom');
		var bronzeThumb = $('#bronzeBox .arrow').attr('ref');
		$('.' + bronzeThumb).siblings('.label').removeClass('goldBack');
		$('.' + bronzeThumb).siblings('.label').removeClass('silverBack');
		$('.' + bronzeThumb).siblings('.label').addClass('bronzeBack');
		$('#bronzeBox span.reOrderMenu').html('<a href="javascript: reOrder(\'bronzeBox\', \'goldBox\', \'bronzeBack\', \'goldBack\');" alt="gold" title="gold">1</a> <a href="javascript: reOrder(\'bronzeBox\', \'silverBox\', \'bronzeBack\', \'silverBack\');" alt="silver" title="silver">2</a> 3');
	}
	
	var goldValue   = $('#goldBox').find('input').val();
	var silverValue = $('#silverBox').find('input').val();
	var bronzeValue = $('#bronzeBox').find('input').val();
	
	$.post('ajax/compare_stones/', {
			   		action: 'reorder',
					gold: goldValue,
					silver: silverValue,
					bronze: bronzeValue
			   }, function(data){
				   		$('#shareButton').html(data);
				   		return true;
				   });
}

function submitForm(target, action)
{
	$('#action').val(action);
	$('#' + target).submit();
}

function navigateToPage(url)
{
	window.location.href = url;
}

function postSearchForm(url)
{
	$('#link').val(url);
	$('#diamondSearchForm').submit();
}

function submitRefSearch() 
{
	$('#refSearch').submit();	
}

function switchField(target)
{
	$('.' + target).hide();
	$('.' + target).next('li').show();	
	$('.' + target).next('li').children('input').focus();	
}

function getPdf(url)
{
	var numberValue = $('#pdfNumber').val();
	numberValue = (numberValue != '') ? numberValue : 'blank';
	var url = url.replace('#@#', numberValue);
	window.open(url, 'diamond pdf', 'scrollbars=yes,toolbar=yes,location=yes');
	return false;	
}

function setCheckBox(target, trigger)
{
	var certsValue = $('#certsInput').val();
	var certsArray = certsValue.split('#@#');
	
	

	if ($('#' + target).attr('checked') == true) {
		$('#' + target).attr('checked', false);
		var newCertsArray = new Array();
		for (var i = 0; i < certsArray.length; i++)
		{
			if (target.replace('cert_', '') != certsArray[i]) {
				newCertsArray.push(certsArray[i]);
			}
		}
		$('#certsInput').val(newCertsArray.join('#@#'));
	} else {
		$('#' + target).attr('checked', true);
		
		if (certsValue == '') { 
			$('#certsInput').val(target.replace('cert_', ''));	
		} else {
			$('#certsInput').val(certsValue + '#@#' + target.replace('cert_', ''));	
		}
	}
	
	var triggerSrc = $(trigger).attr('src');
	
	if (triggerSrc == 'images/checkBoxInactive.png') {
		$(trigger).attr('src', 'images/checkBoxActive.png')
	} else {
		$(trigger).attr('src', 'images/checkBoxInactive.png')
	}
	initStoneSearch('reset');
}