var LWI = {};
LWI.Setup = {
   init:function(){
      var promoSlider = new ImageSlider({
         objToSlide: 'promoSliderHolder',           
         sliderElements: 'a',                
         numOfElementsToSlide: 1,              
         leftBtn: 'leftPrev',              
         rightBtn: 'leftNext'          
      });      
      
      var homePageRightSlider = new ImageSlider({
         objToSlide: 'rightMove',           
         sliderElements: 'li',                
         numOfElementsToSlide: 1,              
         leftBtn: 'rightPrev',              
         rightBtn: 'rightNext',
         isHorizontal: false        
      });
      
      
      //feature slider link fix
      var featureSlider = $('featureSlider');
      if(featureSlider){
         var fauxLink = new Element('a',{
            href:'#',
            id:'fauxLink'
         });
         featureSlider.adopt(fauxLink);
      }
      
      var fieldNotesSlider = new ImageSlider({
         objToSlide: 'featureSliderHolder',           
         sliderElements: 'a',                
         numOfElementsToSlide: 1,              
         leftBtn: 'featureLeft',              
         rightBtn: 'featureRight',
         isHorizontal: true,
         onSlideComplete: function(obj){
   		   var txt = obj.index + " of " + obj.total;
   		   $('sponsorship-slider-index').set('text', txt).set('opacity', 0.5);
   		   var href = $$('#featureSliderHolder a')[obj.index - 1].getProperty('href');
   		   $('fauxLink').setProperty('href', href);
   		}     
      });

      
      var countrySlider = new ImageSlider({
         objToSlide: 'countrySliderHolder',           
         sliderElements: 'li',                
         numOfElementsToSlide: 1,              
         leftBtn: 'countryLeft',              
         rightBtn: 'countryRight',
         isHorizontal: true        
      });
      
      var playlistSlider = new ImageSlider({
   		objToSlide: 'playListScroll',           
   		sliderElements: 'a',           
   		numOfElementsToSlide: 3,         
   		isHorizontal: false,       
   		leftBtn: 'playlistUp',             
   		rightBtn: 'playlistDown'
   	});
	  
	  var playlistSlider = new ImageSlider({
   		objToSlide: 'playlist_length',           
   		sliderElements: 'a',           
   		numOfElementsToSlide: 3,         
   		isHorizontal: false,       
   		leftBtn: 'playlist_up',             
   		rightBtn: 'playlist_down'
   	});
   	
   	var actionSlider = new ImageSlider({
   		objToSlide: 'panel-slider',           
   		sliderElements: 'div.action-section',           
   		numOfElementsToSlide: 1,
   		useMouseWheel: false
   	});
   	
   	var projectSlider = new ImageSlider({
   		objToSlide: 'projectSliderHolder',           
   		sliderElements: 'div.action-section',           
   		numOfElementsToSlide: 1,
   		useMouseWheel: false
   	});
   	
   	var smVideoSlider = new ImageSlider({
   		objToSlide: 'news-video-scroller',           
   		sliderElements: 'a',           
   		numOfElementsToSlide: 1,         
   		leftBtn: 'vidSmallPrev',             
   		rightBtn: 'vidSmallNext'
   	});
   	
   	
      
   	
   	LWI.Events.initActionSectionNav(actionSlider);
   	LWI.Events.initCountrySectionNav(projectSlider, countrySlider);
   	LWI.Utilities.setParentLiAsActive();
   	//LWI.Events.initAutoComplete();
   	LWI.Events.preloadImages();	
   	LWI.Utilities.fixLayout();
   	LWI.Utilities.addHasChildClass();
   	LWI.Utilities.searchDropDown();
      Shadowbox.init();
      $('searchform').addEvent('submit',LWI.Events.searchFormSubmit.bindWithEvent($('searchform')));
      var donationForm = $('donationFormPost');
      if(donationForm){
        donationForm.addEvent('submit', LWI.Events.donationFormSubmit.bindWithEvent(donationForm));
         var donationFormValidator = new FormValidator.Tips($('donationFormPost'), {
            evaluateOnSubmit: false
         });
      }
      //LWI.Utilities.flashHiddenItems('sponsor-left','sponsor-right');//Travis turned this off. causing problems in IE
   	//LWI.Utilities.GEInit("mapDisplay");
      
      var searchToggle = $('searchPanel').getElement('a');
      searchToggle.addEvent('click', function(e){
         e.stop();
         var _top;
         if(searchToggle.hasClass('active')){
            _top = -31;
            searchToggle.removeClass('active');
            $('searchPanel').setStyle('z-index', 999);
         }else{
            searchToggle.addClass('active');
            $('loginPanel').setStyles({'top' : -85, 'z-index' : 1000});
            $('loginPanel').getElement('a').removeClass('active');
            $('searchPanel').setStyle('z-index', 1001);
            _top = 0;
         }
         $('searchPanel').tween('top', _top);
      });
      
      var loginToggle = $('loginPanel').getElement('a');
      loginToggle.addEvent('click', function(e){
         e.stop();
         var _top;
         if(loginToggle.hasClass('active')){
            _top = -85;
            loginToggle.removeClass('active');
         }else{
            loginToggle.addClass('active');
            $('searchPanel').setStyles({'top' : -31, 'z-index' : 1000});
            $('searchPanel').getElement('a').removeClass('active');
            $('loginPanel').setStyle('z-index', 1001);
            _top = 0;
         }
         $('loginPanel').tween('top', _top);
      });
      
      //Navlock
      $$('#nav ul li.hasChild > a').each(function(el, i){
         $(el).addEvent('click', LWI.Events.navLock.bindWithEvent(el));
      });
      $$('#nav ul li.hasChild').each(function(el, i){
         $(el).addEvent('mouseover', function(){
            if($$('a.locked').length == 0){
               $(this).getChildren('a').setStyle('background', 'url(/wp-content/themes/lwiv7/images/layout/dropdown-arrow.png) no-repeat center bottom');
               $(this).getChildren('div').setStyle('display', 'block');
            }
         });
         $(el).addEvent('mouseout', function(){
            if($$('a.locked').length == 0){
               $(this).getChildren('a').setStyle('background', 'none');
               $(this).getChildren('div').setStyle('display', 'none');
            }
         });
      });
      
      //FOCUS BLUR ON INPUTS
      var emailAddr = $('emailAddr');
      if(emailAddr){
         $('emailAddr').addEvent('focus', function(){
            if(this.value == 'your@email.com'){
               this.value = '';
            }
            this.addClass('active');
            $('subscribeHelp').store('inner', $('subscribeHelp').innerHTML);
            $('subscribeHelp').empty();
            $('subscribeHelp').appendText('Enter your email address and press enter.');
         });
         $('emailAddr').addEvent('blur', function(){
            if(this.value.clean() == ''){
               this.value = 'your@email.com';
            }
            this.removeClass('active');
            $('subscribeHelp').empty();
            $('subscribeHelp').innerHTML = $('subscribeHelp').retrieve('inner');
         });
      }
      
      $('search_input').addEvent('focus', function(){
         if(this.value == 'search'){
            this.value = '';
         }
      });
      $('search_input').addEvent('blur', function(){
         if(this.value.clean() == ''){
            this.value = '';
         }
      });
      
      
      //GIVE BUBBLES
      // $$('#nav ul li.give').each(function(el, i){
      //    var span1 = new Element('span',{
      //       id: 'bubblesOne'
      //    });
      //    var span2 = new Element('span',{
      //       id: 'bubblesTwo'
      //    });
      //    el.adopt(span1);
      //    el.adopt(span2);
      //    LWI.Events.giveBubbles();
      //    LWI.Events.giveBubbles.periodical(16000);
      // });
      
      //ADVENT CONSPIRACY PHOTO FLIPPER
      //NOTE: this should be a class, but it's kind of a one off thing
	  //GARY: Fixed no abject error
	  if($('acleftPrev')){
     	 $('acleftPrev').addEvent('click', LWI.Events.acPhotoFlipper.bindWithEvent($('acleftPrev')));
      	$('acleftNext').addEvent('click', LWI.Events.acPhotoFlipper.bindWithEvent($('acleftNext')));
      	LWI.Events.photoFlipperAuto();
	  }
   
   }
};
LWI.Utilities = {
	map:{},
	url: 'http://beta.water.cc/wp-content/themes/lwiv7/media/operations/countries.kml',
	lat: 25.181049346923828,
	lng: -20.79978942871094,
	mzoom:3,
	fixLayout: function(){
		var sets = document.getElementsByTagName("div");
		for (var i = 0; i < sets.length; i++){
			if (sets[i].className.indexOf("m") != -1){
				var divs  = sets[i].getElementsByTagName("div");
				if (divs){
					var mainHeight = sets[i].offsetHeight;
					for (var j = 0; j < divs.length; j++){
						if ((divs[j].className == "l")||(divs[j].className == "r")){
							divs[j].style.height = mainHeight + "px";
						}
					}
				}
			}
		}
	},
	
	addHasChildClass:function(){
		var items = $$('li.page_item');
		items.each(function(_li){
			if(_li.getChildren('ul').length > 0){
				_li.addClass('has_child');
				LWI.Utilities.lastChildClass(_li);
			}
		});
	},
	
	lastChildClass:function(_obj){
	  var items =  _obj.getElements('li');
	  if(items.getLast()){
	     items.getLast().addClass('last-child');
	  }
   },
	
	setParentLiAsActive:function(){
	  var _li = $$('li.current_page_item');
	  _li.each(function(el){
	     var par = el.getParent('li');
	     if(par){
	        par.addClass('is-open');
	     }
	  });
	},

 	thisMovie: function(movieName) {
		if (navigator.appName.indexOf("Microsoft") != -1) {
			return window[movieName];
		}
		else {
			return document[movieName];
		}
	},
	
	GEInit: function(element, url, cords, zoom) {
		
      if (GBrowserIsCompatible()) {
			LWI.Utilities.map = new GMap2(document.getElementById(element),{ size: new GSize(564,380) });
			LWI.Utilities.map.addControl(new GLargeMapControl());
			LWI.Utilities.map.addMapType(G_SATELLITE_3D_MAP);
			LWI.Utilities.map.addControl(new GMapTypeControl());
			//GEvent.addListener(LWI.Utilities.map, "load", LWI.Utilities.GmapLoaded());
			
			var geoXml = new GGeoXml(LWI.Utilities.url); 
			
			LWI.Utilities.map.addOverlay(geoXml);
			LWI.Utilities.map.setCenter(new GLatLng(parseFloat(LWI.Utilities.lat), parseFloat(LWI.Utilities.lng)), parseFloat(LWI.Utilities.mzoom));
			//LWI.Utilities.map.setMapType(G_SATELLITE_3D_MAP);

      }
	},
	openMap: function(url, coords, zoom){
			if(url){
				LWI.Utilities.url = url;
			};
			if(coords){
				var mcoords = coords.split(',');
				LWI.Utilities.lat = mcoords[1];
				LWI.Utilities.lng = mcoords[0];
			};
			if(zoom){
				LWI.Utilities.mzoom = zoom;
			};
			Shadowbox.open({
				player:     'iframe',
				content:    '',
				height:     550,
				width:      750,
				content: '/wp-content/themes/lwiv7/media/operations/index.php?q='+url,
				options:    {
					onFinish: function(item){

					}
				}
			  });
	},
	
	GmapLoaded: function(){
		//var GMImg = $('mapDisplay').getElements('img[src=http://maps.google.com/intl/en_us/mapfiles/mapcontrols2.png]');
	//	if(GMImg){
			//alert(GMImg);
			//GMImg[0].setProperty('src', '/wp-content/themes/lwiv7/media/operations/mapcontrols2.png');
		//}
			LWI.Utilities.map.setMapType(G_SATELLITE_3D_MAP);
   },
      
   searchDropDown: function(){
     var _lis = $$('#search-options-dropdown li ul li');
     var that = this;
     LWI.Globals.searchFilterCookie = Cookie.read('searchFilter') || Cookie.write('searchFilter', 'all', {duration: 30});
     _lis.each(function(el){
        if(!el.hasClass('last')){
           var spanrel = el.getChildren('span')[0].getProperty('rel');
           if(spanrel == LWI.Globals.searchFilterCookie){
               el.addClass('active');
               LWI.Utilities.setSearchFilter(el);
           }
           el.addEvent('click', LWI.Utilities.setActiveSearchFilterClass.pass(el));
        }
     });
   },
   
   setActiveSearchFilterClass:function(obj){
      var _lis = $$('#search-options-dropdown li ul li');
      _lis.each(function(el){
         if(el != obj){
            el.removeClass('active');
         }else{
            el.addClass('active');
            LWI.Utilities.setSearchFilter(el);
         }
      });
   },
   
   setSearchFilter:function(el){
      var span = el.getChildren('span')[0];
      var sFilter = span.getProperty('rel');
      var sText = span.get('text').trim();
      $('searchFilter').setProperty('value', sFilter);
      $$('#search-options-dropdown li span')[0].set('text', sText);
      LWI.Globals.searchFilterCookie = Cookie.write('searchFilter', sFilter, {duration: 30});
   },
   
   flashHiddenItems:function(){
      var el;
      for(var i=0; i<arguments.length; i++){
         el = $(arguments[i]);
         if(el){
            el.setStyle('display', 'block');
            fadeHidden.delay(2000, this, el);
         }
      }
      function fadeHidden(el){
         el.set('tween', {
            onComplete:function(el){
               el.setProperty('style', '');
            }
         });
         el.tween('opacity', [1, 0]);
      };
   }
   

};

LWI.Load = {	

};

LWI.Events = {
		initAutoComplete: function(){
			var args = {url:'/feeder/tags/', onSuccess:function(rtext){
				LWI.Handlers.setAutoComplete(rtext);	
			}};		
			var myRequest = new Request(args);
			myRequest.send();
		},
		initActionSectionNav:function(slider){
			var currentHash = location.hash.substr(1);
			var findId = 'spnav-' + currentHash;
			var foundActive = false;
			var _nav = $$('#sp-nav li');
			_nav.each(function(el, i){
				el.store('index', i);
				el.store('slider', slider);
				el.addEvent('click', LWI.Handlers.scrollActionSection.bindWithEvent(el));
				if(el.id == findId){
					//there is a hash make this tab active and slide to it's section
					slider.slideTo(i);
					el.getElement('a').addClass('active');
					foundActive = true;
				}else{
					el.getElement('a').removeClass('active');
				}
			});
			if((!foundActive) && (_nav.length>0)){
				//there is no hash, make the first tab active
				_nav[0].getElement('a').addClass('active');
			}
		},
		
		initCountrySectionNav:function(sectionSlider, countrySlider ){
			var currentHash = location.hash.substr(1);
			var findId = 'citem-' + currentHash;
			var foundActive = false;
			var _nav = $$('#countrySliderHolder li a');
			_nav.each(function(el, i){
				el.store('index', i);
				el.store('sectionSlider', sectionSlider);
				el.addEvent('click', LWI.Handlers.scrollCountrySection.bindWithEvent(el));
				if(el.id == findId){
					//there is a hash make this tab active and slide to it's section
					sectionSlider.slideTo(i);
					countrySlider.slideTo(i);
					el.addClass('selected');
					foundActive = true;
				}else{
					el.removeClass('selected');
				}
			});
			if((!foundActive) && (_nav.length>0)){
				//there is no hash, make the first tab active
				_nav[0].addClass('selected');
			}
		},   
		
		searchFormSubmit:function(evt){
		   var filter = $('searchFilter').value;
		   var query = $('search-input').value;
		   if(filter == 'maps'){
		      LWI.Utilities.openMap(query);
		      evt.stop();
		   }
      },
      
      donationFormSubmit:function(evt){
         $('submit').setStyle('display', 'none');
         $('submit-processing').setStyle('display', 'block');
         var valid = evt.target.validate();
         if(!valid){
            evt.stop();
            $('submit').setStyle('display', 'block');
            $('submit-processing').setStyle('display', 'none');
         }
      },
      
      navLock: function(o){
         o.stop();
         if($(this).hasClass('locked')){
            LWI.Events.clearNavLock();
            return false;
         }
         LWI.Events.clearNavLock();
         $(this).setStyle('background', 'url(/wp-content/themes/lwiv7/images/layout/dropdown-arrow.png) no-repeat center bottom');
         var div = $(this).getParent().getChildren('div');
         var closeBtn = new Element('a', {
            'class' : 'closeBtn', 
            'onclick': 'LWI.Events.clearNavLock(); return false;',
            'title': 'Click to close',
            'href':'#',
            'id':'navCloseBtn'
         });
         div.grab(closeBtn);
         div.setStyle('display', 'block');         
         $(this).addClass('locked');
      },

      clearNavLock: function(o){
         if(o){
            o.stop();
         }
         var div;
         $$('a.locked').each(function(el, i){
            div = $(el).getParent().getChildren('div');
            div.setStyle('display', 'none');
            $('navCloseBtn').destroy();
            $(el).removeClass('locked');
            $(el).setStyle('background', 'none');
         });
      },
      
      giveBubbles: function(){
         var el = $('bubblesOne');
         el.set('tween', {
            onComplete:function(el){
               el.setProperty('style', '');
            },
            duration: 8000,
            transition: 'linear'
         });
         el.tween('top', "-250px");
         
         var el = $('bubblesTwo');
         el.set('tween', {
            onComplete:function(el){
               el.setProperty('style', '');
            },
            duration: 7000,
            transition: 'linear'
         });
         el.tween('top', "-250px");
      },
      
      preloadImages: function(){
         var img1 = new Asset.image('/wp-content/themes/lwiv7/images/layout/dropdown-bottom.png', {
            onload: function(){
               // console.info('image loaded');
            }
         });
      },
      
      photoFlipperAuto: function(){
         if($('acPhotoFlipper')){
            LWI.Globals.acpfInterval = LWI.Events.acPhotoFlipper.periodical(5000);
         }
      },
      
      acPhotoFlipper: function(e, dir){
         if(e){
            $clear( LWI.Globals.acpfInterval);
            e.stop();
            if(this.hasClass('disabled')){
               return false;
            }
            var dir = (this.id == 'acleftPrev') ? 'prev' : 'next' ;
         }else{
            var dir = 'next';
            if(LWI.Globals.acpfIndex == (LWI.Globals.acpfLinks.length - 1)){
               $('acleftNext').addClass('disabled');
               $('acleftPrev').removeClass('disabled');
               LWI.Globals.acpfIndex = -1;
            }
         }

         LWI.Globals.acpfIndex = (dir == 'prev') ? LWI.Globals.acpfIndex - 1 : LWI.Globals.acpfIndex + 1;
         var index = LWI.Globals.acpfIndex;
         var h1diff =  -25;
         var imgDiff =  -145;
         var pDiff =  -30; 
         
         $('acpfImageOverlay').setProperty('href', LWI.Globals.acpfLinks[index]);
      
         
         $('acleftNext').removeClass('disabled');
         $('acleftPrev').removeClass('disabled');
         if(LWI.Globals.acpfIndex == (LWI.Globals.acpfLinks.length - 1)){
            $('acleftNext').addClass('disabled');
            $('acleftPrev').removeClass('disabled');
         }
         
         if(LWI.Globals.acpfIndex ==  0){
            $('acleftPrev').addClass('disabled');
            $('acleftNext').removeClass('disabled');
         }
         
      
         $('acpfHeadlineScroll').set('tween', {duration: 'short'});
         $('acpfHeadlineScroll').tween('bottom', index * h1diff);
      
         $('acpfImageLeft').set('tween', {duration: 'short'});
         $('acpfImageLeft').tween('bottom', index * imgDiff);
      
         $('acpfImageRight').set('tween', {duration: 'short'});
         $('acpfImageRight').tween('top', index * imgDiff);
      
         $('acpfCopyScroll').set('tween', {duration: 'short'});
         $('acpfCopyScroll').tween('top', index * pDiff);
      }
};

LWI.Handlers = {
	activePlaylistItem: null,
	
	setAutoComplete: function(rtext){
			var tokens = rtext.split(',');
			// Our instance for the element with id "demo-local"
			new Autocompleter.Local('search-input', tokens, {
			'minLength': 1, // We need at least 1 character
			'zIndex':1000,
			'multiple': false, // Tag support, by default comma separated
			'relative':true
		});
	},
	
	countryClick: function(args) {
		LWI.Utilities.thisMovie("shadowbox_content").showReg(args.coords, args.title);	
	},
	
	scrollActionSection: function(evt){
		var _slider = this.retrieve('slider');
		var _index = this.retrieve('index');
		_slider.slideTo(_index);
		location.hash = this.id.replace(/spnav-/g, '');
		this.getParent().getElements('li').each(function(el, i){
			el.getElement('a').removeClass('active');
		});
		this.getElement('a').addClass('active');
		evt.stop();
	},
	
	scrollCountrySection: function(evt){
		var _slider = this.retrieve('sectionSlider');
		var _index = this.retrieve('index');
		_slider.slideTo(_index);
		location.hash = this.id.replace(/citem-/g, '');
		this.getParent().getParent().getElements('li a').each(function(el, i){
			el.removeClass('selected');
		});
		this.addClass('selected');
		evt.stop();
	}
	
};

LWI.XHTTP = {
	updateGiftCard: function(ptid, guid){
	   var date = new Date();
      var d = date.getSeconds();
		if(guid){
		var req = new Request({
			method: 'get',
			url: '/wp-content/themes/lwiv7/controls/giftcard/update.php?gcode=' + guid +'&ptid=' + ptid +'&nocache=' + d,
			data: { 'do' : '1' },
			onRequest: function() { 
			
			},
			onComplete: function(response) {
				var tArr;
				tArr = response.split("_");
				//alert('response=' + response);
				$('reedCount').set('text', '$' + tArr[0]);
				if(tArr[1]){
						$('ptotal_' + ptid).set('text', '$' + tArr[1]);
						$('ptotal_' + ptid).morph('.tchange');
				}
			}
		}).send();	
		}
	}
};

LWI.Globals = {
	activePlaylistItem: null,
	searchFilterCookie: null,
	bubbleButton: null,
	acpfIndex: 0,
	acpfInterval: null,
	acpfLinks: ['/initiatives/adventconspiracy/water-on-christmas/','/initiatives/adventconspiracy/a-whole-lot-of-love/','/initiatives/adventconspiracy/one-incredible-gift/']
};



window.addEvent('domready', function(){
   LWI.Setup.init();
});

