﻿
/// <summary>
/// Fonction Js changeant les tailles affichés
/// associés à la couleur sur laquelle l'utilisateur
/// à cliqué
/// </summary>
/// <param name="VariantsID">les variants associé à la couleur cliqué</param>
/// <returns></returns>
function DisplayByVariantId(VariantsID, Type) {
    reg1 = new RegExp("[||]+", "g");
    var VariantIDsArray = VariantsID.split(reg1);
    $(".Picto" + Type + "Container li").css("display", "none");
    // Type = Color_ / Size_ / etc ..
    for (var i = 0; i < VariantIDsArray.length; i++) {
        var TypeById = $get(Type + "_" + VariantIDsArray[i]);
        if (TypeById != undefined) {
            _lis = TypeById.getElementsByTagName('LI');
            for (var j = 0; j < _lis.length; j++) {
                _lis[j].style.display = 'block';
            }
            TypeById.style.display = 'block';
        }
    }
}

/// <summary>
/// Fonction Js changeant le prefixe d'une image associé
/// au produit lors du clic utilisateur sur 
/// un variant
/// </summary>
/// <param name="ImageId">l'id de l'image que l'on désire modifiée</param>
/// <param name="PrefixeImage">le variant associé à la couleur</param>
function Change_imgPrefix(ImageId, ImgPrefixe) {
    //On récupère d'abord l'id des différentes images
    var imageproduct = $get(ImageId); 
    //On récupère ensuite l'id de l'image dont on va changé la source ( cela peut etre la petite image liste en dessous
    var imageproductUrl = imageproduct.src;

    var lastImgPrefix = /products\/.*?-/; //Image Prefix //Source / Path /Products/ Imgprefix - refCol - Number.jpg
    imageproductUrl = imageproductUrl.replace(lastImgPrefix, "products/"+ImgPrefixe+"-");
    imageproduct.src = imageproductUrl;
}

/// <summary>
/// Fonction Js changeant une image associé
/// au produit lors d'un clic utilisateur
///sur undefined variant
/// </summary>
/// <param name="ImageId">l'id de l'image que l'on désire modifiée</param>
/// <param name="PrefixeImage">le variant associé à la couleur</param>
function Change_imgUrl(ImageId, ImgUrl) {
    var imageproduct = $get(ImageId);
    imageproduct.parentNode.style.display = 'block';
    imageproduct.src = ImgUrl;
}

function Change_imgNumber(ImageId, ImgNumber) {
    
    //On récupère d'abord l'id des différentes images
    var imageproduct = $get(ImageId);
    //On récupère ensuite l'id de l'image dont on va changé la source ( cela peut etre la petite image liste en dessous
    var imageproductUrl = imageproduct.src;
    var lastImgNumber = /-[0-9]./; //Numero Image Produit Source/Path/Imgprefix-refCol-Number.jpg
    imageproductUrl = imageproductUrl.replace(lastImgNumber, "-" + ImgNumber + ".");
    imageproduct.src = imageproductUrl;
}

//Place la taille selectionnée dans le label des tailles '_lbSelectedSize'
function SetSizeSelectedValue(label, text)
{
    //On récupère notre label '_lbSelectedSize' auquel on attribue la valeur de 
    //taille selectionnée par l'utilisateur
    var SizeLabel  = $get(label);
    SizeLabel.innerHTML = text;
}

//Place le texte selectionné dans un label donné
function SetTextForLabel(Text, CtrlLabelId) {
    var CtrlLabel = $get(CtrlLabelId);
    if ( CtrlLabel != null )
    {
    if (Text == undefined)// <= For I.E.
        Text = '';
    CtrlLabel.innerHTML = Text;
}
}

function Set_Current(object, divId) {
    var removeall = $("." + divId + " a.current").removeClass("current");
    object.className = "current";
}

function Set_Avaibility(divId1, divId2, avQuantity) {
    
    if (avQuantity > 0)
    {
        show(divId1);
        hide(divId2);
    }
    else
    {
        show(divId2);
        hide(divId1);
    }
}

function SetVariantForProduct( HiddenField, VariantId ) {
    //On récupère le champs caché dans lequel on place le variant du produit séléctionné
    //dans le cadre d'un probable achat
    var hiddenField = $get(HiddenField);
    hiddenField.value = VariantId;
    
}

function slide(Element, SpecificContainer) {
    $(SpecificContainer).hide();
    $(SpecificContainer + "." + Element).show();
}

function LinkToProduct(HrefLink, VariantID) {
var lastVariantID = /variantID=.*/; //Variant ID for Link to Produt
var LinkProduct = $get(HrefLink);
LinkProduct.href = LinkProduct.href.replace(lastVariantID, "variantID=" + VariantID);
}

function IsSizeSelected(SizeLabelID, FlyObout) {
    
    var sizeLabel = $get(SizeLabelID);
    if (sizeLabel.Text != undefined) {
        show(FlyObout);
    }
    else {
        hide(FlyObout);
    }
}

//Affiche la Liste des Tailles selectionnés
function show(id) {
    
	if (document.getElementById) {
		if(document.getElementById(id).style.display=="block") {
			//hide(id);
		} else {
			document.getElementById(id).style.display="block";
		}
	} else if (document.all) {
		if(document.all[id].style.display=="block") {
			//hide(id);
		} else {
			document.all[id].style.display="block";
		}
	} else if (document.layers) {
		if(document.layers[id].display=="block") {
			//hide(id);
		} else {
			document.layers[id].display="block";
		}
	}
}
	
function hide(id) {
	if (document.getElementById) {
		document.getElementById(id).style.display="none";
	} else if (document.all) {
		document.all[id].style.display="none";
	} else if (document.layers) {
		document.layers[id].display="none";
	}
}

function CheckSelections() {
    if ($("div.productSizeContainer a.current").size() != 0) {
        if ($("div.productColorContainer a.current").size() != 0) {
            return true;
        }
        else {
            $("#addBasketMessages div").hide();
            $("#colorUnselected").show();
        }
    }
    else {
        $("#addBasketMessages div").hide();
        $("#sizeUnselected").show();
    }
    return false;
}

function ChangeSeaDragonNumber(hfId, newNumber, IsBuyExpress) {
    
    var HiddenField = $get(hfId);
    var HiddenFieldValue = HiddenField.value;
    var lastSeaDragonNumber = /-[0-9]/; //Sea Dragon Number
    HiddenFieldValue = HiddenFieldValue.replace(lastSeaDragonNumber, newNumber);
    HiddenField.value = HiddenFieldValue;
    if (IsBuyExpress) {
        Sea_Dragon(HiddenField.value, 'SeadragonBuyExpress');
    }
    else {
        Sea_Dragon(HiddenField.value, 'Seadragon');
    }
}

function ChangeSeaDragonPrefix(hfId, newPrefixe, IsBuyExpress) {
    var HiddenField = $get(hfId);
    var HiddenFieldValue = HiddenField.value;
    var lastSeaDragonPrefix = /seaDragon\/.*?-/; //Sea Dragon Prefix
    HiddenFieldValue = HiddenFieldValue.replace(lastSeaDragonPrefix, "seaDragon/" + newPrefixe + "-");
    HiddenField.value = HiddenFieldValue;
    if (IsBuyExpress) {
        Sea_Dragon(HiddenField.value, 'SeadragonBuyExpress');
    }
    else {
        Sea_Dragon(HiddenField.value, 'Seadragon');
    }
}

function Sea_Dragon(path, divID) {

    var y = $get(divID);
    while (child = y.firstChild)
        y.removeChild(child);
    viewer = new Seadragon.Viewer(divID);
    var navControl = viewer.getNavControl();
    //remove full screen button
    navControl.removeChild(navControl.lastChild);
    Seadragon.Config.minZoomDimension = 300;
    Seadragon.Config.maxZoomPixelRatio = 3;
    viewer.openDzi(path);
}