window.addEvent( "domready", function(e)
{

	createContactSlide( );
	//createTopGridNavigation( );
	createGridImageHoverEffect( );
	createProjectThumbnailClick( );
	checkImageNumber( );
	
});

window.addEvent( "resize", function(e)
{

	$$(".row_nav").each( function( element, index )
	{
		var row = element.getParent( ".grid_block" ).getElement( ".grid_row" );
		checkGridRowPosition( row );
	});
	
});


function createContactSlide( )
{
	var contactElement = $( "contact_section" );
	
	var contactSlide = new Fx.Reveal( "contact_section" );
	
	$$("li.contact a").addEvent('click', function(e)
	{
		e.stop();
		e.stopPropagation();
		contactSlide.toggle();
	});

	$$("li p span.closeButton").addEvent('click', function(e)
	{
		e.stop();
		e.stopPropagation();
		contactSlide.toggle();
	});
	
}



function createProjectThumbnailClick( )
{
	if( $("project_images") )
	{
		$("project_images").store( "canSlide", "yes" );
	}
}

function viewImage( imageNumber )
{
	Cookie.write("image-number", imageNumber, {path:"/"});
}

function checkImageNumber( )
{
	if( $("project_images") )
	{
		if( Cookie.read("image-number") )
		{
			var position = Number( Cookie.read("image-number") );
			var marginTop = 0 - ( position * 500 );
			var projectImages = $( "project_images" );
			projectImages.setStyle( "margin-top", marginTop + "px" );
			
				$$(".thumbnails li").each( function( element, index )
				{
					var aTag = element.getElement( "a" );
					aTag.setStyle( "background-color", "#cccccc" );
				});
				var thumbnails = $$(".thumbnails").getElements("li");
				var selectedATag = thumbnails[0][position].getElement( "a" );
				selectedATag.setStyle( "background-color", "#3399cc" );
				
		}	
	}
	else
	{
		Cookie.dispose('image-number');
	}
}

function slideToProjectImage( position )
{
	if( $("project_images").retrieve( "canSlide" ) == "yes" )
	{
		$("project_images").store( "canSlide", "no" );
		var slider = new Fx.Tween( "project_images", {duration:500} );
		var marginTop = 0 - ( position * 500 );
		slider.start( "margin-top", marginTop + "px" );
		slider.onComplete = function()
		{
				$("project_images").store( "canSlide", "yes" );
				
				$$(".thumbnails li").each( function( element, index )
				{
					var aTag = element.getElement( "a" );
					aTag.setStyle( "background-color", "#cccccc" );
				});
				var thumbnails = $$(".thumbnails").getElements("li");
				var selectedATag = thumbnails[0][position].getElement( "a" );
				selectedATag.setStyle( "background-color", "#3399cc" );
		}
		Cookie.write("image-number", position, {path:"/"});
		
	}
}




function createGridImageHoverEffect( )
{

	$$(".grid_row li a").each( function( element, index )
	{
			var image = element.getElement( "img" );
			var upScaler = new Fx.Tween( image, {duration:1000, transition:Fx.Transitions.Elastic.easeOut} );
			var downScaler = new Fx.Tween( image, {duration:250 } );
			element.store( "upScaler", upScaler );
			element.store( "downScaler", downScaler );
	});
	
	
	$$(".grid_row li a").addEvent('mouseover', function(e)
	{

		var upScaler = this.retrieve( "upScaler" );
		var downScaler = this.retrieve( "downScaler" );
		downScaler.cancel();
		upScaler.start( "height", "170px" );
	});
	$$(".grid_row li a").addEvent('mouseout', function(e)
	{
		var upScaler = this.retrieve( "upScaler" );
		var downScaler = this.retrieve( "downScaler" );
		upScaler.cancel();
		downScaler.start( "height", "150px" );
	});
}



function createTopGridNavigation( )
{

	var grid_blocks = $$( ".grid_block" );
	$$(".row_nav").each( function( element, index )
	{
		var row = element.getParent( ".grid_block" ).getElement( ".grid_row" );
		row.store( "canSlide", "yes" );
		checkGridRowPosition( row );
	});

	addNavigationClickEvents( );
}



function addNavigationClickEvents( )
{
	var grid_blocks = $$( ".grid_block" );
	grid_blocks.getElement("a.row_nav.left").addEvent('click', function(e)
	{
		e.stop();
		e.stopPropagation();
		var row = this.getParent( ".grid_block" ).getElement( ".grid_row" );
		slideRow( row, 151 );
	});
	
	var grid_blocks = $$( ".grid_block" );
	grid_blocks.getElement("a.row_nav.right").addEvent('click', function(e)
	{
		e.stop();
		e.stopPropagation();
		var row = this.getParent( ".grid_block" ).getElement( ".grid_row" );
		slideRow( row, -151 );
	});
}





function slideRow( row, amount )
{
	if( row.retrieve( "canSlide" ) == "yes" )
	{
		row.store( "canSlide", "no" );
		var tween = new Fx.Tween( row, {duration:250} );
		var distance = row.getStyle("margin-left").toInt( ) + amount;
		tween.start( "margin-left", distance + "px" );
		tween.onComplete = function()
		{
			row.store( "canSlide", "yes" );
			checkGridRowPosition( row );
		}	
	}
}



function checkGridRowPosition( row )
{
	/*var grid_blocks = row.getParent( ".grid_block" )
	var rowContentsCount = row.getElements( "li" ).length;
	var leftButton = grid_blocks.getElement( ".left" );
	var rightButton = grid_blocks.getElement( ".right" );
	var rowXPos = row.getPosition().x;
	var rowWidth = row.getSize().x;
	var windowWidth = window.getSize().x;
	
	if( rowXPos >= 0 )
	{
		leftButton.setStyle( "visibility", "hidden" );
	}
	else
	{
		leftButton.setStyle( "visibility", "visible" );
	}
	
	if( (rowXPos + (151*rowContentsCount)) <= windowWidth )
	{
		rightButton.setStyle( "visibility", "hidden" );
	}
	else
	{
		rightButton.setStyle( "visibility", "visible" );
	}
	

	if (navigator && navigator.platform && navigator.platform.match(/^(iPad|iPod|iPhone|iPhone Simulator)$/)) 
	{
		rightButton.setStyle( "display", "none" );
		leftButton.setStyle( "display", "none" );
		$("banner_section").setStyle( "width", "1209px" );
		$("contact_section").setStyle( "width", "1209px" );
		
		if( $("project_container") )
		{
			$("project_container").setStyle( "width", "1209px" );
		}
		
		
		$$( ".grid_block .grid_row" ).setStyle( "width", "1274px" );
		$$( ".grid_block .grid_row" ).setStyle( "min-width", "1000px" );
		$$( ".grid_block .grid_row" ).setStyle( "overflow", "hidden" );
	}*/
}



function scaleSize( maxW, maxH, currW, currH )
{
	var ratio = currH / currW;
	
	if(currW >= maxW && ratio <= 1)
	{
		currW = maxW;
		currH = currW * ratio;
	}
	else if(currH >= maxH)
	{
		currH = maxH;
		currW = currH / ratio;
	}
	
	return [currW, currH];
}

