function DestinationDropdown(destinationData)
{
	//-Configuration---------------------------------------------------------------------------------------------------------

	/**
	 * @property
	 * @type (Array) 
	 */
	this.dataSource = destinationData;		

	//-Properties---------------------------------------------------------------------------------------------------------

	/**
	 * @property
	 * @type (DOMObject) 
	 */
	this.view = null;
	
	/**
	 * @property
	 * @type (DOMObject) 
	 */
	this.parentView = null;			
	
	/**
	 * @property
	 * @type (DOMObject) 
	 */
	this.select = null;
	
	/**
	 * @property
	 * @type (DOMObject) 
	 */
	this.placeholder = null;
	
	//-Private Methods---------------------------------------------------------------------------------------------------------
	
	/**
	 * @method
	 * @private 
	 */
	DestinationDropdown.prototype.createView = function () {
	    var label;
	    var value;

	    this.view = $('<form action="#"></form>');
	    this.select = $('<select id="dropDown" name="dropDown"></select>');

	    this.placeholder = $('<span class="placeholder" style="display: none;"></span>');

	    var self = this;
	    this.dataSource.each(function (index, destinationData) {
	        if (app.lang == 'de') {
	            label = $(destinationData).attr("LABEL_DE");
	        } else if (app.lang == 'fr') {
	            label = $(destinationData).attr("LABEL_FR");
	        } else {
	            label = $(destinationData).attr("LABEL_EN");
            }            
	        //label = app.lang == 'de' ? $(destinationData).attr("LABEL_DE") : $(destinationData).attr("LABEL_EN");
	        label = $.trimRight($.trimLeft(label, ' '), ' ');
	        value = $.trimRight($.trimLeft($(destinationData).attr("LABEL_EN"), ' '), ' ');
	        //console.log(value);
	        self.select.append($('<option value="' + value + '">' + label + '</option>'));
	    });

	    this.view.append(this.placeholder);
	    this.view.append(this.select);
	    this.parentView.append(this.view);
	};

	/**
	 * @method
	 * @private 
	 */
	DestinationDropdown.prototype.addedToDom = function () {
        //add language to html-tag to customize the design of the dropdown via css
	    $('html').addClass(app.lang);

	    var def;
	    if (app.lang == 'de') {
	        def = 'Bitte wählen Sie...';
	    } else if (app.lang == 'fr') {
	        def = 'Veuillez sélectionner...';
	    } else {
	        def = 'Please choose...';
	    }

	    this.select.jqDropDown({
	        optionChanged: $.makeCallback(this, this.handleChange),
	        defaultStyle: false,
	        defaultOption: def,
	        containerName: 'dropdownContainer',
	        toggleBtnName: 'selectedValue',
	        optionListName: 'optionList',
	        modal: true,
	        placeholder: this.placeholder
	    });
	    // nicht schön an der Stelle, funktioniert aber nicht anders (Schriftreplacement):
	    //Cufon.replace('.selectedValue', {fontFamily: 'MagdaCleanOT', hover: true});
	    //Cufon.replace('.optionList a', {fontFamily: 'MagdaCleanOT', hover: true});
	};

	/**
	 * @method
	 * @private 
	 */	
	DestinationDropdown.prototype.trigger = function(event, params){
		this.view.trigger(event,params)
	};
	
	//-Event Handler-----------------------------------------------------------------------------------------------------------

	/**
	 * @method
	 * @private 
	 */
	DestinationDropdown.prototype.handleChange = function() {
	    this.trigger(DestinationEvents.DESTINATION_CHANGED, this.placeholder.text());
	};
	
	//-Public------------------------------------------------------------------------------------------------------------------
	
	/**
	 * @method
	 */
	DestinationDropdown.prototype.create = function(parentView){
		this.parentView = parentView;
		this.createView();
		this.addedToDom();
	};	

	/**
	 * @method
	 */	
	DestinationDropdown.prototype.destroy = function(){
		this.view.remove();
		this.view = null;
		this.view.unbind('mouseenter');
		this.parentView = null;
		this.connection = null;
	};

	/**
	 * @method
	 */	
	DestinationDropdown.prototype.bind = function(event, callback){
		this.view.bind(event,callback)
	};

	/**
	 * @method
	 */	
	DestinationDropdown.prototype.setValue = function(value)
	{		 
		this.select.jqDropDown.setValue(this.select,value);
	};
		
}			
