/*-----------------------*/
/* GLOBAL SITE FUNCTIONS */
/*-----------------------*/

// votes
function game_vote(game_id, score, position) {
	$.ajax({
		type: "POST",
		url: "index.php",
		data: {
			'a' : 'vote',
			'game_id' : game_id,
			'score' : score
		},
		dataType: 'json',
		success: function(results){
			$('#game'+position+' .vote li').each(function(i) {
				$(this)
					.removeClass('active')
					.removeAttr('onclick')
					.css('cursor', 'auto');
				if (i <= (score - 1)) {
					$(this).addClass('active');
				};
			});
		}
	});
}

// // Easing equation, borrowed from jQuery easing plugin       
// // http://gsgd.co.uk/sandbox/jquery/easing/
// 
jQuery.easing.easeOutQuart = function (x, t, b, c, d) {
 return -c * ((t=t/d-1)*t*t*t - 1) + b;
};
jQuery.easing.easeOutElastic = function (x, t, b, c, d) {
 var s=1.70158;var p=0;var a=c;
 if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
 if (a < Math.abs(c)) { a=c; var s=p/4; }
 else var s = p/(2*Math.PI) * Math.asin (c/a);
 return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
}
// 
// //tabs
// // ----------
function toggleTab (tabid) {
 $("#tab" + tabid + " .content-tab").slideToggle("fast");    
 var $bt = $("#tab" + tabid + " .tab-swicher");
 if($bt.hasClass("opened")) {
     $bt.html("ouvrir").removeClass("opened");               
 } else {
     $bt.html("fermer").addClass("opened");
 }
 return false;
}
// 
function movetoTab(tabid) {
 $("#tab" + tabid + " .content-tab").css("display", "none").slideDown("fast");
 $("#tab" + tabid + " .tab-swicher").not(".opened").addClass("opened").html("fermer");
 
 $.scrollTo('#tab' + tabid, '500', function () {
     $('#tab' + tabid).pulse({
		    opacity: [0.7, 1]
		}, 400, 2);
 });
 //relaunch active pulse
 activeTabPulse();
 return false;
}
// 
// // pulse active
// // ----------
function activeTabPulse () {
	$('#game-list div').stop();
	$("#game-list .active").pulse({
	    opacity: [1,0.6]
	}, 400, 9999);
}

// //selectDiapo
function selectDiapo(item) {
	$('#game-details').stop(true, false).scrollTo(item, 1000, {easing:'easeOutQuart'});
}

// init
// ----------		
function initInterface ()
{
	$('#loading-body').css("display", "none");
	$('#header, #body-content, #body-tabs, #footer').css("display", "block");
	$('#page-title').css("display", "none").pause(200).fadeIn("slow");
	$('#nav-header').css("display", "none").slideDown("slow");
	$('#nav-level-1').css("display", "none").pause(500).slideDown("slow");

	//setting active pulse
	activeTabPulse();
	//open tab2 at load
	toggleTab(2);
	
	//configuration du diaporama des jeux 
	// -----------
		
	$('#game-list .item').each(function(i) {
		var $this = $(this);
		$this.data('item', i+1);
		$this.click(function() {
			scrollto_detail($(this).data('item'))
			scrollto_button($(this).data('item'))
		});		
	});
	
	$('#game-details .item').each(function(i) {
		$(this).data('item', i+1);
	});
	
	$('#arrow-right-button').click(function() {
		var item_number = $('#game-list .active').next().data('item');
		if (item_number) {
    		scrollto_detail(item_number)
        	scrollto_button(item_number)		    
		};
	   return false;
	});

	$('#arrow-left-button').click( function() {
		var item_number = $('#game-list .active').prev().data('item');
		
		if (item_number) {
    		scrollto_detail(item_number)
        	scrollto_button(item_number)
		};
		return false;
	});
	scrollto_detail(1);
	scrollto_button(1);
}

function scrollto_detail(item_number) {
	var $list = $('#game-details');
	var $game = $('#game'+item_number);
	$list.scrollTo(
		$game,
		1200,
		{
			easing: 'easeOutElastic',
			offset: {
				left: 303
			}
		}
	)
	// active
	$game.siblings().removeClass('active');
	$game.addClass('active');
}

function scrollto_button(item_number) {
	var $list = $('#game-list');
	var $button = $('#button'+item_number)
	if (item_number <= totalGameCount-2) {
		$list.scrollTo(
			$button,
			600
		)
	};
	// show/hide buttons
	if (item_number == 1) {
	    $('#arrow-left-button').hide();
	} else if(item_number >=totalGameCount) {
	    $('#arrow-right-button').hide();		    
	} else {
	    $('#arrow-left-button, #arrow-right-button').show();
	}
	
	// active
	$button.siblings().removeClass('active');
	$button.addClass('active');
	// pulse
	activeTabPulse();
}

function game_show_all() {
	if ($('#game-list').hasClass('game-show-all')) {
		$('.bt-ts-ls-jeux').html('Afficher tous les jeux');
	} else {
		$('.bt-ts-ls-jeux').html('Réduire la taille');
	}
	//
	$('#game-list')
		.toggleClass('game-show-all')
		.scrollTop(0)
		.scrollLeft(0)
	$('#game-list-mask').toggleClass('game-show-all');
	//
	//
	scrollto_button(1)
	scrollto_detail(1)
}

/*------------------*/
/* GLOBAL ISMANAGER */
/*------------------*/

/* vidange des formulaires et style .active */

$(document).ready(function() {
	$('input:not(:radio, :checkbox), textarea, select').each(function () {
		$(this).focus(function (){		
			$(this).not('.active').addClass('active');
			if($(this).attr('title') == $(this).attr('value'))
			{
				$(this).attr('initValue', $(this).val());
				$(this).val('');
			}
		}).blur(function (){
			if($(this).attr('initValue')) {
				if($(this).attr('value') == $(this).attr('initValue') || $(this).attr('value')=='') {
					$(this).val($(this).attr('initValue'));
				}
			}
			$(this).removeClass('active');
		})
	});
});

/******** flash detection script *************/

// Flash Player Version Detection - Rev 1.5
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
// http://www.adobe.com/products/flashplayer/download/detection_kit/

var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;
	try {
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");	
			version = "WIN 6,0,21,0";		
			axo.allowscriptaccess = "always";
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

function GetSwfVer(){
	var flashVer = -1;
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;			
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
    var str = '';
    if (isIE && isWin && !isOpera)
    {
  		str += '<object ';
  		for (var i in objAttrs)
  			str += i + '="' + objAttrs[i] + '" ';
  		for (var i in params)
  			str += '><param name="' + i + '" value="' + params[i] + '" /> ';
  		str += '></object>';
    } else {
  		str += '<embed ';
  		for (var i in embedAttrs)
  			str += i + '="' + embedAttrs[i] + '" ';
  		str += '> </embed>';
    }

    document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

/******** end flash detection *************/

/******** flash insert funciton [ISMANAGER ADDON] *************/

//function calls a flash object in the page where the function is called
function flash_insert(flashObj, requiredMajorVersion, requiredMinorVersion, requiredRevision, htmlReplacement)
{
	if (!requiredMajorVersion) { var requiredMajorVersion = 8; } // Major version of Flash required
	if (!requiredMinorVersion) { var requiredMinorVersion = 0; } // Minor version of Flash required
	if (!requiredRevision) { var requiredRevision = 00; } 		 // Minor version of Flash required
	
	var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
	if (hasReqestedVersion) {
		// if we've detected an acceptable version
		// embed the Flash Content SWF when all tests are passed
		if(flashObj.Height) flashObj.height = flashObj.Height;
		if(flashObj.flashVars) flashObj.flashvars = flashObj.flashVars;
		if(flashObj.allowScriptAccess) flashObj.allowscriptaccess = flashObj.allowScriptAccess;
			
		AC_FL_RunContent(
					"src", flashObj.src,
					"width", flashObj.width,
					"height", flashObj.height,
					"align", flashObj.align,
					"id", flashObj.name,
					"quality", flashObj.quality,
					"bgcolor", flashObj.bgColor,
					"name", flashObj.name,
					"wmode", flashObj.wmode,
					"flashvars", flashObj.flashvars,
					"allowscriptaccess", flashObj.allowscriptaccess,
					"allowfullscreen", flashObj.allowfullscreen,
					"type", "application/x-shockwave-flash",
					'codebase', 'http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab',
					"pluginspage", "http://www.adobe.com/go/getflashplayer"
		);
	} else {  // flash is too old or we can't detect the plugin
		if(htmlReplacement != "") {
			alternateContent = htmlReplacement;
		} else {
			var alternateContent = '<p>&nbsp;</p><p>Votre navigateur n\'es pas &agrave; jour, vous devez disposer du plugin Adobe Flash v.'+requiredMajorVersion+'.'+requiredMinorVersion+'.'+requiredRevision+' minimum pour afficher correctement le contenu de cette page.</p><p>&nbsp;</p>'
			+ '<p>Merci de proc&eacute;der &agrave; la mise &agrave; jour en cliquant sur le lien ci dessous.</p>'
			+ '<p>&nbsp;</p><p style="background: #FFF;padding: 10px;margin: 10px 0px 10px 0px"><a href="http://www.adobe.com/go/getflash/" target="_blank"><img src="http://www.adobe.com/fr/shockwave/download/images/download_now.gif" alt="Installer maintenant" border="0" /></a></p>';
		}
		document.write(alternateContent);  // insert non-flash content
	}
}

/******** flash insert funciton [ISMANAGER ADDON] *************/
