(function ($) {
	$.fn.diaspicshow = function (options) {
		var defaults = { activid:0,diaimg:[],diaobj:$(this) };
		var settings = $.extend({}, defaults, options);
		var set_next = function(r){
			var t = null;
			if(r && settings.activid+1 < settings._dbdata.length){
				t = settings.activid+1;
				if(t == 1){
					$("#"+settings._navi.navi0).removeClass("opacity40");
					$("#"+settings._navi.navi0).addClass("opacity100");
				}
			}else if(r==0 && settings.activid-1 >= 0){
				t = settings.activid-1;
				if(t == settings._dbdata.length-2){
					$("#"+settings._navi.navi1).removeClass("opacity40");
					$("#"+settings._navi.navi1).addClass("opacity100");
				}
			}
			if(t != null){
				settings.activid = t;
				//SET IMAGE
				settings.diaobj.attr('src', settings._srcpath+""+settings.diaimg[settings.activid].img);
				// SET DESCRIPTION
				if(settings._descr.lable != '' && settings.diaimg[settings.activid].lable!=''){
					settings._descr.lable.empty();
					settings._descr.lable.append(settings.diaimg[settings.activid].lable);	
				}
				if(settings._descr.txt != '' && settings.diaimg[settings.activid].txt!=''){
					settings._descr.txt.empty();
					settings._descr.txt.append(settings.diaimg[settings.activid].txt);	
				}
				if(settings.activid == 0){
					$("#"+settings._navi.navi0).removeClass("opacity100");
					$("#"+settings._navi.navi0).addClass("opacity40");
				}
				if(settings.activid == settings._dbdata.length-1){
					$("#"+settings._navi.navi1).removeClass("opacity100");
					$("#"+settings._navi.navi1).addClass("opacity40");
				}
			}
		}
		if(settings._dbdata.length>0){
			//COPY DBDATA
			for(var i=0;i<settings._dbdata.length;i++){settings.diaimg[i] = settings._dbdata[i];}
			//NAVIGATION
			if(settings._navi.navi0 != ''){
				$("#"+settings._navi.navi0).click(function () {set_next(0)});
				$("#"+settings._navi.navi0).addClass("opacity40");
				$("#"+settings._navi.navi0).css("cursor","pointer");	
			}
			if(settings._navi.navi1 != ''){
				$("#"+settings._navi.navi1).click(function () {set_next(1)});
				$("#"+settings._navi.navi1).addClass("opacity100");	
				$("#"+settings._navi.navi1).css("cursor","pointer");	
			}
			// DESCRIPTION
			if(settings._descr.lable != ''){settings._descr.lable = $("#"+settings._descr.lable);}
			if(settings._descr.txt != ''){settings._descr.txt = $("#"+settings._descr.txt);}
		}
		return this.each(function () { var $$ = $(this); });
	};
	$.fn.diashow = function (options) {
		var defaults = { activthumb:null,l_opc:'opacity40',r_opc:'opacity100',tl_opc:'opacity40',tr_opc:'opacity100' };
		var settings = $.extend({}, defaults, options);
		var thumb = [];
		var tpl = '<div id="goleft"><img src="'+settings._apppath+'item_arrowb_left.jpg" /></div>';
		tpl += '<div id="diashow"><div id="diashowbox"></div></div>';
		tpl += '<div id="goright"><img src="'+settings._apppath+'item_arrowb_right.jpg" /></div>';
		$(this).append(tpl);
		$(this).css("top", options._style.top);
		$(this).css("left", options._style.left);
		$(this).css("display", "block");
		
		var set_imgtxt = function(lbl,txt){
			var t = (lbl!="") ? "<p>"+lbl+"<br />"+txt+"</p>" : "<p>"+txt+"</p>";
			$("#diashowtxt").empty();
			$("#diashowtxt").append(t);
		}
		var set_slide = function(t){
			switch(t){
				case("overl"):
				settings._isactiv = true;
				set_slidepos(0);
				break;
				case("outl"):
				settings._isactiv = false;
				break;
				case("overr"):
				settings._isactiv = true;
				set_slidepos(1);
				break;
				case("outr"):
				settings._isactiv = false;
				break;
			}
		}
		var set_slidepos = function(d){
			var _var = d;
			if(settings._isactiv){
				settings._showpos = (d) ? settings._showpos-7 : settings._showpos+7;
				if(settings._showpos > 0 && d==0 || settings._showpos < settings._maxpos && d==1 ){
					settings._showpos = (d==0) ? 0 : settings._maxpos;
					settings._isactiv = false;
					if(d==0){
						$("#goleft").removeClass("opacity100");
						$("#goleft").addClass("opacity40");
						settings.l_opc = "opacity40";
					}else{
						$("#goright").removeClass("opacity100");
						$("#goright").addClass("opacity40");
						settings.r_opc = "opacity40";
					}
				}
				$("#diashowbox").css("left",settings._showpos+"px");
				if(settings._isactiv){
					if(d==0 && settings.r_opc == "opacity40"){
						$("#goright").removeClass("opacity40");
						$("#goright").addClass("opacity100");
						settings.r_opc = "opacity100";
					}else if(d==1 && settings.l_opc == "opacity40"){
						$("#goleft").removeClass("opacity40");
						$("#goleft").addClass("opacity100");
						settings.l_opc = "opacity100";
					}
					window.setTimeout(function(){set_slidepos(_var)},70); 
				}
			}
		}
		var set_next = function(r){
			var t = null;
			for(var i=0;i<settings._dbdata.length;i++){
				if("thumb"+i == settings.activthumb){
					if(r==1 && i+1< settings._dbdata.length){
						t = "thumb"+(i+1);
						if(i == 0){
							$("#dianext0").removeClass("opacity40");
							$("#dianext0").addClass("opacity100");
						}
						break;
					}else if(r==0 && i-1 >= 0){
						t = "thumb"+(i-1);
						if(i == settings._dbdata.length-1){
							$("#dianext1").removeClass("opacity40");
							$("#dianext1").addClass("opacity100");
						}
						break;
					}
				}
			}
			if(t != null){
				settings.activthumb = t;
				set_imgtxt(thumb[settings.activthumb].config.lable,thumb[settings.activthumb].config.txt);
				$('#diabild').attr('src', settings._imgpath+thumb[settings.activthumb].config.img);
				if(t == "thumb0"){
					$("#dianext0").removeClass("opacity100");
					$("#dianext0").addClass("opacity40");
					settings.tl_opc="opacity40";
				}
				if(t == "thumb"+(settings._dbdata.length-1)){
					$("#dianext1").removeClass("opacity100");
					$("#dianext1").addClass("opacity40");
					settings.tr_opc="opacity40";
				}
			
			}
		}
		if(options._dbdata.length>0){
			var objid = "";
			for(var i=0;i<options._dbdata.length;i++){
				objid = "thumb"+i;
				$("#diashowbox").append('<div id="'+objid+'" class="pic"><img src="'+settings._thumbpath+options._dbdata[i].img+'" /></div>');
				thumb[objid] = $("#"+objid);
				thumb[objid].config = options._dbdata[i];
				thumb[objid].click(function () {
					if(this.id != "thumb0" && this.id != "thumb"+(settings._dbdata.length-1)){
						if(settings.tl_opc=="opacity40"){
							$("#dianext0").removeClass("opacity40");
							$("#dianext0").addClass("opacity100");
							settings.tl_opc="opacity100";
						}
						if(settings.tr_opc=="opacity40"){
							$("#dianext1").removeClass("opacity40");
							$("#dianext1").addClass("opacity100");
							settings.tr_opc="opacity100";
						}
					}else{
						if(this.id == "thumb0"){
							$("#dianext0").removeClass("opacity100");
							$("#dianext0").addClass("opacity40");
							settings.tl_opc="opacity40";
							if(settings.tr_opc=="opacity40"){
								$("#dianext1").removeClass("opacity40");
								$("#dianext1").addClass("opacity100");
								settings.tr_opc="opacity100";
							}
						}else{
							$("#dianext1").removeClass("opacity100");
							$("#dianext1").addClass("opacity40");
							settings.tr_opc="opacity40";
							if(settings.tl_opc=="opacity40"){
								$("#dianext0").removeClass("opacity40");
								$("#dianext0").addClass("opacity100");
								settings.tl_opc="opacity100";
							}
						}
					}
					set_imgtxt(thumb[this.id].config.lable,thumb[this.id].config.txt);
					$('#diabild').attr('src', settings._imgpath+thumb[this.id].config.img);
					settings.activthumb = this.id;
				});
			}
			
			$("#diashowbox").append('<div class="clearL"></div>');
			$("#diashowbox").css("width", (options._space*options._dbdata.length));
			
			settings._maxpos = (options._space*options._dbdata.length)-options._style.width;
			settings._showpos = 0;
			settings._isactiv = false;
			
			if(settings._maxpos > 0){
				settings.activthumb = "thumb0";
				settings._maxpos = settings._maxpos-(settings._maxpos*2);
				$("#goleft").mouseover(function () {set_slide("overl")});
				$("#goleft").mouseout(function () {set_slide("outl")});
				$("#goright").mouseover(function () {set_slide("overr")});
				$("#goright").mouseout(function () {set_slide("outr")});	
				$("#goleft").css("cursor","pointer");
				$("#goleft").addClass("opacity40");	
				$("#goright").css("cursor","pointer");
				$("#goright").addClass("opacity100");	
				
				$("#dianext0").click(function () {set_next(0)});	
				$("#dianext0").css("cursor","pointer");
				$("#dianext0").addClass("opacity40");	
				$("#dianext1").click(function () {set_next(1)});
				$("#dianext1").css("cursor","pointer");
				$("#dianext1").addClass("opacity100");	
			}
			
			set_imgtxt(options._dbdata[0].lable,options._dbdata[0].txt);
		}
		
		return this.each(function () { var $$ = $(this); });
	};
	$.fn.formAjax = function (options) {
		var defaults = { key: "id", value: "label" };
        var settings = $.extend({}, defaults, options);
		return this.each(function () {
            var $$ = $(this);
            $$.click(function () {
            	if(typeof(document.forms[settings.formId]) != "undefined"){
					var data = settings.data;
					var formdata = new Array();
					for(var i=0;i< document.forms[settings.formId].elements.length;i++){
						if(document.forms[settings.formId].elements[i].type != "submit"){
							if(document.forms[settings.formId].elements[i].type == "checkbox"){
								if(document.forms[settings.formId].elements[i].checked == true){
									formdata[i] = document.forms[settings.formId].elements[i].name+"="+document.forms[settings.formId].elements[i].value;
								}
							}else{
								formdata[i] = document.forms[settings.formId].elements[i].name+"="+document.forms[settings.formId].elements[i].value;
							}
						}
					}
                    data["formdata"] = formdata.join("&");
					jQuery.ajax({
	                    url: settings.url,
	                    data: data,
	                    type: (settings.type || 'get'),
	                    dataType: (settings.dataType || 'json'),
						success: function(response){
							jQuery("#"+settings.msgId).empty();
							if(settings.dataType == 'json'){
								var result = new Array(), i = 0, val = "" , key = "";
								for (i = 0; i < response.length; i++) {
		                            key = typeof response[i] == 'object' ? response[i][settings.key] : response[i];
		                            val = typeof response[i] == 'object' ? response[i][settings.value] : response[i];
		                            result[i] = val;
		                        }
								jQuery("#"+settings.msgId).append(result.join("<br />"));	
							}else if(settings.dataType == 'html'){
								jQuery("#"+settings.msgId).append(response);
							}
						},
						error: function(){
	                        jQuery("#"+settings.msgId).empty();
							jQuery("#"+settings.msgId).append("<div>Fehler bei der Übertragung, bitte wende dich an den Support!</div>");
						}
					});
				}
            });
  		});
	};
    $.fn.selectChain = function (options) {
        var defaults = {
            key: "id",
            value: "label"
        };
        
        var settings = $.extend({}, defaults, options);
        
        if (!(settings.target instanceof $)) settings.target = $(settings.target);
        
        return this.each(function () {
            var $$ = $(this);
            
            $$.change(function () {
                var data = null;
                if (typeof settings.data == 'string') {
                    data = settings.data + '&' + this.name + '=' + $$.val();
                } else if (typeof settings.data == 'object') {
                    data = settings.data;
                    data[this.name] = $$.val();
                }
                
                settings.target.empty();
                
                $.ajax({
                    url: settings.url,
                    data: data,
                    type: (settings.type || 'get'),
                    dataType: 'json',
                    success: function (j) {
                        var options = [], i = 0, o = null;
                        
                        for (i = 0; i < j.length; i++) {
                            // required to get around IE bug (http://support.microsoft.com/?scid=kb%3Ben-us%3B276228)
                            o = document.createElement("OPTION");
                            o.value = typeof j[i] == 'object' ? j[i][settings.key] : j[i];
                            o.text = typeof j[i] == 'object' ? j[i][settings.value] : j[i];
                            settings.target.get(0).options[i] = o;
                        }

						// hand control back to browser for a moment
						setTimeout(function () {
						    settings.target
			                                .find('option:first')
			                                .attr('selected', 'selected')
			                                .parent('select')
			                                .trigger('change');
						}, 0);
                    },
                    error: function (xhr, desc, er) {
                        // add whatever debug you want here.
						//alert("an error occurred\n"+xhr+"\n"+desc+"\n"+er);
                    }
                });
            });
        });
    };  
})(jQuery);
var _tplbeans = [];
_tplbeans["alluser"] = "get_alluser";
// BEAN TEMPLATES
function bean_handler(){
    this.get_alluser = function(args){
        var tpl = '';
        for(var e in args){
        	tpl += '<tr><td>'+e+'</td><td>'+args[e]+'</td></tr>';
        }
        tpl = '<table>'+tpl+'</table>';
        return tpl;
    }
}
var _beans = new bean_handler();
function setRequest(_url,_beanid,_outputid){
	settings = { beanid: _beanid , outputid: _outputid};
	_srinst = this;
	jQuery.ajax({
        url: _url,
        type: ('post'),
        data: { callId: _beanid },
		dataType: ('json'),
		success: function(response){
			var result = new Array(), i = 0, val = "" , key = "";
			for (i = 0; i < response.length; i++) {
                key = typeof response[i] == 'object' ? response[i]["key"] : response[i];
                val = typeof response[i] == 'object' ? response[i]["val"] : response[i];
                result[key] = val;
            }
            jQuery("#"+_srinst.settings.outputid).empty();
			jQuery("#"+_srinst.settings.outputid).append(_beans[_tplbeans[_srinst.settings.beanid]](result));
			jQuery("#"+_srinst.settings.outputid).css("display", "block");

		},
		error: function(){
            jQuery("#"+_srinst.settings.outputid).empty();
			jQuery("#"+_srinst.settings.outputid).append("<div>Fehler bei der Übertragung, bitte wende dich an den Support!</div>");
			jQuery("#"+_srinst.settings.outputid).css("display", "block");
		}
	});
}
