function checkDateMask(obj)
{

	var Format = document.getElementById("DateFormat").value;
	var isValid = false;	
	var Separator = document.getElementById("DateSeparator").value;
	var sVal = obj.value;
	sFormat = Format.replace("/",Separator);
	sFormat = Format.replace("/",Separator);	
	
	//document.getElementById("lblAlert.Text").innerText = "";
	
	if(sVal != "")
	{
		var day   = sVal.substr(Format.indexOf("dd",0),2);
		var month = sVal.substr(Format.indexOf("MM",0),2);
		var year  = sVal.substr(Format.indexOf("yyyy",0),4);

		if(day > getDaysInMonth(month, year) || parseInt(month) > 12 || !((parseInt(year) < 2199) && (parseInt(year) > 1900)))
		{
			window.alert("Hatali tarih!");
			obj.value = "";
			obj.focus();
			return false;
		}
	}	 
}

function leapYear(Year){
	if(((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0))
		return (1);
	else
		return (0);
}

function getDaysInMonth(month, year) {
	var days;
	if(month.substring (0,1) == "0")
	{
		month = month.substring (1);
	}
	month = parseInt (month);
	if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
		days=31;
	else if (month==4 || month==6 || month==9 || month==11)
		days=30;
	else if (month==2){
		if (leapYear (year)==1)
			days=29;
		else
			days=28;
	}
	return (days);
}

function DateInputMask(obj)
{

	var mask = document.getElementById("DateFormat").value
	var Separator = document.getElementById("DateSeparator").value;

	mask = mask.replace("dd","99");
	mask = mask.replace("MM","99");
	mask = mask.replace("yyyy","9999");
	mask = mask.replace("/",Separator);
	mask = mask.replace("/",Separator);
	
	var maskChar, newChar = String.fromCharCode(window.event.keyCode);
	var Val = obj.value;
	var RetVal = true;
	
	if(document.selection.type != "None")
	{
		var tRange = document.selection.createRange();
		if(tRange.text.length >= mask.length)
		{
			obj.value = "";
		}
	}
	if (mask.length == 0)
	{
		return true;
	}
	if (obj.value.length >= mask.length)  // InputMask tamam. Artik kabul etme.
	{
		RetVal = false;
	}
	else                                        // Maski yeni gelen harfe göre parse et
	{
		maskChar = mask.charAt(obj.value.length);
		switch (maskChar)
		{
			case '9':  // Sayisal
				RetVal = newChar >= '0' && newChar <= '9'; 	
				break;
			default:   // masktaki harf
				obj.value += maskChar;
				RetVal = DateInputMask(obj);
		}
	}
	return RetVal;
}
function getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}
function getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}
function PopUpCalendar(obj, iLeft, iTop)
{	

	iLeft = getPageOffsetLeft(obj);
	iTop = getPageOffsetTop(obj);
	iTop += 20;
	
	fraCalendar.sDateFormat = document.getElementById("DateFormat").value;
	fraCalendar.sDateSeperator = document.getElementById("DateSeparator").value;
	lyrCalendar.style.zIndex = 1000;
	fraCalendar.fPopCalendar2(obj, obj, lyrCalendar, iLeft , iTop);
}

//DateBox tipinde bir control'un degerini Date tipinde dondurur
function getDateValue(obj)
{
	if(checkDateMask(obj))
		return;
	var Format = document.getElementById("DateFormat").value;
	var isValid = false;	
	var Separator = document.getElementById("DateSeparator").value;
	var sVal = obj.value;
	Format = Format.replace("/",Separator);
	Format = Format.replace("/",Separator);	
	
	if(sVal != "")
	{
		var sDay   = sVal.substr(Format.indexOf("dd",0),2);
		var sMonth = sVal.substr(Format.indexOf("MM",0),2);
		var sYear  = sVal.substr(Format.indexOf("yyyy",0),4);

		return new Date(parseInt(sYear, 10), parseInt(sMonth, 10) - 1, parseInt(sDay, 10));
	}	 
}

//dVal ile verilen Date'i obj ile verilen DateBox'in value'su olarak atar
function setDateValue(obj, dVal)
{
	iDay = '0' + dVal.getDate();
	iMonth = '0' + dVal.getMonth();
	iDay = iDay.substring(iDay.length - 2 ,iDay.length);
	iMonth = iMonth.substring(iMonth.length - 2 ,iMonth.length);
	iYear = dVal.getFullYear()
	
	
	var Separator = document.getElementById("DateSeparator").value;
	var dateStr = document.getElementById("DateFormat").value;
	
	dateStr = dateStr.replace("/", Separator);
	dateStr = dateStr.replace("/", Separator);
	dateStr = dateStr.replace("yyyy", iYear);
	dateStr = dateStr.replace("MM", iMonth);
	dateStr = dateStr.replace("dd", iDay);
	
	strOldDate = obj.value;

	obj.value = dateStr;
	obj.focus();
	
	if (dateStr != strOldDate)
		if (obj.onchange)
			obj.onchange();

}