/* KAJAX library */
/* KALDEV 2007 */
/* created by: Lorenzo Muscariello */
/* lorenzo.muscariello@gmail.com */
/* updated by: Riccardo Di Dato */
/* rikydid@gmail.com */


function isDOM() {
	var DOMSTATUS = false;
	if(document.getElementById) DOMSTATUS = true;
	return DOMSTATUS;
}

function findElementById(id_elemento) {
	var elemento=false;
	if(document.getElementById) elemento = document.getElementById(id_elemento);
	else elemento = document.all[id_elemento];
	return elemento;
}

//rimuove un elemento con un determinato ID
function removeElementById(id_elemento) {
	var el = findElementById(id_elemento);
	var imyourfather = el.parentNode;
	imyourfather.removeChild(el);
	return true;
}

function addElement(ELEM_TAG, ATT_ARR, ATT_VAL_ARR, APPEND_TO) {
	var EXITUS = false;
	if(ATT_ARR.constructor.toString().indexOf("Array()")!=-1 && 
		ATT_VAL_ARR.constructor.toString().indexOf("Array()")!=-1) {
		
		if(ATT_ARR.length===ATT_VAL_ARR.length) {
			var ADDED_ELEMENT = document.createElement(ELEM_TAG);
			var i=0;
			while(i<ATT_ARR.length){
				ADDED_ELEMENT.setAttribute(ATT_ARR[i], ATT_VAL_ARR[i]);
				i++;
			} 
			APPEND_TO.appendChild(ADDED_ELEMENT);
			EXITUS = ADDED_ELEMENT;
			
		}
		
	}
	else {
			var ADDED_ELEMENT = document.createElement(ELEM_TAG);
			ADDED_ELEMENT.setAttribute(ATT_ARR, ATT_VAL_ARR);
			APPEND_TO.appendChild(ADDED_ELEMENT);
			EXITUS = ADDED_ELEMENT;
	}
	return EXITUS;
}

function produce404(textError) {
	return '<br/><br/><br/><TABLE cellspacing="0" cellpadding="0" border="0" valign="center">'+
	'<TR><TD><IMG src="common/error.png" border="0" alt="error404"/></TD><TD>'+
	'<SPAN style="color: red; font-size: 18px; font-weight: bold;">Errore 404 - Pagina non trovata' +
	' </SPAN><BR><SPAN style="color: black; font-size: 14px; font-weight: bold;">' + textError +'</SPAN></TD></TR>'+
	'</TABLE><br /><br /><br />';
}


function klldr() {
	if(document.getElementById("LOADER_T1"))
	findElementById(this.LTYPE).style.display="none";
}

function shld() {
	if(document.getElementById("LOADER_T1")) {
		var w = document.body.clientWidth;
		var h = document.body.scrollHeight;
		findElementById(this.LTYPE).style.top=(h/2) - 16;
		findElementById(this.LTYPE).style.left=(w/2) - 60;
		findElementById(this.LTYPE).style.display="block";
		
	}
}


function KLoader(LOADER_TYPE,LOAD_TEXT) {
	this.LTYPE = LOADER_TYPE;
	this.killLoader = klldr;
	this.showLoader = shld;
	//addElement("div","id", this.LTYPE,document.getElementsByTagName("body")[0]);
	
	//addTextToElement(LOAD_TEXT,findElementById(this.LTYPE));
}


function getXmlHttpRequest() {
	var XHR = false;
	
	if(window.XMLHttpRequest) { //Mozilla Safari e tutti i browser che supportano l'oggetto nativamente
		
		XHR = new XMLHttpRequest();
		
		if(XHR.overrideMimeType) {
			XHR.overrideMimeType('text/xml');
			
		}
		
	}
	else if(window.ActiveXObject) { //Internet Explorer
		try{
			XHR = new ActiveXObject("Msxml2.XMLHTTP"); //IE 5 e 5.5
			
		}catch(e) {
			try {
				XHR = new ActiveXObject("Microsoft.XMLHTTP"); //IE 6
				
			}catch(e){}
		}
	}
	
	return XHR;
}

function connectionGet(XMLHTTPR, DEST_URI) {
	//var errMsg = new AjaxError(0,"OK");
	
	try {
		XMLHTTPR.open("GET", DEST_URI, true);
		XMLHTTPR.setRequestHeader("Connection","close");
		XMLHTTPR.setRequestHeader("Cache-Control","no-cache");
		
		}catch(e){
	//errMsg.setError(1,(e.name + " " + e.message));
		}
	
    try {
		XMLHTTPR.send(null);
		}catch(e){
//errMsg.setError(1,(e.name + " " + e.message));
}
	
	//return errMsg;
	
}

function getViewport() {
	var viewportwidth;
	var viewportheight;
	
	// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
	
	if (typeof window.innerWidth != 'undefined')
	{
	     viewportwidth = window.innerWidth,
	     viewportheight = window.innerHeight
	}
	
	//IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
	
	else if (typeof document.documentElement != 'undefined'
	    && typeof document.documentElement.clientWidth !=
	    'undefined' && document.documentElement.clientWidth != 0)
	{
	      viewportwidth = document.documentElement.clientWidth,
	      viewportheight = document.documentElement.clientHeight
	}
	
	// older versions of IE
	
	else
	{
	      viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
	      viewportheight = document.getElementsByTagName('body')[0].clientHeight
	}
	var reval = new Array();
	reval[0] = viewportwidth;
	reval[1] = viewportheight;
	return reval;
}




function sloadAjax(pagina,targetElement) {
  
    var myRequest = getXmlHttpRequest();
	KLOAD.showLoader();
    myRequest.onreadystatechange = function() {
     switch (myRequest.readyState) {
                    case 0: // Uninitialized
                    case 1: // Loading
                    case 2: // Loaded
                    case 3: // Ready
                        break;
                    case 4:
                            
                        switch(myRequest.status) {
                            
                            case 200:
                            case 304:
                                KLOAD.killLoader();
                                var ele = document.getElementById(targetElement);
				ele.innerHTML = myRequest.responseText;
				
    			
                                
                                break;
                                
                            case 0: // wrong protocol
                          
                            default:
				KLOAD.killLoader();
				var ele = document.getElementById(targetElement);
				ele.innerHTML = produce404("Impossibile completare la richiesta; riprovare o selezionare un\'altra pagina<BR>");
                                // Catch exception for IE
							//KLOAD.killLoader();
				break;
                        }
                        
                        break;
                    }
}
    //connectionGet(myRequest,"ciao");
    connectionGet(myRequest, pagina);
    //myRequest.open("GET","_gtcrs.php?id=" + idcorso);
    //myRequest.send(null);
}

function cloadAjax(pagina) {
	sloadAjax(pagina,"AJAXCONTAINER");
}


function tloadAjax(pagina,targetElement) {
//	alert("ciao");
    var myRequest = getXmlHttpRequest();
	//KLOAD.showLoader();
    myRequest.onreadystatechange = function() {
     switch (myRequest.readyState) {
                    case 0: // Uninitialized
                    case 1: // Loading
                    case 2: // Loaded
                    case 3: // Ready
                        break;
                    case 4:
                            
                        switch(myRequest.status) {
                            
                            case 200:
                            case 304:
                                //KLOAD.killLoader();
                                var ele = document.getElementById(targetElement);
								ele.innerHTML = myRequest.responseText;
//								interceptJS(targetElement);
				
    			
                                
                                break;
                                
                            case 0: // wrong protocol
                          
                            default:
                            var ele = document.getElementById(targetElement);
                            	ele.innerHTML = produce404("Impossibile accedere alla risorsa: " + pagina);
							break;
                        }
                        
                        break;
                    }
}
    //connectionGet(myRequest,"ciao");
    connectionGet(myRequest, pagina);
    //myRequest.open("GET","_gtcrs.php?id=" + idcorso);
    //myRequest.send(null);
}

function getPreview(modelObj,id,targetElement) {

	tloadAjax("_actionGetPreview.php?mobj="+modelObj +"&id=" + id,targetElement);
}


function interceptJS (targetElement) {
//	var target=findElementById("ext_scr");
//	alert(target.value);
	var scripts;
//	scripts=document.findElementById(targetElement).getElementsByTagName("script");
	scripts=document.getElementById(targetElement).getElementsByTagName("script");
	alert(scripts);
	alert(scripts.lenght);
	var executeMe;
	for (var i=0; i<scripts.lenght; i++){
		var executeMe= scripts[i].innerHTML ? scripts[i].innerHTML:
						scripts[i].text ? scripts[i].text:
						scripts[i].textContent;
		try {eval(executeMe);}
		catch (e)
			{alert("errore durante l'esecuzione di uno script... segnalare il problema al webmaster");}
	}
}





