// JavaScript Document
function ImageOn( name, imagePath)
{
        // Display status text if it's there
	document.getElementById(name).style.cursor = "hand";
	if ( ( name ) && ( imagePath ) )
		{
			obj = document.getElementById(name);
			if ( obj )
				{
					obj.src = imagePath;
				}
			return true;
		}
	return false;
}
function toggle(list,imageID,image1,image2){
	var listElementStyle=window.document.getElementById(list).style;
	var listImageStyle=window.document.getElementById(imageID);
	if (listElementStyle.display=="none"){
		listElementStyle.display="block";
		listImageStyle.src = image2;
	 }else{ 
		listElementStyle.display="none";
		listImageStyle.src = image1;
	}
}
// Turns the image off....

function ImageOff( name, imagePath)
{
	// Display status text if it's there
	if ( ( name ) && ( imagePath ) ){
		obj = document.getElementById(name);
		if ( obj ){
			obj.src = imagePath;
			 }
		return true;
		}
	return false;
}
function IsNumeric(s)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < s.length && IsNumber == true; i++) 
      { 
      Char = s.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}
function IsISBN(s)
{
   var ValidChars = "0123456789";
   var IsISBN=true;
   var Char;

 
   for (i = 0; i < s.length && IsISBN == true; i++) 
      { 
      Char = s.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsISBN = false;
         }
      }
   return IsISBN;
}
function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
	if ( s < 1){
		return false
	}
    return true;
}
function validEmail(s){   
//function used to make a basic validation of the email (i.e check for a '.' and '@') 
// this function is used by the validateform() function

	var i,str,dot,at,correctLocation;
	var valid = false;

	dot=false;
	at=false;
	correctLocation=false;
	
	str = s;
	
	//make sure email is at least 5 characters long
	if (str.length<6) return false; 

	//check the string input to see if it is a valid input.
	for (i = 0;  i < str.length;  i++)
	{
		//get the character
		ch = str.charAt(i);
		if (ch==".")
		{
			dot=true; //dot has been found
			correctLocation=true; // '.' should be the last of the two
		} 
		if (ch=="@")
		{
			at=true;//@ has been found
			correctLocation=false; // '@' should not be the last of the two
		} 
	}
	if (dot && at && correctLocation){valid=true;} //set valid to true if a valid email
	if (!valid) return false;
	if (valid) return true;
}
function inString(s,char){
	for (n=0;n<s.length;n++){
		if (s.charCodeAt(n) == char.toString()){
			alert(char.charCodeAt(0));
			return true;
		}
	}
	return false;
}
function setCursorFocus(name){
		cusrorFocus = name;
		document.getElementById(name).style.backgroundColor = "#CCCCFF";
}
function removeCursorFocus(name){
		document.getElementById(name).style.backgroundColor = "#ffffff";
}
function getCursorFocus(){
		return cusrorFocus;
}
function alertFocus(cusrorFocus){
		alert(cusrorFocus);
}
function clearText(intString){
			first = true;
			and = false;
			not = false;
			leftBracket = false;
			rightBracket = false;
			isSymbol = true;
			isCharacter = true;
			or = false;
			dash = false;
			symbolAllowed = true;
			characterAllowed = true;
			pos1 = false;
			pos2 = false;
			range = false;
			isEndOfRange = false;
			isAfterAndOr = true;
			isAfterNot = true;
			document.generalSearch.searchString2.value = intString;
			document.generalSearch.searchString.value = "";
}
function addSymbol(symbol,cusrorFocus,sqlsymbol){

	document.getElementById(cusrorFocus).style.backgroundColor = "#CCCCFF";
		
		if(symbol == " AND " || symbol == " OR " || symbol == " NOT " || symbol == "[" || symbol == "]" || symbol == "-"){
			isSymbol = true;
			isCharacter = false;
		} else {
			isSymbol = false;
			isCharacter = true;			
		}

		if(symbol == "["){
			range = true;
		}
		
		if(symbolAllowed){
			if(isSymbol){
				if(first && symbol == " NOT " && isAfterAndOr && isAfterNot){
					isAfterAndOr = true;
					isAfterNot = false;
					document.generalSearch.searchString2.value += symbol;
					document.generalSearch.searchString.value += symbol;
					return;
				}
				if(symbol == " NOT " && isAfterAndOr && isAfterNot){
					isAfterAndOr = true;
					isAfterNot = false;
					document.generalSearch.searchString2.value += symbol;
					document.generalSearch.searchString.value += symbol;
					return;
				}
				if(!first && and && symbol == " AND "){
					and = false;
					or = false;
					isSymbol = true;
					isCharacter = true;
					isEndOfRange = false;
					isAfterAndOr = true;
					isAfterNot = true;
					document.generalSearch.searchString2.value += symbol;
					document.generalSearch.searchString.value += symbol;
					return;
				}
				if(!first && or && symbol == " OR "){
					and = false;
					or = false;
					isSymbol = true;
					isCharacter = true;
					isEndOfRange = false;
					isAfterAndOr = true;
					isAfterNot = true;
					document.generalSearch.searchString2.value += symbol;
					document.generalSearch.searchString.value += symbol;
					return;
				}
				if(range && !isEndOfRange){
					if(!leftBracket  && !pos1 && !dash && !pos2 && !rightBracket && symbol == "[" && isAfterAndOr){
																								
						and = false;
						or = false;
						leftBracket = true;
						isSymbol = false;
						isCharacter = true;
						if(first){
							document.generalSearch.searchString2.value  += " ("+field+" BETWEEN ";
							document.generalSearch.searchString.value += symbol;
						}else{
							document.generalSearch.searchString2.value += " ("+field+" BETWEEN ";
							document.generalSearch.searchString.value += symbol;
						}
						return;
					}
					if(leftBracket  && pos1 && !dash && !pos2 && !rightBracket && symbol == "-"){
						and = false;
						or = false;
						dash = true;
						isSymbol = false;
						isCharacter = true;
						document.generalSearch.searchString2.value += " AND ";
						document.generalSearch.searchString.value += symbol;
						return;
					}
					if(leftBracket  && pos1 && dash && pos2 && !rightBracket && symbol == "]"){
						and = false;
						or = false;
						rightBracket = true;
						isSymbol = false;
						isCharacter = true;
						document.generalSearch.searchString.value += symbol;
						document.generalSearch.searchString2.value += ")";
					}
					if(leftBracket  && pos1 && dash && pos2 && rightBracket){
						first = false;
						range = false;
						
						leftBracket = false;
						pos1 = false;
						dash = false;
						pos2 = false;
						rightBracket = false;
						
						and = true;
						or = true;
						isAfterAndOr = false;
						isSymbol = true;
						isCharacter = false;
						isEndOfRange = true;
						return;
					}
				}
			}
		}
		
		if(characterAllowed){
			if(isCharacter){
				if(!first && !and && !or && !range){
					isAfterAndOr = false;
					and = true;
					or = true;
					isSymbol = true;
					isCharacter = false;
					document.generalSearch.searchString.value += symbol;
					if(table == "Subject"){
						document.generalSearch.searchString2.value += field+" = "+sqlsymbol+"";
					}else{
						document.generalSearch.searchString2.value += field+" = '"+sqlsymbol+"'";						
					}
					return;
				}
				if(first && !range){
					isAfterAndOr = false;
					first = false;
					and = true;
					or = true;
					isSymbol = true;
					isCharacter = false;
					document.generalSearch.searchString.value += symbol;
					if(table == "Subject"){
						document.generalSearch.searchString2.value += field+" = "+sqlsymbol+"";
					}else{
						document.generalSearch.searchString2.value += field+" = '"+sqlsymbol+"'";						
					}
					return;
				}
				if(range && !isEndOfRange){
					if(leftBracket  && !pos1 && !dash && !pos2 && !rightBracket){
						pos1 = true;
						isSymbol = true;
						isCharacter = false;
						document.generalSearch.searchString.value += symbol;
					if(table == "Subject"){
						document.generalSearch.searchString2.value += " "+sqlsymbol+"";
					}else{
						document.generalSearch.searchString2.value += " '"+sqlsymbol+"'";						
					}
					return;

					}
					if(leftBracket && pos1 && dash && !pos2 && !rightBracket){
						pos2 = true;
						isSymbol = true;
						isCharacter = false;
						document.generalSearch.searchString.value += symbol;
					if(table == "Subject"){
						document.generalSearch.searchString2.value += " "+sqlsymbol+"";
					}else{
						document.generalSearch.searchString2.value += " '"+sqlsymbol+"'";						
					}
					return;

					}
				}
			}
		}
}
function browserBack(){
	history.back();
}
function insRow(){
	var noOfRows = document.getElementById('myTable').rows.length;
	if (noOfRows < 5){
		var x=document.getElementById('myTable').insertRow(0);
		var y=x.insertCell(0);
		var yy=x.insertCell(1)
		var z=x.insertCell(2);
		var zz=x.insertCell(3);
		
		y.innerHTML="<select name='condition"+noOfRows+"' ><option value='AND'>AND</option><option value='OR'>OR</option><option value='NOT'>NOT</option></select>"
		yy.innerHTML="<select name='select"+noOfRows+"' onchange='changeSelect(this,"+noOfRows+");'><option value='ORGN;Neilsen_Publisher_Data'>Company Name</option>Company Name</option><option value='RecType;Publisher'>Type of Company</option><option value='Description;Subject'>Subject Classification</option><option value='Code;ISBN'>ISBN Prefixes</option><option value='Town;Publisher'>Town</option><option value='Postcode;Publisher'>Postcode</option><option value='Name;Contact'>Personnel</option></select>"
		z.innerHTML="<select name='position"+noOfRows+"' id='position"+noOfRows+"'><option value='STARTING WITH'>Starting With</option><option value='CONTAINING'>Containing</option><option value='ENDING IN'>Ending in</option></select>"
		zz.innerHTML="<span id='test"+noOfRows+"' name='test"+noOfRows+"'><input type='text' size='20' name='row"+noOfRows+"' id='row"+noOfRows+"' onfocus=setCursorFocus('row"+noOfRows+"'); onblur=removeCursorFocus('row"+noOfRows+"');  size='27' onkeypress='if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97) || event.keyCode==34 || event.keyCode==39) event.returnValue = false;'/></span>"
		document.searchStrategy.rowsNo.value = noOfRows;
		}
}
function delRow(){
	var noOfRows = document.getElementById('myTable').rows.length;
	if (noOfRows > 1){
		var x=document.getElementById('myTable').deleteRow(0);
	}
	noOfRows = document.getElementById('myTable').rows.length-1;
	document.searchStrategy.rowsNo.value = noOfRows;
}
function fMouseOver(me){
		document.getElementById(me.id).style.color = "#ff0000";
		document.getElementById(me.id).style.cursor = "hand";
		
}
function fMouseOut(me){
		document.getElementById(me.id).style.color = "#ffffff";
}
function showObject(obj) {
	document.getElementById(obj).style.visibility="hidden";
}
function hideObject(obj) {
	//document.getElementById(obj).style.visibility="hidden";
	document.getElementById(obj).style.visibility="hidden";
}