// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function set_curser(val) {
	document.body.style.cursor = val;
}
function redirect_to (destination) {
  window.location.href = destination;
}
function back(){javascript:history.back();}
function forward(){javascript:history.forward();}
function go_history(i){javascript:history.go(i);}

function scroll_to_top(){window.scrollTo(0, 0);}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); };
function typeOf(t) {
	return String(t.constructor).split(" ")[1].split("()").join("");
}

function remove_elemet_if_exists(dom_id){
	$$("#"+dom_id).each(function(value, index) {
		value.remove();
	});
}

function get_select_value(slc,with_first){
	return selected_value(slc,with_first)
}
function selected_value(slc,with_first){
	if($(slc).selectedIndex == 0 && with_first != true)
		return '';
	else
		return $(slc).options[$(slc).selectedIndex].value
}
function get_select_text(slc){
	return selected_text(slc)
}
function selected_text(slc){
	return $(slc).options[$(slc).selectedIndex].text
}
function search_select_idx(_select, search_key) {
	_select_ = $(_select);
	for (var i=0; i<_select_.options.length; i++) {
		
		if(_select_.options[i].value == search_key || _select_.options[i].text == search_key) {
			return i;
		}
	}
	
	return -1;
}
function select_option_from_slect(slc,key) {
	_slc = $(slc);
	for (var i=0; i<_slc.options.length; i++)
		if(_slc.options[i].value == key || _slc.options[i].text == key)
			_slc.options[i].selected = true;
}


function select_changed(slc_choise,list_id,select_prefix){
	$$("#"+list_id+" select").each(function(value, index) {
		value.hide();
		value.selectedIndex = 0;
	});
	$(select_prefix+slc_choise).show();
}
function select_changed_without_default(slc_choise,list_id,select_prefix){
	$$("#"+list_id+" select").each(function(value, index) {
		value.hide();
	});
	$(select_prefix+slc_choise).show();
}
function tab_select(link_list,self,tab_list,tab){
	$$("#"+link_list+" a").each(function(value, index) {
		value.className = "";
	});
	$(self).className = "aktiv";
	
	$$("#"+tab_list+" div.tab").each(function(value, index) {
		if (value.hasClassName('tab')) value.hide();
	});
	$(tab).show();
}
function content_switcher(content_list,class_name,active){
	$$("#"+tab_list+" div").each(function(value, index) {
		if(value.hasClassName('class_name'))
			value.hide();
	});
	$(active).show();
}
function clear_select_selection (slc) {
	_slc = $(slc);
	for (i = 0; i < _slc.options.length; i++) {
		_slc.options[i].defaultSelected = false;
		_slc.options[i].selected = false;
	}
}


function in_array(ary,elm){
	for(var i=0;i<ary.length;i++) if(ary[i] == elm) return true;
	return false;
}
function remove_double_entries(ary){
	tmp = new Array();
	for(e in ary) {
		if(!in_array(tmp,e)) tmp.push(e)
	}
	return tmp;
}
function get_array_entry_by(ary,kennung,value){
	for (var i=0;i<ary.length;i++){
		if(ary[i][kennung] == value) return ary[i];
	}
	return false;
}
function get_array_entries_by(ary,kennung,value){
	tmp = new Array();
	for (var i=0;i<ary.length;i++){
		if (ary[i][kennung] == value) {
			tmp.push(i);
			//alert("F:"+ary[i].name)
		}// else {alert("NF:"+ary[i].name)}
	}
	return tmp;
}
function fill_select_with_array(slc,ary,idx_ary,attr_ary,set_selected,offset_idx){
	if (typeof set_selected == "undefined") {
    	set_selected = true;
  	}
	if (typeof offset_idx == "undefined" || typeOf(offset_idx) != 'Number' ) {
    	offset_idx = 0;
  	}
	with ($(slc))   
	{
		options.length = 0+offset_idx;
		for (i = 0; i < idx_ary.length; i++)
		{
			newItem = options.length;
			options[newItem] = new Option(ary[idx_ary[i]][attr_ary[0]]);
			if(attr_ary.length > 1) options[newItem].value = ary[idx_ary[i]][attr_ary[1]];
		}
	}
	set_selected_for_select(slc,set_selected);
}
function fill_select_with(slc,ary,set_selected,offset_idx){
	if (typeof offset_idx == "undefined" || typeOf(offset_idx) != 'Number' ) {
    	offset_idx = 0;
  	}
	with ($(slc))   
	{
		options.length = 0+offset_idx;
		for (i = 0; i < ary.length; i++)
		{
			newItem = options.length;
			if(typeOf(ary[i]) == 'Array') {
				options[newItem] = new Option(ary[i][0]);
				if(ary[i].length > 1) options[newItem].value = ary[i][1];			
			} else {
				options[newItem] = new Option(ary[i]);
			}
			
		}
	}
	set_selected_for_select(slc,set_selected);
}
function set_selected_for_select(slc,set_selected){
	with ($(slc)) {
		if (typeof set_selected == "undefined") {
			if (options.length > 0) selectedIndex = 0;
		} else {
			var reg_isinteger = /^\d+$/
			
			if (reg_isinteger.test(set_selected)) {
				if(parseInt(set_selected) <= options.length) selectedIndex = parseInt(set_selected);
			} else if (set_selected == false){
				selectedIndex = -1;
			} else if (typeOf(set_selected) == "String" && set_selected == "standard") {
				reset_select_to_default_selected(slc);
			} else {
				if (typeOf(set_selected) == 'Number' && options.length >= set_selected) 
					options[set_selected].selected = true;
				else 
					options[0].selected = true;
			}
		}
	}
	//alert($(slc).selectedIndex)
}
function reset_select_to_default_selected (slc) {
	_slc = $(slc);
	selected = false;
	for (i = 0; i < _slc.options.length; i++){
		if (_slc.options[i].defaultSelected == true) {
			_slc.options[i].selected = true;
			selected = true;
		}
	}
	if(!selected && _slc.options.length > 0) _slc.selectedIndex = 0;
}


// usage: format_zahl( number [, number]  [, bool]  )
function formatZahl(zahl, k, fix){
    if(!k) k = 0;
    var neu = '';
    // Runden
    var f = Math.pow(10, k);
    zahl = '' + parseInt( zahl * f + (.5 * (zahl > 0 ? 1 : -1)) ) / f ;
    // Komma ermittlen
    var idx = zahl.indexOf('.');
    // fehlende Nullen einfügen
    if(fix)
    {
         zahl += (idx == -1 ? '.' : '' )
         + f.toString().substring(1);
    }
    // Nachkommastellen ermittlen
    idx = zahl.indexOf('.');
    if( idx == -1) idx = zahl.length;
    else neu = ',' + zahl.substr(idx + 1, k);
 
    // Tausendertrennzeichen
    while(idx > 0)
    {
        if(idx - 3 > 0)
        	neu = '.' + zahl.substring( idx - 3, idx) + neu;
        else
        	neu = zahl.substring(0, idx) + neu;
        
        idx -= 3;
    }
    return neu;
}


function update_paymenth_method(name,preis) {
	// payment_method_name_span
	// payment_method_price_span
	$('payment_method_name_span').update(name);
	$('payment_method_price_span').update(formatZahl(preis,2,true));
	$('basket_total_preis_span').update(formatZahl( parseFloat($('basket_total_preis').value)+preis ,2,true));
}



function GetCookie(name) {
	if(document.cookie == '') return null;
	else {
		var cookieStart, cookieEnd;
		var cookieString = document.cookie;
		cookieStart = cookieString.indexOf(name);
		if(cookieStart != -1){
			cookieStart += name.length + 1;
			cookieEnd = cookieString.indexOf(';', cookieStart);
			
			if(cookieEnd == -1) cookieEnd = cookieString.length;
			
			return unescape(cookieString.substring(cookieStart, cookieEnd));
		} else {
			return null;
		}
	}
}
function SetCookie (name,value){
	var argv=SetCookie.arguments;
	var argc=SetCookie.arguments.length;
	var expires=(argc>2)?argv[2]:null;
	var path=(argc>3)?argv[3]:null;
	var domain=(argc>4)?argv[4]:null;
	var secure=(argc>5)?argv[5]:false;
	
	document.cookie=name+"="+escape(value)+
		((expires==null)?"":(";expires="+expires))+
		((path==null)?"":(";path="+path))+
		((domain==null)?"":(";domain="+domain))+
		((secure==true)?";secure":"");
}
function check_main_menu(){
	
	// warenkorb behandlung
	basket_count = $('main_navi_basket_product_count');
	basket_price = $('main_navi_basket_total_price');
	
	if(GetCookie('basket_total_count') != null && GetCookie('basket_total_count') > 0){
		basket_count.update( GetCookie('basket_total_count') );
	}
	if(GetCookie('basket_total_price') != null && GetCookie('basket_total_price') > 0){
		basket_price.update( formatZahl( GetCookie('basket_total_price'),2,true ) );
	}
	
	// user behandlung
	if(GetCookie('user_logged_in') != null){
		if(GetCookie('user_logged_in') == 1){
			$('user_main_menu_1').hide();
			$('user_main_menu_2').show();
		}
	}
	// admin behandlung
	if(GetCookie('admin_logged_in') != null){
		// link generieren
		add_admin_link(GetCookie('admin_logged_in'));
	}
	
	// user behandlung
/*
	var user_account = $('user_account_span');
	var user_login_logout = $('user_login_logout_span');
	
	if(GetCookie('user_logged_in') != null){
		if(GetCookie('user_logged_in') == 'true'){
			user_login_logout.update('<li>|</li><li> <a href="/logout">Ausloggen</a></li>');
		} else {
			user_account.remove();
			user_login_logout.update('<li>|</li><li> <a href="/login">Einloggen</a></li>');
		}
	}
*/
}
function add_admin_link(link){
	
	lobj = document.createElement('a');
	//lobj.setAttribute('rel', 'nofollow');
	//lobj.setAttribute('href', 'http://'+link+'/admin');
	lobj.setAttribute('href', '/admin');
	lobj.appendChild( document.createTextNode("Admin") );
	
	sobj = document.createElement('strong');
	sobj.appendChild(lobj);
	
	dobj = document.createElement('div');
	dobj.setAttribute('class', 'right');
	dobj.appendChild( document.createTextNode(" / ") );
	dobj.appendChild( sobj );
	
	$('user_main_menu_2').appendChild( dobj );
}


function service_content2(elem) {
	if(document.getElementById(elem)){
		if(document.getElementById(elem).style.display == "none") {
			document.getElementById(elem).style.display = "inline";
			document.getElementById(elem+"_link").className = "switchHead switchSign switchSignOpen";
		} else {		
			document.getElementById(elem).style.display = "none";
			document.getElementById(elem+"_link").className = "switchHead switchSign";
		}
	}
	return false;
}


function update_with_loader(el){
	$(el).update('<p style=\"text-align:center;font-weight:bold;\" id=\"loader\">Wird geladen<br /><img src=\"/images/loader.gif\" width=\"250\" height=\"15\"/></p>')
}


function get_browser(){
	var ua = navigator.userAgent.toLowerCase();
	var mozillabrowser = (ua.indexOf("gecko/") != -1);
	var iebrowser = (ua.indexOf("msie") > -1 && ua.indexOf("opera") == -1);
	var operabrowser = (ua.indexOf("opera") > -1);
	var av = navigator.appVersion;
	var version = av.substring(0, av.indexOf(" ")) *1;
	var version2 = av.substring(0, av.indexOf(".")) *1;
	if (mozillabrowser || operabrowser)
	   var versionsnummer = version2;
	else if (iebrowser){
	   if (version2==4 && ua.indexOf("msie 5") == -1 && ua.indexOf("msie 6") == -1 && ua.indexOf("msie 7") == -1) {
	      var versionsnummer = 4;
	   } else if (version2==4 && ua.indexOf("msie 5") > -1) {
	      var versionsnummer = 5;
	   } else if (version2==4 && ua.indexOf("msie 6")>-1) {
	      var versionsnummer = 6;
	   } else if (version2==4 && ua.indexOf("msie 7")>-1) {
	      var versionsnummer = 7;
	  }
	}
	
	if(mozillabrowser) var b = 'Firefox'
	else if(operabrowser) var b = 'Opera'
	else var b = 'IE'
	
	return b + " " + versionsnummer
}
function hide_selects_for_overlay(){
	b = get_browser();
	if(b == 'IE 6' || b == 'IE undefined'){
		$$("select").each(function(value, index) {
			value.hide();
		});
	}
}
function show_selects_for_overlay(){
	b = get_browser();
	if(b == 'IE 6' || b == 'IE undefined'){
		$$("select").each(function(value, index) {
			value.show();
		});
	}
}




function SuchenUndErsetzen(QuellText, SuchText, ErsatzText){   
	// Erstellt von Ralf Pfeifer
    // Fehlerpruefung
    if ((QuellText == null) || (SuchText == null))           { return null; }
    if ((QuellText.length == 0) || (SuchText.length == 0))   { return QuellText; }

    // Kein ErsatzText ?
    if ((ErsatzText == null) || (ErsatzText.length == 0))    { ErsatzText = ""; }

    var LaengeSuchText = SuchText.length;
    var LaengeErsatzText = ErsatzText.length;
    var Pos = QuellText.indexOf(SuchText, 0);

    while (Pos >= 0)
    {
        QuellText = QuellText.substring(0, Pos) + ErsatzText + QuellText.substring(Pos + LaengeSuchText);
        Pos = QuellText.indexOf(SuchText, Pos + LaengeErsatzText);
    }
    return QuellText;
}




//SLIDER START
function slideBar (name, max, speed, breite, leftbutton, rightbutton) {
    this.zbarposition = 0;
    this.zbarspeed = speed;
    
    this.zslidebar = document.getElementById(name);
    this.zleftbutton = document.getElementById(leftbutton);
    this.zrightbutton = document.getElementById(rightbutton);
    
    this.zslidebar.style.width = breite + 'px';
    this.zbarmin = 0;
    this.zbarmax = -(this.zslidebar.scrollWidth - max);
    this.zaktiv;

    if (navigator.appName.indexOf("Explorer") != -1) {
        this.zbarspeed = this.zbarspeed * 3;
    } else if (navigator.appName.indexOf("Netscape") != -1) {
        this.zbarspeed = this.zbarspeed * 3;
    }
    
    this.setzslideLeft = function  () {

        this.zslideLeft();
        var that = this;
        this.zaktiv = window.setInterval(function() {that.zslideLeft();}, this.zbarspeed);
    }
    this.zslideLeft = function () {
        if (this.zbarposition <= this.zbarmax) {
            this.zbarposition = this.zbarmax;
            this.endArrowRight();
            this.startArrowLeft();
        } else {
            if (navigator.appName.indexOf("Explorer") != -1) {
                this.zbarposition = this.zbarposition - 2;
            } else if (navigator.appName.indexOf("Netscape") != -1) {
                this.zbarposition = this.zbarposition - 2;
            } else {
                this.zbarposition = this.zbarposition - 1;
            }
            this.startArrowLeft();
        }
        this.zslidebar.style.left =  this.zbarposition + 'px';
    }
    this.setzslideRight = function () {

        this.zslideRight();
        var that = this;
        this.zaktiv = window.setInterval(function() {that.zslideRight();}, this.zbarspeed);
    }
    this.zslideRight = function () {
        if (this.zbarposition >= this.zbarmin) {
            this.zbarposition = 0;
            this.endArrowLeft();
            this.startArrowRight();
        } else {
            if (navigator.appName.indexOf("Explorer") != -1) {
                this.zbarposition = this.zbarposition + 2;
            } else if (navigator.appName.indexOf("Netscape") != -1) {
                this.zbarposition = this.zbarposition + 2;
            } else {
                this.zbarposition = this.zbarposition + 1;
            }
            this.startArrowRight();
        }
        this.zslidebar.style.left =  this.zbarposition + 'px';
    }
    this.zstopSlide = function () {
        window.clearInterval(this.zaktiv);
    }
    this.endArrowLeft = function () {
        if (navigator.appName.indexOf("Explorer") != -1) {
            this.zleftbutton.firstChild.style.filter = "Alpha(opacity=30)";
        } else {
            this.zleftbutton.style.opacity = 0.3;
        }
    }
    this.startArrowLeft = function() {
        if (navigator.appName.indexOf("Explorer") != -1) {
            this.zleftbutton.firstChild.style.filter="Alpha(opacity=100)";
        } else {
            this.zleftbutton.style.opacity = 1;
        }
    }
    this.endArrowRight = function () {
        if (navigator.appName.indexOf("Explorer") != -1) {
            this.zrightbutton.firstChild.style.filter="Alpha(opacity=30)";
        } else {
            this.zrightbutton.style.opacity = 0.3;
        }
    }
    this.startArrowRight = function() {
        if (navigator.appName.indexOf("Explorer") != -1) {
            this.zrightbutton.firstChild.style.filter="Alpha(opacity=100)";
        } else {
            this.zrightbutton.style.opacity = 1;
        }
    }
    this.init = function () {
        this.endArrowLeft();
    }
}
//SLIDER ENDE




function vehicle_type_select_changed(slc,list_id,select_prefix){
	$$("#"+list_id+" select").each(function(value, index) {
		value.hide();
	});
	if($(slc).selectedIndex == 0){
		$(select_prefix).show();
	} else {
		$(select_prefix+$(slc).options[$(slc).selectedIndex].value).show();
	}
}



function switch_banner_by_idx(_ary,idx,_aktiv,aktive_class,deaktive_class) {
	// 0 link_id
	// 1 div_id
	for (i = 0; i < _ary.length; i++) {
		if(i == idx){
			//$(_ary[i][0]).class = aktive_class;
			$(_ary[i][0]).addClassName(aktive_class);
			if(deaktive_class.length > 0) $(_ary[i][0]).removeClassName(deaktive_class);
			$(_ary[i][1]).show();
		} else {
			//$(_ary[i][0]).class = "";
			$(_ary[i][0]).removeClassName(aktive_class);
			if(deaktive_class.length > 0) $(_ary[i][0]).addClassName(deaktive_class);
			$(_ary[i][1]).hide();
		}
	}
	$(_aktiv).value = idx;
}
function switch_banner_to_next(_ary,_aktiv,aktive_class,deaktive_class) {
	len = _ary.length
	_new = parseInt($(_aktiv).value) + 1
	if(_new >= len){
		_new = 0;
	}
	switch_banner_by_idx(_ary,_new,_aktiv,aktive_class,deaktive_class);
}
function switch_banner_to_previous(_ary,_aktiv,aktive_class,deaktive_class) {
	len = _ary.length
	_new = parseInt($(_aktiv).value) - 1
	if(_new < 0){
		_new = len-1;
	}
	switch_banner_by_idx(_ary,_new,_aktiv,aktive_class,deaktive_class);
}
function rotate_home_banner(delay) {
	if($('rotate_banner').value == '1') {
		switch_banner_to_next(banner_aktion_ary,'aktiv_banner_idx','current','');
		t=setTimeout("rotate_home_banner("+delay+")", delay);
	}
}


function rotate_popup_banner(delay) {
	if($('rotate_popup_banner').value == '1') {
		switch_banner_to_next(popup_aktion_ary,'aktiv_popup_banner_idx','current','');
		t=setTimeout("rotate_popup_banner("+delay+")", delay);
	}
}



function insert_uploadfield(id) {
	idx_field = $('anz_of_initial_uploads_'+id)
	idx = parseInt(idx_field.value)
	idx_field.value = idx + 1
	new Insertion.Bottom("upload_list_"+id, '<tr><td>File '+idx+':</td><td><input id="file_'+idx+'" name="file_'+idx+'" type="file" />&emsp;'+
		"<a href='#' onclick='this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);return false;'>x</a></td></tr>");
}
function insert_uploadfield_with_id(id){
	idx_field = $('anz_of_initial_uploads_'+id)
	idx = parseInt(idx_field.value)
	idx_field.value = idx + 1
	new Insertion.Bottom("upload_list_"+id, '<tr id="file_field_'+id+'_'+idx+'"><td>File '+idx+':</td><td><input id="file_'+idx+'" name="file_'+idx+'" type="file" />&emsp;'+
		"<a href='#' onclick='this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);return false;'>x</a></td></tr>");
}





function show_loader_for_select(_s,_l,_dc){
	if (typeof _dc == "undefined") {
		if(get_select_value(_s,true) == ''){
			$(_s).hide();
			$(_l).show();
			//eval(_l+'_state') = 1;
		}
  	} else {
		if(get_select_value(_s,true) == '' && !(_dc == true && $(_s).disabled != false) ){
			$(_s).hide();
			$(_l).show();
			//eval(_l+'_state') = 1;
		}
	}
	
}
function show_main_loader_listing(_dom){
	if($(_dom)){
		$(_dom).show();
		//eval(_dom+'_state') = 1;
		//setTimeout("$('"+_dom+"').hide();", 2500);
	}
}
function show_listing_overlay(_id){
	$$("#"+_id).each(function(value, index) {
		value.show();
	});
	//eval(_id+'_state') = 1;
}
function set_loader_for_listing(_listing_dom,_loader_dom){
	show_listing_overlay(_listing_dom);
	show_main_loader_listing(_loader_dom);
}

function toggle_overlays(ary){
	
}
