var jsOpener = new Object();

$(document).ready(function(){
	$('#checkToggle').bind('click', function() { jsOpener.toggleCheckAll(); });
	$('#opener-cont input').bind('keyup', function(e) { if(e.keyCode == 13) { jsOpener.search(); } });
	$scrolling = $('#opener-cont .scrolling');
	if($scrolling.length>0) { $scrolling.jScrollPane({ showArrows: true }); }
});

jsOpener.categorizeSubmit = function(viewType, categoryType, categoryUid) {
	if($('#selectCat').val() < 0)
	{
		alert('Please select a category!');
		return;
	}

	$.ajax({
		type:'POST',
		url:'/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid+'/submit-categorize?' + jsOpener.serializeSelected() + '&catUid=' + $('#selectCat').val(),
		success: function(ret) {
			if($.trim(ret).indexOf('ok')==0)
				{ location='/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid; }
			else
				{ alert('ERROR: ' + $.trim(ret)); }
		}
	});
};

jsOpener.deleteSubmit = function(viewType, categoryType, categoryUid) {
	$.ajax({
		type:'POST',
		url:'/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid+'/submit-delete?' + jsOpener.serializeSelected(),
		success: function(ret) {
			if($.trim(ret).indexOf('ok')==0)
				{ location='/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid; }
			else
				{ alert('ERROR: ' + $.trim(ret)); }
		}
	});
};

jsOpener.categorizeShow = function(viewType, categoryType, categoryUid) {
	if($('input:checked').length == 0)
	{
		alert('none selected');
		return;
	}
	location='/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid+'/categorize?' + jsOpener.serializeSelected();
};

jsOpener.deleteShow = function(viewType, categoryType, categoryUid) {
	if($('input:checked').length == 0)
	{
		alert('none selected');
		return;
	}
	location='/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid+'/delete?' + jsOpener.serializeSelected();
};

jsOpener.search = function() {
	var checkBoxExtra = '';
	if($('#searchIncludePreDefined:checked').val()==null) { checkBoxExtra += '&searchIncludePreDefined=0'; }
	if($('#searchIncludeSaved:checked').val()==null) { checkBoxExtra += '&searchIncludeSaved=0'; }
	$.post(
		'/app/opener/'+$('#searchViewType').val()+'/'+$('#searchCategoryTypeName').val(),
		$('#opener-search-form').serialize() + '&go' + checkBoxExtra,
		function(html) { $('#opener-search-result-table').html(html); }
	);
	$('#opener-search-results').show();
};

jsOpener.searchReset = function() {
	location='/app/opener/'+$('#searchViewType').val()+'/'+$('#searchCategoryTypeName').val()+'?reset=1';
};

jsOpener.paginateResults = function(action, extra) {
	var curOffset = parseInt($('#searchOffset').val());
	var curRpp = parseInt($('#searchRowsPerPage').val());
	if(action == 'sort')
	{
		var ordBy = extra != null ? extra : '2';
		if($('#searchOrderBy').val() == ordBy) { ordBy = ordBy * (-1); }
		$('#searchOrderBy').val(ordBy);
		$('#searchOffset').val('0');
	}
	else if(action == 'resultrowspp')
	{
		$('#searchRowsPerPage').val('' + $('#resultrowspp').val());
		$('#searchOffset').val('0');
	}
	else if(action == 'first')
	{
		$('#searchOffset').val('0');
	}
	else if(action == 'prev')
	{
		$('#searchOffset').val('' + (curOffset - curRpp));
	}
	else if(action == 'next')
	{
		$('#searchOffset').val('' + (curOffset + curRpp));
	}
	else if(action == 'last')
	{
		var tot = ($('#resulttotalcnt').length > 0) ? $('#resulttotalcnt').attr('rel') : 0;
		var pages = Math.ceil(tot / curRpp);
		$('#searchOffset').val('' + curRpp * ( pages > 0 ? pages-1 : 0));
	}
	else
	{
		$('#searchRowsPerPage').val('20');
		$('#searchOffset').val('0');
	}
	$('#opener-search-result-table').html('<image src="/images/new/ajax-loader-trans.gif" border="0" alt=""/>');
	jsOpener.search();
};

jsOpener.serializeSelected = function() {
	var str = '';
	$('input:checked').each(function(i){
		if(str != '') { str += '&'; }
		str += 'uid[]=' + $(this).attr('value');
	});
	return str;
};

jsOpener.deleteCategory = function(viewType, categoryType, categoryUid, delCatUid) {
	$.ajax({
		type:'POST',
		url:'/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid+'/submit-category-delete?catUid=' + delCatUid,
		success: function(ret) {
			if($.trim(ret) == 'ok')
			{
				if(delCatUid == categoryUid) { categoryUid = -2; }
				location='/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid + '/manage';
			}
			else
				{ alert('ERROR: ' + $.trim(ret)); }
		}
	});
};

jsOpener.updateCategory = function(viewType, categoryType, categoryUid, updateCatUid) {
	if($('#newName').val() == 'Enter New Category Name')
	{
		alert('Please enter a name for new category!');
		return
	}

	$.ajax({
		type:'POST',
		url:'/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid+'/submit-category',
		data:'catUid='+updateCatUid+'&newName='+$('#newName').val()+'&newDesc='+$('#newDesc').val(),
		success: function(ret) {
			if($.trim(ret) == 'ok')
				{ location='/app/opener/'+viewType+'/'+categoryType+'/'+categoryUid + '/manage'; }
			else
				{ alert('ERROR: ' + $.trim(ret)); }
		}
	});
};

var checkToggle = false;
jsOpener.toggleCheckAll = function() {
	checkToggle = !checkToggle;
	$('.data-table-cont input[type=checkbox]').each(function(e){ this.checked = checkToggle; });
};
