

/**
 * Validate domain name formate: subdomain.domain.extention 
 */
function checkDomain(nname, msg)
{
    var msgWants = typeof msg != "undefined" ? msg : true;
    
    var arr = new Array(
        '.com','.net','.org','.biz','.coop','.info','.museum','.name',
        '.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag',
        '.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw',
        '.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm',
        '.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc',
        '.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr',
        '.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz',
        '.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm',
        '.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm',
        '.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm',
        '.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq',
        '.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
        '.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li',
        '.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg',
        '.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
        '.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng',
        '.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf',
        '.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py',
        '.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg',
        '.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv',
        '.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn',
        '.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um',
        '.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws',
        '.wf','.ye','.yt','.yu','.za','.zm','.zw');

    var mai = nname;
    var val = true;

    var dot = mai.lastIndexOf('.');
    var dname = mai.substring(0,dot);
    var fdot = dname.lastIndexOf('.');
    var sdname = dname.substring(fdot,dot);
    var ext = mai.substring(dot,mai.length);        
    
    if(fdot>1 && fdot<57)
    {
        for(var i=0; i<arr.length; i++)
        {
            if(ext == arr[i])
            {
                val = true;
                break;
            }	
            else
            {
                val = false;
            }
        }
        if(val == false)
        {
            if(msgWants)
                alert('Your domain extension '+ext+' is not correct');
            return false;
        }
        else
        {
            for(var j=0; j<sdname.length; j++)
            {
                var dh = sdname.charAt(j);
                var hh = dh.charCodeAt(0);
                if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)
                {
                    if((j==0 || j==sdname.length-1) && hh == 45)	
                    {
                        if(msgWants)
                            alert('Domain name should not begin are end with '-'');
                        return false;
                    }
                }
                else	{
                    if(msgWants)
                        alert('Your domain name should not have special characters');
                    return false;
                }
            }
        }
    }
    else
    {
        if(msgWants)
            alert('Your Domain name is too short/long, it should be subdomain.domain.extension');
        return false;
    }
    
    if(dot>4 && dot<57)
    {
        for(var i=0; i<arr.length; i++)
        {
            if(ext == arr[i])
            {
                val = true;
                break;
            }	
            else
            {
                val = false;
            }
        }
        if(val == false)
        {
            if(msgWants)
                alert('Your domain extension '+ext+' is not correct');
            return false;
        }
        else
        {
            for(var j=0; j<dname.length; j++)
            {
                var dh = dname.charAt(j);
                var hh = dh.charCodeAt(0);
                if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)
                {
                    if((j==0 || j==dname.length-1) && hh == 45)	
                    {
                        if(msgWants)
                            alert('Domain name should not begin are end with '-'');
                        return false;
                    }
                }
                else	{
                    if(msgWants)
                        alert('Your domain name should not have special characters');
                    return false;
                }
            }
        }
    }
    else
    {
        if(msgWants)
            alert('Your Domain name is too short/long, it should be subdomain.domain.extension');
        return false;
    }
    return true;
}    


/**
 * validate ipv4 address
 */
function checkIP(ip, rtn, local){
    var rtn = typeof rtn != "undefined" ? rtn : true;
    var local = typeof rtn != "undefined" ? local : true;
    if(ip.trim() == "127.0.0.1") {
        if(rtn)
            alert("invalid ip address.");
        return false;
    }
    //var rtn = typeof(rtn) != 'undefined' ? rtn : true;
    var re = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
    if (re.test(ip)) {
        var parts = ip.split(".");
        if (parseInt(parseFloat(parts[0])) == 0) {
            if(rtn)
                alert("invalid ip address.");
            return false;
        }
        for (var i=0; i<parts.length; i++) {
            if (parseInt(parseFloat(parts[i])) > 255) {
                if(rtn)
                    alert("invalid ip address.");
                return false;
            }
        }
        return true;
    } else {
        if(rtn)
            alert("invalid ip address.");
        return false;
    }
}

/**
 * validate ipv6 address
 */
function checkIP6(ip, rtn){
    var rtn = typeof rtn != "undefined" ? rtn : true;
    var re = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/;
    if (re.test(ip)) {
        return true;
    } else {
        if(rtn)
            alert("invalid ip address.");
        return false;
    }
}

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;
   
}

function validateStringForHost(host){
    var ss_pattern = /^[A-Za-z0-9][A-Za-z0-9.]*$/;
    if(!ss_pattern.test(host)){
        return false;
    }
    return true;
}


function validateStringForDomain(domainname){    
    var reg = /\s/g;
    domainname = domainname.replace(reg,',');
    domainname = domainname.replace(/, /g,',');
    domainname = domainname.replace(/ ,/g,',');
    domainname = domainname.replace(/ , \s/g,',');
    domainname = domainname.split(',');
    domainname = domainname.filter(emptyElement);
    var domainString = "";

    var pattern = /^[a-zA-Z0-9-.]{0,62}$/;
    var status = true;

    if(domainname == ''){
        alert('Please enter valid domain names with comma or space separated.')
        return status = false;
    }

    for(var i in domainname) {
        if(!pattern.test(domainname[i]) || domainname[i] == "-" || domainname[i] == "."){
            //$('#jsErrors').html('Invalid formate string used, Ex. domain_name1:authorization_code1,domain_name2:authorization_code2,... domain_nameN:authorization_codeN')
            alert("Invalid Domain name only allow Alph Number and -:" + domainname[i]);
            status = false;
            break;
        }
        else if(domainname[i].length > 63 || domainname[i].length < 1) {
            alert("Domain name must be minimum 1 character and maximum 63: " + domainname[i]);
            status = false;
            break;            
        }
        domainString = domainString + " " + domainname[i].replace(/\.[^/.]+$/g, "");
    }
    $("#search_keywords").val(domainString);
    return status;        

}

function validateAscii32to127(name) {
    if (name != "" || name != null) {
        for (var i=0;i<name.length;i++){
            var asciiNum = name.charCodeAt(i);
            if (asciiNum>31 && asciiNum<127){
            //ok
            }else {
                return false;
            }
        }
        return true;
    }else{
        return false;
    }
}

$()
$(document).ready(function() {
    $('.downservices').mouseover(function(){
        $(".servicesdropped").hide();
        $(this).find(".servicesdropped").show();
    });        
    $('.downservices').mouseout(function(){
        $(".servicesdropped").hide();
    });

    $("img[alt=tick-circle]").parent().css("color","green"); 
    /**
     * Password Strength Meter 
     */
    $("#createUser_new_password").passStrength({
        shortPass: 		"top_shortPass",	//optional
        badPass:		"top_badPass",		//optional
        goodPass:		"top_goodPass",		//optional
        strongPass:		"top_strongPass",	//optional
        baseStyle:		"top_testresult",	//optional
        userid:			"#createUser_new_user_id",		//required override
        messageloc:		1			//before == 0 or after == 1
    });
    
    $("#accountInfo_new_password").passStrength({
        shortPass: 		"top_shortPass",	//optional
        badPass:		"top_badPass",		//optional
        goodPass:		"top_goodPass",		//optional
        strongPass:		"top_strongPass",	//optional
        baseStyle:		"top_testresult",	//optional
        userid:			"#accountInfo_email",		//required override
        messageloc:		1			//before == 0 or after == 1
    });
    
})


/**
 * Empty element array filtering
 */
function emptyElement(element) {
    //Removes nulls, zeros (also falses), text version of false, and blank element
    if (element == null || element == 0 || element.toString().toLowerCase() == 'false' || element == '' || element.trim() == '')
        return false;
    else 
        return true;
}
