// JScript source code
function UpdateChartClick(){saveLogSettings();document.forms[0].submit();}

//JS to set chart dimensions. Set defaultX, defaultY, minX, minY, maxX, maxY in page JS
function ResetChartXY(){
 document.forms[0].tbChartX.value=defaultX;
 document.forms[0].tbChartY.value=defaultY;
 if (document.forms[0].tbChartYscale)
  document.forms[0].tbChartYscale.value=defaultYscale;
 }

function ChangeChartXY() {
 var tbX=document.forms[0].tbChartX;
 var tbY=document.forms[0].tbChartY;		
 if (isNaN(tbX.value)) tbX.value=defaultX;
 if (isNaN(tbY.value)) tbY.value=defaultY;
 if (tbX.value > maxX){tbX.value = maxX;alert("Maximum Chart X dimension is "+maxX);}
 if (tbY.value > maxY){tbY.value = maxY;alert("Maximum Chart Y dimension is "+maxY);}
 if (tbX.value < minX){tbX.value = minX;alert("Minimum Chart X dimension is "+minX);}
 if (tbY.value < minY){tbY.value = minY;alert("Minimum Chart Y dimension is "+minY);}
}

//Script to control site selection frame source and links
function SwapFrameSrcKey() {
 var SrcKey = document.getElementById('FrameSrcKey');
 var HMapLink = document.getElementById('HMap_Link1')
 if (SrcKey.value == 'Map'){SrcKey.value = 'List';HMapLink.innerHTML='Map';}
 else {SrcKey.value = 'Map';HMapLink.innerHTML='List';}
 PageLoad();
}
 
function SetFrameSrc1() {
//set the query string for the mapbrowser page to the mapimage url last used to generate a map		
 var mapsettings = document.getElementById('MapSettings').value;
 mapstr = mapsettings.replace('FromParent=False','FromParent=True');	
 //this doesn't seem to be needed??
 document.getElementById('MapSettings').value=mapstr;	
 //document.getElementById('MapiFrame').src='../../../maptools/AS/mapbrowser.aspx?'+imagestr;
 //document.getElementById('MapiFrame').src='http://vasquez/mantest1/default.aspx'		
 var SrcKey = document.getElementById('FrameSrcKey');
 var HMapLink = document.getElementById('HMap_Link1');
 if (SrcKey.value == 'Map') {
	document.getElementById('MapiFrame').src='/webtools/web/map/mapbrowser.aspx?'+mapstr;
	//document.getElementById('MapiFrame').src='../mapbrowser/mapbrowser.aspx?'+mapstr;
	HMapLink.innerHTML='List';
	}
 else {
	document.getElementById('MapiFrame').src='/webtools/web/listbox/site.aspx?'+mapstr;
	HMapLink.innerHTML='Map';
 }
}

//Script to control site selection frame source and links
function SwapFrameSrc() {

 var HMapLink = document.getElementById('SiteMapLink');
 
 if (document.getElementById('SiteSelLink').innerHTML=='Hide'){

  var PageSettings = document.getElementById('ControlSettings');
  var args = getQueryStrArgs(PageSettings.value);
 
  if (args.FrameSrc == 'Map'){
   PageSettings.value = modArgs(PageSettings.value,"FrameSrc",'List');
   HMapLink.innerHTML='Map';
  }
  else {
   PageSettings.value = modArgs(PageSettings.value,"FrameSrc",'Map');
   HMapLink.innerHTML='List';  
  }
  PageLoad();
 }   
}

//Script to control site selection frame source and links
function SetFrameSrc() {

 var mapsettings = document.getElementById('MapSettings').value;
 var mapframe=document.getElementById('MapFrame');

 var ControlSettings = document.getElementById('ControlSettings');
 var HMapLink = document.getElementById('SiteMapLink')
 var args = getQueryStrArgs(ControlSettings.value);
 
 if (args.FrameSrc == 'Map'){
  var mappath='/webtools3map/map/mapbrowser.aspx?';
  HMapLink.innerHTML='List';
 }
 else {
  var mappath='/webtools3map/listbox/site.aspx?';
  HMapLink.innerHTML='Map';
 }
 mapframe.src=mappath+mapsettings;
}


//Scripts to set CSU list box selection on client
function rbParamGroupUpdate() {		
 var lbParam = document.getElementById('wlParameter');
 var rb = document.forms[0].rbParamGroup;
 var seli = GetRbChecked(rb);
  
 //update lbparam with group settings if any are selected
 if (seli > -1) { 
  var strMatch = rb[seli].value;	
  var arySpec = new Array(8);
 
  for (var i = 0; i < lbParam.length; i++)
	lbParam.options[i].selected=false;
		
  if (strMatch=='RCFM'){
	arySpec[0]='ammNO3f';arySpec[1]='ammSO4f';arySpec[2]='ECf';arySpec[3]='OMCf';arySpec[4]='SOILf';arySpec[5]='SeaSalt';arySpec[6]='OMC1.8';
  }
  else if (strMatch=='RCTM' || strMatch=='avail_RCTM'){
	arySpec[0]='ammNO3f';arySpec[1]='ammSO4f';arySpec[2]='ECf';arySpec[3]='OMCf';arySpec[4]='SOILf';arySpec[5]='CM_calculated';arySpec[6]='SeaSalt';arySpec[7]='OMC1.8';
  }
  else if (strMatch=='aerosol_bext' || strMatch=='avail_bext'){
	arySpec[0]='ammNO3f_bext';arySpec[1]='ammSO4f_bext';arySpec[2]='ECf_bext';arySpec[3]='OMCf_bext';arySpec[4]='SOILf_bext';arySpec[5]='CM_bext';arySpec[6]='SeaSalt_bext';
  }
  else 
	 arySpec[0]=strMatch;
	 
  for (var i = 0; i < arySpec.length; i++) {
   	strMatch=arySpec[i]			
	lbToggleMatches(lbParam,strMatch,'value',1,true);
  }
 }
}

function lbToggleMatches(list,match,source,idx,sel) {
	var src,ary,targ,val;
	for(var i=list.length-1;i>=0;i--){
		src=source.toLowerCase();
		targ=(src=="text")?list.options[i].text:list.options[i].value;
		val=targ;
		if(src=="value"){ary=targ.split("|");val=ary[idx];}
		if(val==match)list.options[i].selected=sel;
	}
}

function ClearRbParamGroupSelections() {
 var rb = document.forms[0].rbParamGroup;		
 for (var i = 0; i < rb.length; i++) {
 rb[i].checked=false;
 }
}

function GetRbChecked(RB) {
 var seli;
 for (var i = 0; i < RB.length; i++) {
	if (RB[i].checked == true) {seli=i;}
	}
	return seli > -1? seli: -1;	
}
	
function GetDlSelected(Dl) {
 var seli;
 for (var i = 0; i < Dl.length; i++) {
	if (Dl[i].checked == true) {seli=i;}
	}
	return seli > -1? seli: -1;	
}

//Script to set client side options
function SetRbChartOptions() {
 var rbCO = document.forms[0].rbChartOptions;
 var rbCT = document.forms[0].rbChartType;
 var seli;
 //timeline
	if (rbCT[0].checked) {
		rbCO[0].value='line';
		rbCO[1].value='step';
		rbCO[2].value='curve';
		document.getElementById('rbCOtxt0').innerHTML='Line';
		document.getElementById('rbCOtxt1').innerHTML='Step';
		document.getElementById('rbCOtxt2').innerHTML='Curve'; 
	}
	//bar chart
	if (rbCT[1].checked) {
		rbCO[0].value='stacked';
		rbCO[1].value='sidebyside';
		rbCO[2].value='percent';
		document.getElementById('rbCOtxt0').innerHTML='Stacked';
		document.getElementById('rbCOtxt1').innerHTML='Side by side';
		document.getElementById('rbCOtxt2').innerHTML='Percent';
	}
}

//String manipulation scripts
function Left(str, n){
 if (n <= 0)
	return "";
 else if (n > String(str).length)
	return str;
 else
 return String(str).substring(0,n);
}
	
function Right(str, n){
 if (n <= 0)
 	return "";
 else if (n > String(str).length)
	return str;
 else {
 	var iLen = String(str).length;
	return String(str).substring(iLen, iLen - n);
 }
}

//Scripts for the help tips
function ShowTip(ID) {
 var div=document.getElementById('div'+ID);
 var td=document.getElementById('td'+ID);
 var text;
 if (ID=="SavedMapList") 
	text="<i><b>Tip:</b> Select a predefined map. Map settings include zoom extent, geographical layers, and selected sites. Both VIEWS defined maps and user defined maps are available</i>";
 else if (ID=="PresetCharts")
	text="<i><b>Tip:</b> Select predefined chart settings.  Chart settings may or may not include parameter selections</i>";
 else
	text="";
 div.innerHTML=text;
 //td.bgColor="#FFFF00"
 td.Class="AStdon"
}
	
function HideTip(ID) {
 var div=document.getElementById('div'+ID)
 var td=document.getElementById('td'+ID)
 div.innerHTML=""
 //div.height=1
 //td.bgColor="#ECECED"
 td.Class="AStdout"
}

//Scripts for the User dropdown lists
function ClearUserDlOptions() {
 var answer = confirm("Are you sure you want to remove your saved pages from the user history?");
 if (answer) {
	document.forms[0].dlSavedPagesClear.value="True";
	document.forms[0].submit();
 }
}

function dlDefaultChartsChange() {
 var Dl = document.forms[0].dlDefaultCharts;
 document.forms[0].dlDefaultChartsChanged.value="True";
 document.forms[0].submit();
}

function dlSavedPagesChange() {
 var Dl = document.forms[0].dlSavedPages;
 document.forms[0].dlSavedPagesChanged.value="True";
 if (Left(Dl.value, 4) == "VIEW" || Left(Dl.value, 4) == "USER" || Left(Dl.value, 4) == "----") {
 //alert(Dl.value);
 }
 else {
	document.forms[0].submit();
 }
}

function AddUserDlOption() {
//var aText = prompt("Enter unique name to save page settings","Page1");
 var aDl = document.forms[0].dlSavedPages;
 var aText = document.forms[0].tbSavedPage.value;
 var aValue = document.forms[0].MapSettings.value;
 var AddChart = true;
 if (aText.length > 40) {
	AddChart = false;
	alert("Please enter a name with 40 characters or less ")
	}
 for (var i = 1; i < aDl.options.length; i++) {
	DlTexti=aDl.options[i].text;	  	 
	//DlTextia=DlTexti.split(" - ");
	if (DlTexti == aText && AddChart==true) {			  
		alert(aText+' already exists.  Please clear saved settings or save to another name');
		AddChart=false;
	}
 }
 if (AddChart == true) {
	aDl.options[aDl.options.length]=new Option(aText,aValue);
	//aDl.size = aDl.size+1;
	document.forms[0].btnSavePageClicked.value="True"
	document.forms[0].submit();
	}
//alert(aValue);	
}

function SetFrameValues() {
//this actually doesn't do anything.  I just catch a null value in the iframe code and set FromParent = 'True'
//var iframeDoc = window.frames('MapiFrame').document;
//var iframeElement = iframeDoc.getElementById('TFromParent');
//iframeElement.value="True";
}

function ToggleMenuPane(aMenuName) {
	var paneName = "pane" + aMenuName;
	var imgName = "img" + aMenuName;
	if (document.getElementById(paneName).style.visibility == "visible") {
		document.getElementById(paneName).style.visibility = "hidden";
		document.images[imgName].src = "images/ComboArrowD.jpg";
	}
	else {
		document.getElementById(paneName).style.visibility = "visible";
		document.images[imgName].src = "images/ComboArrowU.jpg";
	}
}





