$(document).ready( function() {
	$("#cal_prevMonth").click(function() { cal_changemonth(-1); });
	$("#cal_nextMonth").click(function() { cal_changemonth(1); });
	today=new Date(); cal_changemonth();

	var hijri = hijri_date();
	$("#tepe_bugun_h .yil").html(hijri['year']);
	$("#tepe_bugun_h .gun").html(hijri['day_val']);
	$("#tepe_bugun_h .ay").html(hijri['month_name']);

	var gun=today.getDate();
	var ay=today.getMonth();
	var yil=today.getFullYear();
	var gunler= ['Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi', 'Pazar'];
	var aylar= ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'];
	$("#tepe_bugun_m .yil").html(yil);
	$("#tepe_bugun_m .gun").html(gun);
	$("#tepe_bugun_m .ay").html(aylar[ay]);
});

cal_date=new Date(); cal_date.setDate(1);
cal_monthLengths=[31,28,31,30,31,30,31,31,30,31,30,31]
cal_monthNames=['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık' ]
cal_events={
    d20090719:[['Miraç Kandili','Merhum Prof.Dr.Esad Coşan\'ın bir başyazısı...','/takvim/mirackandili.html']],
    d20090805:[['Berat Kandili','En Mühim İşimiz: Berat Kandilimizin İhyâsı', '/takvim/beratkandili.html']],
    d20090821:[['Ramazan Ayı Başlıyor','Ramazan Ayı Başlıyor...','/takvim/ramazanayibasliyor.html']],
    d20090915:[['Kadir Gecesi','Kadir Gecesi...','/takvim/kadirgecesi.html']],
    d20090919:[['Arefe Günü','Ramazan Bayramı Arefesi...','/takvim/ramazanbayramiarefesi.html']],
    d20090920:[['Ramazan Bayramı','Merhum Prof.Dr.Esad Coşan\'ın Ramazan Bayramına dair bir yazısı...','/takvim/ramazanbayrami.html']]
}

window.cal_openedactlist=false;

function cal_changemonth(nm) {
	if (!nm) nm=today.getMonth();
    else if ( typeof(nm)!="string" ) nm+=cal_date.getMonth();
	
	if (nm<0) { nm=11; cal_date.setFullYear(cal_date.getFullYear()-1); }
	else if (nm>11) { nm=0; cal_date.setFullYear(cal_date.getFullYear()+1); }
	
	cal_date.setMonth(nm); var firstday=cal_date.getDay(); var lastday=cal_monthLengths[cal_date.getMonth()];
	if (lastday==28) { var theyear=cal_date.getFullYear(); lastday = (theyear%4==0 ? ( theyear%100==0 ? ( theyear%400==0 ? 29 : 28 ) : 29 ) : 28 ) }
	$('#cal_monthName').html(cal_monthNames[nm]+' '+cal_date.getFullYear());
	var day=0; if (firstday==0) firstday=7;
	for (var ex=1; ex<=42; ex++) { day=ex-firstday; $('#cal_day'+ex).removeClass('cal_actday').html((day<0 || day>=lastday ? '' : day+1)).attr('title','').unbind('click').get(0).evtlist=''; }

	$('tr.cal_evtlist').remove();
	var evtkeyleft='d'+cal_date.getFullYear()+String("0"+(cal_date.getMonth()+1)).slice(-2);
	for (var dx=1; dx<=lastday; dx++) { var evtkey=evtkeyleft+String("0" + dx).slice(-2); if (!cal_events[evtkey]) continue;
		var dayelm=$('#cal_day'+(dx+firstday-1)).get(0);
		var evts=cal_events[evtkey];
		for (var ex=0; ex<evts.length; ex++) {
			var evt=evts[ex];
			dayelm.evtlist+='<a title="'+evt[1]+'" href="'+evt[2]+'">'+evt[0]+'</a>';
		}
		$(dayelm).addClass('cal_actday').attr('title', evts.length+' etkinlik/olay... Detaylar için tıklayın.').bind('click', function() {
			$('tr.cal_evtlist').remove();
			if (cal_openedactlist==this) { window.cal_openedactlist=false; return true; }
			$(this).parents(':first').after('<tr class="cal_evtlist"><td colspan="7" class="cal_evtlist">'+this.evtlist+'</td></tr>');
			window.cal_openedactlist=this;
		});
	}
}

function gmod(n,m){
	return ((n%m)+m)%m;
}

function hijcri_calendar(adjust){
	var today = new Date();
	if(adjust) {
		adjustmili = 1000*60*60*24*adjust; 
		todaymili = today.getTime()+adjustmili;
		today = new Date(todaymili);
	}
	day = today.getDate();
	month = today.getMonth();
	year = today.getFullYear();
	m = month+1;
	y = year;
	if(m<3) {
		y -= 1;
		m += 12;
	}

	a = Math.floor(y/100.);
	b = 2-a+Math.floor(a/4.);
	if(y<1583) b = 0;
	if(y==1582) {
		if(m>10)  b = -10;
		if(m==10) {
			b = 0;
			if(day>4) b = -10;
		}
	}

	jd = Math.floor(365.25*(y+4716))+Math.floor(30.6001*(m+1))+day+b-1524;

	b = 0;
	if(jd>2299160){
		a = Math.floor((jd-1867216.25)/36524.25);
		b = 1+a-Math.floor(a/4.);
	}
	bb = jd+b+1524;
	cc = Math.floor((bb-122.1)/365.25);
	dd = Math.floor(365.25*cc);
	ee = Math.floor((bb-dd)/30.6001);
	day =(bb-dd)-Math.floor(30.6001*ee);
	month = ee-1;
	if(ee>13) {
		cc += 1;
		month = ee-13;
	}
	year = cc-4716;

	if(adjust) {
		wd = gmod(jd+1-adjust,7)+1;
	} else {
		wd = gmod(jd+1,7)+1;
	}

	iyear = 10631./30.;
	epochastro = 1948084;
	epochcivil = 1948085;

	shift1 = 8.01/60.;
	
	z = jd-epochastro;
	cyc = Math.floor(z/10631.);
	z = z-10631*cyc;
	j = Math.floor((z-shift1)/iyear);
	iy = 30*cyc+j;
	z = z-Math.floor(j*iyear+shift1);
	im = Math.floor((z+28.5001)/29.5);
	if(im==13) im = 12;
	id = z-Math.floor(29.5001*im-29);

	var myRes = new Array(8);

	myRes[0] = day; //calculated day (CE)
	myRes[1] = month-1; //calculated month (CE)
	myRes[2] = year; //calculated year (CE)
	myRes[3] = jd-1; //julian day number
	myRes[4] = wd-1; //weekday number
	myRes[5] = id; //islamic date
	myRes[6] = im-1; //islamic month
	myRes[7] = iy; //islamic year

	return myRes;
}

function hijri_date(adjustment) {
	var wdNames = new Array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi");
	var iMonthNames = new Array("Muharrem", "Safer", "Rebiülevvel", "Rebiülahir", "Cemaziyelevvel", "Cemaziyelahir", "Recep", "Şaban", "Ramazan", "Şevval", "Zilkade", "Zilhicce");
	var iDate = hijcri_calendar(adjustment);

	var results = new Array(4);

	results['day_name'] = wdNames[iDate[4]];
	results['day_val'] = iDate[5];
	results['month_name'] = iMonthNames[iDate[6]];
	results['year'] = iDate[7];
	return results;
}
