/*** COMPANY CLASS - START ***/
Company = {};

Company.coidMarker;
Company.company_id = null;
Company.groupMarkers;
Company.routeMarkers;
Company.routes;
Company.spotlightsMarkers;
Company.types;
Company.route_ids;

Company.init = function () {
	GoogleMap.createIcon('coid', '/gfx/icons/mappointer-coid.gif', 64, 48);
	GoogleMap.createIcon('spotlight', '/gfx/icons/mappointer-talent.gif', 24, 31);
	GoogleMap.createIcon('group', '/gfx/icons/mappointer-spaansevloot.gif', 24, 31);
	GoogleMap.createIcon('entrepreneur', '/gfx/icons/mappointer-ondernemer.gif', 24, 31);
	
	coidIcon = GoogleMap.getIcon('coid');
	Company.coidMarker = GoogleMap.addMarker(51.912865, 4.453597, coidIcon, 'Heemraadsplein 19a<br />3023 BD Rotterdam<br />T | 010-476 22 23<br />F | 010-476 02 32<br />E | <a href="mailto:info@coid.nl">Info@coid.nl</a>');
	
	setTimeout(Company.hideCoidMarker, 5000);
	
	Company.routeMarkers = new Array;
	Company.types = new Array;
	Company.route_ids = new Array;
	
	load();
}

Company.addRoute = function (nr) {
	routeIcon = GoogleMap.getIcon('route_' + nr);
	
	Company.routeMarkers[nr] = new Array;
	
	for (var i=0; i < Company.routes[nr].companies.length; i++) {
		var description = Company.getDescription(Company.routes[nr].companies[i]);
		var marker = GoogleMap.addMarker(Company.routes[nr].companies[i].geocode_lat, Company.routes[nr].companies[i].geocode_lng, routeIcon, description);
		
		Company.routeMarkers[nr].push(marker);
	}
	
	Company.route_ids.push(Company.routes[nr].id);
	
	Company.addType('route');
	Company.updateResult();
}

Company.addType = function (type) {
	Company.types.push(type);
}

Company.getDescription = function (company) {
	var description = 	'<h3>' + company.name + '</h3><p style="width: 300px">' + company.description + '</p>' +
						'<a href="' + company.url + '"  onclick="Company.loadInfo(' + company.id + ');return false;">bedrijfsprofiel</a>';
	if (company.spotlight != '') {
		description += 	'<br /><a href="' + company.spotlight + '">verborgen talent</a>';
	}
	
	return description;
}

Company.getRouteIndex = function ($_route_id) {
	for (var i=0; i < Company.routes.length; i++) {
		if (Company.routes[i].id == $_route_id) return i;
	}
	
	return -1;
}

Company.hideCoidMarker = function () {
    if (Company.coidMarker){
      GoogleMap.removeMarker(Company.coidMarker);
    }
}

Company.loadGroups = function (checkbox) {
	Company.hideCoidMarker();
	if (checkbox.checked) {
      	loadGroups();
    } else {
      	for (var i = 0; i < Company.groupMarkers.length; i++) {
        	GoogleMap.removeMarker(Company.groupMarkers[i]);
      	}
      	Company.removeType('group');
      	Company.updateResult();
    }
}

Company.loadInfo = function (_id) {
	Company.hideCoidMarker();
    
    var el = $('bedrijfsprofiel-innercon');
    var tab = $('bedrijfsprofieltab').firstChild;
    
    if (Company.company_id != _id){
      Company.company_id = _id;
      el.setHTML('<div class="loading"><!-- --></div>');
      var url = '/ajax_bedrijfsinfo.php?id='+_id;
      new Ajax(url, { 
                      method: 'get', 
                      update: el,
                      onComplete: function() {
                        slidingtabs.changeTo($('bedrijfsprofiel'));
                      } 
                    }).request();
    }
    setTab(tab);
}

Company.loadRoute = function (checkbox, nr) {
	Company.hideCoidMarker();
	if (checkbox.checked) {
      	Company.addRoute(nr);
    } else {
      	for (var i = 0; i < Company.routeMarkers[nr].length; i++) {
        	GoogleMap.removeMarker(Company.routeMarkers[nr][i]);
      	}

      	for (var i=0; i < Company.route_ids.length; i++) {
			if (Company.route_ids[i] == Company.routes[nr].id) {
				Company.route_ids.splice(i,1);
			}
		}
		
      	Company.removeType('route');
      	Company.updateResult();
    }
}

Company.loadTalents = function (checkbox) {
	Company.hideCoidMarker();
	if (checkbox.checked) {
      	loadTalents();
    } else {
      	for (var i = 0; i < Company.spotlightsMarkers.length; i++) {
        	GoogleMap.removeMarker(Company.spotlightsMarkers[i]);
      	}
      	Company.removeType('talents');
      	Company.updateResult();
    }
}

Company.removeType = function (type) {
	for (var i=0; i < Company.types.length; i++) {
		if (Company.types[i] == type) {
			Company.types.splice(i,1);
		}
	}
}

Company.updateResult = function (route_id) {
	var types = Company.types.join(',');
	var routes = Company.route_ids.join(',');
	var el = $('resultatenlijst-innercon');

    el.set('html','<div class="loading"><!-- --></div>');
    var url = '/ajax_results.php?types='+types;
    if (Company.route_ids.length != 0) url += '&routes=' + routes;
    //new Ajax(url, {method: 'get', update: el}).request();

	new Request.HTML({
		method: 'get',
		url: url,
		update: el
	}).send();

}

/*** COMPANY CLASS - END ***/
