// ---------------------------------
// Common JS routines
// ---------------------------------

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function randNum (num) {
     var now = new Date();
     var rand = Math.round(num * Math.cos(now.getTime()));
     if (rand < 0) rand = - rand; if (rand == 0) rand++;
     return rand;
	}

function makeArray(){
	this.length = makeArray.arguments.length;
    for (var i=0; i<this.length; i++)
     this[i] = makeArray.arguments[i];
	}

function setPic(i) {
	var x,i = (i%imageArray.length) + 1;
	if ((x=MM_findObj("pic"))!=null) {
 	  x.src=imageArray[i];
	}
}

// --- Alternate View stuff ---
var aImages, aText, current = 0;
function rotateImage(imgName, txtName) {
	img = document.getElementById(imgName);
	txt = document.getElementById(txtName);
	
	current = (current+1)%aImages.length;
	if (img) img.src = aImages[current];
	if (txt) txt.innerHTML = aText[current];
}

function goLink(theurl) {
	w=window.open(theurl,"ergoExtra","menubar,resizable,scrollbars,titlebar,toolbar,status");
	if (w && window.focus) {w.focus();}
	return false;
}

// with no focus action (IE problem with pdf files)
function goPdfLink(theurl) {
	w=window.open(theurl,"ergoExtra","menubar,resizable,scrollbars,titlebar,toolbar,status");
	return false;
}

function isFilled(obj)
{
	var value=trim(obj.value);
	var out=false;
	
	if(value!='')
		out=true;
	else
		obj.className='warn';
		
	return out;
}

function isChecked(obj)
{
	var out=false;
	if(obj.checked)
		out=true;
	else
		obj.className='warn';
		
	return out;
}

function isInNumericRange(obj, minNumber, maxNumber)
{
	var number=(parseFloat(obj.value) ? parseFloat(obj.value) : 0);
	var minNumber=parseFloat(minNumber);
	var maxNumber=parseFloat(maxNumber);
	var out=false;
	
	obj.value=number;
	if( number>=minNumber && number<=maxNumber )
		out=true;
	else
		obj.className='warn';
		
	return out;
}

function ltrim(str) { 
	for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
	return str.substring(k, str.length);
}
function rtrim(str) {
	for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j--) ;
	return str.substring(0,j+1);
}
function trim(str) {
	return ltrim(rtrim(str));
}
function isWhitespace(charToCheck) {
	var whitespaceChars = " \t\n\r\f";
	return (whitespaceChars.indexOf(charToCheck) != -1);
}
