﻿/// <reference path="jquery-1.3.1.js" />

function EcoLabelLink(linkvalue) {
    if (linkvalue != "") {
        document.location = linkvalue;
    }
}

//Render the content part (between the first and last <!--Content--> comment)of a page into a div 
function renderPageIntoContainerCallback(response, a, b, options) {
    var responseText = response;
    var cleanedResponseText = responseText.substring(responseText.indexOf('<!--Content-->'), responseText.lastIndexOf('<!--Content-->'));

    if (options.indicator) options.indicator.hide();

    if (options.callAfterSuccess)
        options.callAfterSuccess();
}
var timeout;

function renderQueueManager(container) {
    var index = jQuery.inArray(container, runningRenderContainers);
    if (index > -1) {
        //Abort the request and remove it from the queue
        runningRenderRequests[index].abort();
        runningRenderContainers = runningRenderContainers.splice(index,1);
        runningRenderRequests = runningRenderRequests.splice(index, 1);
    }
}

function renderQueueManagerAbortAll() {
    for (var x = 0; x < runningRenderRequests.length; x++) {
        runningRenderRequests[x].abort();
    }
    runningRenderContainers = new Array();
    runningRenderRequests = new Array();
}

var runningRenderContainers = new Array();
var runningRenderRequests = new Array();
function renderPageIntoContainer(pageUrl, container, callback, delay, indicatorElement) {
    //If there is a request running for the same container it should be aborted. To handle this i need to have a manual queue.
   renderQueueManager(container);

   var ajaxRequest = $.ajax({
       url: pageUrl,
       cache: true,
       container: container,
       complete: function(XMLHttpRequest, textStatus) {
           renderQueueManager(this.container); //When the request is finished it should be removed from the queue
       },
       error: function(XMLHttpRequest, textStatus, errorThrown) {
           this; // the options for this ajax request
       }
        ,
       success: function(html) {
           newHtml = $(html).html();
           if (newHtml != $(container).html()) {
               if (newHtml.indexOf('class="resultList"') == -1 && newHtml.indexOf('class=resultList') == -1) {
                   $(container).slideUp('fast', function() {
                       $(this).parent().hide();
                   });
               } else {
                   $(container).parent().show();
                   $(container).show();
               }
               $(container).html(newHtml);
               if ($(".partialResultCount").size() > 0) {
                   var resultCount = 0;
                   $(".partialResultCount").each(
                            function() {
                                resultCount += parseInt($(this).html());
                            }
                        );
                   $(".resultCount").html(resultCount);
               }
               else {
                   $(".resultCount").html("0");
               }
           }
       }
   });
   
    runningRenderContainers.push(container);
    runningRenderRequests.push(ajaxRequest);
}

function renderControl(control, container, parameters, callback, delay, indicator) {
    if (indicator) indicator.show();
    renderPageIntoContainer(baseUrl + "AJAX/RenderControl/?control=" + control + "&" + parameters + "&originator=" + window.location.pathname, container, callback, delay, indicator);
}

function showAllResults(containerId, queryUrl) {
    if ($('.liveSearchTextBox').size == 1 && $('.liveSearchTextBox').val().length > 1) queryUrl += "&query=" + $('.liveSearchTextBox').val();
    if ($('#' + containerId).size == 1)
        queryUrl += "&rootPage=" + $('#' + containerId).closest(".rootPage").val();
    
    renderControl("LiveSearchPart", "#" + containerId, queryUrl, null, 5);
   }

   function renderPageIntoContainerRetailers(pageUrl, container, callback, delay, indicatorElement) {
   	if (delay) {
   		window.clearTimeout(timeout);
   		timeout = window.setTimeout(function() {
   			$(container).load(pageUrl + "#content", null, callback);
   		}, delay);
   	} else {
   		$(container).load(pageUrl + "#content", null, callback);
   	}
   }

   function renderControlRetailers(control, container, parameters, callback, delay, indicator) {
   	if (indicator) indicator.show();
   	renderPageIntoContainerRetailers(baseUrl + "AJAX/RenderControl?control=" + control + "&" + parameters + "&originator=" + document.location, container, callback, delay, indicator);
   }

var oldText="";

//Enable addcart functionality
$(document).ready(function() {

    $(".cartButtons").find(".addToCart").click(function() {
        //Slide from caller (this) to the toolbox item
        $(this).parent().removeClass("add");
        $(this).parent().addClass("remove");
        $(this).css("position", "");


        $(".toolBox").addClass("toolBoxInUse");
    });

    $(".cartButtons").find(".removeFromCart").click(function() {
        $(this).parent().addClass("add");
        $(this).parent().removeClass("remove");
        $(this).css("position", "");

        //TODO: only do this if the last item from the cart is removed
        $(".toolBox").removeClass("toolBoxInUse");
    });

});

function searchProductKeyPress(event, source) {
    if (event.keyCode == 13)
        $("#searchSubmit").click();
    return false;
}

function searchKeyPress(event, source) {
     $("#field").val($(source).val());

    if (event.keyCode == 13)
        $('.searchLink').click(); return false;
}

function searchPostCodeKeyPress(event) {
    if (event.keyCode == 13)
        $('#postcodeSearch').click(); return false;
}

function combinePDFs(element) {
    $("#media").val(generateCombinePDFsLink(element));
    $("#mediaForm").submit();
}

var ajaxBaseUrl = "/Services/Toolbox.asmx/";

function emailCombinedPDFs(element, email) {
      
      var url = generateCombinePDFsLink(element);
      $.ajax({
          type: "POST",
          data: "{'url':" + url + ",'mailAddress':'"+email+"'}",
          dataType: "json",
          url: ajaxBaseUrl + "SendPDFMail",
          contentType: "application/json; charset=utf-8"
      });
}

function generateCombinePDFsLink(element) {
    var combinedString = "";
    var count = 0;
    $(".attachmentSelector").each(function() {

        if (this.checked) {
            combinedString += $(this).prev(".download").attr("rel");
            combinedString += ",";
            count++;
        }
    }
    );
    //Trim the last comma
    if (combinedString.indexOf(",", 0) > -1)
        combinedString = combinedString.substring(0, combinedString.length - 1);
    return combinedString;
}

function popup(url, width, height, name) {
    window.open(url, name, 'height=' + height + ',width=' + width + ',toolbar=0,menubar=0,location=0,resizable=0');
}

//Functionality for the studio window
var tinterPopupWindow = null;
function openTinter(baseUrl, lang, context) {
    if (context != '1' && context != '2') {
        context = '0';
    }
    var tinterUrl = baseUrl + lang + '/?context=' + context;
    try {
        var matches = window.location.href.match(/resetpassword=(.*?)&token=(.*)/);
        if (matches.length == 3) {
            tinterUrl = tinterUrl + '&u=' + matches[1] + '&token=' + matches[2];
        }
    } catch (e) { }

    if (tinterPopupWindow == null || tinterPopupWindow.closed) {
        tinterPopupWindow = window.open(tinterUrl, '', "fullscreen=yes,location=no,menubar=no,resizing=yes,scrollbars=no");
    }
    else {
        if (tinterPopupWindow.focus) {
            tinterPopupWindow.focus();
        }
    }
}

function openslideshow() {
    
    $(".lightbox.listItem.first").click();
}

function reEnableFlash() {
    $(".flashObject").each(function(){this.style.visibility = "visible";});
}

function disableFlash() {
    $(".flashObject").each(function () { this.style.visibility = "hidden"; });

}

//Call fancybox from flash
function callFancy(id) {
    disableFlash();
    $('[href="#item_'+id+'"]').click();
}
