/**
Fichier js commun
*/

var adresse_site		= '';
var domaine				= '';
var debugdisplayfields	= '';
var debug_mode			= ($('#debug_mode').val() == '1' ? true : false);

$(document).ready(function (){
	adresse_site		= $('#adresse_site').val();
	domaine  			= adresse_site.replace(/http:\/\//, '');
	debugdisplayfields	= readCookie('debugdisplayfields');

	/* centrage horizontal par rapport au parent */
	$.fn.halign = function(conf) {
		this.each(function() {
			var parent_w = $(this).parent().width();
			var this_w = $(this).width();
			if (parent_w > this_w) {
				marge = parseInt((parent_w - this_w) / 2);
				$(this).css('margin-left', marge);
			}
		});
	};

	$.fn.tagName = function() {
    	return this.get(0).tagName;
	}

	url_panier = '';
 	/* boutique */
	if ($('#boutique_enabled').length > 0) {
		/* ajout au panier des fiches techniques */
		$('.article-boutique').bind('submit', function (){
			/* détermine l'id article (champ id dans le formulaire) */
			var id_article = $(this).find('input[name=id]').val();
			var qte = parseInt($(this).find('[name=qte]').val());
			if (!isNaN(qte) && qte > 0) {
				ajouter_panier(id_article, qte);
			}
			return false;
		});

		/* applique un masque sur le processus de commande pour interdire un double post
		pour supprimer le masque :
		$('.processus-commande .processus-commande-inner-loading').removeClass('inner-loading'); */
		$('.processus-commande form').bind('submit', function(){
			$('.processus-commande .processus-commande-inner-loading').css('height', $('.processus-commande').height() + 'px');
			$('.processus-commande .processus-commande-inner-loading').addClass('inner-loading');
			return true;
		});

		var p_cmd_div = $('.processus-commande');
		if (p_cmd_div.length > 0 && !$(p_cmd_div).hasClass('cgv')) {
			$('#menu-rubrique').hide();
		}

		$('.btn-paiement').bind('click', function(){
			var id_frm_paiement	= $(this).parents('form').attr('id');
			var cle_trad_btn	= 'boutique_paiement_btn_' + $(this).attr('value');
			var traductions 	= traduire('boutique_paiement_confirme_btn_paiement,boutique_paiement_confirmer,boutique_paiement_annuler,' + cle_trad_btn);
			$.modal('<div><p>' + traductions['boutique_paiement_confirme_btn_paiement'].replace(/%lbl_paiement%/, traductions[cle_trad_btn]) + '</p><p class="boutons"><a href="javascript:void(0)" onclick="$.modal.close();$(\'#' + id_frm_paiement + '\').submit();"><span>' + traductions['boutique_paiement_confirmer'] + '</span></a> <a href="javascript:void(0)" onclick="$.modal.close()"><span>' + traductions['boutique_paiement_annuler'] + '</span></a></p></div>', {overlay:30, width: 300, onShow: modal_onshow});
			return false;
		});

		var modal_onshow	= function(){$('#modalOverlay').bind('click', function(){$.modal.close()})};

		/* popup lien-frais-port */
		$('.lien-frais-port').bind('click', function(){
			$.ajax({
			type: 'GET',
			data: 'page=frais_port',
			url: '/',
			success: function(response){
				$.modal(response, {overlay:30, width: 300, onShow: modal_onshow});
			}
			})
			return false;
		});

		/* traitement des erreurs formulaires : */
		var liste_erreurs	= $('.errors ul');
		if ($(liste_erreurs).length > 0) {
			$(liste_erreurs).find('li').each(function(){
				var fld_class = $(this).attr('class');
				$('[name=' + fld_class + ']').each(function(){
					var tag_name	= $(this).tagName();
					if (tag_name == 'INPUT' || tag_name == 'TEXTAREA') {
						switch($(this).attr('type')){
						case 'radio' :
						case 'checkbox' :
							var lbl = $(this).parent().parent().find('label');
						break;
						default:
							var lbl = $(this).parent().find('label');
						break;
						}

						$(lbl).addClass('error');
					}
				});
			});
		}

		function ajouter_panier(id, qte){
			// bouton panier en lien en haut de page
			if ($('#bouton-panier').length > 0) {
				var url_panier = $('#bouton-panier a:first').attr('href');
				$.ajax({
				   type: "GET",
				   url: url_panier,
				   data: "boutique_action=ajouter_panier&id=" + id + "&qte=" + qte + '&mode=ajax',
				   success: function(response){
				   		if (debug_mode) {
				   			alert(response);
				   		}
						/* aucun affichage à réaliser */
						i_response = parseInt(response);
						if (!isNaN(i_response) && i_response >= 0) {
							if (i_response > 0) {
								// met à jour le nb d'articles en panier
								if ($('.bouton-panier-qte').length > 0) {
									$('.bouton-panier-qte').html(i_response);
								}
								var traductions = traduire('boutique_ajout_panier_ok,btn_retour,boutique_voir_mon_panier');
								$.modal('<div><p>' + traductions['boutique_ajout_panier_ok'] + '</p><p class="boutons"><a href="javascript:void(0)" onclick="$.modal.close()" id="btn-retour"><span>&lt;&lt; ' + traductions['btn_retour'] + '</span></a> <a href="javascript:void(0)" onclick="window.location.href=\'' + url_panier + '\'"><span>' + traductions['boutique_voir_mon_panier'] + ' &gt;&gt;</span></a></p></div>', {overlay:30, width: 300, onShow: modal_onshow});
							} else {
								var traductions = traduire('boutique_ajout_panier_pb_quantite,btn_retour');
								$.modal('<div><p>' + traductions['boutique_ajout_panier_pb_quantite'] + '</p><p class="boutons"><a href="javascript:void(0)" onclick="$.modal.close()" id="btn-retour"><span>&lt;&lt; ' + traductions['btn_retour'] + '</span></a></p></div>', {overlay:30, width: 300, onShow: modal_onshow});
							}
						} else {
							$.modal('<div><p>Une erreur s\'est produite, l\'article n\'a pas pu être ajouté à votre panier.</p><p class="boutons"><a href="javascript:void(0)" onclick="$.modal.close()" id="btn-retour"><span>&lt;&lt; Retour</span></a></p></div>', {overlay:30, width: 300, onShow: modal_onshow});
						}
				   }
				});
			}
		}
	}


	if ($('#debug_mode').val() > 0) {
		var debug_html = '<p id="debug-display-btn"><a href="">masquer</a></p><div id="debug-display-fields">';
		$('#debug-pannel').find('fieldset input').each(function (){
			debug_html += '<p><label>'+$(this).attr('id') + '</label> : <span class="debug-val">' + $(this).val() + '</span></p>';
		});
		debug_html += '<p>Pour supprimer les information de débogage, passer la constante DEBUG_MODE à false dans ecrire/mes_options.php</p>';


		debug_html += '</div>';


		$('body').append('<div id="debug-display">'+debug_html+'</div>');

		if ($('#used-templates').length > 0) {
			//debug_html += $('#used-templates').html();
			//debug_html += $('#used-templates');
			$('#debug-display-fields').append($('#used-templates'));
		}


		$('#debug-display-btn a').bind('click', function (){
			if ($('#debug-display-fields').css('display') == 'block') {
				$('#debug-display-fields').hide();
				debugdisplayfields	= 'hide';
				$(this).html('afficher');
			} else {
				$('#debug-display-fields').show();
				debugdisplayfields	= 'show';
				$(this).html('masquer');
			}
			createCookie('debugdisplayfields', debugdisplayfields, 365);
			return false;
		});


		if (debugdisplayfields == null) {
			debugdisplayfields = 'show';
			createCookie('debugdisplayfields', debugdisplayfields, 365);
		}

		if (debugdisplayfields == 'show') {
			$('#debug-display-fields').show();
			$('#debug-display-btn a').html('masquer');
		} else {
			$('#debug-display-fields').hide();
			$('#debug-display-btn a').html('afficher');
		}
	}
});

/**
*
  @param cles, chaine de caractère, clés de traduction séparrées par des ","
* @access public
* @return void
**/
function traduire(cles){
	var loc_traductions = '';
	$.ajax({
		type: "GET",
		url: '/?page=traductions',
		data: 'cles=' + cles,
		dataType: 'json',
		async: false,
		success: function(response){
			loc_traductions = response;
		},
		failure: function(){

		}
	});
	return loc_traductions;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
