
var TerminData;
var CurTermin=0;
var TerminAnz=0;
var CalData=new Array(25);
var TInfo="";

function getTime() {
var now = new Date();
var hour = now.getHours();
var minute = now.getMinutes();
return hour + ":" + minute; 
}

function getDateNum() {
var now = new Date();
var year = now.getYear();
if (year < 1000) year+=1900;
var month = now.getMonth();
var date = now.getDate();

var ret=0;
ret=ret+(year*10000);
ret=ret+((month+1)*100);
ret=ret+date;
return ret;
}

function leapYear(year) {
if (year % 4 == 0) return (true); 
return (false);
}

function getDays(month, year) {
var ar = new Array(12);
ar[0] = 31;
ar[1] = (leapYear(year)) ? 29 : 28 ;
ar[2] = 31; 
ar[3] = 30; 
ar[4] = 31; 
ar[5] = 30; 
ar[6] = 31;
ar[7] = 31; 
ar[8] = 30;
ar[9] = 31;
ar[10] = 30;
ar[11] = 31; 

return ar[month];
}

function getMonthName(month) {
var ar = new Array(12);
ar[0] = "Januar";
ar[1] = "Februar";
ar[2] = "M&auml;rz";
ar[3] = "April";
ar[4] = "Mai";
ar[5] = "Juni";
ar[6] = "Juli";
ar[7] = "August";
ar[8] = "September";
ar[9] = "Oktober";
ar[10] = "November";
ar[11] = "Dezember";

return ar[month];
}

function getNameMonth(Name) {
var ar = new Array(12);
ar[0] = "Januar";
ar[1] = "Februar";
ar[2] = "M&auml;rz";
ar[3] = "April";
ar[4] = "Mai";
ar[5] = "Juni";
ar[6] = "Juli";
ar[7] = "August";
ar[8] = "September";
ar[9] = "Oktober";
ar[10] = "November";
ar[11] = "Dezember";
var i=0;
for (i=0; i<12;i++){
if (ar[i]==Name)return i;
}
return 0;
}

function initCal(){
	TInfo=RDATA['calstyle'][21];
	for (var i=0;i<21;i++){
		CalData[i]=RDATA['calstyle'][i];
	}
	return (true);	
}

function ITermin(data){
	TerminData = new DataArray('TerminData',data);
	TerminData.nsort(9,false);
	TerminAnz=TerminData.records();
	NTermin();	
}


function NTermin(){
	try{
		var StartDate=getDateNum();
		CurTermin=CurTermin+1;
		if (CurTermin>TerminAnz)curTermin=1;
		var i=0;
		for (i=CurTermin; i<(TerminAnz+1); i++){	
			if (TerminData.getvar(i,8)=='Termin'){
				if (Number(TerminData.getvar(i,9))>=StartDate){
				CurTermin=i;
				return (i);
				}
			}			
		}
		CurTermin=1;
		for (i=CurTermin; i<(TerminAnz+1); i++){	
			if (TerminData.getvar(i,8)=='Termin'){
				if (Number(TerminData.getvar(i,9))>=StartDate){
				CurTermin=i;
				return (i);
				}
			}			
		}
		return (0);
	}
	catch(Error) {
		return (0);
	}
}


      
function GTermin(Numb,Skel){
	try{
		var data=Skel;
		data=data.replace("%T%",TerminData.getvar(Numb,1));
		data=data.replace("%M%",TerminData.getvar(Numb,2));
		data=data.replace("%Y%",TerminData.getvar(Numb,3));
		data=data.replace("%L%",TerminData.getvar(Numb,4));
		data=data.replace("%O%",TerminData.getvar(Numb,5));
		data=data.replace("%A%",TerminData.getvar(Numb,6));
		data=data.replace("%W%",TerminData.getvar(Numb,7));
		return(data);
	}
	catch(Error) {
		return ('');
	}
}


function drawCal(firstDay, lastDate,MY) {

var text = CalData[0];

var digit = 1
var curCell = 1
var resmonth=0;
var restr=0;

for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text+=CalData[2];
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate){
	for (var col2=col; col2<=7;++col2){
	text+=CalData[4];
	}
	break;
}



if (curCell < firstDay) {
text+=CalData[4];
curCell++
} 
else {
var tr=0;
tr=TerminData.searchrecord((MY+digit),9);
if ( (tr>0) && ( (TerminData.getvar(tr,8)=='Termin') || (TerminData.getvar(tr,8)=='Reservierung'))){
	
	if (TerminData.getvar(tr,1)=='1-31'){
		resmonth=1;
		restr=tr;
		}
	
	var ad="";
	if (TerminData.getvar(tr,8)=='Reservierung')ad=GTermin(tr,CalData[7]);
	else ad=GTermin(tr,CalData[5]);
	ad=ad.replace('%dsnum%',tr);
	ad=ad.replace('%dsident%',MY+digit);
	text+=ad.replace('%?%',digit);
}
else {
	if (resmonth==1){
	var ad="";
	ad=GTermin(tr,CalData[7]);
	ad=ad.replace('%dsnum%',restr);
	ad=ad.replace('%dsident%',MY+digit);
	text+=ad.replace('%?%',digit);
	}

	else {
	ad=CalData[6].replace('%dsnum%',tr);
	ad=ad.replace('%dsident%',MY+digit);
	text+=ad.replace('%?%',digit);
	}
}

digit++
}

}
text+=CalData[3];
}

text+=CalData[1];
return(text);
}

function showCalInfo(dsnum){
var caltxt="";

if (TerminData.getvar(dsnum,8)=='Reservierung')caltxt=GTermin(dsnum,CalData[12]);
else if ( (TerminData.getvar(dsnum,8)=='Termin') && (TerminData.getvar(dsnum,7)=='http://') )caltxt=GTermin(dsnum,CalData[10]);
else if ( (TerminData.getvar(dsnum,8)=='Termin') && (TerminData.getvar(dsnum,7)=='') ) caltxt=GTermin(dsnum,CalData[10]);
else if ( (TerminData.getvar(dsnum,8)=='Termin') ) caltxt=GTermin(dsnum,CalData[11]);

var sObjectt = getObject('calinfo');
if(sObjectt)sObjectt.innerHTML=CalData[9]+caltxt;
}

function showCalInfo2(dsident){
var di=':'+dsident;
var T=Number(di.substr(7,2));
var M=Number(di.substr(5,2));
var Y=Number(di.substr(1,4));

var caltxt=CalData[13];

caltxt=caltxt.replace('%dsident%',dsident);
caltxt=caltxt.replace('%Y1%',Y);
caltxt=caltxt.replace('%M1%',getMonthName(M-1));
caltxt=caltxt.replace('%T1%',T);
caltxt=caltxt.replace('%Y2%',Y);
caltxt=caltxt.replace('%M2%',M);
caltxt=caltxt.replace('%T2%',T);

var sObjectt = getObject('calinfo');
if(sObjectt)sObjectt.innerHTML=CalData[9]+caltxt;
}



function CCal(month,year){

var initfirst=0;
if ((month+year)==0){
	initfirst=1;
}

if (year==0){
var now = new Date();
year = now.getYear();
if (year < 1000)year+=1900;
month = now.getMonth();
now = null;
}


var DMonthName=getMonthName(month);

var firstDayInstance = new Date(year, month, 1);
var firstDay = firstDayInstance.getDay();
firstDayInstance = null;

var days = getDays(month, year);

var minmonth=month-1;
var minyear=year;
if (minmonth<0){
	minmonth=11;
	minyear=year-1;
}

var maxmonth=month+1;
var maxyear=year;
if (maxmonth>11){
	maxmonth=0;
	maxyear=year+1;
}

initCal();
CalData[0]=CalData[0].replace('%year%',year);
CalData[0]=CalData[0].replace('%minyear%',minyear);
CalData[0]=CalData[0].replace('%maxyear%',maxyear);
CalData[0]=CalData[0].replace('%minmonth%',minmonth);
CalData[0]=CalData[0].replace('%maxmonth%',maxmonth);
CalData[0]=CalData[0].replace('%DMonthName%',DMonthName);

var caltxt= drawCal(firstDay + 1, days, ((year*10000)+((month+1)*100)));

var sObjectt = getObject('calbody');
if(sObjectt)sObjectt.innerHTML=caltxt;

var sObjecti = getObject('calinfo');
if(sObjecti)sObjecti.innerHTML=CalData[9];

if (initfirst==1){
	var DN=getDateNum();
	var tr=0;
	tr=TerminData.searchrecord(DN,9);
	if (tr>0 && (TerminData.getvar(tr,8)=='Termin')){
		showCalInfo(tr);
	}
}


}






function CTermine(){

initCal();

var caltxt="";
var DN=getDateNum();

var i=0;
var nohrow=1;
for (i=TerminAnz; i>0; i--){	
	if (TerminData.getvar(i,8)=='Termin'){
				if (Number(TerminData.getvar(i,9))>=DN){
					if (nohrow==1){
					if (TerminData.getvar(i,7)=='http://') {
						caltxt+=GTermin(i,CalData[15]);

					}
					else {
						caltxt+=GTermin(i,CalData[16]);
					}
					}
					else {
					if (TerminData.getvar(i,7)=='http://') {
						caltxt+=GTermin(i,CalData[18]);

					}
					else {
						caltxt+=GTermin(i,CalData[19]);
					}
					}
					nohrow=1;
				}
				else {
					caltxt+=GTermin(i,CalData[17]);
				}
			}			
}

caltxt+=CalData[20];
var sObjectt = getObject('termbody');
if(sObjectt)sObjectt.innerHTML=caltxt;

}


function CTPV(){

initCal();

var caltxt="Redial macht erst mal Pause!";
var DN=getDateNum();

var i=0;
var nohrow=0;
for (i=1; i<(TerminAnz+1); i++){	
	if (TerminData.getvar(i,8)=='Termin'){
				if (Number(TerminData.getvar(i,9))>=DN){ caltxt=GTermin(i,TInfo);break;
				}
	}			
}

var sObjectt = getObject('termininfo');
if(sObjectt)sObjectt.innerHTML=caltxt;
}


