/**
 * @author kees
 */
function dbBlog(blogUrl){
	var that=this;
	var db = {
		url: blogUrl,
		getCurrentBlog: function(){
			var dbBlog,dbBlogLine,i,blogLine,blog,res,
			params='cmd=getCurrentBlog',
			JSONRes=postRequestSynchroon(this.url,params);
			//alert(JSONRes);
			res=JSONRes.parseJSON();
			if (showResult(res)){
				dbBlog=res.currentBlog;
				blog=new Blog(dbBlog.id);
				blog.txt=dbBlog.txt;
				blog.createTime=UnixTimeToJavascriptTimeObj(dbBlog.createTime);
				for (i=0; i<dbBlog.blogLines.length; i++){
					dbBlogLine=dbBlog.blogLines[i];
					blogLine= new BlogLine();
					blogLine.id=dbBlogLine.id;
					blogLine.txt=dbBlogLine.txt;
					blogLine.email=dbBlogLine.email;
					blogLine.name=dbBlogLine.name;
					blogLine.createTime=UnixTimeToJavascriptTimeObj(dbBlogLine.createTime);
					blog.addBlogLine(blogLine);		
				}
				return blog;				
			}			
			return null;				
		},
		saveNewBlogLine: function(blogLine){ //blogLine is een object
			var JSONBlogLine=encodeURIComponent(JSON.stringify(blogLine));
			//alert(blogLine.txt);
			var params='cmd=saveNewBlogLine&blogLine='+JSONBlogLine;
			//alert(params);
			var JSONResult=postRequestSynchroon(this.url,params);
			//alert(JSONResult);
			var res=JSONResult.parseJSON();
			//createTime is nog een integer, moet een Date worden
			res.blogLine.createTime=UnixTimeToJavascriptTimeObj(parseInt(res.blogLine.createTime,10));
			return (res);		
		},		
		getAllBlogs: function(){
			var params='cmd=loadAllBlogs';
			var JSONResult=postRequestSynchroon(this.url,params);
			//alert(JSONResult);
			var res=JSONResult.parseJSON();
			if (res.errorMsg==''){
				//dateInt converteren naar javascript date.
				for (var i=0; i< res.blogs.length; i++){
					res.blogs[i].createTime=UnixTimeToJavascriptTimeObj(parseInt(res.blogs[i].createTime,10));
				}				
			}
			return res;		
		},
		getBlogById: function(blogId){
			var params='cmd=loadBlogById&blogId='+blogId;
			var JSONResult=postRequestSynchroon(this.url,params);
			//alert(JSONResult);
			var res=JSONResult.parseJSON();
			if (res.blog){
				this.recalcDates(res.blog);
				
				//res.blog.createTime=UnixTimeToJavascriptTimeObj(parseInt(res.blog.createTime,10));
			}
			return res;		
		},
		
		recalcDates: function(blog){
			blog.createTime=UnixTimeToJavascriptTimeObj(parseInt(blog.createTime,10));
			if (blog.blogLines){
				for (var i=0; i<blog.blogLines.length; i++){
					blog.blogLines[i].createTime=UnixTimeToJavascriptTimeObj(parseInt(blog.blogLines[i].createTime,10));
					blog.blogLines[i].blog=blog;	
				}			
			}			
		},
		
		deleteBlog: function (blogId){
			var params='cmd=deleteBlogById&pwd='+this.pwd+'&blogId='+blogId;
			var JSONResult=postRequestSynchroon(this.url,params);
			//alert(JSONResult);
			var res=JSONResult.parseJSON();
			return res;			
		},
		
		setActiveBlog: function (blogId){
			var params='cmd=setActiveBlogById&pwd='+this.pwd+'&blogId='+blogId;
			var JSONResult=postRequestSynchroon(this.url,params);
			//alert(JSONResult);
			var res=JSONResult.parseJSON();
			return res;						
		},
		
		deleteBlogLine: function(blogLineId){
			var params='cmd=deleteBlogLineById&pwd='+this.pwd+'&blogLineId='+blogLineId;
			var JSONResult=postRequestSynchroon(this.url,params);
			//alert(JSONResult);
			var res=JSONResult.parseJSON();
			return res;			
		},
		
		saveNewBlog: function(blogTxt){
			var params='cmd=saveNewBlog&pwd='+this.pwd+'&blogTxt='+encodeURIComponent(blogTxt);
			var JSONResult=postRequestSynchroon(this.url,params);
			alert(JSONResult);
			var res=JSONResult.parseJSON();
			return res;				
		}
	}
	return db;	
}
