/////////////////////////////////////////////////////////////////////////////////////////////////
function loadHistory() {
	$(".nohover").each(function() {
		$(this).attr("href",$("#url").val()+"#"+$(this).attr("id").replace("p","")+"/"+$(this).attr("title").replace(/ /g, "-"));
		$(this).removeAttr("title");
	});
	
	$.historyInit(openThisPr);
	$("a[rel='history']").click(function(){
		var hash = this.href;
		hash = hash.replace(/^.*#/, '');
		$.historyLoad(hash);
		return false;
	});
}

/////////////////////////////////////////////////////////////////////////////////////////////////
function openThisPr(pid,viewtype,url,id,template) {
	if(pid) {
		
		var href=pid.split("/");
		var pid = href[0];
		if(document.getElementById('p'+pid)) var url = document.getElementById('p'+pid).name;
		if(url == '' || !url) var url = $("#url").val();
		
		var viewtype = document.getElementById('viewtype').value;
		var template = document.getElementById('template').value;
		var design = document.getElementById('design').value;
		var designpath = document.getElementById('designpath').value;
		var templatepath = document.getElementById('templatepath').value;
		var spinner = document.getElementById('load_'+pid);
		var nav_spinner = document.getElementById('nav_loadspin');
		if(spinner) spinner.style.display = "block";
		if(nav_spinner && viewtype != "following") nav_spinner.style.display = "block";
		
		
		
		var cur = document.getElementById('current_open');	
		var prev = document.getElementById('prev_open');
		var prev_type = document.getElementById('prev_type');
		var this_spot = document.getElementById('this_spot');
		var send_open = true;

		$("#prev_open").val($("#current_open").val());
		$("#current_open").val(pid);
		var this_spot = pid_list.indexOf(pid);
		if(!this_spot) this_spot = -1;
		$("#this_spot").val(this_spot);
		
		if(document.getElementById('menu_'+prev.value)) document.getElementById('menu_'+prev.value).className = prev_type.value;
		if(document.getElementById('menu_'+pid)) {
			prev_type.value = document.getElementById('menu_'+pid).className;
			document.getElementById('menu_'+pid).className = "nav_active";	
		}
		
		/// SC
		if($('#items_container').length > 0) {
			if(pid == $("#prev_open").val()) send_open = false;
			else {
				$("#moduleholder_c").val($("#moduleholder_o").val());
				$("#moduleholder_o").val($("#item_"+pid).html());
				$("#modulenumber").val($("#prev_open").val());
			}
			
			
		}
		if(send_open) $.post(templatepath+"/entry-detail.php", { pid: pid, viewtype: viewtype, url: url },openThisPrInline);
		
		//if(viewtype == 'single') document.getElementById('item_'+pid).style.display = "none";
		intransition = true;
		
		if(document.getElementById('item_'+pid)) var thispage = document.getElementById('item_'+pid).getAttribute("page");
		var limit = document.getElementById('limit').value;
		var cur = document.getElementById('current_page').value;
		if(thispage && thispage != 0) {
			if(thispage != cur) {
				changePage(thispage,limit);
				if(document.getElementById('item_'+pid)) {
					var thisspot = document.getElementById('item_'+pid).getAttribute("spot");
					document.getElementById('this_spot').value = thisspot;
				}
			}
		}
	
	} else {
		$("#load").empty();
		if($("#start_page").length > 0) openThisPr($("#start_page").val());
		else closeThisPr($('#current_open').val(),false,'list');
		
	}
	return false;
}

/////////////////////////////////////////////////////////////////////////////////////////////////
function openThisPrInline(data) {
	var starting = data.indexOf("|#=#|");
	var starting2 = data.indexOf("|##=##|");
	var starting3 = data.indexOf("|###=###|");
	var pid = data.substring(0, starting);
	var slideheight = data.substring((starting+5), starting2);
	var slidecount = data.substring((starting2+7), starting3);
	var content = data.substring((starting3+9), data.length);
	var isIE = testIE();
	
	if($('#maincontainer').length > 0) {
		var container=document.getElementById('maincontainer');
		var prev = document.getElementById('prev_open');
		var prev_type = document.getElementById('prev_type');
		var spinner = document.getElementById('load_'+pid);
		var nav_spinner = document.getElementById('nav_loadspin');
		var o_thumb_nav = document.getElementById('o_thumb_nav').value;
		var current_page = document.getElementById('current_page').value;
		if(spinner) spinner.style.display = "none";
		if(nav_spinner) nav_spinner.style.display = "none";
		
		$(".project_thumb").removeClass("active");
		$("#item_"+pid).addClass("active");
		
	} else if(document.getElementById('items_container')) {
		var prev = $("prev_open").val(); 
		if(prev == pid && document.getElementById('item_'+pid).className == "project_feed_full") container = false;
		//else if(prev != "none" && prev != pid) closeFeedPr(prev,true);
		else {
			var container=document.getElementById('item_'+pid);
			container.onmouseover = "";
			container.onmouseout = "";
			container.className = "project_feed_full";
			if(isIE) $('#item_'+pid).addClass("ie");
			try { DD_roundies.addRule(".project_feed_full", 5, true); } catch(err) { }
			//
			if($("#moduleholder_c").val() != "none") {
				var oldpid = $("#modulenumber").val();
				var closecontent = $("#moduleholder_c").val();
				printClosed(oldpid,closecontent);
				oldpid = "none";
				closecontent = "none";
			}
		}
		if(!content || content == "") container = false;
		
		
	} else {
		var container=document.getElementById('pRow'+pid);
		container.className = "content_container_open";
	}
	
	if(container) {
		var isIE = testIE();
		container.style.display = "block";
		//container.innerHTML=content;
		if($('#maincontainer').length > 0 && isIE) container.innerHTML=content; 
		else if($('#maincontainer').length > 0) $("#maincontainer").html(content);
		else if($('#pRow'+pid).length > 0) $("#pRow"+pid).html(content);
		else if($('#item_'+pid).length > 0) $("#item_"+pid).html(content);
	}
	
	if(slideheight != 0) {
		startSlideshow(pid);
	}
	
	intransition = false;	
	
	//doscroll(0,getScrollHeight(),0);
	if(!document.getElementById('home_gallery') && !document.getElementById('items_container')) {
		if(getScrollHeight() > 50) window.scrollTo(0, 50);	
		doscroll(0,getScrollHeight(),0);
	}
	
	if(o_thumb_nav == "yes") { 
		$("#page_"+current_page).css("display","none");
	}
	
	var isHome = document.getElementById('home_gallery');
	//$.getScript("http://www.apture.com/js/apture.js?siteToken=ng0WjnT");
	if($('#items_container').length > 0) {
		shiftPosition(true);
		var spacerHeight = $('#item_'+pid).height();
		$('#item_'+pid+" #body_container").before('<div style="height:'+spacerHeight+'px" id="cardspacer">&nbsp;</div>');
		$('#item_'+pid+" #body_container").css("display","none");
		if($(".header_img").css("position") == "fixed") var toppad = $(".header_img").height();
		else var toppad = 60;
		if($('#startpage').val() == 'none' || $('#startpage').val() != pid) {
			$.scrollTo( { top:($('#item_'+pid).offset().top-toppad), left:0}, 450, { onAfter:function(){ 
					$('#cardspacer').remove();
					$('#item_'+pid+" #body_container").fadeIn(); 
				} 
			}); 
		} else {
			$('#cardspacer').remove();
			$('#item_'+pid+" #body_container").fadeIn(); 
		}
		$('#startpage').val('none');
		return false; 
		
		
	} else if(!$("#home_gallery")) {
		if(getScrollHeight() > 50) window.scrollTo(0, 50);	
		doscroll(0,getScrollHeight(),0);
	
	} else if(isHome) setNewHistory(pid);
	
	if (typeof projectLoadComplete == "function") projectLoadComplete();
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function startSlideshow(pid) {
	var elements = document.getElementsByClassName("slideshow_container_"+pid);
	var template = $("#template").val();
	var design = $("#design").val();
	if(design) var isSC = design.indexOf("SC") >= 0 ? true : false;
	else var isSC = false;
	if(elements) {
		var el_prev = document.getElementsByClassName("slide_prev_"+pid);
		var el_next = document.getElementsByClassName("slide_next_"+pid);
		var el_count = document.getElementsByClassName("slideshow_count_"+pid);
		var el_nav = document.getElementsByClassName("slideshow_nav_"+pid);
		var el_wrapper = document.getElementsByClassName("slideshow_wrapper_"+pid);
		var el_slideclick = document.getElementsByClassName("slideclick_"+pid);
		
		for(var i = 0;i < elements.length;i++) {
			elements[i].setAttribute('id','slideshow_container_'+pid+'_'+i);
			elements[i].setAttribute('class','slideshow_container');
			if(el_prev[0]) el_prev[i].setAttribute('id','prev_'+pid+'_'+i);
			if(el_next[0]) el_next[i].setAttribute('id','next_'+pid+'_'+i);
			if(el_count[0]) el_count[i].setAttribute('id','slideshow_count_'+pid+'_'+i);
			if(el_count[0]) el_count[i].setAttribute('class','slideshow_count');
			if(el_nav[0]) el_nav[i].setAttribute('id','slideshow_nav_'+pid+'_'+i);
			if(el_nav[0]) el_nav[i].setAttribute('class','slideshow_nav');
			if(el_wrapper[0]) el_wrapper[i].setAttribute('id','slideshow_wrapper_'+pid+'_'+i);
			if(el_wrapper[0]) el_wrapper[i].setAttribute('class','slideshow_wrapper');
			if(el_slideclick[0]) el_slideclick[i].setAttribute('id','slideclick_'+pid+'_'+i);
			if(el_slideclick[0]) el_slideclick[i].setAttribute('class','slideclick');
			var divs = elements[i].getElementsByTagName("img");
			var slideheight = divs[0].height;
			var slidewidth = 0;
			for(var q=0; q<divs.length;q++) {
				if(divs[q].width > slidewidth) slidewidth = divs[q].width;
				else slidewidth = slidewidth;
				if(isSC) {
					if(divs[q].height > slideheight) slideheight = divs[q].height;
					else slideheight = slideheight;
				}
			}
			$('#slideshow_wrapper_'+pid+'_'+i).css("width",slidewidth+"px");
			$('#slideshow_container_'+pid+'_'+i+' br').each(function() { $(this).remove(); });
			
			if($("slideconfig").attr("has_thumbs") == "yes") {
				var thumb_position = $("slideconfig").attr("thumb_position");
				var nav_position = $("slideconfig").attr("nav_position");
				var has_nav = $("slideconfig").attr("has_textnav");
				
				if(thumb_position == "top") {
					$('#slideshow_wrapper_'+pid+'_'+i).before('<ul class="slideshow_thumbs" id="slideshow_thumbs_'+pid+'_'+i+'">');
				} else if(thumb_position == "bottom") {
					if(nav_position == "bottom" && has_nav == "yes") {
						$('#slideshow_nav_'+pid+'_'+i).before('<ul class="slideshow_thumbs" id="slideshow_thumbs_'+pid+'_'+i+'">');
						$('#slideshow_nav_'+pid+'_'+i).css("clear","both");
					} else {
						$('#slideshow_wrapper_'+pid+'_'+i).after('<ul class="slideshow_thumbs" id="slideshow_thumbs_'+pid+'_'+i+'">');
					}
				}
				
				$('#slideshow_thumbs_'+pid+'_'+i).css("width",slidewidth+"px");
				
				
				
			} else var has_thumbs = "";
			
			if($("slideconfig").attr("is_autoplay") == "yes") var timeout = parseFloat($("slideconfig").attr("auto_delay"))*1000;
			else var timeout = 0;
			var transition = $("slideconfig").attr("transition");
			if(transition == "none") {
				var transition_speed = 1;
				var transition = "fade";
			} else {
				var transition_speed = '2000';
			}
			
			$(document).ready(function() { 
				$('#slideshow_container_'+pid+'_'+i).cycle({
					fx: transition, 
					pager:  '#slideshow_thumbs_'+pid+'_'+i,
					height: slideheight,
					width: slidewidth,
					next:'#next_'+pid+'_'+i,
					prev:'#prev_'+pid+'_'+i,
					contain:'#slideclick_'+pid+'_'+i,
					timeout:  timeout,
					speed: transition_speed,
					this_i: i,
					
					// callback fn that adjusts the slideshow's height 
					before:	function(){ 
						var $sh = $(this).height();
						var delay = $("slideconfig").attr("transition") == "none" ? 10 : 400;
						if($sh > 0 && !isSC) $(this).parent().animate({ height: $sh }, delay);
					},
					
					// callback fn that creates a thumbnail to use as pager anchor 
					pagerAnchorBuilder: function(idx, slide) { 
					//return '<li class="slideshow_thumb"><a href="#"><img src="' + getThumbFile(slide.src) + '" /></a></li>'; }
					return '<li class="slideshow_thumb"><a href="#"><img src="' + slide.src + '" /></a></li>'; }
					
				});
			});
			
			if($("slideconfig").attr("count_style") == "parenth" && el_count[0]) var count_nav = '(1 of '+divs.length+')';
			else if($("slideconfig").attr("count_style") == "no_parenth" && el_count[0]) var count_nav = '1 of '+divs.length;
			$('#slideshow_count_'+pid+'_'+i).html(count_nav);
			
			

		}
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function getThumbFile(file_name) {
	var ext = file_name.substr(file_name.lastIndexOf('.'));
	var name = file_name.substring(0, file_name.lastIndexOf('.'));
	return name+"_t"+ext
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function showStartProject(pid) {
	var container=document.getElementById('maincontainer');
	if(container) container.style.display = "block";

	var cur = document.getElementById('current_open');	
	var prev = document.getElementById('prev_open');
	var this_spot = document.getElementById('this_spot');
	var prev_type = document.getElementById('prev_type');
	
	if(this_spot) {
		this_spot.value = pid_list.indexOf(pid);
		if(prev) prev.value = cur.value;
		cur.value = pid;
		
		if(document.getElementById('menu_'+prev.value)) document.getElementById('menu_'+prev.value).className = prev_type.value;
		if(document.getElementById('menu_'+pid)) {
			prev_type.value = document.getElementById('menu_'+pid).className;
			document.getElementById('menu_'+pid).className = "nav_active";	
		}
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function closeThisPr(pid,reopen,viewtype) {
	var prev_type = document.getElementById('prev_type');
	if(document.getElementById('menu_'+pid)) document.getElementById('menu_'+pid).className = prev_type.value;
	var container=document.getElementById('maincontainer');
	if(container) {
		container.innerHTML = "";
		container.style.display = "none";
	}
	
	//doscroll(0,getScrollHeight(),0);
	
	if(viewtype == 'single') document.getElementById('item_'+pid).style.display = "block";
	
	//$.historyLoad("");
	if (jQuery.browser.safari) window.scrollTo(0,0);
	else location.hash = "#";
	
	if(document.getElementById('pr_contain_item_'+pid)) document.getElementById('pr_contain_item_'+pid).className = "";
	
	var o_thumb_nav = document.getElementById('o_thumb_nav').value;
	var current_page = document.getElementById('current_page').value;
	if(o_thumb_nav == "yes") { 
		$("#page_"+current_page).css("display","block");
	}
	
	$(".project_thumb").removeClass("active");
	
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function changePage(newpage,limit) {
	var cur = document.getElementById('current_page').value;
	var total_pages = document.getElementById('total_pages').value;
	var current_page = document.getElementById('page_'+cur);
	var current_nav = document.getElementById('nav_page_'+cur);
	var new_page = document.getElementById('page_'+newpage);
	var new_nav = document.getElementById('nav_page_'+newpage);
	var pagination = document.getElementById('pagination');
	
	if(document.getElementById('pr_contain_item_'+cur)) document.getElementById('pr_contain_item_'+cur).className = "";
	
	// dump detail
	var container=document.getElementById('maincontainer');
	if(container) {
		container.style.display = "none";
		container.innerHTML = "";
	}
	// dump SC page
	var itemcontainer=document.getElementById('items');
	if(itemcontainer) {
		pid = $('#current_open').val();
		if(pid != "none" && $("#item_"+pid).attr("spot") == 0 && $("#item_"+pid).attr("page") == 0) { // is page
			$("#item_"+pid).html("");
			$("#item_"+pid).attr("className","pagecontainer");
		}
		
	}
	// reset nav status
	var current_open = document.getElementById('current_open').value;
	if(current_open) {
		var prev_type = document.getElementById('prev_type');
		if(document.getElementById('menu_'+current_open)) document.getElementById('menu_'+current_open).className = prev_type.value;
	}
	
	// dump the old nav
	if(current_nav) current_nav.style.display = "none";
	
	// show the new nav
	if(new_nav) new_nav.style.display = "block";
	
	// dump prev page thumbs
	if(current_page) current_page.style.display = "none";
	
	// change pagination
	var pagout = "";
	if(newpage > 1) pagout += "<a href=\"javascript:void(0)\" onclick=\"changePage("+(parseInt(newpage)-1)+","+limit+")\" class=\"prev_page\">Prev page</a>";
	if(newpage > 1 && newpage < total_pages) pagout += "<span>&nbsp;/&nbsp;</span>";
	if(newpage < total_pages) pagout += "<a href=\"javascript:void(0)\" onclick=\"changePage("+(parseInt(newpage)+1)+","+limit+")\" class=\"next_page\">Next page</a>";
	pagout += "&nbsp;<span>("+newpage+" of "+total_pages+")</span>";
	
	if($(".pagination").length > 0) $(".pagination").each(function() { $(this).html(pagout); });
	
	
	// show next page thumbs
	if(new_page) {
		new_page.style.display = "block";
		var itemsList = new_page.childNodes.length;
		for(i=0;i<itemsList;i++) {
			var thisItem = new_page.childNodes[i];
			thisPid = thisItem.getAttribute("name");
			var thumbContainer = document.getElementById("cardthumb_"+thisPid);
			if(thumbContainer && thumbContainer.getAttribute("name") != "") {
				//thumbContainer.innerHTML = "<img src=\""+thumbContainer.getAttribute("name")+"\" border=\"0\" />";
				$(thumbContainer).html("<img src=\""+thumbContainer.getAttribute("name")+"\" border=\"0\" />");
				thumbContainer.setAttribute("name","");
			}
		}
	}
	
	// set new page values
	document.getElementById('current_page').value = newpage;
	curspot = cur < newpage ? (cur*limit)-1 : ((newpage-1)*limit)-1;
	document.getElementById('this_spot').value = curspot;
	
	if(document.getElementById('items')) shiftPosition(false);
	
	window.scrollTo(0,0);
	
	//changeHorizNav(newpage);
	
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function changeHorizNav(newpage) {
	// move pages, pagination and following if nav is horiz
	if($(".nav_container").hasClass("horizontal")) {
		if($("#pagination").length > 0) $("#nav_page_"+newpage).append($("#pagination"));
		if($(".nav_follow").length > 0) $("#nav_page_"+newpage).append($(".nav_follow"));
		if(($(".page_link").length > 0 || $(".link_link").length > 0) && $("#sticky_page").val() != "none") {
			if($("#sticky_page").val() == "top") $("#nav_page_"+newpage).prepend($(".page_link")).prepend($(".link_link"));
			else {
				$("#nav_page_"+newpage).append($(".page_link")).append($(".link_link"));
				if($("#pagination").length > 0) $("#nav_page_"+newpage).append($("#pagination"));
				if($(".nav_follow").length > 0) $("#nav_page_"+newpage).append($(".nav_follow"));
			}
		}
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function doFollow(my_url,their_url,type,name,where) {
	if(type == "add") var agree = confirm("Follow "+name+"?");
	else if(type == "remove") var agree = confirm("Unfollow "+stripslashes(name)+"?");
	if(agree) {
		if(where != 'follow') var bolt = document.getElementById('following_header_bolt_'+where);
		else var bolt = document.getElementById('following_header_bolt');
		var module = $("#module_"+their_url);
		if(bolt) bolt.innerHTML = '<img src="../_gfx/loadingAnim.gif" width="15" height="15">';
		if(module) module.css("display","none");
		$.post("includes/following-process.php", { my_url:my_url, their_url:their_url, type:type, name:name, where:where }, followResult);
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function followResult(data) {
	var starting = data.indexOf("|#=#|");
	var starting2 = data.indexOf("|##=##|");
	var pid = data.substring(0, starting);
	var url = data.substring((starting+5), starting2);
	var content = data.substring((starting2+7), data.length);
	var follow_link = content;
	if(pid != 'follow') {
		var bolt = document.getElementById('following_header_bolt_'+pid);
		var booklink = document.getElementById('following_header_follow_'+pid);
	} else {
		var bolt = document.getElementById('following_header_bolt');
		var booklink = document.getElementById('following_header_follow');
	}
	if(bolt){
		if(document.getElementById('home_gallery')) bolt.innerHTML = '<img src="../_gfx/sc-bolt.png" width="15" height="15">';
		else bolt.innerHTML = '<img src="../_gfx/sc-bolt-white.png" width="15" height="15">';
	} if(booklink) booklink.innerHTML = follow_link;
	if($("#home_gallery").length > 0) {
		$("#home_follow_"+url).html(content);
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function changeFollowPage(newpage) {
	if(newpage) {
		if(!isNaN(parseInt(newpage))) var ishome = true;
		else var ishome = false;
		if(!ishome) newpage=parseInt(newpage.replace("page",""));
		var cur = document.getElementById('current_page').value;
		var limit = parseInt(document.getElementById('total_pages').value);
		var current_page = document.getElementById('page_'+cur);
		var new_page = document.getElementById('page_'+newpage);
		var pagination = document.getElementById('pagination');
		
		// change pagination
		var pagout = "";
		if(!ishome) {
			var prevlink = "#page"+(parseInt(newpage)-1);
			var nextlink = "#page"+(parseInt(newpage)+1);
		} else {
			var prevlink = "javascript:void(0)\" onclick=\"changeFollowPage('"+(parseInt(newpage)-1)+"')";
			var nextlink = "javascript:void(0)\" onclick=\"changeFollowPage('"+(parseInt(newpage)+1)+"')";
		}
		if(newpage > 1) pagout += "<a href=\""+prevlink+"\" rel=\"history\">Prev page</a>";
		if(newpage > 1 && newpage < limit) pagout += "<span>&nbsp;/&nbsp;</span>";
		if(newpage < limit) pagout += "<a href=\""+nextlink+"\" rel=\"history\">Next page</a>";
		pagout += "&nbsp;<span>("+newpage+" of "+limit+")</span>";
		
		if($(".follow_pagination").length > 0) $(".follow_pagination").each(function() { $(this).html(pagout); });
		$("#page_"+newpage+" img").each(function(){ $(this).attr("src",$(this).attr("name")); });
		
		// show next page thumbs
		if(new_page) {
			new_page.style.display = "block";
			current_page.style.display = "none";
		}
		
		// set new page values
		document.getElementById('current_page').value = newpage;
		
		$("a[rel='history']").click(function(){
			var hash = this.href;
			hash = hash.replace(/^.*#/, '');
			$.historyLoad(hash);
			return false;
		});
		
		window.scrollTo(0,0);
	}
	
}
/////////////////////////////////////////////////////////////////////////////////////////////////
	function pageload(hash) {
		if(hash) {
			var template = document.getElementById('template').value;
			$.post("designs/"+template+"/entry-detail.php", { pid: pid, viewtype: 'list', url: url },openThisPrInline);
		} else {
			$("#load").empty();
		}
	}
/////////////////////////////////////////////////////////////////////////////////////////////////