/**
 * Reiter
 */

var Reiter = {
	
	init: function(rolloId) {
//alert("Reiter.init");
		Reiter.logger("Reiter.init("+rolloId+")");

        $(".rollo"+rolloId+" .tab").addClass("hide");
        $(".rollo"+rolloId+" .tab_details").addClass("hide");
        
        $(".rollo"+rolloId+" .tab a.reiter-detail").live("click", function() {
            Reiter.showReiterDetail(rolloId);
            return false;
        });
        
        $(".rollo"+rolloId+" .tab_details a.reiter-small").live("click", function() {
            Reiter.showReiterSmall(rolloId);
            return false;
        });


		if ($(".rollo"+rolloId+" .tab").size() && ($(".rollo"+rolloId+" .tab_details").size())) {
			var loaded = false;
			var loadedDetails = false;

			$(".rollo"+rolloId+" .tab li a,.rollo"+rolloId+" .tab_details li a").unbind("click");
			$(".rollo"+rolloId+" .tab li a,.rollo"+rolloId+" .tab_details li a").each(function() {
				url = $(this).attr("href");
				if (url.indexOf("?") == -1) { url += "?"; }
				url += "&type=4";
				$(this).attr("href",url);
			});


			var $tabs = $(".rollo"+rolloId+" .tab").tabs({ cache: false });
			var $tabs_details = $(".rollo"+rolloId+" .tab_details").tabs({ cache: false });


			$(".rollo"+rolloId+" .tab").bind('tabsshow', function(event, ui) {
				Reiter.logger("Reiter.tab.tabsshow("+event+","+ui+")");
                // Defaulttab setzen. Hierfür wird der QueryString nach tab abgefragt.
				if (!loaded) {
					Reiter.recalc(rolloId,"tab");
					var selectedTab = $.getQueryString( { ID:"tab", DefaultValue:"0" } ) ;
					$tabs.tabs('select', parseInt(selectedTab));
        			$(".rollo"+rolloId+" .tab").removeClass("hide");
        			$(".rollo"+rolloId+" .tab").addClass("show");
				}
				
				$tabs_details.tabs('option', 'selected', $tabs.tabs('option', 'selected'));
				TableSorter.init(rolloId);
				Form.init(rolloId);
				Reiter.setListOl(rolloId,"tab");
				Reiter.removeLastMargin();

                if (loaded) {
                    if ($(".rollo"+rolloId+" .tab").hasClass("show")) {
                        if ($(".tab .content-tab form:visible").size()) {
                            Rollos.resize(rolloId, 526, 20);
                        } else {
                            if ($(".tab .content-tab form").size()) {
                                Rollos.resize(rolloId, 408, 80);
                            }
                        }
                    }
                }

				if (!$.browser.msie) { Scrollbars.init(rolloId); }
				
				loaded = true;

			});
		
			$(".rollo"+rolloId+" .tab_details").bind('tabsshow', function(event, ui) {
                Reiter.logger("Reiter.tab_details.tabsshow("+event+","+ui+")");
				// Defaulttab setzen. Hierfür wird der QueryString nach tab abgefragt.
				if (!loadedDetails) {
					Reiter.recalc(rolloId,"tab_details");
					var selectedTab = $.getQueryString( { ID:"tab", DefaultValue:"0" } ) ;
					$tabs.tabs('select', parseInt(selectedTab));
				}
				
				$tabs.tabs('option', 'selected', $tabs_details.tabs('option', 'selected'));
				TableSorter.init(rolloId);
				Form.init(rolloId);
				Reiter.setListOl(rolloId,"tab_details");
				Reiter.removeLastMargin();

				if (!$.browser.msie) { Scrollbars.init(rolloId); }
                
				loadedDetails = true;
			});
			
            
		};

	},
	
	recalc: function(rolloId,className) {
//alert("Reiter.recalc");
		Reiter.logger("Reiter.recalc("+rolloId+","+className+")");
		var tempWidth = tabWidth = parseInt($(".rollo"+rolloId+" .middle").css("width"));
		var tabs = new Array();
		var counter = 0;
		var marginRight = parseInt($(".rollo"+rolloId+" ."+className+" .ui-tabs-nav li").css("margin-right"));
		var firstTabRow = 1;
	
		$(".rollo"+rolloId+" ."+className+" .ui-tabs-nav li").css("margin-right","0");
		$(".rollo"+rolloId+" ."+className+" .ui-tabs-nav li a").css("padding-right","0");
		$(".rollo"+rolloId+" ."+className+" .ui-tabs-nav li").each(function() {
            if ((tempWidth - $(this).width() - marginRight) <= 0) {
                Reiter.recalcTabRow(tempWidth,tabs,marginRight,firstTabRow);
				tabs = new Array();
				counter = 0;
				tempWidth = tabWidth;
				firstTabRow = 0;
			}
			tabs[counter] = $(this);
			counter++;
			tempWidth = tempWidth - $(this).width() - marginRight;
		});
		
		Reiter.recalcTabRow(tempWidth,tabs,marginRight,firstTabRow);
	},

	recalcTabRow: function(tempWidth,tabs,marginRight,firstTabRow) {
//alert("Reiter.recalcTabRow");
		Reiter.logger("Reiter.recalcTabRow("+tempWidth+","+tabs+","+marginRight+","+firstTabRow+")");
		addPixel = Math.floor((tempWidth / tabs.length));
		addPixelLast = tempWidth - addPixel * tabs.length;
		if (($.os.name == "mac") && ($.browser.mozilla)) { addPixelLast++; }
		var addPixelToLink = 0;
	
		for (var i=0; i<tabs.length; i++) {
			addPixelToLink = parseInt(tabs[i].find("a").css("padding-right")) + addPixel;
			tabs[i].find("a").css("padding-right",addPixelToLink+"px");
			tabs[i].find("a").css("display","block");
			if (i == (tabs.length-1)) {
				addPixelToLink += parseInt(tabs[i].css("margin-right"));
	
				var os = navigator.platform;
				if ($.browser.mozilla && (os.substr(0,3) == "Mac")) {
					addPixelToLink = addPixelToLink + addPixelLast + marginRight - 1;
				} else {
					addPixelToLink = addPixelToLink + addPixelLast + marginRight;
				}
				tabs[i].css("margin-right","0");
				tabs[i].find("a").css("padding-right",addPixelToLink+"px");
	
			} else {
				tabs[i].css("margin-right",marginRight+"px");
			}
			if (firstTabRow) {
				tabs[i].css("margin-top","0");
			}
			tabs[i].css("width",tabs[i].width());
		}
	},

	showReiterDetail: function(rolloId) {
        Reiter.logger("Reiter.showReiterDetail("+rolloId+")");
        $(".rollo"+rolloId+" div[details=details]").hide();
        $(".rollo"+rolloId+" .tab").removeClass("show");
        $(".rollo"+rolloId+" .tab").addClass("hide");
        $(".rollo"+rolloId+" .tab_details").addClass("show");
        $(".rollo"+rolloId+" .tab_details").removeClass("hide");
        if (!$.browser.msie) { Scrollbars.init(rolloId); }
        Rollos.resize(rolloId, 526, 20);
    },
    
    showReiterSmall: function(rolloId) {
        Reiter.logger("Reiter.showReiterSmall("+rolloId+")");
        Rollos.resize(rolloId, 408, 80);
        $(".rollo"+rolloId+" .tab_details").addClass("hide");
        $(".rollo"+rolloId+" .tab_details").removeClass("show");
        $(".rollo"+rolloId+" .tab").addClass("show");
        $(".rollo"+rolloId+" .tab").removeClass("hide");
        $(".rollo"+rolloId+" div[details=details]").show();
        if (!$.browser.msie) { Scrollbars.init(rolloId); }
    },

    setListOl: function(rolloId,reiter) {
        Reiter.logger("Reiter.setListOl("+rolloId+","+reiter+")");
        if ($(".rollo"+rolloId+" ."+reiter+" ol").size()) {
            $(".rollo"+rolloId+" ."+reiter+" ol").addClass("styled");
            $(".rollo"+rolloId+" ."+reiter+" ol li").each(function(i) {
                $(this).addClass("li-"+(i+1));
            });
            
        }
    },
    
    removeLastMargin: function() {
        Reiter.logger("Reiter.removeLastMargin()");
        $(".ui-tabs-panel:visible").each(function() {
            $(this).find(".content-tab div[class*=content-element]:last").css("margin-bottom","0");
        });
    },
    
	logger: function(logstring) {
		/* log(logstring); */
	}

};

