/**************************************/
// $Revision: 4 $
// $Author: Jack.feng $
// $Date: 3/24/06 8:42a $
/**************************************/
function ValidateBalance(sender, args)
{
  var balance = document.getElementById("_ctl0_txtAmountToPay"); 
  var spanErrorMsg = document.getElementById("_ctl0_lblAmountToPayError");
    if(spanErrorMsg != null)
    {
      spanErrorMsg.innerText = "";
      spanErrorMsg.style.display="";			
    }
    
  balance = parseInt(args.Value);
  if (balance == 0 || isNaN(balance)) 
  {
    args.IsValid = false;
    return;
  }
  args.IsValid = true;
}

function numbersonly(sender, args)
{
    /* Notes: 
     *  - cut, copy, paste shortcuts will not work
     *  - users will still be able to paste non-numeric characters into the field 
     *  - code should be replaced by FilteredTextBox control in ASP.NET Ajax Control Toolkit 
     */

    var charCode = (args.which) ? args.which : event.keyCode

    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;  
        
    return true; 
}

function decimalsOnly(evt) 
{
    if (!(evt.keyCode == 46 || (evt.keyCode >= 48 && evt.keyCode <= 57))) return false;
    var parts = evt.srcElement.value.split('.');
    if (parts.length > 2) return false;
    if (evt.keyCode == 46) return (parts.length == 1);
    if (parts[0].length >= 14) return false;
    if (parts.length == 2 && parts[1].length >= 2) return false;
}


function DisableEnter()
{
  if (event && event.keyCode == 13)
  {
    return false;
  }
  
  return true;
}
function changeQuantity(quantityBoxClientID, licenseBoxClientID)
{
  //debugger;
  var quantity = document.getElementById(quantityBoxClientID.id);
  var license = document.getElementById(licenseBoxClientID.id);
  if (license.value != "" && license.value != "0")
    quantity.value = 1; 
  if (license.value == "0") 
    quantity.value = 0;
}

function ValidateMultiMediaProductQuantity()
{
  var inputElements = document.getElementsByTagName("input");
  var start = 0;
  for (i=start; i<inputElements.length; i++)
  {
	  if(inputElements[i].id != null)
	  {	    
	    if(inputElements[i].id.indexOf("multiMediaProductList") != -1)
	    {
		      if(inputElements[i].value != "" && inputElements[i].value != "0")
		      {
		        return true;
		      }
	      }  
	   }
   } 
    
   var spanErrorMsg = document.getElementById("_ctl0_errorMsg");
   if(spanErrorMsg != null)
   {
      spanErrorMsg.style.display="";			
   }
   return false;
}

function SubscribeNewsletters(language)
{
  var theForm = document.forms[0];
  
  if (NewsletterSubscriptionValidate(language))
  {
    //theForm.action = "http://192.139.243.189/cch/Authors/index.aspx";
    if (language.toUpperCase() == "EN")
    {
      theForm.action = "http://prefctr.ddc.dartmail.net/CCH/CCH_Miniform.asp";
    }
    else
    {
      theForm.action = "http://preferencecenter.opt-in-mail.net/CCH/CCHFR_Miniform.asp";
    }
    theForm.submit();
  }
}

function NewsletterSubscriptionValidate(language)
{
  var theForm = document.forms[0];
	var errstr = "";	
	
	if (theForm.FirstName.value == "" )
	{
	  if (language.toUpperCase() == "EN")
		  errstr += "first name,";
		else
		  errstr += "prénom,";
 		theForm.FirstName.focus();
	}
	
	
	if (theForm.LastName.value == "" )
	{
	  if (language.toUpperCase() == "EN")
		  errstr= errstr + "last name,";	
		else
		  errstr= errstr + "nom de famille,";	
				
		if (theForm.FirstName.value == "" )
		{
		  theForm.FirstName.focus();
		}
		else
		{
		  theForm.LastName.focus();
		}
	}	

	if (theForm.EmailAddr.value == "" || theForm.EmailAddr.value.indexOf("@") == -1)
	{
	  if (language.toUpperCase() == "EN")
		  errstr= errstr + "a valid email address.";
		else
		  errstr= errstr + "adresse électronique.";
		
		if (theForm.FirstName.value == "" )
		{
		  theForm.FirstName.focus();
		}
		else
		{
		  if (theForm.LastName.value == "" )
		  {
		    theForm.LastName.focus();
		  }
		  else
		  {
		    theForm.EmailAddr.focus();
		  }
		}		
	}
	
	if(errstr != "")
	{	
	  if (language.toUpperCase() == "EN")
  	  errstr = "* Please enter your " + errstr.substr(0, errstr.length -1) + ".";
  	else
  	  errstr = "* Veuillez inscrire votre " + errstr.substr(0, errstr.length -1) + ".";
	}
	else
	{
	  if (language.toUpperCase() == "EN")
	  {
	    if  (theForm.PC_HReMonthly.checked == false 
	      && theForm.PC_FinancialeMonthly.checked == false 
	      && theForm.PC_TaxeMonthly.checked == false 
	      && theForm.PC_LegaleMonthly.checked == false 
	      && theForm.PC_eLibrarian.checked == false 
	      && theForm.PC_LawStudenteMonthly.checked == false)
	    {
		    errstr= errstr + "* Please select at least one mailing list to subscribe.";
	    }
	    if (theForm.PC_FinancialeMonthly.checked)
	    {
        theForm.PC_FinancialOffers.value="1";
	    }
	    else
	    {
        theForm.PC_FinancialOffers.value="0";
	    }
    	
	    if (theForm.PC_HReMonthly.checked)
	    {
        theForm.PC_HROffers.value="1";
	    }
	    else
	    {
        theForm.PC_HROffers.value="0";
	    }
    	
	    if (theForm.PC_LegaleMonthly.checked)
	    {
        theForm.PC_LegalOffers.value="1";	
      }
      else
	    {
        theForm.PC_LegalOffers.value="0";	
      }
      
	    if (theForm.PC_TaxeMonthly.checked)
      {
        theForm.PC_TaxOffers.value="1";
	    }
	    else
      {
        theForm.PC_TaxOffers.value="0";
	    }
    	
      if (theForm.PC_eLibrarian.checked)
      {
        theForm.PC_eLibrarianOffers.value="1";
      }
      else
      {
        theForm.PC_eLibrarianOffers.value="0";
      }
      
      
      if (theForm.PC_LawStudenteMonthly.checked)
      {
        theForm.PC_LawStudentOffers.value="1";
      }
      else
      {
        theForm.PC_LawStudentOffers.value="0";
      }	    
	  }
	  else
	  {
      if  (theForm.OPC_HReMonthly.checked == false 
	      && theForm.OPC_FinancialeMonthly.checked == false 
	      && theForm.OPC_TaxeMonthly.checked == false 
	      && theForm.OPC_LegaleMonthly.checked == false 
	      && theForm.OPC_FinancialePMonthly.checked == false)
	    {
        errstr= errstr + "* Sélectionnez au moins une option parmi la liste.";	    
	    }
    	
	    if (theForm.OPC_HReMonthly.checked)
	    {
        theForm.OPC_HROffers.value="1";
	    }
	    else
	    {
        theForm.OPC_HROffers.value="0";
	    }
	    
	    if (theForm.OPC_FinancialeMonthly.checked)
	    {
        theForm.OPC_FinancialOffers.value="1";
	    }
	    else
	    {
        theForm.OPC_FinancialOffers.value="0";
	    }
	    
	    if (theForm.OPC_TaxeMonthly.checked)
      {
        theForm.OPC_TaxOffers.value="1";
	    }
	    else
      {
        theForm.OPC_TaxOffers.value="0";
	    }
    	
	    if (theForm.OPC_LegaleMonthly.checked)
	    {
        theForm.OPC_LegalOffers.value="1";	
      }
      else
	    {
        theForm.OPC_LegalOffers.value="0";	
      }
      
	    
	    if (theForm.OPC_FinancialePMonthly.checked)
	    {
        theForm.OPC_FinancialPOffers.value="1";
	    }
	    else
	    {
        theForm.OPC_FinancialPOffers.value="0";
	    }
	  }
  }	
  
  if(errstr != "")
  {
    var spanErrorMsg = document.getElementById("errorMsg");
  
    if(spanErrorMsg != null)
    {
      spanErrorMsg.innerHTML = errstr;		
      spanErrorMsg.style.display = "";			
    }
    return false;
  }
  
  return true;
}

function ValidateProvince(source, arguments)
{
  var type = 'ShipBill'
  if (source.id.indexOf(type) == -1)
    type = 'Order';
  var country;
  var province;
  for (i=0 ; i<document.forms[0].elements.length; ++i)
  {
    if (document.forms[0].elements[i].id.indexOf(type) != -1 && document.forms[0].elements[i].id.indexOf('_Country') != -1)
    {
      country = document.forms[0].elements[i];
    }
    if (document.forms[0].elements[i].id.indexOf(type) != -1 && document.forms[0].elements[i].id.indexOf('_ProvinceState') != -1)
    {
      province = document.forms[0].elements[i];
    }
  }
  var IsValid = true;
  if(country && country.value != 'CA' && country && country.value != 'US')
  {
    province.value = "XX";
    IsValid = true; 
  }
  else
 {
  IsValid = ISValidProvince(country, province);
  if(!IsValid)
  {
    province.focus();
  }
 }
 return IsValid;
}

function ValidatePostalCode(source, arguments)
{
  var type = 'ShipBill'
  if (source.id.indexOf(type) == -1)
    type = 'Order';
  var country;
  var province;
  var postalCode;
  for (i=0 ; i<document.forms[0].elements.length; ++i)
    {
    if (document.forms[0].elements[i].id.indexOf(type) != -1 && document.forms[0].elements[i].id.indexOf('_Country') != -1)
    {
      country = document.forms[0].elements[i];
    }
    if (document.forms[0].elements[i].id.indexOf(type) != -1 && document.forms[0].elements[i].id.indexOf('_ProvinceState') != -1)
    {
      province = document.forms[0].elements[i];
    }
    if (document.forms[0].elements[i].id.indexOf(type) != -1 && document.forms[0].elements[i].id.indexOf('_PostalZipCode') != -1)
    {
      postalCode = document.forms[0].elements[i];
    }
  }
 
  var IsValid = false;
  if(postalCode.value != "")
  {
    if (country && country.value == 'CA')
    {
      if(PostalCodeRegExp(postalCode.value))
      {
      IsValid = ISValidPostalCode(country, province, postalCode)
      }
      if(!IsValid)
      {
      postalCode.focus();
      }
    }
    else
    {
    IsValid = true;
    }
  }
  else
  {
    IsValid = true;
  }
  return IsValid;
}

function PostalCodeRegExp(postalCode)
{  
  var re = new RegExp("[a-zA-Z][0-9][a-zA-Z][ ]*[0-9][a-zA-Z][0-9]$");
  var m = re.exec(postalCode);
  if (m == null) 
  {
    return false;
  }
  else
  {
    return true
  }
}


function ISValidProvince(country, province)
{
	result = false;		
	if (country && country.value.length > 0)
	{	
		switch(country.value)
		{
			case 'CA':
				if (province.value == "AB" || province.value == "BC"
				|| province.value == "MB" || province.value == "NB"
				|| province.value == "NL" || province.value == "NS"
				|| province.value == "NT" || province.value == "NU"
				|| province.value == "ON" || province.value == "PE"
				|| province.value == "QC" || province.value == "SK"
				|| province.value == "YT"
				)
				{result = true;}
				break;
			case 'US':
				if (province.value == "AK" || province.value == "AL"
				|| province.value == "AR" || province.value == "AS"
				|| province.value == "AZ" || province.value == "CA"
				|| province.value == "CO" || province.value == "CT"
				|| province.value == "DC" || province.value == "DE"
				|| province.value == "FL" || province.value == "FM"
				|| province.value == "GA" || province.value == "GU"
				|| province.value == "HI" || province.value == "IA"
				|| province.value == "ID" || province.value == "IL"
				|| province.value == "IN" || province.value == "KS"
				|| province.value == "KY" || province.value == "LA"
				|| province.value == "MA" || province.value == "MD"
				|| province.value == "ME" || province.value == "MH"
				|| province.value == "MI" || province.value == "MN"
				|| province.value == "MO" || province.value == "MP"
				|| province.value == "MS" || province.value == "MT"
				|| province.value == "NC" || province.value == "ND"
				|| province.value == "NE" || province.value == "NH"
				|| province.value == "NJ" || province.value == "NM"
				|| province.value == "NV" || province.value == "NY"
				|| province.value == "OH" || province.value == "OK"
				|| province.value == "OR" || province.value == "PA"
				|| province.value == "PR" || province.value == "PW"
				|| province.value == "RI" || province.value == "SC"
				|| province.value == "SD" || province.value == "TN"
				|| province.value == "TX" || province.value == "UT"
				|| province.value == "VA" || province.value == "VI"
				|| province.value == "VT" || province.value == "WA"
				|| province.value == "WI" || province.value == "WV"
				|| province.value == "WY" 
				)
				{result = true;}
				break;
			case 'BM':
			  if(province.value == "XX")
				{result = true;}
				break;
			case 'BS':
			  if(province.value == "XX")
				{result = true;}
				break;
		}
	}
	return result;
}

function ISValidPostalCode(country, province, postalCode)
{
	var firstCharacterOfPostalCode;
	var firstThreeCharactersOfPostalCode;
	result = false;
	
	
	if (postalCode && postalCode.value.length > 2)
	{
		firstCharacterOfPostalCode = postalCode.value.substr(0,1).toUpperCase();
		firstThreeCharactersOfPostalCode = postalCode.value.substr(0,3).toUpperCase();
	}
	if (country.value == 'CA')
	{	
		  switch(province.value)
		  {
			  case 'NL':
				  if (firstCharacterOfPostalCode == "A")
				  {result = true;}
				  break;
			  case 'NS':
				  if (firstCharacterOfPostalCode == "B")
				  {result = true;}
				  break;
			  case 'PE':
				  if (firstCharacterOfPostalCode == "C")
				  {result = true;}
				  break;
			  case 'NB':
				  if (firstCharacterOfPostalCode == "E")
				  {result = true;}
				  break;
			  case 'QC':
				  if (firstCharacterOfPostalCode == "G" || firstCharacterOfPostalCode == "H" 
					  || firstCharacterOfPostalCode == "J" || firstThreeCharactersOfPostalCode =="K1A")
				  {result = true;}
				  break;
			  case 'ON':
				  if (firstCharacterOfPostalCode == "K" || firstCharacterOfPostalCode == "L" 
					  || firstCharacterOfPostalCode == "M" || firstCharacterOfPostalCode == "N"
					  || firstCharacterOfPostalCode == "P")
				  {result = true;}
				  break;
			  case 'MB':
				  if (firstCharacterOfPostalCode == "R")
				  {result = true;}
				  break;
			  case 'SK':
				  if (firstCharacterOfPostalCode == "S")
				  {result = true;}
				  break;
			  case 'AB':
				  if (firstCharacterOfPostalCode == "T")
				  {result = true;}
				  break;
			  case 'BC':
				  if (firstCharacterOfPostalCode == "V")
				  {result = true;}
				  break;
			  case 'NT':
				  if (firstCharacterOfPostalCode == "X")
				  {result = true;}
				  break;
			  case 'NU':
				  if (firstCharacterOfPostalCode == "X")
				  {result = true;}
				  break;
			  case 'YT':
				  if (firstCharacterOfPostalCode == "Y")
				  {result = true;}
				  break;
		  }
	}
	else
	{
		result = true;
	}
	return result;
}


