
//Variable globale utilise egalement par utils.js pour traitement specifiques QLook
var isQuickLookMode = false;

jQuery(document).ready(function(){
	initQuickLook();
	
});

initQuickLook = function (){
	isQuickLookMode = jQuery("#quicklookmode-enabled").html() == "1" ? true:false;
	gestionCoupdOeil();
	
	if(isQuickLookMode)
	{
		window.parent.handleQuickLookLoaded();
	}
};


/* Gestion Coup d'oeil */ 
gestionCoupdOeil = function() {
	if(jQuery(this).find('.liste-produit'))	{
		
		jQuery(".quicklooked-product").each(function (i) {
			initQL(this);
		  });
		
		jQuery('.quicklookclose_link').click(function(evt){
			evt.stopPropagation();
			quickLookClosePopup();
			showFbLike();
		});
	}
};

function initQL(element)
{
    if(jQuery('#ql_button_on_over').html() == 'true') {
        var lQuickLookUrlPattern = jQuery('#quick-look-url-pattern').html();
        var cible        = jQuery(element).attr("title");
        var lProduitId = jQuery(element).attr("id").replace(/[^0-9]/g, "");
        jQuery(element).hover(
              function () {
                jQuery(element).append(jQuery("<div class='coupdoeil'><a href='#' title='Aper&ccedil;u article'>Coup d'oeil</a></div>"));
                jQuery(element).find('.coupdoeil a').click(function() { return qlButtonEventClick(element); });
              }, 
              function () {
                jQuery(element).find("div.coupdoeil").remove();
              }
        );
    } else {
        if(jQuery(element).attr('quicklookApplied')) { // Si on a déjà appliqué le QL pour l'élément, on ne fait rien
            return;
        }
        var qlButton = jQuery('<div class="ql-button"></div>');
        qlButton.click(function() { return qlButtonEventClick(element); });
        jQuery(element).after(qlButton);
    }
    jQuery(element).attr('quicklookApplied', true);
}

var qlButtonEventClick = function (element) { 
    var cible       = jQuery(element).attr("title");
    var lProduitId  = jQuery(element).attr("id").replace(/[^0-9]/g, "");
    var lCategoryId = jQuery("#current_category").attr("value");
    
    handleQuickLookLoading();
    hideFbLike();
    jQuery('#quick-look-main-container').show().activeXOverlap();
    jQuery('#quick-look-loadingcontainer').show().activeXOverlap();
    
    /*var lUrlQLookProduct = lQuickLookUrlPattern.replace('%modelid%', lProduitId);
    var objArticleId = jQuery(element).find("input[name='article-id']");
    if(objArticleId.length > 0)
    {
        lUrlQLookProduct += '?article=' + objArticleId[0].value;
    }
    jQuery("#iframe_load_quick_look").attr('src',lUrlQLookProduct);*/
    var reg = new RegExp('^<div>(.*)</div>$');
    var respQuick = false;

    if(quickview[lProduitId])
    {
        quickview[lProduitId].content.scan(reg,function(match){
            if(match.size() == 2) respQuick = match[1];
        });
        if(respQuick == false)
            respQuick = quickview[lProduitId].content;
    }else
    {
        jQuery.ajax({
            url: BASE_URL + 'catalogdesign/productdesign/quicklookhtml/modelid/'+lProduitId+'/categoryid/'+lCategoryId,
            success: function(data){
                respQuick = data;
                
                if(respQuick != false){
                    quickview[lProduitId] = {content : respQuick};
                    jQuery("#quicklook-iframe-container .contenu").html(respQuick);
                    gestionCouleur();
                    gestionImagesQLook();
                    
                
                    jQuery("#iframe_load_quick_look").show();
                    handleQuickLookLoaded();
                    //Masque les messages qui ont pu etre affiches precedemment
                    jQuery("#quicklook-response-message-success").hide();
                    jQuery("#quicklook-response-message-error").hide();
                    //jQuery("#quick-look-product").load(lUrlQLookProduct, null, quickLookLoaded );
                    //quick-look-main-container
                    loadDefaultSelectedValues(false,true);
                    if(jQuery("#couleur-produit-"+lProduitId+" li.actived").length > 0){
                        var couleurActived = jQuery("#couleur-produit-"+lProduitId+" li.actived").attr("id").split("-");
                        var reg = new RegExp('^puce'+couleurActived[1]+'-'+lProduitId+'-(.*)$');
                        var matchId = null;
                        jQuery('#couleurs-'+lProduitId+' li').each(function(){
                            this.id.scan(reg,function(matchId){
                                changerCouleur(couleurActived[1],lProduitId,matchId[1]);
                                
                            });
                        });
                    }
                }
                
            }
        });
    }
    
    
    
    if(respQuick != false){
        jQuery("#quicklook-iframe-container .contenu").html(respQuick);

        gestionImagesQLook();
        gestionCouleur();
        jQuery("#iframe_load_quick_look").show();
        handleQuickLookLoaded();
        //Masque les messages qui ont pu etre affiches precedemment
        
        //jQuery("#quick-look-product").load(lUrlQLookProduct, null, quickLookLoaded );
        //quick-look-main-container
        loadDefaultSelectedValues(false,true);
        if(jQuery("#couleur-produit-"+lProduitId+" li.actived").length > 0){
            var couleurActived = jQuery("#couleur-produit-"+lProduitId+" li.actived").attr("id").split("-");
            var reg = new RegExp('^puce'+couleurActived[1]+'-'+lProduitId+'-(.*)$');
            var matchId = null;
            jQuery('#couleurs-'+lProduitId+' li').each(function(){
                this.id.scan(reg,function(matchId){
                    changerCouleur(couleurActived[1],lProduitId,matchId[1]);
                });
            });
        }
    }
    
    
return false;
}

/* Gestion des multiples images produit */ 
gestionImagesQLook = function() {
	jQuery("ul.imagesgalerieql li").click(function(e){

		var cible	  = jQuery(this).children('a').attr("href");
		var zoomImage = jQuery(this).children('a').children('input').attr("value");
		
		  var current = jQuery('#image2ql').attr("src");
		  if (cible == current) {
		    return false;
		  }
		  else {
			  jQuery('#image2ql').attr("src",cible);
		  }
		
		e.stopPropagation();

		return false;
	});
};

quickLookSetupWishlist = function() {
	jQuery("#addproduct-towishlist").click(function(e){
		e.stopPropagation();
		
		window.parent.handleQuickLookLoading();
		var lProductModelId = jQuery("#product-modele-id-field").attr("value");  
		var lUrlReload      = jQuery("#quicklook-addtowishlist-urlpattern").html(); 
		var lUrlReload      = lUrlReload.replace("%PRODUCTID%", lProductModelId);
		
		jQuery.get( lUrlReload, null,function(data, respstatus){ 
		window.parent.handleQuickLookLoaded();
		window.parent.handleQuickLookActionResponse( data, respstatus );

		});
		
		return false;
	});
};

quickLookAddProductToCart = function(modelId){
	
	var productId	   = jQuery("#product_addtocart_form_"+modelId+" input[name='product']").attr('value');
	var formSerialized = jQuery('#product_addtocart_form_'+modelId).serialize();	
	var lUrlReload     = jQuery("#product_addtocart_url").attr('value'); 
	
	lUrlReload = lUrlReload.sub(/product\/\d+\//, 'product/' + productId + '/');
	
	var productAddToCartForm = new VarienForm('product_addtocart_form_'+modelId);
	
	if(productAddToCartForm.validator.validate() )
	{
		window.parent.handleQuickLookLoading();
		
		jQuery.post( lUrlReload, formSerialized, function(data,respstatus ){
			window.parent.handleQuickLookLoaded();
			window.parent.handleQuickLookActionResponse( data, respstatus );
		});
	}

	return false;
};

/**
 * 
 * Une reponse a le format :
 * 
 * succcess: success message
 * error: error message
 */
handleQuickLookActionResponse = function(data, respstatus ){

	var responseSuccess = data.substring(0,7);
	jQuery('#quick-look-loadingcontainer').hide();
	jQuery("#quicklook-iframe-container").hide();
	
	if( responseSuccess == 'success' && data.length > 8)
	{
		jQuery("#quicklook-response-message-success .message").html( data.substring(8, data.length ) );
		jQuery("#quicklook-response-message-success").show().activeXOverlap();
		setTimeout("quickLookClosePopup();", 3000 );
		if(typeof quicklook_reloadpage != 'undefined' && quicklook_reloadpage == true)
		{
			setTimeout("parent.location.reload();", 3000 );
		}
		else
		{
			BlocksAjax.addBlock('smallcart','quick-panier','','smallcartOnComplete');
			BlocksAjax.launchRequest();
		}
	}
	else
	{
		if( !data.length > 6 )
		{
		jQuery("#quicklook-response-message-error .message").html( "Une erreur inconnue est survenue");
		}
		else
		{
		jQuery("#quicklook-response-message-error .message").html(  data.substring(6, data.length ) );
		}
		jQuery("#quicklook-response-message-error").show();
	}
};

//Ferme le quicklook
quickLookClosePopup = function(){
	jQuery('#quick-look-main-container').hide();
};

handleQuickLookLoaded  = function(){
	jQuery("#quicklook-iframe-container").show().activeXOverlap();
	jQuery('#quick-look-loadingcontainer').hide();
	initPopinGuideTaille();
	if(jQuery.browser.msie && jQuery.browser.version < 7){
		enableAlphaImages();
	}
};

handleQuickLookLoading = function(){
	jQuery("#quicklook-iframe-container").hide();
	jQuery('#quick-look-loadingcontainer').show();
	jQuery("#quicklook-response-message-success").hide();
	jQuery("#quicklook-response-message-error").hide();
};

var quickview = new Array();

/* fin gestion Coup d'oeil  */ 
