// xClientHeight r5, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xClientHeight()
{
  var v=0,d=document,w=window;
  if((!d.compatMode || d.compatMode == 'CSS1Compat') && !w.opera && d.documentElement && d.documentElement.clientHeight)
    {v=d.documentElement.clientHeight;}
  else if(d.body && d.body.clientHeight)
    {v=d.body.clientHeight;}
  else if(xDef(w.innerWidth,w.innerHeight,d.width)) {
    v=w.innerHeight;
    if(d.width>w.innerWidth) v-=16;
  }
  return v;
}
// xClientWidth r5, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xClientWidth()
{
  var v=0,d=document,w=window;
  if((!d.compatMode || d.compatMode == 'CSS1Compat') && !w.opera && d.documentElement && d.documentElement.clientWidth)
    {v=d.documentElement.clientWidth;}
  else if(d.body && d.body.clientWidth)
    {v=d.body.clientWidth;}
  else if(xDef(w.innerWidth,w.innerHeight,d.height)) {
    v=w.innerWidth;
    if(d.height>w.innerHeight) v-=16;
  }
  return v;
}

// xDef r1, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xDef()
{
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
  return true;
}
//PROTOTYPE COOKIE FUNCTION
var Cookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    }
    return (document.cookie = escape(name) + '=' + escape(value || '') + expire);
  },
  get: function(name) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
    return (cookie ? unescape(cookie[2]) : null);
  },
  erase: function(name) {
    var cookie = Cookie.get(name) || true;
    Cookie.set(name, '', -1);
    return cookie;
  },
  accept: function() {
    if (typeof(navigator.cookieEnabled) == 'boolean') {
      return navigator.cookieEnabled;
    }
    Cookie.set('_test', '1');
    return Cookie.erase('_test');
  }
};

var rollTimeOut = 0;
var rollTime = 50;
var rollCounter = 3;
var rollWidth = 1000;
var rollInterval = 81;
var rollSites = 7;
var rollPosition = 1;
var rolled = 0;
var rollBefore = 0;
function contentMoveTo(position){
	if(rollPosition != position){
		//rolled = 0;
		buttonsRemoveEvent();
		hideNavigation();
		theLeft = Number($('content').style.left.replace(/px/g, ''));
		if(position != 'impressum'){
			sitePosition = $('seite'+position).getStyle('left').replace(/px/g, '');
			breakPoint = -(Number(sitePosition)) + 300;
		} else {
			sitePosition = $(position).getStyle('left').replace(/px/g, '');
			breakPoint = -(Number(sitePosition)) + 100;
			position = rollSites+1;
			rollBefore = rollPosition;
		}
		theInterval = theLeft-breakPoint;
		if(theInterval <= 0){
			theInterval = -(theInterval);
		}
		//$('error').update(theInterval+' '+theLeft+' '+breakPoint);
		theInterval = Math.round(theInterval / 12, 1);
		theCounter = 3;
		//$('error').update(sitePosition+' '+theLeft+' '+breakPoint+' '+theInterval);
		if(rollPosition > Number(position)){
			//$('error').update('rollBack '+sitePosition+' '+theLeft+' '+breakPoint+' '+theInterval);
			rollTimeOut = window.setTimeout('rollBack(' + theInterval + ', ' + theCounter + ', ' + breakPoint + ')', rollTime);
		} else {
			//$('error').update('rollForward '+sitePosition+' '+theLeft+' '+breakPoint+' '+theInterval);
			rollTimeOut = window.setTimeout('rollForward(' + theInterval + ', ' + theCounter + ', ' + breakPoint + ')', rollTime);
		}
		rollPosition = Number(position);
		
	}
}
function contentForward(){
	if(rollPosition != rollSites){
		rolled = 0;
		buttonsRemoveEvent();
		rollPosition++;
		theLeft = $('content').style.left.replace(/px/g, '');
		breakPoint = Number(theLeft) - rollWidth;
		//$('error').update(rollRest);
		rollTimeOut = window.setTimeout('rollForward(' + rollInterval + ', ' + rollCounter + ', ' + breakPoint + ')', rollTime);
	}
}
function contentBack(){
	if(rollPosition != 1){
		rolled = 0;
		buttonsRemoveEvent();
		rollPosition--;
		theLeft = $('content').style.left.replace(/px/g, '');
		breakPoint = Number(theLeft) + rollWidth;
		//$('error').update(rollInterval);
		rollTimeOut = window.setTimeout('rollBack(' + rollInterval + ', ' + rollCounter + ', ' + breakPoint + ')', rollTime);
	}
}
function rollForward(interval, counter, breakPoint){
	//counter--;
	rolled = rolled + interval;
	//$('error').update(' interval: '+interval+' rollCounter: '+rollCounter+' rolled: '+rolled);
	//$('error').update(rolled + ' ' +rollRest);
	if(interval > counter){
	 	interval = interval - counter;
	}
	rollTimeOut = window.setTimeout('rollForward(' + interval + ', ' + counter + ', ' + breakPoint + ')', rollTime);
	x = Math.round(Number($('content').getStyle('left').match(/(.*)px/)[1]) - interval, 1);
	if(x < breakPoint){
		clearTimeout(rollTimeOut);
		buttonsInitEvent();
		x = breakPoint; 
	}
	$('content').setStyle({
		left: x+'px'
	});
}
function rollBack(interval, counter, breakPoint){
	//counter--;
	rolled = rolled + interval;
	//$('error').update(' interval: '+interval+' rollCounter: '+rollCounter+' rolled: '+rolled);
	//$('error').update(rolled);
	if(interval > counter){
	 	interval = interval - counter;
	}
	rollTimeOut = window.setTimeout('rollBack(' + interval + ', ' + counter + ', ' + breakPoint + ')', rollTime);
	x = Math.round(Number($('content').getStyle('left').match(/(.*)px/)[1]) + interval, 1);
	if(x > breakPoint){
		clearTimeout(rollTimeOut);
		buttonsInitEvent();
		x = breakPoint; 
	}
	$('content').setStyle({
		left: x+'px'
	});
}
function buttonsRemoveEvent(){
	if(rollPosition != 1){
		Event.stopObserving('backButton'+rollPosition, 'click', contentBack);
	}
	if(rollPosition != rollSites && rollPosition != rollSites+1){
		Event.stopObserving('forwardButton'+rollPosition, 'click', contentForward);
	}
}
function buttonsInitEvent(){
	if(rollPosition != 1 && rollPosition != rollSites+1){
		Event.observe('backButton'+rollPosition, 'click', contentBack);
	}
	if(rollPosition == rollSites+1){
		Event.observe('backButton'+rollPosition, 'click', function(e){
			contentMoveTo(rollBefore);
		});
	}
	if(rollPosition != rollSites && rollPosition != rollSites+1){
		Event.observe('forwardButton'+rollPosition, 'click', contentForward);
	}
}
//SCHILD NAVIGATION
function showNavigation(){
	$('schild_gross').setStyle({
		left: navigation_schild[rollPosition][1]+'px',
		top: navigation_schild[rollPosition][2]+'px'
	});
	$('schild_content').setStyle({
		left: navigation_schild[rollPosition][1]+'px',
		top: navigation_schild[rollPosition][2]+'px'
	});
	$('schild_klein'+rollPosition).hide();
	if(rollPosition != 1){
		$('pfeil_links'+rollPosition).setStyle({
			zIndex: 4
		});
	}
	if(rollPosition != rollSites){
		$('pfeil_rechts'+rollPosition).setStyle({
			zIndex: 4
		});
	}
	if(rollPosition == 4){
		$('seite4_start').setStyle({
			zIndex: 4
		});
		$('seite4_ulm').setStyle({
			zIndex: 4
		});
		$('seite4_laupheim').setStyle({
			zIndex: 4
		});
	}
	if(rollPosition == 5){
		$('news').setStyle({
			zIndex: 4
		});
	}
	if(rollPosition == 6){
		$('links').setStyle({
			zIndex: 4
		});
	}
}
function hideNavigation(){
	$('schild_gross').setStyle({
		left: '-999em',
		top: '-999em'
	});
	$('schild_content').setStyle({
		left: '-999em',
		top: '-999em'
	});
	if(rollPosition != rollSites+1){
		$('schild_klein'+rollPosition).show();
	}
	if(rollPosition != 1){
		$('pfeil_links'+rollPosition).setStyle({
			zIndex: 7
		});
	}
	if(rollPosition != rollSites && rollPosition != rollSites+1){
		$('pfeil_rechts'+rollPosition).setStyle({
			zIndex: 7
		});
	}
	if(rollPosition == 4){
		$('seite4_start').setStyle({
			zIndex: 7
		});
		$('seite4_ulm').setStyle({
			zIndex: 7
		});
		$('seite4_laupheim').setStyle({
			zIndex: 7
		});
	}
	if(rollPosition == 5){
		$('news').setStyle({
			zIndex: 7
		});
	}
	if(rollPosition == 6){
		$('links').setStyle({
			zIndex: 7
		});
	}
}

//SEITENWECHSEL
function switchContent(from, to){
	if(from == 'seite4_start') $('world_domination').hide();
	if(to == 'seite4_start') $('world_domination').show();
	$(from).hide();
	$(to).show();
}
var preloaderRolled = 0;
function rollPreloader(interval, counter, breakPoint){
	preloaderRolled = preloaderRolled + interval;
	if(interval > counter){
	 	interval = interval - counter;
	}
	preloaderTimeout = window.setTimeout('rollPreloader(' + interval + ', ' + counter + ', ' + breakPoint + ')', rollTime);
	x = Math.round(Number($('preloader').getStyle('left').match(/(.*)px/)[1]) - interval, 1);
	
	if(x < breakPoint){
		clearTimeout(preloaderTimeout);
		x = breakPoint; 
		$('seite3_pkw').hide();
		$('seite3_zweirad').hide();
		$('seite3_lkw').hide();
		$('seite3_bus').hide();
		$('seite3_traktor').hide();
		$('formStatus').hide();
		$('seite2_charly').hide();
		$('seite2_ansgar').hide();
		$('seite4_ulm').hide();
		$('seite4_laupheim').hide();
		$('be_preise').hide();
		$('a_preise').hide();
		$('c_preise').hide();
		$('d_preise').hide();
		$('t_preise').hide();
		//$('error').update('x');
	}
	$('preloader').setStyle({
		left: x+'px'
	});
}
var preloaderTimeout = 0;
var preloaderCounter = 0;
var preloaderBalkenWidth = 158;
var manualPreload = new Array();
manualPreload[0] = 'images/elbs_blase_emailok.gif';
manualPreload[1] = 'images/verkehrsknoten_weiss.gif';
manualPreload[2] = 'images/elbs_world_dominance.gif';
manualPreload[3] = 'images/back_01_ort.gif';
manualPreload[4] = 'images/back_02_klassen.gif';
manualPreload[5] = 'images/back_02_ort.gif';
manualPreload[6] = 'images/sub_preise_02.gif';
manualPreload[7] = 'images/elbs_map_laupheim.gif';
manualPreload[8] = 'images/elbs_map_ulm.gif';
manualPreload[9] = 'images/elbs_pfeil_links_01.gif';
manualPreload[10] = 'images/elbs_pfeil_links_02.gif';
manualPreload[11] = 'images/elbs_pfeil_rechts_01.gif';
manualPreload[12] = 'images/elbs_pfeil_rechts_02.gif';
manualPreload[13] = 'images/elbs_schild_gross.gif';
manualPreload[14] = 'images/elbs_schild_klein.gif';
manualPreload[15] = 'images/elbs_schild_klein_01.gif';
manualPreload[16] = 'images/elbs_schild_klein_02.gif';
manualPreload[17] = 'images/fahrzeuge_bus_01.gif';
manualPreload[18] = 'images/fahrzeuge_bus_02.gif';
manualPreload[19] = 'images/fahrzeuge_bus_klein.gif';
manualPreload[20] = 'images/fahrzeuge_lkw_01.gif';
manualPreload[21] = 'images/fahrzeuge_lkw_02.gif';
manualPreload[22] = 'images/fahrzeuge_lkw_klein.gif';
manualPreload[23] = 'images/fahrzeuge_mrad_01.gif';
manualPreload[24] = 'images/fahrzeuge_mrad_02.gif';
manualPreload[25] = 'images/fahrzeuge_mrad_klein.gif';
manualPreload[26] = 'images/fahrzeuge_pkw_01.gif';
manualPreload[27] = 'images/fahrzeuge_pkw_02.gif';
manualPreload[28] = 'images/fahrzeuge_pkw_klein.gif';
manualPreload[29] = 'images/fahrzeuge_traktor_01.gif';
manualPreload[30] = 'images/fahrzeuge_traktor_02.gif';
manualPreload[31] = 'images/fahrzeuge_traktor_klein.gif';
manualPreload[32] = 'images/karre_bmw.gif';
manualPreload[33] = 'images/karre_c3.gif';
manualPreload[34] = 'images/karre_motorrad.gif';
manualPreload[35] = 'images/karre_suzuki.gif';
manualPreload[36] = 'images/sub_fahrzeuge_02.gif';
manualPreload[37] = 'images/sub_preise_01.gif';
manualPreload[38] = 'images/lehrer_ansgar_01.gif';
manualPreload[39] = 'images/lehrer_ansgar_02.gif';
manualPreload[40] = 'images/lehrer_back_01.gif';
manualPreload[41] = 'images/lehrer_back_02.gif';
manualPreload[42] = 'images/lehrer_charly_01.gif';
manualPreload[43] = 'images/lehrer_charly_02.gif';
manualPreload[44] = 'images/linie_grau.gif';
manualPreload[45] = 'images/nav_anmeldung_01.gif';
manualPreload[46] = 'images/nav_anmeldung_02.gif';
manualPreload[47] = 'images/nav_impressum_01.gif';
manualPreload[48] = 'images/nav_impressum_02.gif';
manualPreload[49] = 'images/nav_kontakt_01.gif';
manualPreload[50] = 'images/nav_kontakt_02.gif';
manualPreload[51] = 'images/nav_lehrer_01.gif';
manualPreload[52] = 'images/nav_lehrer_02.gif';
manualPreload[53] = 'images/nav_links_01.gif';
manualPreload[54] = 'images/nav_links_02.gif';
manualPreload[55] = 'images/nav_methoden_01.gif';
manualPreload[56] = 'images/nav_methoden_02.gif';
manualPreload[57] = 'images/nav_ort_01.gif';
manualPreload[58] = 'images/nav_ort_02.gif';
manualPreload[59] = 'images/nav_preis_01.gif';
manualPreload[60] = 'images/nav_preis_02.gif';
manualPreload[61] = 'images/nav_termine_01.gif';
manualPreload[62] = 'images/nav_termine_02.gif';
manualPreload[63] = 'images/nochmaal_01.gif';
manualPreload[64] = 'images/nochmaal_02.gif';
manualPreload[65] = 'images/pfeil_laupheim_01.gif';
manualPreload[66] = 'images/pfeil_laupheim_02.gif';
manualPreload[67] = 'images/pfeil_ulm_01.gif';
manualPreload[68] = 'images/pfeil_ulm_02.gif';
manualPreload[69] = 'images/preise_back_01.gif';
manualPreload[70] = 'images/preise_back_02.gif';
manualPreload[71] = 'images/seite01.gif';
manualPreload[72] = 'images/seite02.gif';
manualPreload[73] = 'images/seite03.gif';
manualPreload[74] = 'images/seite04.gif';
manualPreload[75] = 'images/seite05.gif';
manualPreload[76] = 'images/seite06.gif';
manualPreload[77] = 'images/seite07.gif';
manualPreload[78] = 'images/senden_01.gif';
manualPreload[79] = 'images/senden_02.gif';
manualPreload[80] = 'images/smbl_download.gif';
manualPreload[81] = 'images/smbl_link.gif';
manualPreload[82] = 'images/sub_fahrzeuge_01.gif';
//manualPreload[86] = '../images/verkehrsknoten_ampel.gif';

function init(){
	//incrementPreloader(0);
	if(Cookie.get('fahrschule-elbs-preloader') != 'true'){
		for(var i = 0; i <= manualPreload.length; i++){
			//$('error').update(i+' '+manualPreload.length);
			img = new Image();
			img.src = '../'+manualPreload[i];
			Event.observe(img, 'load', function(){
				incrementPreloader();
			});
			Event.observe(img, 'complete', function(){
				incrementPreloader();
			});
			Event.observe(img, 'error', function(){
				incrementPreloader();
			});
			Event.observe(img, 'abort', function(){
				incrementPreloader();
			});
		}
	} else {
		finishPreloader();
	}
}
function incrementPreloader(){
	if(preloaderCounter == manualPreload.length){
		finishPreloader();
		preloaderBalken = preloaderBalkenWidth;
		//Cookie.set('fahrschule-elbs-preloader', 'true', 1);
	} else {
		preloaderBalken = Math.round(preloaderBalkenWidth / manualPreload.length * preloaderCounter, 1);
	}
	if(preloaderCounter == 0){
		$('preloaderStatus').update('Autos werden betankt');
	}
	if(preloaderCounter == 29){
		$('preloaderStatus').update('Stra&szlig;enschilder werden poliert');
	}
	if(preloaderCounter == 58){
		$('preloaderStatus').update('M&uuml;tter und Kinder werden in Sicherheit gebracht');
	}
	$('ladebalken_fleisch').setStyle({
		width: preloaderBalken+'px'						 
	});
	preloaderCounter++;
}
function finishPreloader(){
	$('content').setStyle({
		left: xClientWidth()+'px'
	});
	$('preloader').makePositioned();
	$('preloader').setStyle({
		width: xClientWidth()+'px',
		height: xClientHeight()+'px'
	});
	url = 'content.php?code=23r943fn2394ng39ng43u2ng432u4ng';
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport){
			if (!transport.responseText == ''){
				$('content').update(transport.responseText);
				preloaderTimeout = window.setTimeout('rollPreloader(125, 3, '+(-xClientWidth())+')', 2000);
				rollTimeOut = window.setTimeout('rollForward(125, 3, 0)', 2000);
			}
		}
	});
}
var navigation_schild = new Array();
navigation_schild[1] = new Array();
navigation_schild[1][1] = '125';
navigation_schild[1][2] = '46';
navigation_schild[2] = new Array();
navigation_schild[2][1] = '1064';
navigation_schild[2][2] = '70';
navigation_schild[3] = new Array();
navigation_schild[3][1] = '2075';
navigation_schild[3][2] = '40';
navigation_schild[4] = new Array();
navigation_schild[4][1] = '3732';
navigation_schild[4][2] = '40';
navigation_schild[5] = new Array();
navigation_schild[5][1] = '4135';
navigation_schild[5][2] = '40';
navigation_schild[6] = new Array();
navigation_schild[6][1] = '5123';
navigation_schild[6][2] = '70';
navigation_schild[7] = new Array();
navigation_schild[7][1] = '6000';
navigation_schild[7][2] = '0';

//FORMUALR VERSAND:
function sendForm(formular){
	//url = 'sendmail.php?'+$(formular).serialize();
	url = 'sendmail.php?'+$('formAnmelden').serialize();
	/*if($('melden_telefon').checked){
		melden = 'telefon';
	} else {
		melden = 'email';
	}
	url = 'sendmail.php?name='+encodeURIComponent($('kontakt_name').value)+'&strasse='+encodeURIComponent($('kontakt_strasse').value)+'&plzort='+encodeURIComponent($('kontakt_plzort').value)+'&telefon='+encodeURIComponent($('kontakt_telefon').value)+'&email='+encodeURIComponent($('kontakt_email').value)+'&melden='+melden;
	$('error').update(url);*/
	new Ajax.Request(url, {
		method: 'get',
		//parameters: $('formAnmelden').serialize(true),
		onSuccess: function(transport){
			if (!transport.responseText.match(/false/)){
				$('formStatus').show();
				$('formStatusText').update(transport.responseText);
				$(formular).reset();
				window.setTimeout('$("formStatus").hide();', 5000);
			}
		}
	});
	//$('error').update('request sent');
}
