﻿/* 
    Custom functions 
*/

function resetDD(targetId) {
    document.getElementById(targetId).selectedIndex = 0;
}

function swapTextBox(first, second) {
    var firstValue = $("#" + first).val();
    var secondValue = $("#" + second).val();

    $("#" + second).val(firstValue);
    $("#" + first).val(secondValue);
}

function swapInputText(step) {
    var adrField = '';
    if (document.getElementById(streetInputID).value != '') {
        adrField = document.getElementById(streetInputID).value + "," + $(".zipcode").text() + "," + $("span.city ").text();
    }
    if (step) {
        document.getElementById('fromLink').style.fontWeight = "normal";
        document.getElementById('toLink').style.fontWeight = "bold";
        $('#goTo').show();
        $('#goFrom').hide();
        document.getElementById('goTo').getElementsByTagName('input')[0].value = adrField;
    } else {
        document.getElementById('fromLink').style.fontWeight = "bold";
        document.getElementById('toLink').style.fontWeight = "normal";
        $('#goTo').hide();
        $('#goFrom').show();
        document.getElementById('goFrom').getElementsByTagName('input')[0].value = adrField;
    }
}

function routePlanner(id, step) {

    $('#'+errorBoxId).hide();

    var gAdr = (step == 'to') ? document.getElementById('goTo').getElementsByTagName('input')[0].value : document.getElementById('goFrom').getElementsByTagName('input')[0].value;
    adrUrl = encodeURIComponent(gAdr);

    var geocoder = new GClientGeocoder();
    geocoder.getLatLng(gAdr,
        function(point) {
            if (!point) {
                $("#errorMsg").html(contentText['EMAdressNotExist']);
                $("#" + errorBoxId).show();
            } else {
                var url = 'RoutePlanner.aspx?adr=' + adrUrl + '&step=' + step + '&id=' + id + "&lang=" + lang;
                window.location.href = url;
            }
        }
    );
 
}

function showErrorMessage(errorMsg) {
   $('#errorMsg').html(errorMsg);
   $('#errorBlock').show();
   $('#contentBlock').hide();
   $('#gMap').hide()
   $('#listLoader').hide();
}


/* 
    gMap functions 
*/

// Create Marker
function createMarker(dealer, point, hideMarker) {

    var marker;
    var markerOptions = { icon: GetIcon(dealer) };
    if (dealer != null && !hideMarker) {

        marker = new GMarker(point, markerOptions);

        GEvent.addListener(marker, "click", function() {

            var DealerNameStat = escape(dealer["name"]);

            var html = '<div class=\"googleMapsOverlay\">';
            html += '<div class=\"body\"><div class=\"content\">';

            html += '<div class="icons">'
            if (dealer['elecInst'] == 'true')
                html += '<img src=\"/design/images/icons/icon_elect.jpg\" />';

            if (dealer['gasInst'] == 'true')
                html += '<img src=\"/design/images/icons/icon_gas.jpg\" />';

            if (dealer['renewables'] == 'true')
                html += '<img src=\"/design/images/icons/icon_renew.jpg\" />';

            if (dealer['IsPost'] == 'true')
                html += '<img src=\"/design/images/icons/icon_post.jpg\" />';

            if (dealer['isRetailer'] == 'true')
                html += '<img src=\"/design/images/icons/icon_retail.jpg\" />';

            html += '</div>'



            html += '<h3>' + dealer["name"] + '</h3>';
            html += '<p class=\"address\">' + dealer["houseNumber"] + ' ' + dealer["street"] + ' ' + dealer["postalCode"] + ' ' + dealer["city"] + '</p>';
            if (dealer["telephone"] != '') {
                html += '<p class=\"phone\">' + dealer["telephone"] + '</p>';
            }
            if (dealer["email"] != '') {
                html += '<p class=\"email\"><a href="mailto:' + dealer["email"] + '" onclick="EventStat(\'' + DealerNameStat + '\')">' + dealer["email"] + '</a></p>';
            }
            if (dealer["webSite"] != '') {
                html += '<p class=\"webSite\"><a href="' + dealer["webSite"] + '">' + dealer["webSite"] + '</a></p>';
            }

            html += '<h4>' + contentText['directionTitle'] + ' :</h4>';
            html += '<p class=\"links\"><a href=\"javascript:swapInputText(true);" id="toLink">' + contentText['toThis'] + '</a> - <a href=\"javascript:swapInputText(false);" id="fromLink">' + contentText['fromThis'] + '</a></p>';
            html += '<div id="goTo"><input type="text" name="street" id="streetTo" /><input type="button" onclick="routePlanner(\'' + dealer['ID'] + '\',\'to\')" value="Go" /></div>';
            html += '<div id="goFrom"><input type="text" name="street" id="streetFrom" /><input type="button" onclick="routePlanner(\'' + dealer['ID'] + '\',\'from\')" value="Go" /></div>';
            html += '<a href=\"javascript:window.self.print();\" class=\"print\">' + contentText['printLink'] + '</a>';
            html += '</div></div>';
            html += '</div>';

            marker.openInfoWindowHtml(html);
            startAdr = dealer["houseNumber"] + ' ' + dealer["street"] + ', ' + dealer["postalCode"] + ' ' + dealer["city"] + ' Belgium';

            pageTracker._trackPageview("/locator/clicks/" + DealerNameStat + "/map");
        });
    }
    else
    {
        marker = new GMarker(point, markerOptions);
    }
    

    map.addOverlay(marker);

    if (hideMarker) {
        marker.hide();
    }
}

function EventStat(dName) {
    var dealerName = escape(dName);
    pageTracker._trackPageview("/locator/clicks/" + dealerName + "/email");
}

function resetPage() {
    $("#dealerList").empty();
    $("#" + errorBoxId).hide();
    $("#pager").empty();
    $("#numResult").hide();
    currentCreationPage = 1;
    cptItemperPage = 0;
    map.clearOverlays();
}

function GetIcon(dealer) {

    var icon = new GIcon();
    if (dealer != null) {
        icon.image = "/design/markers/red_" + dealer['dealerNumItem'] + ".png";
        icon.shadow = "/design/markers/red_shadow.png";
        icon.printImage = "/design/markers/red_" + dealer['dealerNumItem'] + ".png";
        icon.transparent = "/design/markers/red_transparent.png";
        icon.mozPrintImage = "/design/markers/red_" + dealer['dealerNumItem'] + ".png";
        icon.printShadow = "/design/markers/red_shadow.png";
    } else {
        icon.image = "/design/markers/marker_greenA.png";
        icon.shadow = "/design/markers/red_shadow.png";
        icon.printImage = "/design/markers/marker_greenA.png";
        icon.transparent = "/design/markers/red_transparent.png";
        icon.mozPrintImage = "/design/markers/marker_greenA.png";
        icon.printShadow = "/design/markers/red_shadow.png";
    }
    
    icon.iconSize = new GSize(IconSize.iconSize.w, IconSize.iconSize.h);
    icon.shadowSize = new GSize(IconSize.shadowSize.w, IconSize.shadowSize.h);
    icon.iconAnchor = new GPoint(IconSize.iconAnchor.w, IconSize.iconAnchor.h);
    icon.infoWindowAnchor = new GPoint(IconSize.infoWindowAnchor.w, IconSize.infoWindowAnchor.h);

    return icon;
}

/* 
    Design Function
*/

// Create list direction
var createListDirection = {

    mapname: '',
    //route distance
    routeDistance: function(dist) {
        return '<p class="subtitle">' + dist + '</p>';
    },

    //waypoint banner
    waypoint: function(point, type, address) {
        var target = '"' + this.mapname + ".showMapBlowup(new GLatLng(" + point.toUrlValue(6) + "))" + '"';
        var flag = (type == "play") ? "home" : "end";
        return '<div class="steps start" onclick=' + target + '><img class="' + flag + ' flag" src="design/images/blank.gif" />' + address + '</div>';
    },

    //step detail
    detail: function(point, num, description, dist) {
        var target = '"' + this.mapname + ".showMapBlowup(new GLatLng(" + point.toUrlValue(6) + "))" + '"';
        var html = '';
        html += '<li onclick=' + target + '><span class="nbItem">' + num + '.</span>';
        html += description;
        html += '<span class="distance">' + dist + '</span>';
        html += '</li>';
        return html;
    },

    //Copyright tag
    copyright: function(text) {
        return '<div>' + text + "</div>";
    }
}

/* Selected Dealer */
function selectedDealer() {
    var inputTags = document.getElementById('legend').getElementsByTagName('input');
    for (i = 0; i <= inputTags.length - 1; i++) {
        var elem = inputTags[i].checked;
        selectedDealerValue[i] = (elem) ? true : false;
    }
}

/*
 *   Navigation
 */

//Nav pager
function pagerLink_OnClick(i) {
    currentPage = i;
    var numItemDealer = $("#dealerList div").length;
    for (var j = 0; j < numItemDealer; j++) {
        $('#pagingPanel' + (j + 1)).hide();
        $('#pagingLink' + (j + 1)).removeClass("selected");
    }
    $('#pagingPanel' + i).show();
    $('#pagingLink' + i).addClass("selected");
}

function navPager(step) {

    var numItemDealer = $("#dealerList div.page").length;
    if (step) {
        if (currentPage > 1) {
            currentPage = currentPage - 1;
            pagerLink_OnClick(currentPage);
        }
    } else {
        if (currentPage < numItemDealer) {
            currentPage = currentPage + 1;
            pagerLink_OnClick(currentPage);
        }
    }

    return false;
}

// Create pager
function createPager() {

    var numItemDealer = $("#dealerList div.page").length;

    if (numItemDealer > 1) {
        $("#pager").append('<a href="javascript:void(0);" id="prev"><img src="/design/images/back_arrow.gif" alt="" /></a>');
        $("#prev").click(function() {
            navPager(true);
        });

        for (var i = 0; i < numItemDealer; i++) {
            var itemId = i + 1;
            $("#pager").append('<a href="javascript:void(0);" id="pagingLink' + itemId + '" onclick="javascript:pagerLink_OnClick(' + itemId + ')">' + itemId + '</a>');
            if (itemId < numItemDealer) { $("#pager").append(' - '); }
            if (i == 0) {
                $('#pagingLink' + itemId).addClass("selected");
            }
        }

        $("#pager").append('<a href="javascript:void(0);" id="next"><img src="/design/images/next_arrow.gif" alt="" /></a>');
        $("#next").click(function() {
            navPager(false);
        });
    }
}

/* 
 *  Create Content
 */

/* Create List */

var cptItemperPage = 0;
function createItemList(dealer, numDealer, currentDealer) {
    
    if (cptItemperPage == 0) {
        $("#dealerList").append('<div id="pagingPanel' + currentCreationPage + '" class="page"></div>');
        if (currentCreationPage != 1) {  $("#pagingPanel" + currentCreationPage).hide(); }
    }

    $("#pagingPanel" + currentCreationPage).append("<li>"+$(createItem(dealer)).html()+"</li>");
    cptItemperPage++;
    
    if (cptItemperPage == pageSize) {
        cptItemperPage = 0;
        currentCreationPage++;
    }
    
    $("#loader .loaderBackground").css("height", $("#container").height()).css("width", $("#container").width());
}

// Create item
function createItem(dealer) {

    var liTag = document.createElement("li");

	var iconTags = {};
	iconTags.post = document.createElement("img");
	iconTags.post.setAttribute("src", "/design/images/icons/icon_post.jpg");
	
	iconTags.retail = document.createElement("img");
	iconTags.retail.setAttribute("src", "/design/images/icons/icon_retail.jpg");
	
	iconTags.elect = document.createElement("img");
	iconTags.elect.setAttribute("src", "/design/images/icons/icon_elect.jpg");
	
	iconTags.gas = document.createElement("img");
	iconTags.gas.setAttribute("src", "/design/images/icons/icon_gas.jpg");
	
	iconTags.renew = document.createElement("img");
	iconTags.renew.setAttribute("src", "/design/images/icons/icon_renew.jpg");
	
	var iconTag = document.createElement("div");
	iconTag.className = "icons";
	
	if(dealer['elecInst'] == 'true')
		iconTag.appendChild(iconTags.elect)
	
	if(dealer['gasInst'] == 'true')
		iconTag.appendChild(iconTags.gas)
	
	if(dealer['renewables'] == 'true')
		iconTag.appendChild(iconTags.renew)
	
	if(dealer['IsPost'] == 'true')
		iconTag.appendChild(iconTags.post)
	
	if(dealer['isRetailer'] == 'true')
		iconTag.appendChild(iconTags.retail)


    liTag.appendChild(iconTag);

    var divTag = document.createElement("div");
    divTag.setAttribute("class", "markersList");
    var imgTag = document.createElement("img");
    imgTag.setAttribute("src", "/design/markers/red_" + dealer['dealerNumItem'] + ".gif");
    divTag.appendChild(imgTag);
    liTag.appendChild(divTag);
	
	var h3Tag = document.createElement("h3");
    h3Tag.appendChild(document.createTextNode(dealer['name']));
    liTag.appendChild(h3Tag);
	
    var pTag = document.createElement("p");
    pTag.setAttribute("class", "address");
    var imgTag = document.createElement("img");
    imgTag.setAttribute("src", "/design/images/icons/icon_address.gif");
    

	pTag.appendChild(imgTag);
    pTag.appendChild(document.createTextNode(dealer["houseNumber"] + " " + dealer["street"] + " " + dealer["postalCode"] + " " + dealer["city"]));
    liTag.appendChild(pTag);

    if (dealer["telephone"] != "") {
        var pTag = document.createElement("p");
        
        pTag.setAttribute("class", "phone");
        var imgTag = document.createElement("img");
        imgTag.setAttribute("src", "/design/images/icons/icon_phone.gif");
        pTag.appendChild(imgTag);
        pTag.appendChild(document.createTextNode(dealer["telephone"]));

        liTag.appendChild(pTag);
    }

    if (dealer["email"] != "") {
        var pTag = document.createElement("p");
        
        pTag.setAttribute("class", "email");
        
        var imgTag = document.createElement("img");
        imgTag.setAttribute("src", "/design/images/icons/icon_mail.gif");
        pTag.appendChild(imgTag);

        var DealerNameStat = escape(dealer['name']);
        var aTag = document.createElement("a");
        aTag.setAttribute("href", 'mailto:' + dealer["email"]);
        aTag.appendChild(document.createTextNode(dealer["email"]));
        aTag.onclick = new Function("return EventStat('" + DealerNameStat + "')");
        
        pTag.appendChild(aTag);

        liTag.appendChild(pTag);
    }

    if (dealer["webSite"] != "") {
        var pTag = document.createElement("p");
        pTag.setAttribute("class", "webSite");

        var imgTag = document.createElement("img");
        imgTag.setAttribute("src", "/design/images/icons/icon_web.gif");
        pTag.appendChild(imgTag);
        
        var aTag = document.createElement("a");
        aTag.setAttribute("href", dealer["webSite"]);
        aTag.appendChild(document.createTextNode(dealer["webSite"]));
        pTag.appendChild(aTag);

        liTag.appendChild(pTag);
    }
    return liTag;
}

function CheckBoxEvent() {
    $("#legend input[type='checkbox']").click(function() {
        listHtml();
    });
}

function DealerSpecs() {
    var cbDealerSpec = $("#legend input[type='checkbox']");
    var numItem = cbDealerSpec.length - 1;
    var dealerSpec = '';
    var i = 0;
    cbDealerSpec.each(function() {
        dealerSpec += $(this).is(':checked');
        if (i < numItem) {
            dealerSpec += ",";
        }
        i++;
    });
    return dealerSpec;
}

/*
function showAllPvLink() {
    if ($("#legend input[type='checkbox']:eq(2):checked").length > 0) {
        $("#showAllPV").show();
    } else {
        $("#showAllPV").hide();
    }
}
*/
