
var typ_num = new Array();
var typ_cur = new Array();
var typ_array = new Array();
var typ_timer_id = new Array();

function setopacity(id, value)
{
	var targetobject = document.getElementById(id);
	if (targetobject.filters && targetobject.filters[0])
	{
		if (typeof targetobject.filters[0].opacity=="number")
			targetobject.filters[0].opacity=value*100;
		else
			targetobject.style.filter="alpha(opacity="+value*100+")";
	}
	else if (typeof targetobject.style.MozOpacity!="undefined")
		targetobject.style.MozOpacity=value;
	else if (typeof targetobject.style.opacity!="undefined")
		targetobject.style.opacity=value;
}


function hide_old(typ_id,vv,delay)
{
	document.getElementById('spn_' + typ_id + '_' + typ_cur[typ_id]).style.backgroundColor='#72706F';
	document.getElementById('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]]).style.display='none';
	document.getElementById('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]]).style.visibility='hidden';
	show_next(typ_id,vv,delay);
}

function show_next(typ_id,vv,delay)
{
	if(vv>-1)
	{
		typ_id = vv;
	}
	else
	{
		typ_cur[typ_id]++;
	}
	
	if(typ_cur[typ_id]==typ_num[typ_id])
		typ_cur[typ_id] = 0;

	document.getElementById('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]]).style.display='block';
	document.getElementById('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]]).style.visibility='visible';
	document.getElementById('spn_' + typ_id + '_' + typ_cur[typ_id]).style.backgroundColor='#A40B0D';
	opacity_add('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]],0.05,0.05);
	if(delay)
	{
		setInterval("loop_typ("+typ_id+",-1)",delay);
	}
}

function opacity_add(id,value,step)
{
	setopacity(id,value);
	if(value<1)
		setTimeout("opacity_add('"+id+"',"+(value+step)+","+step+")",1);
}

function opacity_sub(id,value,step)
{
	setopacity(id,value);
	if(value>.05)
		setTimeout("opacity_sub('"+id+"',"+(value-step)+","+step+")",1);
}

function loop_typ2(typ_id,vv,delay)
{
	opacity_sub('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]],1,0.05);
	setTimeout("hide_old('"+typ_id+"',"+(vv)+","+delay+")",1000);
}

function mouse_over(id)
{
	id.className='slide_over';
	id['className']='slide_over';
}

function mouse_out(id)
{
	id.className='slide_td';
	id['className']='slide_td';
}

function loop_typ(typ_id,vv,is_slide)
{
	if(is_slide)
	{
		document.getElementById('slide_pic_' + typ_id + '_' + typ_cur[typ_id]).style.display='none';
		document.getElementById('slide_pic_' + typ_id + '_' + typ_cur[typ_id]).style.visibility='hidden';
		mouse_out(document.getElementById('td_' + typ_id + '_' + typ_cur[typ_id]));
	}
	else
	{
		document.getElementById('spn_' + typ_id + '_' + typ_cur[typ_id]).style.backgroundColor='#72706F';
	}
	document.getElementById('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]]).style.display='none';
	document.getElementById('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]]).style.visibility='hidden';
	if(vv>-1)
	{
		timer_id = typ_timer_id[typ_id];
		if(typ_timer_id[typ_id] && timer_id>0)
		{
			clearTimeout(timer_id);
			typ_timer_id[typ_id] = 0;timer_id = 0;
		}
		typ_cur[typ_id]=vv;
	}
	else
	{
		typ_cur[typ_id]++;
	}
	
	if(typ_cur[typ_id]==typ_num[typ_id])
		typ_cur[typ_id] = 0;

	document.getElementById('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]]).style.display='block';
	document.getElementById('news_' + typ_id + '_' + typ_array[typ_id][typ_cur[typ_id]]).style.visibility='visible';
	
	if(is_slide)
	{
		document.getElementById('slide_pic_' + typ_id + '_' + typ_cur[typ_id]).style.display='block';
		document.getElementById('slide_pic_' + typ_id + '_' + typ_cur[typ_id]).style.visibility='visible';
		mouse_over(document.getElementById('td_' + typ_id + '_' + typ_cur[typ_id]));
	}
	else
	{
		document.getElementById('spn_' + typ_id + '_' + typ_cur[typ_id]).style.backgroundColor='#A40B0D';
	}
	
	timer_id = setTimeout("loop_typ('"+typ_id+"',"+(vv)+","+is_slide+")",5000);
	typ_timer_id[typ_id] = timer_id;
}

function submenu(szDivID, iState,type) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
       document.layers[szDivID].visibility = iState ? "show" : "hide";
       document.layers[szDivID].display = iState ? "block" : "none";
	   
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
        obj.style.visibility = iState ? "visible" : "hidden";
        obj.style.display = iState ? "block" : "none";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
        document.all[szDivID].style.display = iState ? "block" : "none";
    }
}



function ConvertToUnicode(s)
{
	return s.replace(/0/g, '\u06F0').replace(/1/g, '\u06F1').replace(/2/g, '\u06F2').replace(/3/g, '\u06F3').replace(/4/g, '\u06F4').replace(/5/g, '\u06F5').replace(/6/g, '\u06F6').replace(/7/g, '\u06F7').replace(/8/g, '\u06F8').replace(/9/g, '\u06F9');
}
function SetTitle(d)
{
	var month = document.getElementById("month");
	var city  = document.getElementById("cities")
	document.getElementById("tdTitle").innerHTML = "اوقات شرعی " + ConvertToUnicode(d + " " + month.options[month.selectedIndex].text + " " + document.getElementById("spanYear").innerHTML) + " (به افق " + city.options[city.selectedIndex].text + ")";
}

function Calculate(i,m,d)
{	
	var lgs= [0,49.70,48.30,45.07,51.64,48.68,46.42,57.33,56.29,50.84,59.21,46.28,51.41,48.34,49.59,60.86,48.50,53.06,53.39,47.00,50.86,52.52,50.00,50.88,57.06,47.09,54.44,59.58,48.52,51.59,54.35];
	var lats=[0,34.09,38.25,37.55,32.68,31.32,33.64,37.47,27.19,28.97,32.86,38.08,35.70,33.46,37.28,29.50,36.68,36.57,35.58,35.31,32.33,29.62,36.28,34.64,30.29,34.34,36.84,36.31,34.80,30.67,31.89];
		
	lg =lgs[i].toString();
	lat	= lats[i].toString();
	main(m, d, lg, lat);
}

function GetAzanMorning(m, d, lg, lat)
{
//	var lg=52.5125;
//	var lat=29.635;
	var ep=sun(m,d,4,lg);
	var zr=ep[0];
	delta=ep[1];
	ha=loc2hor(108.0,delta,lat);
	var t1=Round(zr-ha,24);
	ep=sun(m,d,t1,lg);
	zr=ep[0];
	delta=ep[1];
	ha=loc2hor(108.0,delta,lat);
	var t1=Round(zr-ha,24);

	return hms(t1, m);
}

function GetSunrise(m, d, lg, lat)
{
//
//   t2= Sun rise
//
	var ep=sun(m,d,6,lg);
	var zr=ep[0];
	delta=ep[1];
	ha=loc2hor(90.833,delta,lat);
	var t2=Round(zr-ha,24);
	ep=sun(m,d,t2,lg);
	zr=ep[0];
	delta=ep[1];
	ha=loc2hor(90.833,delta,lat);
	t2=Round(zr-ha,24);
	
	return hms(t2, m);
}

function GetAzanNoon(m, d, lg, lat)
{
//	
//	zr=Zohr
//
	var ep=sun(m,d,12,lg)
	ep=sun(m,d,ep[0],lg)
	var zr=ep[0];
	
	return hms(zr, m);
}

function GetSunset(m, d, lg, lat)
{
//
//   t2= Sun set
//
	var ep=sun(m,d,18,lg)
	var zr=ep[0];
	delta=ep[1];
	ha=loc2hor(90.833,delta,lat)
	var t3=Round(zr+ha,24)
	ep=sun(m,d,t3,lg)
	zr=ep[0];
	delta=ep[1];
	ha=loc2hor(90.833,delta,lat)
	t3=Round(zr+ha,24)
	
	return hms(t3, m);
}

function GetAzanNight(m, d, lg, lat)
{
	var ep=sun(m,d,18.5,lg)
	var zr=ep[0];
	delta=ep[1];
	ha=loc2hor(94.3,delta,lat)
	var t4=Round(zr+ha,24)
	ep=sun(m,d,t4,lg)
	zr=ep[0];
	delta=ep[1];
	ha=loc2hor(94.3,delta,lat)
	t4=Round(zr+ha,24)
	return hms(t4, m);
}


function main(m, d, lg, lat)
{
	var t1 = GetAzanMorning(m, d, lg, lat);
	t1 = t1.substring(0,5);
	var t2 = GetSunrise(m, d, lg, lat);
	t2 = t2.substring(0,5);
	var t3 = GetAzanNoon(m, d, lg, lat);
	t3 = t3.substring(0,5);
	var t4 = GetSunset(m, d, lg, lat);
	t4 = t4.substring(0,5);
	var t5 = GetAzanNight(m, d, lg, lat);
	t5 = t5.substring(0,5);


	document.getElementById('oghat_sobh').innerHTML = t1;
	document.getElementById('oghat_aftab').innerHTML = t2;
	document.getElementById('oghat_zohr').innerHTML = t3;
	document.getElementById('oghat_maghreb').innerHTML = t5;


}

function sun(m,d,h,lg)
{
	if(m<7)
		d= 31*(m-1)+d+h/24;
	else
		d=6+30*(m-1)+d+h/24;
	var M=74.2023+0.98560026*d;
	var L=-2.75043+0.98564735*d;
	var lst=8.3162159+0.065709824*Math.floor(d)+1.00273791*24*(d%1)+lg/15;	
	var e=0.0167065;
	var omega=4.85131-0.052954*d;
	var ep=23.4384717+0.00256*cosd(omega);
	var ed=180.0/Math.PI*e;
	var u=M;
	for(var i=1;i<5;i++)
		u=u-(u-ed*sind(u)-M)/(1-e*cosd(u));
	var v=2*atand(tand(u/2)*Math.sqrt((1+e)/(1-e)));
	var theta=L+v-M-0.00569-0.00479*sind(omega);
	var delta=asind(sind(ep)*sind(theta));
	var alpha=180.0/Math.PI*Math.atan2(cosd(ep)*sind(theta),cosd(theta));
	if(alpha>=360)
		alpha-=360;
	var ha=lst-alpha/15;
	var zr=Round(h-ha,24);
	return ([zr,delta])
}


function sind(x){return(Math.sin(Math.PI/180.0*x));}
function cosd(x){return(Math.cos(Math.PI/180.0*x));}
function tand(x){return(Math.tan(Math.PI/180.0*x));}
function atand(x){return(Math.atan(x)*180.0/Math.PI);}
function asind(x){return(Math.asin(x)*180.0/Math.PI);}
function acosd(x){return(Math.acos(x)*180.0/Math.PI);}
function sqrt(x){return(Math.sqrt(x));}
function frac(x){return(x%1);}
function floor(x){return(Math.floor(x));}
function ceil(x){return(Math.ceil(x));}
function loc2hor(z,d,p){
	return(acosd((cosd(z)-sind(d)*sind(p))/cosd(d)/cosd(p))/15);
}
function Round(x,a){
	var tmp=x%a;
	if(tmp<0)
		tmp+=a;
	return(tmp)
}
function hms(x, month)
{
	x=Math.floor(3600*x);
	h=Math.floor(x/3600);
	mp=x-3600*h;
	m=Math.floor(mp/60);
	s=Math.floor(mp-60*m);
	if (month<6)
		h++;	
	return(((h<10)? "0" : "")+h.toString()+":"+((m<10)? "0" : "")+m.toString()+":"+((s<10)? "0" : "")+s.toString())
}


var tmin=8;
var tmax=30;



var tgs = new Array( 'div','td','tr','p','span','a','h1','h2','h3','h4');

function c_f_s(id,inc)
{
	if(id==null) return;
	var s = 11;
	if(id.style.fontSize)
	    s = parseInt(id.style.fontSize.replace("px",""));
	s =  s + inc;

	if(s>tmax) s = tmax;
   	if(s<tmin) s = tmin;
    id.style.fontSize = s+"px";
	id.style.lineHeight = Math.floor(s*1.2)+"px";
}

function change_font_size(trgt,inc ) 
{
	if (!document.getElementById) return;
	var d = document,cEl = null,i,j,cTags;
	
	if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ];

	c_f_s(cEl,inc);

	for ( i = 0 ; i < tgs.length ; i++ ) {
		cTags = cEl.getElementsByTagName( tgs[ i ] );
		for ( j = 0 ; j < cTags.length ; j++ ) c_f_s(cTags[ j ],inc);
	}
}

