// client-side functions for BuyDomains.com

// to launch Control Panel in the main window when window focus is on a pop-up.
function controlPanel() {
	win2 = opener.parent.location.href = '/login/control_panel.jsp';
}

// to launch the control panel demo
function launchDemo() {
	window
			.open(
					"/demo/index.jsp",
					"doDemo",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=680,height=750,left=10,top=10,marginwidth=0, marginheight=0");
}

// to open a pop-up window
function openW(url, name, w, h, o) {
	// options - menubar,location,resizable,scrollbars,status,toolbar (there are
	// more)
	// if you want them just list them seperated by commas
	var wlocation = "left=25,screenX=25,top=25,screenY=25";
	var windowprops = "width=" + w + ",height=" + h;
	if (o != '')
		windowprops = windowprops + "," + o + "," + wlocation;
	popup = window.open(url, name, windowprops);
	popup.focus();
}

// pop up Sweepstakes Terms & Conditions
function showSTC() {
	window
			.open(
					"/sweepstakes/frames/sweepstakesTermsO.jsp",
					"doSTC",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=500,height=450,left=100,top=100,marginwidth=0, marginheight=0");
}

// pop up Terms of Sale
function showTOS() {
	window
			.open(
					"/info/terms-of-sale-pop.jsp",
					"doTOS",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=500,height=450,left=100,top=100,marginwidth=0, marginheight=0");
}

// pop up Terms of Use
function showTOU() {
	window
			.open(
					"/info/terms-of-use-pop.jsp",
					"doTOU",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=500,height=450,left=100,top=100,marginwidth=0, marginheight=0");
}

// pop up Alerts Phase II
function showAPQ(anc) {
	window
			.open(
					"/info/alerts-phase-questions-pop.jsp#" + anc,
					"doAPQ",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=500,height=450,left=100,top=100,marginwidth=0, marginheight=0");
}

// pop up Legal Owner
function showLegalOwner() {
	window
			.open(
					"/info/legal_owner.jsp",
					"doTOS",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=450,height=400,left=100,top=100,marginwidth=0, marginheight=0");
}

// pop up Domain Agreement
function showDomainAgreement() {
	window
			.open(
					"/info/domain_agreement.jsp",
					"doDomAgree",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=450,height=400,left=100,top=100,marginwidth=0, marginheight=0");
}

// pop up Dispute Resolution
function showDisputeResolution() {
	window
			.open(
					"/info/dispute_resolution.jsp",
					"doDisRes",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=450,height=400,left=100,top=100,marginwidth=0, marginheight=0");
}

// pop up Thawte Certificate
function showThawte() {
	window
			.open(
					"https://www.thawte.com/core/process?process=public-site-seal-cert-details&public-site-seal-cert-details.code=USYESDX1",
					"doThawte",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,width=500,height=570,left=100,top=100,marginwidth=0, marginheight=0");
}

// pop up credit card verification
function showVerifyCC() {
	window
			.open(
					"/info/cc_verification.jsp",
					"doThawte",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=525,height=300,left=100,top=100,marginwidth=0, marginheight=0");
}

// rollovers for info buttons on Value Added Services
function switchImg(imgId, status) {
	var obj = document.getElementById(imgId);
	if (status == "on") {
		obj.setAttribute("src", "/images/buttons/button_info_roll.gif");
	} else {
		obj.setAttribute("src", "/images/buttons/button_info.gif");
	}
}

// pop up post-sale info
function showPostSale() {
	window
			.open(
					"/find-premium-domains/postsale_pop.jsp",
					"doPS",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=450,height=325,left=100,top=100,marginwidth=0, marginheight=0");
}

// pop up hosting plan
function showPlan(plan) {
	window
			.open(
					"/info/hosting/package_" + plan + ".jsp",
					"doPlan",
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=400,height=475,left=100,top=100,marginwidth=0, marginheight=0");
}

// used to scroll to show the error msg
function scrollToTop() {
	window.scrollTo(0, 0);
}

function isValidEmail(email) {
	var result = true;
	if (email != null && email.length > 0) {
		var emailRegxp = /^.+@.+\..{2,4}$/;
		result = emailRegxp.test(email);
	}
	return result;
}

// called up function in Offermatica test to show list of domain categories
var arrCat = new Array("Real Estate", "Health &amp; Medicine",
		"Home &amp; Garden", "Business", "Finance", "Music", "Two characters",
		"Three characters", "Four characters", "More categories");
var arrUrl = new Array("search-results.jsp?category_id=23",
		"search-results.jsp?category_id=18",
		"search-results.jsp?category_id=28",
		"search-results.jsp?category_id=2",
		"search-results.jsp?category_id=32",
		"search-results.jsp?category_id=12",
		"search-results.jsp?length_min=1&length_max=2",
		"search-results.jsp?length_min=1&length_max=3",
		"search-results.jsp?length_min=1&length_max=4",
		"other-search.jsp?searchType=category");
var strCat = "";
var counter = 1;

function showHomeCategories() {
	for ( var i = 0; i < arrCat.length; i++) {
		if (counter == 1) {
			strCat += '<tr class="rowA">\n';
		} else {
			strCat += '<tr class="rowB">\n';
		}
		strCat += '<td class="blueLeft"><a href="/find-premium-domains/'
				+ arrUrl[i] + '">' + arrCat[i] + '</a></td>\n';
		strCat += '<td class="blueRight"><a href="/find-premium-domains/'
				+ arrUrl[i]
				+ '">Take a Look</a> <span class="arrow">&#187;</span></td>\n';
		strCat += '</tr>\n';
		counter++;
		if (counter > 2) {
			counter = 1;
		}
	}
	document.write(strCat);
}

// show DHTML pop-up box
function displayInfo(box) {
	document.getElementById(box).className = "visible";
}

// hide DHTML pop-up box
function closeBox(box) {
	document.getElementById(box).className = "hidden";
}

function sendScreenInfo() {
	tracker = new Image();
	tracker.src = "/images/blank.gif?report=screenInfo" + "&availHeight="
			+ screen.availHeight + "&availWidth=" + screen.availWidth
			+ "&height=" + screen.height + "&width=" + screen.width
			+ "&colorDepth=" + screen.colorDepth + "&pixelDepth="
			+ screen.pixelDepth;
}

function updateLevel2List() {
	loadLevel2CategoryList();
	var lvl1 = document.getElementsByName('l1')[0];
	var lvl2 = document.getElementsByName('l2')[0];
	if (lvl1.options[0].selected) {
		lvl2.style.display = 'none';
	} else {
		lvl2.style.display = '';
	}
}

function loadLevel2CategoryList() {
	var lvl1 = document.getElementsByName('l1')[0];
	var lvl2 = document.getElementsByName('l2')[0];
	while (lvl2.length > 0) {
		lvl2.remove(lvl2.length - 1);
	}
	var params = '';
	if (lvl1.options[0].selected) { // unselect all the rest if all is selected.
		for ( var i = 1; i < lvl1.options.length; i++) {
			lvl1.options[i].selected = false;
		}
		return;
	} else { // build params string based on currently selected options.
		for ( var i = 1; i < lvl1.options.length; i++) {
			if (lvl1.options[i].selected)
				params = params + '&lvl1=' + lvl1.options[i].value;
		}
	}
	var data = 'type=lvl2' + params;
	var myAjax = new Ajax.Request('/servlet/finder', {
		method : 'get',
		parameters : data,
		asynchronous : false
	});
	var respXML = myAjax.transport.responseXML;
	var item = respXML.getElementsByTagName("list")[0];
	var nodes = item.getElementsByTagName("category");
	var opt = new Option("All", "", '', '');
	lvl2.options[0] = opt;
	for ( var i = 0; i < nodes.length; i++) {
		var description = nodes[i].getElementsByTagName("label")[0].firstChild.data;
		var id = nodes[i].getElementsByTagName("id")[0].firstChild.data;
		var optionName = new Option(description, id, '', '');
		lvl2.options[i + 1] = optionName;
	}
}

function loadLevel2List(level1, lvl1Name) {
	var div = document.getElementById('secondLevelLink');
	while (div.hasChildNodes()) {
		div.removeChild(div.firstChild);
	}
	var th = document.getElementById('secondlevelth');
	if (level1 == '') {
		document.getElementById('secondleveltable').style.display = 'none';
		th.firstChild.nodeValue = '';
		return;
	}
	th.firstChild.nodeValue = 'Second-Level Category';
	var data = 'type=lvl2&lvl1=' + level1;
	var myAjax = new Ajax.Request('/servlet/finder', {
		method : 'get',
		parameters : data,
		asynchronous : false
	});
	document.getElementById('secondleveltable').style.display = '';
	var respXML = myAjax.transport.responseXML;
	var item = respXML.getElementsByTagName("list")[0];
	var nodes = item.getElementsByTagName("category");

	for ( var i = 0; i < nodes.length; i++) {
		var description = nodes[i].getElementsByTagName("label")[0].firstChild.data;
		var id = nodes[i].getElementsByTagName("id")[0].firstChild.data;
		var tempLink = document.createElement('a');
		tempLink.appendChild(document.createTextNode(description));
		tempLink.setAttribute('href',
				'/find-premium-domains/search-results.jsp?l2=' + id
						+ '&category=' + description);
		div.appendChild(tempLink);
	}
	var link = document.getElementById("alllink");
	link.href = '/find-premium-domains/search-results.jsp?l1=' + level1
			+ '&category=' + lvl1Name;

}

// get array of elements of the same obj type with same class
function getElementsByClass(objArea, thisTag, thisClass) {
	if (objArea != "") {
		var obj = document.getElementById(objArea)
				.getElementsByTagName(thisTag);
	} else {
		var obj = document.getElementsByTagName(thisTag);
	}
	var arrElements = new Array();
	for (i = 0; i < obj.length; i++) {
		if (obj[i].className == thisClass) {
			arrElements[arrElements.length] = obj[i]
		}
	}
	return arrElements;
}

// hide/show objects
function hideObj(obj) {
	obj = document.getElementById(obj);
	obj.style.display = "none";
}

function showObj(obj) {
	obj = document.getElementById(obj);
	obj.style.display = "block";
}

// show/hide text box beneath link
function changeStatus(objId) {
	var objLink1 = document.getElementById(objId + "Status1");
	var objLink2 = document.getElementById(objId + "Status2");
	var objLink3 = document.getElementById(objId + "Status3");
	hideObj(objId + "Link1");
	hideObj(objId + "Link2");
	hideObj(objId + "Link3");
	showObj(objId + "Box1");
	showObj(objId + "Box2");
	showObj(objId + "Box3");
}
// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
	var rest = this.slice((to || from) + 1 || this.length);
	this.length = from < 0 ? this.length + from : from;
	return this.push.apply(this, rest);
};

function removeChildren(container) {
	if (container.hasChildNodes()) {
		while (container.childNodes.length >= 1) {
			container.removeChild(container.firstChild);
		}
	}
}

// show/hide text box beneath link
function changeArticleStatus(objId) {
	var objLink = $(objId + "Status");
	if (objLink !== null) {
		if (objLink.className == "rightArrow") {
			objLink.className = "downArrow";
			showObj(objId + "Box");
		} else {
			objLink.className = "rightArrow";
			hideObj(objId + "Box");
		}
	}
}

function pickSize(obj1) {

	if (document.widgetSize.os0.value == 0) {
		$("360x250").show();
		$("300x250").hide();
		$("180x150").hide();
		$("160x420").hide();
		$("160x600").hide();
	}

	if (document.widgetSize.os0.value == 1) {
		$("360x250").hide();
		$("300x250").show();
		$("180x150").hide();
		$("160x420").hide();
		$("160x600").hide();
	}

	if (document.widgetSize.os0.value == 2) {
		$("360x250").hide();
		$("300x250").hide();
		$("180x150").show();
		$("160x420").hide();
		$("160x600").hide();
	}

	if (document.widgetSize.os0.value == 3) {
		$("360x250").hide();
		$("300x250").hide();
		$("180x150").hide();
		$("160x420").show();
		$("160x600").hide();
	}

	if (document.widgetSize.os0.value == 4) {
		$("360x250").hide();
		$("300x250").hide();
		$("180x150").hide();
		$("160x420").hide();
		$("160x600").show();
	}

}

/**
 * Start of std cookies.js file
 */

/**
 * Read the JavaScript cookies tutorial at:
 * http://www.netspade.com/articles/javascript/cookies.xml
 */

/**
 * Sets a Cookie with the given name and value.
 * 
 * name Name of the cookie value Value of the cookie [expires] Expiration date
 * of the cookie (default: end of current session) [path] Path where the cookie
 * is valid (default: path of calling document) [domain] Domain where the cookie
 * is valid (default: domain of calling document) [secure] Boolean value
 * indicating if the cookie transmission requires a secure transmission
 */
function setCookie(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value)
			+ ((expires) ? "; expires=" + expires.toGMTString() : "")
			+ ((path) ? "; path=" + path : "; path=/")
			+ ((domain) ? "; domain=" + domain : "")
			+ ((secure) ? "; secure" : "");
}

function setCookieUnlessSet(name, value, expires, path, domain, secure) {
	if (!getCookie(name)) {
		setCookie(name, value, expires, path, domain, secure)
	}
}
function setPermCookie(name, value, path, domain, secure) {
	var date = new Date();
	date.setTime(date.getTime() + (1000 * 24 * 60 * 60 * 365 * 10)); // 10
	// years
	// from
	// now
	setCookie(name, value, date, path, domain, secure);
}

function setPermCookieUnlessSet(name, value, path, domain, secure) {
	if (!getCookie(name)) {
		setPermCookie(name, value, path, domain, secure);
	}
}

/**
 * Gets the value of the specified cookie.
 * 
 * name Name of the desired cookie.
 * 
 * Returns a string containing value of specified cookie, or null if cookie does
 * not exist.
 */
function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0)
			return null;
	} else {
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);
	if (end == -1) {
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
}

/**
 * Deletes the specified cookie.
 * 
 * name name of the cookie [path] path of the cookie (must be same as path used
 * to create cookie) [domain] domain of the cookie (must be same as domain used
 * to create cookie)
 */
function deleteCookie(name, path, domain) {
	if (getCookie(name)) {
		var d = new Date();
		document.cookie = name + "=" + ((path) ? "; path=" + path : "")
				+ ((domain) ? "; domain=" + domain : "") + "; expires="
				+ d.toGMTString();
	}
}
/**
 * End of std cookies.js file
 */

/**
 * Start of search.js
 */


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

var firstpage = 1;
var globalMonth = new Array('jan','feb','mar','apr','may','june','july','aug','sept','oct','nov','dec');

function mainPriImage(obj) {
	var mn = new Date().getMonth();
	var m = globalMonth[mn];
	if ($('priFormSpecial').hasClassName('mainPriConf')) {
		$('priFormSpecial').setStyle({
			backgroundImage: 'url(/images/backgrounds/pri-confirmation-' + m + '.jpg)',
			backgroundRepeat: 'no-repeat'
		});
	} else {
		$('priFormSpecial').setStyle({
			backgroundImage: 'url(/images/backgrounds/pri-form-' + m + '.jpg)',
			backgroundRepeat: 'no-repeat'
		});
	}
}

function checkParam(paramType){
    var params = document.getElementsByName(paramType);
    for(var i=0;i<params.length;i++){
        if(params[i].checked){
            return true;
        }
    }
    return false;
}

function checkCharacter(){
    if($("charLength").selectedIndex>0) return true;
    if($("hyphenExcluded").checked) return true;
    if($("numbersExcluded").checked) return true;
    if($("words").selectedIndex>0) return true;
    return false;
}

function initPage(){
    changeStatus('narrowSearchKey');
//	if(checkParam('tlds')){
        changeStatus('extensionKey');
//    }
    if(checkParam('priceRange') || $('requirePrice').checked){
        changeStatus('priceKey');
    }
    if(checkCharacter()){
        changeStatus('charactersKey');
    }
}

function manageCategories(event) {
	Event.stop(event);
	
	Lightview.show({
		href: 'manage-categories.jsp',
		rel: 'ajax',
		title: 'Manage Categories',
		options: {
			width: 625,
			height: 400,
			ajax: {
				onComplete: function(){ loadData(); }
			}
		}
	});
	pageTracker._trackEvent('search', 'text','Filter Results - Manage Categories - Open Lightbox');
}

function manageExtensions(event) {
	Event.stop(event);
	Lightview.show({
		href: 'tld.jsp',
		rel: 'ajax',
		title: 'Manage Extensions',
		options: {
			width: 625,
			height: 400,
			ajax: {
				onComplete: function(){ loadTldData(); }
			}
		}
	});
	pageTracker._trackEvent('search', 'text','Filter Results - Select Extension - Open Lightbox');
}

function managePrices(event) {
	Event.stop(event);
	Lightview.show({
		href: 'manage_more_prices.jsp',
		rel: 'ajax',
		title: 'Manage Prices',
		options: {
			width: 420,
			height: 150,
			ajax: {
				onComplete: function(){ loadPriceData(); }
			}
		}
	});
	pageTracker._trackEvent('search', 'text','Filter Results - Manage Prices - Open Lightbox');
}

function manageLocation(event) {
	Event.stop(event);
	Lightview.show({
		href: 'manage_location.jsp',
		rel: 'ajax',
		title: 'Manage Location',
		options: {
			width: 420,
			height: 200,
			ajax: {
				onComplete: function(){ loadGeoData(); }
			}
		}
	});
	pageTracker._trackEvent('search', 'text','Filter Results - Manage Location - Open Lightbox');
	pageTracker._trackPageview('tracking=search-results-manage-location');
}

function exactMatchLB(type, dn, price) {
	

	// alert('open');
	Lightview.show({
		href: 'exactMatch-' + type + '.jsp',
		rel: 'ajax',
		title: '<span class="dark">' + dn + ' is available for ' + price + '!</span>',
		options: {
			width: 475,
			height: 300,
			closeButton: false,
			ajax: {
				onComplete: function(){ 
					if ($('exactMatchBuy')) {
						$('exactMatchBuy').innerHTML = "Buy " + dn + " for " + price;
						$('exactMatchBuy').href = "/AddToCart.do?selectedDomains=" + dn;
					} else {
						$('exactMatchPRI').innerHTML = "Request Price for " + dn;
					}
				}
			}
		}
	});
	pageTracker._trackEvent('search', 'text','Exact Match Open ' + type + ' Lightbox: Domain Name - ' + dn + ' Price: ' + price);
	pageTracker._trackPageview('tracking=search-results-exact-buy-lightbox-click');
}

function exactMatchPRI(event) {
	Event.stop(event);
	var kw = $('exactMatchKeyword').innerHTML;
	var dn = kw.strip();
	priceRequest(event, dn);
	pageTracker._trackPageview('tracking=search-results-exact-pri-lightbox-click');
	pageTracker._trackEvent('search', 'button', 'Exact Match Lightbox PRI Request - ' + dn);
}

function exactMatchClose(type) {
	Lightview.hide();
	pageTracker._trackEvent('search', 'text','Exact Match '  + type + ' Lightbox Continue');
}

function validateFormInfo() {
    var errors = new Array();
    if ($("firstName").value.trim() == "") {
        errors[errors.length] = "Please enter a First Name.";
    }
    if ($("lastName").value.trim() == "") {
        errors[errors.length] = "Please enter a Last Name.";
    }
    if ($("phoneNumber").value.trim() == "") {
        errors[errors.length] = "Please enter a Phone Number.";
    }
	var email = $("email").value.trim();
    if (email == "") {
        errors[errors.length] = "Please enter an Email Address.";
    }
    var email2 = $("confirmEmail").value.trim();
    if (email2 == "" || email != email2) {
        errors[errors.length] = "Please enter the exact same email address in Confirm E-mail";
    }
    return errors;
}

function showFormErrors(errors) {
    var errorHtml = "";
    if (errors) {
        var length = errors.length;
        for (var i = 0; i < length; i++) {
            var error = errors[i];
            if (i >= 0) {
	            errorHtml += "<li>" + error + "</li>";
			}
        }
    }
    $("errorMessage").innerHTML = errorHtml;
    $("errorFront").show();
}

function priceRequest(event, domain) {
	Event.stop(event);
	var dn = domain;
	// var r = referrer_id;
	Lightview.show({
		href: '/priForm.do?domain=' + dn,
		rel: 'ajax',
		title: 'Price Request for <b>' + dn + '</b>',
		options: {
			width: 610,
			height: 650,
			overflow: 'hidden',
			ajax: {
				method: 'get',
				onComplete: function(){ mainPriImage(); }
			}
		}
	});
	pageTracker._trackPageview('tracking=search-results-lightbox-pri');
	pageTracker._trackEvent('Search', 'button', 'Results Table Price Request Open Lightbox - ' + dn );
}

function validateFormInfo() {
	var errors = new Array();
	var form = $('lbPRI');
	if ($F('firstName').empty()) {
		errors[errors.length] = "Please enter a First Name.";
	}
	if ($F('lastName').empty()) {
		errors[errors.length] = "Please enter a Last Name.";
	}
	if ($F('phoneNumber').empty()) {
		errors[errors.length] = "Please enter a Phone Number.";
	}
	if ($F('email').empty()) {
	  	errors[errors.length] = "Please enter an Email Address.";
	}
	if ($F('confirmEmail').empty() || $F('email') !== $F('confirmEmail')) {
		errors[errors.length] = "Please enter the exact same email address in Confirm E-mail.";
	}
	if (!form.getInputs('checkbox', 'termsAgree').pluck('checked').any()) {
		errors[errors.length] = "Please agree to Terms of Use.";
	}
	return errors;
}

function showFormErrors(errors) {
	var errorHtml = "";
	if (errors) {
		var length = errors.length;
		for (var i = 0; i < length; i++) {
			var error = errors[i];
			if (i >= 0) {
				errorHtml += "<li>" + error + "</li>";
			}
		}
	}
	$("errorMessage").innerHTML = errorHtml;
	$("errorFront").show();
}

function priceRequestSubmit(event, domain) {
	Event.stop(event);
	var dn = domain;
	var form = $('lbPRI');
	var values = form.serialize(true);
    var firstName = $F('firstName');
    var lastName = $F('lastName');
    var email = $F('email');
    var confirmEmail = $F('confirmEmail');
    var phoneNumber = $F('phoneNumber');
	if (firstName.empty() || lastName.empty() || email.empty() || confirmEmail.empty() || phoneNumber.empty() || email !== confirmEmail || !form.getInputs('checkbox', 'termsAgree').pluck('checked').any()) {
		
		var errors = validateFormInfo();
		showFormErrors(errors);
		
	} else {
		var href='/priFormSubmit.do?optional=company&optional=purchase_timeframe&optional=reason_for_interest&domain=' 
			+ dn +'&requestPriceValidation=true&firstname='+ encodeURIComponent(firstName) 
			+'&lastname='+ encodeURIComponent(lastName) 
			+'&email='+ encodeURIComponent(email) 
			+'&confirmEmail='+ encodeURIComponent(confirmEmail) 
			+'&phone='+ encodeURIComponent(phoneNumber) 
			+'&country='+encodeURIComponent($F('country'))
			+'&mailinglist='+encodeURIComponent($F('mailinglist'))
			+'&autofill='+encodeURIComponent($F('autofill'))
			+'&terms_agree='+encodeURIComponent($F('termsAgree'))
			+'&channel='+encodeURIComponent($F('channel'))
			+'&source='+encodeURIComponent($F('source'))
			+'&medium='+encodeURIComponent($F('medium'))
			+'&campaign='+encodeURIComponent($F('campaign'))
			+'&seo='+encodeURIComponent($F('seo'))
			+'&sem='+encodeURIComponent($F('sem'));
		Lightview.show({
		href: href,
		rel: 'ajax',
		title: 'Price Request for <b>' + dn + '</b>',
		options: {
			width: 610,
			height: 500,
			ajax: {
				method: 'post',
				// parameters: Form.serialize('domainForm');, // the parameters
				// from the form
				onComplete: function(){ mainPriImage(); }
			}
		}
		});
		pageTracker._trackPageview('tracking=search-results-lightbox-pri-complete');
		pageTracker._trackEvent('Search', 'button', 'Price Request Lightbox - Submit PRI for ' + dn);
	}
}

function downloadList(event) {
	Event.stop(event);
	Lightview.show({
		href: 'download-results.jsp',
		rel: 'ajax',
		title: 'Download a List of Your Search Results',
		options: {
			width: 600,
			height: 500,
			ajax: {
				onComplete: function(){ document.getSearchResultsForm.firstName.focus(); }
			}
        }
	});
	pageTracker._trackPageview('tracking=search-results-download-results');
	pageTracker._trackEvent('Search', 'text', 'Download Search');
}

function disableButton(obj1) {
	var btnName = obj1;
	$(btnName + '-link').hide();
	$(btnName + '-post').show();
}



function submitSearchForm(){
	if(validateKeywords($('searchKeywordsForm'))) {
		$('exactMatch_SW').innerHTML = 'false';
		$('searchKeywordsForm').submit();
		pageTracker._trackEvent('search', 'text', 'Filter Results - Reset');
	}			
}

function updateTaxonomies(taxList){
	var l1s = new Array();
	var tldsBody = $('l1body');
 	dwr.util.removeAllRows(tldsBody);
 	for(var i=0; i < taxList.length; i++){
 		var l1 = taxList[i].l1;

 		var row = tldsBody.insertRow(-1);
 		var cell = row.insertCell(-1);
 		var sb = new Array();
 		sb.push('<div class="sMargLeft">');
		sb.push('<input type="checkbox" checked value="' + l1.id + '" name="categoryL1"');
		sb.push('onclick="selectL1Checkbox(this)" />&nbsp;'+ l1.label);
		sb.push('<span id="catl1_'+l1.id +'">()</span>');
		sb.push('</div>');
		if(taxList[i].level2.length > 0)
			sb.push('<div class="subCat">'+ taxList[i].level2.length + ' sub-categories selected</div>');
			sb.push('<input type="hidden" value="'+ l1.id + '" id="l1_'+i+'" />');
			sb.push('<input type="hidden" value="'+ l1.label + '" name="l1_name" />');
			if(taxList[i].level2 != null && taxList[i].level2.length > 0)
				for(var j=0; j < taxList[i].level2.length; j++){
					sb.push('<input type="hidden" value="'+ taxList[i].level2[j] + '" name="l2_'+ l1.id +'" />');
		}
		// if(i == 0)alert(sb.join(' '));
		cell.innerHTML = sb.join(' ');
 	}
 	$('l1Size').value = taxList.length;
	$('allCategory').checked = false;
	ajaxSearch();
	$('homePageCategoryHeader').innerHTML = 'Premium Domain Name Search Results';				
}

function addNewTld(tlds){
 	var tldsBody = $('tldsBody');
 	dwr.util.removeAllRows(tldsBody);
 	var row;
 	for(var i=0; i < tlds.length;i++){
 		var tld = tlds[i];

 		var sHtml = '<div class="h24 lMargLeft"><input type="checkbox" checked value="'+tld +'" name="tlds" onclick="selectTld(this)"/>&nbsp;' + tld +
 			'&nbsp;<span id="tld_'+ tld.substring(1) + '"></span></div>';
 		var row = tldsBody.insertRow(-1);
 		row.name = 'tr_tld';
 		var cell = row.insertCell(-1);
 		cell.innerHTML = sHtml;
 	}
 	if(tlds.length > 0){
 		$('allTlds').checked = false;
 		ajaxSearch();
 	}
}

var sortHeaders = new Array('domain', 'categoryL1', 'price');

function sort(fieldName){
	$("sort_by").value = fieldName;
	
	if($(fieldName == '' || "sort_direction").value == 'asc'){
		$("sort_direction").value = 'desc'
	} else {
		$("sort_direction").value = 'asc';
	}
	
	for(var i=0; i < sortHeaders.length; i++){
		var span = $('sort'+sortHeaders[i]);
		if(fieldName == sortHeaders[i]){
			if($("sort_direction").value == 'desc') {
				span.innerHTML = '<img src="/images/buttons/arrow_sort_down.gif" width="11" height="6" border="0"/>';
			} else {
				span.innerHTML = '<img src="/images/buttons/arrow_sort_up.gif" width="11" height="6" border="0"/>';
			}
 		} else {
			dwr.util.setValue('sort'+sortHeaders[i], '');
		}
	}
	ajaxSearch();
	pageTracker._trackEvent('Search', 'text', 'Sort Header - ' + $("sort_by").value);
}



function validateKeywords(form){

var kform = $('searchKeywordsForm');
var kinput = kform['keywords'];
var kw = $F(kinput);

$('errorSearchKeywords').innerHTML = '';
$('errorSearchKeywords').hide();
kw = kw.replace(/^\s+|\s+$/, '');
if(kw == ''){
	$('errorSearchKeywords').innerHTML = 'Keywords field is required';
	$('errorSearchKeywords').show();
	return false;
}
var regexp = /^[0-9a-zA-Z\-]+([.][a-zA-Z]+){0,2}$/;
var pattern = /,|\s/;

var keywords = kw.split(pattern);
for(var i=0; i < keywords.length;i++){
	var s = keywords[i].replace(/^\s+|\	s+$/, '');
	if(s != '' && !regexp.exec(s)){
		$('errorSearchKeywords').innerHTML = 'Wrong input format.';
		$('errorSearchKeywords').show();
		return false;
	}
}
return true;
}

// get array of elements of the same obj type with same class
function getElementsByClass(objArea, thisTag, thisClass) {
if (objArea != "") {
	var obj = $(objArea).s(thisTag);
} else {
	var obj = document.getElementsByTagName(thisTag);
}
var arrElements = new Array();
for (i = 0; i < obj.length; i++) {
	if(obj[i].className == thisClass) {
		arrElements[arrElements.length] = obj[i]
	}
}
return arrElements;
}

function validateExactMatchSearch(form){
var em = $("searchString").getValue();
$('errorExactMatchAO').innerHTML = '';
$('errorExactMatchAO').hide();
em = em.replace(/^\s+|\s+$/, '');
if(em == ''){
	$('errorExactMatchAO').innerHTML = 'Please enter a desired domain name!';
	$('errorExactMatchAO').show();
	return false;
}
var regexp = /^[0-9a-zA-Z\-]+([.][a-zA-Z]+){0,2}$/;
var pattern = /,|\s/;

var keywords = em.split(pattern);
for(var i=0; i < keywords.length;i++){
	var s = keywords[i].replace(/^\s+|\	s+$/, '');
	if(s != '' && !regexp.exec(s)){
		$('errorExactMatchAO').innerHTML = 'Please correctly complete the domain name format!';
		$('errorExactMatchAO').show();
		return false;
	}
}
pageTracker._trackPageview('tracking=search-assistedoffer-button-onsubmit');
return true;
}

function validateExactMatchSearch2(form){
var em = $("searchString2").getValue();
$('errorExactMatchAO2').hide();
em = em.replace(/^\s+|\s+$/, '');
if(em == ''){
	$('aoError').innerHTML = 'Please enter a desired domain name!';
	$('errorExactMatchAO2').show();
	return false;
}
var regexp = /^[0-9a-zA-Z\-]+([.][a-zA-Z]+){0,2}$/;
var pattern = /,|\s/;

var keywords = em.split(pattern);
for(var i=0; i < keywords.length;i++){
	var s = keywords[i].replace(/^\s+|\	s+$/, '');
	if(s != '' && !regexp.exec(s)){
		$('aoError').innerHTML = 'Please correctly complete the domain name format!';
		$('errorExactMatchAO2').show();
		return false;
	}
}
var selectedTLDs = $("selectTLDs").getValue();
pageTracker._trackEvent('Search', 'form', 'Asssisted Offer - ' + keywords + ' - '+ selectedTLDs);
return true;
}

function clickSearch(){
if (validateKeywords($('searchKeywordsForm'))) {
	$('exactMatch_SW').innerHTML = 'false';
	var radioSelected = document.searchKeywordsForm.keyword_s[0].value;
	for (var i = 0; i < document.searchKeywordsForm.keyword_s.length; i++) {
		if (document.searchKeywordsForm.keyword_s[i].checked) {
			radioSelected = document.searchKeywordsForm.keyword_s[i].value;
		}
	}
	ajaxSearch();
	pageTracker._trackEvent('Search', 'form', 'Refine Search - ' + radioSelected + ' with ' + $('keywords').value);
}
return false;
}

var afternicURL = "<%=afternicURL%>";

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='';
	var selectedOption = $('charLength').options[$('charLength').selectedIndex].value;
	if (selectedOption == 0)
	pageTracker._trackEvent('Search', 'dropdown', 'Filter Results - Characters - Length - all  characters');
	else
	ajaxSearch();
	pageTracker._trackEvent('Search', 'dropdown', 'Filter Results - Characters - Length - max. ' +  selectedOption + '  characters');
}

function changeWordLength(){
	var selectedOption = $('words').options[$('words').selectedIndex].value;
	if (selectedOption == 0)
	selectedOption = "All";
	ajaxSearch();
	pageTracker._trackEvent('Search', 'dropdown', 'Filter Results - Characters - Words - '+  selectedOption + '  words');
}


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

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

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 = $(name);
	var sel = $('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;
		pageTracker._trackEvent('search', 'check', 'Filter Results - Extension - ' + checkbox.value + ' checked');
	} else {
		var checkAll = true;
		var chks = $$('input[name="tlds"]');
		for(var i=0; i < chks.length;i++)
			if(chks[i].checked) {
				checkAll = false;
				break;
			}
		$('allTlds').checked = checkAll;
		pageTracker._trackEvent('search', 'check', 'Filter Results - Extension - ' + checkbox.value + ' un-checked');
	}
	ajaxSearch();
}

function selectPriceRange(checkbox){
	if(checkbox.checked){
		$('allPrices').checked = false;
		if (checkbox.value == '') 
		pageTracker._trackEvent('search', 'check', 'Filter Results - Price - Priced names only - checked');
		if (checkbox.value == '0') 
		pageTracker._trackEvent('search', 'check', 'Filter Results - Price - 0 - $1000 checked'); 
		if (checkbox.value == '1')
		pageTracker._trackEvent('search', 'check', 'Filter Results - Price - $1001 - $5000 checked');
		if (checkbox.value == '2')
		pageTracker._trackEvent('search', 'check', 'Filter Results - Price - $5001 plus checked');
		// $('requirePrice').checked = false;
	} else {
		if (checkbox.value == 'Y') 
		pageTracker._trackEvent('search', 'check', 'Filter Results - Price - Priced names only - un-checked');
		if (checkbox.value == '0') 
		pageTracker._trackEvent('search', 'check', 'Filter Results - Price - 0 - $1000 un-checked'); 
		if (checkbox.value == '1')
		pageTracker._trackEvent('search', 'check', 'Filter Results - Price - $1001 - $5000 un-checked');
		if (checkbox.value == '2')
		pageTracker._trackEvent('search', 'check', 'Filter Results - Price - $5001 plus un-checked');
		var checkAll = true;
		var chks = $$('input[name="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 = $$('input[name="priceRange"]');
		for(var i =0; i < chks.length;i++){
			chks[i].checked = false;
		}
	}else{
		$('allPrices').checked = true;
	}
	ajaxSearch();
}

function selectAllPrices(){
	var chks = $$('input[name="priceRange"]');
	if($('allPrices').checked){
		$('requirePrice').checked = false;
		for (var i = 0; i < chks.length; i++) {
  			chks[i].checked = false;
  		}
  		$('minPrice').value = '';
  		$('maxPrice').value = '';
  		ajaxSearch();
		pageTracker._trackEvent('search', 'check', 'Filter Results - Price - all prices checked');
	} else {
	pageTracker._trackEvent('search', 'check', 'Filter Results - Price - all prices un-checked');
	}
}

function alreadyAdded(tld){
	var tlds = $$('input[name="tlds"]');
	for(var i =0; i < tlds.length;i++)
		if(tlds[i].value == tld) return true;
	return false;
}
function selectAllTlds(){
	var chks = $$('input[name="tlds"]');
	if($('allTlds').checked){
		for (var i = 0; i < chks.length; i++) {
  			chks[i].checked = false;
  		}
  		ajaxSearch();
		pageTracker._trackEvent('search', 'check', 'Filter Results - Extension - all TLDs checked');
	} else {
		pageTracker._trackEvent('search', 'check', 'Filter Results - Extension - all TLDs un-checked');
	}

}


function selectL1Checkbox(checkbox){
	if(checkbox.checked) {
		$('allCategory').checked=false;
		} else {
		var checkAll = true;
		var chks = $$('input[name="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 = $$('input[name="categoryL1"]');
	if($('allCategory').checked){
  		for (var i = 0; i < chks.length; i++) {
  			chks[i].checked = false;
  		}
		ajaxSearch();
		$('homePageCategoryHeader').innerHTML = 'Premium Domain Name Search Results';
		pageTracker._trackEvent('Search', 'check', 'Filter Results - Categories - All Checked');
	} else {
		pageTracker._trackEvent('Search', 'check', 'Filter Results - Categories - All Un-Checked');
	}

}

var tdClassNames = new Array('similar', 'domain', 'category', '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').innerHTML == 'false'){
                $('success').hide();
				$('exRegister').show();
                $('nomatch').hide();
				$('featuredDomains').show();
				$('assistedOffer').show();
				$('exactMatchCallout_KW').innerHTML = domains[i].capName+'&nbsp;';
                $('exactMatchCallout_P').innerHTML = '&nbsp;for&nbsp;'+domains[i].priceAsMoneyString + '&#42;';
				$('exactMatchCalloutBuyNow_btn').innerHTML = "<a onclick='pageTracker._trackPageview(\"tracking=search-register-exact-button\");' href='http://buydomainsregistration.com/domain-registration/register.aspx?sld="+domains[i].nameWithoutTld+'&tld='+domains[i].tld+"'><img src='/images/premium/mdg/btn_registerNow.jpg' border='0' style='padding-right:10px' /></a>";
				$('exactMatch_SW').innerHTML = 'true';
				pageTracker._trackEvent('Search', 'onload', 'Exact Match - Register Now');
            }
        }
    }
}


function fillTable(searchResult) {
    dwr.util.removeAllRows("searchResultsBody");
	
    if (searchResult.numFound > 0) {
        var cellFuncs = [
            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 to' + dwr.util.escapeHtml(data.name) + '" /></a>';
            },
            function(data) {
                if (data.isExactMatch) {
                    return '<a href="/find-premium-domains/domain-details.jsp?domain='+data.capName + '">'+data.capName +'</a>' + '<span>- exact match</span>';
                } else {
					bannerNoExactMatch();
					return '<a href="/find-premium-domains/domain-details.jsp?domain='+data.capName + '">'+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) {
                if (data.isListed)
                    return data.priceAsMoneyString;
                else return '&nbsp;';
            },
            function(data) {
                if (data.isListed) {
                    if (data.isExactMatch && $('exactMatch_SW').innerHTML == 'false') {
                        $('success').show();
						$('exRegister').hide();
				        $('nomatch').hide();
						$('featuredDomains').hide();
						$('assistedOffer').hide();
						$('exactMatchKeyword').innerHTML = data.capName + '&nbsp;';
						$('exactMatchPrice').innerHTML = '&nbsp;for&nbsp;' + data.priceAsMoneyString;
                        $('exactMatchRegister').hide();
						$('exactMatchAdd').innerHTML = '<a onclick="javascript:pageTracker._trackPageview(\'tracking=search-exact-buynow-button\');" href="/AddToCart.do?selectedDomains=' + dwr.util.escapeHtml(data.name) + '"/>Add to Cart</a>';
						$('exactMatchAdd').show();
						$('exactMatchRequest').hide();
						$('exactMatch_SW').innerHTML = 'true';
						$('priceAsterisk').innerHTML = '';
						pageTracker._trackEvent('Search', 'onload', 'Exact Match - '+ data.capName);
                    }
                    return '<a href="/AddToCart.do?selectedDomains=' + dwr.util.escapeHtml(data.name) + '" onclick="pageTracker._trackPageview(\'tracking=search-buynow-' + dwr.util.escapeHtml(data.name) + '-button\');"><img src="/images/buttons/addToCart.png" width="92" height="19" border="0" alt="Add To Cart"/></a>';
                } else {
                    if (data.isExactMatch && $('exactMatch_SW').innerHTML == 'false') {
                        $('success').show();
						$('exRegister').hide();
				        $('nomatch').hide();
						$('featuredDomains').hide();
						$('assistedOffer').hide();
						$('exactMatchKeyword').innerHTML = data.capName + '&nbsp;';
						$('exactMatchPrice').innerHTML = '';
						$('exactMatchRegister').hide();
						$('exactMatchAdd').hide();
						$('exactMatchRequest').innerHTML = '<a onclick="javascript:pageTracker._trackPageview(\'tracking=search-exact-pri-button\');" href="/AddToCart.do?selectedDomains=' + dwr.util.escapeHtml(data.name) + '"/>Request Price</a>';
						$('exactMatchRequest').show();
						$('exactMatch_SW').innerHTML = 'true';
						$('priceAsterisk').innerHTML = '';
						pageTracker._trackEvent('Search', 'onload', 'Exact Match - '+ data.capName);
                    }
                    return '<a href="#" onclick="priceRequest(event, \'' + dwr.util.escapeHtml(data.name) + '\')" rel="nofollow"><img src="/images/buttons/requestPrice.png" width="92" height="19" border="0" alt="Request Price"/></a>';
                }
            }
        ];

        dwr.util.addRows("searchResultsBody", searchResult.foundDomains, cellFuncs, {
			rowCreator:function(options) {
				var row = new Element('tr');
                if (options.rowIndex % 2 == 0) {
					row.className = "alternate";
				} else {
					row.className = "";
				} return row;
            },
            cellCreator:function(options) {
                var td = new Element('td');
                td.className = tdClassNames[options.cellNum];
				// alert(td.className);
                return td;
            },
            escapeHtml:false
        });
    } else {
        // Update the top pane separately here if there were no search results
		// produced by this search.
        bannerNoExactMatch();
    }
	var kform = $('searchKeywordsForm');
	var kinput = kform['keywords'];
	var kw = $F(kinput);
}


function bannerExactMatch(data) {
    if ($('exactMatch_SW').innerHTML == 'false') {
        $('success').hide();
		$('exRegister').show();
        $('nomatch').hide();
		$('featuredDomains').hide();
		$('assistedOffer').hide();
        $('exactMatchKeyword').innerHTML = data.capName + '&nbsp;';
    }
}

function bannerNoExactMatch() {
    if ($('exactMatch_SW').innerHTML == 'false') {
        $('success').hide();
		$('exRegister').hide();
		$('nomatch').show();
		$('featuredDomains').show();
		$('assistedOffer').show();
		var kform = $('searchKeywordsForm');
		var kinput = kform['keywords'];
		var kw = $F(kinput);

        var text;
		// keyword exists
        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){
	var ref1Ids = new Array();
  	var ref2Ids = new Array();
  	var chks = $$('input[name="categoryL1"]');
  	for (var i = 0; i < chks.length; i++)
			if(chks[i].checked) {
				var l2s = $$('input[name="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 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, requirePrice:null, allPriceRanges:null,origTldList:null,words:null };
    dwr.util.getValues(searchParams);
    searchParams.requirePrice = ($('requirePrice').checked);
    searchParams.tlds = getDataFromCheckboxes($$('input[name="tlds"]'));
    searchParams.origTldList = getOrigTldList($$('input[name="tlds"]'));
    searchParams.origCatL1List = getOrigCategoryL1List($$('input[name="l1_name"]'));
    searchParams.isInternalUser = getCookie('YD') == '1';
    searchParams.cartId = getCookie('cart_id');
    fillTaxonomyConstraints(searchParams);
    searchParams.priceRange = getPriceRanges();   
    searchParams.allTlds = $('allTlds').checked;
    searchParams.allPriceRanges = $('allPrices').checked;

	var kform = $('searchKeywordsForm');
	var kinput = kform['keywords'];
	
	searchParams.keywords = $F(kinput);
	// searchParams.keywords =
	// document.searchKeywordsForm.keywords.value.toLowerCase();
	
	searchParams.keyword_s = 'contains';
    var radios = $$('input[name="keyword_s"]');
    for(var i=0; i <radios.length;i++)
        if(radios[i].checked) searchParams.keyword_s=radios[i].value;
    if ($('useGeoLocation').checked) {
        searchParams.geoLocation=getGeoLocationArray();
    }
// 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){
	$('fdBody').remove();
	if(featuredDomains.length > 0){
		
		var container = $('fdContainer');
		var tbody = new Element('tbody', { 'id': 'fdBody' });
		var row = new Element('tr');
       	
		var count = featuredDomains.length;
		for(var i = 0; i < count; i++){
			var column = new Element('td');
			var tlink =  new Element('a', { href: '/AddToCart.do?selectedDomains=' + featuredDomains[i].capName, 'onclick': 'pageTracker._trackPageview("tracking=search-featured-'+ featuredDomains[i].capName +'-click");' });
			var blink =  new Element('a', { href: '/AddToCart.do?selectedDomains=' + featuredDomains[i].capName, 'onclick': 'pageTracker._trackPageview("tracking=search-featured-'+ featuredDomains[i].capName +'-button-click");' });
			var br = new Element('br');
			if (featuredDomains[i].isListed) {
				var btn =  new Element('img', { src: '/images/buttons/addToCart.png', 'class': 'buybutton', border: '0', width: '92', height: '19' });
			} else {
				var btn =  new Element('img', { src: '/images/buttons/requestPrice.png', 'class': 'buybutton', border: '0', width: '92', height: '19' });
			}
			
			tlink.appendChild(document.createTextNode(featuredDomains[i].capName));
			blink.appendChild(btn);
			
			column.appendChild(tlink);
			column.appendChild(br);
			column.appendChild(blink);
			
			row.appendChild(column);
		}
		
		tbody.appendChild(row);
		container.appendChild(tbody);
	}
}

function ajaxSearch1(pageNum) {
    var searchParams = createSearchParameters();
    searchParams.ajaxSearch = true;
    searchParams.pageNum = pageNum;
    var pageSizeSel = $('pageSizeSel1');
    searchParams.pageSize = pageSizeSel.options[pageSizeSel.selectedIndex].value;

    for (var key in searchParams) {
        var value = searchParams[key];
        if (!value) {
            delete searchParams[key];
        } else if (typeof value == 'string' && value.length == 0) {
            delete searchParams[key];
        } else if (typeof value == 'array') {
            for (var i = 0; i < value.length; i++) {
                if (typeof value[i] == 'string' && value[i].length == 0) {
                    value[i] = undefined;
                }
            }
            value = value.compact();
            if (value.length == 0) {
                delete searchParams[key];
            }
        }
    }

    var queryParams = Object.toQueryString(searchParams);

    $("popupWait").show();
    new Ajax.Request('/find-premium-domains/search-results/search-results-all.jsp?' + queryParams, {
      method: 'get',
      onSuccess: function(transport) {
          $("popupWait").hide();
          detachDomLoadedListeners();
          var responseText = transport.responseText.replace(/[\n\r]/g, "");
          if (Prototype.Browser.IE) {
              responseText = responseText.replace(/<script/g, "<script defer");
          }

          updateElementFromResponse(responseText, 'success', 'exact match - success: content');
          updateElementFromResponse(responseText, 'exRegister', 'exact match - register: content');
          updateElementFromResponse(responseText, 'nomatch', 'no exact match callout: content');
          updateElementFromResponse(responseText, 'featuredDomains', 'featured domains: content');
          updateElementFromResponse(responseText, 'searchResultsLeft', 'search results left: content');
          updateElementFromResponse(responseText, 'searchResultsRightInternal', 'search result right internal: content');

          $('success').hide();
          $('nomatch').show();
          $('featuredDomains').show();
          $('assistedOffer').show();
          $('exRegister').hide();

          document.fire('dom:loaded');
      },
      onFailure: function(transport) {
          $("popupWait").hide();
      }
    });
}

function updateElementFromResponse(responseText, elementId, elementMarker) {
    var regexp = new RegExp('<!-- ' + elementMarker + ' -->(.*)<!-- //' + elementMarker + ' -->', 'g');
    if (responseText.match(regexp)) {
        var div = document.createElement('div');
        div.innerHTML = RegExp.$1;
        $(elementId).innerHTML = '';
        $(elementId).appendChild(div);
    }
}

/* Not used  any more. Obsolete. */
function ajaxSearch1Old(pageNum){
    var searchParams = createSearchParameters();
    searchParams.pageNum = pageNum;
    var pageSizeSel = $('pageSizeSel1');
    searchParams.pageSize = pageSizeSel.options[pageSizeSel.selectedIndex].value;
    $('currentpage').value = pageNum.toString();
    var pd, domainName;
    dwr.engine.beginBatch();
    $("popupWait").show();

    Search.getResults(searchParams,{
        callback:function(searchResult) {
            $("popupWait").hide();
            fillDomainsToRegister(searchResult);
            fillTable(searchResult);
            fillRelatedKeywords(searchResult.relatedWords);
            fillPagination(searchResult);
			fillFeaturedDomains(searchResult.featuredDomains);
            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);
            $("popupWait").hide();
        }

        });
        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 = $('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="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 = $('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 = $("requirePrice");
    var priceElem = $("_require_price");
    if(reqPriceChbx && reqPriceChbx.checked){        
        if(priceElem) priceElem.innerHTML = '('+numFound+')';
    }
     else{
        if(priceElem) priceElem.innerHTML = '';
    }
 	var chks = $$('input[name="priceRange"]');
  	for (var i = 0; i < chks.length; i++) {
  		var facet = $('priceRange'+chks[i].value).value;// hidden
  		var elem = $(facet);
  		if(elem) elem.innerHTML = '';
  	}

 	for(var i =0; i < facets.length; i++){
 		var elem = $(facets[i].name);
 		if(elem)
 			elem.innerHTML = '('+facets[i].value+')';
 	}
 	facets = searchResult.tldFacets;
 	var chks = $$('input[name="tlds"]');
	for(var i =0; i < chks.length;i++){
		var tld = 'tld_'+chks[i].value.substring(1);
 		var elem = $(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 = $(tld);
 		if(elem)
 			elem.innerHTML = '('+facet.value+')';
 		else{
 			// add new tld
 			if(facet.name.indexOf('.') > -1 && !$('allTlds').checked){
 				var tldsBody = $('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="selectTld(this)"/>&nbsp;' + facet.name +
	 				'&nbsp;<span id="tld_'+ facet.name.substring(1) + '">('+facet.value+')</span></div>';
 			}
 		}
 	}

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

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

 }


 function getPriceRanges(){
 	var ranges = new Array();
 	var chks = $$('input[name="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]=$('geoLocationCity').value;
		result[1]=$('geoLocationArea').value;
		result[2]=$('geoLocationCountryId').value;
	 	return result;
 }

 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 getOrigCategoryL1List(inputs){
	  var catNames = new Array();
	  	var count=0;
	  	for (var i = 0; i < inputs.length; i++)
				catNames[count++]=inputs[i].value;
		return catNames;
  }
 
  function getDownloadParameters() {
      var parameters = '';
      var keywordsInput = document.searchKeywordsForm.keywords;
      if(keywordsInput.value.trim() != ''){
          var radios =  $$('input[name="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 = $('minPrice').value.trim();
      if(minPrice != '') parameters = parameters + '&price_low='+minPrice;
      var maxPrice = $('maxPrice').value.trim();
      if(maxPrice != '') parameters = parameters + '&price_high='+maxPrice;
      var requirePrice = $('requirePrice').value.trim();
      if(requirePrice != '') parameters = parameters + '&require_price='+requirePrice;
      var charLen = $('charLength');
      if(charLen.selectedIndex > 0)
          parameters = parameters + '&length_max='+charLen.options[charLen.selectedIndex].value;
      if($("hyphenExcluded").checked)
          parameters = parameters + '&exclude_hyphens=Y';
      if($("numbersExcluded").checked)
          parameters = parameters + '&exclude_numbers=Y';
      var chks = $$('input[name="tlds"]');
       for (var i = 0; i < chks.length; i++) {
           if(chks[i].checked) {
               parameters = parameters + '&t=' + chks[i].value;
           }
       }
     chks = $$('input[name="categoryL1"]');
       for (var i = 0; i < chks.length; i++) {
           if(chks[i].checked) {
               parameters = parameters + '&l1=' + chks[i].value;
           }
       }
      if ($('useGeoLocation').checked) {
          parameters = parameters + '&geo=Y';
      }
     return parameters;
  }

function buildDownloadLink(){
	var parameters = getDownloadParameters();
    $('downloadlink').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 = $('pageSizeSel2').selectedIndex = sel.selectedIndex;
		document.searchKeywordsForm.pageSize.value = sel.options[sel.selectedIndex].value;
		pageTracker._trackEvent('Search', 'dropdown', ' Results Per page - ' +  document.searchKeywordsForm.pageSize.value +' - Top');
		ajaxSearch();
	}

	function changePageSize2(sel){
 		var otherSel = $('pageSizeSel1').selectedIndex = sel.selectedIndex;
 		document.searchKeywordsForm.pageSize.value = sel.options[sel.selectedIndex].value;
		ajaxSearch();
		pageTracker._trackEvent('Search', 'dropdown', ' Results Per page - ' +  document.searchKeywordsForm.pageSize.value +' - Bottom');
	}


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 = $('minPrice').value;
	var maxPrice = $('maxPrice').value;
	if(minPrice.trim() != '' || maxPrice.trim() != ''){
		// && parseInt(maxPrice.trim())
		if(minPrice.trim() == '0' && maxPrice.trim() == ''){
			$('allPrices').checked = true;
			return;
		}
		var tbody = $('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 = $("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 = $("geoLocationCity").value+', '+$("geoLocationArea").value+', '+$("geoLocationCountryName").value;
}

function updateGeoLocation(){
	setCookie("geoParams", $("geoLocationCity").value+'@'+$("geoLocationArea").value+'@'+$("geoLocationCountryId").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]=$('geoLocationCity').innerHTML;
		searchParams.geoLocation[1]=$('geoLocationArea').innerHTML;
		searchParams.geoLocation[2]=$('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="noLineLink" onclick="pageTracker._trackPageview(\'home-page-geo-domains-text-link-' + data.capName + '\');">'+ data.capDomainShorted +'</a>';
    },
	function(data) {
		if(data.isListed)
			return '<a href="/AddToCart.do?selectedDomains=' + data.capName + '" class="noLineLink" onclick="pageTracker._trackPageview(\'home-page-geo-domains-price-link-' + data.capName + '\');">' + data.decimalPriceString + '</a>';
		else return '<a href="/AddToCart.do?selectedDomains=' + data.capName + '" class="noLineLink" onclick="pageTracker._trackPageview(\'home-page-geo-domains-price-link-' + 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.style.align="right";
	td.style.textAlign="right";
    return td;
  },
  escapeHtml:false
});
}

// lightboxes
function updateTaxonomies2(){
	var taxonomies = new Array();
	for(var i=0; i < level1.length;i++){
		if(level1[i].moved){
			taxonomies.push(new tmpTaxonomy(level1[i], new Array()));
		}
		for(var j=0; j < level1[i].level2.length; j++){
			var lvl2 = level1[i].level2[j];
			if(lvl2.moved){
				var l1;
				var found = false;
				for(var k=0; k < taxonomies.length; k++){
					if(taxonomies[k].l1.id == lvl2.parentId){
						found = true;
						taxonomies[k].level2.push(lvl2.id);
					}
				}
				if(!found){
					taxonomies.push(new tmpTaxonomy(getL1(lvl2.parentId), new Array(lvl2.id)));
				}
			}
		}
	}
	updateTaxonomies(taxonomies);
	Lightview.hide();
}

function getMainPageData(){
	if($('allCategory').checked) return;
	var l1size = $('l1Size').value;
	var catL1List = $$('input[name="categoryL1"]');
	for(var i=0; i < catL1List.length;i++){
		if(!catL1List[i].checked)continue;
		var l1id = catL1List[i].value;
		var l2s = $$('input[name="l2_' + l1id + '"]');
		var l1 = getL1(l1id);
		if(l1 != null){
			if(l2s.length == 0)
				l1.moved = true;
			else{
				for(var j=0; j < l2s.length;j++){
					var l2 = getL2(l2s[j].value);
					l2.moved = true;
				}
			}
		}
	}
}

function loadData(){
	handleEvents();
	var searchParams = {};
	dwr.util.getValues(searchParams);
	searchParams.isInternalUser = getCookie('YD') == '1';
	searchParams.cartId = getCookie('cart_id');
	searchParams.tlds = getDataFromCheckboxes($$('input[name="tlds"]'));
	searchParams.priceRange = getPriceRanges($$('input[name="priceRange"]'));
	
	var kform = $('searchKeywordsForm');
	var kinput = kform['keywords'];
	searchParams.keywords = $F(kinput);
	
	searchParams.hyphenExcluded = $('hyphenExcluded').checked;
	searchParams.numbersExcluded= $('numbersExcluded').checked;
	searchParams.keyword_s='contains';
	var radios = $$('input[name="keyword_s"]');
	for(var i=0; i <radios.length;i++)
		if(radios[i].checked) searchParams.keyword_s=radios[i].value;
	dwr.engine.beginBatch();
	
	Search.getTaxonomyCounts(searchParams,{
		callback:function(searchResults) {
			for(var i=0; i < level1.length;i++){
				level1[i].toBeDisplayed = false;
				for(var k=0; k < level1[i].level2.length;k++)level1[i].level2[k].toBeDisplayed = false;
			}
			var l1Facets = searchResults.l1Facets;
			l1Facets.each(function(lf1, index){
				for(var i=0; i < level1.length;i++)
					if(level1[i].id == lf1.name){level1[i].toBeDisplayed=true;}
			});
			var l2Facets = searchResults.l2Facets;
			l2Facets.each(function(lf2, index){
				var l2 = getL2(lf2.name);
				if(l2 != null) l2.toBeDisplayed=true;
			});
			getMainPageData();
			createTaxonomyTree();
			createSelectedTaxTree();
		},
		errorHandler:function(errorString, exception) { 
			// alert(errorString);
			// hidePopupWait();
		}
		
		});
		dwr.engine.endBatch();
}

function addAllSelectedTlds(from, to){
	// var selectedTlds = $('selectedTlds');
	var from = $(from);
	var to = $(to);
	var len = to.options.length;
	to.show();
	for(var i = from.options.length-1;i>=0;i--){
			var optionName = new Option(from.options[i].value, from.options[i].value, '', '');
			to.options[len++] = optionName;
			optionName.className = 'largeText';
			from.options[i].remove();
	}
	pageTracker._trackEvent('Search', 'button', 'Manage Extensions Lightbox - Add All Tlds');
}

function addSelectedTlds(from, to){
	// var selectedTlds = $('selectedTlds');
	var from = $(from);
	var to = $(to);
	var len = to.options.length;
	to.show();
	for(var i = from.options.length-1;i>=0;i--){
		if(from.options[i].selected){
			var optionName = new Option(from.options[i].value, from.options[i].value, '', '');
			to.options[len++] = optionName;
			optionName.className = 'largeText';
			from.options[i].remove();
			pageTracker._trackEvent('Search', 'button', 'Manage Extensions Lightbox - Add - ' + optionName.value);
		}
	}
	
}

function addMoreTlds(){
	var newTlds = new Array();
	var count=0;
	var cc = $('addedTlds');
	cc.show();
	for(var i=0; i < cc.options.length; i++){
		newTlds[count++]=cc.options[i].value;
	}
	addNewTld(newTlds);
	Lightview.hide();
}

var alreadySelectedTlds;

function loadTldData(){
 	alreadySelectedTlds = new Array();
	var tlds = $$('input[name="tlds"]');
	var target = $('addedTlds');
	var len = 0;
	target.show();
	for(var i = 0; i < tlds.length; i++){
		if(tlds[i].checked){
			var optionName = new Option(tlds[i].value, tlds[i].value, '', '');
			alreadySelectedTlds[i] = tlds[i].value;
			target.options[len++] = optionName;
		}
	}
	ajaxSearchTLD();
}

function removeAllSelectedTlds(from, to){
	// var selectedTlds = $('selectedTlds');
	var from = $(from);
	var to = $(to);
	var len = to.options.length;		
	for(var i = from.options.length-1;i>=0;i--){
			var option = new Option();
			option.value = from.options[i].value;
			option.className = 'gray333';
			option.appendChild( document.createTextNode( from.options[i].text ));
			var optGroup = getOptGroup(from.options[i].value);
			optGroup.appendChild(option);			
			from.options[i].remove();
	}
	pageTracker._trackEvent('Search', 'button', 'Manage Extensions Lightbox - Remove All Tlds');
	from.hide();
}

function removeSelectedTlds(from, to){
	// var selectedTlds = $('selectedTlds');
	var from = $(from);
	var to = $(to);
	var len = to.options.length;
	for(var i = from.options.length-1;i>=0;i--){
		if(from.options[i].selected){
			var option = new Option();
			option.className = 'gray333';
			option.value = from.options[i].value;
			option.appendChild( document.createTextNode( from.options[i].text ));
			var optGroup = getOptGroup(from.options[i].value);
			optGroup.appendChild(option);
			from.options[i].remove();				
			pageTracker._trackEvent('Search', 'button', 'Manage Extensions Lightbox - Remove - ' + option.value);
			}
		if (len == 0) {
			from.hide();
		}	
	}
}


function ajaxSearchTLD(){
	var searchParams = {};
	dwr.util.getValues(searchParams);
	searchParams.isInternalUser = getCookie('YD') == '1';
	searchParams.cartId = getCookie('cart_id');
	fillTaxonomyConstraints(searchParams);
	searchParams.priceRange = getPriceRanges($$('input[name="priceRange"]'));

	// searchParams.keywords = $('keywords').getValue();
	
	var kform = $('searchKeywordsForm');
	var kinput = kform['keywords'];
	searchParams.keywords = $F(kinput);
	
	searchParams.hyphenExcluded = $('hyphenExcluded').checked;
	searchParams.numbersExcluded= $('numbersExcluded').checked;
	searchParams.keyword_s='contains';
	var radios =  $$('input[name="keyword_s"]');
	for(var i=0; i <radios.length;i++)
		if(radios[i].checked) searchParams.keyword_s=radios[i].value;
	var pd, domainName;
	dwr.engine.beginBatch();
	
	Search.getTldsCount(searchParams,{
		callback:function(tldArray) {
			for(var i=0; i < tldArray.length;i++){
				if(alreadySelectedTlds.indexOf(tldArray[i].name) >= 0)continue;
				var option = new Option();
				option.value = tldArray[i].name;
				option.className = 'gray333';
				option.appendChild(document.createTextNode( tldArray[i].name ));
				var optGroup = getOptGroup(tldArray[i].name);
				optGroup.appendChild(option);
			}
		},
		errorHandler:function(errorString, exception) { 
			alert(exception);
			// hidePopupWait();
		}
		
		});
		dwr.engine.endBatch();
}

function loadPriceData(){
	var parentMinPrice = $('minPrice');
	var parentMaxPrice = $('maxPrice');
	var minPrice = $('minPriceLB');
	var maxPrice = $('maxPriceLB');
	minPrice.value = parentMinPrice.value;
	maxPrice.value = parentMaxPrice.value;
}


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 validatePrice(){
		var minPrice = $('minPriceLB').getValue();
		var maxPrice = $('maxPriceLB').getValue();
		var parentMinPrice = $('minPrice');
		var parentMaxPrice = $('maxPrice');
		
		$('errorPrice').hide();
		if ((minPrice.trim() != '') && (!IsNumeric(minPrice))) {
			$('minPriceLB').focus();
			$('errorPrice').show();
			$('errorPrice').innerHTML = 'Min price value has wrong number format.';
			return false;
		}
		if ((maxPrice.trim() != '') && (!IsNumeric(maxPrice))) {
			$('maxPriceLB').focus();
			$('errorPrice').show();
			$('errorPrice').innerHTML = 'Max price value has wrong number format.';
			return false;
		}
		if ((minPrice == '') && (maxPrice == '0')) {
			$('maxPriceLB').focus();
			$('errorPrice').show();
			$('errorPrice').innerHTML = 'Please enter a max price geater than 0.';
			return false;
		}
		if ((minPrice == '0') && (maxPrice == '0')) {
			$('minPriceLB').focus();
			$('errorPrice').show();
			$('errorPrice').innerHTML = 'Please enter a price geater than 0.';
			return false;
		}
		if (parseFloat(maxPrice) < parseFloat(minPrice))
		{
			$('maxPriceLB').focus();
			$('errorPrice').show();
			$('errorPrice').innerHTML = 'Max value should not be less than Min value.';
			return false;
		}
        if((maxPrice != '0')&&(minPrice == '0')){
             $('minPriceLB').value = "";
             minPrice = "";
        }
		
		parentMinPrice.value = minPrice;
		parentMaxPrice.value = maxPrice;
		pageTracker._trackEvent('Search', 'button', 'Manage More Prices Lightbox - Update - $' + minPrice + ' - $' + maxPrice);
		updatePrice();
		Lightview.hide();
}

function loadGeoData(){
	var parentCity = $('geoLocationCity');
	var parentArea = $('geoLocationArea');
	var parentCountryId = $('geoLocationCountryId');
	var city = $('city');
	var area = $('area');
	var country = $('country');
	city.value = parentCity.value;
	area.value = parentArea.value;
	var indx=0; 
	for(var i=0; i<country.options.length; i++) {
		if (country.options[i].value==parentCountryId.value) {
			indx=i;
			break;
		}
	}
	country.selectedIndex = indx;
}

function updateLocation(){
	var city = $('city').value;
	var area = $('area').value;
	var country = $('country');
	$('errorGeo').hide();
	var validRegexp = /^[a-zA-Z\-,. ]{1,}$/;
	if (city != '' && !validRegexp.exec(city)) {
		$('city').focus();
		$('errorGeo').show();
		$('errorGeo').innerHTML = 'City/Town has wrong input format.';
		return false;
	}
	if (area != '' && !validRegexp.exec(area)) {
		$('area').focus();
		$('errorGeo').show();
		$('errorGeo').innerHTML = 'Region/State/Province has wrong input format.';
		return false;
	}
	
	$('geoLocationCity').value = escapeXml(city);
	$('geoLocationArea').value = escapeXml(area);
	$('geoLocationCountryId').value = country.value;
	$('geoLocationCountryName').value = country.options[country.selectedIndex].text;
	$('useGeoLocation').checked = true;
	updateGeoLocation();
	Lightview.hide();	
	pageTracker._trackEvent('Search', 'button', 'Manage Location Lightbox - Update - ' + city + ', ' + area + ', ' + ', ' + $('geoLocationCountryName').value);
}

/**
 * End of search.js
 */

/**
 * Start of adsearch.js
 */
var isCtrl = false; 
var selected = new Array();

function getL1(id){
	for(var i=0; i < level1.length;i++)
		if(level1[i].id == id) return level1[i];
	return null;
}

function getL2Parent(l2id){
	for(var i=0; i < level1.length;i++)
		for(var j=0; j < level1[i].level2.length; j++)
			if(level1[i].level2[j].id == l2id) return level1[i];
	return null;
}

function getL2(id){
	for(var i=0; i < level1.length;i++)
		for(var j=0; j < level1[i].level2.length; j++)
			if(level1[i].level2[j].id == id) return level1[i].level2[j];
	return null;
}

function tmpTaxonomy(l1, level2){
	this.l1 = l1;
	this.level2 = level2;
}

function selectL2(l1Id, l2Id){
	var l1 = level1[l1Id];
	var l2 = l1.level2[l2Id];
	l2.selected = !l2.selected;
	if(l1.selected) l1.selected = !l2.selected;
	$('ygtvlabelel'+l1Id).className = l1.selected ? 'yui-dt-selected' : 'yui-dt-unselected';
	$('ygtvlbl_'+l1Id + '_'+l2Id).className=l2.selected ? 'yui-dt-selected' : 'yui-dt-unselected';
	if(!isCtrl && l2.selected)
		unselectL2Others(l1Id, l2Id);
}

function unselectL2Others(l1Id, l2Id){
	for(var i=0; i < level1.length;i++){
		if(level1[i].moved || !level1[i].toBeDisplayed) continue;
		if(level1[i].selected){
			level1[i].selected = false;
			$('ygtvlabelel'+i).className =  'yui-dt-unselected';
		}
		for(var j=0; j < level1[i].level2.length; j++){
			if(l1Id == i && l2Id == j) continue;
			var lvl2 = level1[i].level2[j];
			if(lvl2.moved || !lvl2.toBeDisplayed)continue;
			if(lvl2.selected){
				lvl2.selected = false;
				$('ygtvlbl_'+i + '_'+ j).className='yui-dt-unselected';
			}
		}
	}
}

function unselectChildren(l1Id){
	var l1 = level1[l1Id];
	l1.level2.each(function(lvl2, index){
		if(!lvl2.moved && lvl2.selected){
			lvl2.selected = false;
			$('ygtvlbl_'+l1Id + '_'+ index).className='yui-dt-unselected';
		}
	});
}



function addallcategories(){
	level1.each(function(l1, index){
		if(l1.toBeDisplayed){
			l1.moved = true;
			l1.level2.each(function(lvl2, index){
				if(lvl2.toBeDisplayed)lvl2.moved = false;
			});
		}
		
	});
	createTaxonomyTree();
	createSelectedTaxTree();
}


function addcategories(){
	var categories = $('selectedCategories');
	var tbody = $('filteredCategoriesId');
	var taxId = '';
	var sHtml = '';
	level1.each(function(l1, index){
		if(l1.selected && !l1.moved && l1.toBeDisplayed){
			l1.moved = true;
			// sHtml = '<b>' + l1.label + '</b>&nbsp;-&nbsp;<i>All</i>';
			// selectCategory(l1.id, sHtml);
			l1.level2.each(function(lvl2, l2index){
				lvl2.moved = false;
				lvl2.selected = false;
				
			});
			
		}
		l1.level2.each(function(lvl2, l2index){
			if(lvl2.selected && !lvl2.moved && lvl2.toBeDisplayed){
				lvl2.moved = true;
			}
		});
	});
	createTaxonomyTree();
	createSelectedTaxTree();
	
}


function selectCategory(id, sHtml){
	var tbody = $('filteredCategoriesId');
	var row = tbody.insertRow(-1);
	var cell = row.insertCell(-1);
	cell.id = 'td_'+ id;
	
	cell.className = 'yui-dt-unselected';
	cell.innerHTML = '<div id="div_sel_'+ id + '">' + sHtml +'</div>';
	Event.observe(cell, 'click', function (ev) {
		Event.stop(ev);
		flip(eval('\'' + id + '\''));
	}, false);
	Event.observe(cell, 'dblclick', function (ev) {
		Event.stop(ev);
	}, false);
	Event.observe($('div_sel_'+ id), 'mousedown', function (ev) {
		Event.stop(ev);
	}, false);
}

function removecategories(){
	level1.each(function(l1, index){
		if(l1.movedSelected){
			l1.selected = false;
			l1.moved = false;
			l1.movedSelected = false;
		}
		l1.level2.each(function(lvl2, l2index){
			if(lvl2.movedSelected){
				lvl2.selected = false;
				lvl2.moved = false;
				lvl2.movedSelected = false;
			}
		});
		
	});
	createTaxonomyTree();
	createSelectedTaxTree();
}
function removeallcategories(){
	var tbody = $('filteredCategoriesId');
	removeChildren(tbody);
	level1.each(function(l1, index){
		if(l1.moved){
			l1.selected = false;
			l1.moved = false;
			l1.movedSelected = false;
		}
		l1.level2.each(function(lvl2, l2index){
			if(lvl2.moved){
				lvl2.selected = false;
				lvl2.moved = false;
				lvl2.movedSelected = false;
			}
		});
	});
	createTaxonomyTree();
}


function createSelectedTaxTree(){
	var tbody = $('filteredCategoriesId');
	removeChildren(tbody);
	level1.each(function(l1, index){
		if(l1.moved){
			sHtml = "<b>" + l1.label + "</b>&nbsp;-&nbsp;<i>All</i>";
			selectCategory(l1.id, sHtml);
		}
		l1.level2.each(function(lvl2, l2index){
			if(lvl2.moved){
				sHtml = "<b>" + l1.label + "</b>&nbsp;-&nbsp;<i>"+lvl2.label + "</i>";
				selectCategory(lvl2.id, sHtml);
			}
		});
	});
}
function flip(id){
	var tax;
	for(var i=0; i < level1.length;i++){
		if(id == level1[i].id){
			tax = level1[i];
			break;
		}
		for(var j=0; j < level1[i].level2.length; j++)
			if(level1[i].level2[j].id == id){
			 	tax =  level1[i].level2[j];
			 	break;
			}
	}
	tax.movedSelected = !tax.movedSelected
	var divElem = $('td_' +id);
	divElem.className = tax.movedSelected ? 'yui-dt-selected' : 'yui-dt-unselected';
	if(!isCtrl && tax.movedSelected){
		level1.each(function(l1, index){
			if(id != l1.id && l1.moved && l1.movedSelected){		
				l1.movedSelected = false;
				$('td_' +l1.id).className = 'yui-dt-unselected';
			}
			l1.level2.each(function(lvl2, index){
				if(lvl2.id != id && lvl2.moved && lvl2.movedSelected){
			 		lvl2.movedSelected = false;
					$('td_' +lvl2.id).className = 'yui-dt-unselected';
				}
			});
		});
	}
}

function unselectL1Others(l1Id){
	for(var i=0; i < level1.length;i++){
		if(l1Id == i) continue;
		if(level1[i].moved || !level1[i].toBeDisplayed) continue;
		if(level1[i].selected){
			level1[i].selected = false;
			$('ygtvlabelel'+i).className =  'yui-dt-unselected';
		}
		for(var j=0; j < level1[i].level2.length; j++){
			var lvl2 = level1[i].level2[j];
			if(lvl2.moved || !lvl2.toBeDisplayed)continue;
			if(lvl2.selected){
				lvl2.selected = false;
				$('ygtvlbl_'+i + '_'+ j).className='yui-dt-unselected';
			}
		}
	}
}

function selectL1(l1Id){
	var l1 = level1[l1Id];
	l1.selected = !l1.selected;
	if(l1.selected)
		unselectChildren(l1Id);
	$('ygtvlabelel'+l1Id).className = l1.selected ? 'yui-dt-selected' : 'yui-dt-unselected';	
	if(!isCtrl && l1.selected)
		unselectL1Others(l1Id);
}
function toggle1(l1Id){
	var l1 = level1[l1Id];
	l1.expanded = !l1.expanded;
	var childrenDiv = $('ygtvc'+l1Id);
	$('ygtvt' + l1Id).className = l1.expanded ? 'ygtvtmh' : 'ygtvlm';
	childrenDiv.style.display = l1.expanded ? '' : 'none';
	if(!l1.expanded){
		unselectChildren(l1Id);
	}
}

function createTaxonomyTree(){
	var treeDiv = $('treeDiv');
	var sb = new Array();
	var last=0;
	for(var i=0; i < level1.length;i++){//
		if(level1[i].moved || !level1[i].toBeDisplayed) continue;
		sb[last++] = '<div id="ygtvlabelel' + i + '" >';
		sb[last++] = '<table border="0" cellpadding="0" cellspacing="0">';
		sb[last++] = '<tr ><td id="ygtvt'+ i + '" class="ygtvlm"  '+
			'onclick="javascript:toggle1(\''+ i + '\');return false;"><div class="ygtvspacer"></div></td>';
		sb[last++] = '<td onclick="javascript:selectL1(\'' + i + '\'); return false;"><div id="ygtvlabelel' + i + '" ';
		sb[last++] = ' onmouseover=""'+
			' onmouseout="">' + level1[i].label + '</div></td></tr></table></div>';
		if(level1[i].expanded)
			sb[last++] = '<div class="ygtvchildren" id="ygtvc' + i + '">'
		else
			sb[last++] = '<div class="ygtvchildren" id="ygtvc' + i + '" style="display:none;">'
		var level2Items = level1[i].level2;
		for(var j =0; j < level2Items.length; j++){
			if(level2Items[j].moved || !level2Items[j].toBeDisplayed)continue;
			sb[last++] = '<div  id="ygtvlbl_'+i+'_'+j+'" class="ygtvitem"><table border="0" cellpadding="0" cellspacing="0">';
			sb[last++] = '<tr ><td class="ygtvblankdepthcell"><div class="ygtvspacer"></div></td>';
			sb[last++] = '<td class="ygtvtn" onclick="">';
			sb[last++] = '<div class="ygtvspacer"></div></td>';
			sb[last++] = '<td onclick="javascript:selectL2(\''+ i + '\',\''+ j + '\');return false;"><div class="sPadLeft"';
			sb[last++] = '>' + level2Items[j].label + '</div></td>';
			sb[last++] = '</tr></table></div>';
		}
		sb[last++] = '</div>';
		// if(i == 0) alert(sb.join(' '));
	}
	var s = sb.join(' ');
	treeDiv.innerHTML = s;
	level1.each(function(l1, index){
		if(!l1.moved && l1.toBeDisplayed){
			Event.observe($('ygtvlabelel' + index), 'mousedown', function (ev) {
				var tg = (window.event) ? ev.srcElement : ev.target;
				Event.stop(ev);
			}, false);
		}
		
	});
}

function addTLDInputElement(form, name, value) {
	var el = document.createElement('input');
	el.type = 'hidden'; 
	el.name=name;
	el.id=name;
	el.value=value.replace(/ +$/,'');
	form.appendChild(el); 
}

function addallTlds(from, to){
	var p = $('p');
	var from = $(from);
	var to = $(to);
	var len = to.options.length;
	p.style.display= 'block';
	for(var i = from.options.length-1;i>=0;i--){
			var optionName = new Option(from.options[i].text, from.options[i].value, '', '');
			to.options[len++] = optionName;
			optionName.className = 'largeText';
			from.options[i].remove();
	}
	
}
function addTlds(from, to){
	var p = $('p');
	var from = $(from);
	var to = $(to);
	var len = to.options.length;
	p.style.display= 'block';
	for(var i = from.options.length-1;i>=0;i--){
		if(from.options[i].selected){
			var optionName = new Option(from.options[i].text, from.options[i].value, '', '');
			to.options[len++] = optionName;
			optionName.className = 'largeText';
			from.options[i].remove();
		}
	}
	
}
// sub-category-arrow.gif
function  removeAllTlds(from, to){
	var p = $('p');
	var from = $(from);
	var to = $(to);
	var len = to.options.length;
    var optGroups = [];
	for(var i = from.options.length-1;i>=0;i--){
			var option = new Option();
			option.value = from.options[i].value;
            if (Prototype.Browser.IE) {
                option.text = from.options[i].text;
            }
			option.className = 'gray333';
			option.appendChild( document.createTextNode( from.options[i].text ));
			var optGroup = getOptGroup(from.options[i].value);
            optGroups.push(optGroup);
			optGroup.appendChild(option);
			from.options[i].remove();
	}
    for (var i = 0; i < optGroups.length; i++) {
        sortOptGroup(optGroups[i]);
    }
	p.style.display= 'none';
}

function removeTlds(from, to){
	var p = $('p');
	var from = $(from);
	var to = $(to);
    var optGroups = [];
	var len = to.options.length;
	for(var i = from.options.length-1;i>=0;i--){
		if(from.options[i].selected){
			var option = new Option();
			option.className = 'gray333';
			option.value = from.options[i].value;
			option.appendChild( document.createTextNode( from.options[i].text ));
			var optGroup = getOptGroup(from.options[i].value);
            optGroups.push(optGroup);
			optGroup.appendChild(option);
			from.options[i].remove();
			if (i == 0) {
			p.style.display= 'none';
			}
		}
	}
    for (var i = 0; i < optGroups.length; i++) {
        sortOptGroup(optGroups[i]);
    }
}
function getOptGroup(tld){
	for(var i=0; i < commonTlds.length;i++)
		if(commonTlds[i].value==tld)return $('commonExt');
	for(var i=0; i < countryTlds.length;i++)
		if(countryTlds[i].value==tld)return $('countryExt');
	for(var i=0; i < genericTlds.length;i++)
		if(genericTlds[i].value==tld)return $('moreExt');
	
	}

function sortOptGroup(optGroup) {
    var items = optGroup.childNodes;
    var itemsArr = [];
    for (var i = 0; i < items.length; i++) {
        var item = items.item(i);
        if (item.nodeType == 1) {
            itemsArr.push(item);
        }
    }

    itemsArr.sort(function(a, b) {
        return a.text == b.text ? 0 : (a.text > b.text ? 1 : -1);
    });

    for (var i = 0; i < itemsArr.length; ++i) {
        optGroup.appendChild(itemsArr[i]);
    }
}
	
function handleEvents(){
		Event.observe($('treeDiv'), 'mousedown', function (ev) {
			Event.stop(ev);
		}, true);
		Event.observe($('selectedCategoriesDiv'), 'mousedown', function (ev) {
			Event.stop(ev);
		}, true);

		document.onkeyup=function(e){ 
			var keynum = window.event ? window.event.keyCode: e.which;
			if(keynum == 17) isCtrl=false; 
		} ;
		document.onkeydown=function(e){ 
			var keynum = window.event ? window.event.keyCode: e.which;
			if(keynum == 17) isCtrl=true; 
		};
	}
/**
 * End of adsearch.js
 */
