var $piCont, _titleBase;
var _usrLoading = false;
var _lastUsr = null;
var _SiteID = null;
var _AlbumID = null;
var _UserID = null;
var _titleBase = null;
var _usrAJ = $.ajax();
var _rateAJ = $.ajax();
var _relTmr;
var _raTmr;
var _LUTmr;
var _rezTmr;
var _addrTmr;
var _AdTmr;
var _autoNudgeTmr;
var _ia = false;
var _Luser = null;
var _DetailURL = "/sites/titsplz/detail-helper.php";

$(window)
	.resize(function(){
		zResize();
	});

$(document)
	.keydown(function(e){
		var $oldAC = $("#addComment");
		if($oldAC.length == 0){ // Disable arrow key navigation while entering comments
			switch(e.keyCode){
				case 37: // Left arrow
					nudge(true);
				break;
				
				case 39: // right arrow
					nudge(false);
				break;
			}
		}
	})
	.ready(function(){

	$piCont = $("#picInfo");
	
	$("#picInfo").click(function(){
		//RefreshAdZone();
		//eraseCookie("TOSAgreed");
	});
	
	
	/*
	if(!readCookie("TOSAgreed") && ($(window).width() > 500)){
		Lightbox("<div id='AdultsOnly'><table><tr><td rowspan='2' class='lb'>18+</td><td class='top'>CONTENT WARNING</td></tr><tr><td class='text'>THIS SITE MAY CONTAIN ADULT MATERIAL AND IS SUBJECT TO OUR <a href='/tos.php'>TERMS OF SERVICE</a>.<br>IT IS INTENDED FOR VIEWING BY ADULTS 18 YEARS OF AGE OR OLDER.</td></tr><tr><td colspan='2' class='bottombar'>YOU MUST BE 18 YEARS OR OLDER TO ACCESS THIS SITE</td></tr></table><div class='btnbar'><div id='btnTOSAgree' class='fakelink'>I Agree, Let me in!</div><div id='btnTOSDisagree'><a href='http://Google.com'>EXIT</a></div></div></div>");
		$("#btnTOSAgree").unbind("click").click(function(){
			createCookie("TOSAgreed",true,30);
			Lightbox();
		});
	}
	*/
	zResize();
});

_AdTmr = setInterval("RefreshAdZone()",(90000));

function RefreshAdZone(){
	//var myAd = "<img src='/images/nads/Thanks160x600.gif' width='150'/>";
	debug.log("Refreshin' mah ad zones!");
		
	$RightBar = $("#cBoxAd span");
	$RightBar.html(JuicyAd300x250);
	
	$TopBar = $("#adTop");
	$TopBar.html(JuicyAd736x98);
}

function refreshPicInfo(id){
	if(id == null){return false;}
	if(_ia){_ar(id);}
	data = $.parseJSON($("#c"+id).attr("inData"));
	//debug.log("...");
	//debug.log(data);
	clearTimeout(_LUTmr);
	clearTimeout(_raTmr);
	clearTimeout(_relTmr);
	clearTimeout(_rezTmr);
	clearTimeout(_autoNudgeTmr);
	clearTimeout(_addrTmr);
	
	var hasRun = false;
	var $imgDisp = $("#imgDisplay");
	var $picInfo = $("#picInfo");
		$imgDisp.LoadMsg(true);
		$picInfo.LoadMsg(true);
	
	var delayedTasks = function(){
		// Load and resize the main thumbnail
		var $th = $("#imgDisplay .curImg");
		$th
			.attr("src","/tn/?"+data["ID"]+data["ext"])
			.load(function(){
				$th
					.unbind("click")
					.click(function(){
						$.slimbox("/?"+data["ID"]+data["ext"],data["Caption"])
					});
				zResize();
				$imgDisp.LoadMsg(false);
			});
			
		// ---------------
		// update the address bar parameters
		if (typeof history.replaceState !== "undefined") {
			history.replaceState(null, null, "/id/"+data["ID"]);
		}
		
		
		_SiteID = data["SiteID"];	
		GetComments(data["ID"]);
		//---------------
		// Track in google analytics
		_gaq.push(['_trackPageview', '/id/'+data["ID"]]);
		// Track in HiStats
		Histats.track_hits();
	}
	
	_addrTmr = setTimeout(delayedTasks,130);
	//---------------
	// Update the caption bar
	
	$cb = $("#captionBar");
	$cb.stop(true,true).html("");
	if(data["Caption"] !== null){
		$cb
			.html(data["Caption"])
			.slideDown(800,"easeOutBounce");
	}else{
		$cb.slideUp(200);
	}
		
	
	//LoadUsr(data["OwnerID"]);
	// Buttons and Misc Interaction
	$usrBox = $("#usrInfo")
	if(data["OwnerID"] != null){
		$usrBox.click(function(e){
			window.location = "/album.php?uid="+data["OwnerID"];
		});
	}else{
		$usrBox.unbind("click");
	}
	//---------
	$("#btnFlag").unbind("click").click(function(){
		window.location = "/?id="+data["ID"]+"&do=flag";
	});
	
	// ^^ -------------------------
	;
	
	_raTmr = setTimeout("$('#rate').rateInit("+data["ID"]+")",250);
	_LUTmr = setTimeout("LoadUsr("+data["OwnerID"]+")",250);
	_relTmr = setTimeout("LoadRelated("+data["ID"]+")",750);

	$("#piImgNum")
		.val(data["ID"])
		.click(function(){$(this).select();})
		.keydown(function (event) { 
			if(event.keyCode == 13){
				JumpTo($(this).val());
			}else if ((!event.shiftKey && !event.ctrlKey && !event.altKey) && ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105))){ // 0-9 or numpad 0-9, disallow shift, ctrl, and alt 
			// check textbox value now and tab over if necessary 
			}else if (event.keyCode != 8 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39 && event.keyCode != 9){ // not esc, del, left or right 
				event.preventDefault(); 
			} 
				// else the key should be handled normally 
		})
		.focus(function(){$(this).addClass("focus");})
		.blur(function(){$(this).removeClass("focus");});
		
	$("#piUploadTime").html(data["UploadTime"]);
	$("#piViews").html(data["Hits"]+" / "+data["HitsToday"]);
	$("#piDimensions").html(data["Dimensions"]);
	$("#piFileSize").text(data["FileSizeFriendly"]);
	
	$("#piDownload").attr("href","/?"+data["ID"]+data["ext"]);
	
	$(".easylinkID").text(data["ID"]);
	$("#easylink a").attr("href","/id/"+data["ID"])
	
	//---------
	var $bSUI = $("#btnSetUsrImg");
	var $bDI = $("#btnDelItem");
	var $OwnerUI = $("#usrOwner");
	
	if(_Luser["ID"] == data["OwnerID"] || _ia){
		$OwnerUI.slideDown();
		var ret = "/id/"+data["ID"];
		
		$bSUI.click(function(){
			window.location = "/?id="+data["ID"]+"&do=setpimg&ret="+ret;
		});
		
		$bDI.click(function(){
			window.location = "/?id="+data["ID"]+"&do=delete&ret="+ret;
		});
	}else{
		$OwnerUI.slideUp();
		$bSUI.unbind("click",false);
		$bDI.unbind("click",false);
	}
	
	//debug.log("--_Luser");
	//debug.log(_Luser);
	$picInfo.LoadMsg(false);
	//_rezTmr = setTimeout("zResize()",100);
}

function LoadUsr(UserID){
	var $usrBox = $("#usrInfo");
	var $profileImg = $("#usrInfo .profileImg");
	
	if(UserID == null){
		if(_lastUsr != null){
			//$loadscreen.fadeOut();
			$("#usrNumUploads").text("?");
			$profileImg.attr("src","/images/nouser.gif");
			$("#usrUserName")
				.removeClass("male female")
				.text("Anonymous");
			
			$usrBox
				.removeClass("aUser")
				.LoadMsg(false);
			//debug.log("...cleaned up - "+_lastUsr+" - curU: "+UserID);
			_lastUsr = null;
		}
		return false;
	}

	if(_usrLoading == true){
		//debug.log("#"+_cur+": Already trying to load");
		return false;
	}
	
	if(UserID == _lastUsr){
		//debug.log("#"+_cur+": Same user: "+_lastUsr+" - CurU: "+UserID);
		return false;
	}else{
		_usrAJ.abort();
	}
	_lastUsr = UserID;
	debug.log("::Grabbing User Details");
	//debug.log($usrBox);
		
	$usrBox.LoadMsg(true);
	_usrAJ = $.getJSON(_DetailURL,{
		"do": "usrinfo",
		"usr": UserID
	},function(data){
		//debug.log("!!!!!!!!!!!!--LoadUSR");
		//debug.log(data);
		
		var hasRun = false;
		var g = ((data["Gender"] == "M") ? "male" : "female");
		//debug.log(g);
		$("#usrUserName")
			.addClass(g)
			.text(data["UserName"]);
		
		if(data["ProfilePic"] != null){
			$profileImg
				.attr("src","/tn/?sm"+data["ProfilePic"]+".tmp")
		}else{
			$profileImg.attr("src","/images/nouser.gif");
		}
		$profileImg.load(function(){$(this).iResize({maxHeight:200, maxWidth: $usrBox.width()});});
		
		$("#usrNumUploads").text(data["Count"]["Total"]);
		$usrBox
			.addClass("aUser")
			.LoadMsg(false);
	});
}

function LoadRelated(id){
	debug.log("Grabbing Related: "+id);
	$relW = $("#usrRelated");
	
	//return false;
	
	$relW.LoadMsg(true);
	//Pulse("PAUSE",{"id":id});
	
	_relAJ = $.getJSON(_DetailURL,{
		"do": "related",
		"id": id
	},function(data){
		//debug.log("!!!!!!!!!!!!--LoadRelated");
		//debug.log(data);
		
		if(data.length > 0){
			var rel = "<div class='accHeader'>More from this user:</div>";
			$.each(data,function(){ // output tabs
				var siteID = this["SiteID"];
				rel += "<div class='accBtn male' s='"+siteID+"'>"+this["SiteID"]+"</div><div class='accContent'>";
				var cont = "";
				$.each(this["data"],function(){
					cont += "<div class='boxRelated' s='"+siteID+"' k='"+this["id"]+"' style='background-image:url(/tn/?sm"+this["id"]+".jpg)'>&nbsp;</div>";
				});
				rel += cont+"</div>";
			});
			
			rel += "";
			$relW.html(rel);
			
			//ACCORDION BUTTON ACTION
			//debug.log($('#usrRelated'));
			$('#usrRelated .accBtn').click(function() {
				//debug.log($(this).attr("k")+" clicked.");
				//$('#usrRelated .accContent').slideUp('normal');	
				//$(this).next().slideDown('normal');
			});
			
			//$("div[s='"+_SiteID+"']").next().slideDown();
			
			$("#usrRelated .boxRelated")
				.click(function(){
					$this = $(this);
					var tSite = $this.attr("s");
					var nID = $this.attr("k");
					
					
					if(tSite != _SiteID){
						switch(tSite){
							case "TITSPLZ":
								var Domain = "TitsPlz.com";
							break;
							
							case "PUSSYPLZ":
								var Domain = "PussyPlz.com";
							break;
							
							case "WANGPICS":
								var Domain = "WangPics.com";
							break;
							
							case "SNS":
								var Domain = "MoarPix.com";
							break;
							
							case "PYROFLY":
								var Domain = "PyroFly.com";
							break;
							
							case "YHP":
								var Domain = "YourHotPics.com";
							break;
						}
						
						window.location = "http://"+Domain+"/id/"+nID;
					}else{
						Pulse("RELATED",{"rid":nID});
						JumpTo(nID,{"SiteID":tSite});
					}
				});
				/*
				$("#usrRelated .relimg").each(function(){
					$(this).load(function(){
						$this = $(this);
						$this.iResize({"maxWidth": 160});
						
						$this(($this.parent().height() / 2) - ($this.height()/2));
						
						debug.log($this);
						debug.log($this.parent().height()/2);
					});
				});
			*/
		}else{
			$relW.html("<div class='emptyrelated'>No related<br>images found</div>");
		}
		//$relW.LoadMsg(false);
	});
}

jQuery.fn.rateInit = function(args){
	var $cont = $(this);
	$cont.LoadMsg(true);
	
	_rateAJ = $.getJSON(_DetailURL,{
		"do": "rateinit",
		"id": _cur
	},function(data){
		//debug.log(data);
		
		switch(data["status"]){
			case "init":
				var nc = "<img src='/images/rate/thumb-down.png'>";
				
				for(var i=1;i<=10;i++){
					nc += "<span class='rItems'>"+i+"</span>";
				}
				nc += "<img src='/images/rate/thumb-up.png'><div id='rateInstructions'>Rate This!</div>";
				$cont.html(nc);
				
				$rb = $cont.children(".rItems");
				
				$rb
					.hover(
						function(){ // over
							$this = $(this);
							
							var ind = $this.text();
							//debug.log(ind);
							//var rndColor = "#"+Math.floor(Math.random()*16777216).toString(16); // to make it easier to see the new stuff that loads
							$this
								.addClass("rc"+ind)
								.animate({"font-size": "2em"},200);
						},
						function(){ // out
							$this = $(this);
							var ind = $this.text();
							
							$this
								.removeClass("rc"+ind)
								.animate({"font-size": "1em"},400);
						}
					)
					.click(function(){
						$this = $(this);
						var ind = $this.text();
						_rateAJ = $.getJSON(_DetailURL,{
							"do": "dorate",
							"id": _cur,
							"val": ind
						},function(data){
							//debug.log(data);
							switch (data["status"]){
								case "rateok":
									$cont.rateInit();
									Pulse("RATED",{"rid":_cur});
									_autoNudgeTmr = setTimeout("nudge(false);",1300);
								break;
								
								default:
									$cont.html(data["message"]);
								break;
							}
						});
					});
				$cont.LoadMsg(false);
			break;
			
			case "voted":
				//$this = $(this);
				var d = data["data"];
				
				var nc = "<div class='usrRated'>You rated this a <span style='font-size:1.5em;' class='roundBorder rc"+d["Value"]+"'>"+d["Value"]+"</span> "+d["VoteDate"];
					nc += "<div class='usrRated'>Rated <span style='font-size:1.3em;'><b>"+d["Rating"]+"</b></span> by <span style='font-size:1.1em;'><b>"+d["RatingCount"]+"</b></span> voters</div>";
				$cont.html(nc);
			break;
		}
	});
	
	
}

function zResize(){
	//debug.log("Detail Resize");
	/*
	var $cb = $("#centerBox");
	var $lb = $("#leftBar");
	var $rb = $("#rightBar");
	
	var nw = $(window).width() - ($lb.width() + $rb.width() + 30);
	*/
	var $cImg = $("#imgDisplay .curImg");
	var nw = $cImg.parent().width();
	
	$cImg.iResize({
		maxWidth: nw,
		maxHeight: 450
	});
}
