var Blogbox = {

	instance: "Blogbox",
	base: "http://www.belepo.hu/",
	blog: null,
	publicProfile: 'false',
	timeout: 5000,
	index: 0,
	loggedin: false,
	username: null,
	favorites: [],
	blogs: [],
        profilepages: {},
	isMyBlog: false,
	isFavoriteBlog: false,
	adminUrl: null,
	zone: null,
        usermenu: {'Blogzóna admin':'http://admin.blogzona.hu/'},
	
	init: function() {
	
		var bbdiv = document.createElement("div");
		bbdiv.id = "blogbox";
		
		Blogbox.blog = Blogbox.getBlogUrl(window.location.toString());
		Blogbox.convertBlogs();
		Blogbox.convertFavorites();
		Blogbox.isMyBlog = Blogbox.setBlogFlag(Blogbox.blogs, Blogbox.blog);
		Blogbox.isFavoriteBlog = Blogbox.setBlogFlag(Blogbox.favorites, Blogbox.blog);

		var html =
		'<form id="blogboxForm" action="' + Blogbox.base + 'blogbox/togglefavoriteblog" target="blogboxFrame" method="post">'+
		'<input id="blogboxURL" type="hidden" name="blogURL" value="' + Blogbox.blog + '" />'+
		'</form>'+
		'<iframe id="blogboxFrame" name="blogboxFrame"></iframe>'+
		'<sc' + 'ript src="' + Blogbox.base + 'js/jquery-1.3.2.min.js" type="text/javascript"></script>';
		
		var right ='';
		left = '<a href="http://www.blogzona.hu" class="blog1">blogzona.hu</a>';

		if (zonename = Blogbox.getZoneName())
		{
			left += '<a href="http://' + Blogbox.zone + '.blogzona.hu/" class="blog2" id="blogbox_zone">' + zonename + '</a>';
		}
		if (Blogbox.loggedin == true) {
			right += Blogbox.menuDivDraw('<a href="' + Blogbox.base + 'profile" class="blogbox_user" id="blogbox_user_link" onmouseover="'+Blogbox.instance+'.layerShow2(\'blogbox_user\')" onmouseout="'+Blogbox.instance+'.layerHide2(\'blogbox_user\')">Helló, ' + Blogbox.username + '!</a>' + Blogbox.layerDraw('blogbox_user', Blogbox.usermenu));
			if (Blogbox.zone)
			{
				right += Blogbox.menuDivDraw('<a href="'+Blogbox.adminUrl+'create-blog/'+Blogbox.zone+'" id="blogbox_newblog">Új blog</a>');
			}
			if (Blogbox.isMyBlog) {
				right += Blogbox.menuDivDraw('<a href="' + Blogbox.adminUrl + 'edit/' + Blogbox.getBlogName(Blogbox.blog) + '/?create-entry">Új bejegyzés</a>');
			}
                        right += Blogbox.menuDivDraw('<a href="javascript:void(0);" class="blogbox_myblogs" id="blogbox_myblogs_link" onmouseover="'+Blogbox.instance+'.layerShow2(\'blogbox_myblogs\')" onmouseout="'+Blogbox.instance+'.layerHide2(\'blogbox_myblogs\')">Saját blogok</a>' + Blogbox.layerDraw('blogbox_myblogs', Blogbox.blogs));
                        if ( Blogbox.favorites.length > 0 ) {
                            right += Blogbox.menuDivDraw('<a href="javascript:void(0);" class="blogbox_favorites" id="blogbox_favorites_link" onmouseover="'+Blogbox.instance+'.layerShow2(\'blogbox_favorites\');" onmouseout="'+Blogbox.instance+'.layerHide2(\'blogbox_favorites\');">Kedvencek</a>' + Blogbox.layerDraw('blogbox_favorites', Blogbox.favorites));
                        }
			if (!Blogbox.isMyBlog) {
				right += Blogbox.menuDivDraw('<a href="javascript:void(0);" class="buttonFavorite" id="blogboxButtonFavorite" onclick="'+Blogbox.instance+'.send(this);return false;">' + (Blogbox.getFavoriteButton()) + '</a>');
			}
			right += Blogbox.menuDivDraw('<a class="logout" href="'+Blogbox.base+'ssologin/logout?redirect=' + encodeURIComponent( window.location.toString() ) + '">Kilépés</a>');
		} else {
			right += Blogbox.menuDivDraw('<a href="http://admin.blogzona.hu/login?ru=' + encodeURIComponent( window.location.toString() ) + '">Belépés</a>');
		}

		html += '<div class="Left">' + left + '</div>' + '<div class="Right">' + right + '</div>' + '<div class="Clear"></div>';
		
		bbdiv.innerHTML = html;

		
		document.body.insertBefore(bbdiv, document.body.firstChild);

	},
	
	layerShow2: function(e) {
		document.getElementById(e+'_list').style.display="block";
		document.getElementById(e+'_link').setAttribute("class",e+" hover");
	},

	layerHide2: function(e) {
		document.getElementById(e+'_list').style.display="none";
		document.getElementById(e+'_link').setAttribute("class",e);
	},
	
	checkProfile: function()
	{
		if(Blogbox.publicProfile != 'true')
		{
			alert('A kedvencnek jelölt blog csak profiloldallal rendelkező felhasználók számára jeleníthető meg.');
			return false;
		}
		return true;
	},

	send: function(button) {
		var form = document.getElementById('blogboxForm');
		form.submit();
		// real timing event
		document.getElementById('blogboxFrame').onload = function() {
			Blogbox.isFavoriteBlog = !Blogbox.isFavoriteBlog;
			Blogbox.setFavoriteButton(document);
			if (aTag = document.getElementById('blogbox_favorites_item_' + Blogbox.getBlogName(Blogbox.blog)))
			{
				aTag.style.display = (Blogbox.isFavoriteBlog?'block':'none');
			}
			else
			{
				if (Blogbox.isFavoriteBlog)
				{
					var element = document.createElement('a');
					element.setAttribute('id', 'blogbox_favorites_item_' + Blogbox.getBlogName(Blogbox.blog))
					element.innerHTML = Blogbox.getBlogName(Blogbox.blog);
					element.href = Blogbox.getBlogUrl(Blogbox.blog);
					var div = document.getElementById('blogbox_favorites_list');
					div.appendChild(element);
				}
			}
		}
	},

	setFavoriteButton: function()
	{
		if (butt = document.getElementById('blogboxButtonFavorite'))
		{
			butt.innerHTML = Blogbox.getFavoriteButton();
			// butt.style.display = 'block';
		}
	},
	
	getFavoriteButton: function(obj)
	{
		return !Blogbox.isFavoriteBlog ? 'Kedvencnek jelölöm' : 'Törlöm a kedvencek közül';
	},
	
	menuDivDraw: function(content)
	{
		return '<div class="MenuItem">' + content + '</div>';
	},
	
	layerDraw: function(id, options)
	{
		var html = '', hassubmenu = false;
		if (options)
		{
			html +=	'<div id="' + id + '_list" class="subMenu" onmouseover="' + Blogbox.instance + '.layerShow2(\''+id+'\')" onmouseout="' + Blogbox.instance + '.layerHide2(\'' + id + '\')">';
			for(a in options) {
				if (typeof(options[a]) == 'string') {
					html += '<a id="' + id + '_item_' + a + '" href="' + options[a] + '">' + a + '</a>';
				}
			}
			html +='</div>';
		} 
		return html;
	},
	
	convertBlogs: function()
	{
		var list = Blogbox.blogs.slice();
		Blogbox.blogs = {};

		for(var a=0; a<list.length; a++)
		{
                    Blogbox.blogs[Blogbox.getBlogName(list[a].link)] = Blogbox.getBlogUrl(list[a].link);

                    var haspp = false;
                    for( var e in Blogbox.profilepages ) {
                        if ( e == list[a].brand ) {
                            haspp = true;
                            break;
                        }
                    }

                    if ( ! haspp ) {
                        Blogbox.profilepages[ list[a].brand ] = Blogbox.getBlogUrl(list[a].link);
                    }
		}
	},

	convertFavorites: function()
	{
		var list = Blogbox.favorites.slice();
		Blogbox.favorites = [];
		for(var a=0; a<list.length; a++)
		{
			if (!Blogbox.blogs[Blogbox.getBlogName(list[a])])
			{
				Blogbox.favorites[Blogbox.getBlogName(list[a])] = Blogbox.getBlogUrl(list[a]);
			}
		}
	},
	
	setBlogFlag: function(list, blog)
	{
		for(a in list)
		{
			if ((typeof(list[a]) == 'string') && ( list[a] == blog ))
			{
				return true;
			}
		}
		return false;
	},
	
	getBlogName: function(txt) {
		if (a = txt.match(/^([^:]+\:\/\/)([^.]+)/)) {
			return a[2];
		}
		else {
			return null;
		}
	},
	
	getBlogUrl: function(txt) {
		// excluding port number
		var re = new RegExp('^(([^:]+\:\/\/)([^/]+))');
		if (a = txt.match(/^([^:]+\:\/\/)([^\/]+)/)) {
			return a[0];
		}
		else {
			return null;
		}
	},
	
	getZoneName: function()
	{
		var name=null;
		if (Blogbox.zone)
		{
			switch(Blogbox.zone)
			{
				case 'nso':		name='Nemzeti Sport Blog';
								break;
				case 'blikk':	name='Blikk Blog';
								break;
				case 'pink':	name='Pink Blog';
								break;
				case 'neon':	name='Neon Blog';
								break;
			}
		}
		return name;
	}

};

window.onload = function(){ Blogbox.init() };