var Validator={
    IsValidated:function(value,reg){
        var r=value.match(reg)
        if(r!=null){
            return true;
        }else{
            return false;
        }
    },
    ValidateUrl:function(value){
        value=StringHelper.Trim(value);
        if (value.IndexOf("http://") == -1)
        {
            value = "http://"+value;
        }
        var reg=new RegExp("http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
        return Validator.IsValidated(value,reg);
    },
    ValidateEmail:function(value){
        value=StringHelper.Trim(value);
        var reg = new RegExp("^([A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*[@]{1}[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*[.]{1}[A-Za-z0-9_]+)(,[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*[@]{1}[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*[.]{1}[A-Za-z0-9_]+)*$");
        var r = value.match(reg);
        if (r!=null){
            return true;
        }else {
            return false;
        }
    },
    ValidateAlphabets:function(value, minLength, maxLength)
    {
        value=StringHelper.Trim(value);
        if(Number(minLength) > Number(maxLength))
        {    
            var strTempValue = minLength;
            minLength = maxLength;
            maxLength = strTempValue;
        }
        minLength = Number(minLength) -1;
        maxLength = Number(maxLength) -1;
        var str = "^[a-zA-Z]{1}[A-Za-z0-9_]{" + minLength + "," + maxLength + "}$";
        var reg = new RegExp(str);
        var r = value.match(reg);
        if (r!=null) 
        {
            return true;
        }
        else 
        {
            return false;
        }
    },
    ValidateDomain:function(value, minLength, maxLength)
    {
        value=StringHelper.Trim(value);
        if(Number(minLength) > Number(maxLength))
        {    
            var strTempValue = minLength;
            minLength = maxLength;
            maxLength = strTempValue;
        }
        minLength = Number(minLength) -1;
        maxLength = Number(maxLength) -1;
        var str = "^[a-zA-Z]{1}[A-Za-z0-9-]{" + minLength + "," + maxLength + "}[a-zA-Z]$";
        var reg = new RegExp(str);
        
        var r = value.match(reg);
        if (r!=null) 
        {
            return true;
        }
        else 
        {
            return false;
        }
    },
    ValidateEmpty:function(value){
        if(StringHelper.Trim(value).length==0){
            return true;
        }else{
            return false;
        }
    }
}
var StringHelper={
    Trim:function(value){
        return value.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,"");
    },
    LTrim:function(value){
        return value.replace(/(^\s*)/g, "");
    },
    RTrim:function(value){
        return value.replace(/(^\s*)/g, "");
    }
}
var FeatureHelper={
    ShowHTML:function(objID){
        var obj=document.getElementById(objID);
        obj.style.display="";
    },
    ShowHTMLs:function(objIDs){
        for(var i=0;i<objIDs.length;i++)
        {
            var obj=document.getElementById(objIDs[i]);
            obj.style.display="";
        }
    },
    HideHTML:function(objID){
        var obj=document.getElementById(objID);
        obj.style.display="none";
    },
    HideHTMLs:function(objIDs){
        for(var i=0;i<objIDs.length;i++)
        {
            var obj=document.getElementById(objIDs[i]);
            obj.style.display="none";
        }
    },
    CheckEmpty:function(objID,correctID,emptyErrorID){
        var obj=document.getElementById(objID);
        var value=StringHelper.Trim(obj.value);
        FeatureHelper.HideHTMLs([emptyErrorID,correctID]);
        if(Validator.ValidateEmpty(obj.value)){
            FeatureHelper.ShowHTML(emptyErrorID);
            return false;
        }else{
            FeatureHelper.ShowHTML(correctID);
            return true;
        }
    },
    CheckEmptyAndFormatAndExists : function(objID,correctID,emptyErrorID,formatErrorID,exsitsErrorID,formatIsCorrect,isExsits){
        var obj=document.getElementById(objID);
        var value=StringHelper.Trim(obj.value);
        FeatureHelper.HideHTMLs([emptyErrorID,correctID,formatErrorID,exsitsErrorID]);
        if(Validator.ValidateEmpty(obj.value)){
            FeatureHelper.ShowHTML(emptyErrorID);
            return false;
        }else if(!formatIsCorrect){
            FeatureHelper.ShowHTML(formatErrorID);
            return false;
        }else if(isExsits){
            FeatureHelper.ShowHTML(exsitsErrorID);
            return false;
        }else{
            FeatureHelper.ShowHTML(correctID);
            return true;
        }
    },
    CheckEmptyAndFormat : function(objID,correctID,emptyErrorID,formatErrorID,formatIsCorrect){
        var obj=document.getElementById(objID);
        var value=StringHelper.Trim(obj.value);
        FeatureHelper.HideHTMLs([emptyErrorID,correctID,formatErrorID]);
        if(Validator.ValidateEmpty(obj.value)){
            FeatureHelper.ShowHTML(emptyErrorID);
            return false;
        }else if(!formatIsCorrect){
            FeatureHelper.ShowHTML(formatErrorID);
            return false;
        }else{
            FeatureHelper.ShowHTML(correctID);
            return true;
        }
    },
    CheckSelect:function(objID,correctID,noSelectErrorID){
        FeatureHelper.HideHTMLs([correctID,noSelectErrorID]);
        var obj=document.getElementById(objID);
        if(obj.value==-1){
            FeatureHelper.ShowHTML(noSelectErrorID);
            return false;
        }else{
            FeatureHelper.ShowHTML(correctID);
            return true;
        }
    }
}