﻿// --------------------------------------------------------
//  Main Function:  functions to validate controls related to customer info
//  Created Date:   01/21/2009
//  Created By:     YW
    
//  Modified Date:  05/27/2009
//  Modified By:    YW
//  Reason for Modifying:   Improve Phonemak function
// --------------------------------------------------------
    
// mask with phone format
function Phonemask(textBox, e)
{
    var number = textBox.value;
     
    var newnumber;
    var lpi = number.indexOf('(');
    var rpi = number.indexOf(')');
	var len = number.length;
    	
    if(len > 4 && lpi == -1 && rpi == -1)
    {
	    number = "(" + number;
	    len = number.length;
	    
	    number = number.substring(0, 4) + ") " + number.substring(4, len);	
	    len = number.length;
	    
        lpi = number.indexOf('(');
        rpi = number.indexOf(')');
    }
    
    if(len == 3)
    {
	    newnumber = number;
	    if(lpi == -1 && rpi == -1)
	    {
		    newnumber = "(" + newnumber + ") ";
	    }
    }        
    else if( len > 4 && len <= 9)
    {
	    if (rpi == -1)
	    {
		    newnumber = number.substring(0, 4);		    
		    newnumber = newnumber + ") ";
		    newnumber = newnumber + number.substring(4, len); 
	    }   
		else
		{
		    newnumber = number;
		}
	}	
	
    else if(len > 9 && len <= 14)
    {	    
	    if((len - rpi) >= 4 && number.indexOf('-') == -1)
	    {
	        newnumber = number.substring(0, rpi + 5) + "-" + 
	                    number.substring(rpi + 5, len);
		}	    
		else
		{
		    newnumber = number;
		}
	}
	
	else if (len > 14)
	{
        number = number.substring(0, 14);
	    textBox.value ="";
	    textBox.value = newnumber;
	}    
    else
    {
	    newnumber = number;
    }
        
		    
    textBox.value ="";
    textBox.value = newnumber;
    return true;
}      
       
// set the max length of text box
function LimitTextLength(textBox, e)
{
    var textContent = textBox.value;
    if (textContent.length <= 200)
    {
        return true;
    }
    else 
    {
        textBox.value = textContent.substring(0, 200);
        PopupMessage( 'Exceed Limit', 'You cannot enter over 200 chars.', null, null);
        return false;
    }    
}
      
function IsValidZipCode(textBox, e)
{   
    var canZipFormat = /^[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d$/;
    var usZipFormat = /(\d{5})/;
    var zipcode = textBox.value.replace(' ', '');
        
    if (zipcode.length < 5)
    {
        return true;
    }
    else if (zipcode.length == 5)
    {
        return usZipFormat.test(zipcode);
    }    
    else
    {
        textBox.value = zipcode.substring(0, 5);
        return false;
    }
} 


function SetCanadianPostalCodeFormat(e, textBox)
{     
    var zipcode = textBox.value.replace(' ', '');    
    var z1 = zipcode;
    var z2 = zipcode;
        
    if (zipcode.length > 5)
    { 
        zipcode = z1.substr(0, 3) + ' ' + z2.substr(3, 3);
        zipcode = zipcode.substring(0, 7);
        textBox.value = zipcode.toUpperCase();
        return true;
    }
} 
   
function IsZipcode(e, countryDropDownID)
{
    var country = document.getElementById(countryDropDownID).value;
       
    if (country == "USA")
    {  
        var digit;
        document.all ? digit = e.keyCode : digit = e.which;
        return ((digit > 47 && digit < 58) || digit == 8);
    }
       
    return true;        
}
  
    // Text Box field required validation    
    function RequiredTextBox(ID, i) 
    {  
        if (document.all) // IE
        {
            if (TrimAll(String(document.all[ID].value)) == "")
            {       			    
               document.getElementById(ID).style.backgroundColor  = "LightBlue";
               i = i + 1; 
             }      			       
            else
            {   			     
               document.getElementById(ID).style.backgroundColor  = "";
            }
        }

         if (document.getElementById && !document.all) //FireFox
        {        
            if (TrimAll(String(document.getElementById(ID).value)) == "")
            {       			    
               document.getElementById(ID).style.backgroundColor  = "LightBlue";
               i = i + 1;
            }      			       
            else
            {  		     
               document.getElementById(ID).style.backgroundColor  = "";
            }
        }
        
        if (document.layers) 
        {
            if (TrimAll(String(document.layers[ID])) == "")
            {       			    
               document.layers[ID].backgroundColor  = "LightBlue";
               i = i + 1; 
            }      			       
            else
            {   			     
               document.layers[ID].backgroundColor  = "";
            }
        }
        return i;       			  	   
    }
  
    function RequiredDropDwonList(ID, i, index) 
    {     
        if (document.getElementById && !document.all)  //FireFox
        {        
            if (document.getElementById(ID).selectedIndex == index)
            {       			    
               document.getElementById(ID).style.backgroundColor  = "LightBlue";
               i = i + 1; 
             }      			       
            else
            {   			     
               document.getElementById(ID).style.backgroundColor  = "";            
            }
        }
        
        if (document.layers) 
        {
            if (document.layers[ID].selectedIndex == index)
            {       			    
               document.layers[ID].backgroundColor  = "LightBlue";
               i = i + 1; 
             }      			       
            else
            {   			     
               document.layers[ID].backgroundColor  = "";
            
            }
        }
        
        if (document.all) // IE
        {
            if (document.all[ID].selectedIndex == index)
            {       			    
               document.all[ID].style.backgroundColor  = "LightBlue";
               i = i + 1; 
             }      			       
            else
            {   			     
               document.all[ID].style.backgroundColor  = "";            
            }
        }

        return i;      	   
    }
    
// Minimum number and Digits validation
    function Minimum(ID, i, len)
    {  
        var s = document.getElementById(ID).value;
        if (s.length < len)
        {
            document.getElementById(ID).style.backgroundColor  = "LightPink";
            i = i + 1
        }
        else
        {  
            document.getElementById(ID).style.backgroundColor  = "";
        }
            return i ;
    }    
    
    // Max number and Digits validation
    function isInteger(ID, i, len)
    {   
        var j;

        var s = document.getElementById(ID).value;
        if (len != s.length)
        {
            document.getElementById(ID).style.backgroundColor  = "LightPink"
            i = i + 1
            return i;                
        }
        else
        {
            for (j = 0; j < s.length; j++)
            {   
                // Check that current character is number.
                var c = s.charAt(j);
                if (((c < "0") || (c > "9")))
                { 
                   document.getElementById(ID).style.backgroundColor  = "LightPink"
                   i = i + 1
                   return i;
                }
            }
            // All characters are numbers.
            
            document.getElementById(ID).style.backgroundColor  = ""
            return i ;
        }
    }    
            
    ///----------------Email Validation ----------------------
    function ValidateEmail(ID, i) 
    {
        var email = document.getElementById(ID).value;
    		
        var at="@"
		var lstr=email.length
		var invalidCount = 0;
			    
		if (email.indexOf(at)== -1 || email.indexOf(at) == 0 || email.indexOf(at) == lstr)
		{
		    invalidCount = invalidCount + 1;
		}
		else
		{
		    var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
		 
            if(reg.test(email) == false) 
            { 
                invalidCount = invalidCount + 1;
            }
		}
					
        if  (invalidCount != 0) 
        { 
            i = i + invalidCount;
            document.getElementById(ID).style.backgroundColor  = "LightPink";
        }
         else
        {
            document.getElementById(ID).style.backgroundColor  = "";
        }
	
        return i;
    }
   
   function htmlEncode(s) {
        var elm = document.createElement("div");
        elm.innerText = elm.textContent = s;
        s = elm.innerHTML;
        delete elm;
        return s;
    }