$(document).ready(function()
{
	flipediaResize();
	
	//SEARCHINPUT
	$("#searchinput").focus(function(event) { $("#searchinput").bind('keydown',searchKeyHandler); if($(this).val()=='...in allen Katalogen suchen...') $(this).val(''); else $(this).select(); });
	$("#searchinput").blur(function(event) { $("#searchinput").unbind('keydown'); if($(this).val()=='') $(this).val('...in allen Katalogen suchen...'); });
	$("#searchnow").click(function(event){ if($("#searchinput").val()!='...in allen Katalogen suchen...') $("#content").load("/ajx/search.php",{searchstring:$("#searchinput").val(),mode:'fpsearch'},searchComplete); });
	
	//NAVIGATION SIDEBAR
	$(".cat_root, .cat_main").click(function(event)
	{
		event.preventDefault();
		
		if(  $("a",this).attr('href') == window.location.pathname && $("#searchinput").val()=='...in allen Katalogen suchen...' ) window.location.pathname="/";
		else window.location.pathname=$("a",this).attr('href')+'.';
	});
	$(".cat_sub").click(function(event)
	{
		event.preventDefault();
		
		if(  $("a",this).attr('href') == window.location.pathname && $("#searchinput").val()=='...in allen Katalogen suchen...' ) window.location.pathname="/kategorie/"+$(this).attr('title')+'/';
		else window.location.pathname=$("a",this).attr('href')+'.';
	});
	$(".cat_com").click(function(event)
	{
		event.preventDefault();
		
		window.location.pathname=$("a",this).attr('href')+'.';
	});
	
	$(".cat_misc, .cat_miscsub, .cat_miscsubsub").click(function(event)
	{
		event.preventDefault();
		
		window.location.pathname=$("a",this).attr('href')+'.';
	});
	
	
	//NAVI HOVER STYLE
	$(".cat_root, .cat_main, .cat_sub, .cat_com, .cat_misc, .cat_miscsub, .cat_miscsubsub").mouseenter(function(event)
	{
		$("a",this).css('text-decoration','underline');
		$("a",this).css('color','#fff');
		$(this).css('cursor','pointer');
	});
	$(".cat_root, .cat_main, .cat_sub, .cat_misc, .cat_miscsub, .cat_miscsubsub").mouseleave(function(event)
	{
		$("a",this).css('text-decoration','none');
		$("a",this).css('color','#eff3f9');
		$(this).css('cursor','auto');
		
		if($("a",this).html()=='ALLE A-Z' || $("a",this).html()=='SONSTIGE') $("a",this).css('color','#c0ccdf');
	});
	$(".cat_com").mouseleave(function(event)
	{
		$("a",this).css('text-decoration','none');
		$("a",this).css('color','#dbe2ee');
		$(this).css('cursor','auto');
		
		if($("a",this).html()=='ALLE A-Z' || $("a",this).html()=='SONSTIGE') $("a",this).css('color','#c0ccdf');
	});
	
	//CATALOG HOVER
	initCatalogHover();	
	
	//LOGIN.............................................
	$("#login_email").bind('keyup change',function(event)
	{
		if(checkEmail($("#login_email").val())) $("#login_email").animate({backgroundColor:"#88ff88"}, 200 );
		else $("#login_email").animate({backgroundColor:"#ffff88"}, 200 );
		if(event.keyCode!=13) $("#loginresponse").html('');
	});
	$("#login_pass").bind('keyup change',function(event)
	{
		if($("#login_pass").val().length>3) $("#login_pass").animate({backgroundColor:"#88ff88"}, 200 );
		else $("#login_pass").animate({backgroundColor:"#ffff88"}, 200 );
		if(event.keyCode!=13) $("#loginresponse").html('');
	});
	$("#login_submit").click(function(event)
	{
		if(!checkEmail($("#login_email").val())) {
			$("#loginresponse").html('Bitte geben Sie Ihre Zugangsdaten ein oder <a id="resetpassword" href="/anmelden/">erstellen Sie einen MY FLIPEDIA-Zugang</a>.');
			$("#login_email").stop(); $("#login_email").css('background-color','#ffffff'); $("#login_email").effect("highlight",{color:'#ff5544'}, 1000);
			event.preventDefault();
		}
		if($("#login_pass").val().length<4) {
			$("#loginresponse").html('Bitte geben Sie Ihre Zugangsdaten ein oder <a id="resetpassword" href="/anmelden/">erstellen Sie einen MY FLIPEDIA-Zugang</a>.');
			$("#login_pass").stop();  $("#login_pass").css('background-color','#ffffff');  $("#login_pass").effect("highlight",{color:'#ff5544',queue:false}, 1000);
			event.preventDefault();
		}
	});
	
	//RESET PASSWORD
	$("#resetpassword").live('click',function(event) { event.preventDefault(); $("#content").load("/ajx/pwdreset.php",{email:$("#login_email").val(),mode:'request'}); }); 
	
	//REGISTER...........................................
	$("#reg_email").bind('keyup change',function(event)
	{
		if(checkEmail($("#reg_email").val())) $("#reg_email").animate({backgroundColor:"#88ff88"}, 200 );
		else $("#reg_email").animate({backgroundColor:"#ffffff"}, 200 );
	});
	$("#reg_pass").bind('keyup change',function(event)
	{
		if($("#reg_pass").val().length>3) $("#reg_pass").animate({backgroundColor:"#88ff88"}, 200 );
		else $("#reg_pass").animate({backgroundColor:"#ffffff"}, 200 );
	});
	$("#reg_submit").click(function(event)
	{
		event.preventDefault();
		
		if(!checkEmail($("#reg_email").val())) { $("#reg_email").stop(); $("#reg_email").css('background-color','#ffffff'); $("#reg_email").effect("highlight",{color:'#ff5544'}, 1000); }
		if($("#reg_pass").val().length<4) { $("#reg_pass").stop(); $("#reg_pass").css('background-color','#ffffff'); $("#reg_pass").effect("highlight",{color:'#ff5544'}, 1000); }
		
		$("#reg_note").html('');
		if(checkEmail($("#reg_email").val()) && $("#reg_pass").val().length>3) $.post('/ajx/register.php', {mode:'register',email:$("#reg_email").val(),pass:$("#reg_pass").val()}, function(data) { if(data.substr(0,3)=='Die') $("#reg_note").html(data); else { $("#register").html(data); flipediaResize(); } });
		else $("#reg_note").html('Bitte geben Sie Ihre Emailadresse sowie ein Passwort mit vier oder mehr Zeichen ein.');
	});
	
	//TEST
	//$("body").scroll(function(event) { alert(':oD'); });
	
	//LAYOUT
	$("#layout_list").click(function(event) { $.post('/ajx/settings.php', {mode:'layout_list'}, function(data) { window.location.reload(); }); });
	$("#layout_grid").click(function(event) { $.post('/ajx/settings.php', {mode:'layout_grid'}, function(data) { window.location.reload(); }); });
	
	//ACCORDION
	$("#accordion_mypro").accordion();
	$("#accordion_misc").accordion({autoHeight:false});
	
	//MY PRO DEMO
	$("#myprodemo").button();
	$("#myprodemo").click(function() { alert("[TODO: PRO aktivieren und weiterleiten]"); });
	
	//SCROLL SIDEBAR TO COMPANY
	var companyDivName="#company_"+$("#FP_company_id").attr('title');
	if($(companyDivName).position())
	{
		$("#sidebar").scrollTop(0);
		$("#sidebar").scrollTop($(companyDivName).position().top-($(window).height())/2-40);
	}
	
	//LAZYLOAD
	initLazyLoad();
	
	flipediaResize();
});

$(window).resize(function() { flipediaResize(); });

function searchKeyHandler(event) { if(event.keyCode=='13' && $("#searchinput").val()!=$("#searchstring").html()) { if($("#searchinput").val()!='...in allen Katalogen suchen...') $("#content").load("/ajx/search.php",{searchstring:$("#searchinput").val(),mode:'fpsearch'},searchComplete); } }
function searchComplete()
{
	initLazyLoad();
	initCatalogHover();
	
	$("#footer").html('');
	$("#content").css('left','270px');
	$("#content").attr('class','catalogs');
	flipediaResize();
	
	$("#btnfulltext").click(function(event){ event.preventDefault(); if($("#searchinput").val()!='...in allen Katalogen suchen...') $("#content").load("/ajx/search.php",{searchstring:$("#searchinput").val(),mode:'fpsearch',submode:'fulltext'},searchComplete); });
	$("#btntags").click(function(event){ event.preventDefault(); if($("#searchinput").val()!='...in allen Katalogen suchen...') $("#content").load("/ajx/search.php",{searchstring:$("#searchinput").val(),mode:'fpsearch',submode:'tags'},searchComplete); });
}

function initCatalogHover()
{
	$(".catalogcover").mouseenter(function(event)
	{
		$(".overlaydetails").not($(".overlaydetails",this)).html('');
		
		$(".coveroverlay",this).css('display','inline');
		
		var cID=$(this).parent().attr('id');
		var metaCount=$(".metas",$(this).parent().parent()).length;
		$(".overlaydetails",this).load("/ajx/catdetails.php",{cid:cID,metacount:metaCount},bindDetails);
	});
	$(".catalogcover").mouseleave(function(event)
	{
		$(".coveroverlay",this).css('display','none');
	});
}

function initLazyLoad()
{
	$(".coverimgimg").lazyload({placeholder:"/img/cover.png",container:$("#content"),effect:"fadeIn"});
	//$(".coverimg img").attr('src',$(".coverimg img").attr('longdesc'));
}

function checkEmail(textInput)
{
	textInput=$.trim(textInput);
	var isValid=true;
	
	var firstIndexOfAt	=textInput.indexOf('@');
	var lastIndexOfAt	=textInput.lastIndexOf('@');
	var firstIndexOfDot	=textInput.indexOf('.');
	var lastIndexOfDot	=textInput.lastIndexOf('.');
	
	if(firstIndexOfAt==-1) 							isValid=false;	// @ muss vorkommen
	if(firstIndexOfAt!=lastIndexOfAt) 				isValid=false;	// @ darf nur einmal vorkommen
	if(firstIndexOfAt==0) 							isValid=false;	// @ darf nicht an erster Stelle stehen
	if(firstIndexOfAt==textInput.length-1)			isValid=false;	// @ darf nicht an letzter stelle stehen
	if(firstIndexOfDot==-1) 						isValid=false;	// . muss vorkommen
	if(textInput.charAt(0)=='.')					isValid=false;	// . darf nicht erstes Zeichen sein
	if(lastIndexOfDot<firstIndexOfAt) 				isValid=false;	// . muss nach dem @ stehen
	if(textInput.charAt(firstIndexOfAt+1)=='.')		isValid=false;	// zwischen @ und . muss ein zeichen stehen
	if(textInput.charAt(firstIndexOfAt-1)=='.')		isValid=false;	// zwischen . und @ muss ein zeichen stehen
	if(textInput.substr(lastIndexOfDot+1).length<2)	isValid=false;	// nach dem letzten . müssen mindestens zwei Zeichen stehen
	if(textInput.indexOf('..')!=-1)					isValid=false;	// .. darf nicht vorkommen
	
	//NOT ALLOWED MAILSERVERS
	if(textInput.indexOf('@trash-mail.')!=-1)		isValid=false;	// .. darf nicht vorkommen
	
	if(isValid) return true;
	else return false;
}

function bindDetails()
{
	//BTN ARCHIVE
	$(".btnarchive").click(function(event)
	{
		var cID=$(this).parent().parent().parent().parent().parent().attr('id').substr(4);
		var mID=$(this).attr('id').substr(11);
		if($("#metas_"+mID).length==0) {
			$("<div id='metas_"+mID+"' class='metas'>").load("/ajx/catmetas.php",{cid:cID},function(){ $("#cid_"+cID).after(this); bindMetaHover(); });
			$(".btnarchive",$("#cid_"+cID)).parent().css('opacity','0.3');
		}
		else {
			$(".metas").remove();
			$(".btnarchive",$("#cid_"+cID)).parent().css('opacity','1');
		}
	});
	
	//BTN FAVORITE
	$(".cat_add").click(function(event)
	{
		var cID=$(this).parent().parent().parent().parent().attr('id').substr(4);
		var ico=$(this);
		var targetclass=$(this).parent().parent().parent().attr('class');
		
		if($(this).attr('title').substr(0,11)=='MY FLIPEDIA') window.location.href='/myflipedia/';
		else $.post("/ajx/favorite.php",{cid:cID},function(data)
		{
			if(data=='0') { ico.attr('src','/img/ico_add_.png'); ico.attr('title','aus meinen Favoriten entfernen'); }
			else { ico.attr('src','/img/ico_add.png'); ico.attr('title','zu meinen Favoriten hinzufügen'); }
			
			if(targetclass=='catalogcover myfp') window.location.reload();
			else { $("#root_4").stop(); $("#root_4").css('background-color','#9aacc9'); $("#root_4").effect("highlight",{color:'#fade3c',value:'color'}, 1000); }
		});
	});
	
	//BTN ALRET
	$(".cat_alert").click(function(event)
	{
		var cID=$(this).parent().parent().parent().parent().attr('id').substr(4);
		
		document.getElementById('alertid').value = cID;
		document.getElementById('alertform').submit();
	});
}
function bindMetaHover()
{
	//META HOVER
	$(".meta").mouseenter(function(event) { $(this).css('opacity','1'); });
	$(".meta").mouseleave(function(event) { $(this).css('opacity','0.3'); });
}

function flipediaResize()
{
	$("#sidebar").css("height", Math.max( ($(window).height()-112) , ($("#content").height()+4) ));
	
	$("#footer").css("margin-left", Math.max(250,$(window).width()/2-$("#footer").width()/2+115));
	if($("#content").attr('class')=='centered') $("#content").css("left", Math.max(230,115+$(window).width()/2-$("#content").width()/2));
	if($("#content").attr('class')=='catalogs')
	{
		$("body").css("overflow","hidden");
		$("#content").css("overflow","auto");
		$("#content").css("height", $(window).height()-parseInt($("#content").css("top")));
		$("#content").css("width", $(window).width()-230-40);
		$("#sidebar").css("height", ($(window).height()-112) );
	}
	
	//REMOVE CONTENT HEIGHT STYLE!
	//$("#imageslide").css("margin-top", Math.max(50,$(window).height()/2 -117 -184));
	$("#whatsnew").css("left", Math.max(230,115+$(window).width()/2-$("#whatsnew").width()/2));
	$("#accordion_misc").css("width", $(window).width()-314);
	$("#accordion_fpl").css("width", $(window).width()-314);
}
