// Sample Request Processing Scripts

	var initflag = "" ;
	var segmentSelector = new Array ;
	var selectedSegs = [ "", "", "", "", "", "", "", "" ] ;
	var waitflag = "" ;

function sampleinit() {
	if ( initflag == "" ) {
		if ( NOP == 1 ) {
			DisplaySingle(1) ;
		}
		else if ( NOP > 200 ) {
			if ( ST[0] != "" ) {
				segmentSelector = 
					[ document.forms["sample-request"].segment1select 
					, document.forms["sample-request"].segment2select 
					, document.forms["sample-request"].segment3select 
					, document.forms["sample-request"].segment4select 
					, document.forms["sample-request"].segment5select
 					, document.forms["sample-request"].segment6select
 					, document.forms["sample-request"].segment7select
					, document.forms["sample-request"].segment6select 
 					] ;
				DisplayOver(0) ;
			}
			else {
				DisplayUnder() ;
			}
		}
		else {
			DisplayUnder() ;
		}
		document.getElementById("sample-submit-button").style.visibility = "" ;
		document.getElementById("sample-submit-button").style.display="";
		document.getElementById("submit-error-message-row").style.display = "none" ;
		iniflag = "i" ;
	}
}

function DisplayOver(nextseg) {
	var partname = "" ;
	var partdesc = "" ;
	var matchingparts = new Array() ;	
	document.getElementById("partname").setAttribute("value", "" );
	document.getElementById("selected-partname").innerHTML = "" ;
	document.getElementById("selected-partdesc").innerHTML = "" ;
	document.getElementById("selected-docid").innerHTML = "" ;
	document.getElementById("docid").setAttribute("value", "" );
	document.getElementById("max-quantity").setAttribute("value", "" ) ;
	document.forms["sample-request"].selectpartname.options.length = 0;

//	Build Part Name from Selected segments.

	for ( var i = 0 ; i <= 7 ; i++ ) {
		if ( selectedSegs[i] != "" ) {
			partname += selectedSegs[i] ;
		}
		else {
			i = 9 ;
		}
	}

//	Build matching Parts List 

	var nop = 0 ;
       var partlen = partname.length ;

	for ( var i = 1; i <= NOP ; i++ ) {
		if ( partlen == 0 
		  || P[i].substring(0,partlen) == partname
		   ) { 
			matchingparts[nop] = i ;
			nop += 1 ;
		}
	}

	if ( nop == 1 ) {
		document.getElementById("select-message-row").style.display = "none" ;
		DisplaySingle(matchingparts[0]) ;
	}
	else if ( nop > 200 ) {
//		Build Segment variable List
		var flag = 1 ;
		while ( flag == 1 ) {
			var segvals = new Array() ;
			var j = 0 ;
			var v = "" ;
			var v1 = "" ;
			for ( var idx in SV[nextseg] ) { 
				if(SV[nextseg].hasOwnProperty(idx)) {
					v = SV[nextseg][idx][0] ;
					var s = SV[nextseg][idx][1] ;
					var start = partname.length ;
					if (v != null) {
						var end = start + v.length ;
						for ( var i = 0; i < nop ; i++ ) {
							if ( P[matchingparts[i]].substring(start,end) == v ) {
								if ( segvals[v] == null ) {
									segvals[v] = s ;
									v1 = v ;
									j += 1 ;
								}
								i = nop + 1 ;
							}
						}
					}
				}
			}
			if ( j == 1 ) {
				selectedSegs[nextseg] = v1 ;
				partname += v1 ;
				document.getElementById("segment" + ( nextseg + 1 ) + "-value").innerHTML = v1 ;
				document.getElementById("segment" + ( nextseg + 1 ) + "-value").style.display = "" ;
				document.getElementById("segment" + ( nextseg + 1 ) + "-row").style.display = "" ;
				if ( nextseg == 0 ) {
					document.getElementById("segment" + ( nextseg + 1 ) + "-head").innerHTML = "Model" ;
				}
				else {
					document.getElementById("segment" + ( nextseg + 1 ) + "-head").innerHTML = ST[selectedSegs[0]][nextseg] ;
				}
				nextseg += 1 ;	
			}
			else {
				flag = 0 ;
			}
		}
		if ( nextseg == 0 ) {
			document.getElementById("segment" + ( nextseg + 1 ) + "-head").innerHTML = "Model" ;
			segmentSelector[0].options[0] = new Option("Choose a Part Number Model ","") ;
		}
		else {
			document.getElementById("segment" + ( nextseg + 1 ) + "-head").innerHTML = ST[selectedSegs[0]][nextseg] ;
			segmentSelector[nextseg].options[0] = new Option("Choose a " + ST[selectedSegs[0]][nextseg] ,"") ;
		}
		var j = 1 ;
		for ( var s in segvals ) {
			if(segvals.hasOwnProperty(s)) {
				if ( s != segvals[s] ) {
					segmentSelector[nextseg].options[j] = new Option( ( s + " (" + segvals[s] + ")" ) , s ) ;
				}
				else {
					segmentSelector[nextseg].options[j] = new Option( s , s ) ;
				}
				j = j + 1 ;
			}
		}
		document.getElementById("segment" + ( nextseg + 1 ) + "-select").style.display = "" ;
		document.getElementById("segment" + ( nextseg + 1 ) + "-row").style.display = "" ;
		document.getElementById("segment" + ( nextseg + 1 ) + "-value").innerHTML = selectedSegs[nextseg] ;

		document.getElementById("number-of-parts-message").innerHTML = nop ;
		document.getElementById("select-message-row").style.display = "" ;
		document.getElementById("select-variations-row").style.display = "none" ;
	}
	else {

		var i = 1 ;
		document.forms["sample-request"].selectpartname.options[0] = new Option("Choose a variation","") ;

		for ( var j = 0; j < nop ; j++ ) {

			var k = matchingparts[j] ;

			document.forms["sample-request"].selectpartname.options[i] = 
				new Option( P[k] , k ) ;

			i = i + 1 ;

			var desc = D[k] ;

			if (  D[k] != '' &&
			      P[k] != D[k]
			   ) {

				document.forms["sample-request"].selectpartname.options[i] = 
					new Option( ( "\xA0\xA0(" + D[k] + ")" ) , k ) ;

				i = i + 1 ;

			}
		}

		document.getElementById("number-of-parts").innerHTML = nop ;
		document.getElementById("select-message-row").style.display = "none" ;
		document.getElementById("select-variations-row").style.display = "" ;
	}

}


function DisplayUnder() {

	document.forms["sample-request"].selectpartname.options.length = 0;
	document.forms["sample-request"].selectpartname.options[0] = new Option("Choose a variation","") ;

	var j = 1 ;

	for ( var i = 1; i <= NOP; i++ ) {

		document.forms["sample-request"].selectpartname.options[j] = 
			new Option( P[i] , i ) ;

		j = j + 1 ;

		if ( D[i] != '' &&
		     P[i] != D[i] 
		   ) {

			document.forms["sample-request"].selectpartname.options[j] = 
				new Option( ( "\xA0\xA0(" + D[i] + ")" ) , i ) ;

			j = j + 1 ;

		}
	}

	document.getElementById("number-of-parts").innerHTML = NOP ;
	document.getElementById("selected-partname").innerHTML = "" ;
	document.getElementById("selected-partdesc").innerHTML = "" ;
	document.getElementById("select-variations-row").style.display = "" ;
}


function DisplaySingle(i) {
	if ( P[i] != undefined ) {
		document.getElementById("partname").setAttribute("value", P[i] );
		document.getElementById("selected-partname").innerHTML = P[i] ;
		document.getElementById("selected-partdesc").innerHTML = D[i] ;
		document.getElementById("selected-docid").innerHTML = DI[i] ;
		document.getElementById("docid").setAttribute("value", DI[i] );
		document.getElementById("max-quantity").setAttribute("value", MQ[i] ) ;
	}
}

function setPartname(){

	DisplaySingle(document.forms["sample-request"].selectpartname.options[document.forms["sample-request"].selectpartname.selectedIndex].value) ;
}


function setsegment(i) {

	selectedSegs[i-1] = segmentSelector[i-1].options[segmentSelector[i-1].selectedIndex].value ;
	for ( var j = i ; j <= 7 ; j++ ) {
		document.getElementById("segment" + ( j + 1 ) + "-row").style.display = "none" ;
		selectedSegs[j] = "" ;
	}
	document.getElementById("select-variations-row").style.display = "none" ;
	DisplayOver(i) ;
}

function confirmEmptyFields() {

	var isValid = true ;
	qntcheck = /^[0]*[0-9]+$/ ;
	ASCIIcheck = /^[\x0d\x0a\x20-\x7e]*$/ ;
	if ( document.forms["sample-request"].partname.value == "" ) {
		document.getElementById("submit-error-message").innerHTML = "Please select a Part Number" ;
		document.getElementById("submit-error-message-row").style.display = "" ;
		isValid = false ;
	}
	else if ( document.forms["sample-request"].sample_qty.value == "" ) {
		document.getElementById("submit-error-message").innerHTML = "Please enter a Quantity" ;
		document.getElementById("submit-error-message-row").style.display = "" ;
		isValid = false ;
	}
	else if ( !qntcheck.test(document.forms["sample-request"].sample_qty.value) ) {
		document.getElementById("submit-error-message").innerHTML = "Quantity must be a numerical" ;
		document.getElementById("submit-error-message-row").style.display = "" ;
		isValid = false ;
	}
	else if ( document.forms["sample-request"].project.value == "" ) {
		document.getElementById("submit-error-message").innerHTML = "Please enter a Project Name" ;
		document.getElementById("submit-error-message-row").style.display = "" ;
		isValid = false ;
	}
	else if ( !ASCIIcheck.test(document.forms["sample-request"].project.value) ) {
		document.getElementById("submit-error-message").innerHTML = "Project Name: Please enter ASCII Characters Only" ;
		document.getElementById("submit-error-message-row").style.display = "" ;
		isValid = false ;
	}
	else if ( document.forms["sample-request"].est_use.value == "" ) {
		document.getElementById("submit-error-message").innerHTML = "Please enter an Estimated Annual Use" ;
		document.getElementById("submit-error-message-row").style.display = "" ;
		isValid = false ;
	}
	else if ( !qntcheck.test(document.forms["sample-request"].est_use.value) ) {
		document.getElementById("submit-error-message").innerHTML = "Estimated Annual Use must be a numerical" ;
		document.getElementById("submit-error-message-row").style.display = "" ;
		isValid = false ;
	}
	else if ( !ASCIIcheck.test(document.forms["sample-request"].cust_mat_no.value) ) {
		document.getElementById("submit-error-message").innerHTML = "Curtomer Material Number: Please enter ASCII Characters Only" ;
		document.getElementById("submit-error-message-row").style.display = "" ;
		isValid = false ;
	}
	else if ( !ASCIIcheck.test(document.forms["sample-request"].notes.value) ) {
		document.getElementById("submit-error-message").innerHTML = "Notes: Please enter ASCII Characters Only" ;
		document.getElementById("submit-error-message-row").style.display = "" ;
		isValid = false ;
	}
	else {
		document.getElementById("sample-submit-button").style.visibility = "hidden" ;
		document.getElementById("sample-submit-button").style.display="none";
	}
	return isValid ;
}


