userCal = function(id, containerId, user, monthyear, selected) {
	if (arguments.length > 0)
	{
		YAHOO.widget.Calendar_Core.call(this, id, containerId, monthyear, selected);
	}
	this.user = user;
	userCal.URL = userCal.URL + "u=" + user;
	this.fetch = function(){
		var start = new Date(this.pageDate.getTime());

		var end = YAHOO.widget.DateMath.findMonthEnd(this.pageDate);
		end = YAHOO.widget.DateMath.add(end, YAHOO.widget.DateMath.DAY, 1);

		var minDate = start.getFullYear() + "-" + (start.getMonth()+1) + "-" + start.getDate();
		var maxDate = end.getFullYear() + "-" + (end.getMonth()+1) + "-" + end.getDate();

		var url = userCal.URL + 
					"&min_date=" + minDate + 
					"&max_date=" + maxDate;
		userCallBack = {
			success : this.processBotsbotRequest,
			failure : this.failBotsbotRequest,
			argument: null,
			scope : this
		}
		//alert("sending: " + url)
		var cObj = YAHOO.util.Connect.asyncRequest('GET',url,userCallBack,null);
	}
	
	this.previous = function() {
		this.previousMonth();
		this.fetch();
	}
	
	this.next = function() {
		//alert("next");
		this.nextMonth();
		this.fetch();
	}	
}

userCal.prototype = new YAHOO.widget.Calendar_Core();
userCal.prototype.constructor = userCal;
userCal.superclass = YAHOO.widget.Calendar_Core.prototype;

userCal.URL = "http://www.botsbot.com/api/usercalendar.php?";

userCal.prototype.customConfig = function(){
	this.Config.Locale.MONTHS_SHORT = ["Jan", "Feb", "M?r", "Apr", "Mai", "Jun",
	"Jul", "Aug", "Sep", "Okt", "Nov", "Dez"];

	this.Config.Locale.MONTHS_LONG = ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu",
	"Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu",
	"Joulukuu"];

	this.Config.Locale.WEEKDAYS_1CHAR = ["S", "M", "T", "K", "T", "P", "L"];

	this.Config.Locale.WEEKDAYS_SHORT = ["Su","Ma", "Ti", "Ke", "To", "Pe", "La"];

	this.Config.Locale.WEEKDAYS_MEDIUM = ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"];

	this.Config.Locale.WEEKDAYS_LONG =["Sonntag", "Montag", "Dienstag", "Mittwoch",
	"Donnerstag", "Freitag", "Samstag"];

	this.Config.Options.START_WEEKDAY = 1;
}


userCal.prototype.buildMonthLabel = function() {
	var text = this.Config.Options.LOCALE_MONTHS[this.pageDate.getMonth()] + " " + this.pageDate.getFullYear();
	return text;
}

userCal.prototype.renderHeader = function() {
	this.headerCell.innerHTML = "";
	this.headerCell.appendChild(document.createTextNode(this.buildMonthLabel()));
}


userCal.prototype.failBotsbotRequest = function() {
	alert("calender request failed");
}

userCal.prototype.processBotsbotRequest = function() {

	var xmlHttp = arguments[0];
	var xml = xmlHttp.responseXML;

	var calendar = this;

	//var photos = xml.documentElement.getElementsByTagName("photo");
	var point = xml.documentElement.getElementsByTagName('dayinfo');
	var len = point.length;
	for (i=0;i<len;i++) {
		var day = xml.documentElement.getElementsByTagName('day')[i].firstChild.data;
		var count = xml.documentElement.getElementsByTagName("count")[i].firstChild.data;
		//var lasttime = xml.documentElement.getElementsByTagName("lasttime")[i].firstChild.data;
		//alert("got loc: " + loc);
		//alert("9 " +lasttime);
		//var d = new Date();
		//var millisec = lasttime * 1000;
		//d.setTime(millisec);
		
		//var month = d.getMonth() + 1;
		//var day = d.getDate();
		
		//if (month.toString().length == 1)
		//{
		//	month = "0" + month;
		//}

		//if (day.toString().length == 1)
		//{
		//	day = "0" + day;
		//}
		//var daystring = d.getFullYear() + "-" + month + "-" + day;
		var ar = day.split("-");
		var daystring = ar[1] + "/" + ar[2] + "/" + ar[0];
		//alert(daystring);
		calendar.addRenderer(daystring, calendar.renderCellStyleHighlight3);
		//if (! calendar.photoHash[day])
		//{
			//alert("day: " + day + ", " + count);
		//	calendar.photoHash[day] = {
		//		count : count
		//	}

		//}
	}

	
	//calendar.addRenderer("3/15/2006", calendar.renderBodyCellRestricted);
	calendar.render();
}

userCal.prototype.renderOutOfBoundsDate = function(workingDate, cell) {
	this.clearElement(cell);
	cell.style.backgroundImage = "";
	return YAHOO.widget.Calendar_Core.prototype.renderOutOfBoundsDate.call(this, workingDate, cell);
}

userCal.prototype.renderCellNotThisMonth = function(workingDate, cell) {
	this.clearElement(cell);
	cell.style.backgroundImage = "";

	return YAHOO.widget.Calendar_Core.prototype.renderCellNotThisMonth.call(this, workingDate, cell);
}

