﻿//function documentWrite(someData) {
//    document.writeln(someData);
//}

//// Kollar om en viss plugin existerar
//// nameOfPlugin (string): namnet på pluginen, t.ex: "Flip4Mac"
//function pluginExists(nameOfPlugin) {
//    for (var i = 0; i < navigator.plugins.length; i++) {
//        if (navigator.plugins[i].name.indexOf(nameOfPlugin) != -1) {
//            return true;
//        }
//    }
//    return false;
//}

//// Skapar ett slideshow-objekt (kräver jQuery)
//// bigImageId: id-värdet för den stora bilden som visas (img-element)
//// puffingId: id-värdet för ingress-elementet (div-element, null om det inte används)
//// articleArray: referens till den array som innehåller artikelobjekten
//// playButtonSrc: sökväg till bilden för play-knappen
//// pauseButtonSrc: sökväg till bilden för paus-knappen
//// counterId: id till element som tar emot det aktuella bildnumret (index + 1)
//function Slideshow(bigImageId, puffingId, articleArray, playButtonSrc, pauseButtonSrc, counterId) {
//    this.currentSlideshowArticleIndex = 0;
//    this.bigImageId = bigImageId;
//    this.puffingId = puffingId;
//    this.articleArray = articleArray;
//    this.timer = null;
//    this.thumbRangeStart = null;
//    this.thumbRangeLength = null;
//    this.counterId = counterId;

//    if (playButtonSrc !== null) {
//        this.playButton = new Image();
//        this.playButton.src = playButtonSrc;
//        this.playButton.alt = "Play-knapp";
//        this.playButton.title = "Starta bildspel";
//    }

//    if (pauseButtonSrc !== null) {
//        this.pauseButton = new Image();
//        this.pauseButton.src = pauseButtonSrc;
//        this.pauseButton.alt = "Pause-knapp";
//        this.pauseButton.title = "Stoppa bildspel";
//    }

//    var inst = this;

//    // Visar en viss artikel (om dir inte är en int) ELLER går till nästa om dir > 0 eller föregående om dir <= 0
//    this.show = function (dir) {
//        var previousArticle = inst.articleArray[inst.currentSlideshowArticleIndex];
//        var slideshowArticle = null;
//        if (previousArticle !== null) {
//            $("#" + previousArticle.id + "_thumb").removeClass("Current");
//        }

//        if (isNaN(dir)) {
//            // Anta att dir motsvarar idt för artikeln som ska visas,
//            for (var i = 0; i < inst.articleArray.length; i++) {
//                if (inst.articleArray[i].id == dir) {
//                    slideshowArticle = inst.articleArray[i];
//                    inst.currentSlideshowArticleIndex = i;
//                }
//            }
//        } else {
//            if (dir > 0) {
//                inst.currentSlideshowArticleIndex = inst.currentSlideshowArticleIndex + 1 < inst.articleArray.length ? inst.currentSlideshowArticleIndex + 1 : 0;
//            } else {
//                inst.currentSlideshowArticleIndex = inst.currentSlideshowArticleIndex - 1 >= 0 ? inst.currentSlideshowArticleIndex - 1 : inst.articleArray.length - 1;
//            }
//            slideshowArticle = inst.articleArray[inst.currentSlideshowArticleIndex];
//        }

//        if (slideshowArticle !== null) {
//            if (inst.puffingId) {
//                $("#" + String(inst.puffingId)).html(slideshowArticle.content);
//            }
//            if (inst.bigImageId) {
//                if (slideshowArticle.imagePreloadSrc) {
//                    slideshowArticle.image.src = slideshowArticle.imagePreloadSrc;
//                    slideshowArticle.imagePreloadSrc = null;
//                }

//                $("#" + String(inst.bigImageId)).attr({
//                    alt: slideshowArticle.image.alt,
//                    title: slideshowArticle.image.title,
//                    src: slideshowArticle.image.src
//                });
//            }
//            $("#" + slideshowArticle.id + "_thumb").addClass("Current");
//        }

//        if (inst.counterId !== null) {
//            $("#" + inst.counterId).html(inst.currentSlideshowArticleIndex + 1);
//        }
//    };

//    // Byter innehållet i puff-elementet mot den aktiva artikelns puff
//    this.swapPuffContent = function (elementId, positionId) {
//        var articleObject = inst.getArticleObject(elementId);
//        var currentObject = inst.currentArticle();
//        if (articleObject !== null && currentObject !== null) {
//            inst.setPuffContent(positionId, currentObject.id);
//            inst.show(articleObject.id);
//        }
//    };

//    this.setPuffContent = function (targetId, elementId) {
//        var articleObject = inst.getArticleObject(elementId);
//        if (articleObject !== null) {
//            $("#" + targetId).html(articleObject.puffHtml);
//        }
//    };

//    // Hämtar ett object utifrån ett visst id
//    this.getArticleObject = function (elementId) {
//        for (i = 0; i < inst.articleArray.length; i++) {
//            if (inst.articleArray[i].id == elementId) {
//                return inst.articleArray[i];
//            }
//        }
//        return null;
//    };

//    // Startar eller stoppar det automatiska bildspelet
//    // delay: hur länge varje artikel ska visas (minst 1000 ms)
//    // valfri parameter - button: referens till play-knappen så att ikonen kan bytas för att reflektera statusen på bildspelet
//    this.toggleAuto = function (delay) {
//        if (inst.timer === null) {
//            if (arguments.length > 1) {
//                inst.start(delay, arguments[1]);
//            } else {
//                inst.start(delay);
//            }
//        } else {
//            if (arguments.length > 1) {
//                inst.stop(arguments[1]);
//            } else {
//                inst.stop();
//            }
//        }
//    };

//    // Startar bildspelet
//    this.start = function (delay) {
//        inst.delay = Math.max(1000, delay);
//        inst.timer = setInterval(inst.auto, inst.delay);
//        if (arguments.length > 1) {
//            var buttonElement = arguments[1];
//            if (buttonElement !== null) {
//                buttonElement.src = this.pauseButton.src;
//                buttonElement.alt = this.pauseButton.alt;
//                buttonElement.title = this.pauseButton.title;
//            }
//        }
//    };

//    // Stoppar bildspelet
//    this.stop = function () {
//        clearInterval(inst.timer);
//        inst.timer = null;
//        if (arguments.length > 0) {
//            var buttonElement = arguments[0];
//            if (buttonElement !== null) {
//                buttonElement.src = this.playButton.src;
//                buttonElement.alt = this.playButton.alt;
//                buttonElement.title = this.playButton.title;
//            }
//        }
//    };

//    // Anger hur många tumnaglar som ska visas
//    // index: startindex (0 är första tumnageln)
//    // length: anger hur många tumnaglar som ska visas
//    this.setThumbRange = function (index, length) {
//        index = parseInt(index, 10);
//        length = parseInt(length, 10);
//        inst.thumbRangeStart = isNaN(index) ? null : Math.max(0, index);
//        inst.thumbRangeLength = isNaN(length) ? null : Math.max(0, length);
//    };

//    this.setThumbnailVisibility = function (start, length) {
//        if (start !== null && length !== null) {
//            start = parseInt(start, 10);
//            length = parseInt(length, 10);
//            if (isNaN(start) || isNaN(length)) {
//                return null;
//            }

//            var array = inst.articleArray;
//            for (var i = 0; i < inst.articleArray.length; i++) {
//                var thumbnailId = String(inst.articleArray[i].id) + "_thumb";
//                var element = document.getElementById(thumbnailId);
//                if (element !== null) {
//                    if (i >= start && i < (start + length)) {
//                        element.style.position = "static";
//                        element.style.visibility = "visible";
//                    } else {
//                        element.style.position = "absolute";
//                        element.style.visibility = "hidden";
//                    }
//                }
//            }
//        }
//    };

//    // Callback-metod för det automatiska bildspelet
//    this.auto = function () {
//        inst.show(1);
//    };

//    // Uppdaterar bildspels-blocket med den aktuella bilden
//    this.update = function () {
//        var slideshowObj = inst.articleArray[inst.currentSlideshowArticleIndex];
//        if (slideshowObj !== null) {
//            inst.show(slideshowObj.id);
//        }

//        inst.setThumbnailVisibility(inst.thumbRangeStart, inst.thumbRangeLength, true);
//    };

//    // Returnerar indexet för den aktuella bilden (0-baserat)
//    this.currentImage = function () {
//        return inst.currentSlideshowArticleIndex;
//    };

//    this.currentArticle = function () {
//        return inst.articleArray[inst.currentSlideshowArticleIndex];
//    };
//}

//function HeaderMenu(imagePath, namePrefix, hoverSuffix, activeSuffix, imageExtension, startIndex, numImages) {
//    this.imageArray = [];
//    this.isIE = $.browser.msie;
//    var inst = this;

//    for (img = startIndex; img < (startIndex + numImages); img++) {
//        var menuObject = new Object();
//        menuObject.normal = new Image();
//        menuObject.normal.src = imagePath + namePrefix + String(img) + imageExtension;
//        menuObject.hover = new Image();
//        menuObject.hover.src = imagePath + namePrefix + String(img) + hoverSuffix + imageExtension;
//        menuObject.active = new Image();
//        menuObject.active.src = imagePath + namePrefix + String(img) + activeSuffix + imageExtension;
//        inst.imageArray[String(namePrefix) + String(img)] = menuObject;
//    }

//    // Byter en bild i srcImage mot en annan
//    this.swapImage = function (swapTo, srcImage) {
//        var menuObject = inst.imageArray[srcImage.id];
//        if (menuObject !== null) {
//            if (swapTo == "hover") {
//                srcImage.src = menuObject.hover.src;
//            } else if (swapTo == "active") {
//                srcImage.src = menuObject.active.src;
//            } else { // swapTo == "normal"
//                srcImage.src = menuObject.normal.src;
//            }
//        }
//    };

//    this.swapActiveImage = function (eventObject) {
//        inst.swapImage("active", inst.isIE ? eventObject.srcElement : eventObject.currentTarget);
//    }
//    this.swapNormalImage = function (eventObject) {
//        inst.swapImage("normal", inst.isIE ? eventObject.srcElement : eventObject.currentTarget);
//    }
//    this.swapHoverImage = function (eventObject) {
//        inst.swapImage("hover", inst.isIE ? eventObject.srcElement : eventObject.currentTarget);
//    }
//}

//function trim(input) {
//    if (input) {
//        return input.replace(/^\s*/, "").replace(/\s*$/, "");
//    } else {
//        return "";
//    }
//}

//// Lägg till en trim funktion till String
//String.prototype.trim = function () {
//    return trim(this.valueOf());
//}


//// Jämför en sträng med en annan och returner om de är lika eller ej
//// valfri andra parameter: ignoreCase (default false)
//String.prototype.equals = function (other) {
//    if (this.valueOf().length != other.toString().length) {
//        return false;
//    }
//    var a = this.toString();
//    var b = other.toString();
//    if (arguments.length > 1 && arguments[1]) {
//        // Case insensitive
//        a = a.toLowerCase();
//        b = b.toLowerCase();
//    }

//    for (var i = 0; i < a.length; i++) {
//        if (a.charAt(i) != b.charAt(i)) {
//            return false;
//        }
//    }

//    return true;
//}


//function isValidEmail(input) {
//    return input !== null && input.length > 0 && input.search(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/gi) >= 0;
//}

//String.prototype.isEmail = function () {
//    return isValidEmail(this.valueOf());
//}

//// Valideringsfunktion för sökformuläret
//function SearchFormValidate() {
//    var noChoicesMade = "Du har inte gjort några val";
//    var monthNeedsYear = "Om du väljer månad måste du också välja år";

//    var yearElement = $("#Search_Year");
//    var monthElement = $("#Search_Month");
//    var textElement = $("#Search_Text");
//    if (yearElement !== null && monthElement !== null && textElement !== null) {
//        var year = parseInt(yearElement.val(), 10);
//        var month = parseInt(monthElement.val(), 10);

//        // Månad kräver år
//        if (month > 0 && year == 0) {
//            alert(monthNeedsYear);
//            return false;
//        }

//        // Fritext måste vara ifyll om inte månad eller år är ifyllda
//        if (month == 0 && year == 0 && textElement.val().trim().length == 0) {
//            alert(noChoicesMade);
//            return false;
//        }

//        return true;

//    } else {
//        return false;
//    }
//}

//// Ladda huvudmenyn
//var menu = null;
//function loadMenu() {
//    try {
//        if (menu === null) {
//            menu = new HeaderMenu("images/header/", "meny_", "_hover", "_aktiv", ".gif", 2, 9);

//            // Lägg till attributen        
//            for (var i = 0; i < 9; i++) {
//                var imgElement = document.getElementById("meny_" + String(i + 2));
//                if (imgElement !== null) {
//                    if (imgElement.src.indexOf("_aktiv") != -1) {
//                        if (menu.isIE) {
//                            imgElement.attachEvent("onmouseout", menu.swapActiveImage);
//                        } else {
//                            imgElement.addEventListener("mouseout", menu.swapActiveImage, false);
//                        }
//                    } else {
//                        if (menu.isIE) {
//                            imgElement.attachEvent("onmouseout", menu.swapNormalImage);
//                        } else {
//                            imgElement.addEventListener("mouseout", menu.swapNormalImage, false);
//                        }
//                    }
//                    if (menu.isIE) {
//                        imgElement.attachEvent("onmouseover", menu.swapHoverImage);
//                    } else {
//                        imgElement.addEventListener("mouseover", menu.swapHoverImage, false);
//                    }
//                }
//            }
//        }
//    } catch (Error) { }

//    return true;
//}

//function pollFormValidate() {
//    if ($("input[@type=radio][@name=QOTD_Answer][@checked]").val() !== null) {
//        return true;
//    } else {
//        alert("Du har inte valt något svar!");
//        return false;
//    }
//}

//function alreadyVoted() {
//    alert("Du har redan röstat på den här frågan!");
//    return false;
//}

//function openWindow(url, width, height) {
//    return window.open(url, "_blank", "directories=0,height=" + height + ",width=" + width + ",location=0,scrollbars=1,status=0,toolbar=0", true);
//}

function printObject(objectId, queryKey) {
    objectId = parseInt(objectId, 10);
    if (!isNaN(objectId) && objectId > 0) {
        window.open("Print.aspx?" + queryKey + "=" + objectId, "_blank", "directories=0,scrollbars=1,status=0,toolbar=0,width=510,height=500");
    }
}
function printObject2(objectId1, queryKey1, objectId2, queryKey2) {
    objectId1 = parseInt(objectId1, 10);
    objectId2 = parseInt(objectId2, 10);
    if (!isNaN(objectId1) && objectId1 > 0 && !isNaN(objectId2) && objectId2 > 0 ) {
        window.open("Print.aspx?" + queryKey1 + "=" + objectId1 + "&" + queryKey2 + "=" + objectId2, "_blank", "directories=0,scrollbars=1,status=0,toolbar=0,width=510,height=500");
    } else if (!isNaN(objectId1) && objectId1 > 0) {
        window.open("Print.aspx?" + queryKey1 + "=" + objectId1, "_blank", "directories=0,scrollbars=1,status=0,toolbar=0,width=510,height=500");
    }
}


//var cbCallerElement = null;
//var cbTargetElementId = null;
//var cbArticleId = 0;
//function cbProcessData(input) {

//    var parent = cbCallerElement.parentNode;
//    if (parent !== null) {
//        parent.removeChild(cbCallerElement);
//    }

//    var element = $("#" + cbTargetElementId);
//    element.html(element.html() + input);

//    cbCallerElement = null;
//    cbTargetElementId = null;
//    cbArticleId = 0;
//}

//function getAllChildren(callerElement, targetElementId, articleId, offset) {
//    cbCallerElement = callerElement;
//    cbTargetElementId = targetElementId;
//    cbArticleId = articleId;
//    IFK.RelatedArticles.GetAllChildren(articleId, offset, cbProcessData);
//}

//function getAllPuffArticles(callerElement, targetElementId, folderId, offset) {
//    cbCallerElement = callerElement;
//    cbTargetElementId = targetElementId;
//    cbArticleId = folderId;
//    IFK.RelatedArticles.GetAllPuffArticles(folderId, offset, cbProcessData);
//}

//function flashObject(moviePath, width, height) {
//    return '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="' + width + '" height="' + height + '">' +
//          '<param name="movie" value="' + moviePath + '" />' +
//          '<param name="quality" value="high" />' +
//          '<param name="menu" value="false" />' +
//          '<param name="loop" value="true" />' +
//          '<param name="wmode" value="opaque" />' +
//          '<embed src="' + moviePath + '" width="' + width + '" height="' + height + '" loop="true" wmode="opaque" quality="high" pluginspage="http://www.adobe.com/go/getflashplayer" type="application/x-shockwave-flash" menu="false"></embed>' +
//        '</object>';
//}

//function audioObject(fileUrl, mimeType) {
//    return '<embed src="' + fileUrl + '" width="400" height="20" autoplay="true" loop="false" type="' + mimeType + '"></embed>';
//}


//function documentWriteln(output) {
//    document.writeln(output);
//}

//function reloadPage() {
//    document.location.href = document.location.href;
//}

//// För spamskydd
//function sendMessage(username, hostname) {
//    document.location.href = "mailto:" + username + "@" + hostname;
//}

//// För spamskydd
//function getMail(username, hostname) {
//    return username + "@" + hostname;
//}

//function getProductVersionColors(productId, userId, targetElementId) {
//    Sharpman.Services.GetProductVersionColors(
//    // Parametrar
//        productId, userId,

//    // OnSuccess
//        function (result) {
//            $("#" + targetElementId).html(result.html);
//            //alert("price: " + result.price + ", qty: " + result.qty);
//        },

//        onError
//    );
//}

//function getProductVersionSizes(productId, colorName, userId, targetElementId) {
//    Sharpman.Services.GetProductVersionSizes(productId, colorName, userId,
//        function (result) {
//            $("#" + targetElementId).html(result.html);
//        },
//        onError
//    );
//}

//function getProductVersionQuantities(productId, versionID, userId, targetElementId) {
//    Sharpman.Services.GetProductVersionQuantity(productId, versionID, userId,
//        function (result) {
//            $("#" + targetElementId).html(result.html);
//        },
//        onError
//    );
//}

// productId, versionID, quant, userId, targetElementId1, targetElementId2
function getProductVersionPrice(params) {
    Sharpman.Services.GetProductVersionPrice(params.productId, params.versionID, params.quant, params.userId,
        function (result) {
            $("#" + params.targetElementId1).html(result.html);
            $("#" + params.targetElementId2).html(result.html2);
            $("#" + params.targetElementId3).html(result.html3);
        },
        onError
    );
}

// productId, versionID, userId, targetElementId1, targetElementId2, targetElementId3
function getProductVersionQuantitiesPrice(params) {
    Sharpman.Services.GetProductVersionQuantity(params.productId, params.versionID, params.userId, params.maxQuant,
        function (result1) {
            $("#" + params.targetElementId1).html(result1.html);
            if (typeof (params.submitButtonId) != "undefined")
                if (parseInt(result1.qty, 10) == 0){
                    $("#" + params.submitButtonId).attr("disabled", "disabled");
                } else {
                    $("#" + params.submitButtonId).removeAttr("disabled");
                }
            // Hämta Pris
            Sharpman.Services.GetProductVersionPrice(params.productId, params.versionID, $("#" + params.targetElementId1).val(), params.userId,
                function (result2) {
                    $("#" + params.targetElementId2).html(result2.html);
                    $("#" + params.targetElementId3).html(result2.html2);
                    $("#" + params.targetElementId4).html(result2.html3);
                },
                onError
            );
        },
        onError
    );
}

// productId, colorName, userId, targetElementId1, targetElementId2, targetElementId3, targetElementId4
function getProductVersionSizesQuantitiesPrice(params) {
    Sharpman.Services.GetProductVersionSizes(params.productId, params.colorName, params.userId,

    // OnSuccess
        function (result) {
            $("#" + params.targetElementId1).html(result.html);
            // Hämta Antal
            Sharpman.Services.GetProductVersionQuantity(params.productId, $("#" + params.targetElementId1).val(), params.userId, params.maxQuant,
                function (result1) {
                    $("#" + params.targetElementId2).html(result1.html);
                    if (typeof (params.submitButtonId) != "undefined")
                        if (parseInt(result1.qty, 10) == 0) {
                            $("#" + params.submitButtonId).attr("disabled", "disabled");
                        } else {
                            $("#" + params.submitButtonId).removeAttr("disabled");
                        }
                    // Hämta Pris
                    Sharpman.Services.GetProductVersionPrice(params.productId, $("#" + params.targetElementId1).val(), $("#" + params.targetElementId2).val(), params.userId,
                        function (result2) {
                            $("#" + params.targetElementId3).html(result2.html);
                            $("#" + params.targetElementId4).html(result2.html2);
                            $("#" + params.targetElementId5).html(result2.html3);
                        },
                        onError
                    );
                },
                onError
            );
        },
        onError
    );
}

// productId, userId, targetElementId1, targetElementId2, targetElementId3, targetElementId4, 
// targetElementId5, selectedColor, selectedSize, selectedQuantity
function getProductColorsSizesQuantitiesPrice(params) {
    Sharpman.Services.GetProductVersionColors(params.productId, params.userId,

    // OnSuccess
        function (result) {
            $("#" + params.targetElementId1).html(result.html);
            // Sätt valt värde här
            if (typeof (params.selectedColor) != "undefined")
                $("#" + params.targetElementId1).val(params.selectedColor);

            // Hämta storlekar
            Sharpman.Services.GetProductVersionSizes(params.productId, $("#" + params.targetElementId1).val(), params.userId,
                function (result1) {
                    $("#" + params.targetElementId2).html(result1.html);
                    // Sätt valt värde här
                    if (typeof (params.selectedSize) != "undefined")
                        $("#" + params.targetElementId2).val(params.selectedSize);

                    // Hämta Antal
                    Sharpman.Services.GetProductVersionQuantity(params.productId, $("#" + params.targetElementId2).val(), params.userId, params.maxQuant,
                        function (result2) {
                            $("#" + params.targetElementId3).html(result2.html);
                            if (typeof (params.submitButtonId) != "undefined")
                                if (parseInt(result2.qty, 10) <= 0) {                                
                                    $("#" + params.submitButtonId).attr("disabled", "disabled");
                                } else {
                                    $("#" + params.submitButtonId).removeAttr("disabled");
                                }

                            // Sätt valt värde här
                            if (typeof (params.selectedQuantity) != "undefined")
                                $("#" + params.targetElementId3).val(params.selectedQuantity);

                            // Hämta Pris
                            Sharpman.Services.GetProductVersionPrice(params.productId, $("#" + params.targetElementId2).val(), $("#" + params.targetElementId3).val(), params.userId,
                            function (result3) {
                                $("#" + params.targetElementId4).html(result3.html);
                                $("#" + params.targetElementId5).html(result3.html2);
                                $("#" + params.targetElementId6).html(result3.html3);
                            },
                                onError
                            );
                        },
                        onError
                    );
                },
                onError
            );
        },
        onError
    );
}

function onError(error) {
    alert(error.get_message());
}

function toggleHidden(elementId) {
    $("#" + elementId).toggleClass("Hidden");
}

// Använd den här vid onkeykpress istället för WebForm_FireDefaultButton eftersom denna fungerar på alla objekt med onclick
function Utils_FireDefaultButton(event, target) {
    if (event.keyCode == 13) {
        var src = event.srcElement || event.target;
        if (!src || (src.tagName.toLowerCase() != "textarea")) {
            var defaultButton;
            if (typeof (document.all) == "undefined") {
                defaultButton = document.getElementById(target);
            } else {
                defaultButton = document.all[target];
            }

            if (defaultButton && typeof defaultButton.click != "undefined") {
                defaultButton.click();
                event.cancelBubble = true;
                if (event.stopPropagation) {
                    event.stopPropagation();
                }
                return false;
            } else if (defaultButton && typeof (defaultButton.onclick) != "undefined") {
                defaultButton.onclick();
                event.cancelBubble = true;
                if (event.stopPropagation) {
                    event.stopPropagation();
                }
                return false;
            }
        }
    }
    return true;
}
