var myViewerCalendar; 
var dateElementrViewerID;  	
var deadlines; 
//**********************************
function calendarViewerInit() {  	
	mySelectHandler=function(type, args, object) {
		var DT=this._toDate(args[0][0]);
		////
		var month=DT.getMonth()*1+1*1;
		if ( month<=9 ) {month="0"+month;}
		var day=DT.getDate();
		if ( day<=9 ) {day="0"+day;}
		////
		var myDate=DT.getFullYear()+"-"+month+"-"+day;
		if ( !isChecked(myDate) ) return;
		////
		$("dateRequest").value="date="+myDate;
		$("calendarToReservation").submit();
   };
	////
    myDeselectHandler = function(type,args,obj) { 
		if ( deadlines.length==0 ) return;
		////
		myViewerCalendar.cfg.setProperty("selected", null, false); 
		var deadlineDates=usaDate(deadlines[0]["date"]);
		for (var i=1; i<=deadlines.length-1; i++) {
			deadlineDates+=", "+usaDate(deadlines[i]["date"]);
		}
		////
        myViewerCalendar.cfg.setProperty("selected", deadlineDates, false);
        myViewerCalendar.render();  
    };
	////
	myViewerCalendar = new YAHOO.widget.Calendar("myViewerCalendar", "calendarViewerContainer", 
                                                                { LOCALE_WEEKDAYS:"short", 
                                                                      START_WEEKDAY: 1,
                                                                      MULTI_SELECT: false
                                                                
                                                                     } );  	
	myViewerCalendar.selectEvent.subscribe(mySelectHandler, myViewerCalendar, true);
    myViewerCalendar.deselectEvent.subscribe(myDeselectHandler, myViewerCalendar, true);
    
   
	myViewerCalendar.cfg.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]); 
    myViewerCalendar.cfg.setProperty("MONTHS_LONG",    ["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]);
    
	setDeadline();     
    //myCalendar.render(); 
   
}
//**********************************
function setDeadline(){
    var handleSuccess=function(o){ 
		eval("response="+o.responseText)
		deadlines=response["resultSet"];
		myViewerCalendar.cfg.setProperty("selected", null, false); 
		////
		if ( deadlines.length==0 ) return;
		////
		var deadlineDates=usaDate(deadlines[0]["date"]);
		for (var i=1; i<=deadlines.length-1; i++) {
			deadlineDates+=", "+usaDate(deadlines[i]["date"]);
		}
		myViewerCalendar.cfg.setProperty("selected", deadlineDates, false); 
		////
		myViewerCalendar.render(); 
	}
    ////
    var handleFailure=function(o) { 
        if( o.responseText!=="undefined" ) { 
            var msg="Transaction id: "+o.tId+" HTTP status: "+o.status+" Status code message: "+o.statusText;
            setMessage(msg, "info"); 
        } 
    } 
    ////
    var callback={ 
		success: handleSuccess, 
		failure: handleFailure 
    };
    ////
    var requestUrl=base_site_path+"index/showCalendarDeadline?";
    ////
    var request=YAHOO.util.Connect.asyncRequest('POST', requestUrl, callback); 
}
//**********************************
function usaDate(d) {
	var year=d.substring(0, 4);
	var month=d.substring(5, 7);
	var day=d.substring(8, 10);
	////
	return month+"/"+day+"/"+year;
}
//**********************************
function isChecked(d) {
	for (var i=0; i<=deadlines.length-1; i++) {
		if ( d==deadlines[i]["date"] ) return true;
	}
	return false;
}
//**********************************
function calendarViewerShow(){
	dateElementViewerID = "searchDate";
    calendarViewerInit();
} 
//**********************************
