/** Teil der TRADEXPERT WARENWIRTSCHAFT-Webseite
Version 4.1
(c) 1998-2009 by SCENOS GbR. Alle Rechte vorbehalten.
*/


function sack() {
this.requestFile = null;
this.onCompletion = function() { ; };
this.onError = function() { ; };
this.method = 'GET';
this.daten = {};
this.response = null;
this.responseXML = null;
this.responseStatus = new Array();
this.setVar = function(v,w) {
var that = this;
that.daten[v] = w;};
this.runAJAX = function() {
var that = this;
var ajx = new ajax();
ajx.anfrage(that.requestFile,{cbfunktion:that.cb,cballein:false,cbthat:this,errfunktion:that.cb},that.daten);};
this.cb = function(obj) {
var that = this;
that.response = obj.x.responseText;
that.responseXML = obj.x.responseXML;
that.responseStatus = [obj.x.status,obj.x.statusText];
if(obj.x.status == "200") that.onCompletion();
else that.onError();
that.response = null;
that.responseXML = null;
that.responseStatus = [null,null];};}
function sabi(add,t) {
ajxanf('/funktionen/sabi.html?'+add);}
function ajxanf(p1,p2,p3) { var ajx = new ajax(); ajx.anfrage(p1,p2,p3); }
function ajax() {
var stat = fstat('ajax',{objekte:new Array()});
this.anfrage = function(url,opt,daten) {
if(undef(url) || url == "") return false;
if(undef(daten) || typeof daten == 'boolean') { daten = {}; methode = 'GET'; }
else methode = 'POST';
opt = mkobj(opt);
var obj = _erstelle_objekt();
if(!obj.x) return;
obj.x.open(methode,url,true);
if(daten) obj.x.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=utf-8');
else obj.x.setRequestHeader('Content-type','text/html; charset=utf-8');
obj.x.setRequestHeader('SCE-request-type','ajax');
if(typeof opt['header'] == 'object') {
for(var h in opt['header']) obj.x.setRequestHeader(h,opt['header'][h]);}
var rueckgabe = this.rueckgabe;
obj.x.onreadystatechange = function() {
if(obj.x.readyState != 4) return;
if(obj.x.status != 200 && obj.x.status != 304) {
obj.verfuegbar = true;
if(typeof opt['errfunktion'] == 'function') !undef(opt['cbthat']) ? bcall(opt['errfunktion'],opt['cbthat'],obj) : opt['errfunktion'](obj);
return;}
if(opt['cballein'] && typeof opt['cbfunktion'] == 'function') !undef(opt['cbthat']) ? bcall(opt['cbfunktion'],opt['cbthat'],obj) : opt['cbfunktion'](obj);
else rueckgabe(obj,opt);
obj.verfuegbar = true;}
if(!undef(opt['clear'])) ajax.prototype.clear(opt['clear'] === true ? (opt['cbaktionpara'] ? opt['cbaktionpara']['ziel'] : false) : opt['clear']);
if(!undef(opt['blank'])) { 
var tmp = $(opt['blank'] === true ? (opt['cbaktionpara'] ? opt['cbaktionpara']['ziel'] : false) : opt['blank']);
if(tmp.nodeName) tmp.innerHTML = '';}
if (obj.x.readyState == 4) return;
if(typeof daten == 'object') {
daten['zzz'] = new Date().getTime();
daten = Objekt.toQuery(daten);}
else {
daten += '&zzz=' + new Date().getTime();}
obj.x.send(daten);};
this.rueckgabe = function(obj,opt) {
if(!is_base(ajax.konfig)) ajax.konfig = {};
if(obj.x.getResponseHeader('SCEserver-ajax-cbfunktion')) eval("opt['cbfunktion'] = "+obj.x.getResponseHeader('SCEserver-ajax-cbfunktion')+";");
if(obj.x.getResponseHeader('SCEserver-ajax-cballein')) opt['cballein'] = obj.x.getResponseHeader('SCEserver-ajax-cballein');
if(typeof opt['cbfunktion'] == 'function') {
if(opt['cballein'] === true) return opt['cbfunktion'](obj);}
var aufruf = obj.x.getResponseHeader('SCEserver-ajax-steuerung-aufruf');
if(typeof opt['steuerung'] == 'object') {
if(opt['steuerung']['ajaxaufruf'] != aufruf) return false;}
var ret = {};
if(obj.x.getResponseHeader('SCEserver-ajax-inlinejs-pre')) {
ajax.konfig.noaction = false;
eval(obj.x.getResponseHeader('SCEserver-ajax-inlinejs-pre'));
if(ajax.konfig.noaction) { ajax.konfig.noaction = false; return; }}
var akt = obj.x.getResponseHeader('SCEserver-ajax-aktion');
var man = false;
if(!akt && opt['cbaktion']) { var man = true; akt = opt['cbaktion']; }
switch(akt) {
case 'js':
var js = obj.x.responseText;
eval(js);
break;
case 'redirect':
var loc = obj.x.responseText;
if(loc == 'self') loc = self.location.href;
else if(loc == 'parent') loc = parent.location.href;
else if(loc == 'top') loc = top.location.href;
top.location.href = loc;
break;
case 'msgbox':
if(!msgbox) break;
if(msgbox.scenos) {
var ropt = jsonobj(obj.x.getResponseHeader('SCEserver-ajax-msgbox'));
if(ropt['breite']) msgbox.breite = ropt['breite'];
if(ropt['hoehe']) msgbox.hoehe = ropt['hoehe'];
msgbox.zeige(obj.x.responseText);
jsexec($('msgboxcon'));}
else {
msgbox.setHtmlContent(obj.x.responseText);
jsexec($('DHTMLSuite_modalBox_contentDiv'));
var ropt = jsonobj(obj.x.getResponseHeader('SCEserver-ajax-msgbox'));
if(ropt['fehler']) msgbox.setCssClassMessageBox('DHTMLSuite_modalDialog_contentDiv_fehler');
if(ropt['breite'] && ropt['hoehe']) msgbox.display(ropt['breite'],ropt['hoehe']);
else msgbox.display();}
break;
case 'innerHTML': case '_innerHTML':
if(!man && $(obj.x.getResponseHeader('SCEserver-ajax-ziel')))
ret['extparse'] = $(obj.x.getResponseHeader('SCEserver-ajax-ziel'));
else if(man && $(opt['cbaktionpara']['ziel']))
ret['extparse'] = $(opt['cbaktionpara']['ziel']);
else break;
if(akt == '_innerHTML') $_html(ret['extparse'],obj.x.responseText);
else $html(ret['extparse'],obj.x.responseText);
jsexec(ret['extparse']);
if(man && opt['cbaktionpara']['bg']) $s(ret['extparse']).background = opt['cbaktionpara']['bg'];
else if(!man && obj.x.getResponseHeader('SCEserver-ajax-innerhtml-bg')) $s(ret['extparse']).background = obj.x.getResponseHeader('SCEserver-ajax-innerhtml-bg');
else if(typeof ajax.konfig.ziele != 'undefined') { 
if(ajax.konfig.ziele[ret['extparse'].id]) $s(ret['extparse']).background = ajax.konfig.ziele[ret['extparse'].id].bg;}
break;
case 'replace':
case 'ersetzen':
if(!man && $(obj.x.getResponseHeader('SCEserver-ajax-ziel')))
var ziel = $(obj.x.getResponseHeader('SCEserver-ajax-ziel'));
else if(man && $(opt['cbaktionpara']['ziel']))
var ziel = $(opt['cbaktionpara']['ziel']);
else break;
switch(ziel.parentNode.nodeName) {
case 'TABLE':
var neu = document.createElement('TABLE');
break;
case 'TBODY':
case 'THEAD':
case 'TFOOT':
var neu1 = document.createElement('TABLE');
var neu = document.createElement(ziel.parentNode.nodeName);
neu1.appendChild(neu);
break;
default:
var neu = document.createElement('DIV');}
neu.innerHTML = obj.x.responseText;
while(neu.childNodes.length > 0) { var tmpnode = neu.childNodes[0]; ziel.parentNode.insertBefore(tmpnode,ziel); jsexec(tmpnode); }
ziel.loeschen();
break;
case 'nix':
break;
default:
if(typeof opt['cbfunktion'] == 'function')  ret = !undef(opt['cbthat']) ? bcall(opt['cbfunktion'],opt['cbthat'],obj) : opt['cbfunktion'](obj);
break;}
if(ret && ret['extparse'] && obj.x.getResponseHeader('SCEserver-ajax-extparse')) {
if(typeof ext_init == 'function') ext_init($(ret['extparse']));
ret['formopt'] = ret['formopt'] || {};
ret['formopt']['header'] = ret['formopt']['header'] || {};
ret['formopt']['header']['sce-ajax-nopt'] = obj.x.getResponseHeader('SCEserver-ajax-nopt');
ajax.prototype.ajaxforms($(ret['extparse']),ret['formopt']);}
if(obj.x.getResponseHeader('SCEserver-ajax-inlinejs-post')) {
eval(obj.x.getResponseHeader('SCEserver-ajax-inlinejs-post'));}
if(ajax.konfig.oncomplete) funcexec(ajax.konfig.oncomplete);};
this.XMLXSL2node = function(XMLdatei,XSLdatei,node,obj) {
var xml = null;
var xsl = null;
var extparse = null;
var _transform = function() {
if(xml == null || xsl == null) return;
if(window.ActiveXObject) $html(node,xml.transformNode(xsl));
else {
var xslt = new XSLTProcessor();
xslt.importStylesheet(xsl);
var frag = xslt.transformToFragment(xml,document);
$html(node);
$(node).appendChild(frag);}
$(node).zeige();
$s(node).cursor = 'default';
if(typeof ext_init == 'function') ext_init($(node));};
var _onXMLload = function(obj) {
xml = obj.x.responseXML;
extparse = obj.x.getResponseHeader('SCEserver-ajax-extparse');
_transform();};
var _onXSLload = function(obj) {
xsl = obj.x.responseXML;
_transform();};
this.anfrage(XMLdatei,{'cbfunktion':_onXMLload,'cballein':true},(obj && obj['xmldaten']) ? obj['xmldaten'] : false);
this.anfrage(XSLdatei,{'cbfunktion':_onXSLload,'cballein':true});};
var _objekte = [
function () {return new XMLHttpRequest()},
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];
var _erstelle_objekt = function () {
var obj = new Object();
obj.x = null;
for(var i = 0; i < stat.objekte.length; i++) {
if(stat.objekte[i].verfuegbar) {
obj = stat.objekte[i];
obj.verfuegbar = false;
return obj;}}
for(var i = 0; i < _objekte.length; i++) {
try { obj.x = _objekte[i](); }
catch (fehler) { continue; }
break;}
obj.verfuegbar = false;
stat.objekte.push(obj);
return obj;};}
ajax.prototype.clear = function(div) {
if(typeof ajax.konfig == 'undefined') ajax.konfig = {};
if(is_base(ajax.konfig.ziele)) if(ajax.konfig.ziele[div]) S(div).background = ajax.konfig.ziele[div].bg;
if(S('ajaxwarte') && S(div)) S(div).innerHTML = S('ajaxwarte').innerHTML;
if(is_base(ajax.konfig.onclear) && ajax.konfig.onclear[div]) funcexec(true,ajax.konfig.onclear[div],S(div));}
function ajaxclear(div) { ajax.prototype.clear(div); } 
ajax.clear = ajax.prototype.clear;
ajax.prototype.ajaxforms = function(obj,opt) {
var fs = kinder(obj,'form',true);
for(var i = 0, l = fs.length; i < l; i++) {
f = fs[i];
$on(f,'submit',ajax.prototype.formsubmit);
if(opt) f.ajax = opt;
var e = f.elements;
for(var j = 0, k = e.length; j < k; j++) {
if(e[j].nodeName == 'INPUT' && e[j].type == 'submit') $on(e[j],'click',ajax.prototype.formsubmit);}}};
ajax.prototype.formsubmit = function() {
var obj = this;
if(obj.nodeName == 'FORM') { var form = obj; var btn = null; }
else if(obj.nodeName == 'INPUT') { var form = obj.form; var btn = obj; }
else return false;
var para = $(form).toQuery();
if(btn) para += (para ? '&' : '')+btn.name+'='+encodeURIComponent(btn.value);
var opt = {};
if(form.ajax) {
if(form.ajax.header) opt['header'] = form.ajax.header;}
var ajx = new ajax();
ajx.anfrage(form.getAttribute('action'),opt,para);
if(form.ajax && typeof form.ajax.onsubmit == 'function') form.ajax.onsubmit();
msgbox.close();
return false;};

