function IsDate(dateStr) {
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	
	if (matchArray == null) {
		return false;
	}
	
	day = matchArray[1];
	month = matchArray[3];
	year = matchArray[5];
	
	if (month < 1 || month > 12) { // check month range
		return false;
	}
	
	if (day < 1 || day > 31) {
		return false;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		return false;
	}
	
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
			return false;
		}
	}
	return true;
}

function IsTime(strVal) {
	var hours, minutes;
	if (strVal.length != 5 || strVal.substring(2,3)!=":")	{ return false;	}
	//saat kysmy
	hours=strVal.substring(0,2);
	if (isNaN(hours)==true) 	{ return false;	}
	if (hours.substring(0,1)=='.' || hours.substring(1,2)=='.')	{ return false;	}
	if ((parseInt(hours) >= 0 && parseInt(hours) < 24)==false) 	{ return false;}
	//dakika kysmy
	minutes=strVal.substring(3,5);
	if (isNaN(minutes)==true) 	{ return false;}
	if (minutes.substring(0,1)=='.' || minutes.substring(1,2)=='.')	{ return false;	}
	if ((parseInt(minutes) >= 0 && parseInt(minutes) < 60)==false) 	{ return false;}
	return true;
}

function IsNumeric(sText){   
   var ValidChars = "0123456789.";
   var Char;
   if(sText=='') return false;
   for (i = 0; i < sText.length; i++)
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         return false;
         }
      }
   return true;
}
function DateDiff(argDate1,argDate2){
  var date1 = argDate1.split("/");
  var date2 = argDate2.split("/");
  var sDate = new Date(date1[1]+"/"+date1[0]+"/"+date1[2]);
  var eDate = new Date(date2[1]+"/"+date2[0]+"/"+date2[2]);
  var daysApart = (Math.round((sDate-eDate)/86400000));
  return daysApart;
}
function dateAdd(p_Interval, p_Number, p_Date){
	//if(!IsDate(p_Date)){return "invalid date: '" + p_Date + "'";}
	if(isNaN(p_Number)){return "invalid number: '" + p_Number + "'";}	

	p_Number = new Number(p_Number);
	var dt = new Date(p_Date);
	switch(p_Interval.toLowerCase()){
		case "yyyy": {// year
			dt.setFullYear(dt.getFullYear() + p_Number);
			break;
		}
		case "q": {		// quarter
			dt.setMonth(dt.getMonth() + (p_Number*3));
			break;
		}
		case "m": {		// month
			dt.setMonth(dt.getMonth() + p_Number);
			break;
		}
		case "y":		// day of year
		case "d":		// day
		case "w": {		// weekday
			dt.setDate(dt.getDate() + p_Number);
			break;
		}
		case "ww": {	// week of year
			dt.setDate(dt.getDate() + (p_Number*7));
			break;
		}
		case "h": {		// hour
			dt.setHours(dt.getHours() + p_Number);
			break;
		}
		case "n": {		// minute
			dt.setMinutes(dt.getMinutes() + p_Number);
			break;
		}
		case "s": {		// second
			dt.setSeconds(dt.getSeconds() + p_Number);
			break;
		}
		case "ms": {		// second
			dt.setMilliseconds(dt.getMilliseconds() + p_Number);
			break;
		}
		default: {
			return "invalid interval: '" + p_Interval + "'";
		}
	}
	return dt;
}

function datePart(p_Interval, p_Date){
	//if(!IsDate(p_Date)){return "invalid date: '" + p_Date + "'";}

	var dtPart = new Date(p_Date);
	switch(p_Interval.toLowerCase()){
		case "yyyy": return dtPart.getFullYear();
		case "q": return parseInt(dtPart.getMonth()/3)+1;
		case "m": return dtPart.getMonth()+1;
		case "y": return dateDiff("y", "1/1/" + dtPart.getFullYear(), dtPart);			// day of year
		case "d": return dtPart.getDate();
		case "w": return dtPart.getDay();	// weekday
		case "ww":return dateDiff("ww", "1/1/" + dtPart.getFullYear(), dtPart);		// week of year
		case "h": return dtPart.getHours();
		case "n": return dtPart.getMinutes();
		case "s": return dtPart.getSeconds();
		case "ms":return dtPart.getMilliseconds();	// millisecond	// <-- extension for JS, NOT available in VBScript
		default: return "invalid interval: '" + p_Interval + "'";
	}
}

function weekdayName(p_Date, p_abbreviate){
	//if(!IsDate(p_Date)){return "invalid date: '" + p_Date + "'";}
	var dt = new Date(p_Date);
	var retVal = dt.toString().split(' ')[0];
	var retVal = Array('Pazar','Pazartesi','Sali','Carsamba','Persembe','Cuma','Cumartesi')[dt.getDay()];
	if(p_abbreviate==true){retVal = retVal.substring(0, 3)}	// abbr to 1st 3 chars
	return retVal;
}
// REQUIRES: isDate()
function monthName(p_Date, p_abbreviate){
	//if(!IsDate(p_Date)){return "invalid date: '" + p_Date + "'";}
	var dt = new Date(p_Date);	
	var retVal = Array('Ocak','Subat','Mart','Nisan','Mayis','Haziran','Temmuz','Agustos','Eylul','Ekim','Kasim','Aralik')[dt.getMonth()];
	if(p_abbreviate==true){retVal = retVal.substring(0, 3)}	// abbr to 1st 3 chars
	return retVal;
}


//calendar user control'unun shared scripts
var extracallscript='';
function CalendarObj_Click(objId,objCal,objHRef,callscr){    
    var textObj=MM_findObj(objId);
    extracallscript=callscr;
	objCal.setReturnFunction("CalendarObj_RetFunc");
	objCal.select(objHRef.id,'dd/MM/yyyy',textObj);
}

function CalendarObj_RetFunc(objHRef,objId,y,m,d){
    var xDay=new String(d);
	var xMon=new String(m);
	if (xDay<10){
        xDay='0' + xDay;
    }
    if (xMon<10){
        xMon='0' + xMon;
    }		    
    //alert(xDay + '/' + xMon + '/' + y);
    MM_findObj(objId).value=xDay + '/' + xMon + '/' + y;    
	if(extracallscript!='') {	    
	    eval(extracallscript);
	}
    
}

function CalendarObj_Value(objId)    {    
    if(MM_findObj(objId+'_chkDate') && MM_findObj(objId+'_chkDate').checked==false) {        
        return '01/01/1900'
    }
    return MM_findObj(objId+'_txtDate').value; 
}

function CalendarObj_ValueSet(objId,value)    {            
	var xDay = datePart('d',value);
	var xMon = datePart('m',value);	
	if (xDay<10){
        xDay='0' + xDay;
    }
    if (xMon<10){
        xMon='0' + xMon;
    }        
    MM_findObj(objId+'_txtDate').value=xDay + '/'+ xMon + '/'+ datePart('yyyy',value)    
}

function CalendarObj_DateValue(objId)    {
    var dtStr=CalendarObj_Value(objId);
    return ConvertStrToDate(dtStr)
}

function CalendarObj_SetEnable(objId,isDisable)    {
        var disab
        if(MM_findObj(objId + '_chkDate')) //checkbox show
            disab=!MM_findObj(objId + '_chkDate').checked
        else
            disab=isDisable
        
        var disabStr=(disab?'disabled':'')
        MM_findObj(objId + '_txtDate').disabled=disabStr
        disableAnchor(MM_findObj(objId + '_A'),disab)
}
// dd/mm/yyyy
function ConvertStrToDate(argDateStr) {
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = argDateStr.match(datePat); // is the format ok?	
	day = matchArray[1];
	month = matchArray[3];
	year = matchArray[5];
	
    return new Date(month + '/'+ day + '/'+ year) ;
}
