/* $Id: ramparts.js, v0.1 - 26/08/08 21:04:32, http://neverbesilent.org, http://remidian.com Exp $ */



var Ramparts = new Class({

	Implements: [Options],

	options: {
	},

	initialize: function( options) {

		this.setOptions( options);

		this.init_popups('.rampart-point-popup');

		this.init_panoramas('.rampart-point-panorama');


	},

	init_popups: function ( s_selector) {
		$$(s_selector).each( function( el, i) {

			var _url = el.getProperty( 'href');
			el.setProperty( 'href', 'javascript://');

			el.addEvent( 'click', function() {

					/** remove r-active classes */
				$$('#ramparts-wrapper a.rampart-point').each( function( el, i) {
					el.removeClass('r-active');
				})
				this.addClass( 'r-active');

				if ( $('ramparts-canvas'))
					$('ramparts-canvas').dispose();

				d1 = new Element('div', {
					'id': 'ramparts-canvas'
				});
				d1.injectInside ( $('ramparts-wrapper'));

				var el_canvas = $('ramparts-canvas');

				var fxs1 			= new Fx.Morph( el_canvas, {'duration': 300, 'wait': false});
				var cordsdot 	= $('rampart-point-' + i).getStyles('top','left');
				var desttop		= cordsdot.top.toInt() + 20;
				var desttop		= cordsdot.top.toInt() - 120;
				var destleft	= cordsdot.left.toInt() - 320;

					/** prevent left over mainmenu */
				if ( destleft < - 75)
					destleft = 75;

				el_canvas.setStyle( 'display', 'block');
					/** insert close href */
				//el_canvas.set( 'text', '');
				//el_canvas.set( 'html', '<div id="rampart-popup-menu"><a href="javascript://" id="a-rpm-close">x</a></div>');

				el_canvas.set(
					{ 'text': '',
						'html': '<div id="rampart-popup-menu"><a href="javascript://" id="a-rpm-close">x</a></div>'
				});



				$('a-rpm-close').addEvent('click', function( e ) {
					el_canvas.set( 'text', '');
					fxs1.start({
						'opacity': 0
					}).chain( function() {
						el_canvas.dispose();
					});
				});

				el_canvas.toggleClass( 'ramparts-canvas-loading');

				fxs1.start({
					'opacity': 0
				}).chain( function() {
					fxs1.start({
						'top': [ cordsdot.top.toInt(), desttop],
						'left': [ cordsdot.left.toInt(), destleft],
						'width': [ 0, 272],
						'height': [0, 100],
						'opacity': [0, .95]
				}).chain( function() {

					var req = new Request.HTML({
						url : _url,
						onFailure	: function () {
							if ( $('ramparts-canvas'))
								$('ramparts-canvas').set( 'text', 'The request failed.');
						} ,
						evalScripts: false,
						onComplete: function ( responseTree, responseElements, responseHTML, responseJavaScript) {

							if ( !$('ramparts-canvas'))
								return false;

							el_canvas.toggleClass( 'ramparts-canvas-loading');

							/** see: http://mootools.lighthouseapp.com/projects/2706/tickets/75 */
							/** el_canvas.adopt(html);*/
							el_canvas.set( 'html', responseHTML);

							$('a-rpm-close').addEvent('click', function(e) {
								fxs1.start({
									'opacity': 0
								})
								//fxs1.onComplete = function(){
								//	el_canvas.set( 'text', '');
								//	el_canvas.dispose();
								//};
								//el_canvas.set( 'text', '');
								//fxs1.start({
								//	'opacity': 0
								//}).chain( function() {
									///$('kotelcam-wrapper-2').setStyle('z-index', 2);
									//el_canvas.dispose();
									//null;
								//});
								//el_canvas.dispose();

									/** return false prevents freeze of player */
								return false;
							});

							$('kotelcam-wrapper-2').setStyle('z-index', -2);
							el_canvas.makeDraggable( {'handle': 'rampart-popup-menu'});

							eval (responseJavaScript);

								/** adjust height */
							var size = el_canvas.getScrollSize();
							var fxs1 = new Fx.Morph( el_canvas, {'duration': 600, 'wait': false, transition: Fx.Transitions.Elastic.easeOut});
							fxs1.start({ 'height': size.y + 30});
						}
					});
					req.send();
				});
			});


			})
		})

	},

	init_panoramas: function ( s_selector) {
				$$(s_selector).each( function( el, i) {

			var _url = el.getProperty( 'href');
			el.setProperty( 'href', 'javascript://');

			el.addEvent( 'click', function() {
				if ( $('ramparts-canvas-panorama')) {
					$('ramparts-canvas-panorama').set('html','');
					$('ramparts-canvas-panorama').set('text','');
					$('ramparts-canvas-panorama').dispose();
				}
				// todo, check if kcam was playing, then start it up again after popou2
				$('kotelcam-player-2').set( 'text', '');
				
				window.scrollTo( 0, 0);

				d1 = new Element('div', {
					'id': 'ramparts-canvas-panorama',
					'styles': {
						'height': '0'
					}
				});

				//alert(window.getHeight());

				/** d1.injectInside ( $('ramparts-wrapper')); */
				d1.injectInside ( $('htmlbody'));
				_morph = new Fx.Morph( $('ramparts-canvas-panorama'), {'duration': 500, 'wait': false});
				_morph.start({
					'opacity': [0, 0.96],
					/*'height': [0, 800]*/
					'height': [0, window.getHeight()]
				}).chain( function() {
					$('ramparts-canvas-panorama').addClass( 'ramparts-canvas-loading');
				});
				// stable
				//swfobject.embedSWF( _URL_TEMPLATE_CSS + '/include/_html/jgate.swf', 'ramparts-canvas-panorama', '100%', '480', '9.0.0');

				var req = new Request.HTML({
					url : _url,
					evalScripts: true,
					onFailure	: function () {
						$( 'ramparts-canvas-panorama').set( 'html', 'error occured');
					},
					evalScripts: false,
						/** onSuccess	: function(html) {*/
					onComplete: function ( responseTree, responseElements, responseHTML, responseJavaScript) {
						
						$('ramparts-canvas-panorama').removeClass( 'ramparts-canvas-loading');


						$( 'ramparts-canvas-panorama').set( 'html', responseHTML);
						/*
						_height = $('ramparts-canvas-panorama-content').getScrollSize().y;
						$('ramparts-canvas-panorama').setStyle('height', _height + 480 + 140 );
						*/
						$('ramparts-canvas-panorama').setStyle('height', 2000);

						$$( '#ajx-player-canvas-menu-close, #ramparts-canvas-panorama-top').addEvent('click', function() {
							$('ramparts-canvas-panorama').removeClass( 'ramparts-canvas-loading');
							$('ramparts-canvas-panorama').set( 'text', '');
							_morph = new Fx.Morph( $('ramparts-canvas-panorama'), {'duration': 500, 'wait': false});
							_morph.start({
								'opacity': 0,
								'height': 0
							}).chain( function() {
								$('ramparts-canvas-panorama').dispose();
							});
								return false;
						});
						eval (responseJavaScript);
					}
				});
				req.send();

				return false;

			})
		})

	}

})





window.addEvent( 'domready', function() {
	if ( $('htmlbody').hasClass('com_frontpage')) {
		i_ramparts = new Ramparts();
	}

})
