var dbg;
var opos,offx,offy,subx,suby;
var jg;
cache_obj = new Object();
var recent_dot;
nobasi_x = 0;
nobasi_y = 0;
dot_num = 0;
IE = (navigator.appName == "Microsoft Internet Explorer")?1:0;
if (window.opera){IE = 0}
var mpath   = '';

function jsd_canvas(o){
	this.canvasObj=o.canvasObj || document.getElementById('cvs');
	this.nowX = 0;
	this.nowY = 0;
	this.kitenX = 0;
	this.kitenY = 0;
	this.isIE = (navigator.appName == "Microsoft Internet Explorer")?1:0;
	this.line_number = 0;
	return this;
}

function jsd_control(o){
	this.canvas = o.canvas;
	this.nowX = 0;
	this.nowY = 0;
	this.mdown = 0;
	this.LogX = new Array();
	this.LogY = new Array();
	return this;
}

jsd_control.prototype = {
	mousedown:function(e){
		this.mdown = 1;
		this.LogX[this.canvas.line_number] = "";
		this.LogY[this.canvas.line_number] = "";
	},
	mouseup:function(){
		this.mdown = 0;
		if(this.LogX[this.canvas.line_number]!=""){
			this.canvas.line_number++;
		}
		this.kitenX=-1;
		this.kitenY=-1;
		//dbg.innerHTML='up';
	},
	mousemove : function (e,obj){
		xtmp=e.pageX-subx;
		ytmp=e.pageY-suby;
		//dbg.innerHTML=xtmp+':'+ytmp;
		if(this.mdown){
			with(obj){
//				nowX = e.pageX-offx;
//				nowY = e.pageY-offy;
				nowX=e.pageX;
				nowY=e.pageY;
				LogX[canvas.line_number] += xtmp + ",";
				LogY[canvas.line_number] += ytmp + ",";
				if(this.kitenX>=0){
//					jg.setColor("#000000");
					jg.drawLine(this.kitenX,this.kitenY,nowX,nowY);
					jg.paint();
				}
				this.kitenX=nowX;
				this.kitenY=nowY;
			}
		}
	},
	addEvent : function(obj, type, listener) {
		if (obj.addEventListener) // Std DOM Events
			obj.addEventListener(type, listener, false);
		else if (obj.attachEvent) // IE
			obj.attachEvent(
				'on' + type,
				function() { listener( {
					type            : window.event.type,
					keyCode         : window.event.keyCode,
					target          : window.event.srcElement,
					currentTarget   : obj,
					clientX         : window.event.clientX,
					clientY         : window.event.clientY,
					pageX           : document.documentElement.scrollLeft+ window.event.clientX,
					pageY           : document.documentElement.scrollTop + window.event.clientY,
					shiftKey        : window.event.shiftKey,
					stopPropagation : function() { window.event.cancelBubble = true }
				} ) }
			);
	}
};

var JSD_CONTROL = new jsd_control({
	canvas :jsd_canvas({
			
		})
});

window.onload = function(){
	with(JSD_CONTROL){
		addEvent(canvas.canvasObj,'mousedown',function(e){mousedown(e,JSD_CONTROL)})
		addEvent(canvas.canvasObj,'mouseup',  function(e){mouseup(e,JSD_CONTROL)})
		addEvent(canvas.canvasObj,'mousemove',function(e){mousemove(e,JSD_CONTROL)})
		//addEvent(document.getElementById('body'),'mouseover',function(e){mouseup(e,JSD_CONTROL)});
	}
	dbg=document.getElementById('debug');
	jg=new jsGraphics(document.getElementById('cvs'));
	jg.setColor("#000000");
	jg.setStroke(2);
	getOffset();
	//document.getElementById('error_message').innerHTML=navigator.appVersion;
}

function getOffset(){
	opos=getPosition(document.getElementById('cvs'));
	cpos=getPosition(document.getElementById('content'));
//	offx=document.getElementById('content').offsetLeft;
//	offy=document.getElementById('content').offsetTop;
	offx=cpos.x;
	offy=cpos.y;
	subx=opos.x;
	suby=opos.y;
}

function getPosition(obj){
	var l=0;
	var t=0;
	while(obj.offsetParent){
		l+=obj.offsetLeft;
		t+=obj.offsetTop;
		obj=obj.offsetParent;
	}
	l+=obj.offsetLeft;
	t+=obj.offsetTop;
	return{x:l,y:t};
}

