﻿
function AjCall(callback)
{
    return function(res)
    {
        var ret  = ParseAjResponse(res);
        if(ret!=null)
        {
            if(typeof callback != 'undefined')
            {
                callback(ret);
            }
        }
    }
}


   
   
   function ExecuteHandler(handler)
{
    if(handler)
    { 
        var params              = "";
        
        if(arguments.length==3 && arguments[2]=="param" )
        {
            var str             ="";
            var array           = arguments[1];
            
            for(var j = 0; j < arguments[1].length;j++)
            {
                str             += ",arguments[1]["+j+"]";
            }
            var obj             = new Function("ExecuteHandler(arguments[0]"+str+")");
            
            return obj(handler,arguments[1]);
        }
            
        for(var i=1;i<arguments.length;i++)
        {
            params+=(i>1?",":"") + "arguments[0]["+i+"]";
        }
            
        if(typeof handler == 'function')
        {
            var functionBody        = "return arguments[0][0]("+params+")";
            var obj                 = new Function(functionBody);
            
            return obj(arguments);
        }
        else
        {
            var ret                 = eval(handler);
            
            if(typeof ret  == 'function')
            {
                var functionBody    = "return "+handler+"("+params+")";
                var obj             = new Function(functionBody);
                
                return obj(arguments);
            }
            else
                return ret;
        }
    }
}


function ValidateEmail( strValue ) 
{
    /************************************************
    DESCRIPTION: Validates that a string a matches   a valid regular expression value.
    RETURNS:    True if valid, otherwise false.
    *************************************************/
    var objRegExp = new RegExp( /^(?:[a-zA-Z0-9_'^&/+-])+(?:\.(?:[a-zA-Z0-9_'^&/+-])+)*@(?:(?:\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)|(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]){2,}\.?)$/);
     //check if string matches pattern
     return objRegExp.test(strValue);
}

function ValidateUrl( strValue ) 
{
    /************************************************
    DESCRIPTION: Validates that a string a matches  a valid regular expression value.
    RETURNS:   True if valid, otherwise false.
    *************************************************/
    var objRegExp = new RegExp( /^((([hH][tT][tT][pP][sS]?|[fF][tT][pP])\:\/\/)?([\w\.\-]+(\:[\w\.\&%\$\-]+)*@)?((([^\s\(\)\<\>\\\"\.\[\]\,@;:]+)(\.[^\s\(\)\<\>\\\"\.\[\]\,@;:]+)*(\.[a-zA-Z]{2,4}))|((([01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}([01]?\d{1,2}|2[0-4]\d|25[0-5])))(\b\:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|0)\b)?((\/[^\/][\w\.\,\?\'\\\/\+&%\$#\=~_\-@]*)*[^\.\,\?\"\'\(\)\[\]!;<>{}\s\x7F-\xFF])?)$/);
     //check if string matches pattern
     return objRegExp.test(strValue);
}
function ValidatePhoneNumber( strValue ) 
{
    /************************************************
    DESCRIPTION: Validates that a string a matches  a valid regular expression value.
    RETURNS:   True if valid, otherwise false.
    *************************************************/
    strValue = strValue.replace("+","");//Exista numere internationale(ex:+40745951452)
    
   var objRegExp1 = new RegExp( /^(((\d{1,3})(,\d{3})*)|(\d+))(.\d+)?$/);
//   var objRegExp2 = new RegExp( /^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$/);
//   var objRegExp3 = new RegExp( /^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$/);
//   var objRegExp4 = new RegExp( /^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$/);
//   var objRegExp5 = new RegExp( / ^(\+[1-9][0-9]*(\([0-9]*\)|-[0-9]*-))?[0]?[1-9][0-9\- ]*$/);
  
   
     //check if string matches pattern
     return objRegExp1.test(strValue);
}

function IsNumeric(sText)

{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}