var LinkReplacer = {};

LinkReplacer._anchors = {};

LinkReplacer.lnk2span = function ( txt )
{
	var s = txt.replace ( /<(.?)lnk/ig, "<$1span" );
	return s;
};

LinkReplacer.replace = function ()
{
	var lnks = document.getElementsByTagName ( "span" );
	var lnk, l, t;
	var attr, i, d, txt;
	var a;
	var res = [];

	l = lnks.length;

	for ( t = 0; t < l; t ++ )
	{
		lnk = lnks [ t ];

		if ( ! lnk.getAttribute ( 'opera' ) ) continue;

		var opera = lnk.getAttribute ( 'opera' );
		var tipo = lnk.getAttribute ( 'tipo' );
		var fname = lnk.getAttribute ( 'filename' );
		var chiavi = lnk.getAttribute ( 'chiavi' );

		txt = lnk.innerHTML;

		var href = "";
		if ( fname )
			href = "/cgi-bin/downloader.cgi?OPERA=" + opera + "&FILE=" + fname;
		else if ( tipo == "page" )
		{
			if ( site.user_info [ "login" ] != "" && chiavi.match ( /\.html*$/ ) )
			{
				href = "javascript:kernel.go({mask:'static',page:'desklegale/" + chiavi + "'})";
			}
			else if ( ( site.user_info.attive.indexOf ( "AP" ) >= 0 ) && ( site.user_info [ "login" ] != "" ) )
			{
				href = "/cgi-bin/downloader.cgi?FILE=desklegale/" + chiavi;
			}
			else
				href = "javascript:kernel.go({mask:'frame',page:'http://el.leggiditalia.it/studiolegale/coupon/'})";
		}

		a = document.createElement ( 'a' );
		a.setAttribute ( 'href', href );
		a.innerHTML = txt;

		res.push ( [ a, lnk ] );
	}

	l = res.length;
	for ( t = 0; t < l; t ++ )
	{
		lnk = res [ t ] [ 1 ];
		lnk.parentNode.replaceChild ( res [ t ] [ 0 ], lnk );
	}
};

LinkReplacer.replace_anchors = function ( el, skip_class_check )
{
	if ( ! el ) el = document;

	var as = el.getElementsByTagName ( "a" );
	var a, l, t;
	var name, href = false;

	l = as.length;

	for ( t = 0; t < l; t ++ )
	{
		a = as [ t ];

		name = a.getAttribute ( 'name' );
		if ( name )
			LinkReplacer._anchors [ name ] = a;

		try {
			href = a.getAttribute ( 'href' );
		} catch ( e ) {
			href = false;
		}

		if ( ! href ) continue;

		if ( ! skip_class_check && a.className != "cds_rif_nota" && a.className != "cds_rimando_nota" ) continue;

		href = href.split ( "#" );
		if ( href.length > 1 && ( ( ! href [ 0 ] ) || href [ 0 ] == ( location.protocol + "//" + location.hostname + location.pathname + location.search ) ) )
		{
			href = href [ 1 ];
			a.setAttribute ( 'href', "javascript:LinkReplacer.scroll('" + href + "')" );
		}
	}
};


LinkReplacer.scroll = function ( name )
{
	var a = LinkReplacer._anchors [ name ];
	var pos = liwe.dom.get_offset_top ( a );

	window.scrollTo ( 0, pos );
};
