
	/*****************************************************************
	
	  EventKalender
	
	  Copyright (c) 2010 hikelCOM internet + druck (www.hikelcom.de)
	  
	*****************************************************************/


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


function HideJsError(){
	document.getElementById('javascr').style.display = 'none';
}


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


function EvActNorm(strID, TYPE){

    if(TYPE == 'on'){
        if((strID == 'senden') || (strID == 'abbrechen') || (strID == 'newevent')){
    		document.getElementById(strID).className = 'events_input_def events_input_3_act';
        }else if(strID == 'text'){
	    	document.getElementById(strID).className = 'events_input_def events_input_2_act';
        }else{
	    	document.getElementById(strID).className = 'events_input_def events_input_1_act';
        }
    }else{
        if((strID == 'senden') || (strID == 'abbrechen') || (strID == 'newevent')){
    		document.getElementById(strID).className = 'events_input_def events_input_3';
        }else if(strID == 'text'){
    		document.getElementById(strID).className = 'events_input_def events_input_2';
        }else{
	    	document.getElementById(strID).className = 'events_input_def events_input_1';
        }
    }
}


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


function BgHighlight(objObj, strType){
	
	if(strType == 'on'){
		objObj.className = 'events_input_def events_input_1 events_bg-highlight';
	}else{
		objObj.className = 'events_input_def events_input_1';
	}
	
}  


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


function TdBgHighlight(intId, strType){
	if(strType == 'on'){
		for(i = 1; i <= 4; i++){
			document.getElementById("cell_"+ intId +"_"+ i).style.backgroundColor = 'rgb(255, 255, 255)';
		}	
	}else{
		for(i = 1; i <= 4; i++){
			document.getElementById("cell_"+ intId +"_"+ i).style.backgroundColor = '';
		}	
	}
	
}


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
 

function NewEvent(TYPE){
	
	if(TYPE == 'on'){
		document.getElementById("newItem").className = 'events_activated';
		document.getElementById("btn_shownewitem").className = 'events_deactivated';
		document.getElementById("errornote").style.display = 'none';
	}else{
		document.getElementById("newItem").className = 'events_deactivated';
		document.getElementById("btn_shownewitem").className = 'events_activated';
	}
		
}


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
 
 
function CheckForm1(){
    
	f = document.forms["vform"];
    
    // namen aller inputs, erstmal auf normal-style zurückstellen
	var INPUTS = new Array('ev_date_from_day', 'ev_date_from_month', 'ev_date_from_year', 'ev_date_to_day', 'ev_date_to_month', 'ev_date_to_year', 'ev_time_from_hour', 'ev_time_from_minute', 'ev_time_to_hour', 'ev_time_to_minute', 'ev_title', 'ev_infos');
    
    for(i = 0; i < INPUTS.length; i++){
       document.getElementsByName(INPUTS[i])[0].className = 'events_input_def events_input_1';
  	}
    
    // testen, ob das enddatum größergleich dem start-datum ist
    // ausgewählter start / end tag    
    strSelIndDayA = f.ev_date_from_day.options[f.ev_date_from_day.selectedIndex].value;
    strSelIndDayB = f.ev_date_to_day.options[f.ev_date_to_day.selectedIndex].value;
    
    // ausgewählter start / end monat (achtung: später eventuell -1 abziehen, weil der index mit 0 beginnt!)
    strSelIndMonthA = f.ev_date_from_month.options[f.ev_date_from_month.selectedIndex].value;
    strSelIndMonthB = f.ev_date_to_month.options[f.ev_date_to_month.selectedIndex].value;
    
    // ausgewähltes start / end jahr
    strSelIndYearA = f.ev_date_from_year.options[f.ev_date_from_year.selectedIndex].value;
    strSelIndYearB = f.ev_date_to_year.options[f.ev_date_to_year.selectedIndex].value;
    
    // erst testen, ob überhaupt ein vollständiges end-datum angegeben wurde
    if((strSelIndDayB != '--') || (strSelIndMonthB != '--') || (strSelIndYearB != '--')){
    	if((strSelIndDayB == '--') || (strSelIndMonthB == '--') || (strSelIndYearB == '--')){
	    	
	    	alert(ERROR_ENDDATE);
	    	
	    	if(strSelIndDayB == '--'){
	    		BgHighlight(f.ev_date_to_day, 'on');
	    	}
	    	if(strSelIndMonthB == '--'){
	    		BgHighlight(f.ev_date_to_month, 'on');
	    	}
	    	if(strSelIndYearB == '--'){
	    		BgHighlight(f.ev_date_to_year, 'on');
	    	}
	    	
	    	// focus auf das erste fehlende element setzen
	    	if(strSelIndDayB == '--'){
	    		f.ev_date_to_day.focus();	    		
	    	}else if(strSelIndMonthB == '--'){
	    		f.ev_date_to_month.focus();
	    	}else{
	    		f.ev_date_to_year.focus();
	    	}	    	
	    	return false;		
    	}
    }
     
    // wenn end-datum ausgewählt, testen ob es nach dem start-datum liegt ..
    if((strSelIndDayB != '--') && (strSelIndMonthB != '--') && (strSelIndYearB != '--')){
	    
	    bolDatesOk = true;
	    
	    // vergleichsobjekte aus datum erzeugen
	    dateStart = new Date(strSelIndYearA, strSelIndMonthA-1, strSelIndDayA);
	    dateEnd = new Date(strSelIndYearB, strSelIndMonthB-1, strSelIndDayB);
	    
	    if(dateStart > dateEnd){
	    	bolDatesOk = false;	
	    }   
	    
	    // gabs einen fehler bei den ausgewählten daten?
	    if(bolDatesOk == false){
	    	
	    	alert(ERROR_ENDDATE_BEFORE_START);
	    	
	    	BgHighlight(f.ev_date_to_day, 'on');
	    	BgHighlight(f.ev_date_to_month, 'on');
	    	BgHighlight(f.ev_date_to_year, 'on');
	    	f.ev_date_to_day.focus();
	    	return false;
	    }
	     
	}   
    
    // wenn start-uhrzeit angegeben, dann auf sinn testen
    strSelIndHA = f.ev_time_from_hour.options[f.ev_time_from_hour.selectedIndex].value;
    strSelIndMA = f.ev_time_from_minute.options[f.ev_time_from_minute.selectedIndex].value;
    
    strSelIndHB = f.ev_time_to_hour.options[f.ev_time_to_hour.selectedIndex].value;
    strSelIndMB = f.ev_time_to_minute.options[f.ev_time_to_minute.selectedIndex].value;
    
   	// testen, ob alle start-uhrzeit felder der uhrzeit ausgewählt wurden
    if(((strSelIndHA != '--') && (strSelIndMA == '--')) || ((strSelIndHA == '--') && (strSelIndMA != '--'))){
    	 	
    	alert(ERROR_STARTTIME);	
    	
    	if(strSelIndHA == '--'){
    		f.ev_time_from_hour.focus();
    		BgHighlight(f.ev_time_from_hour, 'on');
    	}else{
    		f.ev_time_from_minute.focus();
    		BgHighlight(f.ev_time_from_minute, 'on');
    	}	    	
    	return false;
    	
    }
    
    // wenn end-uhrzeit angegeben, dann auf sinn testen
    
    
    // testen, ob überhaupt eine start-zeit angegeben
    //////////////////////////////////////////////////// FEHLT NOCH
    
    // testen, ob alle end-uhrzeit felder der uhrzeit ausgewählt wurden
    if(((strSelIndHB != '--') && (strSelIndMB == '--')) || ((strSelIndHB == '--') && (strSelIndMB != '--'))){
    	 	
    	alert(ERROR_ENDTIME);	
    	
    	if(strSelIndHB == '--'){
    		f.ev_time_to_hour.focus();
    		BgHighlight(f.ev_time_to_hour, 'on');
    	}else{
    		f.ev_time_to_minute.focus();
    		BgHighlight(f.ev_time_to_minute, 'on');
    	}	    	
    	return false;
   
    }
    
    // testen, ob end-zeit vor start-zeit liegt - aber nur wenn gleicher tag
    bolDateForTimeOK = true;
    
    // wenn ein end-datum angeben ...
    if(strSelIndYearB != '--'){
    	
    	dateStart = Date.parse(new Date(strSelIndYearA, strSelIndMonthA-1, strSelIndDayA));
		dateEnd = Date.parse(new Date(strSelIndYearB, strSelIndMonthB-1, strSelIndDayB));
		
		// wenn ungleiches datum, dann flag setzen. test auf logik entfällt, da vorher
		// bei den datum-tests schon geschehen
		if(dateStart != dateEnd){
			bolDateForTimeOK = false;
		}
	}
    
    // jetzt eigentlichen test der zeitpunkte machen
    if(bolDateForTimeOK == true){
	    
	    timeStart = new Date(strSelIndYearA, strSelIndMonthA-1, strSelIndDayA, strSelIndHA, strSelIndMA, 0);
	    timeEnd = new Date(strSelIndYearA, strSelIndMonthA-1, strSelIndDayA, strSelIndHB, strSelIndMB, 0);
	    
	    // gabs einen fehler bei den ausgewählten daten?
	    if(timeStart > timeEnd){
	    	
	    	alert(ERROR_ENDTIME_BEFORE_START);
	    	
	    	BgHighlight(f.ev_time_to_hour, 'on');
	    	BgHighlight(f.ev_time_to_minute, 'on');
	    	f.ev_time_to_hour.focus();
	    	
	    	return false;
	    }
	}
    
    // überschrift muss gegeben werden
    if(f.ev_title.value == ''){
    	
    	alert(ERROR_HL_MISSING);
    	
    	f.ev_title.focus();
    	return false;
  	}
  	
    f.submit();
  	//alert('das Formular wäre nun abgeschickt worden!'); 
}


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


function ShowInfo(strType){
	
	switch (strType) {
    	case 'start-datum':
    		alert(INFO_STARTDATE);
    		break;
    	case 'end-datum':
			alert(INFO_ENDDATE);
			break;
		case 'uhrzeit-beginn':
			alert(INFO_STARTTIME);
			break;
		case 'uhrzeit-ende':
			alert(INFO_ENDTIME);
			break;
		case 'event-titel':
			alert(INFO_EVENT_HL);
			break;
		case 'zusatzinfos':
			alert(INFO_EVENT_CONTENT);
			break;
	}		
}


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


function EvPopupWindow(url){

	var strGeom = 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=100,height=100,left=100,top=100';
	window.open(url, "popupWindow", strGeom);
	
}