﻿//Patrik Totero objects
var SYS = {};
var CAMPAIGN = {};
var FUNCTIONS = {};

//Ted's functions

var watermarkNeed = "Jag skulle vilja...";
var watermarkName = "Berätta vem du är";
var debug = false; // If true error messages will be displayed for AJAX calls
var disableAnalytics = false; // If true no explicit Google Analytics calls will be made

/* Share This settings */
var addthis_config = {
    username: "kungsleden",
    ui_language: "sv",
    ui_cobrand: "Lokala möjligheter",
    services_compact: 'email,print,twitter,facebook,delicious,digg,pusha,bloggy, more',
    ui_header_color: "#fff",
    ui_header_background: "#D20028"
}

var addthis_share = {
    templates: { twitter: "{{title}} {{url}} (från @mojligheter)" }
}

$(document).ready(function() {

    //##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##

    SYS.Init();
    CAMPAIGN.Init();

    //##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##
    
    if (debug) {
        alert('Note: Running scripts in debug mode. To exit debug mode set the debug variable to false.');
    }

    /* Retrieve and display customer needs */
    initializeCustomerNeeds(10, 0);

    /* Wire up detail links for the employee list */
    $(".employee-details a.employee").click(function() { initializeEmployeesList(this); return false; });

    /* Wire up event to show e-mail textbox when subscription checkbox for customer needs is checked) */
    $('#check-notify').click(function() {
        setCustomerNeedSubscriptionFormVisibility($('#check-notify').attr('checked'), true);
    });

    /* Wire up button to submit new customer needs */
    $("#btn-send-need").click(function() {
        var name = $("#textbox-need-name");
        var text = $("#textbox-need-text");
        if (name.val() == watermarkName || name.val() == "") {
            name.addClass("invalid");
            alert('Oj, glömde du att skriva ditt namn innan du klickade på Skicka-knappen?');
            return;
        }
        else {
            name.removeClass("invalid");
        }

        if (text.val() == watermarkNeed || text.val() == "") {
            text.addClass("invalid");
            alert('Oj, glömde du att skriva in ditt behov innan du klickade på Skicka-knappen?');
            return;
        }
        else {
            text.removeClass("invalid");
        }
        var guid = submitCustomerNeed(name.val(), text.val());
        if ($('#check-notify').attr('checked')) {
            if (debug) {
                alert('Lägger till ' + $('#customer-need-subscription-email').val() + ' som prenumerant för GUID ' + guid);
            }
            addCommentSubscription(guid, $('#customer-need-subscription-email').val());
        }
        name.val('');
        text.val('');
        $('#check-notify').removeAttr('checked');
        $('#customer-need-subscription-email').val('');
        if ($('#check-notify').attr('checked')) {
            addCommentSubscription($('#customer-need-subscription-email').val());
        }
        setCustomerNeedSubscriptionFormVisibility(false, false);
    });

    /* On keypress search for employees */
    $('#textbox-search-employees').keyup(function(e) { employeeSearchBoxChange(e) });

    /* Button click to add newsletter subscriber */
    $('#button-subscribe-newsletter').click(function() { addNewsletterSubscriber(); });

    /* Show textbox for customer need when name textbox gets focus */
    $("#textbox-need-text").focus(function() {
        displayCustomerNeedForm();
    });

    /* Show description for photo submissions */
    $('.photosubmission a.show-description').click(function() {

        var url = this.toString();

        var guidStartPosition = url.indexOf('#', 0) + 1;

        if (guidStartPosition >= 0) {
            var guid = url.substr(guidStartPosition);
            showPhotoSubmissionDescription(guid);
            $(this).hide();
            var urlForAnalytics = '/photo-submission/' + $(this).attr('title') + '/description/';
            if (debug) { alert(urlForAnalytics); }
            addPageViewToAnalytics(urlForAnalytics);
            return false;
        }
    });

    /* Watermark for newsletter e-mail textbox */
    addWatermark($('#text-newsletter-email'), "Din e-postadress");

    /* Watermark for customer need textboxes */
    addWatermark($('#textbox-need-text'), watermarkNeed);
    addWatermark($('#textbox-need-name'), watermarkName);

    /* Lightbox effect used for photo contest submissions */
    $(function() {
        $('a.lightbox').lightBox({
            overlayBgColor: '#000000',
            overlayOpacity: 0.8,
            imageLoading: '/pics/lightbox-loading.gif',
            imageBtnClose: '/themes/kungsleden/gfx/lightbox-btn-close.gif',
            imageBtnPrev: '',
            imageBtnNext: '',
            containerResizeSpeed: 400,
            txtImage: 'Tävlingsbidrag',
            txtOf: 'av'
        });
    });

    /* Log the HREF URL in Analytics */
    $('a.lightbox').click(function() {
        var url = '/photo-submission/' + $(this).attr('title');
        addPageViewToAnalytics(url);
    });

});

/* Expands description for a photo submission */
function showPhotoSubmissionDescription(postGuid,parent) {

    var descriptionElement = $('#description-' + postGuid);
    
    descriptionElement.text(getPostDescription(postGuid));
    descriptionElement.show();
}

function getPostDescription(postGuid) {
   
    var description;

    $.ajax({
        type: 'POST',
        url: '/themes/Kungsleden/UtilityService.asmx/GetPostDescription',
        cache: true,
        data: "{'postGuid':'" + postGuid + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        async: false,
        error: function(xhr, status, error) { if (debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
        success: function(result) {
            description = result.d;
        }
    });
    
    return description;
}

/* Adds a URL explicitly to Google Analytics (requires the standard GA script block on the page) */
function addPageViewToAnalytics(url) {
    try
    {
        if(!disableAnalytics)
        {
            pageTracker._trackPageview(url);
        }
    }
    catch(err) { }
}

/* Shows or hides the textbox for specifying an e-mail address to subscribe to customer need comments */
function setCustomerNeedSubscriptionFormVisibility(visible, adjustHeight) {

    var emailTextBox = $('#customer-need-subscription-email');
    var emailLabel = emailTextBox.prev(); //The label is right before the textbox in the DOM

    if (visible) {
        if (adjustHeight) {
            animateCustomerNeedForm(220, 100);
        }
        emailTextBox.show();
        emailLabel.show();
    }
    else {
        emailTextBox.hide();
        emailLabel.hide();
        if (adjustHeight) {
            animateCustomerNeedForm(170, 100);
        }
    }
}

function addWatermark(textbox, watermark) {

    /* Add watermark to textbox */
    if (textbox.val() == '' || textbox.val()==watermark) {
        textbox.addClass('watermark');
        textbox.val(watermark);
    }
    
    /* Wire up events */
    textbox.focus(function() {
    if (textbox.val() == watermark) {
        textbox.val('');
        textbox.removeClass('watermark');
        }
    });
    textbox.blur(function() {
    if (textbox.val() == '') {
        textbox.val(watermark);
        textbox.addClass('watermark');
        }
    });
}

function isValidEmail(string) {
    var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
    return filter.test(string);
}

/* Adds a newsletter subscriber to Apsis */
function addNewsletterSubscriber() {

    var emailTextBox = $("#text-newsletter-email");
    var emailAddress = emailTextBox.val();

    if (isValidEmail(emailAddress)) {
        emailTextBox.removeClass('invalid');
        $.ajax({
            type: 'POST',
            url: '/themes/Kungsleden/UtilityService.asmx/SubscribeToNewsletter',
            cache: false,
            data: "{'email':'" + emailAddress + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            error: function(xhr, status, error) { container.slideUp("slow"); if(debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
            success: function(result) {
                if (result.d) {
                    alert('Hej! Nu har vi lagt upp din prenumeration. Du kommer att få en bekräftelse skickad till e-postadressen du angav.');
                    /* Watermark for newsletter e-mail textbox */
                    $('#text-newsletter-email').val('Din e-postadress');
                    $('#text-newsletter-email').addClass('watermark');
                }
                else {
                    alert('Hej! Det uppstod tyvärr ett fel, så vi kan inte lägga till prenumerationen just nu.');
                }
            }
        });
    }
    else {
        emailTextBox.addClass('invalid');
        alert('Felaktig e-postadress. Kontrollera e-postadressen och försök igen.');
    }
}

function animateCustomerNeedForm(height, speed) {
    var newHeight = height + "px";
    
    $('#textbox-need-form-container').animate({ height: newHeight }, speed, function() { $('#textbox-need-form-container').css("border-bottom", "none"); });
}

function displayCustomerNeedForm() {
    var height = 170;

    if ($('#check-notify').attr('checked')) {
        height = 220;
    }

    animateCustomerNeedForm(height, 500);
}

function getQueryParameterByName(name, url) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(url);
    if (results == null)
        return "";
    else
        return results[1];
}

/* Event fired when characters are entered in the employee search box */
function employeeSearchBoxChange(e) {
    var character = e.keyCode;

    // ignore if the following keys are pressed: [del] [shift] [capslock]
    if (character == 46 || (character > 8 && character < 32)) {

    }
    else {
        var resultsContainer = $('#employee-listing');
        var input = $('#textbox-search-employees').val();

        if (input.length >0) {
            filterEmployeesList(input)
        } else {
        resetEmployeeSearchResult();
        }
    }
}

function resetEmployeeSearchResult() {
    $('.employee-details').show();
    $('#employee-search-status').html('');
}

/* Used for the employee search */
function filterEmployeesList(searchString) {

    searchString = searchString.toLowerCase();
    searchString = jQuery.trim(searchString);

    var dataFields = $(".search-data");

    var hits = 0;

    try {
        for (var i = 0; i < dataFields.length; i++) {
            var dataContainer = dataFields[i];
            var data = $(dataFields[i]).val().toLowerCase();

            var parent = $(dataContainer).parent();

            var opacity = 1.0;

            $('.expanded-employee-details').hide();
            $(".employee-details").removeClass("selected");

            if (data.indexOf(searchString) == -1) {
                parent.hide();
            }
            else {
                parent.show();
                hits++;
            }
        }

        if (hits == 0) {
            $('#employee-search-status').html("<p>Hej! Det finns ingen som heter något på '" + searchString + "'</p>");
        }
        else {
            $('#employee-search-status').html('');
        }
    }
    catch(err)
    {
        alert(err);
    }
    
}

/* Displays employee details */
function displayEmployeeDetails(employeeGuid, container) {

    $.ajax({
        type: 'POST',
        url: '/themes/Kungsleden/Employees.asmx/GetEmployee',
        cache: false,
        data: "{'guid':'" + employeeGuid + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        error: function(xhr, status, error) { container.slideUp("slow"); if(debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
        success: function(result) {
            var employee = result.d;
            var presentationMarkup = '<h4>' + employee.Greeting + '</h4>' + '<p class="description">' + employee.Description + '</p>' + employee.Content;
            container.text('');
            $(container).addClass("expanded");
            container.append(presentationMarkup);
            container.slideDown("slow");
        }
    });

}

/* Used to delete a specific post */
function deletePost(guid) {
    $.ajax({
        type: 'POST',
        url: '/themes/Kungsleden/CustomerNeeds.asmx/DeletePost',
        cache: false,
        data: "{'guid':'" + guid + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        async: false,
        error: function(xhr, status, error) { if(debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
        success: function(result) {
            initializeCustomerNeeds(10,0);
        }
    });
}

/* Saves a new customer need */
function submitCustomerNeed(name, text) {

    var container = $("#customer-needs-list");

    var postGuid;

    $.ajax({
        type: 'POST',
        url: '/themes/Kungsleden/CustomerNeeds.asmx/SubmitNeed',
        cache: false,
        data: "{'author':'" + name + "','content':'" + text + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        async: false,
        error: function(xhr, status, error) { if (debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
        success: function(result) {
            var newNeed = result.d;
            postGuid = newNeed.ID;
            addCustomerNeed(newNeed, true, false);
            addPageViewToAnalytics('/comment-added/');
            $('#textbox-need-form-container').css("border-bottom", "solid 1px #ccc");
            $('#textbox-need-form-container').animate({ height: "22px" }, 500);
            $('#textbox-need-name').val(watermarkName);
            $('#textbox-need-text').val(watermarkNeed);
            $('#textbox-need-name').addClass('watermark');
            $('#textbox-need-text').addClass('watermark');
        }
    });

    return postGuid;
}

function addCommentSubscription(guid,email) {

    $.ajax({
        type: 'POST',
        url: '/themes/Kungsleden/UtilityService.asmx/SubscribeToComments',
        cache: false,
        data: "{'postGuid':'" + guid + "','mailAddress':'" + email + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        error: function(xhr, status, error) { if (debug) { alert('Det gick inte att lägga till kommentarsprenumerationen. ' + xhr + ' ' + status + ' ' + error); } },
        success: function(result) { if (debug) { alert(email + 'prenumererar nu på ' + guid); } }
    });
}

/* Populates the customer need list */
function initializeCustomerNeeds(maxCount, sorting) {

    /* Sorting:
    null=default,
    0=default,
    1=mostRated,
    1=mostCommented
    */

    $('#customer-need-sort-order').val(sorting)
    
    var container = $("#customer-needs-list");

    container.append("<p><img src='/pics/ajax-loader-red.gif' />Läser in behov...</p>");

    if (sorting==null) {
        sorting = 0;
    }

    $.ajax({
        type: 'POST',
        url: '/themes/Kungsleden/CustomerNeeds.asmx/GetAllNeeds',
        cache: false,
        data: "{'maxCount':'" + maxCount + "','sortType':'" + sorting + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        error: function(xhr, status, error) { if(debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
        success: function(result) {
            var needs = result.d;
            if (container != null) {
                container.text('');
                for (var i = 0; i < needs.length; i++) {
                    addCustomerNeed(needs[i], false, true);
                }
            }
        }
    });
}

/* Paging function for the customer need list */
function showMoreCustomerNeeds() {

    var sorting = $('#customer-need-sort-order').val();

    if (sorting == null) {
        sorting = 0;
    }

    var container = $("#customer-needs-list");

    var offset = $("#customer-needs-list .customer-need").length;

    var maxCount = 10;

    if(debug)
        alert('Hämtar max ' + maxCount + ' behov från offset ' + offset + ' och framåt. Sorteringsvärde: ' + sorting);

    $.ajax({
        type: 'POST',
        url: '/themes/Kungsleden/CustomerNeeds.asmx/GetNeeds',
        cache: false,
        data: "{'maxCount':'" + maxCount + "','sortType':'" + sorting + "','offset':'" + offset + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        error: function(xhr, status, error) { if (debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
        success: function(result) {
            var needs = result.d;
            if (container != null) {
                for (var i = 0; i < needs.length; i++) {
                    addCustomerNeed(needs[i], false, true);
                }
            }
            
            var page = offset;
            
            if(page>0)
            {
                page = offset/maxCount+1;
            }
            else
            {
                page = 1;
            }
            
            addPageViewToAnalytics('/comments-paging/' + page + '/');
        }
    });
}

var customerNeedGuidBeingUpdated;
var customerNeedRatingToUpdate;

/* Votes for a customer need (gives it a 5-star rating, equivalent to "thumbs up") */
function voteForCustomerNeed(guid, customerNeedContainer) {

    customerNeedGuidBeingUpdated = guid;

    customerNeedRatingToUpdate = customerNeedContainer.children(".raters.icon:first");

    BlogEngine.createCallback("rating.axd?id=" + guid + "&rating=5", ratingCompleteCallback);

    $.ajax({
        type: 'POST',
        url: '/themes/Kungsleden/CustomerNeeds.asmx/ClearCustomerNeedCache',
        cache: false,
        data: "{ }",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        error: function(xhr, status, error) { if (debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } }
    });
}

/* Occurs after a post has been rated */
var ratingCompleteCallback = function ratingComplete(response) {

    var raters = response.substring(0, 1);
    var status = response.substring(1);

    if (status == "OK") {

        $.ajax({
            type: 'POST',
            url: '/themes/Kungsleden/CustomerNeeds.asmx/GetCustomerNeedPoints',
            cache: false,
            data: "{'guid':'" + customerNeedGuidBeingUpdated + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            error: function(xhr, status, error) { if (debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
            success: function(result) {
                var raters = result.d;
                /* Bortkommenterat eftersom vi inte vill ha en alert som bekräftelse
                if (raters > 1) {
                    alert('Hej! Tack för din röst. Du och ' + (raters - 1) + ' andra röstat på denna.');
                }
                else {
                    alert('Hej! Tack för din röst. Nu får vi se om fler röstar på samma!');
                }
                */
                customerNeedRatingToUpdate.text(raters);
            }
        });
    }
    else if (status == "HASRATED") {
        alert('Hej! Du kan bara rösta en gång per inlägg.');
    }
    else {
        alert('Hej! Tyvärr uppstod ett fel när din röst skulle registreras... :(');
    }
}

/* Gets a text string describing how old a post is, used mainly for customer need posts */
function getPostAgeString(guid) {

    var ageString = "";

    $.ajax({
        type: 'POST',
        url: '/themes/Kungsleden/CustomerNeeds.asmx/GetPostAgeString',
        cache: false,
        data: "{'guid':'" + guid + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        async: false,
        error: function(xhr, status, error) { if(debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
        success: function(result) {
        ageString = result.d;
        }
    });

    return ageString;
}

/* Checks if the current user is logged in */
function isLoggedIn() {

var loggedIn = false;

$.ajax({
type: 'POST',
url: '/themes/Kungsleden/UtilityService.asmx/IsLoggedIn',
cache: false,
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: 'json',
async: false,
error: function(xhr, status, error) { if(debug) { alert('Ooops! Something went wrong. ' + xhr + ' ' + status + ' ' + error); } },
success: function(result) {
loggedIn = result.d;
}
});

return loggedIn;
}

/* Adds a customer need object to the list of needs */
function addCustomerNeed(need, animate, addToBottom) {

    var needsContainer = $("#customer-needs-list");
     
    var style;
    if (animate) {
        style = "display: none;"
    }
    else {
        style = "display: block;"
    }

    var outerContainer = $(document.createElement("div")).attr("style", style).addClass("customer-need-container");

    var container = $(document.createElement("div")).addClass("customer-need");

    outerContainer.prepend('<div class="need-bubble-squiggle" />');

    container.append(getCustomerNeedMarkup(need, animate));

    if (isLoggedIn()) {
        var link = $(document.createElement("a"))
    .attr("href", "#")
    .text(" Radera")
    .addClass("action")
    .click(function() {
        if (confirm('Vill du ta bort det här kundbehovet?')) {
            deletePost(need.ID);
        }
        return false;
    }).appendTo(container);
    }

    outerContainer.append(container);
    
    outerContainer.append('<div class="need-bubble-bottom" />');

    if (addToBottom) {
        needsContainer.append(outerContainer);
    }
    else {
        needsContainer.prepend(outerContainer);
    }

    if (animate) {
        outerContainer.slideDown("slow");
    }
}

/* Removes HTML tags from a text string */
function removeHTMLTags(text) {
    text = text.replace(/&(lt|gt);/g, function(strMatch, p1) {
        return (p1 == "lt") ? "<" : ">";
    });
    var strippedText = text.replace(/<\/?[^>]+(>|$)/g, "");
    return strippedText;
}

/* Gets generated HTML markup for a customer need objects */
function getCustomerNeedMarkup(need) {  
    var container = $(document.createElement("div"));
    
    var data = $(document.createElement("input")).attr("type", "hidden");
    data.val(need.ID);

    var markup = '<p class="text"><a href="' + need.LinkUrl + '#comment" title="Klicka här för att kommentera inlägget">' + need.Text + '</a></p><p class="author">Skrivet av ' + need.Name + ' ' + getPostAgeString(need.ID) + '</p>';

    var actionButtonsContainer = $(document.createElement("div")).attr("class","customer-need-actions");
    
    var commentButton = $(document.createElement("a")).attr("class", "comments icon").attr("href",need.LinkUrl + "#").attr("title","Klicka för att kommentera denna").html(need.Comments);

    var rateButton = $(document.createElement("a")).attr("id", "button-rate-need").attr("class", "raters icon").attr("href", "#").attr("title", "Klicka för att ge denna tummen upp!").html(need.Raters);

    rateButton.mouseover(function() { this.style.cursor = 'pointer'; });
    rateButton.mouseout(function() { this.style.cursor = 'default'; });
    rateButton.click(function() { voteForCustomerNeed(need.ID, actionButtonsContainer); return false; });

    actionButtonsContainer.append(commentButton);
    actionButtonsContainer.append(rateButton);

    container.append(data);
    container.append(markup);
    container.append(actionButtonsContainer);
    
    return container;
}

function initializeEmployeesList(link) {

    var activeClicked = $(link).parents(".employee-details.selected").length > 0;
   
    var employeeGuid = getQueryParameterByName('id', link.href);

    var detailsContainer = $(link).closest(".employees-row").children('div.expanded-employee-details');

    if(detailsContainer)
    {
        if (!activeClicked) {
            $(".employee-details").removeClass("selected");

            $(link).closest(".employee-details").addClass("selected");

            $(".expanded").slideUp("slow");
            $(".expanded").removeClass("expanded");

            $(detailsContainer).slideUp("slow", function() { displayEmployeeDetails(employeeGuid, detailsContainer) });
        }
        else {
            $(detailsContainer).slideUp("slow", function() { $(link).closest(".employee-details").removeClass("selected"); });
        }
        
        return false;
    }
}




/* Magic by Totero 
-------------------------------------------------------------*/
SYS.Init = function() {
    this.value = 0;
    this.sliderMax = 1000;
    this.oldValue = 0;
    this.arr = ['', '', '', '', '', ''];

    this.premissType = 0;
    this.premise = '';
    this.areaPerEmployee = 0;
    this.areaPerRoom = 0;
    this.numberOfRooms = 0;
    this.totalArea = 0;
    this.consumption = 0;

    this.savingsPerAreaUnit = 0;
    this.savingsPerRoom = 0;
    this.savingsCo2 = 0;
    this.savingsCost = 0;

    this.comparisonArray = [];
    this.greenActions = 0;
    this.greenIndicator = 0;
    this.greenIndicatorSum = 0;

    this.saveEnergy = 0;
    this.saveMoney = 0;
    this.saveCO2 = 0;

};

CAMPAIGN.Init = function() {
    FUNCTIONS.EnergyData();
    $('#share').find('li').live('click', function() {
        FUNCTIONS.GoogleAnalytics(SYS.premise + '/share/' + $(this).attr('class'));
    });
};

FUNCTIONS.EnergyData = function() {
    $('#energy').find('ul').css({ display: 'block' });
    $('#energy').find('.ingress').eq(0).html('Nu slår vi ett slag för förändringar som lönar sig för både plånboken och miljön. Kolla vad olika åtgärder har för effekt och få tips på hur du energisparar mer!');
    var click = true;
    var complex = $('#premise li');
    $(complex).bind('click', function() {

        SYS.premise = $(this).text();
        FUNCTIONS.GoogleAnalytics($(this).text());

        if (click == false) return;
        if ($(this).hasClass('selected')) return;
        var premise = $(this).prevAll().length;
        if ($('#energy-instruments').is(':visible')) {
            click = false;
            $('#measure,#measure-ie').hide();
            $('#energy-instruments').slideUp('slow', function() {
                $(this).children().not('h2.padding, table.clear, #share').remove();
                FUNCTIONS.EnergyInstruments(premise);
                click = true
            });
        } else {
            FUNCTIONS.EnergyInstruments(premise);
        }
        $(complex).removeClass('selected');
        $(this).addClass('selected');
        $('html, body').animate({scrollTop:200}, 'slow');
        return false;
    });
};

FUNCTIONS.EnergyInstruments = function(premise) {

    var instrumentsArea = $('#energy-instruments').find('h2')[0];
    var sliderQuestion = '';
    var sliderResultPhrase = '';
    var sliderUnit = '';

    SYS.arr = ['', '', '', '', '', ''];
    SYS.saveEnergy = 0;
    SYS.saveMoney = 0;
    SYS.saveCO2 = 0;

    $.ajax({
        type: "POST",
        url: "/themes/Kungsleden/EnergyStatisticsService.asmx/GetPremiseTypes",
        cache: false,
        data: "{ }",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        beforeSend: function() {
            SYS.greenIndicatorSum = 0;
        },
        error: function() {
            alert('OMG!!!');
        },
        success: function(result) {
            if ($('#check-right', '#energy-instruments').length == 0) $(instrumentsArea).after('<div id="check-right" class="right" />');
            if ($('#check-left', '#energy-instruments').length == 0) $(instrumentsArea).after('<div id="check-left" class="left" />');
            $('#check-left, #check-right').empty();
            $(result.d).eq(premise).each(function(i, obj) { // get Premise Types
                SYS.premissType = obj.ID;
                sliderQuestion = obj.SliderQuestion;
                sliderResultPhrase = obj.SliderResultPhrase;
                sliderUnit = obj.SliderUnit;
                SYS.sliderMax = obj.SliderMaxValue;

                SYS.areaPerEmployee = obj.AreaPerEmployee;
                SYS.areaPerRoom = obj.AreaPerRoom;
                SYS.consumption = obj.Consumption;

                $(obj.Actions).each(function(i, actions) { // get Actions per Premise Type
                    var savingsArray = [actions.SavingsPerRoom, actions.RatioCO2ToEnergy, actions.RatioCostToEnergy, actions.SavingsPerAreaUnit];

                    //savingsArray = [perRoom, co2, cost (, perAreaUnit)]

                    // add checkboxes
                    if (i % 2 == 0) {
                        $('#check-left', '#energy-instruments').append('<div class="checkbox"><input type="checkbox" id="check-box-' + i + '" value="' + savingsArray + '" /><label for="check-box-' + i + '">' + actions.Name + '</label></div>');
                    } else {
                        $('#check-right', '#energy-instruments').append('<div class="checkbox"><input type="checkbox" id="check-box-' + i + '" value="' + savingsArray + '" /><label for="check-box-' + i + '">' + actions.Name + '</label></div>');
                    }
                    SYS.greenIndicatorSum = SYS.greenIndicatorSum + actions.RatioCO2ToEnergy;
                });

                SYS.comparisonArray = $(obj.Comparisons);

            });
        },
        complete: function(result) {
            FUNCTIONS.EnergySlider(sliderQuestion, sliderResultPhrase, sliderUnit);
        }

    });
};
FUNCTIONS.EnergySlider = function(SliderQuestion, sliderResultPhrase, sliderUnit) {
    var instruments = $('#energy-instruments');
    $(instruments).prepend('<div id="counter" class="right"></div>');
    $(instruments).prepend('<div id="slider-amount" class="left">' + sliderResultPhrase + '<span><em>kWh</em></span></div>');
    $(instruments).prepend('<h2><em>1.</em> ' + SliderQuestion + '</h2><span id="amount"><span>0</span> ' + sliderUnit + '</span><div id="slider"><div></div></div>');
    $(instruments).slideDown('slow', function() {
        $('#measure,#measure-ie').fadeIn('fast');
    });

    var tds = $(instruments).find('td:odd');
    $(tds).eq(0).find('span').html('0');
    $(tds).eq(1).find('span').html('0');
    $(tds).eq(2).find('span').html('0');



    $(tds).addClass('alt');
    if ($.browser.msie) {
        $(instruments).find('table').after('<div id="measure-ie"><div><img src="/themes/kungsleden/gfx/energy-indicator-ie.gif" /></div></div><div id="comparison" class="clear"></div>');
    } else {
        $(instruments).find('table').after('<div id="measure"><div><img src="/themes/kungsleden/gfx/energy-indicator.png" /></div></div><div id="comparison" class="clear"></div>');
    }
    $('#energy-instruments table').before('<h2 class="clear"><em>3.</em> Så här mycket kan du spara</h2>');
    $('#comparison').append('<p id="compare">Du har inte valt några besparingsåtgärder</p>');

    var checkbox = $('div.checkbox', '#energy-instruments');
    $(checkbox).bind('click', function() {

        $(this).find('input:first').is(':checked') ? $(this).find('input:first').attr('checked', false) : $(this).find('input:first').attr('checked', true);
        if ($(this).find('input:first').is(':checked')) {
            $(this).css({ backgroundPosition: '0 0' });
            FUNCTIONS.GoogleAnalytics(SYS.premise + '/action/' + $(this).find('label').eq(0).text());
        } else {
            $(this).css({ backgroundPosition: '0 -234px' });
        }

        SYS.saveEnergy = 0;
        SYS.saveMoney = 0;
        SYS.saveCO2 = 0;
        SYS.greenActions = 0;
        var count = 0;
        $(checkbox).find('input').each(function(i, elm) {

            var savingsArray = $.makeArray($(elm).attr('value').split(','));
            //savingsArray = [perRoom, co2, cost (, perAreaUnit)]
            SYS.savingsPerRoom = savingsArray[0];
            SYS.savingsCo2 = savingsArray[1];
            SYS.savingsCost = savingsArray[2];
            SYS.savingsPerAreaUnit = savingsArray[3];
            if ($(elm).is(':checked')) {
                if (SYS.savingsPerAreaUnit == 0) {
                    if ($.browser.msie) {
                        SYS.greenActions = SYS.greenActions + parseFloat(savingsArray[1]);
                        SYS.greenIndicator = 1 + SYS.greenActions / SYS.greenIndicatorSum * 115;
                        if (SYS.value != 0) {
                            $('#measure-ie div').css({
                                left: SYS.greenIndicator
                            });
                        }
                    } else {
                        SYS.greenActions = SYS.greenActions + parseFloat(savingsArray[1]);
                        SYS.greenIndicator = 1 + SYS.greenActions / SYS.greenIndicatorSum * 180;
                        if (SYS.value != 0) {
                            $('#measure div').css({
                                '-moz-transform': 'rotate(' + SYS.greenIndicator + 'deg)',
                                '-webkit-transform': 'rotate(' + SYS.greenIndicator + 'deg)'
                            });
                        }
                    }
                    SYS.saveEnergy = SYS.saveEnergy + SYS.savingsPerRoom * SYS.numberOfRooms;
                    SYS.saveMoney = SYS.saveMoney + SYS.savingsPerRoom * SYS.numberOfRooms * SYS.savingsCost;
                    SYS.saveCO2 = SYS.saveCO2 + SYS.savingsPerRoom * SYS.numberOfRooms * SYS.savingsCo2;

                    $(tds).eq(0).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveEnergy).toString()));
                    $(tds).eq(1).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveMoney).toString()));
                    $(tds).eq(2).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveCO2).toString()));
                } else {
                    if ($.browser.msie) {
                        SYS.greenActions = SYS.greenActions + parseFloat(savingsArray[1]);
                        SYS.greenIndicator = 1 + SYS.greenActions / SYS.greenIndicatorSum * 115;
                        if (SYS.value != 0) {
                            $('#measure-ie div').css({
                                left: SYS.greenIndicator
                            });
                        }
                    } else {
                        SYS.greenActions = SYS.greenActions + parseFloat(savingsArray[1]);
                        SYS.greenIndicator = 1 + SYS.greenActions / SYS.greenIndicatorSum * 180;
                        if (SYS.value != 0) {
                            $('#measure div').css({
                                '-moz-transform': 'rotate(' + SYS.greenIndicator + 'deg)',
                                '-webkit-transform': 'rotate(' + SYS.greenIndicator + 'deg)'
                            });
                        }
                    }
                    SYS.saveEnergy = SYS.saveEnergy + SYS.savingsPerAreaUnit * SYS.totalArea;
                    SYS.saveMoney = SYS.saveMoney + SYS.savingsPerAreaUnit * SYS.totalArea * SYS.savingsCost;
                    SYS.saveCO2 = SYS.saveCO2 + SYS.savingsPerAreaUnit * SYS.totalArea * SYS.savingsCo2;

                    $(tds).eq(0).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveEnergy).toString()));
                    $(tds).eq(1).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveMoney).toString()));
                    $(tds).eq(2).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveCO2).toString()));
                }
            } else {
                count++;
                if (count == $(checkbox).length) {
                    SYS.greenIndicator = 0;
                    if ($.browser.msie) {
                        $('#measure-ie div').css({ left: SYS.greenIndicator });
                    } else {
                        $('#measure div').css({ '-moz-transform': 'rotate(' + SYS.greenIndicator + 'deg)', '-webkit-transform': 'rotate(' + SYS.greenIndicator + 'deg)' });
                    }
                    $(tds).eq(0).find('span').html('0');
                    $(tds).eq(1).find('span').html('0');
                    $(tds).eq(2).find('span').html('0');
                    $('#compare', '#comparison').html('Du har inte valt några besparingsåtgärder');
                }
            }
        });
        FUNCTIONS.Comparison();
        return false;
    });

    $('#slider-amount span').eq(1).css({
        position: 'absolute',
        top: '10px',
        left: '455px',
        display: 'block',
        width: '62px',
        height: '22px',
        'background': 'url(/themes/kungsleden/gfx/energy-kWh.png) no-repeat 0 0'
    });
    $('#slider-amount span').eq(1).find('em').css({
        position: 'absolute',
        left: '-9999em'
    });

    $(SYS.arr).each(function(i, item) {
        $('#counter').append('<div></div>');
        $('#counter div').eq(0).css({
            borderLeft: 'none'
        });
        $('#counter div').eq($(SYS.arr).length - 1).css({
            borderRight: 'none'
        });
    });

    $('#slider div').slider({
        value: 0,
        min: 0,
        max: SYS.sliderMax,
        slide: function(event, ui) {
            SYS.value = ui.value;
            if (ui.value > 0) {
                if ($.browser.msie) {
                    $('#measure-ie div').css({
                        left: SYS.greenIndicator
                    });
                } else {
                    $('#measure div').css({
                        '-moz-transform': 'rotate(' + SYS.greenIndicator + 'deg)',
                        '-webkit-transform': 'rotate(' + SYS.greenIndicator + 'deg)'
                    });
                }
            } else if (ui.value == 0) {
                if ($.browser.msie) {
                    $('#measure-ie div').css({
                        left: 0
                    });
                } else {
                    $('#measure div').css({
                        '-moz-transform': 'rotate(0deg)',
                        '-webkit-transform': 'rotate(0deg)'
                    });
                }
            }
            $('#slider-amount span').eq(0).html(SYS.value);
            $('#amount span').html(SYS.value);

            if (SYS.premissType > 1) {
                SYS.totalArea = SYS.value;
            } else {
                SYS.totalArea = SYS.value * SYS.areaPerEmployee;
            }

            if (SYS.totalArea * SYS.consumption < 1000000) {
                SYS.arr = $.makeArray((SYS.totalArea * SYS.consumption).toString().split('').reverse()); // Kilo
                $('#slider-amount span').eq(1).css({
                    position: 'absolute',
                    top: '10px',
                    left: '455px',
                    display: 'block',
                    width: '62px',
                    height: '22px',
                    'background': 'url(/themes/kungsleden/gfx/energy-kWh.png) no-repeat 0 0'
                });
            } else {
                SYS.arr = $.makeArray((Math.round(SYS.totalArea * SYS.consumption / 1000)).toString().split('').reverse()); // Mega
                $('#slider-amount span').eq(1).css({
                    position: 'absolute',
                    top: '10px',
                    left: '455px',
                    display: 'block',
                    width: '69px',
                    height: '22px',
                    'background': 'url(/themes/kungsleden/gfx/energy-MWh.png) no-repeat 0 0'
                });
            }

            SYS.numberOfRooms = SYS.totalArea / SYS.areaPerRoom;

            FUNCTIONS.EnergySliderSet(SYS.value);

            var saveKwh = 0;
            $('#energy-instruments input:checked').each(function(i, elm) {
                saveKwh += parseInt($(this).attr('value'))
            });

            SYS.saveEnergy = 0;
            SYS.saveMoney = 0;
            SYS.saveCO2 = 0;
            var count = 0;

            $('#energy-instruments input:checked').each(function(i, elm) {
                var savingsArray = $.makeArray($(elm).attr('value').split(','));
                //savingsArray = [perRoom, co2, cost (, perAreaUnit)]
                SYS.savingsPerRoom = savingsArray[0];
                SYS.savingsCo2 = savingsArray[1];
                SYS.savingsCost = savingsArray[2];
                SYS.savingsPerAreaUnit = savingsArray[3];

                if ($(elm).is(':checked')) {
                    if (SYS.savingsPerAreaUnit == 0) {
                        SYS.saveEnergy = SYS.saveEnergy + SYS.savingsPerRoom * SYS.numberOfRooms;
                        SYS.saveMoney = SYS.saveMoney + SYS.savingsPerRoom * SYS.numberOfRooms * SYS.savingsCost;
                        SYS.saveCO2 = SYS.saveCO2 + SYS.savingsPerRoom * SYS.numberOfRooms * SYS.savingsCo2;

                        $(tds).eq(0).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveEnergy).toString().toString()));
                        $(tds).eq(1).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveMoney).toString().toString()));
                        $(tds).eq(2).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveCO2).toString().toString()));
                    } else {
                        SYS.saveEnergy = SYS.saveEnergy + SYS.savingsPerAreaUnit * SYS.totalArea;
                        SYS.saveMoney = SYS.saveMoney + SYS.savingsPerAreaUnit * SYS.totalArea * SYS.savingsCost;
                        SYS.saveCO2 = SYS.saveCO2 + SYS.savingsPerAreaUnit * SYS.totalArea * SYS.savingsCo2;

                        $(tds).eq(0).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveEnergy).toString()));
                        $(tds).eq(1).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveMoney).toString()));
                        $(tds).eq(2).find('span').html(FUNCTIONS.Thousand(Math.round(SYS.saveCO2).toString()));
                    }
                }
            });
        },
        stop: function(event, ui) {
            if ($('#energy-instruments input').is(':checked')) {
                FUNCTIONS.Comparison();
            }
        }

    });

};
FUNCTIONS.EnergySliderSet = function(value) {
    if (value < 50) {
        $('#slider div').slider('option', 'step', 1);
    } else if (value >= 50 && value < 500) {
        $('#slider div').slider('option', 'step', 10);
    } else if (value >= 500) {
        $('#slider div').slider('option', 'step', 100);
    }

    $('#counter div').stop().animate({
        top: 0
    }, 100);

    $(SYS.arr).each(function(i, item) {
        try {
            $('#counter div').eq($('#counter div').length - i - 1).stop().animate({
                top: item * -40 + 'px'
            }, 300);
        }
        catch (err) {
            return false;
        }
    });
};
FUNCTIONS.Comparison = function() {
    // check comparison
    $(SYS.comparisonArray).each(function(i, obj) {
        if (obj.ComparisonType == 1) {
            if (SYS.saveMoney > obj.Range) {
                $('#compare', '#comparison').html(obj.Description);
                $('#compare', '#comparison').find('span').eq(0).html(FUNCTIONS.Thousand(Math.round(SYS.saveMoney).toString()) + ' SEK');
                $('#compare', '#comparison').find('span').eq(1).html(FUNCTIONS.Thousand(Math.round(SYS.saveMoney / obj.Ratio).toString()));

                $('#share').find('a').each(function(i, elm) {
                    if (i == 0) {
                        $(elm).attr('href', 'http://www.facebook.com/share.php?u=http://bit.ly/5ml0Je&t=Vi kan minska energikostnaden med ' + FUNCTIONS.Thousand(Math.round(SYS.saveMoney).toString()) + ' SEK per %C3%A5r enligt lokalam%C3%B6jligheter.se%21');
                        $(elm).attr('target', '_blank');
                    } else if (i == 1) {
                    $(elm).attr('href', 'http://twitter.com/home?status=Vi kan minska energikostnaden med ' + FUNCTIONS.Thousand(Math.round(SYS.saveMoney).toString()) + ' SEK per %C3%A5r enligt lokalam%C3%B6jligheter.se%21 http://bit.ly/5ml0Je');
                        $(elm).attr('target', '_blank');
                    }
                });

                return false;
            }
        } else if (obj.ComparisonType == 2) {
            if (SYS.saveEnergy > obj.Range) {
                $('#compare', '#comparison').html(obj.Description);
                $('#compare', '#comparison').find('span').eq(0).html(FUNCTIONS.Thousand(Math.round(SYS.saveEnergy).toString()));
                $('#compare', '#comparison').find('span').eq(1).html(FUNCTIONS.Thousand(Math.round(SYS.saveEnergy / obj.Ratio).toString()));

                $('#share').find('a').each(function(i, elm) {
                    if (i == 0) {
                        $(elm).attr('href', 'http://www.facebook.com/share.php?u=http://bit.ly/5ml0Je&t=Vi kan minska energif%C3%B6rbrukningen med ' + FUNCTIONS.Thousand(Math.round(SYS.saveEnergy).toString()) + ' kwh per %C3%A5r enligt lokalam%C3%B6jligheter.se%21');
                        $(elm).attr('target', '_blank');
                    } else if (i == 1) {
                        $(elm).attr('href', 'http://twitter.com/home?status=Vi kan minska energif%C3%B6rbrukningen med ' + FUNCTIONS.Thousand(Math.round(SYS.saveEnergy).toString()) + ' kwh per %C3%A5r enligt lokalam%C3%B6jligheter.se%21 http://bit.ly/5ml0Je');
                        $(elm).attr('target', '_blank');
                    }
                });

                return false
            }
        } else { return false; }

    });
};
FUNCTIONS.Thousand = function(str) {

    var thousand = "";
	str=str.replace(/ /g,"");
	for(n=str.length;n>0;n-=3){
	    if (thousand) { thousand = " " + thousand; }
	    thousand = str.substring(n - 3, n) + thousand;
	}
	return thousand;

};
FUNCTIONS.GoogleAnalytics = function(uri) {
    if (window.pageTracker) pageTracker._trackPageview('/energisnurran/' + uri);
};