/** AJAX DEFAULTS **/

$.ajaxSetup({
	error: function()
	{
		
	}
});

var Ajax = Ajax || {};

	
Ajax = function(url, config)
{
	var config = config || {};
	config.type = "POST";
	config.url = Ajax.getUrl(url) + '/format/json';
	config.dataType = 'json';

	$.ajax(config);
};

Ajax.HTML = function(url, config)
{
	var config = config || {};
	config.type = "GET";
	config.url = Ajax.getUrl(url) + '/format/html';
	config.dataType = 'html';

	$.ajax(config);
};

Ajax.getUrl = function(url)
{
	if (url.substring(0, BASE_URL.length) != BASE_URL)
	{
		url = BASE_URL + url;
	}
	return url;
}

/** ADD THIS SHARING POPUP **/

Share = function()
{
	this.init();
}
Share.prototype = {
	_intervalId:null,
	_lightbox:null,
	_visible:null,
	_titlePrefix: null,
	_monitorInterval: 200,

	// Add This requirement
	_hiddenLink:null,
	_addThisId: 'at16pib',
	_addthis_pub: "gmathieu",
	_addthis_brand: "Levi's - Go Forth",

	init: function()
	{
		this._lightbox = new WK.Lightbox();
		this._visible = false;
		
		addthis_config = {
			ui_cobrand: this._addthis_brand,
			data_use_flash: false
		}
		
		var link = $(document.createElement('a'));
		link.addClass('addthis_button_expanded');
		link.appendTo('body');
		link.hide();

		this._hiddenLink = link;
	},
	
	setTitlePrefix: function(prefix)
	{
		this._titlePrefix = prefix;
		return this;
	},
	
	share: function(mediaId, title)
	{
		var self = this;
		var title = ((this._titlePrefix) ? this._titlePrefix : '');
		var url = 'http://' + document.domain + BASE_URL + '/media/' + mediaId + '/';

		addthis_share = {'title': title, 'url': url};
		
		this._hiddenLink.click();
		
		this._intervalId = setInterval(function() {
			self.monitor();
		}, 500);
		return this;
	},
	
	shareLink: function(url)
	{
		var self = this;
		var title = ((this._titlePrefix) ? this._titlePrefix : '');

		addthis_share = {'title': title, 'url': url};
		
		this._hiddenLink.click();
		
		this._intervalId = setInterval(function() {
			self.monitor();
		}, 500);
		return this;
	},
	
	monitor: function()
	{
		var popupOpen = $('#' + this._addThisId).is(':visible');
		if (this._visible == false && popupOpen) {
			this.show();
		}
		else if (this._visible == true && !popupOpen) {
			this.hide();
		}
	},
	
	show: function()
	{
		this._lightbox.show();
		$('.wk_lightbox_popup').hide();
		this._visible = true;
	},
	
	hide: function()
	{
		clearInterval(this._intervalId);
		this._visible = false;
		this._lightbox.hide();
	}
};

/** MEDIA USER ACTION **/
Media = {};
Media.like = function(link, id)
{
	if ($('body').hasClass('loggedIn'))
	{
		Ajax('/media/like/' + id, { success: function(json) { if (json.status) {
			$(link).addClass('disabled'); };
			$(link).get(0).onclick = false;
		}});
		RF_PageTracker.track('NA_home_likeit');
	}
	else
	{
		var id = id;
		var link = $(link);
		Auth.onSuccess = function() { Media.like(link, id) };
		Auth.display();
	}
}

Media.flag = function(link, id)
{
	if ($('body').hasClass('loggedIn'))
	{
		Ajax('/media/flag/' + id, { success: function(json)
		{ 
			$(link).addClass('disabled');
			$(link).get(0).onclick = false;
		}});
	}
	else
	{
		var id = id;
		var link = $(link);
		Auth.onSuccess = function() { Media.flag(link, id) };
		Auth.display();
	}
}


/** LOGGER HELPER **/

function log(message)
{
	if (console.log)
	{
		console.log(message);
	}
}

var MainMenu = MainMenu || {};

MainMenu.isOpen = false;

MainMenu.toggleMenu = function()
{
	if (MainMenu.isOpen) {
		$('#mainMenuLinks .expeditions').removeClass('selected');
		$('#menuPane').slideUp('slow');
		MainMenu.isOpen = false;
	} else {
		$('#mainMenuLinks .expeditions').addClass('selected');
		$('#menuPane').slideDown('slow');
		MainMenu.isOpen = true;
		doubleTrack('GO_Nav_Previous_Expeditions');
	}
};

MainMenu.closeMenu = function()
{
};


MainMenu.init = function()
{
	$('#mainMenuLinks .expeditions').click(MainMenu.toggleMenu);
};





var FollowMe = FollowMe || {};
FollowMe.timeout = 500;
FollowMe.closeTimer = 0;
FollowMe.menuItem = 0;
FollowMe.init = function()
{
	$('#mainMenuLinks .followme').mouseenter(FollowMe.openMenu).mouseleave(FollowMe.timer);
};

FollowMe.openMenu = function()
{
	FollowMe.cancelTimer();
	FollowMe.closeMenu();
	$('#mainMenuLinks .followme').addClass('selected');
	$('#followmeSub').show().mouseenter(FollowMe.cancelTimer).mouseleave(FollowMe.timer);
};

FollowMe.closeMenu = function()
{
	$('#mainMenuLinks .followme').removeClass('selected');
	$('#followmeSub').hide();
};

FollowMe.timer = function()
{
	FollowMe.closeTimer = window.setTimeout(FollowMe.closeMenu, FollowMe.timeout);
};

FollowMe.cancelTimer = function()
{
	if (FollowMe.closeTimer)
	{
		window.clearTimeout(FollowMe.closeTimer);
		FollowMe.closeTimer = null;
	}
};

/** NEW DECLARATION SECTIONS **/

function AuthorYourOwn()
{
	if ($('body').hasClass('loggedIn'))
	{
		openSection('create');
	}
	else
	{
		Auth.onSuccess = AuthorYourOwn;
		Auth.display();
	}
}


/** TERMS OF USER **/
Terms = {};
Terms.lightbox;
Terms.show = function()
{
	if (Terms.lightbox)
	{
		return Terms.lightbox.show();
	}

	Ajax.HTML(
		'/terms',
		{
			success: function(html)
			{
				Terms.lightbox = new WK.Lightbox(html);
				Terms.lightbox.show();
			}
		}
	);
}

Terms.american = function()
{
	if (Terms.american.lightbox)
	{
		return Terms.american.lightbox.show();
	}

	Ajax.HTML(
		'/newamerican/terms',
		{
			success: function(html)
			{
				Terms.american.lightbox = new WK.Lightbox(html);
				Terms.american.lightbox.show();
			}
		}
	);
}
Terms.american.lighbox;

/** PROPOSAL DETAILS **/
ProposalDetails = {};
ProposalDetails.lightbox;
ProposalDetails.show = function()
{
	if (ProposalDetails.lightbox)
	{
		return ProposalDetails.lightbox.show();
	}

	Ajax.HTML(
		'/newamerican/proposal/details',
		{
			success: function(html)
			{
				ProposalDetails.lightbox = new WK.Lightbox(html);
				ProposalDetails.lightbox.show();
			}
		}
	);
}

/** STATS TRACKING **/

var RF_PageTracker = RF_PageTracker || {};

RF_PageTracker.url = 'http://view.atdmt.com/action/';
RF_PageTracker.timeout = 500;

RF_PageTracker.track = function(action, href, target) {
	//log('RF_PageTracker '+action);
	var trackingCode = RF_PageTracker.url + action;
	$('#footer').append(
		$('<img></img>').attr({ src:trackingCode, height:1, width:1 })
	);
	if (href != null) {
		if (target == null) {
			setTimeout(function() { location.href = href; }, this.timeout);
		} else {
			setTimeout(function() { window.open(href, target); }, this.timeout);
		}
	}
}

/** HIT BOTH TRACKERS **/
function doubleTrack(action)
{
	//log('doubleTrack '+action);
	// razorfish
	RF_PageTracker.track(action);
	// google
	pageTracker._trackPageview(action);
}

/** IE6 HOVER FOR SUBMIT BUTTONS */
var ieHover = ieHover || {};

ieHover.over = function(el, pos)
{
	if (this.isIE6) {
		if (pos == null) pos = 0;
		$(el).css('background-position','0 '+pos+'px');
	};
}

ieHover.out = function(el)
{
	if (this.isIE6) {
		$(el).css('background-position','0 0');
	}
}

ieHover.isIE6 = function()
{
	return ($.browser.msie && ($.browser.version < 7));
}

/** PAGE ONLOAD **/

$(function()
{
	// setup Sharing object
	sharing = new Share();
	EXPEDITION = "Levi's | Go Forth" || EXPEDITION;
	sharing.setTitlePrefix(EXPEDITION);
});
