var tags = new Array();
var page = 0;
var lastpage = 0;
var thespot = 0;
var results;
var talent = new Array();
talent[0] = new Object();
talent[0].name = '';
talent[0].talent_id = '';
talent[0].physical = '';
talent[0].aboutme = '';
talent[0].photos = new Array();

function storeCookie() {
	// get selected tags
	var cD = new Array();
	cD[0] = tags.join(',');
	if (results) {
		var r = new Array();
		for( var x=0;x<results.results; x++) {
			r[x] = results.result[x].talent_id;
			if (results.result[x].admin && results.result[x].admin==1) r[x] = r[x]+"!";
		}
		cD[1] = r.join(','); 
	} else cD[1]='';
	cD[2] = page;
	createCookie('searchdata',cD.join(':'));
	
}

$(document).ready(function() {
	var cD;
	if (cD = readCookie('searchdata')) {
	  cD = cD.split(':');
	  page = cD[2];
		if (cD[1].length) {
			var r = cD[1].split(',');
			results = new Object();;
			results.results = r.length;
			results.result = new Array();
			for (var x=0;x<r.length; x++) {
				results.result[x] = new Object();
				if (r[x].indexOf("!") != -1) {
					results.result[x].admin = 1;
					r[x] = r[x].substring(0,r[x].length-1);
				}
				results.result[x].talent_id = r[x];
			}
		}
		tags = cD[0].split(',');
		for (var x=0; x<tags.length; x++) {
			if (tags[x]) $("#tag"+x).addClass("selected");
		}
	}
  $("A.tagselect").click( tagClick );
	$("DIV.searchresult").click(srClick).hide();
	$(window).scroll(overlaySize).resize(overlaySize);
	overlaySize();
  $("#overview").click(function(){ $(this).hide(); });
	$("#prevresults").click(function(){ if (page>0) {page--; updateResults(); }}).hover(function() { $(this).css({"cursor": (page>0)?"pointer":"default"}); });
	$("#nextresults").click(function(){ if (page<maxpage) {page++; updateResults(); }}).hover(function() { $(this).css({"cursor": (page<maxpage)?"pointer":"default"}); });
	$("#personbox > .container > *").click(function(){ window.location='/talent/'+curtalentid; return false; }).css({"cursor":"pointer"});
	$("#personbox IMG").click(function(){ window.location='/talent/'+curtalentid; return false; }).css({"cursor":"pointer"});
  updateResults();
});

function getResults(data) {
  results = eval("("+data+")");
	page=0;
	updateResults();
}

function getTalent(data) {
	if (data = eval("("+data+")")) {
	  if (!data.talent_id) { return };
		talent[data.talent_id] = data;
		updateOverlay(data.talent_id);
	}
}

var curtalentid = 0;

function updateOverlay(id) {
  var ol = $("#overview");
	var t = talent[id];
  if (!t) return;	
	curtalentid=id;
	$("#personbox .name", ol).html(t.name);
	var o = $("#personbox A", ol);
	if (id==0) o.empty();
	else o.html('talentofrockford.com/talent/'+t.talent_id);
	o.get(0).href='/talent/'+t.talent_id;
	$("#personbox H2", ol).html(t.physical);
	$("#personbox .about", ol).html(t.aboutme);
	var imgs = $("#personbox IMG", ol);
	imgs.each(function() { this.src = "images/spacer.gif"; }).hide();
	if (t.photos) for (var x = 0 ; x<t.photos.length; x++) {
	  var img = imgs.get(x>0? 4-x:x);
		img.src = s="photo.php?id="+(t.photos[x])+(x>0?"&thumb=1":"");
		$(img).show();
	} else {
	  imgs.get(0).src = "images/nopeBig.jpg";
		$(imgs.get(0)).show();
	}
	ol.show();
}

function updateResults(data) {
	storeCookie();
	sr = $("#searchresults");
	if (results) {
		maxpage=Math.ceil((results.results)/12)-1;
	  $("DIV.searchresult", sr).hide();
	  for (var x=0; x<results.results - (page*12) && x<12; x++) {
			var wr = results.result[x+(page*12)];
		  var obj = $("DIV.searchresult",sr).get(x);
			$("IMG",obj).get(0).src='photo.php?talent=' + (wr.talent_id)+ '&thumb=1';
			$("SPAN",obj).html(wr.talent_id);
			$(obj).show();
			obj.talent = wr.talent_id;
			if (wr.admin && wr.admin==1) $(obj).addClass("admin"); else $(obj).removeClass("admin");
		}
		if (results.results > 0) 
			$("#prevresults").add("#nextresults").show();
		else
			$("#prevresults").add("#nextresults").hide();
		if (page>0) $("#prevresults IMG", sr)[0].src="images/prev_on.gif"; else $("#prevresults IMG", sr)[0].src="images/prev_off.gif";
		if (page<maxpage) $("#nextresults IMG", sr)[0].src="images/next_on.gif"; else $("#nextresults IMG", sr)[0].src="images/next_off.gif"; 
  }
	else
	{ $("#prevresults").add("#nextresults").hide(); }
}

function tagClick() {
	var id = parseInt(this.id.substr(3));
	tags[id] = tags[id]?"":id;
	if (tags[id]) $(this).addClass("selected"); else $(this).removeClass("selected");
	$.post("ajax.php", {
	  "request": "search",
	  "tags": tags.join(":")
	}, getResults);
	return false;
}

function srClick() {  // fired when a search result is clicked on
  var id = this.talent;
	if (talent[id]) {
	  updateOverlay(id);
	} else {
	  updateOverlay(0);
	  $.post("ajax.php", {
		  "request": "talent",
			"talent_id": id
		}, getTalent);
	}
	return false;
}

function overlaySize(){
  if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX) {  
    yScroll = window.innerHeight + window.scrollMaxY;
    xScroll = window.innerWidth + window.scrollMaxX;
    var deff = document.documentElement;
    var wff = (deff&&deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;
    var hff = (deff&&deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;
    xScroll -= (window.innerWidth - wff);
    yScroll -= (window.innerHeight - hff);
  } else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth){ // all but Explorer Mac
    yScroll = document.body.scrollHeight;
    xScroll = document.body.scrollWidth;
  } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
    yScroll = document.body.offsetHeight;
    xScroll = document.body.offsetWidth;
  }
	ast = getPageScrollTop();
	if (yScroll<600) {
	  yScroll = getPageSize()[1];
	}
	bob = Array(xScroll, yScroll, ast[0], ast[1]);
  $("#overview").css({
	  "width":bob[0]+"px", 
		"height":bob[1] +"px", 
		"left": bob[2]+"px", 
		"top": bob[3]+"px"
	});
}
function getPageScrollTop(){
  var yScrolltop;
  var xScrollleft;
  if (self.pageYOffset || self.pageXOffset) {
    yScrolltop = self.pageYOffset;
    xScrollleft = self.pageXOffset;
  } else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){   // Explorer 6 Strict
    yScrolltop = document.documentElement.scrollTop;
    xScrollleft = document.documentElement.scrollLeft;
  } else if (document.body) {// all other Explorers
    yScrolltop = document.body.scrollTop;
    xScrollleft = document.body.scrollLeft;
  }
  arrayPageScroll = new Array(xScrollleft,yScrolltop) 
  return arrayPageScroll;
}
function getPageSize(){
  var de = document.documentElement;
  var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight
  arrayPageSize = new Array(w,h) 
  return arrayPageSize;
}
