// this file is for the calendarPicker
var objContainer;
var objInput;
var objXmlHttp;
var strCallBackFunction;
var intError = 0;

// document.onmousemove	= HideCalendar;
document.onmousedown	= GetMouseCoordinates;

var mouseX = 0;
var mouseY = 0;
var strEv  = "";

function GetMouseCoordinates(e) {
	var IE = document.all ? true : false;

	if (!IE) document.captureEvents(Event.MOUSEMOVE);
	if (IE) {
		mouseX = event.clientX + document.body.scrollLeft;
		mouseY = event.clientY + document.body.scrollTop;
		strEv  = window.event.srcElement.id;
	} else {
		mouseX = e.pageX;
		mouseY = e.pageY;
		strEv  = e.target.id;
	}
};

function GetMouseClick(event) {
	if (objContainer.style.visibility == "visible") {
		objContainer.style.visibility 	= "hidden";
	}
};

function OpenCalendar(p_objContainer, p_strInputName, p_strCallBackFunction, p_intDaysSelectable) {
	objContainer	= document.getElementById(p_objContainer);
	objInput		= document.getElementById(p_strInputName);

	if (!objContainer.style.visibility || objContainer.style.visibility == "hidden") {
		GetCalendarData(p_objContainer, p_intDaysSelectable);
		objContainer.style.visibility 	= "visible";
		objContainer.style.top			= (mouseY + 10) + "px";
		objContainer.style.left			= (mouseX - 150) + "px";
	} else {
		objContainer.style.visibility 	= "hidden";
	}

    if (p_strCallBackFunction) {
        strCallBackFunction = p_strCallBackFunction;
    }
};

function CloseCalendar(p_objContainer) {
	var objCalendar	= document.getElementById(p_objContainer);

	objCalendar.style.visibility 	= "hidden";
};

function GetCalendarData(p_objContainer, p_intDaysSelectable) {
    jQuery.ajax({
          type: "GET",
          url: "/fileadmin/assets/js/datepicker/ws_calendarPicker.php?date=" + objInput.value + "&container=" + p_objContainer + (p_intDaysSelectable ? "&daysSelectable=" + p_intDaysSelectable : ""),
          success: UpdateCalendarData,
          error: UpdateCalendarError
    });
};

function UpdateCalendarData(data, ioArgs) {	
	objContainer.innerHTML = data;
};

function UpdateCalendarError(data, ioArgs) {
    if (intError >= 3) {
        location.reload(false);
    } else {
        intError++;
        alert("Please try again!");
    }
}



function SwitchMonth(p_strTargetDate, p_objContainer, p_intDaysSelectable) {
	objInput.value = p_strTargetDate;
	GetCalendarData(p_objContainer, p_intDaysSelectable);
};

function SelectDate(p_strDate) {
	objInput.value = p_strDate;
	objContainer.style.visibility 	= "hidden";

    if (strCallBackFunction != "") {
        eval(strCallBackFunction + ";");
    }
};