﻿var Year  = 0;
var Month = 0;
var Day   = 0;
var FarsiWeek = ["يکشنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنجشنبه", "آدينه", "شنبه" ];
var FarsiDay  = ["اول","دوم","سوم","چهارم", "پنجم","ششم","هفتم","هشتم", "نهم","دهم",
				"يازدهم", "دوازدهم","سيزدهم", "چهاردهم","پانزدهم", "شانزدهم","هفدهم", "هجدهم","نوزدهم",
				"بيستم","بيست و يکم", "بيست و دوم","بيست و سوم", "بيست و چهارم","بيست و پنجم", "بيست و ششم","بيست و هفتم", "بيست و هشتم","بيست و نهم",
				"سي‌ام","سي و يکم" ];
var FarsiMonth = ["فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دي", "بهمن", "اسفند" ]; 

function MiladiToShamsi()
{	
	var DayCount = 0;
	var M = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if( MiladiIsLeap( Year ) )
		M[1]++ ;
		
	for(i = 0 ; i < Month - 1 ; DayCount += M[i++] );
	DayCount += Day ;
		
	var FarvardinDayDiff = 79;
	var DeyDayDiff;

	var iSub = parseInt(( ( Year + 5 ) / 29 ) % 4) ;

	DeyDayDiff = MiladiIsLeap(Year - iSub) ? 11 : 10;

	if (DayCount > FarvardinDayDiff)
	{
		DayCount -= FarvardinDayDiff;

		if (DayCount <= 186)
		{
			if ((DayCount % 31) == 0)
			{
				Month = DayCount / 31;
				Day = 31;
			}
			else
			{
				Month = (DayCount / 31) + 1;
				Day = (DayCount % 31);
			}
		}
		else
		{
			DayCount = DayCount - 186;

			if ((DayCount % 30) == 0)
			{
				Month = (DayCount / 30) + 6;
				Day = 30;
			}
			else
			{
				Month = (DayCount / 30) + 7;
				Day = (DayCount % 30);
			}
		}
		Year = Year - 621;
	}
	else
	{
		DayCount += DeyDayDiff;
		if ((DayCount % 30) == 0)
		{
			Month = (DayCount / 30) + 9;
			Day = 30;
		}
		else
		{
			Month = (DayCount / 30) + 10;
			Day = (DayCount % 30);
		}
		Year = Year - 622;
	}	
	Month = parseInt(Month);
}

function Ascii2Code( number )
{
	var strNumber = '' + number

	var sNumberFarsi = "۰۱۲۳۴۵۶۷۸۹";
	var regEn = /[0123456789]/g ;
	
	strNumber = strNumber.replace( regEn , function(sMatch){ return sNumberFarsi.charAt( sMatch.charCodeAt(0) - 48 );});

	return strNumber ;
}
