// JavaScript Document

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

function setFileFolder( $type ) {
	
	var arr = new Array( "files", "demos", "patches", "mods", "trailers", "fullGames", "viewed", "podCasts", "misc", "mac" );
	for(i=0; i<arr.length;i++){
		var t = '#'+arr[i];
		var lt = '#li_'+arr[i];
		$(lt).removeClass();
		$(t).hide();
	}
	t = '#'+$type;
	lt = '#li_'+$type;
	$(lt).addClass('on');
	$(t).show();
	
}

function confirm(message, callback) {
	$('#confirm').modal({
		close:false, 
		overlayId:'confirmModalOverlay',
		containerId:'confirmModalContainer', 
		onShow: function (dialog) {
			dialog.data.find('.confirmMessage').append(message);
			// if the user clicks "yes"
			dialog.data.find('.yes').click(function () {
				// call the callback
				if ($.isFunction(callback)) {
					callback.apply();
				}
				
				// close the dialog
				$.modal.close();
			});
		}
	});
}

function loadTracker(o) {
	
	$.get( o,
	function(data) { $('#fileTracker').html(data);$('a#slick-toggle').click(function() {
		$('#slickbox').slideToggle('slow');
			return false;
		});
	$('a#slick-toggle-2').click(function() {
		$('#slickbox').slideToggle('slow');
			return false;
		});
	$('a#slick-toggle-3').click(function() {
		$('#slickbox').slideToggle('slow');
			return false;
		});
	});
}

function toggle(e) {
	
		$target = e;
		$href = $target.attr('href');
		$target.removeClass();
		if( $target.attr('state') == '-on') {
			$target.addClass('button-tracker tracker-btn_trackgame');
			$target.attr('href',$href.replace(/remove/,'add'));
			$target.attr('state','');
			$target.attr('title','Add this game to your tracker');
			if( $target.parent().parent().parent().get(0).id == 'none' ) $target.parent().parent().parent().slideUp('fast');
			
		} else {
			
			if ( !$target.attr('state') ) {
				$target.addClass('button-tracker tracker-btn_trackgame-on');
				$target.attr('href',$href.replace(/add/,'remove'));
				$target.attr('state','-on');
				$target.attr('title','Remove this game from your tracker');
			}
		}
}

function toggle2(e) {

	$target = e;
	$href = $target.attr('href');
		if( $target.attr('class') == 'button-lrgbtn lrgbtn-trackgame') {
			$target.removeClass();
			$target.addClass('button-lrgbtn lrgbtn-trackgame-remove');
			$target.attr('href',$href.replace(/add/,'remove'));
			$target.attr('title','Click to remove this game from your tracker');
			$target.html('Remove this game from your tracker');
			
		} else {
	
			$target.removeClass();
			$target.addClass('button-lrgbtn lrgbtn-trackgame');
			$target.attr('href',$href.replace(/remove/,'add'));
			$target.attr('title','Click to add this game to your tracker');
			$target.html('Add this game to your tracker');
				
		}
	
}

function pager(isNext, zeroBasedSlideIndex, slideElement) {
	alert('here');
	
}


 $(window).load(function () {
      // run code when window is completely loaded
	 
    });
				

$(document).ready(function() {
 // runs as soon as the DOM is ready
 // (a little sooner than page load)
 
 //game description 'more' link
 $('#descMore').hide();
 $('span#descAction').click(function() {
		$(this).hide();
		$('#descMore').fadeIn('fast');
		return false;
							   });
 
 //DL hyperlinking
  $('.content').click(function(event) {
		$o = $(event.target);
		if($o.attr('href')) return true;
		$p = $o.parents().find('div').get();
		for(i=0;i<$p.length;i++){
				if($p[i].className == 'content') {
					if ($p[i].getAttribute('link')){
						window.location = $p[i].getAttribute('link');
						return true;
					}
				}
		}
		
 });

   
  //dotd cycle function

	$('#dotd').cycle({
    fx:     'fade',
    speed:  'slow',
    timeout: 5000,
    next:   '#next2',
    prev:   '#prev2',
	pause:	1,
	before: function() { $('#dotd-pos').text($(this).attr('id')) }
	});
	
	

  
  
  $('#slickbox').hide();
  
    
 // shows the slickbox on clicking the noted link  
  $('a#slick-show').click(function() {
    $('#slickbox').slideDown('slow').fadeIn('slow');
    return false;
  });
  
   // shows the slickbox on clicking the noted link  
  $('a.slick-show-class').click(function() {
    $('#slickbox').slideDown('slow');
	return false;
  });
 
 // hides the slickbox on clicking the noted link  
  $('a#slick-hide').click(function() {
    $('#slickbox').slideUp('slow');
    return false;
  });
 
 // toggles the slickbox on clicking the noted link  
  $('a#slick-toggle').click(function() {
  	$('#slickbox').slideToggle('slow')
    return false;
  });
  
  // toggles the slickbox on clicking the noted link  
  $('a#slick-toggle-2').click(function() {
	$text = $('a#slick-toggle-2').text().toLowerCase();
	if( $text == 'what is my tracker?' ) $('a#slick-toggle-2').text('Close this Window');
  	$('#slickbox').slideToggle('slow');
	if( $text == 'close this window' ) $('a#slick-toggle-2').text('what is my tracker?');
    return false;
  });
  
  // toggles class in main searchbox
  $('#query').focus(function() {
		$('#large-input-div').addClass('search-on');
	});
    
  $('#query').blur(function() {
		$('#large-input-div').removeClass('search-on');
	});
  
  // toggles text and class in list searchbox
  $('#searchQuery').focus(function() {
		$('#searchQuery').attr('value','');
		$('#small-input-div').addClass('search-on');
	});
   
  $('#searchQuery').blur(function() {
		if(!$('#searchQuery').attr('value')) $('#searchQuery').attr('value','search for');
		$('#small-input-div').removeClass('search-on');
	});
  
  //set the actions for add and remove game button
  //since the whole filetracker gets refreshed via ajax, we have to assign the toggle function here too
     
    $('.file-action a').click(function(event) {
		event.preventDefault();
		u = $(this).attr('href');
		$e = $(event.target);
		if (u.indexOf('remove') != -1 ) {
			confirm("Are you sure you want to remove this game and all of its downloads from your tracker?", function () {															   
				loadTracker(u);
				toggle($e);		
				
			});
		} else {
			$('#modal').modal();
			loadTracker(u);
			toggle($e);
						
		}
		
		return false;
	
  });



	 $('.game-files-action a').click(function(event) {
		event.preventDefault();
		u = $(this).attr('href');
		$e = $(event.target);
		if (u.indexOf('remove') != -1 ) {
			confirm("Are you sure you want to remove this game and all of its downloads from your tracker?", function () {
				loadTracker(u);
				toggle2($e);
			});
		} else {
			$('#modal').modal();
			loadTracker(u);
			toggle2($e);
		}
		
		return false;
	
  });
   
   
  //search switcher function
   $('#switcher a,#switcherF a').click(function(event) {
		$target = $(event.target);
		
		$('#switcher a').removeClass('on');
		$($target).addClass('on');
		$('#searchform').attr('action',$target.attr('href'));
		return false;

	});
   $('#switcherF a').click(function(event) {
		$target = $(event.target);
		
		$('#switcherF a').removeClass('on');
		$($target).addClass('on');
		$('#searchformF').attr('action',$target.attr('href'));
		return false;

	});
   
   	//set main nav selected state
   	$location = window.location.href;
    if( $location.indexOf('/downloads/') != -1 ) {
		$('#main-nav-files a').attr('style','background-color: #111; border-right: solid 1px #000');
	}
	if( $location.indexOf('/games') != -1 ) {
		$('#main-nav-games a').attr('style','background-color: #111; border-right: solid 1px #000');
	}
	if( $location.indexOf('/blogs') != -1 ) {
		$('#main-nav-blogs a').attr('style','background-color: #111; border-right: solid 1px #000');
	}

   
  //genre and file filter drop boxes
   $('#nav-one li').hover(
		function(){ $('ul', this).fadeIn('fast');
         }, 
		function() { $('ul', this).fadeOut('fast');
		} 
    );
    if (document.all) {
        $('#nav-one li').hoverClass ('sfHover');
    }

});



$.fn.hoverClass = function(c) {
    return this.each(function(){
        $(this).hover( 
            function() { $(this).addClass(c);  },
            function() { $(this).removeClass(c); }
        );
    });
};    

