String.prototype.trim = function() {
  return (this.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, ""));
}
String.prototype.startsWith = function(prefix) {
return (this.indexOf(prefix) == 0);
};
String.prototype.endsWith = function(suffix) {
var startPos = this.length - suffix.length;
if (startPos < 0) {
    return false;
}
return (this.lastIndexOf(suffix, startPos) == startPos);
};
 

//Submit the form if the key that fired this
//  was the 'Enter' key
// In the Input field just add onKeyPress="return SubmitOnEnter(this,event);"
function SubmitOnEnter(buttonId,e){
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
	
	if (keycode == 13){
		var btn = Get(buttonId);
		if(btn && btn.click){
			btn.click();
			return false;
		}	
	}

	return true;
}

function Get(id){
	return document.getElementById(id);
}

function SetFocus(id){
	var el = Get(id);
	if(el && el.focus)
		el.focus();
}

function Hide(id){
	var el = Get(id);
	if(el)
		el.className = "hidden";
}

function Show(id){
	var el = Get(id);
	if(el)
		el.className = "visible";			
}

function exists(object){
	return (typeof object != 'undefined');
}

function HasValidImageExtension(fileNm){
	var validExts = new Array(5);
	validExts[0] = '.jpg';
	validExts[1] = '.jpeg';
	validExts[2] = '.tif';
	validExts[3] = '.tiff';
	validExts[4] = '.jif';
	
	for(var ext in validExts){
		if(fileNm.toLowerCase().endsWith(validExts[ext]))
			return true;
	}
	
	return false;
}

function ShowPreview(fileNm, previewEl, errorEl){
	var errSpan;
	Hide(previewEl);
	if(exists(errorEl))
		errSpan = Get(errorEl);
	if(exists(errSpan))
		errSpan.style.display = 'none';
	Get('spnNoImgError').style.display = 'none';
	
	var isValidType = HasValidImageExtension(fileNm);
	//If its the wrong type show an error and break out
	if(!isValidType){
		//show error here
		if(exists(errorEl)){
			var errSpan = Get(errorEl);
			if(errSpan){
				errSpan.style.display='inline';
			}
		}
		return;
	}
	var previewImg = Get(previewEl);
	
	previewImg.onerror = ShowNoImgError;
	
	if(exists(previewImg) && exists(previewImg.src)){
		if(fileNm.length > 0){
			var img = new Image();
			img.src = 'file:///' + fileNm;
			previewImg.src = img.src;	
			Show(previewEl);
		}
	}
}

function ShowNoImgError(){
	Get('spnNoImgError').style.display = 'inline';
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}


function GoToURL(sUrl){
	document.location.href = sUrl;
}

function popup(URL) { 
        mywindow = window.open(URL, "newwin", 'toolbar=0,scrollbars=,location=1,statusbar=1,menubar=1,resizable=1,width=800,height=600,top=60,left=60'); 
}