/**
 * Converts an HSL color value to RGB. Conversion formula
 * adapted from http://en.wikipedia.org/wiki/HSL_color_space.
 * Assumes h, s, and l are contained in the set [0, 1] and
 * returns r, g, and b in the set [0, 255].
 *
 * @param   Number  h       The hue
 * @param   Number  s       The saturation
 * @param   Number  l       The lightness
 * @return  Array           The RGB representation
 */
function hslToRgb(h, s, l){
        var r, g, b;

        if(s == 0){
                r = g = b = l; // achromatic
                }
                else{
                function hue2rgb(p, q, t){
                        if(t < 0) t += 1;
                        if(t > 1) t -= 1;
                        if(t < 1/6) return p + (q - p) * 6 * t;
                        if(t < 1/2) return q;
                        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
                        return p;
                }

                var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
                var p = 2 * l - q;
                r = hue2rgb(p, q, h + 1/3);
                g = hue2rgb(p, q, h);
                b = hue2rgb(p, q, h - 1/3);
        }

        return [Math.floor(r * 255), Math.floor(g * 255), Math.floor(b * 255)];
}

function loadmap(element, branchname, lat, lng) {
        var latlng = new google.maps.LatLng(lat, lng);
        var myOptions = {
                zoom: 16,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById(element),
                myOptions);
        $("#" + element).css('display', 'block')
        var marker = new google.maps.Marker({
                position: latlng,
                title: "Paint & Decor " + branchname,
                icon: '/static/images/pndlogo.png'
        });
	latlng = new google.maps.LatLng(-33.82976,18.649348);
	var marker_shell = new google.maps.Marker({
                position: latlng,
                title: "Shell Petrol Station",
                icon: '/static/images/shell.png'
        });
	latlng = new google.maps.LatLng(-33.880481,18.684407);
	var marker_mcds = new google.maps.Marker({
                position: latlng,
                title: "McDonalds",
                icon: '/static/images/mcds.png'
        });
                
        // To add the marker to the map, call setMap();
        marker.setMap(map);  
	marker_shell.setMap(map);
	marker_mcds.setMap(map);
}

var timer = false
function stopScroll() {
        if (timer){
                clearTimeout(timer)
                alert('stopped')
        }
}

function scrollImages(direction) {
        currentScroll = $(".image_scroller").scrollLeft()
        $(".image_scroller").animate({scrollLeft: currentScroll+direction*100}, 'slow');
        //timer = setTimeout(scrollImages(direction), 200)
}

$(document).ready(function(){
        hue = Math.random()
        sat = 0.7
        lum = 0.4
        $("#menu").find("a").each(function(){
                lum *= 1.1
                rgb = hslToRgb(hue, sat, lum)
                rgbhover = hslToRgb(hue, sat, lum * 1.2)
                $(this).css({
                                'background-color': 'rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')'
                        }).bind('mouseover', {'rgbhover': rgbhover}, function(el){
                                $(el.target).css('background-color', 'rgb('+el.data.rgbhover[0]+','+el.data.rgbhover[1]+','+el.data.rgbhover[2]+')')
                        }).bind('mouseout', {'rgb': rgb}, function(el){
                                $(el.target).css('background-color', 'rgb('+el.data.rgb[0]+','+el.data.rgb[1]+','+el.data.rgb[2]+')')
                        });
        });
        
        $("a.googlemaps").bind('click', {loadmap: loadmap}, function(e){
                var place = $(e.target).attr('rel')
                placeName = (place == "brackenfell"? "Brackenfell": "Durbanville");
                if (place == 'stellenbosch') {
                    placeName = 'Stellenbosch';
                }
                new Boxy($("#googlemap"), {title: "Google Map of the Paint & Decor " + placeName + " branch", modal: 'true'});
                if (place == "brackenfell") {
                        loadmap("googlemap", placeName, -33.881532, 18.685631);
                }
                else if (place == "durbanville") {
                        loadmap("googlemap", placeName, -33.828942, 18.649179);
                } else if (place == "stellenbosch") {
                        loadmap("googlemap", placeName, -33.977364, 18.842036);
                }
        });
        
        $("a[href|=#]").click(function(event){
                new Boxy('<div style="padding: 10px; width: 400px;">Sorry, this page is currently under construction. But please check back soon, it\'s almost done!</div>', { title: 'Construction...', modal: 'true'})
        });
})


