
// The script for the calendar is dynamic but the script for downloading the data has not been made dynamic.
// This script is being generated by a program and has to be uploaded each time new files are uploaded 
// This is program is yet to be optimized as the actual functions of the program is to be defined

var doc = document.forms[1];
var today = new Date();
var mkt = "";
var weekdays = new Array('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT');
var months = new Array('JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC');
var numdays = getDays(today.getMonth()-1,today.getYear());
 var p22002 = new Array(numdays); u22002 = new Array(numdays); s22002 = new Array(numdays); k22002 = new Array(numdays);
 var e22002 = new Array(numdays); l22002 = new Array(numdays); o22002 = new Array(numdays); j22002 = new Array(numdays);
 var q22002 = new Array(numdays); y22002 = new Array(numdays); r22002 = new Array(numdays); a22002 = new Array(numdays);
 var b22002 = new Array(numdays); 
 for (var ar=0;ar <= numdays;ar++) {
    u22002[ar]=false;	p22002[ar]=false;     s22002[ar]=false; 	k22002[ar]=false; 
    e22002[ar]=false;   l22002[ar]=false;     o22002[ar]=false; 	j22002[ar]=false; 
    q22002[ar]=false;  	y22002[ar]=false;     r22002[ar]=false; 	a22002[ar]=false; 
	b22002[ar]=false; 
	}

for (var ind=0;ind <= 9;ind++)
	{
    p22002[ind]=true;
    u22002[ind]=true;
    s22002[ind]=true;
    k22002[ind]=true;
    o22002[ind]=true;
    q22002[ind]=true;
    b22002[ind]=true;
	}
 

     function setColors(field, d, m, y)  {
       var doc = document.forms[1];
	   var fldnm = field.name;
		  if (bType() == "nav") {
		   if (document.forms[1].SelMkt.options[0].selected== true)
		      mkt = "p";
		   if (document.forms[1].SelMkt.options[1].selected== true)
		      mkt = "u";
		   if (document.forms[1].SelMkt.options[2].selected== true)
		      mkt = "s";
		   if (document.forms[1].SelMkt.options[3].selected== true)
		       mkt = "k";
		   if (document.forms[1].SelMkt.options[4].selected== true)
		       mkt = "e";
		   if (document.forms[1].SelMkt.options[5].selected== true)
		       mkt = "l";
		   if (document.forms[1].SelMkt.options[6].selected== true)
		      mkt = "o";
		   if (document.forms[1].SelMkt.options[7].selected== true)
		      mkt = "j";
		   if (document.forms[1].SelMkt.options[8].selected== true)
		      mkt = "q";
		   if (document.forms[1].SelMkt.options[9].selected== true)
		      mkt = "y";
		   if (document.forms[1].SelMkt.options[10].selected== true)
		       mkt = "r";
		   if (document.forms[1].SelMkt.options[11].selected== true)
		      mkt = "a";
		   if (document.forms[1].SelMkt.options[12].selected== true)
		      mkt = "b";
			  }
		 else {
		  mkt = document.forms[1].SelMkt.value;
		  }
        if(bType() == "ie" && doc.MonYr.value == months[today.getMonth()-1]+" "+today.getYear()) { 
			  for (var itr=0;itr <= 12;itr++)
			  {
              if (eval(mkt+"22002[d]")==true && document.forms[1].SelMkt.options[itr].selected==true) {
                         field.style.color = "crimson";
						 break;
						 } 
              else {
			  field.style.color = "#000080";
				}
			  }
        }
	   else {
	   if (bType() == "ie") {
	   field.style.color = "#000080";}
      }
       }
     function onerror(msg, url, linenum)  {
	alert(msg + "; " + linenum);
	return true;
     }

     function isMac()  {
          var p = navigator.platform.substring(0, 3);
          if(p == "Mac") return "true";
          else return "false";
     }

     function macStyle()  {
          if (bType() == "nav") return false;
          var p = navigator.platform.substring(0, 3);
          if(p == "Mac")  {  document.forms[1].MonYr.style.color = "Navy";         }
     }
     function answer(field)  {
         var doc = document.forms[1];
         //var opendoc = opener.document.forms[1];
         var cDate = new Date();
         cDate.setMonth(doc.MonthField.value);
         cDate.setDate(field.value);
         cDate.setYear(doc.YearField.value);
         var wd = cDate.getDay();
         var m = cDate.getMonth()+1;
          var y = (bType() == "nav") ? cDate.getYear()+1900 : cDate.getYear();
          var d = cDate.getDate();
          // insert 
		  var psswd = document.forms[1].P1.value;
		  var m1=m;
		  if (m <= 9) {
		  m="0"+m;
		  }
		  var d1=d;
		  if (d <=9) {
		  d="0"+d;
		  }
		  var y1=y;
		  if (y > 2000) {
		   y = y-2000;
		   if (y <= 9) {
		    y="0"+y; 
		   } }
          else {
		    if (y = 2000) {
		  	y="00";
		  	}
		  	else {
		  	y = y-1900;
            }
		  }
//document.forms[1].MonYr.enabled;
         document.forms[1].MonYr.focus();
//document.forms[1].MonYr.disabled;

		 var temp=mkt+m1+y1+"["+d1+"]";
		 if (y1 == 2002 && m1 == 2)  {
		 if (eval(temp)==false)  {
             alert("The log file for the chosen date & market does not exist");
			 }
		 else {
    	 	   if (bType() == "ie") {
	         field.style.color = "ff00ff";}
    		 window.document.location = "http://www.arabresearch.com/downloads/"+mkt+d+m+y+".dlg";	
		 } 
         }
		 else {
		 alert("The log file for the chosen date & market does not exist");
		 }
     }
     function setDate(index)  { 
	  var doc = document.forms[1];
	  doc.Status.value = index;
	  var fields = doc.elements;
	  var e = fields.length;	  
	  // setting today's date
	  if(index == 0) {
		doc.MonthField.value = today.getMonth();
		var y = parseInt(today.getYear());
		doc.YearField.value = (bType() == "nav") ? (y+1900) : y;
		doc.DayField.value = today.getDate();
		doc.DaysInMonthField.value = getDays(today.getMonth(), today.getYear());
		doc.WeekDayField.value = weekdays[today.getDay()];
		doc.MonthNameField.value = months[today.getMonth()];
		doc.MonYr.value = doc.MonthNameField.value + " " + doc.YearField.value;
		fillCalendar();
		macStyle();
		//st 10 to 12
	     for(var h=12; h<e; h++)  {
	         // setColors(fields[h], doc.DayField.value, doc.MonthField.value);
			  setColors(fields[h], fields[h].value, doc.MonthField.value, doc.YearField.value);
          }
		return today.getMonth() + "/" + today.getDate() + "/" + today.getYear();
        
	  }
	  // going forward or back a month
	  var calDate = new Date();
	  calDate.setMonth(doc.MonthField.value);
	  calDate.setDate(doc.DayField.value);
	  calDate.setYear(doc.YearField.value);
	  var year = parseInt(calDate.getYear());
	  if(index == -1)  {
		if (calDate.getMonth() == 0) {
			calDate.setMonth(11);
			if (bType() == "nav") {
			calDate.setYear(1900+(year-1)); }
			else {
			calDate.setYear(year-1); 
			}
			year = parseInt(calDate.getYear());
			doc.DaysInMonthField.value = 31;
		}
		else {
			calDate.setMonth(calDate.getMonth() - 1);
		     doc.DaysInMonthField.value = getDays((calDate.getMonth()), calDate.getYear());
		}
		     doc.MonthField.value = calDate.getMonth();
		     year = parseInt(calDate.getYear());
			if (bType() == "nav")
			     doc.YearField.value = 1900 + year;
			else {
			     var theYear = (year < 2000) ? year+1900 : year;
			     doc.YearField.value = theYear;
                 // st change 10 to 12
	       	     for(var h=12; h<e; h++)  {
//	                setColors(fields[h], doc.DayField.value,doc.MonthField.value,doc.YearField.value);
	                setColors(fields[h], fields[h].value,doc.MonthField.value,doc.YearField.value);
                    }
			}
	  }
	  else {
		if (calDate.getMonth() == 11) {
			calDate.setMonth(0);
			if (bType() == "nav") { calDate.setYear(calDate.getYear()+1901); }
			else { calDate.setYear(calDate.getYear()+1); }
			doc.DaysInMonthField.value = 31;
		}
		else {
			calDate.setMonth(calDate.getMonth() + 1);
		     doc.DaysInMonthField.value = getDays((calDate.getMonth()), calDate.getYear());
		}
		     doc.MonthField.value = calDate.getMonth();
			if (bType() == "nav") {
			     doc.YearField.value = (1900 + calDate.getYear());
			}
			else {
			     var theYear = (calDate.getYear()<2000) ? (1900+calDate.getYear()) : calDate.getYear();
			     doc.YearField.value = theYear;
			}
	  }
	  	doc.WeekDayField.value = weekdays[calDate.getDay()];
		doc.MonthNameField.value = months[calDate.getMonth()];
		doc.MonYr.value = doc.MonthNameField.value + " " + doc.YearField.value;
		fillCalendar();
		macStyle();
		// st change 10 to 12
	     for(var h=12; h<e; h++)  {
	          setColors(fields[h], fields[h].value, doc.MonthField.value, doc.YearField.value);
          }
		return calDate.getMonth() + "/" + calDate.getDate() 
			+ "/" + calDate.getYear();
     }
     
     function fillCalendar()  {
          var doc = document.forms[1];
          var cDate = new Date();
          cDate.setMonth(doc.MonthField.value);
          cDate.setDate(1);
          cDate.setYear(doc.YearField.value);
          var max = doc.DaysInMonthField.value;
          var wd = cDate.getDay();
          var fields = doc.elements;
          var e = fields.length;
          var startday = 0;
          clearDays();
          for(var k=0; k<7; k++)  {
                    if (wd == k) { startday = k; }
          }
	      //st changed 11 to 13 and 12 to 14
          fields[startday+13].value = 1;
		  
          if(bType() == "ie") { 
                    fields[startday+13].style.visibility = "visible";
          }
          else fields[startday+13].visibility = "show";
          var s = startday+14;
 
          for (var d=s; d<e; d++)  {
	var v = parseInt(fields[d-1].value)+1;
	if (v < (parseInt(max)+1)) {
	        fields[d].value = v;
	        if(bType() == "ie")  {   fields[d].style.visibility = "visible";  } 
                        else fields[d].visibility = "show";
               }
	          else break;
          }

     }
     function clearDays()  {
         var doc = document.forms[1];
         var fields = doc.elements;
         var e = fields.length
		 // st change 10 to 12
          for (var i=12; i<e; i++)  {
               if(fields[i].type == "text") {
                    fields[i].value = "";
                    if(bType() == "ie") { 
                         fields[i].style.visibility = "hidden";
                    } else fields[i].visibility = "hide";
               }
          }
     }
     function getDays(m, y) { 
          var isLeapYear = (y % 4 == 0);
          var days = 0;
          if (m == 1 && isLeapYear) 
                       { days = 29; }
          if (m == 1 && !isLeapYear) 
                       { days = 28; }
          if (m == 0)  { days = 31; }
          if (m == 2)  { days = 31; }
          if (m == 3)  { days = 30; }
          if (m == 4)  { days = 31; }
          if (m == 5)  { days = 30; }
          if (m == 6)  { days = 31; }
          if (m == 7)  { days = 31; }
          if (m == 8)  { days = 30; }
          if (m == 9)  { days = 31; }
          if (m == 10) { days = 30; }
          if (m == 11) { days = 31; }
          return days;
     }
     function bType() {
          if (navigator.appName == "Netscape") return "nav";
          else if (navigator.appName == "Microsoft Internet Explorer") return "ie";
          else return "other";
     }
     function getFirstMonthDay() {   
          var firstDay = new Date(getYear(), getMonth(), 1);
          return firstDay.getDay();
     }
     function getYear() { 
          return document.forms[1].YearField.value;
     }
     function getDate() { 
          return document.forms[1].DayField.value;
     }
     function nextMonth() { 
          var doc = document.forms[1];
          var s = parseInt(doc.Status.value);
          setDate(1); 
          doc.Status.value = (s + 1);
          
     }

     function prevMonth() {
          var doc = document.forms[1];
          var s = parseInt(doc.Status.value);
          setDate(-1); 
          doc.Status.value = (s - 1);
     }

	 function changecolors(index) {
	   var doc = document.forms[1];
       doc.Status.value = index;
	   var fields = doc.elements;
	   var e = fields.length;


       for(var h=12; h<e; h++)  {
	         // setColors(fields[h], doc.DayField.value, doc.MonthField.value);
			  setColors(fields[h], fields[h].value, doc.MonthField.value, doc.YearField.value);          
	 }
	 }
     

