var firstResult = 0;
var dontSearch = false;
var maxResults = readCookie("MAX_FR_PAGES_COOKIE");
if(maxResults == null) maxResults = 24;
var MIN_AGE = 18;
var MAX_AGE = 100;
var MIN_LOSS = 0;
var MAX_LOSS = 100;
var MIN_LOC_DISTANCE = 1;
var MAX_LOC_DISTANCE = 9000;

var DIST_SLIDER_VALUES =  [1,2,3,4,5,10,15,20,25,30,40,50,75,100,250,500,1000,2000,3000,5000,7000,MAX_LOC_DISTANCE];
var DIST_SLIDER_INDICES = [0,1,2,3,4, 5, 6, 7, 8, 9,10,11,12, 13, 14, 15,  16,  17,  18,  19,  20,21];

var m_screenName='';
var m_userId='';
var m_email='';
var m_firstName='';
var m_lastName='';
var m_starEmail='';
var m_messageEmail='';
var m_miles='';
var m_userFriendId='';
var openedTab='';
var radioValue=1;
var member='';

var pageLoaded='false';

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


function setFirstResult(val)
{
    //alert("set first res");
	firstResult = val;
}

function doSearchAgain()
{
    //alert('dosearchagai called, now calling dosearch');
    doSearch();
}

function doSearch()
{
	if (pageLoaded=='false') return;
      //  alert('calling setsearching');
	setSearching(true);
	//setMemberSearch(false);

	// start search on a different thread, or "please weight" dialog won't show
            setTimeout("doActualSearch()", 1);
}

function setSearching(val)
{
	
}

function doActualSearch()
{
    //alert('do act search');
        var member = trim(document.getElementById('MemberSearch').value);
        if(member=='member name')
            member='';

	var gender = document.getElementById('genderM').checked ? 'M' :
		(document.getElementById('genderF').checked ? 'F' : 'MF');

	var dist = Math.round(loc_slider.value);
	if (dist < 0) dist = 0;
	else if (dist >= DIST_SLIDER_VALUES.length) dist = DIST_SLIDER_VALUES.length;
	dist = DIST_SLIDER_VALUES[dist];

	if (dist >= MAX_LOC_DISTANCE)
	{
		dist = -1;
	}

	var age = getAgeRange();
	if (age[0] == MIN_AGE)
	{
		age[0] = -1;
	}
	if (age[1] == MAX_AGE)
	{
		age[1] = -1;
	}

	var loss = getLossRange();
	if (loss[0] == MIN_LOSS)
	{
		loss[0] = -1;
	}
	if (loss[1] == MAX_LOSS)
	{
		loss[1] = -1;
	}

	//alert('search gender=' + gender + ' dist=' + dist + ' age=' + age[0] + "," + age[1] + ' loss=' + loss[0] + ',' + loss[1] + ' first=' + firstResult + ' max=' + maxResults);

	var zip = $F('ZipCodeValue');
        
	var url = contextRoot + '/Friends.do?operation=doExecute';
//alert('curl written');
	var options = {
		asynchronous: false,
		evalScripts: true,
		parameters: {
			action: 'search',
			firstResult: firstResult,
			maxResults: maxResults,
			gender: gender,
			distance: dist,
			minAge: age[0],
			maxAge: age[1],
			minLoss: loss[0],
			maxLoss: loss[1],
			zip: zip,
                        friendCheck:radioValue,
                        member: member
		},
		onComplete: function() {
			setSearching(false);
		},
		onFailure: function(transport,json) {
			setSearching(false);
		  	// ignore - search failed
		}
	};
//alert('calling url');
	new Ajax.Updater('MembersStars', url, options);
}


function showStarsTooltip(elem, userId, screenName, miles, starCount, currentDiet, weightLoss, guiltyPleasure, email,firstName,lastName,starEmail,userFriendId,messageEmail)
{
	if (screenName.length > 18)
		screenName = screenName.substring(0, 15) + '...';
	$('screenName').innerHTML = screenName.replace('&','&amp;');

	if (miles == null || miles == '') miles = "?";
	else miles = Math.round(miles);

//	if (signedIn == true) {
		$('miles').innerHTML = miles + ' miles from you';
//	} else {
//		$('miles').innerHTML = "Register to learn more about me";
//	}
	$('starCount').innerHTML = starCount;


	$('screenName').onclick = function() {
		gotoAboutMe(userId);
	};

        //var link=eval('<a href="#" onclick="javascript:showGiveStarOverlay('+screenName+','+userId+','+email+','+firstName+','+lastName+','+starEmail+');"><img src="'+contextRoot+'/loseit/images/stars/btn_giveasta.png"/></a>');
        
        //document.getElementById('giveStarDiv').innerHtml=link;
        //$('giveStarDiv').onclick=function(){showGiveStarOverlay(screenName,userId,email,firstName,lastName,starEmail);};
        m_screenName=escape(screenName);
        m_userId=userId;
        m_email=email;
        m_firstName=escape(firstName);
        m_lastName=escape(lastName);
        m_starEmail=starEmail;
        m_userFriendId=userFriendId;
        m_miles=miles;
        m_messageEmail=messageEmail;

	// use offset of photo div 'elem'
	var pos = Position.positionedOffset(elem);
	var d = isSafari ? -1 : 0; // safari is off by 1px
	starsTooltip.showTooltip(pos[0] + d, pos[1]  + d);
}

function setMaxResults(val)
{
	maxResults = val;
	firstResult = 0;
}


function updateAge(search)
{

var age = getAgeRange();

	if (age[1] == MAX_AGE)
	{
		txt = age[0] + ' or older';
	}
	else
	{
		txt = '' + age[0] + '-' + age[1];
	}
	$('age_range').innerHTML = txt;
	$('ageStart').innerHTML = (age[0] == MAX_AGE ? 'all' : age[0]);
	$('ageEnd').innerHTML = (age[1] == MAX_AGE ? 'all' : age[1]);

	if (search)
	{
                setFirstResult(0);
		doSearch();
	}
}

function getAgeRange()
{
	var age1 = Math.round(age_left.value);
	var age2 = Math.round(age_right.value);
	if (age1 > age2)
	{
		// swap age1 and age2
		age1 = age1 + age2;
		age2 = age1 - age2;
		age1 = age1 - age2;
	}
	return [age1, age2];
}

function updateLocation(search)
{

	var dist = Math.round(loc_slider.value);
	if (dist < 0) dist = 0;
	else if (dist >= DIST_SLIDER_VALUES.length) dist = DIST_SLIDER_VALUES.length;

	dist = DIST_SLIDER_VALUES[dist];

	var txt = 'anywhere';
	var hdr = 'anywhere';

	if (dist < MAX_LOC_DISTANCE)
	{
		txt = dist + ' mi from me';
		hdr = 'within ' + dist + ' mile' + (dist > 1 ? 's' : '');
	}
	$('loc_txt').innerHTML = txt;$F
	$('loc_range').innerHTML = hdr;

	if (search) 
        {
            setFirstResult(0);       
            doSearch();
        }
}

function genderSelected(search)
{

	var gender = document.getElementById('genderM').checked ? 'male' :
		(document.getElementById('genderF').checked ? 'female' : 'male &amp; female');

	$('gender_range').innerHTML = gender;

	if (search)
	{
		doSearch();
	}
}

function updateLoss(search)
{

	var loss = getLossRange();

	if (loss[1] == MAX_LOSS)
	{
		txt = '' + loss[0] + '-' + loss[1] + '+ lbs.';
	}
	else
	{
		txt = '' + loss[0] + '-' + loss[1] + ' lbs.';
	}
	$('loss_range').innerHTML = txt;
	$('lossStart').innerHTML = (loss[0] == MAX_LOSS ? ('' + loss[0] + '+ lbs.') : ('' + loss[0] + ' lbs.'));
	$('lossEnd').innerHTML = (loss[1] == MAX_LOSS ? ('' + loss[1] + '+ lbs.') : ('' + loss[1] + ' lbs.'));

	if (search)
	{
                setFirstResult(0);
		doSearch();
	}
}

function getLossRange()
{
	var loss1 = Math.round(loss_left.value);
	var loss2 = Math.round(loss_right.value);
	if (loss1 > loss2)
	{
		// swap loss1 and loss2
		loss1 = loss1 + loss2;
		loss2 = loss1 - loss2;
		loss1 = loss1 - loss2;
	}
	return [loss1, loss2];
}

function radioChanged(value){
    
    radioValue=value;
    doSearch();
}

function clearCriteria()
{
    
	skipSearch(function(){
		age_left.setValue(MIN_AGE);
		age_right.setValue(MAX_AGE);
		document.getElementById('genderMF').checked = true;
		loc_slider.setValue(DIST_SLIDER_INDICES.length - 1);
		document.getElementById('ZipCodeValue').value = '';
		loss_left.setValue(MIN_LOSS);
		loss_right.setValue(MAX_LOSS);
                document.getElementById('showFriendsRadio2').checked=true;
                document.getElementById('MemberSearch').value='';
	});

	updateAge(false);
	updateLocation(false);
	updateLoss(false); 
        setFirstResult(0);
        
        radioChanged('1');
}

function skipSearch(func)
{
	dontSearch = true;
	func();
	dontSearch = false;
}

function setValuesForStar(screenName,userId,email,firstName,lastName,starEmail){
        m_screenName=escape(screenName);
        m_userId=userId;
        m_email=email;
        m_firstName=escape(firstName);
        m_lastName=escape(lastName);
        m_starEmail=starEmail;
}

function showGiveStarOverlay()
{    	
        
        var theUrl = contextRoot + '/giveStarOverlay.jsp?screenName='+m_screenName+'&userId='+m_userId+'&email='+m_email+'&firstName='+m_firstName+'&lastName='+m_lastName+'&starEmail='+m_starEmail;
        showFormGiveStarOverlay(theUrl, '', '');
}
    

function cancelGiveStarOverlay()
{        
    winGiveStarOverlay.hide();
}

function gotoAboutMe(userId)
{
	gotoit('member/' + userId + '/profile.html');
}

function giveStar(id, mid, source, screenName, blogId, email, fname, lname, userfname, userlname,sendStar,from) {
	var url = contextRoot + '/memberMail.do';
	var bid = 0;
	if (blogId) bid = blogId;
	var pars = {
		action: "giveStar",
		memberId: mid,
		source: source,
		blogId: bid,
		message: document.getElementById('starMessage' + id).value,
                toEmail:email,
                firstName:fname,
                lastName:lname,
                userFirstName:userfname,
                userLastName:userlname,
                sendEmail:sendStar,
                screenName:screenName
	};

        doJsonAjaxRequest(url, pars, function(json) {   		
                $('StarInputArea').style.display = "none";
                $('StarToDiv').innerHTML = "Thanks! A star has been sent to " + screenName + ".";
                window.setTimeout('cancelGiveStarOverlay()',5000);
        },
        function() {
                $('StarInputArea').style.display = "none";
                $('StarToDiv').innerHTML = "You can only give a star to a specific person once a day.";
                window.setTimeout('cancelGiveStarOverlay()',5000);
        });

          
			

        
            
	// To do add blog comment linked to star
	return false;
}

function showReportMemberOverlay()
{    	
        
        var theUrl = contextRoot + '/reportMember.jsp?giverId='+m_userId;
        showFormReportMemberOverlay(theUrl, '', '');
}
    

function cancelReportMemberOverlay()
{        
    winReportMemberOverlay.hide();
}

function validateReportMember(id) {
	var errors = false;
	

	if ($F('reportName' + id) == "") {		
            errors = true;
            document.getElementById('nameDiv').className='labelArea error';
	}
        else
            document.getElementById('nameDiv').className='labelArea';

	if (!validEmail($F('reportEmail' + id))) {
            errors = true;
            document.getElementById('emailDiv').className='labelArea error';
	}
        else
            document.getElementById('emailDiv').className='labelArea';

	if ($F('reportReason' + id) == "") {
            errors = true;
            document.getElementById('reasonDiv').className='labelArea error';
	}
        else
            document.getElementById('reasonDiv').className='labelArea';

	if (errors) {
            document.getElementById('oops').innerHTML='<img src="'+staticContentBase+'/loseit/images/forms/oops_trans.png" alt="Ooops..." align="absmiddle" /> please double check below for errors';
	} else {
	}
	return !errors;
}
function reportMember(id, mid, reason, message) {
	var url = contextRoot + '/ReportUser.do';
        //alert('reportmemebr');
    if (validateReportMember(id) == true) {
	    var pars = {
	            id: mid,
	            offensiveReason: $F(reason),
	            offensiveMessage: $F(message)
	        };
	    doJsonAjaxRequest(url, pars, function() {
                $('openFormAreaReport').innerHTML = '<div class="to">Thanks! We will look into this issue as soon as possible and respond if further information is needed.</div><div class="Clear"></div>';
                window.setTimeout("cancelReportMemberOverlay()",5000);
		});
	}
    return false;
}
function validEmail(e)
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e)){
		return true;
	}
	return false;
}
function getSelectedPage(obj){
    //alert(obj.value);
    setFirstResult(obj.value);
    doSearch();
}
function removeText(obj){
    if(obj.value=="member name")
        obj.value="";
}

function removeMe(id) {
	var url = contextRoot + '/memberMail.do';
	var pars = {
		action: "removeFriend",
		friendId: id
	};

   	doJsonAjaxRequest(url, pars, function() {
   		var obj=document.getElementById('UserPhotoDiv'+id);
                obj.innerHTML='<span class="RemoveFriendOverlay"><div class="name">'+unescape(m_screenName)+'</div><div class="miles">('+m_miles+' miles from you)</div><div class="text">has been removed from<br />your friends.</div></span>';
                hideRemoveMePopup();
                window.setTimeout('Effect.Fade("UserPhotoDiv'+id+'")',5000);
                window.setTimeout('doSearch()',6000);
   	});
	return false;
}

function showRemoveMeOverlay()
{    	
        
        var theUrl = contextRoot + '/removeMePopup.jsp?id='+m_userFriendId+'&text=are you sure you want to remove '+m_screenName+' from your friend?';
        showFormRemoveMeOverlay(theUrl, '', '');
}
    

function hideRemoveMePopup()
{        
    winRemoveMeOverlay.hide();
}

function showSendNoteOverlay()
{    	
        
        var theUrl = contextRoot + '/sendANote.jsp?name='+m_screenName;
        showFormSendNoteOverlay(theUrl, '', '');
}
    

function hideSendNoteOverlay()
{        
    winSendNoteOverlay.hide();
}

function sendMessageBack(userfname,userlname) {
	var url = contextRoot + '/memberMail.do';
	var pars = {
		action: "sendMessageBack",
		memberId: m_userId,
		subject: $F('sendBackSubject'),
		message: $F('reportMessage1'),
                toEmail:m_email,
                firstName:m_firstName,
                lastName:m_lastName,
                userFirstName:userfname,
                userLastName:userlname,
                sendEmail:m_messageEmail
	};
	
   	doJsonAjaxRequest(url, pars, function() {   		
                    $('Note2').style.display = "none";
                    $('Note1').innerHTML = "Thanks! A note has been sent to " + unescape(m_screenName) + ".";
                    window.setTimeout('hideSendNoteOverlay()',5000);
            }
            );
	return false;
}
function toggleTab(prefix, e , openClose)
{
        
	
	

	if (openClose=='open')
	{
		document.getElementById(prefix + '_close').style.display='block';
		document.getElementById(prefix + '_open').style.display='none';
	}
	else
	{
		document.getElementById(prefix + '_close').style.display='none';
		document.getElementById(prefix + '_open').style.display='block';
	}
}

