

$( document ).ready( function() {

// Setup...

	$( ".on_js_hide" ).each( function() {

		$( this ).slideUp();
	});


	$( ".on_js_show" ).each( function() {

		$( this ).show();
	});

	$( "div#main_container a[target]" ).each( function() {

		if( $( this ).parents( '.recaptcha' ).length > 0 ) {

			return;
		}

		var string = $(this).html() + " &raquo;";
		$( this ).html( string );
	});

// Clickables...

	$( "div#top_bar_button_news" ).click( function ( event ) {

		window.location = _CN[ 'links' ][ 'news' ];
		event.preventDefault();
	});

	$( "div#top_bar_button_scrapbook" ).click( function ( event ) {

		window.location = _CN[ 'links' ][ 'scrapbook' ];
		event.preventDefault();
	});

	$( "div#top_bar_button_news_rss" ).click( function ( event ) {

		window.location = _CN[ 'links' ][ 'news_rss' ];
		event.preventDefault();
	});

	$( "div#top_bar_button_newsletter" ).click( function ( event ) {

		window.location = _CN[ 'links' ][ 'newsletter' ];
		event.preventDefault();
	});


	$( "div#top_bar_button_linkedin" ).click( function ( event ) {

		window.location = _CN[ 'links' ][ 'linkedin' ];
		event.preventDefault();
	});

	$( "div#top_bar_button_twitter" ).click( function ( event ) {

		window.location = _CN[ 'links' ][ 'twitter' ];
		event.preventDefault();
	});


	$( ".portfolio_toggle" ).click( function ( event ) {

		var dom_link = $( this );
		var dom_body = $( this ).parent().parent().children( ".portfolio_item_body" );

		if( dom_body.is( ":hidden" ) ) {

			dom_body.slideDown( 'slow', function() {

				dom_link.text( '[close]' );
			});
		} else {

			dom_body.slideUp( 'slow', function() {

				dom_link.text( '[open]' );
			});
		}
		event.preventDefault();
	});

// Inputs...

	$( "input.mandatory, textarea.mandatory" ).each( function() {

		inputUpdate( $( this ) );
	});

	$( "input.mandatory, textarea.mandatory" ).blur( function() {

		inputUpdate( $( this ) );
	});

	$( "textarea" ).keyup( function( event ) {

		var value = $( this ).val();
		var valueLength = value.length;
		var maxLength = $( this ).attr( "maxlength" );
		if( ( maxLength > 0 ) && ( valueLength > maxLength ) ) {

			$( this ).val( value.substring( 0, maxLength ) );
			valueLength = maxLength;
		}

		var domCounter = $( this ).parent().children( ".character_counter" );
		domCounter.html( valueLength + " / " + maxLength );
		domCounter.show();
	});
});



// Aux functions...

function dialogShow( params ) {

	$( "#fade_block" ).fadeTo( 300, 0.6, function() {

		$( "#dialog" ).html( params[ 'content' ] );
		$( "#dialog" ).dialog({

			title: params[ 'title' ],
			resizable: false,
			draggable: false,
			width: '600px',

			close: function( event, ui ) {

				$( "#fade_block" ).fadeTo( 300, 0, function() {

					$( "#fade_block" ).hide();

					if( params[ 'onClose' ] ) {

						params[ 'onClose' ]();
					}
				});
			}
		});
	});
}



function inputUpdate( inputObj ) {

	if( ! jQuery.trim( inputObj.val() ) ) {

		if( ! inputObj.hasClass( "mandatory_warning" ) ) {

			inputObj.addClass( "mandatory_warning" );
		}
	} else {

		if( inputObj.hasClass( "mandatory_warning" ) ) {

			inputObj.removeClass( "mandatory_warning" );
		}
	}
}
