var Giurit = {};
Giurit.NOREGLINK = "http://www.utetgiuridica.it/opere/scheda/9"
Giurit.templates = {};
Giurit.ssckey = "";
Giurit.logged = false;
Giurit.check_year_info = '';
Giurit.index_res = {};
Giurit.index_res_ajaxcmd = {};
Giurit.counter_sinc = 0;
Giurit.counter = 0;
Giurit.login_cback = null;

//{{{ on_login ( vars )	
function on_login ( vars )
{
	if ( vars && vars [ 'login' ] )
		Giurit.logged = vars [ 'login' ];

        if ( Giurit.login_cback )
                Giurit.login_cback ();

}
//}}}
//{{{ logout ()
Giurit.logout = function ()
{
	//elimina cookie e ricarica la pagina
	ajax_request ( "/cgi-bin/AjaxCmd", { "command": "logout" }, function ( v ) { window.location.reload(); }, true );
	// window.location.reload();

};
//}}}
//{{{ function hide_elems ()
function hide_elems ()
{
	//$ ( 'banner' ).style.visibility = 'hidden';
}
//}}}
//{{{ function visible_elems ()
function visible_elems ()
{
	$ ( 'login_div' ).style.visibility = 'inherit';
	//$ ( 'banner' ).style.visibility = 'inherit';
}
//}}}
//{{{ search_login ( cback )
Giurit.search_login  = function ( cback )
{
	Giurit.login_cback = cback;
	ajax_request ( "/cgi-bin/AjaxCmd", { "command": "get_opere" }, login_done );
};
//}}}
//{{{ search_rivista ()
Giurit.search_rivista = function ()
{
        var a = {};

        fq.clear ();
        fq.set_fields ( "ID", "MESE", "ANNO", "NUMERO", "DOCUMENT_TEXT", "DATA", "ESTRCOMP" );
        fq.mode = "QUERY";
        fq.db_name = "RIVISTEGI";
        fq.add ( "FULTIPO", "EQUAL", 1 );
        fq.add ( "OPERA", "EQUAL", "GI" );
	//fq.order_by = "DATA DESC";
	fq.page = 0;
	fq.lines = 1;
	fq.opera = "GI";

	fq.set_id();
        fq.fill ( a );

	Utils.show_block_empty ( false );

	//History.add ( { "home": null } );
        am.request ( "/cgi-bin/FulQuery", a, Giurit.fill_search_rivista_done, true );
};
//}}}
//{{{ fill_search_rivista_done ()
Giurit.fill_search_rivista_done = function ( vars )
{
	var row;

	if ( $ ( 'navi' ) )
		$ ( 'navi' ).innerHTML = '';

	if ( vars [ 'row0' ] ) 
	{
		row = vars [ 'row0' ];
		$ ( 'data' ).innerHTML =  row [ 'ESTRCOMP' ];

		Giurit.ANNO = row [ 'ANNO' ];
		Giurit.MESE = row [ 'MESE' ];
		Giurit.NUMERO = row [ 'NUMERO' ];


		$ ( 'main_box' ).className = 'main_box';
		$ ( 'center1' ).innerHTML = row [ 'DOCUMENT_TEXT' ];
		//Riviste.search_opera_and_sub_type ();
		Giurit.set_links ();
	} else { 
		$ ( 'data' ).innerHTML = '&nbsp;Nessun Risultato';
		$ ( 'center1' ).innerHTML = Giurit.templates [ 'not_opera_result' ];
	}

};
//}}}
//{{{ set_links()
Giurit.set_links = function ()
{
        var fname = '';

	// FIX KARMA
	Giurit.NUMERO = Giurit._padd_zero ( Giurit.NUMERO );

        //if ( Giurit.NUMERO < 10 )
          //      Giurit.NUMERO = '0' + Giurit.NUMERO;


        fname = "GI_" + Giurit.ANNO + "_" + Giurit.NUMERO;

        $ ( "link_som" ).href = "/cgi-bin/downloader.cgi?OPERA=GI&FILE=" + fname + '_sommario.pdf';
        if ( Giurit.logged )
	{
		$ ( "link_num_sommario" ).href = "javascript:Giurit.get_opera_info()";
        	$ ( "link_riv" ).href = "/cgi-bin/downloader.cgi?OPERA=GI&FILE=" + fname + '_rivista.pdf';
	} else {
		$ ( "link_num_sommario" ).href = "/cgi-bin/downloader.cgi?OPERA=GI&FILE=" + fname + '_rivista.pdf';//Giurit.NOREGLINK;
		$ ( "link_riv" ).href = "/cgi-bin/downloader.cgi?OPERA=GI&FILE=" + fname + '_rivista.pdf';//Giurit.NOREGLINK;
	}
};
//}}}
//{{{ get_opera ( op )
Giurit.get_opera = function ()
{
	//Utils.show_block_empty ( false );

	Giurit.search_rivista ();//fill_content ();

	History.add ( { "rivista": null } );
};
//}}}
//{{{ get_opera_info ()
Giurit.get_opera_info = function ()
{
        var a;

        History.add ( { "indice_num": null } );
        a = { opera: "GI", command: "get_opera_info" };
        am.request ( "/cgi-bin/AjaxCmd", a, Giurit.get_opera_info_done, true );
};
//}}}
//{{{ get_opera_info_done ( vars )
Giurit.get_opera_info_done = function ( vars )
{
        var row = {};
        var init, start, end, b, now = new Date ();
        var s = '';

        if ( vars )
        {
                row = Array.fromObject ( vars [ "GI" ] );

                s = row [ 'data_inizio' ].split ( "-" );
                start = new Date();
                start.setYear ( s [ 0 ] );
                start.setMonth ( s [ 1 ] - 1, s [ 2 ] );

                s = row [ 'data_fine' ];
                end = new Date ( s );

                b = new Date();
                b.setYear( b.getFullYear() - 1 );

                if ( start > b ) init = start;
                else
		{
			init = b;
			init.setMonth ( init.getMonth () - 1 );//patch 13 mesi di visibilita'
		}



		//console.debug ( "INIZIO:" + init + "FINE: " + now );
                Giurit.search_index ( init, now );
        }
};
//}}}
//{{{ search_index ( data_inizio, data_fine )
Giurit.search_index = function ( data_inizio, data_fine )
{
        var a = {};
        var from, to;

        /*
        if ( Riviste.check_year_info )
                $ ( 'testo_rivista' ).innerHTML =  "&nbsp; Indice dei numeri pubblicati - " + Riviste.check_year_info;
        else if ( Riviste.ANNO )
                $ ( 'testo_rivista' ).innerHTML =  "&nbsp; Indice dei numeri pubblicati - " + Riviste.ANNO;
        else
                $ ( 'testo_rivista' ).innerHTML =  "&nbsp; Indice dei numeri pubblicati";
        */

        $ ( 'data' ).innerHTML =  "&nbsp; Indice dei numeri pubblicati";

        fq.clear ();
        fq.set_fields ( "ANNO", "MESE", "NUMERO", "OPERA", "DATA" );
        fq.mode = "QUERY";
        fq.db_name = "RIVISTEGI"
        fq.add ( "FULTIPO", "EQUAL", 1 );
	fq.order_by = "DATA ASC"; 
	fq.opera = "GI";

        fq.page = 0;

        if ( data_inizio )
        {
                fq.add ( "ANNO1", "DATA",  data_inizio.getFullYear(), "DATA" );
                fq.add ( "MESE1", "DATA", ( data_inizio.getMonth() + 1 ), "DATA" );
                fq.add ( "GIORNO1", "DATA", data_inizio.getDate(), "DATA" );
        }
        if ( data_fine )
        {
                fq.add ( "ANNO2", "DATA",  data_fine.getFullYear(), "DATA" );
                fq.add ( "MESE2", "DATA", ( data_fine.getMonth() + 1 ), "DATA" );
                fq.add ( "GIORNO2", "DATA", data_fine.getDate(), "DATA" );
        }
        fq.lines = 13;

        fq.add ( "OPERA", "EQUAL", "GI" );
        //fq.order_by = "DATA ASC";

        if ( Giurit.check_year_info )
                fq.add ( "ANNO", "EQUAL", Giurit.check_year_info );


        fq.fill ( a );

	Utils.show_block_empty ( false );

        Giurit.check_year_info = '';

        am.request ( "/cgi-bin/FulQuery", a, Giurit.search_index_done, true );
};
//}}}
//{{{ search_index_done ( vars )
Giurit.search_index_done = function ( vars )
{
        var t, l, row, fname, len, i;
        var numero, s = '';
        var cnt = $( "center1" );
        var counter = 0;
        cnt.innerHTML = '';
        l = vars [ 'to_row' ];

        Utils.show_block_empty ( false );

        if ( ! vars [ 'rows' ] )
        {
                cnt.innerHTML = Giurit.templates [ 'not_opera_result' ];
                return;
        }

        for ( t = 0; t <= l; t ++ )
        {
                if ( vars [ 'row' + t ] )
                {
                        row = vars [ 'row' + t ];
                        Giurit.index_res [ 'row' + counter ] = row.clone();
			counter++;
			/*
                        numero = row [ 'NUMERO' ].split ( "-" );
                        len = numero.length;
                        for ( i = 0; i < len; i++ )
                        {
                                row [ 'NUMERO' ] = numero [ i ];
                                Giurit.index_res [ 'row' + counter ] = row.clone();
                                counter++;
                        }
			*/
                }
        }

        Giurit.counter_sinc = counter;
        Giurit.counter = counter;

        for ( t = 0; t < counter; t ++ )
        {
                row = Giurit.index_res  [ 'row' + t ].clone ();
                row [ 'command' ] = "get_rivista_info";
		//row [ 'OPERA' ] = 'GI';//FIXME: verificare ajaxcmd perche' torna G
                row [ 'KEY' ] = t;
                am.request ( "/cgi-bin/AjaxCmd", row, Giurit.search_index_done2, true );
        }
};
//}}}
//{{{ search_index_done2 ( vars )
Giurit.search_index_done2 = function ( vars )
{
        var t, l, row, row_ajaxcmd, appo_row = {};
        var fname, s = '';
        var print = false;
        var cnt = $( "center1" );

	$ ( 'main_box' ).className = 'main_box_r';
        //console.debug ( vars );
        Giurit.counter_sinc --;

        console.debug ( "Counter sinc: " + Giurit.counter_sinc + " - Counter: " + Giurit.counter );

        console.debug ( "APPEND: " + vars [ 'key' ] );

        Giurit.index_res_ajaxcmd [ 'row' + vars [ 'key' ] ] = vars.clone ();

        if ( Giurit.counter_sinc <= 0 )
        {
                s = '<div class="left_container_opGI" ><\/div>';
                s += ' <div class="right">';
                l = Giurit.counter;

                if ( ! l )
                        s += String.formatDict ( Giurit.templates [ 'no_result_index' ], { 'str': 'Nessun Risultato' } );

                for ( t = 0; t < l; t++ )
                {
                        //console.debug ( Riviste.index_res_ajaxcmd [ 'row' + t ] );
                        row = Giurit.index_res [ 'row' + t ];

                        if ( ( ! row ) || ( ! row [ 'OPERA' ] ) ) continue;

			//row [ 'OPERA' ] = 'GI';//FIXME: verificare ajaxcmd perche' torna G

                        row_ajaxcmd = Giurit.index_res_ajaxcmd [ 'row' + t ];

                        print = false;

                        fname = row [ 'OPERA' ] + "_" + row [ 'ANNO' ] + "_" + Giurit._padd_zero ( row [ "NUMERO" ] );

			/*
                        row [ "NUMERO" ] = Giurit._fix_numero ( row [ "NUMERO" ] );

                        if ( row [ 'NUMERO' ]  < 10 )
                                fname = row [ 'OPERA' ] + "_" + row [ 'ANNO' ] + "_" + '0' + row [ 'NUMERO' ];
                        else
                                fname = row [ 'OPERA' ] + "_" + row [ 'ANNO' ] + "_" + row [ 'NUMERO' ];
			*/

                        if ( ! row_ajaxcmd [ 'rivista' ] && ! row_ajaxcmd [ 'rivista' ] && ! row_ajaxcmd [ 'indice' ] ) continue;

                        if ( row_ajaxcmd [ 'sommario' ] )
                        {
                                row [ 'SOMMARIO' ] = '<a href="/cgi-bin/downloader.cgi?OPERA=' + row [ 'OPERA' ] + '&FILE=' + fname + '_sommario.pdf">Sommario<\/a>';
                                print = true;
                        }
                        else row [ 'SOMMARIO' ] = '';

                        if ( row_ajaxcmd [ 'rivista' ] && row_ajaxcmd [ 'sommario' ] )
                        {
                                row [ 'RIVISTA' ] = '<a href="/cgi-bin/downloader.cgi?OPERA=' + row [ 'OPERA' ] + '&FILE=' + fname + '_rivista.pdf">Rivista<\/a>';
                                print = true;
                        }
                        else if ( row_ajaxcmd [ 'rivista' ] && ! row_ajaxcmd [ 'sommario' ] )
                        {
                                row [ 'SOMMARIO' ] = '<a style="margin-right: 110px;" href="/cgi-bin/downloader.cgi?OPERA=' + row [ 'OPERA' ] + '&FILE=' + fname + '_rivista.pdf">Rivista<\/a>';
                                row [ 'RIVISTA' ] = '';
                                print = true;
                        }
                        else
                                row [ 'RIVISTA' ] = '';

                        if ( print )
                                s += String.formatDict ( Giurit.templates [ 'pdf_download' ], row );

                        print = false;

                        if ( row_ajaxcmd [ 'indice' ] )
                        {
                                console.debug(row_ajaxcmd);
                                row [ 'SOMMARIO' ] = '<a href="/cgi-bin/downloader.cgi?OPERA=' + row [ 'OPERA' ] + '&FILE=' + fname + '_indice.pdf">Scarica<\/a>';
                                row [ 'ANNO' ]     = 'Indice';
                                row [ 'NUMERO' ]   = '';
                                row [ 'RIVISTA' ]  = '';
                                s += String.formatDict ( Giurit.templates [ 'pdf_indice_download' ], row );
                        }

                }
                s += ' <\/div>';
                cnt.innerHTML = s;
        }
};
//}}}

//{{{ listener ( dict, data )
Giurit.listener = function ( dict, data )
{
	var page = 0;
	var lines = 5;
        var error_msg = String.formatDict ( Giurit.templates [ 'no_result' ], { 'str': 'Per visualizzare questa pagina &egrave; necessario inserire username e password' } );

	$( "block_main" ).style.display = "block";
	$( "block_main_empty" ).style.display = "none";

	if ( dict [ 'indice_num' ] != undefined )
	{
                if ( ! Giurit.logged )
                {
                        $ ( 'center1' ).innerHTML = error_msg;
                        return false;
                }
		Giurit.get_opera_info ();

		return false;
	}

	
	var statics = [
			[ "contattaci", "presentazione_riviste.htm" ]
		      ];

	var l = statics.length, t;
	var k;

	for ( t = 0; t < l; t ++ )
	{
		k = statics [ t ];
		
		if ( dict [ k [ 0 ] ] != undefined )
		{
			Utils.show_static ( k [ 1 ] );
			return false;
		}
	}

	Giurit.search_rivista ();

	return false;
};
//}}}
//{{{ init ()
Giurit.init = function ()
{
	Giurit.logged = false;
	Giurit.search_login ( Giurit.init2 );

	Giurit.read_warning ();

};
//}}}
//{{{ init2 ()
Giurit.init2 = function ()
{
        Giurit.templates [ 'block_main' ] = $ ( 'block_main' ).innerHTML;
	Giurit.create_templates ();
	//Giurit.search_rivista ();

        History.setListener ( Giurit.listener );
        History.init();
}
//}}}

// {{{ create_templates ()
Giurit.create_templates = function ()
{
	var s = '';

	s  = '<div class="container" >';
	s += '	<div class="row1" >%(DOCUMENT_TEXT)s<\/div>';
	s += '<\/div>';

	Giurit.templates [ 'sommario_articolo' ] = s;

	s  = '<div class="sommario_articolo">';
	s += '  <div class="sezione">&#187; %(SEZIONE)s<\/div>';
	s += '  <div class="txt"><div class="titolo">%(TITOLO)s<\/div><\/div>';
	s += '  <div class="autore">%(AUTORE)s<\/div>';
	s += '<\/div>';

	Giurit.templates [ 'sommario_articolo' ] = s;

        s  = '<div class="sommario_ricerca">';
        s += '  <div class="sezione_ricerca">&#187; %(SEZIONE)s';
	s += '		<div class="estrcomp_ricerca">%(ESTRCOMP)s<\/div>';
	s += ' 	<\/div>';
        //s += '  	<div class="txt_ricerca">';
	s += '			<div class="sottosezione_ricerca">%(SOTTOSEZIONE)s<\/div>';
	s += '			<div class="classificazione_ricerca">%(CLASSDESCR)s<\/div>';
	s += '			<div class="titolo_ricerca">%(LINK_TITOLO)s<\/div>';
	//s += '  	<\/div>';
	s += '	<div class="riferimenti_ricerca">%(RIFERIMENTI)s<\/div>';
        s += '  <div class="autore_ricerca">%(AUTORE)s<\/div>';
        s += '<\/div>';

        Giurit.templates [ 'sommario_ricerca' ] = s;

        s  = '	<div class="line">';
        s += '		<div class="mese">n.%(NUMERO)s<\/div>';
        s += '		<div class="anno">%(ANNO)s<\/div>';
        s += '		<img alt="" src="gfx/acrobat_little.gif" class="icona"\/>';
        s += '		<div class="sommario">%(SOMMARIO)s<\/div>';
        s += '		<div class="rivista">%(RIVISTA)s<\/div>';
        s += '	<\/div>';

        Giurit.templates [ 'pdf_download' ] = s;

	s  = '<a %(style)s href="/cgi-bin/downloader.cgi?OPERA=%(OPERA)s&FILE=%(fname)s_sommario.pdf">Sommario<\/a>';
        Giurit.templates [ 'pdf_download_sommario' ] = s;

	s  = '<a %(style)s href="http://www.clientiwkip.it/elcoupon%(COUPON_OPERA)s">Sommario<\/a>';
        Giurit.templates [ 'pdf_download_sommario_coupon' ] = s;

	s  = '<a href="/cgi-bin/downloader.cgi?OPERA=%(OPERA)s&FILE=%(fname)s_rivista.pdf">Rivista<\/a>';
        Giurit.templates [ 'pdf_download_rivista' ] = s;

	s  = '<a href="http://www.clientiwkip.it/elcoupon%(COUPON_OPERA)s">Rivista<\/a>';
        Giurit.templates [ 'pdf_download_rivista_coupon' ] = s;

	s  = '<a href="/cgi-bin/downloader.cgi?OPERA=%(OPERA)s&FILE=%(fname)s_indice.pdf">Scarica<\/a>'; 
        Giurit.templates [ 'pdf_download_indice' ] = s;

	s  = '<a href="http://www.clientiwkip.it/elcoupon%(COUPON_OPERA)s">Scarica<\/a>';
        Giurit.templates [ 'pdf_download_indice_coupon' ] = s;

        s  = '  <div class="line">';
        s += '          <div class="indice_annate_mese">%(NUMERO)s<\/div>';
        s += '          <div class="indice_annate_anno">%(ANNO)s<\/div>';
        s += '          <img alt="" src="gfx/riviste/pdf.gif" class="img_indice_pdf" \/>';
        s += '          <div class="download1">%(SOMMARIO)s<\/div>';
        s += '          <div class="download2">%(RIVISTA)s<\/div>';
        s += '  <\/div>';

        Giurit.templates [ 'pdf_indice_download' ] = s;


	s  = '<div class="sommario_articolo_nores">';
	s += '	<div class="titolo_sezione_nores">';
	s += '		<div class="noresult">Nessun risultato per l\'Opera richiesta<\/div>';
	s += '	<\/div>';
	s += '<\/div>';

	Giurit.templates [ 'not_opera_result' ] = s;

        s  = '<div class="sommario_articolo_nores">';
        s += '  <div class="titolo_sezione_nores">';
        s += '          <div class="noresult">%(str)s<\/div>';
        s += '  <\/div>';
        s += '<\/div>';

        Giurit.templates [ 'no_result' ] = s;

        s  = '<div class="sommario_index_nores">';
        s += '  <div class="titolo_index_nores">';
        s += '          <div class="noresult">%(str)s<\/div>';
        s += '  <\/div>';
        s += '<\/div>';

	Giurit.templates [ 'no_result_index' ] = s;
};
// }}}
//{{{ show_static ()
Giurit.show_static = function ( name, classe )
{
	am.request ( "/cgi-bin/AjaxCmd", { "command": "dump_html", "fname": name }, function ( vars ) { Giurit.show_static_done ( vars, classe ); }, true );
};
//}}}
//{{{ show_static_done ()
Giurit.show_static_done = function ( vars, classe )
{
	Utils.show_block_empty ( true );

	$( "block_main_empty" ).className = classe;
	$( "block_main_empty" ).innerHTML = vars [ "content" ];
};
//}}}
//{{{ _fix_numero ()
Giurit._fix_numero = function ( num )
{
	if ( ! num ) return "";

	var arr = num.split ( "-" );
	var i, l = arr.length;
	var s = [];

	for ( i = 0; i < l; i++ )
	{
		if ( arr [ i ].charAt ( 0 ) == '0' )
			s.push ( arr [ i ].slice ( 1 ) );
		else
			s.push ( arr [ i ] );
	}

	return '-'.join ( s );
};
//}}}
//{{{ _padd_zero ( num )
Giurit._padd_zero = function ( num )
{
	if ( ! num ) return "";

	var arr = num.split ( "-" );
	var i, l = arr.length;
	var s = [];

	for ( i = 0; i < l; i++ )
	{
		if ( arr [ i ] < 10 )
			s.push ( '0' + arr [ i ] );
		else
			s.push ( arr [ i ] );
	}

	return '-'.join ( s );
};
//}}}

Giurit.read_warning = function ()
{
	var a = { command: "dump_html", fname: "warning.html" };

	am.request ( '/cgi-bin/AjaxCmd', a, function ( vars ) {
		if ( ! vars [ 'content' ] ) return;

		var d = $( "warn_msg" );
		d.innerHTML = vars [ 'content' ];
		d.style.display = 'block';
	}, true );
};

