
//
// AJAX Gallery functions
//

function createRequestObject()
{
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var g_http = createRequestObject();

//
// Main Gallery Container
//

var main_page = 1;
var sort = 'entry_id';
var sort_category = '';
var main_limit = 16;

function galleries_main_handle_response() {
	
    if(g_http.readyState == 4)
	{
        var response = g_http.responseText;
		if (response.indexOf('No photos found.') !=-1)
		{
			main_page--;
			//document.getElementById('galleries_main_next_button').src = '/images/right-disabled.gif';	
			return false;
		}
		//clear gallery div and load content into new div
		var container = document.getElementById('gallery_index');
		container.innerHTML = "";
		var newdiv = document.createElement("div");
		newdiv.innerHTML = response;
		container.appendChild(newdiv);

		//add thickbox functionality to new content
	 	thickboxer();

	}

}

function ajax_gallery(order, page)
{
	if(main_page != page)
		main_page = page;
	sort = order;
	g_http.open('get', '/index.php/gallery/ajax_gallery/'+order+'/'+main_limit+'/'+page);
    g_http.onreadystatechange = galleries_main_handle_response;
    g_http.send(null);
}

function ajax_gallery_category(category, page)
{
	if(main_page != page)
		main_page = page;
	sort = 'category';
	sort_category = category;
	offset = (page-1)*main_limit;
	url = '/index.php/gallery/ajax_gallery_category/category/'+category+'/'+main_limit+'/'+page+'/'+offset+'/';
	g_http.open('get', url);
    g_http.onreadystatechange = galleries_main_handle_response;
    g_http.send(null);
}

function next_main()
{
	main_page++;
	if(sort == 'category')
	{
		ajax_gallery_category(sort_category, main_page);
	}
	else
	{
		ajax_gallery(sort, main_page);
	}
	//document.getElementById('galleries_main_prev_button').src = '/images/left-enabled.gif';	
}

function prev_main()
{
	if(main_page == 1)
	{
		return;
	}
	else
	{
		main_page--;
		//document.getElementById('galleries_main_next_button').src = '/images/right-enabled.gif';
		if(sort == 'category')
		{
			ajax_gallery_category(sort_category, main_page);
		}
		else
		{
			ajax_gallery(sort, main_page);
		}
	}
	if(main_page == 1)
	{
		//document.getElementById('galleries_main_prev_button').src = '/images/left-disabled.gif';
		return;
	}
}

//
// Most Viewed and Top Rated
//

var target_div;
var most_viewed_page = 1;
var top_rated_page = 1;

function galleries_top_rated_handle_response() {
	
    if(g_http.readyState == 4)
	{
        var response = g_http.responseText;
		if (response.indexOf('No photos found.') !=-1)
		{
			top_rated_page--;
			//document.getElementById('galleries_top_rated_next_button').src = '/images/right-disabled.gif';	
			return false;
		}
			

		//clear gallery div and load content into new div
		var container = document.getElementById(target_div);
		container.innerHTML = "";
		var newdiv = document.createElement("div");
		newdiv.innerHTML = response;
		container.appendChild(newdiv);

		//add thickbox functionality to new content
		thickboxer();
	}
}

function galleries_most_viewed_handle_response() {
	
    if(g_http.readyState == 4)
	{
        var response = g_http.responseText;
		if (response.indexOf('No photos found.') !=-1)
		{
			most_viewed_page--;
			//document.getElementById('galleries_most_viewed_next_button').src = '/images/right-disabled.gif';	
			return false;
		}

		//clear gallery div and load content into new div
		var container = document.getElementById(target_div);
		container.innerHTML = "";
		var newdiv = document.createElement("div");
		newdiv.innerHTML = response;
		container.appendChild(newdiv);

		//add thickbox functionality to new content
		thickboxer();
	}
}

function ajax_gallery_top_rated(page)
{
	order = 'rating';
	limit = 9;
	g_http.open('get', '/index.php/gallery/ajax_gallery_top_rated/'+order+'/'+limit+'/'+page);
    g_http.onreadystatechange = galleries_top_rated_handle_response;
    g_http.send(null);
}

function ajax_gallery_most_viewed(page)
{
	order = 'num_views';
	limit = 9;
	g_http.open('get', '/index.php/gallery/ajax_gallery_most_viewed/'+order+'/'+limit+'/'+page);
    g_http.onreadystatechange = galleries_most_viewed_handle_response;
    g_http.send(null);
}

function next_most_viewed()
{
	target_div = 'galleries_most_viewed_index';

	most_viewed_page++;
	ajax_gallery_most_viewed(most_viewed_page);
	//document.getElementById('galleries_most_viewed_prev_button').src = '/images/left-enabled.gif';	
}

function prev_most_viewed()
{
	if(most_viewed_page == 1)
	{
		return;
	}
	else
	{
		target_div = 'galleries_most_viewed_index';
		most_viewed_page--;
		//document.getElementById('galleries_most_viewed_next_button').src = '/images/right-enabled.gif';
		ajax_gallery_most_viewed(most_viewed_page);
	}
	if(most_viewed_page == 1)
	{
		//document.getElementById('galleries_most_viewed_prev_button').src = '/images/left-disabled.gif';
		return;
	}
}

function next_top_rated()
{
	target_div = 'galleries_top_rated_index';

	top_rated_page++;
	ajax_gallery_top_rated(top_rated_page);
	//document.getElementById('galleries_top_rated_prev_button').src = '/images/left-enabled.gif';	
}

function prev_top_rated()
{
	if(top_rated_page == 1)
	{
		return;
	}
	else
	{
		target_div = 'galleries_top_rated_index';
		top_rated_page--;
		//document.getElementById('galleries_top_rated_next_button').src = '/images/right-enabled.gif';
		ajax_gallery_top_rated(top_rated_page);
	}
	if(top_rated_page == 1)
	{
		//document.getElementById('galleries_top_rated_prev_button').src = '/images/left-disabled.gif';
		return;
	}
}

//
// Expand/Collapse Javascript
//
function collapse_children(element) {
	
	var elements = element.getElementsBySelector('.expanded');
	
	for(var i = 0; i < elements.length; i++) {
		elements[i].removeClassName('expanded');
	}
}

function expand(element, collapse_siblings)
{
	// Trying to collapse the current element?
	var expand = !element.hasClassName('expanded');
	
	// Should sibling elements be collapsed
	if (collapse_siblings == true) {
		collapse_children(element.parentNode);
	}
	
	// Expand element
	if (expand == true) {
		element.addClassName('expanded');
	}
}


//
// MyGallery (Favorites) 
//

var change = '';

function gallery_favorite_switch(order)
{
	jQuery("#gallery_status").toggle();
	
	if(order == 'add')
	{
		jQuery("#gallery_remove").toggle();
	}
	else if(order == 'remove')
	{
		jQuery("#gallery_add").toggle();
	}

}

function gallery_favorite_handle_response() {
	
    if(g_http.readyState == 4)
	{
	        var response = g_http.responseText;

		//clear gallery div and load content into new div
		var add_container = document.getElementById('gallery_add');
		var remove_container = document.getElementById('gallery_remove');
		var status_container = document.getElementById('gallery_status');
		
		if(change == 'add')
		{
			jQuery("#gallery_add").toggle();
			jQuery("#gallery_status").html(response);
			jQuery("#gallery_status").toggle();
			
			if (response.indexOf('success') == -1)
            	return false;
				
			setTimeout('gallery_favorite_switch("add")', 4000);
		}
		else if(change == 'remove')
		{
			jQuery("#gallery_remove").toggle();
			jQuery("#gallery_status").html(response);
			jQuery("#gallery_status").toggle();
		
			if (response.indexOf('success') == -1)
            	return false;
	
			setTimeout('gallery_favorite_switch("remove")', 4000);
		}

	}

}

function gallery_favorite_add(entry_id, image_id)
{
	change = 'add';
	g_http.open('get', '/index.php/includes/gallery_favorite_add/'+entry_id+'/'+image_id);
    g_http.onreadystatechange = gallery_favorite_handle_response;
    g_http.send(null);
}

function gallery_favorite_remove(entry_id, image_id)
{
	change = 'remove';
	g_http.open('get', '/index.php/includes/gallery_favorite_add/'+entry_id+'/'+image_id+'/delete');
    g_http.onreadystatechange = gallery_favorite_handle_response;
    g_http.send(null);
}

