/***********************************************\
|      Copyright 2009: Tomasz Kwasny [KFX]      |
|           WizjaNet - www.wizja.net            |
|  Wykorzystywanie bez ZGODY autora ZABRONIONE  |
\***********************************************/


var datePickerDivID = "datepicker";
var iFrameDivID = "datepickeriframe";
var html_input_base_class = "input";

var dayArrayShort = new Array('Pon', 'Wt', 'Śr', 'Czw', 'Pt', 'Sob', 'Nd');
var dayArrayLong = new Array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota', 'Niedziela');
var monthArrayShort = new Array('Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru');
var monthArrayLong = new Array('Styczeń','Luty', 'Marzec', 'Kwiecień','Maj', 'Czerwiec', 'Lipiec', 'Sierpień','Wrzesień','Październik', 'Listopad', 'Grudzień');

if(year_field_height==undefined || year_field_height=='' || year_field_height==0) var year_field_height=17;
if(offset_x==undefined) var offset_x=1;
if(offset_y==undefined) var offset_y=-13;

if($.browser.msie) offset_y+=-3;
if($.browser.mozilla) offset_y+=0;
if($.browser.opera) offset_y+=-5;

 
var defaultDateSeparator="-";
var defaultTimeSeparator=":";
var defaultDateFormat="ymd";
var dateSeparator=defaultDateSeparator;
var timeSeparator=defaultTimeSeparator;
var dateFormat=defaultDateFormat;
var current_opened_calendar_id='';
var current_opened_calendar_div_id='';
var cal_year_field_focus=false;
var time_select_focused=false;


$(document).ready(function(){
	prepareDatePickerElems();
});



function prepareDatePickerElems() {
	if(!document.getElementById(datePickerDivID)) {
		var newNode = document.createElement("div");
		newNode.setAttribute("id", datePickerDivID);
		newNode.setAttribute("class", "dpDiv");
		newNode.setAttribute("style", "visibility: hidden;");
		newNode.setAttribute("style", "display: none;");
		document.body.appendChild(newNode);
	}

	try {
		if(!document.getElementById(iFrameDivID)) {
	      //document.body.innerHTML += "<iframe id='" + iFrameDivID + "' src='javascript:false;' scrolling='no' frameborder='0'>";
	      var newNode = document.createElement("iFrame");
	      newNode.setAttribute("id", iFrameDivID);
//	      newNode.setAttribute("src", "javascript:false;");
	      newNode.setAttribute("scrolling", "no");
	      newNode.setAttribute ("frameborder", "0");
	      newNode.style.display = "none";
	      newNode.style.visibility = "hidden";
	      document.body.appendChild(newNode);
		}
	} catch (ee) {}
}


function displayDatePicker(dateFieldName, displayBelowThisObject, dtFormat, dtSep, dtSep2) {
	if(document.getElementById(current_opened_calendar_id)) {
		document.getElementById(current_opened_calendar_id).className=html_input_base_class;
	}

	var targetDateField = document.getElementById(dateFieldName);
 	if(!displayBelowThisObject) displayBelowThisObject = targetDateField;
 
	if(dtSep) dateSeparator=dtSep; else dateSeparator=defaultDateSeparator;
	if(dtSep2) timeSeparator=dtSep2; else timeSeparator=defaultTimeSeparator;
 	if(dtFormat) dateFormat=dtFormat; else dateFormat=defaultDateFormat;
	if(dtFormat.indexOf('hi')!=-1) useTime=true; else useTime=false;

	var x = displayBelowThisObject.offsetLeft;
	var y = displayBelowThisObject.offsetTop + displayBelowThisObject.offsetHeight ;

	var parent = displayBelowThisObject;
	while(parent.offsetParent) {
		parent = parent.offsetParent;
		x += parent.offsetLeft;
		y += parent.offsetTop ;
	}

	x+=offset_x;
	y+=offset_y;

	current_opened_calendar_id=targetDateField.id;
	drawDatePicker(targetDateField, x, y);
}


function drawDatePicker(targetDateField, x, y) {
	var pickerDiv = document.getElementById(datePickerDivID);
	pickerDiv.style.visibility = "hidden";
	pickerDiv.style.display = "none";

	if(x+190 > $(window).width()-$(window).scrollLeft() ) x-=174;
	if(useTime==false) {
		if(y+180 > $(window).height()+$(window).scrollTop() ) y-=162;
	} else {
		if(y+202 > $(window).height()+$(window).scrollTop() ) y-=184;
	}

	current_opened_calendar_div_id = datePickerDivID;
	var pickerDiv = document.getElementById(datePickerDivID);
	pickerDiv.style.position = "absolute";
	pickerDiv.style.left = x + "px";
	pickerDiv.style.top = y + "px";
	pickerDiv.style.visibility = (pickerDiv.style.visibility == "visible" ? "hidden" : "visible");
	pickerDiv.style.display = (pickerDiv.style.display == "block" ? "none" : "block");
	pickerDiv.style.zIndex = 100000;


	var dt = getFieldDate(targetDateField.value);
	adjustiFrame();
	refreshDatePicker(targetDateField.id, dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes());


	$(document).keydown( function(e) {
		if(e.which == 27) { //ESC
			hide_date_picker(datePickerDivID);
			document.getElementById(targetDateField.id).className=html_input_base_class;
			if(document.getElementById(current_opened_calendar_id)) {
				document.getElementById(current_opened_calendar_id).className=html_input_base_class;
			}
			current_opened_calendar_id='';
			$(document).unbind("keydown");
		}

		if(cal_year_field_focus!=true) {
			if(e.which == 37) $("#cal_prev_month").click();
			if(e.which == 39) $("#cal_next_month").click();
			if(e.which == 38) $("#cal_prev_year").click();
			if(e.which == 40) $("#cal_next_year").click();

			if(e.which == 35) time_change_index('hour',1);
			if(e.which == 36) time_change_index('hour',-1);
			if(e.which == 33) time_change_index('min',-1);
			if(e.which == 34) time_change_index('min',1);
//alert(e.which);

			return false;
		}
	});

	$(document).bind("click", function(e) {
		var pickerDiv = $('#'+datePickerDivID);
		pick_left=parseInt(pickerDiv.css('left'));
		pick_top=parseInt(pickerDiv.css('top'));
		pick_width=pickerDiv.width();
		pick_height=pickerDiv.height();

		if(e.pageY < pick_top || e.pageY > pick_top+pick_height || e.pageX < pick_left || e.pageX > pick_left+pick_width) {
			if(time_select_focused!=true) hide_date_picker(datePickerDivID)
		}
	});
}


function time_change_index(type, direction) {
	if(useTime!=true) return false;
	sel = document.getElementById('cal_'+type);
	curr = sel.selectedIndex;

	if(curr+direction>=0 && curr+direction<sel.options.length) sel.selectedIndex = curr+direction;
}


function refreshDatePicker(dateFieldName, year, month, day, hour, minute) {
	var thisDay = new Date();
	var thisDay2 = new Date();

	if(useTime==true) {
		if(hour==undefined) {
			test=$('#cal_hour').val();
			if(test==undefined) {
				time_vals=$('#'+dateFieldName).val().substr(11,5).split(':');
				hour=time_vals[0];
				minute=time_vals[1];
			} else {
				hour=$('#cal_hour').val();
				minute=$('#cal_min').val();
			}
		}
	}

	if(isNaN(hour)) hour=thisDay2.getHours();
	if(isNaN(minute)) minute=thisDay2.getMinutes();

	if((month >= 0) && (year > 0)) {
		thisDay = new Date(year, month, 1, hour, minute);
	} else {
		day = thisDay.getDate();
		thisDay.setDate(1);
	}

	var crlf = "\r\n";
	var CAL_CONT = "<div class='cal_cont'>";
	var CAL_CONT_TIME = "<div class='cal_cont_time'>";
	var xCAL_CONT = "</div>";
	var TABLE_CONT = "<div class='dpTable_cont'>";
	var TABLE_CONT_TIME = "<div class='dpTable_cont_time'>";
	var xTABLE_CONT = "</div>";
	var TABLE = "<table cols=7 class='dpTable' cellpadding='1' cellspacing='1'>" + crlf;
	var xTABLE = "</table>" + crlf;
	var TR = "<tr class='dpTR'>";
	var TR_title = "<tr class='dpTitleTR'>";
	var TR_days = "<tr class='dpDayTR'>";
	var TR_todaybutton = "<tr class='dpTodayButtonTR'>";
	var xTR = "</tr>" + crlf;
	var TD = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver=' this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
	var TDnon = "<td class='dpTD' ";    // leave this tag open, because we'll be adding an onClick event
	var TD_title = "<td colspan=7 class='dpTitleTD'>";
	var TD_time = "<td colspan=7 class='dpTimeTD'>";
	var TD_buttons = "<td class='dpButtonTD'>";
	var TD_todaybutton = "<td colspan=7 class='dpTodayButtonTD'>";
	var TD_days = "<td class='dpDayTD'>";
	var TD_selected = "<td class='dpDayHighlightTD' onMouseOut='this.className=\"dpDayHighlightTD\";' onMouseOver='this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
	var xTD = "</td>" + crlf;
	var DIV_title = "<div class='dpTitleText'>";
	var DIV_selected = "<div class='dpDayHighlight'>";
	var xDIV = "</div>";
 
 
	var html='';
	html += (useTime==true ? CAL_CONT_TIME+""+TABLE_CONT_TIME : CAL_CONT+""+TABLE_CONT);
	html += TABLE;

	//months select
	if(useTime==true) {
		_select_months = '<select name="cal_month" id="cal_month" style="font-family:Tahoma,Arial; font-size:11px; vertical-align:middle; height:17px; width:82px; margin:0px; padding:0px;" onchange="refreshDatePicker(\''+dateFieldName+'\', '+thisDay.getFullYear()+', document.getElementById(\'cal_month\').value, false, document.getElementById(\'cal_hour\').value, document.getElementById(\'cal_min\').value);">';
	} else {
		_select_months = '<select name="cal_month" id="cal_month" style="font-family:Tahoma,Arial; font-size:11px; vertical-align:middle; height:17px; width:82px; margin:0px; padding:0px;" onchange="refreshDatePicker(\''+dateFieldName+'\', '+thisDay.getFullYear()+', document.getElementById(\'cal_month\').value, false);">';
	}
	for(i = 0; i < monthArrayLong.length; i++) _select_months += '<option value="'+i+'"'+(i==thisDay.getMonth() ? ' selected':'')+'>' + monthArrayLong[i] + '</option>';
	_select_months += '</select>';


	//years select
	_select_years = getButtonCode_years(dateFieldName, thisDay.getFullYear(), thisDay.getMonth(), -1, '&lt;', 'cal_prev_year');
	_select_years += '<input type="text" name="cal_year" id="cal_year" maxlength="4" value="'+thisDay.getFullYear()+'" style="text-align:center; font-size:11px; height:'+year_field_height+'px; padding:0px; margin:0px; vertical-align:middle; width:30px;" onkeyup="if(this.value.length==4 && this.value!='+thisDay.getYear()+') { refreshDatePicker(\''+dateFieldName+'\', this.value, '+thisDay.getMonth()+'); cal_year_field_focus=false; }" onblur="if(this.value.length!=4) this.value=\''+thisDay.getYear()+'\'; cal_year_field_focus=false;" onfocus="this.select(); cal_year_field_focus=true;">';
	_select_years += getButtonCode_years(dateFieldName, thisDay.getFullYear(), thisDay.getMonth(), 1, '&gt;', 'cal_next_year');


	//hour select
	if(minute>56) {
		hour+=1;
		if(hour==24) hour=0;
	}

	_select_hour = '<select onfocus="time_select_focused=true;" onblur="time_select_focused=false;" name="cal_hour" id="cal_hour" style="font-size:11px; width:39px; vertical-align:middle;">';
	for(i=0; i<=23; i++) {
		if(i<10) j="0"+i; else j=i
		_select_hour += '<option value="'+j+'"'+(j==hour ? ' selected':'')+'>'+j+'</option>';
	}
	_select_hour += '</select>';


	//min select
	_select_min = '<select onfocus="time_select_focused=true;" onblur="time_select_focused=false;" name="cal_min" id="cal_min" style="font-size:11px; width:39px; vertical-align:middle;">';
	for(i=0; i<60; i+=5) {
		if (minute==i || (minute-1+2==i) || (minute-1+3==i) || (minute-1==i) || (minute-2==i) || (minute+3==i)) {
			_select_min+='<option value='+((i<10)?('0'+i):i)+' selected>'+((i<10)?('0'+i):i)+'</option>';
		} else {
			_select_min+='<option value='+((i<10)?('0'+i):i)+'>'+((i<10)?('0'+i):i)+'</option>';
		}
	}
	_select_min += '</select>';


	html += TR_title;

//getButtonCode_months(dateFieldName, thisDay.getFullYear(), thisDay.getMonth(), -1, 'up', 'bottom') + getButtonCode_months(dateFieldName, thisDay.getFullYear(), thisDay.getMonth(), 1, 'down', 'top')

	html += TD_title + '<div style="float:left; padding-left:2px;">' + getButtonCode_months(dateFieldName, thisDay.getFullYear(), thisDay.getMonth(), -1, '&lt;', 'cal_prev_month') + _select_months + getButtonCode_months(dateFieldName, thisDay.getFullYear(), thisDay.getMonth(), 1, '&gt;', 'cal_next_month') + '</div><div style="float:right; padding-right:2px;">' + _select_years + '</div>' + xTD;
	html += xTR;

 	// this is the row that indicates which day of the week we're on
	html += TR_days;
	for(i=0; i<dayArrayShort.length; i++) html+=TD_days + dayArrayShort[i] + xTD;
	html += xTR;
 
	// now we'll start populating the table with days of the month
	html += TR;
 
	// first, the leading blanks
	for (i=1; i<thisDay.getDay(); i++) html += TDnon + "&nbsp;" + xTD;
	if(thisDay.getDay()==0) for(i=1; i<7; i++) html += TD + "&nbsp;" + xTD;
 
	do { // now, the days of the month
		dayNum = thisDay.getDate();
		TD_onclick = " onclick=\"updateDateField('" + dateFieldName + "', '"+getDateString(thisDay)+"');\">";
		original_dayNum=dayNum;

		if(thisDay.getDay()==0 || thisDay.getDay()==6) {
			dayNum="<span class='weekDays'>"+dayNum+"</span>";
		}

		if(original_dayNum==day) {
			html += TD_selected + TD_onclick + DIV_selected + dayNum + xDIV + xTD;
		} else {
			html += TD + TD_onclick + dayNum + xTD;
    	}
		if (thisDay.getDay() == 0) html += xTR + TR;
		thisDay.setDate(thisDay.getDate() + 1);
	} while (thisDay.getDate() > 1)

	if(thisDay.getDay()>0) for (i = 7; i >= thisDay.getDay(); i--) html += TDnon + "&nbsp;" + xTD;
	html += xTR;
 
	if(useTime==true) {
		html += TR_title;
		html += TD_time + _select_hour + '&nbsp;<b>:</b>&nbsp;' + _select_min + ' &nbsp;<button class="dpButton_ok" onClick="updateDateField(\''+ dateFieldName + '\', \'\', true);">ok</button>' + xTD;
		html += xTR;
	}
	html += xTABLE;
	html += xTABLE_CONT;

	// add a button to allow the user to easily return to today, or close the calendar
	var today = new Date();
	var todayString = "Dziś jest " + dayArrayShort[today.getDay()] + ", " + monthArrayShort[ today.getMonth()] + " " + today.getDate();
	html += "<div class='buttons_cont'><button class='dpTodayButton' onClick='setCurrentDate(\"" + dateFieldName + "\", \""+dateFormat+"\", \""+dateSeparator+"\", \""+timeSeparator+"\");'>"+(useTime==true ? 'teraz':'dzisiaj')+"</button>";
	html += "&nbsp;&nbsp;";
	html += "<button class='dpTodayButton' onClick='updateDateField(\"" + dateFieldName + "\");'>zamknij</button></div>";

	html += xCAL_CONT;

	document.getElementById(datePickerDivID).innerHTML = html;
	adjustiFrame();
}


function getNeighbourMonth(direction) {

}


function getButtonCode(dateFieldName, dateVal, adjust, label) {
  var newMonth = (dateVal.getMonth () + adjust) % 12;
  var newYear = dateVal.getFullYear() + parseInt((dateVal.getMonth() + adjust) / 12);
  if (newMonth < 0) {
    newMonth += 12;
    newYear += -1;
  }
  return "<button class='dpButton' onClick='refreshDatePicker(\"" + dateFieldName + "\", " + newYear + ", " + newMonth + ");'>" + label + "</button>";
}


function getButtonCode_years(dateFieldName, dateVal, dateVal2, adjust, label, id) {
  var newYear = dateVal + adjust;

  return "<button class='dpButton2' id='"+id+"' onclick='document.getElementById(\"cal_year\").value=\""+ dateVal + adjust +"\"; refreshDatePicker(\"" + dateFieldName + "\", " + newYear + ", "+dateVal2+");'>" + label + "</button>";
}

function getButtonCode_months(dateFieldName, dateVal, dateVal2, adjust, label, id) {
//alert(dateVal2);
	var newMonth = dateVal2 + adjust;
	var newYear = dateVal;
	if(newMonth>11) {
		newMonth=0;
		newYear++;
	}

	if(newMonth<0) {
		newMonth=11;
		newYear--;
	}

//	txt=(icon=='up' ? '<b>&laquo;</b> Poprzedni' : 'Następny <b>&raquo;</b>');
//	return '<a href="javascript:void(0)" onmouseover="tip(this,\''+txt+'\')" onclick="refreshDatePicker(\''+dateFieldName+'\', '+newYear+', '+newMonth+');"><img src="'+ICONS+'/small_arrow_'+icon+'.gif" style="width:7px; height:7px; margin-'+margin+':1px" alt="" border="0" /></a>';

	return '<button class="dpButton2" id="'+id+'" onclick="refreshDatePicker(\''+dateFieldName+'\', '+newYear+', '+newMonth+');">' + label + '</button>';
}



function getDateString(dateVal) {
  var dayString = "00" + dateVal.getDate();
  var monthString = "00" + (dateVal.getMonth()+1);

  dayString = dayString.substring(dayString.length - 2);
  monthString = monthString.substring(monthString.length - 2);
  switch (dateFormat) {
	 case "dmyhi":
    case "dmy" : return dayString + dateSeparator + monthString + dateSeparator + dateVal.getFullYear(); break;

	 case "ymdhi":
    case "ymd" : return dateVal.getFullYear() + dateSeparator + monthString + dateSeparator + dayString; break;
  }
}


function getFieldDate(dateString) {
  var dateVal;
  var dArray;
  var d, m, y, h, i;
  try {
    dArray = splitDateString(dateString);
    if(dArray) {
      switch (dateFormat) {
        case "dmy" :
          d = parseInt(dArray[0], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[2], 10);
			 h = 0;
			 i = 0;
        break;
        case "dmyhi" :
          d = parseInt(dArray[0], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[2], 10);
          h = parseInt(dArray[3], 10);
          i = parseInt(dArray[4], 10);
        break;

        case "ymd" :
        default :
          d = parseInt(dArray[2], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[0], 10);
			 h = 0;
			 i = 0;
        break;

        case "ymdhi" :
          d = parseInt(dArray[2], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[0], 10);
          h = parseInt(dArray[3], 10);
          i = parseInt(dArray[4], 10);
        break;
      }

      dateVal = new Date(y, m, d, h, i);
    } else if (dateString) {
      dateVal = new Date(dateString);
    } else {
      dateVal = new Date();
    }
  } catch(e) {
    dateVal = new Date();
  }
 
  return dateVal;
}


function splitDateString(dateString) {
  var dArray;

	if(useTime==true) {
		dateString=dateString.replace(' ','.');
		dateString=dateString.replace(':','.');
		dateString=dateString.replace('-','.');
		dateString=dateString.replace('-','.');
		dateString=dateString.replace('-','.');
	}

  if (dateString.indexOf("/") >= 0) dArray = dateString.split("/");
  else if (dateString.indexOf(".") >= 0) dArray = dateString.split(".");
  else if (dateString.indexOf("-") >= 0) dArray = dateString.split("-");
  else if (dateString.indexOf("\\") >= 0) dArray = dateString.split("\\");
  else dArray = false;

  if(useTime==true) {
	  if (dateString.indexOf(":") >= 0) dArray = dateString.split(":");
  }

  return dArray;
}


function datePickerClosed(dateField) {
//	setTimeout("document.getElementById('"+dateField.id+"').blur();", 50);
	document.getElementById(dateField.id).className=html_input_base_class;
}


function getTimeString(thisDate) {
	return ' '+thisDate.getHours()+':'+thisDate.getMinutes();
}

function updateDateField(dateFieldName, dateString, timeSet) {
	var targetDateField = document.getElementById(dateFieldName);

	if(timeSet==true) {
		dateString=targetDateField.value.substr(0,10);
		if(dateString=="") {
			var dzisiaj = new Date();
			miesiac=(dzisiaj.getMonth()+1 < 10 ? "0":"")+(dzisiaj.getMonth()+1);
			dzien=(dzisiaj.getDate() < 10 ? "0":"")+dzisiaj.getDate();
			dateString=dzisiaj.getFullYear() + dateSeparator + miesiac + dateSeparator + dzien;
		}
	}

	if(useTime==true && dateString) {
		var hour=document.getElementById('cal_hour').value;
		var mins=document.getElementById('cal_min').value;
		dateString += ' ' + hour + timeSeparator + mins;
	}


	if(dateString) targetDateField.value = dateString;

	var pickerDiv = document.getElementById(datePickerDivID);
	pickerDiv.style.visibility = "hidden";
	pickerDiv.style.display = "none";
	adjustiFrame();
	targetDateField.focus();

	if((dateString) && (typeof(datePickerClosed)=="function")) datePickerClosed(targetDateField);
	hide_date_picker(datePickerDivID);
}


function adjustiFrame(pickerDiv, iFrameDiv) {
	var is_opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
	if(is_opera) return;
  
	try {
		if (!pickerDiv) pickerDiv = document.getElementById(datePickerDivID);
		if (!iFrameDiv) iFrameDiv = document.getElementById(iFrameDivID);
    
		try {
			iFrameDiv.style.position = "absolute";
			iFrameDiv.style.width = pickerDiv.offsetWidth;
			iFrameDiv.style.height = pickerDiv.offsetHeight ;
			iFrameDiv.style.top = pickerDiv.style.top;
			iFrameDiv.style.left = pickerDiv.style.left;
			iFrameDiv.style.zIndex = pickerDiv.style.zIndex - 1;
			iFrameDiv.style.visibility = pickerDiv.style.visibility ;
			iFrameDiv.style.display = pickerDiv.style.display;
		} catch(e) {}
	} catch (ee) {}
}


function setCurrentDate(z_name,z_format,z_date_sep,z_time_sep) {
	var z_current = new Date();
	var val;

	dzien=z_current.getDate();
	miesiac=z_current.getMonth()+1;
	rok=z_current.getFullYear();
	godziny=z_current.getHours();
	minuty=z_current.getMinutes();

	if(dzien<10) dzien="0"+dzien;
	if(miesiac<10) miesiac="0"+miesiac;
	if(godziny<10) godziny="0"+godziny;
	if(minuty<10) minuty="0"+minuty;


	switch(z_format) {
		case 'dmyhi':	val=dzien+z_date_sep+miesiac+z_date_sep+rok+" "+godziny+z_time_sep+minuty;		break;
		case 'ymdhi':	val=rok+z_date_sep+miesiac+z_date_sep+dzien+" "+godziny+z_time_sep+minuty;		break;
		case 'dmy':		val=dzien+z_date_sep+miesiac+z_date_sep+rok;												break;
		case 'ymd':		val=rok+z_date_sep+miesiac+z_date_sep+dzien;												break;
	}

	if(document.getElementById(z_name)) {
		document.getElementById(z_name).value=val;
		document.getElementById(z_name).focus();
	}

	if(document.getElementById(datePickerDivID)) {
		var pickerDiv = document.getElementById(datePickerDivID);
		pickerDiv.style.visibility = "hidden";
		pickerDiv.style.display = "none";
		adjustiFrame();
	}
//	setTimeout("document.getElementById('"+z_name+"').blur();", 50);
}

function hide_date_picker(datePickerDivID) {
	var pickerDiv = $('#'+datePickerDivID);
	pickerDiv.css("visibility","hidden");
	pickerDiv.css("display","none");
	adjustiFrame();
	if(document.getElementById(current_opened_calendar_id)) {
		document.getElementById(current_opened_calendar_id).className=html_input_base_class;
	}

	current_opened_calendar_id='';
	$(document).unbind("click");
	$(document).unbind("keydown");
}
