var agent=navigator.userAgent.toLowerCase();var is_ie=((agent.indexOf("msie")!=-1)&&(agent.indexOf("opera")==-1));function loadScript(script_url,script_id){var head=document.getElementsByTagName("head")[0];script=document.createElement("script");script.id=script_id;script.type="text/javascript";script.src=script_url;head.appendChild(script);}
function unloadScript(script_id){if(document.getElementById(script_id)){var script=document.getElementById(script_id);script.parentNode.removeChild(script);delete script;}}
function clearOutput(){if(document.getElementById("output"))document.getElementById("output").innerHTML="";}
function writeOutput(new_text){if(document.getElementById("output")){var output_text=document.getElementById("output").innerHTML;document.getElementById("output").innerHTML=output_text+new_text+"<br>";}else{var output_div=document.createElement("div");output_div.setAttribute("id","output");output_div.innerHTML=new_text+"<br>";document.body.insertBefore(output_div,document.body.firstChild);}}
function formatForURL(value){return encodeURIComponent(value);}
function convertURLtoWeb(value){return decodeURIComponent(value);}
function getURLDomain(){var url_domain=document.domain;return url_domain;}
function getDocumentRoot(){var document_root="";switch(getURLDomain()){case"www.nanoos.org":case"nanoos.org":case"www.boa.apl.washington.edu":document_root="/var/www/live/nanoos/";break;case"www2.nanoos.org":case"www2.boa.apl.washington.edu":document_root="/var/www/staging/nanoos/";break;default:document_root="/var/www/live/nanoos/";}
return document_root;}
function getPortalMode(){var portal_mode="";switch(getURLDomain()){case"www.nanoos.org":case"nanoos.org":case"www.boa.apl.washington.edu":portal_mode="live";break;case"www2.nanoos.org":case"www2.boa.apl.washington.edu":portal_mode="staging";break;default:portal_mode="live";}
return portal_mode;}
function getFilenameFromURL(url){var filename="";if(!isEmpty(url)){var url_pieces=url.split("/");filename=url_pieces[url_pieces.length-1];}
return filename;}
function plotServiceURL(){var url="";switch(getURLDomain()){case"www.nanoos.org":case"nanoos.org":case"www.boa.apl.washington.edu":url=PLOT_SERVICE_LIVE;break;case"www2.nanoos.org":case"www2.boa.apl.washington.edu":url=PLOT_SERVICE_STAGING;break;default:url=PLOT_SERVICE_LIVE;}
return url;}
function graphicServerURL(){var url="";switch(getURLDomain()){case"www.nanoos.org":case"nanoos.org":case"www.boa.apl.washington.edu":url=GRAPHIC_SERVER_LIVE;break;case"www2.nanoos.org":case"www2.boa.apl.washington.edu":url=GRAPHIC_SERVER_STAGING;break;default:url=GRAPHIC_SERVER_LIVE;}
return url;}
function tileServerURL(){var url="";switch(getURLDomain()){case"www.nanoos.org":case"nanoos.org":case"www.boa.apl.washington.edu":url=TILE_SERVER_LIVE;break;case"www2.nanoos.org":case"www2.boa.apl.washington.edu":url=TILE_SERVER_STAGING;break;default:url=TILE_SERVER_LIVE;}
return url;}
function roundValue(value,precision){var power=Math.pow(10,precision);result=Math.round(value*power)/power;return result;}
function convertDepthValue(depth){var new_depth=depth;if(Settings.units_mode=="v2"){var last_char=depth.charAt(depth.length-1);if(last_char=="m"){var depth_value=depth.substr(0,depth.length-1);new_depth=Math.round(parseFloat(depth_value)*3.2808399)+"ft";}}
return new_depth;}
function pointInRect(point,rect){result=false;var x1=Math.min(rect.p1.x,rect.p2.x);var x2=Math.max(rect.p1.x,rect.p2.x);var y1=Math.min(rect.p1.y,rect.p2.y);var y2=Math.max(rect.p1.y,rect.p2.y);if((x1<=point.x&&point.x<=x2)&&(y1<=point.y&&point.y<=y2))result=true;return result;}
function trim(strText){strText=strText.toString();while(strText.substring(0,1)==' ')
strText=strText.substring(1,strText.length);while(strText.substring(strText.length-1,strText.length)==' ')
strText=strText.substring(0,strText.length-1);return strText;}
function capitalizeString(str){var words=str.split(' ');for(var i=0;i<words.length;i++){words[i]=words[i].charAt(0).toUpperCase()+words[i].substring(1);}
return words.join(' ');}
function pad(value,padChar,strLength){var newValue=value.toString();for(var i=value.length;i<strLength;i++){newValue=padChar+newValue;}
return newValue;}
function calPad(value){var newValue=value.toString();var valueLength=newValue.length;for(var i=valueLength;i<2;i++){newValue="0"+newValue;}
return newValue;}
function getWindowSize(){var theWidth,theHeight;if(window.innerWidth){theWidth=window.innerWidth-16;}else if(document.documentElement&&document.documentElement.clientWidth){theWidth=document.documentElement.clientWidth;}else if(document.body){theWidth=document.body.clientWidth;}
if(window.innerHeight){theHeight=window.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){theHeight=document.documentElement.clientHeight;}else if(document.body){theHeight=document.body.clientHeight;}
return{width:theWidth,height:theHeight};}
function getWindowDimensions(){var myWidth=0
var myHeight=0;var myScrollX=0;var myScrollY=0
var myScrollWidth=0;var myScrollHeight=0;if(typeof(window.innerWidth)=='number'){myWidth=window.innerWidth;myHeight=window.innerHeight;myScrollX=(document.body.scrollLeft)?document.body.scrollLeft:document.documentElement.scrollLeft;myScrollY=(document.body.scrollTop)?document.body.scrollTop:document.documentElement.scrollTop;myScrollWidth=document.body.scrollWidth;myScrollHeight=document.body.scrollHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){myWidth=document.body.clientWidth;myHeight=document.body.clientHeight;myScrollX=(document.body.scrollLeft)?document.body.scrollLeft:document.documentElement.scrollLeft;myScrollY=(document.body.scrollTop)?document.body.scrollTop:document.documentElement.scrollTop;myScrollWidth=document.body.scrollWidth;myScrollHeight=document.body.scrollHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){myWidth=document.documentElement.clientWidth;myHeight=document.documentElement.clientHeight;myScrollX=document.documentElement.scrollLeft;myScrollY=document.documentElement.scrollTop;myScrollWidth=document.documentElement.scrollWidth;myScrollHeight=document.documentElement.scrollHeight;}else if(typeof(window.innerWidth)=='number'&&typeof(window.scrollWidth)=='number'){myWidth=window.innerWidth;myHeight=window.innerHeight;myScrollX=window.pageXOffset;myScrollY=window.pageYOffset;myScrollWidth=window.scrollWidth;myScrollHeight=window.scrollHeight;}
var myPageWidth=(myScrollWidth>myWidth)?myScrollWidth:myWidth;var myPageHeight=(myScrollHeight>myHeight)?myScrollHeight:myHeight;return{width:myWidth,height:myHeight,scrollX:myScrollX,scrollY:myScrollY,pageWidth:myPageWidth,pageHeight:myPageHeight};}
function getPosOffset(what,offsettype){var totaloffset=(offsettype=="left")?what.offsetLeft:what.offsetTop;var parentEl=what.offsetParent;while(parentEl!=null){totaloffset=(offsettype=="left")?totaloffset+parentEl.offsetLeft:totaloffset+parentEl.offsetTop;parentEl=parentEl.offsetParent;}
return totaloffset;}
function getObjOffset(obj){var total_offset={left:obj.offsetLeft,top:obj.offsetTop};var parentEl=obj.offsetParent;while(parentEl!=null){total_offset.left=total_offset.left+parentEl.offsetLeft;total_offset.top=total_offset.top+parentEl.offsetTop;parentEl=parentEl.offsetParent;}
return total_offset;}
function getObjOffsetFromParent(obj){var total_offset={left:obj.offsetLeft,top:obj.offsetTop};return total_offset;}
function isEven(value){if(value%2==0){return true;}else{return false;}}
function isArray(obj){return obj.constructor==Array;}
function inArray(value,array){var match=false;for(var i in array){if(array[i]==value){match=true
break;}}
return match;}
function removeFromArrayByIndex(array,index){array.splice(index,1);}
function removeFromArrayByValue(array,value){for(var i in array){if(array[i]==value){removeFromArrayByIndex(array,i);break;}}}
function hasItems(obj){var has_items=false;for(var i in obj){has_items=true;break;}
return has_items;}
function hasZeroItems(obj){var has_zero=true;for(var i in obj){has_zero=false;break;}
return has_zero;}
function numElementsInObj(obj){var counter=0;for(var i in obj){counter++;}
return counter;}
function removeElementFromObj(obj,element){var temp_obj={};for(var i in obj){if(i!=element)temp_obj[i]=obj[i];}
return temp_obj;}
function trim(strText){if(strText&&strText.length>0){while(strText.substring(0,1)==' ')
strText=strText.substring(1,strText.length);while(strText.substring(strText.length-1,strText.length)==' ')
strText=strText.substring(0,strText.length-1);}
return strText;}
function isEmpty(value){if((value&&trim(value)!="")||value===0){return false;}else{return true;}}
function isNumeric(value){return!isNaN(parseFloat(value))&&isFinite(value);}
function isInteger(value){return/^[0-9]+$/.test(value);}
function enterSubmitForm(e){if(is_ie){if(e.keyCode==13){submitForm();return false;}}else{if(e.which==13){submitForm();return false;}}}
function isEnterKey(e){if(is_ie){if(e.keyCode==13){return true;}}else{if(e.which==13){return true;}}
return false;}
function verifyIsValidContent(type,obj,class_norm,class_alert){var is_valid;switch(type){case"text":is_valid=(trim(obj.value)!="")?true:false;obj.className=(is_valid)?class_norm:class_alert;break;case"integer":var filter=/^([0-9])*$/;is_valid=(filter.test(obj.value))?true:false;obj.className=(is_valid)?class_norm:class_alert;break;case"integerOrBlank":var filter=/^([0-9])*$/;is_valid=(filter.test(obj.value)||trim(obj.value)=="")?true:false;obj.className=(is_valid)?class_norm:class_alert;break;case"image_file":break;case"decimalLatLon":var filter=/^([1-9]{1}[0-9]{0,2})(\.([0-9])+)*$/;is_valid=(filter.test(obj.value)||trim(obj.value)=="")?true:false;obj.className=(is_valid)?class_norm:class_alert;break;case"string":var filter=/^([a-zA-Z])+.*$/;is_valid=(filter.test(obj.value))?true:false;obj.className=(is_valid)?class_norm:class_alert;break;case"stringOrBlank":var filter=/^([a-zA-Z])+.*$/;is_valid=(filter.test(obj.value)||trim(obj.value)=="")?true:false;obj.className=(is_valid)?class_norm:class_alert;break;case"email":var filter=/^[a-zA-Z]+([_\-\.]{0,1}[a-zA-Z0-9]+)*@([a-z]+[a-z0-9]*[\.|\-]?[a-z]+[a-z0-9]*){1,4}\.[a-z]{2,4}$/;is_valid=(filter.test(obj.value))?true:false;obj.className=(is_valid)?class_norm:class_alert;break;case"username":var filter=/^[a-zA-Z]+[a-zA-Z0-9_\-\.]{2,15}?$/;is_valid=(filter.test(obj.value))?true:false;obj.className=(is_valid)?class_norm:class_alert;break;case"password":var filter=/^[a-zA-Z0-9~!@#_\$\*\+\?\-]{5,24}$/;is_valid=(filter.test(obj.value))?true:false;obj.className=(is_valid)?class_norm:class_alert;break;case"passwordOrBlank":var filter=/^[a-zA-Z0-9~!@#_\$\*\+\?\-]{5,24}$/;is_valid=(filter.test(obj.value)||trim(obj.value)=="")?true:false;obj.className=(is_valid)?class_norm:class_alert;break;default:}
return is_valid;}
function verifyIsValidChar(type,e,value){var key_pressed=(is_ie)?e.keyCode:e.which;var valid_key=false;var evt=(is_ie)?window.event:e;var ctrlPressed=false;if(evt.ctrlKey||evt.metaKey)ctrlPressed=true;switch(type){case"text":valid_key=true;break;case"integer":valid_key=(key_pressed==0||key_pressed==8||(key_pressed>=48&&key_pressed<=57))?true:false;break;case"decimal":valid_key=(key_pressed==0||key_pressed==8||(key_pressed>=48&&key_pressed<=57)||key_pressed==46)?true:false;break;default:}
if((key_pressed==67||key_pressed==99)&&ctrlPressed)valid_key=true;if((key_pressed==86||key_pressed==118)&&ctrlPressed)valid_key=true;if(!valid_key){if(is_ie){event.returnValue=false;return false;}else{return false;}}}
function imageFileValid(filename){if(filename.length==0){return true;}else{var valid_image=false;var valid_img_arr=new Array(".jpg",".jpeg",".gif",".png");var file_arr=filename.split(".");var ext="."+(file_arr[file_arr.length-1]).toLowerCase();for(i=0;i<valid_img_arr.length;i++){if(ext==valid_img_arr[i])valid_image=true;}
return valid_image;}}
function formatForTextCompare(text){text=text.replace(/\'/g,"&#39;");text=text.replace(/\"/g,"&#34;");return text;}
function formatForID(text){text=text.toLowerCase();text=text.replace(/\s/g,"_");text=text.replace(/\'/g,"");text=text.replace(/\"/g,"");return text;}
function resizeWindow(width,height){if(is_ie){self.resizeTo(width,height);}else{window.outerWidth=width;window.outerHeight=height;}}
function changeImage(img_obj,new_image_url){img_obj.src=new_image_url;}
function getWindowXLoc(){if(is_ie){return window.screenLeft;}else{return window.screenX;}}
function getWindowYLoc(){if(is_ie){return window.screenTop;}else{return window.screenY;}}
function stopEventBubbling(e){if(!e)e=window.event;if(typeof e.cancelBubble!="undefined"){e.cancelBubble=true;}else{e.stopPropagation();}}
function hideObj(name){document.getElementById(name).style.display="none";}
function showObjInline(name){document.getElementById(name).style.display="inline";}
function showObjBlock(name){document.getElementById(name).style.display="block";}
function setToVis(obj){document.getElementById(obj).style.visibility="visible";}
function setToInVis(obj){document.getElementById(obj).style.visibility="hidden";}
function hideShowPDSet(obj,set){for(var i=0;i<obj.length;i++){if(document.getElementById(set+obj[i].value))document.getElementById(set+obj[i].value).style.display="none";}
if(document.getElementById(set+obj.value))document.getElementById(set+obj.value).style.display="block";}
function changeImage(obj,image){obj.src=image;}
function changeImageN(a_obj,img_obj,img_url){if(document.getElementById(a_obj).href!=""&&document.getElementById(a_obj).href!="javascript:;"){if(document.getElementById(img_obj))document.getElementById(img_obj).src=img_url;}}
function isArray(obj){if(obj.constructor.toString().indexOf("Array")==-1){return false;}else{return true;}}
function addslashes(str){return str.replace('/(["\'\])/g',"\\$1").replace('/\0/g',"\\0");}
function stripslashes(str){return str.replace('/\0/g','0').replace('/\(.)/g','$1');}
function htmlSafeName(name){if(name){var reg=new RegExp("[^a-zA-Z0-9%\-]","g");var safe_name=name.replace(reg,"_");return safe_name;}else{return name;}}
function stripDecimals(str){var reg=new RegExp("[\.]","g");var result=str.replace(reg,"_");return result;}
function selectObjectText(obj_id_string){var obj=document.getElementById(obj_id_string);if(window.getSelection){var selection=window.getSelection();if(selection.setBaseAndExtent){selection.setBaseAndExtent(obj,0,obj,1);}else{var range=document.createRange();range.selectNodeContents(obj);selection.removeAllRanges();selection.addRange(range);}}else{var range=document.body.createTextRange();range.moveToElementText(obj);range.select();}}
function exists(obj_name){if(document.getElementById(obj_name)){return true;}else{return false;}}
function classExists(class_name){return(typeof(class_name)=="function"&&typeof(class_name.prototype)=="object")?true:false;}
function functionExists(function_name){return(typeof function_name=="function");}
function setFocus(obj_name){if(document.getElementById(obj_name))document.getElementById(obj_name).focus();}
function selectText(obj_name){if(document.getElementById(obj_name))document.getElementById(obj_name).select();}
function getObjById(obj_id){return(document.getElementById(obj_id))?document.getElementById(obj_id):null;}
function getChecked(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).checked:"";}
function setChecked(obj_name,value){if(document.getElementById(obj_name))document.getElementById(obj_name).checked=value;}
function getInnerHTML(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).innerHTML:"";}
function setInnerHTML(obj_name,value){if(document.getElementById(obj_name))document.getElementById(obj_name).innerHTML=value;}
function appendToInnerHTML(obj_id,value,loc){if(document.getElementById(obj_id)){var obj=document.getElementById(obj_id);if(loc=="top"){obj.innerHTML=value+obj.innerHTML;}else{obj.innerHTML+=value;}}}
function getValue(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).value:"";}
function setValue(obj_name,value){if(document.getElementById(obj_name))document.getElementById(obj_name).value=value;}
function getPullDownValue(menu_id){if(document.getElementById(menu_id)){var menu_obj=document.getElementById(menu_id);return menu_obj.options[menu_obj.selectedIndex].value;}else{return null;}}
function getPullDownValueForIndex(menu_id,index){if(document.getElementById(menu_id)){return document.getElementById(menu_id).options[index].value;}else{return null;}}
function getPullDownLength(menu_id){if(document.getElementById(menu_id)){return document.getElementById(menu_id).options.length;}else{return null;}}
function getPullDownIndex(menu_id){if(document.getElementById(menu_id)){return document.getElementById(menu_id).selectedIndex;}else{return null;}}
function getPullDownLabel(menu_id){if(document.getElementById(menu_id)){var menu_obj=document.getElementById(menu_id);return menu_obj.options[menu_obj.selectedIndex].text;}else{return null;}}
function setPullDownIndex(menu_id,index){if(document.getElementById(menu_id)){var menu_obj=document.getElementById(menu_id);menu_obj.selectedIndex=index;}else{return null;}}
function setPullDownValue(menu_id,value){if(document.getElementById(menu_id)){var menu_obj=document.getElementById(menu_id);for(var i=0;i<menu_obj.options.length;i++){if(menu_obj.options[i].value==value){menu_obj.selectedIndex=i;break;}}}else{return null;}}
function getClassName(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).className:"";}
function setClassName(obj_name,class_name){if(document.getElementById(obj_name)){document.getElementById(obj_name).className=class_name;}}
function getVisibility(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).visibility:"";}
function setVisibility(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).style.visibility=value;}}
function getDisplay(obj_name){if(document.getElementById(obj_name)){return document.getElementById(obj_name).style.display;}else{return"";}}
function setDisplay(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).style.display=value;}}
function setStyleTop(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).style.top=value+"px";}}
function setStyleLeft(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).style.left=value+"px";}}
function setTitle(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).title=value;}}
function getTitle(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).title:"";}
function setAlt(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).alt=value;}}
function getSrc(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).src:"";}
function setSrc(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).src=value;}}
function getBGImg(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).style.backgroundImage:"";}
function setBGImg(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).style.backgroundImage=value;}}
function getHREF(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).href:"";}
function setHREF(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).href=value;}}
function setHREFTarget(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).target=value;}}
function getStyleWidth(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).style.width.replace(/px/g,""):0;}
function setStyleWidth(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).style.width=value+"px";}}
function getStyleHeight(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).style.height.replace(/px/g,""):0;}
function setStyleHeight(obj_name,value){if(document.getElementById(obj_name)){document.getElementById(obj_name).style.height=value+"px";}}
function getObjWidth(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).offsetWidth:0;}
function getObjHeight(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).offsetHeight:0;}
function setStyleTop(obj_name,value){if(document.getElementById(obj_name))document.getElementById(obj_name).style.top=value+"px";}
function setScrollTop(obj_name,value){if(document.getElementById(obj_name))document.getElementById(obj_name).scrollTop=value;}
function getStylePadding(obj_id){var padding={top:0,bottom:0,left:0,right:0};if(document.getElementById(obj_id)){var obj=document.getElementById(obj_id);padding.top=obj.style.paddingTop;padding.bottom=obj.style.paddingBottom;padding.left=obj.style.paddingLeft;padding.right=obj.style.paddingRight;}
return padding;}
function getObjClientHeight(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).clientHeight:0;}
function getObjClientWidth(obj_name){return(document.getElementById(obj_name))?document.getElementById(obj_name).clientWidth:0;}
function getValueUniversal(obj_id){var value="";var tag_name=getTagName(obj_id);switch(tag_name){case"DIV":case"P":case"SPAN":value=getInnerHTML(obj_id);break;case"INPUT":case"TEXTAREA":value=getValue(obj_id);break;case"SELECT":value=getPullDownValue(obj_id);break;}
return value;}
function setValueUniversal(obj_id,value,mode){var tag_name=getTagName(obj_id);switch(tag_name){case"DIV":case"P":case"SPAN":if(value=="")value="&nbsp;";setInnerHTML(obj_id,value);break;case"INPUT":case"TEXTAREA":setValue(obj_id,value);break;case"SELECT":if(mode=="index"){if(value=="")value=0;setPullDownIndex(obj_id,value);}else if(mode=="value"){setPullDownValue(obj_id,value);}else if(mode=="label"){setPullDownLabel(obj_id,value);}
break;}}
function addDiv(div_id,div_html,parent_id){if(document.getElementById(parent_id)){var parent_obj=document.getElementById(parent_id);var new_div=document.createElement('div');new_div.setAttribute('id',div_id);new_div.innerHTML=div_html;parent_obj.appendChild(new_div);}}
function removeDiv(div_id,parent_id){if(document.getElementById(div_id)&&document.getElementById(parent_id)){document.getElementById(parent_id).removeChild(document.getElementById(div_id));}}
function autoSizeObjByRef(obj_id,ref_id){var text=getValue(obj_id);setInnerHTML(ref_id,text.replace(/\n/g,"<br>")+"0")
var new_height=document.getElementById(ref_id).scrollHeight;setStyleHeight(obj_id,new_height);}
function autoSizeObjByRefTimeOut(obj_id,ref_id){setTimeout("autoSizeObjByRef('"+obj_id+"', '"+ref_id+"')",200);}
