
var firstShow = true;

function getPickerCalendar(formId, fireElement, showTime, callfuncafter) {
	if ($("pickerMiniCalendar") != null) return;
	//
	var formElement = $(formId);
	var miniCalendar = new Element('div', {'class': 'pickerMiniCalendar', 'id': 'pickerMiniCalendar'}).inject(document.body);
	var size = window.getSize(), scroll = window.getScroll();
	var props = {x: 'left', y: 'top'};
	var offsets = {x: 20, y: 3};
	var date;
	for (var z in props){
		var pos = fireElement.getPosition()[z] + offsets[z];
		miniCalendar.setStyle(props[z], pos);
	}
	miniCalendar.setStyles({position: 'absolute', display: 'block', width: "200px"});
	if (firstShow) {
		document.addEvent('mousedown', function(e) {
			var el = $("pickerMiniCalendar");
			if (el == null) return;
			//
			if(outsideClick(e, el)) el.destroy();
		});
	}
	firstShow = false;
	
	switch (formElement.value.substring(0, 1)) {
		case ">": case "<":
			date = formElement.value.substring(1);
			break;
		default:
			date = formElement.value;
			break;
	}
	ajaxClassCall("PickerCalendar", "miniMonthTable", date +","+ formElement.id +","+ showTime +","+callfuncafter+"&path=html/forms", "pickerMiniCalendar");
}

function setDatepickerFilterOption(pickerId, filterOption) {
	if (pickerId.value == "") return;
	var date;
	//
	switch (pickerId.value.substring(0, 1)) {
		case ">": case "<":
			date = pickerId.value.substring(1);
			break;
		default:
			date = pickerId.value;
			break;
	}
	pickerId.value = '' + filterOption + date;
}

function outsideClick(_event, _element) {
	var mousePos = this.getMousePos(_event);
	var elementData = _element.getCoordinates();
	return (mousePos.x > elementData.left && mousePos.x < (elementData.left + elementData.width)) &&
		   (mousePos.y > elementData.top  && mousePos.y < (elementData.top + elementData.height)) ? false : true;
}
	
function getMousePos (_event) {
	if(document.all) {
		return { 'x': window.event.clientX + window.getScrollLeft(),
				 'y': window.event.clientY + window.getScrollTop() };
	} else {
		return { 'x': _event.page['x'],
				 'y': _event.page['y'] };
	}
}

function dateChoose(date) {
	$("pickerDate").value = date;
	$("pickerMiniCalendar").getElements("span[id^=picker_]").each(function(el) {
		el.setStyle("border", "0px");
		el.setStyle("padding", "1px");
	});
	$("picker_"+ date).setStyle("border", "1px #f00 solid");
	$("picker_"+ date).setStyle("padding", "0px");
}

function datePickerChoose(formId, dateValue, showTime, callfuncafter) {
	if (showTime) {
		dateValue = $("pickerDate").value +" "+ $("pickerHours").value +":"+ $("pickerMinutes").value;
	}
	$(formId).value = dateValue;
	if (callfuncafter != "") {
		eval(callfuncafter+'();');
	}
	$("pickerMiniCalendar").destroy();
}

function c2fChangeLng(lngImage) {
	var params = lngImage.id.split("_");
	var c2fCount = params[1];
	var c2fLng = params[2];
	//
	$("c2fLng").getElements("img").each(function(el) {
		el.style.border = "0px";
	});
	$(lngImage.id).style.border = "1px #f00 solid";
	//
	$("c2form"+c2fCount).getElements("input").each(function(el) {
		switchElement(c2fLng, el);
	});
	$("c2form"+c2fCount).getElements("textarea").each(function(el) {
		switchElement(c2fLng, el);
	});
}

function switchElement(lng, el) {
	if (el.name.contains("_"+ lng)) {
		el.style.display = "block";
	} else {
		if (el.name.substr(el.name.length - 3, 1) == "_") {
			el.style.display = "none";
		}
	}
}

