// Java ScriptFunction For Required Fields

//  Accept only Number 
//generic script to find the browser version and if opera 9.51 show a popo up



var browser=navigator.appName;

var b_version=navigator.appVersion;

var version=parseFloat(b_version);

if(browser.toLowerCase() == "opera" && version == "9.51")
    {
        alert("The page might show unexpected behaviours as the Browser \""+browser+" "+version+"\" is out of date, please upgrade to the next version");
    }    





function AcceptNumberOnly (textBox, e)
{
return true;
}
    
// Custom ValidationFunction For Text Fields
function CheckRequiredField(sender, args) 
{
    if (args.Value != "") 
    {  
       var controlName = sender.id.replace("cv", "");
       var lblErrorMessage = document.getElementById(controlName);
       var data = args.Value;
       var controlName = sender.id.replace("cv", "");
       var i= regIsNumberAndCharacter(data,"TextData" ,args);
       
       if(i == false)
       {
          args.IsValid = false;
       }else
       {
          if(lblErrorMessage.value.charCodeAt(0)== 32)
            lblErrorMessage.value= lblErrorMessage.value.substring(1,lblErrorMessage.value.length);
          args.IsValid = true;
       }
   }
}

//Custom Validator For Number Fildes......
function CheckRequiredFieldpPhonNo(sender, args) 
{
    if (args.Value != "") 
    {
        var data = args.Value;
        var i= regIsNumberAndCharacter(data, "PhoneNo");

        if(i == false)
        {
            args.IsValid = false;
        }
        else
        {
            args.IsValid = true;
        }
    }
}

//Custom Validator For Phone ext Fildes......
function CheckFieldPhonNoExt(sender, args) 
{
    if (args.Value != "") 
    {
        var data = args.Value;
        var i= regIsNumberAndCharacter(data, "PhoneExt");

        if(i == false)
        {
            args.IsValid = false;
        }
        else
        {
            args.IsValid = true;
        }
    }
}

    
// Checking Fields By Regular Expression ......
function regIsNumberAndCharacter(fData,ch) 
{ 
    switch (ch)
    {
        case "PhoneNo" : 
            if(fData)
            {
                var stripExceptDigitsPattern = /[^0-9]+/g;
                var strippeddata = fData.replace(stripExceptDigitsPattern,"");
                var regexMinOfSevenDigits = /^\+?[\d]{7,}$/;
                var isLengthValid = regexMinOfSevenDigits.test(strippeddata);
                var regexValidNumber = /^[^a-zA-Z]*$/;
                var isValidNumber = regexValidNumber.test(fData);
                if((isValidNumber == true) && (isLengthValid == true)) 
                {
                    return true;
                }
                else
                {
                    return false;
                }
             }
             else
             {
                return false;
             }
             
            //return regex.test(fData);
            break;
        case "TextData": 
            var regex = /^([\S][\s\w~!@#$%^{}\[\]\|\\&\:\;\'\"\`\?\<\>\/\,\.*()_+-]{2,}|[~!@#$\`%^\?{}\,\/\.\<\>\[\]\|\\&\:\:\'\"*()_+\w]{2,})$/;
            return regex.test(fData);
            break;
        case "PhoneExt" : 
            var regex = /^\+?[\d\s]{1,}$/;
            return regex.test(fData);
            break;    
    }
}
// Maximum Text Length Checking.......
function checkTextAreaMaxLength(textBox, e, length)
{
    var mLen = textBox["MaxLength"];
    if(null==mLen)
        mLen=length;
    
    var maxLength = parseInt(mLen);
    if(!checkSpecialKeys(e))
    {
         if(textBox.value.length > maxLength-1)
         {
            textBox.value = textBox.value.substring(0,length);
            if(e)//IE
            {
                if(e.preventDefault)
                {
                    e.preventDefault();
                }
                else 
                {
                    e.returnValue = false;
                }
            }
            else
            {
                return false;
            }
         }
    }
}   

// spec   
function checkSpecialKeys(e)
{
    if(e)
    {
        if(e.keyCode)
        {
            if(e.keyCode!=8 && e.keyCode!=46 && e.keyCode!=37 && e.keyCode!=38 && e.keyCode!=39 && e.keyCode!=40)
                return false;
            else
                return true;
        }
        else
        {
            if(e.charCode!=8 && e.charCode!=46 && e.charCode!=37 && e.charCode!=38 && e.charCode!=39 && e.charCode!=40)
                return false;
            else
                return true;
        }
    }
    else
    {
        return true;
    }
}
    
//Validate State based on country Selection....
function ValidateState(countryControl,labelStatecontrolName,requiredFieldStateControlName,textStateControlName)
{
    var selectTags = document.getElementsByTagName("select");
    for(var tagSelect =0; tagSelect < selectTags.length; tagSelect++)
    {
        var stateRequiredLabel = document.getElementById(labelStatecontrolName);
        var stateRequiredValidator = document.getElementById(requiredFieldStateControlName);
        var stateTextField = document.getElementById(textStateControlName);
        
        if(stateRequiredLabel == null || stateRequiredValidator == null || stateTextField == null )
        {
             return false ;
        }
       
        if(selectTags[tagSelect].id.indexOf(countryControl) != -1)
        {
            var clientDrpReference = document.getElementById(selectTags[tagSelect].id);
            if(clientDrpReference.selectedIndex > 0 && (clientDrpReference.options[clientDrpReference.selectedIndex].text.toLowerCase()== 'united states' || clientDrpReference.options[clientDrpReference.selectedIndex].text.toLowerCase() == 'canada' ))
            {
               stateRequiredLabel.style.display = 'inline';
               if(stateTextField.value.length > 0 )
                {                
                    stateRequiredValidator.style.display = 'none';
                    stateRequiredValidator.enabled=false;
                 }
                 else
                 {
                        stateRequiredValidator.style.display = 'inline';
                        stateRequiredValidator.enabled=true;
                 }
                    
            }
            else
            { 
                stateRequiredLabel.style.display = 'none';
                stateRequiredValidator.style.display = 'none';
                stateRequiredValidator.enabled=false;
            }
        }
    }
 }
 
// Validation for Country And State options Length In Downeload Registration....
function ValidateOptionsLength(oSrc,args)
{
    var selectTags = document.getElementsByTagName("select");
    
    for(var tagSelect =0; tagSelect < selectTags.length; tagSelect++)
    {
        if(selectTags[tagSelect].id.indexOf('drpCountry') != -1)
        {
            var clientDrpReference = document.getElementById(selectTags[tagSelect].id);
            if(clientDrpReference.options[clientDrpReference.selectedIndex].text.toLowerCase()== 'united states' || clientDrpReference.options[clientDrpReference.selectedIndex].text.toLowerCase() == 'canada' )
            {
                if (document.getElementById)
                {            
                     var spanTags =  document.getElementsByTagName("span");
                     for(var tagSpan = 0; tagSpan < spanTags.length; tagSpan++)
                     {
	                     if(spanTags[tagSpan].id.indexOf('lblStateRequired') != -1)
	                     {
		                    document.getElementById(spanTags[tagSpan].id).style.display = 'inline';
	                     }
                     }
	                 for(var tagSpan=0;tagSpan<spanTags.length;tagSpan++)
	                 {
		                 if(spanTags[tagSpan].id.indexOf('reqState') != -1)
		                 {
			                 var txtTags =  document.getElementsByTagName("input");
                     
                             for(var tagText = 0; tagText < txtTags.length; tagText++)
                             {
	                             if(txtTags[tagText].id.indexOf('txtState') != -1)
	                             {
	                                 if(document.getElementById(txtTags[tagText].id).value == '')
	                                 {
	                                    document.getElementById(spanTags[tagSpan].id).style.display = 'inline';
		                                document.getElementById(spanTags[tagSpan].id).enabled = true;
		                             }
		                             else
		                             {  
		                                document.getElementById(spanTags[tagSpan].id).style.display = 'none';
		                                document.getElementById(spanTags[tagSpan].id).enabled = false;
		                             }
	                             }
                             }      
		                 }
	                 } 
	            }  
            }
            else
            {
                if (document.getElementById)
                {            
                     var spanTags =  document.getElementsByTagName("span");    
                     
                     for(var tagSpan=0;tagSpan<spanTags.length;tagSpan++)
                     {
		                 if(spanTags[tagSpan].id.indexOf('lblStateRequired') != -1)
		                 {
			                document.getElementById(spanTags[tagSpan].id).style.display = 'none';
		                 }
	                 }
	                 for(var tagSpan=0;tagSpan<spanTags.length;tagSpan++)
	                 {
		                 if(spanTags[tagSpan].id.indexOf('reqState') != -1)
		                 {
			                 document.getElementById(spanTags[tagSpan].id).style.display = 'none';
			                 document.getElementById(spanTags[tagSpan].id).enabled = false;  
		                 }
	                 }
                }
            }
        }
    }
}

//Refresh data..
function refreshForm()
{
	if(document.forms[0])
	{
		document.forms[0].reset();
	}
	return false;
} 

