// This function opens a new window and passes any arguments (up to 20) defined

<!--
function win(templ,window_name,w,h,arg_1,val_1,arg_2,val_2,arg_3,val_3,arg_4,val_4,arg_5,val_5,arg_6,val_6,arg_7,val_7,arg_8,val_8,arg_9,val_9,arg_10,val_10,arg_11,val_11,arg_12,val_12,arg_13,val_13,arg_14,val_14,arg_15,val_15,arg_16,val_16,arg_17,val_17,arg_18,val_18,arg_19,val_19,arg_20,val_20,arg_21,val_21,arg_22,val_22,arg_23,val_23,arg_24,val_24,arg_25,val_25,arg_26,val_26,arg_27,val_27,arg_28,val_28,arg_29,val_29,arg_30,val_30,arg_31,val_31,arg_32,val_32,arg_33,val_33,arg_34,val_34,arg_35,val_35,arg_36,val_36,arg_37,val_37,arg_38,val_38,arg_39,val_39,arg_40,val_40)
{
	var direct = templ;
	var concatStr = "";
	var REString = "\?";
	patternMatch = "false";

// Check to see if item called is a template, otherwise do not include template call
	winMatchString(REString, templ);

	if (patternMatch == "true") {
	   concatStr = "&";
	} else {
		if(arg_1 != ""){
			concatStr = "?";
		}
	}

	if (arg_1){ direct += concatStr + arg_1 + "=" + val_1; }
	if (arg_2){ direct += "&" + arg_2 + "=" + val_2; }
	if (arg_3){ direct += "&" + arg_3 + "=" + val_3; }
	if (arg_4){ direct += "&" + arg_4 + "=" + val_4; }
	if (arg_5){ direct += "&" + arg_5 + "=" + val_5; }
	if (arg_6){ direct += "&" + arg_6 + "=" + val_6; }
	if (arg_7){ direct += "&" + arg_7 + "=" + val_7; }
	if (arg_8){ direct += "&" + arg_8 + "=" + val_8; }
	if (arg_9){ direct += "&" + arg_9 + "=" + val_9; }
	if (arg_10){ direct += "&" + arg_10 + "=" + val_10; }
	if (arg_11){ direct += "&" + arg_11 + "=" + val_11; }
	if (arg_12){ direct += "&" + arg_12 + "=" + val_12; }
	if (arg_13){ direct += "&" + arg_13 + "=" + val_13; }
	if (arg_14){ direct += "&" + arg_14 + "=" + val_14; }
	if (arg_15){ direct += "&" + arg_15 + "=" + val_15; }
	if (arg_16){ direct += "&" + arg_16 + "=" + val_16; }
	if (arg_17){ direct += "&" + arg_17 + "=" + val_17; }
	if (arg_18){ direct += "&" + arg_18 + "=" + val_18; }
	if (arg_19){ direct += "&" + arg_19 + "=" + val_19; }
	if (arg_20){ direct += "&" + arg_20 + "=" + val_20; }
	if (arg_21){ direct += "&" + arg_21 + "=" + val_21; }
	if (arg_22){ direct += "&" + arg_22 + "=" + val_22; }
	if (arg_23){ direct += "&" + arg_23 + "=" + val_23; }
	if (arg_24){ direct += "&" + arg_24 + "=" + val_24; }
	if (arg_25){ direct += "&" + arg_25 + "=" + val_25; }
	if (arg_26){ direct += "&" + arg_26 + "=" + val_26; }
	if (arg_27){ direct += "&" + arg_27 + "=" + val_27; }
	if (arg_28){ direct += "&" + arg_28 + "=" + val_28; }
	if (arg_29){ direct += "&" + arg_29 + "=" + val_29; }
	if (arg_30){ direct += "&" + arg_30 + "=" + val_30; }
	if (arg_31){ direct += "&" + arg_31 + "=" + val_31; }
	if (arg_32){ direct += "&" + arg_32 + "=" + val_32; }
	if (arg_33){ direct += "&" + arg_33 + "=" + val_33; }
	if (arg_34){ direct += "&" + arg_34 + "=" + val_34; }
	if (arg_35){ direct += "&" + arg_35 + "=" + val_35; }
	if (arg_36){ direct += "&" + arg_36 + "=" + val_36; }
	if (arg_37){ direct += "&" + arg_37 + "=" + val_37; }
	if (arg_38){ direct += "&" + arg_38 + "=" + val_38; }
	if (arg_39){ direct += "&" + arg_39 + "=" + val_39; }
	if (arg_40){ direct += "&" + arg_40 + "=" + val_40; }

	var window_spec = "";
	window_spec += "toolbar=no,scrollbars=yes,dependent=yes,width=";
	window_spec += w;
	window_spec += ",height=";
	window_spec += h;
	window_spec += ",resizable,align=center,valign=middle,left=";
	window_spec += (screen.width-20)/2 - w/2;
	window_spec += ",top=";
	window_spec += (screen.height-20)/2 - h/2;
	
	// 2008-07-29; PBL: escape reserved characters 
	
	//alert(direct);
	window.open(direct,window_name,window_spec);
	
}

//-->

// This function opens a new window --- NO SCROLLBAR --- and passes any arguments (up to 20) defined
<!--
function winnoscroll(templ,window_name,w,h,arg_1,val_1,arg_2,val_2,arg_3,val_3,arg_4,val_4,arg_5,val_5,arg_6,val_6,arg_7,val_7,arg_8,val_8,arg_9,val_9,arg_10,val_10,arg_11,val_11,arg_12,val_12,arg_13,val_13,arg_14,val_14,arg_15,val_15,arg_16,val_16,arg_17,val_17,arg_18,val_18,arg_19,val_19,arg_20,val_20,arg_21,val_21,arg_22,val_22,arg_23,val_23,arg_24,val_24,arg_25,val_25,arg_26,val_26,arg_27,val_27,arg_28,val_28,arg_29,val_29,arg_30,val_30,arg_31,val_31,arg_32,val_32,arg_33,val_33,arg_34,val_34,arg_35,val_35,arg_36,val_36,arg_37,val_37,arg_38,val_38,arg_39,val_39,arg_40,val_40)
{
	var direct = templ;
	if (arg_1 != ""){ direct += "&" + arg_1 + "=" + val_1; }
	if (arg_2 != ""){ direct += "&" + arg_2 + "=" + val_2; }
	if (arg_3 != ""){ direct += "&" + arg_3 + "=" + val_3; }
	if (arg_4 != ""){ direct += "&" + arg_4 + "=" + val_4; }
	if (arg_5 != ""){ direct += "&" + arg_5 + "=" + val_5; }
	if (arg_6 != ""){ direct += "&" + arg_6 + "=" + val_6; }
	if (arg_7 != ""){ direct += "&" + arg_7 + "=" + val_7; }
	if (arg_8 != ""){ direct += "&" + arg_8 + "=" + val_8; }
	if (arg_9 != ""){ direct += "&" + arg_9 + "=" + val_9; }
	if (arg_10 != ""){ direct += "&" + arg_10 + "=" + val_10; }
	if (arg_11 != ""){ direct += "&" + arg_11 + "=" + val_11; }
	if (arg_12 != ""){ direct += "&" + arg_12 + "=" + val_12; }
	if (arg_13 != ""){ direct += "&" + arg_13 + "=" + val_13; }
	if (arg_14 != ""){ direct += "&" + arg_14 + "=" + val_14; }
	if (arg_15 != ""){ direct += "&" + arg_15 + "=" + val_15; }
	if (arg_16 != ""){ direct += "&" + arg_16 + "=" + val_16; }
	if (arg_17 != ""){ direct += "&" + arg_17 + "=" + val_17; }
	if (arg_18 != ""){ direct += "&" + arg_18 + "=" + val_18; }
	if (arg_19 != ""){ direct += "&" + arg_19 + "=" + val_19; }
	if (arg_20 != ""){ direct += "&" + arg_20 + "=" + val_20; }
	if (arg_21 != ""){ direct += "&" + arg_21 + "=" + val_21; }
	if (arg_22 != ""){ direct += "&" + arg_22 + "=" + val_22; }
	if (arg_23 != ""){ direct += "&" + arg_23 + "=" + val_23; }
	if (arg_24 != ""){ direct += "&" + arg_24 + "=" + val_24; }
	if (arg_25 != ""){ direct += "&" + arg_25 + "=" + val_25; }
	if (arg_26 != ""){ direct += "&" + arg_26 + "=" + val_26; }
	if (arg_27 != ""){ direct += "&" + arg_27 + "=" + val_27; }
	if (arg_28 != ""){ direct += "&" + arg_28 + "=" + val_28; }
	if (arg_29 != ""){ direct += "&" + arg_29 + "=" + val_29; }
	if (arg_30 != ""){ direct += "&" + arg_30 + "=" + val_30; }
	if (arg_31 != ""){ direct += "&" + arg_31 + "=" + val_31; }
	if (arg_32 != ""){ direct += "&" + arg_32 + "=" + val_32; }
	if (arg_33 != ""){ direct += "&" + arg_33 + "=" + val_33; }
	if (arg_34 != ""){ direct += "&" + arg_34 + "=" + val_34; }
	if (arg_35 != ""){ direct += "&" + arg_35 + "=" + val_35; }
	if (arg_36 != ""){ direct += "&" + arg_36 + "=" + val_36; }
	if (arg_37 != ""){ direct += "&" + arg_37 + "=" + val_37; }
	if (arg_38 != ""){ direct += "&" + arg_38 + "=" + val_38; }
	if (arg_39 != ""){ direct += "&" + arg_39 + "=" + val_39; }
	if (arg_40 != ""){ direct += "&" + arg_40 + "=" + val_40; }

	var window_spec = "";
	window_spec += "toolbar=no,scrollbars=no,dependent=yes,width=";
	window_spec += w;
	window_spec += ",height=";
	window_spec += h;
	window_spec += ",align=center,valign=middle,left=";
	window_spec += (screen.width-20)/2 - w/2;
	window_spec += ",top=";
	window_spec += (screen.height-20)/2 - h/2;
	window.open(direct,window_name,window_spec);
}

//-->


/////////////////////// Routine for pattern matching against a string //////////////////////////////
// Copy of 'matchString' found in /FMS2/JS/STRFUNC.JS

var patternMatch = "false";
var patternCount = 0;

function winMatchString(matchStr,fullStr) {

// Matches pattern of matchStr against string fullStr   
	for (var i=0; i<fullStr.length; i++) {      
		if (fullStr.substring(i,i+matchStr.length) == matchStr) {         
			patternMatch = "true";      
			patternCount = patternCount + 1;      
		}   
	}   
	return patternMatch;
	return patternCount;
}

