function goo(){
	var sF=$('searchForm');
	location.href=sF.action+"?"+sF.serialize();
}
function evalExp(str){
	var result=eval(str)
	if(!isNaN(result)){
		showResult(str,result);
	}
}
function hardWordWrap($q){
	var $result="";
	for(var $i=0;$i<$q.length;$i++){
		if (Prototype.Browser.IE){
			$result+=$q[$i]+'<span style="width:0em;"></span>';
		}else{
			$result+=$q[$i]+'&#8203;';
		}
	}
	return $result;
}
function zeroFill(q){return String(q).length==1?"0"+q:q}
function showResult(str,result){
	allResults.update(hardWordWrap(str));
	rollResult.update(result);
	roll.show();
	var now=new Date();
	var now_str=(
		zeroFill(now.getDate())+
		'/'+
		zeroFill(now.getMonth()+1)+
		'/'+
		String(now.getFullYear()).substr(2,4)+
		' '+
		zeroFill(now.getHours())+
		':'+
		zeroFill(now.getMinutes())+
		':'+
		zeroFill(now.getSeconds())
	);
	logLanciText.insert({
		top:new Element("div").update(now_str+' | '+expression.innerHTML.stripTags()+roll.innerHTML.stripTags()).setStyle({borderBottom:'1px solid #ccc'})
	});
	if(rollResult.select)rollResult.select();
}
function MephitRoller(str){
	var reg=/\d+d\d+/g;
	while(str.match(reg)){
		var arr=str.match(reg);
		if(arr){
			var matched=arr[arr.length-1];
			var index=str.lastIndexOf(matched);
			var r=0;
			var t=matched.split("d");
			
			for(j=0;j<t[0];j++){
				r+=Math.floor(Math.random()*t[1])+1;
			}
			str = str.substring(0,index) + r + str.substring(index+matched.length,str.length) ;
		}
	}
	evalExp(str);
}
function MephitQuanticRoller(){
	var q=expression.innerHTML.stripTags();
	q=q.split(String.fromCharCode(247)).join("/").split(String.fromCharCode(215)).join("*").split("d%").join("d100");
	var useQuantic=true;
	var str=q.toLowerCase().replace(/(\D)+0+d\d+/g,'$10').replace(/^0+d\d+/g,0);
	var reg=/\d+d\d+/g;
	if(!useQuantic){
		MephitRoller(str);
	}else{
		var arr=str.match(reg)
		if(arr){
			//$('c').disabled=1;
			//$('r').disabled=1;
			loading.show();
			blockClick.show();
			stsMsg("loading");
			roll.hide();
			spiegazione.hide();
			
			var dices=[];
			for(var i=0;i<arr.length;i++){
				var t=arr[i].split("d");
				for(j=0;j<t[0];j++){
					dices[dices.length]=t[1];
				}
			}
			var p={time:new Date().getTime()}
			for(var i=0;i<dices.length;i++){
				p["dices["+i+"]"]=dices[i];
			}
			new Ajax.Request("quantic.php",{
				method:'get',
				parameters:p,
				onSuccess:function(transport){
					var lanci=eval(transport.responseText);
					
					var i=0;
					while(str.match(reg)){
						var arr=str.match(reg)
						var matched=arr[arr.length-1];
						var index=str.lastIndexOf(matched);
						var r=0;
						var t=matched.split("d");
						
						var str_r=[]
						for(j=0;j<t[0];j++){
							r+=lanci[i];
							str_r[str_r.length]=lanci[i];
							i++;
						}
						str = str.substring(0,index) + "(" + str_r.join("+") + ")" + str.substring(index+matched.length,str.length) ;
					}
					
					evalExp(str);
					roll.show();
				},
				onFailure:function(){
					MephitRoller(str);
				},
				onComplete:function(){
					//$('c').disabled=0;
					//$('r').disabled=0;
					loading.hide();
					blockClick.hide();
					stsMsg("step0");
				},
				onException:function(req,exc){
					alert(exc); 
				}
			});
		}else{
			try{
				var r=eval(str);
				if(!isNaN(r))evalExp(str);
				else roll.hide();
			}catch(e){
				roll.hide();
			}
		}
	}
}
