
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

var firstpage = 1;

function getSearchParameter(paramName){
	
	var search = window.location.search;
	var params = search.substring(1).split("&"); 
	for(var i=0; i < params.length;i++){
		var p = params[i].split('=');
		if(p.length==2 && p[0] == paramName) return p[1];
	}
	return '';
}


function changeCharLength(){
	$('lengthMin').value='';
	ajaxSearch();
}
function scrollRight(pageNum){
	 	//if((firstpage + 10) == pageNum ) firstpage++;
	 	$('currentpage').value = pageNum;
	 	ajaxSearch1(pageNum);
}

function jumpLastPage(){
	var numFound = $('sizeOfResultSet').value;
	var sel = document.getElementById('pageSizeSel1');
	var pageSize = parseInt(sel.options[sel.selectedIndex].value);
	var nrPages = Math.floor(numFound/pageSize) + 1;
	jumpToPage(nrPages-1);
}

function jumpFirstPage(){
	jumpToPage(1);
}
function scroll1(pageNum){
 		//if(firstpage > 1 ) firstpage--;
 		$('currentpage').value = pageNum;
 		ajaxSearch1(pageNum);
}
function fillPagination(searchResult){
 		pagination(searchResult, 'pagination1');
 		pagination(searchResult, 'pagination2');
}

function jumpToPage(pageNum){
 		$('currentpage').value = pageNum;
 		ajaxSearch1(pageNum);
}

 	
function pagination(searchResult, name){
	var numFound = searchResult.numFound;
	var span = document.getElementById(name);
	var sel = document.getElementById('pageSizeSel1');
	var pageSize = parseInt(sel.options[sel.selectedIndex].value);

	var nrPages = Math.floor(numFound/pageSize) + 1;
	if(Math.floor(numFound/pageSize) == (numFound/pageSize))  nrPages--;

	var pageNum = parseInt($('currentpage').value);
	
	var s = '';
	var last = Math.min(pageSize * pageNum, numFound);
	var firstpage = (pageNum - 3) > 0 ? (pageNum - 3) : 1;
	if(firstpage > nrPages-7 && nrPages-7 >= 0) firstpage = nrPages-6;
	dwr.util.setValue('displaylimits', (pageSize * (pageNum - 1) + 1) + ' - ' + last);
	if(nrPages > 1){
		resetThisPagePath();
		for(var i = firstpage; i < (firstpage+7) && i <= nrPages; i++){
			if(i == pageNum)
				s = s + i + '&nbsp;&nbsp;';
			else
			s = s + '<a href="'+getThisPagePath(i)+'" onclick="javascript:jumpToPage(\'' + i + '\');return false;" >' + i + '</a>'+ '&nbsp;&nbsp;';
		}
		if(pageNum > 1){
			s = '| <a href="'+getThisPagePath(1)+'" onClick="javascript:jumpFirstPage();return false;" ><b><</b></a>&nbsp;&nbsp;'+
				'<a href="'+getThisPagePath(pageNum-1)+'" onclick="javascript:jumpToPage(\''  + (pageNum-1) + '\');return false;" ><b><<</b></a>&nbsp;|&nbsp;' + s;
		}
		if(pageNum < nrPages){
			s = s + '| <a href="'+getThisPagePath(pageNum+1)+'" onclick="javascript:jumpToPage(\''  + (pageNum+1) + '\');return false;" ><b>>></b></a>'+
			'&nbsp;&nbsp;<a href="'+getThisPagePath(nrPages)+'" onClick="javascript:jumpToPage(\'' + nrPages +'\');return false;" ><b>></b></a>&nbsp;|&nbsp;'
		}
	}
	span.innerHTML = s;
}

var thisPagePath = ""; 

function resetThisPagePath() {
    var result = window.location.pathname+"?";
    result+= addParam2URL("searchType",getSearchParameter("searchType"), false); 
    result+= getDownloadParameters();  
    thisPagePath = result;
}	
function addParam2URL(name,value,isEmptyAllowed) {
	return (value != null && (isEmptyAllowed || value != '')) ? '&'+name+'='+value : '';  
}
function getThisPagePath(pageNum) {
	return thisPagePath+"&pageNum="+pageNum;
}

function selectTld(checkbox){
	if(checkbox.checked){
		$('allTlds').checked = false;
	}else {
		var checkAll = true;
		var chks = document.getElementsByName('tlds');
		for(var i =0; i < chks.length;i++)
			if(chks[i].checked) {
				checkAll = false;
				break;
			}
		$('allTlds').checked = checkAll;
	}
	ajaxSearch();
}

function selectPriceRange(checkbox){
	if(checkbox.checked){
		$('allPrices').checked = false;
		//$('requirePrice').checked = false;
	}else {
		var checkAll = true;
		var chks = document.getElementsByName('priceRange');
		for(var i =0; i < chks.length;i++)
			if(chks[i].checked) {
				checkAll = false;
				break;
			}
		$('allPrices').checked = checkAll;
		//$('requirePrice').checked = checkAll;
	}
	ajaxSearch();
}

function selectRequirePriceRange(checkbox){
	if(checkbox.checked){
		$('allPrices').checked = false;
		var chks = document.getElementsByName('priceRange');
		for(var i =0; i < chks.length;i++){
			chks[i].checked = false;
		}
	}else{
		$('allPrices').checked = true;
	}
	ajaxSearch();
}

function selectAllPrices(){
	var chks = document.getElementsByName('priceRange');
	if($('allPrices').checked){
		
		$('requirePrice').checked = false;
		for (var i = 0; i < chks.length; i++) {
  			chks[i].checked = false;
  		}
  		$('minPrice').value = '';
  		$('maxPrice').value = '';

  		ajaxSearch();

	} else{

	}
}

function alreadyAdded(tld){
	var tlds = document.getElementsByName('tlds');
	for(var i =0; i < tlds.length;i++)
		if(tlds[i].value == tld) return true;
	return false;
}
function selectAllTlds(){
	var chks = document.getElementsByName('tlds');
	if($('allTlds').checked){
  		for (var i = 0; i < chks.length; i++) {
  			chks[i].checked = false;
  		}
  		ajaxSearch();
	} else {

	}

}


function selectL1Checkbox(checkbox){
	if(checkbox.checked)
		$('allCategory').checked=false;
	else {
		var checkAll = true;
		var chks = document.getElementsByName('categoryL1');
		for(var i =0; i < chks.length;i++)
			if(chks[i].checked) {
				checkAll = false;
				break;
			}
		$('allCategory').checked = checkAll;
		$('homePageCategoryHeader').innerHTML = 'Premium Domain Name Search Results';
	}
	ajaxSearch();
}
function selectAllCategory(){
	var chks = document.getElementsByName('categoryL1');
	if($('allCategory').checked){
  		for (var i = 0; i < chks.length; i++) {
  			chks[i].checked = false;
  		}
  		ajaxSearch();
		$('homePageCategoryHeader').innerHTML = 'Premium Domain Name Search Results';
	} else {
	}

}

var tdClassNames = new Array('check', 'domain', 'category', 'similar', 'price', 'buyReq');


function fillDomainsToRegister(searchResult){
    var domains = searchResult.registralDomains;
    for(var i = 0; i < 2 && i < domains.length; i++){
        if(domains[i].isRegistrationOffer){
            if($('exactMatch_SW').value == 'false'){
                toggle_visibility('success');
                toggle_off('nomatch');
                $('exactMatchCallout_KW').innerHTML = domains[i].capName+'&nbsp;';
                $('exactMatchCallout_PL').innerHTML = '&nbsp;register by phone.';
                $('exactMatchCallout_POL').innerHTML = '&nbsp;register online.';
                $('exactMatchCallout_P').innerHTML = '&nbsp;for&nbsp;'+domains[i].priceAsMoneyString + '&#42;';
				if(searchResult.testStatus == '0'){
					pageTracker._trackPageview('tracking=search-register-exact');
                	$('exactMatchCalloutBuyNow_btn').innerHTML = "<a onclick='pageTracker._trackPageview(\"tracking=search-register-now\");' href='http://buydomainsregistration.com/domains/Register.asp?sld="+domains[i].nameWithoutTld+'&tld='+domains[i].tld+"'><img src='/images/premium/mdg/btn_registerNow.jpg' border='0' style='padding-right:10px' /></a>";
				} else {
					pageTracker._trackPageview('tracking=searchTest-register-exact');
                	$('exactMatchCalloutBuyNow_btn').innerHTML = "<a onclick='pageTracker._trackPageview(\"tracking=searchTest-register-now\");' href='http://buydomainsregistration.com/domains/Register.asp?sld="+domains[i].nameWithoutTld+"&tld="+domains[i].tld+"'><img src='/images/premium/mdg/btn_registerNow.jpg' border='0' style='padding-right:10px'/></a>";
				}
                $('exactMatchCalloutPRI_span').hide();
                $('exactMatch_SW').value = 'true';
				$('priceAsterisk').innerHTML = "&#42; Price reflects a 10 year registration fee.<br />One year of registration is $24.95.";
            }
        }
    }
}

function fillTable(searchResult) {
    dwr.util.removeAllRows("searchResultsBody");
    if (searchResult.numFound > 0) {
        var cellFuncs = [
            function(data) {
                var name = dwr.util.escapeHtml(data.name);
                return "<input type='checkbox' value='" + name + "' name='selectedDomains'/>";
            },
            function(data) {
                if (data.isExactMatch) {
                    bannerExactMatch(data);
                    return '<a href="/find-premium-domains/domain-details.jsp?domain='+data.capName + '" class="noStyle">'+data.capName +'</a>' + '<span>- exact match</span>';
                } else {
                    if(searchResult.testStatus == '0'){
						bannerNoExactMatch();
						return '<a href="/find-premium-domains/domain-details.jsp?domain='+data.capName + '" class="noStyle">'+data.capName +'</a>';
					} else {
						bannerNoExactMatch2();
						return '<a href="/find-premium-domains/domain-details.jsp?domain='+data.capName + '" class="noStyle">'+data.capName +'</a>';
					}
                }
            },
            function(data) {
                if (data.categoryL1 != '') {
                    var s = '<a href="/find-premium-domains/search-results.jsp?l1=' + data.categoryID + '">' + data.categoryL1 + '</a>';
                    return s;
                }
                else return '&nbsp;';
            },
            function(data) {
                return '<a href="/find-premium-domains/search-results.jsp?style=s&domain=' +
                       dwr.util.escapeHtml(data.name) + '"><img src="/images/buttons/icon_magnifyingglass.gif" width="13" height="13" border="0" alt="Find Similar Domains" style="padding:0 10px;" /></a>';
            },
            function(data) {
                if (data.isListed)
                    return data.priceAsMoneyString;
                else return '&nbsp;';
            },
            function(data) {
                if (data.isListed) {
                    if (data.isExactMatch && $('exactMatch_SW').value == 'false') {
                        $('exactMatchCallout_P').innerHTML = '&nbsp;for&nbsp;' + data.priceAsMoneyString;
						$('exactMatchCallout_PL').innerHTML = '&nbsp;purchase by phone.';
    					$('exactMatchCallout_POL').innerHTML = '&nbsp;purchase online.'
                        $('exactMatchCalloutPRI_span').hide();
						if(searchResult.testStatus == '0'){
							$('exactMatchCalloutBuyNow_btn').innerHTML = '<a onclick="javascript:pageTracker._trackPageview(\'tracking=search-buynow-mdg\');" href="/AddToCart.do?selectedDomains=' + dwr.util.escapeHtml(data.name) + '"/><img src="/images/premium/mdg/btn_buyNow.gif" border="0" style="padding-right:10px" /></a><img src="/images/premium/mdg/icon_creditCards.gif" border="0" />';
							pageTracker._trackPageview('tracking=search-buynow-exact');
						} else {
							$('exactMatchCalloutBuyNow_btn').innerHTML = '<a onclick="javascript:pageTracker._trackPageview(\'tracking=searchTest-buynow-mdg\');" href="/AddToCart.do?selectedDomains=' + dwr.util.escapeHtml(data.name) + '"/><img src="/images/premium/mdg/btn_buyNow.gif" border="0" style="padding-right:10px" /></a><img src="/images/premium/mdg/icon_creditCards.gif" border="0" />';
							pageTracker._trackPageview('tracking=search-buynow-exact');
						}
                        $('exactMatch_SW').value = 'true';
						$('priceAsterisk').innerHTML = '';
                    }
                    return '<a href="/AddToCart.do?selectedDomains=' + dwr.util.escapeHtml(data.name) + '"><img src="/images/buttons/button_buynow.gif" width="59" height="13" border="0" alt="Buy This Domain Now"/></a>';
                } else {
                    if (data.isExactMatch && $('exactMatch_SW').value == 'false') {
                        $('exactMatchCallout_P').innerHTML = '';
						$('exactMatchCallout_PL').innerHTML = '&nbsp;request a price by phone.';
                        $('exactMatchCallout_POL').innerHTML = '&nbsp;request a price online.'
                        $('exactMatchCalloutBuyNow_btn').innerHTML = '';
                        $('exactMatchCalloutPRI_span').show();
						if(searchResult.testStatus == '0'){
							pageTracker._trackPageview('tracking=search-pri-exact');
                        	$('exactMatchCalloutPRI_btn').href = '/AddToCart.do?selectedDomains=' + dwr.util.escapeHtml(data.name);
						} else {
							pageTracker._trackPageview('tracking=searchTest-pri-exact');
                        	$('exactMatchCalloutPRI_btn').href = '/AddToCart.do?selectedDomains=' + dwr.util.escapeHtml(data.name);
						}
                        $('exactMatch_SW').value = 'true';
						$('priceAsterisk').innerHTML = '';
                    }
                    return '<a href="/AddToCart.do?selectedDomains=' + dwr.util.escapeHtml(data.name) + '">Request Price</a>';
                }
            }
        ];

        dwr.util.addRows("searchResultsBody", searchResult.foundDomains, cellFuncs, {
            rowCreator:function(options) {
                var row = document.createElement("tr");
                if (options.rowIndex % 2 == 0)
                    row.className = "rowA";
                else
                    row.className = "rowB";
                return row;
            },
            cellCreator:function(options) {
                var td = document.createElement("td");
                td.className = tdClassNames[options.cellNum];
                return td;
            },
            escapeHtml:false
        });
    } else {
        // Update the top pane separately here if there were no search results produced by this search.
        if(searchResult.testStatus == '0'){
			bannerNoExactMatch();
		} else {
			bannerNoExactMatch2();
		}
    }
}


function bannerExactMatch(data) {
    if ($('exactMatch_SW').value == 'false') {
        toggle_visibility('success');
        toggle_off('nomatch');
        $('exactMatchCallout_KW').innerHTML = data.capName + '&nbsp;';
    }
}

function bannerNoExactMatch() {
    if ($('exactMatch_SW').value == 'false') {
        toggle_visibility('nomatch');
        toggle_off('success');
        var kw = document.searchKeywordsForm.keywords.value;
        var text;
		// keyword exsists
        if (kw.length > 0) {
            text = "Looks like " + kw + " is already taken.  What now? You have two great options..."
					+"<div class=\"callsteps\">"
					+"1.	 Give us a call and we can help you find the right name.<br />"
					+"&nbsp;&nbsp;&nbsp;&nbsp;If you still have your heart set on that specific name, we can get that for you too. <br />"
					+"<div class=\"callstepsphone\">"
					+"Call 7 days a week, 7AM – 11PM EST. Toll free at "
					+"<strong>"+$('tollPhone1').value+"</strong>. Outside the US call <strong>"+$('localPhone1').value+"</strong>."
					+"</div>"
					+"</div>"
					+"<div class=\"callsteps\">"
					+"2.	Try again, but refine your search for more targeted results.<br />"
					+"<div class=\"callstepsphone\">"
					+"Use the \"Filter Results\" below on the left."
					+"</div>"
		 			+"</div>";
		// no keyword
        } else {
            text = "Did you find what you're looking for? If not, here are a few ideas."
					+"<div class=\"callsteps\">"
					+"1.	 Give us a call and we can help.<br />"
					+"<div class=\"callstepsphone\">"
					+"Our Domain Consultants are here 7 days a week to help you find the perfect name for your needs. Call us toll free at "
					+"<strong>"+$('tollPhone1').value+"</strong>. Outside the US call <strong>"+$('localPhone1').value+"</strong>."
					+"</div>"
					+"</div>"
					+"<div class=\"callsteps\">"
					+"2.	Try again, but refine your search for more targeted results.<br />"
					+"<div class=\"callstepsphone\">"
					+"\"Start Keyword Search\" may be found below on the left, pinpoint the perfect name to grow your business."
					+"</div>"
		 			+"</div>";
        }
        $('noExactMatchCallout_KW').innerHTML = text;
    }
}

function bannerNoExactMatch2() {
    if ($('exactMatch_SW').value == 'false') {
        toggle_visibility('nomatch');
        toggle_off('success');
        var kw = document.searchKeywordsForm.keywords.value;
        var text;
		// keyword exsists
        if (kw.length > 0) {
            text = "Looks like <strong>" + kw + "</strong> is already taken.<br />What now? You have two great options..."
					+"<div class=\"callsteps\">"
					+"1. Give us a call and we can help.<br />"
					+"<div class=\"callstepsphone sPadTop\">"
					+"<strong>"+$('tollPhone1').value+"</strong> (Toll Free)<br />"
					+"<strong>"+$('localPhone1').value+"</strong> (Outside the US)"
					+"</div>"
					+"</div>"
					+"<div class=\"callsteps\">"
					+"2. Refine your search for more targeted results.<br />"
					+"<div class=\"callstepsphone sPadTop\">"
					+"Use the \"Filter Results\" below on the left."
					+"</div>"
		 			+"</div>";
		// no keyword
        } else {
            text = "Did you find what you're looking for?<br />If not, here are a few ideas."
					+"<div class=\"callsteps\">"
					+"1. Give us a call and we can help.<br />"
					+"<div class=\"callstepsphone sPadTop\">"
					+"<strong>"+$('tollPhone1').value+"</strong> (Toll Free)<br />"
					+"<strong>"+$('localPhone1').value+"</strong> (Outside the US)"
					+"</div>"
					+"</div>"
					+"<div class=\"callsteps\">"
					+"2. Refine your search for more targeted results.<br />"
					+"<div class=\"callstepsphone sPadTop\">"
					+"\"Start Keyword Search\" below on the left will help you pinpoint the perfect name to grow your business."
					+"</div>"
		 			+"</div>";
        }
        $('noExactMatchCallout_KW').innerHTML = text;
    }
}

function ajaxSearch(){
	firstpage = 1;
	ajaxSearch1('1');
}

function fillTaxonomyConstraints(searchParams, doc){
	var ref1Ids = new Array();
  	var ref2Ids = new Array();
  	var chks = doc.getElementsByName('categoryL1')
  	for (var i = 0; i < chks.length; i++)
			if(chks[i].checked) {
				var l2s = doc.getElementsByName('l2_'+chks[i].value);
				if(l2s.length == 0) ref1Ids.push(chks[i].value);
				else {
					for(var j=0; j < l2s.length;j++)
						ref2Ids.push(l2s[j].value);
				}
			}
	searchParams.categoryL1 = ref1Ids;
  	searchParams.categoryL2 = ref2Ids;
}

function fillExactMatchesFromAfternic(searchResult){
 	var domains = searchResult.exactMatchesFromAfternic;
 	var elem = document.getElementById('exactMatchesFromAfternic');
 	var s = '';
	var records = 0;
    if (domains) {
        for (var i = 0; i < 3 && i < domains.length; i++) {
            records++;
            s += '<a class="anPromoLeft" href="' + afternicURL + '/name.php?domain=' + domains[i] + '" onclick="javascript:pageTracker._trackPageview(\'tracking=afternic-exact-match\');">"' + domains[i] + '" is available through auction on</a>';
            s += '<a class="anPromoLogo" href="' + afternicURL + '/name.php?domain=' + domains[i] + '" onclick="javascript:pageTracker._trackPageview(\'tracking=afternic-exact-match\');"><img src="../images/anPromoLogo.jpg" border="0" /></a>';
            s += '<a class="anPromoRight" href="' + afternicURL + '/name.php?domain=' + domains[i] + '" onclick="javascript:pageTracker._trackPageview(\'tracking=afternic-exact-match\');">bid now!</a>';
            s += '\n';
        }
    }
	if(elem) {
		elem.innerHTML = s;
		elem.style.height=''+39*records+'px';
		// elem.style.visibility = records == 0 ? 'hidden':'visible';
	}
}

function createSearchParameters() {
    var searchParams = {keywords:null, tlds:null, sort_by:null, sort_direction:null, charLength:null,
        hyphenExcluded:null, numbersExcluded:null, minPrice:null, maxPrice:null, isInternalUser:null,
        lengthMin:null, geoLocation:null, showExactMatchesFromAfternic:null, requirePrice:null,
        allPriceRanges:null,origTldList:null,words:null };
    dwr.util.getValues(searchParams);
    searchParams.requirePrice = (document.getElementById('requirePrice').checked);
    searchParams.tlds = getDataFromCheckboxes(document.getElementsByName('tlds'));
    searchParams.origTldList = getOrigTldList(document.getElementsByName('tlds'));
    searchParams.isInternalUser = getCookie('YD') == '1';
    searchParams.cartId = getCookie('cart_id');
    fillTaxonomyConstraints(searchParams, document);
    searchParams.priceRange = getPriceRanges();   
    searchParams.allTlds = $('allTlds').checked;
    searchParams.allPriceRanges = $('allPrices').checked;
    
    searchParams.keywords = document.searchKeywordsForm.keywords.value.toLowerCase();
    searchParams.keyword_s='contains';
    var radios =  document.getElementsByName('keyword_s');
    for(var i=0; i <radios.length;i++)
        if(radios[i].checked) searchParams.keyword_s=radios[i].value;
    if (document.getElementById('useGeoLocation').checked) {
        searchParams.geoLocation=getGeoLocationArray();
    }
    searchParams.showExactMatchesFromAfternic = false;
//  	searchParams.words = words.selectedIndex > 0 ? $('words').options[words.selectedIndex].value : 0;

    return searchParams;
}

function removeChildNodes(node){
	var len = node.childNodes.length;
	for(var i=len-1; i > -1; i--){
		node.removeChild(node.childNodes[i]);
	}
}



function fillFeaturedDomains(featuredDomains){
	if(featuredDomains.length > 0){
		var table = document.createElement("table");
		//cellpadding="0" cellspacing="0" border="0"
		table.className = 'featuredDomainsTable';
		table.cellPadding = '0';
		table.cellSpacing = '0';
		table.style.border = '0';
		var tbody = document.createElement("tbody");
		for(var i = 0; i < 3; i++){
			var tr = document.createElement("tr");
			var td = document.createElement("td");
			var a = document.createElement("a");
			if (featuredDomains[i].isListed) {
				a.href = '/AddToCart.do?selectedDomains='+featuredDomains[i].capName;
				var btn = document.createElement("img");
				btn.src = '/images/buttons/button_buy-now_search.gif';
			} else {
				a.href = '/AddToCart.do?selectedDomains='+featuredDomains[i].capName+'&referrer_id='+$('referrerId').value;
				var btn = document.createElement("img");
				btn.src = '/images/buttons/button_price-request_search.gif';
			}
			btn.className = 'buybutton';
			btn.width = "81";
			btn.height = "21";
			btn.border = "0";
			a.appendChild(btn);
			td.appendChild(document.createTextNode(featuredDomains[i].capName));
			td.appendChild(document.createElement("br"));
			td.appendChild(a);
			tr.appendChild(td);
			tbody.appendChild(tr);
		}
		table.appendChild(tbody);
		var container = $('MDGfeaturedDomains');
		removeChildNodes(container);
		var outerDiv = document.createElement("div");
		outerDiv.className = "mdgcontainer featuredDomains";
		var innerDiv = document.createElement("div");
		innerDiv.className = "featuredDomains";
		var innerDiv2 = document.createElement("div");
		innerDiv2.className = "tbar";
		innerDiv2.appendChild(document.createTextNode("Featured Domains"));
		innerDiv.appendChild(innerDiv2);
		innerDiv.appendChild(table);
		outerDiv.appendChild(innerDiv);
		container.appendChild(outerDiv);
		matchHeight();
	}
}

function fillFeaturedDomains2(featuredDomains){
	if(featuredDomains.length > 0){
		var table = document.createElement("table");
		//cellpadding="0" cellspacing="0" border="0"
		table.cellPadding = '0';
		table.cellSpacing = '0';
		table.style.border = '0';
		var tbody = document.createElement("tbody");
		var tr = document.createElement("tr");
		for(var i = 0; i < 3; i++){
			var td = document.createElement("td");
			var a = document.createElement("a");
			if (featuredDomains[i].isListed) {
				a.href = '/AddToCart.do?selectedDomains='+featuredDomains[i].capName;
				var btn = document.createElement("img");
				btn.src = '/images/buttons/button_buy-now_search.gif';
			} else {
				a.href = '/AddToCart.do?selectedDomains='+featuredDomains[i].capName+'&referrer_id='+$('referrerId').value;
				var btn = document.createElement("img");
				btn.src = '/images/buttons/button_price-request_search.gif';
			}
			btn.className = 'buybutton';
			btn.width = "81";
			btn.height = "21";
			btn.border = "0";
			a.appendChild(btn);
			td.appendChild(document.createTextNode(featuredDomains[i].capName));
			td.appendChild(document.createElement("br"));
			td.appendChild(a);
			tr.appendChild(td);
		}
		tbody.appendChild(tr);
		table.appendChild(tbody);
		var container = $('MDGfeaturedDomains');
		removeChildNodes(container);
		var outerDiv = document.createElement("div");
		outerDiv.className = "featuredDomains";
		var innerDiv = document.createElement("h3");
		innerDiv.appendChild(document.createTextNode("Featured Domains"));
		outerDiv.appendChild(innerDiv);
		outerDiv.appendChild(table);
		container.appendChild(outerDiv);
	}
}

function ajaxSearch1(pageNum){
    var searchParams = createSearchParameters();
    searchParams.pageNum = pageNum;
    searchParams.showExactMatchesFromAfternic=(pageNum <= 1);
    var pageSizeSel = document.getElementById('pageSizeSel1');
    searchParams.pageSize = pageSizeSel.options[pageSizeSel.selectedIndex].value;
    document.getElementById('currentpage').value = pageNum.toString();
    var pd, domainName;
    dwr.engine.beginBatch();
    var popup = showPopupWait(100,100);

    Search.getResults(searchParams,{
        callback:function(searchResult) {
            hidePopupWait();
            fillExactMatchesFromAfternic(searchResult);
            fillDomainsToRegister(searchResult);
            fillTable(searchResult);
            fillRelatedKeywords(searchResult.relatedWords);
            fillPagination(searchResult);
            if(searchResult.testStatus == '0')
            	fillFeaturedDomains(searchResult.featuredDomains);
			else
				fillFeaturedDomains2(searchResult.featuredDomains);
            dwr.util.setValue('resultSetSize1', searchResult.numFound.toString());
            dwr.util.setValue('resultSetSize2', searchResult.numFound.toString());
            $('sizeOfResultSet').value=searchResult.numFound.toString()
            //setL1Categories(searchResult);
            setCountersData(searchResult);
            //buildDownloadLink();   now we use lightbox
        },
        errorHandler:function(errorString, exception) {
            //alert(errorString);
            hidePopupWait();
        }

        });
        dwr.engine.endBatch();
 }

function fillRelatedKeywords(words){
	dwr.util.removeAllRows("relatedWords");
	var table = $("relatedWords");
	var rowNum = 0;
	for(word in words){
		var row = table.insertRow(rowNum++);
		var bold = document.createElement("b");
		var text = 'Related Keywords for \''+word+'\': ';
		var wordDesc = document.createTextNode(text);
		bold.appendChild(wordDesc);
		var cell = row.insertCell(0);
		cell.appendChild(bold);
		var list = words[word];
		for(var i = 0; i < list.length && i < 5; i++){
			var anchor = document.createElement("a");
			anchor.href =  '/find-premium-domains/search-results.jsp?keywords='+list[i];
			var aText = document.createTextNode(list[i]);
			anchor.appendChild(aText);
			cell.appendChild(anchor);
			if(i+1 < list.length && i+1 < 5){
				var comma = document.createTextNode(" , ");
				cell.appendChild(comma);
			}
			//text += '<a href="/find-premium-domains/search-results.jsp?keywords='+list[i]+'">'+list[i]+'</a>';
		}
		
		
	}
}

 function setL1Categories(searchResult){
 	var body = document.getElementById('l1body');
 	 dwr.util.removeAllRows("l1body");
 	var facets = searchResult.l1Facets;
 	for(var i=0; i < 3 && i < facets.length; i++){
 		var facet = facets[i];
 		var row = body.insertRow(-1);
 		var cell = row.insertCell(-1);
 		var s = '<input type="checkbox"  value="'+ facet.name +'" name="categoryL1" '+
			'onclick="javascript:selectCategory(this)" />&nbsp;'+ facet.description +
			'&nbsp;<span id="l1_'+ facet.name +'"></span>'+
			'<input type="hidden" value="'+facet.name + '" id="l1_'+i +'" />';
		cell.innerHTML = s;
 	}
 }
 function getPriceFacets(chks){
 	var ranges = new Array();
  	var count=0;
  	for (var i = 0; i < chks.length; i++){
  		var r = document.getElementById('priceRange'+chks[i].value);
  		if(r) ranges[count++] = r.value;
  	}
 	return ranges;
 }

 function setCountersData(searchResult){
 	var facets = searchResult.priceFacets;
    var numFound = searchResult.numFound;
    var reqPriceChbx = document.getElementById("requirePrice");
    var priceElem = document.getElementById("_require_price");
    if(reqPriceChbx && reqPriceChbx.checked){        
        if(priceElem) priceElem.innerHTML = '('+numFound+')';
    }
     else{
        if(priceElem) priceElem.innerHTML = '';
    }
 	var chks = document.getElementsByName('priceRange');
  	for (var i = 0; i < chks.length; i++) {
  		var facet = document.getElementById('priceRange'+chks[i].value).value;//hidden
  		var elem = document.getElementById(facet);
  		if(elem) elem.innerHTML = '';
  	}

 	for(var i =0; i < facets.length; i++){
 		var elem = document.getElementById(facets[i].name);
 		if(elem)
 			elem.innerHTML = '('+facets[i].value+')';
 	}
 	facets = searchResult.tldFacets;
 	var chks = document.getElementsByName('tlds');
	for(var i =0; i < chks.length;i++){
		var tld = 'tld_'+chks[i].value.substring(1);
 		var elem = document.getElementById(tld);
 		if(elem)elem.innerHTML = '';
	}
 	for(var i =0; i < facets.length; i++){
 		var facet = facets[i];
 		var tld = 'tld_'+facet.name.substring(1);
 		var elem = document.getElementById(tld);
 		if(elem)
 			elem.innerHTML = '('+facet.value+')';
 		else{
 			// add new tld
 			if(facet.name.indexOf('.') > -1 && !$('allTlds').checked){
 				var tldsBody = document.getElementById('tldsBody');
 				var row = tldsBody.insertRow(-1);
 				row.name = 'tr_tld';
 				var cell = row.insertCell(-1);
 				cell.innerHTML = '<div class="h24 lMargLeft"><input type="checkbox"  checked value="'+facet.name +'" name="tlds" onclick="javascript:selectTld(this)"/>&nbsp;' + facet.name +
	 				'&nbsp;<span id="tld_'+ facet.name.substring(1) + '">('+facet.value+')</span></div>';
 			}
 		}
 	}

 	facets = searchResult.l1Facets;
 	var l1size = document.getElementById('l1Size').value;
 	for(var i=0; i < l1size ; i++){
 		var elem = document.getElementById('l1_'+i);
 		if(elem == null) continue;
 		var catName = elem.value;
 		elem = document.getElementById('catl1_'+catName);
 		if(elem != null) elem.innerHTML = '';
 	}

 	for(var i =0;i < facets.length; i++){
 		var facet = facets[i];
 		var elem = document.getElementById('catl1_'+facet.name);
 		if(elem)
 			elem.innerHTML = '('+facet.value+')';
 	}
 	facets = searchResult.l2Facets;
 	for(var i =0;i < facets.length; i++){
 		var facet = facets[i];
 		var lvl1 = getL2Parent(facet.name);
 		lvl1.count += facet.value;
 		var elem = document.getElementById('catl1_'+lvl1.id);
 		if(elem)
 			elem.innerHTML = '('+lvl1.count+')';
 	}

 }


 function getPriceRanges(){
 	var ranges = new Array();
 	var chks = document.getElementsByName('priceRange');
  	var count=0;
  	//if($('allPrices').checked) return ranges;
  	for (var i = 0; i < chks.length; i++)
			if(chks[i].checked || $('allPrices').checked) {
				if($('priceRange'+chks[i].value))
					ranges[count++] = $('priceRange'+chks[i].value).value;
			}
 	return ranges;

 }

 function getGeoLocationArray(){
	 	var result = new Array();
		result[0]=document.getElementById('geoLocation.city').value;
		result[1]=document.getElementById('geoLocation.area').value;
		result[2]=document.getElementById('geoLocation.countryId').value;
	 	return result;
 }

 // show pop-up wait image
 function showPopupWait(w,h){
	var popUpWait = document.getElementById("popupWait");
	popUpWait.style.top = "350px";
	popUpWait.style.left = "520px";
	popUpWait.style.width = w + "px";
	popUpWait.style.height = h + "px";
	popUpWait.style.visibility = "visible";
 }
 // hide pop-up wait image
 function hidePopupWait(){
	   var popUpWait = document.getElementById("popupWait");
	   popUpWait.style.visibility = "hidden";
	}

 function getDataFromCheckboxes(chks){
 	var refIds = new Array();
 	
  	var count=0;
  	for (var i = 0; i < chks.length; i++)
			if(chks[i].checked) refIds[count++]=chks[i].value;
	return refIds;
 }

  function getOrigTldList(chks){
	  var refIds = new Array();
	  	var count=0;
	  	for (var i = 0; i < chks.length; i++)
				refIds[count++]=chks[i].value;
		return refIds;
  }
 
  function getDownloadParameters() {
      var parameters = '';
      var keywordsInput = document.searchKeywordsForm.keywords;
      if(keywordsInput.value.trim() != ''){
          var radios =  document.getElementsByName('keyword_s');
            for(var i=0; i <radios.length;i++)
                if(radios[i].checked){
                    parameters = parameters + '&keyword_s='+ radios[i].value;
                    break;
                }
            parameters = parameters + '&keywords='+keywordsInput.value.trim();
      }
      var minPrice = document.getElementById('minPrice').value.trim();
      if(minPrice != '') parameters = parameters + '&price_low='+minPrice;
      var maxPrice = document.getElementById('maxPrice').value.trim();
      if(maxPrice != '') parameters = parameters + '&price_high='+maxPrice;
      var requirePrice = document.getElementById('requirePrice').value.trim();
      if(requirePrice != '') parameters = parameters + '&require_price='+requirePrice;
      var charLen = document.getElementById('charLength');
      if(charLen.selectedIndex > 0)
          parameters = parameters + '&length_max='+charLen.options[charLen.selectedIndex].value;
      if(document.getElementById("hyphenExcluded").checked)
          parameters = parameters + '&exclude_hyphens=Y';
      if(document.getElementById("numbersExcluded").checked)
          parameters = parameters + '&exclude_numbers=Y';
/*      
      var words = document.getElementById('words');
      if(words.selectedIndex > 0)
          parameters = parameters + '&words='+words.options[words.selectedIndex].value;
*/          
      var chks = document.getElementsByName('tlds');
       for (var i = 0; i < chks.length; i++) {
           if(chks[i].checked) {
               parameters = parameters + '&t=' + chks[i].value;
           }
       }
     chks = document.getElementsByName('categoryL1');
       for (var i = 0; i < chks.length; i++) {
           if(chks[i].checked) {
               parameters = parameters + '&l1=' + chks[i].value;
           }
       }
      if (document.getElementById('useGeoLocation').checked) {
          parameters = parameters + '&geo=Y';
      }
     return parameters;
  }

  function buildDownloadLink(){
 	var span = document.getElementById('downloadlink');
     var parameters = getDownloadParameters();
     span.innerHTML = '<a href="/find-premium-domains/search-results-text.jsp?searchType=download' + parameters + '">Download Search Results</a>';
 }



// pop up additional TLDs
function showTLD() {
	window.open("tld.jsp","doTLD","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=570,height=450,left=100,top=100,marginwidth=0, marginheight=0");
}
function showCAT() {
	window.open("manage-categories.jsp","doCAT","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=670,height=520,left=100,top=100,marginwidth=0, marginheight=0");
}



	function changePageSize1(sel){
		var otherSel = document.getElementById('pageSizeSel2').selectedIndex = sel.selectedIndex;
 		document.searchKeywordsForm.pageSize.value = sel.options[sel.selectedIndex].value;
		ajaxSearch();
	}

	function changePageSize2(sel){
 		var otherSel = document.getElementById('pageSizeSel1').selectedIndex = sel.selectedIndex;
 		document.searchKeywordsForm.pageSize.value = sel.options[sel.selectedIndex].value;
		ajaxSearch();
	}


function FormatNumber(num){
	if(num == '') return '';
	var s = FormatNumber1(num,1,false,false,false);
	if(s.indexOf('.') < 0) s = s //+ '.0';
	return s;
}
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.

	RETVAL:
		The formatted number!
 **********************************************************************/
function FormatNumber1(num,decimalNum,bolLeadingZero,bolParens,bolCommas){
        if (isNaN(parseInt(num)) && isNaN(parseFloat(num))) return "";

		var tmpNum = num;
		var iSign = num < 0 ? -1 : 1;		// Get sign of number

		// Readjust for sign
		tmpNum *= iSign;	
		
		// Adjust number so only the specified number of numbers after
		// the decimal point are shown.
		tmpNum = new Number(tmpNum).toFixed(decimalNum);
		
		//tmpNum *= Math.pow(10,decimalNum);
		//tmpNum = Math.round(Math.abs(tmpNum))
		//tmpNum /= Math.pow(10,decimalNum);
		
		
		
		
		var tmpNumStr = new String(tmpNum);

		// See if we need to strip out the leading zero or not.
		if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
			if (num > 0)
				tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
			else
				tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);

		// See if we need to put in the commas
		if (bolCommas && (num >= 1000 || num <= -1000)) {
			var iStart = tmpNumStr.indexOf(".");
			if (iStart < 0)
				iStart = tmpNumStr.length;

			iStart -= 3;
			while (iStart >= 1) {
				tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
				iStart -= 3;
			}
		}

		// See if we need to use parenthesis
		if (bolParens && num < 0)
			tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

		return tmpNumStr;		// Return our formatted string!
}

function updatePrice(){
	var minPrice = document.getElementById('minPrice').value;
	var maxPrice = document.getElementById('maxPrice').value;
	if(minPrice.trim() != '' || maxPrice.trim() != ''){
		// && parseInt(maxPrice.trim())
		if(minPrice.trim() == '0' && maxPrice.trim() == ''){
			$('allPrices').checked = true;
			return;
		}
		var tbody = document.getElementById('priceRangesTbody');
		var id = tbody.rows.length-1;
		var t = ' - ';
		var s= FormatNumber(minPrice.trim()) + '_' + FormatNumber(maxPrice.trim());
		if(minPrice.trim() != '') {
			t = '$'+ minPrice.trim();
			if(maxPrice.trim() == '') t = t + ' + ';
			else  t = t + ' - '
		}

		if( maxPrice.trim() != '') t = t + '$' + maxPrice.trim();

        // check if such price range already exists
        var duplicate = false;
        for(var indx=0;indx<id;indx++){
            var pRange = $("priceRange"+indx);
            if(pRange!=null && pRange.value==s){
                duplicate = true;
                var existingCheckbox = document.getElementById("priceRangeCheckbox"+indx);
                if(existingCheckbox!=null) existingCheckbox.checked = true;
            }
        }
        
        if(!duplicate){
            var row = tbody.insertRow(-1);
		    var cell = row.insertCell(-1);
            cell.innerHTML = '<div class="h24  lMargLeft">'+
                '<input type="checkbox"  checked value="' + id + '" name="priceRange" id = "priceRangeCheckbox"' + id + '" onClick="javascript:selectPriceRange(this)"/>&nbsp;'+
                t +
                '<span id="' +s + '"></span></div>'+
                             
                '<input type="hidden" value="'+ s +'" id="priceRange' + id + '"/>';
        }
		$('minPrice').value = '';
		$('maxPrice').value = '';
		$('allPrices').checked = false;
		ajaxSearch();
//		$('updateMinMaxBttn').disabled = 'disabled';
	}

}

function refreshGeoLocationOut() {
	$("geoLocationOut").innerHTML = $("geoLocation.city").value+', '+$("geoLocation.area").value+', '+$("geoLocation.countryName").value;
}

function updateGeoLocation(){
	setCookie("geoParams", $("geoLocation.city").value+'@'+$("geoLocation.area").value+'@'+$("geoLocation.countryId").value, null, "/", ".buydomains.com", null);
	refreshGeoLocationOut();
	ajaxSearch();
}

function escapeXml(str){
	return str.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;").replace(/'/gm,"&#39;");
}

function ajaxGeoSearch(){
		var searchParams = {pageNum:1,isInternalUser:null, geoLocation:null};

  		searchParams.isInternalUser = getCookie('YD') == '1';
        searchParams.geoLocation =  new Array();
        searchParams.geoLocation[0]=document.getElementById('geoLocation.city').innerHTML;
		searchParams.geoLocation[1]=document.getElementById('geoLocation.area').innerHTML;
		searchParams.geoLocation[2]=document.getElementById('country').value;
  		dwr.engine.beginBatch();
//		showPopupWait(100,100);

  		Search.getGeoLocation(searchParams,{
			callback:function(searchResult) {
//				hidePopupWait();
    			fillGeoTableHome(searchResult) ;
			},
			errorHandler:function(errorString, exception) {
				alert(errorString);
//				hidePopupWait();
			}

			});
  		dwr.engine.endBatch();
 }


function fillGeoTableHome(searchResult) {
  dwr.util.removeAllRows("searchResultsBody");
  var cellFuncs = [
  	function(data) {
       return '<a href="/find-premium-domains/domain-details.jsp?domain='+data.capName + '" class="domain">'+data.capDomainShorted +'</a>';
    },
	function(data) {
		if(data.isListed)
			return data.decimalPriceString;
		else return '<a href="/AddToCart.do?selectedDomains=' + data.capName + '">Request Price</a>';
    }
	];

  dwr.util.addRows("searchResultsBody", searchResult.foundDomains, cellFuncs, {
  rowCreator:function(options) {
    var row = document.createElement("tr");
    return row;
  },
  cellCreator:function(options) {
    var td = document.createElement("td");
    if(options.cellNum == 1)
       td.className="tr";
    return td;
  },
  escapeHtml:false
});
}
