/* the following is used to fire an analytics page tracking on search form submission */
/* dynamic jquery inclusion from http://weblogs.asp.net/joelvarty/archive/2009/05/07/load-jquery-dynamically.aspx */

var jQueryScriptOutputted = false;
function initJQuery() {
    
    //if the jQuery object isn't available
    if (typeof(jQuery) == 'undefined') {
    
        if (! jQueryScriptOutputted) {
            //only output the script once..
            jQueryScriptOutputted = true;
            
            //output the script (load it from google api)
            document.write("<scr" + "ipt type=\"text/javascript\" src=\"/scripts/jquery/jquery-1.3.1.min.js\"></scr" + "ipt>");
        }
        setTimeout("initJQuery()", 50);
    } else {
        (function($){	// scope wrapper -----------------
			$(function() {
			
				
				//do one set for design gallery
				if( window.location.href.indexOf( 'design-gallery') > 0 ){
					// ** NOTE ** cannot bind on #DisplayIndexForm, because it's used twice in the page on the search results...
				
					//main search form
					$('form','#filter-results').bind('submit',function(){
						var eventAction = $('#DisplayStyle option:selected').text() + '-' + $('#DisplaySize option:selected').text();
						var desiredElements = GetDesiredElements();										
						ReportCustomEvent('Design Gallery Action', eventAction, desiredElements);
					});
					//footer search string
					$('form','#find-number').bind('submit',function(){
						var eventAction = $('#DisplayStyle option:selected').text() + '-' + $('#DisplaySize option:selected').text() + '-' + GetDesiredElements();
						ReportCustomEvent('Design Gallery Search', eventAction, $('#item-num').val());
					});
					//click on gallery item
					$('a.tooltip','#gallery-list li').bind('click', function(){
						var eventAction = $('#DisplayStyle option:selected').text() + '-' + $('#DisplaySize option:selected').text() + '-' + GetDesiredElements();
						var pageNumber = parseInt( $('#first-paging span.current').text() );
						if( pageNumber < 10 ){ pageNumber = '0' + pageNumber; }
						
						ReportCustomEvent('Design Gallery Product Click', eventAction, 'Page' + pageNumber + '-' + $(this).children('strong').text());
					});
					//gallery item -- add-to-library, shadowbox link
					$('a','#add-to-library').bind('click', function(){
						var action = $('#image-area').find('h1').html();
						ReportSearchAction(action, '/add-library/');
					});
					//gallery item -- add-to-library, results page link
					$('a.library','#gallery-list').bind('click', function(){
						var action = $(this).parent().parent().find('strong').html();
						ReportSearchAction(action, '/add-library/');
					});
					//gallery item -- add-to-library, results page link
					$('#UserRegisterForm').bind('submit', function(){
						var action = 'signup';
						ReportSearchAction(action, '/add-library/');
					});
					
				}else{
					//do anything that needs to be done on document.ready
						$('form','#search-area,#search-form-box').live('submit',function(){
							var $searchInput = $(this).find('input:text');
							var searchString = $searchInput.val();
							ReportSearchAction(searchString);
						});
						
						$('form.gsc-search-box').live('submit', function(){
							var $searchInput = $(this).find('input:text');
							var searchString = $searchInput.val();
							ReportSearchAction(searchString);
						});
						
						$('input.gsc-search-button').live('click', function(){
							var $searchInput = $(this).parent().prev().find('input:text');
							var searchString = $searchInput.val();
							ReportSearchAction(searchString);
						});
				}
			});
		})(jQuery);	// end scope wrapper -----------------
    }
}

function ReportCustomEvent(category, action, options){	
	_gaq.push(['_trackEvent', category, action, options]);
	//console.log( 'Custom Event: ', category, action, options );
}

function ReportSearchAction(searchString, url){
	
	//default to custom site search to match existing calls...
	if(typeof(url) === 'undefined'){
		url = '/custom-search.php?q=';
	}
	
	_gaq.push(['_setAccount', 'UA-4103413-1'],['_trackPageview', url+searchString]);
	//console.log( 'SearchAction: ', url+searchString );
	
	/* old method
	var pageTracker = _gat._getTracker("UA-4103413-1");
	pageTracker._initData();
	pageTracker._trackPageview(url+searchString);
	*/
}

function GetDesiredElements(){
	var selectedElements = new Array();
	$('ul.elements-list li').each(function(index){
		if($(this).children('input:checked').length > 0){
			selectedElements.push($(this).children('label').html());
		}
	});	
	return selectedElements.join('-');
}

function OnLoad() {
	//prevent this from occurring more than once
	var $actor = document.getElementById('results_006954584626869756800:p6ldkxtxnu8');
	var parentId = $actor.parentNode.id;
	
	if( parentId == 'pageContent' || parentId == 'index' ){
		//console.log( 'loaded CSEOverlay' );
	
		var cseo = new CSEOverlay("006954584626869756800:p6ldkxtxnu8",
			 document.getElementById("searchbox_006954584626869756800:p6ldkxtxnu8"),
			 document.getElementById("results_006954584626869756800:p6ldkxtxnu8"));
		
		cseo.searchControl.setLinkTarget(GSearch.LINK_TARGET_PARENT);  
	}
}

if(typeof(GSearch) !== 'undefined'){
	GSearch.setOnLoadCallback(OnLoad);
}

initJQuery();



/* for gallery shadowbox - init stuff */

/**
 * Initializes the Google Analytics Asynch script
 */
function GaqInit(){
	var _gaq = _gaq || [];
}
/**
 * Adds a page track for given URL
 * @param url the page's URL to track
 */
function GaqTrack(url){
	_gaq.push(['_setAccount', 'UA-4103413-1'],['_trackPageview', url]);
}
/**
 * Performs the gaq push?
 */
function GaqSubmit(){
	(function() {
		var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
		ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
		var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	})();
}


