var INVALID_CHARS_REGEXP = /[^abcdefghijklmnopqrstuvwxyz .01234567890-]/gi;



var validTlds = new Array('.ac','.ac.il','.ac.uk','.aero','.ag','.am','.arpa','.as','.at','.au','.be','.bg','.biz','.br','.br.com','.bt','.bz','.ca','.cc','.cd','.ch','.ck','.cl','.cn','.cn.com','.co.il','.co.nz','.co.uk','.com','.com.au','.com.br','.com.cn','.coop','.cx','.cz','.de','.de.com','.dk','.edu','.edu.cn','.ee','.eu','.eu.com','.fi','.fj','.fm','.fr','.gb.com','.gb.net','.gg','.gm','.gov','.gov.il','.gov.uk','.gs','.hk','.hm','.hn','.hu','.hu.com','.id','.id.au','.ie','.in','.info','.int','.ir','.is','.it','.je','.jobs','.jp','.k12.il','.ke','.kr','.la','.li','.lk','.lt','.ltd.uk','.lu','.lv','.mc','.md','.me','.me.uk','.mil','.mobi','.ms','.mu','.muni.il','.museum','.mx','.my','.name','.nc','.net','.net.cn','.net.il','.nl','.no','.no.com','.nu','.nz','.org','.org.cn','.org.il','.org.uk','.pl','.pt','.pw','.qc.com','.re','.ro','.ru','.ru.com','.sa.com','.sc','.se','.se.com','.se.net','.sg','.sh','.si','.sk','.sm','.sr','.st','.tc','.tf','.th','.tj','.tm','.to','.tr','.tv','.tw','.ua','.uk','.uk.com','.uk.net','.us','.us.com','.uy.com','.vc','.ve','.vg','.web.com','.ws','.za.com');



var usedTlds = new Array('co.uk','org.uk','ltd.uk','me.uk','com','net','org','info','biz','eu','me');















var OnKeyRequestBuffer =



{



        bufferText: false,



        bufferTime: 500,







        modified : function(strId)



        {



           setTimeout('OnKeyRequestBuffer.compareBuffer("'+strId+'","'+xajax.$(strId).value+'");', this.bufferTime);



        },







        compareBuffer : function(strId, strText)



        {



            if (strText == xajax.$(strId).value && strText != this.bufferText)



            {



                this.bufferText = strText;



                OnKeyRequestBuffer.makeRequest(strId);



            }



        },







        makeRequest : function(strId)



        {







            var domain = xajax.$(strId).value;



                        var domainValue = trim(domain).toLowerCase();



                        if(domainValue.indexOf("www.")==0||domainValue.indexOf("http://")==0||domainValue.indexOf("https://")==0)



                        domainValue = domainValue.substring(domainValue.indexOf("www.")+4);



                        domainValue = domainValue.replace(INVALID_CHARS_REGEXP,'');







                        var tld = getTld(domainValue);







                        if(tld!=null&&tld.length>0){



                                enterOneDomainLookupMode(tld);



                                domain = getDomain(domainValue);



                                if(validateDomain(domainValue)){



                                        xajax_doSearchDomain(domain,tld);



                                }



                        }else{



                                leaveOneDomainLookupMode();



                                for(var i=0;i<usedTlds.length;i++){



                                        var check_box = getObjectByID(usedTlds[i]+'_tpl');



                                        if(check_box.checked){



                                                if(validateDomain(domainValue +'.'+check_box.value)){



                                                         xajax_doSearchDomain(domainValue,check_box.value);



                                                }



                                        }



                                }



                        }



        }



}











function doLookup(tld){



                        var domain = xajax.$('domain').value;



                        var domainValue = trim(domain).toLowerCase();



                        if(domainValue.indexOf("www.")==0||domainValue.indexOf("http://")==0||domainValue.indexOf("https://")==0)



                        domainValue = domainValue.substring(domainValue.indexOf("www.")+4);



                        domainValue = domainValue.replace(INVALID_CHARS_REGEXP,'');







                        //var tld = getTld(domainValue);







                        if(tld!=null&&tld.length>0){



                                enterOneDomainLookupMode(tld);



                                domain = getDomain(domainValue);



                                if(validateDomain(domainValue)){



                                        xajax_doSearchDomain(domain,tld);



                                }



                        }else{



                                leaveOneDomainLookupMode();



                                for(var i=0;i<usedTlds.length;i++){



                                        var check_box = getObjectByID(usedTlds[i]+'_tpl');



                                        if(check_box.checked){



                                                if(validateDomain(domainValue +'.'+check_box.value)){



                                                         xajax_doSearchDomain(domainValue,check_box.value);



                                                }



                                        }



                                }



                        }



}







function getInputValue(){



        var domain=getObjectByID('domain').value;



        var output=trim(domain).toLowerCase();



        if(output.indexOf("www.")==0||output.indexOf("http://")==0||output.indexOf("https://")==0)



        output=output.substring(output.indexOf("www.")+4);



        output=output.replace(INVALID_CHARS_REGEXP,'');



        return output;



}







function getTld(domain){



        if(domain.indexOf(".")==-1)



                return null;



        else



                return domain.substring(domain.indexOf(".")+1,domain.length);



}







function getDomain(domain){



        var output=null;



        if(domain==null)



                output=null;



        else if(domain.indexOf(".")==-1)



                output=domain;



        else



                output=domain.substring(0,domain.indexOf('.'));



        return output;



}



function hasTld(domain){



        return domain.indexOf('.')>-1;



}











function checkspace(checkstr) {



  var str = '';



  for(i = 0; i < checkstr.length; i++) {



    str = str + ' ';



  }



  return (str == checkstr);



}







function getObjectByID(id){



        var theObject;



        if(document.getElementById)



                theObject=document.getElementById(id);



        else



                theObject=document.all[id];



        return theObject;



}







function trim(str)



{



        return str.replace(/^\s*|\s*$/g,"");



}



function validateDomain(nname)



{



        var arr=validTlds;



        var mai=nname;



        var val=true;



        var dot=mai.lastIndexOf(".");



        var dname=mai.substring(0,dot);



        var ext=mai.substring(dot,mai.length);



        if(dot>1&&dot<57){



                for(var i=0;i<arr.length;i++){



                        if(ext==arr[i]){



                                val=true;



                                break;



                        }else{



                                val=false;



                        }



                }



                if(val==false){



                        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){



                                                return false;



                                        }



                                }



                                else{



                                        return false;



                                }



                        }



                }



        }



        else{



                return false;



        }



        return true;



}



function enterOneDomainLookupMode(tld){



        for(var i=0;i<usedTlds.length;i++){



                var result_box = getObjectByID(usedTlds[i]+'_result_box');



                result_box.style.display='none';



        }



        var check_box = getObjectByID(tld+'_tpl');



        if(check_box.checked){



                var result_box = getObjectByID(tld+'_result_box');



                if(result_box)



                        result_box.style.display='block';



        }



}



function leaveOneDomainLookupMode(){



        for(var i=0;i<usedTlds.length;i++){



                var check_box = getObjectByID(usedTlds[i]+'_tpl');



                if(check_box.checked){



                        var result_box = getObjectByID(usedTlds[i]+'_result_box');



                        result_box.style.display='block';



                }



        }







}







function toggle_result_box(result_box){



        var result_box = getObjectByID(result_box+'_result_box');



        if(result_box.style.display=='none'){



                result_box.style.display='block';



                doLookup(result_box);



        }



        else{



                result_box.style.display='none';



        }



}