/**
 * DHTML date validation script for dd/mm/yyyy. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("Format tarikh adalah : dd/mm/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Sila masukkan bulan yang betul")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Sila masukkan hari yang betul")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Sila masukkan 4 digit tahun dari "+minYear+" hingga "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Sila masukkan format tarikh yang betul")
		return false
	}
return true
}

function ValidateDateEnter(vardate,orgdate){
	var dt= vardate//document.frmSample.txtDate
	if (isDate(dt.value)==false){
		//dt.focus()
		dt.value = orgdate;
		return false
	}
    return true
 }


function checkMasa(textfrm,timemasa){

	var valid = "0123456789:"
	var ok = "yes";
	var temp;
	
	for (var i=0; i<timemasa.length; i++) {
	temp = "" + timemasa.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {
	alert("Masa Tidak Sah!");
	textfrm.value="00:00";
	return false;
	}
	
	masa = timemasa;
	masalength = timemasa.length;
	
	if (masalength == 3){
		hour = parseInt(timemasa.substring(0,1));
		if (isNaN(hour)){
			alert("Jam Tidak Sah!");
			textfrm.value = "00:00";
			return false;
		}
		else{
			if ((hour < 0)||(hour > 9)){
				alert("Jam Tidak Sah!");
				textfrm.value = "00:00";
				return false;
			}
		}
			
		checkcolon = timemasa.substring(1,2);
		if ((checkcolon !=':')&&(checkcolon!='.')){
			jam = timemasa.substring(0,1);
			newjam = parseInt(jam);
			if (isNaN(newjam)){
				alert("Jam Tidak Sah!");
				textfrm.value = "00:00"
				return false;
			}
			
			else if ((jam < 0)||(jam > 23)){
				alert("Jam Tidak Sah!");
				textfrm.value = "00:00"
				return false;
			}
			
			else{
				
				minit = timemasa.substring(1,3);
				newminit = parseInt(minit);
				if (isNaN(newminit)){
					alert("Minit Tidak Sah!");
					textfrm.value ="00:00"
					return false;
				}
				else if ((minit < 0)||(minit > 59)){
					alert("Minit Tidak Sah!");
					textfrm.value ="00:00"
					return false;
				}
				textfrm.value = jam + ":" +  minit;
			}
		}	
	}	
	
	else if (masalength == 4){
	
	
		hour = parseInt(timemasa.substring(0,1));
		hour = parseInt(hour);
		if (isNaN(hour)){
			alert("Jam Tidak Sah!");
			textfrm.value = "00:00";
			return false;
		}
		else if (hour!="0"){
				newhour = timemasa.substring(0,1);
				if ((newhour < 0)||(newhour > 23)){
					alert("Jam Tidak Sah!");
					textfrm.value = "00:00";
					return false;
				}
				checkcolon = timemasa.substring(1,2);
				if ((checkcolon !=':')&&(checkcolon!='.')){
					
					jam = timemasa.substring(0,2);
					jam = parseInt(jam);
					if (isNaN(jam)){
						alert("Jam Tidak Sah!");
						textfrm.value = "00:00"
						return false;
					}
					
					else if ((jam < 0)||(jam > 23)){
						alert("Jam Tidak Sah!");
						textfrm.value = "00:00"
						return false;
					}
					else{
						
						minit = timemasa.substring(2,4);
						newminit = parseInt(minit);
						if (isNaN(newminit)){
							alert("Minit Tidak Sah!");
							textfrm.value ="00:00"
							return false;
						}
						else if ((minit < 0)||(minit > 59)){
							alert("Minit Tidak Sah!");
							textfrm.value ="00:00"
							return false;
						}
							
						textfrm.value = jam + ":" +  minit;
					}	
				}		
		}
		else if (hour=="0"){
			newhour = timemasa.substring(0,2);
			if ((newhour < 0)||(newhour > 23)){
				alert("Jam Tidak Sah!");
				textfrm.value = "0:00";
				return false;
			}
				
			checkcolon = timemasa.substring(2,3);
			if ((checkcolon !=':')&&(checkcolon!='.')){
					if ((newhour < 0)||(newhour > 23)){
                        alert("Jam Tidak Sah!");
                        textfrm.value = "00:00"
                        return false;
                    }
                    else{
                        
                        minit = timemasa.substring(2,4);
                        newminit = parseInt(minit);
                        if (isNaN(newminit)){
                            alert("Minit Tidak Sah!");
                            textfrm.value ="00:00"
                            return false;
                        }
                        
                        else if ((minit < 0)||(minit > 59)){
                            alert("Minit Tidak Sah!");
                            textfrm.value ="00:00"
                            return false;
                        }
                            
                        textfrm.value = newhour + ":" +  minit;
                    }   
			}		
		}
	}	
	
	else if (masalength == 5){
		hour = timemasa.substring(0,2);
		hour = parseInt(hour);
		if (isNaN(hour)){
			alert("Masa Tidak Sah!");
			textfrm.value = "0:00";
			return false;
		}
		else{
			newhour = timemasa.substring(0,2);
			if ((newhour < 0)||(newhour > 23)){
				alert("Jam Tidak Sah!");
				textfrm.value = "0:00";
				return false;
			}
		}
				
		checkcolon = timemasa.substring(2,3);
		if ((checkcolon !=':')&&(checkcolon!='.')){
			alert("Masa Tidak Sah! ");
			textfrm.value = "00:00";
			return false;
		}
		
		min = timemasa.substring(3,5);
		newmin = parseInt(min);
		if (isNaN(newmin)){
			alert("Minit Tidak Sah!");
			textfrm.value = "0:00";
			return false;
		}
		else{
			minit = timemasa.substring(3,5);
			if ((minit < 0)||( minit > 59)){
				alert("Minit Tidak Sah!");
				textfrm.value = "0:00";
				return false;
			}
		}	
	}	
	else{
		alert("Masa Tidak Sah!");
		textfrm.value = "0:00";
		return false;
	}
			
}

