try {
  if(userlang=='undefined' || userlang=='' || userlang==null) userlang='arabic';
}
catch (e) {
  var userlang="arabic";
}


var month=new Array(12);
if(userlang=="arabic") {
 month[0]="محرم";
 month[1]="صفر";
 month[2]="ربيع الأول";
 month[3]="ربيع الثاني";
 month[4]="جمادى الأول";
 month[5]="جمادى الثاني";
 month[6]="رجب";
 month[7]="شعبان";
 month[8]="رمضان";
 month[9]="شوال";
 month[10]="ذو القعده";
 month[11]="ذو الحجه";
} else {
 month[0]="Moharram";
 month[1]="Safar";
 month[2]="Rabee Awal";
 month[3]="Rabee Thani";
 month[4]="Jumada Awal";
 month[5]="Jumada Thani";
 month[6]="Rajab";
 month[7]="Shaaban";
 month[8]="Ramadhan";
 month[9]="Shawal";
 month[10]="Thu El Geeadah";
 month[11]="Thu El hejjah";
}


function isValidDate(dateStr, format) {
    if (format == null) { format = "DMY"; }
    format = format.toUpperCase();
    if (format.length != 3) { format = "MDY"; }
    if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) { format = "MDY"; }
    if (format.substring(0, 1) == "Y") { // If the year is first
       var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
       var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
    } else if (format.substring(1, 2) == "Y") { // If the year is second
       var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
       var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
    } else { // The year must be third
       var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
       var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
    }
    // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
    if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
    var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
    // Check to see if the 3 parts end up making a valid date
    if (format.substring(0, 1) == "M") { var mm = parts[0]; } else _
       if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
    if (format.substring(0, 1) == "D") { var dd = parts[0]; } else _
       if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
    if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else _
       if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
    if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
    if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
    var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
    if (parseFloat(dd) != dt.getDate()) { return false; }
    if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
    return true;
 }



function getalphadate(d) {
  var regDate = '^(19[0-9]{2}|2[0-9]{3})-(0[1-9]{1}|1[0-2]{1}){1}-(0[1-9]|(1|2)[0-9]|3[0-1]){1}$';
  if(!d.match(regDate)) { 
   return '';
  }

  var alphadate = '';
  if(userlang=='arabic') {
	  alphadate = 'غير معروف';
  } else {
	  alphadate = 'Unknown';
  }

	  var dx = new Object();
	  dx.CYear = d.substring(0,4);
	  dx.CMonth= d.substring(5,7);
	  dx.CDay  = d.substring(8,10);
//alert("day:"+dx.CDay+" month:"+dx.CMonth+" year:"+dx.CYear);

	  dx.HDay  = '';
	  dx.HMonth= '';
	  dx.HYear = '';
	  dx.JD = '';
	  dx.wd = '';
	  chrToIsl(dx);

//alert("day:"+dx.HDay+" month:"+dx.HMonth+" year:"+dx.HYear);

	  var nm = dx.HMonth;
	  if (nm>1) {
		  nm=nm-1;
	  } else {
		  nm=nm
	  }
      alphadate = dx.HDay + " " + month[dx.HMonth-1] + " " + dx.HYear;
//      alert("Gregorian date : "+alphadate);

	  return alphadate
}

function writearabicdate(d) {
  document.write(getalphadate(d));
}

function intPart(floatNum){
if (floatNum< -0.0000001){
	 return Math.ceil(floatNum-0.0000001)
	}
return Math.floor(floatNum+0.0000001)	
}

 

function weekDay(wdn){
					if(wdn==0){
						return "الأثنين"
						}
					if(wdn==1){
						return "الثلاثاء"
						}
					if(wdn==2){
						return "الأربعاء"
						}
					if(wdn==3){
						return "الخميس"
						}
					if(wdn==4){
						return "الجمعة"
						}
					if(wdn==5){
						return "السبت"
						}
					if(wdn==6){
						return "الأحد"
						}
	return ""

}
function chrToIsl(arg) {
	d=parseInt(arg.CDay)
	m=parseInt(arg.CMonth)
	y=parseInt(arg.CYear)
					if ((y>1582)||((y==1582)&&(m>10))||((y==1582)&&(m==10)&&(d>14))) 
						{
						jd=intPart((1461*(y+4800+intPart((m-14)/12)))/4)+intPart((367*(m-2-12*(intPart((m-14)/12))))/12)-
	intPart( (3* (intPart(  (y+4900+    intPart( (m-14)/12)     )/100)    )   ) /4)+d-32075
						}
						else
						{
						jd = 367*y-intPart((7*(y+5001+intPart((m-9)/7)))/4)+intPart((275*m)/9)+d+1729777
						}
					arg.JD.value=jd
					arg.wd.value=weekDay(jd%7)
					l=jd-1948440+10632
					n=intPart((l-1)/10631)
					l=l-10631*n+354
					j=(intPart((10985-l)/5316))*(intPart((50*l)/17719))+(intPart(l/5670))*(intPart((43*l)/15238))
					l=l-(intPart((30-j)/15))*(intPart((17719*j)/50))-(intPart(j/16))*(intPart((15238*j)/43))+29
					m=intPart((24*l)/709)
					d=l-intPart((709*m)/24)
					y=30*n+j-30

	arg.HDay=d
	arg.HMonth=m
	arg.HYear=y
}
function islToChr(arg) {  // arg = form
	d=parseInt(arg.HDay)
	m=parseInt(arg.HMonth)
	y=parseInt(arg.HYear)
	jd=intPart((11*y+3)/30)+354*y+30*m-intPart((m-1)/2)+d+1948440-385
	arg.JD=jd
	arg.wd=weekDay(jd%7)
					if (jd> 2299160 )
						{
						 l=jd+68569
						 n=intPart((4*l)/146097)
						l=l-intPart((146097*n+3)/4)
						 i=intPart((4000*(l+1))/1461001)
						l=l-intPart((1461*i)/4)+31
						 j=intPart((80*l)/2447)
						d=l-intPart((2447*j)/80)
						l=intPart(j/11)
						m=j+2-12*l
						y=100*(n-49)+i+l
						}	
					else	
						{
						 j=jd+1402
						 k=intPart((j-1)/1461)
						 l=j-1461*k
						 n=intPart((l-1)/365)-intPart(l/1461)
						 i=l-365*n+30
						j=intPart((80*i)/2447)
						d=i-intPart((2447*j)/80)
						i=intPart(j/11)
						m=j+2-12*i
						y=4*k+n+i-4716
						}

	arg.CDay=d
	arg.CMonth=m
	arg.CYear=y

}





