﻿// Initiations

// Search form hint text
$("document").ready(function() {
    handleSearchForm();
    $(".soklist label").css("display", "none");
});

function handleSearchForm() {
    // Get the input ID and it's label text
    var labelValue = $(".soklist input[type='text']:first").siblings("label").html();
    var inputID = "#" + $(".soklist input[type='text']:first").attr("id");

    // Set the input value equal to label text

    if ($(inputID).val().length == 0) {
        $(inputID).val(labelValue);
    }

    // Attach event listeners to the input
    $(inputID).bind("focus blur", function(e) {
        var eLabelVal = $(this).siblings("label").html();
        var eInputVal = $(this).val();

        // Empty input value if it equals it's label
        if (eLabelVal == eInputVal) {
            $(this).val("");
            // Reset the input value if it's empty
        } else if ($(this).val() == "") {
            $(this).val(eLabelVal);
        }
    });
}

/*Visa mål grafiskt*/
var stepDataContainer = new Object();
var theStepDataList = new Array();
var positioncounter = 0;

function StepData(id, steps, text, type) {
    this.id = id;
    this.steps = steps;
    this.text = text;
    this.type = type;
}

function renderStepMap(container, relation, className) {
    var goaldistance = container[container.length - 1].steps;
    var selector = 'div[rel=' + relation + ']';
    $(selector).after($('<div/>').addClass(className));
    var insertionPoint = $(selector + ' + .stegkarta');
    insertionPoint.append($('<img class="distans" src="/app_themes/Master/img/Distans.png" alt="" />'));
    for (var i in container) {
        insertionPoint.append(insertMapPoint(container[i], goaldistance, 350, 28));
    }
}

function insertMapPoint(el, maxpos, pixels, offset) {
    var stepsperkilometer = 1400;
    var item = "";
    var pointmarker = "";
    var pos = el.steps;
    var specific = "";
    var pixels = pixels;
    switch (el.type) {
        case 'Team':
            specific = ' p' + positioncounter;
            pointmarker = '<div class="stegbadge"><h2>' + el.text + '</h2><p>(' + Math.round(el.steps / stepsperkilometer) + ' km)</p>';
            calculatedposition = 'top:' + Math.min(pixels + offset, (Math.floor(pos * pixels / maxpos) + offset)) + 'px';
            item = '<div class="team' + specific + '" style="' + calculatedposition + '">' + pointmarker + '</div>';
            positioncounter = (positioncounter + 1) % 3;
            break;
        case 'User':
            specific = ' p' + positioncounter;
            pointmarker = '<div class="stegbadge"><h2>' + el.text + '</h2><p>(' + Math.round(el.steps / stepsperkilometer) + ' km)</p>';
            calculatedposition = 'top:' + Math.min(pixels + offset, (Math.floor(pos * pixels / maxpos) + offset)) + 'px';
            item = '<div class="user' + specific + '" style="' + calculatedposition + '">' + pointmarker + '</div>';
            positioncounter = (positioncounter + 1) % 3;
            break;
        case 'OtherUser':
/*
            specific = ' p' + positioncounter;
            pointmarker = '<div class="stegbadge"><h2>' + el.text + '</h2><p>(' + Math.round(el.steps / stepsperkilometer) + ' km)</p>';
            calculatedposition = 'top:' + Math.min(pixels + offset, (Math.floor(pos * pixels / maxpos) + offset)) + 'px';
            item = '<div class="stegare' + specific + '" style="' + calculatedposition + '">' + pointmarker + '</div>';
            positioncounter = (positioncounter + 1) % 3;
*/            
            break;
        case 'OtherTeam':
            specific = ' p' + positioncounter;
            pointmarker = '<div class="stegbadge"><h2>' + el.text + '</h2><p>(' + Math.round(el.steps / stepsperkilometer) + ' km)</p>';
            calculatedposition = 'top:' + Math.min(pixels + offset, (Math.floor(pos * pixels / maxpos) + offset)) + 'px';
            item = '<div class="otherteam ' + specific + '" style="' + calculatedposition + '">' + pointmarker + '</div>';
            positioncounter = (positioncounter + 1) % 3;
            break;
        case 'RouteItem':
            if (pos == 0) {
                specific = ' startpunkt';
            }
            else if (pos == maxpos) {
                specific = ' slutpunkt';
            }
            else {
                pointmarker = '<img src="/app_themes/Master/img/Ortcirkel.png" alt="" />';
            }
            calculatedposition = 'top:' + (Math.floor(pos * pixels / maxpos) + offset) + 'px';
            item = '<div class="punkt' + specific + '" style="' + calculatedposition + '" title="(' + Math.round(el.steps / stepsperkilometer) + ' km' + ')">' + el.text + pointmarker + '</div>'
            break;
        default:
            break;
    }
    return item;
}
