/*******************************************************************************
**
**	$Id$
**
********************************************************************************
**    ____________________________________________________________________
**   /               _                       ____                         \
**  |     ____      | |_ ___  __ _ _ __ ___ | __ )  _____  __              | 
**  |    / _  \     | __/ _ \/ _` | '_ ` _ \|  _ \ / _ \ \/ /              |
**  |   / |_  /     | ||  __/ (_| | | | | | | |_) | (_) >  <               |
**  |   \____/       \__\___|\__,_|_| |_| |_|____/ \___/_/\_\              |
**  |                                                                      |
**  |   Copyright (c) 2009, TeamBox SARL             All rights reserved   |
**  |                                                                      |
**  |  Any use of this software - including reproduction, modification,    |
**  |  distribution, transmission - without the prior written permission   |
**  |  of the authors is strictly prohibited.                              |
**  |                                                                      |
**   \____________________________________________________________________/
**
********************************************************************************
**
**	Scripting site web teambox
**
*******************************************************************************/

var VID_WIDTH=776;
var VID_HEIGHT=600;

function UrlBase()
{
	var scripts=document.getElementsByTagName("script");

	for(var i=0;i<scripts.length;i++)
	{
		var src=scripts[i].src;
		var match=src.match(/^(.*)\/js\/teambox\.js$/);
		if(match)
		{
			return match[1];
		}
	}
	return null;
}

function MkUrl(path)
{
	var base=UrlBase();

	if(base)
	{
		return base+"/"+path;
	}
	return null;
}

function ExpandParagraph(el)
{
	var section=el.parent;
	$('A.shrink',section).each(function()
	{
		$(this).show();
	});
	$('.expandable',section).each(function()
	{
		$(this).show();
	});
	$(el).hide();
}

function ShrinkParagraph(el)
{
	var section=el.parent;
	$('A.expand',section).each(function()
	{
		$(this).show();
	});
	$('.expandable',section).each(function()
	{
		$(this).hide();
	});
	$(el).hide();
}

$(function()
{
	$('A.expand').each(function()
	{
		$(this).click(function() { ExpandParagraph(this) });
	});
	$('A.shrink').each(function()
	{
		$(this).click(function() { ShrinkParagraph(this) });
	});
});

$(function()
{
	var MenuTimerId=null;
	var MenuId=null;

	function LeaveMenu(menuid)
	{
		if(MenuTimerId)
		{
			return;
		}
		MenuTimerId=setTimeout(function()
			{
				MenuTimerId=null;
				$(menuid).slideUp("fast");
			},300);
	}

	function EnterMenu(menuid)
	{
		if(MenuId && MenuId!=menuid)
		{
			$(MenuId).slideUp("fast");
			MenuId=null;
		}
		MenuId=menuid;
		if(MenuTimerId)
		{
			clearTimeout(MenuTimerId);
			MenuTimerId=null;
		}
		$(menuid).slideDown("fast");
	}

	function InitPopupMenu(anchorid,menuid)
	{
		var menuid="#"+menuid;
		var anchorid="#"+anchorid;

		$(menuid).hide();
		$(anchorid).add(menuid).hover(
			function()
			{
				EnterMenu(menuid);
			},
			function()
			{
				LeaveMenu(menuid);
			}
		);

		$(menuid).click(function()
			{
				$(menuid).hide();
			}
		);
	}

	InitPopupMenu("topm_fonctionnalites","sub_fonctionnalites");
});

$(function()
{
	function matchurl(str)
	{
		var url="" + window.location;
		url=url.replace(/-/g,"_");
		str=str.replace(/-/g,"_");
		return (url.indexOf(str)>=0);
	}

	var url="" + window.location;
	var topmap={
		"/fonctionnalites":	"fonctionnalites",
		"/offre-logiciel-groupware": "offre",
		"/telephones_toip": "telephones",
		"/cas_clients": "casclient",
		"/actualites": "actualites",
		"/contact": "contact"
	};

	for(var key in topmap)
	{
		if(matchurl(key))
		{
			$('#topm_'+topmap[key]).addClass("selected");
		}
	}

	var solmap={
		"/solutions/standard_telephonique_pabx": "standard",
		"/solutions/telephonie_collaborative": "telcollab",
		"/solutions/serveur_mails_fichiers": "srvmail",
		"/solutions/serveur_communication_unifie": "srvcomm",
		"/solutions/services": "services"
	};

	for(var key in solmap)
	{
		if(matchurl(key))
		{
			$('#sol_'+solmap[key]).addClass("selected");
		}
	}
});

$(function()
{
	var VidFrame,VidBlocker;

	function ShowVideo(base,vidname)
	{
		if(!VidBlocker)
		{
			VidBlocker=document.createElement('div');
			VidBlocker.className="blocker";
			document.body.appendChild(VidBlocker);

			$(VidBlocker).css("opacity",0.5);

			VidFrame=document.createElement('iframe');
			VidFrame.className="videoframe";
			document.body.appendChild(VidFrame);

			$(VidBlocker).hide();
			$(VidFrame).hide();

			VidFrame.closeCallback=function()
			{
				$(VidBlocker).hide();
				$(VidFrame).hide();
			};

			$(VidFrame).load(function()
			{
				$(VidFrame).show();
			});
		}
		else
		{
			$(VidFrame).html("");
		}

		if($.browser.msie && $.browser.version<7)
		{
			// IE6... Grrrrrrr
			var y=document.documentElement.scrollTop;
			$(VidFrame).css("margin-top",0);
			$(VidFrame).css("top",y+10);
			$(VidFrame).css("position","absolute");
		}

		var url=base+"/showvideo.php?name="+vidname;
		VidFrame.src=url;
		var dx=$(document.body).width();
		var dy=$(document.body).height();
		$(VidBlocker).width(dx);
		$(VidBlocker).height(dy);
		$(VidBlocker).show();
	}

	$('IMG.videothumb').each(function()
	{
		var img=this;
		var src=img.src;
		var oversrc=src.replace(/\.png$/,"_over.png");

		var match;
		if(!(match=src.match(/^(.*)\/videos\/([^\/]+)\//)))
		{
			return;
		}

		var base=match[1];
		var vidname=match[2];

		$(img).hover(
			function()
			{
				img.src=oversrc;
			},
			function()
			{
				img.src=src;
			}
		);

		$(img).click(function()
			{
				ShowVideo(base,vidname);
			});
	});


	$('#flashcontainer').each(function()
	{
		var flash=this;
		var url=$(flash).attr("flashsrc");

		$(flash).flash({
			src:	url,
			flashvars: { autostart: true },
			width:	VID_WIDTH,
			height:	VID_HEIGHT
		});
	});

	$('#closeframe').each(function()
	{
		var btn=this;

		$(btn).click(function()
		{
			var frame=window.frameElement;
			if(frame.closeCallback)
			{
				frame.closeCallback();
				return null;
			}
		});
	});
});
