// ------------------------------------------------------------------------------------------------
// document ready statement
// ------------------------------------------------------------------------------------------------
$(document).ready(function(){
	
	// homepage_supersized();
	open_nav_bar();
	project_slideshow();
	makeColumn_equalHeights();
	about_tabs();
	float_panel_movement();
	contact_form_validation();
	background_images();
	project_text_truncate();
	project_thumb_rollover();
	europe2011_gallery();
});

// ------------------------------------------------
// Project Rollover Info
// ------------------------------------------------
function project_thumb_rollover (evt){

	$(".rollover_bg").hide();
	$(".rollover_info").hide();
	
	$("#featured_projects a").hover(function(){
			$(this).find(".rollover_bg").stop().fadeTo(250,0.85);
			$(this).find(".rollover_info").show();
		},function(){
			$(this).find(".rollover_bg").stop().fadeTo(250,0);
			$(this).find(".rollover_info").hide();
	});
}


// ------------------------------------------------
// Truncate Project Description Text
// ------------------------------------------------
function project_text_truncate (evt){
	$("#featured_projects p.description").jTruncate({
		length: 100,
		minTrail: 80,
		ellipsisText:"...",
		moreText:"View More"
	});
}

// ------------------------------------------------
// Homepage Supersized Slideshow - NOT IN USE, CHECK SITE HOMEPAGE LOCAL SCRIPT
// ------------------------------------------------
function homepage_supersized (evt){
	$.fn.supersized.options = {  
		startwidth: 1920,  
		startheight: 1200,
		vertical_center: 1,
		slideshow: 1,
		navigation: 0,
		thumbnail_navigation: 0,
		transition: 1, //0-None, 1-Fade, 2-slide top, 3-slide right, 4-slide bottom, 5-slide left
		pause_hover: 0,
		slide_counter: 1,
		slide_captions: 1,
		slide_interval: 8000,
		slides : [
			{image : '/assets/images/site/big_background1.jpg', title : 'bg1', url : 'single.php'},
			{image : '/assets/images/site/big_background2.jpg', title : 'bg2', url : 'single.php'},
			{image : '/assets/images/site/big_background3.jpg', title : 'bg3', url : 'single.php'},
			{image : '/assets/images/site/bg2.jpg', title : 'bg4', url : 'single.php'},
			{image : '/assets/images/site/bg3.jpg', title : 'bg5', url : 'single.php'},
			{image : '/assets/images/site/bg6.jpg', title : 'bg6', url : 'single.php'},
			{image : '/assets/images/site/bg8.jpg', title : 'bg7', url : 'single.php'}
		]
	};
       $('#supersized').supersized();
}


// ------------------------------------------------
// Random big background image
// ------------------------------------------------

function background_images (evt){
	var _img = new Image();
			_img.src = img[ran];
	$(_img).hide();
	$(_img).load(function(){
		$("#progress_icon").hide();
		$(this).fadeIn();
	});
        
	$("#body-background").append(_img);
	$("#body-background").ezBgResize();

}

// find a random number
function randomMinToMax(min, max_v) {
        var range = max_v - min + 1;
        return Math.floor(Math.random()*range + min);
      }
      
var img = new Array()
      
img.push(""); // do this to fill the img[0] position
img.push('/assets/images/site/smoke1.jpg');
img.push('/assets/images/site/smoke2.jpg');
img.push('/assets/images/site/smoke3.jpg');
img.push('/assets/images/site/smoke4.jpg');
img.push('/assets/images/site/smoke5.jpg');
img.push('/assets/images/site/smoke6.jpg');


var ran = randomMinToMax(1,img.length-1);


// ------------------------------------------------
// Open Navigation Panel
// ------------------------------------------------
function open_nav_bar (evt) {
	$("#btn_nav_open").stop().click(function(){
		$("#nav").animate({top:0}, 500, 'easeOutCirc');
		return false;
	});
	
	$("#nav").stop().mouseleave(function(){
		$("#nav").stop(true, true).animate({top:-50}, 500, 'easeOutExpo');
	});
	
	$("#nav ul li a").jFade({
   		trigger: "mouseover",
   		property: 'color',
   		start: 'b3b3b3',
   		end: 'ffffff',
   		step: 25,
   		duration: 50
   	}).jFade({
   		trigger: "mouseout",
   		property: 'color',
   		start: 'ffffff',
   		end: 'b3b3b3',
   		step: 25,
   		duration: 50
   	});
	
}

// ------------------------------------------------
// Project Slideshow
// ------------------------------------------------
function project_slideshow (evt) {
	$('.project_slideshow .project_images').cycle({
		fx: 'fade',
		speed: 'fast',
		timeout: 20000,
		next: '.project_slideshow .project_next',
		prev: '.project_slideshow .project_prev',
		/* pager: '#project-gallery-counter' */
	}); 
	
	/* Hide all descriptions at start. */
	$('.project_slideshow .project_description').delay(2000).fadeTo( 500, 0 );
	
	/* Show descriptions on hover. */
	$('.project_slideshow .project_description').hover(
		function() { $( this ).stop(true, true).fadeTo( 500, 1 ); },
		function() { $( this ).stop(true, true).fadeTo( 500, 0 ); }
	);
}


// ------------------------------------------------
// Equal Heights for all columns
// ------------------------------------------------
function makeColumn_equalHeights (evt) {
	$('#tab_skills').equalHeights();
	$('#tab_work').equalHeights();
	$('#tab_education').equalHeights();
}


// ------------------------------------------------
// Panel About - tabs
// ------------------------------------------------
function about_tabs (evt){
	$("#qualification_box ul.controls").idTabs(); 
}


// ------------------------------------------------
// Float Panel Movement
// ------------------------------------------------
function float_panel_movement (evt){

	/* declare panel state variables */
	var ContactPanel_state = 'close';
	var AboutPanel_state = 'close';
	
	/* open contact panel */
	$('#contactButton').click(function(){
		

		if (AboutPanel_state=='open')
			{
				$('#panel_about .right_container').delay(100).fadeOut('fast');		
				$('#panel_about .left_container').delay(200).fadeOut('fast');
				$('#panel_about').delay(300).fadeOut('fast');
				$('#black_about').delay(500).animate({'left': '-3000px'}, 'fast');
				AboutPanel_state='close';
				
				$('#black_contact').delay(700).animate({'left': '+=3000px'}, 'fast');
				$('#panel_contact').delay(800).fadeIn('fast');
				$('#panel_contact .left_container').delay(900).fadeIn('fast');
				$('#panel_contact .mid_container').delay(1000).fadeIn('fast');
				$('#panel_contact .right_container').delay(1100).fadeIn('fast');
				ContactPanel_state='open';

				/* alert('Contact: '+ContactPanel_state+' About: '+AboutPanel_state); */
				
			}
		else if (ContactPanel_state=='open')
			{
				
			}
		else
			{
				$('#black_contact').delay(500).animate({'left': '+=3000px'}, 'fast');
				$('#panel_contact').delay(600).fadeIn('fast');
				$('#panel_contact .left_container').delay(700).fadeIn('fast');
				$('#panel_contact .mid_container').delay(800).fadeIn('fast');
				$('#panel_contact .right_container').delay(900).fadeIn('fast');
				ContactPanel_state = 'open';
			}

	return false;
	
	});
	

	/* open about panel */	
	$('#aboutButton').click(function(){
	
		if (ContactPanel_state=='open')
			{
				$('#panel_contact .right_container').delay(100).fadeOut('fast');
				$('#panel_contact .mid_container').delay(200).fadeOut('fast');
				$('#panel_contact .left_container').delay(300).fadeOut('fast');
				$('#panel_contact').delay(400).fadeOut('fast');
				$('#black_contact').delay(500).animate({'left': '-3000px'}, 'fast');
				ContactPanel_state='close';
		
				$('#black_about').delay(700).animate({'left': '+=3000px'}, 'fast');
				$('#panel_about').delay(800).fadeIn('fast');
				$('#panel_about .left_container').delay(900).fadeIn('fast');
				$('#panel_about .right_container').delay(1000).fadeIn('fast');
				AboutPanel_state='open';

			}
		else if (AboutPanel_state=='open')
			{
				
			}
		else
		{
			$('#black_about').delay(500).animate({'left': '+=3000px'}, 'fast');
			$('#panel_about').delay(600).fadeIn('fast');
			$('#panel_about .left_container').delay(700).fadeIn('fast');
			$('#panel_about .right_container').delay(800).fadeIn('fast');
			AboutPanel_state='open';
		}
		
	return false;

	});


	/* reset everything to default */
	$('.reset').click(function(){

		$('#panel_contact .right_container').delay(100).fadeOut('fast');
		$('#panel_contact .mid_container').delay(200).fadeOut('fast');
		$('#panel_contact .left_container').delay(300).fadeOut('fast');
		$('#panel_contact').delay(400).fadeOut('fast');
		$('#black_contact').delay(500).animate({'left': '-3000px'}, 'fast');

		$('#panel_about .right_container').delay(100).fadeOut('fast');		
		$('#panel_about .left_container').delay(200).fadeOut('fast');
		$('#panel_about').delay(300).fadeOut('fast');
		$('#black_about').delay(500).animate({'left': '-3000px'}, 'fast');

		ContactPanel_state='close';
		AboutPanel_state='close';
		
		return false;
	});
}

// ------------------------------------------------
// Contact form validation
// ------------------------------------------------
function contact_form_validation (evt){

	$('#contact_form')
	   .validate({
	   
	   	errorClass: "invalid", // add invalid class to invalid input field
	   	//errorElement: "em", // it gets rid of the error message
	   	
		errorPlacement: function(error, element) {
			error.appendTo(element);
   		},
	   	
		rules: {
			// simple rule, converted to {required:true}
			name: "required",
			// compound rule
			email: {
				required: true,
				email: true
			},
			message: "required",
			human: {
				required: true,
				digits: true,
				range: [7,7]
			}
		},
		
         submitHandler: function(form) {
           $(form).ajaxSubmit({
                success: function() {
                    $('#contact_form').fadeOut('fast');
                    $('#thank_you').delay(500).fadeIn('fast');
                }
           });
         }
        });

}



// ------------------------------------------------
// Europe 2011 Gallery
// ------------------------------------------------
function europe2011_gallery (evt){

	$('.euro_title').delay(1000).fadeIn('slow');
	$('.euro_info').delay(2000).fadeIn('slow');
	$('#euro_list').delay(2500).fadeIn('slow');
	$('#euro_map').delay(5000).fadeIn(5000);
	
	$("#euro_list li a").jFade({
   		trigger: "mouseover",
   		property: 'color',
   		start: '000000',
   		end: '0094e9',
   		step: 25,
   		duration: 50
   	}).jFade({
   		trigger: "mouseout",
   		property: 'color',
   		start: '0094e9',
   		end: '000000',
   		step: 25,
   		duration: 50
   	});

	
}







