// variables
var map;
var geocoder;
var loc;

// listeners
$(document).ready(function(){

    setNavigation();
    loadMediabox();
    setFAQ();
    checkChequesCount();
    IE6warning();
    setTooltips();
    setFooter();
    rocksBanners();
    setOverlays();
    if ($('#map_canvas').length > 0) {
        initMap();
    }
	dynForms();
});
$(window).resize(function(){
    setFooter();
});

// functions
function checkChequesCount(){
    $('#chequescount input:first').bind({
        change: function(){
            setChequesTotal()
        },
        blur: function(){
            setChequesTotal()
        },
        keydown: function(){
            setChequesTotal()
        },
        keypress: function(){
            setChequesTotal()
        },
        keyup: function(){
            setChequesTotal()
        },
        focus: function(){
            setChequesTotal()
        },
        hover: function(){
            setChequesTotal()
        }
    });
    setChequesTotal();
}

function setChequesTotal(){
    var inp = $('#chequescount input:first');
    var tot = $('#chequestotal span');
    var inpVal = parseInt(inp.val());
    if (isNaN(inpVal)) {
        inpVal = 0;
    }
    tot.html(inpVal * 100);
}

function setFAQ(){
    var i = 1;
    $('div.faq div.sand dt').each(function(){
        var dt = $(this);
        var dd = dt.next('dd');
        dd.hide();
        dt.addClass('closed').css('cursor', 'pointer').click(function(){
            var dt = $(this);
            var dd = dt.next('dd');
            dt.siblings('dt.open').removeClass('open').addClass('closed');
            dt.removeClass('closed').addClass('open');
            dd.siblings('dd').slideUp();
            dd.slideDown('normal', function(){
                setFooter();
            });
        });
        setFooter();
    });
}

function loadMediabox(){

    var params = {
        menu: "false",
        bgcolor: "#dededed",
        wmode: "transparent",
        allowscriptaccess: true
    };
    
    var attributes = {};
    var flashvars = {
		baseUrl: baseUrl,
        xml: "main_" + siteLoc + siteLng + ".xml"
    };
    
    swfobject.embedSWF(baseUrl + "swf/Main.swf", "mediabox", "100%", "100%", "10.0.0", baseUrl + "swf/ei.swf", flashvars, params, attributes);
    
    var flashvars = {
		baseUrl: baseUrl,
        xml: "shops_" + siteLng + ".xml"
    };
    
    swfobject.embedSWF(baseUrl + "swf/Main.swf", "mediabox_shops", "100%", "100%", "10.0.0", baseUrl + "swf/ei.swf", flashvars, params, attributes);
    
     var flashvars = {
		baseUrl: baseUrl,
        xml: "cuizinn_" + siteLng + ".xml"
    };
    
    swfobject.embedSWF(baseUrl + "swf/Main.swf", "mediabox_cuizinn", "100%", "100%", "10.0.0", baseUrl + "swf/ei.swf", flashvars, params, attributes);
    
}

function setNavigation(){
    var drop = $("ul#navi>li:has(ul)");
    drop.append("<span/>");
    drop.children('a:first-child').css("padding-right", "10px");
    drop.hover(function(){
        var li = $(this);
        var lia = li.find('a:first');
        li.css("background-color", "#e6e3d5");
        lia.css("color", "#000");
    }, function(){
        var li = $(this);
        var lia = li.find('a:first');
        li.css("background-color", "transparent");
        if (li.attr('class') == "active") {
            lia.css("color", "#fff");
        }
        else {
            lia.css("color", "#999");
        }
    });
    
    if ($.browser.msie && $.browser.version == "6.0") {
    
        $('#results div:hover').css('cursor', 'pointer');
        
        $('ul#navi li').hover(function(){
            var sub = $(this).children('ul');
            sub.css('margin-left', '-10px');
            sub.children('li').children('a').css('padding', '0');
            sub.children('li').children('a').css('color', '#e00000');
            sub.css('left', 'auto');
            
        }, function(){
            var sub = $(this);
            sub.children('ul').css('left', '-9999px');
        })
    }
    
    $('ul#navi li').hover(function(){
        var sub = $(this).children('ul');
        sub.show()
    }, function(){
        var sub = $(this).children('ul');
        sub.hide();
    });
    
    if ($.browser.msie &&
    ($.browser.version == "6.0" || $.browser.version == "7.0")) {
        $('ul#navi>li ul, ul#navi>li:has(ul)').hover(function(){
            $('ul#navi li.active a').css('border', 'none');
        }, function(){
            $('ul#navi li.active a').css('border-bottom', '5px solid red');
        });
    }
}


/* MAPS */

function initMap(){
    var startcenter = new google.maps.LatLng(51.013915, 4.201821); // belgium
    var mapOptions = {
        zoom: 10,
        center: startcenter,
        disableDefaultUI: true,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        navigationControl: true
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
}

function setMap(cLat, cLng){

    var center = new google.maps.LatLng(cLat, cLng);
    var bounds = new google.maps.LatLngBounds();
    var point;
    var i = 0;
    
    var infowindow = new google.maps.InfoWindow({
        content: '',
        maxWidth: 280
    });
    
    
    // get all the coords from results
    $('#results li a').each(function(){
        var loc = $(this);
        var rel = loc.attr('rel');
        var addr = loc.html().replace(' - ', '<br />');
        loc.removeAttr('href');
        var rLng = parseFloat(rel.substr(rel.indexOf(',') + 1));
        var rLat = parseFloat(rel.substring(0, rel.indexOf(',')));
        
        var e = rel.split(',');
        
        var alwaysopen = e[2];
        var adblue = e[3];
        var lpg = e[4];
        var euro95xl = e[5];
        var euro98xl = e[6];
        var dieselxl = e[7];
        var highspeedpump = e[8];
        var carwash = e[9];
        var shop = e[10];
        var bakerytype = e[11];
        var served = e[12];
        var rentals = e[13];
        var internet = e[14];
        var loyalty = e[15];
        var restaurant = e[16];
        
        var icons = "";
        
        if (alwaysopen == 1) {
            icons += '<img src="' + baseUrl + 'img/alwaysopen.gif" class="shoplegendlink" alt="24h" title="24h" /> ';
        }
        if (adblue == 1) {
            icons += '<a href="../../../../../adblue"><img src="' + baseUrl + 'img/addblue.gif" class="shoplegendlink" alt="AdBlue" title="AdBlue" /></a> ';
        }
        if (lpg == 1) {
            icons += '<a href="../../../../../fuels"><img src="' + baseUrl + 'img/lpg.gif" class="shoplegendlink" alt="LPG" title="LPG" /></a> ';
        }
        if (euro95xl == 1 || euro98xl == 1) {
            icons += '<a href="../../../../../xlfuels"><img src="' + baseUrl + 'img/euroxl.gif" class="shoplegendlink" alt="Euro XL" title="Euro XL" /></a> ';
        }
        if (dieselxl == 1) {
            icons += '<a href="../../../../../xlfuels"><img src="' + baseUrl + 'img/dieselxl.gif" class="shoplegendlink" alt="Diesel XL" title="Diesel XL" /></a> ';
        }
        if (highspeedpump == 1) {
            icons += '<img src="' + baseUrl + 'img/highspeedpump.gif" class="shoplegendlink" alt="High Speed Pump" title="High Speed Pump" /> ';
        }
        if (carwash == 1) {
            icons += '<a href="../../../../../carwash"><img src="' + baseUrl + 'img/carwash.gif" class="shoplegendlink" alt="Carwash" title="Carwash" /></a> ';
        }
        if (shop == 1) {
            icons += '<img src="' + baseUrl + 'img/shop.gif" class="shoplegendlink" alt="Shop" title="Shop" /> ';
        }
        if (bakerytype == 1) {
            icons += '<a href="../../../../../shops"><img src="' + baseUrl + 'img/goshop.gif" class="shoplegendlink" alt="GO Bakery" title="GO Bakery" /></a> ';
        }
        if (bakerytype == 0) {
            icons += '<img src="' + baseUrl + 'img/nonservedbakery.gif" class="shoplegendlink" alt="Non-Served Bakery" title="Non-Served Bakery" /> ';
        }
        if (served == 1) {
            icons += '<img src="' + baseUrl + 'img/servedbakery.gif" class="shoplegendlink" alt="Served Bakery" title="Served Bakery" /> ';
        }
        if (rentals == 1) {
            icons += '<a href="../../../../../rentals"><img src="' + baseUrl + 'img/rentals.gif" class="shoplegendlink" alt="Rentals" title="Rentals" /></a> ';
        }
        if (internet == 1) {
            icons += '<a href="../../../../../internet"><img src="' + baseUrl + 'img/internet.gif" class="shoplegendlink" alt="Internet" title="Internet" /></a> ';
        }
        if (loyalty == 2) {
            icons += '<a href="http://www.yourstars.be/"><img src="' + baseUrl + 'img/stars.gif" class="shoplegendlink" alt="Stars" title="Stars" /></a> ';
        }
        if (loyalty == 1) {
            icons += '<a href="http://www.rocks.nl/"><img src="' + baseUrl + 'img/rocks.gif" class="shoplegendlink" alt="Rocks" title="Rocks" /></a> ';
        }
        if (restaurant == 1) {
            icons += '<img src="' + baseUrl + 'img/restaurant.gif" class="shoplegendlink" alt="Restaurant" title="Restaurant" /> ';
        }
        
        
        var markersArray = [];
        // extend boundaries
        point = new google.maps.LatLng(rLat, rLng);
        bounds.extend(point);
        // set marker
        var marker = new google.maps.Marker({
            position: point,
            map: map,
            title: loc.attr('title'),
            icon: baseUrl + 'img/pointer.png'
        });
        markersArray.push(marker);
        
        // create infowindow and add listeners        
        var mPos = marker.getPosition();
        
        // open infowindow on click
        google.maps.event.addListener(marker, 'click', function(){
            infowindow.setContent('<p class="ballon">' + addr + '<br /><br />' + icons + '</p>');
            infowindow.setPosition(mPos);
            map.panTo(mPos);
            $('.ballon').parent('div').css('overflow', 'hidden');
            $('.ballon').parent('div').parent('div').css('overflow', 'hidden');
        });
        loc.click(function(){
            infowindow.setContent('<p class="ballon">' + addr + '<br /><br />' + icons + '</p>');
            infowindow.setPosition(mPos);
            map.panTo(mPos);
            $('.ballon').parent('div').css('overflow', 'hidden');
            $('.ballon').parent('div').parent('div').css('overflow', 'hidden');
            
        });
        
        google.maps.event.addListener(map, 'tilesloaded', function(){
            $('.ballon').parent('div').css('overflow', 'hidden');
            $('.ballon').parent('div').parent('div').css('overflow', 'hidden');
        });
        
        // navcontrol
        map.navigationControl = false;
        
        // count number of dealers
        i++;
        
        infowindow.open(map);
    });
    
    
    // hide map when no dealers
    if (i == 0) {
        $('#map_canvas, #atm').hide();
    }
    
    // center map correctly according to boundaries
    map.fitBounds(bounds);
    
    $('#mapbox').css('visibility', 'visible');
}


function setFooter(){

    var wHeight = $(window).height();
    
    var cHeight;
    
    if ($('#content').offset().top > 400) {
        cHeight = $('#content').height() + 585;
    }
    else 
        if ($('#content').offset().top > 300) {
            cHeight = $('#content').height() + 463;
        }
        else {
            cHeight = $('#content').height() + 163;
        }
    
    if (wHeight > cHeight) {
        var pBottom = wHeight - cHeight;
        $('#content').css({
            'padding-bottom': pBottom
        });
    }
    else {
        $('#content').css({
            'padding-bottom': 0
        });
    }
}

function IE6warning(){
    if (jQuery.browser.msie && jQuery.browser.version.substr(0, 1) == '6') {
        var warningText;
        if (siteLng == "nl") {
            warningText = 'U gebruikt een verouderde browser. Update hier voor een optimaal en veiliger surfgenot.'
        }
        if (siteLng == "fr") {
            warningText = 'Vous utilisez un navigateur obsolète. Cliquez ici pour un plaisir optimal et une navigation plus sûre.'
        }
        $('body').prepend($('<a/>', {
            id: 'IE6warning',
            text: warningText,
            href: 'http://www.browserchoice.eu/',
            target: '_blank'
        }));
        
        $('html').css('background-position', '0 24px');
        $('#IE6warning').css('display', 'block');
    }
}

function setTooltips(){
    $('#map img[title]').qtip({
        style: {
            name: 'dark',
            tip: true
        }
    });
}

function rocksBanners(){
    $('ul#rocksbanner').innerfade({
        animationtype: 'fade',
        speed: 750,
        timeout: 5500,
        type: 'random',
        containerheight: '1em'
    });
}


function setOverlays(){

    if (navigator.userAgent.match(/iPad/i) != null) {
        //$('.overlayLink').attr('target', '_blank');
        $('.overlayLink').fancybox({
            height: 500,
            width: 500,
            type: 'iframe'
        })
    }
    else {
        $('.overlayLink').fancybox({
            height: 380,
            width: 500,
            type: 'iframe'
        })
        
    }
}


function applyCheck(){

    var v = true;
    $('body#apply form input.obl, body#apply form textarea.obl').each(function(){
        if ($(this).val() == "") {
            $(this).addClass('oblField');
            v = false;
        }
        else {
            $(this).removeClass('oblField');
        }
    });
    if (v == false) {
        return false;
    }
    else {
        return true;
    }
	
}


function dynForms(){

	$('#addcourse').removeAttr('href').css('cursor', 'pointer').click(function(){
		var a = $('fieldset.education').html();
		$('fieldset.education').after('<fieldset>' + a + '</fieldset>');
	});
	$('#addlang').removeAttr('href').css('cursor', 'pointer').click(function(){
		var tr = $('fieldset.lang table tr:last').html();
		$('fieldset.lang table').append('<tr>' + tr + '</tr>');
		$('fieldset.lang table tr:last td:first').empty().html('<input type="text" name="languages[]" />');
	});
	$('#addpro').removeAttr('href').css('cursor', 'pointer').click(function(){
		var a = $('fieldset.proskills').html();
		$('fieldset.proskills').after('<fieldset>' + a + '</fieldset>');
	});
	$('#addref').removeAttr('href').css('cursor', 'pointer').click(function(){
		var a = $('fieldset.references').html();
		$('fieldset.references').after('<fieldset>' + a + '</fieldset>');
	});
	
	$( "input.date" ).datepicker({ dateFormat: 'yy-mm-dd' });
}

