// ----------------------------------------------------------------------------------------------
// ---------------------------------- HOMEPAGE FUNCTIONS ----------------------------------------
// ----------------------------------------------------------------------------------------------

// FLASH DETECTION VARIABLES

requiredMajorVersion = 8,
requiredMinorVersion = 0,
requiredRevision = 0;

// RANDOMIZE BG IMAGE

YUE.onDOMReady(function() {
	if (getCurrSite()=='Pulte') {
		var imagenumber = 6 ;
		var randomize = Math.round((imagenumber-1) * Math.random()) + 1;
		images = new Array
		images[1] = 'url(/images/Pulte/bg-contentHome1.jpg)'
		images[2] = 'url(/images/Pulte/bg-contentHome2.jpg)'
		images[3] = 'url(/images/Pulte/bg-contentHome3.jpg)'
		images[4] = 'url(/images/Pulte/bg-contentHome4.jpg)'
		images[5] = 'url(/images/Pulte/bg-contentHome5.jpg)'
		images[6] = 'url(/images/Pulte/bg-contentHome6.jpg)'
		YUD.getElementsByClassName('content')[0].style.backgroundImage = images[randomize];
	}
});

// ----------------------------------------------------------------------------------------------

// MAP OVERLAYS

YUE.onContentReady('interactiveMap',function(e) {
    var swfName = 'pulteHomeSWF';
    switch (getCurrSite()){
        case 'Pulte':
            break;
        case 'DelWebb':
            swfName = 'delWebbHome';
            break;
        case 'DiVosta':
            swfName = 'divostaHome';
    }
    // functions for stopping and starting flash animations (addresses performance problem with DHTML map interaction)
	var onMapInteraction = function(rollState) {return thisMovie(swfName).onMapInteraction(rollState)}
	var thisMovie = function(movieName) {
		if (navigator.appName.indexOf('Microsoft') != -1) return window[movieName];
		else return document[movieName];
	}

	YUD.batch(this.getElementsByTagName('area'), function(el) {
        var panel = document.getElementById(el.id + 'Panel');
		var anchorLinks = panel.getElementsByTagName('a');
        if (!panel) return;
        var hideTimeout = 0;
        YUE.addListener([el,panel],'mouseover',function(e) {
            // exclude delWebb
            if(getCurrSite() != 'DelWebb'){
                //onMapInteraction('rollOver'); // stop flash animation
            }
            if (hideTimeout) clearTimeout(hideTimeout);
            panel.style.display = 'block';
            animatePopup(panel,'easeIn');
        });
        YUE.addListener([el,panel],'mouseout',function(e) {
            hideTimeout = setTimeout(function() {panel.style.display = 'none'},100);
            // exclude Delwebb
            if(getCurrSite() != 'DelWebb'){
                //onMapInteraction('rollOut'); // continue flash animation
            }
        });
		for (var i=0;i<anchorLinks.length;i++) {YUE.on(anchorLinks[i],'click',function() {window.location = urlSiteBase + '/find-a-home/Search.aspx?state=' + this.title + '&brand=' + productSearchBrandIds[getCurrSite()] + '&fc=' + this.title})}
    });

},this,false);

// map animation
var animatePopup = function (obj,easeType) {
	var anim;
	if (easeType == 'easeIn') anim = new YUA(obj,{opacity:{to:100}},1,YAHOO.util.Easing.easeIn);
	else                      anim = new YUA(obj,{opacity:{to:0}},1,YAHOO.util.Easing.easeOut);
	anim.animate();
}

// on sumbit, send correct params to product search
var homepageInitSearch = function() {
	var field1 = document.getElementById('customDropDown');
	var region = document.getElementById("regionsPerState");
	var submit1 = document.getElementById('homesAvailableSubmit');
	var field2 = document.getElementById('multiFamily');
	var submit2 = document.getElementById('multiFamilySubmit');
	var field3 = document.getElementById('selectActivities');
	var submit3 = document.getElementById('selectActivitiesSubmit');
	var field4 = document.getElementById('communityAutoCompleteSearch');
  var submit4 = document.getElementById('autocompleteSubmit');
  var field4Default = 'Type Neighborhood Name';
  var auto = document.getElementById('autoCompleteContainer');
  
  if (field4) { field4.value = field4Default; }
  
	// submit homes available now (pulte)
	var submitHomesAvailableNow = function() {
	    //alert(document.getElementById('ddValue2').value); alert(optn2[document.getElementById('ddValue2').value]);
	    var ddValue = document.getElementById('ddValue2').value;
		if (ddValue!="0") {
			if (YUD.hasClass(YUD.getPreviousSibling(field1),'error')) YUD.getPreviousSibling(field1).style.display='none'; //clear error
			if (YUD.hasClass(YUD.getPreviousSibling(field2),'error')) YUD.getPreviousSibling(field2).style.display='none'; //clear error
			if (field2 != null) field2.value = ''; // clear other field
			window.location = urlSiteBase + optn2[ddValue]; 
		}
		else {if (!YUD.getPreviousSibling(field1) || (YUD.getPreviousSibling(field1).style.display=='none')) showError(field1)}
	}


	// submit townhomes and condos (pulte)
	var submitTownhomesCondos = function() {
		if (field2.value) {
			if (YUD.hasClass(YUD.getPreviousSibling(field1),'error')) YUD.getPreviousSibling(field1).style.display='none'; //clear error
			if (YUD.hasClass(YUD.getPreviousSibling(field2),'error')) YUD.getPreviousSibling(field2).style.display='none'; //clear error
			field1.value = ''; // clear other field
			window.location = urlSiteBase + '/find-a-home/Search.aspx?state=' + field2.value + '&brand=' + productSearchBrandIds[getCurrSite()] + '&htype=2,3&fc=multi' + field2.value;
		}
		else {if (!YUD.getPreviousSibling(field2)) showError(field2)}
	}
	
	var clearField1 = function() {
		if (YUD.hasClass(YUD.getPreviousSibling(field1),'error')) YUD.getPreviousSibling(field1).style.display='none'; //clear error
		if (YUD.hasClass(YUD.getPreviousSibling(field4),'error')) YUD.getPreviousSibling(field4).style.display='none'; //clear error
	}
	
	var clearField4 = function() {
	  if(field4.value == field4Default) { field4.value=''; }
		if (YUD.hasClass(YUD.getPreviousSibling(field4),'error')) YUD.getPreviousSibling(field4).style.display='none'; //clear error
		if (YUD.hasClass(YUD.getPreviousSibling(field1),'error')) YUD.getPreviousSibling(field1).style.display='none'; //clear error
  }
	
	YUE.on(field1,'focus',clearField1);
	YUE.on(submit1,'click',submitHomesAvailableNow);
	YUE.on(submit2,'click',submitTownhomesCondos);
	YUE.on(field4,'click',clearField4);
	YUE.on(field4,'focus',clearField4);
	YUE.on(submit4,'click',submitCommunityName);

	// figure out which select element to submit
	var submitForm = function() {
		if (field1.value) submitHomesAvailableNow();
		else if (field4.value) submitCommunityName();
	}

	// submit on 'ENTER' keypress (ie)
	var homepageKeyPress = new YAHOO.util.KeyListener(document.findAhome,{keys:13},submitForm); 
	homepageKeyPress.enable();

  if (auto!=null) {
    if (YAHOO.env.ua.gecko > 0) { // firefox
      auto.style.top = field4.offsetTop - 33 + "px";
    } else {
      auto.style.top = field4.offsetTop + 17 + "px";
    }
  }
  
	// submit points of interest (divosta)
	YUE.on(submit3,'click',function() {
		if (field3.value) {
			if (YUD.hasClass(YUD.getPreviousSibling(field3),'error')) YUD.getPreviousSibling(field3).style.display='none'; //clear error
			window.location = urlSiteBase + '/find-a-home/Search.aspx';
		}
		else {if (!YUD.getPreviousSibling(field3)) showError(field3)}
	});

	var showError = function(which) {
		var el = document.createElement('div');
		el.className = 'error';
		el.innerHTML = 'Please select a value!'
		YUD.insertBefore(el,which);
	}
}

var submitCommunityName = function() {
  var field4 = document.getElementById('communityAutoCompleteSearch');
  if ( submitAutoComplete(true) == false) showNameError(field4);
}

var showNameError = function(which) {
		var el = document.createElement('div');
		var submit4 = document.getElementById('autocompleteSubmit');
		if (!YUD.hasClass(YUD.getPreviousSibling(which),'error') || YUD.getPreviousSibling(which).style.display=='none') {
		  el.className = 'error';
		  el.innerHTML = 'Please enter correct neighborhood name!'
		  YUD.insertBefore(el,which);
		  if (submit4 != null) {
		    submit4.focus();
		  }
		}
	}

// populate current states into dropdowns
var homepagePopulateDropdowns = function() {
    // starting from 1.0.6 drop down is build in .net
    //var homesAvailable = document.getElementById('homesAvailable');
	//var multiFamily = document.getElementById('multiFamily');
    //populateStateOptions([homesAvailable, multiFamily]);
    //if(homesAvailable.options[0].text == "Select") homesAvailable.options[0].text = "Select State";
}

var homepagePopulateRegions = function() {
    var st = document.getElementById("homesAvailable");
    var stateAbbr = st.value;
    var regionCount = 0;
    var rg = document.getElementById("regionsPerState");
    for(i=rg.options.length-1;i>=0;i--) { rg.remove(i); }
    for (r=0; r<reg.length; r++) {
        if (reg[r][0]==stateAbbr) {
            regionCount++;
        }
    }
    if (regionCount==0 || regionCount>1) {
        var optn = document.createElement("OPTION");
        optn.text = "Select Region";
        optn.value = "";
        optn.selected = true;
        rg.options.add(optn);
    }
    for (r=0; r<reg.length; r++) {
        if (reg[r][0]==stateAbbr) {
            var optn = document.createElement("OPTION");
            optn.text = reg[r][2];
            optn.value = reg[r][1];
            if (regionCount==1) { optn.selected = true; }
            rg.options.add(optn);
        }
    }
}


// ----------------------------------------------------------------------------------------------
