///////////////////////////////////////////////////
//
//	eventcalendarExt.js
//		- javascript extensions for the Eventcalendar
//
//	@author				Marco Scheidhuber (m.scheidhuber@s3edv.de)
//
//	last change		060903
///////////////////////////////////////////////////

/* checkAllExtraEvents
   every event can have extra dates. if we check the visibility of an
   event in the administration tool it could be that the value in the
   database will be overwritten by the next extra date in line. so we
   change all the extra events and the original event at the same time.

   params: the (mysql)id of the event
           the input object which is pressed
*/
function checkAllExtraEvents(id, obj) {
  check = obj.checked;
  var elements = document.getElementsByName("MyArray["+id+"]");
  if(elements.length > 1) {
    for(var i=0; i <= elements.length; i++) {
      elements[i].checked = check;
    }
  }
}


function changeEventDates () {
	var f = document.getElementById ("form");
	var term_count = document.getElementsByName ("term_count");

	var q_id_html = document.getElementsByName ("q_id_html");
	var self_url = document.getElementsByName ("self_url");

	// normal values
    var redirect_url = 'http://www.quartiersmanagement-berlin.de';
	redirect_url += self_url[0].value;
	redirect_url += "?fuseaction=kalender.showInputForm";
	redirect_url += "&q_id=" + q_id_html[0].value;
	redirect_url += "&eventDateCount=" + term_count[0].value;

	// if something filled -> stick it on the end
	var datum_von = document.getElementsByName ("datum_von");
	redirect_url += datum_von[0].value != "" ? "&datum_von=" + datum_von[0].value : "";

	var datum_von_uhrzeit = document.getElementsByName ("datum_von_uhrzeit");
	redirect_url += datum_von_uhrzeit[0].value != "" ? "&datum_von_uhrzeit=" + datum_von_uhrzeit[0].value : "";

	var datum_bis = document.getElementsByName ("datum_bis");
	redirect_url += datum_bis[0].value != "" ? "&datum_bis=" + datum_bis[0].value : "";

	var datum_bis_uhrzeit = document.getElementsByName ("datum_bis_uhrzeit");
	redirect_url += datum_bis_uhrzeit[0].value != "" ? "&datum_bis_uhrzeit=" + datum_bis_uhrzeit[0].value : "";

	for (var i = 1; i <= 10; i++)
	{

		var datum_extra = document.getElementById ("datum_extra_" + i);
		//alert (datum_extra);
		if (datum_extra != null)
		{
			//alert (returnObj (datum_extra));
			redirect_url += datum_extra.value != "" ? "&datum_extra_" + i + "=" + datum_extra.value : "";

			var datum_extra_uhrzeit = document.getElementById ("datum_extra_uhrzeit" + i);
			redirect_url += datum_extra_uhrzeit.value != "" ? "&datum_extra_uhrzeit" + i + "=" + datum_extra_uhrzeit.value : "";
		}
	}

	var titel = document.getElementsByName ("titel");
	redirect_url += titel[0].value != "" ? "&titel=" + titel[0].value : "";

	var kurzinfo = document.getElementsByName ("kurzinfo");
	redirect_url += kurzinfo[0].value != "" ? "&kurzinfo=" + kurzinfo[0].value : "";

	var langinfo = document.getElementsByName ("langinfo");
	redirect_url += langinfo[0].value != "" ? "&langinfo=" + langinfo[0].value : "";

	var fk_q_id = document.getElementsByName ("fk_q_id");
	redirect_url += fk_q_id[0].value != "" ? "&fk_q_id=" + fk_q_id[0].value : "";

	var fk_q_id2 = document.getElementsByName ("fk_q_id2");
	redirect_url += fk_q_id2[0].value != "" ? "&fk_q_id2=" + fk_q_id2[0].value : "";

	var fk_kat_id = document.getElementsByName ("fk_kat_id");
	redirect_url += fk_kat_id[0].value != "" ? "&fk_kat_id=" + fk_kat_id[0].value : "";

	var fk_ort_id = document.getElementsByName ("fk_ort_id");
	redirect_url += fk_ort_id[0].value != "" ? "&fk_ort_id=" + fk_ort_id[0].value : "";

	var alt_ort = document.getElementsByName ("alt_ort");
	redirect_url += alt_ort[0].value != "" ? "&alt_ort=" + alt_ort[0].value : "";

	var url_text = document.getElementsByName ("url_text");
	redirect_url += url_text[0].value != "" ? "&url_text=" + url_text[0].value : "";

	var url = document.getElementsByName ("url");
	redirect_url += url[0].value != "" ? "&url=" + url[0].value : "";

	var ersteller = document.getElementsByName ("ersteller");
	redirect_url += ersteller[0].value != "" ? "&ersteller=" + ersteller[0].value : "";

	var ersteller_tel = document.getElementsByName ("ersteller_tel");
	redirect_url += ersteller_tel[0].value != "" ? "&ersteller_tel=" + ersteller_tel[0].value : "";

	var ersteller_email = document.getElementsByName ("ersteller_email");
	redirect_url += ersteller_email[0].value != "" ? "&ersteller_email=" + ersteller_email[0].value : "";

	window.open (redirect_url, "_self");
}

function changeEventDatesAdmin ()
{
	var f = document.getElementById ("form");
	var term_count = document.getElementsByName ("term_count");

	var self_url = document.getElementsByName ("self_url");
	var fa = document.getElementsByName ("fa");
	var v_id = document.getElementsByName ("v_id");

	// normal values
	var redirect_url = self_url[0].value;
	redirect_url += "?fa=" + fa[0].value;
	redirect_url += "&v_id=" + v_id[0].value;
	redirect_url += "&eventDateCount=" + term_count[0].value;

	// if something filled -> stick it on the end
/*	var datum_von = document.getElementsByName ("datum_von");
	redirect_url += datum_von[0].value != "" ? "&datum_von=" + datum_von[0].value : "";

	var datum_von_uhrzeit = document.getElementsByName ("datum_von_uhrzeit");
	redirect_url += datum_von_uhrzeit[0].value != "" ? "&datum_von_uhrzeit=" + datum_von_uhrzeit[0].value : "";

	var datum_bis = document.getElementsByName ("datum_bis");
	redirect_url += datum_bis[0].value != "" ? "&datum_bis=" + datum_bis[0].value : "";

	var datum_bis_uhrzeit = document.getElementsByName ("datum_bis_uhrzeit");
	redirect_url += datum_bis_uhrzeit[0].value != "" ? "&datum_bis_uhrzeit=" + datum_bis_uhrzeit[0].value : "";

	for (var i = 1; i <= 10; i++)
	{

		var datum_extra = document.getElementById ("datum_extra_" + i);
		if (datum_extra != null)
		{
			redirect_url += datum_extra.value != "" ? "&datum_extra_" + i + "=" + datum_extra.value : "";

			var datum_extra_uhrzeit = document.getElementById ("datum_extra_uhrzeit" + i);
			redirect_url += datum_extra_uhrzeit.value != "" ? "&datum_extra_uhrzeit" + i + "=" + datum_extra_uhrzeit.value : "";
		}
	}


	var titel = document.getElementsByName ("titel");
	redirect_url += titel[0].value != "" ? "&titel=" + titel[0].value : "";

	var kurzinfo = document.getElementsByName ("kurzinfo");
	redirect_url += kurzinfo[0].value != "" ? "&kurzinfo=" + kurzinfo[0].value : "";

	var langinfo = document.getElementsByName ("langinfo");
	redirect_url += langinfo[0].value != "" ? "&langinfo=" + langinfo[0].value : "";

	var fk_q_id = document.getElementsByName ("fk_q_id");
	redirect_url += fk_q_id[0].value != "" ? "&fk_q_id=" + fk_q_id[0].value : "";

	var fk_q_id2 = document.getElementsByName ("fk_q_id2");
	redirect_url += fk_q_id2[0].value != "" ? "&fk_q_id2=" + fk_q_id2[0].value : "";

	var fk_kat_id = document.getElementsByName ("fk_kat_id");
	redirect_url += fk_kat_id[0].value != "" ? "&fk_kat_id=" + fk_kat_id[0].value : "";

	var fk_ort_id = document.getElementsByName ("fk_ort_id");
	redirect_url += fk_ort_id[0].value != "" ? "&fk_ort_id=" + fk_ort_id[0].value : "";

	var alt_ort = document.getElementsByName ("alt_ort");
	redirect_url += alt_ort[0].value != "" ? "&alt_ort=" + alt_ort[0].value : "";

	var url_text = document.getElementsByName ("url_text");
	redirect_url += url_text[0].value != "" ? "&url_text=" + url_text[0].value : "";

	var url = document.getElementsByName ("url");
	redirect_url += url[0].value != "" ? "&url=" + url[0].value : "";

	var ersteller = document.getElementsByName ("ersteller");
	redirect_url += ersteller[0].value != "" ? "&ersteller=" + ersteller[0].value : "";

	var ersteller_tel = document.getElementsByName ("ersteller_tel");
	redirect_url += ersteller_tel[0].value != "" ? "&ersteller_tel=" + ersteller_tel[0].value : "";

	var ersteller_email = document.getElementsByName ("ersteller_email");
	redirect_url += ersteller_email[0].value != "" ? "&ersteller_email=" + ersteller_email[0].value : "";

//alert (redirect_url);
*/
	window.open (redirect_url, "_self");
}

function changeEventDatesAdminNewEvent ()
{
	var f = document.getElementById ("form");
	var term_count = document.getElementsByName ("term_count");

	var self_url = document.getElementsByName ("self_url");
	var fa = document.getElementsByName ("fa");

	// normal values
	var redirect_url = self_url[0].value;
	redirect_url += "?fa=" + fa[0].value;
	redirect_url += "&eventDateCount=" + term_count[0].value;

	window.open (redirect_url, "_self");
}

// gets an form element by name and submit it
function submitForm (pStrFormName)
{
	var form = document.getElementById (pStrFormName);
	form.submit ();
}

function submitFreischalten (pStrFormName, pStrVid)
{
	var myForm = document.forms[pStrFormName];

	myForm.v_id.value = pStrVid;
	myForm.subAction.value = "freischalten";

	myForm.submit ();
}

function submitDelete (pStrFormName, pStrVid)
{
	var myForm = document.forms[pStrFormName];

	myForm.del_id.value = pStrVid;
	myForm.subAction.value = "delete";

	myForm.submit ();
}

function submitChangeDp (pStrFormName)
{
	var myForm = document.forms[pStrFormName];

	for (var i in myForm.dachportal)
	{
		if (myForm.dachportal[i]["checked"])
		{
			myForm.dachportal[i].value = "gecheckt";
		}
	}

	myForm.subAction.value = "changeDp";
	myForm.changeDpCount.value = myForm.dachportal.length;
	myForm.submit ();
}

function setQCheck()
{
/*	alert ("checedkdk in was ");
	if (document.forms.frmSuche.alle.checked == true)
	{
		//alert(document.forms.frmSuche.fk_q_id[].length);
		alert(returnObj(document.forms.frmSuche));

		for (var i in document.forms.frmSuche)
		{
			//document.forms.frmSuche.fk_q_id[i].checked == true;
			alert ("hallo");
		}
	}
	else
	{
		//alert(document.forms.frmSuche.fk_q_id[].length);

		//for (i=0; i<document.forms.frmSuche.fk_q_id.length; ++i)
		//{
			//document.forms.frmSuche.fk_q_id[i].checked == document.frmSuche.fk_q_id[i].defaultChecked;
		//}
	}
*/
	return true;
}

// return a object content string for the first level
function returnObj (pObj)
{
	var strReturn = "";
	for (var i in pObj)
	{ strReturn += "property: " + i + ", value: " + pObj[i] + "\n"; }
	return strReturn;
}


//////////////////////////////////////
// function for admin/addEvent.php and admin/update.php
//////////////////////////////////////
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function YYcalclose(YYwhat){//v4.0
  if (YYwhat>=0){
    var yyTag = YYwhat - yyW + 2;
    if ((yyTag > 0)&&(yyTag <= dom[yyDiv.m])){
      var d=yyTag;
      if (YYLang=='de'){YYstrdatum = d+'.'+eval(yyDiv.m+1)+'.'+yyDiv.year;} //13.4.1968
      if (YYLang=='com'){YYstrdatum = YYstrm[yyDiv.m].substring(0,3) +' '+d+', '+yyDiv.year;}
      if (YYLang=='av'){YYstrdatum = d+'/'+YYstrm[yyDiv.m].substring(0,3)+'/'+yyDiv.year;}
      yyDatevar.value=YYstrdatum;
    }
  }
  if (document.layers){yyDiv.visibility = "hide";}
  if (document.all||document.getElementById){yyDiv.style.visibility = "hidden";}
}

function YYgoYear(YY){//v4.0
  var newYear = eval(yyDiv.year) + YY;
  yyDiv.year = newYear.toString(10);
  if (YY==0){} else {YYsetMonth(yyDiv.m,yyDiv.year)}
  setTimeout('YYcaldraw(yyDiv.d,yyDiv.m,yyDiv.year)',(document.layers)?'300':'1');
}

function YYsetMonth(YYm, YYy){//v4.0
  var startDate = new Date();
  startDate.setMonth(YYm);   startDate.setYear(YYy);   startDate.setDate(1);
  yyW = startDate.getDay();
  if (yyW==0){yyW=7}
  var daSchalt = yyDiv.year % 4;
  if (daSchalt==0){dom[1]=29}else {dom[1]=28}
}

function YYgoMonth(YY){//v4.0
   yyDiv.m=yyDiv.m+YY;
   if (yyDiv.m<0){yyDiv.m+=12;YYgoYear(-1)}
     else {if (yyDiv.m>11){yyDiv.m=yyDiv.m-12;YYgoYear(1)}
       else{setTimeout('YYcaldraw(yyDiv.d,yyDiv.m,yyDiv.year)',(document.layers)?'300':'1')}
     }
   YYsetMonth(yyDiv.m,yyDiv.year);
}

function YYsetDate(){//v4.0
   var myDate = new Date();
   yyDiv.year=myDate.getYear();
   if ((myDate.getYear() > 86)&&(myDate.getYear() <= 99)) { yyDiv.year= '19' + myDate.getYear() }
   if ((myDate.getYear() > 99)&&(myDate.getYear() < 1900)) { yyDiv.year= (1900 + myDate.getYear())+''; }
   if (myDate.getYear() <= 86){ yyDiv.year= '20' + myDate.getYear() }//2000!!
   yyDiv.m =  myDate.getMonth();
   yyDiv.d = myDate.getDate();
   var w = myDate.getDay();
   YYsetMonth(yyDiv.m,yyDiv.year);
   YYgoYear(0);
}

function YYcaldraw(ycd,ycm,ycy){//v4.0
  // writing the calendar table
  var yyfnt="<font size=1 color='"+yyDiv.yyTextcolor+"' face=\'Arial, sans-serif\'>";
  var myTR = "<tr bgcolor=\'"+yyDiv.yyBgcolor+"\'>";
  var yyatag="<a href='#' style=\"color: "+yyDiv.yyTextcolor+"; text-decoration: none\" onClick=";
  if (document.layers||document.all||document.getElementById){
   var myMonth = YYstrm[ycm];
   var mytxt="<table border=\'0\' cellspacing=\'1\' cellpadding=\'3\' width=\'210\'>";
   mytxt+=myTR+"<td colspan='7'>"+yyfnt+yyatag+"'YYgoMonth(-1)'>&lt;&lt;&nbsp;</a>";
   mytxt+=myMonth;
   mytxt+=yyatag+"'YYgoMonth(1)'>&nbsp;&gt;&gt;</a>&nbsp;&nbsp;";
   mytxt+=yyatag+"'YYgoYear(-1)'>&lt;&lt;&nbsp;</a>&nbsp;"+ycy+"&nbsp;";
   mytxt+=yyatag+"'YYgoYear(1)'>&nbsp;&gt;&gt;</a>&nbsp;&nbsp;";
   mytxt+=yyatag+"'YYcalclose()' title='close'>(x)</a></font></td></tr>"+myTR;
   mytxt+="<td>"+yyfnt+"Mo</font></td><td>"+yyfnt+"Di</font></td><td>"+yyfnt+"Mi</font></td><td>"+yyfnt+"Do</font></td>";
   mytxt+="<td>"+yyfnt+"Fr</font></td><td>"+yyfnt+"Sa</font></td><td>"+yyfnt+"<font color=red>So</font></font></td></tr>"+myTR;
   for (var i=0;i<=41;i++){
     myStr=((i > (dom[ycm]+yyW-2))||(i < yyW-1))?"&nbsp;":i-yyW+2;
     mytxt+="<td>"+yyfnt+yyatag+"\'YYcalclose("+i+")\' title='"+myMonth+" "+myStr+", "+ycy+"'>"+ myStr + "</a></font></td>";
     if ((i==6) || (i==13) || (i==20) || (i==27) || (i==34) || (i==41)) { mytxt+=myTR }
   }
   mytxt+="</table>";
 }
 if (document.layers){
   with (yyDiv.document){
     open('text/html');
     write(mytxt);
     close();
   }
 }  // end of ns4
 else if (document.all||document.getElementById){
   yyDiv.innerHTML=mytxt;
 } // end of ie4x / dom
}

function YY_Calendar(YYwhat,YYleft, YYtop,YYformat, YYtextcolor, YYbgcolor){//v4.0
  yyDiv= MM_findObj('Calendar1');
  yyDiv.yyTextcolor = YYtextcolor;
  yyDiv.yyBgcolor = YYbgcolor;
  YYsetDate();
  if (document.layers){
    yyDiv.left = YYleft;
    yyDiv.top = YYtop;
    yyDiv.visibility ="show";
  }
  if (document.all){
    yyDiv.style.pixelLeft = YYleft;
    yyDiv.style.pixelTop = YYtop;
    yyDiv.style.visibility = "visible";
  }else
  if (document.getElementById){
    yyDiv.style.left = YYleft;
    yyDiv.style.top = YYtop;
    yyDiv.style.visibility = "visible";
  }
  yyDatevar = MM_findObj(YYwhat);
  YYLang=YYformat;
}
