String.prototype.trim = function() { 
	return this.replace(/^\s+|\s+$/, ''); 
};

function toArray(obj) {
	if(!obj.length) {
		var tmp = new Array();
		tmp[0] = obj;
		return tmp;
	}
	return obj;
}

function openWin(link, name, width, height, scrollbars) {
   if(!width) width = 500;
   if(!height) height = 800;
   if(!name) name = 'popup';
   if(!scrollbars) scrollbars = 'yes';
   var win = window.open(link.href, name,'height=' + height + ',width=' + width + ', scrollbars=' + scrollbars + ', resizable=yes');
   win.focus();
   return false;
}

function openUrl(url, name, width, height, scrollbars) {
	if(!width) width = 500;
	if(!height) height = 800;
	if(!name) name = 'popup';
	if(!scrollbars) scrollbars = 'yes';
	var win = window.open(url, name,'height=' + height + ',width=' + width + ', scrollbars=' + scrollbars + ', resizable=yes');
	win.focus();
	return win;
}

function onClickUpload(link) {
	var rtn = showModalDialog(link.href, '', 'center:yes;resizable:yes;help:no;status:no;dialogHeight:100px;dialogWidth:300px;scroll:yes');
	if(rtn) document.location.reload();
	return false;
}

function onClickUploadAppFile(link) {
	var fileName = showModalDialog(link.href, '', 'center:yes;resizable:yes;help:no;status:no;dialogHeight:100px;dialogWidth:300px;scroll:yes');
	if(fileName) {
		if(link.innerHTML == 'upload') {
			link.innerHTML = fileName;
		} else {
			link.innerHTML += ', ' + fileName;
		}
	}
	return false;
}

function highlightRow(row) {
	var table = row.parentElement;
	
	var oldRow = table.selectedRow;
	if(oldRow) {
		if(oldRow.className == 'altRow') {
			oldRow.style.background = 'WhiteSmoke';
		} else if(oldRow.className == 'regRow') {
			oldRow.style.background = 'white';
		} else {
			oldRow.style.background = '';
		}
		oldRow.selectedRow = null;
	}
	
	row.style.background = '#FFFFCC';
	
	table.selectedRow = row;
	
	row.selectedRow = true;
	
	return row;
}

function highlightRowMouseOver(row) {
	if(window.event.ctrlKey) {
		row.style.background = '#BEDAFF';
	}
}

function highlightRowMouseOut(row) {
	var table = row.parentElement;
	var oldRow = table.selectedRow;
	if(!oldRow || oldRow != row) { 
		if(row.className == 'altRow') {
			row.style.background = 'WhiteSmoke';
		} else if(row.className == 'regRow') {
			row.style.background = 'white';
		} else{
			row.style.background = '';
		}
	} else if(oldRow == row) {
		row.style.background = '#FFFFCC';
	}
}

function setMaxHeight(obj, value, padding) {
	if(!padding) padding = 0;
	if(obj.offsetHeight > value) {
		return value + padding;
	}
	return obj.offsetHeight + padding;
}

function setMaxWidth(obj, value, padding) {
	if(!padding) padding = 0;
	if(obj.offsetWidth > value) {
		return value + padding;
	}
	return obj.offsetWidth;
}

function setHeight(obj, value, target) {
	
	if(target == null) {
		return obj.parentElement.parentElement.offsetHeight - value;
	} else {
		return target.offsetHeight - value;
	}
}

function setWidth(obj, value, target) {
	
	if(target == null) {
		return obj.parentElement.parentElement.offsetWidth - value;
	} else {
		return target.offsetWidth - value;
	}
}

function handlerEnter(obj, link) {
	
}

function flash(obj, color) {
	obj.originalColor =  obj.style.backgroundColor;
	obj.style.backgroundColor = color;
	setTimeout(function() {
		var r1 = obj;
		r1.style.backgroundColor = color;
		setTimeout(function() {
			var r2 = r1;
			r2.style.backgroundColor = r2.originalColor;
			setTimeout(function() {
				var r3 = r2;
				r3.style.backgroundColor = color;
				setTimeout(function() {
					r3.style.backgroundColor = r3.originalColor;
					r2.originalColor = null;
				},100);
			},100);
		},100);
	},100);	
}

//Roll Over
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
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 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_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

dojo.addOnLoad(function() {
	registerSubmit('catalogSearchInput', 'catalogSearchLink');
});

function registerSubmit(input1, link1) {
	var input = dojo.byId(input1);
	var link = dojo.byId(link1);
	if(input && link) {
		dojo.event.connect(input, 'onkeypress', function() {
			var keyCode = event.keyChar || event.keyCode; 
			if(keyCode == 13) {
				link.click();
			}
		});
	}
}

