/************************************************************************
 * 		Datencontainer für den Transport der Objekte					*
 * 		C 2008 by René Lange & Thomas Müller & Steve Rohrlack @ mindbox	*
 ***********************************************************************/

// Eintragscontainer fürs Notepad und die normalen Einträge
var DcEntry = new Class({
 	id_entry : '',			
 	name_entry : '',	
 	id_sg_entry : '',			
 	sg_entry_type : '',	
 	city : '',
	x : '',
	y : '',
	distance : '',		
 	journeyTime : '',	
 	stayTime : '',	 	
	img : '',
	shortDetails : '',
	adressDetails : '',
	price : '',			
	highlight : '',
	category: ''
});

// Tagescontainer, enthält Einträge
var DcDay = new Class({
	id_day : '',
	id_acco : '',
	no : '',
	distance : '',
	journeyTime : '',
	stayTime : '',
	color : '',
	dcEntries : new Array()
});

// Tourcontainer, enthält Tage
var DcTour = new Class({
	id_tour : '',
	id_user : '',
	title : '',
	date: '',
	distance : '',
	journeyTime : '',
	length: '',
	dcAcco : new Array(),
	dcDays : new Array(),
	tourStart : {dcEntries : new Array()},
	headline : '',
	description : '',
	image : ''
});

// Eintrag in der Karte
var MapEntry = new Class({ 	
 	lng : '',
 	lat : '',
 	type : '',
	entryId : '',
	 	
 	initialize : function(options) {
		if (options) {
			this.lng = options.lng;
			this.lat = options.lat;
			this.type = options.type;
			this.entryId = options.entryId;
		}
 	},
 	
 	buildInfoWindow : function() {}
});

// Container für die Marker 
var MarkerArray = new Class({
	initialize : function() {
		this.gmOptionsHotel = new Array();
		this.gmOptionsRestaurant = new Array();
		this.gmOptionsSight = new Array();
		this.gmOptionsInfo = new Array();
		this.gmOptionsCarpark = new Array();
	}
});

// Mapping der Pin Types
var SGPinType = new Class ({
	hotel: 0,
	restaurant: 1,
	sight: 2,
	info: 3,
	carpark: 4,
	start: 5,
	finish: 6,

	getPinType: function (name) {
		var res = null;
		switch (name) {
			case 'gmOptionsHotel':
			case 'checkHotel':		res = this.hotel;
				break;
			case 'gmOptionsRestaurant':
			case 'checkRestaurant':		res = this.restaurant;
				break;
			case 'gmOptionsSight':
			case 'checkSight':		res = this.sight;
				break;
			case 'gmOptionsInfo':
			case 'checkInfo':		res = this.info;
				break;
			case 'gmOptionsCarpark':
			case 'checkCarpark':		res = this.carpark;
				break;
			case 'gmOptionsStart':			res = this.start;
				break;
			case 'gmOptionsFinish':			res = this.finish;
				break;
		}

		return res;
	},
	
	getTypeTitle: function(i){
		switch(i){
			case 0:
				return 'gmOptionsHotel';
			case 1:
				return 'gmOptionsRestaurant';
			case 2:
				return 'gmOptionsSight';
			case 3:
				return 'gmOptionsInfo';
			case 4:
				return 'gmOptionsCarpark';
			case 5:
				return 'gmOptionsStart';
			case 6:
				return 'gmOptionsFinish';
		}
	},

	getPinImg: function(pinType) {
		var res = null;
		var bg = cat = '';
		switch(pinType) {
			case this.hotel: bg = '/templates/img/map/gm_hotel_icon.png';
				cat = 'gmOptionsHotel';
				break;
			case this.restaurant: bg = '/templates/img/map/gm_restaurant_icon.png';
				cat = 'gmOptionsRestaurant';
				break;
			case this.sight: bg = '/templates/img/map/gm_sight_icon.png';
				cat = 'gmOptionsSight';
				break;
			case this.info: bg = '/templates/img/map/gm_info_icon.png';
				cat = 'gmOptionsInfo';
				break;
			case this.carpark: bg = '/templates/img/map/gm_carpark_icon.png';
				cat = 'gmOptionsCarpark';
				break;
			case this.start: bg = '/templates/img/map/gm_start_icon_sgbayern.png';
				cat = 'gmOptionsStart';
				break;
			case this.finish: bg = '/templates/img/map/gm_goal_icon_sgbayern.png';
				cat = 'gmOptionsFinish';
				break;
		}
		res = '<div class="pinIcon ' + cat + '" style="background:url(\'' + window.location.protocol + '//' + window.location.host + bg + '\') no-repeat 0 0;height:53px;width:43px;position:relative;cursor:pointer"></div>';
		return res;
	}
});

// Mapping der Farben
var SGColorType = new Class ({	
	getColor: function(day) {
		var res = null;
		var opa = 0.7;
		switch(day) {
			case 0: res = new VEColor(123,123,195,opa);
				break;
			case 1: res = new VEColor(34,134,46,opa);
				break;
			case 2: res = new VEColor(192,58,55,opa);
				break;
			case 3: res = new VEColor(0,186,255,opa);
				break;
			case 4: res = new VEColor(172,0,183,opa);
				break;
			case 5: res = new VEColor(240,215,0,opa);
				break;
			case 6: res = new VEColor(94,58,0,opa);
				break;
		}
		return res;
	}
});