var mylib =
{
	contentslide :
	{
		init : function()
		{
			  //********************************************************************
			  //Things to enhance the page

				$('#tab').click(function() {
				    $('#modes').slideToggle("fast");
				});

		}
	},
	sharebox :
	{
		init : function()
		{
			  //********************************************************************
			  //Things to enhance the page

				$('#share-button').click(function() {
				    $('#share-box').fadeToggle(); 
				});

		}
	},
	colorbox :
	{
		init : function()
		{
			  //********************************************************************
			  //Things to enhance the page
			  	
				$(".colorboxVolunteer").colorbox({width:700, height:"80%", iframe:true});
				$("div.volunteerBox a").colorbox({width:700, height:"80%", iframe:true});
				$(".colorboxYoutube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
				$(".question").colorbox({width:700, height:450, iframe:true});
				$(".reflection").colorbox({width:850, height:"80%", iframe:true});
				$(".vtvids").colorbox({width:600, height:500, iframe:true});

	
		}
	},
	candidateselect :
	{
		init : function()
		{
			  //********************************************************************
			  //Things to enhance the page

				$('#candidateNameSelect').change(function() {
				    var base_url=$('#base_url').val();
				    var name=$('#candidateNameSelect').val();
				    window.location.replace(base_url+"site/candidate/"+name);
				});
				
				$('#candidateCountySelect').change(function() {
				    var base_url=$('#base_url').val();
				    var name=$('#candidateCountySelect').val();
				    $('#AJAXcandidateItems').hide("fast");
				    $('#AJAXcandidateItems h3').hide("fast");
		            $('#AJAXcandidateItems .data').hide("fast");
				    
				    updateCountyCandidates();
				});

		}
	},
	fancyselect :
	{
		init : function()
		{
			  //********************************************************************
			  //Things to enhance the page
	
				$('#candidateNameSelect').selectmenu({
					style:'dropdown', 
					format: addressFormatting,
					maxHeight: 150
				});
				
				$('#candidateCountySelect').selectmenu({
					style:'dropdown',
					maxHeight: 150
				});


		}
	},	
	navigation :
	{
		init : function()
		{			  
			  //********************************************************************
			  //main navigation
			  
			        var config = {    
				         sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)    
				         interval: 200,  // number = milliseconds for onMouseOver polling interval    
				         over: doOpen,   // function = onMouseOver callback (REQUIRED)    
				         timeout: 200,   // number = milliseconds delay before onMouseOut    
				         out: doClose    // function = onMouseOut callback (REQUIRED)    
				    };
				    
				    function doOpen() {
				        $(this).addClass("hover");
				        $('ul:first',this).css('visibility', 'visible');
				    }
				 
				    function doClose() {
				        $(this).removeClass("hover");
				        $('ul:first',this).css('visibility', 'hidden');
				    }
				
				    $("ul.dropdown li").hoverIntent(config);
				    
				    $("ul.dropdown li ul li:has(ul)").find("a:first").append(" <span class=\"raquo\">&raquo;</span> ");
				    


		}
	},	
	AJAXsocial :
	{
		init : function()
		{			  
			  
			updateTwitter('3', '#AJAXtwitter4');	    
			//updateYoutube('3', '#AJAXyoutube3');
			updateYoutubeTitle('3', '#AJAXyoutube3');
			updateTwitter('20', '#social-twitter');	    
			updateYoutube('20', '#broadcast-youtube');

		}
	}
		
}


jQuery.fn.fadeToggle = function(speed, easing, callback) {
	return this.animate({opacity: 'toggle'}, speed, easing, callback);  
};

function myTimestamp(){  
  	tstmp = new Date();
  	return tstmp.getTime();
}

		//a custom format option callback
		var addressFormatting = function(text){
			var newText = text;
			//array of find replaces
			var findreps = [
				{find:/^([^\-]+) \- /g, rep: '<span class="ui-selectmenu-item-header">$1</span>'},
				{find:/([^\|><]+) \| /g, rep: '<span class="ui-selectmenu-item-content">$1</span>'},
				{find:/([^\|><\(\)]+) (\()/g, rep: '<span class="ui-selectmenu-item-content">$1</span>$2'},
				{find:/([^\|><\(\)]+)$/g, rep: '<span class="ui-selectmenu-item-content">$1</span>'},
				{find:/(\([^\|><]+\))$/g, rep: '<span class="ui-selectmenu-item-footer">$1</span>'}
			];
			
			for(var i in findreps){
				newText = newText.replace(findreps[i].find, findreps[i].rep);
			}
			return newText;
		}


function updateCountyCandidates(){
	  //alert('Updating Candidate List');
	  var base_url = $("#base_url").val();
	  var county_id = $("#candidateCountySelect").val();
	  var url = base_url+"/site/candidateByCounty/"+county_id;
	  
	  var info = 'county_id='+county_id+'&avoidcache='+myTimestamp();
	  $.ajax({
	    	  type: "POST",
	    	  url: url,
	    	  dataType: "html",
	    	  data: info,
	    	  success: function(html){
	    	    $('#AJAXcandidateItems').slideDown("slow");
		        $("#AJAXcandidateItems").html(html);
		        $('#AJAXcandidateItems h3').fadeIn("fast");
		        $('#AJAXcandidateItems .data').fadeIn("fast");
	  		  }
	  });

	  return false;
}


function updateTwitter(limit, cssID){
	  //alert('Updating Twitter');
	  var base_url = $("#base_url").val();
	  var url = base_url+"/ajax/twitter/"+limit+"/"+myTimestamp();
	  $(cssID).html('&nbsp;&nbsp;&nbsp;&nbsp;Loading...');
	  var info = 'limit='+limit+'&avoidcache='+myTimestamp();
	  $.ajax({
	    	  type: "POST",
	    	  url: url,
	    	  dataType: "html",
	    	  data: info,
	    	  timeout: "100000",
	    	  success: function(html){
		        if(html==''){
		        	$(cssID).html('&nbsp;&nbsp;&nbsp;&nbsp;No Items Found');
		        }else{
		        	$(cssID).html(html);
		        }
	  		  },
	    	  error: function(html){
		        $(cssID).html('Error');
	  		  }
	  });

	  return false;
}


function updateYoutube(limit, cssID){
	  //alert('Updating Candidate List');
	  var base_url = $("#base_url").val();
	  var url = base_url+"/ajax/youtube/"+limit+"/"+myTimestamp();
	  $(cssID).html('Loading...');
	  var info = 'limit='+limit+'&avoidcache='+myTimestamp();
	  $.ajax({
	    	  type: "POST",
	    	  url: url,
	    	  dataType: "html",
	    	  data: info,
	    	  timeout: "100000",
	    	  success: function(html){
		        if(html==''){
		        	$(cssID).html('No Items Found');
		        }else{
		        	$(cssID).html(html);
		        }
	  		  },
	    	  error: function(html){
		        $(cssID).html('Error');
	  		  }
	  });

	  return false;
}

function updateYoutubeTitle(limit, cssID){
	  //alert('Updating Candidate List');
	  var base_url = $("#base_url").val();
	  var url = base_url+"/ajax/youtubetitle/"+limit+"/"+myTimestamp();
	  $(cssID).html('Loading...');
	  var info = 'limit='+limit+'&avoidcache='+myTimestamp();
	  $.ajax({
	    	  type: "POST",
	    	  url: url,
	    	  dataType: "html",
	    	  data: info,
	    	  success: function(html){
		        if(html==''){
		        	$(cssID).html('No Items Found');
		        }else{
		        	$(cssID).html(html);
		        }
	  		  },
	    	  error: function(html){
		        $(cssID).html('Error');
	  		  }
	  });

	  return false;
}

$(window).load(function() {	

  mylib.contentslide.init();	
  mylib.sharebox.init();
  mylib.navigation.init();
  mylib.candidateselect.init();	
  mylib.fancyselect.init();	
  mylib.colorbox.init();
  mylib.AJAXsocial.init();

});
