var ajax;
var ajaxBusy;
var curpage;

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements		= (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements	= new Array();
	
	strClassName = strClassName.replace(/\-/g, "\\-");
	
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	
	for(var i=0; i<arrElements.length; i++){
        	oElement = arrElements[i];      
		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
    }
    
    return (arrReturnElements);
}

function assegnaXMLHttpRequest() {
	var XHR			= null;
 	var browserUtente	= navigator.userAgent.toUpperCase();
	
	//If IE7, Mozilla, Safari, etc: Use native object
	if(window.XMLHttpRequest)
		XHR = new XMLHttpRequest();
		
	 else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
 		if(browserUtente.indexOf("MSIE 5") < 0)
			XHR = new ActiveXObject("Msxml2.XMLHTTP");
		else
			XHR = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	return XHR;
}

function controllaAjax() {
	if (!ajax) {
		alert('Impossibile completare l\'operazione richiesta. Il browser in uso non supoprta questa operazione. Si consiglia di aggiornare il proprio browser alla versione pił recente.');
		return false;
	}
	else if (ajaxBusy) {
		alert('E\' gią in corso un\'altra richiesta al server. Attendere che la precedente richiesta sia stata completata.');
		return false;
	}
	else
		return true;
}

function showMoreNews() {
	var box			= document.getElementById('listitems');
	var boxLoader		= document.getElementById('itemsloader');
	var boxMoreItems	= document.getElementById('itemspages');
	
	if (controllaAjax()) {
		ajaxBusy			= true;
		boxMoreItems.disabled		= true;
		boxLoader.style.visibility	= 'visible';
		
		if (boxMoreItems.innerHTML == '')
			curpage = 1;
		else
			curpage = curpage + 1;
		
		ajax.open('post', '/ajax.news.elenco.asp', true);
		ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
		ajax.setRequestHeader('connection', 'close');
		
		ajax.onreadystatechange = function() {
			if(ajax.readyState === 4) {
				boxLoader.style.visibility = 'hidden';
				
				if(ajax.status == 200) {
					box.innerHTML = box.innerHTML + unescape(ajax.responseText.substring(1));
					
					if (ajax.responseText.substring(0, 1) == '1') {
						boxMoreItems.innerHTML = '<a name="#moreitemslink" href="#moreitemslink" onclick="showMoreNews();">Carica precedenti</a>';
					}
					else {
						boxMoreItems.innerHTML = '';
					}
					
					if (curpage > 1) {
						for (var i = 1; i <= curpage; i++) {
							boxMoreItems.innerHTML = boxMoreItems.innerHTML + '&nbsp;<a href="#p' + i.toString() + '">' + i.toString() + '</a>';
						}
					}
				}
				else {
					alert('Operazione fallita, errore numero ' + ajax.status);
				}
				
				boxMoreItems.disabled	= false;
				ajaxBusy		= false;
			}
		}
		
		ajax.send('p=' + curpage);
	}
}


function showMoreEvents() {
	var box			= document.getElementById('listitems');
	var boxLoader		= document.getElementById('itemsloader');
	var boxMoreItems	= document.getElementById('itemspages');
	
	if (controllaAjax()) {
		ajaxBusy			= true;
		boxMoreItems.disabled		= true;
		boxLoader.style.visibility	= 'visible';
		
		if (boxMoreItems.innerHTML == '')
			curpage = 1;
		else
			curpage = curpage + 1;
		
		ajax.open('post', '/ajax.eventi.elenco.asp', true);
		ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
		ajax.setRequestHeader('connection', 'close');
		
		ajax.onreadystatechange = function() {
			if(ajax.readyState === 4) {
				boxLoader.style.visibility = 'hidden';
				
				if(ajax.status == 200) {
					box.innerHTML = box.innerHTML + unescape(ajax.responseText.substring(1));
					
					if (ajax.responseText.substring(0, 1) == '1') {
						boxMoreItems.innerHTML = '<a name="#moreitemslink" href="#moreitemslink" onclick="showMoreEvents();">Carica precedenti</a>';
					}
					else {
						boxMoreItems.innerHTML = '';
					}
					
					if (curpage > 1) {
						for (var i = 1; i <= curpage; i++) {
							boxMoreItems.innerHTML = boxMoreItems.innerHTML + '&nbsp;<a href="#p' + i.toString() + '">' + i.toString() + '</a>';
						}
					}
				}
				else {
					alert('Operazione fallita, errore numero ' + ajax.status);
				}
				
				boxMoreItems.disabled	= false;
				ajaxBusy		= false;
			}
		}
		
		ajax.send('p=' + curpage);
	}
}



function showTrainings() {
	var boxtop	= document.getElementById('products');
	var box		= document.getElementById('listitems');
	var box2	= document.getElementById('listitems2');
	
	if (controllaAjax()) {
		ajaxBusy		= true;
		boxtop.innerHTML	= '<p class="center"><img src="/images/ajax-loader.gif" alt="Caricamento dati in corso..." /></p>';
		
		if (box != null)
			box.innerHTML	= '<p class="center"><img src="/images/ajax-loader.gif" alt="Caricamento dati in corso..." /></p>';
		
		if (box2 != null)
			box2.innerHTML	= '<p class="center"><img src="/images/ajax-loader.gif" alt="Caricamento dati in corso..." /></p>';
		
		ajax.open('post', '/ajax.corsi.prodotti.asp', true);
		ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
		ajax.setRequestHeader('connection', 'close');
		
		ajax.onreadystatechange = function() {
			if(ajax.readyState === 4) {
				if(ajax.status == 200) {
					ajaxBusy		= false;
					boxtop.innerHTML	= unescape(ajax.responseText);
					
					if (box == null)
						showOtherTrainings(null);
					else
						showTrainingDates(null);
				}
				else {
					ajaxBusy		= false
					boxtop.innerHTML	= '';
					
					if (box != null)
						box.innerHTML	= '';
					
					if (box2 != null)
						box2.innerHTML		= '';
					
					alert('Operazione fallita, errore numero ' + ajax.status);
				}
			}
		}
		
		ajax.send('d=' + (box != null ? '1' : '0'));
	}
}

function showTrainingDates(c) {
	var box		= document.getElementById('listitems');
	
	if (controllaAjax()) {
		ajaxBusy	= true;
		box.innerHTML	= '<p class="center"><img src="/images/ajax-loader.gif" alt="Caricamento dati in corso..." /></p>';
		
		ajax.open('post', '/ajax.corsi.calendario.asp', true);
		ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
		ajax.setRequestHeader('connection', 'close');
		
		ajax.onreadystatechange = function() {
			if(ajax.readyState === 4) {
				if(ajax.status == 200) {
					var s = unescape(ajax.responseText);
					
					ajaxBusy	= false;
					box.innerHTML	= s.substring(s.indexOf('|') + 1);
					
//					showOtherTrainings(s.substring(0, s.indexOf('|')));
				}
				else {
					ajaxBusy	= false
					box.innerHTML	= '';
					
					alert('Operazione fallita, errore numero ' + ajax.status);
				}
			}
		}
		
		c = !c ? '' : c;
		ajax.send('idcategoria=' + c);
	}
}

function showOtherTrainings(c) {
	var box = document.getElementById('listitems2');
	
	if (controllaAjax()) {
		ajaxBusy	= true;
		box.innerHTML	= '<p class="center"><img src="/images/ajax-loader.gif" alt="Caricamento dati in corso..." /></p>';
		
		ajax.open('post', '/ajax.corsi.elenco.asp', true);
		ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
		ajax.setRequestHeader('connection', 'close');
		
		ajax.onreadystatechange = function() {
			if(ajax.readyState === 4) {
				if(ajax.status == 200) {
					ajaxBusy	= false;
					box.innerHTML	= unescape(ajax.responseText);
				}
				else {
					ajaxBusy	= false;
					box.innerHTML	= '';
					
					alert('Operazione fallita, errore numero ' + ajax.status);
				}
			}
		}
		
		c = !c ? '' : c;
		ajax.send('idcategoria=' + c);
	}
}


function showTrainingDescr(c) {
	document.getElementById('de_' + c).style.display = document.getElementById('de_' + c).style.display == 'block' ? 'none' : 'block';
}

function expandSubList(subListID, lvl) {
	var btn	= document.getElementById('b' + subListID.toString());
	var box	= document.getElementById('c' + subListID.toString());
	
	//verifico se si tratta di un primo livello o di un secondo livello e setto di conseguenza lo script da eseguire
	//e i parametri per detto script
	var script	= lvl==0 ? '/ajax.corsi.elenco.asp' : '/ajax.corsi.date.elenco.asp';
	var params	= (lvl==0 ? 'idcategoria=' : 'cod=') + subListID.toString();
	
	if (box.style.display!='block') {
		if (box.style.display=='') {
			if (controllaAjax()) {
				ajaxBusy	= true;
				box.innerHTML	= '<p class="center"><img src="/images/ajax-loader.gif" alt="Caricamento dati in corso..." /></p>';
				
				box.style.display	= 'block';
				btn.src			= btnContract.src;
				
				ajax.open('post', script, true);
				ajax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
				ajax.setRequestHeader('connection', 'close');
				
				ajax.onreadystatechange = function() {
					if(ajax.readyState === 4) {
						if(ajax.status == 200) {
							ajaxBusy		= false;
							box.innerHTML		= unescape(ajax.responseText);
							
						}
						else {
							ajaxBusy	= false;
							box.innerHTML	= '';
							
							alert('Operazione fallita, errore numero ' + ajax.status);
						}
					}
				}
				
				ajax.send(params);
			}
		}
		else {
			box.style.display	= 'block';
			btn.src			= btnContract.src;
		}
	}
	else {
		box.style.display	= 'none';
		btn.src			= btnExpand.src;
	}
}

ajax		= assegnaXMLHttpRequest();
ajaxBusy	= false;