window.onload = init;

function init() {
	//inserire qui le funzioni da richiamare sull'onload;

}

//apre i popup
function CZ_popup(url,name,features) {
	window.open(url,name,features);
}

/*
 * Chiede conferma
 */
function CZ_confirm(mystring) {
	var ok = window.confirm(mystring);
	return ok;
}

/*
 * per i checkbox nel form azienda
 */
 function countCheck() {

	function countChecked() { 
		
		var count = 0;

		myelement = $('matchingdata');

		var allcheck = myelement.getElementsByTagName("input");

		for (var n = 0; n < allcheck.length; n++) {

			var mycheck = allcheck.item(n);
			Element.extend(mycheck);
	
			//if(mycheck.getAttribute('checked')=="checked") {
			if(mycheck.checked) {
				count++;
			} else {
				mycheck.enable();
			}


			mycheck.onclick = addChecked;
		}

		if(count==5) {
			disableCheck();
		}

	}

	function disableCheck() {
		
		myelement = $('matchingdata');

		var allcheck = myelement.getElementsByTagName("input");

		for (var n = 0; n < allcheck.length; n++) {

			var mycheck = allcheck.item(n);
			Element.extend(mycheck);
	
			//if(mycheck.getAttribute('checked')!="checked") {
			if(!mycheck.checked) {
				mycheck.disable();
			}
		}
	}

	function addChecked(e) {

		/*
		if(!this.getAttribute('checked')) {
			this.setAttribute('checked','checked');
		} else {
			this.setAttribute('checked','');
		}
		*/

		countChecked();
	}


	if($('matchingdata')) {

		countChecked();	

	}

 }
 
 
/*
 * Funzioni AJAX
 */
function CZ_createRequestObject() {
    /*
	var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        ro = new XMLHttpRequest();
    }
    return ro;
    */
    
    
	// lista delle variabili locali
	var
	 // variabile di ritorno, nulla di default
	 XHR = null,
	 
	 // informazioni sul nome del browser
	 browserUtente = navigator.userAgent.toUpperCase();
	
	
	 // browser standard con supporto nativo
	 // non importa il tipo di browser
	 if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
	  XHR = new XMLHttpRequest();
	
	 // browser Internet Explorer
	 // è necessario filtrare la versione 4
	 else if(
	  window.ActiveXObject &&
	  browserUtente.indexOf("MSIE 4") < 0
	 ) {
	 
	  // la versione 6 di IE ha un nome differente
	  // per il tipo di oggetto ActiveX
	  if(browserUtente.indexOf("MSIE 5") < 0)
	   XHR = new ActiveXObject("Msxml2.XMLHTTP");
	
	  // le versioni 5 e 5.5 invece sfruttano lo stesso nome
	  else
	   XHR = new ActiveXObject("Microsoft.XMLHTTP");
	 }
	
	 return XHR;
}

var CZ_http = CZ_createRequestObject();

function CZ_sndReq(idelement, url) {
	
	if(url) {
		document.getElementById(idelement).innerHTML = "<img src=\"view/images/icons/loading.gif\">";
	
		CZ_http.open('get', url);

	    //CZ_http.overrideMimeType('text/xml');

		CZ_http.onreadystatechange = function() {CZ_handleResponse(idelement); }
		CZ_http.send(null);	
	
	} else {
		CZ_http.open('get', idelement);

	    //CZ_http.overrideMimeType('text/xml');
	    
		CZ_http.onreadystatechange = function() {CZ_handleResponse(""); }
		CZ_http.send(null);
	}
	

}

function CZ_handleResponse(idelement) {
    
    
	if(CZ_http.readyState == 4){
        var response = CZ_http.responseText;
		var param = new Array();
		var update = new Array();
		
        if(response.indexOf('|') != -1) {
			param = response.split('||');
			
			for(n=0; param[n]; n++) {
				update = param[n].split('|');
				if(document.getElementById(update[0])) { 
                    document.getElementById(update[0]).innerHTML = update[1];
				}
			}
			
        } else if(document.getElementById(idelement)) {
			document.getElementById(idelement).innerHTML = response;
		}
    }
}


/* FORM */
function CZ_forms_maxDays(mm, yyyy){
	var mDay;
	if((mm == 3) || (mm == 5) || (mm == 8) || (mm == 10)){
		mDay = 30;
	}
	else{
		mDay = 31
		if(mm == 1){
			if (yyyy/4 - parseInt(yyyy/4) != 0){
				mDay = 28
			}
			else{
				mDay = 29
			}
		}
	}
	return mDay;
}

function CZ_forms_writeCalendar(id){
    //nasconde tutti quelli aperti
	var classElements = new Array();
	node = document;
	tag = 'div';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+"datePickerWrap"+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if (pattern.test(els[i].className) ) {
            classElements[j] = els[i];
			j++;
		}
	}

	for (i=0; i<classElements.length; i++) {
		classElements[i].style.display='none';
	}

	//costruisce la tabella del calendario
	// la funzione 'CZ_forms_changeCal()' fa poi i replace
	var arrD = new Array("Dom","Lun","Mar","Mer","Gio","Ven","Sab");

	var text = "";

	text = "<table class=\"datePickerTable\">";

	//chiudi
	text += "<tr>";
	text += "<td colspan=\"7\" class=\"datePickerClose\"><a title=\"Chiudi il Calendario\" href=\"javascript:void(false);\" onClick=\"CZ_forms_closeCalendar('" + id + "');\">CHIUDI</a></td>";
	text += "</tr>";
	
	//navigazione
	text += "<tr>";
	text += "<td class=\"datePickerBack\" id='" + id + "_calendar_back'>-</td>";
	text += "<td class=\"datePickerDate\" colspan='5' id='" + id + "_calendar_date'>Data</td>";
	text += "<td class=\"datePickerNext\" id='" + id + "_calendar_next'>+</td>";
	text += "</tr>";

	//stampa i nomi dei giorni
	text += "<tr>";
	for (ii=0;ii<=6;ii++){
		text += "<th class=\"datePickerWeek\">" + arrD[ii] + "</th>";
	}
	text += "</tr>";
	
	//stampa il calendario del mese
	aa = 0;
	for (kk=0;kk<=5;kk++){
		text += "<tr>";
		for (ii=0;ii<=6;ii++){
			text += "<td class=\"datePickerDay\" id='" + id + "_sp" + aa + "'>#</td>";
			aa += 1;
		}
		text += "</tr>";
	}

	text += "</table>";

	document.getElementById(id + "_calendar").innerHTML = text;
	document.getElementById(id + "_wrap_calendar").style.display = 'block';

	CZ_forms_changeCal(id);
}

function CZ_forms_changeCal(id, sel_year, sel_month){			
	
	if(sel_month == -1) {
		sel_month = 11;
		sel_year = sel_year-1;
	}

	if(sel_month == 12) {
		sel_month = 0;
		sel_year = sel_year+1;
	}
	
	var now = new Date;
	var dd = now.getDate();
	var mm = now.getMonth();
	var dow = now.getDay();
	var yyyy = now.getFullYear();
	
	var existData = document.getElementById(id).value;
	var arrayDate = existData.split("/");
			
	if(sel_year==null || sel_month==null) {
		if(document.getElementById(id).value!="") {
			sel_day = arrayDate[0];
			sel_year = arrayDate[2];
			sel_month = arrayDate[1]-1;
		} else {
			sel_day = dd;
			sel_year = yyyy;
			sel_month = mm;
		}
	}


	
	var currM = sel_month;
	var prevM = 11;
	if (currM!=0){
		prevM = currM - 1;
	}

	var currY = sel_year;

	var mmyyyy = new Date(currY,currM,1);
	
	var day1 = mmyyyy.getDay();
	if (day1 == 0){
		day1 = 7;
	}
	
	var arrN = new Array(41);
	var aa;
	for (ii=0;ii<day1;ii++){
		arrN[ii] = CZ_forms_maxDays((prevM),currY) - day1 + ii + 1;
	}
	aa = 1;
	for (ii=day1;ii<=day1+CZ_forms_maxDays(currM,currY)-1;ii++){
		arrN[ii] = aa;
		aa += 1;
	}
	aa = 1;
	for (ii=day1+CZ_forms_maxDays(currM,currY);ii<=41;ii++){
		arrN[ii] = aa;
		aa += 1;
	}

	var dCount = 0;
	for (ii=0;ii<=41;ii++){ 
		
		var addClass = "";
		if(arrN[ii]==dd && sel_month==mm && sel_year==yyyy) {
			addClass = "class=\"current\"";
		}
		if(arrN[ii]==arrayDate[0] && sel_month==(arrayDate[1]-1) && sel_year==arrayDate[2]) {						
			addClass = "class=\"select\"";
		}
		
		if (((ii<7)&&(arrN[ii]>20))||((ii>27)&&(arrN[ii]<20))){
			document.getElementById(id+"_sp"+ii).innerHTML = arrN[ii];
		} else {
			var myData = CZ_forms_makeDate(arrN[ii] + "/" + sel_month + "/" + sel_year);
			document.getElementById(id+"_sp"+ii).innerHTML = "<a " + addClass + " title=\"" + myData + "\" href=\"javascript:void(false);\" onClick='CZ_forms_returnDate(\"" + id + "\",\"" + myData + "\")'>" + arrN[ii] + "</a>";
		}

		dCount += 1;
		if (dCount>6){
			dCount=0;
		}
	}

	//costruisce i link back e next
	document.getElementById(id + "_calendar_back").innerHTML = "<a title=\"Mese precedente\" href=\"javascript:void(false);\" onClick='CZ_forms_changeCal(\"" + id + "\"," + sel_year + "," + (sel_month-1) + ")'>&lt;&lt;</a>";
	document.getElementById(id + "_calendar_next").innerHTML = "<a title=\"Prossimo mese\" href=\"javascript:void(false);\" onClick='CZ_forms_changeCal(\"" + id + "\"," + sel_year + "," + (sel_month+1) + ")'>&gt;&gt;</a>";
	//scrive la data tra i link
	var arrM = new Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre")
	document.getElementById(id + "_calendar_date").innerHTML = arrM[sel_month] + "/" + sel_year;
	
}

function CZ_forms_makeDate(date) {
	
	var arrayDate = date.split("/");
	if(arrayDate[0]<10) {
		arrayDate[0] = "0" + arrayDate[0];
	}
	
	var mese = parseInt(arrayDate[1])+1;
	if(mese<10) {
		mese = "0" + mese;
	}
	arrayDate[1] = mese;
	
	var date = arrayDate.join("/");
	
	return date;
}

function CZ_forms_returnDate(id, date) {
	//ritorna il valore nel campo del form
	document.getElementById(id).value = date;
	document.getElementById(id + "_calendar").innerHTML = '';
	document.getElementById(id + "_wrap_calendar").style.display = 'none';
}

function CZ_forms_closeCalendar(id) {
	document.getElementById(id + "_calendar").innerHTML = '';
	document.getElementById(id + "_wrap_calendar").style.display = 'none';
}

