// let's start the jQuery while I wait.
// step 1: onload - capture the submit event on the form.
$(function() { // onload...do
    var imgFalse = 'images/false.png';
    var imgTrue = 'images/true.png';

    var options = { 
        target:        '#response',   // target element(s) to be updated with server response 
        beforeSubmit:  showRequest,  // pre-submit callback 
        success:       showResponse  // post-submit callback 
 
        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      'post'      // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 

	$("#search_par_reference_text").autocompleteArray(
		[
"1 Chroniques"
,"1 Corinthiens"
,"1 Jean"
,"1 Pierre"
,"1 Rois"
,"1 Samuel"
,"1 Thessaloniciens"
,"1 Timothée"
,"2 Chroniques"
,"2 Corinthiens"
,"2 Jean"
,"2 Pierre"
,"2 Rois"
,"2 Samuel"
,"2 Thessaloniciens"
,"2 Timothée"
,"3 Jean"
,"Abdias"
,"Actes"
,"Aggée"
,"Amos"
,"Apocalypse"
,"Éphésiens"
,"Ésaïe"
,"Ézéchiel"
,"Cantique des Cantiques"
,"Colossiens"
,"Daniel"
,"Deutéronome"
,"Ecclésiaste"
,"Esdras"
,"Esther"
,"Exode"
,"Ezéchiel"
,"Galates"
,"Genèse"
,"Habacuc"
,"Hébreux"
,"Jacques"
,"Jérémie"
,"Jean"
,"Joël"
,"Job"
,"Jonas"
,"Josué"
,"Jude"
,"Juges"
,"Lamentations"
,"Lévitique"
,"Luc"
,"Malachie"
,"Marc"
,"Matthieu"
,"Michée"
,"Nahoum"
,"Nahum"
,"Néhémie"
,"Nombres"
,"Osée"
,"Philémon"
,"Philippiens"
,"Proverbes"
,"Psaumes"
,"Romains"
,"Ruth"
,"Sophonie"
,"Tite"
,"Zacharie"
		],
		{
			delay:10,
			minChars:1,
			matchSubset:1,
			onItemSelect:selectItem,
			onFindValue:findValue,
			autoFill:true,
			maxItemsToShow:10
		}
	);
    $("#clelink").tooltip();

    $('#search_par_reference_reset').click(function ()  {
	$('#response').hide();
    });

    $('#search_par_reference_chapitre_select').change(function () {
	  referenceText();
     }).change();

    $('#search_par_reference_verset_select').change(function () {
	  referenceText();
     }).change();

    // Biblical References Select box
    $('#search_par_reference_livre_select').change(function () {
	$.getJSON("selectbox_chapitre.php",{id: $(this).val(), ajax: 'true'}, function(j){
	      var options = '';
	      options += '<option value="' + j[0].optionValue + '" selected>' + j[0].optionDisplay + '</option>';
	      for (var i = 1; i < j.length; i++) {
	        options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
	      }
	      $("select#search_par_reference_chapitre_select").html(options);
	      $("select#search_par_reference_chapitre_select option[1]").attr({selected:"selected"});
    })
	  referenceText_livre();
        })
        .change();

    // Biblical References Select box
    $('#search_par_reference_chapitre_select').change(function () {
        $.getJSON("selectbox_verset.php",{livre: $('#search_par_reference_livre_select').val(), chapitre: $(this).val(), ajax: 'true'}, function(j){
              var options = '';
              options += '<option value="' + j[0].optionValue + '" selected>' + j[0].optionDisplay + '</option>';
              for (var i = 1; i < j.length; i++) {
                options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
              }
              $("select#search_par_reference_verset_select").html(options);
              $("select#search_par_reference_verset_select option[1]").attr({selected:"selected"});
    })
          referenceText();
        })
        .change();

    highlight();

    soustitres();
    $("#hidetitres").change(function() {
	     soustitres();
     });

  var originalFontSize = $('#response').css('font-size');
    $(".resetFont").click(function(){
    $('#response').css('font-size', originalFontSize);
  });

  // Increase Font Size
  $(".increaseFont").click(function(){
    var currentFontSize = $('#response').css('font-size');
    var currentFontSizeNum = parseFloat(currentFontSize, 10);
    var newFontSize = currentFontSizeNum*1.2;
    $('#response').css('font-size', newFontSize);
    return false;
  });

  // Decrease Font Size
  $(".decreaseFont").click(function(){
    var currentFontSize = $('#response').css('font-size');
    var currentFontSizeNum = parseFloat(currentFontSize, 10);
    var newFontSize = currentFontSizeNum*0.8;
    $('#response').css('font-size', newFontSize);
    return false;
  });

    enable_aide_liens();

    // bind form using 'ajaxForm' 
    $('#search_par_reference').ajaxForm(options); 
    $('#search_par_mot').ajaxForm(options); 

    $("#search_par_reference_reset").click(function () {
      $('#response').hide();
    });
}); 

function soustitres() {
	switch ($("#hidetitres:checked").length)
	{
		case 0:
		      $('.titre4').css('display','block');
		      $('.titre3').css('display','block');
		      $('.titre2').css('display','block');
		      $('.titre1').css('display','block');

		break;
		default:
    			$('.titre4').css('display','none');
			$('.titre3').css('display','none');
		        $('.titre2').css('display','none');
      			$('.titre1').css('display','none');
	}	
}

function referenceText_livre() {
	  livre = $('#search_par_reference_livre_select option:selected').text();
          $("#search_par_reference_text").val(livre + " 1:1");
}

function referenceText() {
          var str = "";
	  var i = 0;
          $("#search_par_reference_select select option:selected").each(function () {
	        str += $(this).text();
		str += (i==1) ? ":" : "";
		str += (i==0) ? " " : "";
		i = i + 1;
              });
          $("#search_par_reference_text").val(str);
}

function enable_aide_liens() {
	$('.aide').click(function ()  {
		$('#tabcontainer > ul').tabs('select', 2);
	});
}

// pre-submit callback 
function showRequest(formData, jqForm, options) { 
    // formData is an array; here we use $.param to convert it to a string to display it 
    // but the form plugin does this for you automatically when it submits the data 
    //var queryString = $.param(formData); 
 
    // jqForm is a jQuery object encapsulating the form element.  To access the 
    // DOM element for the form do this: 
    // var formElement = jqForm[0]; 
 
    //alert('About to submit: \n\n' + queryString); 
 
    // here we could return false to prevent the form from being submitted; 
    // returning anything other than false will allow the form submit to continue 
    //$('#response').fadeTo("fast", 0.0).hide(); 
    $('#activity_indicator').css('display','inline');
    return true; 
} 
 
// post-submit callback 
function showResponse(responseText, statusText)  { 
    // for normal html responses, the first argument to the success callback 
    // is the XMLHttpRequest object's responseText property 
 
    // if the ajaxForm method was passed an Options Object with the dataType 
    // property set to 'xml' then the first argument to the success callback 
    // is the XMLHttpRequest object's responseXML property 
 
    // if the ajaxForm method was passed an Options Object with the dataType 
    // property set to 'json' then the first argument to the success callback 
    // is the json data object returned by the server


    soustitres();
    $("#hidetitres").change(function() {
	     soustitres();
     });

    enable_aide_liens();
    $('#police_nav').show();
    $('#activity_indicator').css('display','none');

    $('#response').fadeTo("slow", 1.0); 

    //alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
    //    '\n\nThe output div should have already been updated with the responseText.'); 
    highlight();
} 

function fill_form_reference_range (livre, chapitre, verset, v1) {
	$("#search_par_reference_text").val(livre + " " + chapitre + ":" + verset + "-" + v1);
	$("#search_par_reference_livre_select").val(livre);
	$("#search_par_reference_chapitre_select").val(chapitre);
	$("#search_par_reference_verset_select").val(verset);
}

function fill_form_reference_chapitre (livre, chapitre) {
	$("#search_par_reference_text").val(livre + " " + chapitre);
	$("#search_par_reference_livre_select").val(livre);
	$("#search_par_reference_chapitre_select").val(chapitre);
}

function fill_form_reference (livre, chapitre, verset) {
	$("#search_par_reference_text").val(livre + " " + chapitre + ":" + verset);
	$("#search_par_reference_livre_select").val(livre);
	$("#search_par_reference_chapitre_select").val(chapitre);
	$("#search_par_reference_verset_select").val(verset);
}

function fill_form_search (texte, versions) {
	$("#search_par_mot_text").val(texte);
}

function fill_form_hack () {
	$("#search_par_mot_text").val('"donné son Fils unique"');
}

function highlight() {
    $(".verset").hover(function() {  
	var title = $(this).attr("class").split(" ")[1];
	var t1 = '.' + title; 
	$(t1).addClass('current'); 
    }, function() { 
	var title = $(this).attr("class").split(" ")[1];
	var t1 = '.' + title; 
	$(t1).removeClass('current'); 
    });
    $('#search_par_reference_reset').click(function ()  {
        $('#response').hide();
    });
}

function findValue(li) {
	if( li == null ) return alert("No match!");
	// if coming from an AJAX call, let's use the CityId as the value
	if( !!li.extra ) var sValue = li.extra[0];
}
function selectItem(li) {
	findValue(li);
}
function formatItem(row) {
	return row[0] + " (id: " + row[1] + ")";
}
function lookupAjax(){
	var oSuggest = $("#CityAjax")[0].autocompleter;
	oSuggest.findValue();
	return false;
}
function lookupLocal(){
	var oSuggest = $("#CityLocal")[0].autocompleter;
	oSuggest.findValue();
	return false;
}
