
if (Array.inArray === undefined) {
    Array.prototype.inArray = function(obj){
        for (var i = 0; i < this.length; i++) {
            if (this[i] === obj) {
            
                return true
            }
        }
        return false;
    }
}

var fm_addClass = function(elem, classNames){
    var aClasses = (classNames || "").split(/\s+/);
    for (i = 0; i < aClasses.length; i++) {
        if (elem.nodeType == 1 && !fm_hasClass(elem.className, classNames)) {
            elem.className += (elem.className ? " " : "") + aClasses[i];
        }
    }
};

var fm_removeClass = function(elem, classNames){

    var aClasses = (elem.className || "").split(/\s+/);
    var aRemoveClasses = (classNames || "").split(/\s+/);
    for (i = 0; i < aClasses.length; i++) {
        if (aRemoveClasses.inArray(aClasses[i])) {
            aClasses.splice(i, 1);
        }
    }
    elem.className = aClasses.join(' ');
};

var fm_hasClass = function(elem, className){
    var aClasses = (elem.className || "").split(/\s+/);
    if (aClasses.inArray(className)) {
        return true;
    }
    else {
        return false;
    }
};

var footballMap = ITVMap.create({
    width: 600,
    height: 600,
    zoom: 6,
    location: [-54, 4]
});

// Sort clubs into leagues and store in object
var oLeagues = {};
for (club in allClubs) {
    if (oLeagues[allClubs[club].league] === undefined) {
        oLeagues[allClubs[club].league] = {};
    }
    allClubs[club].query = allClubs[club].postcode.replace(/ /, '') + '';
    oLeagues[allClubs[club].league][club] = allClubs[club];
    
    if (oCords[allClubs[club].query] !== undefined) {
        allClubs[club].location = [oCords[allClubs[club].query].lng, oCords[allClubs[club].query].lat];
    }
    
    var sIconPath = '';
    var sFlag = '';
    var aZoom = [];
    switch (allClubs[club].league) {
        case 'Premier League':
            sFlag = '/_lib/footballMap/img/flags/green_flag.png';
            break;
            
        case 'Championship':
            sFlag = '/_lib/footballMap/img/flags/blue_flag.png';
            break;
            
        case 'League One':
            sFlag = '/_lib/footballMap/img/flags/red_flag.png';
            break;
            
        case 'League Two':
            sFlag = '/_lib/footballMap/img/flags/purple_flag.png';
            break;
            
        case 'Scottish Premier League':
            sFlag = '/_lib/footballMap/img/flags/scotland.png';
            break;
    }
    
    if (!allClubs[club].logo) {
        sIconPath = '/_lib/footballMap/img/';
        allClubs[club].logo = 'default.png';
    }
    else {
        sIconPath = '/_lib/footballMap/img/logoSmall/';
    }
    
    oLeagues[allClubs[club].league][club].icon = [{
        href: sFlag,
        zoom: [0, 8],
        size: [22, 22]
    }, {
        href: sIconPath + allClubs[club].logo,
        zoom: [9, 20],
        size: [45, 75]
    }];
    
    oLeagues[allClubs[club].league][club].bubbleHTML = function(eMarker){
        var sBubbleHTML = [];
        
        sBubbleHTML.push('<div style="height:120px;width:300px;">');
        if (eMarker.largeLogo) {
            if (eMarker.itvURL) {
                sBubbleHTML.push('<a href="' + eMarker.itvURL + '">');
            }
            sBubbleHTML.push('<img src="/_lib/footballMap/img/logoLarge/' + eMarker.largeLogo + '" width="108" height="140" style="float:left;margin:-5px 15px 0 0;border:none;"/>');
            if (eMarker.itvURL) {
                sBubbleHTML.push('</a>');
            }
        }
        sBubbleHTML.push('<h1>' + eMarker.index + '</h1>' + '<p>' + eMarker.address);
        sBubbleHTML.push('<br/>');
        
        if (eMarker.itvURL) {
            sBubbleHTML.push('<br/>');
            sBubbleHTML.push('<a href="' + eMarker.itvURL + '" target="_blank">ITV team profile</a>');
        }
        
        if (eMarker.externalURL) {
            sBubbleHTML.push('<br/>');
            sBubbleHTML.push('<a href="' + eMarker.externalURL + '" target="_blank">Official website</a>');
        }
        
        sBubbleHTML.push('</p></div>');
        return sBubbleHTML.join('');
    };
}

var oLeagueHash = {};
// Add league layers
for (league in oLeagues) {
    oLeagueHash[league] = footballMap.addLayer({
        name: league,
        markers: oLeagues[league]
    });
}


oLeagueHash['Premier League'].show();
fm_addClass(document.getElementById('tab_premierLeague'), 'active');

document.getElementById('tab_premierLeague').onclick = function(){
    if (oLeagueHash['Premier League'].toggle()) {
        fm_addClass(document.getElementById('tab_premierLeague'), 'active');
    }
    else {
        fm_removeClass(document.getElementById('tab_premierLeague'), 'active');
    }
	return false;
}

document.getElementById('tab_championship').onclick = function(){
    if (oLeagueHash['Championship'].toggle()) {
        fm_addClass(document.getElementById('tab_championship'), 'active');
    }
    else {
        fm_removeClass(document.getElementById('tab_championship'), 'active');
    }
	return false;
}

document.getElementById('tab_league1').onclick = function(){
    if (oLeagueHash['League One'].toggle()) {
        fm_addClass(document.getElementById('tab_league1'), 'active');
    }
    else {
        fm_removeClass(document.getElementById('tab_league1'), 'active');
    }
	return false;
}

document.getElementById('tab_league2').onclick = function(){
    if (oLeagueHash['League Two'].toggle()) {
        fm_addClass(document.getElementById('tab_league2'), 'active');
    }
    else {
        fm_removeClass(document.getElementById('tab_league2'), 'active');
    }
	return false;
}

document.getElementById('tab_scottishPremierLeague').onclick = function(){
    if (oLeagueHash['Scottish Premier League'].toggle()) {
        fm_addClass(document.getElementById('tab_scottishPremierLeague'), 'active');
    }
    else {
        fm_removeClass(document.getElementById('tab_scottishPremierLeague'), 'active');
    }
	return false;
}

//var aImages = document.getElementsByTagName('IMG');
//for (var i = 0; i < aImages.length; i++) {
//    aImages[i].onload = function(){
//        if (this.src === 'http://maps.google.com/intl/en_ALL/mapfiles/mapcontrols2.png') {
//            this.src = '/_lib/footballMap/img/footballMapControls.png';
//        }
//    }
//}
