var usedbooks=[];
var newbooks=[];
var swapisbns=[];
var nonemoo=false;
var nonepbs=false;
var rand=0;
var tabs=new Array("used","new","swap");
var chsearchset=false;
var searchtype='k';
var editions=[];
var edlookup=[];
var numcheck={nused:5,nnew:4};
var found={fused:false,fnew:false,fswap:false};

function showtab(t)
{
 $.each(tabs,function(i,n){
  if (n==t) {
	 $("#results-"+n).show();
	 $("#results-tabs li#"+n).addClass('bor-y');
	 var winhash=window.location.hash.split('|');
   window.location.hash=winhash[0]+'|'+winhash[1]+'|'+n;
	}
	else {$("#results-"+n).hide();$("#results-tabs li#"+n).removeClass('bor-y');}
 });
}

function clearheader()
{
 $("#header #h-box:visible").hide();
 $("#header #h-desc:visible").hide('blind','fast');
}

function initsearch()
{
	$("#results-used,#results-new,#results-swap").html('<div class="book results-start">Searching...</div>');
	showtab("used");
	$("#results-tabs").css('display','inline');
	$("#results-tabs li .q").html('?');
	usedbooks=[];
  newbooks=[];
	swapisbns=[];
	editions=[];
	edlookup=[];
	nonemoo=false;
	nonepbs=false;
	rand=Math.floor(Math.random()*100);
  numcheck={nused:5,nnew:4};
  found={fused:false,fnew:false,fswap:false};
}

function booklinks()
{
 $("#results .book").live('mouseover',function(){
  if (logged) {$(this).find(".book-main .book-links").show();}
 });
 $("#results .book").live('mouseout',function(){
	$(this).find(".book-main .book-links").hide();
 });
 $("#results .book .book-main .book-links .awish").live('click',function(ac){
  ac.preventDefault();
	var thislink=$(this);
	var bm=$(this).closest('.book-main');
	$.post('wish.php',{w:1,ck:loggedck,i13:this.id.substr(1),t:bm.find('.book-title a').html(),a:bm.find('.book-author').html()},function(data){
	 if (data=='1') {thislink.hide().after('(added to wish list)');}
	},'text');
 });
 $("#results .book .book-main .book-links .areco").live('click',function(ac){
  ac.preventDefault();
	if (chid=='') {} //what if no chid selected
	else {
	 var thislink=$(this);
	 var bm=$(this).closest('.book-main');
	 $.post('recommend.php',{w:1,ck:loggedck,i13:this.id.substr(1),t:bm.find('.book-title a').html(),a:bm.find('.book-author').html(),chid:chid,img:bm.siblings('.book-image').children('img').attr('src')},function(data){
	 if (data=='1') {
	  if ($("#right .right-box").size()>0) {setupright();}
		thislink.hide().after('(recommended for your charity)');
	 }
	 },'text');
	}
 });  
}

function updatebooks(arr,cond,store)
{
 arr=arr.sort(function(a,b){return a.total-b.total});
 if (arr.length>0 && !found['f'+cond]) {found['f'+cond]=true;$("#results-"+cond).html('');}
 $.each(arr,function(i,n){
  if (n['bid'].substring(0,3)==store)
	{
   if (i==0) {$("#results-"+cond).prepend(n['disp']+'<div class="clear"></div>');$("#"+cond+" .q").html(n['total'].toFixed(2));}
   else {$("#"+arr[i-1]['bid']).after(n['disp']+'<div class="clear"></div>');}
	}
 });
 numcheck['n'+cond]=numcheck['n'+cond]-1;
 if (numcheck['n'+cond]==0 && arr.length==0) {$("#"+cond+" .q").html("No");$("#results-"+cond).html('<div class="book results-none">No matching '+cond+' books were found.</div>');}
}

function updateswap(ia,tsite)
{
 switch(tsite){
  case 'moo':
	var ednlinked=[];
	var edns=[];
	$.each(ia,function(i,n){
	 var edn=edlookup[n['i']];
	 if ($.inArray(edn,ednlinked)==-1) {
	  if (!found['fswap']) {found['fswap']=true;$("#results-swap .results-start").remove();}
	  $("#goo-s-"+edn+" .book-main .book-condition").after('<div class="tlink tlinkmoo"><a href="http://bookmooch.com/detail/'+n['i']+'">BookMooch</a></div>');
    if ($("#goo-s-"+edn).hasClass('hide')){ 
	   $("#goo-s-"+edn).removeClass('hide');
	  }
	  ednlinked=ednlinked.concat([edn]);
		edns[edn]=1;
	 }
	 else {
	  edns[edn]=edns[edn]+1;
	  $("#goo-s-"+edn+" .book-main .tlinkmoo").append(' <a class="edn" href="http://bookmooch.com/detail/'+n['i']+'">'+edns[edn]+'</a>');
	 }
  });
	if (ia.length>0) {$("#swap .q").html("Yes");} else {
	 nonemoo=true;
	 if (nonepbs) {$("#swap .q").html("No");$("#results-swap").html('<div class="book results-none">No matching books were found available for swapping.</div>');}
	}
	break;
	case 'pbs':
	var ednlinked=[];
	var edns=[]
  $.each(ia,function(i,n){
	 var edn=edlookup[n['ISBN-10']];
	 if ($.inArray(edn,ednlinked)==-1) {
	  if (!found['fswap']) {found['fswap']=true;$("#results-swap .results-start").remove();}
	  $("#goo-s-"+edn+" .book-main .book-condition").after('<div class="tlink tlinkpbs"><a href="'+n['BOOKDETAILSLINK']+'">PaperBackSwap</a></div>');
    if ($("#goo-s-"+edn+" .book-image").html()=='' && n['MEDIUMIMAGE']!='') {$("#goo-s-"+edn+" .book-image").html('<img src="'+n['MEDIUMIMAGE']+'" />');}
    if ($("#goo-s-"+edn).hasClass('hide')){
	   $("#goo-s-"+edn).removeClass('hide');
	  }
	  ednlinked=ednlinked.concat([edn]);
		edns[edn]=1;
	 }
	 else {
	  edns[edn]=edns[edn]+1;
	  $("#goo-s-"+edn+" .book-main .tlinkpbs").append(' <a class="edn" href="'+n['BOOKDETAILSLINK']+'">'+edns[edn]+'</a>');
	 }
  });
	if (ia.length>0) {$("#swap .q").html("Yes");} else {
	 nonepbs=true;
	 if (nonemoo) {$("#swap .q").html("No");$("#results-swap").html('<div class="book results-none">No matching books were found available for swapping.</div>');}
	}	
	break;
 }
}

Array.prototype.unique =
  function() {
    var a = [];
    var l = this.length;
    for(var i=0; i<l; i++) {
      for(var j=i+1; j<l; j++) {
        if (this[i] === this[j])
          j = ++i;
      }
      a.push(this[i]);
    }
    return a;
  };

function swapcheck(isbnsa,rr)
{
 isbns=isbnsa.unique().join(' ');
 if (isbns!='')
 {
 $.post("search_moo.php",{s:isbns,r:rr},function(data){
  if (data['r']==rand){
   updateswap(data['d'],'moo');
	}
 },"json");
 $.post("search_pbs.php",{s:isbns,r:rr},function(data){
  if (data['r']==rand){
	 updateswap(data['d'],'pbs');
	}
 },"json");
 }
 else {updateswap({d:'',r:rand},'moo');updateswap({d:'',r:rand},'pbs');} 
}

function morehalf(di,dp,ub,rr,tt){
 $.post("search_hlf.php",{i:di,p:dp,r:rr,ci:chid,t:tt},function(data){
  if (data['r']=rr){
   usedbooks=ub.concat(data['now']);
	 if (data['p']>0 && data['p']<7) {numcheck['nused']=numcheck['nused']+1;morehalf(data['i'],data['p'],usedbooks,data['r'],tt);}
	 updatebooks(usedbooks,'used','hf'+dp);	 
	}
 },"json");
}

function searchali(ss,tt){
 $.post("search_ali.php",{s:ss,c:'u',r:rand,ci:chid,t:tt},function(data){
	if (data['r']==rand){
	 usedbooks=usedbooks.concat(data['d']);
	 updatebooks(usedbooks,'used','al'+tt);
	 if (tt=='k') {
	  $.post("search_ali.php",{s:ss,c:'u',r:rand,ci:chid,t:'t',i:data['i']},function(data){
	   if (data['r']==rand){
	    usedbooks=usedbooks.concat(data['d']);
	    updatebooks(usedbooks,'used','alt');
	   }
    },"json");
   }
	 else {numcheck['nused']=numcheck['nused']-1;}
	}
 },"json");
 $.post("search_ali.php",{s:ss,c:'n',r:rand,ci:chid,t:tt},function(data){
	if (data['r']==rand){
	 newbooks=newbooks.concat(data['d']);
	 updatebooks(newbooks,'new','al'+tt);
	 if (tt=='k') {
	  $.post("search_ali.php",{s:ss,c:'n',r:rand,ci:chid,t:'t',i:data['i']},function(data){
	   if (data['r']==rand){
	    newbooks=newbooks.concat(data['d']);
	    updatebooks(newbooks,'new','alt');
	   }
    },"json");
   }
	 else {numcheck['nnew']=numcheck['nnew']-1;}
	}
 },"json");	
}

function setupright(){
 $("#right").load('right.php',{chid:chid,ck:loggedck});
}

function setupsearch(){
 $("#search #search-i").autocomplete({url:'auto.php',minChars:3,max:20,delay:0});
 $("#search #search-b").hover(function(){$(this).css('background-position','-58px 0');},function(){$(this).css('background-position','0 0');});
 $("#search #search-b").click(function(sb){
  sb.preventDefault();
	clearheader();
	$("#special:visible").hide();
	$("#results:hidden").show();
	initsearch();
	searchtype=$("#search #search-t option:selected").val();
  $.post("search_abe.php",{s:$("#search-i").val(),c:'u',r:rand,ci:chid,t:searchtype},function(data){
	 if (data['r']==rand){
	  usedbooks=usedbooks.concat(data['d']);
	  updatebooks(usedbooks,'used','abe');
	 }
	},"json");
  $.post("search_abe.php",{s:$("#search-i").val(),c:'n',r:rand,ci:chid,t:searchtype},function(data){
	 if (data['r']==rand){
	  newbooks=newbooks.concat(data['d']);
	  updatebooks(newbooks,'new','abe');
	 }
	},"json");
	$.post("search_azn.php",{s:$("#search-i").val(),r:rand,ci:chid,t:searchtype},function(data){
	 if (data['r']==rand){
	  usedbooks=usedbooks.concat(data['used']);
	  updatebooks(usedbooks,'used','azn');
	  newbooks=newbooks.concat(data['new']);
	  updatebooks(newbooks,'new','azn');
	 }
	},"json");
  $.post("search_goo.php",{s:$("#search-i").val(),r:rand,t:searchtype},function(data){
	 if (data['d']=='') {$("#swap .q").html("No");$("#results-swap").html('<div class="book results-none">No matching books were found available for swapping.</div>');}
	 else if (data['r']==rand){
	  $.each(data['d'],function(i,n){
	   $("#results-swap").append('<div class="book hide" id="goo-s-'+n['isbn']+'">'+n['disp']+'</div><div class="clear"></div>');
	  });
		editions=data['ed'];
		$.each(editions,function(ei,en){
		 swapisbns=swapisbns.concat(en);
		 $.each(en,function(eii,enn){
		  edlookup[enn]=ei;
		 });
		});
	  swapcheck(swapisbns,rand);
	 }
	},"json");
	$.post("search_hlf.php",{s:$("#search-i").val(),r:rand,ci:chid,t:searchtype},function(data){
	 if (data['r']==rand){
	  usedbooks=usedbooks.concat(data['now']);
	  if (data['p']>0 && data['p']<7) {numcheck['nused']=numcheck['nused']+1;morehalf(data['i'],data['p'],usedbooks,data['r'],searchtype);}
		updatebooks(usedbooks,'used','hf1');	  
	 }
	},"json");
	searchali($("#search-i").val(),searchtype);
	setupright();
	window.location.hash=searchtype+'|'+$("#search-i").val()+"|used";
 }); 
 $("#results-tabs li").hover(function(){
  showtab(this.id);
 });
 booklinks();
}

function setupchsearch(){
 $("#achchoose").click(function(chb){
  chb.preventDefault();
  $("#ch-search-i").val('');
	$("#ch-search").show();
 });
 $("#ch-search-b").hover(function(){$(this).css('background-position','-58px -26px');},function(){$(this).css('background-position','0 -26px');});
 $("#ch-search-b").click(function(sb){
  sb.preventDefault();
	clearheader();
	$("#ch-results").html('').show();
	$.post("ch_search.php",{s:$("#ch-search-i").val(),st:$("#ch-state option:selected").html()},function(data){
	 if (data.length==1) {setcharity(data[0]['d'],data[0]['e']);}
	 else if (data.length==0) {$("#ch-results").html('<div id="ch-none">No charities found.  If you know your charity\'s EIN, try entering it in the search box.<br/>If you cannot find a 501(c)(3) public charity, <a href="mailto:charities@bibliotarian.org">email us</a> with the charity\'s name and EIN,<br/>and we will check whether it is eligible to be added to Bibliotarian.</div>');}
	 else {
	  var chlist='';
	  $.each(data,function(i,n){chlist=chlist+'<li><a class="'+n['e']+'">'+n['d']+'</a> '+n['s']+'</li>';});
	  $("#ch-results").html('<ul>'+chlist+'</ul>');
		$("#ch-results a").click(function(chc){chc.preventDefault();setcharity($(this).html(),$(this).attr('class'));});
	 }  
	},"json");
 });
 $("#ch-search-x").click(function(sx){
  sx.preventDefault();
	$("#ch-search").hide();
	$("#ch-results").hide().html('');
	if ($("#charity").html()!='') {$("#ch-change").show();}
 });
 $("#ch-state").load('states.html');
 chsearchset=true;
 $("#right a.archchoose").live('click',function(lc){
  lc.preventDefault();
	$("#achchoose").click();
 })
}

function setupchchange(){
 $("#ch-change").click(function(cb){
  cb.preventDefault();
	$("#ch-change").hide();
	$("#ch-search-i").val('');
	$("#ch-state #ch-state-n").attr('selected','selected');
	$("#ch-search,#ch-results").show('blind','fast');
	if (!chsearchset) {setupchsearch();}
 });
}

function getURIparam(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.href);
  if(results == null)
    return "";
  else
    return results[1];
}

function paramsearch()
{
 var qisbn=getURIparam('isbn');
 if (qisbn!='') {
  $("#search #search-i").val(qisbn);
	searchtype='i';
	$("#search #search-b").click();  
 }
 else {
  var winhash=window.location.hash.split('|');
  if (winhash.length==3) {
	 $("#search #search-i").val(winhash[1]);
	 searchtype=winhash[0];
	 $("#search #search-b").click();
	 showtab(winhash[2]);
	}
 }
 var qein=getURIparam('ein');
 if (qein!='') {
  $.post("ch_search.php",{s:qein},function(data){
	 if (data.length==1) {setcharity(data[0]['d'],data[0]['e']);}  
	},"json");
 }
}

function setupheader()
{
 $("#header .more").hover(function(){
  $(this).hide();
	var hm=$(this).parent("li").attr("id");
  $("#header #"+hm+"-m:hidden").show('blind','fast');
 },function(){});
}

function setupspecial()
{
 $("#special #fr").jCarouselLite({btnNext:".next",btnPrev:".prev",visible:1,speed:400}).css('border','1px solid #000000');
 $("#special #fr-b button.next").hover(function(){$(this).css('background-position','-25px -52px');},function(){$(this).css('background-position','0 -52px');});
 $("#special #fr-b button.prev").hover(function(){$(this).css('background-position','-75px -52px');},function(){$(this).css('background-position','-50px -52px');});
}

function setupsubscribe()
{
 $("#sony-r a.subscribe").live('click',function(subc){
  subc.preventDefault();
	$(this).after('<div class="subf"><form action="http://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow" onsubmit="window.open(\'http://feedburner.google.com/fb/a/mailverify?uri=bibliotarian\', \'popupwindow\', \'scrollbars=yes,width=550,height=520\');return true">Subscribe to receive special book deals and charity news.<br/><br/>Enter your email address:<br/><input type="text" style="width:140px" name="email"/><br/><input type="hidden" value="bibliotarian" name="uri"/><input type="hidden" name="loc" value="en_US"/><input type="submit" value="Subscribe" /><br/>Delivered by <a href="http://feedburner.google.com" target="_blank">FeedBurner</a></form></div>');
  $("#sony-r .subf form").submit(function(){
	 $(this).closest(".subf").remove();
	});
 });
}

function dopageloggedout()
{
 if (!chsearchset) {setupchsearch();}
}

$(document).ready(function(){
 setupsearch();
 if (chid!='' && chdesc!='') {$("#charity").html('<a href="/charity/'+chid+'">'+chdesc+'</a>');$("#achchoose").hide();$("#ch-change").show();} else {setupchsearch();}
 setupchchange();
 paramsearch();
 setupheader();
 setupspecial();
 setupsubscribe();
});
