function showBirthdayOverflow(){
    $("birthdayOverflowButton").style.display="none";
    $("birthdayOverflow").style.display="block";			    
}
function showLastVisitOverflow(){
    $("lastVisitOverflowButton").style.display="none"
    $("lastVisitOverflow").style.display="block"
}
function showOverflow(prefix){
    $(prefix+"OverflowNames").style.display="block";
    $(prefix+"OverflowValues").style.display="block";
    $(prefix+"OverflowButton").style.display="none";
}
function choosePage(page,type,id){
    eval("page"+type+"="+page);
    if(type.indexOf('Fav')>0){showFavDiff(id);}
        else{showDiff(id);}
}
function updatePages(count,page,type,id){	
    if(count==0){return "";}
    else{				
        var sPages="";						
        for(var i=0;i<count;i++){
            if(i==page){sPages+="<b style='color:#a90a08'>"+(i+1)+"</b> ";}
            else{
	            sPages+="<a href=\"javascript:{choosePage("+i+",'"+type+"',"+id+")}\">"+(i+1)+"</a> ";
            }
        }
        if(page<(count-1)&&count>0){sPages+="<a href=\"javascript:{choosePage("+(page+1)+",'"+type+"',"+id+")}\"> > </a> ";}
        if(page>0&&count>0){sPages="<a href=\"javascript:{choosePage("+(page-1)+",'"+type+"',"+id+")}\"> < </a> "+sPages;}
        return "<div style='font-size:12px'>Page: "+sPages+"</div>";
    }
} 
function getBarName(name,id){
var s='';
	s+="<div style='float:left;width:210px;'>";
    s+="    <a style='float:left;' href='reviews2show.asp?show="+id+"' onmouseover='showReview("+id+")' onmouseout='hideReview("+id+")';>"+name+"</a>";
	s+="    <img id='f"+id+"' style='display:none;margin-left:4px;float:left' onmouseout='writetxt(0)' height='12' width='12' src='images/buttons/favoriteS.gif' />";
	s+="    <img id='ff"+id+"' style='display:none;margin-left:4px;float:left' onmouseout='writetxt(0)' height='12' width='12' src='images/buttons/friendFavoriteS.gif' />";
	s+="    <img id='p"+id+"' style='display:none;margin-left:4px;float:left' onmouseout='writetxt(0)' height='12' width='12' src='images/buttons/pickS.gif' />";
    s+="</div>";
    return s;
}
function listDiff(userName,name,id,ratingA,ratingB){
var s='';    
    var stars="<img src='"+SBImage(3,ratingA)+"' alt='"+ratingA+"-star' width=60 height=12 border=0>";
    var stars2="<img src='"+SBImage(3,ratingB)+"' alt='"+ratingB+"-star' width=60 height=12 border=0>";
    s+=getBarName(name,id);
    s+="<div style='float:left;width:120px;padding-left:30px;'>";
    s+="    <div style='float:left;width:50px;font-size:9px;'>You:</div>";
    s+="    <div style='float:left;width:55px;'>"+stars+"</div>";
    s+="    <div style='float:left;clear:left;width:50px;font-size:9px;'>"+userName+":</div>";
    s+="    <div style='float:left;width:55px;'>"+stars2+"</div>";
    s+="</div>";
    s+="<div class='breaker'></div>";
    return s;
}			
var hideProfile;
var userName,agree,disagree,pageAgree,pageDisagree;
var arrFavA,arrFavB,pageSFav=0,pageUFav=0;            
var arrFavShared=new Array(),arrFavUnique=new Array();
function showDiff(id){
    var rpp=5;//results per page        		        
    var s='';        
    s+="<div style='width:505px;'><div style='width:250px;float:left;'>";
    s+="<div style='font-weight:bold;padding-bottom:5px;'>Bars you agree about&#0133;</div>";
    if(agree.length-1==0){s+="<div class='infoText'>You don't agree very much on any bars you've both rated.</div>";}
    for(i=pageAgree*rpp;i<min(agree.length-1,(pageAgree+1)*rpp);i++){
        var review=agree[i].split("|");
        s+=listDiff(userName,review[0],review[1],review[2],review[3]);
    }
    var pageCount=Math.floor(agree.length/rpp);
    s+="<div style='padding-top:5px;'>"+updatePages(pageCount,pageAgree,'Agree',id)+"</div>";
    s+="</div>";
    s+="<div style='width:250px;float:left;'>";
    s+="<div style='font-weight:bold;padding-bottom:5px;'>Bars you disagree about&#0133;</div>";
    if(disagree.length-1==0){s+="<div class='infoText'>You don't disagree very much about any bars you've both rated.</div>";}
    for(i=pageDisagree*rpp;i<min(disagree.length-1,(pageDisagree+1)*rpp);i++){
        var review=disagree[i].split("|");
        s+=listDiff(userName,review[0],review[1],review[2],review[3]);
    }
    pageCount=Math.floor(disagree.length/rpp);
    s+="<div style='padding-top:10px;'>"+updatePages(pageCount,pageDisagree,'Disagree',id)+"</div>";
    s+="</div></div>";   
    if(!hideProfile){ 
		s+="<div style='float:left;clear:both;padding-left:340px;'>";
		s+=getButton('View profile','friendsprofile.asp?show='+id,1);
		s+="</div>";
	}
    showInfoBox(s);    
	markFriendFavorites();	
	markFavorites();					
	markPicks();
}
function calcFaveDiff(){	            
    var objFavA=new Object();
    var objFavB=new Object();
    arrFavUnique=new Array();
    arrFavShared=new Array();
    
    for(i=0;i<arrFavA.length-1;i++){
        var bar=new Object();
        bar.id=arrFavA[i].split("|")[0];
        bar.name=arrFavA[i].split("|")[1];
        objFavA[bar.id]=bar;
    }
    var objFavB=new Object();
    for(i=0;i<arrFavB.length-1;i++){
        var bar=new Object();
        bar.id=arrFavB[i].split("|")[0];
        bar.name=arrFavB[i].split("|")[1];
        objFavB[bar.id]=bar;
        if(!objFavA[bar.id]){
            arrFavUnique.push(bar);
        }
    }	            
    for(i=0;i<arrFavA.length-1;i++){
        var id=arrFavA[i].split("|")[0];
        if(objFavA[id]&&objFavB[id]){
            var bar=objFavA[id];
            arrFavShared.push(bar);
        }	                    	                
    }	        
}
function showFavDiff(id){
    var rpp=15;//results per page
    var s='',s2='',sOut='';
    for(i=(pageSFav*rpp);i<min(arrFavShared.length,(pageSFav+1)*rpp);i++){
        var bar=arrFavShared[i];
        s+=getBarName(bar.name,bar.id)+"<br />";
    }
    for(i=(pageUFav*rpp);i<min(arrFavUnique.length,(pageUFav+1)*rpp);i++){
        var bar=arrFavUnique[i];
        s2+=getBarName(bar.name,bar.id)+"<br />";
    }	            
    sOut+="<div style='width:445px;'>";
    sOut+="     <div style='float:left;width:220px;'>";
    sOut+="         <div style='font-weight:bold;padding-bottom:5px;'>Shared favorites&#0133;</div>";
    sOut+=s;                
    var pageCount=Math.floor(arrFavShared.length/rpp);
    sOut+="<div style='padding-top:5px;'>"+updatePages(pageCount,pageSFav,'SFav',id)+"</div>";
    sOut+="     </div>";
    sOut+="     <div style='float:left;width:220px;'>";
    sOut+="         <div style='font-weight:bold;padding-bottom:5px;'>"+userName+"'s unique favorites&#0133;</div>";
    sOut+=s2;
    pageCount=Math.floor(arrFavUnique.length/rpp);
    sOut+="         <div style='padding-top:5px;'>"+updatePages(pageCount,pageUFav,'UFav',id)+"</div>";
    sOut+="     </div>";
    sOut+="</div>";
    if(!hideProfile){ 
		sOut+="<div style='float:left;clear:both;padding-left:340px;'>";
		sOut+=getButton('View profile','friendsprofile.asp?show='+id,1);
		sOut+="</div>";
	}
    showInfoBox(sOut);	       
	//markFriendFavorites();
	//markFavorites();
	markPicks();	                 
}
function getDiff(prefix,user,id,page){	            
	if(uid!==''){				    
	    userName=user;
	    if(prefix=='rat'){				        
			var request=getXmlhttp();
	        var script="xml/similarity/u"+uid+"_u"+id+".xml";
	        request.open("GET",script);
	        request.onreadystatechange = function() {
		        if (request.readyState == 4){
			        if (request.status == 200){						        
			            var response = request.responseText;
			            agree=response.split("^")[0].split("@");
			            disagree=response.split("^")[1].split("@");						            
			            pageAgree=0;pageDisagree=0;
			            showDiff(id);
			        }
	            }
            }	                    
            request.send(null);
        }else{
            delete arrFavA;
            delete arrFavB;
            pageUFav=0;pageSFav=0;
	        var request=getXmlhttp();
	        var script="ajaxGetFavorites.aspx?name=1&uid="+uid;				        
	        request.open("GET",script);
	        request.onreadystatechange = function() {
		        if (request.readyState == 4){
			        if (request.status == 200){						        
			            var response = request.responseText;
			            arrFavA=response.split("@");
			            if(arrFavB){calcFaveDiff();showFavDiff(id);}
			        }
	            }
            }	 
            var request2 = getXmlhttp();
	        var script2="ajaxGetFavorites.aspx?name=1&uid="+id;
	        request2.open("GET",script2);
	        request2.onreadystatechange = function() {
		        if (request2.readyState == 4){
			        if (request2.status == 200){						        
			            var response2 = request2.responseText;						            
			            arrFavB=response2.split("@");
			            if(arrFavA){calcFaveDiff();showFavDiff(id);}
			        }
	            }
            }	                    	                                       
            request.send(null);	
            request2.send(null);	
        }
        
    }
}	        

function loadSimilarities(prefix){			
	if(uid!==''){
	    var request=getXmlhttp();
	    var script="xml/similarity/"+prefix+"_"+uid+".xml?a=";
	    request.open("GET",script);
	    request.onreadystatechange = function() {
		    if (request.readyState == 4){												
			    if (request.status == 200){						    
				    var names='',values='',i,arrUser,arrMain;
				    var response = request.responseText;
				    var arrMain=response.split("^");
				    if(arrMain[1]){
						$(prefix+"AvgValue").innerHTML=arrMain[0].split("|")[0]+"%";							    
						arrUsers=arrMain[1].split("@");							    
						for(i=0;i<arrUsers.length-1;i++){
							arrUser=arrUsers[i].split("|");
							var fName=arrUser[0].split(" ")[0];
							names+="<a onmouseout=\"writetxt(0)\" onmouseover=\"showUserImage(null,"+arrUser[1]+")\" href=javascript:{getDiff('"+prefix+"','"+fName+"',"+arrUser[1]+",0)}>"+arrUser[0]+"</a><br />";
							values+=arrUser[2] +"%<br />";
							if(i==9){
								$(prefix+"2OverflowButton").style.display="block";
								names=names+="<div style='display:none;' id='"+prefix+"2OverflowNames'>";
								values=values+="<div style='display:none;' id='"+prefix+"2OverflowValues'>";
							}				        
						}							    
						$(prefix+"Names").innerHTML=names;
						$(prefix+"Values").innerHTML=values;
						names='';values='';
						$(prefix+"AvgFriendsValue").innerHTML=arrMain[0].split("|")[1]+"%";
						var arrUsers=arrMain[2].split("@");
						for(i=0;i<arrUsers.length-1;i++){
							var arrUser=arrUsers[i].split("|");
							var fName=arrUser[0].split(" ")[0];
							names+="<a onmouseout=\"writetxt(0)\" onmouseover=\"showUserImage(null,"+arrUser[1]+")\" href=javascript:{getDiff('"+prefix+"','"+fName+"',"+arrUser[1]+",0)}>"+arrUser[0]+"</a><br />";
							values+=arrUser[2] +"%<br />";
							if(i==9){
								$(prefix+"1OverflowButton").style.display="block";
								names=names+="<div style='display:none;' id='"+prefix+"1OverflowNames'>";
								values=values+="<div style='display:none;' id='"+prefix+"1OverflowValues'>";
							}
						}
						if(arrUsers.length>8){names=names+="</div>";}
						if(arrUsers.length>8){values=values+="</div>";}
						$(prefix+"FriendsNames").innerHTML=names;
						$(prefix+"FriendsValues").innerHTML=values;
					}else{
						$(prefix+"Data").style.display="none";
						$(prefix+"Error").style.display="block";							   					
					}
			    }
			    else if(request.status == 404){						        
				    $(prefix+"Data").style.display="none";
				    $(prefix+"Error").style.display="block";							   
			    }
		    }
	    }					
	    request.send(null);
    }			
}
