function lfnCalculate(CurrentYear,CurrentMth,CurrentDay)
{
	/***************************************************************************************************************************************************
	This function is based on the assumption that MuHarram 1, 1 A.H. corresponds to July 16, 622 C.E.
	***************************************************************************************************************************************************/
	YearOfHijri=622
	MthOfHijri=7
	DayOfHijjri=16
	
	
	TotalNoOfDaysElapsed=14+31+30+31+30+31
	
	for(i=(YearOfHijri+1);i<CurrentYear;i++)
	{
		if((i%4)==0&&((i%100)!=0||(i%400)==0))//This means that it is a leap year.
		{
			TotalNoOfDaysElapsed=TotalNoOfDaysElapsed+366
		}
		else
		{
			TotalNoOfDaysElapsed=TotalNoOfDaysElapsed+365
		}
	}
	
	for(j=1;j<CurrentMth;j++)
	{
		if((CurrentYear==YearOfHijri)&&(CurrentMth==MthOfHijri))
		{
			break;
		}
		
		if((j==1)||(j==3)||(j==5)||(j==7)||(j==8)||(j==10)||(j==12))
		{
			TotalNoOfDaysElapsed=TotalNoOfDaysElapsed+31
		}
		else if((j==2)&&((CurrentYear%4)==0&&((CurrentYear%100)!=0||(CurrentYear%400)==0)))
		{
			TotalNoOfDaysElapsed=TotalNoOfDaysElapsed+29
		}
		else if((j==2))
		{
			TotalNoOfDaysElapsed=TotalNoOfDaysElapsed+28
		}
		else
		{
			TotalNoOfDaysElapsed=TotalNoOfDaysElapsed+30
		}
	}
	
	
	
	if((CurrentYear==YearOfHijri)&&(CurrentMth==MthOfHijri))
	{
		TotalNoOfDaysElapsed=(CurrentDay-(DayOfHijjri))+1
	}
	else
	{
		TotalNoOfDaysElapsed=TotalNoOfDaysElapsed+CurrentDay
	}
	
	CurrentHijriYear=1
	CurrentHijriMth=0
	CurrentHijriDay=0
	
	while(TotalNoOfDaysElapsed>=354)
	{
		//if((CurrentHijriYear%3)==0)
		leapYrInd=CurrentHijriYear%30
		if(leapYrInd==2||leapYrInd==5||leapYrInd==7||leapYrInd==10||leapYrInd==13||leapYrInd==16||leapYrInd==18||leapYrInd==21||leapYrInd==24||leapYrInd==26||leapYrInd==29)
		{
			if(TotalNoOfDaysElapsed>354)
			{
				TotalNoOfDaysElapsed=TotalNoOfDaysElapsed-355
				CurrentHijriYear++
			}
			else if(TotalNoOfDaysElapsed==355)
			{
				TotalNoOfDaysElapsed=TotalNoOfDaysElapsed-355
				break;
			}
			else
			{
				break;
			}
				
		}
		else if(TotalNoOfDaysElapsed==354)
		{
			TotalNoOfDaysElapsed=354
			break;
		}
		else
		{
			TotalNoOfDaysElapsed=TotalNoOfDaysElapsed-354
			CurrentHijriYear++
		}
	}

	
	//CurrentHijriYear=Math.floor((TotalNoOfDaysElapsed/354))
	//TotalOfDaysElapsedInThisHijri=(TotalNoOfDaysElapsed%354)
	
	TotalOfDaysElapsedInThisHijri=TotalNoOfDaysElapsed
	CurrentHijriMth=0
	CurrentHijriDay=0
	
	for(i=1;i<=12;i++)
	{
		CurrentHijriMth=i
		if((i==1)||(i==3)||(i==5)||(i==7)||(i==9)||(i==11))
		{
			if(TotalOfDaysElapsedInThisHijri<30)
			{
				CurrentHijriDay=TotalOfDaysElapsedInThisHijri
				break;
			}
			else if(TotalOfDaysElapsedInThisHijri==30)
			{
				CurrentHijriDay=30;
				break;
			}
			else
			{
				TotalOfDaysElapsedInThisHijri=TotalOfDaysElapsedInThisHijri-30
			}
		}
		else
		{
			if(TotalOfDaysElapsedInThisHijri<29)
			{
				CurrentHijriDay=TotalOfDaysElapsedInThisHijri
				break;
			}
			else if(TotalOfDaysElapsedInThisHijri==29)
			{
				CurrentHijriDay=29;
				break;
			}
			else//Here means greater then 29 that means 30 and above......
			{
				leapYrInd=CurrentHijriYear%30
				if(i==12&&TotalOfDaysElapsedInThisHijri==30&&(leapYrInd==2||leapYrInd==5||leapYrInd==7||leapYrInd==10||leapYrInd==13||leapYrInd==16||leapYrInd==18||leapYrInd==21||leapYrInd==24||leapYrInd==26||leapYrInd==29))
				{
					//TotalOfDaysElapsedInThisHijri=TotalOfDaysElapsedInThisHijri-30
					CurrentHijriDay=30
				}
				else if(i==12&&(leapYrInd==2||leapYrInd==5||leapYrInd==7||leapYrInd==10||leapYrInd==13||leapYrInd==16||leapYrInd==18||leapYrInd==21||leapYrInd==24||leapYrInd==26||leapYrInd==29))
				{
					TotalOfDaysElapsedInThisHijri=TotalOfDaysElapsedInThisHijri-30
				}
				else
				{
					TotalOfDaysElapsedInThisHijri=TotalOfDaysElapsedInThisHijri-29
				}
			}
		}
	}
	
	
	
	var HijriDateToday=""
	
	HijriDateToday=getHijriMth(CurrentHijriMth);
	HijriDateToday=HijriDateToday+" "+CurrentHijriDay+", "+CurrentHijriYear
	return HijriDateToday;

}


function getHijriMth(CurrentHijriMth)
{
	if(CurrentHijriMth==1)
		{
		HijriDateToday="Muharram al-Haraam"
		}
		else if(CurrentHijriMth==2)
		{
  	    		HijriDateToday="Safar al-Muzaffar"
		}
		else if(CurrentHijriMth==3)
		{
  	    		HijriDateToday="Rabi al-Awwal"
		}
		else if(CurrentHijriMth==4)
		{
  	    		HijriDateToday="Rabi al-Aakhar"
		}
		else if(CurrentHijriMth==5)
		{
  	    		HijriDateToday="Jumada al-Ula"
		}
		else if(CurrentHijriMth==6)
		{
  	    		HijriDateToday="Jumada al-Ukhra"
		}
		else if(CurrentHijriMth==7)
		{
  	    		HijriDateToday="Rajab al-Asab"
		}
		else if(CurrentHijriMth==8)
		{
  	    		HijriDateToday="Shaban al-Karim"
		}
		else if(CurrentHijriMth==9)
		{
  	    		HijriDateToday="Ramadan al-Moazzam"
		}
		else if(CurrentHijriMth==10)
		{
  	    		HijriDateToday="Shawwal al-Mukarram"
		}
		else if(CurrentHijriMth==11)
		{
  	    		HijriDateToday="Zilqad al-Haraam"
		}
		else if(CurrentHijriMth==12)
		{
  	    		HijriDateToday="Zilhaj al-Haraam"
		}
		
		return HijriDateToday;
}

function lfnPopulateDate()
{
	Today=new Date()
	CurrentYear=Today.getFullYear()
	CurrentMth=Today.getMonth()+1
	CurrentDay=Today.getDate()
	window.divHijriDate.innerHTML=lfnCalculate(CurrentYear,CurrentMth,CurrentDay)
}

function lfnWriteDate()
{
	Today=new Date()
	CurrentYear=Today.getFullYear()
	CurrentMth=Today.getMonth()+1
	CurrentDay=Today.getDate()
	window.document.write(lfnCalculate(CurrentYear,CurrentMth,CurrentDay));
}



function lfnGetHijriDate()
{
	lstrMonth = window.document.forms[0].txtMth.value
	lstrDay = window.document.forms[0].txtDay.value
	lstrYear = window.document.forms[0].txtYear.value
	if(lstrMonth==""&&lstrDay==""&&lstrYear=="")
	{
	alert("Please enter a date");
	return;
	}
	
	
	lintMonth = parseInt(lstrMonth,10);
	lintDay = parseInt(lstrDay,10);
	lintYear = parseInt(lstrYear,10);
	
	if((lintYear<622)||(lintYear==622&&lintMonth<6)||(lintYear==622&&lintMonth==6&&lintDay<16))
	{
	alert("Please enter a date after (16/07/622) as this is the day of Hijri");
	window.document.forms[0].txtMth.value=""
	window.document.forms[0].txtDay.value=""
	window.document.forms[0].txtYear.value=""
	return;
	}
	
	window.divHijriDate.innerHTML=lfnCalculate(lintYear,lintMonth,lintDay)
}