//set Global Variables to reference section
var Nav = {
	start: function(){//preps mainNav elements
		var myHome = $('setHome');
		if(myHome){
			var locationObj = window.location; //gets URL
			var locationStr = locationObj.toString(); //sets URL to string
			window.location = locationStr + '#setHome';
		}
	
		//create an array of all page names to test against
		var pages = ['setHome','aboutus','ourcommunities','homebuyersguide','landowners','investors','workwithus'];
		var menu = $$('#topNav li a'); // get nav elements
		var myFx = []; //create array to use for effects
		
		//Find out what page we are on and set it to variable current
		var current = window.location; // get URL address from menu bar
		current = current.toString(); //convert Variable to string
	
		
		// Cycle thru each element of menu, and set opacity of buttons to 0 and apply rollover functions to it.  
		menu.each(function(el,i){ 
			if (!(current.test(pages[i],'i'))){ //If the current page is equal to menu[i], skip
				myFx[i] = new Fx.Style(el, 'opacity', {'duration': 250, 'wait': false, 'transition': Fx.Transitions.quadOut}).set(0.01); //transition to call
				
				el.addEvent('mouseover', function(){myFx[i].start(1);});//set transitions on mouse events
				el.addEvent('mouseout', function(){myFx[i].start(0.01);});
			}
		});
	}
};
var Contact = {
	start: function(){
		var mySelect = $('contactSelect'); //contactSelect
		var myTarget = $('htmlTarget');	//define target to dump content into
		
		if(mySelect){ // If Variable is Set
			//Define hidden divs to pull content from
			var div0 = $('opt0');
			var div1 = $('opt1');
			var div2 = $('opt2');
			var div3 = $('opt3');
			var div4 = $('opt4');
			var div5 = $('opt5');
			var div6 = $('opt6');
			var div7 = $('opt7');
		
		
			// Check for Realtor or Jobs in URL
			var locationObj = window.location; //gets URL
			var locationObj = locationObj.toString(); //sets URL to string
			var jobsTest = locationObj.test("jobs", "i"); // check if string 'jobs' is anywhere in the URL
			var realtorTest = locationObj.test("realtor", "i"); // check is string 'realtor' is anywhere in the URL
		
			if(jobsTest){ //set select and innerHTML for jobs
				mySelect.selectedIndex = '5';
				myTarget.innerHTML = div5.innerHTML;
			}
			if(realtorTest){ //set select and innerHTML for realtor
				mySelect.selectedIndex = '2';
				myTarget.innerHTML = div2.innerHTML;
			}
		
			Contact.cleanup(); // initial call to for rollover state for btnSubmit
		}
		
		//Add Functionality to Select DropDown
		if(mySelect){
			
			mySelect.addEvent('change',function(){
				myTarget.innerHTML = ''; //clear content
				selIndex = mySelect.selectedIndex; // define selected index			
				
				//Show content based on selected index
				if(selIndex == '0'){myTarget.innerHTML = div0.innerHTML;}
				if(selIndex == '1'){myTarget.innerHTML = div1.innerHTML;}
				if(selIndex == '2'){myTarget.innerHTML = div2.innerHTML;}
				if(selIndex == '3'){myTarget.innerHTML = div3.innerHTML;}
				if(selIndex == '4'){myTarget.innerHTML = div4.innerHTML;}
				if(selIndex == '5'){myTarget.innerHTML = div5.innerHTML;}
				if(selIndex == '6'){myTarget.innerHTML = div6.innerHTML;}
				if(selIndex == '7'){myTarget.innerHTML = div7.innerHTML;}
				
				Contact.cleanup(); //call function to cleanup new site tree
			});
		}
	},
	cleanup: function(){ // function only called if mySelect found in Contact.start()
		
		//create rollover effect for submit button
		var myButton = $$('#htmlTarget table tr td .btnSubmit');
		var myFx = new Fx.Style(myButton[0], 'opacity', {'duration':300, 'wait':false, 'transition':Fx.Transitions.quadOut});
		
		myButton[0].addEvent('mouseover', function(){myFx.start(0.75);});
		myButton[0].addEvent('mouseout', function(){myFx.start(1);});
		
		<!-- Call SIFR to add Flash Text -->
		sIFR.replaceElement(".genericContent h3", named({sFlashSrc: "../sifr/dinMedium.swf", sColor: "#FFFFFF", sWmode:"transparent", sCase: "upper"}));
	}
}
var Legal = {
	start: function(){
		//Set Legal Link in header
		var legal = $('legalLink');
		if(legal){
		legal.setProperty('href','#');
		legal.setProperty('target','');
		legal.addEvent('click',function(){ window.open ("/legal.htm","legal","scrollbars =1,menubar=0,resizable=1,width=350,height=150");});
		}
		
		//set privacy link in footer
		var privacy = $('privacyLink');
		if(privacy){
		privacy.setProperty('href','#');
		privacy.setProperty('target','');
		privacy.addEvent('click',function(){ window.open ("/PrivacyPolicy.aspx","legal","scrollbars =1,menubar=0,resizable=1,width=770,height=350");});
		}
		
		//set privacy link in footer
		var terms = $('termsLink');
		if(terms){
		terms.setProperty('href','#');
		terms.setProperty('target','');
		terms.addEvent('click',function(){ window.open ("/TermsofUse.aspx","legal","scrollbars =1menubar=0,resizable=1,width=770,height=350");});
		}
	}
}
var Gallery = {
	start: function(){
		var thumbs = $$('.galleryThumbs a'); // grab a around thumbnail
		var target = $E('img', 'galleryTarget'); // main image
		var lightboxLink = $('galleryTarget'); // link around main image
		myFx = [];
		
		if(target){ // checks if target is set
			thumbs.each(function(element,i){
				var newHref = thumbs[i].getProperty('href'); // sets variable for new main Img Source before clearing it
				thumbs[i].setProperty('href','#'); // ensures that a tag won't actually link to anything
				myFx[i] = new Fx.Style(thumbs[i], 'border-color', {'duration':250, 'wait':false, 'transition':Fx.Transitions.quadOut}); // style for hover on thumbs
				
				thumbs[i].addEvent('click', function(){
					target.setProperty('src',newHref); //sets new src for main image
					newTextAry = newHref.split(".jpg"); // splits original string at .jpg
					newerHref = newTextAry[0] + '_l.jpg'; // appends _l.jpg to first part of split string
					lightboxLink.setProperty('href',newerHref); // sets new href for lightbox link
				});
				thumbs[i].addEvent('mouseover',function(){myFx[i].start('FFF');}); //hover effects
				thumbs[i].addEvent('mouseout',function(){myFx[i].start('82B0CC');});
			});
		Gallery.set(); //call next function
		}
	},
	set:function(){ //preps initial values
		var target = $E('img', 'galleryTarget'); //grabs mainImg
		var lightboxLink = $('galleryTarget');
		
		if (lightboxLink){ // checks if variable is set
			var newHref = target.getProperty('src');
			var NewTxtAry = newHref.split('.jpg');
			var newerHref = NewTxtAry[0] + '_l.jpg';
			lightboxLink.setProperty('href', newerHref); 
		}
	}
}
var FAQ = {
	
	start: function() {
		var myElement = $$('.answer'); // creates array of all elements with .story
		var myTrigger = $$('.question'); // creates array of all elements with .individual
		if (myTrigger){
			myElement.each(function(element,i){ //iterates through array
				var mySlider = new Fx.Slide(myElement[i], {duration: 500}); // sets transition
				myTrigger[i].addEvent('click', function(){mySlider.toggle();}); // adds toggle to specific element 
				mySlider.hide(); // hide all elements
			});
		}
    }
};
var Jobs = {
	
	start: function() {
		var myElement = $$('.job'); // creates array of all elements with .story
		var myTrigger = $$('.jobTitle'); // creates array of all elements with .individual
		
		if (myTrigger){
			myElement.each(function(element,i){ //iterates through array
				var mySlider = new Fx.Slide(myElement[i], {duration: 500}); // sets transition
				myTrigger[i].addEvent('click', function(){mySlider.toggle();}); // adds toggle to specific element 
				mySlider.hide(); // hide all elements
			});
		}
    }
};
var Leadership = {
	
	start: function() {
		var myElement = $$('.story'); // creates array of all elements with .story
		var myTrigger = $$('.individual'); // creates array of all elements with .individual
		
		if(myTrigger){
			myElement.each(function(element,i){ //iterates through array
				var mySlider = new Fx.Slide(myElement[i], {duration: 500}); // sets transition
				myTrigger[i].addEvent('click', function(){mySlider.toggle();}); // adds toggle to specific element 
				mySlider.hide(); // hide all elements
			});
		}
    }
};
var Rollover = {
	
	start: function() {
		var myElement = $('btnExploreCommunities'); // creates array of all elements with .story
		if (myElement){
			myElement.addEvent('mouseover', function(){myElement.setProperty('src','../gfx/exploreComm_tout_hov.jpg');});
			myElement.addEvent('mouseout', function(){myElement.setProperty('src','../gfx/exploreComm_tout.jpg');});
		}
		
		var myInteriorTout = $$('.interiorImage');
		if (myInteriorTout){
			for(var i=0; i < myInteriorTout.length; i++){
				myInteriorTout.addReflection();
			}
		}
	}
};
var Search = {
	
	start: function() {
		var mySearch = $('inputTopSearch');
			if(mySearch){
			mySearch.setProperty('value', 'Search Here...'); // Set Initial Search Value
			mySearch.addEvent('focus', function(){
				mySearch.setProperty('value','');
			});
		}
		
		//go button
		var btnGo = $('btnGoTop'); //get btn element
		var myFx = new Fx.Style(btnGo, 'opacity', {'duration':300, 'wait':false, 'transition':Fx.Transitions.quadOut}); //set style
		
		if(btnGo){
			btnGo.addEvent('mouseover', function(){myFx.start(0.5);});
			btnGo.addEvent('mouseout', function(){myFx.start(1);});
		}
	}
};
/*var Kwick = {
	parseKwicks: function(){
		var kwicks = $$('.kwick');
		var fx = new Fx.Elements(kwicks, {wait: false, duration: 200, transition: Fx.Transitions.quadOut});
		
		
		kwicks.each(function(kwick, i){
			kwick.addEvent('mouseover', function(e){
				e = new Event(e).stop();
				var obj = {};
				obj[i] = {
					'width': [kwick.getStyle('width').toInt(), 185]
				};
				kwicks.each(function(other, j){
					if (other != kwick){
						var w = other.getStyle('width').toInt();
						if (w != 133) obj[j] = {'width': [w, 133]};
					}
				});
				fx.start(obj);
			});
		});
		
		document.addEvent('mouseover', function(e){
			e = new Event(e);
			var rel = e.relatedTarget;
			if (!rel) return;
			if (rel.hasClass && (rel.hasClass('kwicks') || rel.hasClass('kwick') || rel.id == 'kwick')){
				var obj = {};
				kwicks.each(function(other, j){
					obj[j] = {'width': [other.getStyle('width').toInt(), 150]};
				});
				fx.start(obj);
			};
		});
	}
}*/
var Site = {
	
	rollOverEffect: function(){
		//btnReadMore Effects
		var button = $$('.btnReadMore img');
		var buttonFx = [];
		
		if(button){ //if button is set
			button.each(function(element,i){
				buttonFx[i] = new Fx.Style(element,'margin-top',{'duration': 250, 'wait':false});
				element.addEvent('mouseover', function(){
					buttonFx[i].start(-19);
				});
				element.addEvent('mouseout', function(){
					buttonFx[i].start(0);
				});
			});
		}
		
		// ACCORDIAN HOVER EFFECTS
		var sideblocks = $$('.accordion li');//initialize variables
		var overfxs = [];
		var tocolor = 'B99765';
		var fromcolor = 'fff';
		
		//begin loop to assign Fx.Styles to each elemtn of array
		sideblocks.each(function(element,i){
			//get first element (element[i])
			var first = element.getFirst();
			//if first element doesnt have a tag, bounce
			if (!first || first.getTag() != 'a') return;								 
			//else apply text effect to element					 
			overfxs[i] = new Fx.Styles(first, {'duration': 250, 'wait': false});
			//now add mouseover events to each element of array
			element.addEvent('mouseover', function(){
				overfxs[i].start({
					'margin-left': 10,
					'color': tocolor
					
				});
			});
			element.addEvent('mouseout', function(){
				overfxs[i].start({
					'margin-left': 0,
					'color': fromcolor
				});
			});
			
		})
		
		// ACCORDIAN TITLE ANIMATION
		var h3blocks = $$('#navigation h3'); //target element to affect
		var tocolor2 = 'fff';
		var fromcolor2 = 'A0C5DB';
		var overfxs2 = [];
		//begin loop to assign Fx.Styles to each elemtn of array
		h3blocks.each(function(element,i){
			//get first element (element[i])
			var first = element.getFirst();
			//if first element doesnt have a tag, bounce
			if (!first || first.getTag() != 'a') return;								 
			//else apply text effect to element					 
			overfxs2[i] = new Fx.Styles(first, {'duration': 250, 'wait': false});
			//now add mouseover events to each element of array
			element.addEvent('mouseover', function(){
				overfxs2[i].start({
					'margin-left': 4,
					'color': tocolor2
					
				});
			});
			element.addEvent('mouseout', function(){
				overfxs2[i].start({
					'margin-left': 0,
					'color': fromcolor2
				});
			});
			
		})
		
		var myTouts = $$('.hoverTout');
		var tocolor3 = 'fff';
		var fromcolor3 = '5284A2';
		var myFx = [];
		
			myTouts.each(function(element,i){
				myFx[i] = new Fx.Style(myTouts[i], 'border-color', {'duration': 250, 'wait': false});
				
			element.addEvent('mouseover', function(){
				myFx[i].start(tocolor3);
			});
			element.addEvent('mouseout', function(){
				myFx[i].start(fromcolor3);
			});	
		})	
	}	
};

var Accordion = {

	start: function(){
		//Get array of accordion elements
		var stretchers = $$('div.accordion');
	
		//go thru each item of stretchers, and make them all hidden
		stretchers.each(function(item){
			item.setStyles({'height': '0', 'overflow': 'hidden'});
		});
		Accordion.accordionFunction(stretchers);
	},
	
	accordionFunction: function(myElement){

			//creat array toglers using all header elements
			var togglers = $$('#navigation h3');
			
			//go thru each toggler element and save its default color
			togglers.each(function(toggler, i){
				toggler.defaultColor = toggler.getStyle('background-color');
			});
			
			//start style element for myAccordion 
			var myAccordion = new Fx.Accordion(togglers, myElement, { opacity: true, start: false, transition: Fx.Transitions.quadOut,
				
				//onActive is function call of Fx.Accordion, this is what happens when clicked	
				//here remove inactive state and add active state
				onActive: function(toggler, i){
					toggler.removeClass('inactive');
					toggler.addClass('active');
				},
				
				//onBackground is function call of Fx.Accordion, this is what heppents when another header is clicked
				//here remove active state and add inactive state
				onBackground: function(toggler, i){
					toggler.removeClass('active');
					toggler.addClass('inactive');
				}
			});
		//anchors??
		function checkHash(){
			var found = false;
			$$('h3 a').each(function(link, i){
				if (window.location.hash.test(link.hash)){
					myAccordion.showThisHideOpen(i);
					found = true;	}
			});
			return found;
		}
		if (!checkHash()) myAccordion.showThisHideOpen(0);
	try {		Window.disableImageCache();	}catch(e){}
	}
};

window.addEvent('domready', Nav.start);
window.addEvent('domready', Site.rollOverEffect);
//window.addEvent('domready', Kwick.parseKwicks);
window.addEvent('domready', Leadership.start);
window.addEvent('domready', Jobs.start);
window.addEvent('domready', FAQ.start);
window.addEvent('domready', Rollover.start);
window.addEvent('domready', Gallery.start);
window.addEvent('domready', Search.start);
window.addEvent('domready', Legal.start);
window.addEvent('domready', Contact.start);
window.addEvent('domready', Accordion.start);