/* 
	$Id: towncats.js,v 1.16 2009/07/26 01:53:22 dpd Exp $
	Towncats.org Main menus
*/

function urlTimeStamp() {
	return "ts=" + new Date().getTime();
}

function toggleDisplay(id) {

    if (YAHOO.util.Dom.getStyle(id, "display") == "none") {
		YAHOO.util.Dom.setStyle(id, "display", "");
    } else {
		YAHOO.util.Dom.setStyle(id, "display", "none");
    }
}

var loadCatsSuccess = function(o){			
	
	var str = o.responseText;
	var jsonObj = YAHOO.lang.JSON.parse ( str ) ; 
	var cats = YAHOO.util.Dom.get("featuredCats_cats");	
	var cats1 ='';
	var cats2 =''; 
	for (var x in jsonObj) {
		var o = jsonObj[x];
		if (o.sex == null) { 
			o.sex = '?'; 
		}
/*		cats.innerHTML += '<span class="catPreview"><span class="catPreviewPicture"><a href="cats.php?id=' + o.profileID + '"><img  id="photoID-' + o.photoID + '" src="'+ homeurl + o.url + '" /></a></span><span class="catPreviewText">' + o.name + '/' + o.sex + '</span></span>'; */

		cats1 += '<td class="catPreviewPicture"><a href="cats.php?id=' + o.profileID + '"><img  id="photoID-' + o.photoID + '" src="'+ homeurl + o.url + '" /></a></td>';
		
		cats2 += '<td class="catPreviewText">' + o.name + '/' + o.sex + '</td>';

	}
	cats.innerHTML = '<table><tr>' + cats1 + '</tr> <tr>' + cats2 + '</tr> <table>';
 
};

var loadCatsFailure = function(o){ };

var loadCats = function() {
	var sUrl = baseUrl + "cats.php" + "?" + urlTimeStamp();
	var transaction = YAHOO.util.Connect.asyncRequest(
		'GET', 
		sUrl,
		{
		  success:loadCatsSuccess,
		  failure:loadCatsFailure
		}, 
		null);
};


var towncatsMenu = function () {
    var oMenuBar = new YAHOO.widget.MenuBar(
    	"towncatsNavigationMenu", { 
		maxheight: 500,
		autosubmenudisplay: true, 
		hidedelay: 750, 
		lazyload: true });
		
    oMenuBar.render();
}

var profileImageListener = function () {
	var thumbdivs = YAHOO.util.Dom.get ( "catprofile-thumbs-main");
	YAHOO.util.Event.addListener(thumbdivs, "click", profileImageSelector);
}

function profileImageSelector(e) {
	var elTarget = YAHOO.util.Event.getTarget(e);
	var me  = elTarget.id.split('-');
	if ( elTarget.tagName == "IMG" ) {
		var mi = YAHOO.util.Dom.get(elTarget.id + "-m");
		var img = YAHOO.util.Dom.get("profile-main-img");
		YAHOO.util.Dom.setAttribute	(img, "src", mi.value );
	}
}

function sponsorThisCat() {

	toggleDisplay("catprofile-sponsor-content");
	toggleDisplay("catprofile-sponsor-link");
	
}


// Set up the application under the YAHOO.example namespace
var Ex = new Object();

var paginateCatsSuccess = function (o) {

	if ( o.argument.type == "memorial" ) {
		Ex.content	= YAHOO.util.Dom.get('paged-cats-memorials');
	} else {
		Ex.content	= YAHOO.util.Dom.get('paged-cats');
	}
	Ex.json	= YAHOO.lang.JSON.parse (  o.responseText ) ;

	Ex.handlePagination = function (state) {
		// Show the appropriate content for the requested page
		// Ex.content.className = 'page' + state.page;
		var curpage = state.paginator.getCurrentPage();
		
		
		if ( Ex.json.pages == null ) { 
			Ex.content.innerHTML = "<h3>No Cats Found. Try a Different Search.</h3>";
		} else {
			Ex.content.innerHTML = Ex.json.pages[state.page];
		}
		// toggleDisplay('page' + curpage);    
		// toggleDisplay('page' + state.page);
		
		// Update the Paginator's state, confirming change
		Ex.paginator.setState(state);
	};

	// Create the Paginator widget and subscribe to its changeRequest event
	Ex.paginator = new YAHOO.widget.Paginator({
		rowsPerPage : 1,
		totalRecords : Ex.json.count,
		containers : [ 'paging-top', 'paging-bottom' ]
	});
	Ex.paginator.subscribe('changeRequest', Ex.handlePagination);
	// Render the Paginator into the configured container(s)
	Ex.paginator.render();
	if ( Ex.json.pages == null ) { 
		Ex.content.innerHTML = "<h3>No Cats Found. Try a Different Search.</h3>";
	} else {
		Ex.content.innerHTML = Ex.json.pages[Ex.paginator.getCurrentPage()];
	}
}


var paginateCats = function(e) {
	if ( e.type != undefined  ) {
		YAHOO.util.Event.preventDefault(e);		
	}
	var loading = YAHOO.util.Dom.get('catprofile-loading');

	var	method = 'GET';	
	var formObject = null;
	var postData = null;
	
	if ( (e.type == "click") || (e.type == "keypress")  ) {
		var pagedcats = YAHOO.util.Dom.get('paged-cats');
		pagedcats.innerHTML = loading.innerHTML;
		method = 'POST';
		formObject = YAHOO.util.Dom.get('searchForm');
		YAHOO.util.Connect.setForm(formObject, false, false);
	}  else if (e.type == "memorial") {
		method = 'POST';
		postData = encodeURIComponent('checkboxes[status][]') + "=" + encodeURIComponent("'memorial'")+ '&' ;
		postData += encodeURIComponent('availoveride') + "=" + encodeURIComponent("1");
		
		var pagedcats = YAHOO.util.Dom.get('paged-cats-memorials');
		pagedcats.innerHTML = loading.innerHTML;
	} else {
		var pagedcats = YAHOO.util.Dom.get('paged-cats');
		pagedcats.innerHTML = loading.innerHTML;	
	}


	var sUrl = "cats.php" + "?xhr&" + urlTimeStamp();
	var transaction = YAHOO.util.Connect.asyncRequest(
		method, 
		sUrl,
		{
		  success:paginateCatsSuccess,
		  failure:loadCatsFailure,
		  argument:{type:e.type}
		  
		}, 
		postData);
};

var saveInputKeyPressed = function(e) {
	if (e.keyCode == 13) { 
		paginateCats(e);
	} 
};
	

var initSearch = function() { 
	YAHOO.util.Event.addListener("catSearch", "click", paginateCats);
	YAHOO.util.Event.addListener("catprofile-search-text", "keypress", saveInputKeyPressed);
	
};

YAHOO.util.Event.onContentReady("searchForm", initSearch);
YAHOO.util.Event.onContentReady("towncatsNavigationMenu", towncatsMenu);
YAHOO.util.Event.onAvailable("featuredCats_cats", loadCats);
YAHOO.util.Event.onContentReady("catprofile-thumbs-main", profileImageListener);

var pageCats = new Object();
pageCats.type = 'cats';
var pageMemorial = new Object();
pageMemorial.type = 'memorial';


YAHOO.util.Event.onContentReady("paged-cats", paginateCats, pageCats);
YAHOO.util.Event.onContentReady("paged-cats-memorials", paginateCats, pageMemorial);


