var modalWin = null;
var initialized = false;

function includeCSS()
{	
	//included by Portals theme
	//include_css("css/modalStyles.css");
}

function include_js(script_filename)
{
	var html_doc = document.getElementsByTagName("head")[0];
	var js = document.createElement("script");
	js.setAttribute("language", "javascript");
	js.setAttribute("type", "text/javascript");
	js.setAttribute("src", script_filename);
	html_doc.appendChild(js);
    	return false;
}

function include_css(style_filename)
{
	var html_doc = document.getElementsByTagName("head")[0];
	var css = document.createElement("link");
	css.setAttribute("rel", "stylesheet");
	css.setAttribute("type", "text/css");
	css.setAttribute("href", style_filename);
	html_doc.appendChild(css);
    	return false;
}

function getPageWidth()
{ 
	if (document.all)
	{ return (document.body.clientWidth) + "px"; }
	else
	{ return window.innerWidth + "px"; }
	
}

function getPageHeight()
{ 
	if (document.all)
	{ return (document.body.clientHeight + 100) + "px"; }
	else
	{ return window.innerHeight + "px"; }
	
}


function initialize()
{
	initialized = true;
	includeCSS();

	var modalDiv = document.createElement("div");

	// set the div's attributes
	modalDiv.setAttribute("id", "modalDiv");
	modalDiv.style.display = "none";
	modalDiv.onclick = checkFocus;
	
	document.body.insertBefore(modalDiv, document.body.firstChild);
	
}

function afficherFond() 
{

	  if (!initialized)
	  { initialize(); }
	  
	  var modalDiv = document.getElementById("modalDiv");
	  modalDiv.style.width = getPageWidth();
	  modalDiv.style.height = getPageHeight();
	  modalDiv.style.display = "block";

	  return false;
}

function enleverFond()
{
	var modalDiv = document.getElementById("modalDiv");
	
	if (modalDiv)
	{ modalDiv.style.display = "none"; }
}

function ajuster()
{
	if (!isClosed())
	{ 
		var modalDiv = document.getElementById("modalDiv");
		modalDiv.style.width = getPageWidth(); 
		modalDiv.style.height = getPageHeight(); 
	}
}

function isClosed()
{
	var closed = true;
	 
	try {
		if (modalWin != null && !modalWin.closed)
		{ closed = false; }
	}
	catch (e) {
		closed = true;
	}
	
	return closed;
}

function checkFocus()
{
	if (isClosed())
	{ enleverFond(); }
	else
	{ modalWin.focus(); }

}

function ouvrirDialog(sURL, type, params) 
{
	// Creer la liste de features pour les types de fenetres constants et connus
	var featEntreprise = "width=392, height=500, location=no, resizeable=yes, scrollbars=no";
	var featEntrevue = "width=619, height=600, location=no, resizeable=yes, scrollbars=yes";
	
	if (sURL == null || sURL == "") 
	{
		return false;
	}
  
  	// Choisir la bonne chaine de features a utiliser et y ajouter params
  	var features = "";
  	switch (type)
  	{
  		case "entreprise":
  			features = featEntreprise;
  			break;
  			
  		case "entrevue":
  			features = featEntrevue;
  			break;
  			
  		default:
  			features = "";
  	}
  	
  	if (params.length != 0)
  	{
  		// Ajouter une virgule au besoin
  		if (params.charAt(0) != ',' && features.length != 0)
  		{
  			features = features + ", ";
  		}
  		
  		features = features + params;
  	}
  	
  	modalWin = window.open(String(sURL), "_blank", features);

}

function ouvrirPageModal(sURL, type, params) 
{

	// Ajouter modal=true a params s'il n'est pas present
	if (params.indexOf("modal") == -1)
	{
		// Ajouter une virgule s'il y a d'autres parametres
		if (params.length != 0)
		{
			params = params + ", ";
		}
		
		params = params + "modal=true";
	} 
	
    afficherFond();
    ouvrirDialog(sURL, type, params);
    checkFocus();	
}

window.onfocus = checkFocus;
window.onresize = ajuster;
