var NetManagerModuleItinerary = NetManagerBase.extend({
	
	options: {
		formId: ''
	},
	
	hasManyDestinationsAccordion: null,
	
	initialize: function(options) {
		this.setOptions(options);
		this.initDestinationView();
		this.setImageSelector();
		this.initDuplicator();
	},
	
	
	initDuplicator: function() {
		if ($defined($('duplicator'))) {
			this.itineraryDropdown   = this.getDropdown({key      		: 'itineraryDropdown',
														 icon     		: 'icon-itinerary', 	
													   	 selectId 		: 'duplicator',
													   	 width	  		: 288,
														 containerWidth	: 420,
														 fnEvent  		: this.getItineraryCopy.bind(this)});			
		}
	},
	
	getItineraryCopy: function() {
		var oAjax = new NetManagerPluginAjax();
		oAjax.getAjax('/itineraries/get-itinerary/iItineraryId/' + this.itineraryDropdown.getValue(), this.duplicateItinerary.bind(this));
	},
	
	duplicateItinerary: function (sResponse) {
		
		var oResponse = Json.evaluate(sResponse);
		
		$('ItineraryForm').getElement('#title').setProperty('value', this.stripSlashes(oResponse.title));
		$('ItineraryForm').getElement('#duration').setProperty('value', this.stripSlashes(oResponse.duration));
		$('ItineraryForm').getElement('#embark').setProperty('value', this.stripSlashes(oResponse.embark));
		$('ItineraryForm').getElement('#disembark').setProperty('value', this.stripSlashes(oResponse.disembark));
		
		var ed = tinyMCE.get('program');
		ed.setContent(this.stripSlashes(oResponse.program));

		// Set the image id.
		$('ItineraryForm').getElement('#image_id').setProperty('value', oResponse.image_id);
		$('ItineraryForm').getElement('.imageSampleDiv').setStyle('display', 'block');
		$('ItineraryForm').getElement('.addImage').setStyle('display', 'none');
		$('ItineraryForm').getElement('.removeImage').setStyle('display', 'block');
		$('ItineraryForm').getElement('.imageSampleDiv').empty();
		var oImage = new Asset.image('/image/get/iImageId/' + oResponse.image_id + '/iWidth/100').addClass('imageSample').injectInside($('ItineraryForm').getElement('.imageSampleDiv'));
		
		if ($defined(oResponse.destinations)) {
			if (oResponse.destinations.length > 0) {
				$each (oResponse.destinations, function (el) {
					if($('ItineraryForm').getElement('#destinations-' + el)) {
						$('ItineraryForm').getElement('#destinations-' + el).setProperty('checked', 'checked');
					}
				});
			}
		}
	},
	
	setImageSelector: function() {
		var options = null, t = this;
		if ($('ItineraryForm')) {
			$each($('ItineraryForm').getElements('.imagebox'), function (elm) {
				options = {};
				options.selectId = elm.getElement('input').getProperty('id');
				options.key = elm.getElement('input').getProperty('id');
				oImageSelector = t.getImageSelector(options);
			});
		}
	},
	
	onAddToFolder: function(e) {
		var event = new Event(e).stop();
		console.log('add folder');
		oWizard = this.getWizard();
		oWizard.setOptions({
			form: 'Project' + $(e.target).getProperty('class').capitalize() + 'Form'
		});
		oWizard.setForm();
	},
	
	onEditContact: function(e) {
		var event = new Event(e).stop();
		
		var elmClasses = $(e.target).getProperty('class').split(' ');
		var count = elmClasses.length -1;
		
		var iContactId = $(e.target).getParent().getParent().getProperty('id').toInt();
		console.log('edit contact id: ' + iContactId);
		oWizard = this.getWizard();
		oWizard.setOptions({
			form: 'Project' + elmClasses[count].capitalize() + 'Form',
			entity_id: iContactId
		});
		oWizard.setForm();
	},
	
	
	toggleRelation: function(e) {
		
		var toggler = $(e.target);
		var rowContainer = $(toggler).getParent().getParent().toggleClass('offline');
		var aCheckedDestinations = [];
		$('hasManyDestinationsAccordion').getElements('input').each(function(elm) {
			if (elm.checked) {
				aCheckedDestinations.push(elm.value);
			}
		});
		var oData = {relations: aCheckedDestinations};
		var oAjax = new NetManagerPluginAjax();
		oAjax.postAjaxVoid('/itineraries/save-relations/iItemId/' + $('id').value, Json.toString(oData));
	},
	
	initDestinationView: function() {
		if ($defined($('itinDestHolder')) && $defined($('ItineraryForm'))) {
			$('itinDestHolder').inject($('ItineraryForm'));
		}
	},
	
	
	toggleMaxMin: function() {
		if($('tabItinerary').getElement('.blockItinerary').hasClass('maximized')) {
			$('tabItinerary').getElement('.blockItinerary').removeClass('maximized');
			$('tabItinerary').getElement('.readmore span a').setAttribute('title', 'Maximize');
			$('tabItinerary').getElement('.readmore span a').setText('Maximize');
		} else {
			$('tabItinerary').getElement('.blockItinerary').addClass('maximized');
			$('tabItinerary').getElement('.readmore span a').setAttribute('title', 'Minimize');
			$('tabItinerary').getElement('.readmore span a').setText('Minimize');
		}
	},
	
	
	initItineraryDetail: function() {
		
		$('tabItinerary').getElement('p.readmore a').addEvent('click', this.toggleMaxMin.bind(this));
		this.detailMap = $E('div#map a').addEvent('click', this.showFullMap.bind(this));
	},
	
	
	showFullMap: function(evt) {		
		var event = new Event(evt);
		event.stop();
		
		var oGallery = new NetManagerModuleGallery({bShowEcard: false});
		var oFullImage = new Element('img').setProperties({src:this.detailMap.getProperty('href')});
		var imgProperties = this.detailMap.getProperty('href').split('/');
		
		var iImageId = this.detailMap.getProperty('href').replace(/[^0-9]/ig,'');
		var obj = {};
		obj = {image:oFullImage, 
			   index: 0, 
			   id: imgProperties[4], 
			   large_image_id: 0, 
			   large_resolutions: '', 
			   mime: 'jpg', 
			   filename:'Itinerary area', 
			   wiff: imgProperties[6], 
			   heiff: imgProperties[8], 
			   copyright:'Oceanwide expeditions', 
			   site_id: 1};
		oGallery.showImage(obj);
		
	}
	
});
NetManagerModuleItinerary.implement(new Options);