var ajax_main_script = "ajax.php";

function getE(id) {
	return document.getElementById(id);
}

mw=null;
function openWindowDimBars(FileName,w,h,barre) {
	myWindow=window.open(FileName,'','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+barre+',resizable=0,top=10,left=10,width='+w+',height='+h);
	return myWindow;
}

function confirmLink(theLink, confirmMsg) {
	if (typeof(window.opera) != 'undefined') {
		return true;
	}
	
	var is_confirmed = confirm(confirmMsg);
	
	return is_confirmed;
}

function checkemail(email_addr) {
	testresults = false;
	var filter=/^[\'+\\./0-9A-Z^_\`a-z{|}~\-]+@[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+){1,3}$/i;
	if (filter.test(email_addr)) {
		testresults = true;
	}
	
	return(testresults);
}

function isFunction(a) {
	return typeof a == 'function';
}
function isObject(a) {
	return (a && typeof a == 'object') || isFunction(a);
}
function isArray(a) {
	return isObject(a) && a.constructor == Array;
}

function is_valid_username(str, min_chars, max_chars) {
	var filter=/^[a-zA-Z0-9]{1,}[\.|\_|-]?[a-zA-Z0-9]{1,}$/i
	if (filter.test(str) && str.length>=min_chars) {
		if (max_chars>=min_chars) {
			if (str.length<=max_chars) {
				return true;
			}
			else {
				return false;
			}
		}
		else {
			return true;
		}
	}
	else {
		return false;
	}
}

/*
	Effettua la chiamata AJAX utilizzando JQuery e JSON.
	Autore:	Cristian Zuddas
	Data:	2007-11-19
	
	Params:
		query_str			string			Parametri da passare allo script che gestisce le risposte AJAX
		is_admin			bool			TRUE significa che questa funzione e' stata richiamata dal CMS
		func_success		function		Funzione da richiamare in caso di successo; deve avere un parametro nel quale viene inserito il risultato JSON della richiesta. Esempio: function(oResponse) {...}
		func_error			function		Opzionale, funzione da richiamare in caso di errore. Se viene passato un valore il cui tipo non e' "function", ne viene presa una di default
		func_complete		function		Opzionale, funzione da richiamare una volta completata la richiesta, sia in caso di successo sia in caso di errore. Se viene passato un valore il cui tipo non e' "function", ne viene presa una di default
	
	Note:
		Deve essere definita una variabile "ajax_main_script" (string) che contiene il nome/URL
		dello script gestore delle risposte.
*/
function doAjax(query_str, is_admin, func_success, func_error, func_complete) {
	if (typeof func_success=='function') {
		var url = ajax_main_script;
		if (is_admin) {
			url = '../'+url;
		}
		
		if (typeof func_error!='function') {
			func_error = function() {
										//alert(lng_00002);
									};
		}
		
		if (typeof query_str!='string')
			query_str = '';
		
		$.ajax({
			type: "POST",
			url: url,
			data: query_str,
			dataType: "json",
			success: func_success,
			error: func_error,
			complete: func_complete
		});
	}
	else {alert('doAjax error: success function is not defined.');}
}

function initSpecialLinks() {
	var i, lk, c;
	if (document.getElementsByTagName) {
		lk = document.getElementsByTagName('a');
		if (lk) {
			c = lk.length;
			for (i=0; i < c; i++) {
				if (lk[i].rel.indexOf('external') != -1) {
					lk[i].target = '_blank';
					if (!lk[i].title) {
						lk[i].title = mytext[3];
					}
				}
			}
		}
	}
}

// sistema di visualizzazione delle tab nella home page
function switch_tab(tab, numTab) {
	
	if(getE('tab_'+tab).className == '')
	{
		getE('tab_'+tab).className = 'corr';
		getE('tab_content_'+tab).className = 'tab_content';
	}
	
	for (i=1; i<=numTab; i++) {
		if (i != tab) {
			getE('tab_'+i).className = '';
			getE('tab_content_'+i).className = 'tab_content hidden';
		}
		
	}
	return false;

}
