//Définition du type du navigateur
window.isIE = navigator.appName.substring(0,9) == 'Microsoft';
window.isWin = new String(navigator.platform).indexOf('Win') >=0;
window.isMoz = navigator.userAgent.substr(0,'Mozilla/5.0'.length) == 'Mozilla/5.0';

//Prévient l'exécution du code par un navigateur ne supportant pas cette fonctionnalité
if(window.isIE)
{
	document.styleSheets['CSSID'].addRule
	(
		"BODY",
		"scrollbar-3dlight-color: #999999;" +
		"scrollbar-arrow-color: #000;" +
		"scrollbar-base-color: #999999;" +
		"scrollbar-darkshadow-color: #ffffff;" +
		"scrollbar-face-color: #cccccc;" +
		"scrollbar-highlight-color: #ffffff;" +
		"scrollbar-shadow-color: #999999;" +
		"scrollbar-track-color: #e3e3e3"
	);
}

function replaceEntities(url)
{
	var out = url.replace('&','&amp;')
	out = url.replace('<','&lt;')
	out = url.replace('>','&gt;')
	out = url.replace('"','&quot;')
	out = url.replace("'",'&apos;')
	return out;
}

/**
* Do not call it from <head>
*/
function addJavascript(url)
{
	var xScript = document.createElement('SCRIPT');
	xScript.setAttribute('type','text/javascript');
	xScript.setAttribute('src',replaceEntities(url));
	return document.getElementsByTagName('HEAD')[0].appendChild(xScript);
}

function windowOnLoadHandler()
{
	setCurrentTab();
	setLinksToBlank();
	twitterCall();
	visitorMap();
	//dilbert();
	googleAnalytics();
}


/**
 * Gestion de la sélection active sur les onglets
 */
function setCurrentTab()
{
	if(typeof document.getElementById == 'undefined')
		return;

	var menu = document.getElementById('tab-menu');
	var aUrl = window.location.href.split('/');

	var aArr= new Array();
	for(var i=0; i<menu.childNodes.length; i++)
		if(menu.childNodes[i].nodeName.toLowerCase() == 'a')
			aArr.push(menu.childNodes[i]);

	//cv.tekool.net est un cas particulier
	if(aUrl[2] == 'cv.tekool.net')
		return aArr[2].className = 'currentTab';

	//Accueil est un cas particulier
	if(aUrl.length < 4)
		return aArr[0].className = 'currentTab';

	switch(aUrl[3].toLowerCase())
	{
		case '' :
		case 'index.php' :
		case 'blog' :
			aArr[0].className = 'currentTab';
		break;

		case 'cv' :
		case 'realisation' :
			aArr[1].className = 'currentTab';
		break;

		case 'apropos' :
			aArr[2].className = 'currentTab';
		break;
	}
}

if(typeof document.readyState != "undefined")
{
	window.readyStateIntervalHeaderJs = setInterval('onReadyStateIntervalHeaderJs()',20);
	onReadyStateIntervalHeaderJs = function()
	{
		if(document.readyState == 'complete')
		{
			clearInterval(window.readyStateIntervalHeaderJs);
			windowOnLoadHandler();
		}
	}
}
else
if(typeof window.addEventListener != "undefined")
{
	window.addEventListener("load", windowOnLoadHandler, false);
}

function setLinksToBlank()
{
	if(typeof document.getElementsByTagName == 'undefined')
		return;

	var arrA = document.getElementsByTagName('a');
	for(var i=0; i<arrA.length; i++)
		if(typeof arrA[i].href != 'undefined' && arrA[i].href.indexOf('www.tekool.net') == -1)
			arrA[i].target = '_blank';
}

/*****************************************************************************/
// visitorMap
/*****************************************************************************/

function visitorMap()
{
	var key = '0cbe6kcu';

	var ttl = ''; 
	if(document.title) 
		ttl = '?ttl='+encodeURIComponent(document.title);

	document.getElementById('visitormapcontainer').innerHTML += '<div style="display:none"><img src="http://maps.amung.us/ping/' + key + '.gif' + ttl + '" /></div>';

	var flashvars = 
	{
		wausitehash: key,
		map: "natural",
		pin: "target-green",
		link: "yes"
	};

	var params = 
	{
		menu: "false",
		AllowScriptAccess:"always",
		AllowNetworking:"all"
	};

	if(window.isIE)
	{
		var width = 156;
		var height = 78;
	}
	else
	{
		var width = 168;
		var height = 84;
	}


	window.swfobject.embedSWF("http://widgets.amung.us/flash/v2map.swf", "visitormap", width, height, "0", null, flashvars, params);
}

/*****************************************************************************/
// Twitter
/*****************************************************************************/

function twitterCall()
{
	addJavascript('http://twitter.com/statuses/user_timeline/tekool.json?callback=twitterCallback&count=3');
}

function twitterCallback(obj)
{
	var twitters = obj;
	var statusHTML = "";
	var username = "";
	for(var i=0; i<twitters.length; i++)
	{
		username = twitters[i].user.screen_name;
		var text = twitters[i].text;
		text = addUrls(text);
		text = addAts(text);
		statusHTML += '<li><span>'+text+'</span> <a class="twitterago" style="font-size:85%" href="http://twitter.com/'+username+'">'+relative_time(twitters[i].created_at)+'</a></li>';
	}

	document.getElementById('twitter_div').innerHTML = '<ul id="twitter_update_list">' + statusHTML + '</ul>';

}

function relative_time(time_value)
{
	var values = time_value.split(" ");
	time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];

	var parsed_date = Date.parse(time_value);
	var relative_to = (arguments.length > 1) ? arguments[1] : new Date();

	var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
	delta = delta + (relative_to.getTimezoneOffset() * 60);

	if (delta < 60)
		return 'less than a minute ago';
	else 
	if(delta < 120)
		return 'about a minute ago';

	else
	if(delta < (60*60))
		return (parseInt(delta / 60)).toString() + ' minutes ago';
	else
	if(delta < (120*60))
		return 'about an hour ago';
	else
	if(delta < (24*60*60))
		return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
	else
	if(delta < (48*60*60))
		return '1 day ago';
	else
		return (parseInt(delta / 86400)).toString() + ' days ago';
}

function addUrls(text)
{
	var out = text;

	var i=0;
	var start;
	while( ( start = out.toLowerCase().indexOf("http://",i) ) != -1)
	{
		i = start+1;

		while("abcdefghijklmnopqrstuvwxyz0123456789%.-?&|()*+'$!:,;_/#~=@".indexOf(out.charAt(i).toLowerCase()) != -1 && i<out.length)
			i++;

		var end = i;

		var url = out.substring(start,end);
		var miniurl = url.substring(7,7+12);
		var replacement = '<a class="twitterlink" title="' + url + '" href="' + url + '">' + miniurl + '…</a>';
		out = out.substring(0,start) + replacement + out.substr(end);

		i = start + replacement.length;
	}

	return out;
}

function addAts(text)
{
	var re = new RegExp('@([A-Za-z0-9_]*)','g');
	return text.replace(re,'<a class="twitterpeople" href="http://twitter.com/$1">@$1</a>');
}


/*****************************************************************************/
// Google analytics
/*****************************************************************************/
function googleAnalytics()
{
	var pageTracker = window._gat._getTracker("UA-4777798-3");
	pageTracker._initData();
	pageTracker._trackPageview();
}