/**
 * Diverses
 */

var Dialog = {
		
	init: function(rolloId) {
        Dialog.logger("Dialog.load("+rolloId+")");
		var element = $('.rollo'+rolloId+' .cart_params');
		
		$("#dialog").dialog({
						bgiframe: true,
						resizable: false,
						height:180,
						width: 510,
						modal: true,
						autoOpen: false,
						overlay: {
							backgroundColor: '#000',
							opacity: 0.5
						},
						buttons: {
							'Weiter': function() {
								$(this).dialog('close');
								//document.location.href=linkChangeParams.href;
								Rollos.getContent(linkChangeParams.href,1,'');
								// Warenkorb auf (0) zurücksetzen
								// (#main_nav .shopping_cart) -> #num-cart_items
								//alert(linkChangeParams.href)								
								
							},
							'Abbrechen': function() {
								$(this).dialog('close');
								return false;
							}
							
						}
						
			});
		
		element.attr('onclick', 'return false;');
		element.live('click', function() {
			linkChangeParams=this;
			$("#dialog").dialog('open');
			return false;
		});

	},
	
	logger: function(logstring) {
		//log(logstring);
	}
		
};

var Page = {
	load: function(url) {
		Page.logger("Page.load("+url+")");
		rolloId = Rollos.getRolloByHash(url);
		Rollos.getContent(url,rolloId,false);
	},
	
	logger: function(logstring) {
		//log(logstring);
	}
};

var Content = {
    createPrintHeadlines: function(rolloId) {
		Content.logger("Content.createPrintHeadlines("+rolloId+")");
        if (!$(".rollo"+rolloId+" .content .headline h2 .print").size()) {
            var PrintHeadline2 = $(".rollo"+rolloId+" .content .headline h2 img").attr("alt");
            $(".rollo"+rolloId+" .content .headline h2").append('<span class="print">'+PrintHeadline2+'</span>');
    		var PrintHeadline3 = $(".rollo"+rolloId+" .content .headline h3 img").attr("alt");
    		$(".rollo"+rolloId+" .content .headline h3").append('<span class="print">'+PrintHeadline3+'</span>');
		}
	},
	
	initSearch: function() {
        Content.logger("Content.initSearch()");
        
        $("#searchbox").addClass("searchEmpty");
        $("#searchbox").val("Suchbegriff");
        
        $("#searchbox").focus(function() {
            if ($("#searchbox").val() == "Suchbegriff") {
                $("#searchbox").val("");
                $("#searchbox").removeClass("searchEmpty");
            }
        });
        
        $("#searchbox").blur(function() {
            if ($("#searchbox").val() == "") {
                $("#searchbox").addClass("searchEmpty");
                $("#searchbox").val("Suchbegriff");
            }
        });
        
        $(".searchbutton").focus(function() {
            $(this).blur();	
        });
    },
    
    initUsertypeSwitch: function(rolloId) {
        Content.logger("Content.initUsertypeSwitch("+rolloId+")");
        $(".rollo"+rolloId+" .content a").each(function() {
            var link = $(this).attr("href");
            var Ausdruck = /(utype)/;
            Ausdruck.exec(link);
            if (RegExp.$1 == "utype") {
                $(this).addClass("noajax");
                $(this).attr("href",addPreSlash(link));
            }
        });
    },
    
    initUsertypeSwitchHomepage: function() {
        Content.logger("Content.initUsertypeSwitchHomepage()");
        $("a").each(function() {
            var link = $(this).attr("href");
            var Ausdruck = /(utype)/;
            Ausdruck.exec(link);
            if (RegExp.$1 == "utype") {
//                $(this).unbind("click");
                $(this).addClass("noajax");
                $(this).addClass("utype");
                $(this).attr("href",addPreSlash(removeDomain(removePreSlash(link))));
            }
        });
    },
	
	logger: function(logstring) {
		//log(logstring);
	}
};

var TableSorter = {
	init: function(rolloId) {
		TableSorter.logger("TableSorter.init("+rolloId+")");
		if ($(".rollo"+rolloId+" table").size()) {

			$(".rollo"+rolloId+" table").each(function() {
				
                var $table = $(this);

                if ($table.hasClass("nojszebra") || $table.hasClass("dlist")) {
                } else {

    				if ($table.find("th.sortable").size()) {
    					var params = { 	'headers': {},
    									'widgets': ['zebra'] };
    					var counter = 0;
    					
    					$table.find("th").each(function() {
    						var $th = $(this);
    						if ($th.attr("class") != "sortable") {
    							params["headers"][counter] = {};
    							params["headers"][counter]["sorter"] = false;
    						}
    						counter++;
    					});
    					
    					$table.tablesorter(params);
    				} else {
                        $table.find("tbody tr:even").addClass("even");
                        $table.find("tbody tr:odd").addClass("odd");
    				}
    				
    				$table.find("tr th:first-child,tr td:first-child").addClass("first");
              		$table.find("tr th:last-child,tr td:last-child").addClass("last");

                    $table.attr("cellspacing","0");
                
                }

			});

		}

	},
	
	initThickbox: function() {
		TableSorter.logger("TableSorter.initThickbox()");
		if ($("#TB_ajaxContent table").size()) {
			$("#TB_ajaxContent table").each(function() {
				var $table = $(this);
				
				if ($table.find("th.sortable").size()) {
					var params = { 	'headers': {},
									'widgets': ['zebra'] };
					var counter = 0;
					
					$table.find("th").each(function() {
						var $th = $(this);
						if ($th.attr("class") != "sortable") {
							params["headers"][counter] = {};
							params["headers"][counter]["sorter"] = false;
						}
						counter++;
					});
					
					$table.tablesorter(params);
				} else {
					$table.find("tr:even").addClass("even");
					$table.find("tr:odd").addClass("odd");
				}
				
				$table.find("tr th:first-child,tr td:first-child").addClass("first");
              	$table.find("tr th:last-child,tr td:last-child").addClass("last");

                $table.attr("cellspacing","0");

			});
		}
	},
	
	logger: function(logstring) {
		//log(logstring);
	}
	
};


var datepickerActiv = false;
var Datepicker = {
	init: function(rolloId) {
        return false;
		Datepicker.logger("Datepicker.init("+rolloId+")");
		
        if ($(".rollo"+rolloId+" .hasdatepicker").size()) {
			$datep = $(".rollo"+rolloId+" .hasdatepicker").datepicker({
				dateFormat		: 'dd.mm.yy',
				dayNames		: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
				dayNamesMin		: ['So','Mo','Di','Mi','Do','Fr','Sa'],
				dayNamesShort	: ['Son','Mon','Die','Mit','Don','Fre','Sam'],
				monthNames		: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
				monthNamesShort	: ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],
				firstDay		: 1
			});
			datepickerActiv = true;
			
		}
        
        
        $(".rollo"+rolloId+" .content").scroll(function() {
            if (datepickerActiv) {
                $datep.datepicker("hide");
                $datep.blur();
            }
        });


	},
	
	
	logger: function(logstring) {
		//log(logstring);
	}
};



var Tooltip = {
	init: function(rolloId) {
        Tooltip.logger("Tooltip.init("+rolloId+")");
		$(".rollo"+rolloId+" .glossary acronym").attr("title","");
		if ($(".rollo"+rolloId+" .glossary").size()) {
//			if (($.browser.msie) && ($.browser.version < 7)) {
                $(".rollo"+rolloId+" .glossary acronym").prepend('<img class="info" src="/fileadmin/templates/images/generell/acronym-no.gif" />');
                $(".rollo"+rolloId+" .glossary").hover(function() {
                    $(this).css({"background":"#5A5A5A", "color": "white"});
                    $(this).find(".info").remove();
                    $(this).find("acronym").prepend('<img class="info" src="/fileadmin/templates/images/generell/acronym-ms.gif" />');
                },function() {
                    $(this).css({"background":"white", "color": "#5A5A5A"});
                    $(this).find(".info").remove();
                    $(this).find("acronym").prepend('<img class="info" src="/fileadmin/templates/images/generell/acronym-no.gif" />');
                });
//            }
            $(".rollo"+rolloId+" .glossary").easytooltip("glossarytooltipdisplay");
		}
	},
	
	logger: function(logstring) {
		//log(logstring);
	}
};

var Shop = {
		
	init: function() {
		Shop.logger("Shop.init()");
        $(".info-icon").click(function() {
			return false;
		});
	},
	
	logger: function(logstring) {
		//log(logstring);
	}
		
};

var Form = {
	init: function(rolloId) {
		Form.logger("Form.init("+rolloId+")");
		if ($(".rollo"+rolloId+" textarea").size()) {
			$(".rollo"+rolloId+" textarea").wrap('<div class="textarea-scroll-container"></div>');
			$(".rollo"+rolloId+" .textarea-scroll-container").jScrollPane();
		}
	},
	
	logger: function(logstring) {
		//log(logstring);
	}
};

var Faqs = {
    init: function(rolloId) {
        Faqs.logger("Faqs.init("+rolloId+")");
        
        Form.faqInit(rolloId);
        
        $(".rollo"+rolloId+" .question").unbind("click");
        $(".rollo"+rolloId+" .question").click(function() {
            if ($(this).parent().find(".hide").size()) {
                $(this).parent().find(".answer").removeClass("hide");
                $(this).parent().addClass("showAnswer");
            } else {
                $(this).parent().find(".answer").addClass("hide");
                $(this).parent().removeClass("showAnswer");
            }
            Scrollbars.init(rolloId);
        });
        
/**
        $(".rollo"+rolloId+" div[class*=content-element]").each(function() {
            $(this).find("p:last").css({"margin-bottom":"0"});
        });
*/        
    
    },
    
    logger: function(logstring) {
		//log(logstring);
	}
	
};

var Flash = {
    init: function(swf) {
        Flash.logger("Flash.init("+swf+")");
        for (i=0; i<swf.length; i++) {
            if (!$("object#"+swf[i].name).size()) {
                swfobject.embedSWF(swf[i].source, swf[i].name, swf[i].width, swf[i].height, "9.0.124","", swf[i].flashvars, swf[i].params, swf[i].params);
                if ($("#"+swf[i].name+" .csc-textpic-text").size()) {
                    $("#"+swf[i].name+" .content-element").show();
                }
                if ($("#"+swf[i].name+" .flashAlternative").size()) {
                    $("#"+swf[i].name+" .flashAlternative").show();
                }
            }
        }
        if ((!$.browser.msie) && (rolloId != 2)) { Scrollbars.init(rolloId); }
        swf = new Array();
    },
    
    getFlashMovie: function(movieName) {
        Flash.logger("Flash.getFlashMovie("+movieName+")");
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        return (isIE) ? window[movieName] : document[movieName];
    },

    resetFlashLayer: function(rolloId) {
        Flash.logger("Flash.resetFlashLayer("+rolloId+")");
        if ($(".rollo"+rolloId+" object#overview").size()) {
            if ((typeof(Flash.getFlashMovie) != "undefined") && (typeof(Flash.getFlashMovie("overview").resetFlashLayer) != "undefined")) {
                Flash.logger("Flash.getFlashMovie(\"overview\").resetFlashLayer()");
                Flash.getFlashMovie("overview").resetFlashLayer();
            }
        }
        if ($(".rollo"+rolloId+" object#flash_70bd3f8db1").size()) {
            if ((typeof(Flash.getFlashMovie) != "undefined") && (typeof(Flash.getFlashMovie("flash_70bd3f8db1").resetFlashLayer) != "undefined")) {
                Flash.logger("Flash.getFlashMovie(\"overview\").resetFlashLayer()");
                Flash.getFlashMovie("flash_70bd3f8db1").resetFlashLayer();
            }
        }
        if ($(".rollo"+rolloId+" .flv object").size()) {
            if (typeof(flvPlayer.sendEvent) != "undefined") {
                Flash.logger("flvPlayer.sendEvent('STOP')");
                flvPlayer.sendEvent('STOP');
            }
        }
    },

    restartFlashLayer: function(rolloId) {
        Flash.logger("Flash.restartFlashLayer("+rolloId+")");
        if ($(".rollo"+rolloId+" object#overview").size()) {
            if ((typeof(Flash.getFlashMovie) != "undefined") && (typeof(Flash.getFlashMovie("overview").restartFlashLayer) != "undefined")) {
                Flash.logger("Flash.getFlashMovie(\"overview\").restartFlashLayer()");
                Flash.getFlashMovie("overview").restartFlashLayer();
            }
        }
        if ($(".rollo"+rolloId+" object#flash_70bd3f8db1").size()) {
            if ((typeof(Flash.getFlashMovie) != "undefined") && (typeof(Flash.getFlashMovie("flash_70bd3f8db1").restartFlashLayer) != "undefined")) {
                Flash.logger("Flash.getFlashMovie(\"flash_70bd3f8db1\").restartFlashLayer()");
                Flash.getFlashMovie("flash_70bd3f8db1").restartFlashLayer();
            }
        }
    },
    
    showFlashSpecial: function(id) {
        Flash.logger("Flash.showFlashSpecial("+id+")");
        if ($(".rollo"+rolloId+" object#overview").size()) {
            var overviewFlash = Flash.getFlashMovie("overview");
            if (typeof overviewFlash.showFlashSpecial == 'function') { 
                overviewFlash.showFlashSpecial(id);
            }
        }
    },
    
    logger: function(logstring) {
		//log(logstring);
	}

};

var flvPlayer = null; 
// Will be called from the flv player itself
function playerReady(thePlayer) {
    Flash.logger("playerReady("+thePlayer+")");
    flvPlayer = window.document[thePlayer.id];
}

var Google = {
    track: function(url) {
        Google.logger("Google.track("+url+")");
        Google.logger("pageTracker._trackPageview("+removeDomain(url)+")");
        pageTracker._trackPageview(removeDomain(url));
    },
    
    logger: function(logstring) {
		//log(logstring);
	}
};

/* deprecated, use showInfoLayer */
function showInfoBubble(e) {
	$(e).parent().find('.bubble-info').show();
	if ($(e).parent().hasClass('info-container')) {
		$(e).parent().css('position', 'relative');
	}
}

/* deprecated, use hideInfoLayer */
function hideInfoBubble(e) {
	$(e).parent().find('.bubble-info').hide();
	if ($(e).parent().hasClass('info-container')) {
		$(e).parent().css('position', 'static');
	}
}

function showInfoLayer(infoFieldId, offsetX, offsetY) {
	var bubble_div_id = "info_msg_for_"+infoFieldId;
	var container_div_id = "info_container_for_"+infoFieldId;

//	if ($("#TB_ajaxContent").size()) {
//		$errorField = $("#TB_ajaxContent #"+container_div_id);
//		$($errorField).show();
//		leftPos = $($errorField).offset().left;
//		topPos = $($errorField).offset().top;
//		$($errorField).hide();
//		$($errorField).clone().appendTo("body");
//		$("body #"+bubble_div_id+":last").addClass("bubble-info");
//	} else {
		$infoContainer = $("#content-full-width").find("#info_container_for_"+infoFieldId);
		leftPos = $($infoContainer).offset().left;
		topPos = $($infoContainer).offset().top;		

		$infoBubble = $('#info_msg_for_' + infoFieldId);
		
		$infoBubble.clone().attr('id', 'clone_of_'+bubble_div_id).appendTo("body");
		$infoBubbleClone = $('#clone_of_'+bubble_div_id);
//	}

	if (leftPos) {
        leftPosition = leftPos;
	} 
	
	offsetX = (offsetX == null) ? 15 : offsetX;
	offsetY = (offsetY == null) ? -5 : offsetY;
	leftPosition += offsetX;
	topPos += offsetY;

	
	$infoBubbleClone.css({
		"position"	:	"absolute",
		"left"      :	leftPosition+"px",
		"top"		:	topPos+"px",
		"z-index"	:	200
	});
	$infoBubbleClone.show();
}

/**
 * Displays the info bubble below the info icon
 * @param infoFieldId
 * @return
 */
function showInfoLayerBelow(infoFieldId) {
	showInfoLayer(infoFieldId, -140, 20);
}

function hideInfoLayer(field_id) {
	var bubble_div_id = "info_msg_for_"+field_id;
	$infoBubbleClone = $('#clone_of_'+bubble_div_id);
	
	$infoBubbleClone.remove();
}

/** Fügt der vorhandenen Button-Klasse ein "-hover" hinzu */
function showDefaultImage(e) {
	var classes = $(e).attr('class');
	var newClasses = classes.replace(/button-prio(\d)((-\w+)+)/g, 'button-prio$1$2-hover');	
	$(e).attr('class', newClasses);
}

/** Entfernt ein vorhandenes "-hover" von der Button-Klasse */
function showHoverImage(e) {
	var classes = $(e).attr('class');
	var newClasses = classes.replace(/button-prio(\d)((-\w+)+)-hover(\s|$)/g, 'button-prio$1$2$4');	
	$(e).attr('class', newClasses);
}

function isIE6() {
  return ($.browser.msie && $.browser.version==6);
}

function isIE(version) {
  return ($.browser.msie && $.browser.version==version);
}

function isIEGreaterThan(version) {
  return ($.browser.msie && $.browser.version>version);
}

function pageload(hash) {
    History.load(hash);
}

$(function() {
	if (jQuery.browser.msie) {
		$('.bubblr-info').css({zIndex:10000000,position:'absolute'})
	}	
});



$(document).ready(function() {
    
    // Ajax Debug auf localhost Domains
    if (document.location.href.indexOf("localhost") > 0) {
        ajaxCounter = 0;
        ajaxCounterComplete = 0;
        $("body").ajaxSend(function() {
            $("#loading").slideDown("fast");
            ajaxCounter++;
            ajaxCounterComplete++;
            $("#loading .ajaxCounter").text(ajaxCounter);
            $("#loading .ajaxCounterComplete").text(ajaxCounterComplete);
        });
        $("body").ajaxStop(function() {
            ajaxCounter = 0;
            $("#loading .ajaxCounter").text(ajaxCounter);
            $("#loading").slideUp("fast");
        });
        $("body").ajaxComplete(function() {
            ajaxCounter--;
            $("#loading .ajaxCounter").text(ajaxCounter);
        });
    
    }
});
