﻿
// google map api for http://chris-marine.24hr.se
// ABQIAAAAgwrd-yLHWnaJ92q8sB6lKBQVlLxY5yLu-QNnWOqF6OVX0TbKwBTHy_M9I4brDsYG7WHrPWeVhd75bQ

$(document).ready(function () {
    $(".thumbnails>span>img").each(function () {
        $(this).click(switch_img);
    });
});


function search_products() {
    $("#engine-choices").find("input[type=button]").click(function () {
        var engine_choices = $("#engine-choices");
        var brand_select = engine_choices.find("select[name=brand]");
        var chosen_brand = engine_choices.find("select[name=brand]").val();
        var chosen_model = engine_choices.find("select[name=model]").val();
        var chosen_enginetype = $("#engine-choices").find("input[type=radio]:checked").val();

        var engine = null;

        var brand_sanitized = '';
        if (brand_select.val() != '') {
            brand_sanitized = brand_select.find("option[value=" + brand_select.val() + "]").attr('sanitized');
        }

        var brand = brands[brand_sanitized];
        var hit = false;

        for (var i = 0, ii = brand.length; i < ii; i++) {
            var engine = brand[i];
            if (engine.data.name == chosen_model) {
                hit = true;
                break;
            }
        }
        if (!hit) {
            return;
        }



        var html_cm = "";
        var html_iop = "";


        for (var product_name in engine.products) {
            var product = engine.products[product_name];

            var link = product.link + "&strokes=" + chosen_enginetype + "&brand=" + chosen_brand + "&model=" + chosen_model;
            var description = "";
            if (product.image != "")
                description += "<img src='" + product.image + "' alt='' />";
            description += "<h2>" + product.name + "</h2>";
            if (product.subtitle)
                description += "<span>" + product.subtitle + "</span>";
            var tmp_html = "<li><a href='" + link + "'>" + description + "<div class='clr'></div></a></li>";
            if (product.is_cm)
                html_cm += tmp_html;
            else
                html_iop += tmp_html;
        }

        if (html_cm != "") {
            html_cm = "<h1>Chris-Marine</h1><ul>" + html_cm + "</ul>";
        }
        if (html_iop != "") {
            html_iop = "<h1>IOP Marine</h1><ul>" + html_iop + "</ul>";
        }

        var new_html = "";

        if (current_domain == "chris-marine.com")
            new_html = html_cm + html_iop;
        else
            new_html = html_iop + html_cm;



        $(".engines-selection-product-show").html(new_html);
        $(".product .middle").hide();
        $(".product .right").hide();

        return false;
    });
}

function enginetype_get() {
    if ($("#engine-choices input[value=Stroke2]").attr('checked')) {
        return "Stroke2";
    }
    return "Stroke4";
}

function enginetype_change() {

    var enginetype = enginetype_get();
    var check = "fourstroke";

    if (enginetype == "Stroke2") {
        check = "twostroke";
    }

    elements = '';
    for (var brand_meta in brands_meta) {
        if (brands_meta[brand_meta][check]) {
            var bm = brands_meta[brand_meta];
            elements += "<option name'" + bm.name + "' sanitized='" + brand_meta + "'>" + bm.name + "</option>";
        }
    }
    $("#engine-choices select[name=brand]").html(elements);

    brand_change();
}

function brand_change() {
    var self = this;
    var $self = $(this);
    var path_brand_js = '/Files/js/enginesearch/';
    var engine_choices = $("#engine-choices");
    var brand_select = engine_choices.find("select[name=brand]");
    var model_select = engine_choices.find("select[name=model]");

    var brand_sanitized = '';
    if (brand_select.val() != '') {
        brand_sanitized = brand_select.find("option[value=" + brand_select.val() + "]").attr('sanitized');
    }

    var f = function () {
        var chosen = $self.val();
        var enginetype = $("#engine-choices").find("input[type=radio]:checked").val();
        var brand_sanitized = brand_select.find("option[value=" + brand_select.val() + "]").attr('sanitized');
        model_select.html('');

        var engines = brands[brand_sanitized];
        var elements = '';
        for (var i = 0, ii = engines.length; i < ii; i++) {
            var engine = engines[i];
            if (engine.data.twostroke && enginetype == "Stroke2" || engine.data.fourstroke && enginetype == "Stroke4") {
                elements += '<option value="' + engine.data.articlenumber + '">' + engine.data.name + '</option>';
            }
        }
        model_select.html(elements);
    }

    if (brand_sanitized != '' && brand_sanitized in brands) {
        f();
    } else {
        $.get(path_brand_js + brand_sanitized + '.js', {},
            function (data) {
                brands[brand_sanitized] = data;
                f();
            }, 'json');
    }
}


function switch_img()
{
    $(".thumbnails>span").each(function(){
        $(this).attr('class', '');
    });

    if (typeof productdata != 'undefined')
    {
        $(".producttext").html(productdata[this.id].text);
        $(".topimage>img").attr( "src", productdata[this.id].image );
        $(this).parent().attr('class', 'chosen');
        var imgid = this.id;
        $(".topimage>img").each(function(){
            $(this).unbind('click');
            $(this).click(function(){
                window.open(basepath + 'ProductImageDisplay.aspx?image=' + productdata[imgid].fullimage, 'Imageviewer', 'height=' + productdata[imgid].fullimageheight + ',width=' + productdata[imgid].fullimagewidth + ',scrollbars=1,resizable=1');
            });
        });
    }
}


function createMarker(point, url, name, icon)
{
    //var marker = new GMarker(point);
    var marker = new GMarker(point, icon());
    GEvent.addListener(marker, "click", function() {
                var html = '<a href="' + url + '">' + name + '</a>';
                marker.openInfoWindowHtml(html);
            });
    return marker;
}

function getZoom(north, south, east, west, minlevel)
{
    if (typeof minlevel == 'undefined')
        minlevel = 5;
    var distance = 3958.75 * Math.acos(Math.sin(north/57.2958) * Math.sin(south/57.2958) + Math.cos(north/57.2958) * Math.cos(south/57.2958) * Math.cos(east/57.2958 - west/57.2958));
    if (distance < 0.2 && minlevel >= 16)
        return 16;
    if (distance < 0.5 && minlevel >= 15)
        return 15;
    if (distance < 1 && minlevel >= 14)
        return 14;
    if (distance < 2 && minlevel >= 13)
        return 13;
    if (distance < 3 && minlevel >= 12)
        return 12;
    if (distance < 7 && minlevel >= 11)
        return 11;
    if (distance < 15 && minlevel >= 10)
        return 10;
    if (distance < 25 && minlevel >= 9)
        return 9;
    if (distance < 120 && minlevel >= 8)
        return 8;
    if (distance < 240 && minlevel >= 7)
        return 7;
    if (distance < 450&& minlevel >= 6)
        return 6;
    if (distance < 1000 && minlevel >= 5)
        return 5;
    if (distance < 1600 && minlevel >= 4)
        return 4;
    if (distance < 2200 && minlevel >= 3)
        return 3;
    if (distance < 2600 && minlevel >= 2)
        return 2;
    if (distance < 3200 && minlevel >= 1)
        return 1;
    return 1;
}

function runMap(companies)
{
    if (GBrowserIsCompatible() && companies.length > 0) {
        var map = new GMap2(document.getElementById("map"));
        map.setUIToDefault();
        var north = 0;
        var south = 0;
        var west = 0;
        var east = 0;
        
        var blueIcon = new GIcon(G_DEFAULT_ICON);
        blueIcon.image = "/Files/images/blue-dot.png";
        blueIcon.shadow = '/Files/images/shadow2.png';
        blueIcon.iconSize = new GSize(32, 32);
        blueIcon.shadowSize = new GSize(48, 32);
        blueIcon.iconAnchor = new GPoint(15, 32);
        blueIcon.infoWindowAnchor = new GPoint(15, 1)
        
        var redIcon = new GIcon(G_DEFAULT_ICON);
        redIcon.image = "/Files/images/red-dot.png";
        redIcon.shadow = '/Files/images/shadow2.png';
        redIcon.iconSize = new GSize(32, 32);
        redIcon.shadowSize = new GSize(48, 32);
        redIcon.iconAnchor = new GPoint(15, 32);
        redIcon.infoWindowAnchor = new GPoint(15, 1);


        
        
        for (var i in companies)
        {
            if (north == 0 || companies[i].latitude > north)
                north = companies[i].latitude * 1.0;
            if (south == 0 || companies[i].latitude < south)
                south = companies[i].latitude * 1.0;
            if (west == 0 || companies[i].longitude < west)
                west = companies[i].longitude * 1.0;
            if (east == 0 || companies[i].longitude > east)
                east = companies[i].longitude * 1.0;
                
            var point = new GLatLng( companies[i].latitude, companies[i].longitude );
            var marker = createMarker(point, companies[i].url, companies[i].name, function() { return companies[i].representative == "True" ? { icon: blueIcon } : { icon: redIcon }; } );
           
            map.addOverlay(marker);
        }

        var latitude = south + (north-south)/2.0;
        var longitude = west + (east-west)/2.0;
        var zoom = map.getBoundsZoomLevel( new GLatLngBounds( new GLatLng(south, west), new GLatLng(north, east) ) );
        if (zoom < 1)
            zoom = 1;
        map.setCenter(new GLatLng(latitude, longitude), zoom )
    }
}

function plot_products() {
    var elements = "<li class='blocker'>&nbsp;</li>";
    var id = this.id.replace("spot-", "");
    var group = productgroups[id];
    var pre = "/web/Products.aspx?selection=AllProducts&articleid=";
    if (current_site == "IOP") {
        pre = "/web/Products_1.aspx?selection=AllProducts&articleid=";
    }
    for (var i = 0, ii = group.products.length; i < ii; i++) {
        var product = group.products[i];
        var li = "<li><a href='" + pre + product.id + "'>" + product.name + "</a></li>";
        elements += li;
    }

    $(".imagenavigation .info").html("<ul>" + elements + "</ul>" + group.description);
}

function plot_product_spots() {
    var elements = "";
    var shift_x = 25;
    var shift_y = 20;

    if (typeof(productgroups) != "undefined") {
        for (var i = 0, ii = productgroups.length; i < ii; i++) {
            var group = productgroups[i];
            var spot = "<span class='spot' id='spot-" + i + "' style='left:" + (parseInt(group.x) + shift_x) + "px;top:" + (parseInt(group.y) + shift_y) + "px'></span>";
            elements += spot;
        }
    }
    if (location.search.indexOf('articleid') == -1) {
        $(".imagenavigation").remove("span.spot").append(elements);
        $(".imagenavigation span.spot").each(function () {
            $(this).click(plot_products);
        });
    }
}
