﻿// JavaScript Document

var tmp_project;
var loaded_project;
var slide_left_finished = true;
var slide_left_animation_finished = true;
var slide_right_finished = true;
var slide_right_animation_finished = true;
var prev_project_id = 0;
var current_project_id = 0;
var next_project_id = 0;
var visible_projects = 0;
var view_mode = 0;

SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleDeepLinkChange);

//-------------------------------------------------------------------------------------------------------------------------------
function handleDeepLinkChange(event) 
{
	if(event.path.length <= 1 || isNaN(event.path.replace("/", "")))
		return;
		
	var new_project_id = Number(event.path.replace("/", ""));
														  
	if (Number(current_project_id) != new_project_id)
	{
		if(new_project_id == prev_project_id)
		{
			slideRight();
			return;
		}
		
		if(new_project_id == next_project_id)
		{
			slideLeft();
			return;
		}
		
		$("#prev_project").html("<div class='loader-right'>&nbsp;</div>");
		$("#current_project").html("<div class='loader-middle'>&nbsp;</div>");
		$("#next_project").html("<div class='loader'>&nbsp;</div>");
		
		loadProject(event.path.replace("/", ""));
	}
}

//-------------------------------------------------------------------------------------------------------------------------------
function loadProject(project_id)
{
	if(isNaN(project_id))
		return;
		
	var params = new Object();
	params.project_id = project_id;
	$.post("custom/modules/project/project_ajax.cfc?method=getProjects", params, onLoadProject, "json");
}
//-------------------------------------------------------------------------------------------------------------------------------
function onLoadProject(projects)
{
	prev_project_id = projects.PREV_PROJECT_ID;
	current_project_id = projects.CURRENT_PROJECT_ID;
	next_project_id = projects.NEXT_PROJECT_ID;
	
	$("#prev_project").html(projects.prev_project);
	$("#current_project").html(projects.current_project);
	$("#next_project").html(projects.next_project);
	
	$("#prev_arrow").show();
	$("#next_arrow").show();
	
	if(prev_project_id == 0)
		$("#prev_arrow").hide();
	if(next_project_id == 0)
		$("#next_arrow").hide();
	
	document.title = $("#current_project .project_detail_facts_inner > h1").html();
}

//-------------------------------------------------------------------------------------------------------------------------------
function slideLeft()
{
	if(!slide_left_finished)
		return;

	if(!slide_right_finished)
		return;
	
	slide_left_finished = false;
	slide_left_animation_finished = false;
	loaded_project = null;
	
	if(next_project_id == 0)
		return;
	
	$("#prev_project").animate({marginLeft:"-1022px"}, 500);
	$("#current_project").animate({opacity:0.15}, 500);
	$("#next_project").animate({opacity:1}, 500, slideLeftFinished);
	
	tmp_project = $("#next_project").html();
	
	var params = new Object();
	params.project_id = next_project_id;
	$.post("custom/modules/project/project_ajax.cfc?method=getNextProject", params, onSlideLeftProjectLoaded, "json");
}
//-------------------------------------------------------------------------------------------------------------------------------
function slideLeftFinished()
{
	prev_project_id = current_project_id;
	current_project_id = next_project_id;
	
	$("#prev_project").html($("#current_project").html());
	$("#current_project").html(tmp_project);
	$("#next_project").html("<div class='loader'>&nbsp;</div>");
	
	$("#prev_project").css("margin-left", 0);
	$("#current_project").css("opacity", 1);
	$("#next_project").css("opacity", 0.15);
	
	document.title = $("#current_project .project_detail_facts_inner > h1").html();
	/// set deep link
	if(SWFAddress && SWFAddress.setValue)
		SWFAddress.setValue( "" + current_project_id ); // this throws SWFAddressEvent.CHANGE

	if(loaded_project != null)
		handleLeftLoadedProject(loaded_project);
		
	slide_left_animation_finished = true;
}
//-------------------------------------------------------------------------------------------------------------------------------
function onSlideLeftProjectLoaded(prj)
{
	loaded_project = prj;
	if(slide_left_animation_finished)
		handleLeftLoadedProject(prj);
}
//-------------------------------------------------------------------------------------------------------------------------------
function handleLeftLoadedProject(prj)
{
	$("#next_project").html(prj.html);
	next_project_id = prj.PROJECT_ID;
	updateFancybox();
	
	if(next_project_id == 0)
		$("#next_arrow").animate({opacity:0}, 200, function(){$("#next_arrow").hide();});
	else
	{
		$("#next_arrow").show();
		$("#next_arrow").animate({opacity:1}, 200);
	}
		
	$("#prev_arrow").show();
	$("#prev_arrow").animate({opacity:1}, 200);
	
	slide_left_finished = true;
}

//-------------------------------------------------------------------------------------------------------------------------------
function slideRight()
{	
	if(!slide_right_finished)
		return;

	if(!slide_left_finished)
		slide_left_counter = 1;
	
	slide_right_finished = false;
	slide_right_animation_finished = false;
	loaded_project = null;
	
	if(prev_project_id == 0)
		return;
		
	$("#prev_project").animate({marginLeft:"1022px", opacity:1}, 500);
	$("#current_project").animate({opacity:0.15}, 500, slideRightFinished);
		
	tmp_project = $("#prev_project").html();
	
	var params = new Object();
	params.project_id = prev_project_id;
	$.post("custom/modules/project/project_ajax.cfc?method=getPrevProject", params, onSlideRightProjectLoaded, "json");
}
//-------------------------------------------------------------------------------------------------------------------------------
function slideRightFinished()
{
	next_project_id = current_project_id;
	current_project_id = prev_project_id;
	
	$("#next_project").html($("#current_project").html());
	$("#current_project").html(tmp_project);
	$("#prev_project").html("<div class='loader-right'>&nbsp;</div>");
	
	$("#prev_project").css("margin-left", 0);
	$("#current_project").css("opacity", 1);
	$("#prev_project").css("opacity", 0.15);
	
	document.title = $("#current_project .project_detail_facts_inner > h1").html();
	/// set deep link
	if (SWFAddress && SWFAddress.setValue)
		SWFAddress.setValue( "" + current_project_id ); // this throws SWFAddressEvent.CHANGE

	if(loaded_project != null)
		handleRightLoadedProject(loaded_project);
	
	slide_right_animation_finished = true;
}
//-------------------------------------------------------------------------------------------------------------------------------
function onSlideRightProjectLoaded(prj)
{
	loaded_project = prj;
	if(slide_right_animation_finished)
		handleRightLoadedProject(prj);
}
//-------------------------------------------------------------------------------------------------------------------------------
function handleRightLoadedProject(prj)
{
	$("#prev_project").html(prj.html);
	prev_project_id = prj.PROJECT_ID;
	updateFancybox();
			
	if(prev_project_id == 0)
		$("#prev_arrow").animate({opacity:0}, 200, function(){$("#prev_arrow").hide();});
	else
	{
		$("#prev_arrow").show();
		$("#prev_arrow").animate({opacity:1}, 200);	
	}
		
	$("#next_arrow").show();
	$("#next_arrow").animate({opacity:1}, 200);	
	
	slide_right_finished = true;
}
//-------------------------------------------------------------------------------------------------------------------------------
function filterByCategory(project_category_id)
{
	$(".filter_items > li").removeClass("active");
	$("#filter_" + project_category_id).addClass("active");

	var params = new Object();
	params.project_category_id = project_category_id;
	$.post("custom/modules/project/project_ajax.cfc?method=filterByProjectCategory", params, onFilterByCategory, "json");
}
//-------------------------------------------------------------------------------------------------------------------------------
function onFilterByCategory(num)
{
	document.getElementById("mainfeature").loadData();
	visible_projects = num;
}

//-------------------------------------------------------------------------------------------------------------------------------
function switchMainFeatureViewMode(mode)
{
	var params = new Object();
	params.view_mode = mode;
	$.post("custom/modules/project/project_ajax.cfc?method=switchViewMode", params);
	
	document.getElementById("mainfeature").switchViewMode(mode);
	
	var list_btn = $("#switchListBtn");
	list_btn.removeClass();
	
	var coverflow_btn = $("#switchCoverflowBtn");
	coverflow_btn.removeClass();
		
	if(mode == 0)
	{
		list_btn.addClass("list_mode");
		coverflow_btn.addClass("coverflow_mode_active");
	}
	else
	{
		list_btn.addClass("list_mode_active");
		coverflow_btn.addClass("coverflow_mode");
	}
	
	view_mode = mode;
}

//-------------------------------------------------------------------------------------------------------------------------------
function getWindowHeight()
{
	var scnWid,scnHei;
	if (self.innerHeight) // all except Explorer
	{
		scnWid = self.innerWidth;
		scnHei = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		scnWid = document.documentElement.clientWidth;
		scnHei = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		scnWid = document.body.clientWidth;
		scnHei = document.body.clientHeight;
	}
	
	return scnHei;
}

//-------------------------------------------------------------------------------------------------------------------------------
function redrawFix(element_id)
{		
	if(document.getElementById(element_id) == null)
		return;
		
	document.getElementById(element_id).style.visibility="hidden";
	var redrawFix = document.getElementById(element_id).offsetHeight;
	document.getElementById(element_id).style.visibility="visible";
}

//-------------------------------------------------------------------------------------------------------------------------------
function adjustViewModeHeight()
{		
	if(view_mode == 0)
	{
		var height = getWindowHeight() - 180;
		height = Math.max(500, height);
		height = Math.min(height, 730);
		
		$("#mainfeature").height(height);
		$("#feature_wrapper").height(height - 110);
	}
	else
	{
		var f_height = Math.max(Math.max((Math.ceil(visible_projects / 4)), 1) * 150 + 90, 320);
		$("#mainfeature").height(f_height);
		$("#feature_wrapper").height(f_height);
	}	
	
	redrawFix("mainfeature");
	redrawFix("feature_wrapper");
}

//-------------------------------------------------------------------------------------------------------------------------------
function switchBigProjectImage(project_id, row_id)
{		
	var img = $("#pib_" + project_id + "_" + row_id + " > img");
	var src = String(img.attr("src")).replace("_thumb", "");
	$("#project_image_holder_" + project_id).html('<img class="project_image_big" src="' + src + '" alt=""/>');
	
	$(".preview_images > div").removeClass("preview_item_active");
	$("#pib_" + project_id + "_" + row_id).addClass("preview_item_active");
}

//-------------------------------------------------------------------------------------------------------------------------------
function switchHalfProjectImage(project_id, row_id)
{		
	var images = $("#pih_" + project_id + "_" + row_id + " > img");
	var html = "";
	for(var i = 0; i < images.length; i++)
	{
		var src = String(images[i].src).replace("_thumb", "");
		html += '<img class="project_image_half" src="' + src + '" alt=""/>';
	}	
	html += '<div class="clearer"><!-- --></div>';
	$("#project_image_holder_" + project_id).html(html);
	
	$(".preview_images > div").removeClass("preview_item_active");
	$("#pih_" + project_id + "_" + row_id).addClass("preview_item_active");
}

//-------------------------------------------------------------------------------------------------------------------------------
function updateFancybox() 
{
	$(document).ready(function() {
	   $(".fancy_overlay").fancybox({
				   hideOnContentClick: false,
				   hideOnOverlayClick: true,
				   overlayShow: true,
				   overlayOpacity: 0.4,
				   zoomSpeedIn: 200,
				   zoomSpeedOut: 200,
				   image:false,
				   titleShow:false
		});
    });	
}


