﻿

var dynamicContent_ajaxObjects = new Array(); 
var jsCache = new Array();
var enableCache = false; 
var now_loading = "<div class='loading'></div>";


function ajax_showContent(divId,ajaxIndex,pathToFile)
{
  document.getElementById(divId).innerHTML =
  dynamicContent_ajaxObjects[ajaxIndex].response;
  
  if (DHTMLSuite.clientInfoObj.isMSIE)
  evaluateJsIE(dynamicContent_ajaxObjects[ajaxIndex].response); 
  else
  evaluateJs(document.getElementById(divId)); 
  
  
  if(enableCache)
  {
    jsCache[pathToFile] = dynamicContent_ajaxObjects[ajaxIndex].response;
  }
  
  dynamicContent_ajaxObjects[ajaxIndex] = false;
}



function ajax_loadContent(divId,pathToFile)
{
  if(enableCache && jsCache[pathToFile]){
    document.getElementById(divId).innerHTML = jsCache[pathToFile];
	evaluateJs(jsCache[pathToFile]); 
    return;
  }
  
  var ajaxIndex = dynamicContent_ajaxObjects.length;
  document.getElementById(divId).innerHTML = now_loading;
  
  dynamicContent_ajaxObjects[ajaxIndex] = new sack();
  dynamicContent_ajaxObjects[ajaxIndex].requestFile = pathToFile;

  dynamicContent_ajaxObjects[ajaxIndex].onCompletion = 
  function(){ ajax_showContent(divId,ajaxIndex,pathToFile); };   // ne marche pas pour FF quand le formulaire contient un input file

  dynamicContent_ajaxObjects[ajaxIndex].onError = 
  function(){ document.getElementById(divId).innerHTML = "<div style='padding:10px;'><b>Erreur lors du chargement</b></div>"; }; 
  
  dynamicContent_ajaxObjects[ajaxIndex].runAJAX(); 
} 




function load_container(c,var_sup)
{
	var url = "";
	
	if (c.vars) // variable fixe
	{
		url = c.url+'?'+c.vars;
		
		if (var_sup) 
		url += '&'+var_sup;
	}
	else if (var_sup) 
	{
		url = c.url+'?'+var_sup;
	}
	else
	{
		url = c.url;
	}
	
	ajax_loadContent(c.frame,url);	
}

function clear_container(c)
{
	document.getElementById(c.frame).innerHTML = '';	
}

function evaluateJsIE (code)
	{
		var ScriptFragment = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';	
		var match_ = new RegExp(ScriptFragment, 'img');
		var scriptsJS  = code.match(match_);

			if(scriptsJS) 
			{
				var codejs = '';
				for(var s = 0; s < scriptsJS.length; s++) {
					var match_ = new RegExp(ScriptFragment, 'im');
					codejs += scriptsJS[s].match(match_)[1];
				}
				eval(codejs);
			}
	}
	
function evaluateJs (obj)
	{
		obj = DHTMLSuite.getEl(obj);
		
			var scriptTags = obj.getElementsByTagName('SCRIPT');
			var string = '';
			var jsCode = '';
			for(var no=0;no<scriptTags.length;no++){	
				if(scriptTags[no].src){
					var head = document.getElementsByTagName("head")[0];
					var scriptObj = document.createElement("script");
					
					scriptObj.setAttribute("type", "text/javascript");
					scriptObj.setAttribute("src", scriptTags[no].src);  	
				}else{
					if(DHTMLSuite.clientInfoObj.isOpera){
						jsCode = jsCode + scriptTags[no].text + '\n';
					}
					else
						jsCode = jsCode + scriptTags[no].innerHTML;	
				}			
			}
			
			if(jsCode)
			{
				try{
					if (!jsCode)
						return;		
					if (window.execScript){        	
						window.execScript(jsCode)
					}else if(window.jQuery && jQuery.browser.safari){ // safari detection in jQuery
						window.setTimeout(jsCode,0);
					}else{        	
						window.setTimeout( jsCode, 0 );
					} 
				}catch(e){
					
				}
			}
	}