/************************************************************************************************************************
/
/	Author: 	Jonathan Martin
/				www.martin-creative.com
/	Client:		RateRexburgHousing.com
/
/***********************************************************************************************************************/
 
/************************************************************************************************************************
/
/	Descritpion: 	Pre-load /media/images used throughout site.
/
/***********************************************************************************************************************/
// ---- Home Page
var menBtnOver 	= new Image( 335, 460 );
menBtnOver.src 	= '/media/images/bg_men_btn_over.jpg';

var menBtnClick	= new Image( 335, 460 );
menBtnClick.src = '/media/images/bg_men_btn_click.jpg';

var menBtnOut 	= new Image( 335, 460 );
menBtnOut.src 	= '/media/images/bg_men_btn.jpg';

var womBtnOver 	= new Image( 335, 460 );
womBtnOver.src 	= '/media/images/bg_wom_btn_over.jpg';

var womBtnClick	= new Image( 335, 460 );
womBtnClick.src = '/media/images/bg_wom_btn_click.jpg';

var womBtnOut 	= new Image( 335, 460 );
womBtnOut.src 	= '/media/images/bg_wom_btn.jpg';

var loginHmOvr	= new Image( 55, 29 );
loginHmOvr.src 	= '/media/images/login_hm_over.jpg';

var loginHmDwn	= new Image( 55, 29 );
loginHmDwn.src 	= '/media/images/login_hm_down.jpg';

// ---- Compare Page
var menPnlOvr	= new Image( 212, 150 );
menPnlOvr.src	= '/media/images/men_compare_pnl_ovr.jpg';

var womPnlOvr	= new Image( 212, 150 );
womPnlOvr.src	= '/media/images/wom_compare_pnl_ovr.jpg';

var menClsdOvr	= new Image( 670, 48 );
menClsdOvr.src	= '/media/images/foldmen_clsd_ovr.jpg';

var menOpnOvr	= new Image( 670, 48 );
menOpnOvr.src	= '/media/images/foldmen_opn_ovr.jpg';

var womClsdOvr	= new Image( 670, 48 );
womClsdOvr.src	= '/media/images/foldwom_clsd_ovr.jpg';

var womOpnOvr	= new Image( 670, 48 );
womOpnOvr.src	= '/media/images/foldwom_opn_ovr.jpg';

var menOpn		= new Image( 670, 48 );
menOpn.src		= '/media/images/foldmen_opn.jpg';

var womOpn		= new Image( 670, 48 );
womOpn.src		= '/media/images/foldwom_opn.jpg';

// ---- Listings Page
var loginIntOvr	= new Image( 55,29 );
loginIntOvr.src = '/media/images/login_int_over.jpg';

var loginIntDwn	= new Image( 55,29 );
loginIntDwn.src = '/media/images/login_int_down.jpg';

var listItemBg	= new Image( 670, 86 );
listItemBg.src 	= '/media/images/men_list_item_ovr.jpg';

var leaseNowOvr	= new Image( 109, 31 );
leaseNowOvr.src = '/media/images/bg_lease_now_ovr.gif';

var leaseNowDwn	= new Image( 109, 31 );
leaseNowDwn.src = '/media/images/bg_lease_now_dwn.gif';

var sortOvr 	= new Image( 68, 27 );
sortOvr.src 	= '/media/images/sort_ovr.jpg';

var sortDwn 	= new Image( 68, 27 );
sortDwn.src 	= '/media/images/sort_dwn.jpg';

var listNavBgM	= new Image( 1, 13 );
listNavBgM.src	= '/media/images/men_comp_nav_ovr.jpg';

var listNavBgW	= new Image( 1, 13 );
listNavBgW.src	= '/media/images/wom_comp_nav_ovr.jpg';

// ---- Individual Page
var rateNowMen1	= new Image( 99, 130 );
rateNowMen1.src	= '/media/images/rate_now_men.jpg';

var rateNowWom1	= new Image( 99, 130 );
rateNowWom1.src	= '/media/images/rate_now_wom.jpg';

var rateNowMen2	= new Image( 99, 130 );
rateNowMen2.src	= '/media/images/rate_now_men_ovr.jpg';

var rateNowWom2	= new Image( 99, 130 );
rateNowWom2.src	= '/media/images/rate_now_wom_ovr.jpg';

var ratePnlMen	= new Image( 571, 130 );
ratePnlMen.src	= '/media/images/rate_pnl_men.jpg';

var ratePnlWom	= new Image( 571, 130 );
ratePnlWom.src	= '/media/images/rate_pnl_wom.jpg';

var comNow		= new Image( 125, 84 );
comNow.src		= '/media/images/comment_now.jpg';

var comNowOvr	= new Image( 125, 84 );
comNowOvr.src	= '/media/images/comment_now_ovr.jpg';

var flagOn		= new Image( 21, 21 );
flagOn.src		= '/media/images/flag_on.jpg';

var thumbDwnMen	= new Image( 15, 15 );
thumbDwnMen.src	= '/media/images/thumb_dwn_men.jpg';

var thumbDwnWom	= new Image( 15, 15 );
thumbDwnWom.src	= '/media/images/thumb_dwn_wom.jpg';

var thumbDwnOvr	= new Image( 15, 15 );
thumbDwnOvr.src	= '/media/images/thumb_dwn_ovr.jpg';

var thumbUpMen	= new Image( 15, 15 );
thumbUpMen.src	= '/media/images/thumb_up_men.jpg';

var thumbUpWom	= new Image( 15, 15 );
thumbUpWom.src	= '/media/images/thumb_up_wom.jpg';

var thumbUpOvr	= new Image( 15, 15 );
thumbUpOvr.src	= '/media/images/thumb_up_ovr.jpg';



/************************************************************************************************************************
/
/	Page:			Home page	
/	Function: 		btnOvr, btnDwn, btnOut 
/	Descritpion: 	Animate the home page buttons base on mouse events.
/
/***********************************************************************************************************************/
function btnOvr( href ) {
	var btn = href.parentNode;
	btn.setAttribute( 'class', 'over' );
	btn.className = 'over';
}
function btnDwn( href ) {
	var btn = href.parentNode;
	btn.setAttribute( 'class', 'down' );
	btn.className = 'down';
}
function btnOut( href ) {
	var btn = href.parentNode;
	btn.setAttribute( 'class', '' );
	btn.className = '';
}

/************************************************************************************************************************
/
/	Page:			Home page, Listings Page	
/	Function: 		loginDwn, loginUp, sortDwn, sortUp
/	Descritpion: 	Makes buttons on forms appear to push down
/
/***********************************************************************************************************************/
function loginDwn( btn ) {
	btn.setAttribute( 'class', 'down' );
	btn.className = 'down';
}
function loginUp( btn ) {
	btn.setAttribute( 'class', '' );
	btn.className = '';
}
function sortDwn( btn ) {
	btn.setAttribute( 'class', 'down' );
	btn.className = 'down';
}
function sortUp( btn ) {
	btn.setAttribute( 'class', '' );
	btn.className = '';
}

/************************************************************************************************************************
/
/	Page:			Listings Page	
/	Function: 		listItemOvr, listItemOut
/	Descritpion: 	Depending on the event, changes the background image of a listing item
/
/***********************************************************************************************************************/
function listItemOvr( item ) {
	item.setAttribute( 'class', 'listItemOvr' ); // non IE
	item.className = 'listItemOvr'; // IE
}
function listItemOut( item ) {
	item.setAttribute( 'class', 'listItem' ); // non IE
	item.className = 'listItem'; // IE
}

/************************************************************************************************************************
/
/	Page:			Listings Page	
/	Function: 		selectSort
/	Descritpion: 	Displays to user which sort category is selected.
/
/***********************************************************************************************************************/
function selectSort( category ) {	
	var categories = category.parentNode.childNodes;
	
	// reset all category buttons
	for( i = 0; i < categories.length; i++ ) {
		
		if( categories[i].id != undefined ) {
			if( categories[i].className != 'sortTitle' ) {
				// reset each category button
				categories[i].removeAttribute( 'class' );
				categories[i].className = '';
			}
		}
	}
	
	// select the tab
	category.setAttribute( 'class', 'selectedSort' );
	category.className = 'selectedSort';
}

var sandboxCount = 0;
var aptCompareArray = []
function selectComparisonChoice(event){
	//if dropbox doesn't exist yet, create and show it
	var dropbox = document.getElementById("dropbox");
	if (!dropbox){
		$("body").append('<div id="dropbox"></div>');
		$("#dropbox").html("<h3 id='selectCountLeft'>Select 2 more apartments to compare:</h3>");
	}
	
	//if not full, add the apartment to the dropbox
	if (sandboxCount < 3){
		var apartmentName = event.target.id
		sandboxCount++;	
		$("#dropbox").append('<div class="aptCompare">' + apartmentName +'</div>');
		aptCompareArray.push(apartmentName);
	}
	if (sandboxCount == 2){
		$("#selectCountLeft").replaceWith("<h3 id='selectCountLeft'>Select 1 more apartment to compare:</h3>")	
	}
	
	if (sandboxCount == 3){
		//sandbox is now full, get the apartments needed for the django view.
		//navigate to compare page with the apartments as GET parameters
		var url = "/housing/compare/?"
		for (var i=0; i<3; i++)
		{
			aptNum = i+1;
			url += "apt" + aptNum + "=" + aptCompareArray[i];
			if (aptNum < 3){
				url += "&"
			}
		}
		
		//console.log(url);
		window.location = url;
	}
	
	return false;//prevent default
}


/************************************************************************************************************************
/
/	Page:			Listing page, Individual Page	
/	Function: 		selectTab
/	Descritpion: 	Controls the tab navigation.
/
/***********************************************************************************************************************/
function selectTab( tab ) {	
	var tabs = tab.parentNode.childNodes;
	
	// reset all tabs and hide all panels
	for( i = 0; i < tabs.length; i++ ) {
	
		if( tabs[i].id != undefined ) {
			if ( tabs[i].className != 'intSubNavSpacer' ) {
				// reset each tab
				tabs[i].removeAttribute( 'class' );
				tabs[i].className = '';
				
				// hide each panels
				document.getElementById( tabs[i].id + 'Pnl' ).style.display = 'none';
			}
			
		}
	}
	
	// select the tab
	tab.setAttribute( 'class', 'selectedTab' );
	tab.className = 'selectedTab';
	
	// show it's panel
	document.getElementById( tab.id + 'Pnl' ).style.display = 'block';
}

/************************************************************************************************************************
/
/	Page:			Individual Page (Rating Tab Panel)	
/	Function: 		rateBtnOvr, rateBtnOut
/	Descritpion: 	Highlights "Rate Now" button upon mouseover, dim it upon mouse out.
/
/***********************************************************************************************************************/
function rateBtnOvr( href ) {
	var btn = href.parentNode;
	btn.setAttribute( 'class', 'over' );
	btn.className = 'over';
}
function rateBtnOut( href ) {
	var btn = href.parentNode;
	btn.removeAttribute( 'class' );
	btn.className = '';
}

/************************************************************************************************************************
/
/	Page:			Individual page
/	Function: 		toggleFlag, toggleThumb
/	Descritpion: 	Selects or de-selects the flag or the thumb icons on each comment.
/
/***********************************************************************************************************************/
function toggleFlag( flag, com_id ) {
    var message = "Are you sure you want to flag this comment?\nYou will not be able to un-flag this comment once it is flaged!";
    
	if( flag.className == 'flag flagOn' ) {
        alert("Sorry, only a site administrator can un-flage a message!")   
		//flag.setAttribute( 'class', 'flag' );
		//flag.className = 'flag';
	}
	else {
        var answer = confirm(message)
        if ( answer )
        {
            jQuery.get('/housing/comment_flaged/'+ com_id +"/");   
		    flag.setAttribute( 'class', 'flag flagOn' );
		    flag.className = 'flag flagOn';
        }
	}
}
function toggleThumb( thumb, com_id ) {
	var thumbs = thumb.parentNode.childNodes;
	
	// reset both thumbs to default
	for ( i = 0; i < thumbs.length; i++ ) {
		if ( (thumbs[i].className != null ) && ( thumbs[i].className != 'clearFlt' ) ) {
			if ( thumbs[i].className.indexOf( 'thumbUp' ) == -1 ) {
				thumbs[i].setAttribute( 'class', 'thumbDwn' );
				thumbs[i].className = 'thumbDwn';
			}
			else {
				thumbs[i].setAttribute( 'class', 'thumbUp' );
				thumbs[i].className = 'thumbUp';
			}
		}
	}
	
	// select or deselect the thumb
	// thumbs down
	if( thumb.className.indexOf( 'thumbUp' ) == -1) {
		if ( thumb.className == 'thumbDwn' ) {
			thumb.setAttribute( 'class', 'thumbDwn thumbDwnOn' );
			thumb.className = 'thumbDwn thumbDwnOn';
            jQuery.get('/housing/comment_not_helped/'+ com_id +"/");
		}
		else {
			thumb.setAttribute( 'class', 'thumbDwn' );
			thumb.className = 'thumbDwn';
		}
	}
	// thumbs up
	else {
		if ( thumb.className == 'thumbUp' ) {
			thumb.setAttribute( 'class', 'thumbUp thumbUpOn' );
			thumb.className = 'thumbUp thumbUpOn';
            jQuery.get('/housing/comment_helped/'+ com_id +"/");
		}
		else {
			thumb.setAttribute( 'class', 'thumbUp' );
			thumb.className = 'thumbUp';
		}
	}
}

function addExtraTerm( btn ) {

    var extraTerm       = document.getElementById( btn.id + 'ExtraTermAmt' );
    var discount        = document.getElementById( btn.id + 'DiscountAmt' );
    var discountParent  = discount.parentNode.parentNode;
    var extraTermParent = extraTerm.parentNode.parentNode;
    
    var currentTerm = document.getElementById( btn.id + 'CurrTermAmt' ).innerHTML;
    var deposit     = document.getElementById( btn.id + 'DepositAmt' ).innerHTML;
    var utilities   = document.getElementById( btn.id + 'UtilAmt' ).innerHTML;
    var utilParent  = document.getElementById( btn.id + 'UtilAmt' ).parentNode.parentNode;
    var totalAmt    = document.getElementById( btn.id + 'TotalAmt' );
    var total       = 0;
    var prevTotal   = 0;
    
    var nextTerm = getNextTerm(btn.id);
    var extraAmt = 0.00;
    
    if ( extraTermParent.style.display == 'none' ) {
        
        // display the extra term amount with the discount
        discountParent.style.display = 'block';
        extraTermParent.style.display = 'block';
        utilParent.style.borderBottom = '1px solid #d0d2d6';
        
        // add the amount to the total
        total = (parseFloat(currentTerm) + parseFloat(deposit) + parseFloat(utilities) + parseFloat(extraTerm.innerHTML)) - parseFloat(discount.innerHTML);
        totalAmt.innerHTML = parseFloat(total).toFixed(2);
        
        // push the button down and change text
        btn.setAttribute('class', 'toggleExtraTermDwn');
        btn.className = 'toggleExtraTermDwn';
        btn.innerHTML = 'Remove <b>' + nextTerm + '</b> from total';
        
    } else { 
        
        // hide the extra term amount and discount
        discountParent.style.display = 'none';
        extraTermParent.style.display = 'none';
        utilParent.style.borderBottom = 'none';
        
        // re-calculate the total
        prevTotal = parseFloat(currentTerm) + parseFloat(deposit) + parseFloat(utilities);
        totalAmt.innerHTML = prevTotal.toFixed(2);
        
        // reset the button
        btn.setAttribute( 'class', 'toggleExtraTermUp' );
        btn.className = 'toggleExtraTermUp';
        
        btn.innerHTML = 'Add ' + nextTerm + ' and <b>Save $' + parseFloat(discount.innerHTML).toFixed(0) + '</b>';
        
    }
    
}

function getNextTerm( term ) {
    var nextTerm = '';
    
    if ( term.indexOf('spring') != -1 ) {
        nextTerm = 'Summer Break';
    } else if ( term.indexOf('fall') != -1 ) {
        nextTerm = 'Winter 2010';
    } else if ( term.indexOf('seven') != -1   ){
        nextTerm = 'Fall 2009';
    } else {
        nextTerm = 'Spring 2010';
    }
    
    return nextTerm;
    
}

/************************************************************************************************************************
/
/	Page:			Compare Page	
/	Function: 		compPnlOvr, compPnlOut
/	Descritpion: 	Changes the background image of rating panels.
/
/***********************************************************************************************************************/
function compPnlOvr( panel ) {	
	panel.setAttribute( 'class', 'over' );
	panel.className = 'over';	
}
function compPnlOut( panel ) {
	panel.setAttribute( 'class', '' );
	panel.className = '';	
}

function isset(varname){
  return(typeof(window[varname])!='undefined');
}

/********************************************************************************************************************/
function add_new_comment ( form, apt_id )
{
    error = document.getElementById('commentError');
    
    qcat = document.getElementById('comSelectCat');
    comment = document.getElementById('commentTxtArea').value;
    
    qcat_value = qcat[qcat.selectedIndex].value

    if (qcat_value == '' || comment == "" || comment.length < 5 || comment == 'Write something here...' || apt_id == "")
    {
        error.style.display = "block"
        error.innerHTML = "You must select a category and enter a comment!";
        return false;
    }

    return true;
}
/********************************************************************************************************************/

/************************************************************************************************************************
/
/   Page:           Individual Page (Comments Tab Panel)    
/   Function:       clearText, showText
/   Descritpion:    Shows and hides text in text area.
/
/***********************************************************************************************************************/
function clearText(field) {
    field.innerHTML = '';
}
function showText(field) {
    if (field.innerHTML == '') {
        field.innerHTML = 'Write something here...';
    }
}

/************************************************************************************************************************
/
/   Page:           Home page, Listings Page    
/   Function:       loginDwn, loginUp, sortDwn, sortUp, postComUp, postComDwn
/   Descritpion:    Makes buttons on forms appear to push down
/
/***********************************************************************************************************************/
function loginDwn( btn ) {
    btn.setAttribute( 'class', 'down' );
    btn.className = 'down';
}
function loginUp( btn ) {
    btn.setAttribute( 'class', '' );
    btn.className = '';
}
function sortDwn( btn ) {
    btn.setAttribute( 'class', 'down' );
    btn.className = 'down';
}
function sortUp( btn ) {
    btn.setAttribute( 'class', '' );
    btn.className = '';
}
function postComDwn( btn ) {
    btn.setAttribute( 'class', 'down' );
    btn.className = 'down';
}
function postComUp( btn ) {
    btn.setAttribute( 'class', '' );
    btn.className = '';
}

/********************************************************************************************************************/

$('.arrangImgs').cycle('fade');