var saveOnClick = false;
var saveMethod;

//Event.observe(window,"load",function(){  });
function initDateChoosers(){
	$$('input.dateChooser:not([class~=processed])').each(function(e){initDateChooser(e)});
}
function initDateChooser(target){
	target = $(target).addClassName('processed');
	var calCont = new Element('div',{'class':'smallCalendar calendar'});
	var calWrapper = new Element('div',{'class':'calendarWrapper'});

	var offset = target.positionedOffset();
	
	target.wrap('div',{'class':'dateChooserWrapper'}).insert(calWrapper.insert(calCont));
	
	calCont.setStyle({'marginTop':'-180px'});
	calWrapper.setStyle({'position':'absolute','top':(offset.top + target.getDimensions().height)+"px",'left':(offset.left)+"px",'overflow':'hidden','zIndex':500});

    var clickHandler = toggleDateChooser.curry(calCont,calWrapper,target);
    
	$(target).observe("click",clickHandler);
	$(target).up().next("img.dateAnchor").observe("click",clickHandler);
	
	var cal=initCalendar(calCont);
	cal.updateelement = updateDateFunc.curry(target,cal);
	var initialDateValue = new Date(target.value);
	if (!isNaN(initialDateValue)) { 
	    cal.setCurrentDate(initialDateValue);
	}
}
function toggleDateChooser(calCont,calWrapper,target){
	(calCont.hasClassName('expanded') == true)?hideDateChooser(calCont,calWrapper,target):showDateChooser(calCont,calWrapper,target);
}
function showDateChooser(calCont,calWrapper,target){
	var offset = target.positionedOffset();
	if (null != $(target).readAttribute("hideSelects")){
		$(target).readAttribute("hideSelects").split(',').each(function(sel){ $(sel).style.visibility='hidden'});
	}
	calWrapper.setStyle({'position':'absolute','top':(offset.top + target.getDimensions().height)+"px",'left':(offset.left)+"px",'overflow':'hidden','zIndex':5});
	calCont.addClassName('expanded').morph({'marginTop':'0px'},{duration:0.5});
	
	if ((!window.XMLHttpRequest) && document.getElementById('paymentType') != null) {
		document.getElementById('paymentType').style.visibility='hidden';
	}	/*added*/
}
function hideDateChooser(calCont,calWrapper,target){
		if ((!window.XMLHttpRequest) && document.getElementById('paymentType') != null){
 		document.getElementById('paymentType').style.visibility='visible';
		} /*added*/
	
	
	calCont.removeClassName('expanded').morph({'marginTop':'-180px'},{duration:0.5,afterFinish:function(){
		if (null != $(target).readAttribute("hideSelects")){
			$(target).readAttribute("hideSelects").split(',').each(function(sel){ $(sel).style.visibility='visible'});
		}
	}});
	
}

function updateDateFunc(target,cal,date){
	var m = date.getMonth() + 1;
	var d = date.getDate();
	var y = date.getFullYear();
	m = (m<10)?"0"+m:m;
	d = (d<10)?"0"+d:d;
	datestr = m+"/"+d+"/"+y;
	$(target).value = datestr;
	
	if(cal.getDatesByEvent(''))
	    cal.getDatesByEvent('').each(function(date) { cal.removeEventsByDate(date); });
	    
	cal.setPlannerValue(date,'', 'selected');
	
	hideDateChooser(target.next('.calendarWrapper').select('.calendar')[0], null, target);
	if (saveOnClick)
	{
	    eval(saveMethod);
	}
}