var divPrev  = 'prev_table';
var divPrevx = 'prev_tablex';
var divCurr  = 'cal_table';
var divNext  = 'next_table';
var divNextx = 'next_tablex';
var prevUrlx = 'prev_urlx';
var prevUrl  = 'prev_url';
var currUrl  = 'curr_url';
var nextUrl  = 'next_url';
var nextUrlx = 'next_urlx';

function popenurl(url, id, imgids) {
	if (imgids != null)
	    setImagesEnable(imgids, false);

	new Ajax.Request(url,   {     
		method:'get',     
		onSuccess: function(transport){
			if (imgids != null)
				setImagesEnable(imgids, true);
			var response = transport.responseText || "no response text";
			if (id != null) {
				$(id).innerHTML = response;
				response.evalScripts();
			}
		},     
		onFailure: function(){ alert('Something went wrong...') }   
});
} 

function loadNewPageToDiv(e, isNext, imgids, isWeekIn2Weeks) {
	if (getKeyCode(e) == 9) // Tab key has code 09
		return;
	isWeekIn2Weeks = (typeof(isWeekIn2Weeks) != 'undefined') ? isWeekIn2Weeks : false;
	var is2Weeks = (imgids.length > 4);
	if (isNext) {                                      
		if ($(divNext).innerHTML == "" || is2Weeks && $(divNextx).innerHTML == "") {
			return;
		}
		if (isWeekIn2Weeks) {
			$(divPrev).innerHTML  = $(divPrevx).innerHTML;
			$(divPrevx).innerHTML = $(divCurr).innerHTML;
			$(divCurr).innerHTML  = $(divNextx).innerHTML;
			$(divNextx).innerHTML = $(divNext).innerHTML;
			$(divNext).innerHTML  = "";
		} else {
			$(divPrev).innerHTML = $(divCurr).innerHTML;
			$(divCurr).innerHTML = $(divNext).innerHTML;
			$(divNext).innerHTML = "";
			if (is2Weeks) {
				$(divPrevx).innerHTML = $(divNextx).innerHTML;
				$(divNextx).innerHTML = "";
			}
		}

		$(divCurr).innerHTML.evalScripts();
		var div = findElementInDiv("div", divCurr, nextUrl); 
		var url = div.innerHTML + ";dry=1";
		popenurl(url, divNext, imgids);
		if (isWeekIn2Weeks || is2Weeks) {
			div = findElementInDiv("div", divCurr, nextUrlx); 
			url = div.innerHTML + ";dry=1";
			popenurl(url, divNextx, imgids);
		}
		
	} else {
		if ($(divPrev).innerHTML == "" || is2Weeks && $(divPrevx).innerHTML == "") {
			return;
		}
		if (isWeekIn2Weeks) {
			$(divNext).innerHTML  = $(divNextx).innerHTML;
			$(divNextx).innerHTML = $(divCurr).innerHTML;
			$(divCurr).innerHTML  = $(divPrevx).innerHTML;
			$(divPrevx).innerHTML = $(divPrev).innerHTML;
			$(divPrev).innerHTML  = "";
		} else {
			$(divNext).innerHTML = $(divCurr).innerHTML;
			$(divCurr).innerHTML = $(divPrev).innerHTML;
			$(divPrev).innerHTML = "";
			if (is2Weeks) {
				$(divNextx).innerHTML = $(divPrevx).innerHTML;
				$(divPrevx).innerHTML = "";
			}
		}

		$(divCurr).innerHTML.evalScripts();
		var div = findElementInDiv("div", divCurr, prevUrl); 
		var url = div.innerHTML + ";dry=1";
		popenurl(url, divPrev, imgids);
		if (is2Weeks) {
			div = findElementInDiv("div", divCurr, prevUrlx); 
			url = div.innerHTML + ";dry=1";
			popenurl(url, divPrevx, imgids);
		}
	}
		var div = findElementInDiv("div", divCurr, currUrl); 
		var url = div.innerHTML;
		popenurl(url, null, null);
} 

function findElementInDiv(tag, divid, elemid) {
	var elem = null;
    
	var x = (divid != null)?($(divid).getElementsByTagName(tag)):(document.getElementsByTagName(tag));
	for (var i = 0; i < x.length; i++) {
		if (x[i].id == elemid) {
			elem = x[i];
			break;
		}
	}
	return elem;
}

function setImageEnable(image, value) {
	if (image == null) {
		return;
	}
	if (value) {
		image.style.filter="alpha(opacity=100)";
		image.style.opacity=1;
		image.style.cursor="pointer";
	} else {
		image.style.filter="alpha(opacity=40)";
		image.style.opacity=0.4;
		image.style.cursor="wait";
	}
	
}

function setImagesEnable(imgids, value) {
	if (imgids == null) {
		return;
	}
	var image;
	for (var i = 0; i < imgids.length; i++) {
		image = findElementInDiv("img", divCurr, imgids[i]);
		setImageEnable(image, value);
	}
}

function hideShowFavorites(url) {
	var favorites = findElementInDiv("div", divCurr, 'favorites');
	var isShow = (favorites.style.display=="none");
	url += ";show_favorites=" + ((isShow)?"1":"0");
	new Ajax.Request(url,   {     
		method:'get',     
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON();
			if (json.status != "ok") {
				alert("favorites error");
				return;
			}
		},     
		onFailure: function(){ alert('hideShowFavorites: Something went wrong...') }   
	});
	var hideCalList = findElementInDiv("img", divCurr, 'hideCalList');
	var hideCalListText = findElementInDiv("a", divCurr, 'hideCalListText');

	favorites.style.display=(isShow)?"inline":"none";
	hideCalList.src = (isShow)?"images/hideCalList.gif":"images/showCalList.gif";
	hideCalListText.innerHTML = ((isShow)?"Hide":"Show") + "<br>Calendar<br>Lists<br>";

}

function openQuickCreate(year, month, day, hour, minute, side) {
	var div = findElementInDiv("div", null , 'quick_create');
	var width ="200";
	var height="200";
	var top  = (((window.innerHeight)?window.innerHeight:document.body.offsetHeight) - height)/2;
	var left  = (((window.innerWidth)?window.innerWidth:document.body.offsetWidth) - width)/2;
	div.style.top = top;
	div.style.left = left;
	div.style.width = width;
	div.style.height = height;
	div.style.display = "inline";
	div.style.visibility = "visible";
	div.style.border = "1px solid #000";
	var frame = findElementInDiv("iframe", null, 'quick_frame');
	frame.style.width = width;
	frame.style.height = height;
	frame.style.border = "0px solid #000";
	
	$('start_'+hour).selected = true;
	$('start_'+((minute == 0)?'00':minute)).selected = true;
  
	quickCreate.updateCalendar(year, month, day);

	quickCreate._calMM = month;
	quickCreate._calDD = day;
	quickCreate._calYYYY = year;
  
	

}
