jQuery(document).ready(function(){
    handleSearchformCombined();
});

function handleSearchformCombined () {
	var f = $('form#searchform_combined');
    $('#search_combined .searchcol .colheader .scroller a, #search_combined_bottom .searchcol .colheader .scroller a').click(function(e){
        e.preventDefault();
        var forward = $(this).hasClass('forward');
        scrollSearchformCombinedCol($(this), forward);
    });
    
    f.find('input:reset').click(handleSearchFormReset);
    
	$('#searchresultCombinedFunctions .sortbuttons button').click(function(e) {
		var sortfieldname = $(this).attr('class').split(' ')[0];
		f.find('input[name=sort]').val(sortfieldname);
		f.submit();
	});
	
	$('#searchresultCombinedFunctions .createbutton button').click(function(e) {
		var loc = '?pageaction=jobagent_searchpage_combined&searchWords=' + f.find('input[name=searchWords]').val();
		f.find('input[name=jobdomain]:checked').each(function() {
			loc += '&jobdomain=' + $(this).val();
		});
		f.find('input[name=dk_area]:checked').each(function() {
			loc += '&dk_area=' + $(this).val();
		});
		f.find('input[name=positiontype]:checked').each(function() {
			loc += '&positiontype=' + $(this).val();
		});
		window.location = loc;
	});
	
    //$('#geography_flash_areas input[name=dk_area]').removeAttr('checked');
    $('#template_subtype_search_combined form#searchform_combined').bind('submit', submitSearchForm);
}

function handleSearchFormReset (e){
    //e.preventDefault();
    //$('form#searchform_combined').trigger('reset');
    //load_flash_maps(false);
}

function submitSearchForm (evt) {
    var f = $(this);
	$('div#searchresultCombinedBox').show();
	//$('#adsBoxTop #searchAdCount').hide();
	$('div#searchresultCombinedBox #searchResults').empty();
	$('#adsBoxTop #searchAdCount').html($('#searchresultCombinedBoxMessages .searching').html());
	$.ajax({
		type: 'POST',
		url: 'dispatcher.plex',
		data: $(this).serialize(),
		success: function (data) {
			if (!data) {
				handleSearchError();
			} else {
				$('#adsBoxTop #searchAdCount').show();
				$('#searchresultCombinedBox #searchResults').html(data);
				f.find('input[name=searchid]').val($('#searchresultCombinedBox #searchResults input#search_id_from_searchresult').val());
				f.find('input[name=jobagentid]').val($('#searchresultCombinedBox #searchResults input#jobagent_id_from_searchresult').val());
				
				var count_ads = parseInt($('#searchresultCombinedBox #searchResults input#result_count').val(), 10);
				var resultreport;
				if (count_ads == 1) {
                    resultreport = $('#searchresultCombinedBoxMessages .resultreport').html();
				} else {
                    resultreport = $('#searchresultCombinedBoxMessages .resultreport.plural').html();
				}
				$('#searchresultCombinedBox #searchAdCount').html('<span class="red">' + count_ads + '</span> ' + resultreport);
			}
		},
		error: handleSearchError
	});
	return false;
}

function handleSearchError () {
	$('#searchresultCombinedBox #searchResults').html($('#searchresultCombinedBoxMessages .errorreport').html());
}

function scrollSearchformCombinedCol (o, forward) {
    var dir = (forward) ? -1 : 1;
    var col, inner;
    var col = o.parents('.searchcol:first');
    var inner = col.find('.searchcolInner table');
    var oldMargin = parseInt(inner.css('margin-left'), 10) || 0;
    var colWidth = parseInt(col.find('table col').css('width'), 10);
    //alert(colWidth);
    var innerWidth = inner.outerWidth();
    var newMargin = oldMargin + (colWidth * dir);
    //alert(innerWidth);
    //alert(newMargin);
    if ((newMargin * -1) > innerWidth - colWidth) newMargin = oldMargin;
    //alert(newMargin);
    if (newMargin > 0) newMargin = 0;
    //alert(newMargin);
    inner.animate({
        marginLeft: newMargin}, 200);
}


// Client-side pagination
function initPagination() {
	var pagesize = parseInt($('form#searchform_combined input[name=ads_per_page]').val());
	pagesize = (pagesize) ?  pagesize : 5;
    //alert(pagesize);
	var resultsize = parseInt($('#searchResults input#result_count').val());
    //alert(resultsize);
    //alert(Math.ceil(resultsize/pagesize));
	var sets = new Array()
	for (var i = 0; i < Math.ceil(resultsize/pagesize); i++) {
		var pagenumber = i + 1;
		var resultpage = $('<div class="resultpage" id="resultpage_' + pagenumber + '"></div>');
		resultpage.append($('#searchResults > .result:lt(' + pagesize + ')'));
		$('#searchResults').append(resultpage);
		var pager_number = $('<span class="pagenumber_' + pagenumber + '" alt="' + pagenumber + '"><a href="#">' + pagenumber + '</a></span>');
		pager_number.find('a').click(function (evt) {
			gotoPage($(this).parent().attr('alt'));
			evt.preventDefault();
		});
		$('#pagination_clientside #pagination_pagenumbers').append(pager_number);
	}
	if (resultsize == 0) {
		$('#pagination_clientside').hide();
	} else if (resultsize < pagesize) {
		$('#pagination_clientside').empty();
	}
	
	$('#searchResults').append($('#pagination_clientside'));
	gotoPage(1);
}

function scrollResults() {
	var lastVisibleResultCount = 2;
	var lastVisibleResult;
	lastVisibleResult = $('#searchresultCombinedBox #searchResults .result:nth-child(' + lastVisibleResultCount + ')')
	if (!lastVisibleResult.size()) {
		lastVisibleResult = $('#searchresultCombinedBox #searchResults .result:last')
	}
	if (!lastVisibleResult.size()) {
		lastVisibleResult = $('#searchresultCombinedBox .list.ad.boxes')
	}
	var desiredScroll = lastVisibleResult.offset().top + lastVisibleResult.outerHeight() - $(window).height();
	if (desiredScroll > 0) {
		$('html,body').animate({scrollTop: desiredScroll}, 500);
	}
}

function scrollPage(i) {
	//alert(i);
    var n = 0;
	$(".resultpage").filter(':visible').each(function(){
		n = (parseInt(this.id.split('_')[1]));
	});
    n += i;
    if ($("#resultpage_" + n).size()) gotoPage(n);
}

function gotoPage(n) {
	//alert(n);
	$(".resultpage").each(function(){
		if ( $(this).css('display') == 'block' ) {
			$(this).hide();
		}
	});
    
	$("#pagination_clientside a").removeClass('active');
	
    $("#pagination_clientside span.pagenumber_" + n + " a").addClass('active');
	var selector = '#resultpage_' + n + ' ';
    $(selector).show();
	applyExcerpt(selector);
    //if (window.gotoPageCallback) gotoPageCallback();
	
}

function showAllSearchresults() {
    $(".resultpage").each(function(){
        $(this).show();
    });
    $("#pagination_clientside").empty();
    applyExcerpt();
}










