
///////////
// GLOBALS
 
var users, items, t, pl_timer, usermargin, overlay_delay, lastout, scroll_timer;
var pages = [];
var fuck;

/////////////////////////////
// ON DOCUMENT READY CALLBACK

$(document).ready(function(){

	usermargin = 25;


	$.getJSON("../JSON_work.php?editor=1", function(json){

		users = json.users;
		items = json.items;

		// BUILD USERS AND ITEMS
		build.users()

		setUserHeight();

		if(!$.browser.msie && $.browser.version <= 6.0){
			$('.iframe_div').nf_shadow({
					blur: 4,
					top: 2,
					left:1
			})
		}
		// SHOW SAFE WIDTH ZONE
		// build.execute.safeWidth(); //%%



		// SCROLLTOP AS IN LAST LOAD
		$(window).bind('beforeunload', function(){
			$.cookie('last_scrollTop', $(window).scrollTop());
		})

		$(window).scrollTop( $.cookie('last_scrollTop') )


		// if(!$.browser.safari) {
		// 	$('#bg').css({'position': 'fixed' });
		// 	$('#bg_base').css({ 'background-position': '0 -50px' })
		// 	$('body').append(
		// 		// $('<div/>').addClass('safari').append(
		// 			$('<a/>').addClass('safari').html('Best viewed in <a target="_blank" href="http://www.apple.com/safari/">Safari</a>!')
		// 			// $('<img/>').attr('src', '/_css/safari-logo.png')
		// 		// )
		// 	)
		// 	$('.safari').slideDown(400)
		// 	// setTimeout(function(){$('.safari').slideUp(400)},30000)
		// 	// alert('Hi '+liveuser+'!\nUse Safari 3 or <a href="http://www.apple.com/safari/">safari</a>WebKit for editing mihan.flatstation.nl!\nreturn false;');
		// 	// return false;
		// }
		// else{
			$(window).scroll(function(){
				toggle_bg ();
				clearTimeout(pl_timer)
				pl_timer = setTimeout(build.execute.loadPages, 100)
			});

			$('#bg_base').css({top:$(window).scrollTop()})
			$('#top').height($(window).scrollTop())
			$('#bg').css({ height:$(document).height() })
		// }

		// CONSTRUCT PAGES OBJECT
		build.execute.prepPageLoad();
		
		// LOAD TOP MOST PAGES
		build.execute.loadPages();

		// LOADPAGES ONSCROLL
		// $(window).scroll(function(){
		// 	clearTimeout(pl_timer)
		// 	pl_timer = setTimeout(build.execute.loadPages, 100)
		// });

		//setTimeout(function(){
			// edit.execute.setScroll();
		// 	$('.iframe_div').scroll(function(){
		// 			edit.execute.storeScroll(this) //%%
		// 		})
		// },4000)

		// ENABLE DRAGGABLILITY OF LIVEUSER ITEMS//%%
		// $('.item').draggable({
		// 	handle: $('.toolbar'),
		// 	// stop: updateItemPos, //%%
		// 	// containment: 'parent'
		// });
		
		// ENABLE RESIZABILITY OF LIVEUSER ITEMS//%%
		// $('.item:not(.text)').resizable({
		// 	handles:'se',
		// 	// stop: updateItemSize, //%%
		// 	// containment: 'parent'
		// 	});

		// ENABLE RESIZABILITY OF LIVEUSER SECTION//%%
		// $('.liveuser.user').resizable({
		// 	handles:'s',
		// 	resize: setUserHeight,
		// 	stop: updateUserblockHeight
		// 	});
		

		
		// $('body').append(//%%
		// 			$('<div/>').attr('id', 'help').click(function(){
		// 					$(this).toggleClass('show');
		// 					if($(this).hasClass('show')){
		// 						$(this).append(
		// 							$('<div/>').append(
		// 								$('<h4/>').text('INLINE WEB-WINDOW:'),
		// 								$('<p/>').text('Put your work somewhere on the net.'),
		// 								$('<p/>').text('Go to your section.'),
		// 								$('<p/>').text('Use +window to add an inline page.'),
		// 								$('<p/>').text('Site will reload with a new ‘link window’ in your section.'),
		// 								$('<p/>').text('Change about:blank into your link.'),
		// 								$('<p/>').text('Press Return or release focus.'),
		// 								$('<p/>').text('Resize, Dragg and Scroll will automatically be saved.'),
		// 
		// 								$('<h4/>').text('TEXT:'),
		// 								$('<p/>').text('Go to your section.'),
		// 								$('<p/>').text('Use +text to add an inline page'),
		// 								$('<p/>').text('The Site will reload with a new Text window in your section.'),
		// 								$('<p/>').text('Add text.'),
		// 								$('<p/>').text('Release focus to save.'),
		// 								$('<p/>').text('Resize, Dragg and Scroll will automatically be saved.'),
		// 
		// 								$('<h4/>').text('SECTION RESIZE:'),
		// 								$('<p/>').text('Drag the dotted line at the bottom of your section'),
		// 								$('<p/>').text('Resize will automatically be saved.'),
		// 
		// 								$('<h4/>').text('MATTERS:'),
		// 								$('<p/>').text('Well formulated matters may be addressed here:'),
		// 								$('<p/>').html('<a href="mailto:mail@newfolder.nl">mail@newfolder.nl</a>')
		// 								
		// 							)
		// 						)
		// 					}
		// 					else $(this).text('Help!').attr('title', 'Click to Close')
		// 				}
		// 			).text('Help!')
		// 		)


	});
});



/////////////////////
// BUILD UP THE PAGE
 
var build = {

	totaltop: 18,

	users: function(){

		$.each(users, function(i,user){

			var usr = build.content.user(user)

			$('#center').append(
				usr
			)

			build.items(user, usr)
			build.totaltop += (user.h + usermargin);
		})
	},

	items: function(user, usr){

		$.each(items, function(i, item){

			if(item.usrname==user.usrname){
				$(usr).append(build.content.item(item))
			}
		})
	},

	content: {
		
		user: function(user){

			var userclass = (liveuser.toLowerCase()==user.usrname.toLowerCase()||liveuser.toLowerCase()=='admin')? ' liveuser': '';//|| liveuser=='admin'
			var curators = '';

			if(user.usrname.toLowerCase()=='curator') {
				curators = ($.browser.msie && $.browser.version <= 7.0)? $('<img/>').attr({border: 0, src:'/_css/header.gif', id: 'logo' }): $('<img/>').attr({border: 0, src:'/_css/header.png', id: 'logo' });
			}

			var obj =
			$('<div/>').addClass('user'+userclass).css({ height: user.h+usermargin }).data('user', user).append(
				$('<div/>').addClass('toolbar_user').append(
					//$('<span/>').addClass('username').text(user.usrname)
					// edit.init('add', user)//%%
				),
				curators,
				build.items(user, obj)
			)
			return obj;
		},
		
		item: function(item){
			
			var typeclass = (item.type=='text')?'text':'';
			var obj =
			$('<div/>').addClass('item '+ typeclass).data('item', item).attr('id','item_'+item.sqlid).css({
				width: item.w,
				height: item.h,
				'top': item.t,
				'left': item.l
			}).append(
				build.subcontent.toolbar[item.type](item),
				build.subcontent.overlay[item.type](item),
				build.subcontent.content[item.type](item)
			)
			return obj;
		}
	},

	subcontent: {
		
		toolbar: {
			
			iframe: function(item){

				var obj =
				$('<div/>').addClass('toolbar').append(
					$('<a/>').addClass('url').attr({ 'href': item.url, target: '_blank' }).text(item.url)
					//.change(function(){ //%%

						//if(!edit.verifyUser(item)) return false;

						// $(this).attr({ 'size': $(this).val().length });//%%
						// $(this).parents('.item').find('iframe:first').attr({ 'src': $(this).val()})
						// $.post("/editor/php/update.php", {
						// 	table: 'nf_items',
						// 	column: 'url',
						// 	id: item.sqlid,
						// 	content: $(this).val()
						// })
					//}),
					// $('<div/>').addClass('itemhandle'),
					// edit.init('edit', item)
				);
				return obj;
			},

			text: function(item){

				var obj =
				$('<div/>').addClass('toolbar').append(
					// $('<div/>').addClass('edittext').text('edit').click(function(){//%%
					// 						$(this).parent().append(
					// 							toolbar({ save: 't', html: 't', bold: 't', italic: 't', link: 't' })
					// 						);
					// 						$(this).hide();
					// 						$(this).next().hide();
					// 					}),
					// 					edit.init('edit', item)
				);
				return obj;
			}
		},

		overlay: {

			iframe: function(item){
				var obj =
					$('<div/>').addClass('iframe_overlay').hover(
						function(){
							// alert($(this).attr('class'))
/* 							clearTimeout(overlay_delay) */
/* 							$(lastout).addClass('off').removeClass('on'); */
/* 							$(this).addClass('on').removeClass('off') */
/* 							$('.iframe_overlay:not(.on)').addClass('off') */
						},
						function(){
							
							// $('.on').addClass('timo');
							// alert($(this).attr('class'))
							// $(this).removeClass('on');
/* 							lastout = this; */
							/*
overlay_delay = setTimeout(function(){
								$(lastout).removeClass('on');
								$('.off').removeClass('off')
							}, 150)
*/
						}
					).click(function(){
						window.open(item.url)
						// var item = $(this).parents('.item:first');
						// 						var iframe_overlay = $(this);
						// 						var iframe_div = item.find('.iframe_div:first');
						// 						var iframe = item.find('.iframe:first');
						// 
						// 						// URL Changes
						// 						// pollIframeSrc()
						// 
						// 						var data = item.data('item')
						// 
						// 						item.css({ 'z-index': '9999999' })
						// 						item.animate({
						// 							top: $(document).scrollTop(),
						// 							left: 0,
						// 							width: $('#center').width(),
						// 							height: $(window).height()-40
						// 						}, 100, "swing", function(){
						// 							alert(history.current)
						// 							iframe_overlay.height(0);
						// 							iframe_div.css({ 'overflow':'hidden' });
						// 							iframe.width('100%')
						// 							iframe.height('100%')
						// 							$('body').css('overflow', 'hidden')
						// 							// alert(data.st)
						// 							iframe_div.click(function(){alert('yo')})
						// 							iframe_div.scrollTop(0);
						// 							iframe_div.scrollTop((data.st*1));
						// 							iframe_div.scrollLeft(0);
						// 						})
						// 
						// 						$('#center').append(
						// 							$('<div/>').addClass('close').css('z-index', '9999').click(function(){
						// 
						// 								// alert(history.back())
						// 								$('body').css('overflow', 'auto')
						// 								item.animate({
						// 									top: data.t,
						// 									left: data.l,
						// 									width: data.w,
						// 									height: data.h
						// 								}, 150, "swing", function(){
						// 
						// 									iframe.width(1240);
						// 									iframe.height(20000);
						// 									iframe_div.css({ 'overflow':'hidden' });
						// 									iframe_overlay.height('100%');
						// 									item.css({ 'z-index': '' });
						// 									iframe_div.scrollTop(0);
						// 									iframe_div.scrollTop(data.st);
						// 									iframe_div.scrollLeft(0);
						// 									iframe_div.scrollLeft(data.sl);
						// 									$('body').css('overflow-Y', 'scroll')
						// 								})
						// 								$(this).remove();
						// 
						// 
						// 								// $('body').css('overflow', 'auto')
						// 								// $(this).remove();
						// 								// iframe.width(1240);
						// 								// iframe_div.css({ 'overflow':'hidden' });
						// 								// iframe_overlay.height('100%');
						// 								// item.css({ 'z-index': '', top: data.t, width: data.w, height: data.h, top: data.t, left: data.l });
						// 								// iframe_div.scrollTop(0);
						// 								// iframe_div.scrollTop(data.st);
						// 								// iframe_div.scrollLeft(0);
						// 								// iframe_div.scrollLeft(data.sl);
						// 								// $('body').css('overflow-Y', 'scroll')
						// 								
						// 							})
						// 						)
						// item.data('item')
						
					})
					// 							build.execute.overlayNone()
					// 						}
					// 					)
				
				return obj;
			},

			text: function(){return false;}
		},

		content: {
			
			iframe: function(item){

				var obj =
				$('<div/>').addClass('iframe_div').append(
					$('<img/>').addClass('image').attr({
						'frameborder': '0',
						'border': '0', 
						'height': item.h, // MAX EXT PAGE HEIGHT. IMPORTANT FOR PROPPER OPERATION OF STORESCROLL
						'width': item.w,
						'src': '/_images/blank.gif'
					}).css({ width: item.w, height: item.h })
				// ).hover(
				// 					function(){
				// 						clearTimeout(overlay_delay)
				// 						$('.hovered').removeClass('hovered');
				// 						$(this).prev().addClass('hovered')
				// 						$('.iframe_overlay').css('opacity', '1.0').show()
				// 					},
				// 					function(){
				// 						overlay_delay = setTimeout(function(){
				// 							$('.iframe_overlay').fadeOut(100, function(){
				// 								$('.hovered').removeClass('hovered')
				// 							})
				// 						}, 150)
				// 					}
				)
				return obj;
			},

			text: function(item){

				var obj =
					$('<div/>').addClass('rte_content_div').html(item.txt)
				// 					input('textarea', {
				// 						height: 100,
				// 						language:'lang2',
				// 						table: 'nf_items', 
				// 						column: 'txt', 
				// 						content: item.txt, 
				// 						sqlid: item.sqlid,
				// 						title: 'timo',
				// 					})
				// 					// content = $(this).val();
				// 					// 					
				// 					// 					// smart quotes
				// 					// 					content = filterChars(content);
				// 					// 					// remove unwanted tags
				// 					// 					// content = removeHTML(content);
				// 					// 					// special chars
				// 					// 					content = str_replace(unicodeChars, htmlChars, content);
				// 					// 
				// 					// 					$.post("/editor/php/update.php", {
				// 					// 						table: 'nf_items',
				// 					// 						column: 'txt',
				// 					// 						id: item.sqlid,
				// 					// 						content: content
				// 					// 					})
				// 					// 					$(this).val(content);
				// 				//	})
				return obj;
			}
		}
	},

	execute: {

		prepPageLoad: function(){

			var items = $('.item');
			var nr = 0;
			
			$.each(items, function(i, itemdiv){

				var item = $(itemdiv).data('item');

				if(item.type=='iframe'){

					var iframe = $(itemdiv).find('.image:first');
					var top = $(itemdiv).offset().top;
					var iframediv = $(itemdiv).find('.iframe_div');
					var iframeoverlay = $(itemdiv).find('.iframe_overlay');

					pages[nr] = {};
					pages[nr].item = item;
					pages[nr].iframediv = iframediv;
					pages[nr].iframeoverlay = iframeoverlay
					pages[nr].iframe = iframe;
					pages[nr].url = item.url;
					pages[nr].h = item.h;
					pages[nr].top = top;
					pages[nr].bottom = top+item.h;
					pages[nr].load = false;
					pages[nr].filename = item.filename;

					nr++;
				}
			});
		},

		loadPages: function() {
			clearTimeout(scroll_timer);
			scroll_timer = setTimeout(function(){
				var doctop = $(document).scrollTop();
				var windowh = $(window).height();
				// cnsl.log(doctop)
				$.each(pages, function(i, page){
					// IF PAGE NOT LOADED
					if(!page.loaded){
						// alert('doctop:'+doctop+' windowh:'+ windowh+' page.top:'+page.top+' page.url:'+page.url)

						// IF ITEM TOP IS ABOVE WINDOW BOTTOM
						if( (doctop+windowh) > page.top && doctop<page.bottom){
								// alert('load!')
								// page.iframe.attr({'src':''});
								page.iframe.attr({'src':'/_images/content/'+page.filename+'.jpg'});
								page.loaded = true;
								// build.execute.setScroll(page);

								// IN CASE PAGE HAS FOCUS FIELD
								// var force_st = page.item.st;
								// var force_sl = page.item.sl;
								// setTimeout(function(){build.execute.setScroll(page, force_st, force_sl)},2000)
								// setTimeout(function(){build.execute.setScroll(page, force_st, force_sl)},4000)
								// setTimeout(function(){build.execute.setScroll(page, force_st, force_sl)},8000)
								// build.execute.hoverOverflow(page);
					
								// dev.console({ type: 'console', data: 'doctop:'+doctop+' windowh:'+ windowh+' page.top:'+page.top+' page.url:'+page.url })

						}
					}
					else{
						// dev.console({ type: 'console', data: 'doctop:'+doctop+' page.bottom:'+page.bottom)
						// IF ITEM BOTTOM IS ABOVE WINDOW TOP
						// if(doctop>page.bottom+400||(doctop+windowh)<page.top-400){
						// 	page.iframe.attr({'src': 'about:blank'});
						// 	page.loaded = false;
						// }
					}
				});
			}, 200);
		},

		setScroll: function(page, force_st, force_sl){
			page.iframediv.scrollTop(force_st || page.item.st);
			page.iframediv.scrollLeft(force_sl || page.item.sl);
			if(force_sl) dev.console({ type:'console', data: force_sl+'/'+page.item.sl+' : '+page.url })
		},

		hoverOverflow: function(page){

			// if(!edit.verifyUser(page.item)) return false;

			$(page.iframediv).find('iframe').mousedown(function(event){
				event.preventDefault();
				alert('click')
			})

			// $(page.iframediv).hover(
			// 
			// 	function(){
			// 		build.page = page;
			// 		overflowtimeout = setTimeout(function(){
			// 		// MAKE SURE IFRAME ISNT OVERLAPPED BY OTHER IFRAME
			// 		$(build.page.iframediv).parents('.item').css('z-index','999');
			// 		$(build.page.iframediv).css({'overflow':'auto'});
			// 
			// 		build.page.iframediv.scrollTop(build.page.item.st);
			// 		build.page.iframediv.scrollLeft(build.page.item.sl);
			// 		build.page.item.st = build.page.iframediv.scrollTop();
			// 		build.page.item.sl = build.page.iframediv.scrollLeft();
			// 		// alert('OVER:\nitem.st:'+item.st+'\nitems[item.jsnr].st:'+items[item.jsnr].st+'\niframediv.scrollTop():'+iframediv.scrollTop()+'\nitem.sl:'+item.sl+'\nitems[item.jsnr].sl:'+items[item.jsnr].sl+'\niframediv.scrollLeft():'+iframediv.scrollLeft())
			// 		},300)
			// 	},
			// 
			// 	function(){
			// 		clearTimeout(overflowtimeout)
			// 		build.page = null;
			// 		$(this).parents('.item').css('z-index','10')
			// 		$(this).css({'overflow':'hidden','z-index':'0'});
			// 
			// 		page.item.st = page.iframediv.scrollTop();
			// 		page.item.sl = page.iframediv.scrollLeft();
			// 		
			// 		
			// 		// iframediv.scrollTop(item.st);
			// 		// iframediv.scrollLeft(item.sl);
			// 		// alert('OUT:\nitem.st:'+item.st+'\nitems[item.jsnr].st:'+items[item.jsnr].st+'\niframediv.scrollTop():'+iframediv.scrollTop()+'\nitem.sl:'+item.sl+'\nitems[item.jsnr].sl:'+items[item.jsnr].sl+'\niframediv.scrollLeft():'+iframediv.scrollLeft())
			// 	}
			// );
		},

		safeWidth: function(){

			var safewidth = ( $(window).innerWidth() - $('#center').width() ) / 2;			
			$('body').append(
				$('<div/>').attr('id', 'safe_l').css({ 'width': safewidth }),
				$('<div/>').attr('id', 'safe_r').css({ 'width': safewidth })
			);

			$(window).resize(function(){
				build.execute.setSafeWidth()
			});
		},

		setSafeWidth: function(){

			var safewidth = ( $(window).innerWidth() - $('#center').width() ) / 2;			
			$('#safe_l').css({ 'width': safewidth });
			$('#safe_r').css({ 'width': safewidth });
		}
	}
}












///////////////////////////////////////////////////
//////////////////////////////////////////////////
// UPDATE STRUCTURE CHANGES /////////////////////

var edit = {

	verifyUser: function(item, func){

		if(func) func.func();
		if(item.usrname.toLowerCase()!=liveuser.toLowerCase()&&liveuser.toLowerCase()!='admin'){
			// alert(item.usrname.toLowerCase()+'///'+liveuser.toLowerCase())
			return false;
		}
		else{
			return true;
		}
	},

	init: function(job, useroritem){

		if(!edit.verifyUser(useroritem)) return false;

		var content, tooltip, symbol;
		
		if (job=='add'){

			var obj =
			$('<div/>').addClass('additem').append(
				$('<div/>').attr({ 'title': 'Add a New Frame' }).bind('click', function(){
					edit.execute.postItem('iframe', useroritem);
				}).html('+window'),
				$('<div/>').html('&nbsp;&nbsp;&nbsp;&nbsp;'),
				$('<div/>').attr({ 'title': 'Add a New Frame' }).bind('click', function(){
					edit.execute.postItem('text', useroritem);
				}).html('+text')
			)
			
			return obj;
			// return edit.create({
			// 	content: edit.content.addItem(useroritem),
			// 	classname: 'additem',
			// 	tooltip: 'Add Item',
			// 	symbol: '+'
			// 	});
		}
		if (job=='edit'){

			var obj =
			$('<div/>').addClass('edititem').attr({ 'title': 'Delete Item' }).bind('click', function(){
				edit.execute.deleteItem(useroritem);
			}).html('&ndash;');
			return obj;
		}

	},
	
	create: function(props){
		
		var object =
			$('<div/>').addClass(props.classname).attr({ 'title': props.tooltip }).bind('click', function(){
				var contend = props.content.clone(true)// PREVENT EDITING OF DOM OBJ
				$(this).dialogue( {
					content: contend,
					width: 150
				})
			}).html(props.symbol);

		return object;
	},
	
	content:{

		addItem: function (item) {
			var object =
			$('<div/>').addClass('dialogue_container').append(

				input('button', { label: 'Create Content Item', funct: function(){
					edit.execute.postItem('iframe', item);
					}
				}),
				$('<div/>').addClass('hrzntl-buttondevision'),
				input('button', { label: 'Create Text Item', funct: function(){
					edit.execute.postItem('text', item);
					}
				}),
				$('<div/>').addClass('hrzntl-buttondevision'),
				input('button', { label: 'Create Title Item', funct: function(){
					edit.execute.postItem('title', item);
					}
				})
			);
			return object;
		}
	},

	execute: {

		postItem: function(type, item){
			// alert(item.usrname)
			$.post("/editor/php/new_item.php", {
				type: type,
				usrname: item.usrname
			},
			function(data){
				dev.console({ type: 'all', data: item.usrname+' added a new '+type+' item' })
				window.location.reload();
			});
		},
		
		deleteItem: function (item) {

			if(item.usrname.toLowerCase()!=liveuser.toLowerCase()&&liveuser.toLowerCase()!='admin') {
				alert('Basterd!')
				return false;
			}
			var c = confirm('Sure you want to delete this '+item.type+' item?');

			if(c){

				$.post('/editor/php/remove_item.php', {
					sqlid: item.sqlid
				}, function(data){
					dev.console({ type: 'all', data: item.usrname+' deleted a '+item.type+' item: '+item.sqlid+' (url:'+item.url+')' });
					window.location.reload();
				});
			}
		},
		
		storeScroll: function(obj){

			var item = $(obj).parents('.item:first').data('item');

			if(!edit.verifyUser(item)) return false;

			clearTimeout(t);

			t = setTimeout(function(){
				
				var itemdiv = $('#item_'+item.sqlid);
				var iframediv = itemdiv.find('.iframe_div:first');
				var itemscrolltop = iframediv.scrollTop();
				var itemscrollleft = iframediv.scrollLeft();

				$.post("/editor/php/update.php", {
					table: 'nf_items',
					column: 'st',
					id: item.sqlid,
					content: itemscrolltop
				});
			
				$.post("/editor/php/update.php", {
					table: 'nf_items',
					column: 'sl',
					id: item.sqlid,
					content: itemscrollleft
				},
				function(data){

				});
				item.st = itemscrolltop;
				item.lt = itemscrollleft;
				items[item.jsnr].st = itemscrolltop;
				items[item.jsnr].lt = itemscrollleft;

				dev.console({ type: 'all', data: item.usrname+' stored scrolltop: '+itemscrolltop+' and scrollleft: '+itemscrollleft+' for '+item.url });

			},100)
		}
	}
}

















function getUserBlock (e, ui) {
/* 	alert( ui.helper.text() ) */
	// return ui.helper.parents('.userblock:first')
}
var re_align;
var block;
function toggle_bg () {

	clearTimeout(re_align)
	re_align = setTimeout( function(){

		var st = $(window).scrollTop();
		var darken = ((st-(st/1.1)>200))? 200: (st-(st/1.1));
		st = st - darken*0.1;
		
		// var st = 400-(400/4) // 300  || -100
		// var st = 200-(200/4) // 150  || -50
		// var st = 100-(100/4) // 75   || -25
		// $('#top').height(st)
		$("#bg_top").stop().css({ top: st})
		// $('#top').css({ height:st })
		$('#bg_top').animate({ opacity: 1.0 }, 600, 'linear', function(){
		// $('#bg_top').fadeIn(2200, function(){
			// var st = $(window).scrollTop();
			// var darken = ((st-(st/1.1)>200))? 200: (st-(st/1.1));
			// alert(st+' - '+darken+' = '+(st - darken))
			
			// st = st - darken;
			// cnsl.log('inside')
			$('#bg_base').css({ top:st })
			$('#bg_top').css({ opacity: 0.0 })
			$('#top').height(st)
			
		});
		// clearTimeout(re_align);
		// console.log('faded')
	}, 200);
}

function setUserHeight() {

	build.totaltop = 18;
	blocks = $('.user');
	$.each(blocks, function(i, block){
		// alert(i)
		// alert($(block).attr('class'))
		// alert($(block).height())
		// console.log($(block).height())
		$(block).css({top:build.totaltop});
		build.totaltop += ( $(block).height() + usermargin );
	})
}

function updateUserblockHeight(e, ui){
	var data = ui.helper.data('user');
	$.post("/editor/php/update.php", {
		table: 'nf_users',
		column: 'h',
		id: data.sqlid,
		content: ui.size.height
	},
	function(data){
		// alert(data)
		// window.location.reload();
	});
	dev.console({ type: 'all', data: 'User '+ data.usrname+' stored userheight: '+ui.size.height+' for item:'+ data.sqlid })
	
}

function updateItemPos(e, ui){
	var data = ui.helper.data('item');
	$.post("/editor/php/update.php", {
		table: 'nf_items',
		column: 't',
		id: data.sqlid,
		content: ui.position.top
	})
	$.post("/editor/php/update.php", {
		table: 'nf_items',
		column: 'l',
		id: data.sqlid,
		content: ui.position.left
	})
	dev.console({ type: 'all', data: 'User '+ data.usrname+' stored position: t='+ui.position.top+' l='+ui.position.left+' for item:'+ data.sqlid+' with the url:'+data.url })
}

function updateItemSize(e, ui){
	var data = ui.helper.data('item');
	$.post("/editor/php/update.php", {
		table: 'nf_items',
		column: 'w',
		id: data.sqlid,
		content: ui.size.width
	})
	$.post("/editor/php/update.php", {
		table: 'nf_items',
		column: 'h',
		id: data.sqlid,
		content: ui.size.height
	})
}





// iframe: function(item){
// 
// 	var obj =
// 	$('<div/>').addClass('iframe_div').append(
// 		$('<iframe/>').addClass('iframe').attr({
// 			'frameborder': '0', 
// 			'height': 20000, // MAX EXT PAGE HEIGHT. IMPORTANT FOR PROPPER OPERATION OF STORESCROLL
// 			'width': 1240, 
// 			'id': 'if'+item.sqlid, 
// 			'name': 'if'+item.sqlid
// 		})
// 	).mouseover(function(){
// 		$(this).before(
// 			$('<div/>').addClass('iframe_overlay').append(
// 				$('<span/>').text('Click to view'),
// 				$('<img/>').attr('src','/_css/cross.png'),
// 				$('<div/>').mouseout(function(){
// 					$(this).parents('.iframe_overlay').fadeOut(100, function(){
// 						$(this).parents('.iframe_overlay').remove();
// 					})
// 				}).click(function(){
// 					alert('zoom!')
// 				})
// 			)
// 		);
// 		$(this).prev().fadeIn(200)
// 	})
// 	return obj;
// },
