// 2009/09/01 Comwrap Ltd. - Steffen Kroggel
// Vers. 1.001

var chairos_header = {
    
    duration_effect : 500,
    no_effect : 0,
        
    //==================================
	init : function (id, start, end, text_big, text_small, start_display) {

	
		var is_opened = this.read_cookie('chairos_header', 'is_opened');
		if (is_opened.length < 1) {
			is_opened = 1;
		
			if (start_display != undefined) {
				is_opened = start_display;
			}	

			// Fensterhöhe bestimmen und ggf. doch zuklappen!
			var window_height = 0;
			if (document.documentElement.clientHeight) {
				window_height = document.documentElement.clientHeight;
			} else {
				window_height = window.innerHeight 
			}	

			if (window_height < 540) {
				is_opened = 0;
			}
			
		}

		if ((document.getElementById(id)) &&
		    (document.getElementById(id+'_link'))){

			if(is_opened == 1) {
				$(id).removeEvents(); 
				$(id+'_link').addEvent('click', function() {
					chairos_header.hide (id+'_link', id, end, start, text_big, text_small);
				});			

				document.getElementById(id).style.height = end+'px';
				document.getElementById(id+'_link').innerHTML = text_small;
				
				
			} else {	
				$(id).removeEvents();
				$(id+'_link').addEvent('click', function() {
					chairos_header.show (id+'_link', id, start, end, text_big, text_small);
				});			
				
				document.getElementById(id).getElementsByTagName('img')[0].style.visibility = 'hidden';
				document.getElementById(id).style.height = start+'px';
				document.getElementById(id+'_link').innerHTML = text_big;
				
			}
		}

	},
  
    //==================================

    slide : function (id, from, to) {
    	
    	// Laufenden Effekt stoppen
    	var effect = new Fx.Morph( id, {duration: this.duration_effect, transition: Fx.Transitions.linear});
    	
		if (from != to) {
			effect.start({
				 'height': [from, to]
			});
		}

            
    },

	
    //==================================

    opacity : function (object, from, to) {
    	
    	// Laufenden Effekt stoppen
    	var effect = new Fx.Morph( object, {duration: this.duration_effect, transition: Fx.Transitions.linear});
    	
		if (from != to) {
			effect.start({
				 'opacity': [from, to]
			});
		}

            
    },	

    //==================================
	// Slidet den Layer aus und ein
    show : function (id, target_id, start, end, text_big, text_small){

		if ((start != undefined) &&
			(end != undefined)) {
    	 
			if ((document.getElementById(id)) &&
				 (document.getElementById(target_id))) {
				 
				if (this.no_effect != 1) {
					 this.no_effect = 1;
					 this.slide(target_id, start, end); 
					 this.opacity (document.getElementById(target_id).getElementsByTagName('img')[0], 0, 1);

					 window.setTimeout("chairos_header.no_effect = 0;", this.duration_effect);
					 this.write_cookie('chairos_header', 'is_opened', 1, '', '/', '', '');
					 document.getElementById(id).innerHTML = text_small;
				}
				
				$(id).removeEvents();
				$(id).addEvent('click', function() {
					chairos_header.hide (id, target_id, end, start, text_big, text_small);
				});
				
			}
		}
            
    },
	
	//==================================
	// Slidet den Layer aus und ein
    hide: function (id, target_id, start, end, text_big, text_small){

		if ((start != undefined) &&
			(end != undefined)) {

			if ((document.getElementById(id)) &&
				 (document.getElementById(target_id))) {
				
				if (this.no_effect != 1) {
					 this.no_effect = 1;
					 this.slide(target_id, start, end); 
					 this.opacity (document.getElementById(target_id).getElementsByTagName('img')[0], 1, 0);
					 window.setTimeout("chairos_header.no_effect = 0;", this.duration_effect);
					 this.write_cookie('chairos_header', 'is_opened', 0, '', '/', '', '');
					 document.getElementById(id).innerHTML = text_big;
				}

				$(id).removeEvents();
				$(id).addEvent('click', function() {
					chairos_header.show (id, target_id, end, start, text_big, text_small);
				});
				
			}
		}
            
    }, 
	//==================================
	// Lesen und Schreiben des Cookies via JavaScript
	write_cookie : function(name, attribute, value, expires, path, domain, secure) {
		
		// set time, it's in milliseconds
		var today = new Date();
		today.setTime( today.getTime() );

		/*
		if the expires variable is set, make the correct
		expires time, the current script below will set
		it for x number of days, to make it for hours,
		delete * 24, for minutes, delete * 60 * 24
		*/
		if ( expires ) {
			expires = expires * 1000 * 60 * 60 * 24;
		}
		var expires_date = new Date( today.getTime() + (expires) );	
	
		// Erst mal checken, ob Cookie vorhanden ist
		var content = document.cookie;
		if (content.length > 0) {
		
			var cookie_position = content.search(name+'=');
			
			// Ist es der gewünschte Cookie?
			if(cookie_position > -1) {
				
				// Von der Startpositon bis zum Ende erst mal alles mitnehmen 
				var cookie_value_temp = content.substring(cookie_position+name.length+1,content.length);

				var end_search = cookie_value_temp.search(';');
				if (end_search < 0) {
					end_search = content.length;
				}
				
				// JEtzt schauen, das wir tatsächlich auch nur bis zum Ende des einen Cookies alles mitnehmen
				var cookie_value =  cookie_value_temp.substring(0,end_search);
							
				// Jetzt haben wir den Wert --> Trennen am Kaufmanns-Und (&) 
				// Erstes = Variable
				// Zweites = Wert
				var keys_and_values = cookie_value.split("&");        
				
				// JEtzt den Array durchgehen in Zweierschritten
				for (var i = 0; i <=  keys_and_values.length; i=i+2) {
					
					// Wenn gewünschtes Attribut erreicht wurde --> Wert neu setzen und Schleife beenden
					if (attribute == keys_and_values[i]) {
						 keys_and_values[i+1] = escape(value);
						 
						// Jetzt den Value des Cookies neu zusammensetzen
						var new_cookie_value = keys_and_values.join("&");
						
						// Cookie jetzt neu zusammensetzen
						document.cookie = name+'='+new_cookie_value+
								( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
								( ( path ) ? ";path=" + path : "/" ) +
								( ( domain ) ? ";domain=" + domain : "" ) +
								( ( secure ) ? ";secure" : "" );	

						// Schleife & Script beenden
						return 1; 
						//===
					}
				}
				
				// Vielleicht ist der Wert neu und muss angehängt werden
				document.cookie =  name+'='+cookie_value+'&'+attribute+'&'+escape(value) +
						( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
						( ( path ) ? ";path=" + path : "/" ) +
						( ( domain ) ? ";domain=" + domain : "" ) +
						( ( secure ) ? ";secure" : "" );	
				
				return 1; 
				//===
			}
		}

		document.cookie = name+'='+attribute+'&'+escape(value) +
				( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
				( ( path ) ? ";path=" + path : "/" ) +
				( ( domain ) ? ";domain=" + domain : "" ) +
				( ( secure ) ? ";secure" : "" );						
		
		return 1;
		//===   

	},
	
	//==================================
	read_cookie : function (name, attribute) {
	
		 var content = document.cookie;
		 var result = '';

		 if (content.length > 0) {

			var cookie_position = content.search(name+'=');
			
			// Ist es der gewünschte Cookie?
			if(cookie_position > -1) {
				
				// Von der Startpositon bis zum Ende erst mal alles mitnehmen 
				var cookie_value_temp = content.substring(cookie_position+name.length+1,content.length);

				var end_search = cookie_value_temp.search(';');
				if (end_search < 0) {
					end_search = content.length;
				}
				
				// JEtzt schauen, das wir tatsächlich auch nur bis zum Ende des einen Cookies alles mitnehmen
				var cookie_value =  cookie_value_temp.substring(0,end_search);
				// Jetzt haben wir den Wert --> Trennen am Kaufmanns-Und (&) 
				// Erstes = Variable
				// Zweites = Wert
				var keys_and_values = cookie_value.split("&");        
				
				// Jetzt den Array durchgehen in Zweierschritten
				for (var i = 0; i <=  keys_and_values.length; i=i+2) {

					// Wenn gewünschtes Attribut erreicht wurde --> Ausgabe des Wertes
					if (attribute == keys_and_values[i]) {
						return keys_and_values[i+1];
						//====
					}
				}     
			}
		}
		 
		 return '';
		 //====
	}

	    
    
}


