// primary validation of search terms
//
// VB script dosen't work for Firefox. Use JavaScript and Regu;ar Expresion
//

// for formula the molecule is repeated with segment (m((Syn)k)).  where Sy is symbol, m, n and k can be any number of digits. 

function runName()
{
	var thisType;

	var myTerm = document.searchForm.terms.value;
	if (myTerm == "")
	{
		alert('请输入搜索关键词！', 'chemBlink Search...');
		return false;
	}

	var thisName=document.searchForm.terms.value;
	thisType='product name';
	document.searchForm.types.value=thisType;
	document.searchForm.terms.value=trimAll(thisName);

	return true;
}

function runCAS()
{
	var thisType;

	var myTerm = document.searchForm.terms.value;
	if (myTerm == "")
	{
		alert('请输入搜索关键词！');
		return false;
	}

	thisType="CAS number";
	var thisCAS=document.searchForm.terms.value;
	thisCAS=trimAll(thisCAS);

	var casFilter=/^(\d{0,7})[-]?(\d{0,2})[-]?(\d{1})$/;
	if (!(casFilter.test(thisCAS)))
	{ 
		  alert('请使用正确的 CAS 登录号格式如 1234567-89-0。');
		  document.searchForm.types.value=thisType;
		  return false;
	}

	// check Values
//	var isValid=checkCAS(thisCAS);
//	if (! isValid )
//	{
//		  alert(thisCAS + " 不是合格的 CAS 登录号。");
//		  return false;
//	}
	
	document.searchForm.types.value=thisType;
	document.searchForm.terms.value=thisCAS;

	return true;
}

function runFormula()
{
	var thisType;

	var myTerm = document.searchForm.terms.value;
	if (myTerm == "")
	{
		alert('请输入搜索关键词！');
		return false;
	}

	var thisFormula=document.searchForm.terms.value;
	thisFormula=trimAll(thisFormula);
	while (thisFormula.indexOf(" ")>=0)
	{																			thisFormula=thisFormula.replace( '   ', '');	
	}		

	var formulaFilter=/^([0-9.,]*\(*[A-IK-PR-Z][a-ik-pruy]?[0-9.,]*\)*[0-9.,]*\.*)+$/;		// Element symbol: First: Upper, second lower, use () and .	
//	var formulaFilter=/^[0-9.,A-IK-PR-Za-ik-pruy()]*$/;		// Characters (except JQjqvwxz) and nmbers and . , ( )	
	if (!(formulaFilter.test(thisFormula)))
	{ 
		  alert('分子式搜索格式不正确。');
		  thisType="molecular formula";
		  document.searchForm.types.value=thisType;
		  return false;
	}

	thisType="molecular formula";
	document.searchForm.types.value=thisType;
	document.searchForm.terms.value = thisFormula;
	
	return true;
}

function runSupplier()
{
	var thisType;

	var myTerm = document.searchForm.terms.value;
	if (myTerm == "")
	{
		alert('请输入搜索关键词！', 'chemBlink Search...');
		return false;
	}

	var thisName=document.searchForm.terms.value;
	thisType='supplier name';
	document.searchForm.types.value=thisType;
	document.searchForm.terms.value=trimAll(thisName);

	return true;
}

function runWeb()
{
	var thisType;

	var myTerm = document.searchForm.terms.value;
	if (myTerm == "")
	{
		alert('请输入搜索关键词！', 'chemBlink Search...');
		return false;
	}

	var thisName=document.searchForm.terms.value;
	thisType='web';
	document.searchForm.types.value=thisType;
	document.searchForm.terms.value=trimAll(thisName);

	return true;
}

function trimAll(sString) 
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}

	return sString;
}

function checkBlank()
{
	if (document.searchForm.types.value=="")
	{	
		document.searchForm.types.value="product name";
	}

	return true;
}

function checkCAS(str)
{
var i;
var casNum;
var total;

casNum=str;
while(casNum.length<12)
{
	casNum="0" + casNum;
}

total=0;
total=total + 9*parseInt(casNum.charAt(0));
total=total + 8*parseInt(casNum.charAt(1));
total=total + 7*parseInt(casNum.charAt(2));
total=total + 6*parseInt(casNum.charAt(3));
total=total + 5*parseInt(casNum.charAt(4));
total=total + 4*parseInt(casNum.charAt(5));
total=total + 3*parseInt(casNum.charAt(6));
total=total + 2*parseInt(casNum.charAt(8));
total=total + parseInt(casNum.charAt(9));
if ( total % 10 != casNum.charAt(11) )
{
 	return (false);
}		

	return(true);
}
