/*********************************************************************************
DOM/Javascript and AJAX scripts for Practical Fishkeeping
Copyright Matt Clarke, February 21, 2007
*********************************************************************************/

// Expand collapse div (used frequently)
function expandCollapse() {
	for (var i=0; i<expandCollapse.arguments.length; i++) {
		var element = document.getElementById(expandCollapse.arguments[i]);
		element.style.display = (element.style.display == "none") ? "block" : "none";
	}
}


// Clear Genus field of Danio on Fish Mapper
function clearGenus(field) {
	var s = field.value;
	var instr = s.substring(0,5);
	if (instr == 'Danio') 
	{ // clear field
		field.value = '';
	}
}


// Clear species field of rerio on Fish Mapper
function clearSpecies(field) {
	var s = field.value;
	var instr = s.substring(0,5);
	if (instr == 'rerio') 
	{ // clear field
		field.value = '';
	}
}

// Load Ajax content and show loading icon
function ajaxFunction(url, div) {
	var image = document.getElementById('loader').innerHTML = '<center><img src="http://www.practicalfishkeeping.co.uk/pfk/graphics/ajax-loading-bar.gif" alt="Loading..."/></center>'; 
	var doStuff = new Ajax(url, {update: $(div), onComplete: function(){
		document.getElementById('loader').innerHTML = '';
		}
	}).request(); 
} 

// Autoexpands textareas as the user types
// Only compatible with cols/rows settings, not CSS
function autoexpandTextarea(t) {
    a = t.value.split('\n');
    b=1;
    for (x=0;x < a.length; x++) {
        if (a[x].length >= t.cols) b+= Math.floor(a[x].length/t.cols);
    }
    b+= a.length;
    if (b > t.rows) t.rows = b;
}

// Count characters remaining
function charactersRemaining(fieldName,warningName,remainingName,maxChars) {
  var len = fieldName.value.length;
  if (len > maxChars) {
    fieldName.value = fieldName.value.substring(0,maxChars);
    len = maxChars;
  }
  document.getElementById(remainingName).innerHTML = maxChars - len;
}