/**
 * @author tbm
 * based on functions taken from http://www.theballards.net/DueDate/DueDate.html
 * this js uses the nagel method
 */


	var dueDay = 0;
	var dueMonth = 0;
	var dueYear = 0;
	var newDay;
	var ok;
	var days = 280;

	var MonthCount = new Array();
		MonthCount[1] = 31;
		MonthCount[2] = 28;
		MonthCount[3] = 31;
		MonthCount[4] = 30;
		MonthCount[5] = 31;
		MonthCount[6] = 30;
		MonthCount[7] = 31;
		MonthCount[8] = 31;
		MonthCount[9] = 30;
		MonthCount[10] = 31;
		MonthCount[11] = 30;
		MonthCount[12] = 31;

	var MonthName = new Array();
		MonthName[1] = "يناير";
		MonthName[2] = "فبراير";
		MonthName[3] = "مارس";
		MonthName[4] = "آبريل";
		MonthName[5] = "مايو";
		MonthName[6] = "يونيو";
		MonthName[7] = "يوليو";
		MonthName[8] = "أغسطس";
		MonthName[9] = "سبتمبر";
		MonthName[10] = "أكتوبر";
		MonthName[11] = "نوفمبر";
		MonthName[12] = "ديسمبر";

// 	checkData validates the input data
	function checkData(month, day, year){
		var answer;

		if(month == "" || day == "" || year == "" || isNaN(month) || isNaN(day) || isNaN(year)){
			alert("الارقام التي ادخلتها غير صحيحة");
			ok = 0;
		}else{

			if(month > 12 || month < 0){ 
				alert("الشهور يجب ان تكون مابين 1 و 12");
				ok = 0;
			}	

			else if(day > 31 || day < 0){
				alert("الايام يجب ان تكون مابين 1 و 31");
				ok = 0;
			}else{
				ok = 1;
			}
		}
		
		if(((eval(year) + 1) %4 == 0 && eval(month) >= 5) || (eval(year) %4 == 0 && eval(month) < 3)){
			MonthCount[2] = 29;
		}else{
			MonthCount[2] = 28;
		}

		return ok;
	} 
// end of checkData function

//nagel method
function Nagel (Month, Day, Year){
		ok = checkData(Month, Day, Year);

		if(ok == 1){
			dueMonth = eval(Month) - 3;
			newDay = eval(Day) + 7;

			if(Month > 3){
				dueYear = eval(Year) + 1;
			}else{
				dueMonth = 12 + eval(dueMonth);
				dueYear = Year;
			}

			if(eval(newDay) > MonthCount[dueMonth]){
				dueDay = eval(newDay) - MonthCount[dueMonth];
				dueMonth = eval(dueMonth) + 1;
			}else{
				dueDay = newDay;
			}

			if(Month == 3 && Day > 24){
				dueYear = eval(Year) + 1;
				dueMonth = 1;
			}

			return (dueDay + " / " +MonthName[dueMonth] + " / " + dueYear);
		}else{
			return (" ");
		}
	}

