$j= jQuery.noConflict();
$j(document).ready(function () {
	riduttore=0;
	sprayPress="off";
	sprayIn="no";
	dataPoints= new Array();
	//array che mando a INCA
	dataToSend=new Array();
	color=0;
	lastPoint=null;
	var colors=['rgba(255,102,51,1)',// 0:red
				'rgba(39,206,236,1)',// 1: blue
				'rgba(80,227,0,1)',//2: green
				'rgba(255,246,0,1)'//3:yellow
				];
	
	var container = $j("#containerSpray");
    var paper = new Raphael(
        container.get(0),
        container.width(), 
        container.height());
		
		
		retrieveData();
		
				
		





/*
* funzioni
*/


	function arrayTop(arrayVar)
	{
		if (arrayVar.length>0 )
		{
			
		 	lastPoint  = arrayVar[arrayVar.length-1];
			if(lastPoint.End!="yes")
			{
				return lastPoint;
			}
		}
	
		return null;
		
	}
	$j("#bt_Hype").click(function(){
		$j("#containerSpray").css("cursor","url('./images/bonza_arancio.ico'),auto");
		color=0;	
	});
	$j("#bt_Feed").click(function(){
		$j("#containerSpray").css("cursor","url('./images/bonza_azzurra.ico'),auto");
		color=1;
	});
	$j("#bt_Code").click(function(){
		$j("#containerSpray").css("cursor","url('./images/bonza_verde.ico'),auto");
		color=2;	
	});
	$j("#bt_Look").click(function(){
		$j("#containerSpray").css("cursor","url('./images/bonza_gialla.ico'),auto");
		color=3;	
	});
	
   	function sendData()
	{
		if(dataPoints.length>0)
		{
			//data.slice(0);
			dataToSend= dataToSend.concat(dataPoints);
			
			dataToSendJson=$j.JSON.encode(dataToSend);
		//	$j('#console').append(dataToSendJson);
			$j.ajax({ 
				     url: './handlers/spray_handler.php', 
				     type:'POST', 
				     data: 'op=write&data='+dataToSendJson,   
				     
				     beforeSend: function() {}, 
				     success: function(result) { 
				         // alert(result.Result); 
				        //alert(result);
						if(result.status !="error")
						{
							//lo pulisco
							dataToSend =new Array();
						}
				     } 
			});
			
		}
	
	}
	function redraw()
	{
		while(dataPoints.length>0)
		{
				var point=dataPoints.pop();
			//	$j('#console').append("<div>- x:"+point.X+" y:"+point.Y+" color:"+point.Color+" end:"+point.End+"</div>");
				paint(point.X,point.Y,point.Color,point.End);
			
		}
		// lo pulisco?
		dataPoints= new Array();
	}
	function retrieveData()
	{
		$j.ajax({ 
			     url: './handlers/spray_handler.php', 
			     type:'POST', 
			     data: 'op=load',   
			     
			     beforeSend: function() {}, 
			     success: function(result) { 
				//	alert(result);
			        var resultArray=$j.JSON.decode(result);
					if(resultArray.status !="error")
					{
						if(window.location.href.indexOf('home') == -1 )
						{	
							//$j("#header").append('<div id=""><img id="MCPimage" style="display: block;position:absolute;top:0;z-index:3;" src="'+resultArray.data+'"/></div>');
							$j("#header").append('<div id="MCPimage" style="position:absolute;top:0;z-index:3;"><img src="'+resultArray.data+'"/></div>');
						}
						
					}
			     } 
		});
		
	/*	var count=0;
		$j.ajax({ 
			url: 'http://www.blacktrend.com/bt/handlers/spray_handler.php', 
			type:'POST', 
			data: 'op=count',   

			beforeSend: function() {}, 
			success: function(result) { 
				//alert(result);
				var resultArray=$j.JSON.decode(result);
	       		//alert(resultArray.status);
				if(resultArray.status!="error")
				{
					count=resultArray.data;
				}
				for(i=0;i<count; i++){
					$j.ajax({ 
						     url: 'http://www.blacktrend.com/bt/handlers/spray_handler.php', 
						     type:'POST', 
						     data: 'op=read&param='+i,   

						     beforeSend: function() {}, 
						     success: function(result) { 
						        //alert(result);
						 		var resultArray=$j.JSON.decode(result);
						        //alert(resultArray.status);
								dataPoints =$j.JSON.decode(	resultArray.data);

								redraw();
						     } 
						});
					}
				
				

			//	redraw();
			} 
			
	});*/
	
	
	
		
	}
	
	function paint(ixs,ypsilon,actualColor)
	{
		lastPoint = arrayTop(dataPoints);
		if(lastPoint!=null)
		{
			var c = paper.path("M"+lastPoint.X+" "+lastPoint.Y+"L"+ixs+" "+ypsilon);
			c.attr("stroke", colors[actualColor]);
			c.attr("stroke-width", "5");
			c.attr("stroke-linecap", "round");
			c.attr("stroke-linejoin", "bevel");
			
		}

	}
	
   	$j("#clearSpray").click(function(){
			paper.clear();	
		}
	);
	$j("#sendDataSpray").click(function(){
			sendData();	
		}
	);
	
	$j("#redraw").click(function(){
			
			 retrieveData();
		}
	);
	
	$j("#containerSpray").mousedown(function(){
		sprayPress="on";	
	});
	$j("body").mouseup(function(){
		sprayPress="off";
		
	//	$j('#console').append("<div>- x:"+point.X+" y:"+point.Y+" color:"+point.Color+" end:"+point.End+"</div>");
	//	$j('#console').append("<div>&nbsp;</div>");
	//	$j('#console').append("<div>&nbsp;</div>");
	});
	$j("#containerSpray").mouseup(function(){
		sprayPress="off";
		dataPoints[dataPoints.length-1].End="yes";	
		var point= dataPoints[dataPoints.length-1];
		sendData();
	//	$j('#console').append("<div>- x:"+point.X+" y:"+point.Y+" color:"+point.Color+" end:"+point.End+"</div>");
	//	$j('#console').append("<div>&nbsp;</div>");
	//	$j('#console').append("<div>&nbsp;</div>");
	});
	$j("#containerSpray").mouseleave(function(){
		sprayIn="no";
		dataPoints[dataPoints.length-1].End="yes";	
		var point= dataPoints[dataPoints.length-1];
		sendData();
	//	$j('#console').append("<div>- x:"+point.X+" y:"+point.Y+" color:"+point.Color+" end:"+point.End+"</div>");
	//	$j('#console').append("<div>&nbsp;</div>");
	//	$j('#console').append("<div>&nbsp;</div>");
	});
	$j("#containerSpray").mouseenter(function(){
		sprayIn="yes";
	});
	$j("#containerSpray").mousemove(function(e){
		var offset=$j("#containerSpray").offset();
		var x=(e.pageX-offset.left);
		var y=( e.pageY-offset.top);
	   // $j('#status').html(x +', '+y);
		
		if(sprayPress=="on"&&sprayIn=="yes"){
		
		//	$j('#console').append("<div>- x:"+x+" y:"+y+" color:"+color+" end:"+"no"+"</div>");
			if(riduttore % 5)
			{	
				paint(x,y,color);
				dataPoints.push({X:x,Y:y,Color:color,End:"no"});
				if(riduttore==100)
				{
					riduttore=0;
				}
			}
			riduttore++;
		}
		
		
		
	}); 

    
   

		


});
