function lfnCalculate(CurrentYear,CurrentMth,CurrentDay,format)
{
	/***************************************************************************************************************************************************
	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);
	if(format=='full')
	HijriDateToday=HijriDateToday+" "+CurrentHijriDay+", "+CurrentHijriYear
	if(format=='half')
	HijriDateToday=HijriDateToday+", "+CurrentHijriYear
	if(format=='getHDay')
	HijriDateToday=CurrentHijriDay;
	if(format=='getHMonth')
	HijriDateToday=HijriDateToday;
	if(format=='getHYear')
	HijriDateToday=CurrentHijriYear;
	
	return HijriDateToday;

}


function getHijriMth(CurrentHijriMth)
{
	if(CurrentHijriMth==1)
		{
		HijriDateToday="Muharram ul-Haraam"
		}
		else if(CurrentHijriMth==2)
		{
  	    		HijriDateToday="Safar ul-Muzaffar"
		}
		else if(CurrentHijriMth==3)
		{
  	    		HijriDateToday="Rabi' ul-Awwal"
		}
		else if(CurrentHijriMth==4)
		{
  	    		HijriDateToday="Rabi' ul-Aakhar"
		}
		else if(CurrentHijriMth==5)
		{
  	    		HijriDateToday="Jumaadi ul-Awwal"
		}
		else if(CurrentHijriMth==6)
		{
  	    		HijriDateToday="Jumaadi ul-Aakhar"
		}
		else if(CurrentHijriMth==7)
		{
  	    		HijriDateToday="Rajab ul-Murajjab"
		}
		else if(CurrentHijriMth==8)
		{
  	    		HijriDateToday="Sha'baan ul-Kareem"
		}
		else if(CurrentHijriMth==9)
		{
  	    		HijriDateToday="Ramazaan ul-Mo'azzam"
		}
		else if(CurrentHijriMth==10)
		{
  	    		HijriDateToday="Shawwaal ul-Mukarram"
		}
		else if(CurrentHijriMth==11)
		{
  	    		HijriDateToday="Zulqa'adah al-Haraam"
		}
		else if(CurrentHijriMth==12)
		{
  	    		HijriDateToday="Zulhajjah al-Haraam"
		}
		
		return HijriDateToday;
}

function lfnWriteDate()
{
	Today=new Date()
	CurrentYear=Today.getFullYear()
	CurrentMth=Today.getMonth()+1
	CurrentDay=Today.getDate()
	window.document.write(lfnCalculate(CurrentYear,CurrentMth,CurrentDay,'full'));
}

function lfnWriteDate3(format)
{
	Today=new Date()
	CurrentYear=Today.getFullYear()
	CurrentMth=Today.getMonth()+1
	CurrentDay=Today.getDate()
	window.document.write(lfnCalculate(CurrentYear,CurrentMth,CurrentDay,format));
}

function lfnWriteDate2()
{
	Today=new Date()
	CurrentYear=Today.getFullYear()
	CurrentMth=Today.getMonth()+1
	CurrentDay=Today.getDate()
	window.document.write(lfnCalculate(CurrentYear,CurrentMth,CurrentDay,'half'));
}

function getHijri(id,vari)
{
	Today=new Date()
	CurrentYear=Today.getFullYear()
	CurrentMth=Today.getMonth()+1
	CurrentDay=Today.getDate()
	obj=document.getElementById(id);
	
	obj.value=(lfnCalculate(CurrentYear,CurrentMth,CurrentDay,vari));
}


function lfnWriteDay()
{
	Today=new Date()
	CurrentYear=Today.getFullYear()
	CurrentMth=Today.getMonth()+1
	CurrentDay=Today.getDate()
	return lfnCalculate(CurrentYear,CurrentMth,CurrentDay,'getHDay');
}


function lfnWriteMonth()
{
	Today=new Date()
	CurrentYear=Today.getFullYear()
	CurrentMth=Today.getMonth()+1
	CurrentDay=Today.getDate()
	return lfnCalculate(CurrentYear,CurrentMth,CurrentDay,'getHMonth');
}
