﻿
var _Service;
//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)
    {
        
    },
    isUserNameExists: function(userName,userContext)
    {
          Yuva.WebServices.Validation.isUserNameExists('admin',Success,Failed,userContext,null);
    },
    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("@") == 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;
        }
    },
    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;
    },
    IsValidDate: function(date)
    {
        var xFlg = true;
        if(Date.parseInvariant(date,"dd/MM/yyyy") == null)
        {
            xFlg = false;
        }
        return xFlg;
    },
    IsCreateDateValidForSearch: function(date)
    {
        var xDtToday = new Date();
        var xFlg = true;
        
        if(this.IsValidDate(date))
        {
            if(Date.parseInvariant(date,"dd/MM/yyyy") > xDtToday)
                xFlg = false;
            else
                xFlg = true;
        }
        else
        {
            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;
    },
    IsValidNameValue: function(value,allowBlank)
    {   
          var valid = true;
          
          if(value.trim()=='')
          {
                if(!allowBlank)
                    valid = false;
                else
                    valid = true;
          }
          else
          {
            // Edit Date : 2008-04-24 By Kiran 
            // Characters added Below : &,()äöü
              var xValidChars = "0123456789äöüàéèêëïîôùûçabcdefghijklmnopqrstuvwxyz-_ ";
              for (var i=0; i < value.length; i++) 
              {
                var c = value.charAt(i).toLowerCase();
                if (xValidChars.indexOf(c) == -1)
                {
                    valid = false;
                    break;
                }
              }
          }
          return valid;
    },
    IsValidAlphabeticString: function(value,allowBlank)
    {   
          var valid = true;
          
          if(value.trim()=='')
          {
                if(!allowBlank)
                    valid = false;
                else
                    valid = true;
          }
          else
          {
            // Edit Date : 2008-04-24 By Kiran 
            // Characters added Below : &,()äöü
              var xValidChars = "&,()äöüàéèêëïîôùûçabcdefghijklmnopqrstuvwxyz-_ ";
              for (var i=0; i < value.length; i++) 
              {
                var c = value.charAt(i).toLowerCase();
                if (xValidChars.indexOf(c) == -1)
                {
                    valid = false;
                    break;
                }
              }
          }
          return valid;
    },
    IsValidAlphabeticStringWithSpaceAllowed: function(value,allowBlank)
    {   
          var valid = true;
          
          if(value.trim()=='')
          {
                if(!allowBlank)
                    valid = false;
                else
                    valid = true;
          }
          else
          {
            // Edit Date : 2008-04-24 By Kiran 
            // Characters added Below : &,()äöü
              var xValidChars = "&,()äöüàéèêëïîôùûçabcdefghijklmnopqrstuvwxyz-_ ";
              for (var i=0; i < value.length; i++) 
              {
                var c = value.charAt(i).toLowerCase();
                if (xValidChars.indexOf(c) == -1)
                {
                    valid = false;
                    break;
                }
              }
          }
          return valid;
    },
    IsValidNumericString: function(value,allowBlank)
    {   
          var valid = true;
          
          if(value.trim()=='')
          {
                if(!allowBlank)
                    valid = false;
                else
                    valid = true;
          }
          else
          {
              var xValidChars = "0123456789";
              for (var i=0; i < value.length; i++) 
              {
                var c = value.charAt(i).toLowerCase();
                if (xValidChars.indexOf(c) == -1)
                {
                    valid = false;
                    break;
                }
              }
          }
          return valid;
    },
    IsValidAlphaNumericStringWithNoSpecialCharacter: function(value)
    {   
          var valid = true;
          
          if(value.trim()=='')
          {
                if(!allowBlank)
                    valid = false;
                else
                    valid = true;
          }
          else
          {
              var xValidChars = "abcdefghijklmnopqrstuvwxyz0123456789-_ ";
              for (var i=0; i < value.length; i++) 
              {
                var c = value.charAt(i).toLowerCase();
                if (xValidChars.indexOf(c) == -1)
                {
                    valid = false;
                    break;
                }
              }
          }
          return valid;
    },
    IsValidAlphaNumericStringOnly: function(value)
    {   
          var valid = true;
          
          if(value.trim()=='')
          {
                if(!allowBlank)
                    valid = false;
                else
                    valid = true;
          }
          else
          {
              var xValidChars = "abcdefghijklmnopqrstuvwxyz0123456789";
              for (var i=0; i < value.length; i++) 
              {
                var c = value.charAt(i).toLowerCase();
                if (xValidChars.indexOf(c) == -1)
                {
                    valid = false;
                    break;
                }
              }
          }
          return valid;
    },
    IsValidPasswordString: function(value)
    {   
          var valid = true;
          
          if(value.length < 4)
          {
                valid = false;
          }
          else
          {
              var xValidChars = "äöüàéèêëïîôùûçabcdefghijklmnopqrstuvwxyz0123456789-_. ";
              for (var i=0; i < value.length; i++) 
              {
                var c = value.charAt(i).toLowerCase();
                if (xValidChars.indexOf(c) == -1)
                {
                    valid = false;
                    break;
                }
              }
          }
          return valid;
    },
    IsValidAlphaNumericString: function(value,allowBlank)
    {   
          var valid = true;
          
          if(value.trim()=='')
          {
                if(!allowBlank)
                    valid = false;
                else
                    valid = true;
          }
          else
          {
            // Edit Date : 2008-04-24 By Kiran 
            // Characters added Below : &,()äöü
              var xValidChars = "&,()äöüàéèêëïîôùûçabcdefghijklmnopqrstuvwxyz0123456789-_ ";
              for (var i=0; i < value.length; i++) 
              {
                var c = value.charAt(i).toLowerCase();
                if (xValidChars.indexOf(c) == -1)
                {
                    valid = false;
                    break;
                }
              }
          }
          return valid;
    },
    IsValidAlphaNumericStringWithSpaceAllowed: function(value,allowBlank)
    {   
          var valid = true;
          
          if(value.trim()=='')
          {
                if(!allowBlank)
                    valid = false;
                else
                    valid = true;
          }
          else
          {
            // Edit Date : 2008-04-24 By Kiran 
            // Characters added Below : &,()äöü
              var xValidChars = "&,()äöüàéèêëïîôùûçabcdefghijklmnopqrstuvwxyz0123456789-_' ";
              for (var i=0; i < value.length; i++) 
              {
                var c = value.charAt(i).toLowerCase();
                if (xValidChars.indexOf(c) == -1)
                {
                    valid = false;
                    break;
                }
              }
          }
          return valid;
    }
    
}

/* Javascript utility class */ 

Web.Util = function()
{

}
Web.Util.prototype = 
{
    HideCalendar: function(name)
    {
        $find(name).hide();
    }
}


    
Web.Validation.registerClass("Web.Validation",null,Sys.IDisposable);


if (typeof(Sys) !== 'undefined')
    Sys.Application.notifyScriptLoaded();