function checkvaliddate (formdate,msg,method) {
	//method = 2 --> tanggal harus valid saja
	//method = 1 --> tanggal harus lebih besar dari sekarang
	//method = 0 --> tanggal harus lebih kecil dari sekarang
	if(valid) {
		newdate = (typeof formdate == "object") ? formdate.value : formdate;
		tempdate = newdate.split("/");
		if (tempdate.length != 3) {
			alert("Tanggal " + msg + " salah");
			valid = false;
		}
		else {
			checkfieldvaliddate (tempdate[1],tempdate[0],tempdate[2]);
			var inputdate = new Date(newdate);
			temp = new Date();
			var currentdate = new Date(temp.getFullYear(),temp.getMonth(),temp.getDate());
		}
	}
	
	if(valid) {
		if (isNaN(inputdate.getDate())) {
			alert(msg + " tidak valid");
			valid = false;
			if (typeof formdate == "object") formdate.focus();
		}
	}

	if (valid) {
		diff = currentdate - inputdate;
		if (diff<0 && method == 0) {
			alert("Tanggal " + msg + " Harus lebih kecil dari tanggal sekarang");
			valid = false;
		}
		if (diff>0 && method == 1) {
			alert("Tanggal " + msg + " Harus lebih besar dari tanggal sekarang");
			valid = false;
		}
	}
}

function checkfieldvaliddate (formdate,formmonth,formyear) {
	inputdate = (typeof formdate == "object") ? formdate.value : formdate ;
	inputmonth = (typeof formmonth == "object") ? formmonth.value : formmonth ;
	inputyear = (typeof formyear == "object") ? formyear.value : formyear ;

	checkfieldnumeric(inputdate, 'Tanggal Salah');
	checkfieldnumeric(inputmonth, 'Bulan Salah');
	checkfieldnumeric(inputyear, 'Tahun Salah');

	if(valid) {
  	if((inputmonth<0)||(inputmonth>12)) {
			if ((inputmonth<0)||(inputmonth>12)) {
				valid = false;
				alert("Bulan yang anda masukkan salah");
				if (typeof formmonth == "object") formmonth.focus();
			}
		}
		else {
			var count;
			if(valid) {
				if(inputmonth<8){
		   			if((inputmonth%2) == 1) count=31;
  					if((inputmonth%2) == 0) count=30;
	  				if(inputmonth == 2) count=((inputyear%4==0)?29:28);
				}
				else{
		   			if((inputmonth-7)%2 == 1) count=31;
  					if((inputmonth-7)%2 == 0) count=30;
				}
				if((inputdate<0)||(inputdate>count)) {
					valid = false;
					alert("Tanggal yang anda masukkan salah");
					if (typeof formdate == "object") formdate.focus();
				}
  		}
  	}
  }
}

function check2date(firstdate,firstmsg,seconddate,secondmsg,method) {
	//method = 1 --> tanggal pertama harus lebih besar dari tanggal kedua
	//method = 2 --> tanggal pertama harus lebih kecil dari tanggal kedua
	if (valid) {
		checkvaliddate(firstdate,"Tanggal Pertama Salah",2);
		checkvaliddate(seconddate,"Tanggal Kedua Salah",2);
		content1 = (typeof firstdate == "object") ? firstdate.value : firstdate;
		content2 = (typeof seconddate == "object") ? seconddate.value : seconddate;
		content1 = new Date(content1);
		content2 = new Date(content2);
	}
	
	if (valid) {
		diff = content1 - content2;
		if (diff<0 && method == 1) {
			alert("Tanggal " + firstmsg + " Harus lebih besar dari tanggal " + secondmsg);
			valid = false;
		}
		if (diff>0 && method == 2) {
			alert("Tanggal " + firstmsg + " Harus lebih kecil dari tanggal " + secondmsg);
			valid = false;
		}
	}
}