var xPos = 0;
var yPos = 0; 
var month, year,return_el;

document.onmousedown = XY;
	if (window.Event) {
    document.captureEvents(Event.CLICK);
  }
  
function XY(e) {
  xPos = (window.Event) ? e.pageX : event.clientX;
  yPos = (window.Event) ? e.pageY : event.clientY;
  
}

var Request = {
	Do: function (url,opt) { 
	 // document.body.style.cursor = 'wait';
      var req = window.XMLHttpRequest ?  new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
        if(req) {
        	req.onreadystatechange = function() {
        		if (req.readyState == 4) {
        			//document.body.style.cursor = 'auto';
	    	       if(req.status==404){
        	           if(opt.on404) new opt.on404(req); else Request.onError(req.statusText);
         	       } else if(req.status==200){
        		       if(opt.onSuccess) new opt.onSuccess(req);
        	       } else {
        		       if(opt.onError) new opt.onError(req); else Request.onError(req.statusText);
        	       }
                }	
        	}
            req.open('POST', url, true);
            req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
            req.send(opt.data);
        } else alert("XMLHttpRequest object error.")
	},

	onError: function (msg) { 
		alert('There was a problem retrieving the XML data:\n'+msg);
	}
}

function $(id) {
	return document.getElementById(id);
}

function Calendar(el,m,y) {
	
	opt = {
    	data: 'el='+el+'&m='+m+'&y='+y,
    
    	on404: function(r) {
    		alert(r.statusText);
    	},
    	onSuccess: function(r) {
    		tmp = $('calendar');
    		tmp.innerHTML = r.responseText;
    		tmp.style.display = '';
    		
    		
    	},
        onError: function(r) {
        	alert('Error: '+r.status)
        }
    }
    tmp = $('calendar');
   	if(tmp.style.display=='none') {
   	 tmp.style.top = yPos;
     tmp.style.left = xPos;
   	}
    
	new Request.Do('./mods/Calendar.md.php',opt);
}

function mkCalendar(m,style) {
	
	opt = {
    	data: 'm='+m+'&style='+style,
    	onSuccess: function(r) {
    		tmp = $('MainCalendar');
    		tmp.innerHTML = r.responseText;
    	}
    }
	new Request.Do('./mods/MainCalendar.md.php',opt);
}

function getDay(td) {
	day = td.title.split('-');
	window.location.replace('?External,Day,'+day[1]+','+day[2]);
}

function readForm(f) {
		var data = ''; form = $(f);
	for(i=0;i<form.elements.length;i++)
               {
                if(form.elements[i].name)
                 {
                  if(form.elements[i].type=='checkbox' || form.elements[i].type=='radio') data+=(form.elements[i].checked==true) ? form.elements[i].name+'='+form.elements[i].value+'&' : '';
                  else data+=form.elements[i].name+'='+form.elements[i].value+'&';
                 }
               }
       return data;        
}

function addComment(id) {
	f = $('addComment');
	data = readForm(f.id);
	
	opt = {
    	data: data,
    	onSuccess: function(r) {
    		answ = r.responseText.split('::');
    		if(answ[0]==1) {
    			f.reset();
    			$('commentsContainer').innerHTML += answ[1];
    			$('commentsTotal').innerHTML = parseInt($('commentsTotal').innerHTML)+1;
    			alert('Добавлено!');
    		} else alert(r.responseText);
    		
    	}
    }
	new Request.Do('?Comments,'+id+',Add',opt);
	return;
}

function addQuestion(id) {
	f = $('addQuestion');
	data = readForm(f.id);
	
	opt = {
    	data: data,
    	onSuccess: function(r) {
    		answ = r.responseText.split('::');
    		if(answ[0]==1) {
    			f.reset();
    			$('questionsContainer').innerHTML += answ[1];
    			$('questionsTotal').innerHTML = parseInt($('questionsTotal').innerHTML)+1;
    			alert('Добавлено!');
    		} else alert(r.responseText);
    		
    	}
    }
	new Request.Do('?Questions,'+id+',Add',opt);
	return;
}
//Calendar fns

      function insert_date(el,cell) {
      	D = new Date();
            if($(el)) $(el).value = cell.title+' '+D.getHours()+':'+(D.getMinutes()<10 ? '0'+D.getMinutes() : D.getMinutes());
            else alert('Element Error');
      }
      