var webPageHandler = {
	
	curPage : '',
	curSubPage : '',
	
	init : function(){
		
		// the registered menu item urls
		
		$("body").bind("url_loaded", function(e){
			if(e.module == 'page'){
				
				//Always load page
				//if(webPageHandler.parseUrl(e.url)){
					webPageHandler.parseUrl(e.url);
					contentHandler.setContentForUrl(webPageHandler.curPage, e.returnData.html);
					webPageHandler.render(webPageHandler.curPage, e.returnData.vars);
				//}
			}
		});
		
		// any other content,
		$("body").bind("url_changed", function(e){
			if(e.module == 'page'){
				
				//Always load page
				//if(webPageHandler.parseUrl(e.url)){
					webPageHandler.parseUrl(e.url);
					appUtils.loadJSON(webPageHandler.curPage, {}, function(data){
						contentHandler.setContentForElt($('#pageContainerExtra'), data.html);
						webPageHandler.render(webPageHandler.curPage, data.vars);
					});
				//}
			}
		});
	},
	
	parseUrl : function(url){
		if(url.indexOf('page/') == 0){
			
			var oldPage		= webPageHandler.curPage;
			var oldSubPage	= webPageHandler.curSubPage;
			
			//Reset subpage
			webPageHandler.curSubPage	= "";
			
			
			var i = url.indexOf('/');
			if(i+1 < url.length){
				
				webPageHandler.curPage = url;
				i = webPageHandler.curPage.indexOf('/', i+1);
				
				if(i+1 < webPageHandler.curPage.length){
					webPageHandler.curSubPage	= webPageHandler.curPage.substr(i+1);
					webPageHandler.curPage		= webPageHandler.curPage.substr(0, i+1);
				}
			}
		}
		appUtils.log('parsed ' + webPageHandler.curPage + '::' + webPageHandler.curSubPage);
		
		if(webPageHandler.curPage != oldPage) {
			return true;
		}
		return false;
	},
		
	render : function(url, vars){
		
		appUtils.log('webPageHandler render');
		appUtils.log(vars);
		
		var hasGalleries = false;
		// vars.gallery_data.layout_type_id
		
		if(isset(vars.content_items) && vars.content_items.length > 0){
			var lastGallery = 0;
			var lastItem	= 0;
			$.each(vars.content_items, function(i, item){
				if(item.gallery_id){
					hasGalleries = true;
					lastGallery = i;
				}
				lastItem = i;
			});
			$.each(vars.content_items, function(i, item){
				if(item.gallery_id){
					webPageHandler.loadGallery(item.id, item.gallery_id, item.gallery_type, i == lastGallery);
				}
				
			});
		} else {
			if(isset(vars.page) && vars.page.gallery_id){
				hasGalleries = true;
				webPageHandler.loadGallery(vars.page.id, vars.page.gallery_id, vars.page.gallery_type, true);
			}
		}

		menuHandler.toggleSubMenu(url, vars.content_items);
		if(hasGalleries == false){
			webPageHandler.finalCallResize();
		}
		
	},
	
	finalCallResize : function(){
		// setTimeout?
		appUtils.log("webPageHandler.finalCallResize");
		$('.webPageContainer').tinyscrollbar();
		resizeHandler.onResize();
		
		// scrolling
		if(webPageHandler.curSubPage){
			appUtils.log('sub!!! ' + webPageHandler.curSubPage);

			var	targetItem		= appUtils.findByAttr($("#mainMenu .subMenuItem"), "rel", webPageHandler.curSubPage);
			var targetID		= appUtils.extractTagID($(targetItem).attr("id"));
			appUtils.log(targetID);
			
			if (isdom('pageContent_'+targetID)) {
				
				menuHandler.resetSelectedState();
				$('#subMenuItem_' + targetID).addClass('selected');

				var position	= $('#pageContent_' + targetID).position();
				//ReFade content
				//appUtils.reFade($('#pageContent_' + id));
				//Try to update scrollbar
				resizeHandler.updateScrollbar(position.top);
				
			}
		}
		
	},
	
	loadGallery : function(item_id, gallery_id, gallery_type, doResizeCallback){
		appUtils.loadJSON('gallery/' + gallery_id + '/' + gallery_type + '/', {}, function(data){
			appUtils.log('===> callback gallery ->?' + doResizeCallback);
			
			data.vars.gallery_data.gallery_dom_id = 'gallery_container_' + item_id + '_'+ gallery_id;
			data.vars.gallery_data.layout_type_id = gallery_type; //vars.gallery_data.layout_type_id
			appUtils.log(data);

			/*
			 if(doResizeCallback){
				galleryHandler.render(data.vars, function(){
					webPageHandler.finalCallResize();
				});
			} else {
				galleryHandler.render(data.vars);
			}
			*/
			
			if(doResizeCallback){
				webPageHandler.finalCallResize();
			}
			
			galleryHandler.render(data.vars);
			
		});
	},
	
	alarm : function () {alert('Finished!');}
		
};
