function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}
function shiftOpacity(id, millisec) {
    //if an element is invisible, make it visible, else make it ivisible
    if(document.getElementById(id).style.opacity == 0) {
        opacity(id, 0, 100, millisec);
    } else {
        opacity(id, 100, 0, millisec);
    }
}
function getOpac(){
	shiftOpacity('charDiv', 1000);
}
function Char(){
	function disableSelection(element) {
		element.onselectstart = function() {
			return false;
		};
		element.unselectable = "on";
	}
	var a = Math.floor(Math.random() * 64967);
	var b = document.getElementById('charDiv');
	
	//imposta l'opacità a zero
	b.style.opacity = 0;
	
	function getChar(){
		b.style.zIndex = "0";
			
		disableSelection(b.innerHTML = "&#" + a);
	}
	function setChar(){
		if ((a !== 247) && ((a < 447) || (a > 452)) && (a !== 545) && ((a < 564) || (a > 591)) && ((a < 684) || (a > 900)) && (a !== 907) && ((a < 1015) || (a > 1023)) && (a !== 1159) && ((a < 1274) || (a > 1279)) && ((a < 1296) || (a > 1328)) && ((a < 1367) || (a > 1376)) && ((a < 1416) || (a > 1424)) && ((a < 1442) || (a > 1487)) && ((a < 1515) || (a > 1568)) && ((a < 1595) || (a > 1599)) && ((a < 1622) || (a > 1632)) && ((a < 1750) || (a > 1775)) && ((a < 1791) || (a > 1809)) && ((a < 1837) || (a > 1919)) && ((a < 1958) || (a > 1968)) && ((a < 1970) || (a > 2307)) && ((a < 2362) || (a > 2366)) && ((a < 2369) || (a > 2376)) && ((a < 2381) || (a > 2383)) && ((a < 2385) || (a > 2391)) && ((a < 2402) || (a > 2406)) && ((a < 2416) || (a > 2436)) && ((a < 2445) || (a > 2446)) && ((a < 2449) || (a > 2450)) && ((a < 2483) || (a > 2485)) && ((a < 2490) || (a > 2492)) && ((a < 2497) || (a > 2502)) && ((a < 2505) || (a > 2506)) && ((a < 2509) || (a > 2518)) && ((a < 2520) || (a > 2523)) && ((a < 2530) || (a > 2534)) && ((a < 2555) || (a > 2564)) && ((a < 2571) || (a > 2574)) && ((a < 2577) || (a > 2578)) && (a !== 2601) && (a !== 2612) && (a !== 2615) && (a !== 2622) && ((a < 2618) || (a > 2621)) && ((a < 2625) || (a > 2648)) && (a !== 2653) && ((a < 2655) || (a > 2661)) && ((a < 2672) || (a > 2673)) && ((a < 2677) || (a > 2692)) && (a !== 2700) && (a !== 2702) && (a !== 2706) && (a !== 2737) && (a !== 2740) && ((a < 2746) || (a > 2748)) && ((a < 2753) || (a > 2760)) && (a !== 2762) && ((a < 2765) || (a > 2767)) && ((a < 2769) || (a > 2783)) && ((a < 2785) || (a > 2789)) && ((a < 2800) || (a > 2820)) && ((a < 2829) || (a > 2830)) && ((a < 2833) || (a > 2834)) && ((a < 2865) || (a > 2869)) && ((a < 2874) || (a > 2886)) && ((a < 2889) || (a > 2890)) && ((a < 2893) || (a > 2902)) && ((a < 2904) || (a > 2907)) && (a !== 2910) && ((a < 2914) || (a > 2918)) && ((a < 2929) || (a > 2946)) && (a !== 2948) && ((a < 2955) || (a > 2957)) && (a !== 2961) && ((a < 2966) || (a > 2968)) && (a !== 2971) && (a !== 2973) && ((a < 2976) || (a > 2978)) && ((a < 2981) || (a > 2983)) && ((a < 2987) || (a > 2989)) && (a !== 2998) && ((a < 3002) || (a > 3005)) && ((a < 3011) || (a > 3013)) && (a !== 3017) && ((a < 3021) || (a > 3030)) && ((a < 3032) || (a > 3046)) && ((a < 3059) || (a > 3072)) && (a !== 3076) && (a !== 3085) && (a !== 3089) && (a !== 3113) && (a !== 3145) && ((a < 3150) || (a > 3167)) && ((a < 3170) || (a > 3173)) && ((a < 3184) || (a > 3204)) && (a !== 3213) && (a !== 3217) && (a !== 3241) && (a !== 3252) && ((a < 3258) || (a > 3261)) && ((a < 3278) || (a > 3284)) && ((a < 3287) || (a > 3293)) && (a !== 3295) && ((a < 3298) || (a > 3301)) && ((a < 3312) || (a > 3332)) && (a !== 3341) && (a !== 3345) && (a !== 3369) && ((a < 3386) || (a > 3389)) && ((a < 3396) || (a > 3397)) && (a !== 3401) && ((a < 3405) || (a > 3423)) && ((a < 3426) || (a > 3429)) && ((a < 3440) || (a > 3584)) && ((a < 3633) || (a > 3647)) && ((a < 3655) || (a > 3662)) && ((a < 3676) || (a > 3839)) && (a !== 3912) && ((a < 3946) || (a > 3952)) && ((a < 3980) || (a > 3983)) && (a !== 3990) && (a !== 3992) && ((a < 4014) || (a > 4016)) && ((a < 4026) || (a > 4255)) && ((a < 4294) || (a > 4303)) && ((a < 4343) || (a > 4351)) && ((a < 4442) || (a > 4448)) && ((a < 4515) || (a > 4519)) && ((a < 4602) || (a > 12031)) && ((a < 12246) || (a > 12352)) && ((a < 12439) || (a > 12444)) && (a !== 12448) && ((a < 12543) || (a > 12548)) && ((a < 12589) || (a > 12592)) && (a !== 12644) && ((a < 12685) || (a > 12689)) && ((a < 12704) || (a > 13055)) && ((a < 13144) || (a > 19967)) && ((a < 40870) || (a > 44031)) && ((a < 55204) || (a > 59412)) && ((a < 59492) || (a > 63743)) && ((a < 64107) || (a > 64287)) && (a !== 64297) && ((a < 64434) || (a > 64466)) && ((a < 64828) || (a > 64847)) && ((a < 64912) || (a > 64913))) {
			getChar();
		} else {
			Char();		
		}
	}
	getOpac();
	setChar();
}
setInterval('getOpac()', 17500);
setInterval('Char()', 18000);
