function utf8_decode (str_data) {
    var tmp_arr = [],
    i = 0,
    ac = 0,
    c1 = 0,
    c2 = 0,
    c3 = 0;
    str_data += '';
    while (i < str_data.length) {
	c1 = str_data.charCodeAt(i);
	if (c1 < 128) {
	    tmp_arr[ac++] = String.fromCharCode(c1);
	    i++;
	} else if (c1 > 191 && c1 < 224) {
	    c2 = str_data.charCodeAt(i + 1);
	    tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
	    i += 2;
	} else {
	    c2 = str_data.charCodeAt(i + 1);
	    c3 = str_data.charCodeAt(i + 2);
	    tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
	    i += 3;
	}
    }
    return tmp_arr.join('');
}
function base64_decode (data) {
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
    ac = 0,
    dec = "",
    tmp_arr = [];

    if (!data) {
	return data;
    }

    data += '';

    do { // unpack four hexets into three octets using index points in b64
	h1 = b64.indexOf(data.charAt(i++));
	h2 = b64.indexOf(data.charAt(i++));
	h3 = b64.indexOf(data.charAt(i++));
	h4 = b64.indexOf(data.charAt(i++));
	bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;
	o1 = bits >> 16 & 0xff;
	o2 = bits >> 8 & 0xff;
	o3 = bits & 0xff;

	if (h3 == 64) {
	    tmp_arr[ac++] = String.fromCharCode(o1);
	} else if (h4 == 64) {
	    tmp_arr[ac++] = String.fromCharCode(o1, o2);
	} else {
	    tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
	}
    } while (i < data.length);
    dec = tmp_arr.join('');
    dec = this.utf8_decode(dec);
    return dec;
}
function base64_encode (data) {
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
    ac = 0,
    enc = "",
    tmp_arr = [];
    if (!data) {
	return data;
    }
    data = this.utf8_encode(data + '');
    do {
	o1 = data.charCodeAt(i++);
	o2 = data.charCodeAt(i++);
	o3 = data.charCodeAt(i++);
	bits = o1 << 16 | o2 << 8 | o3;
	h1 = bits >> 18 & 0x3f;
	h2 = bits >> 12 & 0x3f;
	h3 = bits >> 6 & 0x3f;
	h4 = bits & 0x3f;
	tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
    enc = tmp_arr.join('');
    switch (data.length % 3) {
	case 1:
	    enc = enc.slice(0, -2) + '==';
	    break;
	case 2:
	    enc = enc.slice(0, -1) + '=';
	    break;
    }
    return enc;
}


function fadePagina(){
    var myElement = $$('#header','#szPagina_titolo','#contenuto','#footer');
    myElement.set('tween', {
	duration: '3000'
    });
    myElement.tween('opacity', 0, 1);
 
}

function paginaAttiva(){

    var href = 'index.php'+location.search;

    if(href=='index.php?action=content_szpagina&idSZPagina=1' || href=='index.php'){
	setTimeout('fadePagina()',2000);
    }

    $$('#menu a').each(function(el){
	if(el.get('href')==href){
	    el.addClass('selected');
	}
	if(el.get('id')==$('contenuto').get('class')){
	    el.addClass('selected');
	}
    });
}

function selettore(elementi,classeOver,classeSel){
    var tabs = $$(elementi);
    tabs.each(function(tab)
    {
	tab.addEvent("mouseover", function()
	{
	    tabs.each(function(tab){
		tab.removeClass(classeOver)
	    });
	    this.addClass(classeOver);
	}.bind(tab));
	tab.addEvent("mouseleave", function() {
	    tabs.each(function(tab){
		tab.removeClass(classeOver)
	    });
	}.bind(tab));

	tab.addEvent("click", function() {
	    tabs.each(function(tab){
		tab.removeClass(classeSel);
	    });
	    this.addClass(classeSel);
	}.bind(tab));

    });
}

function menuSottopagine(contenuto){
    $('menu_sottopagine').set('html',base64_decode(contenuto));

    var menu_sottopagina_list=$$('#menu_sottopagine .menu_sottopagina');
    menu_sottopagina_list.each(function(el){
	el.setStyle('width',100/menu_sottopagina_list.length+'%');
    });

    $('menu_sottopagine').fade('in');
    selettoreOver('#menu_sottopagine .menu_sottopagina','selected');
}

function lista_accordion(){
    var ac = new Fx.Accordion($$('img.ImgLavorato'),$$('div.accordion'),{
	alwaysHide: true,
	start : 'all-closed',
	height: true,
	duration: 500
    });
}

function ControlloPrivacy(){

    if (!$('Privacy').checked){
	alert (getGlobalLabel("formcontatti_privacy"));
	return false;
    }else{
	return true;
    }
}

function getContenuto(type,id){
    new Request.HTML({
	url: 'index.php?action=ajax_content&'+type+'='+id,
	update: $("contenuto_center"),
	useSpinner: true,
	async: false,
	onComplete: function(){
	    Mediabox.scanPage();
	    if($('sottopagina_paragrafo_list')){
		selettoreOver('#sottopagina_paragrafo_list .psparagrafo','over');
	    }
	}
    }).get();

}

function selettoreOver(elementi,classe){
    var tabs = $$(elementi);
    tabs.each(function(tab){
	
	tab.addEvent("mouseover", function(){
	    tabs.each(function(tab){
		tab.removeClass(classe)
	    });
	    this.addClass(classe);
	}.bind(tab));
	tab.addEvent("mouseleave", function() {
	    tabs.each(function(tab){
		tab.removeClass(classe)
	    });
	}.bind(tab));
    });
}


document.addEvent('domready', function() {
    MooTools.lang.setLanguage("it-IT");

    lista_accordion();
    paginaAttiva();

    selettore('#contenuto_top .contenuto_top_bottone ','over','selected');
    $('menu_sottopagine').setStyle('opacity',0);
    $('menu_sottopagine').setStyle('visibility','hidden');

    if($$('#imgContainer .sfondo').length>0){
	var slideSfondo = new SimpleSlideshow('imgContainer','#imgContainer .sfondo');
	slideSfondo.start();
    }
//    selettoreOver('#contenuto_top .contenuto_top_bottone','selected');
    selettoreOver('#pagina_paragrafo_list .psparagrafo','over');

    selettoreOver('#paragrafo_list .psparagrafo','over');

});
