
function PixelCreditsManager()
{
    var sites = {}

    var ld=function()
    {
        if(!document.querySelector(".footer .PixelCredits, .navsub .PixelCredits"))
        {
            var t1, t2, t3;
            var ele=document.querySelectorAll(".footer, .navsub");
            ele=ele[ele.length-1];
            document.head.insertAdjacentHTML("beforeEnd","<style> .PixelCredits strong { position:relative; display:inline-block; } .PixelCredits strong:before { content:\"\"; position:absolute; top:-5px; left:0; width:100%; height:5px; } .PixelCredits strong .PixelHoverPopup {z-index:2000; font-family:arial; position:absolute; right:0; bottom:100%; margin:0; margin-bottom:5px; margin-right:-75px; background-color:white; padding:3px; width:250px; border-radius:5px; border:1px #ddd solid; border:1px rgba(255,255,255,1) solid; box-shadow:0 1px 3px rgba(0,0,0,0.3); font-family:segoe ui, ubuntu, helvetica neue, arial; font-weight:400; text-shadow:none; color:#777; text-decoration:none; } .PixelCredits strong .PixelHoverPopup:before, .PixelCredits strong .PixelHoverPopup:after { content:\"\"; position:absolute; display:block; top:100%; left:50%; border:rgba(0,0,0,0) 10px solid; border-top:7px white solid; border-bottom:none; } .PixelCredits strong .PixelHoverPopup:before { border-top-color:#ddd; border-top-color:rgba(0,0,0,0.15); margin-top:1px; } .PixelCredits strong .PixelHoverPopup a { color:#000; text-shadow:0 0 0 black; text-decoration:none;} .PixelCredits strong .PixelHoverPopup a:hover { color:#0af; text-decoration:underline;} .PixelCredits strong .PixelHoverPopup li { border-top:1px #ccc dotted; width:100%; display:block; padding:0; margin:0; line-height:25px; } .PixelCredits strong .PixelHoverPopup li:first-child { border-top:none; } .PixelCredits strong .PixelHoverPopup { opacity:0; right:9999px; -webkit-transform:scale(0); -webkit-transform-origin:bottom; -webkit-transition-property:-webkit-transform, right, opacity, -webkit-transform-origin; -webkit-transition-duration:0.4s, 0s, 0.5s, 0.4s; -webkit-transition-delay:0s, 0.4s, 0s, 0s; -webkit-transition-timing-function:ease-out; -moz-transform:scale(0); -moz-transform-origin:bottom; -moz-transition-property:-webkit-transform, right, opacity, -webkit-transform-origin; -moz-transition-duration:0.4s, 0s, 0.5s, 0.4s; -moz-transition-delay:0s, 0.4s, 0s, 0s; -moz-transition-timing-function:ease-out; -o-transform:scale(0); -o-transform-origin:bottom; -o-transition-property:-webkit-transform, right, opacity, -webkit-transform-origin; -o-transition-duration:0.4s, 0s, 0.5s, 0.4s; -o-transition-delay:0s, 0.4s, 0s, 0s; -o-transition-timing-function:ease-out; -ms-transform:scale(0); -ms-transform-origin:bottom; -ms-transition-property:-webkit-transform, right, opacity, -webkit-transform-origin; -ms-transition-duration:0.4s, 0s, 0.5s, 0.4s; -ms-transition-delay:0s, 0.4s, 0s, 0s; -ms-transition-timing-function:ease-out; transform:scale(0); transform-origin:bottom; transition-property:-webkit-transform, right, opacity, -webkit-transform-origin; transition-duration:0.4s, 0s, 0.5s, 0.4s; transition-delay:0s, 0.4s, 0s, 0s; transition-timing-function:ease-out; text-shadow:0 0 0 black; color:black;} .PixelCredits strong:hover .PixelHoverPopup { opacity:1; right:0px; -webkit-transform:scale(1); -webkit-transform-origin:top; -webkit-transition-delay:0s; -webkit-transition-timing-function:cubic-bezier(0.5, 1.5,0.8,1); -moz-transform:scale(1); -moz-transform-origin:top; -moz-transition-delay:0s; -moz-transition-timing-function:cubic-bezier(0.5, 1.5,0.8,1); -o-transform:scale(1); -o-transform-origin:top; -o-transition-delay:0s; -o-transition-timing-function:cubic-bezier(0.5, 1.5,0.8,1); -ms-transform:scale(1); -ms-transform-origin:top; -ms-transition-delay:0s; -ms-transition-timing-function:cubic-bezier(0.5, 1.5,0.8,1); transform:scale(1); transform-origin:top; transition-delay:0s; transition-timing-function:cubic-bezier(0.5, 1.5,0.8,1); } .PixelCredits span.PixelCreditsSep:last-of-type{display:none}</style>");

            var lol, html="<div class=\"PixelCredits\">Script del ", a;
            for(lol in sites)
            {
                html+="<strong><a href=\""+sites[lol].url+"\">"+sites[lol].name+"</a><ul class=\"PixelHoverPopup\">";
                a = sites[lol].credits;
                for(var i = a.length; --i>=0;)
                {
                    html+="<li><a href=\"http://forumfree.it?t="+a[i].topic+"\">"+a[i].script+"</a> di <a href=\"http://forumfree.it?act=Profile&MID="+a[i].mid+"\">"+a[i].nick+"</a></li>"
                }
                html+="</ul></strong><span class=\"PixelCreditsSep\"> e </span>";
            }
            html+="</div>";


            ele.insertAdjacentHTML("beforeEnd",html);

            
            var recheck = function(){
                var thereisffborffm = document.querySelectorAll(".FFB_popup_credits").length > 0;
                if(!thereisffborffm)return;
                clearTimeout(t1);clearTimeout(t2);clearTimeout(t3);
                var ffb = document.querySelectorAll(".FFB_popup_credits");
                var pc = document.querySelector(".PixelCredits");
                ffb=ffb[ffb.length-1];
                var html = pc.innerHTML;
                pc.parentNode.removeChild(pc);
                ffb.insertAdjacentHTML("afterEnd","<span class=\"PixelCredits\">"+html.replace(/Script del/i," - ")+"</span>");
            }
            t1=setTimeout(recheck,500);
            t2=setTimeout(recheck,1500);
            t3=setTimeout(recheck,3000);
        }
    };

    this.addSite=function(id,name,url)
    {
        if(id in sites)
        {
            sites[id].name=name;
            sites[id].url=url;
            return;
        }
        sites[id]={
            name: name,
            url: url,
            credits: []
        };
    };
    this.addCredits=function(id,nick,mid,script,topic)
    {
        if(id in sites)
        {
            sites[id].credits.push({
                nick:nick,
                mid:mid,
                script:script,
                topic:topic
            });
        }
    }
    document.addEventListener("DOMContentLoaded",ld);
    window.addEventListener("load",ld);
}

if(typeof PixelCreditsManagerObject==="undefined")
{
    PixelCreditsManagerObject = new PixelCreditsManager();
}

function PixelAddCredits(nick,mid,script,topic)
{
    PixelCreditsManagerObject.addSite("pixel","Pixel Graphic Studio","http://pixel.forumfree.it");
    PixelCreditsManagerObject.addCredits("pixel",nick,mid,script,topic);

}
function ArtimeAddCredits(nick,mid,script,topic)
{
    PixelCreditsManagerObject.addSite("artime","Artime","http://artime.forumfree.it");
    PixelCreditsManagerObject.addCredits("artime",nick,mid,script,topic);
}
PixelAddCredits("flexlex",4148305,"StarRating",67406284);

function PixelStarRatingSystem()
{
	//PixelStarRatingSystem V2
	/**
	@author Waldboth Alex
	@version 2.0.0
	*/
	/*

	FEATURES
	cache points (30min)

	FX
	vote
	read vote

	API
	get vote - section / topic
	set stars
	*/

	var self=this;
	//var baseurl="http://localhost/StarRating";
	var baseurl="http://ffx.forumfree.net/flexlex/starrating";
	var circuit=document.URL.indexOf("forumfree")!=-1 ? "ff" : document.URL.indexOf("blogfree")!=-1 ? "bf" : document.URL.indexOf("forumcommunity")!=-1 ? "fc" : "ff";
	var domain=/*"localhost";*/document.URL.match(/http:\/\/(.*?)\.(blogfree|forumcommunity|forumfree)/)[1];
	var emptystar="&#9734;";
	var fullstar="&#9733;";
	var auth_session=/*"test";*/(document.cookie+";").match(/auth_session=(.*?);/)[1];
	var layout = document.body.hasAttribute("id");
	var tid="0", fid="0";
	var avg=0;

	console.groupCollapsed("Pixel StarRating Debug Console");
	console.log("MainObject:");
	console.log(self);
	console.log("baseurl: "+baseurl);
	console.log("domain: "+domain);
	console.log("emptystar: "+emptystar);
	console.log("fullstar: "+fullstar);
	console.log("session key: "+auth_session);
	console.log("layout: "+(layout ? "new" : "old"));

	//STARS HOVER
	var hover=function(nr)
	{
		if(tid==0)return;
		var stars=document.querySelectorAll(".stars .single_star");
		if (nr==0)
		{
			for(var i=0;i<stars.length;i++)
			{
				if(i<avg)
				{
					stars[i].className=stars[i].className.replace(/(emptystar|fullstar)/gi,"")+" fullstar";
					stars[i].innerHTML=fullstar;
				}
				else
				{
					stars[i].className=stars[i].className.replace(/(emptystar|fullstar)/gi,"")+" emptystar";
					stars[i].innerHTML=emptystar;
				}
			}
		}
		else
		{
			for(var i=0;i<stars.length;i++)
			{
				if(i<nr)
				{
					stars[i].className=stars[i].className.replace(/(emptystar|fullstar)/gi,"")+" fullstar";
					stars[i].innerHTML=fullstar;
				}
				else
				{
					stars[i].className=stars[i].className.replace(/(emptystar|fullstar)/gi,"")+" emptystar";
					stars[i].innerHTML=emptystar;
				}
			}
		}
	};

	//LOADED INFO
	var loaded=function(rr,obj)
	{
		var starse=document.querySelector(".stars");
		starse.className=starse.className.replace(/\.?loading/gi,"");
	
		var stars={
			s1: rr[0],
			s2: rr[1],
			s3: rr[2],
			s4: rr[3],
			s5: rr[4]
		}
	
		var html="";
		var sum=stars.s1+stars.s2+stars.s3+stars.s4+stars.s5;
		for (var i = 5; --i>=0;)
		{
			html+="<div class=\"bar_row bar_row_"+i+"\"><span class=\"star_label\">"+(i+1)+"</span><div class=\"star_bar star_bar_"+(i+1)+"\"><div class=\"star_bar_rap\" style=\"width:"+(stars["s"+(i+1)]*100/sum)+"%;\"></div></div><span class=\"tot\">"+stars["s"+(i+1)]+"</span></div>";
		};
		var tavg=(Math.floor(((stars.s1*1+stars.s2*2+stars.s3*3+stars.s4*4+stars.s5*5)/sum)*10)/10);
		avg=Math.round(tavg);
		if(isNaN(avg))
		{
			avg=tavg=0;
		}

		if(starse.parentNode.querySelector(".star_avg")!=null)
		{
			starse.parentNode.querySelector(".star_avg").innerHTML=avg==0 ? emptystar : tavg;
		}

		if (obj)
		{
			var msg="Non hai ancora votato";
			var mid=getmid();
			if(mid in obj)
			{
				msg="Hai votato "+obj[mid]+" stell"+(obj[mid]==1 ? "a" : "e");
			}
		}
		else
		{
			var msg="";
		}

		html+="<div class=\"bar_row bar_row_avg\"><span class=\"star_label\">"+tavg+"</span><span class=\"star_info\">"+msg+"</span><span class=\"tot\">"+sum+"</span></div>"
		document.querySelector(".stars .pixel_star_tooltip").innerHTML=html;
		self.hover(0);
	};
	//BLOG HANDLER
	var blogHandler=function()
	{
		var open=document.body.getAttribute("class").search(/t([0-9]+)/)!=-1;
		if(open)
		{
			topicHandler();
		}
		else
		{
			var articles=null;
			var where="beforeBegin";
			var pselector=".replies";
			var starHTML="<span class=\"stars loading\"><span class=\"single_star s1 emptystar\">"+emptystar+"</span><span class=\"single_star s2 emptystar\">"+emptystar+"</span><span class=\"single_star s3 emptystar\">"+emptystar+"</span><span class=\"single_star s4 emptystar\">"+emptystar+"</span><span class=\"single_star s5 emptystar\">"+emptystar+"</span></span>";
			if(layout)
			{
				fid=document.body.getAttribute("class").match(/f([0-9]+)/)[1];
				articles=document.querySelectorAll(".article");
				if (articles.length==0)return;
			}

			for(var i=articles.length;--i>=0;)
			{
				articles[i].querySelector(pselector).insertAdjacentHTML(where,"<span class=\"views star_box\"><a href=\"javascript:void(0);\"><em class=\"star_avg\">"+fullstar+"</em>"+starHTML+"</a></span>");
			}


			$.getJSON(baseurl+"/act.php?act=getSecJson&fid="+fid+"&c="+circuit,function(j)
				{
					for(var i=articles.length;--i>=0;)
					{
						articles[i].querySelector(".stars").className=articles[i].querySelector(".stars").className.replace(/\ ?loading/g,"");
						var id=articles[i].querySelector(".btitle a").getAttribute("href").match(/t=([0-9]+)/);
						id=id[1];
						if("t"+id in j)
						{
							var pt=Math.round(j["t"+id].sum/j["t"+id].tot);
							if(articles[i].querySelector(".star_box"))
							{
								var tpt=Math.round(j["t"+id].sum*10/j["t"+id].tot)/10;
								articles[i].querySelector(".star_box em").innerHTML=tpt;
							}
							for(var ii=0;ii<5;ii++)
							{
								if(ii<pt)
								{
									var tt=articles[i].querySelector(".s"+(ii+1));
									tt.innerHTML=fullstar;
									tt.className=tt.className.replace(/\ ?(emptystar|fullstar)/,"")+" fullstar";
								}
								else
								{
									var tt=articles[i].querySelector(".s"+(ii+1));
									tt.innerHTML=emptystar;
									tt.className=tt.className.replace(/\ ?(emptystar|fullstar)/,"")+" emptystar";
								}
							}
						}
						else
						{
							if(articles[i].querySelector(".star_box"))
							{
								articles[i].querySelector(".star_box em").className+=" not_rated";
								articles[i].querySelector(".star_box em").innerHTML=emptystar;
								articles[i].querySelector(".star_box .stars").innerHTML="non votato";
							}
							else
							{
								for(var ii=0;ii<5;ii++)
								{
									var tt=articles[i].querySelector(".s"+(ii+1));
									tt.innerHTML=emptystar;
									tt.className=tt.className.replace(/\ ?(emptystar|fullstar)/,"")+" emptystar";
								}
							}
						}
					}
				});
		}
	};


	//SECTION HANDLER
	var sectionHandler=function()
	{
		if(layout)
			var topics=document.querySelectorAll("ol.big_list li");
		else{
			var topics=document.querySelectorAll("div.topic");
		}
		
		if(topics.length==0)
			var topics=document.querySelectorAll(".main6 tbody > tr");

		var starHTML="<span class=\"stars loading\"><span class=\"single_star s1 emptystar\">"+emptystar+"</span><span class=\"single_star s2 emptystar\">"+emptystar+"</span><span class=\"single_star s3 emptystar\">"+emptystar+"</span><span class=\"single_star s4 emptystar\">"+emptystar+"</span><span class=\"single_star s5 emptystar\">"+emptystar+"</span></span>";
		if(topics.length==0)return;
		for(var i=topics.length;--i>=0;)
		{
			if(topics[i].querySelector(".yy")!=null)
				topics[i].querySelector(".yy").insertAdjacentHTML("beforeEnd",starHTML);
			else if(topics[i].querySelector(".main6 td.right_top td[align=\"right\"]"))
				topics[i].querySelector(".main6 td.right_top td[align=\"right\"]").insertAdjacentHTML("afterBegin",starHTML);
		}
		if(layout)
		{
			fid=document.body.getAttribute("class").replace("f","").replace(/( first| last)/,"");
		}
		else
		{
			try
			{
				fid=document.mf.f.value;
			}catch(e)
			{
				fid=document.URL.match(/f=([0-9]+)/);
				fid=fid!=null ? fid[1] : 0;
			}
		}
		$.getJSON(baseurl+"/act.php?act=getSecJson&fid="+fid+"&c="+circuit,function(json)
		{
			var lol;
			for(var i=topics.length;--i>=0;)
			{
				if(topics[i].querySelector(".web a, .mtitle a")==null)continue;
				var id=topics[i].querySelector(".web a, .mtitle a").getAttribute("href").match("t=([0-9]+)");
				id=id[1];
				topics[i].querySelector(".stars").className=topics[i].querySelector(".stars").className.replace(/\ ?loading/,"");
				if(json && "t"+id in json)
				{
					var pt=Math.round(json["t"+id].sum/json["t"+id].tot);
					for(var j=0;j<5;j++)
					{
						if(j<pt)
						{
							var qs=topics[i].querySelector(".stars .s"+(j+1));
							qs.innerHTML=fullstar;
							qs.className=qs.className.replace(/\ ?(emptystar|fullstar)/gi,"")+" fullstar";
						}
						else
						{
							topics[i].querySelector(".stars .s"+(j+1)).innerHTML=emptystar;
						}

					}
				}
			}
		});
	};


	//TOPIC HANDLER
	var topicHandler=function()
	{
		var loadInfos=function(fid,tid)
		{

			if(typeof $.getJSON == "function")
			{
				$.getJSON(baseurl+"/act.php?act=getvote&f="+fid+"&t="+tid+"&c="+circuit,function(res)
				{

					var rr=[0,0,0,0,0];

					if(res!=null && "votes" in res)
					{
						var lol;
						for(lol in res.votes)
						{
							rr[res.votes[lol]-1]++;
						}
						loaded(rr,res.votes);
					}
					else
					{
						loaded(rr,{});
					}
				});
			}
			else
			{
				alert("no JQuery");
			}

		};


		var addEle=null, where="beforeEnd";
		if(layout)
		{
			var txt=document.body.getAttribute("class");
			tid=txt.match(/t([0-9]+)/i);
			fid=txt.match(/f([0-9]+)/i);
			tid=tid ? tid[1] : 0;
			fid=fid ? fid[1] : 0;
			addEle=document.querySelector(".first .post .top .right .Sub.Break");
			where="beforeBegin";
			if(document.body.getAttribute("id")=="blog")
			{
				addEle=document.querySelector(".blog .replies");
				where="beforeBegin";
			}
			else if(addEle==null)
				addEle=document.querySelector(".first .post .top .right"),where="beforeEnd";
		}
		else
		{
			//TODO old layout: get FID, TID and ELE.
			addEle=document.querySelector(".topic .rt");
			where="afterBegin";
			if (addEle==null)
			{
				addEle=document.querySelector("h1.mtitle")
				where="beforeEnd";
			};
			if(document.dform!=null)
			{
				tid=document.dform.t.value;
				fid=document.dform.f.value;
			}
			else
			{
				tid=document.URL.match(/t=([0-9]+)/);
				tid=tid!=null ? tid[1] : 0;
				fid=document.querySelectorAll(".nav li a");
				fid=fid!=null ? fid[fid-length-1] : "f=0";
				fid=fid.match(/f=([0-9]+)/);
				fid=fid!=null ? fid[1] : 0;
			}
		}
		if (addEle!=null)
		{
			var starHTML="<span class=\"stars loading\"><div class=\"pixel_star_tooltip\"><i>Loading</i></div><span class=\"emptystar single_star s1\" onclick=\"PixelStarRatingSystem.vote(1)\" onmouseover=\"PixelStarRatingSystem.hover(1)\" onmouseout=\"PixelStarRatingSystem.hover(0)\">"+emptystar+"</span><span class=\"emptystar single_star s2\" onclick=\"PixelStarRatingSystem.vote(2)\" onmouseover=\"PixelStarRatingSystem.hover(2)\" onmouseout=\"PixelStarRatingSystem.hover(0)\">"+emptystar+"</span><span class=\"emptystar single_star s3\" onclick=\"PixelStarRatingSystem.vote(3)\" onmouseover=\"PixelStarRatingSystem.hover(3)\" onmouseout=\"PixelStarRatingSystem.hover(0)\">"+emptystar+"</span><span class=\"emptystar single_star s4\" onclick=\"PixelStarRatingSystem.vote(4)\" onmouseover=\"PixelStarRatingSystem.hover(4)\" onmouseout=\"PixelStarRatingSystem.hover(0)\">"+emptystar+"</span><span class=\"emptystar single_star s5\" onclick=\"PixelStarRatingSystem.vote(5)\" onmouseover=\"PixelStarRatingSystem.hover(5)\" onmouseout=\"PixelStarRatingSystem.hover(0)\">"+emptystar+"</span></span>";
			if(layout && location==3)
			{
				var starHTML="<span class=\"views star_box\"><a href=\"javascript:void(0);\"><em class=\"star_avg\">"+fullstar+"</em>"+starHTML+"</a></span>";
			}
			addEle.insertAdjacentHTML(where,starHTML);
		};

		loadInfos(fid,tid);
		//setTimeout(function(){loadInfos(0,0);},2000);
	};

	//Vote FX
	var vote=function(stars)
	{
		if(typeof $.post=="function")
		{
			var starss=document.querySelector(".stars");
			starss.className+=" loading";

			var data={
				tid: tid,
				session: auth_session,
				fid: fid,
				vote: stars,
				circuit: circuit,
				domain: domain
			};
			$.post(baseurl+"/act.php?act=vote",data,function(r)
			{
				r=JSON.parse(r);
				var starss=document.querySelector(".stars");
				starss.className=starss.className.replace(/\.?loading/gi,"");
				var rr=[0,0,0,0,0];
				var lol;
				for(lol in r.votes)
				{
					rr[r.votes[lol]-1]++;
				}
				loaded(rr,r.votes);
				starss.querySelector(".star_info").innerHTML=r.message;
			});
		}
		else
		{
			alert("no JQuery");
		}
	};

	//Update chars
	var applyAll=function()
	{
		var emptystars=document.querySelectorAll(".single_star.emptystar");
		var fullstars=document.querySelectorAll(".single_star.fullstar");

		if(emptystars.length>0)
		{
			for(var i=emptystar.length;--i>=0;)
			{
				emptystars[i].innerHTML=emptystar;
			}
		}

		if(fullstars.length>0)
		{
			for(var i=fullstars.length;--i>=0;)
			{
				fullstars[i].innerHTML=fullstar;
			}
		}
	}

	//get mid
	var getmid=function(force)
	{
		var mid=document.querySelector(".menuwrap .nick");
		if(mid!=null && !force)
		{
			mid=mid.parentNode.getAttribute("href").match(/MID=([0-9]+)/i);
			if (mid.length > 0)
			{
				mid=mid[1];
				return mid;
			}
			else
			{
				return getmid(true);
			}
		}
		else
		{
			mid=document.querySelector(".menuwrap a[href*=\"useridsearch=\"], .menuwrap a[href*=\"highlite=\"]");
			mid=mid.getAttribute("href").match(/[0-9]+$/);
			mid=mid[0];
			return mid ? mid : 0;
		}
	};

	//Necesary CSS
	document.head.insertAdjacentHTML("beforeEnd","<style>span.stars {display:inline-block; margin: 0 10px; position:relative} span.stars span.single_star {opacity: 1; -webkit-transition:opacity 0.5s ease; font-weight:bold} span.stars.loading span.single_star {opacity: 0.2} span.stars span.single_star[onclick] {cursor:pointer} @-webkit-keyframes star {0% {opacity: 0.2} 25% {opacity: 1} 50% {opacity: 0.2} 100% {opacity: 0.2}} span.stars.loading span.single_star {-webkit-animation: star 3s infinite ease-in-out} span.stars.loading span.single_star.s1 {-webkit-animation-delay: -2.5s} span.stars.loading span.single_star.s2 {-webkit-animation-delay: -2s} span.stars.loading span.single_star.s3 {-webkit-animation-delay: -1.5s} span.stars.loading span.single_star.s4 {-webkit-animation-delay: -1s} span.stars.loading span.single_star.s5 {-webkit-animation-delay: -0.5s} span.stars div.pixel_star_tooltip {position:absolute; right: 9999px; top: 50%; z-index: 8; margin-top: -10px; padding: 3px 5px; background-color:white; text-align:left; background-color:rgba(255, 255, 255, 0.9); border: 1px #DDD solid; border-radius: 7px; margin-right: 5px; height: 125px; width: 300px} span.stars:hover div.pixel_star_tooltip {right: 110%} span.stars div.pixel_star_tooltip:after, span.stars div.pixel_star_tooltip:before {content:\"\"; display:block; position:absolute; left: 100%; top: 5px; border: 7px white solid; border-right:none; border-top-color:transparent; border-bottom-color:transparent} span.stars div.pixel_star_tooltip:before {margin-left: 1px; border-left-color: #DDD} .stars .pixel_star_tooltip .bar_row {white-space:nowrap; height: 20px; line-height: 20px; position:relative} .stars .pixel_star_tooltip .star_label {font-weight:bold; color:black; display:inline-block; width: 20px; text-align:center} .stars .pixel_star_tooltip .star_bar {position:absolute; top: 0; left: 20px; right: 50px; height: 100%} .stars .pixel_star_tooltip .star_bar .star_bar_rap {position:absolute; top: 3px; left: 0; bottom: 3px; background-color:rgba(0, 0, 0, 0.2); box-shadow:inset 0 0 0 1px rgba(0, 0, 0, 0.3); border-radius: 3px} .stars .pixel_star_tooltip .tot {float:right; width: 50px; text-align:right} .stars .pixel_star_tooltip .star_bar_5 .star_bar_rap {background-color: #81F25E} .stars .pixel_star_tooltip .star_bar_4 .star_bar_rap {background-color: #D5FF68} .stars .pixel_star_tooltip .star_bar_3 .star_bar_rap {background-color: #FDFF60} .stars .pixel_star_tooltip .star_bar_2 .star_bar_rap {background-color: #FFD760} .stars .pixel_star_tooltip .star_bar_1 .star_bar_rap {background-color: #FF7260} .stars .pixel_star_tooltip .bar_row_avg {margin-top: 4px; border-top: 1px #DDD dashed} .stars .pixel_star_tooltip .star_info{text-align:center;margin-left: 10px;}</style>")

	//Define Location (constructor)
	var location=0;
	if (layout)
	{
		switch(document.body.getAttribute("id"))
		{
			case "topic":
			location=1;
			break;
			case "forum":
			location=2;
			break;
			case "blog":
			location=3;
		}
	}
	else
	{
		if (document.URL.search(/t=([0-9]+)$/)!=-1)
		{
			location=1;
		}
		else if(document.URL.search(/f=([0-9]+)$/)!=-1)
		{
			location=2;
		}
		else if(false)
		{
			location=3;
		}
	}

	switch(location)
	{
		case 1:
		topicHandler();
		break;
		case 2:
		sectionHandler();
		break;
		case 3:
		blogHandler();
	}

	//PUBLIC METHODS
	this.getTid=function(){return tid;};
	this.getFid=function(){return fid;};
	this.vote=vote;
	this.setHTMLStars=function(emptystar_l,fullstar_l)
	{
		if (emptystar_l!=null)
		{
			emptystar=emptystar_l;
		};
		if (fullstar_l!=null)
		{
			fullstar=fullstar_l;
		};
		self.hover(0);
		applyAll();
	};
	this.setImageStars=function(emptystar_url,fullstar_url)
	{
		self.setHTMLStars(emptystar_url!=null ? "<img src=\""+emptystar_url+"\" title=\"emptystar\">" : null,fullstar!=null ? "<img src=\""+fullstar_url+"\" title=\"fullstar\">" : null);
	};


	//END DEBUG
	console.log("tid: "+tid);
	console.log("fid: "+fid);
	console.log("mid: "+getmid());
	console.log("location: "+location);
	console.groupEnd();
	this.debugOutput=function()
	{
		console.groupCollapsed("Pixel StarRating Debug Console [at runtime]");
		console.log("MainObject:");
		console.log(self);
		console.log("baseurl: "+baseurl);
		console.log("domain: "+domain);
		console.log("emptystar: "+emptystar);
		console.log("fullstar: "+fullstar);
		console.log("session key: "+auth_session);
		console.log("layout: "+(layout ? "new" : "old"));
		console.log("tid: "+tid);
		console.log("fid: "+fid);
		console.log("mid: "+getmid());
		console.log("location: "+location);
		console.groupEnd();
		return this;
	};
	this.hover=hover;
	this.guide=function()
	{
		//OVERALL
		console.groupCollapsed("Pixel Star Rating Guide");

		console.groupCollapsed("UserManual");
		console.log("In un topic, oppure in un post sul blog, e' possibile votare l'articolo o il topic passando cliccando sulle stelline, selezionando la quantita' che si desidera. Alla pressoine del tasto sinistro, viene inviato il voto. Il voto puo' essere cambiato in un secondo momento, e le modifiche sulla media e' visibile in tempo reale. Nella selezione dei topic (nelle sezioni) o in un blog, ogni articolo o topic mostra la sua valutazione, pero' l'utente non sara capace di assegnare un voto senza aprire il topic/articolo. Lo script e' compatibile con vecchio e nuovo layout (quirks e standard mode).");
		console.groupEnd();

		console.groupCollapsed("DeveloperManual - APIs");
			console.groupCollapsed("Fast Settings");
			console.log("Nel metodo PixelStarRatingSystem.qs() sara possibile inserire un oggetto creato in JSON per impostare velocemente e semplicemente lo StarRating System.");
			console.log("emptystar\t->\tHTML usato per le stelle vuote");
			console.log("fullstar\t->\tHTML usato per le stelle piene");
			console.groupEnd();
			console.groupCollapsed("Instance Methods");
			console.warn("Ogni metodo ha come prefisso PixelStarRatingSystem e puo' essere usato solo dopo l'inserimento dello script");
			console.log(".setHTMLStars(HTML_EMPTYSTAR,HTML_FULLSTAR)\t->\tIl primo parametro indica l'HTML della stelle vuota, mentre il secondo parametro indica l'html della stella piena. Se si vuole cambiare il valore solo di una stella, si puo' usare un null-pointer (null) e il valore rimar' lo stesso.");
			console.log(".setImageStars(URL_EMPTYSTAR,URL_FULLSTAR)\t->\tE' uno shorthand di PixelStarRatingSystem.setHTMLStars('<img src=\"URL_EMPTYSTAR\">','<img src=\"URL_FULLSTAR\">')");
			console.log(".guide()\t->\tStampa questa guida");
			console.log(".debugOutput()\t->\tMostra le informazioni e le variabili raccolte dallo script.");
			console.log(".vote(VOTO[0-5])\t->\tInvia il voto forzatamente (utile per creare dei tasti personalizati, funziona solo nei topic e nei articoli, lo script deve aver riconosciuto tid, fid, circuito, dominio, chiave sessione per il corretto funzionamento.");
			console.groupEnd();		
		console.groupEnd();

		console.groupEnd();
	};
};

PixelStarRatingSystem = new PixelStarRatingSystem();