var xmlHttp = createXmlHttpRequestObject();
var langCache = {};

function createXmlHttpRequestObject()
{
  var ret = null;
  if (!ret) try {ret = new XMLHttpRequest();} catch (ex) {ret = null;}
  if (!ret) try {ret = new ActiveXObject("Microsoft.XMLHTTP");} catch (ex) {ret = null;}
  if (!ret) try {ret = new ActiveXObject("Msxml2.XMLHTTP");} catch (ex) {ret = null;}
  return ret;
}

function getLang(rubrik, item)
{
  var key = rubrik+'_'+item;
  if (!(key in langCache)) {
    new Ajax.Request('ajax/srv/lang.php?r='+encodeURIComponent(rubrik)+
                                      '&t=' + encodeURIComponent(item), {
      asynchronous: false,
      onComplete: function (t) {
        langCache[key] = t.responseText;
      }
    });
  }
	return langCache[key];
}

function createMsxml2DOMDocumentObject ()
{
  var ret = null;
  if (!ret) try {ret = new ActiveXObject("Microsoft.XMLDOM");} catch (ex) {ret = null;}
  return ret;
}

function loadStyleSheet(sheetName)
{
	var stylesheetDoc = null;
  if (window.ActiveXObject)
  {
		stylesheetDoc = createMsxml2DOMDocumentObject();
		stylesheetDoc.async = false;
		stylesheetDoc.load(sheetName);
  }
  else if (window.DOMParser)
  {
		xmlHttp.open("GET", sheetName, false);
		xmlHttp.send(null);
    var dp = new DOMParser();
    stylesheetDoc = dp.parseFromString(xmlHttp.responseText, "text/xml");
  }
  return stylesheetDoc;
}

function parseStyleSheet(stylesheetDoc, xmlResponse, targetDiv)
{
  while (targetDiv.hasChildNodes()) {
    targetDiv.removeChild(targetDiv.lastChild);
  }
  targetDiv.innerHTML = '';
  if (window.ActiveXObject)
  {
    var node = xmlResponse.transformNode(stylesheetDoc);
    targetDiv.innerHTML = node;
  }
  else if (window.XSLTProcessor)
  {
		var xsltProcessor = new XSLTProcessor();
		xsltProcessor.importStylesheet(stylesheetDoc);
		var fragment = xsltProcessor.transformToFragment(xmlResponse, document);
    targetDiv.appendChild(fragment);
  }
}

function ajax_freigeben_bildAktualisieren(id)
{
	new Ajax.Request('ajax/srv/leistung_ajax.php?t=freig&infoOnly=1&id=' + id, {
		onSuccess: function(trans) {
			ajax_freigeben_update(id, trans);
		}
	});
}

function sa_wv_verbuchen_checkbox(id)
{
  if ($('sa_wv_td_'+id) && $('sa_wv_firmenID') && $('sa_wv_zeitraum')) {
    new Ajax.Request('ajax/srv/wv_auswertung_v3.php', {
      postBody: 't=verbuchen_checkbox'+
                '&lID='+encodeURIComponent(id)+
                '&firmenID='+encodeURIComponent($('sa_wv_firmenID').value)+
                '&zeitraum='+encodeURIComponent($('sa_wv_zeitraum').value),
      onComplete: function (t) {
        var json = t.responseText.evalJSON();
        $('sa_wv_td_'+id).innerHTML = json.content;
      }
    });
  }
}

function ajax_freigeben(id, name, value, event, onlyRS)
{
	if (onlyRS == undefined) {
		onlyRS = false;
	}
	if(event.shiftKey) {
		var freig = true;
		new Ajax.Request('ajax/srv/leistung_ajax.php?t=checkFreig&id=' + id, {
			asynchronous: false,
			onSuccess: function(t) {
				(t.responseText == "1") ? freig = false : true;
			}
		});
		if (freig == true) {
			if (eingabe = prompt(getLang('all', 'enterConsultText'), "")) {
				new Ajax.Request('ajax/srv/leistung_ajax.php?t=rs&id=' + id + '&eingabe=' + encodeURIComponent(eingabe), {
					onSuccess: function(transport) {
						try {
							var td = $('supText_' +id);
							var rs = '<img id="rs_' + id + '" src="media/hp/ruecksprache.gif">';
							new Insertion.Bottom(td, rs);
							var rsGfx = $('rs_' + id);
							rsGfx.onmouseover = function() {TT(event, true, getLang("all", "consultation") + ':\n' + eingabe)};
							rsGfx.onmouseout  = function() {TT(event, false, '')};
							rsGfx.onclick     = function() {ajax_rs_entfernen(id)};
							ajax_freigeben_bildAktualisieren(id);
              if ($('lst_freigabe_box_'+id) && $('lst_freigabe_lst_'+id)) {
                $('lst_freigabe_lst_'+id).remove();
                var infoImg = new Element('img', {
                  'src': 'media/hp/info.gif',
                  'onmouseover': 'TT(event, true, \''+getLang("all", "supportConsultationCantSetFree")+'\');',
                  'onmouseout': 'TT(event, false, \'\');'
                });
                $('lst_freigabe_box_'+id).appendChild(infoImg);
              }
              sa_wv_verbuchen_checkbox(id);
						} catch (ex) {}
					}
				});
			}
		} else {
			alert(getLang("support", "hist_cantRS"));
		}
	}	else if (onlyRS == false)	{
		new Ajax.Request('ajax/srv/leistung_ajax.php?t=freig&id=' + id + '&' + name +'=' + value, {
			onSuccess: function(t) {ajax_freigeben_update(id, t);}
		});
	}
}

function ajax_freigeben_update(id, transport)
{
  $('lGfx' + id).innerHTML = transport.responseText;
	try	{
		var arr = $A($F('freigegebenSA').split(","));
		if (arr.indexOf(id.toString()) == -1) {
			arr.push(id);
		}	else {
			arr.splice(arr.indexOf(id.toString()), 1);
		}
		$('freigegebenSA').value = arr.join(",");
		$('verbuchenSA').value = arr.join(",");
		js_check_SA_leistungen_freigegeben();
	} catch (ex) {}
}

function ajax_rs_entfernen(id)
{
	var delAdd = '';
	if (confirm(getLang("all", "consultTextDel"))) {
		if (confirm(getLang("support", "hist_delIntText"))) {
			delAdd = '&delText=1';
		}
		new Ajax.Request('ajax/srv/leistung_ajax.php?t=rs_del&id=' + id + delAdd, {
			onSuccess: function(transport) {
				ajax_freigeben_bildAktualisieren(id);
				$('rs_' + id).hide();
        sa_wv_verbuchen_checkbox(id);
			}
		});
	}
}

function key_navigation(e)
{
	try {
		var keynum = null;
		if (window.event) {
			keynum = e.keyCode;
		} else if (e.which) {
			keynum = e.which;
		}
		if (e.altKey == 1) {
			// ALT-S: zur Firmen-Suche springen
			if (keynum == 83) {
				$('neueFirma').focus();
			}
		}
	}
	catch (ex) {}
}

function ajax_stammdaten_hinzufuegen(promptText, tabelle, nameFeld, selectElement)
{
	var eingabe = null;
	if (eingabe = prompt(promptText, ""))
	{
		var param = "ajax/srv/ajax.php?t=stamm&tabelle=" + tabelle + "&nameFeld=" + nameFeld + "&eingabe=" + encodeURIComponent(eingabe);
		new Ajax.Request(param, {
			onSuccess: function (transport)	 {
				var neueID = transport.responseText;
				if (neueID > 0) {
					if ($(selectElement)) {
						var selElem = $(selectElement);
						var opt = document.createElement('option');
	  				opt.text = eingabe;
	  				opt.value = neueID;
						try {
							selElem.add(opt, null);
						} catch (ex) {
							selElem.add(opt);
						}
						selElem.selectedIndex = selElem.length - 1;
            try {
              selElem.onchange();
            } catch(ex) {}
					}
				}
				else {
					alert(getLang("all", "entryAlreadyExists"));
				}
			}
		});
	}
}

function dial_url(nr)
{
	new Ajax.Request('ajax/srv/voip.php?dial=' + nr, {
		onSuccess: function(trans) {
			alert(trans.responseText);
		}
	});
}

function zeitRaumPruefen(v, b)
{
	try {
		var von = $F(v);
		var bis = $F(b);
		var vonC = von.substr(4, 2) + von.substr(2, 2) + von.substr(0, 2);
		var bisC = bis.substr(4, 2) + bis.substr(2, 2) + bis.substr(0, 2);
		if (bisC < vonC) {
			alert(getLang("all", "toDateNotSmaller"));
			return false;
		} else {
			return true;
		}
	} catch(ex) {
		return true;
	}
}

function euroDecode(str)
{
	return str.replace('&#8364;', '€');
}

function setSelectToValue(selField, val)
{
	if ($(selField)) {
		for (x = 0; x < $(selField).options.length; x++) {
			if ($(selField).options[x].value == val) {
				$(selField).selectedIndex = x;
				return;
			}
		}
	}
}

function ajax_checkChangeInput(e, saveID)
{
	var keynum = null;
	if (window.event) {
		keynum = e.keyCode;
	}	else if (e.which)	{
		keynum = e.which;
	}
	if (!((keynum >= 33 && keynum <= 40) || keynum == 9)) {
		ajax_enableSubmitter(saveID);
	}
}

function ajax_enableSubmitter(saveID)
{
  if ($(saveID)) {
  	$(saveID).enable();
  }
  if ($(saveID + 'AndExit')) {
  	$(saveID + 'AndExit').enable();
  }
}

function p4_rr_neu(faID, maID, nr, id, prefix, mode)
{
	if ($('rrNeuDiv')) {
		$('rrNeuDiv').remove();
	}
  var div = new Element('div', {'id': 'rrNeuDiv', 'class': 'tepPortalChangeDiv', 'style': 'padding: 0;'});
	document.body.appendChild(div);
	new Ajax.Request('ajax/srv/portal_v4_ajax.php?t=rrNeuDiv', {
	 	parameters: 'faID=' + faID + '&maID=' + maID + '&nr=' + encodeURIComponent(nr) + '&mode=' + mode,
	 	onSuccess: function(t) {
	 		div.innerHTML = t.responseText;
	 		if ($('rrImg_' + prefix + '_' + id))
	 		{
	 			div.style.left = $('rrImg_' + prefix + '_' + id).cumulativeOffset()[0] - 330 + "px";
	 			div.style.top = $('rrImg_' + prefix + '_' + id).cumulativeOffset()[1] + 10 + "px";
	 		}
	 	}
	});
}

function p4_rr_ma_check_nr(setNr)
{
  if ($('rrNeuMa') && $F('rrNeuMa') > 0) {
    $('rr_sel_nr').show();
  } else {
    $('rr_sel_nr').hide();
  }
  if (setNr == true) {
    v4_setNameMailForm($F('rrNeuMa'), 'rrTelNr', 'm', 'tel');
  }
}

function p4_rr_ma_sel_nr(suffix)
{
  if (suffix == undefined) {
    suffix = '';
  }
  if ($('rrNeuMa' + suffix) && $F('rrNeuMa' + suffix) > 0) {
    new Ajax.Request('ajax/srv/portal_v4_ajax.php?t=maNrSelDiv', {
      parameters: 'maID=' + $F('rrNeuMa' + suffix) + '&suffix=' + suffix,
      onSuccess: function(t) {
        if ($('maNrSelDiv')) {
          $('maNrSelDiv').remove();
        }
        var div = document.createElement("div");
        div.id = "maNrSelDiv";
        div.className = "tepPortalChangeDiv";
        document.body.appendChild(div);
        div.innerHTML = t.responseText;
        div.style.left = $('rr_sel_nr' + suffix).cumulativeOffset()[0] - 330 + "px";
        div.style.top = $('rr_sel_nr' + suffix).cumulativeOffset()[1] + 10 + "px";
      }
    });
  }
}

function p4_rr_ma_sel_ok(nr)
{
  $('rrTelNr').value = nr;
  $('maNrSelDiv').remove();
}

function p4_rr_neu_submit()
{
  if ($('rrFirmaName') && $('rrNeuMaName') && $F('rrFirmaName') == '' && $F('rrNeuMaName') == '') {
    alert(getLang('phone', 'cb_errName'));
  } else {
  	showInfoDivContainer('', 'ajax');
    new Ajax.Request('ajax/srv/portal_v4_ajax.php?t=rrNeuSubmit', {
      parameters: $('rrNeuForm').serialize(),
      onSuccess: function(t) {
        var json = t.responseText.evalJSON();
        if (json.ok == true) {
          $('rrNeuDiv').remove();
        }
        showInfoDivContainer(json.msg, json.klasse);
        if ($('p4_hd_erwartete_rueckrufe')) {
          p4_window_inhalt_akt('erwartete_rueckrufe');
        }
      }
    });
  }
}

function p4_rr_maChanged() {
  if ($('rrNeuAbt')) {
    if ($F('rrNeuFuer') > 0) {
      setSelectToValue($('rrNeuAbt'), 0);
      $('rrNeuAbt').disable();
    } else {
      $('rrNeuAbt').enable();
    }
  }
}

function p4_rr_abtChanged() {
  if ($('rrNeuFuer')) {
    if ($F('rrNeuAbt') > 0) {
      setSelectToValue($('rrNeuFuer'), 0);
      $('rrNeuFuer').disable();
    } else {
      $('rrNeuFuer').enable();
    }
  }
}

function intVersteckenToggle()
{
  new Ajax.Request('ajax/srv/ajax.php?t=toggleIntern', {
    onSuccess: function(t) {
      var json = t.responseText.evalJSON();
      $('intVersteckenImg').src = "media/hp/" + json.img;
      window.location.reload();
    }
  });
}

function lstAktSuppGfx(lstID) {
  new Ajax.Request('ajax/srv/leistungen_liste_ajax.php?t=leistungGfx', {
    parameters: 'lstID=' + lstID,
    onSuccess: function(t) {
      if ($('lGfx' + lstID)) {
        $('lGfx' + lstID).innerHTML = t.responseText;
      }
    }
  });
}
