/*
 * JavaScript Debug - v0.4 - 6/22/2010
 * http://benalman.com/projects/javascript-debug-console-log/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 * 
 * With lots of help from Paul Irish!
 * http://paulirish.com/
 */
window.debug=(function(){var i=this,b=Array.prototype.slice,d=i.console,h={},f,g,m=9,c=["error","warn","info","debug","log"],l="assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace".split(" "),j=l.length,a=[];while(--j>=0){(function(n){h[n]=function(){m!==0&&d&&d[n]&&d[n].apply(d,arguments)}})(l[j])}j=c.length;while(--j>=0){(function(n,o){h[o]=function(){var q=b.call(arguments),p=[o].concat(q);a.push(p);e(p);if(!d||!k(n)){return}d.firebug?d[o].apply(i,q):d[o]?d[o](q):d.log(q)}})(j,c[j])}function e(n){if(f&&(g||!d||!d.log)){f.apply(i,n)}}h.setLevel=function(n){m=typeof n==="number"?n:9};function k(n){return m>0?m>n:c.length+m<=n}h.setCallback=function(){var o=b.call(arguments),n=a.length,p=n;f=o.shift()||null;g=typeof o[0]==="boolean"?o.shift():false;p-=typeof o[0]==="number"?o.shift():n;while(p<n){e(a[p++])}};return h})(); 

String.prototype.linkify_tweet = function() {
   var tweet = this.replace(/(^|\s)@(\w+)/g, "$1@<a target='_blank' href='http://www.twitter.com/$2'>$2</a>");
   return tweet.replace(/(^|\s)#(\w+)/g, "$1#<a  target='_blank' href='http://search.twitter.com/search?q=%23$2'>$2</a>");
 };



var HistoryHandler = function(loadHandler){


		var _loadHandler = loadHandler;
		                                      
	
		// PageLoad function
		// This function is called when:
		// 1. after calling $.historyInit();
		// 2. after calling $.historyLoad();
		// 3. after pushing "Go Back" button of a browser
		var pageload = function (hash) {
			// alert("pageload: " + hash);
			// hash doesn't contain the first # character.
			//alert('asdf');                            
			
			//console.log(hash);
			if(hash) {

				//alert('time to do something');


				// restore ajax loaded state
				if($.browser.msie) {
					// jquery's $.load() function does't work when hash include special characters like aao.
					hash = encodeURIComponent(hash);
				}

				_loadHandler(hash);


				//$("#load").load(hash + ".html");
			} else {
				// start page
				//$("#load").empty();
				//_loadHandler(hash);
			}
		} ;   
		
		
		return {pageload:pageload};
	
	
};       

var _app =   (function($){
    
	var _btnSearch = {};
	var _boxSearch = {};
	var _btnShare = {};
	var _boxShare = {};
	

    var _initializeVideos = function() {   
	
		//VideoJS.setupAllWhenReady();  
		
      
        $('.container-video').each(function() {

            if (true){ //}!Modernizr.video || $.browser.mozilla) {   //if no HTML5 video, fall back to Flowplayer
                var id = this.id;

              //  $(this).append('<div class="flowplayer-play"><img  src="/wp-content/themes/icavia2011/images/play_large.png" alt="Play this video"></div>');

                
                $('#' + id + ' video').remove();

                //get urls
                var h264Holder = $(this).find('.h264');
                var h264 = h264Holder.val();
                h264Holder.remove();
                                        
				//adjust height of video container (for IE...sigh)
                var heightHolder = $(this).find('.hdnHeight');
                var height = heightHolder.val();
                heightHolder.remove();
                $(this).css("height", height + 'px');


            	//$('#' + id).empty();  //flowplayer requires container target to be empty! otherwise you'll have to double click...
                    
                
                                           
				$f(id, "/wp-content/themes/icavia2011/js/libs/flowplayer/flowplayer-3.2.5.swf", {
				    clip: {
				        url: h264,
				        autoPlay: true,
				        autoBuffering: true
				    },
				    plugins: {
				        controls: null
				    },
				    onLoad: function(){
				        alert("player loaded");
				    }
				});          
				
/*                flowplayer(id, "/wp-content/themes/icavia2011/js/libs/flowplayer/flowplayer-3.2.5.swf", {
                    clip: {
                        url: h264,
                        autoPlay: false
                    }
            	});  */
                                


                  /*
                $(this).click(function() {
					$f("*").each(function() {
						console.log(this.getClip());
					});                      
				
                }); //endclick     */
            } //end if            
        }); //end .each
    } //end _initializevideos
                        
    
  	/*  Search Box functionality
	    ______________________________________________________	*/

	var showSearch = function(e){       
        e.stopPropagation();
		_btnSearch.addClass('nav-search-active');
		_boxSearch.show();


		_btnSearch.bind('click', hideSearch);
		
		$("body").not('.search-box, .search-box input, iframe').unbind("click", hideSearch);                                    
		$("body").not('.search-box, .search-box input, iframe').bind("click", hideSearch); 
		
		$('input.gsc-input').focus();            
		
	}
	var hideSearch = function(e){                            


        e.stopPropagation();
        
		$sender = $(e.target);       
		//debug.log('hide srach ' + $sender.get(0).id);		
		if( $sender.get(0).id == "btn_close_search" ||  (! $sender.hasClass('search-box') && ! $sender.parents().hasClass('search-box'))){        //this will stop working if more layers in the DOM are instered between input elements and .search-box div.


			_btnSearch.removeClass('nav-search-active');         
			_boxSearch.hide();		                    
			$("body").not('.search-box').unbind("click", hideSearch);                                    			
			_btnSearch.unbind('click', hideSearch);
			
		}
	}
                 


	/*  Share Box functionality
	    ______________________________________________________	*/
	var showShare = function(e){       
        e.stopPropagation();

		_boxShare.show();
                                                
		_btnShare.bind('click', hideShare);
		_boxShare.find('input').click(function(){this.select();})
		
		$("body").not('.share-box, .share-box input, iframe').unbind("click", hideShare);                                    
		$("body").not('.share-box, .share-box input, iframe').bind("click", hideShare);             
		
	}
	var hideShare = function(e){                            
		e.stopPropagation();
        
		$sender = $(e.target);
		
		if( $sender.get(0).id == "btn_close_share"  || (! $sender.hasClass('share-box') && ! $sender.parents().hasClass('share-box'))){        //this will stop working if more layers in the DOM are instered between input elements and .search-box div.
               
			_boxShare.hide();		                    
			$("body").not('.share-box').unbind("click", hideShare);                                    			
			_btnShare.unbind('click', hideShare);
			
		}
	}
	
	var embedSocialPlugins = function(){

		var currentUrl = document.location.href;
		var containerFB = $('.container-facebook-api');
		var containerTwitter = $('.container-twitter-api');
		
		containerFB.html('<iframe src="http://www.facebook.com/plugins/like.php?href=' + currentUrl + '&amp;layout=button_count&amp;show_faces=true&amp;width=400&amp;action=like&amp;colorscheme=dark&amp;height=21" scrolling="no" frameborder="0" style="border:none;width:75px; overflow:hidden; height:21px;" allowTransparency="true"></iframe>');
		
		
		containerTwitter.html('<a href="http://twitter.com/share" class="twitter-share-button" data-url="' + currentUrl + '" data-count="none">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>');
		
		
	};
  

	var fixFonts = function(){
        
		var $container = $('#container');


		$container.find('.fix-mac').fixClient({
            os: "mac",
            browser: ["chrome", "safari", "firefox", "opera"],
            cls: "fixed-mac"
        });

		$container.find('.fix-win').fixClient({
            os: "windows",
            browser: ["chrome", "safari", "msie", "firefox"],
            cls: "fixed-win"
        });      
		
		
	}
	
	var  addJavascript = function (jsname,pos) {
		var th = document.getElementsByTagName(pos)[0];
		var s = document.createElement('script');
		s.setAttribute('type','text/javascript');
		s.setAttribute('src',jsname);
		th.appendChild(s);
	}
	
	var fancifyTwitterContent  = function(text){
	  var expLinks = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;       
	  var result =  text.replace(expLinks,"<a target='_blank' href='$1'>$1</a>");                         
	  result = result.linkify_tweet();                                                                    
      return result;
	}
                                                 


	var init = function(){
		
	  _initializeVideos();   
	
	  _btnSearch = $('.nav-search');
	  _boxSearch = $('.search-box');
	                                  
	  _btnShare = $('#nav-secondary-share-this');
	  _boxShare = $('.share-box');
	                                   
	

	  _btnShare.click(showShare);
	  _btnSearch.click(showSearch); 
	  $('#btn_close_share').click(hideShare);
	
	  $('#searchsubmitbutton').click(function(){
		$('#searchform').submit();		
	  });
	
	  $('.share-box input').val(document.location.href);
                                                                      
	  fixFonts();                                                     
	    
	};
	
	
	
	$(init);  //on dom ready
    
	$(window).load(embedSocialPlugins);      
	
	return {hideSearch:hideSearch, addJavascript:addJavascript, fancifyTwitterContent:fancifyTwitterContent};

	
})(jQuery);
