﻿// JScript File

//function Success(result)
//{
//  alert(result);
//}
//function Failed(error)
//{
//}

function Success(result,userContext,methodName)
{
    alert(userContext);
}
function Failed(error)
{
    alert(error.get_exceptionType() + ", Error Message is : "+error.get_message()+ " with Status Code : "+error.get_statusCode());
}

/* Java Script Class Library */



Type.registerNamespace('Web');

Web.Validation = function()
{

}
Web.Validation.prototype = 
{
    checkRequiredField: function(textBox)
    {
        
    },
    
    checkInputPassword: function(userName,password)
    {
        
    },
    validateEmail: function(emailAdd)
    {
    },
    HasValidChars:function(email)
    {
      var valid = true;
      var xValidChars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
      for (var i=0; i < email.length; i++) 
      {
        var c = email.charAt(i).toLowerCase();
        if (xValidChars.indexOf(c) == -1)
        {
            valid = false;
            break;
        }
      }
      return valid;
    },
    IsValidEmail: function(email)
    {
        if (email==null) 
            return false;
        if (email.length==0) 
            return false;
            
        if (this.HasValidChars(email)) 
        {  
            if (email.indexOf("@") < 1) 
            { 
                return false;
            } 
            else if (email.lastIndexOf(".") <= email.indexOf("@")) 
            {  // last dot must be after the @
                return false;
            } 
            else if (email.indexOf(".") == parseInt(email.indexOf("@"))+1) //change condition added
            {  // last dot must be after the @.
                return false;
            } 
            else if (email.indexOf("@") == email.length) 
            {  // @ must not be the last character
                return false;
            } 
            else if (email.indexOf("..") >=0) 
            { // two periods in a row is not valid
	            return false;
            } 
            else if (email.indexOf("@@") >=0) //change condition added
            { // two @ in a row is not valid
	            return false;
            } 
            else if (email.indexOf(".") == parseInt(email.length)-1) //change
            {  // . must not be the last character
	            return false;
            }
            //change condition added
            if(email.indexOf("@")>=0)
            {
                var tmpStr=email.substring(parseInt(email.indexOf("@")+1),email.length);
                if (tmpStr.indexOf("@") >= 1) 
                { 
                    return false;
                } 
            }
            return true;
        }
        else
        {
            return false;
        }
    },
    Trim: function(s)
    {
	    var l=0; var r=s.length -1;
	    while(l < s.length && s[l] == ' ')
	    {	
	        l++; 
	    }
	    while(r > l && s[r] == ' ')
	    {	
	        r-=1;	
	    }
	    return s.substring(l, r+1);
    },
    IsValidPassword:function(pass)
    {
        var xValidPass = true;
        
        if(pass.length <4)
            xValidPass = false;
            
        if(pass.length > 15)
            xValidPass = false;
        
        for (i = 0; i < pass.length; i++)
        {   
            if (pass.charAt(i) == ' ') 
                xValidPass = false;
        }
        return xValidPass;
    },
    //change 2009-01-01
//    IsValidDate: function(date)
//    {
//        var xFlg = true;
//        if(Date.parseInvariant(date,"MM/dd/yyyy") == null)
//        {
//            xFlg = false;
//        }
//        return xFlg;
//    },
//    IsStartDateGreaterThenEndDate: function(startDate,endDate)
//    {
//        var xFlg= true;
//        if(this.IsValidDate(startDate) && this.IsValidDate(endDate))
//        {
//            if(Date.parseInvariant(startDate,"MM/dd/yyyy") > Date.parseInvariant(endDate,"MM/dd/yyyy"))
//                xFlg = true;
//            else
//                xFlg = false;
//        }
//        return xFlg;
//    },

    IsValidDate: function(date)
    {
        var xFlg = true;
        if(Date.parseInvariant(date,"dd/MM/yyyy") == null)
        {
            xFlg = false;
        }
        return xFlg;
    },
    IsStartDateGreaterThenEndDate: function(startDate,endDate)
    {  
        var xFlg= true;
        if(this.IsValidDate(startDate) && this.IsValidDate(endDate))
        {    
            if(Date.parseInvariant(startDate,"dd/MM/yyyy") > Date.parseInvariant(endDate,"dd/MM/yyyy"))
                xFlg = true;
            else
                xFlg = false;
        }
        
        return xFlg;
    },
    HasPunctuationChar: function(value)
    {   
        //define range of invalid characters.
        var xInvalidChars = "!@#$%^&*()+=~\/|{}<>:;\"\'";
        var xBlnHasInvalidChar = false;
        
        for (i = 0; i < xInvalidChars.length; i++)
        {   
            var c = xInvalidChars.charAt(i);
            if (value.indexOf(c)  != -1) 
                xBlnHasInvalidChar = true;
        }
        return xBlnHasInvalidChar;
    },
    IsInValidUserName: function(value)
    {   
        //define range of invalid characters.
        var xInvalidChars = "!#$%^&*()";
        var xBlnHasInvalidChar = false;
        
        for (i = 0; i < xInvalidChars.length; i++)
        {   
            var c = xInvalidChars.charAt(i);
            if (value.indexOf(c)  != -1) 
                xBlnHasInvalidChar = true;
        }
        return xBlnHasInvalidChar;
    },
    IsValidPhone: function(value)
    {   
        //define range of invalid characters.
        var xValidChars = "0123456789+-()./ ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        return xBlnHasValidChar;
    },
     IsValidAlphabeticName: function(value)
    {   
        //define range of invalid characters.
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar;
    },
     IsValidAlphabeticNameWithSpace: function(value)
    {   
        //define range of invalid characters.
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar;
    },
     IsValidAlphabeticNameWithSpaceDash: function(value)
    {   
        //define range of invalid characters.
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar;
    },
     IsValidAlphaNumericStringWithSpaceAllowed: function(value)
    {   
        //define range of invalid characters.
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar;
    },
     IsValidAlphaNumericStringWithSpaceDash: function(value)
    {   
        //define range of invalid characters.
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&- ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar;
    },
    IsValidAlphabeticNameWithSpaceDash: function(value)
    {   
        //define range of invalid characters.
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&- ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar;
    },   
    IsValidAlphabeticCityName:function(value)
    {
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-/, ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar; 
    }, 
     IsValidAlphabeticCountryName:function(value)
    {
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-. ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar; 
    },
    IsValidAlphabeticJobTitle:function(value)
    {
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-,&(). ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar; 
    },
    IsValidAlphabeticSchool:function(value)
    {
        var xValidChars = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ/-,().&+ ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar; 
    },
    IsValidAlphaeticCityName:function(value)
    {   
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-,./ ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar;  
    },
    IsValidAlphabeticCountryName:function(value)
    {   
        var xValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-./ ";
        var xBlnHasValidChar = true;
          
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar;  
    },
    IsValidNumeric: function(value)
    {   
        
        var xValidChars = "0123456789";
        var xBlnHasValidChar = true;
        
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
        
        return xBlnHasValidChar;
    },
    IsValidDecimal: function(value)
    {   
        
        var xValidChars = "0123456789.";
        var xBlnHasValidChar = true;
        
        for (i = 0; i < value.length; i++)
        {   
            var c = value.charAt(i);
            if (xValidChars.indexOf(c) == -1) 
                xBlnHasValidChar = false;
        }
       
        
        if(value.indexOf(".")!=-1)
        {   
            var xPart;
            xPart=value.substring(parseInt(value.indexOf(".")+1),value.length);

            if(xPart.indexOf(".")!=-1)
            {
                xBlnHasValidChar = false;
            }
        }
        
        //email.substring(parseInt(email.indexOf("@")+1),email.length);
        
        return xBlnHasValidChar;
    }
    
}

Web.Validation.registerClass("Web.Validation",null,Sys.IDisposable);

if (typeof(Sys) !== 'undefined')
    Sys.Application.notifyScriptLoaded();
    
    
    function val_IsValidEmail(email)
    {
   //alert('val');
    if (email==null) 
            return false;
        if (email.length==0) 
            return false;
            
        if (this.HasValidChars(email)) 
        {  
            if (email.indexOf("@") < 1) 
            { 
                return false;
            } 
            else if (email.lastIndexOf(".") <= email.indexOf("@")) 
            {  // last dot must be after the @
                return false;
            } 
            else if (email.indexOf("@") == email.length) 
            {  // @ must not be the last character
                return false;
            } 
            else if (email.indexOf("..") >=0) 
            { // two periods in a row is not valid
	            return false;
            } 
            else if (email.indexOf(".") == email.length) 
            {  // . must not be the last character
	            return false;
            }
            return true;
        }
        else
        {
            return false;
        }
    
    }
//    ////////////////////////////////////
//    var resultElement;

//function pageLoad()
//{
//    resultElement = $get("lblPassErr");
//}

////// This function performs a GET Web request.
////function GetWebRequest()
////{
////    alert("Performing Get Web request.");

////    // Instantiate a WebRequest.
////    var wRequest = new Sys.Net.WebRequest();
////    
////    // Set the request URL.      
////    wRequest.set_url("getTarget.htm");
////    alert("Target Url: getTarget.htm");

////    // Set the request verb.
////    wRequest.set_httpVerb("GET");
////           
////    // Set the request callback function.
////    wRequest.add_completed(OnWebRequestCompleted);
//// 
////    // Clear the results area.
////    resultElement.innerHTML = "";

////    // Execute the request.
////    wRequest.invoke();  
////}

//// This function performs a POST Web request.
//function PostWebRequest()
//{
//    alert("Performing Post Web request.");
//    
//    // Instantiate a WebRequest.
//    var wRequest = new Sys.Net.WebRequest();
//    
//    // Set the request URL.      
//    wRequest.set_url("rchangepassword.aspx");

//    // Set the request verb.
//    wRequest.set_httpVerb("POST");
//   
//    // Set the request handler.
//    wRequest.add_completed(OnWebRequestCompleted);
// 
//    // Set the body for he POST.
//    var requestBody = 
//        "Message=Hello! Do you hear me?";
//    wRequest.set_body(requestBody);
//    wRequest.get_headers()["Content-Length"] = 
//        requestBody.length;
//   
//    // Clear the results area.
//   //resultElement.innerHTML = "";
//     
//    // Execute the request.
//    wRequest.invoke();              
//}


//// This callback function processes the 
//// request return values. It is called asynchronously 
//// by the current executor.
//function OnWebRequestCompleted(executor, eventArgs) 
//{    alert("1");
//    if(executor.get_responseAvailable()) 
//    {
//       // Display Web request status. 
//       resultElement.innerHTML +=
//          "Status: [" + executor.get_statusCode() + " " + 
//                    executor.get_statusText() + "]" + "<br/>";
//        
//        // Display Web request headers.
//       resultElement.innerHTML += 
//            "Headers: ";
//            
//       resultElement.innerHTML += 
//            executor.getAllResponseHeaders() + "<br/>";

//        // Display Web request body.
//       resultElement.innerHTML += 
//            "Body:";
//           
//      if(document.all)
//        resultElement.innerText += 
//           executor.get_responseData();
//      else
//        resultElement.textContent += 
//           executor.get_responseData();
//    }

//}


//////////////////////////////////////////////////////////


var displayElement;

// Initializes global variables and session state.
function pageLoad()
{
    //displayElement = $get("lblPassErr");
    //PageMethods.SetSessionValue("SessionValue", Date(),OnSucceeded, OnFailed);
}

//// Gets the session state value.
//function GetSessionValue(key) 
//{
//    PageMethods.GetSessionValue(key,OnSucceeded, OnFailed);
//}

//Sets the session state value.


