﻿function ShowStoreInfo(id) {
    window.open(siteRoot + 'Stores/StorePopup.aspx?storeid=' + id, 'test', 'width=960,height=700,toolbar=no,menubar=yes,location=yes,titlebar=no,scrollbars=yes,resizable=yes', null);
}

function TextBox_AddToIntValue(targetId, addToValue) {
    var input = document.getElementById(targetId);
    var textInt = parseInt(input.value);
    if (isNaN(textInt)) {
        textInt = 0;
    }
    input.value = textInt + addToValue;
}

function ToggleSelectChildCheckboxes(source, gridClientId) {
    if ('undefined' == source.checked) {
        source.checked = false;
    }
    source.checked = !source.checked;
    var gridTable = document.getElementById(gridClientId);
    var inputs = gridTable.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        var checkboxInputMaybe = inputs[i];
        if (checkboxInputMaybe.TypeName = "checkbox") {
            checkboxInputMaybe.checked = source.checked;
        }
    }
}

function ConfirmMultipleDelete(message, parentId) {
    var gridTable = document.getElementById(parentId);
    var inputs = gridTable.getElementsByTagName("input");
    var names = '\n\n';
    if (inputs.length == 0) {
        return false;
    }
    for (var i = 0; i < inputs.length; i++) {

        var checkboxInputMaybe = inputs[i];
        if (checkboxInputMaybe.TypeName = "checkbox") {
            if (checkboxInputMaybe.checked) {
                names += checkboxInputMaybe.parentNode.BasketName + "\n";
            }
        }
    }
    return confirm(message.replace("{0}", names));
}

var noImg = siteRoot + 'WebClientResources/' + bannerName + '/Images/Products/NotAvailable.gif';
var noImgFr = siteRoot + 'WebClientResources/' + bannerName + '/Images/Products/NotAvailableFr.gif';

function ShowProductNotAvailable(o, l) {
    o.onerror = "";
    if (l == "en") {
        o.src = noImg;
    }
    else {
        o.src = noImgFr;
    }
}

function autoClickBuyButton(event, id) {
    var btn = document.getElementById(id);
    if (event.which || event.keyCode) {
        if ((event.which == 13) || (event.keyCode == 13)) {
            btn.onclick.call();
            return false;
        }
        else {
            return true;
        }
    }
}

function displayPromo(container) {
    container.style.display = "block";
}

function showPromo(e, id, text) {
    var promoFrame = document.getElementById("promoFrame");
    if (promoFrame != null) {
        var pageWidth = 0, pageHeight = 0;

        if (window.innerHeight && window.scrollMaxY) {
            pageWidth = window.innerWidth;
            pageHeight = window.innerHeight;
        }
        else if (document.body.scrollHeight > document.body.offsetHeight) {
            pageWidth = document.body.scrollWidth;
            pageHeight = document.body.scrollHeight;
        }
        else {
            pageWidth = document.body.offsetWidth;
            pageHeight = document.body.offsetHeight;
        }

        var scrollOffsetTop = 0, scrollOffsetLeft = 0;

        scrollOffsetLeft = (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft);
        scrollOffsetTop = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);

        var mouseX = e.clientX,
			mouseY = e.clientY,
			boxW = promoFrame.offsetWidth,
			boxH = promoFrame.offsetHeight,
			posX = 0,
			posY = 0;

        if (mouseX + boxW > pageWidth)
            posX = mouseX - boxW;
        else
            posX = mouseX + 10;

        if (mouseY + boxH > pageHeight)
            posY = mouseY - boxH;
        else
            posY = mouseY + 10;

        promoFrame.style.top = posY + scrollOffsetTop + 'px';
        promoFrame.style.left = posX + scrollOffsetLeft + 'px';
        promoFrame.innerHTML = text;
        promoFrame.style.display = "block";
    }
}

function movePromo(e, id) {
    var promoFrame = document.getElementById("promoFrame");
    if (promoFrame != null) {
        var pageWidth = 0, pageHeight = 0;

        if (window.innerHeight && window.scrollMaxY) {
            pageWidth = window.innerWidth;
            pageHeight = window.innerHeight;
        }
        else if (document.body.scrollHeight > document.body.offsetHeight) {
            pageWidth = document.body.scrollWidth;
            pageHeight = document.body.scrollHeight;
        }
        else {
            pageWidth = document.body.offsetWidth;
            pageHeight = document.body.offsetHeight;
        }

        var scrollOffsetTop = 0, scrollOffsetLeft = 0;

        scrollOffsetLeft = (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft);
        scrollOffsetTop = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);

        var mouseX = e.clientX,
			mouseY = e.clientY,
			boxW = promoFrame.offsetWidth,
			boxH = promoFrame.offsetHeight,
			posX = 0,
			posY = 0;

        if (mouseX + boxW > pageWidth)
            posX = mouseX - boxW;
        else
            posX = mouseX + 10;

        if (mouseY + boxH > pageHeight)
            posY = mouseY - boxH;
        else
            posY = mouseY + 10;

        promoFrame.style.top = posY + scrollOffsetTop + 'px';
        promoFrame.style.left = posX + scrollOffsetLeft + 'px';
    }
}

function hidePromo(id) {
    var promoFrame = document.getElementById("promoFrame");
    if (promoFrame != null) {
        promoFrame.style.display = "none";
    }
}

//function AdvertiseAccessibilityMessage(message) {
//    if (accessibilityContainerCounter == 0)
//        return;

//    var containerName = 'accessibility' + --accessibilityContainerCounter;
//    var replacement = document.createElement('a');

//    replacement.setAttribute('id', 'accessibilityUpdate' + accessibilityContainerCounter);
//    replacement.setAttribute('href', ' javascript:void(0);');
//    replacement.appendChild(document.createTextNode(message));

//    var accessContainer = document.getElementById(containerName);
//    accessContainer.appendChild(replacement);    
//    replacement.focus();
//}

// Les 2 fonctions qui suivent permettent au screen reader de lire le contenu du message
// passer en parametre a lutilisateur aveugle. Il change le contenu de l'element
// a et donne le focus a cet element afin que le screen reader commence a lire.

// Cette fonction est utiliser pour changer le message et donner le focus alors que
// l'element a est placer dans le haut de la page completement.
function AdvertiseMasterAccessibilityMessage(message) {
    var accessibleLink = $get("AccessibleLinkMaster");
    accessibleLink.innerHTML = message;
    accessibleLink.focus();
}

// Cette fonction utilise le meme principe que la precedente, sauf qu'elle est uniquement
// utilise dans le cas du panier dans le iFrame. N.B. L'ID du iFrame est celui generer
// par .NET et entrer manuellement (constante) ici. Alors si l'ID change dans le controle
// il faut absolument le changer ici aussi (le ID est aussi utiliser dans le script pour le
// scroll automatique du panier).
function AdvertiseBasketAccessibilityMessage(refBuyBtnId, message) {    
    //var basketIframe = $get("ctl00_ctl00_MainContent_SideContent_ib_BasketFrame");
    //var accessibleLink = basketIframe.contentWindow.document.getElementById('AccessibleLinkBasket');
    //var accessibleLink = $get('AccessibleLinkBasket');
    //accessibleLink.innerHTML = message;
    //$("#AccessibleLinkBasket").html(message); //.focus();//.insertAfter("#" + refBuyBtnId).focus();
    //alert(refBuyBtnId);
    //$(".sr").remove();
    //$("#" + refBuyBtnId).after('<span class="sr" >' + message + '</span>');
    //setTimeout("wait()", 1500);
    //var t = $("#" + refBuyBtnId + " + .sr").get(0);

    removef(refBuyBtnId);
    addf(refBuyBtnId, message);
    moveit(refBuyBtnId);
    
    //$("#" + refBuyBtnId).insertAfter()
    //accessibleLink.focus();  style="position: absolute; left: -9999px;" df
}

function wait() {
}

//Move the focus to a particular object
function moveit(refId) {
    //alert(refId);
    //set o to the object we want to focus on
    //var o = document.getElementsByClassName(document.forms.theform.elements.theClass.value)[0];
    var o = document.getElementById("wcag" + refId);
    //alert(o);
    //Pass the object to move_focus
    move_focus(o);
    return false;
}


var move_focus_obj;
function move_focus(el, tabvalue) {
    //debugger;
    var focus_exceptions = { A: 1, AREA: 1, BUTTON: 1, INPUT: 1, OBJECT: 1, SELECT: 1, TEXTAREA: 1 };
    if (tabvalue ||
		(!focus_exceptions[el.nodeName] &&
		(el.getAttribute("tabIndex") == null || !el.getAttributeNode("tabIndex").specified))
	) {
        if (!tabvalue) tabvalue = -1;
        el.setAttribute("tabIndex", tabvalue);
    }
    if (document.all) {
        move_focus_obj = el;
        setTimeout("move_focus_obj.focus()", 0); //dom_object.focus(); /*alert(dom_object.id);*/
    }
    move_focus_obj = el;
    setTimeout("move_focus_obj.focus()", 0);
    
}
var o, y, e, s;
function addf(refBuyBtnId, message) {
    
    //Grab HTML to be inserted
    s = message;
    //Get a handle to the second column
    //o = ge("column2");
    //Grab the list of DIVs from that column
    y = document.getElementById(refBuyBtnId);
    //Create a new DIV
    //errlog("Creating new DIV");
    e = document.createElement("span");
    //Set some attributes for the DIV
    e.id = "wcag" + refBuyBtnId;
    //And just to make IE happy we do it their nonstandard way
    e.setAttribute("class", "msgwcag");
    e.setAttribute("className", "msgwcag");
    //Append the DIV to the list
    //errlog("Inserting new DIV");
    y.parentNode.insertBefore(e, y);
    //Inject new content in DIV
    //errlog("Updating innerHTML");
    e.innerHTML = s;
    return false;
}


function removef(refBuyBtnId) {

    var s = document.getElementById("wcag" + refBuyBtnId);
    if (s) {
        var o = document.getElementById(refBuyBtnId);
        o.parentNode.removeChild(s);
    }

}


