 // variable globale contenant le numéro de la section correspondant à la page
var idSection = 100;
var isLoaded = false;

//	Variables globales pour les validations de champs
var USERNAMEMAX = 10;
var USERNAMEMIN = 6;
var PASSWORDMAX = 10;
var PASSWORDMIN =  6;
var FIRSTNAMEMAX = 15;
var LASTNAMEMAX = 25;
var POSTALCODEMAX = 6;
var POSTALCODEMIN = 6;
var CCMAX = 13;
var CCMIN= 13;
var EMAILMAX = 50;
var THREENUMBERMAX = 3;
var THREENUMBERMIN = 3;
var ADDMIN = 1;
var ADDMAX = 35;
var ONLINECC = 3;
var CITYMAX = 30;
var HOMEPHONEMAX = 20;
var HOMEPHONEMIN = 9;
var WORKPHONEMAX = 20;
var WORKPHONEMIN = 9;
var NS = (document.layers)? true:false;
var IE = (document.all)? true:false;

function ValidMax(obj,max,orig){
	//alert("toto");
	if(max<0){
		return true;
	}
	var ithis = parseInt(obj.value);
	if(ithis > max){
		var salert = "";
		salert = _MSG_INVALID_QUANTITY_REMAINING + ' : ' + max.toString();
		alert(salert);
		obj.value = orig;
		return false;
	}
	else{
	return true;
	}
}

function VerifyLenPassword(passValue)
{
	if (passValue.length < PASSWORDMIN || passValue.length > PASSWORDMAX)
		return false;
	else
		return true;
}

function ValidateChangePwdForm()
{	
	if (txtPassword.value.length < PASSWORDMIN || txtPassword.value.length > PASSWORDMAX)
	{
		alert(LENGHTPASSWORD);
	    txtPassword.focus();
		return false;
	}	
	
	if (txtPassword.value != txtPasswordConfirm.value)
	{
		alert(LENGHTCONFIRM);
	    txtPasswordConfirm.focus();
		return false;
	}
	return true;
}
// Validation for forgot password page
function ValidateUserForm(bValidateUsername)
{	
	if (bValidateUsername) {
		if (txtUsername.value.length < USERNAMEMIN || txtUsername.value.length > USERNAMEMAX)
		{
			alert(LENGHTUSERNAME);
			return false;
		}
	}	
	if (txtCreditCard.value.length < CCMIN || txtCreditCard.value.length > CCMAX)
	{
		alert(LENGHTCC);
		txtCreditCard.focus();
		txtCreditCard.select();
		return false;
	}

	if (txtPostalCode.value.length < POSTALCODEMIN || txtPostalCode.value.length > POSTALCODEMAX)
	{
		alert(LENGHTPCODE);
		txtPostalCode.focus();
		return false;
	}
	
	// Validation des caracteres du code postal
	var sPostal = txtPostalCode.value;
	if (!isPCode(sPostal))
	{
	   alert(INVALIDEPOSTALCODE);	
       txtPostalCode.focus();
	   return false;
	}
/*	
	if (txtEmailAddress.value.length == 0)
	{
		alert(LENGHTEMAIL);
		txtEmailAddress.focus();
		return false;
	}

	var foundAt = txtEmailAddress.value.indexOf("@",0);
	if (foundAt < 0)
	{
	  alert (EMAILAT);
	  txtEmailAddress.focus();
	  return false;
	}
	
	var foundDot = txtEmailAddress.value.indexOf(".",0);
	if (foundDot < 0)
	{
	  alert (EMAILDOT);
	  txtEmailAddress.focus();
	  return false;
	}
	*/
//////////////////////////////////////////////////////////////////////////////////////////////////
	
	return true;
}

function ValidateLoginForm()
{	
	/* Verification que le nom d'utilisateur et le mot de passe ne contiennent 
	   que des lettres ou des chiffres
	*/

	for (var i = 0; i < txtUsername.value.length; i++)
	{
		if (!(
			 (txtUsername.value.substring(i,i + 1) >= 'a' && txtUsername.value.substring(i,i + 1) <= 'z') ||
			 (txtUsername.value.substring(i,i + 1) >= 'A' && txtUsername.value.substring(i,i + 1) <= 'Z') ||
			 (txtUsername.value.substring(i,i + 1) >= '0' && txtUsername.value.substring(i,i + 1) <= '9') 
			)) 
		{
			alert(INVALIDCHARACTER);
			return false;
		}
	}
	if (txtLastname.value.length < 1 || txtLastname.value.length > LASTNAMEMAX)
	{
		alert(LENGHTLASTNAME);
		return false;
	}
	
	if (txtFirstname.value.length < 1 || txtFirstname.value.length > LENGHTFIRSTNAME)
	{
		alert(LENGHTFIRSTNAME);
		return false;
	}
	
	if (txtPCode.value.length < POSTALCODEMIN || txtPCode.value.length > POSTALCODEMAX)
	{
		alert(LENGHTPCODE)
		return false;
	}
	
	// Validation des caracteres du code postal
	var sPostal = txtPCode.value;
	if (!isPCode(sPostal))
	{
	   alert(INVALIDEPOSTALCODE);	
	   return false;
	}
	
	if (txtCC.value.length < CCMIN || txtCC.value.length > CCMAX)
	{
		alert(LENGHTCC);
		return false;
	}
	
	if (txtUsername.value.length < USERNAMEMIN || txtUsername.value.length > USERNAMEMAX)
	{
		alert(LENGHTUSERNAME);
		return false;
	}
	
	if (txtPassword.value.length < PASSWORDMIN || txtPassword.value.length > PASSWORDMAX)
	{
		alert(LENGHTPASSWORD);
		return false;
	}	
	
	if (txtPassword.value != txtConfirm.value)
	{
		alert(LENGHTCONFIRM);
		return false;
	}
	if (txtEmail.value.length == 0)
	{
		alert(LENGHTEMAIL);
		return false;
	}

///////////////////////////////////
// By: Gang Liu       June 27, 2001
/////////////////////////////////////////////////////////////////////////////////////////////////  	
  //-- Reject eMail address if it doesn't contain "@" and "." characters.
  var foundAt = txtEmail.value.indexOf("@",0);
  if (foundAt < 0)
  {
    alert (EMAILAT);
    return false;
  }
	
  var foundDot = txtEmail.value.indexOf(".",0);
  if (foundDot < 0)
  {
    alert (EMAILDOT);
    return false;
  }
//////////////////////////////////////////////////////////////////////////////////////////////////
	
	return true;
}




///////////////////////////////////
// By: Gang Liu       June 15, 2001
///////////////////////////////////
// This function will trim leading and/or trailing spaces from a string
// arg = the value you wish to have trimmed..
// func = "left" for Ltrim(), "right" for RTrim() or "both" for Trim()

//===================================
function trim(arg,func) {
//===================================

	var trimvalue = "";
	arglen = arg.length;
	if (arglen < 1) return trimvalue;

	if (func == "left" || func== "both") {
		i = 0;
		pos = -1;
		while (i < arglen) {
			if (arg.charCodeAt(i) != 32 &&
!isNaN(arg.charCodeAt(i))) {
				pos = i;
				break;
			}
			i++;
		}
	}

	if (func == "right" || func== "both") {
		var lastpos = -1;
		i = arglen;
		while (i >= 0) {
			if (arg.charCodeAt(i) != 32 &&
!isNaN(arg.charCodeAt(i))) {
				lastpos = i;
				break;
			}
			i--;
		}
	}

	if (func == "left") {
			trimvalue = arg.substring(pos,arglen-1);
		}

	if (func == "right") {
		trimvalue = arg.substring(0,lastpos+1);
	}

	if (func == "both") {
		trimvalue = arg.substring(pos,lastpos + 1);
	}

	return trimvalue;

}







function ValidateOnlineOrderForm()
{
	if (txtUsername.value.length < USERNAMEMIN || txtUsername.value.length > USERNAMEMAX)
	{
		alert(LENGHTUSERNAME);
		return false;
	}
	
	if (txtPassword.value.length < PASSWORDMIN || txtPassword.value.length > PASSWORDMAX)
	{
		alert(LENGHTPASSWORD);
		return false;
	}	
	
	var tmpCC = trim(txtCC.value,"both");
	if ((txtCC.value.length < THREENUMBERMIN) || (txtCC.value.length > THREENUMBERMAX) || isNaN(txtCC.value) || (txtCC.value == "   ") || (tmpCC.length < 3))
	{
		alert(LENGHTCC);
		return false;
	}

	if (txtFirstname.value.length < 1 || txtFirstname.value.length > LENGHTFIRSTNAME)
	{
		alert(LENGHTFIRSTNAME);
		return false;
	}
	
	if (txtLastname.value.length < 1 || txtLastname.value.length > LASTNAMEMAX)
	{
		alert(LENGHTLASTNAME);
		return false;
	}
	
	if (txtAdr1.value.length < ADDMIN)
	{
		alert(LENGHTADR1);
		return false;
	}

	if (txtCity.value.length < 1)
	{
		alert(LENGHTCITY);
		return false;
	}

	if (txtPCode.value.length < POSTALCODEMIN || txtPCode.value.length > POSTALCODEMAX)
	{
		alert(LENGHTPCODE)
		return false;
	}
	
	// Validation des caracteres du code postal
	var sPostal = txtPCode.value;
	if (!isPCode(sPostal))
	{
	   alert(INVALIDEPOSTALCODE);	
	   return false;
	}


	
	if (txtHomephone.value.length < 1)
	{	
		alert(LENGHTHOMETEL);
		return false;
	}


///////////////////////////////////
// By: Gang Liu       June 27, 2001
/////////////////////////////////////////////////////////////////////////////////////////////////  
	// -- Home telephone number check
    if (txtHomephone.value.length < 10)
    {
      alert(HOMETELEPHONENUMBER10);
      return (false);
    }

    var checkOK = "0123456789-(). ";
    var checkStr = txtHomephone.value;
    var allValid = true;
    var decPoints = 0;
    var allNum = "";
    for (i = 0;  i < checkStr.length;  i++)
    {
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
        if (ch == checkOK.charAt(j))
          break;
      if (j == checkOK.length)
      {
        allValid = false;
        break;
      }
      allNum += ch;
    }
    if (!allValid)
    {
      alert(HOMETELEPHONENUMBERNUMERIC);
      return (false);
   }

///////////////////////////////////////////////////////////////////////////////	

	if (txtEmail.value.length == 0)
	{
		alert(LENGHTEMAIL);
		return false;
	}		
	
///////////////////////////////////
// By: Gang Liu       June 27, 2001
/////////////////////////////////////////////////////////////////////////////////////////////////  	
  //-- Reject eMail address if it doesn't contain "@" and "." characters.
  var foundAt = txtEmail.value.indexOf("@",0);
  if (foundAt < 0)
  {
    alert (EMAILAT);
    return false;
  }
	
  var foundDot = txtEmail.value.indexOf(".",0);
  if (foundDot < 0)
  {
    alert (EMAILDOT);
    return false;
  }

////////////////////////////////////////////////////////////////////////////////////////////////

	
	return true;
}




// rafraîchit le menu s'il est affiché seulement
function refreshMenu(idMenu)
{
	idSection = idMenu;

	if(parent.length > 1)
		if(parent.menu.isLoaded)
			parent.menu.refreshOptionMenu(idMenu);
			
		
/*	if ((parent.location.href == self.location.href) && (idSection != -1))
		parent.location.href = "default.asp"
*/		
	isLoaded = true;
}

// fonction de validation des nombres
function valid_number(number,isInteger,allowSub)
{
	var drapeau = false;

	for(i=0;i<number.length;i++)
	{
		if((number.charAt(i) < '0' || number.charAt(i) > '9')) 
		{
			if((!isInteger && (number.charAt(i) != '.' || drapeau || 
				number.length == 1)) || isInteger)
			{
				if(!allowSub || i != 0 || number.charAt(i) != '-')
					return false;
			}
			else drapeau = true;
		}
	}
	return true;
}

function ValidatePasslength(txtpss)
{
	if (txtpss < 6 || txtpss > 10)
	{
		alert(MSG_PWD_MIN_LENGTH);
		return false;
	}
	else
	{
		return true;
	}
}

function showMessage(fieldDescription, message)
{
	//alert(fieldDescription + ": " + message)
	alert(replace(message, FIELD_ID, fieldDescription))
}

function showMessageConfirm(message, fieldDescription)
{
	//alert(fieldDescription + ": " + message)
	//alert(replace(message, FIELD_ID, fieldDescription))
	//return
	if(confirm(replace(message, FIELD_ID, fieldDescription)))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function replace(sExpression, sFind, sReplacement)
{
	//alert(sExpression + ": " + sFind + ": " + sReplacement)
	var sLeft;
	var sRight;
				
	var idx = 1;

	while((idx = sExpression.indexOf(sFind)) > 0)
	{
		idx = sExpression.indexOf(sFind)
		//alert("index: " + idx)
		sLeft = sExpression.substring(0, idx);
		//alert("left: " + sLeft)
		sRight = sExpression.substring(idx + sFind.length, sExpression.length)
		//alert("Right: " + sRight)
		sExpression = sLeft + sReplacement + sRight
		//alert("Expression: " + sExpression)
	}
	//alert(sExpression)
	return sExpression;
}

function validateDate(sDate)
/*
Author	: Eric Gagnon
Goal	: Returns true if sDate is valid and YYYY-MM-DD formatted
*/
{
//Checking date format
	if(sDate.length > 10) {
		return false;
	}

	if	(
		(sDate.substring(0,4) >= 1900 && sDate.substring(0,4) <= 9999) &&
		(sDate.substring(4,5) == "-" || sDate.substring(4,5) == "/") &&
		(sDate.substring(5,7) >= 1 && sDate.substring(5,7) <= 12) &&
		(sDate.substring(7,8) == "-" || sDate.substring(7,8) == "/") &&
		(sDate.substring(8,10) >= 1 && sDate.substring(8,10) <= 31)
		)
	{
//Checking date validity
		var iFeb = 28;
//Determine if leap year
		if	(
			sDate.substring(0,4) % 4 == 0 &&
			sDate.substring(0,4) % 100 != 0 ||
			sDate.substring(0,4) % 400 == 0
			)
		{
			iFeb = 29;
		}
		var aDaysInMonth = new Array(31,iFeb,31,30,31,30,31,31,30,31,30,31);
		if (sDate.substring(8,10) <= aDaysInMonth[sDate.substring(5,7)-1])
		{
//Date is valid
			return true;
		}
		else
		{
//Date is not valid
			return false;
		}
	}
	else
	{
//Date format is not valid
		return false;
	}
}

function AddToFavorite(title)
{
	var url="http://scotiarewards.scotiabank.com";
	
	if ((navigator.appName == "Microsoft Internet Explorer") &&
	(parseInt(navigator.appVersion) >= 4)) 
	{
		window.external.AddFavorite(url,title);
	}
	if ((navigator.appName == "Netscape") &&
	(parseInt(navigator.appVersion) >= 4))
	{
		alert(msgFav + " CTRL+D")
	} 
}

	
/* ====================================================================
Cette fonction permettra de definir le type de browser utiliser
par l'utilisateur et valider 
==================================================================== */
function ValidateBrowser(sTop)
{
	var sRedirectionURL;
	var bMinBrowser = false;
	var browserName = navigator.appName;
	var browserVersion = navigator.appVersion;
	var indE = browserVersion.indexOf(';',browserVersion.indexOf('MSIE'));
	var indS = browserVersion.indexOf(' ',browserVersion.indexOf('MSIE'));
	var IE = (document.all);
	var NS = (!(document.all));
		
	// Exacte pour netscape
	var browserVersionNum = parseFloat(browserVersion);	
	// Recherche de la version exacte pour IE
	if (IE) browserVersionNum = browserVersion.substring(indS,indE);

	if (sTop=='top_an.htm') 
		sRedirectionURL = '/ecat/SpecialContent/default_en.asp';
	else
		sRedirectionURL = '/ecat/SpecialContent/default_fr.asp';
	

//	if (IE)
//	{
//	  if (parseFloat(browserVersionNum) >= 15.0)
//	  {
//		bMinBrowser = true;
//	  }
//	}
//			
//	if (NS)
//	{
//	  if (parseFloat(browserVersionNum) >= 14.73)
//	  {
//		bMinBrowser = true;
//	  }
//	}
			
//	// min browser support 
//	if (!bMinBrowser) top.location.href = sRedirectionURL;

	top.location.href = sRedirectionURL;
}

function IsAlpha(c)
{
	return (c >= 'a' && c <='z') || (c >= 'A' && c <= 'Z')
}

function isPCode(sPostal)
{
	var bReturn = true;
	//sPostal = sPostal.substring(0,5);
	bReturn = bReturn && IsAlpha(sPostal.charAt(0));
	bReturn = bReturn && (!(isNaN(sPostal.charAt(1))));
	bReturn = bReturn && IsAlpha(sPostal.charAt(2));
	bReturn = bReturn && (!(isNaN(sPostal.charAt(3))));
	bReturn = bReturn && IsAlpha(sPostal.charAt(4));
	bReturn = bReturn && (!(isNaN(sPostal.charAt(5))));
	return bReturn;
}

var mikExp = "/[$\\@\\\#%\^\&\*\(\)\[\]\-\.\'\<\>\?\,\:\;\/\=\)\(\!\+\_\{\}\`\~\=\|]/";
var mikExpaz = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
var mikExp09 = "0123456789";

var mikExpWithSpace = "/[$\\@\\\#%\^\&\*\(\)\[\]\-\.\'\<\>\?\ \:\;\/\=\)\(\!\+\_\{\}\`\~\=\|]/";

//CheckType = 0  Elimine les caracteres Speciaux
//CheckType = 1  Elimine les caracteres Speciaux et Lettres
//CheckType = 2  Elimine les caracteres Speciaux et les chiffres

function Datacheck(val,CheckType)
{
	var strPass = val.value;
	var strLength = strPass.length;
	var lchar = val.value.charAt((strLength) - 1);
			    
    if(CheckType == 0)
    {
		if(mikExp.indexOf(lchar) != -1)
		{
			var tst = val.value.substring(0, (strLength) - 1);
			val.value = tst;
		}
		
		for(i=0;i<strLength-1;i++)
		{
		  if(mikExp.indexOf(val.value.charAt(i)) != -1)
		  {
		    val.value = ""
		  }
		}
		
		
	}
				
	if(CheckType == 1)
    {
		if(mikExp.indexOf(lchar) != -1 || mikExpaz.indexOf(lchar) != -1)
		{
			var tst = val.value.substring(0, (strLength) - 1);
			val.value = tst;
		}
		
		for(i=0;i<strLength-1;i++)
		{
		  if(mikExp.indexOf(val.value.charAt(i)) != -1 || mikExpaz.indexOf(val.value.charAt(i)) != -1)
		  {
		    val.value = ""
		  }
		}
		
	}
				
	if(CheckType == 2)
    {
		if(mikExp.indexOf(lchar) != -1 || mikExp09.indexOf(lchar) != -1)
		{
			var tst = val.value.substring(0, (strLength) - 1);
			val.value = tst;
		}
		
		
		for(i=0;i<strLength-1;i++)
		{
		  if(mikExp.indexOf(val.value.charAt(i)) != -1 || mikExp09.indexOf(val.value.charAt(i)) != -1)
		  {
		    val.value = ""
		  }
		}
	}
	
	if(CheckType == 3)
    {
		if(mikExpWithSpace.indexOf(lchar) != -1 || mikExpaz.indexOf(lchar) != -1)
		{
			var tst = val.value.substring(0, (strLength) - 1);
			val.value = tst;
		}
		
		for(i=0;i<strLength-1;i++)
		{
		  if(mikExpWithSpace.indexOf(val.value.charAt(i)) != -1 || mikExpaz.indexOf(val.value.charAt(i)) != -1)
		  {
		    val.value = ""
		  }
		}
		
	}
}

// function to display (X, Y)
	function GetXY() {
//		window.status = 'X::' + window.event.screenX + ' Y::' + window.event.screenY;
		window.status = 'X::' + window.event.offsetX + ' Y::' + window.event.offsetY;
		
	}

