var system = {
	init		:	function(){
		
			jQuery(window).resize(function(){
				system.bodyAdapt();
			});

			var intID = window.setInterval(function(){
				if( fontloaded )
				{
					window.clearInterval(intID);
					system.bodyAdapt();
				}
			}, 200);

			system.replMail();
			system.ajaxMenu();
			system.linkToLogo();
			system.centerAlign();

			//creo loader per ajax
			system.createAjaxLoader();
			
			jQuery('.page-header').mouseenter(function(){
				jQuery('.open-footer').fadeTo(40, 0.4);
				jQuery('.open-footer').addClass('hoverable');
			});
			jQuery('.page-main').live('mouseenter',function(){
				jQuery('.open-footer').fadeTo(40, 0);
				jQuery('.open-footer').removeClass('hoverable');
				system.closefooter();
			});
			jQuery('.open-footer').hover(function(){
				jQuery(this).fadeTo(40, 0.99);
			}, function(){
				jQuery(this).fadeTo(40, 0);
			}).click(function(){
				system.openfooter();
				return false;
			});


			jQuery('.node-cosa-facciamo .node-contents .box2 .item2 .btn').live('click',function(){
				jQuery('#link-24').trigger('click');
				return false;
			});

		
	},
	createAjaxLoader	:	function()
	{
		var loader = jQuery('<div>').addClass('wheel_throbber system-loader').css('display', 'none');
		jQuery('body').append(loader);
		loader.ajaxStart(function(){
			jQuery(this).show();
		});
		loader.ajaxComplete(function(){
			jQuery(this).hide();
		});
		loader.ajaxError(function(){
			jQuery(this).hide();
		});
	},
	openfooter	:	function(){
		jQuery('.page-footer').animate({top:0}, 80, 'easeInOutQuint', function(){
			jQuery(this).addClass('open').find('.close').click(function(){
				system.closefooter();
				return false;
			});
		});
	},
	closefooter	:	function(){
		if( jQuery('.page-footer').hasClass('open') )
			jQuery('.page-footer').animate({top:-26}, 80, 'easeInOutQuint');
	},
	debug		:	function ( $el ){

		/*
		 *
		 if ( console != undefined )
		{
			console.log($el);
		}
		*/
	},
	bodyAdapt	:	function(){
		if( jQuery('body').hasClass('homepage') )
		{
			jQuery('body').css('overflow', 'hidden');
		}
		else if( ( parseInt( jQuery('.node-inner-wrapper').outerHeight() ) + parseInt( jQuery('.page-header').outerHeight() ) ) <  parseInt( jQuery(window).height() ) )
		{
			jQuery('.page-main').css({
				height	:	parseInt( jQuery(window).height() ) -  parseInt( jQuery('.page-header').outerHeight() )
			});
			jQuery('body').css('overflow', 'hidden');
		}
		else
		{
			jQuery('.page-main').css({
				height	:	'auto'
			});
			jQuery('body').css('overflow', 'visible');
			jQuery('body').css('overflow-x', 'hidden');
		}
	},
	replMail	:	function(){
		jQuery('.viewmail').each(function(){
			var tmp = jQuery(this);
			var tmp2 = tmp.text().replace(' + ', '@');
			tmp2 = tmp2.replace(' _ ', '.');
			var newTmp = jQuery('<a>').addClass('viewmail-link').attr('href', 'mailto:'+tmp2);
			newTmp.append(jQuery('<span>').addClass('viewmail').text(tmp.attr('data-newtext')));

			newTmp.bind('click',function(){
				system.viewMail(jQuery(this));
			});

			tmp.replaceWith(newTmp);
			
		});
	},
	viewMail	:	function( el ){
		jQuery(el).find('.viewmail').text(jQuery(el).attr('href').replace('mailto:',''));
	},
	handles		:	{
		'node-2'		:	'.node-type-page .node-inner .node-inner-wrapper',
		'node-3'		:	'.node-type-page .node-cosa-facciamo .node-title .node-title-content,\n\
							.node-type-page .node-cosa-facciamo .node-contents .box1 .list,\n\
							.node-type-page .node-cosa-facciamo .node-contents .box2',
		'node-4'		:	'.node-type-page .node-inner .node-inner-wrapper',
		'node-6'		:	'.node-type-page .node-network-e-collaborazioni .node-title .node-title-content,\n\
							.node-type-page .node-network-e-collaborazioni .node-subtitle .node-title-content,\n\
							.node-type-page .node-network-e-collaborazioni .node-contents .box-1 .box-inner',
		'node-partner'	:	'.node-type-page .node-partner .node-title .node-title-content,\n\
							.node-type-page .node-partner .node-subtitle .node-title-content,\n\
							.node-type-page .contact-form .box .input,\n\
							.node-type-page .contact-form .end-box .input',
		'node-consulting':	'.node-type-page .node-consulting .node-title .node-title-content,\n\
							.node-type-page .node-consulting .node-subtitle .node-title-content,\n\
							.default-form'
	},
	stage_pos	:	'center',
	stageLeft	:	function( el )
	{
		if( system.stage_pos != 'left' )
		{
			if( jQuery(el).find('.node').length )
			{
				if( system.handles[jQuery(el).find('.node').attr('id')] != undefined )
				{
					var tmp = system.handles[jQuery(el).find('.node').attr('id')].split(',');
					jQuery.each(tmp, function(i,n){

						var tmp = jQuery(jQuery.trim(n)).position();
						jQuery( jQuery.trim(n) ).css({
							left		:	0,
							marginLeft	:	0
						});
						system.stage_pos = 'left';
					});
					system.headerToLft();
				}
				else{
					system.headerToLft();
					jQuery( '.node-type-page .node-inner .node-inner-wrapper' ).css({
						left		:	0,
						marginLeft	:	0
					});
					system.stage_pos = 'left';
				}
			}
		}
	},
	stageCenter	:	function( el )
	{
		if( system.stage_pos != 'center' || system.stage_pos != null )
		{
			if( jQuery(el).find('.node').length )
			{
				if( system.handles[jQuery(el).find('.node').attr('id')] != undefined )
				{
					var tmp = system.handles[jQuery(el).find('.node').attr('id')].split(',');
					jQuery.each(tmp, function(i,n){
						jQuery( jQuery.trim(n) ).css({
							left		:	'50%',
							marginLeft	:	-( parseInt(jQuery(jQuery.trim(n)).outerWidth() ) /2 )
						});
						system.stage_pos = 'center';
					});



					system.headerToMid();
				}
				else system.headerToMid();
			}
			else system.headerToMid();
		}
	},
	headerToMid	:	function()
	{
		jQuery( '.page-header-wrapper' ).animate({
			left		:	'50%',
			marginLeft	:	-( parseInt(jQuery( '.page-header-wrapper' ).outerWidth() ) /2 )
		}, 1000, 'easeInOutQuint', function(){
			system.stage_pos = 'center;'
			jQuery( this ).css('left','50%');
		});
	},
	headerToLft	:	function()
	{
		var tmp = jQuery( '.page-header-wrapper' ).position();
		jQuery( '.page-header-wrapper' ).css('left', tmp.left).animate({
			left		:	0,
			marginLeft	:	0
		}, 1000, 'easeInOutQuint', function(){
			system.stage_pos = 'left;'
		});
	},
	click_count	:	0,
	ajaxMenu	:	function()
	{
		jQuery('.page-nav .list .item a').click(function(){
			if( window.location.hash == '' )
			{
				if( jQuery.trim( window.location.pathname ) == jQuery.trim( jQuery(this).attr('href') ) )
				{
					//non fare niente
				}
				else
				{
					var newlocation;
					newlocation = '#' + jQuery(this).attr('href');
					window.location.href = newlocation;
				}
			}
			else
			{
				if( jQuery.trim( window.location.pathname ) == jQuery.trim( jQuery(this).attr('href') ) )
				{
					window.location.hash = '';
				}
				else
				{
					var newlocation;
					newlocation = '#' + jQuery(this).attr('href');
					window.location.href = newlocation;
				}
			}

			
			return false;
		});
		jQuery.address.change(function(event) {
			if( event.path == '/home' )
			{
				system.ajaxPages('/');
				jQuery('.page-nav .list .item, .page-nav .list .item a').removeClass('selected');
			}
			else
			{
				if( event.path == '/' && system.click_count == 0 )
				{
				}
				else if( event.path == '/' && system.click_count >=1 )
				{
					var neweventpath = window.location.pathname;
					var founded = false;
					jQuery('.page-nav .list a').each(function(){

						if ( jQuery.trim( jQuery(this).attr('href') ) === jQuery.trim(neweventpath) )
						{
							founded = jQuery(this);
						}
					});
					if( founded ) system.selectMenu( founded );
					else{
						jQuery('.page-nav .list .item, .page-nav .list .item a').removeClass('selected');
					}

					system.ajaxPages(window.location.pathname);
				}
				else if(event.path != '/')
				{
					system.click_count++;

					var founded = false;
					jQuery('.page-nav .list a').each(function(){

						if ( jQuery.trim( jQuery(this).attr('href') ) === jQuery.trim(event.path) )
						{
							founded = jQuery(this);
						}
					});
					if( founded ) system.selectMenu( founded );
					else{
						jQuery('.page-nav .list .item, .page-nav .list .item a').removeClass('selected');
					}

					system.ajaxPages(event.path);
				}
			}
			//system.ajaxPages(jQuery(this).attr('href'));
		});
	},
	selectMenu	:	function(el)
	{
		// main menu di primo livello
		if( jQuery(el).parent().parent().parent().hasClass('menu') )
		{
			jQuery('.page-nav .list .selected').removeClass('selected');
			jQuery(el).addClass('selected').parent().addClass('selected');
		}
		// main menu di secondo livello
		else
		{
			jQuery('.page-nav .list .selected').removeClass('selected');
			jQuery(el).addClass('selected').parent().parent().parent().children('a:first').addClass('selected').parent().addClass('selected');
		}
	},
	ajaxPages	:	function(href)
	{


		jQuery.get(href,
		function(data){

			if( jQuery.browser.msie )
			{
				var tmp_data = jQuery(data);
				if( !tmp_data.hasClass('page-home') || !tmp_data.hasClass('node') )
				{
					if( tmp_data.find('.page-home').length ) data = tmp_data.find('.page-home')[0];
					else if( tmp_data.find('.node').length ) data = tmp_data.find('.node')[0];
				}
			}

			var oldpage = jQuery('.page-main');
			var newpage = jQuery('<div>').addClass('page-main new-page-main').css({
				position	:	'absolute',
				top			:	jQuery('.page-header').height(),
				left		:	jQuery(window).width(),
				height		:	parseInt( jQuery(window).height() ) -  parseInt( jQuery('.page-header').outerHeight() )
			});
			newpage.html(data);

			
			jQuery.address.title( jQuery.trim( jQuery(data).attr('data-title') ) + ' | Bampnet' );
			jQuery('body').css('overflow', 'hidden');

			homeSlideshow.stopSlideshow();
			jQuery('.page-wrapper').append(newpage);

			
			if( !jQuery.browser.webkit ) system.centerAlign(newpage);
			else{
				window.setTimeout(function(){
					system.centerAlign(newpage);
				}, 200);
			}




			system.replMail();

			if( jQuery(oldpage).find('.node-type-page .contact-form').length )
			{
				jQuery(oldpage).find('.node-type-page .contact-form').css( 'height', jQuery(oldpage).find('.node-type-page').height() ).empty();
			}
			crazyform.init();
			pages.init(newpage);
			homeSlideshow.init();
			defaultform.init();


			if( jQuery(oldpage).find('.page-home').length  )
			{
				jQuery('body').removeClass('homepage');
			}
			


			oldpage.animate({
				left	:	-( jQuery(oldpage).width() )
			}, 1000, 'easeInOutQuint', function(){
				oldpage.remove()

			});


			if( jQuery(newpage).find('.page-home').length  )
			{
				jQuery('body').addClass('homepage');
			}
			jQuery('.page-wrapper').css('backgroundColor', jQuery(newpage).find('.node-inner').css('backgroundColor'));
			newpage.animate({
				left	:	0
			}, 1000, 'easeInOutQuint', function(){
				jQuery(this).css({
					position	:	'relative',
					top			:	'auto'
				}).removeClass('new-page-main');
				system.bodyAdapt();
			});



		});
	},
	centerAlign		:	function( newpage ){
		if( newpage == null || newpage == undefined || newpage == 'undefined' || newpage == '' ) newpage = jQuery('.page-main');
		if( jQuery(newpage).find('.node').length  ){
			if( jQuery(newpage).find('.node').attr('data-stagealign') != 'undefined' ){
				if( jQuery.trim( jQuery(newpage).find('.node').attr('data-stagealign') ) == 'left' ){
					system.stageLeft( jQuery(newpage));
				}
				else{
					system.stageCenter( jQuery(newpage) );
				}
			} else system.stageCenter( jQuery(newpage) );
		} else system.stageCenter( jQuery(newpage) );
	},
	linkToLogo		:	function()
	{
		jQuery('.page-logo .logo').click(function(){
			if( jQuery('body').hasClass('homepage') )
			{
				return false;
			}
			else
			{
				var newlocation;
				newlocation = '';
				window.location.href = '#/home';
				return false;
			}
		});
	}
};

jQuery(document).ready(function(){
	jQuery.crash()
	system.init();
	defaultform.init();
});

var defaultform		=		{
	init		:	function()
	{
		if( jQuery('.default-form').length )
		{
			defaultform.initexamples();
			jQuery('.default-form form').live('submit',function(){
				jQuery.ajax({
					type: 'POST',
					url: jQuery(this).attr('action'),
					data: jQuery(this).formSerialize(),
					async : false,
					success: function(datas){
						var newdata = datas;
						if ( jQuery(datas).find('.default-form').length )
						{
							newdata = jQuery(datas).find('.default-form').html();
						}
						system.bodyAdapt();
						jQuery('.default-form').empty().html( newdata );
						defaultform.initexamples();
						system.bodyAdapt();
					},
					dataType: 'html'
				});
				return false;
			});




		}
	},
	initexamples	:	function()
	{
		if( jQuery('.default-form').length )
		{
			jQuery('.default-form form input[type="text"]').each(function(){
				if( jQuery(this).val() == '' )
				{
					jQuery(this).example(function(){
						return jQuery(this).parent().children('label').text();
					});
				}
			});
		}
	}
};
