function getUrlParameter( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

var mw_flashMovieId = "delire"; // the id/name of your flash app's HTML DOM element     
var mw_flashContainerId = "AveBrowser"; // the id/name of the flash element's surrounding div element 

var _NPages={
	"182":{
		url 	:"selection",
		id		:"182",
		pid		:"none",
		kind	:"none",
		height	:2650
	},
	"183":{
		url 	:"detail",
		id		:"183",
		pid		:"182",
		kind	:"detail",
		height	:1330
	},
	"189":{
		url 	:"detailVote",
		id		:"189",
		pid		:"182",
		kind	:"detail+",
		height	:1330
	}
};

var udetail = 183;
var sdetail = 183;

var idToUrl;
var UrlToId;

var swfLoaded = false;

function swfComplete()
{
	swfLoaded = true;

	History.activateListener();
	
	if(_sid_memorry_ != '')
		fibdConnexion(_sid_memorry_);
}

function initHistory()
{
	idToUrl = new Object();
	UrlToId = new Object();
	
	for( var key in _NPages )
	{
		idToUrl[_NPages[key].id] = _NPages[key];
		UrlToId[_NPages[key].url] = _NPages[key];
	}
	History.init();
}

//////////////////
//     FIBD     //
//////////////////
var _sid_memorry_ = '';
function fibdConnexion(sid)
{
	_sid_memorry_ = sid;
	if(swfLoaded)
	{
		document.delire.fibdConnexion(sid);
	}
}

function vote(p,sid,t,a,e,i)
{
	inner = '<div id="loginreg">';
	inner += '<div style="display: block;" id="votetop">';
	inner += '<a href="javascript://" onclick="hideOverlay();return false;" id="closelogin" title="fermer"> </a>';
	inner += '</div>';
	inner += '<div style="display: block;" id="votecontent" class="clearfix">';
	inner += '<div class="votelog">';
	inner += '<div class="fibd-left-cover">';
	inner += '<img class="fibd-cover" src="'+i+'"/>';
	inner += '</div>';
	inner += '<p class="vote-title">'+t+'</p>';
	inner += '<p class="vote-author">'+a+'</p>';
	inner += '<p class="vote-editor">'+e+'</p>';
	if(sid == null || sid == 'undefined' || sid == '')
		sid = _sid_memorry_;
	if(sid == null || sid == 'undefined' || sid == '')
		inner += '<a href="javascript://" onclick="xajax_showLoginForm('+p+');return false;">';
	else
		inner += '<a href="#/selection/detailVote/'+p+'/'+sid+'/" onclick="hideOverlay();return true;">';
	inner += '<img class="fibd-vote-bouton" src="http://wlp.ave-comics.com/fibd/vote/fibd-vote-bouton.gif"/>';
	inner += '</a>';
	inner += '</div>';
	inner += '</div>';
	inner += '<div class="closeblock"> </div>';
	inner += '</div>';
  	mContainer = $('messageContainer');
  	
	mContainer.innerHTML = inner; 
	if($('messageOverlay').style.display == 'none') showOverlay();
}


/////////////
// HISTORY//
///////////
// @require http://www.asual.com/swfaddress/
var History = {
	//listenH:false,
	_history:null,
	__actualPage__:"/",
	__swfloadedforhistory__:false,
	__ready__:false,
	internalCall:false,
	forceLoad:false,
	forceNavs:null,
	
	__navArrayToAdress__:function( navs )
	{
		var naddr="/";
		for( var i=0;i<navs.length;i++ ) {
			naddr+= unescape(navs[i])+'/';
		}
		//naddr=( nadress==null || nadress == "" ) ? "/":nadress;
		return naddr;
	},
	
	// store actual path to prevent unecessary calls:
	_setActualPageFromArray:function( navs )
	{
		History.__actualPage__ = History.__navArrayToAdress__( navs );
	},
	
	_isActualPageSet:function( navs )
	{

		// get back the url and compare with the one set
		var nadress=History.__navArrayToAdress__( navs );
				
		return ( nadress == History.__actualPage__ );
	},
	
	isActivate:function()
	{
	//	if( History.__listen__ == false ) return false;
		//if ( History.listenH == false ) return false;
		return ( typeof SWFAddress != 'undefined' && true == History.__ready__);
	},
	
	
	init:function()
	{
		//if( typeof SWFAddress != 'undefined' ) return;
		History._history={};
		SWFAddress.addEventListener(SWFAddressEvent.CHANGE, History.addressChangeHandler);	
	},
	
	activateListener:function()
	{
		History.__swfloadedforhistory__ = true;
		History.__ready__ = true;

		if(History.isRequested())
		{
			History.forceReload();
			History.forceNavs=SWFAddress.getPathNames();
			History.forceLoad=true;
		}
	},
	
	
	addDetails:function(navs)
	{
		if(!History.isActivate()) return;
		History.internalCall = true;
		if(History.forceLoad == true)
		{
			
			if(false == History._isActualPageSet( navs ))
			{
				navigate(History.forceNavs);
				
			}
			else
			{
				History.forceLoad = false;
				
			}
		}
		else
		{
			if ( !History._isActualPageSet( navs ) )
			{
				
				History._setActualPageFromArray( navs );
				
				SWFAddress.setValue(
					History.__navArrayToAdress__(navs)
				);
			}
		}
	},
	
	addressChangeHandler:function()
	{
		if( !History.isActivate() ) return;
		var innerReload = false;
		
		// decompose url bases:
		var navs=SWFAddress.getPathNames();
		
		
		if ( true == innerReload || !History._isActualPageSet( navs ) )
		{
			History._navigate( navs );
		}
		else
		{
			goTop();
		}
	},
	
	_navigate:function(navs)
	{
		History._setActualPageFromArray( navs );
		navigate(navs);
	},
	
	reload:function()
	{
		
		
		if( !History.isActivate() ) return;
		
		History.addressChangeHandler();
	},
	
	forceReload:function()
	{
		if( !History.isActivate() ) return;
		
		var navs=SWFAddress.getPathNames();
		History._navigate( navs );
	},
	
	// check the parmaters history presence:
	isRequested:function()
	{
		// maybe a little bit simple
		return ( window.location.href.indexOf( "#/" ) >= 0 );
	}
};

function goTop()
{
	window.scrollTo(0,0);
}

function navigate(navs)
{
	if(navs.length > 0)
	{
		var page;
		var product_id;
		if(navs.length > 1 && typeof UrlToId[navs[navs.length-2]] != 'undefined')
		{
			//test detail
			page = UrlToId[navs[navs.length-2]];
			if("detail" == page.kind || "search" == page.kind)
			{
				product_id = navs[navs.length-1];
			}
			else
			{
				page = UrlToId[navs[navs.length-1]];
			}
		}
		else if(navs.length > 2 && typeof UrlToId[navs[navs.length-3]] != 'undefined')
		{
			//test detail
			page = UrlToId[navs[navs.length-3]];
			if("detail" == page.kind || "search" == page.kind)
			{
				product_id = navs[navs.length-1];
			}
			else if("detail+" == page.kind)
			{
				product_id = navs[navs.length-2];
				fibdConnexion(navs[navs.length-1]);
			}
			else
			{
				page = UrlToId[navs[navs.length-1]];
			}
		}
		else if(UrlToId[navs[0]] != 'undefined')
		{
			page = UrlToId[navs[0]];
		}
		
		if(typeof page != 'undefined' && true == swfLoaded)
		{
			if("detail" == page.kind)
			{
				document.delire.showDetailOfProduct(product_id, sdetail, sdetail, sdetail, udetail, udetail, udetail);
			}
			else if("detail+" == page.kind)
			{
				document.delire.showDetailOfProduct(product_id, page.id, page.id, page.id, page.id, page.id, page.id);
			}
			else if("search" == page.kind)
			{
				
				document.delire.goSearch( page.id, unescape(product_id) );
			}
			else
			{
				
				document.delire.goPage(page.id);
			}
		}
	}
	goTop();
}

var _notvoted = true;

//SWF Handler functions:
function changePage(pageID,idProduct,searchValue)
{	
	if(typeof idToUrl[pageID] != 'undefined')
	{
		var page = idToUrl[pageID];
		var nav = new Array();
		
		if("detail" == page.kind)
		{
			nav.unshift(idProduct);
		}
		else if("detail+" == page.kind)
		{
			nav.unshift(_sid_memorry_);
			nav.unshift(idProduct);
			if(_notvoted)
			{
				xajax_addUserVote(idProduct);
				_notvoted = false;
			}
		}
		else if("search" == page.kind)
		{
			nav.unshift(escape(searchValue));
		}
		
		setFlashHeight("flashcontainer", page.height);
		
		nav.unshift(page.url);
		while(page.pid != 'none')
		{
			page = idToUrl[page.pid];
			nav.unshift(page.url);
		}
		
		History.addDetails(nav);
		//History.addDetails(["ifYouLikeIt", idProduct]);
		//History.addDetails(["search", "result", "all", escape(searchValue)]);
	}
};





//EXTERNALE PLAYER

/* AB --> JS */
var _statPlayer = '0';
var _pageEP = 0;

function openPlayer()
{
	var regParam="";
	if( navigator.userAgent.indexOf( "MSIE" ) >= 0 ) { // ie
		// prevent IE to store SWF in cache --> all external interface handlers are lost if set
		regParam="?reg="+new Date().getTime()+"&pck=1.0.3";
	} else {
		regParam="?pck=1.0.3";
	}
	
    
	
	var ind='<table id="player-table"><tr><td id="player-td"><div id="ct"><object type="application/x-shockwave-flash" data="http://wlp.ave-comics.com/delire/AVEBrowser/externalPlayer.swf'+regParam+'" ';
	ind+='id="externalPlayer" width="100%" height="100%">';
	ind+='<param name="movie" value="http://wlp.ave-comics.com/delire/AVEBrowser/externalPlayer.swf" />';
	ind+='<param name="quality" value="high" />';
	ind+='<param name="bgcolor" value="#242424" />';
	ind+='<param name="allowFullScreen" value="true" />';
	ind+='<param name="allowScriptAccess" value="always" />';
	ind+='<param name="flashVars" value="language=fr" />';
	ind+='</object></div></td></tr></table>';
	
	_statPlayer = '1';
	_pageEP = 0;
	closePlayer();
	var popup=document.createElement("div");
	popup.id = "player-box";
	popup.innerHTML=ind;
	document.body.appendChild(popup);
};

function openScreenPlayer()
{
	closePlayer();
	var popup=document.createElement("div");
	popup.id = "player-box";
	
	var regParam="";
	if( navigator.userAgent.indexOf( "MSIE" ) >= 0 ) { // ie
		// prevent IE to store SWF in cache --> all external interface handlers are lost if set
		regParam="?reg="+new Date().getTime();
	}
	var ind='<object type="application/x-shockwave-flash" data="http://wlp.ave-comics.com/delire/AVEBrowser/externalPlayer.swf'+regParam+'" ';
	ind+='id="externalPlayer" width="100%" height="100%">';
	ind+='<param name="movie" value="http://wlp.ave-comics.com/delire/AVEBrowser/externalPlayer.swf" />';
	ind+='<param name="quality" value="high" />';
	ind+='<param name="bgcolor" value="#242424" />';
	ind+='<param name="allowFullScreen" value="true" />';
	ind+='<param name="allowScriptAccess" value="always" />';
	ind+='<param name="flashVars" value="language=fr" />';
	ind+='</object>';
	popup.innerHTML=ind;
	_pageEP = 0;
	
	window.scrollTo(0,0);
	
	if(document.getElementById("left"))
	{
		var t = document.getElementById("left");
		t.style.display = "none";
	}
	
	//document.body.style.overflow = 'hidden';
	document.body.appendChild(popup);
	
	_statPlayer = '1';
};

/* AB --> EP */
function checkIfPlayerIsConnected()
{
	if( $("externalPlayer") ) $("externalPlayer").checkIfPlayerIsConnected();
};

/* AB <-- EP */
function playerConnected()
{
	document.delire.playerConnected();
};

/* AB --> EP */
function readAVE(in1,in2,in3,in4,in5,in6)
{
	_pageEP = in5;
	if( $("externalPlayer") ) $("externalPlayer").readAVE(in1,in2,in3,in4,in5,'');
};

/* AB --> EP */
function readBook(in1,in2,in3,in4,in5,in6,in7)
{
	_pageEP = in5;
	if( $("externalPlayer") ) $("externalPlayer").readBook(in1,in2,in3,in4,in5,in6,'');
};

/* AB --> EP */
function closePlayerSWF()
{
	if( $("externalPlayer") ) $("externalPlayer").closePlayerSWF();
};

/* AB <-- EP */
function playerReadyToClose(inPage)
{
	_pageEP = inPage;
	document.delire.playerReadyToClose(_pageEP);
};

/* AB --> JS */
function closePlayer()
{
	if(_statPlayer == '1')
	{
		if(document.getElementById("player-box"))
		{
			var player = document.getElementById("player-box");
			document.body.removeChild(player);
			//document.body.style.overflow = 'auto';
			if(document.getElementById("left"))
			{
				var t = document.getElementById("left");
				t.style.display = "block";
			}
		}
	}
	else if(_statPlayer == '2')
	{
		Shadowbox.close();
	}
};

/* AB <-- JS */
function sbClose_Handler()
{
	document.delire.closePlayer(_pageEP);
};


/* EP --> JS */
function updatePageEP(inPage)
{
	_pageEP = inPage;
};

function updateSettingEP(inSettings)
{
	document.delire.updateExtPlayerSettings(inSettings);
};

function buyProduct(inID)
{
	document.delire.addToCart(inID);
};

function $(id) {
	return document.getElementById(id);
};

initHistory();
