// vim: encoding=UTF-8 expandtab sts=4 sw=4 ts=4
// אטילעש

/**
 * Permette di spostarsi da un tab ad un altro
 * Si presuppone che siano dei div e che vengano usate le classi tab e act
 */
function changeTab(id_element, div_header) {
	//try {
        var sTabIdentifier = 'tab';
        var sTabSelectedIdentifier = 'act';
		var aDiv = document.getElementById(div_header).getElementsByTagName('div');

        oEreg = new RegExp(sTabSelectedIdentifier);
		for (var i=0, size = aDiv.length; i < size; i++) {
            sClassName = aDiv[i].className.toString();
            sId = aDiv[i].id;

            // Se ט uno dei tab
            if (sClassName.indexOf(sTabIdentifier)!=-1) {
                var bodyElement = document.getElementById(sId + '_body');
                if (id_element==sId) {
                    aDiv[i].className = sClassName + ' ' + sTabSelectedIdentifier;
                    // Mostro il corpo
                    if (bodyElement) {
                        bodyElement.style.display = 'block';
                    }
                } 
                else if (sClassName.indexOf(sTabSelectedIdentifier)!=-1) {
                    aDiv[i].className = sClassName.replace(oEreg, '');
                    // Nascondo il corpo
                    if (bodyElement) {
                        bodyElement.style.display = 'none';
                    }
                }
            }
		}
	//} catch (ex) {
	//}
}

/**
 * Oggetto utilizzato per effetture il commento
 */
var CommentObject = {

	form_field_prefix: 'comment_xml_data_',
	form_rif: null,
	requesting: false,
	handleFailure:function(o){
		this.requesting=false;
		  alert('Impossibile registrare il commento: si prega di riprovare piu\' tardi.');
	},

	handleSuccess:function(o){
		this.requesting=false;
		if (o.responseText=='OK') {
			alert('Il tuo commento e\' stato registrato.');
			
			// Pulisco il form
		  	if (document.getElementById('comment_email').disabled==false) {
		  	    document.getElementById('comment_email').value = '';
            }
		  	document.getElementById('comment_captcha').value = '';	  	
		  	document.getElementById('comment_text').value = '';
            
            if (this.form_rif != null) {
	            for (var i=0; i < this.form_rif.elements.length; i++) {
					if (this.form_rif.elements[i].id != undefined 
						&& this.form_rif.elements[i].id.indexOf(this.form_field_prefix)==0
						&& this.form_rif.elements[i].disabled==false
						&& this.form_rif.elements[i].readOnly==false) {
		
						switch (this.form_rif.elements[i].type) {
						case 'checkbox':
							this.form_rif.elements[i].checked = false;
							break;
						case 'radio':
							for (var j in form_rif.elements[i]) {
							   this.form_rif.elements[i][j].checked='';
							}
						break;
						case 'select':
							this.form_rif.elements[i].selectedIndex = -1;
							break;
						case 'text':
						case 'textarea':
							this.form_rif.elements[i].value = '';
							break;
						}
					}
				}
				// Ottengo un nuovo captcha
				getNewCaptcha('/file_generali/include_external/inline_box.php','comment_image');
			}
		}
		else {
			alert(o.responseText);
		}
	},

	startRequest:function(rifForm, url) {
	
		if (this.requesting==true) {
			alert('Invio in corso');
		} else {
			this.requesting=true;
		  	var params = '';
			params += '&comment_id=' + encodeURIComponent(document.getElementById('comment_id').value);
			params += '&comment_email=' + encodeURIComponent(document.getElementById('comment_email').value);
			params += '&comment_image=' + encodeURIComponent(document.getElementById('comment_image').value);
			params += '&comment_captcha=' + encodeURIComponent(document.getElementById('comment_captcha').value);
			params += '&comment_text=' + encodeURIComponent(document.getElementById('comment_text').value);
			
			for (var i=0; i < rifForm.elements.length; i++) 
			{
				if (rifForm.elements[i].id != undefined 
					&& rifForm.elements[i].id.indexOf(this.form_field_prefix)==0) {
	
					sValue = '';
					switch (rifForm.elements[i].type) {
					case 'checkbox':
						sValue = rifForm.elements[i].checked?'1':'';
						break;
					case 'radio':
						for (var j in rifForm.elements[i]) {
						   if (rifForm.elements[i][j].checked=='1') {
						      sValue=rifForm.elements[i][j].value;
						   }
						}
						break;
					case 'select':
						sValue = rifForm.elements[i].options[rifForm.elements[i].selectedIndex].value;
						break;
					case 'hidden':
					case 'text':
					case 'textarea':
						sValue = rifForm.elements[i].value;
						break;
					}
					if (sValue!='') {
						params += '&'+rifForm.elements[i].id+'=' + encodeURIComponent(sValue);
					}
				}
			}
	
		  	//alert(params);		
		  	var sUrl  = url + '&new=1';
		  	var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, callbackComment, params);
		  	
		  	this.form_rif = rifForm;
		}
	}
};

/**
 * Oggetto di callback per la gestione delle risposte dal server. Definisce anche un 
 * timeout di 10 secondi.
 */
var callbackComment = {
	success:CommentObject.handleSuccess,
	failure:CommentObject.handleFailure,
	scope: CommentObject,
	timeout: 8000
};

function comment(rifForm, url) {
	CommentObject.startRequest(rifForm, url);
}

/**
 * Oggetto utilizzato per segnalare ad un amico l'elemento
 */
var SendMailObject = {
	requesting: false,
	handleFailure:function(o){
		this.requesting=false;
		alert('Impossibile inviare la mail: si prega di riprovare piu\' tardi.');
	},

	handleSuccess:function(o){
		this.requesting=false;
		if (o.responseText=='OK') {
			alert('La mail e\' stata correttamente inviata.');
		  	if (document.getElementById('mail_sender_name').disabled==false
		  		&& document.getElementById('mail_sender_name').readOnly==false) {
		  	    document.getElementById('mail_sender_name').value = '';
            }
		  	if (document.getElementById('mail_sender_email').disabled==false
		  		&& document.getElementById('mail_sender_email').readOnly==false) {
		  	    document.getElementById('mail_sender_email').value = '';
            }
		  	document.getElementById('mail_target_name').value = '';
		  	document.getElementById('mail_target_email').value = '';
		  	document.getElementById('mail_captcha').value = '';	  	
		  	document.getElementById('mail_u2').checked = false;
		  	document.getElementById('mail_text').value = '';
		}
		else {
			alert(o.responseText);
		}
	},

	startRequest:function(url) {
		if (this.requesting==true) {
			alert('Invio in corso');
		} else {
			this.requesting=true;
	
		  	var params = '';
		  	params += '&mail_id=' + encodeURIComponent(document.getElementById('mail_id').value);
			params += '&mail_sender_name=' + encodeURIComponent(document.getElementById('mail_sender_name').value);
			params += '&mail_sender_mail=' + encodeURIComponent(document.getElementById('mail_sender_email').value);
			params += '&mail_target_name=' + encodeURIComponent(document.getElementById('mail_target_name').value);
			params += '&mail_target_mail=' + encodeURIComponent(document.getElementById('mail_target_email').value);
			params += '&mail_image=' + encodeURIComponent(document.getElementById('mail_image').value);
			params += '&mail_captcha=' + encodeURIComponent(document.getElementById('mail_captcha').value);
			params += '&mail_u2=' + (document.getElementById('mail_u2').checked == true ? '1':'0');
			params += '&mail_url=' + document.location.href;
			params += '&mail_text=' + encodeURIComponent(document.getElementById('mail_text').value);
	
		  	//alert(params);		
		  	var sUrl  = url + '&send_mail=1';
		  	var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, callbackSendMail, params);
		  }
	}
};
/**
 * Oggetto di callbackSendMail per la gestione delle risposte dal server. Definisce anche un 
 * timeout di 10 secondi.
 */
var callbackSendMail = {
	success:SendMailObject.handleSuccess,
	failure:SendMailObject.handleFailure,
	scope: SendMailObject,
	timeout: 10000
};
function send_mail(url) {
	SendMailObject.startRequest(url);
}

/**
 * Oggetto utilizzato per ottenere un nuovo Captcha
 */
var Captcha = {
	object_id:'',
	regex:'captcha_([a-zA-Z0-9]{32}).jpg',
	errmsg: 'Impossibile ottenere un nuovo codice di validazione: si prega di riprovare fra poco o ricaricare la pagina',

	handleFailure:function(o){
		  alert(this.errmsg);
	},

	handleSuccess:function(o){
		var re = new RegExp(this.regex);
		var m = false;

		if ((m = o.responseText.match(re))!=false) {
			img_input = document.getElementById(this.object_id);
			img = document.getElementById(this.object_id+'_src');
			img_input.value = m[0];
			img.src = img.src.replace(re, m[0]);
		} else {
			alert(this.errmsg);
		}

	},

	startRequest:function(url, id) {
		this.object_id = id;
	  	var params = '';
	  	var sUrl  = url + '?tipo=captcha';
	  	var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, callbackCaptcha, params);
	}
};
/**
 * Oggetto di callbackSendMail per la gestione delle risposte dal server. Definisce anche un 
 * timeout di 10 secondi.
 */
var callbackCaptcha = {
	success:Captcha.handleSuccess,
	failure:Captcha.handleFailure,
	scope: Captcha,
	timeout: 10000
};

/**
 * Funzione che si fa carico di aggiornare un capctha non ben leggibile
 */
function getNewCaptcha(url, id)
{
	Captcha.startRequest(url, id);
}

/**
 * Funzione richiamata successivamente alle chiamate ajax (in questo caso e\' vuota, non serve)
 */
function jsAjaxBoxEnded(sUniqueName, sBoxHrefId, section) {}

