/* globale Navigation-Variablen */
var is_started = false;

var int_time = 250;
var int_time1 = 0;
var int_time2 = 0;
var int_time3 = 0;
var int_time4 = 0;

var s_nav1 = "";
var s_nav2 = "";
var s_nav3 = "";
var s_nav4 = "";

var s_show1 = "";
var s_show2 = "";
var s_show3 = "";
var s_show4 = "";

/* globale AJAX Konstanten */
var g_CHECKED = true;
var g_UNCHECKED = false;
var g_SELECTED = true;
var g_UNSELECTED = false;

/* globale AJAX Variablen */
var g_sAjaxCheckId = "";
var g_bAjaxCheckState = false;
var g_sAjaxRadioId = "";
var g_bAjaxRadioState = false;

var g_hasPDF = 0;

/* Navigation-Funktionen */

window.onload = function ()
{
	is_started = true;
	externalLinks();
};

function overNav(level, sName, sSelf) {
	if (is_started) {
		if (level == 0 || level == "0") {
			if (int_time1 != 0) {
				clearTimeout(int_time1);
			}

			hideSubLayers(s_nav1);
			resetElement(level, s_show1);

			if (s_nav1 != "") {
				hideSubLayers(s_nav1);
			}
			if (s_show1 != "") {
				resetElement(level, s_show1);
			}

			showNavigation(level + 1, sName, sSelf);
			s_nav1 = sName;
			s_show1 = sSelf;
		}	else if (level == 1 || level == "1") {
			if (int_time1 != 0) {
				clearTimeout(int_time1);
			}
			if (int_time2 != 0) {
				clearTimeout(int_time2);
			}
			if (s_nav2 != "") {
				hideSubLayers(s_nav2);
			}
			if (s_show2 != "") {
				resetElement(level, s_show2);
			}

			showNavigation(level + 1, sName, sSelf);
			s_nav2 = sName;
			s_show2 = sSelf;
		} else if (level == 2 || level == "2") {
			if (int_time1 != 0) {
				clearTimeout(int_time1);
			}
			if (int_time2 != 0) {
				clearTimeout(int_time2);
			}
			if (int_time3 != 0) {
				clearTimeout(int_time3);
			}
			if (s_nav3 != "") {
				hideSubLayers(s_nav3);
			}
			if (s_show3 != "") {
				resetElement(level, s_show3);
			}

			showNavigation(level + 1, sName, sSelf);
			s_nav3 = sName;
			s_show3 = sSelf;
		} else if (level == 3 || level == "3") {
			if (int_time1 != 0) {
				clearTimeout(int_time1);
			}
			if (int_time2 != 0) {
				clearTimeout(int_time2);
			}
			if (int_time3 != 0) {
				clearTimeout(int_time3);
			}
			if (int_time4 != 0) {
				clearTimeout(int_time4);
			}
			if (s_nav4 != "") {
				hideSubLayers(s_nav4);
			}

			showNavigation(level + 1, sName, sSelf);
			s_nav4 = sSelf;
		}
	}
}

function outNav(level) {
	if (is_started) {
		if (level == 0 || level == "0") {
			int_time1 = setTimeout("hideNavigation(1,\"" + s_nav1 + "\",\"" + s_show1 + "\")", int_time);
		} else if (level == 1 || level == "1") {
			int_time1 = setTimeout("hideNavigation(1,\"" + s_nav1 + "\",\"" + s_show1 + "\")", int_time);
			int_time2 = setTimeout("hideNavigation(2,\"" + s_nav2 + "\",\"" + s_show2 + "\")", int_time);
		} else if (level == 2 || level == "2") {
			int_time1 = setTimeout("hideNavigation(1,\"" + s_nav1 + "\",\"" + s_show1 + "\")", int_time);
			int_time2 = setTimeout("hideNavigation(2,\"" + s_nav2 + "\",\"" + s_show2 + "\")", int_time);
			int_time3 = setTimeout("hideNavigation(3,\"" + s_nav3 + "\",\"" + s_show3 + "\")", int_time);
		} else if (level == 3 || level == "3") {
			int_time1 = setTimeout("hideNavigation(1,\"" + s_nav1 + "\",\"" + s_show1 + "\")", int_time);
			int_time2 = setTimeout("hideNavigation(2,\"" + s_nav2 + "\",\"" + s_show2 + "\")", int_time);
			int_time3 = setTimeout("hideNavigation(3,\"" + s_nav3 + "\",\"" + s_show3 + "\")", int_time);
			int_time4 = setTimeout("hideNavigation(4,\"" + s_nav4 + "\",\"" + s_show4 + "\")", int_time);
		}
	}
}

function showSubLayers(sName) {
	var foundOne = false;
	var element = document.getElementById(sName);

	if (element) {
		foundOne = true;
		showContainer(sName);
	}
	return foundOne;
}

function hideSubLayers(sName) {
	var foundOne = false;
	var element = document.getElementById(sName);

	if (element) {
		foundOne = true;
		hideContainer(sName);
	}
	return foundOne;
}

function showNavigation(level, sName, sSelf) {
	markElement(level - 1, sSelf);
	var foundOne = showSubLayers(sName);
	if (foundOne) {
		var elm = document.getElementById("fog" + level);
		showContainer("fog" + level);
	} else {
		hideContainer("fog" + level);
	}
}

function hideNavigation(level, sName, sSelf) {
	if (level == 1) {
		int_time1 = 0;
		s_nav1 = "";
	}
	if (level == 2) {
		int_time2 = 0;
		s_nav2 = "";
	}
	if (level == 3) {
		int_time3 = 0;
		s_nav3 = "";
	}
	if (level == 4) {
		int_time4 = 0;
		s_nav4 = "";
	}
	resetElement(level - 1, sSelf);
	hideContainer("fog" + level);
	hideSubLayers(sName);
}

function showContainer(id) {
	var element = document.getElementById(id);
	if (element) {
		element.style.display = "block";
		element.style.visibility = "visible";
	}
}

function hideContainer(id) {
	var element = document.getElementById(id);
	if (element) {
		element.style.display = "none";
		element.style.visibility = "hidden";
	}
}

function markElement(level, sName) {
	var element = document.getElementById(sName);
	if (element) {
		if (level == 0 || level == "0") {
			element.style.color = "#0062B1";
			element.style.backgroundColor = "rgb(255,255,255)";
			if (! (element.className.indexOf("final") >= 0) ) {
				element.style.backgroundImage = "url(upload/layout/arrow-blue.gif)";
			}
		} else {
			element.style.color = "#0062B1";

			if (! (element.className.indexOf("final") >= 0) ) {
				element.style.backgroundImage = "url(upload/layout/arrow-blue.gif)";
			}

			element.style.MozOpacity = ".99";
			element.style.filter = "alpha(opacity=100)";
		}
	}
}

function resetElement(level, sName) {
	var element = document.getElementById(sName);
	if (element) {
		if (level == 0 || level == "0")	{
			if ((element.className.indexOf("mainnav_top") >= 0)) {
				element.style.color = "rgb(102,102,102)";
				element.style.backgroundColor = "transparent";
				if (! (element.className.indexOf("final") >= 0)) {
					element.style.backgroundImage = "url(upload/layout/arrow-gray.gif)";
				}
			} else {
				element.style.color = "rgb(255,255,255)";
				element.style.backgroundColor = "transparent";
				if (!(element.className.indexOf("final") >= 0)) {
					element.style.backgroundImage = "url(upload/layout/arrow-white.gif)";
				}
			}
		} else {
			element.style.color = "rgb(0, 0, 0)";
			if (! (element.className.indexOf("final") >= 0)) {
				element.style.backgroundImage = "url(upload/layout/arrow-gray.gif)";
			}

			if ((element.className.indexOf("mainnav_sub") >= 0)) {
				element.style.MozOpacity = ".99";
				element.style.filter = "alpha(opacity=100)";
			} else {
				element.style.MozOpacity = ".86";
				element.style.filter = "alpha(opacity=86)";
			}
		}
	}
}

function showFog(level) {
	if (is_started) {
		if (level == 1) {
			if (int_time1 != 0) {
				clearTimeout(int_time1);
			}
		} else if (level == 2) {
			if (int_time1 != 0) {
				clearTimeout(int_time1);
			}
			if (int_time2 != 0) {
				clearTimeout(int_time2);
			}
		} else if (level == 3) {
			if (int_time1 != 0) {
				clearTimeout(int_time1);
			}
			if (int_time2 != 0) {
				clearTimeout(int_time2);
			}
			if (int_time3 != 0) {
				clearTimeout(int_time3);
			}
		}
	}
}

function hideFog(level) {
	if (is_started) {
		if (level == 1) {
			int_time1 = setTimeout("hideNavigation(1,\"" + s_nav1 + "\",\"" + s_show1 + "\")", int_time);
		} else if (level == 2) {
			int_time1 = setTimeout("hideNavigation(1,\"" + s_nav1 + "\",\"" + s_show1 + "\")", int_time);
			int_time2 = setTimeout("hideNavigation(2,\"" + s_nav2 + "\",\"" + s_show2 + "\")", int_time);
		} else if (level == 3) {
			int_time1 = setTimeout("hideNavigation(1,\"" + s_nav1 + "\",\"" + s_show1 + "\")", int_time);
			int_time2 = setTimeout("hideNavigation(2,\"" + s_nav2 + "\",\"" + s_show2 + "\")", int_time);
			int_time3 = setTimeout("hideNavigation(3,\"" + s_nav3 + "\",\"" + s_show3 + "\")", int_time);
		}
	}
}

/* Das Attribut target ist in XHTML nicht mehr erwünscht, deshalb diese Funktion verwenden.
statt target="_blank" nun rel="external" nutzen
*/
function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
	var anchor = anchors[i];
	if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") anchor.target = "_blank";
}
}

function correctPNG() { // correctly handle PNG transparency in Win IE 5.5 or higher.
for(var i=0; i<document.images.length; i++) {
	var img = document.images[i];
	var imgName = img.src.toUpperCase();

	if (imgName.substring(imgName.length-3, imgName.length) == "PNG") {
		var imgID = (img.id) ? "id='" + img.id + "' " : "";
		var imgClass = (img.className) ? "class='" + img.className + "' " : "";
		var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
/*		var imgStyle = "display:inline-block;" + img.style.cssText;*/
		var imgStyle = "display:block;" + img.style.cssText;

/*		if (img.align == "left") imgStyle = "float:left;" + imgStyle;

		if (img.align == "right") imgStyle = "float:right;" + imgStyle;*/

		if (img.parentElement) {
			if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
		}

			var strNewHTML = "<span " + imgID + imgClass + imgTitle
			+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
			+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
			+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>";

			alert(strNewHTML);

			img.outerHTML = strNewHTML;
			/*i = i-1;*/
		}
	}
}

function serializeArray(source, destination) {
	var temp_options;
	var ids = new Array();

	if(document.getElementById(source)) {
		temp_options = document.getElementById(source).options;
		for(i=0;i<temp_options.length;i++) {
			if(temp_options[i].selected) {
				ids.push(temp_options[i].value);
			}
		}
		if(document.getElementById(destination)) {
			document.getElementById(destination).value = ids.join("|");;
		}
	}
}

/**********************************/
/* ab hier: Funktionen für Inhalt */
/**********************************/

/**********************************/
/* Funktion zur Verarbeitung der  */
/* Grundriss-Events               */
/**********************************/

function changeFloorplanDisplay(active_fp, layertxt, sCarPrice, sAccessPrice, sTotalPrice,sGrossWeight, sPayLoad, fp_count)
{
  changeLayerDisplay(active_fp-1, fp_count, layertxt);
  changeConfigTable(sCarPrice, sAccessPrice, sTotalPrice, sGrossWeight, sPayLoad);
}


function changeFloorplanDropDown(active_fp, fp_count)
{
  for (var i=0; i<fp_count; i++) {
      if (i == active_fp) {
         document.forms["fp_dd"].elements["fp_dropdown"].options[i].selected = true;
      } else {
         document.forms["fp_dd"].elements["fp_dropdown"].options[i].selected = false;
      }
  }
}


function changeLayerDisplay(active, count, layertxt)
{

  for (var i=0; i<count; i++) {
      var layer_name = layertxt + i;
      if (i == active) {
         showContainer(layer_name);
      } else {
         hideContainer(layer_name);
      }
  }

}


/**********************************/
/* Funktion zur Verarbeitung der  */
/* Preis-/Gewichtstabelle-Events  */
/**********************************/

function changeConfigTable(sCarPrice, sAccessPrice, sTotalPrice, sGrossWeight, sPayLoad)
{
  var elem = document.getElementById("carprice");

  if ((elem) && (sCarPrice != '{CARPRICE}')) {
    elem.innerHTML = sCarPrice;
  } else {
    elem.innerHTML = "0,00";
  }

  var elem = document.getElementById("accessprice");
  if ((elem) && (sAccessPrice != '{ACCESSPRICE}')) {
    elem.innerHTML = sAccessPrice;
  } else {
    elem.innerHTML = "0,00";
  }

  var elem = document.getElementById("totalprice");
  if ((elem) && (sTotalPrice != '{TOTALPRICE}')) {
    elem.innerHTML = sTotalPrice;
  } else {
    elem.innerHTML = "0,00";
  }

  var elem = document.getElementById("grossweight");
  if ((elem) && (sGrossWeight != '{GROSSWEIGHT}')) {
    elem.innerHTML = sGrossWeight;
  } else {
    elem.innerHTML = "0";
  }

  var elem = document.getElementById("payload");
  if ((elem) && (sPayLoad != '{PAYLOAD}')) {
    elem.innerHTML = sPayLoad;
  } else {
    elem.innerHTML = "0";
  }
}

/**********************************/
/* Funktion zur Verarbeitung der  */
/* Ausstattungsverarbeitung-Events*/
/**********************************/

/* AJAX-Function */
function clickAccessRadio(iGroup, dNewWeight, dNewPrice, sIdAccess, sSession, iCat)
{
//alert(iCat);
  startWaitSignal();

  document.getElementById("group"+iGroup).checked = true;

  var sOldValues = String(document.forms["accessories"].elements["h_group"+iGroup].value);
  var aOldValues = sOldValues.split("|");

  var sURL = "ajax/ajax_config.php?newweight=" + dNewWeight + "&newprice=" + dNewPrice;
  sURL    += "&oldweight=" + aOldValues[0] + "&oldprice=" + aOldValues[1];
  sURL    += "&idaccess=" + sIdAccess + "&idgroup=" + iGroup + "&idsess=" + sSession + "&idprocess=1&idaccesscat=" + iCat + "&amp;t=" + (new Date).getTime();

  if (sendRequest) {
//    alert("clickAccessRadio Test: before sendRequest: sURL = " + sURL);
    sendRequest(sURL, "", 0, 1);
  } else {
    alert("Test: no sendRequest");
  }

  document.forms["accessories"].elements["h_group"+iGroup].value = dNewWeight+"|"+dNewPrice;

}

/* AJAX-Function */
function uncheckRadios(iGroup, sIdAccess, sSession, iCat)
{
//alert(iCat);

  if (false == document.getElementById("group"+iGroup).checked) { /* false, weil nach Klick bereits unchecked! */

    startWaitSignal();

    document.getElementById("group"+iGroup).checked = false;
    var len = document.getElementsByName("r_group"+iGroup).length;
    for (i = 0;i < len; i = i + 1) {
      document.getElementsByName("r_group"+iGroup)[i].checked = false;
    }
    var OldValues = String(document.forms["accessories"].elements["h_group"+iGroup].value);
    var aOldValues = OldValues.split("|");

    var sURL = "ajax/ajax_config.php?oldweight=" + aOldValues[0] + "&oldprice=" + aOldValues[1];
    sURL    += "&idaccess=" + sIdAccess + "&idgroup=" + iGroup + "&idsess=" + sSession + "&idprocess=2&idaccesscat=" + iCat + "&amp;t=" + (new Date).getTime();
//    alert(i);
    if ((sendRequest)) {
//    alert("uncheckRadios Test: before sendRequest: sURL = " + sURL);
      sendRequest(sURL, "", 0, 2);
    } else {
      alert("Test: no sendRequest");
    }

//    alert("bin ich hier?");
    document.forms["accessories"].elements["h_group"+iGroup].value = "0|0.0";

  }
}

/* AJAX-Function */
function handleCheckbox(sIdAccess, sSession, sWeight, sPrice, iCat, iAddWeight)
{
//alert(iAddWeight);
  startWaitSignal();
  g_sAjaxCheckId = sIdAccess;

  if (false == document.getElementById("id"+sIdAccess).checked) { /* false, weil nach Klick bereits unchecked! */

    removeAccessory(sIdAccess, sSession, sWeight, sPrice, iCat, iAddWeight);

  } else {

    addAccessory(sIdAccess, sSession, sWeight, sPrice, iCat, iAddWeight);

  }
}

/* AJAX-Function */
function addAccessory(sIdAccess, sSession, sNewWeight, sNewPrice, iCat, iAddWeight)
{
//alert(sNewWeight);
  g_bAjaxCheckState = g_CHECKED;

  var sURL = "ajax/ajax_config.php?newweight=" + sNewWeight + "&newprice=" + sNewPrice;
  sURL    +=  "&idaccess=" + sIdAccess + "&idaccesscat=" + iCat + "&idsess=" + sSession + "&idprocess=3" + "&addweight=" + iAddWeight + "&amp;t=" + (new Date).getTime();

  if (sendRequest) {
//    alert("addAccessory Test: before sendRequest: sURL = " + sURL);
    sendRequest(sURL, "", 0, 3);
  } else {
    alert("Test: no sendRequest");
  }
}

/* AJAX-Function */
function removeAccessory(sIdAccess, sSession, sOldWeight, sOldPrice, iCat, iAddWeight)
{
//alert(sOldWeight);
  g_bAjaxCheckState = g_UNCHECKED;

  var sURL = "ajax/ajax_config.php?oldweight=" + sOldWeight + "&oldprice=" + sOldPrice;
  sURL    +=  "&idaccess=" + sIdAccess + "&idaccesscat=" + iCat + "&idsess=" + sSession + "&idprocess=4" + "&addweight=" + iAddWeight + "&amp;t=" + (new Date).getTime();

  if (sendRequest) {
//    alert("removeAccessory Test: before sendRequest: sURL = " + sURL);
    sendRequest(sURL, "", 0, 4);
  } else {
    alert("Test: no sendRequest");
  }
}

/* AJAX-Function */
function handleMaterial(sAccessCat, sIdMaterial, sSession, sWeight, sPrice) {

  var sURL = "ajax/ajax_config.php?idaccesscat=" + sAccessCat;
  sURL    +=  "&idmaterial=" + sIdMaterial + "&idsess=" + sSession + "&idprocess=5" + "&amp;t=" + (new Date).getTime();

  if (sendRequest) {
//    alert("removeAccessory Test: before sendRequest: sURL = " + sURL);
    sendRequest(sURL, "", 0, 5);
  } else {
    alert("Test: no sendRequest");
  }
}

function startWaitSignal()
{
  var eSignal = document.getElementById("signal");
  if (eSignal) {
    eSignal.style.visibility = "visible";
    eSignal.style.display = "inline";
  } else {
    alert("no wait signal start");
  }
}

/* prüft Benutzerdaten von "Mein PhoeniX" */
var sEnterLastName, sEnterFirstName, sEnterEmail, sEnterValidEmail;

function checkUserDataEntries()
{
  if (document.Userdata.Lastname.value == "") {
    alert(sEnterLastName);
    document.Userdata.Lastname.focus();
    return false;
  }

  if (document.Userdata.Firstname.value == "") {
    alert(sEnterFirstName);
    document.Userdata.Firstname.focus();
    return false;
  }

  if (document.Userdata.Mail.value == "") {
    alert(sEnterEmail);
    document.Userdata.Mail.focus();
    return false;
  }
  if (document.Userdata.Mail.value.indexOf("@") == -1) {
    alert(sEnterValidEmail);
    document.Userdata.Mail.focus();
    return false;
  }
/*
  if (document.Userdata.Zip.value != "") {
    var chkZ = 1;
    for (i = 0; i < document.Userdata.Zip.value.length; ++i)
      if (document.Userdata.Zip.value.charAt(i) < "0" || document.Userdata.Zip.value.charAt(i) > "9")
        chkZ = -1;
    if (chkZ == -1) {
      alert("Die PLZ enthält keine Zahl.");
      document.Userdata.Zip.focus();
      return false;
    }
  }
*/
}

function checkForPDFPlugin(sSession)
{
//alert("checkForPDFPlugin");
  if (navigator.appName.indexOf("Explorer") != -1) {    // Internet-Explorer (Plugin ist ein ActiveX)
    try {
       var obj = new ActiveXObject("nppdf32.dll");
//alert("g_hasPDF = 1");
       g_hasPDF = 1;
    } catch(e) {
//alert("g_hasPDF = 0");
       g_hasPDF = 0;
    }

  } else {    // anderer Browser
//alert("anderer Browser");
    if (navigator.mimeTypes["application/pdf"].enabledPlugin) {
       g_hasPDF = 1;
    } else {
       g_hasPDF = 0;
    }
  }

  var sURL = "ajax/ajax_config.php?pdf=" + g_hasPDF;
  sURL    += "&idsess=" + sSession + "&idprocess=6" + "&amp;t=" + (new Date).getTime();

  if (sendRequest) {
//    alert("checkForPDFPlugin Test: before sendRequest: sURL = " + sURL);
    sendRequest(sURL, "", 0, 6);
  } else {
    alert("Test: no sendRequest");
  }

}
/******************************/
/* Modul 'modDataConsistency' */
/******************************/

/* AJAX-Function */
function handleDataCheck()
{
  startWaitSignal();

  var mh = 0;
  var ac = 0;

  if (true == document.getElementById("id_mh").checked) {
    mh = 1;
  }

  if (true == document.getElementById("id_ac").checked) {
    ac = 1;
  }

  var sURL = "ajax/ajax_config.php?mh=" + mh + "&ac=" + ac;

  if (sendRequest) {
    sendRequest(sURL, "", 0, 7);
  } else {
    alert("Test: no sendRequest");
  }
}
