/*****************************************************************************
* Copyright (c) 2002-2003 IT Solutions (India) Pvt Ltd.
* All Rights Reserved
* This work contains trade secrets and confidential material of IT Solutions
* India Pvt Ltd.,
* and its use of disclosure in whole or in part without express written
* permission of IT Solutions India Pvt Ltd. is Prohibited.
*
* Company                   : Honeywell Turbo
* Project                   : Turbo By Garrett.com
* Name                      : TURBOBYGARRETT.JS
* Description               : contains javascript functions for TurboByGarret.com
* References                : None
*
* Modification
* History :
* Date         	Version		Modified by  Brief Description of Modification
* 23-Oct-2002	  0.01     	ITS          Initial Release
* 01-Nov-2002	  0.02     	ITS	     	 After peer Review
* 04-Jul-2003     0.1       ITS          Changes as per SR 13213
* 25-Jul-2003     0.12      ITS          Changes as per SR 13425
* 05-Sep-2003     0.2       ITS          Changes as per SR 13680
******************************************************************************/

/**
* Function to register the entered information
* @return boolean
*/
function registerUser()
{
 	trimAll();
 	if (document.forms[0].tbFirstName.value == "")
 	{
 		alert("Please Enter Your First Name");
 		document.forms[0].tbFirstName.focus();
 		return false;
 	}
 	if (!(checkAlphaNumeric(document.forms[0].tbFirstName.value," ")))
	{
		alert("Special Characters not allowed in FirstName");
		document.forms[0].tbFirstName.select();
		document.forms[0].tbFirstName.focus();
		return false;
 	}
 	if (document.forms[0].tbLastName.value == "")
	{
		alert("Please Enter Your Last Name");
		document.forms[0].tbLastName.focus();
		return false;
 	}
 	if (!(checkAlphaNumeric(document.forms[0].tbLastName.value," ")))
	{
		alert("Special Characters not allowed in LastName");
		document.forms[0].tbLastName.select();
		document.forms[0].tbLastName.focus();
		return false;
 	}
 	if (document.forms[0].tbEmail.value == "")
	{
		alert("Please Enter Your Email");
		document.forms[0].tbEmail.focus();
		return false;
 	}
 	if (!(isValidEmail(document.forms[0].tbEmail.value)))
 	{ 		
		document.forms[0].tbEmail.select();
		document.forms[0].tbEmail.focus();
		return false;
 	}
  	
  	//Added for SR 13213
  	document.forms[0].hdTriggerType.value="THANKYOU";	
  	//End of Addition for SR 13213
  	//Added for SR 13425
  	document.forms[0].hdAction.value = "SAVEDETAILS";
  	//End of Addition for SR 13425
	document.forms[0].submit();
	return false;
 	
 	
 }
 
 /**
 * Function to clear the values
 */
 function clearValues()
 {
 	document.forms[0].tbFirstName.value="";
 	document.forms[0].tbLastName.value="";
 	document.forms[0].tbEmail.value="";
 	document.forms[0].tbFirstName.focus();
 }
 
  
/**
 * Function used to trim all the textbox and text area values in javascript
 */
function trimAll()
{
	for (var i=0;i<document.forms[0].elements.length;i++)
	{
		var eleType = document.forms[0].elements[i].type;
		eleType = eleType.toUpperCase();
		if (eleType == "TEXT" || eleType == "TEXTAREA")
		{
			document.forms[0].elements[i].value = trimString(document.forms[0].elements[i].value);
		}
	}
	return;
}

/**
 *   Function to trim blank spaces on the either side of the input String
 *   @param strValue
 *   @return String
 */
 function trimString(strValue)
 {
    strValue = strValue + "" ;
    for (var startIndex=0;strValue.length > startIndex && strValue.charAt(startIndex)==' ';startIndex++);
    for (var endIndex=strValue.length-1;endIndex > startIndex && strValue.charAt(endIndex)==' ';endIndex--);
    return strValue.substring(startIndex,endIndex+1);
 }

/**
 * Function Which sets the focus to the first element in the screen (form)
 * @return boolean
 */
 function setInitialFocus()
 {
    var intNoOfElements = document.forms[0].elements.length ;
    if(intNoOfElements > 0)
    {
		for(var i=0;i<intNoOfElements;i++)
		{
			if(document.forms[0].elements[i].type.toLowerCase() != 'hidden' && 
				document.forms[0].elements[i].type.toLowerCase() != "checkbox" &&
				 document.forms[0].elements[i].type.toLowerCase() != "button")			
			{
				document.forms[0].elements[i].focus();
				return;
			}
		}

    }
    return  false;
 }

/**
* This function is used to validate an email address
* @param emailStr Email
* @return boolean
*/
function isValidEmail(emailStr)
{
       	var emailPat      =  /^(.+)@(.+)$/;
       	var specialChars  =  "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
       	var validChars    =  "\[^\\s" + specialChars + "\]";
       	var quotedUser    =  "(\"[^\"]*\")";
       	var ipDomainPat      =  "/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/";
    
       	var atom       =  validChars + '+';
       	var word       =  "(" + atom + "|" + quotedUser + ")";
    
       	var userPat       =  new RegExp("^" + word + "(\\." + word + ")*$");
       	var domainPat     =  new RegExp("^" + atom + "(\\." + atom +")*$");
    
       	var matchArray    =  emailStr.match(emailPat);
    
    	if (matchArray==null)
    	{
    	  	alert("Please enter a valid email address like name@domain.com");
    		return false;
    	}
    
       	var user =  matchArray[1];
       	var domain  =  matchArray[2];
    
       	if (user.match(userPat)==null)
       	{
       	   	alert("Please enter a valid email address like name@domain.com");
       	   	return false;
       	}
    
       	var IPArray    =  domain.match(ipDomainPat);
    
       	if (IPArray!=null)
       	{
       	   for (var i=1;i<=4;i++)
       	   {
       	      if (IPArray[i]>255)
       	      {
       	         alert("Destination IP address is invalid!");
       	         return false;
       	      }
       	   }
       	   return true;
       	}
       	var domainArray   =  domain.match(domainPat);
       	if (domainArray==null)
       	{
       	   alert("The domain name is not valid.");
       	   return false;
       	}
       	var atomPat =  new RegExp(atom,"g");
       	var domArr  =  domain.match(atomPat);
       	var len     =  domArr.length;
       	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
       	{
       	   alert("The address must end in a three-letter domain, or two letter country.");
       	   return false;
       	}
       	if (len<2)
       	{
       	   var errStr="This address is missing a hostname!";
       	   alert(errStr);
       	   return false;
       	}
       	//include this
       	var occur1 = 0;
       	var occur2 = 0;
      
       	occur1 = emailStr.indexOf("@") ;
       	occur2 = emailStr.lastIndexOf("@") ;
       	 	
       	if (occur1!=occur2)
       	{
       		alert("Please enter a valid email address like name@domain.com");
       	   	return false;
       	}
       	occur1 = emailStr.indexOf(".") ;
       	occur2 = emailStr.lastIndexOf(".") ;
       	var leng = emailStr.length;
       	if (occur1!=occur2)
       	{
       		if (!(leng > occur2 + 2 ))
       		{
       			alert("Please enter a valid email address like name@domain.com");
       	   		return false;
       	   	}
       	}
       	
       	if (!(isAlphaNumeric(emailStr,"@._-")))
       	{
       	   var errStr="The address should not contain special characters";
       	   alert(errStr);
       	   return false;
       	}
       	return true;

}

/**
* Function to check whether charValue is a special character
* @param chrValue
* @return boolean
*/

function isAlphaNumeric(chrValue)
{
    if ((chrValue < 'a' || chrValue > 'z') &&
        (chrValue < 'A' || chrValue > 'Z') &&
        (chrValue < '0' || chrValue > '9'))
    {

        return false;
    }
    else
        return true;

}


/**
 *   function that checks invalid data entry
 *   @param strEnteredvalue, strAllowed
 *   @return boolean
 */
function checkAlphaNumeric(strEnteredvalue,strAllowed)
{
	var bolFlag       = true;
	var len           = strEnteredvalue.length;
	var strtestChar;
	strLegalChars    = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"+strAllowed;
	for (var i=0;bolFlag && i<len;i++)
	{
		bolFlag     = false;
		strtestChar = strEnteredvalue.charAt(i);
		
		if (strtestChar.charCodeAt(0) == 160)
		{
			strtestChar = ' ';
		}

		for(var j=0;j<strLegalChars.length;j++)
		{
			if (strtestChar == strLegalChars.charAt(j))
			{
				bolFlag = true;
			}
		}
		if(!bolFlag)
		{
			return bolFlag;
		}
	}
	return bolFlag;
}


function openNewWindow(strFormName)
{
	
	window.open("/turbobygarrett/jsp/catalog.pdf","NewWindow",'toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,width=700,height=400,top=20,left=20,resizable=1');
	return true;
}

function submitForm()
{   
	document.forms[1].hdAction.value ='TRUE';
	
//	document.forms[1].hdUtilName.value ="UTIL_CLASS";
	//Added for SR 13213
	document.forms[1].hdTriggerType.value="WELCOME";
	//End of Addition for SR 13213
	document.forms[1].submit();
	return false;
}


//Added for SR 13213
/**
* Function which opens the catalog window 
* @param none
* @return boolean
*/


function submitNewForm()
{
	document.frmDownload.hdAction.value ='TRUE';
	//Commented and Modified for SR 13425
	//document.frmDownload.hdTriggerType.value="THANKYOU";
	document.frmDownload.hdTriggerType.value = "DOWNLOADS";
	//window.open("/turbobygarrett/jsp/catalog.pdf","NewWindow",'toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,width=700,height=400,top=20,left=20,resizable=1');
	window.open("/turbobygarrett/images/garrett_inside/Garrett_Cat%209%2004.pdf","NewWindow",
				'toolbar = 0,location = 0,directories = 0,status = 1,menubar = 0,scrollbars = 1,width = 700,height = 400,top = 20,left = 20,resizable = 1');
	//End of Modification for SR 13425
	document.frmDownload.submit();
	return false;
}
//End of Addition for SR 13213


//Added for SR 13680 - for validating and submitting the upload file request
/**
* Function to check whether the selected file is valid and then to submit the form
* @param strHdAction
*/
function upload(strHdAction)
{
	var strFile = document.frmLogin.file.value; 
	var strTempFile = "";
	var strFileExtn = "";
	var intIndex = 0;
	
	//End of Addition for xls extension check
	if(strFile == "")
	{
		alert("Please select a file");
		document.frmLogin.file.focus();
		return false;
	}
	else
	{
		intIndex = strFile.indexOf(".");
		strFileExtn = strFile.substring(intIndex+1,strFile.length);
		var strXls = "xls";
		
		if(strFileExtn.toLowerCase() == strXls) 
		{
			document.forms[0].encoding = 'multipart/form-data';
			document.forms[0].hdAction.value = strHdAction;
			document.forms[0].submit();
			return true;
		}
		else
		{
			alert("Please select an Excel file only");	
			document.frmLogin.file.focus();
			return false;
		}
	}
	return;
}
//End of Addition for SR 13680
