﻿// JScript File
function storeCaret(textEl) {
	if (textEl.createTextRange) 
	textEl.caretPos = document.selection.createRange().duplicate();

}
var lang = 1;	// 1: Farsi, 0: English

// Farsi keyboard map based on ISIRI-2901
var farsikey = [
   0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
   0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
   0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
   0x0038, 0x0039, 0x003A, 0x0643, 0x003E, 0x003D, 0x003C, 0x061F,
   0x066C, 0x0624, 0x200C, 0x0698, 0x0649, 0x064D, 0x0625, 0x0623,
   0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
   0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
   0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
   0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
   0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
   0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
   0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E ];


function changeLang() {
    if (lang == 0) {
    lang = 1;
    return true;
  }
  else {
    lang = 0;
    return true;
  }
}

function FKeyDown ()
{
 var key = window.event.keyCode;
 if (key == 119)
    {
        if (lang == 0) 
        {
            lang = 1;
            window.defaultStatus="Farsi Key Mode Disigned By AravCo. IT Group ";
            return true;
        }
        else 
        {
          lang = 0;
          window.defaultStatus = "English Key Mode Disigned By AravCo. IT Group";
          return true;
        }

    }

}
function FKeyPress() 
{
   var key = window.event.keyCode;

  if (key == 13) { window.event.keyCode = 13; return true; }

   if (lang == 1) 
   { // If Farsi
       window.defaultStatus = "Farsi Key Mode Disigned By AravCo. IT Group";
     if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ
       window.event.keyCode = 0x200C;
     else
       window.event.keyCode = farsikey[key - 0x0020];
     if (farsikey[key - 0x0020] == 92) {
        window.event.keyCode = 0x0698;
     }
     if (farsikey[key - 0x0020] == 8205) {
        window.event.keyCode = 0x067E;
     }
   }
   else
   {
       window.defaultStatus = "English Key Mode Disigned By AravCo. IT Group";
   }
   return true;
}

function change(obj){
if (lang==0)
lang=1
else
lang=0;
obj.focus();
}

function IsInteger()
{
    if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;
}    

function numberFilter(e, nozero)
{
	var kcode;
	var nozero = (nozero == null) ? false : nozero;
	
	if( window.event )	kcode = window.event.keyCode;
	else if( e.which )	kcode = e.which;
	
	var startcode = 48;
	if( nozero )	startcode = 49;

	return ( 	(kcode >= startcode && kcode <= 57) || 
						kcode == 8 || kcode == 9 || kcode == 13 ||
						typeof(kcode) == "undefined" );
}

function farsiInputFilter( obj )
{
	if( obj.type != "text" )	return;
	
	var textfld = obj.value;
	var i, chCode;
	var tmpStr;
	var retStr = "";

	for( i = 0; i < textfld.length; i++ )	{
		chCode = textfld.charCodeAt(i);
		switch( chCode )	{
			case 1610:	// YE
				tmpStr = String.fromCharCode(1740);
				break;

			case 1603:	// GE
				tmpStr = String.fromCharCode(1705);
				break;

			default:
				tmpStr = String.fromCharCode( chCode );
		}

		retStr += tmpStr;
	}

	obj.value = retStr;
}
function FarsiKeyDown()
{
    //var FarsiMode;
    //FarsiMode=1;
    //if(window.event.shiftKey && window.event.altKey)
    //    if(FarsiMode==0)
    //    {
    //        FarsiMode=1;
    //        window.defaultStatus="Farsi Key Mode Disigned By AravCo. IT Group";
    //    }
    //    else
    //    {
    //        FarsiMode=0;
    //        window.defaultStatus="English Key Mode Disigned By AravCo. IT Group";
    //   }
}
function FarsiMode(myfield,e)
{
var key;

        if (window.event)
        key = window.event.keyCode;
        else if (e)
        key = e.which;
        if (key>31)
        if (key<128)
        {
        if (window.event)
        window.event.keyCode=' !"#$%،گ)(×+و-./0123456789:ك,=.؟@ِذ}ىُىلآ÷ـ،/’د×؛َءٍف‘{ًْإ~جژچ^_پشذزيثبلاهتنمئدخحضقسفعرصطغظ<|>ّ'.charCodeAt(key-32);
        else if (e)
        e.which=' !"#$%،گ)(×+و-./0123456789:ك,=.؟@ِذ}ىُىلآ÷ـ،/’د×؛َءٍف‘{ًْإ~جژچ^_پشذزيثبلاهتنمئدخحضقسفعرصطغظ<|>ّ'.charCodeAt(key-32);
        }
        return true;
        }
   
   function StatusChenged(_ddlName,_imgName)
   {
        switch(document.getElementById(_ddlName).selectedIndex)
        {
            case '0':
                document.getElementById(_imgName).src="../App_Themes/Icons/Start.png" ;
                break;
            case '1':
                document.getElementById(_imgName).src="../App_Themes/Icons/Save.png" ;
                break;
            case '2':
                document.getElementById(_imgName).src="../App_Themes/Icons/Search.png" ;
                break;
            case '3':
                document.getElementById(_imgName).src="../App_Themes/Icons/Start.png" ;
                break;
        }
   }

// Fix Flash

window.onload = function() {
 // clock(); 
  timerONE=window.setTimeout }
    function fixFlash() {
     objects = document.getElementsByTagName("object");
     for (var i = 0; i < objects.length; i++)
   {
  objects[i].outerHTML = objects[i].outerHTML;
}
}



//..................For Time And Date............................

g_days_in_month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
j_days_in_month = new Array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);
 
function div(a,b) {
  return Math.floor(a/b);
}

function gregorian_to_jalali(g /* array containing year, month, day*/ )
{
   var gy, gm, gd;
   var jy, jm, jd;
   var g_day_no, j_day_no;
   var j_np;
 
   var i;

   gy = g[0]-1600;
   gm = g[1]-1;
   gd = g[2]-1;

   g_day_no = 365*gy+div((gy+3),4)-div((gy+99),100)+div((gy+399),400);
   for (i=0;i<gm;++i)
      g_day_no += g_days_in_month[i];
   if (gm>1 && ((gy%4==0 && gy%100!=0) || (gy%400==0)))
      /* leap and after Feb */
      ++g_day_no;
   g_day_no += gd;
 
   j_day_no = g_day_no-79;
 
   j_np = div(j_day_no, 12053);
   j_day_no %= 12053;
 
   jy = 979+33*j_np+4*div(j_day_no,1461);
   j_day_no %= 1461;
 
   if (j_day_no >= 366) {
      jy += div((j_day_no-1),365);
      j_day_no = (j_day_no-1)%365;
   }
 
   for (i = 0; i < 11 && j_day_no >= j_days_in_month[i]; ++i) {
      j_day_no -= j_days_in_month[i];
   }
   jm = i+1;
   jd = j_day_no+1;

   return new Array(jy, jm, jd);
}

function jalali_to_gregorian(j /* array containing year, month, day*/ )
{
   var gy, gm, gd;
   var jy, jm, jd;
   var g_day_no, j_day_no;
   var leap;

   var i;

   jy = j[0]-979;
   jm = j[1]-1;
   jd = j[2]-1;

   j_day_no = 365*jy + div(jy,33)*8 + div((jy%33+3),4);
   for (i=0; i < jm; ++i)
      j_day_no += j_days_in_month[i];

   j_day_no += jd;

   g_day_no = j_day_no+79;

   gy = 1600 + 400*div(g_day_no,146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
   g_day_no = g_day_no % 146097;

   leap = 1;
   if (g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
   {
      g_day_no--;
      gy += 100*div(g_day_no,36524); /* 36524 = 365*100 + 100/4 - 100/100 */
      g_day_no = g_day_no % 36524;
      
      if (g_day_no >= 365)
         g_day_no++;
      else
         leap = 0;
   }

   gy += 4*div(g_day_no,1461); /* 1461 = 365*4 + 4/4 */
   g_day_no %= 1461;

   if (g_day_no >= 366) {
      leap = 0;

      g_day_no--;
      gy += div(g_day_no, 365);
      g_day_no = g_day_no % 365;
   }

   for (i = 0; g_day_no >= g_days_in_month[i] + (i == 1 && leap); i++)
      g_day_no -= g_days_in_month[i] + (i == 1 && leap);
   gm = i+1;
   gd = g_day_no+1;

   return new Array(gy, gm, gd);
}

function en_fa4( e ) //Change persian NO. to english NO. Powered by edris D.Shani (dawn.ir)
{
	var a, b, c, d, x ;
	no = new Array( "&#1632" , "&#1633" , "&#1634" , "&#1635" , "&#1636" , "&#1637" , "&#1638" , "&#1639" , "&#1640" , "&#1641" );
	 if ( 1000 <= e <10000 )
	 {
		 a= div(e,1000);  x= e%1000; b= div(x,100); x= x%100; c= div(x,10); d= x%10;
		 return no[a] + no[b] + no[c] + no[d];
	 }
	 if ( 100 <= e < 1000 )
	  {
		  a = div(e,100); d = e%100; b = div(d,10); c = d%10;
		  return no[a] + no[b] + no[c];
	  }
	  if ( 10 <= e <100 )
	  {
		  a = div(e,10); b = e%10;
		  return no[a] + no[b];
	  }
	 if ( e <= 9 )
	  {
		  return no[e]
	  }
}

function en_fa2( e )
{
	 var a, b;
	 no = new Array( "&#1632" , "&#1633" , "&#1634" , "&#1635" , "&#1636" , "&#1637" , "&#1638" , "&#1639" , "&#1640" , "&#1641" );
	 if ( 10 <= e <100 )
	  {
		  a = div(e,10); b = e%10;
		  return no[a] + no[b];
	  }
	 if ( e <= 9 )
	  {
		  return no[e]
	  }
}

function jalali_today() {
  Today = new Date();
  j = gregorian_to_jalali(new Array(
                          Today.getFullYear(),
                          Today.getMonth()+1,
                          Today.getDate()
                          ));
  return j[2]+"/"+j[1]+"/"+j[0];
}

function getPersianDate( d )
{
	var a, b;
    week = new Array( "یکشنبه" , "دوشنبه" , "سه شنبه" , "چهار شنبه" , "پنج شنبه" , "جمعه" , "شنبه" );
    month = new Array( "فروردین", "اردیبهشت", "خرداد",
                       "تیر", "مرداد", "شهریور",
                       "مهر", "آبان", "آذر",
                       "دی", "بهمن", "اسفند" );
    j = gregorian_to_jalali( new Array(d.getFullYear(),d.getMonth()+1,d.getDate()) );
	a = en_fa2( j[2] ); b= en_fa4( j[0] );
    return week[d.getDay()] + " ، " + a + " " + month[j[1] - 1] + " " + b;
}

function clock()//Powered by edris D.Shani (dawn.ir)
{
	var time=new Date();
	var hour=time.getHours();
	var minute=time.getMinutes();
	var second=time.getSeconds(); 
	var cm;
	if ( 3<= hour && hour <5 ){
	  cm= ":: نیمه شب خوش ";}
	  else if ( 5<= hour && hour <11 ){
	  cm= ":: صبح بخیر ";}
	  else if ( 11<= hour && hour <14 ){
	  cm= ":: ظهر بخیر ";}
	  else if ( 14<= hour && hour <19 ){
	  cm= ":: عصر بخیر ";}
	  else if ( 19<= hour && hour <24 ){
	  cm= ":: شب بخیر ";}
	  else if ( 0<= hour && hour <3 ){
	  cm= ":: نیمه شب خوش ";}
	  else {
	  cm= ":: وقت بخیر";
	  }
	document.getElementById('edris').innerHTML = cm+" :: "+en_fa2(hour)+":"+en_fa2(minute)+":"+en_fa2(second);
	setTimeout('clock()',1000);
}







