var occcal_d = new Date();
var occcal_pswOK = false;
var occcal_dm = occcal_d.getMonth() + 1;
var occcal_dj = occcal_d.getYear();
if (occcal_dj < 999)
  occcal_dj += 1900;
  

var occcal_Termine ;
var occcal_elm = document.getElementById("txtTermine");
occcal_Termine = occcal_elm.value;

var occcal_currentGroup=-1;
var occcal_termin_arr;
var occcal_dayArray = new Array ();		// Assoziatives  Array für alle möglichen Tage 

if (occcal_Termine != null) 				// Termine nicht leer ? 
{
   occcal_termin_arr = occcal_Termine.split(";");
   for ( var ttext in occcal_termin_arr) { 
        occcal_dayArray[occcal_termin_arr[ttext].split("=")[0]] =occcal_termin_arr[ttext].split("=")[1]; // Store the group number in the day array 
   }
 }
var occcal_Gruppen= document.getElementById("txtGruppen").value;
document.write('<div id="occcalInnerFrameGroups">');
document.write(occcal_Belegung(occcal_Gruppen)); 
document.write('</div>');
document.write('<div id="occcalOuterFrame">');
document.write('<input type="button" class="occcalBtnPrevYear" onclick="CalNavi_Click(occcal_dm-0,occcal_dj-1)" value="'+occcal_prevy+'">');  
document.write('<input type="button" class="occcalBtnPrevMonth" onclick="CalNavi_Click(occcal_dm-1,occcal_dj+0)" value="'+occcal_prevm+'">');
document.write('<input type="button" class="occcalBtnCurrent" onclick="CalNavi_Click(0,0)" value="'+occcal_today+'">');
document.write('<input type="button" class="occcalBtnNextMonth" onclick="CalNavi_Click(occcal_dm+1,occcal_dj+0)" value="'+occcal_nextm+'">'); 
document.write('<input type="button" class="occcalBtnNextYear" onclick="CalNavi_Click(occcal_dm+0,occcal_dj+1)" value="'+occcal_nexty+'">'); 
document.write('<input type="button" class="occcalBtnEdit" onclick="CalEdit_Click(occcal_dm,occcal_dj)" value="'+occcal_edit+'">');
document.write('<input disabled id="btn1" type="button" class="occcalBtnSave" name="SubmitBtn"  onClick="occcal_domtest();">');
document.write('<div id="occcalInnerFrame">');
document.write (Kalender(occcal_dm, occcal_dj));  // Initial write of the calendar
document.write('</div>');


document.write('</div>');  // close outer frame 
function occcal_domtest()
{
	if (occcal_pswOK)
	{
		var termine='';
 
		var tds = document.getElementsByTagName('td');
		for (var i = 0; i< tds.length ; i++ ) {
		   if( tds[i].className.indexOf ( 'caltagSelected' ) >= 0  &&  tds[i].id.indexOf ( 'Gruppe' ) < 0)  {
			   if(termine  != '' ) termine+= ';';   
		       termine += tds[i].id+'='+tds[i].className.split("_")[1] ;			// get the group from dayarray 
			}
		 }

		 var l=document.getElementById('txtTermine');
		 if(l != null){  
	 		l.value = termine;
			
		}
                document.occcalform1.submit(); // Submit the form
	}
	else
	  alert( "Keine Berechtigung" ); 
}

function zellenklick(y,m,d)
{
	if (occcal_pswOK == true)
	{
	var id = ''+y+'-'+m+'-'+d;
		var l=document.getElementById(id);
		if(l != null)
		{
		    var btn = document.getElementById('btn1');
			if(btn)  {
		//	alert(btn.style.visiblity);
			  btn.disabled=false;
			}
			if (l.className == "caltag"  || l.className ==  "")
			{occcalPsw
				 var grpsel= document.getElementById('GruppeC1Sel');
 				 if( grpsel != null)  {
   					l.className = grpsel.className;
                                        occcal_dayArray[id]=grpsel.className.split("_")[1];
				}
			}
			else 
                        {
			  l.className = "caltag";
			  delete occcal_dayArray[id];
                        }
		}
	}
}

function zellenhoover(y,m,d)
{
	var l=document.getElementById("hooverlabel");
	if(l != null)
	{
		escape(y+"-"+m+"-"+d);
	}
	else
		alert ("nicht gefunden");
}
function zellenMouseUp(y,m,d)
{

  	var l=document.getElementById("hooverlabel");
	if(l != null)
		l.innerText = (y+"."+m+"."+document.activeElement.innerText+' - '+y+"."+m+"." +d)
}

function Gruppe_click(n) {
 var grpclick = document.getElementById('GruppeC1_'+n);
 var grpsel= document.getElementById('GruppeC1Sel');
 if(grpclick != null && grpsel != null)  {
   grpsel.innerHTML = grpclick.innerHTML;
//	alert (grpclick.innerHTML);
   grpsel.className = grpclick.className;
   occcal_currentGroup=n;
 }
 var grpdesclick = document.getElementById('GruppeC2_'+n);
 var grpsel= document.getElementById('GruppeC2Sel');
 if(grpdesclick != null && grpsel != null)  {
   grpsel.innerHTML = grpdesclick.innerHTML;
 // nicht die klasse übernehmen, die ist hidden!  grpsel.className = grpdesclick.className;
 }	
}

function Descr_click(n) 
{
 if (n==-1) n=occcal_currentGroup;

 var grpdesclick = document.getElementById('GruppeC2_'+n);
 if(grpdesclick != null )  
 {
  	var p = prompt("Neue Beschreibung:", grpdesclick.innerHTML);
 	if(p != null) 
	{
	 	grpdesclick.innerText = p;
    	        grpdesclick.innerHTML = p;
   		var btn = document.getElementById('btn1');
		if(btn)  {
		//	alert(btn.style.visiblity);
			  btn.disabled=false;
			}
// put the description in the visible group text field  
  
                var grpsel= document.getElementById('GruppeC2Sel');
                if(grpdesclick != null && grpsel != null)  {
                  grpsel.innerHTML = grpdesclick.innerHTML;
  //                grpsel.className = grpdesclick.className;
                }	
 //  Now  update the text field for groups
  	 var i=0;
 	 var fertig = false;
	  var grptext =  document.getElementById('txtGruppen');
	  if (grptext != null)
	  {
		  var grpline = "";
		  while (fertig == false) {
				i++;
		
				var grpdesc = document.getElementById('GruppeC2_'+i);	
				if(grpdesc != null )  {
					if(i != 1) grpline += ';'
					grpline += i+'='+grpdesc.innerHTML;
				} else fertig = true;
				
		  } // end while fertig
		
		  grptext.value  = grpline;
		}
		else
		alert ('txt Gruppenfeld nicht gefunden');
	}
 }
}


function CalNavi_Click(cdm,cdj)
{
  if (cdm != 0 || cdj != 0) {
    occcal_dm=cdm;
    occcal_dj=cdj;
    if (occcal_dm >  12) { occcal_dm = 1;  dj++;}
    if (occcal_dm < 1) { occcal_dm = 12;  dj--;}
  } else {
    var d = new Date(); 
    occcal_dm = d.getMonth();
    occcal_dj = d.getYear();
    if (occcal_dj < 999)
      occcal_dj += 1900;
  }
  
  var e = document.getElementById('occcalInnerFrame');
  e.removeChild(document.getElementById("calframe")); 
  e.innerHTML=Kalender(occcal_dm, occcal_dj);
}
function CalEdit_Click(cdm,cdj)
{
  ViewMode = 'Edit';
  var e = document.getElementById('occcalInnerFrameGroups');
  e.removeChild(document.getElementById("calframeGroups")); 
  e.innerHTML=occcal_Belegung(occcal_Gruppen); 
}

function occcal_Belegung(gruppen){
  
  var gruppen_arr ;
  //alert ( ViewMode);
 
  var  o="";
  o+=('<div id="calframeGroups" class = "xxxxxcalframeGroups">'); 
  if(gruppen != null && ViewMode == 'Edit' )
  { 
 	  var psw = prompt("Passwort:","");
   	  if(psw != null  && MD5(psw) == occcalPsw)
	  {
		occcal_pswOK = true;
		if (gruppen != "" ){
		   gruppen_arr = gruppen.split(";");
	        }
	        o+='<table border="0" cellpadding="1" cellspacing="1">';
		o+=('<div id="occframeGroups" class ="styleOccFrame">  <table cellpadding="2" cellspacing="5">');
//		o+=("<td class='gruppenHeadingText'> <strong> </strong> </td>");
//		o+=("<td class='gruppenHeadingText'> <strong> </strong> </td>");
//		o+=("<tr>");	
		o+=('<td id="GruppeC1_'+0+'" class="caltag" onclick="Gruppe_click(0)"  align="center" valign="middle" > - </td>');
//		o+=('<td id="GruppeC2_'+0+'" class="grpdescription"  align="center" valign="middle" > - </td>');
//		o+=("<tr>");
	 
		var grps=1;
		for ( var touple in gruppen_arr) { 
	  		grps++;
			var i =  gruppen_arr[touple].split("=")[0];
			var grpdescription = gruppen_arr[touple].split("=")[1];
		   
			o+=('<td id="GruppeC1_'+i+'" class="caltagSelected_'+i+'" onclick="Gruppe_click('+i+')"  align="center" valign="middle" > G '+i+'</td>');
			o+=('<td id="GruppeC2_'+i+'" class="grpdescription" onclick="Descr_click('+i+')"   align="center" valign="middle" > '+grpdescription+'</td>');
//			o+=("<tr>");
		}

		for (;grps <= 9; grps++) {
		
			o+=('<td id="GruppeC1_'+grps+'" class="caltagSelected_'+grps+'" onclick="Gruppe_click('+grps+')"  align="center" valign="middle" > Gruppe '+grps+'</td>');
			o+=('<td id="GruppeC2_'+grps+'" class="grpdescription" onclick="Descr_click('+grps+')"   align="center" valign="middle" > '+'--kein name--'+'</td>');
			o+=("<tr>");
		}
//		o+=("<tr>");
//		o+=("<td class='selectionTextArrow'> </td>");
//		o+=("<td class='selectionText'> </td>");
		o+=("<tr>");
		o+=('<td id="GruppeC1Sel" class="caltag" align="center" valign="middle" > - </td>');
		o+=('<td id="GruppeC2Sel"  class="grpdescriptionSelected" onclick="Descr_click(-1)"  align="center" valign="middle" > - </td>');	
		o+=("<\/table></div>"); 
  	 } 
	 else
	   {
		alert ("Keine Berechtigung: " +  occcalPsw + 'local-md5: ' +  MD5(psw));   // Wrong or no  psw   
	   }
  } // if we have groups at all and in edit mode  ?
  o+="</div>";
  return o;
}


function Kalender (Monat, Jahr) 
{
 
  var  o="";

  Monatsname = new Array(occcal_1,
						 occcal_2,
						 occcal_3,
						 occcal_4,
						 occcal_5,
						 occcal_6,
						 occcal_7,
						 occcal_8,
						 occcal_9,
						 occcal_10,
						 occcal_11,
						 occcal_12);
  Tag = new Array("Mo", "Di", "Mi", "Do", "Fr", "Sa", "So");

  var KSchrArt = "Verdana,Arial"; /* Schriftart Kalenderkopf */
  var KSchrGroesse = 2;           /* Schriftgroesse 1-7 Kalenderkopf */
  var KSchrFarbe = "#000000";     /* Schriftfarbe Kalenderkopf */
  var Khgrund = "#eeeeee";        /* Hintergrundfarbe Kalenderkopf */
  
  var TSchrArt = "Verdana,Arial"; /* Schriftart Tagesanzeige */
  var TSchrGroesse = 2;           /* Schriftgroesse 1-7 Tagesanzeige */
  var TSchrFarbe = "#000000";     /* Schriftfarbe Tagesanzeige */
  var Thgrund = "#ddffdd";        /* Hintergrundfarbe Tagesanzeige */
  var TEmptyGrund= "#dddddd";     /* Hintergrundfarbe Tage ausserhalb des monats  */
  
  var SoFarbe = "#E00000";        /* Schriftfarbe f. Sonntage */
  var Ahgrund = "#FFFF00";        /* Hintergrundfarbe f. heutigen Tag */

  var jetzt = new Date();
  var DieserMonat = jetzt.getMonth() + 1;
  var DiesesJahr = jetzt.getYear();
  if (DiesesJahr < 999)
    DiesesJahr += 1900;
  var DieserTag = jetzt.getDate();
  
//	document.write("<a href=\"/cmsimple32/index.php?&amp;simplecalendar&amp;admin=plugin_main&amp;ScrollYear=-1\">Last Year</a>");
//	document.write("<a href=\"/cmsimple32/index.php?&amp;simplecalendar&amp;admin=plugin_main&amp;ScrollYear=0\">     This Year</a>");
//	document.write("<a href=\"/cmsimple32/index.php?&amp;simplecalendar&amp;admin=plugin_main&amp;ScrollYear=1\">     Next Year</a>");

  o+=('<div id="calframe" class = "styleCalFrame">  <table border="0" cellpadding="1" cellspacing="1">');
 // o+=('<div id="calframe" class = "styleCalFrame">  <table border="0" cellpadding="1" cellspacing="1">');
  var  Monate ;  Monat-=2; if (Monat < 0 ) { Monat = 11 ; --Jahr;}
  for ( Monate = 1; Monate <= NoMonth ; Monate ++) 
  {
     
     Monat++;
     if (Monat == 13) { Monat = 1;  Jahr++;}
	 
     if ((( Monate-1) % NoCols) == 0 ) 	o+=("<tr>");		// WB Quartal Trennen 
      o+=('<td align="center" valign="middle" >');
	
	  var Zeit = new Date(Jahr, Monat - 1, 1);
	  var Start = Zeit.getDay()-1;
	  if (Start < 0) Start = 6;
	  
	  var Stop = (new Array (0,31,28,31,30,31,30,31,31,30,31,30,31 ))[Monat];
	  if (Monat == 2) { if (Jahr % 4 == 0) Stop++; if (Jahr % 100 == 0) Stop--;  if (Jahr % 400 == 0) Stop++; }// Leap Year 
	
	  o+=('<table class="occcalITable" border="0" cellpadding="1" cellspacing="1">');
	  var Monatskopf = Monatsname[Monat - 1] + " " + Jahr;
	  o+=SchreibeKopf(Monatskopf, Khgrund, KSchrFarbe, KSchrGroesse, KSchrArt);
	  var Tageszahl = 1;

	  for (var i = 0; i < 42; i++) {
		  if((i % 7) == 0) o+=("<tr>");
		  if (( i < Start) || (Tageszahl > Stop))  {
			o+=SchreibeZelle(0,0,0,"&#160;", TEmptyGrund, TSchrFarbe, TSchrGroesse, TSchrArt);
		  }  else {
			 		if ((Jahr == DiesesJahr) && (Monat == DieserMonat) && (Tageszahl == DieserTag)) {
						o+=SchreibeZelle(Jahr,Monat,Tageszahl,Tageszahl, Ahgrund, TSchrFarbe, TSchrGroesse, TSchrArt);
			 	    } else {
						o+=SchreibeZelle(Jahr,Monat,Tageszahl,Tageszahl, Thgrund, (((i+1)%7)==0) ? SoFarbe : TSchrFarbe, TSchrGroesse, TSchrArt); 
			 		}
			 	    Tageszahl++;
		    } // end if else vor start		 				
	  	} // end for  monatstage
	  	o+=("<\/table>");
		o+=("<\/td>");
	} // Iterate  monat 
	o+=("<\/table><div style='padding-bottom:30px'></div></div>");  // WB Jahres Tabelle 

	return o;
}	// end function
	
function SchreibeKopf (Monatstitel, HgFarbe, SchrFarbe, SchrGroesse, SchrArt) {
  var o = "";
  o+=("<tr>");
  o+=('<td class="occcalIMonths" align="center" colspan="7" valign="middle" bgcolor="' + HgFarbe + '">');
  o+=('<font size="' + SchrGroesse + '" color="' + SchrFarbe + '" face="' + SchrArt + '">');
  o+=(Monatstitel);
  o+=("<\/font><\/td><\/tr>");
  o+=("<tr>");
  for (var i = 0; i <= 6; i++)
    SchreibeZelle(0,0,0,Tag[i], HgFarbe, SchrFarbe, SchrGroesse, SchrArt);		// Tages k�rzel 
  o+=("<\/tr>");
  return o;
}
function  StyleByOccGroup(strDate) {
  if (occcal_dayArray[strDate] > 0) 
   return 'class=caltagSelected_'+ occcal_dayArray[strDate];
  else
   return 'class=caltag';
}

function TitleByOccGroup(strDate) {
  if (occcal_dayArray[strDate] > 0) 
   return 'title="GroupNr:  '+ occcal_dayArray[strDate]+'"';
  else
   return '';
}

function SchreibeZelle (Year,Month,Day,Inhalt, HgFarbe, SchrFarbe, SchrGroesse, SchrArt) {
 var o = ""; 
 if(Year!= 0) o+=('<td '+ StyleByOccGroup(Year+'-'+Month+'-'+Day) +' id="'+Year+'-'+Month+'-'+Day+'" '+TitleByOccGroup(Year+'-'+Month+'-'+Day) +'  onclick="zellenklick('
					+Year+','+Month+','+Day+')"  align="center" valign="middle" bgcolor="' 
					+ HgFarbe + '">');
	else  o+=('<td class="leerZelle"  align="center" valign="middle" bgcolor="' + HgFarbe + '">');
	
	
 
  o+=(Inhalt);
  o+=("<\/td>");
  return o;
}

