var isNS4 = (navigator.appName=="Netscape")?1:0;
//Only Netscape 4 and Escape 4 need this first line
if( document.captureEvents && Event.KEYUP ) { document.captureEvents( Event.KEYUP ); }
//document.onkeyup = alertkey;
//where alertKey is a function that will handle the event



function popUp(theURL,name,w,h,t,m,st,sc,r,X,Y) {
	if ( X == -1) {
	X = screen.availWidth - w ;
	X = X/2;
	}
	if (Y == -1) {
	Y = screen.availHeight -h ;
	Y = Y/2;
	}
	p="width=" + w + ",height=" + h + ",toolbar=" + t + ",menubar=" + m + ",status=" + st + ",scrollbars=" + sc + ",resizable=" + r + "directories=0,screenX=" + X + ",screenY=" + Y + ",left=" + X + ",top=" + Y + ",header=0";
	var winpopUp = window.open(theURL,name,p);
	winpopUp.focus();
}
function doNothing(){
}

function valid(form){
	var field = document.assembly.mail; 
	var str = document.assembly.email.value; 
	
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; 
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; 
	
	if ((!reg1.test(str)) && reg2.test(str)) { 			
		return true;
	}
	alert("\"" + str + "\" is an invalid e-mail!"); 
	document.assembly.email.focus();
	document.assembly.email.select();
	return false;
		
}

function isArray_Click(action){
	var divInputArray = document.getElementById("divInputArray");
	if(action=='yes'){
		divInputArray.style.display="";
	}else if(action=='no'){
		divInputArray.style.display="none";
	}
}

function arrayXDimChk_Blur(objid){
	var rd_arYes = document.getElementById("rd_arYes");	
	var xArSize = document.getElementById(objid);
	if(parseFloat(xArSize.value)>14){
		alert('For Diamentions more than 14", please contact our sales person for a quote.');
		xArSize.select;
		return false;
	}
	if(rd_arYes.checked){
		if(parseFloat(xArSize.value)<2.5){
			alert('Minimum array size that we can quote for is 2.5 inches X 2.5 inches.');
			xArSize.select;
			return false;
		}
	}
}

function pcbXYDim_onblur(){
	var valReturn = dimChkofAreaWise_onBlur();
	return valReturn;
}

function dimChkofAreaWise_onBlur(){
	var rd_arYes = document.getElementById("rd_arYes").value;	
	var xArSize = (isNaN(document.getElementById("xArSize").value))?0:document.getElementById("xArSize").value;
	var yArSize = (isNaN(document.getElementById("yArSize").value))?0:document.getElementById("yArSize").value;
	var NoPcbsAr = (isNaN(document.getElementById("NoPcbsAr").value))?0:document.getElementById("NoPcbsAr").value;
	var xsize = (isNaN(document.getElementById("xsize").value))?0:document.getElementById("xsize").value;
	var ysize = (isNaN(document.getElementById("ysize").value))?0:document.getElementById("ysize").value;
	//alert(xArSize*yArSize);
	//alert((xsize*ysize)*NoPcbsAr);
	
	if(rd_arYes.checked){
		if((xArSize*yArSize)<((xsize*ysize)*NoPcbsAr)){
			alert('Area of array must be greater than or equal to  total area of all individual boards');
			return false;		
		}
	}	
}

function rd_StdThick_onclick(){
	alert('For assembly non-standard thickness PCBs please get a quote from our Sales Representative')
}
function valid(form){
	var field = document.assembly.mail; 
	var str = document.assembly.email.value; 
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; 
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; 
	if ((!reg1.test(str)) && reg2.test(str)) { 			
		return true;
	}
	alert("\"" + str + "\" is an invalid e-mail!"); 
	document.assembly.email.focus();
	document.assembly.email.select();
	return false;		
}

function onKeyPressNumbers(e)
{
	var key = window.event ? e.keyCode : e.which;	
	var k = String.fromCharCode(key);	
	reg = /\d/;
	if(key !=0 && key !=8 && key !=13 && key !=27 && key !=9 && key != 127){		
		return reg.test(k);
	}
}

function onKeyPressDecimalNumbers(e)
{
	var key = window.event ? e.keyCode : e.which;

	var k = String.fromCharCode(key);	
	reg = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
	if(key !=0 && key !=8 && key !=13 && key !=27 && key !=9 && key != 127&& key != 46){		
		return reg.test(k);
	}
}

	
function showMsg(DivId){
	document.getElementById(DivId).style.display = 'block';
}

function hideMsg(DivId){
	document.getElementById(DivId).style.display = 'none';
}
function doNothing(){}

function fn_FinalActionClick(tt,qty){
	document.frmFinalAction.hidTurnTime.value = tt;
	document.frmFinalAction.hidQuantity.value = qty;
	document.frmFinalAction.submit();
}

function fnCallUsPopUp(tt,qty){
	var gotrURL = 'assemblyQtCallUs.jsp?tt='+tt+"&qty="+qty;
	popUp(gotrURL,'popCallUs',700,255,0,0,0,1,1,-1,-1);
}

function checkNewParams(){
	//alert("hello");
	if (document.assembly.name.value == "") {
		alert("Please enter your name.");
		document.assembly.name.focus();
		return false;
	}
	
	if (document.assembly.lname.value == "") {
		alert("Please enter your last name.");
		document.assembly.lname.focus();
		return false;
	}
	if (document.assembly.email.value == "") {
		alert("Please enter your email.");
		document.assembly.email.focus();
		return false;
	}else{
		if(!valid()){
			return false;
		}
	}
	if (document.assembly.phone.value == "") {
		document.assembly.phone.value = "";
		alert("Please enter your phone number.");
		document.assembly.phone.focus();
		return false;
	}
	
	if (document.assembly.phone.value.length < 7) {
		alert("Please enter at least 7 character phone number");
		document.assembly.phone.focus();
		return false;
	}
		
	if (document.assembly.partno.value == "") {
		alert("Please enter Part Number.");
		document.assembly.partno.focus();
		return false;
	}
	
	if (isNaN(document.assembly.quantity.value) || document.assembly.quantity.value == "" || document.assembly.quantity.value == "0") {
		alert("Please enter a non-zero number for Desired Board Quantity.");
		document.assembly.quantity.focus();
		return false;
	}	
	var qty = parseInt(document.assembly.quantity.value);
	if (qty < 1) {
		alert("Please order minimum of 1 boards.");
		document.assembly.quantity.focus();
		return false;
	}
	
	if (isNaN(document.assembly.quantity2.value) || document.assembly.quantity2.value == "" || document.assembly.quantity2.value == "0") {
		alert("Please enter a non-zero number for Desired Board Quantity.");
		document.assembly.quantity2.focus();
		return false;
	}	
	
	var qty2 = parseInt(document.assembly.quantity2.value);
	if (qty2 < 1) {
		alert("Please order minimum of 1 boards.");
		document.assembly.quantity2.focus();
		return false;
	}
	
	
		if (isNaN(document.assembly.quantity3.value) || document.assembly.quantity3.value == "" || document.assembly.quantity3.value == "0") {
		alert("Please enter a non-zero number for Desired Board Quantity.");
		document.assembly.quantity3.focus();
		return false;
	}	
	
	var qty3 = parseInt(document.assembly.quantity3.value);
	if (qty3 < 1) {
		alert("Please order minimum of 1 boards.");
		document.assembly.quantity3.focus();
		return false;
	}
	
		if (isNaN(document.assembly.quantity4.value) || document.assembly.quantity4.value == "" || document.assembly.quantity4.value == "0") {
		alert("Please enter a non-zero number for Desired Board Quantity.");
		document.assembly.quantity4.focus();
		return false;
	}	
	
	var qty4 = parseInt(document.assembly.quantity4.value);
	if (qty4 < 1) {
		alert("Please order minimum of 1 boards.");
		document.assembly.quantity4.focus();
		return false;
	}	
	
	/*
	if(rd_arYes.checked ){
		if(qty%NoPcbsArVal >0){
			alert("For Arrays quantities should be in multiples of number up per array");
			document.assembly.quantity.select();
			return false;
		}
	}
	
	
	if (qty > 25) {
		alert("Only 1 thru 25 quantity allowed, for other quantities please contact our sales rep.");
		document.assembly.quantity.focus();
		return false;
	}*/
	
	
	if (document.assembly.quantity2.value != "") {
		if (isNaN(document.assembly.quantity2.value) || document.assembly.quantity2.value == "" || document.assembly.quantity2.value == "0") {
			alert("Please enter a non-zero number for Desired Board Quantity.");
			document.assembly.quantity2.focus();
			return false;
		}		
		if (parseInt(document.assembly.quantity2.value) < 1) {
			alert("Please order minimum of 1 boards.");
			document.assembly.quantity2.focus();
			return false;
		}
		
		/*if (parseInt(document.assembly.quantity2.value) > 25) {
			alert("Only 1 thru 25 quantity allowed, for other quantities please contact our sales rep.");
			document.assembly.quantity2.focus();
			return false;
		}
		if(rd_arYes.checked ){
			if(parseInt(document.assembly.quantity2.value)%NoPcbsArVal >0){
				alert("For Arrays quantities should be in multiples of number up per array");
				document.assembly.quantity2.focus();
				return false;
			}
		}*/
	}	
	if (document.assembly.quantity3.value != "") {
		if (isNaN(document.assembly.quantity3.value) || document.assembly.quantity3.value == "" || document.assembly.quantity3.value == "0") {
			alert("Please enter a non-zero number for Desired Board Quantity.");
			document.assembly.quantity3.focus();
			return false;
		}		
		if (parseInt(document.assembly.quantity3.value) < 1) {
			alert("Please order minimum of 1 boards.");
			document.assembly.quantity3.focus();
			return false;
		}		
	/*	if (parseInt(document.assembly.quantity3.value) > 25) {
			alert("Only 1 thru 25 quantity allowed, for other quantities please contact our sales rep.");
			document.assembly.quantity3.focus();
			return false;
		}
		if(rd_arYes.checked ){
			if(parseInt(document.assembly.quantity3.value)%NoPcbsArVal >0){
				alert("For Arrays quantities should be in multiples of number up per array");
				document.assembly.quantity3.select();
				return false;
			}
		}*/
	}
	
	if (document.assembly.quantity4.value != "") {
		if (isNaN(document.assembly.quantity4.value) || document.assembly.quantity4.value == "" || document.assembly.quantity4.value == "0") {
			alert("Please enter a non-zero number for Desired Board Quantity.");
			document.assembly.quantity4.focus();
			return false;
		}		
		if (parseInt(document.assembly.quantity4.value) < 1) {
			alert("Please order minimum of 1 boards.");
			document.assembly.quantity4.focus();
			return false;
		}		
		/*if (parseInt(document.assembly.quantity4.value) > 25) {
			alert("Only 1 thru 25 quantity allowed, for other quantities please contact our sales rep.");
			document.assembly.quantity4.focus();
			return false;
		}
		if(rd_arYes.checked ){
			if(parseInt(document.assembly.quantity4.value)%NoPcbsArVal >0){
				alert("For Arrays quantities should be in multiples of number up per array");
				document.assembly.quantity4.select();
				return false;
			}
		}*/
	}
	
	var smt=document.getElementById("txtNSmt_id").value;
	var throughHole=document.getElementById("txtThroughHole_id").value;
	var fineP=document.getElementById("txtFPComponents_id").value;	
	var lBom=document.getElementById("txtNLines_id").value;
	if(isNaN(smt) || smt=="")
	{
		alert("Please Enter a value of zero or more for Number of standard SMT components (per board)");
		document.getElementById("txtNSmt_id").select();
		return false;
	}
	if(smt<0)
	{
		alert("Please Enter a value of zero or more for Number of standard SMT components (per board)");
		document.getElementById("txtNSmt_id").select();
		return false;
	}
	
	if(isNaN(throughHole) || throughHole=="")
	{
		alert("Please Enter a value of zero or more for Number of Handplaced/ Through Hole components (per board)");
		document.getElementById("txtThroughHole_id").select();
		return false;
	}
	if(throughHole<0)
	{
		alert("Please Enter a value of zero or more for Number of Handplaced/ Through Hole components (per board)");
		document.getElementById("txtThroughHole_id").select();
		return false;
	}
	
	
	if(isNaN(fineP) || fineP=="")
	{
		alert("Please Entera value of zero or more for Number of Fine Pitch Components (per board)");
		document.getElementById("txtFPComponents_id").select();
		return false;
	}
	if(fineP<0)
	{
		alert("Please Entera value of zero or more for Number of Fine Pitch Components (per board)");
		document.getElementById("txtFPComponents_id").select();
		return false;
	}
	
	try{
		smt = parseInt(smt);
	}catch(e){
		smt =0;
	}
	try{
		throughHole = parseInt(throughHole);
	}catch(e){
		throughHole =0;
	}
	try{
		fineP = parseInt(fineP);
	}catch(e){
		fineP =0;
	}
	
	var total=(smt+throughHole+fineP);
	
	
	if(total<= 0)
	{
		alert("Atleast one of SMT Components, Thru-Hole components and Fine Pitch components should be non-zero");
		document.getElementById("txtNSmt_id").select();
		return false;
	}
	if(isNaN(lBom) || lBom=="")
	{
		alert("Please Enter a value of zero or more for Number of Line Items in BOM");
		document.getElementById("txtNLines_id").select();
		return false;
	}
	if(lBom<=0)
	{
	alert("Number of Line Items in BOM should be non-zero");
	document.getElementById("txtNLines_id").value="";
	document.getElementById("txtNLines_id").select();
	return false;
	}
	
	try{
		lBom = parseInt(lBom);
	}catch(e){
		lBom =0;
	}
	
	var countNonZeros = 0;
	if(smt>0){
		countNonZeros =countNonZeros +1;
	}
	if(throughHole>0){
		countNonZeros =countNonZeros +1;
	}
	if(fineP>0){
		countNonZeros =countNonZeros +1;
	}
	
	if(lBom<countNonZeros)
	{
	alert("Number of Line Items in BOM should be atleast "+countNonZeros+"");
	document.getElementById("txtNLines_id").select();
	return false;
	}
	
	/*if(isBlank(smt))
	{
		alert("Please Enter a value of zero or more for Number of standard SMT components (per board)");
		document.getElementById("txtNSmt_id").value="0";
		document.getElementById("txtNSmt_id").select();
		return false;
	}
	if(isBlank(throughHole))
	{
		alert("Please Enter a value of zero or more for Number of Handplaced/ Through Hole components (per board)");
		document.getElementById("txtThroughHole_id").value="";
		document.getElementById("txtThroughHole_id").select();
		return false;
	}
	if(isBlank(fineP))
	{
		alert("Please Enter a value of zero or more for Number of Fine Pitch Components (per board)");
		document.getElementById("txtFPComponents_id").value="";
		document.getElementById("txtFPComponents_id").select();
		return false;
	}
	if(isBlank(lBom))
	{
		alert("Number of Line Items in BOM should be non-zero");
		document.getElementById("txtNLines_id").value="";
		document.getElementById("txtNLines_id").select();
		return false;
	}*/
	/*
	if(typeof document.frmAssemblyQuote.txtQty != 'undefined') {	
		var txtQty = document.getElementById("txtQty");		
		
		if(txtQty!='undefind'){
			if(txtQty.value !="" && txtQty.value!=0){
				if(!isInteger(txtQty.value)){
					alert("Please enter a number for additional quantity");
					return false;
				}
			}
				if(isBlank(txtQty.value))
				{
					alert("Please enter a number for additional quantity");
					document.getElementById("txtQty").value="";
					document.getElementById("txtQty").select();
					return false;
				}
		}
		
	}	*/
	
}
function isInteger (s){
	var i;	
	if (isEmpty(s))
	if (isInteger.arguments.length == 1) return 0;
	else return (isInteger.arguments[1] == true);	
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);	
		if (!isDigit(c)) return false;
	}	
	return true;
}
function isEmpty(s){
	return ((s == null) || (s.length == 0))
}

function isDigit (c){
	return ((c >= "0") && (c <= "9"))
}
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
	}
	return true;
}
