// 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('Please enter at least one keyword to search.', 'chemBlink Search...');
		return false;
	}

	var thisName=document.searchForm.terms.value;
	thisType='product name';
	document.searchForm.types.value=thisType;
	document.searchForm.terms.value=trimAll(thisName);
	// if chinese characters, call different asp
	if(/[^\x00-\xff]/g.test(thisName)){	
		
	document.searchForm.types.value=thisType;
	document.searchForm.terms.value=trimAll(thisName);
	document.searchForm.action="asp/searchingC.asp";
	document.searchForm.submit();

	}

	return true;
}

function runCAS()
{
	var thisType;

	var myTerm = document.searchForm.terms.value;
	if (myTerm == "")
	{
		alert('Please enter at least one keyword to search.');
		return false;
	}

	thisType="CAS number";
	var thisCAS=document.searchForm.terms.value;
	thisCAS=trimAll(thisCAS);

	var casFilter=/^(\d{0,7})[-]?(\d{0,2})[-]?(\d{1})$/;	// alow part of cas
	if (!(casFilter.test(thisCAS)))
	{ 
		  alert('Please use the format 1234567-89-0.');
		  document.searchForm.types.value=thisType;
		  return false;
	}
	
	// check Values
//	var isValid=checkCAS(thisCAS);
//	if (! isValid )
//	{
//		  alert('Invalid CAS #:' + thisCAS);
//		  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('Please enter at least one keyword to search.');
		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('Invalid formula.');
		  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('Please enter at least one keyword to search.', 'chemBlink Search...');
		return false;
	}

	var thisName=document.searchForm.terms.value;
	thisType='supplier name';
	document.searchForm.types.value=thisType;
	document.searchForm.terms.value=trimAll(thisName);

	// if chinese characters are not typed but copied or already there
	if(/[^\x00-\xff]/g.test(thisName)){	
		
	document.searchForm.types.value=thisType;
	document.searchForm.terms.value=trimAll(thisName);
	document.searchForm.action="asp/searchingC.asp";
	document.searchForm.submit();

	}

	return true;
}

function runWeb()
{
	var thisType;

	var myTerm = document.searchForm.terms.value;
	if (myTerm == "")
	{
		alert('Please enter at least one keyword to search.', '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);
}

function roll(img_name, img_src)
   {
   document[img_name].src = img_src;
   }

// if chinese characters are types
function toIndexASP(str)
{
var pathStr;
	if(/[^\x00-\xff]/g.test(str)){
		
		pathStr='indexC.htm';
		//alert (pathStr);
    		window.location = pathStr;
	} 
}
