//
// die speicherung des aktuellen zustands erfolgt in v_xxx feldern,
// die in navigation.jsp definiert sind.
// ?NDERUNGEN am zustand werdeopen_editnoten zudem in document.form feldern
// abgelegt, damit beim n?chsten roundtrip der alte zustand angezeigt
// werden kann. ein document.form feld hat damit 3 Zust?nde:
// leerer string = "undefined", der benutzer hat das feld nicht modifziert
// 0 = false
// 1 = true
// manchmal werden auch die strings "true", "false", "1" und "2" benutzt
// uprava dusan.vrazel@jetminds.com, 2008


var set_anchor = 0;
var load_next = "";
var load_delay = 100;
var initComplete = false;
var doCheckForm = false;
var doUmfrage= false;

function init() {
  initComplete = true;
  if (doUmfrage) {
	  setCookieUmfrage();
  }
  if (set_anchor) {setAnchor()}
  if (views.vorn_gross || views.innen_gross) {
    vg = new Image();
    if (typeof(views.vorn_gross) != "undefined") {
      vg.src = views.vorn_gross;
    }

    vgd = new Image();
    if (typeof(views.vorn_gross_dach) != "undefined") {
      vgd.src = views.vorn_gross_dach;
    }

    vk = new Image();
    if (typeof(views.vorn_klein) != "undefined") {
      vk.src = views.vorn_klein;
    }

    vkd = new Image();
    if (typeof(views.vorn_klein_dach) != "undefined") {
      vkd.src = views.vorn_klein_dach
    }

    hg = new Image();
    if (typeof(views.hint_gross) != "undefined") {
      hg.src = views.hint_gross;
    }

    hgd = new Image();
    if (typeof(views.hint_gross_dach) != "undefined") {
      hgd.src = views.hint_gross_dach;
    }

    hk = new Image();
    if (typeof(views.hint_klein) != "undefined") {
      hk.src = views.hint_klein;
    }

    hkd = new Image();
    if (typeof(views.hint_klein_dach) != "undefined") {
      hkd.src = views.hint_klein_dach;
    }

    ig = new Image();
    if (typeof(views.innen_gross) != "undefined") {
      ig.src = views.innen_gross;
    }

    ik = new Image();
    if (typeof(views.innen_klein) != "undefined") {
      ik.src = views.innen_klein;
    }

    show_hide_rotate();
    show_hide_zoom();
	show_hide_zoom2();
    showRoof();
    if(getView("v_x",0)==1){
    	magnify();
    }
  }
  if(load_next != ""){
    setTimeout("document.location.href=load_next", load_delay);
  }
}

// sets a view variable

function setView(paramName, paramValue){
	viewState[paramName] = paramValue;
}

// reads a view variable

function getView(paramName, d){
	var v = viewState[paramName];
	if(typeof(v) == "undefined" || v == ""){
	return d;
	}
	return v;
}

var preSubmitModalSatPath = "";

// multiple setView's in one
function set(){
  var len = set.arguments.length;
    var setProps = new Object();
  for(var i=0;i<len;i+=2){
    var key = set.arguments[i];
    setProps[key] = 1;
    var value = set.arguments[i+1];
    setView(key, value);
  }
  if (setProps["next"] || setProps["page"] || setProps["filter-value"] || setProps["slot-value"]) {
	initComplete=0;
    setXYAnchor();
    submitForm(setProps["transfer_q"]);
  } else {
    changeRadioButton(getView("slot-value"));
  }
  status="";
}


function submitForm(askTransferQuestion){
  setXYAnchor();
  // alert("ask before submitting: " + askTransferQuestion + " psmsp=" + preSubmitModalSatPath);
  if(preSubmitModalSatPath && askTransferQuestion){
    openModalSat(preSubmitModalSatPath);
  } else {
	if (doCheckForm) {
		var checkedCheckForm = checkForm();
		if (checkedCheckForm) {
		    document.forms[0].submit();
		}
	} else {
	    document.forms[0].submit();
	}
  }
}

// returns true if the view is defined, not empty, and not-0 ("perl truth")

function isViewSet(paramName){
  var v = getView(paramName);
  return v != null && v != "" && v != "0";
}

// DOM Utilty functions

// hide a div
function hide_div(id){
  var el = document.getElementById(id);
  if(el){
	  el.style.display = "none";
  }
}

// show a div
function show_div(id){
  var el = document.getElementById(id);
  if(el){
	  el.style.display = "";
  }
}

function display_div(id, b){
  if(b && b != 0){
  	show_div(id);
  } else {
    hide_div(id);
  }
}

//
// manipulating the (large and small) images
//
var is_cabrio = 0;
var views = new Object();

// return the URL of the current "large" image
function get_large(){
	var r = getView("v_r",0);
	var z = getView("v_z",0);
	var d = getView("v_d",0);
	if(z == 1){ // zoom: vnitrni

		if (typeof(ig.src) != 'undefined') {
			return ig.src;
		}
	} else {
		if(d == 0 || is_cabrio == 0){
			if(r == 0){
				if (typeof(vg.src) != 'undefined') {
					return vg.src;
				}
			} else {
				if (typeof(hg.src) != 'undefined') {
					return hg.src;
				}
			}
		} else {
		  //kabriolet
			if(r == 0){
				if (typeof(vgd.src) != 'undefined') {
					return vgd.src;
				}
			} else {
				if (typeof(hgd.src) != 'undefined') {
					return hgd.src;
				}
			}
		}
	}
}


// return the URL of the current "small" image
function get_small(){
	var r = getView("v_r",0);
	var z = getView("v_z",0);
	var d = getView("v_d",0);
	if(z == 0){ // zoom: innen
		return ik.src;
	} else {
		if(d == 0 || is_cabrio == 0){
			if(r == 0){
				if (typeof(vk.src) != 'undefined') {
					return vk.src;
				}
			} else {
				if (typeof(hk.src) != 'undefined') {
					return hk.src;
				}
			}
		} else {
			if(r == 0){
				if (typeof(vkd.src) != 'undefined') {
					return vkd.src;
				}
			} else {
				if (typeof(hkd.src) != 'undefined') {
					return hkd.src;
				}
			}
		}
	}
}
// return the URL of the current "small" image
function get_lower_small(){
	var r = getView("v_r",0);
	var z = getView("v_z",0);
	var d = getView("v_d",0);
	if(d == 0 || is_cabrio == 0){
		if(r == 0){
			if (typeof(hk.src) != 'undefined') {
				return hk.src;
			}
		} else {
			if (typeof(vk.src) != 'undefined') {
				return vk.src;
			}
		}
	} else {
		if(r == 0){
			if (typeof(hkd.src) != 'undefined') {
				return hkd.src;
			}
		} else {
			if (typeof(vkd.src) != 'undefined') {
				return vkd.src;
			}
		}
	}
}
// update the large image
function show_large(){
	showImg("largeimg", get_large());
}

// update the upper small image
function show_small(){
  showImg("smallimg", get_small());
}

// update the lower small image
function show_lower_small(){
  showImg("smallimg_down", get_lower_small());
}

// invert a value
function invert(x){
  if(x == 1){
    return 0;
  } else {
    return 1;
  }
}

// action behind the "rotate" button (front/back switch on exterior images)
function rotate(){
  var r = getView("v_r",0);
  r = invert(r);        // 0 => 1 = 0
  setView("v_r", r);
  show_large();
  show_lower_small();
}
function rotateXL(){
  rotate();
  magnify();
}
function roofXL(){
  roof();
  magnify();
}
// action behind the "zoom" button (switch exterior/interior images)
function zoom(){
	  var z = getView("v_z",0);
	  
	  z = invert(z); // 0 => 1 => 0   
	  setView("v_z", z);
	  show_large();
	  show_small();
	  show_hide_rotate();
}

function zoom_lower() {
  var isInterior = getView("v_z",0);	
  

  if(!isInterior) {
  	//neni interier
    rotate();
  } else {
  	//je interier
	  var r = getView("v_r",0);
	  r = invert(r);        // 0 => 1 = 0
	  setView("v_r", r);
      if (isInterior == 1) {	
	     var z = getView("v_z",0);
	     z = invert(z); // 0 => 1 = 0
	     setView("v_z", z);
      }
	  show_large();
	  show_small();
	  show_lower_small();
	  show_hide_rotate();
  }
}
// show or hide the zoom button, according to the view state
function show_hide_zoom(){
  if (typeof(views.innen_gross) != 'undefined') {
    show_div("zoom");
  }
}
function show_hide_zoom2(){
  if (typeof(views.innen_gross) != 'undefined') {
    show_div("zoom2");
  }
}
// show or hide the rotate button, according to the view state
function show_hide_rotate(){
	var isInterior = getView("v_z",0);
	var isExterior = invert(isInterior);
	var isMagnified = getView("v_x", 0);
	if(isInterior==1 && !views.innen_xl && isMagnified==1){
		minify();
	}
	
	display_div("rotate", isExterior);
	
	if(is_cabrio == 1){
		display_div("roof", isExterior);
	}
	
	display_div("magnify", isExterior ? views.vorn_xl : views.innen_xl);
	
	if(views.interiorIsQuattro){
		display_div("quattroLayer", isInterior);
	}
}

// aus mir unklaren gr?nden liefert !0 nicht immer true
function not(x) { if(x){ return 1;} else { return 0;}}

// action behind the "roof" button (show or hide the roof of a cabrio)
function roof(){
  var d = getView("v_d",0);
  d = invert(d);
  setView("v_d", d);
  showRoof();
}
// show the current roof image; show the toggle gif
function showRoof(){
  if(is_cabrio){
    show_large();
    show_lower_small();
          showImg("roofimg", "img/button_roof_open.gif");
      showImg("roofimgxl", "img/button_roof_open.gif");
      var d = getView("v_d",0);
    if(d == 0){
      showImg("roofimg", "img/button_roof_open.gif");
      showImg("roofimgxl", "img/button_roof_open.gif");
      top.roofIsOpen=1;
    } else {
      showImg("roofimg", "img/button_roof_close.gif");
      showImg("roofimgxl", "img/button_roof_close.gif");
      top.roofIsOpen=0;
    }
  }
}



// show XL-image (can only be called when current is L-image)
function magnify(){
	setView("v_x", 1);
	var url;
	var r = getView("v_r",0);
	var d = getView("v_d",0);
	//alert(getView("v_z",0));
	var isInterior = getView("v_z",0);
	if(isInterior == 1){
		//alert('aa');
		url = views.innen_xl;
	} else {
		if(d == 0 || is_cabrio == 0){
			if(r == 0){
				//velky obrazek ze predu zvetsit
				url = views.vorn_xl;
	
			} else {
				url = views.hint_xl;
			}
		} else {
			//kabriolet
			if(r == 0){
				url = views.vorn_xl_dach;
			} else {
				url = views.hint_xl_dach;
			}
		}
	}
	showImg("xlimg", url);
	show_div("xlFiller");
	show_div("xlPicBox");
	show_div("minify");
	var isInterior = getView("v_z",0);
	if(isInterior == 0){
		show_div("rotateXL");
		if(is_cabrio){
			show_div("roofXL");
		}
	}
}

function showSortButton () {
}

// hide XL-image, back to L-image
function minify(){
	setView("v_x", 0);
	hide_div("xlPicBox");
	hide_div("xlFiller");
	hide_div("minify");
	var isInterior = getView("v_z",0);
	if(isInterior == 0){
		hide_div("rotateXL");
		if(is_cabrio){
			hide_div("roofXL");
		}
	}
}

var radiobutton = new Array();
var aktToggleState;
function toggleAll(state) {
  if (state == 'no_detail') {
    aktToggleState = 'no_detail';
    for(var i = 0; i < radio.length; i++) {
      if (radio[i].detail) {
        if (radio[i].opened == 1) {
          show_div("short" + i);
          hide_div("long" + i);
        }
        if (document.getElementById("price" + i)) {
          hide_div("price" + i);
        }
      }
      radio[i].opened= 0;
    }
  }
  else if (state == 'detail' && aktToggleState != 'detail') {
    aktToggleState = 'detail';
    for (var i = 0; i < radio.length; i++) {
      if (radio[i].detail) {
        if (radio[i].img) {
          var TargetImg = document.getElementById("lTImg" + i);
          if (TargetImg && TargetImg.src.indexOf(".gif") != -1) {
            var PufferImg = document.getElementById("lPImg" + i);
            TargetImg.src = PufferImg.src;
          }
        }
        show_div("long" + i);
        hide_div("short" + i);
      }
      if (document.getElementById("price" + i)) {
        show_div("price" + i);
      }
      radio[i].opened = 1;
    }
  }
  updateToggleView();
}

// refresh the state of all "open" flags according to the v_open_extras
function refresh_opened(){
  var s = getView("v_open_extras", "");
  if(s == "all"){
    toggleAll("detail");
    return;
  }
  if(s == "" || s == "none"){
    return;
  }
  var elements = s.split("|");
  var i;
  for(i=0;i<elements.length;i++){
    var index = findRadioWithId(elements[i]);
    if(index >= 0){
      toggleText(index);
    }
  }
}
function findRadioWithId(id){
  var i;
  for(i=0;i<radio.length;i++){
    if(radio[i].id == id){
      return i;
    }
  }
  return -1;
}

function lookupRadioIndex(id){
	for(var i=0;i < radio.length;i++){
		if(radio[i].id==id){
			return i;
		}
	}
	return -1;
}

function getRadioInfo(n){
  if(typeof n == "string"){
  	n = lookupRadioIndex(n);
  	if(n == -1){
  		return null;	// no toggle
  	}
  }
    return radio[n];
}

// show/hide item #n. n is either a number or an id
function toggleText(n){
  var info = getRadioInfo(n);
  if (info.detail == 0 ) {
  	n++;
  }
  if(info.detail){
	  if(typeof(info) == "undefined" || info == null){
		alert("there is no radio[ " + n + "] to toggle");
		return;
	  }
	  if(info.opened== 1){
		hide_div("long" + n);
		show_div("short" + n);
		if (document.getElementById("price" + n)) {
		  hide_div("price" + n);
		}
	  } else {
		if (info.img) {
		  var TargetImg = document.getElementById("lTImg" + n);
		  if (TargetImg && TargetImg.src.indexOf(".gif") != -1) {
			var PufferImg = document.getElementById("lPImg" + n);
			TargetImg.src = PufferImg.src;
		  }
		}
		hide_div("short" + n);
		show_div("long" + n);
		if (document.getElementById("price" + n)) {
		  show_div("price" + n);
		}
	  }
	  info.opened = invert(info.opened);
	  updateToggleView();
  }
}

function updateToggleView(){
  var i;
  var s = "";
  var n = 0;
  for(i=0;i<radio.length; i++){
    if(radio[i] && radio[i].opened){
      if(s != ""){
        s += "|";
      }
      s += radio[i].id;
      n ++;
    }
  }
  if(n == radio.length){
    s = "all";
  }
  if(s == ""){
    s = "none";
  }
  setView("v_open_extras", s);
}


function toggleShoppingcart(group){
  var groupVisible = isViewSet("v_show_"+group);
  if (groupVisible) {
    // currently, short group; switch to long group
    show_div("short"+group);
    hide_div("long"+group);
  } else {
    // currently, long group; switch to short group
    hide_div("short"+group);
    show_div("long"+group);
  }

  setView("v_show_"+group, groupVisible ? 0 : 1);
}

// init the props of an object from a string in format "a=b;c=d"
function initFromProps(obj, props){
	var elems = props.split(";");
	// var info = "";
	for(var e in elems){
		var kv = elems[e].split("=");
		var k = kv[0];
		var v = kv[1];
	//	info += "set "+k+"="+v + "\n";
		obj[k]=v;
	}
	// alert(info);
}


radioOn     = new Object();
radioOn.src   = "img/radiobtn_sel.gif";
radioOff    = new Object();
radioOff.src  = "img/radiobtn.gif";

var detail;
var radio = new Array();
function addRadio(n, id, d, s, img){
  var ob = new Object();
  ob.id = id;
  ob.detail = d;
  ob.selected = s;
  ob.opened = 0;
  ob.img = img;
  radio[n] = ob;
  return ob;
}
function showImg(name, url){
	var img = document.images[name];
	if(img){
		img.src = url;
	}
}
function changeRadioButton(id) {
  for(var i=0;i<radio.length;i++){
    if (radio[i].selected) {
      showImg(radio[i].id+"radioShort", radioOff.src);
      if (radio[i].detail) {
        showImg(radio[i].id+"radioLong", radioOff.src);
      }
      radio[i].selected=0;
    }
  }
  for(var i=0;i<radio.length;i++){
    if (radio[i].id == id) {
      showImg(id+"radioShort", radioOn.src);
      if (radio[i].detail) {
        showImg(id+"radioLong", radioOn.src);
      }
      radio[i].selected = 1;
    }
  }
}

checkboxOn    = new Object();
checkboxOn.src  = "img/checkbx_sel.gif";
checkboxOff   = new Object();
checkboxOff.src = "img/checkbx.gif";

function doCheckbox(paramName){
  if (document.images[paramName].src.indexOf("_sel") != -1) {
    setView(paramName,0);
    showImg(paramName, checkboxOff.src);
  } else {
    setView(paramName,1);
    showImg(paramName, checkboxOn.src);
  }
}

function doRadiobutton(paramName, value, id, radios){
  if (document.images[paramName+id].src.indexOf("_sel") == -1) {
    for(var i=1;i<=radios;i++){
      if (document.images[paramName+i].src.indexOf("_sel") != -1) {
        showImg(paramName+i, radioOff.src);
      }
    }
    showImg(paramName+id, radioOn.src);
    setView(paramName,value);
  }
}


function setSortValues(paramName, value){
 
//   alert("setview with key " +paramName + " and value "  +value);
    setView(paramName,value);
    document.forms[0].submit();
}

// debug method
function showAllParams() {
  var len = set.arguments.length;
  var fo = document.forms[0];
  if(fo){
    for(var i=0;i<len;i+=2){
      var key = set.arguments[i];
      var value = set.arguments[i+1];
      var field = fo[key];
      if(field){
        alert(key + "=" + value)
      } else {
        alert("no field " + key + " found");
        return false;
      }
    }
  } else {
    alert("no form found!");
    return false;
  }
}

var anchorIsSet=0;
function setAnchor(){
  if (!anchorIsSet) {
    var v_ay = getView('v_ay',0);
    window.scrollTo(0,v_ay);
    anchorIsSet=1;
  }
}

function setXYAnchor(){
  var offset = document.body.scrollTop;
  if(typeof(offset) != "undefined"){
    setView('v_ay',offset);
  }
}

function open_editnote(id) {
	hide_div('compare_'+id);
	show_div('editnote_'+id);
	//setView('v_shownote_'+id,true);
}

function close_editnote(id) {
	hide_div('editnote_'+id);
	show_div('compare_'+id);
	//setView('v_shownote_'+id,false);
}

