	
/*
	dynamische Inhalte die per Ajax nachgeladen werden

	AjaxContentLoad.BuddyListe('herzUser','editarea','wichteVar');			
	
	AjaxContentLoad.FotogalOrdner();

*/		
		
/*
	dynamische Inhalte die per Ajax nachgeladen werden

	AjaxContentLoad.BuddyListe('herzUser','editarea','wichteVar');			
	
	AjaxContentLoad.FotogalOrdner();

*/		
var AjaxContentLoad = {	
		
		BuddyListe:function() {
			BuddyListeLoad.view(arguments);
		},
		
		FotogalOrdner:function() {
			FotogalLoad.Ordner(arguments);
		}
		/*
		,
		SmilieUBB:function() {
			SmilieUBBLoad.view(this.SmilieUBB.arguments);
		}*/
};
	
FotogalLoad = {
	datenOrdner:false,
	callback_func:false,
	callback_args:false,
	create_id:false,
	inhalt:false,
	css:"",
	
	Ordner:function(obj_args) {
		
		
		if(obj_args.length>1) {			
			
			this.callback_func = obj_args[0];
			this.create_id = obj_args[1];
					
			for(var i=2 ; i<obj_args.length ; i++) {
				this.callback_args = ",'" + obj_args[i] +"'";
			}			
		}			
		
		//daten Laden
		FotogalLoad.loadOrdner();
		
		FotogalLoad.ausgabeOrdner();
	},
	
	content:function() {		

		if(this.inhalt!==false)
			return this.inhalt;
				
		var inhalt="";
		var func = FotogalLoad.callback_func;
		var args = FotogalLoad.callback_args;		
	
	
		//FotogalLoad.datenOrdner.each(function(ar){
		for(var id in FotogalLoad.datenOrdner) {
			var name = FotogalLoad.datenOrdner[ id ];

			inhalt += "<div class='setuser' onClick=\""+ func +"('"+ id +"',"+ args +")\"><div class='clicksave'></div>"+ name +"</div>";	
		}				

		this.inhalt = "<div class='statusclose'>Wähle eine Ordner aus<div class='close' onClick='FotogalLoad.close()'></div></div><div class=liste>"+ inhalt +"</div>";	
		
		return this.inhalt;
	},

	ausgabeOrdner:function () {	
		
		if(FotogalLoad.datenOrdner===false) return;
		

		$('FotogalOrdnerLoad').innerHTML = FotogalLoad.content();			
		
		//Drag & Position setzen
		new Draggable('FotogalOrdnerLoad',{handle:'statusclose'});

		if( $('FotogalOrdnerLoad').style.display=="none" )
			$('FotogalOrdnerLoad').style.display="block";
	},
	
	
	loadOrdner:function() {

			
		//Kasten erstellen
		FotogalLoad.create();
		
		if(this.datenOrdner === false) {
			
			this.is_loading = true;
			new Ajax.Request('ajax.php', {
				onSuccess: function(transport) {			
					
					str_json = transport.responseText;
					
					if(str_json.isJSON()) {
						daten = str_json.evalJSON();
						if(typeof daten == "object") {	
							FotogalLoad.datenOrdner = daten;							
							FotogalLoad.ausgabeOrdner();
						}
					}
					
					/*
					str_json = transport.responseText;				
					daten = str_json.evalJSON();
					
					if(typeof daten == "object") {	
						$('BuddyListeLoad').innerHTML = "";
						BuddyListeLoad.data_buddys = daten;							
						BuddyListeLoad.ausgabe();
					}
					else {
						$('BuddyListeLoad').innerHTML = "fehler beim laden";
					}
					
					BuddyListeLoad.is_loading = false;			
					*/
				},
				parameters: 'rs=ordner&page=kabine_profil,_fotogal&rsargs[]='+ usercode});			
		}
	},
	
	create:function() {		
		if( $('FotogalOrdnerLoad') ) return;
		
		var b = $( this.create_id );
		b.appendChild( new Element("div", { id:"FotogalOrdnerLoad"} ) );
		b.appendChild( new Element("div", { id:"FotogalOrdnerCSS"} ) );
		
		$('FotogalOrdnerCSS').innerHTML = "<style>"+ this.css +"</style>";
		$('FotogalOrdnerLoad').innerHTML = "wird geladen";	
	},	
	
	close:function() {	
		$('FotogalOrdnerLoad').style.display="none";
	}
};
	
	
	
	
	
		
BuddyListeLoad = {
	is_loading:false,
	is_inhalt:false,
	is_view:false,
	inhalt:"",	
	data_buddys:false,	
	create_id:"",
	callback_func:false,
	callback_args:"",
	css:"",
	
	
	/*
		AjaxContentLoad.BuddyListe('herzUser','editarea','wichteVar');			
		bei Click auf ein User wird herzUser( usercode , 'wichteVar') in das id="editarea" reingeladen
	*/
	view:function() {

		if(this.view.arguments[0].length>1) {
			var args = this.view.arguments[0];
			
			this.callback_func = args[0];
			this.create_id = args[1];
					
			for(var i=2 ; i<args.length ; i++) {
				this.callback_args = ",'" + args[i] +"'";
			}			
		}
		
		BuddyListeLoad.load();	

		BuddyListeLoad.ausgabe();	
	},
	
	ausgabe:function() {
		if(!BuddyListeLoad.data_buddys)	return;		

		$('BuddyListeLoad').innerHTML = BuddyListeLoad.content();			
		
		//Drag & Position setzen
		new Draggable('BuddyListeLoad',{handle:'statusclose'});
		
		if(!this.is_view)$('BuddyListeLoad').style.display="block";
	},
	
	content:function() {		
		
		if(this.is_inhalt)
			return this.inhalt;
			
		var inhalt="";
		var func = BuddyListeLoad.callback_func;
		var args = BuddyListeLoad.callback_args;
		
		this.data_buddys.each(function(ar_buddy){
	
			var link = ar_buddy[0];
			var uc = ar_buddy[1];
			
			inhalt += "<div class='setuser' onClick=\""+ func +"('"+ uc +"'"+ args +")\"><div class='clicksave'></div>"+ link +"</div>";		
		});	
				

		this.inhalt = "<div class='statusclose'>Wähle eine Freund aus<div class='close' onClick='BuddyListeLoad.close()'></div></div><div class=liste>"+ inhalt +"</div>";	
	
		
		this.is_inhalt = true;
		
		return this.inhalt;
	},	
	
	close:function() {	
		this.is_view=false;
		$('BuddyListeLoad').style.display="none";
	},
	
	load:function() {
	
		this.create();	
	
		if(!this.is_loading) {
			
			this.is_loading = true;
			new Ajax.Request('ajax.php', {
				onSuccess: function(transport) {			
					
					str_json = transport.responseText;				
					daten = str_json.evalJSON();
					
					if(typeof daten == "object") {	
						$('BuddyListeLoad').innerHTML = "";
						BuddyListeLoad.data_buddys = daten;							
						BuddyListeLoad.ausgabe();
					}
					else {
						$('BuddyListeLoad').innerHTML = "fehler beim laden";
					}
					
					BuddyListeLoad.is_loading = false;			
				},
				parameters: 'rs=get_js&page=__lib,buddys&rsargs[]='+ usercode});			
		}
	},

	create:function() {
		if( $('BuddyListeLoad') ) return;
		
		var b = $( this.create_id );
		b.appendChild( new Element("div", { id:"BuddyListeLoad"} ) );
		b.appendChild( new Element("div", { id:"BuddyListeCSS"} ) );
		
		$('BuddyListeCSS').innerHTML = "<style>"+ this.css +"</style>";
		$('BuddyListeLoad').innerHTML = "wird geladen";	
	}	

};
	
			
			

	



/*
	
	//als Event
		onClick=\"new ColorPicker( this , 'callback_function' , '"+ parameter_1 +"' )\"
		-> bei Klick auf Farbfeld -> callback_function( parameter_1 ) ;
		
	//normal
		new ColorPicker( "div" , $('input') );
		-> Farbfeld wird in $('div') erstellt
		-> bei Klick Farbe in Inputfeld $('input').value gespeichert
*/
var ColorPicker = Class.create({
	initialize: function( ) {
		
		ColorPicker.close();
		
		this.callback_func="";
		this.callback_args="";	
	
			
		var e = arguments[0];
		this.callback_func = arguments[1] ? arguments[1] : "alert";		
				
		for(var i=2 ; i<arguments.length ; i++) {
			this.callback_args = ",'" + arguments[i] +"'";
		}	

		//[ check ] - Callback Function oder Input ID	
		if(typeof this.callback_func == "object" && this.callback_func.value != "undefined") {
			this.no_callback_func = true;
		}
		
		//Ort ( div ) für Farbfeld
		a = e.tagName ? e.parentNode : $(e);

		this.create(a);	
	},
  
	create: function(b) { 

		b.appendChild( new Element("div", { id:"ColorPickerMain"} ) );

		$('ColorPickerMain').innerHTML = this.environment();		
		$('ColorPickerMain').style.position="absolute";
		$('ColorPickerMain').style.zIndex="15587";
		
		//Drag & Position setzen
		new Draggable('ColorPickerMain',{handle:'ColorPickerHandler'});
	},  
  
	environment: function() {
		return "<div style='background:gray;text-align:right' class=ColorPickerHandler> <span style='cursor:pointer;background:red;color:white' onClick='ColorPicker.close()'>[x]</span> </div>"+
		"<div style='background:white;padding:3px'>"+ this.table() +"</div>"+
		"<div style='background:gray;color:white' id='ColorPickerAktColor'>&nbsp;</div>";
	},
  

  
  table: function() {
  
	var lines_x = 14;
	var lines_y = 15;
	
	var table = "<table cellspacing=0 cellpadding=0 id=ColorPickerTable><tr>";
	
	var saettigung = 100;
	var helligkeit = 100;
	var farbkreis = 360;	
	var farbkreisstart = 0;
	
	
	for (var x=0; x < lines_x ; x++) {
		h_neu = Math.round (farbkreisstart + (farbkreis / lines_x ) * x);

		for (var y=1; y < lines_y-1 ; y++) {

		
			//Sättigung hochzählen	- durch 2, damit auf halber strecke schon volle Sättigung
			s_neu = (saettigung * (y/(lines_x/2)));	
			v_neu = helligkeit;

			//Wenn sättigung voll (nach halber strecker) -> wird helligekeit reduzier
			if(s_neu >= saettigung) {
				s_neu = saettigung;
				v_neu = helligkeit - (helligkeit * (y/lines_y));
			}

			
			obj_rgb = this.hsv2rgb(h_neu , s_neu , v_neu);			
			str_hex = "#"+this.rgb2hex(obj_rgb.r , obj_rgb.g , obj_rgb.b);

			//Mouse Events
			onEvent = " onMouseOver=\"$('ColorPickerAktColor').style.backgroundColor ='"+ str_hex +"'\"";			
			if(this.no_callback_func)
				onEvent+= " onClick=\"$('"+ this.callback_func.id +"').value='"+ str_hex +"';\"";
			else
				onEvent+= " onClick=\""+ this.callback_func +"('"+ str_hex +"'"+ this.callback_args +");\"";
			
			
			div = "<div style='background:"+ str_hex +";' "+ onEvent +">&nbsp;</div>";
			table += "<td style='width:10px;height:10px'>"+ div +"</td>";
		}

		if(y >= lines_y)
			table += "</tr>";
		else
			table += "</tr><tr>";
	}
	table += "</table>";
	
	style = "<style>"+	
		"#ColorPickerTable div{width:10px;height:10px;border:1px solid transparent;cursor:pointer }"+
		"#ColorPickerTable div:hover{border-color:black; }"+
	"</style>";
	
	return style + table;  
  },

	hsv2rgb: function(h,s,v) {

		max = v > 0 ? (v / 100) * 255 : 0;
		min = max - (s / 100) * max;

		if(h >= 0 && h <= 60) { //ok
			rot = max;
			blau = min;
			gruen = max - ((1 - (h / 60)) * (max - min));
		}
		if(h >= 60 && h <= 120) { // ok
			gruen = max;
			blau = min;
			rot = max + ((1 - (h / 60)) * (max - min));
		}
		if(h >= 120 && h <= 180) { // ok
			gruen = max;
			rot = min;
			blau = max - ((3 - (h / 60)) * (max - min));
		}
		if(h >= 180 && h <= 240) { // ok
			blau = max;
			rot = min;
			gruen = max + ((3 - (h / 60)) * (max - min));
		}
		if(h >= 240 && h <= 300) { // ok
			blau = max;
			gruen = min;
			rot = max - ((5 - (h / 60)) * (max - min));
		}
		if(h >= 300 && h <= 360) { // ok
			rot = max;
			gruen = min;
			blau = max + ((5 - (h / 60)) * (max - min));
		}

		return { r:Math.round(rot), g:Math.round(gruen) , b:Math.round(blau) };
	},

	rgb2hex:function(r,g,b) {
		
		r = r.toString(16);
		g = g.toString(16);
		b = b.toString(16);
		
		return (r.length==1 ? "0"+r : r) + (g.length==1 ? "0"+g : g) + (b.length==1 ? "0"+b : b);
	}
 });

  
  Object.extend(ColorPicker, {
	close:function() {
		if( $('ColorPickerMain') ) 
			$('ColorPickerMain').remove();
	}  
});

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  


	