//Home page Javascript - moved to external file based on Tidal Research's recommendations
// for Mozilla browsers
function init() {
  // quit if this function has already been called
  if (arguments.callee.done) return;

  // flag this function so we don't do the same thing twice
  arguments.callee.done = true;
};

if (document.addEventListener) {
  document.addEventListener("DOMContentLoaded", init, false);
}

function preloader() {
     // counter
     var i = 0;
     // create object
     imageObj = new Image();
     // set image list
     var images = new Array("/images/home/craig-clark.jpg", "/images/home/peter-connors.jpg", "/images/home/stu-maloff.jpg", "/images/home/scott-merlo.jpg", "/images/home/robert-brown.jpg", "/images/home/robin-hensley.jpg", "/images/home/jean-manasian.jpg");

     // start preloading
     for(i = 0; i < images.length; i++)
     {
          imageObj.src=images[i];
     }
}

// rotate testimonials on home page right rail
function randomImage()	{
quotes = new Array(7);
authors = new Array(7);
bgImages = new Array(7);
quotes[0] = "It is absolutely critical that you are conscious about your brand when you first start a business. Acquiring a premium domain name that conveys an appropriate brand message will pay huge dividends down the road.";
authors[0] =  "Craig Clark, DownPillows.com";
bgImages[0] = "/images/home/craig-clark.jpg";
quotes[1] = "The smartest investment we have made is purchasing www.Hugz.com from BuyDomains. And we hear it all the time from our customers from around the world.";
authors[1] =  "Peter Connors, Hugz.com";
bgImages[1] = "/images/home/peter-connors.jpg";
quotes[2] = "I would advise any business owner who wants to maximize their exposure, to get a generic domain name for their web site and supplement it with other related domain names.";
authors[2] =  "Stu Maloff, OrlandoBasketball.com";
bgImages[2] = "/images/home/stu-maloff.jpg";
quotes[3] = "A proper domain name is everything in online marketing. You can have a great business idea but without that perfect domain name...you have an uphill battle trying to get your site well known.";
authors[3] =  "Scott Merlo, GolfPartners.com";
bgImages[3] = "/images/home/scott-merlo.jpg";
quotes[4] = "A good domain name is crucial in ongoing success, some people think that can take any domain name and make their site great, but truthfully that is rare, it must be catchy and easy to remember.";
authors[4] =  "Robert Brown, REALationship.com";
bgImages[4] = "/images/home/robert-brown.jpg";
quotes[5] = "Raising the Bar is easy to remember so most have no trouble finding my company whether they met at a speaking engagement, heard about us via word of mouth or other marketing venues.";
authors[5] =  "Robin Hensley, RaisingtheBar.com";
bgImages[5] = "/images/home/robin-hensley.jpg";
quotes[6] = "My agency used BuyDomains.com ...they made it incredibly easy to negotiate and purchase the domain name ...my client was thrilled with name we found for them";
authors[6] =  "Jean Manasian, HDVideoConferencing.com";
bgImages[6] = "/images/home/jean-manasian.jpg";
    //calculate a random index
    var index = Math.floor(Math.random() * quotes.length);
    $("homePremium").style.backgroundImage = "url('" + bgImages[index] + "')";
	$("homePremium").style.backgroundRepeat = "no-repeat"; 
    $("quote").innerHTML = quotes[index];
    $("author").innerHTML = authors[index];
}

// Please don't remove this again - this is needed for the main search box form validation to work properly
var clearboxM = 0;
// global variable
function clearitM() {
	var keywordInput = $('keywordsMainSearch');
    if (clearboxM == 0) {
        keywordInput.value = "";
        keywordInput.style.color = "#333333";
		keywordInput.focus();
		clearboxM = 1;
    }
}
	

function main_search_field(type) {
	var keywordInput = $('keywordsMainSearch');
	if (type == "open") {
		//keywordInput.value = "ENTER BUSINESS NAME OR KEYWORD(S)";
		keywordInput.style.color = "#999";
		keywordInput.focus();
		var keywordValue = "ENTER BUSINESS NAME OR KEYWORD(S)";
	}
	
	if (type == "navOver") {
		keywordInput.disable();
		$('searchBtns').focus();
	} 
	
	if (type == "navOut") {
		keywordInput.enable();
		var keywordValue = keywordInput.getValue();
		if (keywordValue == '' || keywordValue == 'ENTER BUSINESS NAME OR KEYWORD(S)'){
			keywordInput.style.color = "#999";
		} else {
			keywordInput.style.color = "#333";
		}
		keywordInput.focus();
	} 
	
	if (type == "field") {
		var keywordValue = keywordInput.getValue();
		if (keywordValue == '' || keywordValue == 'ENTER BUSINESS NAME OR KEYWORD(S)'){
			keywordInput.value = '';
		}
		keywordInput.style.color = "#333";
	}
}


function main_search_field_tld(type) {
	var keywordInput = $('keywordsMainSearch');
	if (type == "open") {
		//keywordInput.value = "ENTER BUSINESS NAME OR KEYWORD(S)";
		keywordInput.style.color = "#999";
		keywordInput.focus();
		var keywordValue = "ENTER DOMAIN NAME";
	}
	
	if (type == "navOver") {
		keywordInput.disable();
		$('searchBtns').focus();
	} 
	
	if (type == "navOut") {
		keywordInput.enable();
		var keywordValue = keywordInput.getValue();
		if (keywordValue == '' || keywordValue == 'ENTER DOMAIN NAME'){
			keywordInput.style.color = "#999";
		} else {
			keywordInput.style.color = "#333";
		}
		keywordInput.focus();
	} 
	
	if (type == "field") {
		var keywordValue = keywordInput.getValue();
		if (keywordValue == '' || keywordValue == 'ENTER DOMAIN NAME'){
			keywordInput.value = '';
		}
		keywordInput.style.color = "#333";
	}
}


function submitSearchHeaderForm(){
			if(validateKeywordMain(document.forms.searchKeywordsMainForm))
				document.forms.searchKeywordsMainForm.submit();
		}


function validateKeywordMain(event){
	Event.stop(event);
	var kw = $('keywordsMainSearch').getValue();
	var errorMsg = $('errorMainSearch');
	errorMsg.innerHTML = '';
	errorMsg.hide();
	kw = kw.replace(/^\s+|\s+$/, '');
	if(kw == '' || kw == 'ENTER BUSINESS NAME OR KEYWORD(S)'){
		errorMsg.innerHTML = '<ul class="errors"><li>Keywords field is required</li></ul>';
		errorMsg.show();
		main_search_field("open");
		return;
	} else {
		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)){
				errorMsg.innerHTML = '<ul class="errors"><li>Please use correct search format</li></ul>';
				errorMsg.show();
				main_search_field("open");
				return;
			}
		}
	}
	pageTracker._trackPageview('tracking=homepage-main-search');
	$('searchKeywordsMainForm').submit();
}
	
function submitSearchHeaderForm2(){
	if(validateKeywordMain2(document.forms.searchKeywordsMainForm))
	document.forms.searchKeywordsMainForm.submit();
}

function validateKeywordMain2(form){
		pageTracker._trackPageview('tracking=simple-main-search');
		var kw = document.searchKeywordsMainForm.keywordsMainSearch.value;
		var diverr = $('errorMainSearch');
		diverr.innerHTML = '';
		diverr.style.display = 'none';
		kw = kw.replace(/^\s+|\s+$/, '');
		if(kw == '' || kw == 'ENTER KEYWORD(S) OR PHRASE'){
			diverr.innerHTML = 'Keywords field is required';
			diverr.style.display = 'block';
			clearboxM = 0;
			clearitM();
			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)){
				diverr.innerHTML = 'Please use correct search format.';
				diverr.style.display = 'block';
				clearboxM = 0;
				clearitM();
				return false;
			}
		}
		return true;
	}
	
function submitSearchHeaderForm3(){
	if(validateKeywordMain3(document.forms.searchKeywordsMainForm))
	document.forms.searchKeywordsMainForm.submit();
}

function validateKeywordMain3(form){
	pageTracker._trackPageview('tracking=homeTest1-main-search');
	var kw = document.searchKeywordsMainForm.keywordsMainSearch.value;
	var diverr = $('errorMainSearch');
	diverr.innerHTML = '';
	diverr.style.display = 'none';
	kw = kw.replace(/^\s+|\s+$/, '');
	if(kw == '' || kw == 'ENTER KEYWORD(S) OR PHRASE'){
		diverr.innerHTML = 'Keywords field is required';
		diverr.style.display = 'block';
		clearboxM = 0;
		clearitM();
		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)){
			diverr.innerHTML = 'Please use correct search format.';
			diverr.style.display = 'block';
			clearboxM = 0;
			clearitM();
			return false;
		}
	}
return true;
}

function submitSearchHeaderForm4(){
	if(validateKeywordMain4(document.forms.searchKeywordsMainForm))
		document.forms.searchKeywordsMainForm.submit();		
}
	

function validateKeywordMain4(form){
	pageTracker._trackPageview('tracking=home-main-search-tld-dropdown');
	var kw = document.searchKeywordsMainForm.keywordsMainSearch.value;
	var diverr = $('errorMainSearch');
	diverr.innerHTML = '';
	diverr.style.display = 'none';
	kw = kw.replace(/^\s+|\s+$/, '');
	if(kw == '' || kw == 'ENTER DOMAIN NAME'){
		diverr.innerHTML = 'Keywords field is required';
		diverr.style.display = 'block';
		clearboxM = 0;
		clearitM();
		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)){
			diverr.innerHTML = 'Please use correct search format.';
			diverr.style.display = 'block';
			clearboxM = 0;
			clearitM();
			return false;
		}
	}
	return true;
}



function submitGeoKeywordForm(){
	if(validateGeo(document.forms.geoSearchForm)) {
	pageTracker._trackPageview('tracking=homepage-geo-tracking');
	document.forms.geoSearchForm.submit();
	}
}

function validateGeo(form){
		var kw = document.geoSearchForm.geoKeywords.value;
		var diverr = $('errorGeoKeywords');
		diverr.innerHTML = '';
		diverr.hide();
		kw = kw.replace(/^\s+|\s+$/, '');
		if(kw == '' || kw == 'ENTER KEYWORD(S)...ie: finance, golf'){
			diverr.innerHTML = 'Keywords field is required';
			diverr.show();
			clearbox1 = 0;
			clearit1();
			$('geoKeywords').focus();
			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)){
				diverr.innerHTML = 'Wrong input format.';
				diverr.show();
				clearbox1 = 0;
				clearit1();
				$('geoKeywords').focus();
				return false;
			}
		}
		return true;
	}



var on = false;
function fill_text() {
    if (!on) {
		$('geoKeywords').value = "ENTER KEYWORD(S)...ie: finance, golf";
        on = true;
    } else {
		$('geoKeywords').value = "";
        on = false;
	}
}

var clearbox1 = 0;
// global variable
function clearit1() {
    if (clearbox1 == 0) {
        $('geoKeywords').value = "";
        $('geoKeywords').style.color = "#333333";
        clearbox1 = 1;
    }
}

var clearboxGeoCity = 0;
// global variable
function clearitGeo() {
	var geoInput = $('city');
    if (clearboxGeoCity == 0) {
        geoInput.value = "";
        geoInput.style.color = "#333333";
		geoInput.focus();
		clearboxGeoCity = 1;
    }
}

var clearboxGeoArea = 0;
// global variable
function clearitGeoArea() {
	var geoInput = $('area');
    if (clearboxGeoArea == 0) {
        geoInput.value = "";
        geoInput.style.color = "#333333";
		geoInput.focus();
		clearboxGeoArea = 1;
    }
}


function showCountrySelected() {
	var parentCountryId = $('geoLocationCountryId');
	var country = $('country');
	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;
}

/* START: category L1 to L2 hover and onclick functions */
var objHover = "";
var objNew = ""; 
var obj = "";
var closeLink = "";
var objContainer = "";
var objNewContainer = "";
function togC(fn) {
	closeLink=$(fn+'_close');
	closeLink.style.display = 'block';
	if ((obj == "") && (objHover !== "")){
	objContainer=$(fn+'_container');	
	obj=$(fn+'_category');
	objContainer.style.position = 'relative';
	obj.style.display = 'block';
	}
	else if (obj !== ""){ 	
		objNewContainer=$(fn+'_container');	
		objNew = $(fn+'_category');	
		if (objNew == obj) { 
			objContainer.style.position = 'static';
			obj.hide();
			obj = "";			
			objNew = "";
		} else {
		
			if (objNewContainer !== objContainer) {	
				objContainer.style.position = 'static';
				objNewContainer.style.position = 'relative';
				obj.hide();	
			}
		obj.hide();
		obj = "";
		objNew = "";
		objContainer = objNewContainer;
		objNewContainer = "";
		togC(fn);
		}
	}
}

function hideC(fn) {
	objContainer.style.position = 'static';
	obj.hide();	
	obj = "";
}

function hoverL1On(fn) {
	closeLink=$(fn+'_close');	
	if ((objHover == "") && (obj == "")){
	objContainer=$(fn+'_container');
	objContainer.style.position = 'relative';
	objHover=$(fn+'_category');		
	closeLink.hide();
	objHover.show();
	}
}

function hoverL1Off(fn) {
	if ((objHover !== "") && (obj == "")){ 
		objContainer.style.position = 'static';
		objHover.style.display = 'none';
		objHover = "";		
	} 
}
/* END: category L1 to L2 hover and onclick functions */

function submitGeoLocation(event) {
	Event.stop(event);
    var errors = validateGeoInfo();
    if (errors && errors.length == 0) {
        $("geoError").hide();
		
		var city = $('city').value;
		var area = $('area').value;
		
		var country = $('country');
		var countryName = 'UNITED STATES';
		var countryId = 'US';

		if (country.selectedIndex > -1) {
			countryName = country.options[country.selectedIndex].text;
			countryId = country.value;
		}
		
		$('geoLocationCity').innerHTML = city;
		$('geoLocationArea').innerHTML = area;
		$('geoLocationCountry').innerHTML = countryName;
		$('geoLocationCountryId').value = countryId;
		
		setCookie("geoParams", city + '@' + area + '@' + countryId, null, "/", ".buydomains.com", null);
		if ($('searchResultsBody')) {
		ajaxGeoSearch();
		}
		$('editGeoLocation').prototip.hide();
		
    } else {
        showGeoErrors(errors);
    }
}

function validateGeoInfo() {
    var validRegexp = /^[a-zA-Z\-,. ]{1,}$/;
	var city = $("city").value.trim();
	var area = $("area").value.trim();
	var errors = new Array();
    if (city == "") {
        errors[errors.length] = "Please enter a City/Town.";
    }
	if (city != "" && !validRegexp.exec(city)) {
        errors[errors.length] = "City/Town is in wrong format.";
    }
    if (area == "") {
        errors[errors.length] = "Please enter a State/Region.";
    }
	if (area != "" && !validRegexp.exec(area)) {
        errors[errors.length] = "State/Region is in wrong format.";
    }
    return errors;
}

function showGeoErrors(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>";
			}
        }
    }
    $("tipErrors").innerHTML = errorHtml;
    $("geoError").show();
}

function goLite(button) {
	button.style.color = "#09346a";
	button.style.pointer = "cursor";
}

function goDim(button) {
	button.style.color = "#fff";
}

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

	return result;
    
}

    function checkSubscribeMail(){        
        var emailControl = document.getElementById("signIn");
        if(emailControl!=null && (""==emailControl.value || !isValidEmail(emailControl.value))){
            emailControl.style.backgroundColor = "red";
            return false;
        }
        else if(emailControl!=null){
            emailControl.style.backgroundColor = "white";
            return true;
        }
        return false;
    }