/*--FUNCTIONS.JS--*/

function pngFix(){
	$(".pngFix").each(function(){
		this.firstChild.style.visibility = "hidden";
		this.style.display = "block";
		this.style.width = this.firstChild.width+"px";
		this.style.height = this.firstChild.height+"px";
		this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.firstChild.src+"', sizingMethod='crop');";
	});
}

function expandCollapseFooter(){
	switch(document.getElementById('footer').className){
		case 'toExpand':
			document.getElementById('footer').className = 'toCollapse';
			break;
		case 'toCollapse':
			document.getElementById('footer').className = 'toExpand';
			break;
		default:
			document.getElementById('footer').className = 'toCollapse';
			break;
	}
}

function change_prenom(element){
	$('#textField1').val(element);
}
function change_date(element){
	$('#textField2').val(element);
}
function change_gravure(element){
	var parseElement = parseInt(element);
	var mappingTable = new Array(62,60,59,58,61);
	
	$("#group_12 option").attr("selected", false);
	$("#group_12 option[value="+mappingTable[parseElement]+"]").attr("selected", "selected");
	
	$('#group_12').val(mappingTable[parseElement]);
	
	
	findCombination();
	//saveCustomization();
}

function changeTypo(element){
	document.getElementById('textField2').value = element.value;
}


//function qui verifie le click sur les liens des pages 1,2,3 ...etc
function checkLinks(){
	if($('#list_product_category').length){
		$('a.page').live('click', function(event){
				//suppression de l'evenement habituel, donc du chargement d'une autre page.
				event.preventDefault();
				
				//récuperation du numéro de la page clické
				var page = $(this).html();
					
				//récuperation des valeurs du slider
				var leftValue = $("#leftValue").html();
				var rightValue = $("#rightValue").html();
				
				//récuperation de la valeur sélectionnée dans le sorter
				var sorterValue = new Array('position_asc','price_asc','price_desc','name_asc','name_desc','quantity_desc','quantity_desc');
				var sorter = sorterValue[$('#selectPrductSort').val()];
				
				//récuperation de l'id de la catégorie
				var id_categ = parseInt(id_category);// récuperer l'id de la categoruie en cours et l'id de la lang en cours pour pouvoir les passer à l'ajax qui appelera la classe de la category!!!
				
				//url à appeler pour la requete ajax
				var url = baseDir + 'themes/augis/ajax/filter_category.php';
				
				//récuperation du filtrage selon feature si il y en a
				if($('#selectProductFilter').length){
					var feature_value = $('#selectProductFilter').val();
					var feature_id = $('#feature_id').val();
					
					//parametre à passer à la page appeler par ajax
					var data = {min : leftValue, max : rightValue, id_category : id_categ, p : page, sorter : sorter, feature_id : feature_id, feature_value : feature_value};
				}else{
					//parametre à passer à la page appeler par ajax
					var data = {min : leftValue, max : rightValue, id_category : id_categ, p : page, sorter : sorter, feature_id : feature_id};
				}
				
				//on envoit la requete
				$("#list_product_category").load(url, data);
					
				return false;
		});
	}
}


//function qui verifie le choix du tri (plus cher, moins cher, etc...)
function checkSorter(){
	if($('#selectPrductSort').length){
		$('#selectPrductSort').change(function(event){
			//suppression de l'evenement habituel
			event.preventDefault();
			
			//récuperation du numéro de la page courante
			/*if($('#current_page').length)
				var page = $('#current_page').html();
			else
			*/
			var page = 1;
			
			//récuperation des valeurs du slider
			var leftValue = $("#leftValue").html();
			var rightValue = $("#rightValue").html();
			
			//récuperation de la valeur sélectionnée dans le sorter
			var sorterValue = new Array('position_asc','price_asc','price_desc','name_asc','name_desc','quantity_desc','quantity_desc');
			var sorter = sorterValue[$(this).val()];
			
			//récuperation de l'id de la catégorie		
			var id_categ = parseInt(id_category);// récuperer l'id de la categoruie en cours et l'id de la lang en cours pour pouvoir les passer à l'ajax qui appelera la classe de la category!!!
			
			//url à appeler pour la requete ajax
			var url = baseDir + 'themes/augis/ajax/filter_category.php';
			
			//récuperation du filtrage selon feature si il y en a
			if($('#selectProductFilter').length){
				var feature_value = $('#selectProductFilter').val();
				var feature_id = $('#feature_id').val();
				
				//parametre à passer à la page appeler par ajax
				var data = {min : leftValue, max : rightValue, id_category : id_categ, p : page, sorter : sorter, feature_id : feature_id, feature_value : feature_value};
			}else{
				//parametre à passer à la page appeler par ajax
				var data = {min : leftValue, max : rightValue, id_category : id_categ, p : page, sorter : sorter, feature_id : feature_id};
			}
			
			//on envoit la requete
			$("#list_product_category").load(url, data);
			
			return false;
		});
	}
}


//ensemble des fonctions a executer des que le dom est ready
$(document).ready(function(){
	//fonction sur la soumission du formulaire buy block
	$('#buy_block').submit(function() {
		var retour = false;
		//alert(retour);
		
		//si il y a le formulaire de customization
		if($('#customizationForm').length){
			//pr mettre à jour le prix et dans le panier le style sinon ne marche pas!!!
			findCombination();
			

			//récuperation des valeurs
			var prenom_key = $('#textField1').attr('name');
			var date_key = $('#textField2').attr('name');
			var prenom_value = $('#textField1').val();
			var date_value = $('#textField2').attr('value');
			
			//passage des parametre pour la requete ajax
			var data = {prenom_value : prenom_value, prenom_key : prenom_key, date_value : date_value, date_key : date_key};
			//url de la requete ajax
			var url = baseDir + 'themes/augis/ajax/retrieve_informations_from_flash.php?group_12=' + parseInt($('#group_12').val()) + '&id_product=' + id_product;
			
			//alert(url);
			
			//on envoi la requete!
			$.ajax({
				type: "POST",
				url: url, 
				data: data, 
				async: false, 
				dataType : 'json',
				complete: function(){
					retour = true;
			    }
			});
			//alert(retour);
			return retour;
		}
	});
	
	
	//depliage du block panier
	$("#cartExpandCollapse").click(function(){
		if($("#cartPreview").hasClass('toExpand')){
			$("#cartPreview").removeClass('toExpand');
			$("#cartPreview").addClass('toCollapse');
			$("#cartExpandCollapseContent").slideDown("slow");
			$.ajax({
				type: 'GET',
				url: baseDir + 'modules/blockcart/blockcart-set-collapse.php',
				async: true,
				data: 'ajax_blockcart_display=expand' + '&rand=' + new Date().getTime()
			});
		}
		else{
			$("#cartPreview").removeClass('toCollapse');
			$("#cartPreview").addClass('toExpand');
			$("#cartExpandCollapseContent").slideToggle("slow");
			$.ajax({
				type: 'GET',
				url: baseDir + 'modules/blockcart/blockcart-set-collapse.php',
				async: true,
				data: 'ajax_blockcart_display=collapse' + '&rand=' + new Date().getTime()
			});
		}
	});
	
	
	// ?????
	$("#expandCollapseAccount").click(function(){
		if(!$("#expandCollapseAccount").hasClass('toCollapse')){
			$("#expandCollapseAccount").toggleClass('toCollapse');
			$("#userAccountLinks").slideDown("slow");
			$.ajax({
				type: 'GET',
				url: baseDir + 'modules/blockuserinfo/blockuserinfo-set-collapse.php',
				async: true,
				data: 'ajax_blockuserinfo_display=expand' + '&rand=' + new Date().getTime()
			});
		}
		else{
			$("#expandCollapseAccount").toggleClass('toCollapse');
			$("#userAccountLinks").slideUp("slow");
			$.ajax({
				type: 'GET',
				url: baseDir + 'modules/blockuserinfo/blockuserinfo-set-collapse.php',
				async: true,
				data: 'ajax_blockuserinfo_display=collapse' + '&rand=' + new Date().getTime()
			});
		}
	});
	
	//init the price in relation of the selected attributes
	if (typeof productHasAttributes != 'undefined' && productHasAttributes)
		findCombination();
	
	checkLinks(); // verifie les liens de page suivante pour ajax ;)
	checkSorter(); //verifie les trie par ordre croissant ou décroissant (sorter)
	
	
	//function qui récupere le filtrage selon le feature (theme, couleur etc...)
	if($('#selectProductFilter').length){
		$('#selectProductFilter').change(function(event) {
			event.preventDefault();
			
			//récuperation des valeurs du slider
			var leftValue = $("#leftValue").html();
			var rightValue = $("#rightValue").html();
			
			//récuperation de la valeur sélectionner
			var sorterValue = new Array('position_asc','price_asc','price_desc','name_asc','name_desc','quantity_desc','quantity_desc');
			var selectedValue = sorterValue[$('#selectPrductSort').val()];
			
			//récuperation du numéro de la page courante
			/*if($('#current_page').length)
				var page = $('#current_page').html();
			else*/
				var page = 1;
			
			//récuperation du filtrage selon feature
			var feature_value = this.value;
			var feature_id = $('#feature_id').val();
			
			//récuperation de l'id de la catégorie	
			var id_categ = parseInt(id_category);// récuperer l'id de la categoruie en cours et l'id de la lang en cours pour pouvoir les passer à l'ajax qui appelera la classe de la category!!!
			
			//parametre à passer à la page appeler par ajax
			var data = {min : leftValue, max : rightValue, id_category : id_categ, p : page, sorter : selectedValue, feature_id : feature_id, feature_value : feature_value};
			
			//url à appeler pour la requete ajax
			var url = baseDir + 'themes/augis/ajax/filter_category.php';
			
			//on envoit la requete
			$("#list_product_category").load(url, data);
			
			return false;
		});
	}
	
	
	//fonction qui s'execute dés qu'une requete ajax est faite 
	$("#ajax_loader").ajaxStart(function(){
		$(this).css('display','block');
		$(this).fadeTo("fast", 1);
		$('.prodList ul').each(function(){
			$(this).fadeTo("fast", 0.4);
		});
	});
	
	
	//fonction qui s'execute à la fin de la requete ajax
	 $("#ajax_loader").ajaxStop(function(){
		$(this).fadeTo("fast", 0, function(){
			$("#ajax_loader").css('display','none');
		});
		$('.prodList ul').each(function(){
			$(this).fadeTo("fast", 1);
		});
	 });
	
	
	//gestion du slider sur la page categorie
	if($('#priceFilterBar').length){
		$('#priceFilterBar').slider({
			range: true,
			step: 1,
			min: parseInt($('#mark_1 span').html()),
			max: parseInt($('#mark_4 span').html()),
			values: [parseInt($('#mark_1 span').html()), parseInt($('#mark_4 span').html())],
			slide: function(event, ui) {
				//$("#amount").val('$' + ui.values[0] + ' - $' + ui.values[1]);
				$("#leftValue").html(ui.values[0]);
				$("#rightValue").html(ui.values[1]);

			},
			change : function(event, ui){ // evenement à chaque fois que la souris est relaché
				//récuperation des valeurs
				var leftValue = ui.values[0];
				var rightValue = ui.values[1];
					
				
				//récuperation de la valeur sélectionner dans le sorter
				var sorterValue = new Array('position_asc','price_asc','price_desc','name_asc','name_desc','quantity_desc','quantity_desc');
				var selectedValue = sorterValue[$('#selectPrductSort').val()];
				
				//récuperation de la catégorie en cours
				var id_categ = parseInt(id_category);// récuperer l'id de la categoruie en cours et l'id de la lang en cours pour pouvoir les passer à l'ajax qui appelera la classe de la category!!!
				
				//url de la requete ajax
				var url = baseDir + 'themes/augis/ajax/filter_category.php';
										
				//récuperation du filtrage selon feature si il y en a
				if($('#selectProductFilter').length){
					var feature_value = $('#selectProductFilter').val();
					var feature_id = $('#feature_id').val();
					
					//parametres à passer a la requete ajax
					var data = {min : leftValue, max : rightValue, id_category : id_categ, sorter : selectedValue, feature_id : feature_id, feature_value : feature_value};
				}else{
					//parametres à passer a la requete ajax	
					var data = {min : leftValue, max : rightValue, id_category : id_categ, sorter : selectedValue, feature_id : feature_id};
				}
					
			
				//on envoit la requete ajax
				$("#list_product_category").load(url, data);	
			}
		});
		
		//affichage du block de la valeur de gauche
		$('.ui-slider-range').append('<span id="leftValue">&nbsp;</span>');
		
		//affichage du block de la valeur de droite
		$('.ui-slider-range').append('<span id="rightValue">&nbsp;</span>');
		
		//on affecte le contenu dans les blocks
		$("#leftValue").html($("#priceFilterBar").slider("values", 0));
		$("#rightValue").html($("#priceFilterBar").slider("values", 1));
	}	
});


// search the combinations' case of attributes and update displaying of availability, prices, ecotax, and image
function findCombinationCheckbox(){
	//create a temporary 'choice' array containing the choices of the customer
	var choice = new Array();
	
	//choice.push($('input.radio').val());
	
	
	$('div#attributes_special_medaille input.radio').each(function(){
		//alert($(this).attr('checked'));
		
		if($(this).attr('checked')==true)
			choice.push($(this).val());
	});
	

	
	var nbAttributesEquals = 0;
	//testing every combination to find the conbination's attributes' case of the user
	
	for (combination in combinations)
	{
		
		//verify if this combinaison is the same that the user's choice
		nbAttributesEquals = 0;
		for (idAttribute in combinations[combination]['idsAttributes'])
		{
			//ie6 bug fix
			if (idAttribute != 'indexOf'){
				//if this attribute has been choose by user
				if (in_array(combinations[combination]['idsAttributes'][idAttribute], choice))
				{
					//we are in a good way to find the good combination !
					nbAttributesEquals++;
				}
			}
		}
		

		if (nbAttributesEquals == choice.length)
		{
			//alert(combinations[combination]['idCombination']);
		
			//combination of the user has been found in our specifications of combinations (created in back office)
			selectedCombination['unavailable'] = false;
			selectedCombination['reference'] = combinations[combination]['reference'];
			$('#idCombination').val(combinations[combination]['idCombination']);

			//get the data of product with these attributes
			quantityAvailable = combinations[combination]['quantity'];
			selectedCombination['price'] = combinations[combination]['price'];
			if (combinations[combination]['ecotax'])
				selectedCombination['ecotax'] = combinations[combination]['ecotax'];
			else
				selectedCombination['ecotax'] = default_eco_tax;
			
			//show the large image in relation to the selected combination
			if (combinations[combination]['image'] && combinations[combination]['image'] != -1)
				displayImage( $('#thumb_'+combinations[combination]['image']).parent() );
			
			//update the display
			updateDisplay();
			
			//leave the function because combination has been found
			return;
		}
	}
	//this combination don't exist (not created in back office)
	selectedCombination['unavailable'] = true;
	updateDisplay();
}
