/**
 *	@author Rytis Alekna 
 */
var Main = ( function ($) {
	
	/**
	 * Unique instance
	 */
	var instance;
	
	var openedNewsItem = null;
	
	/**
	 * Class constructor
	 */
	function Main () {
		
		initBasicBefore();
		
		if ($('.pageHome, .pageRequest').length > 0) {
			$( '.bottomBlock h3.truncate' ).raTextTruncator( { leading : '...' });
		}
		
		if ($('.pageRequest').length > 0) {
			$('.tabbedForm').raTabbedForm();
			$.extend(DateInput.DEFAULT_OPTS, {
			  month_names: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
			  short_month_names: ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
			  short_day_names: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"]
			});
			$($.date_input.initialize)
		}
		
		$.fn.raTabbedPanel( '.bottomBlock' );

		if ($('.pageContact, .pageNews, .pageHome, .pageStatic').length > 0) {
			if (!$.browser.safari) {
				$('.shadow span').dropShadow({
					left: 0,
					top: -1,
					blur: 1
				});
			}
		}

		if ($('.pageContact, .pageStatic, .pageHome').length > 0) {
		}
		
		if( $( '.pageNews' ).length > 0  &&  $( '.dontExpand' ).length == 0) {
			initNewsItemsTransitions( '.newsItem' );
		}
		
		if ($('.pageHome, .pageNews, .pageStatic, .pageRequest, .pageEmpty').length > 0) {
			initLightBoxes();
		}
		
		if ( $('.pageHome, .pageNews, .pageStatic, .pageRequest').length > 0) {
			// swfobject.registerObject("headerFlash", "9.0.0", "expressInstall.swf");
			// swfobject.embedSWF("img/header_flash.swf", "headerFlash", "960", "380", "9.0.0", "expressInstall.swf", "image_path=img/header_images/image2.jpg&amp;text=Some%20thing", { bgcolor : '#173961' });

		}
		
		initBasicAfter();
		
	}
	
	function initBasicBefore () {
		Menu.controlList ( 'topMenu', 'hover' );
		$.fn.raSelect( '.langSelect', {
			useButton 				: true,
			opened					: false,
			topClass				: 'raLangSelect',
			buttonClass 			: 'raLangSelectButton',
			listClass				: 'raLangSelectList',
			closedListClass			: 'raLangSelectClosedList',
			selectedItemClass		: 'raLangSelectSelectedItem',
			submitOnSelect			: false
		} );
		
		$.fn.raSelect('.dSelect');
		
		$.fn.ra9sliceRect( '.roundedBlock' );
		

		// positionLoginFormCheckbox();
		
		$( 'form a.submit' ).click(
			function () {
				$(this).parents('form').submit();
			}
		)
		
	}
	
	function initBasicAfter () {
		$.setUpTextFields();
		
	}
	
	function initVideoLightbox() {
		var pathToVideo /*String*/ = WEBROOT + 'img/' + LANGUAGE + '/caroz.f4v';
		swfobject.embedSWF( WEBROOT + 'img/video_player.swf?source=' + WEBROOT + 'img/' + LANGUAGE + '/caroz.f4v', "video_player", "618", "631", "9.0.115", WEBROOT + "img/expressInstall.swf", false, {wmode:'transparent', allowfullscreen:true });
	}
	
	function initLightBoxes () {

		$.initRaLightbox();
		$('.newsItem .smallGreyButton.react').click(
			function () {
				$.raLightbox( '.reactionLightbox' );
			}
		)
		
		$('.sendToFriend').click(
			function () {
				$.raLightbox( '.sendToFriendLightbox' );
			}
		)
		
		$('.bigImageButton.contact').click(
			function () {
				$.raLightbox( '.contactLightbox' );
			}
		)
		
		$('.bigImageButton.newsTip').click(
			function () {
				$.raLightbox( '.newsTipLightbox' );
			}
		)
		
		$('.bigImageButton.exp').click(
			function () {
				$.raLightbox( '.expLightbox' );
			}
		)
		
		if ( $('.videoLightbox').length > 0 ) {
			
			initVideoLightbox();
			$( 'a.videoDemo' ).click(
				function () {
					$.raLightbox( '.videoLightbox' );
					
					return false;
				}
			)
		}
	}
	
	/**
	 * Set up login form
	 */
	$.setUpTextFields = function () {
		
		var inactiveTextFieldTextClass = 'inactiveTextFieldText';
		
		var activeTextFieldTextClass = 'activeTextFieldText';
		
		var focusChangeEnabledFormElementClass = "focusChangeEnabledFormElement";
		
		var errorMarkClass = 'errorMark';
		
		$('input:text').each( 
			function () {
				if ( !$(this).hasClass( focusChangeEnabledFormElementClass ) && this.title != "") {
					this.value = this.title || "";
					$(this).addClass( inactiveTextFieldTextClass );
					$(this).addClass( focusChangeEnabledFormElementClass );
				}
			}
		);
		
		$('input:text').focus(
			function () {
				if ($(this).val() == $(this).attr("title") && $(this).hasClass( focusChangeEnabledFormElementClass )) {
					$(this).val("");
					$(this).removeClass( inactiveTextFieldTextClass );
					$(this).removeClass( errorMarkClass );
					$(this).addClass( activeTextFieldTextClass );
				} else if ( $(this).hasClass( errorMarkClass ) ) {
					
					var requiredWord = $('#required').val();
					$(this).val( $(this).val().replace( requiredWord, '') );
					$(this).removeClass( errorMarkClass )
					
				}
			}		
		)
		
		$('input:text').blur(
			function () {
				
				if ($(this).val() == "" && $(this).hasClass( focusChangeEnabledFormElementClass ) ) {
					//$(this).val($(this).attr("title"));
					// alert( $(this).css('z-index' ) );
					// this.value = 'text';
					var that = this;
					setTimeout( function () { $(that).val($(that).attr("title")) }, 100)
					$(this).removeClass( activeTextFieldTextClass );
					$(this).addClass( inactiveTextFieldTextClass );
				}
			}		
		)
		
		if (!$.browser.ie) {
			

		
		}
		
	}
	
	function initNewsItemsTransitions ( target ) {
		// openedNewsItem = $(target).get(0); 
		$(target).each(
			function() {
				var that = this;
				// $(this).toggleClass('closed')
				
				if( !$(this).hasClass( 'closed' ) )  {
					openedNewsItem = this;
				} else {
					$('.article, .newsPanel', this).slideUp("fast");
				}
				
				$('.newsItemButton, h3 a', $(that)).click(
					function() {


						if ($(that).hasClass('closed')) {
																																																																																																																																																																																																																			
							// $('.article', $(that)).slideDown('normal');
							// $('.article', $(that)).fadeIn('fast');
							// $('.newsPanel', $(that)).fadeIn('fast');
							$('.article, .newsPanel', $(that)).slideDown('normal', function () {
							});
							$(that).removeClass('closed');
							
							// $(that).addClass('normal');
							
							if ( openedNewsItem != null && openedNewsItem != that) {
								
								// $('.article', $(openedNewsItem)).slideUp('normal');
								// $('.article', $(openedNewsItem)).fadeOut('fast');
								// $('.newsPanel', $(openedNewsItem)).fadeOut('fast');
								$('.article, .newsPanel', $(openedNewsItem)).slideUp('normal', function() {
									openedNewsItem = that;
								});
								$(openedNewsItem).addClass('closed');
								
							} else {
								openedNewsItem = that;
							}
							
							
							
						} else {
							// $('.article', $(that)).slideUp();
							$('.article, .newsPanel', $(that)).slideUp('normal');
							$(that).addClass('closed');
							
							
							openedNewsItem = null;
							
						}
						return false;


						/*
						if ($(that).hasClass('closed')) {
							
							$(that).removeClass('closed');
							$('.article', $(that)).slideDown('normal');
							// $('.article', $(that)).fadeIn('fast');
							// $('.newsPanel', $(that)).fadeIn('fast');
							$('.newsPanel', $(that)).slideDown('normal');
							
							if ( openedNewsItem != undefined ) {
								
								$('.article', $(openedNewsItem)).slideUp('normal');
								// $('.article', $(openedNewsItem)).fadeOut('fast');
								// $('.newsPanel', $(openedNewsItem)).fadeOut('fast');
								$('.newsPanel', $(openedNewsItem)).slideUp('normal', function() {
									$(openedNewsItem).addClass('closed');
									openedNewsItem = that;
								});
								
							} else {
								openedNewsItem = that;
							}
							
							
							
						} else {
							$('.article', $(that)).slideUp('normal');
							// $('.article', $(that)).fadeOut('fast');
							// $('.newsPanel', $(that)).fadeOut('fast');
							$('.newsPanel', $(that)).slideUp('normal', function() {
								$(that).addClass('normal');
							});
							
							openedNewsItem = undefined;
							
						}
						return false;
						*/
					}
				)
			} 
		);
		
		// $(openedNewsItem).toggleClass('closed');
		
	}
	
	
	/**
	 * Public static methods
	 */
	return {
		
		/**
		 * Initialize site scripts
		 * @return {Main} reference to main singleton
		 */
		main : function () {
			
			return instance ? instance : instance = Main ();
			
		}
	}
	
} )(jQuery)



