var sbay_darkprct = 70;        // how dark the screen should be (0-100)
var sbay_konq = navigator.appName.indexOf("onqueror")+1;
var sbay_activateDark = 1;
var sbay_darkened = 1;
var sbay_brwsx;
var sbay_brwsy;
var sbay_scrollx;
var sbay_scrolly;
var sbay_Idarken;

window.onload = init;

function init() {
  sbay_makeDiv(sbay_getObject("container"), "apreview");
  message = sbay_makeDiv(document.body, "sbay_message");
  sbay_makeDarkDiv();
  sbay_gmaps();
	setInterval("displaytime()", 1000);
  sbay_addResize(sbay_resize);
}

function displaytime() {
	serverdate.setSeconds(serverdate.getSeconds()+1)
	var timestring=padlength(serverdate.getHours())+":"+padlength(serverdate.getMinutes())+":"+padlength(serverdate.getSeconds());
	document.getElementById("servertime").innerHTML=timestring;
}

function cdLocalTime(container, servermode, offsetMinutes, targetdate, debugmode) {
  if (!document.getElementById || !document.getElementById(container)) return
  this.container=document.getElementById(container)
  var servertimestring=(servermode=="server-php")? '<? print date("F d, Y H:i:s", time())?>' : (servermode=="server-ssi")? '<!--#config timefmt="%B %d, %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->' : '<%= Now() %>'
  this.localtime=this.serverdate=new Date()  //servertimestring herausgenommen, da falsches format
  this.targetdate=new Date(targetdate)
  this.debugmode=(typeof debugmode!="undefined")? 1 : 0
  this.timesup=false
  this.localtime.setTime(this.serverdate.getTime()+offsetMinutes*60*1000) //add user offset to server time
//  alert(this.localtime + " " + this.targetdate);
  this.updateTime()
}

cdLocalTime.prototype.updateTime=function() {
  var thisobj=this;
  this.localtime.setSeconds(this.localtime.getSeconds()+1);
  setTimeout(function(){thisobj.updateTime()}, 1000); //update time every second
}

cdLocalTime.prototype.displaycountdown=function(baseunit, functionref){
  this.baseunit=baseunit
  this.formatresults=functionref
  this.showresults()
}

cdLocalTime.prototype.showresults=function(){
  var thisobj=this
  var debugstring=(this.debugmode)? "<p style=\"background-color: #FCD6D6; color: black; padding: 5px\"><big>Debug Mode on!</big><br /><b>Current Local time:</b> "+this.localtime.toLocaleString()+"<br />Verify this is the correct current local time, in other words, time zone of count down date.<br /><br /><b>Target Time:</b> "+this.targetdate.toLocaleString()+"<br />Verify this is the date/time you wish to count down to (should be a future date).</p>" : ""

  var timediff=(this.targetdate-this.localtime)/1000 //difference btw target date and current date, in seconds
  if (timediff<0){ //if time is up
    this.timesup=true
    this.container.innerHTML=debugstring+this.formatresults()
    return
  }
  var oneMinute=60 //minute unit in seconds
  var oneHour=60*60 //hour unit in seconds
  var oneDay=60*60*24 //day unit in seconds
  var dayfield=Math.floor(timediff/oneDay)
  var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour)
  var minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute)
  var secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute))
  if (this.baseunit=="hours"){ //if base unit is hours, set "hourfield" to be topmost level
    hourfield=dayfield*24+hourfield
    dayfield="n/a"
  }
  else if (this.baseunit=="minutes"){ //if base unit is minutes, set "minutefield" to be topmost level
    minutefield=dayfield*24*60+hourfield*60+minutefield
    dayfield=hourfield="n/a"
  }
  else if (this.baseunit=="seconds"){ //if base unit is seconds, set "secondfield" to be topmost level
    var secondfield=timediff
    dayfield=hourfield=minutefield="n/a"
  }
  this.container.innerHTML=debugstring+this.formatresults(dayfield, hourfield, minutefield, secondfield)
  setTimeout(function(){thisobj.showresults()}, 1000) //update results every second
}

function formatresults(){
  if (this.timesup==false){ //if target date/time not yet met
    var displaystring=arguments[0]+" Tage ("+arguments[1]+" Std "+arguments[2]+" Minuten "+arguments[3]+" Sek)";
  } else { //else if target date/time met
    var displaystring="This Listing is Expired!" //display any text
    alert("Auktion beendet") //perform a custom alert - DELETE THIS WHOLE LINE IF YOU DON'T WANT AN ALERT
  }
  return displaystring
}


/*###############################################################################################*/
/*##                                  SHOW AUCTIONIMAGE PREVIEW                                ##*/
/*##                                                                                           ##*/
/*##                                                                                           ##*/
/*###############################################################################################*/

function sbay_showArtikelPreview(e,id) {
  preview = sbay_getObject("apreview");
	preview.innerHTML = ""
  !e ? e = window.event : "";
  var sbay_pos = sbay_mouse_pos(e);
  with (new Ajax()) {
    url = "./ajax.readdata.php";
    method = "POST";
    params = "aktion=artikelbild&id=" + id;
    onSuccess = function (txt, xml) {
      if (txt) {
        var pic = "./thumbnail.php?pic="  + txt + "&w=240&sq=Y&b=Y";
        preview.innerHTML = "<div><img style='margin-top: 20px;padding: 10px' src='" + pic + "'></img></div>";
      }
    }
    doRequest();
  }
	preview.style.left = sbay_pos.left + 25 + "px";
	preview.style.top = sbay_pos.top - 325 + "px";
	preview.style.display = "block";
}

function sbay_hideArtikelPreview() {
  sbay_getObject("apreview").style.display = "none";
}

function show_gmap(e, address) {
  !e ? e = window.event : "";
  var sbay_pos = sbay_mouse_pos(e);
  if (GBrowserIsCompatible()) {
    var mapTmp = sbay_getObject("maps");
    mapTmp.style.left = sbay_pos.left - 150 + "px";
    mapTmp.style.top = sbay_pos.top - 150 + "px";
    mapTmp.style.display = "block";
    map = new GMap2(mapTmp);
    map.setCenter(new GLatLng(37.4419, -122.1419), 13);
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
		geocoder = new GClientGeocoder();
  }
  setTimeout("showAddress('" + address + "')",5);
}

function hide_gmaps() {
  sbay_getObject("maps").style.display = "none";
}

function showAddress(address) {
  if (geocoder) {
    geocoder.getLatLng(address,
    function(point) {
      if (!point) {
        alert(address + " not found");
      } else {
        map.setCenter(point, 13);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(address);
      }
      }
    );
  }
}

function sbay_makeDarkDiv() {
  var sbay_makeDark = sbay_makeDiv(document.body, "dark");
  if (sbay_konq) {
    dark.style.backgroundImage = "url(images/1pix.png)";
  } else {
    sbay_setopa(sbay_makeDark,sbay_darkprct);
    sbay_makeDark.style.backgroundColor = "#999";
  }
  sbay_setpos(sbay_makeDark,0,0,0,0);
  sbay_makeDark.style.zIndex = 990;
}

/*###############################################################################################*/
/*##                                  MAUSPOSITION                                             ##*/
/*##                                                                                           ##*/
/*##                                                                                           ##*/
/*###############################################################################################*/

function sbay_mouse_pos(e) {
  Xstart = parseInt(container.offsetLeft);
//  alert(Xstart);
  if(!e) e = window.event;
  var objBody = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ?
  window.document.documentElement : window.document.body || null;
  var mouse = {
    top: e.pageY  || (e.clientY + objBody.scrollTop ),
    left: e.pageX - Xstart || (e.clientX + objBody.scrollLeft - Xstart),
    clientX: e.clientX || (e.pageX - window.pageXOffset),
    clientY: e.clientY || (e.pageY - window.pageYOffset),
    type: e.type,
    obj: (e.target  || e.srcElement)
  };
  if(mouse.obj &&  mouse.obj.nodeType == 3) mouse.obj = mouse.obj.parentNode;
  return mouse;
}

/*###############################################################################################*/
/*##                                  FORMULARCHECK                                            ##*/
/*##                                                                                           ##*/
/*##                                                                                           ##*/
/*###############################################################################################*/

function sbay_checkData(formname) {
  setTimeout("sbay_darken()", 1);
  var element;
  var msg = "";
  for (var i=0; i < formname.elements.length; i++) {
    element = formname.elements[i];
    switch (element.name) {
      case "form_buyout_proceed":
        msg = "<div>" +
              "  <div class='msgcontent'>" +
              "   Ihr Kauf ist bindend. Klicken Sie daher bitte nur, wenn Sie den Artikel auch wirklich kaufen möchten.<br>" +
              "  </div>" +
              "  <div class='msgfooter'>" +
              "   <input class='buttons' type='button' value='Kaufen' onclick='document." + formname.name + ".submit();sbay_hideMessage();' style='margin-right: 5px;'>" +
              "   <input class='buttons' type='button' value='zurück' onclick='sbay_hideMessage();'>" +
              "  </div>" +
              "</div>";
      break;
      case "form_place_bid":
        msg = "<div>" +
              "  <div class='msgcontent'>" +
              "   Ihr Gebot ist bindend. Bestätigen Sie Ihr Gebot daher bitte nur, wenn Sie den Artikel auch wirklich kaufen möchten." +
              "  </div>" +
              "  <div class='msgfooter'>" +
              "   <input class='buttons' type='button' value='Gebot bestätigen' onclick='document." + formname.name + ".submit();sbay_hideMessage();' style='margin-right: 5px;'>" +
              "   <input class='buttons' type='button' value='zurück' onclick='sbay_hideMessage();'>" +
              "  </div>" +
              "</div>";
      break;
      case "form_makeoffer_proceed":
        msg = "<div>" +
              "  <div class='msgcontent'>" +
              "   Ihr Preisvorschlag ist bindend. Bestätigen Sie Ihren Preisvorschlag daher bitte nur, wenn Sie den Artikel auch wirklich kaufen möchten." +
              "  </div>" +
              "  <div class='msgfooter'>" +
              "   <input class='buttons' type='button' value='Preisvorschlag bestätigen' onclick='document." + formname.name + ".submit();sbay_hideMessage();' style='margin-right: 5px;'>" +
              "   <input class='buttons' type='button' value='zurück' onclick='sbay_hideMessage();'>" +
              "  </div>" +
              "</div>";
      break;
    }
  }
  message.innerHTML = "<div>" +
                      " <div class='boxheaderleftyellow'></div><div class='boxheadercntryellow'><span class='msgheader'>HINWEIS</span></div><div class='boxheaderrightyellow'></div>" +
                      " <div class='boxcontentyellow'>" + msg + "</div>" +
                      " <div class='boxfooterleftyellow'></div><div class='boxfootercntryellow'></div><div class='boxfooterrightyellow'></div>" +
                      " <div style='clear: both'>" +
                      "</div>";
  message.style.display = "block";
}

function sbay_hideMessage() {
  sbay_getObject("sbay_message").style.display = "none";
  setTimeout("sbay_nodark()", 1);
}

/*###############################################################################################*/
/*##                                  BACKGROUND HANDLING                                      ##*/
/*##                                                                                           ##*/
/*##                                                                                           ##*/
/*###############################################################################################*/

function sbay_darken() {
  if (sbay_activateDark) {
    var dark = sbay_getObject("dark");
    sbay_darkened = 1;
    sbay_showDiv(dark);
    sbay_resize();
  }
}

function sbay_nodark() {
  if (sbay_activateDark) {
    var dark = sbay_getObject("dark");
    sbay_hideDiv(dark);
    sbay_setpos(dark,-5000,0,1,1);
    sbay_darkened = 0;
  }
}

function sbay_setopa(object,opval) {
  with (object.style) {
    opacity=opval/100;
    MozOpacity=opval/100;
    filter = "alpha(opacity="+opval+")";
  }
}

function sbay_getbrwsxy() {
 if (typeof window.innerWidth != 'undefined')
 {
   sbay_brwsx = window.innerWidth - 10;
   sbay_brwsy = window.innerHeight;
 } else {
   if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
     sbay_brwsx = document.documentElement.clientWidth;
     sbay_brwsy = document.documentElement.clientHeight;
   } else {
     sbay_brwsx = document.getElementsByTagName('body')[0].clientWidth;
     sbay_brwsy = document.getElementsByTagName('body')[0].clientHeight;
   }
 }
 sbay_scrolly = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
 sbay_scrollx = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
}

function sbay_resize () {
  if (sbay_darkened) {
    var drk = sbay_getObject("dark");
    sbay_setpos(drk,0,0,1,1);
    sbay_getbrwsxy();
    if (document.body.scrollHeight < sbay_brwsy) {
      sbay_darkh = sbay_brwsy;
    } else {
      sbay_darkh = document.body.scrollHeight;
    }
    sbay_setpos(drk,0,0,document.body.scrollWidth,sbay_darkh);
  }
}

function sbay_addResize(resize) {
  var oldonresize = window.onresize;
  if (typeof window.onresize != "function") {
    window.onresize = sbay_resize;
  } else {
    window.onresize = function () {
      sbay_resize();
      if(oldonresize) {
        setTimeout('" + oldonresize + "',25);
      }
    }
  }
}

/*###############################################################################################*/
/*##                                  GENERELLLE FUNKTIONEN                                    ##*/
/*##                                                                                           ##*/
/*##                                                                                           ##*/
/*###############################################################################################*/

function sbay_getObject(id) {
  return document.getElementById(id);
}

function sbay_makeDiv(obj, divName) {
  sbay_Div = document.createElement("div");
  sbay_hideDiv(sbay_Div);
  with (sbay_Div) {
    id = divName;
    style.position = "absolute";
  }
  obj.appendChild(sbay_Div);
  return sbay_Div;
}

function sbay_hideDiv(object) {
  object.style.display = "none";
}

function sbay_showDiv(object) {
  object.style.display = "block";
}

function sbay_setpos(object,l,t,w,h) {
  object.style.left = l+'px';
  object.style.top = t+'px';
  if (w) {
    object.style.width = w+'px';
    object.style.height = h+'px';
  }
}

function sbay_gmaps() {
  var sbay_map = sbay_makeDiv(sbay_getObject("container"), "maps");
  with(sbay_map) {
    style.position = "absolute";
    style.width = "300px";
    style.height = "300px";
    style.border = "1px solid #333";
    style.display = "none";
    onclick = hide_gmaps;
  }
}
