;// JavaScript Document

//---------------------------------------------------------------------------------------------------------------
var active_tab_id = 1;
var up_to_date_tabs = new Array();
var history_tab_id = 1;

//---------------------------------------------------------------------------------------------------------------
var ti = new Array(); // info array for all tabs
var page_offset = 8;
var page_limit = 8;

//---------------------------------------------------------------------------------------------------------------
function showVideosTab(id)
{
	if(isNaN(id))
		return;
	
	var active_tab = $("tab_" + active_tab_id);
	active_tab.className = "";
	var active_products = $("videos_" + active_tab_id);
	active_products.style.display = "none";
	
	var tab = $("tab_" + id);
	tab.className = "tab-selected";
	var products = $("videos_" + id);
	products.style.display = "block";
	active_tab_id = id;
	
	var update_tab = true;
	for(var i = 0; i < up_to_date_tabs.length; i++)
	{
		if(up_to_date_tabs[i] == id)
		{
			update_tab = false;
			break;
		}
	}
	
	if(update_tab)
		getVideosByFilterAndCategory(id, active_filter);
		
	SWFAddress.setValue(tab.title + "?c=" + id);
	
	return false;
}

//---------------------------------------------------------------------------------------------------------------
function handleVideosHistory(event) 
{	
	for(var i = 0; i < event.parameterNames.length; i++)
	{
		if(event.parameterNames[i] == "c")
		{
			if(event.parameters["c"] != null && event.parameters["c"] != active_tab_id)
			{
				showVideosTab(event.parameters["c"]);
				return;
			}
		}
	}
	
	if(event.path == "/" && active_tab_id != history_tab_id)
	{
		showVideosTab(history_tab_id);
	}
}

//---------------------------------------------------------------------------------------------------------------
function showMoreVideos(id)
{
	if(isNaN(id))
		return;
		
	if(typeof(ti[id]) == "undefined")
	{
		ti[id] = new Object();
		ti[id].tab_id = id;
		ti[id].page_offset = page_offset;
		ti[id].page_limit = page_limit;
		ti[id].page = 1;
	}
	else
	{
		ti[id].page_offset += ti[id].page_limit;
		ti[id].page++;
	}

	getMoreVideosByFilterAndCategory(active_tab_id, active_filter, ti[active_tab_id].page_offset, ti[active_tab_id].page_limit);
}


//---------------------------------------------------------------------------------------------------------------
function filterChanged()
{
	up_to_date_tabs = new Array();
	getVideosByFilterAndCategory(active_tab_id, active_filter);
}

//---------------------------------------------------------------------------------------------------------------
function getVideosByFilterAndCategory(category_id, filter)
{
	var videos_category = $("videos_category_" + category_id);
	videos_category.className = "ajax-category-loading";
	
	var params = new Object();
	params.category_id = category_id == 0 ? "0" : category_id;
	
	params.segment_filter = filter.segments.join(",");
	params.topic_filter = filter.topics.join(",");
	params.external_product_filter = filter.external_products.join(",");
	params.manufacturer_filter = filter.manufacturers.join(",");
	
	new Ajax.Request("custom/modules/video/video_ajax.cfc?method=getVideosByFilterAndCategory", {
		method: 'post',
		parameters : params,
		onSuccess: function(transport) {
			var obj = transport.responseText.evalJSON();
			
			up_to_date_tabs.push(obj.id);
	
			var videos_category = $("videos_category_" + obj.id);
			videos_category.className = "";
			
			if(obj.records_left == "NO")
				$("show_more_" + obj.id).style.display = "none";
			else
				$("show_more_" + obj.id).style.display = "block";
		
			if(obj.update == true)
			{
				videos_category.innerHTML = obj.html;
				$("info_count_" + obj.id).innerHTML = obj.info_count_text;	
			}
			
			if(typeof(ti[obj.id]) != "undefined")
			{
				ti[obj.id].page_offset = 0;
				ti[obj.id].page_limit = page_limit;
				ti[obj.id].page = 1;
			}
			
			if(obj.row_count == 0 && obj.id == 1)
				showVideosTab(0);
		}
	});
}

//---------------------------------------------------------------------------------------------------------------
function getMoreVideosByFilterAndCategory(category_id, filter, offset, limit)
{
	var video_category = $("video_category" + category_id);
	$("load_more_ajax_" + category_id).style.display = "block";
	
	var params = new Object();
	params.category_id = category_id == 0 ? "0" : category_id;
	if(offset >= 0)
		params.offset = offset == 0 ? "0" : offset;
	else
		params.offset = "0";
	if(limit >= 0)
		params.limit = limit == 0 ? "0" : limit;
	else
		params.limit = page_limit;

	params.segment_filter = filter.segments.join(",");
	params.topic_filter = filter.topics.join(",");
	params.external_product_filter = filter.external_products.join(",");
	params.manufacturer_filter = filter.manufacturers.join(",");
	
	new Ajax.Request("custom/modules/video/video_ajax.cfc?method=getVideosByFilterAndCategory", {
		method: 'post',
		parameters : params,
		onSuccess: function(transport) {
			var obj = transport.responseText.evalJSON();
			
			up_to_date_tabs.push(obj.id);
	
			var video_category = $("videos_category_" + obj.id);
		
			$("load_more_ajax_" + obj.id).style.display = "none";
				
			if(obj.records_left == "NO")
				$("show_more_" + obj.id).style.display = "none";
			else
				$("show_more_" + obj.id).style.display = "block";
				
		
			if(obj.update == true)
			{
				video_category.innerHTML += obj.html;
				$("info_count_" + obj.id).innerHTML = obj.info_count_text;
			}
		}
	});
}

//---------------------------------------------------------------------------------------------------------------
var video_info_window_id = "";
var video_info_timer = "";
var video_info_height = 0;
var video_info_width = 0;
var adjustment = "left";
var caller = null;

//---------------------------------------------------------------------------------------------------------------
function startStopVideoInfoWindow(evt, id, adjustment, caller)
{
	this.adjustment = adjustment;
	this.caller = caller;
	video_info_window_id = id; 
	video_info_timer = setTimeout(prepareInfoWindow = function() { getInfoWindowContent(id); }, 700);
}

//---------------------------------------------------------------------------------------------------------------
function getInfoWindowContent(id)
{
	if($(id) != null)
	{
		calculateVideoInfoWindowDimensions();
		showVideoInfoWindow(caller, adjustment);
		return;
	}
	var params = new Object();
	
	var idsplit = id.split("_");
	params.video_id = idsplit[idsplit.length - 1];
	params.category_id = idsplit[idsplit.length - 2];
	
	new Ajax.Request("custom/modules/video/video_ajax.cfc?method=renderVideoInfoWindow", {
		method: 'post',
		parameters : params,
		onSuccess: function(transport) {
			var obj = transport.responseText.evalJSON();
			
			$("info_window").innerHTML = obj.window_content;
			
			calculateVideoInfoWindowDimensions();
			showVideoInfoWindow(caller, adjustment);
		}
	});
}

//---------------------------------------------------------------------------------------------------------------
function calculateVideoInfoWindowDimensions()
{
	var info_window = $(video_info_window_id);	
	info_window.style.display = "block";
	video_info_height =  info_window.offsetHeight;
	video_info_width =  info_window.offsetWidth;
	info_window.style.display = "none";
}

//---------------------------------------------------------------------------------------------------------------
function showVideoInfoWindow(caller, adjustment)
{
	var arrow_left = "product-window-arrow-left";
	var arrow_right = "product-window-arrow-right";
	var info_window = $(video_info_window_id);	
		
	var offset_x = $(caller).viewportOffset().left + caller.offsetWidth + 2;
	var offset_y = $(caller).viewportOffset().top;
	

	if(window.opera != "undefined" & navigator.userAgent.indexOf("Opera") > -1)
	{
		offset_y -= document.documentElement.scrollTop;
	}
	
	if(isIE6)
	{
		offset_y += document.documentElement.scrollTop;
	}
	
	if(adjustment == "top")
	{
		offset_y = offset_y + (caller.offsetHeight / 2) - 62;
	}
	else
	{
		offset_y = offset_y - video_info_height + (caller.offsetHeight / 2) + 62;
	}

	var info_window_arrow = $(video_info_window_id + "_arrow");
	if(info_window_arrow != null)
	{
		if(offset_x + video_info_width > getWindowWidth())
		{
			offset_x = $(caller).viewportOffset().left - video_info_width;
			info_window_arrow.className = arrow_right + " " + arrow_right + "-" + adjustment;
		}
		else
		{
			info_window_arrow.className = arrow_left + " " + arrow_left + "-" + adjustment;
		}
	}
	
	if(info_window != null)
	{
		info_window.style.left = offset_x + "px";
		info_window.style.top = offset_y + "px";
		
		info_window.style.display = "block";
	}
}

//---------------------------------------------------------------------------------------------------------------
function adjustVideoInfoWindow(evt, id, adjustment, caller)
{	

	var value = 0;
	var top = 0;
	var arrow_left = "product-window-arrow-left";
	
	alert(caller.scrollTop);
	
	if(document.documentElement.scrollTop != "undefined" && document.documentElement.scrollTop != 0)
	{
		value = document.documentElement.scrollTop;
	}
	else
	{
		if(document.body.scrollTop != "undefined" && document.body.scrollTop != 0)
			value = document.body.scrollTop;
	}	

	var info_window = $(id);	
	var info_window_arrow = $(id + "_arrow");	
	var offset_x = caller.offsetTop + 15;
	var offset_y = caller.offsetLeft - value + 39;

	offset_y -= video_info_height;

	info_window_arrow.className = arrow_left + " " + arrow_left + "-" + adjustment;
	
	info_window.style.left = offset_x + "px";
	info_window.style.top = offset_y + 25 + top + "px";
}

//---------------------------------------------------------------------------------------------------------------
function hideVideoInfoWindow()
{
	clearTimeout(video_info_timer);
	var info_window = $(video_info_window_id);
	if(info_window != null)
	{
		info_window.style.display = "none";
		video_info_window_id = "";
	}	
}
;// JavaScript Document
var active_filter = new Object();
active_filter.segments = new Array();
active_filter.topics = new Array();
active_filter.external_products = new Array();
active_filter.manufacturers = new Array();

//---------------------------------------------------------------------------------------------------------------
function showHideAdvancedFilter()
{
	var adv_filter = $("advanced_filter");
	if(adv_filter.style.display == "none")
	{
		adv_filter.style.display = "block";
	}
	else
		adv_filter.style.display = "none";
	if($("header-image") != null)
	{
		adv_filter.getElementsByTagName("div").item(2).className += " filter-header-image";	
	}
}

//---------------------------------------------------------------------------------------------------------------
function filterBySegment()
{
	resetActiveFilter();
	
	var quick_topics = $("quick_filter");
	var quick_checkboxes = quick_topics.getElementsByTagName("input");
	for(var i = 0; i < quick_checkboxes.length; i++)
	{
		var checkbox = quick_checkboxes.item(i);
		if(checkbox.checked)
		{
			active_filter.segments.push(checkbox.value);
		}
	}
	
	if(active_filter.segments.length == 0)
		hideFilterResetButton();
	else
		showFilterResetButton();
		
	$("advanced_filter").style.display = "none";
	
	filterChanged();
}

//---------------------------------------------------------------------------------------------------------------
function filterByTopic(id)
{
	resetQuickFilter();
	resetActiveFilter();
	
	active_filter.topics.push(id);
	
	showHideAdvancedFilter();
	showFilterResetButton();
	filterChanged();
}

//---------------------------------------------------------------------------------------------------------------
function filterByExternalProduct(id)
{
	resetQuickFilter();
	resetActiveFilter();
	
	active_filter.external_products.push(id);
	
	showHideAdvancedFilter();
	showFilterResetButton();
	filterChanged();
}

//---------------------------------------------------------------------------------------------------------------
function filterByManufacturer(id)
{
	resetQuickFilter();
	resetActiveFilter();
	
	active_filter.manufacturers.push(id);
	
	showHideAdvancedFilter();
	showFilterResetButton();
	filterChanged();
}

//---------------------------------------------------------------------------------------------------------------
function resetActiveFilter()
{
	active_filter = new Object();
	active_filter.segments = new Array();
	active_filter.topics = new Array();
	active_filter.external_products = new Array();
	active_filter.manufacturers = new Array();
}

//---------------------------------------------------------------------------------------------------------------
function resetQuickFilter()
{
	var quick_topics = $("quick_filter");
	var quick_checkboxes = quick_topics.getElementsByTagName("input");
	for(var i = 0; i < quick_checkboxes.length; i++)
	{
		var checkbox = quick_checkboxes.item(i);
		if(checkbox.setChecked != null &&  checkbox.setChecked != "undefined")
			checkbox.setChecked(false);
		else
			checkbox.checked = false;
	}
}

//---------------------------------------------------------------------------------------------------------------
function resetFilter()
{
	resetQuickFilter();
	resetActiveFilter();
	hideFilterResetButton();
	filterChanged();
}

//---------------------------------------------------------------------------------------------------------------
function showFilterResetButton()
{
	$("reset_filter").style.display = "block";
	var feature = $("product_feature");
	if(feature != null)
	{
		feature.style.display = "none";	
	}
}

//---------------------------------------------------------------------------------------------------------------
function hideFilterResetButton()
{
	$("reset_filter").style.display = "none";
	var feature = $("product_feature");
	if(feature != null)
	{
		feature.style.display = "block";	
	}
}

