1<?php
2/* $Id: week.php,v 1.89 2006/04/16 14:40:44 leyeti Exp $ */
3error_reporting  (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
4$myEnv["module"] = "calendar";
5$myEnv["output"] = "html";
6
7include("../../config.inc.php");
8include(INCLUDEPATH ."container.inc.php");
9
10//include(CAL1_INC_DIR."check_settings.inc.php");
11
12//// NATYS //// Date langage :
13include(CAL1_INC_DIR."date_lang.php");
14$_SESSION["date_lang"] = array ("language" => $_SESSION["MGW"]->spkz,
15								"lang_dir" => CAL1_DIR."lang/"
16								);
17///////////////
18
19
20// adding file revision into global array
21if(function_exists("revisionInit")) revisionInit("\$Revision: 1.89 $", __FILE__);
22
23$timemask = $_SESSION["MGW"]->settings["timefmt"];
24$concat=$conn->Concat("firstname", "' '", "lastname");
25
26// include laguage specific labels
27$smarty->assign("jump_to_date", Lang::getLanguageString("jump_to_date"));
28$smarty->assign("jtday", Lang::getLanguageString("jtday"));
29$smarty->assign("jtmonth", Lang::getLanguageString("jtmonth"));
30$smarty->assign("jtyear", Lang::getLanguageString("jtyear"));
31$smarty->assign("jtjump", Lang::getLanguageString("jtjump"));
32
33// SET variable $date
34// if $date is not passed, set $date to today
35// if $gotodate (is passed by submit for datesearch in main template of day-view) is set,
36//    check validity of gotodate and set date to gotodate
37if ((!isset($_GET["date"]) || $_GET["date"]=="") && (!isset($_POST["gotodate"]) || $_POST["gotodate"]=="") ){
38
39	$date = mktime(0,0,0, date("m", time()), date("d", time()), date("Y", time()));
40	//bug ? if we are Sunday -> week is next week ???
41	$starts_at = 1; //0=su, 1=mo, ... (from settings ??) -> 1 = the week starts on MONDAY
42	if (date("w",$date)==0 && $starts_at!=0) {
43	    $date = $date - $starts_at*24*3600 -1;
44	}
45	$_SESSION['calendar_year'] = ((int)$_SESSION["calendar_year"] > 0) ? $_SESSION["calendar_year"] : date("Y", $date);
46	$_SESSION['calendar_month'] = ((int)$_SESSION["calendar_month"] > 0 && (int)$_SESSION["calendar_month"] < 13) ? $_SESSION["calendar_month"] : date("m", $date);
47} else if (isset($_POST["gotodate"])){
48    if (isset($_GET["gdatum"])){
49	    $gmonat = substr($_GET["gdatum"],3,2);
50    	$gtag = substr($_GET["gdatum"],0,2);
51    	$gjahr = substr($_GET["gdatum"],6,4);
52    } else{
53    	$gmonat = (int)$_POST["gmonat"];
54    	$gtag = (int)$_POST["gtag"];
55	    $gjahr = (int)$_POST["gjahr"];
56    }
57
58    $gtag = ($gtag > 0) ? $gtag : $_SESSION['calendar_day'];
59    $gmonat = ($gmonat > 0) ? $gmonat : $SESSION['calendar_month'];
60    $gjahr = ($gjahr > 0) ? $gjahr : $SESSION['calendar_year'];
61
62    if (checkdate($gmonat, $gtag, $gjahr)){
63    	$date  = mktime(0,0,0, $gmonat, $gtag, $gjahr);
64	    $monat = $gmonat;
65    	$jahr  = $gjahr;
66	    $_SESSION['calendar_year'] = $gjahr;
67    	$_SESSION['calendar_month'] = $gmonat;
68    } else if (!isset($_GET["date"])){
69    	$date = mktime(0,0,0, date("m", time()), date("d", time()), date("Y", time()));
70    	$_SESSION['calendar_year'] = ((int)$_SESSION["calendar_year"] > 0) ? $_SESSION["calendar_year"] : date("Y", $date);
71    	$_SESSION['calendar_month'] = ((int)$_SESSION["calendar_month"] > 0 && (int)$_SESSION["calendar_month"] < 13) ? $_SESSION["calendar_month"] : date("m", $date);
72    }
73}
74else{
75    $_SESSION['calendar_year'] = ((int)$_SESSION["calendar_year"] > 0) ? $_SESSION["calendar_year"] : date("Y", $_GET["date"]);
76    $_SESSION['calendar_month'] = ((int)$_SESSION["calendar_month"] > 0 && (int)$_SESSION["calendar_month"] < 13) ? $_SESSION["calendar_month"] : date("m", $_GET["date"]);
77}
78
79// get the settings
80$holitemp 	= $_SESSION["MGW"]->settings["calendar_holiday_system"];			// calendar holiday system (country)
81$interval 	= $_SESSION["MGW"]->settings["calendar_interval"];			// calender interval length in minutes
82$interval_sec   = 60 * $interval;					// calender interval length in seconds
83$starthour      = $_SESSION["MGW"]->settings["calendar_viewfrom"];			// start hour of day-view
84$endhour   	= $_SESSION["MGW"]->settings["calendar_viewto"];			// last  hour of day-view
85
86
87$date_str =  str_pad( date("d", $date).date("m", $date).date("Y", $date),8,"0",STR_PAD_LEFT);
88$smarty->assign("date_str", $date_str);
89
90
91// Set certain values for time-handling
92$actual_date_arr       = getdate($date);
93
94$app_start_time =  mktime(0,0,0, $actual_date_arr["mon"], $actual_date_arr["mday"], $actual_date_arr["year"]);
95$app_end_time   =  mktime(0,0,0, $actual_date_arr["mon"], $actual_date_arr["mday"], $actual_date_arr["year"]) + 23.5 * 3600;
96// Set start/end view time according to actual date
97$start_time = mktime(0,0,0, $actual_date_arr["mon"], $actual_date_arr["mday"], $actual_date_arr["year"])+ $starthour*3600;
98$end_time   = mktime(0,0,0, $actual_date_arr["mon"], $actual_date_arr["mday"], $actual_date_arr["year"])+ $endhour*3600;
99$actual_week_start_date     = $start_time - ($actual_date_arr["wday"]-1) * 3600 * 24 - $starthour*3600;
100$actual_week_end_date       = $end_time   + (7-$actual_date_arr["wday"]) * 3600 * 24 - $endhour * 3600;
101
102// Set day header in week-view
103$woch_arr = array( Lang::getLanguageString("temp_weekday_abbr_1"), Lang::getLanguageString("temp_weekday_abbr_2"), Lang::getLanguageString("temp_weekday_abbr_3"), Lang::getLanguageString("temp_weekday_abbr_4"),
104		   Lang::getLanguageString("temp_weekday_abbr_5"), Lang::getLanguageString("temp_weekday_abbr_6"), Lang::getLanguageString("temp_weekday_abbr_0"));
105
106$w = $actual_week_start_date;
107for ($i=0;$i<=6;$i++) {
108    $j=$i+2;
109    $colum = "d$j";
110    if (get_celebrate_days($w, $holitemp) != "") $wday = get_celebrate_days($w, $holitemp);
111    else if ($i <= 4) $wday = $woch_arr[$i] . ",&nbsp;"./* NATYS date*/date_lang( Lang::getLanguageString("gentemp_date_format_php"), $w) . "";
112    else if ($i == 5) $wday = Lang::getLanguageString("gentemp_weekday_7");
113    else if ($i == 6) $wday = Lang::getLanguageString("gentemp_weekday_1");
114    $smarty->assign("$colum", "<a class=\"edit\" href=\"index.php?date=$w&amp;".SID."\">$wday</a>");
115    $smarty->append("clm", array("date" => $w, "wkd"=> $woch_arr[$i]));
116    $w += 24*3600;
117}
118
119$wst_d      = date("d/m",    $actual_week_start_date);
120$wen_d      = date("d/m/Y",  $actual_week_end_date);
121$sql_start = date("Ymd", $actual_week_start_date);
122$sql_ende  = date("Ymd", $actual_week_end_date);
123
124// =======================
125//  calendar change
126// =======================
127if (isset($_POST["new_calendarid"])){
128    if ($_POST["new_calendarid"]=="all") {
129	$_SESSION['calendarid'] = "all";
130	$_SESSION['calendarname'] = Lang::getLanguageString("calendarownerall"); // translated all
131    }
132    else {
133	$sql = "SELECT id, $concat AS name FROM mgw_users WHERE NOT(level=".UDELETED.") AND id = ".$_POST["new_calendarid"];
134
135	if(!$res = $conn->Execute($sql)) die(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
136	$row = $res->FetchRow();
137	$_SESSION['calendarid']   = $row["id"];
138	$_SESSION['calendarname'] = $row["name"];	// Owner - Name of calendar
139    }
140    unset($chgcal);
141}
142
143// ===================================
144// step one month back in calendar
145// ===================================
146if (isset($_GET["action"]) && $_GET["action"]=="mback") {
147    if ($_SESSION['calendar_month'] == 1) {
148	$_SESSION['calendar_month'] = 12;
149	$_SESSION['calendar_year']--;
150    }
151    else $_SESSION['calendar_month']--;
152    unset($_GET["action"]);
153}
154
155// ===================================
156// step one month forward in calendar
157// ===================================
158if (isset($_GET["action"]) && $_GET["action"]=="mforw") {
159    if ($_SESSION['calendar_month'] == 12) {
160	$_SESSION['calendar_month'] = 1;
161	$_SESSION['calendar_year']++;
162    }
163    else $_SESSION['calendar_month']++;
164    unset($_GET["action"]);
165}
166
167// ===================================
168// step one year back in calendar
169// ===================================
170if (isset($_GET["action"]) && $_GET["action"]=="yback") {
171    $_SESSION['calendar_year']--;
172    unset($_GET["action"]);
173}
174
175// ===================================
176// step one year forward in calendar
177// ===================================
178if (isset($_GET["action"]) && $_GET["action"]=="yforw") {
179    $_SESSION['calendar_year']++;
180    unset($_GET["action"]);
181}
182
183// ========================
184// GET BIRTHDAYS
185// ========================
186
187if($_SESSION["MGW"]->settings["calendar_show_birthdays"]){
188    $concat = $conn->Concat("'* '","firstname","' '","lastname");
189    $w = $actual_week_start_date;
190    for ($i=1;$i<=7;$i++) {
191	//$bdsql = "SELECT $concat AS jubilee FROM mgw_contacts WHERE SUBSTRING(birthday,6,5)='".date("m-d",$w)."' AND (ispublic='1' OR owner='".$_SESSION["MGW"]->userid."')";
192	$bd_start = $conn->DBDate(mktime(0,0,1,date("m",$w),date("d",$w),date("Y",$w)));
193	$bd_end = $conn->DBDate(mktime(23,59,59,date("m",$w),date("d",$w),date("Y",$w)));
194	$bdsql = "SELECT $concat AS jubilee
195	          FROM mgw_contacts
196			  WHERE birthday >= $bd_start AND
197				  birthday <= $bd_end AND
198			  (ispublic='1' OR owner='".$_SESSION["MGW"]->userid."')";
199
200	if(!$bdres = $conn->Execute($bdsql)) exit(showSQLerror($bdsql, $conn->ErrorMsg(), __LINE__, __FILE__));
201	$br = "";
202	$bd = array_fill(0,8,"");
203	while($bdrow = $bdres->FetchRow()){
204    $bd[$i] .= $bdrow["jubilee"].$br;
205    $br = "<br />";
206	}
207
208	$nam = "klasse$i";
209	if (get_celebrate_days(mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$i-1,date("Y",$actual_week_start_date)), $holitemp) != "")
210	    $$nam = "feiertag";
211	else if ((date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$i-1,date("Y",$actual_week_start_date))) == 0) || (date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$i-1,date("Y",$actual_week_start_date))) == 6))
212	    $$nam = "wochenende";
213	else if (mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$i-1,date("Y",$actual_week_start_date)) == mktime(0,0,0, date("m",time()),date("j",time()),date("Y",time())))
214	    $$nam = "heute";
215	else $$nam = "tab";
216
217	$w += 24*3600;
218    }
219    $zeile = array( "von" => "",
220		    "mon" => $bd[1], "tue" => $bd[2], "wed" => $bd[3], "thu" => $bd[4], "fri" => $bd[5], "sat" => $bd[6], "sun" => $bd[7],
221		    "klass2" => $klasse1, "klass3" => $klasse2, "klass4" => $klasse3, "klass5" => $klasse4, "klass6" => $klasse5, "klass7" => $klasse6, "klass8" => $klasse7);
222    $smarty -> append("cw", $zeile);
223}
224
225// ========================
226// ENTRY WEEKVIEW
227// ========================
228if(!isset($_GET["action"])) {
229
230    if (!IsSet($_SESSION["calendar_month"]) && !IsSet($_SESSION["calendar_year"])) {
231	$_SESSION['calendar_month'] = date("m", $date);
232	$_SESSION['calendar_year'] = date("Y", $date);
233	$_SESSION["calendar_month"] = $_SESSION['calendar_month'];
234	$_SESSION["calendar_year"] = $_SESSION['calendar_year'];
235    }
236
237    ////////////////////////////////////////////////////////////////////////
238    // set calenderid = userid if calendarid is not set
239    ////////////////////////////////////////////////////////////////////////
240    if (!isset($_SESSION["calendarid"])) {
241	$_SESSION['calendarid']   = $_SESSION["MGW"]->userid;
242	$_SESSION["calendarname"] = $_SESSION["MGW"]->fullusername;
243    }
244
245
246
247	////////////////////////////////////////////////////////////////////////
248    // show user list as possible calendar owners
249    ////////////////////////////////////////////////////////////////////////
250    include_once("inc/user_list.inc.php");
251
252	/*
253	$sql = "SELECT id, $concat AS name FROM mgw_users order by 2";
254
255    if(!$res = $conn->Execute($sql)) die(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
256
257    while ($row = $res->FetchRow()){
258	$smarty->append("td2", $row);
259    }
260    */
261
262    $smarty->assign('action', "inh");
263
264    // Selected entry all
265    if ($_SESSION['calendarid']=="all") {
266	$sql_owner_part="";
267    }
268    else {
269	$sql_owner_part="userid = ".$_SESSION['calendarid']." AND";
270    }
271
272 //   $sql = "SELECT * FROM mgw_calendar WHERE $sql_owner_part SUBSTRING(date,1,8) >= '$sql_start' AND substring(date,1,8) <= '$sql_ende' AND id_class!='3' GROUP BY 1, date , userid , subject, location, private , duration, external, inituserid, day_ind, repeat_mode, rep_from, rep_until, dategroup_id, holiday_id, id_class, id_appt_type, id_location_type, availability, telephone, id_scheduling, subject_summ ORDER BY 1";
273   $sql = "SELECT * FROM mgw_calendar
274	        WHERE $sql_owner_part date >= ".$conn->DBTimeStamp(mktime(0,0,0, date("m",$actual_week_start_date), date("d",$actual_week_start_date), date("Y",$actual_week_start_date)) )." AND
275            date <= ".$conn->DBTimeStamp( mktime(23,59,59, date("m",$actual_week_end_date), date("d",$actual_week_end_date), date("Y",$actual_week_end_date)))." AND id_class!='3'
276			GROUP BY 1, date , userid , subject, location, private , duration, external, inituserid, day_ind, repeat_mode, rep_from, rep_until, dategroup_id, holiday_id, id_class, id_appt_type, id_location_type, availability, telephone, id_scheduling, subject_summ
277			ORDER BY 1";
278
279    if(!$res = $conn->Execute($sql)) die(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__));
280    $num = $res->RecordCount();
281
282    if ($num > 0){  // week NOT empty:
283	while($row = $res->FetchRow()){
284	    $vmin  = $res->UnixTimeStamp($row["date"]);
285	    $bmin  = $vmin + $row["duration"] * 60;
286
287	    if (get_celebrate_days($vmin, $holitemp) != "") $t_klasse = "feiertag";
288	    else if ((date("w", $vmin) == 0) || (date("w", $vmin) == 6))   $t_klasse = "wochenende";
289	    else if (mktime(0,0,0, date("m",$vmin),date("j",$vmin),date("Y",$vmin)) ==
290		     mktime(0,0,0, date("m",time()),date("j",time()),date("Y",time()))) $t_klasse = "heute";
291	    else $t_klasse = "edit";
292
293//// NATYS : color of appointment : appointment type
294	//----- appointment type :
295	$id_appt_type = $row["id_appt_type"];
296	$sql_appt_type = "SELECT * FROM mgw_calendar_appt_type WHERE id=$id_appt_type";
297	if(!$res_appt_type = $conn->Execute($sql_appt_type)) exit(showSQLerror($sql_appt_type, $conn->ErrorMsg(), __LINE__, __FILE__));
298	$row_appt_type = $res_appt_type->FetchRow();
299
300	$id_class = $row["id_class"];
301	if ($id_class!=2) {
302	    // appointment is subjected or on standby:
303		$sql_class = "SELECT * FROM mgw_calendar_class WHERE id=$id_class";
304		if(!$res_class = $conn->Execute($sql_class)) exit(showSQLerror($sql_class, $conn->ErrorMsg(), __LINE__, __FILE__));
305		$row_class = $res_class->FetchRow();
306		$appointment_type = array( 	"text" => Lang::getLanguageString("gentemp_".$row_appt_type["type"])."&nbsp;:<BR>".Lang::getLanguageString("class_".$row_class["class"]),
307								"color"=> $row_class["color"]
308							 	 );
309	}
310	else {
311		$appointment_type = array( 	"text" => Lang::getLanguageString("gentemp_".$row_appt_type["type"]),
312								"color"=> $row_appt_type["color"]
313							 );
314	}
315
316
317
318/////////////
319
320	    for ($w = $vmin; $w < $bmin; $w += $interval_sec){
321		$datum = getdate($w);
322		$vzeit = date("His", $w);
323		// NATYS : extracted from if and else :
324		$klasse[$datum["wday"]][$vzeit] = "$t_klasse";
325		$bg_klasse[$datum["wday"]][$vzeit] = $appointment_type["color"];
326		//echo "$vzeit : ".$appointment_type["color"]."<BR>";
327		if ($w == $vmin){
328		    $myid = $row["id"];
329		    //NATYS $klasse[$datum["wday"]][$vzeit] = "$t_klasse";
330
331			if ($row["private"] == 1 && $_SESSION['calendarid'] != $_SESSION["MGW"]->userid){
332				// private, not owner
333				if (!isset($week[$datum["wday"]][$vzeit])) $week[$datum["wday"]][$vzeit] = Lang::getLanguageString("private");
334				else if ( $week[$datum["wday"]][$vzeit] == "...")  $week[$datum["wday"]][$vzeit] = Lang::getLanguageString("private");
335				else $week[$datum["wday"]][$vzeit] = "<a class=\"edit\" href=\"index.php?action=sel&ind=2&date=$vmin&".SID."\">".Lang::getLanguageString("temp_row_label_1")."</a>";
336			}
337		    else if ($row["private"] == 0 || $_SESSION['calendarid'] == $_SESSION["MGW"]->userid){
338				// not private or owner
339				//// NATYS ////
340				//if (!isset($week[$datum["wday"]][$vzeit]))   $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"edit\">".short_string($row["subject"],$max_subject_length)."</a>";
341				if (!isset($week[$datum["wday"]][$vzeit]))   {
342					if ($row["subject_summ"]=="") $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"editlittle\">".short_string($appointment_type["text"],$max_subject_length)."</a>";
343					else $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"editlittle\">".short_string(str_decode($row["subject_summ"]),$max_subject_length)."</a>";
344					//$week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"edit\">".short_string(str_decode($row["subject_summ"]),$max_subject_length)."</a>";
345				}
346				//else if ( $week[$datum["wday"]][$vzeit] == "...") $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"edit\">".$row["subject"]."</a>";
347				else if ( $week[$datum["wday"]][$vzeit] == "...") $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"edit\">".short_string(str_decode($row["subject_summ"]),$max_subject_length)."</a>";
348				//////////
349				else if (isset($week[$datum["wday"]][$vzeit]))    $week[$datum["wday"]][$vzeit] = "<a href=\"index.php?action=sel&ind=2&date=$vmin&".SID."\" class=\"edit\">".Lang::getLanguageString("temp_row_label_1")."</a>";
350		    }
351		}
352		else{
353		    $week[$datum["wday"]][$vzeit] = "...";
354		    //NATYS $klasse[$datum["wday"]][$vzeit] = "$t_klasse";
355		}
356	    } // end for
357	}
358
359	// NATYS : classes for header (days)
360		$t=$app_start_time;
361	    $zeits = date("His", $t);
362	    for ($k=1;$k<=7;$k++){
363		$head_klasse_nam = "head_klasse$k";
364		if (!isset($klasse[$k]["$zeits"])){
365
366			//echo date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)))."<br>";
367		    if (get_celebrate_days( mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)), $holitemp) != "")
368			$$head_klasse_nam = "feiertag";
369			else if (
370						(date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 0)
371			     	 || (date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 6)
372					)
373			$$head_klasse_nam = "wochenende";
374		    else if (mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)) ==
375			     mktime(0,0,0, date("m",time()),date("j",time()),date("Y",time())))
376			$$head_klasse_nam = "heute";
377		    else $$head_klasse_nam = "tab";
378		 }
379		}
380
381
382	$cw_header = array( "h_klass2"	=>	$head_klasse1,
383						"h_klass3"	=>	$head_klasse2,
384						"h_klass4"	=>	$head_klasse3,
385						"h_klass5"	=>	$head_klasse4,
386						"h_klass6"	=>	$head_klasse5,
387						"h_klass7"	=>	$head_klasse6,
388						"h_klass8"	=>	$head_klasse7
389						);
390	$smarty->assign("cw_header",$cw_header);
391	//////////
392
393
394	/// properties of each cell per line.
395	for($t=$app_start_time; $t<$app_end_time; $t+=$interval_sec){
396	    $zeits = date("His", $t);
397	    for ($k=1;$k<=7;$k++){
398		$nam = "klasse$k";
399		$bg_nam = "bg_klasse$k";
400		$$bg_nam = IsSet($bg_klasse[$k%7]["$zeits"]) ? $bg_klasse[$k%7]["$zeits"] : ""; //$bg_klasse[$k%7]["$zeits"];
401//echo "<br><br>$bg_nam::-> ".$bg_klasse[$k]["$zeits"];
402		if (!isset($klasse[$k]["$zeits"])){
403		    if (get_celebrate_days( mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)), $holitemp) != "")
404			$$nam = "feiertag";
405		    else if ((date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 0)
406			     || (date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 6))
407			$$nam = "wochenende";
408
409		    else if (mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)) ==
410			     mktime(0,0,0, date("m",time()),date("j",time()),date("Y",time())))
411			$$nam = "heute";
412		    else $$nam = "tab";
413		}
414		else $$nam = $klasse[$k]["$zeits"];
415	    }
416
417	    if (!isset($klasse[0]["$zeits"])) $klasse7 = "wochenende";
418	    else $klasse7 = $klasse[0]["$zeits"];
419
420		// add some checking for content here KFISH
421		if (($t >= $start_time && $t < $end_time) || (isset($week[1][$zeits]) && $week[1][$zeits] != "") || (isset($week[2][$zeits]) && $week[2][$zeits] != "") || (isset($week[3][$zeits]) && $week[3][$zeits] != "") || (isset($week[4][$zeits]) && $week[4][$zeits] != "") || (isset($week[5][$zeits]) && $week[5][$zeits] != "") || (isset($week[6][$zeits]) && $week[6][$zeits] != "") || (isset($week[0][$zeits]) && $week[0][$zeits] != "") ){
422		$zeile = array( "von" => date($timemask, $t)."&nbsp;&nbsp;-&nbsp;&nbsp;".date($timemask, $t+$interval_sec),
423				"mon" => isset($week[1][$zeits]) ? $week[1][$zeits] : "",
424				"tue" => isset($week[2][$zeits]) ? $week[2][$zeits] : "",
425				"wed" => isset($week[3][$zeits]) ? $week[3][$zeits] : "",
426				"thu" => isset($week[4][$zeits]) ? $week[4][$zeits] : "",
427				"fri" => isset($week[5][$zeits]) ? $week[5][$zeits] : "",
428				"sat" => isset($week[6][$zeits]) ? $week[6][$zeits] : "",
429				"sun" => isset($week[0][$zeits]) ? $week[0][$zeits] : "",
430				"klass2" => $klasse1,
431				"klass3" => $klasse2,
432				"klass4" => $klasse3,
433				"klass5" => $klasse4,
434				"klass6" => $klasse5,
435				"klass7" => $klasse6,
436				"klass8" => $klasse7,
437				/// NATYS ///
438				"bg_klass2"	=>	$bg_klasse1,
439				"bg_klass3"	=>	$bg_klasse2,
440				"bg_klass4"	=>	$bg_klasse3,
441				"bg_klass5"	=>	$bg_klasse4,
442				"bg_klass6"	=>	$bg_klasse5,
443				"bg_klass7"	=>	$bg_klasse6,
444				"bg_klass8"	=>	$bg_klasse7
445				);
446				/////////////
447		$smarty -> append("cw", $zeile);
448		//print_r($zeile);
449		//echo "<BR>---<BR>";
450	}
451	}
452
453    } // end if(num > 0)
454
455    else if ($num==0){ // empty week :
456	// no appointmemts that day
457	for ($k=1;$k<=7;$k++){
458	    $nam = "head_klasse$k";
459
460	    if (get_celebrate_days(mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)), $holitemp) != "")
461		$$nam = "feiertag";
462	    else if (
463					(date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 0)
464				||  (date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 6)
465				)
466		$$nam = "wochenende";
467	    else if (mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)) == mktime(0,0,0, date("m",time()),date("j",time()),date("Y",time())))
468		$$nam = "heute";
469	    else $$nam = "tab";
470	}
471
472	$cw_header = array( "h_klass2"	=>	$head_klasse1,
473						"h_klass3"	=>	$head_klasse2,
474						"h_klass4"	=>	$head_klasse3,
475						"h_klass5"	=>	$head_klasse4,
476						"h_klass6"	=>	$head_klasse5,
477						"h_klass7"	=>	$head_klasse6,
478						"h_klass8"	=>	$head_klasse7
479						);
480	$smarty->assign("cw_header",$cw_header);
481
482	// lot of this code is unused -> it need to be cleaned
483	for($t=$start_time; $t<$end_time; $t+=$interval_sec) {
484	    $leer = array(  "von"  => date($timemask, $t)."&nbsp;&nbsp;-&nbsp;&nbsp;".date($timemask, $t+$interval_sec),
485			    "mon"  => " ",
486			    "tue"  => " ",
487			    "wed"  => " ",
488			    "thu"  => " ",
489			    "fri"  => " ",
490			    "sat"  => " ",
491			    "sun"  => " ",
492			    "klass2" 	=> "$klasse1",
493			    "klass3" 	=> "$klasse2",
494			    "klass4" 	=> "$klasse3",
495			    "klass5" 	=> "$klasse4",
496			    "klass6" 	=> "$klasse5",
497			    "klass7" 	=> "$klasse6",
498			    "klass8" 	=> "$klasse7"
499			    );
500	    $smarty->append("cw", $leer);
501	}
502    }
503
504    $kalender  = get_monthview_static( $date, $_SESSION['calendar_year'], $_SESSION['calendar_month']);
505    $feiertag  = "(" . get_celebrate_days($date, $holitemp) .	")";
506    if ($feiertag == "()") $feiertag = "";
507    $gestern  = $date - 3600*168;
508    $morgen   = $date + 3600*168;
509
510    // wml-stuff -----------------------
511    if($myEnv["output"]=="wml"){
512	for($w=-5;$w<5;$w++)  {
513	    $d=$date +($w*3600*168);
514	    $skw["date"]=$d;
515	    $skw["kw"]=get_weeknumber($d);
516	    $smarty->append('skw', $skw);
517	}
518    }
519    //----------------------------------
520
521//// NATYS ////
522/*
523* calweek : texte "semaine n�"
524* cur_week : N� de semaine actuelle
525*
526*/
527///////////////
528
529    $weiter = "<a class=\"navlink\" href=\"week.php?date=$morgen&".SID."\" style=\"text-decoration:none;\">" . Lang::getLanguageString("forward"). " &gt;&gt;"  . "</a>";
530    $zurueck= "<a class=\"navlink\" href=\"week.php?date=$gestern&".SID."\" style=\"text-decoration:none;\">" . "&lt;&lt; " . Lang::getLanguageString("temp_header_nav_back"). "</a>";
531    $text     = Lang::getLanguageString("calweek")." " . get_weeknumber($date) . "&nbsp;:&nbsp;&nbsp; $wst_d - $wen_d";
532
533	//appt type legend :
534	$smarty->assign("appt_type_legend",get_appt_type_legend());
535
536	$smarty->assign('phpself',"week.php?date=$date");
537    $smarty->assign('SID', SID);
538    $smarty->assign('cur_week', "$wst_d-$wen_d");
539    $smarty->assign('header_date', $text);
540    $smarty->assign('kalender', $kalender);
541    $smarty->assign('gestern', $gestern);
542    $smarty->assign('morgen', $morgen);
543    $smarty->assign('nav_links', $zurueck);
544    $smarty->assign('nav_rechts', $weiter);
545    $smarty->assign('calendar_owner', $_SESSION['calendarname']);
546    $smarty->assign('date', $date);
547    $smarty->assign('back', "week.php?date=$gestern&".SID);
548    $smarty->assign('weiter', "week.php?date=$morgen&".SID);
549    $smarty->assign('inh', "week.php?action=inh&date=$date&".SID);
550
551    if ($_SESSION["MGW"]->userid == $_SESSION['calendarid']){
552	$smarty->assign('ntext', " Neuer Termin ");
553	$smarty->assign('new', "week.php?action=new&date=$date&".SID);
554    }
555
556    $smarty->assign("timefmt", $_SESSION["MGW"]->settings["timefmt"]);
557    $smarty->display('calendar_week.tpl');
558    $smarty->clear_assign('action');
559}
560?>
561