//                                                 //
//       DateTime és Date kontrol js funkciók      //
//                                                 //
function filteringNumberKey(e){
    if (!e) var e = window.event;
    if (!((e.keyCode >= 48 && e.keyCode <= 57)
        || (e.keyCode >= 96 && e.keyCode <= 105)
        || (e.keyCode == 9)
        || (e.keyCode == 8)
        || (e.keyCode == 37)
        || (e.keyCode == 39)
        || (e.keyCode == 35)
        || (e.keyCode == 36)
        || (e.keyCode == 46)
        || (e.keyCode == 16)
        || (e.keyCode == 20)
        || (e.keyCode == 18)
        || (e.keyCode == 17)
        || (e.keyCode == 144))){
        e.preventDefault ? e.preventDefault() : e.returnValue = false; 
        return false;
    }
}

//                                          //
//        DateTime és Date Validator        //
//                                          //
function validateDateTime(sender, args){
    if (args.Value.length == 0){
        args.IsValid = false;
        return;
    }
    if (!Date.parse(args.Value)){
        args.IsValid = false;
        return;
    }
    var dateTimeArray = args.Value.split(' ');
    if (!(dateTimeArray.length == 2 || dateTimeArray.length == 1)) {
        args.IsValid = false;
        return;      
    }
    if (dateTimeArray.length == 2){ //DateTime : time check
        if (dateTimeArray[1].length != 5) {
            args.IsValid = false; 
            return;       
        }
        var timeArray = dateTimeArray[1].split(':');
        if (!(timeArray.length == 2 || timeArray.length == 3)) {
            args.IsValid = false; 
            return;       
        } 
        if (parseInt(timeArray[0], 10) == isNaN || parseInt(timeArray[0], 10) < 0 || parseInt(timeArray[0], 10) > 23) {
            args.IsValid = false;
            return;
        }
        if (parseInt(timeArray[1], 10) == isNaN || parseInt(timeArray[1], 10) < 0 || parseInt(timeArray[1], 10) > 59) {
            args.IsValid = false;
            return;
        }
        if (parseInt(timeArray[2], 10) != isNaN && ( parseInt(timeArray[2], 10) < 0 || parseInt(timeArray[2], 10) > 59)) {
            args.IsValid = false;
            return;
        }
    }
    //Date check
    var dateArray = dateTimeArray[0].split('/');
    if (dateArray.length != 3) {
        args.IsValid = false;
        return;    
    }
    var Ev = parseInt(dateArray[0], 10);
    var Ho = parseInt(dateArray[1], 10);
    if (Ho > 12 || Ho < 1) {
        args.IsValid = false;
        return;    
    }
    var Nap = parseInt(dateArray[2], 10);
    switch (Ho){
    case 4:
    case 6:
    case 9:
    case 11:
        if (Nap < 1 || Nap > 30){
            args.IsValid = false;
            return;   
        }
    break;
    case 2:
        if (Ev % 4 == 0 && ((!(Ev % 100 == 0)) || (Ev % 400 == 0))){
            if (Nap < 1 || Nap > 29){
                args.IsValid = false;
                return;
            }
        }
        else{
            if (Nap < 1 || Nap > 28){
                args.IsValid = false;
                return;
            }
        }
        break;
    }
    args.IsValid = true;
}

//                                          //
//          DateTime formázás               //
//                                          //
function formattingDateTime(TextBoxId, e){
    if (!e) var e = window.event;
    if ((e.keyCode == 9)  //tab
	    || (e.keyCode == 8)  //bckspce
	    || (e.keyCode == 37) //<-
	    || (e.keyCode == 39)	//->
	    || (e.keyCode == 35) //end
	    || (e.keyCode == 36)	//home
	    || (e.keyCode == 46) //delete
	    || (e.keyCode == 16)	//shift
	    || (e.keyCode == 20) //cpslock
	    || (e.keyCode == 18)	//alt
	    || (e.keyCode == 17) //ctrl
	    || (e.keyCode == 144)) //numlock
	    return;
    var str = TextBoxId.value;
    str = str.replace(/\//g, '');
    str = str.replace(' ', '');
    str = str.replace(':', '');
    for (var k = 0; k <= str.length; k++){
        if (k == 4 || k == 7)
          str = str.substring(0,k) + '/' + str.substring(k,str.length);
        if (k == 10)
            str = str.substring(0,k) + ' ' + str.substring(k,str.length);
        if (k == 13)
            str = str.substring(0,k) + ':' + str.substring(k,str.length);
    }
    TextBoxId.value = str.substring(0, 16);
}

//                                          //
//          Date formázás                   //
//                                          //
function formattingDate(TextBoxId, e){
  if (!e) var e = window.event;
  if ((e.keyCode == 9)  //tab
		|| (e.keyCode == 8)  //bckspce
		|| (e.keyCode == 37) //<-
		|| (e.keyCode == 39)	//->
		|| (e.keyCode == 35) //end
		|| (e.keyCode == 36)	//home
		|| (e.keyCode == 46) //delete
		|| (e.keyCode == 16)	//shift
		|| (e.keyCode == 20) //cpslock
		|| (e.keyCode == 18)	//alt
		|| (e.keyCode == 17) //ctrl
		|| (e.keyCode == 144)) //numlock
		return;
  var str = TextBoxId.value;
  str = str.replace(/\//g, '');
  for (var k = 0; k <= str.length; k++){
    if (k == 4 || k == 7)
      str = str.substring(0,k) + '/' + str.substring(k,str.length);
  }
  TextBoxId.value = str.substring(0, 10);
}
//                                          //
//          DateMonth formázás                   //
//                                          //
function formattingDateMonth(TextBoxId, e){
  if (!e) var e = window.event;
  if ((e.keyCode == 9)  //tab
		|| (e.keyCode == 8)  //bckspce
		|| (e.keyCode == 37) //<-
		|| (e.keyCode == 39)	//->
		|| (e.keyCode == 35) //end
		|| (e.keyCode == 36)	//home
		|| (e.keyCode == 46) //delete
		|| (e.keyCode == 16)	//shift
		|| (e.keyCode == 20) //cpslock
		|| (e.keyCode == 18)	//alt
		|| (e.keyCode == 17) //ctrl
		|| (e.keyCode == 144)) //numlock
		return;
  var str = TextBoxId.value;
  str = str.replace(/\//g, '');
  for (var k = 0; k <= str.length; k++){
    if (k == 4)
      str = str.substring(0,k) + '/' + str.substring(k,str.length);
  }
  TextBoxId.value = str.substring(0, 7);
}