function call_click_bindings(_tag_) {
	if (call_click_bindings.click_bindings == undefined)
		return;
    for (var i= 0; i < call_click_bindings.click_bindings.length; i++) {
        var func= call_click_bindings.click_bindings[i];
        func(_tag_);
    }
}

function register_click_binding(func) {
	if (call_click_bindings.click_bindings == undefined)
		call_click_bindings.click_bindings= new Array();
	call_click_bindings.click_bindings.push(func);
}

function call_submit_bindings(form_id) {
	if (call_submit_bindings.submit_bindings == undefined)
		return;
	for (var i= 0; i < call_submit_bindings.submit_bindings.length; i++) {
		var func= call_submit_bindings.submit_bindings[i];
		func(form_id);
	}
}

function register_submit_binding(func) {
	if (call_submit_bindings.submit_bindings == undefined)
		call_submit_bindings.submit_bindings= new Array();
	call_submit_bindings.submit_bindings.push(func);
}

function _udpate_pages_results(){
    if (_curpag_ == 0) 
        $('#_anterior_').css('visibility', 'hidden');
    else 
        $('#_anterior_').css('visibility', 'visible');
    
    if ((_curpag_ + 1) * 10 > _pags_.length - 1) 
        $('#_siguiente_').css('visibility', 'hidden');
    else 
        $('#_siguiente_').css('visibility', 'visible');
    
    if (_curpag_ == 0 || (_curpag_ + 1) * 10 > _pags_.length - 1) 
        $('#_sep_').css('visibility', 'hidden');
    else 
        $('#_sep_').css('visibility', 'visible');
    
    for (var i = 0; i < 10; i++) {
        if (_curpag_ * 10 + i < _pags_.length) {
            $('#_thumbnail_' + i + '_').css('display', 'block').attr('actualpage', _curpag_ * 10 + i).unbind('click');
            call_click_bindings('#_thumbnail_' + i + '_');
        }
        else 
            $('#_thumbnail_' + i + '_').css('display', 'none').removeAttr('actualpage');
    }
}

function _udpate_thumbnail(_tag_){
    var _pag_ = _pags_[$(_tag_).attr('actualpage')];
    if (!_pag_[2].src) {
        $.getJSON('/mpdsearch/loadthumb/' + _pag_[0], function(data){
            _pag_[2].src = data;
            $(_tag_ + ' a img').attr('src', _pag_[2].src);
        });
    }
    else 
        $(_tag_ + ' a img').attr('src', _pag_[2].src);
    $(_tag_ + ' .mpdvisor_buscador_resultado_pagina').html(_pagina_str_ + ' ' + _pag_[1]);
}

function _update_goto(_tag_) {
	var _pag_= _pags_[$(_tag_).attr('actualpage')];
	$(_tag_ + ' a').click(function() { goto_page(_pag_[1]); });
}

function tmp(_tag_) {
	$(_tag_).ajaxSubmit({
		'url': '/mpdsearch/busqueda-ajax-en-paginas',
		'type': 'POST',
		'dataType': 'json',
		'success': function(data, success, jsqs){
			$('#mpdsearch_toolbar_cantidad_resultados').css('background-position', '-50% -100%');
			$('#mpdsearch_toolbar_cantidad_resultados p').html(data[0]);
			_pags_ = new Array(data[1].length);
			for (_i = 0; _i < data[1].length; _i++)
				_pags_[_i] = new Array(data[1][_i][0], data[1][_i][1], new Image());
			_pagina_str_ = data[2];
			_curpag_ = 0;
			_udpate_pages_results();
		}
	});
}

function _do_submit(_tag_) {
	$('#mpdsearch_toolbar_cantidad_resultados p').html('<br/>');
	$('#mpdsearch_toolbar_cantidad_resultados').css('background-position', '50% 80%');
	setTimeout("tmp('" + _tag_ + "')", 3000);
}

$(document).ready(function(){
    $('#_anterior_').click(function(){
        _curpag_ = _curpag_ - 1;
        _udpate_pages_results();
    });
    $('#_siguiente_').click(function(){
        _curpag_ = _curpag_ + 1;
        _udpate_pages_results();
    });
	register_click_binding(_udpate_thumbnail);
	register_click_binding(_update_goto);
    if (jQuery().ajaxForm) {
        register_submit_binding(_do_submit);
		$('#mpdsearch_search_in_pages').ajaxForm(function() {
			call_submit_bindings('#mpdsearch_search_in_pages');
        });
    }
    _curpag_ = 0;
    _udpate_pages_results();
    var $_GET = {};
    document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function(){
        function decode(s){
            return decodeURIComponent(s).replace(/\+/g, " ");
        }
        $_GET[decode(arguments[1])] = decode(arguments[2]);
    });
    if ($_GET["busqueda"]) {
        $('#mpdsearch_search_in_pages_textfield').attr('value', decodeURIComponent($_GET['busqueda']));
        register_on_mpdvisor_ready_callback(function() {
            toolbar_pestanaon('mpdvisor_busqueda');
            toolbar_vercapa('mpdvisor_contenido_buscador');
        });
    }
    else {
        $('#mpdsearch_toolbar_cantidad_resultados p').html('<br/>');
    }
});
