
function alertAboutSpecialCharacters()
{
	alert("The following characters should not be in the search keyword: |!,\":<>[]{}`\';()\\~^=*@$#%©®™");
}

/* ---------------- */

function myTrim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}

/* ---------------- */

function submitSearch(pageNumber,specialcharacters)
{			        
	if(validateSearchKeyWord(specialcharacters))
	{		
	   document.getElementById("form1").startPage.value = pageNumber ;
	   
	   resetVaraiblesOnSearchPage("form1");
	   
	   document.getElementById("form1").submit();
	}
	else
	{	  
	   return false ;
	}				
}

/* ---------------- */

function reStartSearch(specialCharacters)
{   
   submitSearch(1,specialCharacters);
}

/* ---------------- */

function validateSearchKeyWordForHeader(specialCharacters)
{       

	var keyword = document.simpleForm.keyWord.value;			
	
	if(document.getElementById("form1")!=null && document.getElementById("form1").startPage!=null)
	{
	  resetVaraiblesOnSearchPage("form1"); 
	  
	  var pageNumber = myTrim(document.getElementById("form1").startPage.value) ;
	}
	else
	{	 
	  var pageNumber = 1
	}		
	
	if(pageNumber==null || pageNumber=="")
	{
	  pageNumber = 1 ;
	}			
						
	var test = checkIFStringHasSpecialChars(specialCharacters,'simpleForm');
	
	if(test)
	{ 	     	  
	  return true;
	}
	else
	{		
	  return false;
	}
}

/* ******************** */

function validateSearchKeyWord(specialCharacters)
{
    resetVaraiblesOnSearchPage("form1");
	
	var keyword = document.getElementById("form1").keyWord.value;	
	var pageNumber = myTrim(document.getElementById("form1").startPage.value) ;	

	if(pageNumber==null || pageNumber=="") 
	{
	  pageNumber = 1 ;
	}			
						
	var test = checkIFStringHasSpecialChars(specialCharacters,'form1');

	if(test)
	{ 	     
	  document.getElementById("form1").startPage.value  = pageNumber;		
	  return true;
	}
	else
	{		
	  return false;
	}
}

/* ---------------- */

function checkIFStringHasSpecialChars(specialCharacters,formID) 
{	

	specialCharacters +="\'\"";                                   //add to the special chars the ' and " .		
	var keyWord = myTrim(document.getElementById(formID).keyWord.value);	
	
	var specialChars = specialCharacters ; 	

	var len =specialChars.length; 	
	
	
	if(keyWord.length < 1)
	{                    
		alert("The Search keyword is empty");
		return false;
	}	
	if(keyWord.length == 1)
	{                    
		alert("The Search keyword must be more than one character");
		return false;
	}	
	
	for (var i = 0; i < len; i++) 
	{	    
	  if (keyWord.indexOf(specialChars.charAt(i)) > -1)		
	  {
	     alertAboutSpecialCharacters();
	     return false;
	  }
		
	}
	
	for (var i = 0; i < keyWord.length; i++) 
	{
	
		  var moreSpecialCharacters=new Array(174,169,8482) ;
		  		
		  //alert("char code is:"+keyWord.charCodeAt(i));
		  //alert(String.fromCharCode(8482 )+"is the special");                /*{(174,®),(169,©),(8482,™)}*/ /*
		 
		  for(var k = 0; k < moreSpecialCharacters.length; k++)
		  {
			  if(keyWord.charCodeAt(i)==moreSpecialCharacters[k])
			  { 	    					
                alertAboutSpecialCharacters();
				return false;
			  }		    
		  }		  
	
	}	
	
	return true;
} 

/* **************** */

function validateNumberInGoToPageField(totalPages,idOfTextField,specialCharacters)
{
  
   var wantedPage = document.getElementById(idOfTextField).value ;
  
   var len = document.getElementById(idOfTextField).value.length;
   var indexOfDot = document.getElementById(idOfTextField).value.indexOf(".");    
	
   if(len > 0)
   {
	   if(wantedPage > totalPages)
	   {
		 alert('Number entered is greater than total pages');	 
	   }   
	   else if(wantedPage < 1)
	   {
		alert('Number entered is less than 1');
	   }
	   else if(wantedPage <= totalPages)
	   {	
	     if(indexOfDot > 0)
		 {
		   alert('Number entered is not valid');
		 }     
		 else submitSearch(wantedPage,specialCharacters);
	   }   
	   else
	   {
		alert('Number entered is not valid');
	   }
   }
   else

   {
    alert('The Page field is empty,please enter a number');	 
   }
}

/* we use this function when the user search for one keyword and
when he get the result that has paginations he enter a new keyword and click the next page .
so, we must reset the start page .
*/
function resetVaraiblesOnSearchPage(formID)
{
	 
    var oldValue = document.getElementById('oldSearchKeyWord').value;
    var newValue = document.getElementById(formID).keyWord.value;		
    
     if(oldValue!=newValue)
	 {
	   document.getElementById(formID).startPage.value = 1;	 	 
	 }
}
