﻿if (top.location != this.location) top.location = this.location;

function MM_findObj(n, d) { //v4.01
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
    var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2]; }
}
function MM_swapImgRestore() { //v3.0
    var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function MM_preloadImages() { //v3.0
    var d = document; if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; }
    }
}

var win = null;
function _NewWindow(mypage, myname, w, h, scroll) {

    LeftPosition = (screen.width) ? (screen.width - w) / 2 : 0;
    TopPosition = (screen.height) ? (screen.height - h) / 2 : 0;
    settings =
'height=' + h + ',width=' + w + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=' + scroll + ',resizable'
    win = window.open(mypage, myname, settings)
}

function print_page() {
    self.focus();
    self.print()
}

function showStatus(sMsg) {
    window.status = sMsg;
    return true;
}

function getUrlParam(name) {
    if (name == 'base') {
        var pathArray = String(window.location.href).split('/');
        var host = 'http://' + pathArray[2] + '/';
        return host;
    } else {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regexS = "[\\?&]" + name + "=([^&#]*)";
        var regex = new RegExp(regexS);
        var results = regex.exec(window.location.href);
        if (results == null) {
            return "";
        } else {
            return results[1];
        }
    }
}

Array.prototype.unique = function () {
    var r = new Array();
    o: for (var i = 0, n = this.length; i < n; i++) {
        for (var x = 0, y = r.length; x < y; x++) {
            if (r[x] == this[i]) {
                continue o;
            }
        }
        r[r.length] = this[i];
    }
    return r;
}

Array.prototype.remove = function (removeItem) {
    var r = new Array();
    r = jQuery.grep(this, function (n) { return n != removeItem })
    return r
}

// ----------------------------------------------------------------
if (!Array.prototype.push) Array.prototype.push = function (o) {
    // ----------------------------------------------------------------
    this[this.length] = o
}

// ----------------------------------------------------------------
Array.prototype.subarr = function (iStart, iLength) {
    // ----------------------------------------------------------------
    if (iStart >= this.length || (iLength != null && iLength <= 0)) return [];
    else if (iStart < 0) {
        if (Math.abs(iStart) > this.length) iStart = 0;
        else iStart = this.length + iStart;
    }
    if (iLength == null || iLength + iStart > this.length) iLength = this.length - iStart;

    var aReturn = new Array();
    for (var i = iStart; i < iStart + iLength; i++) {
        aReturn.push(this[i]);
    }
    return aReturn;
}

// ----------------------------------------------------------------
Array.prototype.subarray = function (iIndexA, iIndexB) {
    // ----------------------------------------------------------------
    if (iIndexA < 0) iIndexA = 0;
    if (iIndexB == null || iIndexB > this.length) iIndexB = this.length;
    if (iIndexA == iIndexB) return [];
    var aReturn = new Array();
    for (var i = iIndexA; i < iIndexB; i++) {
        aReturn.push(this[i]);
    }
    return aReturn;
}

// ----------------------------------------------------------------
if (!Array.prototype.splice) Array.prototype.splice = function (iStart, iLength) {
    // ----------------------------------------------------------------
    if (iLength < 0) iLength = 0;

    var aInsert = new Array();
    if (arguments.length > 2) {
        for (var i = 2; i < arguments.length; i++) {
            aInsert.push(arguments[i]);
        }
    }

    var aHead = this.subarray(0, iStart);
    var aDelete = this.subarr(iStart, iLength);
    var aTail = this.subarray(iStart + iLength);

    var aNew = aHead.concat(aInsert, aTail);

    // Rebuild yourself
    this.length = 0;
    for (var i = 0; i < aNew.length; i++) {
        this.push(aNew[i]);
    }

    return aDelete;
}

Array.prototype.indexOf = function (v) {
    for (var i = this.length; i-- && this[i] !== v; );
    return i;
};


function setCookie(name, value, expires, path, domain, secure) {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime(today.getTime());

    /*
    if the expires variable is set, make the correct
    expires time, the current script below will set
    it for x number of days, to make it for hours,
    delete * 24, for minutes, delete * 60 * 24
    */
    if (expires) expires = expires * 1000 * 60 * 60 * 24;
    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" + escape(value) +
		((expires) ? ";expires=" + expires_date.toGMTString() : "") +
		((path) ? ";path=" + path : "") +
		((domain) ? ";domain=" + domain : "") +
		((secure) ? ";secure" : "");
}


function getCookie(check_name) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split(';');
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for (i = 0; i < a_all_cookies.length; i++) {
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split('=');

        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

        // if the extracted name matches passed check_name
        if (cookie_name == check_name) {
            b_cookie_found = true;
            // we need to handle case where cookie has no value but exists (no = sign, that is):
            if (a_temp_cookie.length > 1) {
                cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
            }
            // note that in cases where cookie is initialized but no value, null is returned
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if (!b_cookie_found) {
        return "Standard";
    }
}

function debugFlash(sMessage) {
    alert(sMessage);
}

function hideDwLegend(page) {
    if (page == 1) {
        document.getElementById("Legend").style.display = 'none';
    }
}

function NewsletterAction(type) {
    var naam = document.getElementById("tbNaam").value
    if (naam == 'naam') {
        alert('Geef eerst uw naam op');
        document.getElementById("tbNaam").focus();
        return false;
    }

    var email = document.getElementById("tbEmail").value
    if (email == 'e-mailadres') {
        alert('Geef uw e-mailadres op');
        document.getElementById("tbEmail").focus();
        return false;
    }
    else {
        if (echeck(email) == false) {
            document.getElementById("tbEmail").focus();
            return false;
        }
    }


    //alert("Nieuwsbrief.ashx?type=" + type + "&naam=" + naam + "&email=" + email);

}



function echeck(str) {

    var at = "@"
    var dot = "."
    var lat = str.indexOf(at)
    var lstr = str.length
    var ldot = str.indexOf(dot)
    if (str.indexOf(at) == -1) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(at, (lat + 1)) != -1) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(dot, (lat + 2)) == -1) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(" ") != -1) {
        alert("Ongeldig e-mailadres")
        return false
    }

    return true
}


function RemoveText(oTextbox, filltext) {
    if (oTextbox.value == filltext) {
        oTextbox.value = ""
    }
}
function RefillBox(oTextbox, filltext) {
    if (oTextbox.value == "") {
        oTextbox.value = filltext
    }
}

// Functie voor weergave markers in FireFox 
function getMarkerNode(xmlMarker, strSearchTag) {
    var sResult;
    sResult = 'nog niks';

    if (navigator.appName != "Netscape")  // Geen FireFox
    {
        sResult = xmlMarker.getElementsByTagName(strSearchTag)(0).text;
    }
    else {
        var strTagName;
        var iCount;
        strTagName = '';
        iCount = 0;
        while ((strTagName != strSearchTag) & (iCount < xmlMarker.childNodes.length)) {
            iCount++;
            strTagName = xmlMarker.childNodes[iCount].nodeName;
        }
        if (strTagName == strSearchTag) {
            try {
                sResult = xmlMarker.childNodes[iCount].childNodes[0].textContent;
            }
            catch (err) {
                sResult = "";
            }
        }
    }
    return sResult;
}

function ShowHeader() {
    //$(document).ready(function() {
    ////            $('.slideshow1').cycle({
    ////                fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
    ////            });
    //    alert($(document).ready);
    //    //        $('.slideshow2').cycle({
    //    //            fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
    //    //        });
    //});
};

$(document).ready(function () {
    $('.slideshow1').cycle({
        fx: 'cover'
    });
    $('.slideshow2').cycle({
        fx: 'scrollUp'
    });
    $('.ThumbImg:gt(0)').hide();


    $('#DivThumbContainer1').removeClass().addClass("ThumbContainerPurple");

    setInterval(SlideThumb, 4000);
    var SlideNr = 2
    function SlideThumb() {
        if (SlideNr > 1) {
            $('#DivThumbContainer' + (SlideNr - 1)).removeClass().addClass("ThumbContainerWhite");
        }

        if (SlideNr > $('.SlideShowThumbs').children().length) {
            SlideNr = 1
        }

        $('#DivThumbContainer' + (SlideNr)).removeClass().addClass("ThumbContainerPurple");
        SlideNr += 1;
    }

    //RL: 27102011, modified this because hover wasn't working correctly on all pages and in all browsers.
    $('.Menu ul li a').hover(function () {
        $(this).css('background', 'url(/Files/System/images/stars.gif)');
        $(this).css('background-position', 'center top');
        $(this).css('background-repeat', 'no-repeat');
    },
	function () {
	    $(this).css('background', 'none');
	});

    $('.Menu ul li a').mouseout(function () {
        $(this).css('background', '');
    });

    $('.Menu ul li #activeitem').mouseout(function () {
        //			$(this).css('background-color', '#026549');
        //$(this).css('color', '#97C23D');
        $(this).css("color", "#900000");
    });

    $('.Menu ul li .inpath').mouseout(function () {
        //			$(this).css('background-color', '#026549');
        //$(this).css('color', '#97C23D');
        $(this).css("color", "#900000");
    });

    $("form").validationEngine();

    humanMsg.setup();

    $("#ProdQuantity").ForceNumericOnly();


    $(".WWFormulierRechts").html($("#ShoppingCartUSPs").html());

});

function setVariant(variantUrl) {
    window.location = variantUrl;
}

function ChangeMediumImage(ImageUrl, LargeImageUrl) {
    document.getElementById("imgProductFoto").src = ImageUrl
    document.getElementById("LinkGroteAfbeelding").href = LargeImageUrl
}

function ShowProductPrice(ele, Stock, CartQuantity, Price, SetOnly) {
    Stock = Stock - CartQuantity
    if (Stock <= 0 || Price <= 0 || SetOnly == "True") {
        document.getElementById(ele).style.display = "none"

    } else {
        document.getElementById(ele).style.display = "block";

    }
    //alert('ele = ' + ele + ' stock = ' + Stock + ' Price = ' + Price );
    if (SetOnly == "True") {
        document.getElementById("ProductSetOnly").innerHTML = "<br /><br />Dit product is alleen via een set verkrijgbaar, het is niet los te bestellen"
    }
}


function CheckSetOnly(ele, ele2, SetOnly) {
    if (SetOnly == "True") {
        document.getElementById(ele).style.display = "block"
        // voorkomen dat voorraadmelding ook getoond kan worden        
        // document.getElementById(ele2).style.display = "none";
    } else {
        document.getElementById(ele).style.display = "none";
    }
}

function CheckActive(ele, Active) {
    if (Active == "False") {
        document.getElementById(ele).style.display = "none";
    } else {
        document.getElementById(ele).style.display = "block"
    }
}

function CheckStock(ProductID, Stock, CartQuantity, ExternalProduct) {
    var Selected = parseInt(document.getElementById('ProdQuantity').value);
    var Available = parseInt(Stock);
    if (CartQuantity > 0) {
        Available = Available - CartQuantity
    }


    if (Selected > Available && ExternalProduct == 'False') {
        alert("Er zijn helaas maar " + Available + " producten op voorraad, uw aantal in de winkelwagen zal aangepast worden.");
        document.getElementById('ProdQuantity').value = Available;
        return 'false';
    } else {
        return 'true';
    }

}

function ChangePrice(price) {
    var OldPrice = price
    var NewPrice = OldPrice.replace(",", ".")
    //alert(NewPrice);
    return NewPrice;
}

function CheckIncrement(ele, Quantity, Stock) {
    var Selected = parseInt(Quantity);
    var Available = parseInt(Stock);
    //alert("Selected = " + Selected + " Available = " + Available);  
    if (Available <= 0) {
        document.getElementById(ele).style.display = "none";
    } else {
        document.getElementById(ele).style.display = "block"
    }
}

function defaultimage(obj) {
    obj.src = "/Files/System/Images/Geen_afbeelding_beschikbaar_middle.jpg";
}

function defaultimageLarge(obj) {
    obj.src = "/Files/System/Images/Geen_afbeelding_beschikbaar.jpg";
}

function transparentimage(obj) {
    obj.src = "/Files/System/Images/transparent.gif";
}


function ShowKorting() {
    document.getElementById("ProdDiscount").style.display = "block"
    document.getElementById("ProdNoDiscount").style.display = "none"
}


function SetProductSet(ele) {
    document.getElementById(ele).style.display = "none"
    document.getElementById("QuantityTitle").style.display = "none"
}

/* GA tracking */
var trackPageviewPushed = false;
function TrackPageViewAction(trackPageview) {
    if (_gaq != undefined) {
        //alert('_trackPageview: ' + trackPageview);
        _gaq.push(['_trackPageview', trackPageview]);
        trackPageviewPushed = true;
    }
}



$.extend({
    getUrlVars: function () {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },
    getUrlVar: function (name) {
        return $.getUrlVars()[name];
    }
});

jQuery.fn.ForceNumericOnly = function () {
    return this.each(function () {
        $(this).keydown(function (e) {
            var key = e.charCode || e.keyCode || 0;             // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY             
            return (
				key == 8 ||
				key == 9 ||
				key == 46 ||
				(key >= 37 && key <= 40) ||
				(key >= 48 && key <= 57) ||
				(key >= 96 && key <= 105));
        })
    })
};


function getXMLHttpRequest() {
    if (window.XMLHttpRequest) {
        return new window.XMLHttpRequest;
    }
    else {
        try {
            return new ActiveXObject("MSXML2.XMLHTTP.3.0");
        }
        catch (ex) {
            return null;
        }
    }
}

function setCookie(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}

function getCookie(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}
