/*############################################################################*/
var StartTime = new Date();
var BrowserTyp=0;
var mypopup;
var log_count =0;
var error="";
var my_value = false;
var image_on = new Image();
var image_off = new Image();
var image_path = "http://"+ location.host + "/images";
var xS = 0;
var yS = 0;
var wB = 0;
var hB = 0;
var xB = 0;
var yB = 0;
var cH = 0;
var cW = 0;
var SBMDebug = 0;
var KARTE = new Array();
var OverDivTimer = 0;
var OverDivID;
var reloadTimer = 0;
var reloadTime = 0;
var DivSliderTimer = 0;
var debugtxt="";
var PriceTimer = 0;
var RunPriceCall = 0;
/*############################################################################*/
function get_price_delay(p1,p2,t){

  if(!p1)return;
  if(PriceTimer) clearTimeout(PriceTimer);
  PriceTimer = setTimeout("get_price_start('"+p1+"','"+p2+"')",t);

}
/*############################################################################*/
function get_price_start(p1,p2){

  if(!p1)return;
  if(PriceTimer) clearTimeout(PriceTimer);
  if(RunPriceCall) return;
  RunPriceCall = 1;
  $('body').bind(($.browser.opera ? 'keypress' : 'keydown') , function(event) {
    var KEY = {  DEL: 8 };
    switch(event.keyCode) {
      case KEY.DEL:
        event.preventDefault();
        return false;
    }
  });
  $('input.warenkorb').attr('disabled',true);
  $('input.warenkorb').css('background-color','#eeeeee');
  $('#ico_waiting-img'+p2).show();
  $('#ico_waiting_off-img'+p2).hide();
  xajax_get_function('get_price',p1,p2);

  setTimeout("clear_price_call('"+p2+"')",10000);
}
/*############################################################################*/
function clear_price_call(p2){

  if(!p2)return;
  RunPriceCall = 0;
  $('#ico_waiting-img'+p2).hide();
  $('#ico_waiting_off-img'+p2).show();
  $('input.warenkorb').css('background-color','#ffffff');
  $('input.warenkorb').removeAttr('disabled');
  $('body').unbind($.browser.opera ? 'keypress' : 'keydown');

}
/*############################################################################*/
var ResizeTimer = 0;
function resize_content(myaction){

  if(ResizeTimer) clearTimeout(ResizeTimer);
  if(!myaction){
    ResizeTimer = setTimeout("resize_content('1');",500);
    return;
  }

  var Dest = MM_findObj ('div_main_page_content');
  if(!Dest)return;

  Dest.style.visibility = 'hidden';
  Dest.style['height'] = 50;
  Dest.style['width']  = 300;

  SetPageInfo();

  Dest2 = MM_findObj ('globpagecont');
  if(!Dest2)return;

  var vheader=0;
  var vheight=0;
  try{vheader = 0 + GetAttr('globpagehead','height');}catch(e){}
  try{vheight = 0 + GetValue('HBODY');}catch(e){}

  if(vheight<100) return false;

  try{
    Dest2.style['height'] = vheight-vheader-5;
  }
  catch(e){}

  if(cW>0){
    Dest.style['height'] = vheight-vheader-5;
    Dest.style['width']  = cW-6;
  }
  Dest.style.visibility = 'visible';

}
/*############################################################################*/
var loadContentTimer = {};
var ContStatus = 0 ;
var ContError = 0 ;
function loadContent(fstyp , myaction , delay){

  if(loadContentTimer[fstyp]) clearTimeout(loadContentTimer[fstyp]);
  if(typeof xajax_get_function != 'function')return;

  if(ContStatus>0) return;
  if(!delay) delay=800;

  if(!myaction){
    loadContentTimer[fstyp] = setTimeout("loadContent('"+fstyp+"','1');",delay);
    return;
  }

  var DSID=GetValue('sysSID');
  if(!DSID){
    ContError=ContError+1;
    if(ContError>8){
//      alert('Error loading Content !');
      return;
    }
    loadContentTimer[fstyp] = setTimeout("loadContent("+fstyp+",'1');",500);
    return;
  }

  ContStatus = 1;
  xajax_get_function('loadContent',fstyp);
}
/*############################################################################*/
function is_numeric( mixed_var ) {
  if(!mixed_var)return false;
  return !isNaN( mixed_var );
}
/*############################################################################*/
function myCharWidth(str) {
  str = str.replace(new RegExp("&([a-z]{2,5});","g"), "i");
  str = str.replace(new RegExp("&#(\d+);"      ,"g"), "i");
  str = str.replace(new RegExp("[tjlf\;\: ]"   ,"g"), "i");
  str = str.replace(new RegExp("[^i]"          ,"g"), "mm");
  var sf = Math.round(str.length/2);
  return sf;
}
/*############################################################################*/
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}
/*############################################################################*/
function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
/*############################################################################*/
function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
/*############################################################################*/
function get_id_to_string(id,obj) {
  if(!id)return;
  if(!obj)obj=document.warenkorb;
  if(!obj)obj=document.forms[0];
  if(!obj)return;
  var work_string = '';
  for (i=0,n=obj.elements.length;i<n;i++){
    if(obj.elements[i].name.substring(0,id.length)==id){
      if(obj.elements[i].checked){
        work_string = work_string + obj.elements[i].value + ',';
      }
    }
  }
  if(work_string.length>0) work_string=work_string.substr(0,work_string.length-1);
  return work_string;
}
/*############################################################################*/
function get_element_string(name,ch) {
//  var obj = document.getElementsByName(name);
  var obj = YAHOO.util.Dom.getElementsByClassName(name, 'input');
  if(!obj)return;
  if(!ch)ch=',';
  var work_string = '';
  for (i=0,n=obj.length;i<n;i++){
    if (obj[i].type && (obj[i].type == 'radio' || obj[i].type == 'checkbox') && obj[i].checked == false) continue;
    if(!obj[i].id) continue;
    work_string = work_string + obj[i].value + ch;
  }
  if(work_string.length>0) work_string=work_string.substr(0,work_string.length-ch.length);
  return work_string;
}
/*############################################################################*/
function get_element_values(name) {
//  var obj = document.getElementsByName(name);
  var obj = YAHOO.util.Dom.getElementsByClassName(name, 'input');
  if(!obj)return;
  var work_string = '';
  for (i=0,n=obj.length;i<n;i++){
    if (obj[i].type && (obj[i].type == 'radio' || obj[i].type == 'checkbox') && obj[i].checked == false) continue;
    if(!obj[i].id) continue;
    work_string = work_string + obj[i].id + '=' + obj[i].value + ';';
  }
  return work_string;
}
/*############################################################################*/
function checkByClass(name,val) {
  var obj = YAHOO.util.Dom.getElementsByClassName(name, 'input');
  if(!obj)return;
  for (i=0,n=obj.length;i<n;i++){
    if (obj[i].type && (obj[i].type == 'radio' || obj[i].type == 'checkbox') && obj[i].checked == val) continue;
    obj[i].checked = val;
  }
  return true;
}
/*############################################################################*/
function checkByName(name,val) {
  var obj = document.getElementsByName(name);
  if(!obj)return;
  for (i=0,n=obj.length;i<n;i++){
    if (obj[i].type && (obj[i].type == 'radio' || obj[i].type == 'checkbox') && obj[i].checked == val) continue;
    obj[i].checked = val;
  }
  return true;
}
/*############################################################################*/
function loadkarte(FNKT,PARAM,ID,ec, OPT, noWait) {

  if(!xajax)return;
  if(OverDivTimer) clearTimeout(OverDivTimer);
  if(!ID)ID='tmpkarte_div' + FNKT;

  var waitHTML= "<table width='20'><tr><td nowrap><img src='"+image_path+"/anim_wait.gif'></td></tr></table>";
  var RET;
  var strOPT="";
  var showKart = true;


  KARTE = [ID,OPT];

  ResetReloadTimer();

  tmpOverDiv = MM_findObj (KARTE[0]);
  if(!OPT)OPT=new Array();

  if(!noWait){
    if(OverDivID != ID){
      OverDivID=ID;
      strOPT=array_parsestring(OPT);
      OverDivTimer = setTimeout("loadkarte('" + FNKT + "','" + PARAM + "','" + ID + "'," + 2 + ","+strOPT+")",500);
      return false;
    }
  }

  if (tmpOverDiv == null){

    RET = overlib(waitHTML,[EXTRATIMER,OverDivTimer]);
    tmpOverDiv = document.createElement('div');
    tmpOverDiv.setAttribute('id',KARTE[0]);
    tmpOverDiv.style.display = 'none';
    tmpOverDiv.style.visibility = 'hidden';
    document.body.appendChild(tmpOverDiv);
    if(ago3_x && ago3_y){
      var idx = OPT.length;
      OPT[idx+0]=FIXX;
      OPT[idx+1]=ago3_x;
      OPT[idx+2]=FIXY;
      OPT[idx+3]=ago3_y;
//      OPT[idx+5]=CAPTION;
//      OPT[idx+6]=' ';
    }
    strOPT=array_parsestring(OPT);
    var resp = xajax_get_karte(FNKT,PARAM,KARTE[0],strOPT);
    OverDivTimer = setTimeout("loadkarte('" + FNKT + "','" + PARAM + "','" + ID + "'," + 2 + ","+strOPT+")",500);
    showKart = false;
    return false;

  }else if(!tmpOverDiv.innerHTML){
    ec++;
    if(ec>10)return breakloadkarte();
    strOPT=array_parsestring(OPT);
    OverDivTimer = setTimeout("loadkarte('" + FNKT + "','" + PARAM + "','" + ID + "'," + 2 + ","+strOPT+")",500);
    showKart = false;
//    RET = overlib(waitHTML,[EXTRATIMER,OverDivTimer]);
    return false;

  }else{

    if(!ec)return showkarte();

  }


}
/*############################################################################*/
function showkarte(SET_WORKID,SET_OPT) {

  if(SET_WORKID)  KARTE[0] = SET_WORKID;
  if(KARTE.length<2)return false;
  var workId = KARTE[0];
  if (!workId)return;
  tmpOverDiv = MM_findObj (workId);
  if (tmpOverDiv == null)return;
  if(!tmpOverDiv.innerHTML)return;

  if(SET_OPT)KARTE[1] = SET_OPT;
  var OPT = KARTE[1];
  if(!OPT)OPT=new Array();

  breakloadkarte();
  OverDivTimer = setTimeout('nd()',60000);
  return overlib(tmpOverDiv.innerHTML,OPT);

}
/*############################################################################*/
function breakloadkarte(reset) {

  if(!xajax)return;
  if(reset){
    if(tmpOverDiv){
      var Father= tmpOverDiv.parentNode;
      try{Father.removeChild(tmpOverDiv);}
      catch(e){}
      tmpOverDiv = null;
    }
  }
  KARTE[0] = "";
  if(OverDivTimer)clearTimeout(OverDivTimer);
  OverDivTimer=null;
  nd();

}
/*############################################################################*/
function DelObject(id){
  Dest = MM_findObj (id);
  if(!Dest)return false;
  var Father= Dest.parentNode;
  Father.removeChild(Dest);

}
/*############################################################################*/
function array_parsestring(arr){

  var strOPT ="";
  for (i = 0; i < arr.length; i++) {
    if(strOPT)strOPT+=",";
    if( typeof arr[i] == 'string')  strOPT=strOPT+"'"+arr[i].replace(/\'/g,"\\'")+"'";
    if( typeof arr[i] == 'number')  strOPT=strOPT+arr[i];
  }
  if(strOPT){
    strOPT="["+strOPT+"]";
  }else{
    strOPT="false";
  }

  return strOPT;
}
/*############################################################################*/
function ResetReloadTimer(){

  if(reloadTimer) clearTimeout(reloadTimer);
  if(reloadTime) reloadTimer = setTimeout('Submit()',reloadTime);

}
/*############################################################################*/
function pausecomp(millis){
  date = new Date();
  var curDate = null;
  do { var curDate = new Date(); }
  while(curDate-date < millis);
  return true;
}
/*############################################################################*/
function my_decodeURL(txt) {
  if(!txt)return '';

  try{return unescape(txt);}
  catch(e){}

  try{return decodeURI(txt);}
  catch(e){}


AddDebug(txt);
  return txt;

}
/*############################################################################*/
function set_checkbox(checkbox,image_path) {

  for (i=0,n=document.kim.elements.length;i<n;i++){
    if(document.kim.elements[i].name.substring(0,checkbox.length)==checkbox){
      document.kim.elements[i].checked=my_value;
    }
  }

  if(image_path){
    image_off.src = image_path + '/b_haken_on.gif';
    image_on.src  = image_path + '/b_haken_off.gif';
  }

  var check_image = document.getElementById('checkbox_set_image');
  if(my_value){
    check_image.src=image_on.src;
    my_value= false;
  }else{
    check_image.src=image_off.src;
    my_value= true;
  }
}
/*############################################################################*/
function doLog(text,id,typ) {
  if(!logging)return false;
  if(!id)id="LOG";
  if(!typ)typ=0;
  Dest = MM_findObj (id);
  if(!Dest)return false;
  var TextAdd = document.createTextNode(text);
  if(typ==0){
     Dest.firstChild.appendData(TextAdd.nodeValue);
  }else{
     Dest.replaceChild(TextAdd, Dest.firstChild);
  }
}
/*############################################################################*/
function newImage(arg) {
  if (document.images) {
    rslt = new Image();
    rslt.src = arg;
    return rslt;
  }
}
/*############################################################################*/
function CheckBrowser(){
  if (document.all){
    return 1;/* MSIE, Konqueror, Opera: --- */
  }else{
    if (typeof(document.addEventListener)=="function"){
      return 2;/* Netscape6: --- */
    }else{
      if (document.runner){
        return 3;/* Netscape4: --- */
      }else{
        return 4;/* anderer Browser : */
      }
    }
  }
}
/*############################################################################*/
function identifyBrowser(){

  var BrowserID ="n/a";

  if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
   var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number
   if (ffversion>=3)
    BrowserID="FF 3.x";
   else if (ffversion>=2)
    BrowserID="FF 2.x";
   else if (ffversion>=1)
    BrowserID="FF 1.x";
  }
  else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
   var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
   if (ieversion>=8)
    BrowserID="IE8.x";
   else if (ieversion>=7)
    BrowserID="IE7.x";
   else if (ieversion>=6)
    BrowserID="IE6.x";
   else if (ieversion>=5)
    BrowserID="IE5.x";
  }else if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Opera/x.x or Opera x.x (ignoring remaining decimal places);
   var oprversion=new Number(RegExp.$1) // capture x.x portion and store as a number
   if (oprversion>=10)
    BrowserID="Opera 10.x";
   else if (oprversion>=9)
    BrowserID="Opera 9.x";
   else if (oprversion>=8)
    BrowserID="Opera 8.x";
   else if (oprversion>=7)
    BrowserID="Opera 7.x";
  }
  return BrowserID;
}
/*############################################################################*/
function SetPageInfo(){

  if(BrowserTyp<1) BrowserTyp=CheckBrowser();

  switch(BrowserTyp){
    //Internet Explorer
    case 1:
      xS = screen.availWidth;
      yS = screen.availHeight ;
      wB = document.body.clientWidth;
      hB = document.body.clientHeight;
      xB = window.screenLeft
      yB = window.screenTop
//AddDebug(xB);
      break;

    case 2:
      //Mozilla Netscape
      xS = screen.availWidth;
      yS = screen.availHeight ;
      wB = document.body.clientWidth;
      hB = document.body.clientHeight;
      xB = window.screenX
      yB = window.screenY
      break;

    case 3:
      xS = screen.availWidth;
      yS = screen.availHeight ;
      wB = window.innerWidth;
      hB = window.innerHeight;
      xB = event.clientX
      yB = event.clientY
      xB = window.screenLeft
      yB = window.screenTop
      xB = window.screenX
      yB = window.screenY
      break;
  }
  if(wB>0){
    cH = $('#contentborder').height();
    cW = $('#contentborder').width();

    SetValue('XSCREEN' , xS);
    SetValue('YSCREEN' , yS);
    SetValue('XBODY'   , xB);
    SetValue('YBODY'   , yB);
    SetValue('WBODY'   , wB);
    SetValue('HBODY'   , hB);
    SetValue('BROWSER' , BrowserTyp);
    SetValue('HCONTENT', cH);
    SetValue('WCONTENT', cW);
    var PINFO = xS+'|'+yS+'|'+xB+'|'+yB+'|'+wB+'|'+hB+'|'+BrowserTyp+'|'+cH+'|'+cW;
    SetValue('PINFO'  , PINFO);
    sentPageInfo(PINFO);
  }
  AddDebug('HBODY:'+hB+'/'+GetValue('HBODY'));

}
/*############################################################################*/
/*############################################################################*/
var sentPageInfoTimer = 0;
function sentPageInfo(PINFO,myaction){

  if(sentPageInfoTimer) clearTimeout(sentPageInfoTimer);
  if(!PINFO)return;
  if(!myaction){
    sentPageInfoTimer = setTimeout("sentPageInfo('"+PINFO+"','1');",200);
    return;
  }
  var DSID=GetValue('sysSID');
  if(!DSID)return;
  if(typeof xajax_get_function != 'function')return;
//alert(PINFO);
  xajax_get_function('setPageInfo',PINFO);
}
/*############################################################################*/
function InitPage(){

  Reset();
  SetPageInfo();

}
/*############################################################################*/
function Reset() {
  StartTime = new Date();
  UpdatePage();
}

/*############################################################################*/
function UpdatePage() {

  var now = new Date();
  var J = now.getFullYear();
  var M = now.getMonth();
  var T = now.getDate();
  var h = now.getHours();
  var m = now.getMinutes();
  var s = now.getSeconds();
  var txt ='';

  /*
  txt =' ' + toID(T,2) + '.' + toID(M+1,2) + '.' + toID(J,4) + ' ';
  SetText('id_date',txt);
  */
  txt = ' ' + toID(h,2) + ':' + toID(m,2) + ':' + toID(s,2) + ' ';
  SetText('id_time',txt);

  setTimeout('UpdatePage()',1000);
}
/*############################################################################*/
function ImageClick(id,d) {
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  Dest.Submit();
  return true;
}
/*############################################################################*/
function Submit(d,reload) {
  if(reload){SetValue('RELOAD',reload);}
  if(!d)d=document.kim;
  d.submit();
}
/*############################################################################*/
function MM_findObj(n, d) { //v4.0
  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);
  if(!x && document.getElementById) x=document.getElementById(n);
  if(!x) AddDebug(n + ' konnte nicht gefunden werden !');

  return x;
}

/*############################################################################*/
function Taste(e){
  switch(e.which){
    case 13:/* ENTER*/
      Submit();
      break;
  }
}
/*############################################################################*/
function PostGoTo(id, href_txt, target_txt, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  var oldHref = Dest.action;
  Dest.action=href_txt;
  if(target_txt)Dest.target=target_txt;
  Dest.submit();
  Dest.action=oldHref;

}
/*############################################################################*/
function SetSrc(id, txt, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  Dest.src=txt;
//    AddDebug(id + ' wurde gefunden und ' + txt + ' gesetzt !');
  AddDebug('SetSrc('+id+','+txt+');');
  return Dest;
}

/*############################################################################*/
function SetValue(id, txt, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  Dest.value=txt;
  AddDebug('SetValue('+id+','+txt+');');
  return Dest;
}
/*############################################################################*/
function GetValue(id, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  return Dest.value;
}
/*############################################################################*/
function GetChecked(id, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  return Dest.checked;
}
/*############################################################################*/
function SetChecked(id, txt, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  Dest.checked=txt;
}
/*############################################################################*/
function AddValue(id, txt, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  Dest.value=Dest.value+txt;
//    AddDebug(id + ' wurde gefunden und ' + txt + ' gesetzt !');
//  AddDebug('SetValue('+id+','+txt+');');
  return Dest.value;
}
/*############################################################################*/
function SumValue(id, zahl, multi, d){
  if(!multi)multi=1;
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  zahl = String(zahl).replace(",", ".");
  multi = String(multi).replace(",", ".");
  if(isNaN(zahl))return 0;
  if(isNaN(multi))return 0;

  var value = (parseFloat(zahl) * parseFloat(multi)) + Number(Dest.value);

  value = Math.round(value*100)/100;

  Dest.value=String(value.toFixed(2));
//    AddDebug(id + ' wurde gefunden und ' + txt + ' gesetzt !');
  return Dest.value;
}
/*############################################################################*/
function ReSetValue(id, searchtxt, txt, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  Dest.value=Dest.value.replace(searchtxt, txt);
//    AddDebug(id + ' wurde gefunden und ' + txt + ' gesetzt !');
  AddDebug('ReSetValue('+id+','+searchtxt+','+txt+');');
  return Dest.value;
}

/*############################################################################*/
function AddOption(id, value, text, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  for (i = 0; i < Dest.length; i++){
    if(Dest.options [i].value == value){
      return false;
    }
  }
  newOption = new Option ();
  newOption.value = value;
  newOption.text = text;
  Dest.options [Dest.length] = newOption;
  AddDebug('AddOption('+id+','+value+','+text+');');
  return true;
}
/*############################################################################*/
function copyOption(SourceID,SourceD,DestID,DestD,TrennZ,DontResetDest,OnlySelected){

  if(!TrennZ)TrennZ=';';
  Source = MM_findObj (SourceID, SourceD);
  if(!Source){
    AddDebug(SourceID + ' konnte nicht gefunden werden !');
    return false;
  }
  Dest = MM_findObj (DestID, DestD);
  if(!Dest)return false;
  if(!DontResetDest)Dest.value="";
  var AddValue ="";
  for (i = 0; i < Source.length; i++){
    if(Source.options[i])
      if(Source.options[i].value)
        AddValue=Source.options[i].value;
        if(AddValue){
          DoAdd=false;
          if(!OnlySelected)DoAdd=true;
          if(Source.options[i].selected)DoAdd=true;
          if(DoAdd)Dest.value=Dest.value + AddValue + TrennZ;
        }
  }
  return Dest.value;
}
/*############################################################################*/
function GetOption(SourceID,SourceD,TrennZ){

  if(!TrennZ)TrennZ=';';
  Source = MM_findObj (SourceID, SourceD);
  if(!Source){
    AddDebug(SourceID + ' konnte nicht gefunden werden !');
    return false;
  }
  var ret="";
  for (i = 0; i < Source.length; i++){
    if(Source.options [i].selected) ret=ret + Source.options [i].value + TrennZ;
  }
  return ret;
}
/*############################################################################*/
function GetSelection(SourceID,SourceD){

  Source = MM_findObj (SourceID, SourceD);
  if(!Source) return false;
  var ret="";
  for (i = 0; i < Source.length; i++){
    if(Source.options [i].selected) return Source.options [i].value;
  }
}
/*############################################################################*/
function SetOption(id, value, text, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  newOption = new Option ();
  newOption.value = value;
  newOption.text = text;
  Dest.options = newOption;
  AddDebug('SetOption('+id+','+value+','+text+');');
  return true;
}
/*############################################################################*/
function SelectOpt (Dest, bSel){
    Dest = MM_findObj (Dest);
    if (!Dest){return;}
    for (i = 0; i < Dest.length; i++){
        if(Dest.options [i].value == bSel){
          Dest.options [i].selected = true;
          return true;
        }
    }
}
/*############################################################################*/
function moveEntries (Source, Dest){
  Source = MM_findObj (Source);
  if (!Source){return;}
  Dest = MM_findObj (Dest);
  if (!Dest){return;}
  for (i = 0; i < Source.length; i++){
    if (Source.options[i].selected){
      newOption = new Option ();
      newOption.value = Source.options [i].value;
      newOption.text = Source.options [i].text;
      Dest.options [Dest.length] = newOption;
      Source.options [i] = null
      i--;
    }
  }
}
/*############################################################################*/
function DelOption(id, value, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  for (i = 0; i < Dest.length; i++){
    if(Dest.options [i].value == value){
      Dest.options [i]=null;
    }
  }
  AddDebug('DelOption('+id+','+value+');');
  return true;
}

/*############################################################################*/
function DelSelOption(id, d){
  Dest = MM_findObj (id, d);
  if(!Dest)return false;
  for (i = 0; i < Dest.length; i++){
    if(Dest.options [i].selected) Dest.options [i]=null;
  }
  return true;
}

/*############################################################################*/
function SetText(id, newData){
  Dest = MM_findObj (id);
  if(!Dest)return false;

  var newtext = document.createTextNode(newData);
  if(Dest.lastChild){
    Dest.replaceChild(newtext, Dest.lastChild);
  }else{
    Dest.appendChild(newtext);
  }
  AddDebug('SetText('+id+','+newData+');');

}
/*############################################################################*/
function AddText(id, newData){
  Dest = MM_findObj (id);
  if(!Dest)return false;
  var newtext = document.createTextNode(newData);
  Dest.appendChild(newtext);
}
/*############################################################################*/
function AddDebug(newData){
  if(newData=='on')SBMDebug=1;
  if(SBMDebug){
    debugtxt = debugtxt + newData + ' - ';
    Dest = MM_findObj ('SBMDebugDiv');
    if(!Dest)return false;
    Dest.appendChild(document.createTextNode(debugtxt));
    debugtxt='';
  }
}
/*############################################################################*/
function GetText(id){
  Dest = MM_findObj (id);
  if(!Dest)return false;
//  var newtext = document.createTextNode(txt);
//  Dest.replaceChild(newtext, Dest.firstChild);
  return Dest.innerHTML;
}
/*############################################################################*/
function DelText(id){
  Dest = MM_findObj (id);
  if(!Dest)return false;

  var Father= Dest.parentNode;
  Father.removeChild(Dest);
  var cleanElement=document.createElement('div');
  cleanElement.setAttribute("id", id)
  Father.appendChild(cleanElement);

  AddDebug('DelText('+id+');');

}
/*############################################################################*/
function toID(zahl,stellen){
  var s1 = String(zahl);
  var i = stellen - s1.length;
  var s2 = '0000';
  s2=s2.substr(0,i);
  s1=s2+s1;
  return s1;
}
/*############################################################################*/
function selectAll (Dest, bSel){
    Dest = MM_findObj (Dest);
    if (!Dest){return;}
    for (i = 0; i < Dest.length; i++){
        Dest.options [i].selected = bSel;
    }
}
/*############################################################################*/
function selectInvers (Dest){
    Dest = MM_findObj (Dest);
    if (!Dest){return;}
    for (i = 0; i < Dest.length; i++){
        Dest.options [i].selected = !Dest.options [i].selected;
    }
}
/*############################################################################*/
function openWin(url, wname, w, h, x, y) {

  var popupWin;

  if(!url)return false;
  if(!wname)wname="unknown";
  if(!w)w=640;
  if(!h)h=400;

  try{
    if(!x)x=(screen.width - w)/2;
    if(!y)y=(screen.height - h)/2;
    if(!x)x=100;
    if(!y)y=100;
  }catch(e){}

  if (parseInt(navigator.appVersion) >= 4) {
      x = (screen.availWidth - w)*.5;
      y = (screen.availHeight - h)*.1;
  }

  popupWin = window.open(url,wname,
               'toolbar=no'
              +',dependent=yes'
              +',location=no'
              +',channelmode=no'
              +',directories=no'
              +',titlebar=no'
              +',status=no'
              +',menubar=no'
              +',scrollbars=no'
              +',resizable=yes'
              +',copyhistory=no'
              +',width=' + w
              +',height=' + h
              +',screenX=' + x
              +',screenY=' + y
              +',left=' + x
              +',top=' + y
              );
  try{
    popupWin.moveTo(x,y);
    popupWin.focus();
    popupWin.status=x+'-'+y;
    popupWin.focus();
  }catch(e){}
  return popupWin;
}
/*############################################################################*/
function openWinScroll(url, wname, w, h, x, y) {
  var popupWin;

  if(!url)return false;
  if(!wname)wname="unknown";
  if(!w)w=640;
  if(!h)h=400;
  if(!x)x=5;
  if(!y)y=5;

  if (parseInt(navigator.appVersion) >= 4) {
      x = (screen.availWidth - w)*.5;
      y = (screen.availHeight - h)*.1;
  }

  popupWin = window.open(url,wname,
                 'toolbar=no'
                +',location=no'
                +',channelmode=no'
                +',directories=no'
                +',titlebar=no'
                +',status=no'
                +',menubar=no'
                +',scrollbars=yes'
                +',resizable=yes'
                +',copyhistory=no'
                +',width=' + w
                +',height=' + h
                +',left=' + x
                +',top=' + y);
  try{
    if(popupWin)popupWin.focus();
  }catch(e){}
  return popupWin;
}
/*############################################################################*/
function do_reload(){
    location.reload();
    setTimeout('do_reload()',500000);
}
/*############################################################################*/
function resize() {
    var i=0;
    if (navigator.appName == 'Netscape') i=10;
    if (document.images[0]) window.resizeTo(document.images[0].width +30, document.images[0].height+60-i);
    self.focus();
}
/*############################################################################*/
function resize_image() {
  if (!document.images[0]) {
    return false;
  }
  var bild=document.images[0];

  if (bild.height>bild.width){
    if (bild.height>480){
      bild.height=480;
    }
  }else{
    if (bild.width>640){
       bild.width=640;
    }
  }
  resize();
}
/*############################################################################*/
function resize_menu(SetHeight){
    objSource = MM_findObj ('menuborder');
    if (!objSource){return;}
    objSource.height=SetHeight
}
/*############################################################################*/
function nurText(str){
   return str.replace(/[^a-zA-Z0-9]/g,"");
}
/*############################################################################*/
function trim(str,chars){
   return str.replace(/^\s*|\s*$/g,"");
}
/*############################################################################*/
function resize_window(x,y) {
    window.resizeTo(x,y);
    self.focus();
}
/*############################################################################*/
function close_window(Time) {
  setTimeout('window.close()',Time);
}
/*############################################################################*/
function showDiv(id,val){

  tmpOverDiv = MM_findObj (id);

  if (tmpOverDiv == null) return;
  try{
    if(val){
      tmpOverDiv.style.visibility = 'visible';
    }else{
      tmpOverDiv.style.visibility = 'hidden';
    }
  }catch(e){}
}
/*############################################################################*/
function SetAttr(id,attr,avalue){

  var Dest = MM_findObj (id);
  if(!Dest)return false;

  if(!attr){
    AddDebug('kein Attribut übergeben !');
    return false;
  }

  var isok = false;
  switch(attr.toLowerCase()){
    case "class":            try{Dest.className = avalue;isok = true;}catch(e){}              break;
    case "src":              try{Dest.src = avalue;isok = true;}catch(e){}                    break;
    case "location":
                             try{
                                if(Dest.location){
                                  Dest.location.href = avalue;
//                                  Dest.location.reload();
                                }else{
//alert('hier');
                                  Dest.src = avalue;
                                }
                                isok = true;
                             }catch(e){alert(e);}
                             break;
    case "disabled":         try{Dest.disabled = avalue;isok = true;}catch(e){}               break;
    case "innerhtml":        try{Dest.innerHTML = avalue;isok = true;}catch(e){}              break;
    case "visibility":
                             if(avalue>0){
                                 try{Dest.style.visibility = 'visible';isok = true;}catch(e){}
                                 try{Dest.style.display = 'block';isok = true;}catch(e){}
                             }else{
                                 try{Dest.style.visibility = 'hidden';isok = true;}catch(e){}
                                 try{Dest.style.display = 'none';isok = true;}catch(e){}
                             }
                             break;
    default:                 try{Dest.style[attr] = avalue;isok = true;}catch(e){}             break;
  }
  Dest = null;

  return isok;
}
/*############################################################################*/
function GetAttr(id,attr){

  var tempAr;
  var avalue;

  if(!attr){
    AddDebug('kein Attribut übergeben !');
    return false;
  }

  var Dest = MM_findObj (id);
  if(!Dest)return false;

  switch(attr.toLowerCase()){
    case "height":
                              try{avalue = Dest.offsetHeight;     }catch(e){};if(avalue)break;
                              try{avalue = Dest.clip.Height;      }catch(e){};if(avalue)break;
                              try{avalue = Dest.style.pixelHeight;}catch(e){};if(avalue)break;
                              try{avalue = Dest.height;           }catch(e){};if(avalue)break;
                              try{avalue = Dest.outerHeight;      }catch(e){};if(avalue)break;
                              break;
    case "width":
                              try{avalue = Dest.offsetWidth;      }catch(e){};if(avalue)break;
                              try{avalue = Dest.clip.width;       }catch(e){};if(avalue)break;
                              try{avalue = Dest.style.pixelWidth; }catch(e){};if(avalue)break;
                              try{avalue = Dest.width;            }catch(e){};if(avalue)break;
                              try{avalue = Dest.outerWidth;       }catch(e){};if(avalue)break;
                              break;
    case "top":               tempAr = findPos(Dest);avalue = tempAr[1];break;
    case "left":              tempAr = findPos(Dest);avalue = tempAr[0];break;

    case "class":             try{avalue = Dest.className;        }catch(e){}; break;
    case "disabled":          try{avalue = Dest.disabled;         }catch(e){}; break;

    default:                  try{avalue = Dest.style[attr];      }catch(e){}; break;
  }
  Dest = null;
//alert(id+"."+attr+"="+avalue);
  return avalue;
}
/*############################################################################*/
function findPos(obj) {
   var curleft = 0;
   var curtop = 0;
   if(obj.offsetParent) {
      while(obj.offsetParent) {
         curleft += obj.offsetLeft
         curtop += obj.offsetTop
         obj = obj.offsetParent;
      }
   }else{
     if(obj.x)curleft = obj.x;
     if(obj.y)curtop = obj.y;
   }
  return [curleft,curtop];
}
/*############################################################################*/
function goto_anker(anker){
  if(window.location.hash==""){
    window.location.href = anker;
  }
}
/*############################################################################*/
function SetFocus(id, mark){
  Dest = MM_findObj (id);
  if(!Dest){
    return false;
  }
  try{
    Dest.focus();
    if(mark)Dest.select();
  }catch(e){}

}
/*############################################################################*/
function getMultiData(obj,delim){

  var ret="";
  if(!delim)delim="|";
  if(obj.type=='select-multiple'){
    for (var j = 0; j < obj.length; j++){
      if (obj.options[j].selected == true)
        ret+= encodeURIComponent(obj.options[j].value)+delim;
    }
  }else{
    ret += encodeURIComponent(obj.value);
  }
  return ret;
}
/*############################################################################*/
function getFormData(frm){

  if(!frm)return;
  var objForm;
  var submitDisabledElements = false;
  var submitEmptyElements = false;
  if (arguments.length > 1 && arguments[1] == true) submitDisabledElements = true;
  if (arguments.length > 2 && arguments[2] == true) submitEmptyElements = true;

  objForm = frm;
  var sXml = "";
  if (objForm && objForm.tagName == 'FORM'){
    var formElements = objForm.elements;
    for( var i=0; i < formElements.length; i++){
      if (formElements[i].type && (formElements[i].type == 'radio' || formElements[i].type == 'checkbox') && formElements[i].checked == false) continue;
      if (formElements[i].disabled && formElements[i].disabled == true && submitDisabledElements == false) continue;
      var name = formElements[i].name;
      if (name){
          if(formElements[i].type=='select-multiple'){
            for (var j = 0; j < formElements[i].length; j++){
              if (formElements[i].options[j].selected == true)   sXml += "&"+name+"="+encodeURIComponent(formElements[i].options[j].value);
            }
          }else{
            if (!formElements[i].value && submitEmptyElements == false) continue;
            sXml += "&"+name+"="+encodeURIComponent(formElements[i].value);
          }
        }
      }
    }
    return sXml;
}
/*############################################################################*/
function has_scrollbar(id){

  var ret = 0;
  Dest = MM_findObj (id);
  if(!Dest)return false;
  if (Dest.clientHeight < Dest.scrollHeight) ret = ret + 1;
  if (Dest.clientWidth < Dest.scrollWidth) ret = ret + 2;
  return ret;

}
/*############################################################################*/
function getKey (e) {
  if(!e)e = window.event;
  if (e.which) {
    Tastencode = e.which;
  } else if (e.keyCode) {
    Tastencode = e.keyCode;
  }
  return Tastencode;
}
/*############################################################################*/
function checkActionKey(e,PARAMS,DEFAULT){

  var keynum = getKey(e);
  var keymod = 1;
  var keychar;
  var i;

  if(!e)return false;
  if (e.shiftKey)keymod+=2;
  if (e.ctrlKey)keymod+=4;
  if (e.altKey)keymod+=8;

  if(PARAMS){
    var myArray=PARAMS.split('|');
    for (i = 0; i < myArray.length; i++) {
      //z.B: 13:1:docuemnt.form[0].submit();:1
      // -> 0 : 13 Enter , 1 : 1 KeyMod (Shift,Control,Alt), 2 : Command , 3: No Break
      myAction = myArray[i].split(':');
      if (myAction[0] != keynum) continue;
      if(!myAction[2])continue;
      if(myAction[1] && (myAction[1] != keymod))continue;
      try{
        eval(my_decodeURL(myAction[2]));
        if(!myAction[3]){
          return false;
        }
        DEFAULT="";
      }catch(err){alert(err);}
      alert('return true'+myAction[3]);
    }
  }
  if(keynum && DEFAULT){
//    alert('keynum='+keynum);
    try{
      eval(my_decodeURL(DEFAULT));
    }catch(err){}
  }
  keychar = String.fromCharCode(keynum);
  return keychar;
}
//############################################################################
function DivScroll(scroll_id,src_id,dst_id){
  do{
    var src = MM_findObj (src_id);
    if(!src)break;
    var quelleAr= findPos(src);
    var dst = MM_findObj (dst_id);
    if(!dst)break;
    if(dst.style.visibility != 'visible')break;

    var rahmen = MM_findObj (scroll_id);
    var rahmenAr= findPos(rahmen);
    var height = rahmen.scrollHeight;
    var scroll = rahmen.scrollTop;

    var absMin = rahmenAr[1];
    var absMax = rahmenAr[1] + GetAttr(scroll_id,'height');
    var absHeight = GetAttr(src_id,'height');
    var absWidth  = GetAttr(src_id,'width');

    var posTop = quelleAr[1] - scroll;
    var posHeight = absHeight;
    if(posTop < absMin){
      posHeight = Math.max(0,absHeight - (absMin - posTop));
      posTop = absMin;
    }
    if(posTop > absMax){
      posHeight = 0;
    }
    if(posTop + posHeight > absMax){
      posHeight = Math.max(0,absMax - posTop);
    }
    dst.style.top        = posTop;
    dst.style.height     = posHeight;
    dst.style.width      = absWidth;
    dst.style.left       = quelleAr[0];
//alert('test:'+quelleAr[0]);

  }while(false);
}
//############################################################################
function effectLoadFunction(scroll_id, src_id, dst_id, fnct, param, id){
  do{
    var dst = MM_findObj (dst_id);
    if(!dst)break;
    //alert(dst_id+ " nicht gefunden " + scroll_id + "/"+ src_id + "/"+ dst_id + "/"+ fnct + "/"+ id);
    dst.style.visibility = 'visible';
    dst.style.display    = 'block';
    DivScroll(scroll_id, src_id, dst_id);
  }while(false);
  xajax_get_function(fnct,param,id);
}
/*############################################################################*/
