 <!-- 
 /*
	******************************************************************************************
	* Module     : All Modules
	* Summary    : Client side validations
	* Author     : Surya Kiran Reddy M S
	* Mail Id's  : kiran@iridiuminteractive.com,kiranreddymss@yahoo.com
	* Started on : May 2003
	* Project    : IATI
	*
	* Description:  This java script file is used to select date, it works as Date picker in VB.
	*
	*                         MODIFICATION HISTORY
	******************************************************************************************
	* Date         Comments                      Method						  Name (M/R)         
	******************************************************************************************

	******************************************************************************************


*/
 
//File: DatePicker.js
//<input name="txtDate" class="form"  readonly><A href="javascript:selectDate(document.forms[0].txtDate,360,170,'../images/');" ><IMG border=0 src="../images/combo.gif" alt="Click here to select date"></A>
//<script language="javascript" src="js/DatePicker.js"></script>
var NS4 = (document.layers);
var dateFormat = "dd/mm/yyyy" //"dd/mmm/yyyy" // "mmm/dd/yyyy" ; // "mm/dd/yyyy" "dd/mmm/yyyy"
var IE4 = (document.all);
var week_days = [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ];
var months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug','Sep', 'Oct', 'Nov', 'Dec' ];
var today = new Date();
var curr_day = today.getDate();
var curr_month = today.getMonth();
var curr_year= today.getFullYear();               


//var years  = new Array(200);
//for (i = 0; i < years.length; i++) years[i] = 1900 + i;

var years  = new Array(200); // change the array size to increase year.length
var NoOfYrs = 1900 // change thr number to show previous numbers
for (i = 0; i < years.length; i++) years[i] = NoOfYrs + i;

var default_left = 100;          //Left co-ord. of picker if not supplied.
var default_top = 80;            //Top co-ord. of picker if not supplied.
var default_cell_width = 10;     //Cell width of picker if not supplied.
var default_cell_height = 10;    //Cell height of picker if not supplied.
var cal_offset_y = 32;           //Y offset of the calendar inside the picker.
var str;
var width = 180 //Width (optional)
var height = 225;  //Height (optional)
var bg_color = '#EFF7FF' //'#BBF7F5' Background color (optional)
var gloBool = true
var imgPath
function fnRetMonthNo(Month)
{
switch (Month)
{
 case  'Jan' :
	 return '01';break;
 case  'Feb' :
     return '02';break;
 case  'Mar' :
     return '03';break;
 case  'Apr' :
     return '04';break;
 case  'May' :
     return '05';break;
 case  'Jun' :
     return '06';break;
 case  'Jul' :
     return '07';break;
 case  'Aug' :
     return '08';break;
 case  'Sep' :
     return '09';break;
 case  'Oct' :
     return '10';break;
 case  'Nov' :
     return '11';break;
 case  'Dec' :  
     return '12';break;
}
}
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}
function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
function findIndexOf(obj,ParentForm)
{
for(var ic=0;ic<ParentForm.elements.length;ic++)
	if(ParentForm.elements[ic]==obj)	   
		return ic
}
function selectDate(btnCombo,left,top)
{

if(left == 0)
	left = findPosX(btnCombo)-178
if(top == 0)	
	top = findPosY(btnCombo)
var fldText = btnCombo.form.elements[findIndexOf(btnCombo,btnCombo.form)-1]

ImagePath =btnCombo.style.backgroundImage.substring(btnCombo.style.backgroundImage.indexOf("(")+1,btnCombo.style.backgroundImage.indexOf("combo.gif")) 
	//	if (gloBool)
		{
		gloBool = false
		var  argNoOfYears = 4, argType = 3

		if (arguments.length>3)
			argNoOfYears = arguments[3]
		if (arguments.length>4)	
			argType = arguments[4]+1


		var yearLength = argNoOfYears 
		var yearLength = 70

		var NoOfYrs = curr_year - (argNoOfYears-argType)
		var NoOfYrs = 1950
		years  = new Array(yearLength);
		for (i = 0; i < years.length; i++) years[i] = NoOfYrs++ ;

		var locCurr_year 
		if (!(years[0]<=curr_year && curr_year<=years[years.length-1])) 
			 locCurr_year  = years[years.length-1]
		else
			locCurr_year = 	curr_year 

		}
	var selectedDate
	imgPath = ImagePath
	
	if (fldText.value != "")
		switch (dateFormat)
		{
			case  "mmm/dd/yyyy"  : 
				selectedDate = new Date(fnRetMonthNo(fldText.value.substring(0,fldText.value.indexOf("/")))+fldText.value.substring(fldText.value.indexOf("/"),fldText.value.length));	break;
			case  "dd/mmm/yyyy"  : 
				selectedDate = new Date(fnRetMonthNo(fldText.value.substring(fldText.value.indexOf("/")+1,fldText.value.indexOf("/")+4))+ "/"+ fldText.value.substring(0,fldText.value.indexOf("/"))+ fldText.value.substring(fldText.value.indexOf("/")+4));	break;					
			case  "dd/mm/yyyy"  : 							
				selectedDate = new Date(fldText.value.substring(fldText.value.indexOf("/")+1,fldText.value.indexOf("/")+3)+ "/"+ fldText.value.substring(0,fldText.value.indexOf("/"))+ fldText.value.substring(fldText.value.indexOf("/")+3));	break;	
			case  "mm/dd/yyyy"  : 
		      selectedDate = new Date(fldText.value);	break;				
		}	
	else 
		selectedDate = new Date((today.getMonth()+1) + "/" + today.getDate() + "/" +  locCurr_year);
		

	var my_cal = new DatePicker(false, self, my_date_selected, left, top,width,height,20,20,'white',selectedDate.getMonth(),selectedDate.getFullYear());
	my_cal.date_fld = fldText;
	my_cal.popup_cal()
	
	
	
	
}
function my_date_selected(cal, date)
{
  switch (dateFormat)
  {
	case  "mmm/dd/yyyy" :
		cal.date_fld.value = months[date.getMonth()] + '/' + date.getDate() + '/' + date.getFullYear();break;
	case  "dd/mmm/yyyy" :
		cal.date_fld.value =  date.getDate() + '/' + months[date.getMonth()] + '/' + date.getFullYear();break;	
	
case  "dd/mm/yyyy" :

		var mth="";
		mth=date.getMonth() + 1;		
		if (parseInt(mth)<10) mth='0'+mth;
		
		var dt = ""
		var dt = date.getDate();
		if (parseInt(dt)<10) dt='0'+dt;		
		
		cal.date_fld.value =  dt + '/' + mth + '/' + date.getFullYear();	break;		
    case "mm/dd/yyyy" :
		cal.date_fld.value = date.getMonth()+ 1 + '/' + date.getDate() + '/' + date.getFullYear();	break;	
  }		
		
}
function DatePicker(is_popup, win, handler, left, top, width, height,  cell_width, cell_height, bg_color, sel_month, sel_year)
{
 
  this.is_popup = is_popup;
  this.parent = null;
  this.window = null;
  if (this.is_popup)
    this.parent = win;
  else
    this.window = win;
  this.handler = handler;
  this.left = left;
  this.top = top;
  this.width = width || default_width;
  this.height = height || default_height;
  this.cell_width = cell_width || default_cell_width;
  this.cell_height = cell_height || default_cell_height;
  this.bg_color = bg_color || default_bg_color;
  this.sel_month = sel_month;
  this.sel_year = sel_year;
  if (this.sel_month == null) this.sel_month = curr_month;
  if (this.sel_year == null) this.sel_year = curr_year;
  this.days = new Array(42);
  this.cal = null;
  this.day_table = null;

  if (NS4)
  {
    DatePicker.prototype.create_cal = DatePicker_create_cal_NS4;
    DatePicker.prototype.show_days = DatePicker_show_days_NS4;
  }
  else
  {
    DatePicker.prototype.create_cal = DatePicker_create_cal_IE4;
    DatePicker.prototype.show_days = DatePicker_show_days_IE4;
  }
  DatePicker.prototype.popup_cal = DatePicker_popup_cal;
  DatePicker.prototype.new_month = DatePicker_new_month;
  DatePicker.prototype.prev_month = DatePicker_prev_month;
  DatePicker.prototype.next_month = DatePicker_next_month;
  DatePicker.prototype.clicked_day = DatePicker_clicked_day;
  DatePicker.prototype.today = DatePicker_today;
  DatePicker.prototype.close = DatePicker_close;
  //Variables for IE
  if (DatePicker.prototype.id == null) DatePicker.prototype.id = 0;
  DatePicker.prototype.id++;
  this.id = DatePicker.prototype.id;
  this.cal_id = 'cal' + this.id;
  this.day_table_id = 'day_table' + this.id;
  this.select_form_id = 'select_form' + this.id;
  
 // alert(this.id)
  //alert(this.cal_id)
  
    
}

function DatePicker_create_cal_NS4()
{
  if (this.is_popup)
  {
    var x = this.parent.screenX + (this.parent.outerWidth - this.parent.innerWidth) + (this.left || default_left);
    var y = this.parent.screenY + (this.parent.outerHeight - this.parent.innerHeight) + (this.top || default_top);
    this.window = this.parent.open("", this.cal_id, 'screenX=' + x + ',screenY=' + y + ',innerWidth=' + this.width + ',innerHeight=' + this.height + ',scrollbars=no,resizeable=no');
    this.window.document.open();  //Need to open and close document in Navigator
    this.window.document.writeln('<title>Date Picker</title>');
    this.window.document.close();
  }

  this.cal = new Layer(this.width, this.window);
  this.cal.name = this.cal_id;
  if (this.is_popup)
  {
    this.cal.left = 0;
    this.cal.top = 0;
  }
  else
  {
    this.cal.left = this.left || default_left;
    this.cal.top = this.top || default_top;
  }
  this.cal.zIndex = 1;
  this.cal.clip.width = this.width;
  this.cal.clip.height = this.height;
  this.cal.bgColor = this.bg_color;
  this.cal.visibility = 'show';
  var doc = this.cal.document;
  doc.picker = this;
  doc.open();
  doc.writeln("<center>");
  doc.writeln("<table border='1'>");
  doc.writeln("  <tr>");
  doc.writeln("    <td align='center'>");
  doc.writeln("      <form name='" + this.select_form_id + "'>");
  doc.writeln("        <input type='button' value='&lt;&lt;' onClick='document.picker.prev_month()'>");
  doc.writeln("        &nbsp;<select name='month_sel' onChange='document.picker.new_month()'>");
  for (i = 0; i < months.length; i++)
    doc.writeln("        <option value='" + i + "'>" + months[i]);
  doc.writeln("        </select>");
  doc.writeln("        <select name='year_sel' onChange='document.picker.new_month()'>");
  for (i = 0; i < years.length; i++)
    doc.writeln("        <option value='" + years[i] + "'>" + years[i]);
  doc.writeln("        </select>&nbsp;");
  doc.writeln("        <input type='button' value='&gt;&gt;' onClick='document.picker.next_month()'>");
  doc.writeln("      </form>");
  doc.writeln("    </td>");
  doc.writeln("  </tr>");
  doc.writeln("  <tr>");
  doc.writeln("    <td> ");
  doc.writeln("  Close ");
  doc.writeln("    </td>");
  doc.writeln("  </tr>");
  doc.writeln("</table>");
  doc.writeln("</center>");
  doc.close();
  this.day_table = new Layer(this.width, this.cal);
  this.day_table.name = this.day_table_id;
  this.day_table.left = 0;
  this.day_table.top = cal_offset_y;
  this.day_table.zIndex = 2;
  this.day_table.visibility = 'inherit';
}

function DatePicker_show_days_NS4()
{
  var month_select = this.cal.document.forms[this.select_form_id]['month_sel'];
  var year_select = this.cal.document.forms[this.select_form_id]['year_sel'];
  month_select.selectedIndex = this.sel_month;
  year_select.selectedIndex = this.sel_year - years[0];

  var days_in_month = get_days_in_month(this.sel_month, this.sel_year);
  var day_of_week_first = (new Date(this.sel_year, this.sel_month, 1)).getDay();
  for (i = 0; i < this.days.length; i++) this.days[i] = 0;
  for (i = 0; i < days_in_month; i++)
    this.days[i + day_of_week_first] = i + 1;

  var doc = this.day_table.document;
  doc.picker = this;
  doc.open();
  doc.writeln("<center>");
  doc.writeln("<table border='1'>");
  doc.writeln("<form>");
  doc.writeln("  <tr>");
  for (j = 0; j < week_days.length; j++)
  {
    doc.writeln("    <td align='center' valign='middle' width='" + this.cell_width + "'>" + week_days[j] + "</td>");
  }
  doc.writeln("  </tr>");
  for (i = 0; i < 6; i++)
  {
    doc.writeln("  <tr>");
    for(j = 0; j < 7; j++)
    {
      var val = this.days[i * 7 + j];
      if (val > 0 && val < 10) val = " " + val + " ";
      if (this.days[i * 7 + j])
        doc.writeln("    <td align='center' valign='middle' height='" + this.cell_height + "'><input type='button' value='" + val + "' onClick='document.picker.clicked_day(" + this.days[i * 7 + j] + ")'></td>");
      else
        doc.writeln("    <td>&nbsp;</td>");
    }
    doc.writeln("  </tr>");
  }
  doc.writeln("</form>");
  doc.writeln("</table>");
  doc.writeln("</center>");
  doc.close();
}

function DatePicker_create_cal_IE4()
{
  if (this.is_popup)
  {
    var x = this.parent.screenLeft + (this.left || default_left);
    var y = this.parent.screenTop + (this.top || default_top);
    this.window = this.parent.open("", this.cal_id, 'left=' + x + ',top=' + y + ',width=' + this.width + ',height=' + this.height + ',scrollbars=no,resizeable=no');
    this.window.document.open();
    this.window.document.close();
  }

  this.window.document.body.insertAdjacentHTML("beforeEnd", "<div id='" + this.cal_id + "' style='position:absolute'></div>");
  
  this.cal = this.window.document.all[this.cal_id];
 
  
          
  if (this.is_popup)
  {
    this.cal.style.pixelLeft = 0;
    this.cal.style.pixelTop = 0;
  }
  else
  {
    this.cal.style.pixelLeft = this.left || default_left;
    this.cal.style.pixelTop = this.top || default_top;
  }
  this.cal.style.zIndex = 1;
  this.cal.style.width = this.width;
  this.cal.style.height =  this.height;
  this.cal.style.backgroundColor = bg_color;    //this.bg_color; 
  this.cal.style.visibility = 'visible';
  this.cal.picker = this;
   str =
  "<form name='" + this.select_form_id + "'>\n" +
  "<table border='1' cellpadding='0'  cellspacing='0' width='100%'>\n" +
  "  <tr>\n" +
  "    <td align='center' bgcolor='#C0D5E2'>\n" +
  "        <IMG src='"+ imgPath +"previous.gif' alt='Previous month' style='cursor:hand' onclick='document.all." + this.cal_id + ".picker.prev_month()'>\n" +
  "        &nbsp;<select name='month_sel' onChange='document.all." + this.cal_id + ".picker.new_month()'>\n";
  for (i = 0; i < months.length; i++)
    str += "        <option value='" + i + "'>" + months[i] + "\n";
  str += "        </select>\n" +
  "        <select name='year_sel' onChange='document.all." + this.cal_id + ".picker.new_month()'>\n";
  //alert(years.length)
  for (i = 0; i < years.length; i++)
    str += "        <option value='" + years[i] + "'>" + years[i] + "\n";
  str += "        </select>&nbsp;\n" +
  "        <IMG src='"+ imgPath +"next.gif' alt='Next month' style='cursor:hand' onclick='document.all." + this.cal_id + ".picker.next_month()'>\n" +
  "    </td>\n" +
  "  </tr>\n" +
  "</table>\n" +
  "</form>\n" +
 "<div id='" + this.day_table_id + "' style='position:absolute'></div>\n";
  this.cal.innerHTML = str;
  this.day_table = this.window.document.all[this.day_table_id];
  this.day_table.style.pixelLeft = 4;
  this.day_table.style.pixelTop = cal_offset_y;
  this.day_table.style.zIndex = 2;
  this.day_table.style.visibility = 'inherit';
  this.day_table.picker = this;

}

function DatePicker_show_days_IE4()
{
  var month_select = this.window.document.forms[this.select_form_id]['month_sel'];
  var year_select = this.window.document.forms[this.select_form_id]['year_sel'];
  month_select.selectedIndex = this.sel_month;
//alert(curr_day + " " + curr_month + " " +curr_year)
  var totYears =  this.sel_year - years[0]
  var cmbYearLen = year_select.length
  if  (totYears > cmbYearLen) 
	year_select.selectedIndex =cmbYearLen-1;
  else
    year_select.selectedIndex = this.sel_year - years[0];
		//alert(this.sel_year + " " + years[0]		 )
  var days_in_month = (new Date(this.sel_year, this.sel_month+1, 0)).getDate();
  var day_of_week_first = (new Date(this.sel_year, this.sel_month, 1)).getDay();
  
   
  for (i = 0; i < this.days.length; i++) this.days[i] = 0;
  for (i = 0; i < days_in_month; i++)
    this.days[i + day_of_week_first] = i + 1;

   str =
  "<form>\n" +
  "<table border='0' align='left' cellpadding='0' cellspacing='0' width='100%'>\n" +
  "<tr><td colspan='7'></td></tr>" +
  "  <tr>\n";
  for (j = 0; j < week_days.length; j++)
  {
    str += "    <td align='center' valign='middle' width='" + this.cell_width + "'>" +"<font color='red' face='verdana' size='2'>"+week_days[j] + "</td>\n";
  }
  str += "  </tr>\n";
  str += " <tr><td colspan=7 valign='top' heigth='1'><hr></td></tr>\n";
  for (i = 0; i < 6; i++)
  {
    str += "  <tr>\n";
    for(j = 0; j < 7; j++)
    {
      var val = this.days[i * 7 + j];
      if (val > 0 && val < 10) val = " " + val + " ";
      if (this.days[i * 7 + j])
        { if (j==0)
            
           { if (val==curr_day && this.sel_month==curr_month && this.sel_year==curr_year)
                  str += " <td align='center' bgcolor='yellow' valign='middle' height='" + this.cell_height + "'><font color='red' face='verdana' size='2'><A style='cursor:hand;' onclick='javascript:document.all." + this.day_table_id + ".picker.clicked_day(" + this.days[i * 7 + j] + ")'>"+ val + "</A></td>\n"
                  
                else
                  str += " <td align='center'  valign='middle' height='" + this.cell_height + "'><font color='red' face='verdana' size='2'><A style='cursor:hand;' onclick='javascript:document.all." + this.day_table_id + ".picker.clicked_day(" + this.days[i * 7 + j] + ")'>"+ val + "</A></td>\n"
            }      
            else
            {    if (val==curr_day && this.sel_month==curr_month && this.sel_year==curr_year)
	         str += " <td align='center' bgcolor='yellow' valign='middle' height='" + this.cell_height + "'><font color='blue' face='verdana' size='2'><A style='cursor:hand;' onclick='javascript:document.all." + this.day_table_id + ".picker.clicked_day(" + this.days[i * 7 + j] + ")'>"+ val + "</A></td>\n"
	            else
                  str += " <td align='center' valign='middle' height='" + this.cell_height + "'><font color='blue' face='verdana' size='2'><A style='cursor:hand;' onclick='javascript:document.all." + this.day_table_id + ".picker.clicked_day(" + this.days[i * 7 + j] + ")'>"+ val + "</A></td>\n"
        
            }
        }
      else
              str += "    <td >&nbsp;</td>\n";
    }
    str += "  </tr>\n";
  }
  //alert(str)
  str += "<tr ><td colspan='7' ><hr>  </td></tr>\n";
  str += "<tr><td colspan='3' >&nbsp;</td><td align=right  colspan='2'  ><font color='blue' face='verdana' size='2'><A style='cursor:hand;' onclick='javascript:document.all." + this.day_table_id + ".picker.clicked_day(0)'>Close</A></font></td>\n";
  str += "<td align=right  colspan='2'  ><font color='blue' face='verdana' size='2'><A style='cursor:hand;' onclick='javascript:document.all." + this.day_table_id + ".picker.clicked_day(-1)'>Clear&nbsp;</A></font></td></tr>\n" ;
  str += "</table>\n" ;
  
  str += "</form>\n";
 
  this.day_table.innerHTML = str;
}

function DatePicker_popup_cal()
{ 

  if (this.is_popup)
  {   
    if (this.cal && this.window && !this.window.closed)
      this.window.close();
    else
    {  
      this.create_cal();
      this.show_days();
    }
  }
  else
  {  
    if (!this.cal)
    {  
      
      this.create_cal();
      this.show_days();
    }
    else
    {
      if (NS4)
      {
        if (this.cal.visibility == 'show')
          this.cal.visibility = 'hide';
        else
          this.cal.visibility = 'show';
      }
      else
      {
        if (this.cal.style.visibility == 'visible')
          this.cal.style.visibility = 'hidden';
        else
          this.cal.style.visibility = 'visible';
      }
    }
  }
}

function DatePicker_new_month()
{
  var month_select = this.cal.document.forms[this.select_form_id]['month_sel'];
  this.sel_month = new Number(month_select.options[month_select.selectedIndex].value);
  var year_select = this.cal.document.forms[this.select_form_id]['year_sel'];
  this.sel_year = new Number(year_select.options[year_select.selectedIndex].value);
  this.show_days();
}

function DatePicker_prev_month()
{
  this.sel_month--;
  if (this.sel_month < 0)
  {
    this.sel_month = 11;
    var intDecrYear = this.sel_year
    if (intDecrYear<=years[0])
		return
    this.sel_year--;
  }
  this.show_days();
}

function DatePicker_next_month()
{
  this.sel_month++;
  if (this.sel_month > 11)
  {
    this.sel_month = 0;
    var intIncrYear = this.sel_year
    if (intIncrYear>=years[years.length-1])
		return false;
    this.sel_year++;
  }
  this.show_days();
}

function DatePicker_clicked_day(day)
{
  if (this.is_popup)
    this.window.close();
  else
    if (NS4)
      this.cal.visibility = 'hide';
    else
      this.cal.style.visibility = 'hidden';
  var sel_date = new Date(this.sel_year, this.sel_month, day);
  if(day ==-1)
    this.date_fld.value = "" ;
  else if(day !=0)
     if (this.handler) this.handler(this, sel_date);
     
}

function get_days_in_month(mon, yr)
{
  var month = new Number(mon);
  var year = new Number(yr);
  var mdays = [ [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
                [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] ];
  var isleap =
     (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) ? 1 : 0;
  return mdays[isleap][month];
}
function DatePicker_close()
{
	if (this.is_popup)
    this.window.close();
  else
    if (NS4)
      this.cal.visibility = 'hide';
    else
      this.cal.style.visibility = 'hidden';
}
function DatePicker_today()
{
  if (this.is_popup)
    this.window.close();
  else
    if (NS4)
      this.cal.visibility = 'hide';
    else
      this.cal.style.visibility = 'hidden';
  var sel_date = new Date();
  if (this.handler) this.handler(this, sel_date);
}
//-->