var obj=null;
var offsetX;
var offsetY;

var moveY = 0;

onload=function () {

	nextCalendar(loadCookie('year') , loadCookie('month'));
	setLabel(loadCookie('year') , loadCookie('month'));
	
	o = document.getElementById("calendar");
	o.onmousedown = onMouseDown;
   
	document.onmousemove = onMouseMove;
	document.onmouseup = onMouseUp;
}

function onMouseDown(e) {
   obj = this;
   if (document.all) {
      offsetX = event.clientX - obj.style.left.substr(0,obj.style.left.length-2);
      offsetY = event.clientY - obj.style.top.substr(0,obj.style.top.length-2);
   } else if (obj.getElementsByTagName) {
      offsetX = e.pageX - parseInt(obj.style.left);
      offsetY = e.pageY - parseInt(obj.style.top);
   }
   
   return false;
}
function onMouseMove(e) {
	
	if (!obj) {
		return true;
	}
   	
	if (document.all) {
   	
		obj.style.left = (event.clientX - offsetX) + 'px';
	} else if (obj.getElementsByTagName) {
		obj.style.left = e.pageX - offsetX + 'px';
		
		//		obj.style.top = e.pageY - offsetY + 'px';
		
//		$('debug').innerHTML = "e.pageY=" + e.pageY ;
//		$('debug').innerHTML += " offsetY=" + offsetY ;
//		$('debug').innerHTML += " e.pageY - offsetY=" + (e.pageY - offsetY); 
//		
//		if(e.pageY - offsetY > 20){
//			
//			moveY++;
//		}else if(e.pageY - offsetY < -20){
//			
//			moveY--;
//		}
	}
   
	return false;
}

function onMouseUp(e) {
	
	if(moveY != 0){
		$('debug').innerHTML += " moveY=" + moveY;
//		obj.style.top = parseInt(obj.style.top) + moveY + 'px';
		$('debug').innerHTML += " obj.style.top=" + obj.style.top;
	}
	
	obj = null;
}


//-jax-------------------------------------------------------------

function nextCalendar(y,m){
	
	id = y+'/'+m ; 
	if($(id)){
		return false;
	}
	
	var url = '/calendar.php';
	var pars = 'y=' + y + '&m=' + m + '&url=' + escape(location.href);

	var myAjax = new Ajax.Request( url, 
				{ method: 'get', parameters: pars, onComplete: addNext }
	);
}

function addNext(originalRequest) {
	
	//put returned XML in the textarea
    var td = document.createElement('td');
    td.innerHTML = originalRequest.responseText;
    
	$('area').appendChild(td);
}

function beforeCalendar(y,m){
	
	id = y+'/'+m ; 
	if($(id)){
		return false;
	}
	
	var url = '/calendar.php';
	var pars = 'y=' + y + '&m=' + m + '&url=' + escape(location.href);

	var myAjax = new Ajax.Request( url, 
				{ method: 'get', parameters: pars, onComplete: addBefore }
	);
}

function addBefore(originalRequest) {
	
	//put returned XML in the textarea
    var td = document.createElement('td');
    td.innerHTML = originalRequest.responseText;
    
	cal = $('calendar');
	
  	$('area').insertBefore(td,$('area').firstChild);
    
	move = cal.style.left.substr(0,cal.style.left.length-2) - td.firstChild.clientWidth + 'px';  
	cal.style.left = move;
}

function load(y,m) {
	
	//add before
	if(m==1){
		beforeCalendar(y-1,12);
	}else{
		beforeCalendar(y,m-1);
	}
	
	//add next
	if(m==12){
		nextCalendar(y+1,1);
	}else{
		nextCalendar(y,m+1);
	}
	
}

//-cokkie------------------------------------------------------------
function setLabel(y,m){
	$('label').innerHTML = y + '/' + m;
	
	setCookie('year',y,10);
	setCookie('month',m,10);
}

//-cokkie------------------------------------------------------------
function loadCookie(arg){
	if(arg){
		cookieData = document.cookie + ";" 
		startPoint1 = cookieData.indexOf(arg);
		startPoint2 = cookieData.indexOf("=",startPoint1)+1;
		endPoint = cookieData.indexOf(";",startPoint1);

		if(startPoint2 < endPoint && startPoint1 > -1){
			cookieData = cookieData.substring(startPoint2,endPoint);
			cookieData = cookieData;
			return cookieData;
		}
	}
	
	return false;
}

function setCookie(myCookie,myValue,myDay){
   myExp = new Date();
   myExp.setTime(myExp.getTime()+(myDay*24*60*60*1000));
   myItem = myCookie + "=" + escape(myValue) + ";";
   myExpires = " path=; expires="+myExp.toGMTString();
   document.cookie =  myItem + myExpires;
}