var favClicked = Cookie.read('favClicked');
var shareClicked = Cookie.read('shareClicked');
var emailClicked = Cookie.read('emailClicked');
var contestShareClicked = Cookie.read('contestShareClicked');
var referringPage = Cookie.read('referringPage');
var enteringContest = Cookie.read('enteringContest');
var winScroller;

window.addEvent('domready', function(){
							  
	winScroller = new Fx.Scroll(window, { 'duration': 750 });
	
})

window.addEvent('load', function(){
	
	if(contestShareClicked){
		var cookie = Cookie.read('contestShareClicked');
		var parts = cookie.split('|');
		facebookContestTrack(parts[1], parts[0]);
		Cookie.dispose('contestShareClicked');
	}
	if(favClicked){
		heartTrack(favClicked);
		Cookie.dispose('favClicked');
	}
	if(shareClicked){
		facebookTrack(shareClicked);
		Cookie.dispose('shareClicked');
	}
})

function search_form()
{
	var artist_name = $("artist_name").get('value');		
	var new_name = "";
	
	if(artist_name.match(/^[ ]*$/))
	{
		return false;
	}
	
	for (i=0; i < artist_name.length; i++)
	{
		if(artist_name.charAt(i) == " ")
			new_name += "-";				
		else
			new_name += artist_name.charAt(i);	
	}
	location.href= '/listen/artist/'+new_name;	
}


function heartTrack(track_id)
{
	if(logged_in)
	{	
		var request = new Request({
			url: "/music/heart_track",
			method: 'get',
			useSpinner: true,
			evalResponse: 'true',
			onComplete: function(response){  
				//alert('onComplete: '+successCalled);			
			}
		}).send('user_id='+logged_in+'&track_id='+track_id);
	}
	else
	{
		Cookie.write('favClicked', track_id);
		FB.Connect.requireSession(function() { handle_onlogin(); });
	}		
}

// SHARE TRACK (contest = true for contest tracks)
function facebookTrack(track_id, contest)
{
	if(logged_in)
	{	
		//alert("Logged in:"+logged_in);
		var url = (contest)?"/music/share_contest_track":"/music/share_track";
		var request = new Request({
			url: url,
			method: 'get',
			evalResponse: 'true',
			onComplete: function(response){ 
				//future function				
			}
		}).send('user_id='+logged_in+'&track_id='+track_id);
	}
	else
	{	
		Cookie.write('shareClicked', track_id);
		FB.Connect.requireSession(function() { handle_onlogin(); });
	}		
}

// SHARE TRACK (contest = true for contest tracks)
function mixTrack(track_id, contest)
{
	if(logged_in)
	{
		new Popup({
			'heading': 'Coming Soon',
			'message': 'More features are coming your way, stay tuned.',
			'autoClose': true
		}).show();
	}
	else
	{
		FB.Connect.requireSession(function() { handle_onlogin(); });
	}		
}

function facebookContestTrack(track_id, page)
{
	if(logged_in)
	{	
		var request = new Request({
			url: "/facebook/share_contest_video",
			method: 'get',
			evalResponse: true,
			onComplete: function(response){ 
				// ANYTHING?				
			}
		}).send('contest_track_id='+track_id);
	}
	else		
	{
		Cookie.write('contestShareClicked', page+"|"+track_id);
		FB.Connect.requireSession(function() { handle_onlogin(); });
	}	
}

function emailContestTrack(track_id)
{
	if(logged_in)
	{
	  window.location.href = '/email/index/' + track_id;
	}
	else		
	{	
	  Cookie.write('emailClicked', track_id);
	  FB.Connect.requireSession(function() { handle_onlogin(); });
	}	
}

function earnpointsContestTrack(track_id, user_id)
{
	if(user_id == "" || user_id == "undefined" || user_id == undefined)
	{
		new Popup({
			'message': '<h3>Log In with Facebook Connect</h3><p>Great, you\'re ready to get in the competition. Now all you need to do is log in using Facebook Connect and you\'re all set!</p>',
			'confirmBtnText': 'Log In Now!',
			'onConfirm': function(){
				FB.Connect.requireSession(function() { handle_onlogin(); });
			}
		});
	}
	else		
	{	
		location.href = '/super-rewards/earn_points/' + track_id;
		//$.fn.colorbox({'href':'/super-rewards/earn_points/'+track_id+'/', 'open':true, 'iframe':true, 'width': '90%', 'height': '90%'});
	}	
}

// FOR SWITCHING TABS
function tab_switcher(parent, name)
{
	var tabs = $$('#'+$(parent).id+' .tab');
	var containers = $$('#'+$(parent).id+' .tab_container');
	
	//if the tab is already active do nothing
	if($('tab_'+name).hasClass('active'))
		return false;
		
	//remove the active class and add it to the new tab
	tabs.each(function(tab){
		if(tab.hasClass('active')){
			tab.removeClass('active');
			tab.addClass('inactive');
		}
		if(tab.id == 'tab_'+name){
			tab.removeClass('inactive');
			tab.addClass('active');
		}
	});
		
	//hide the previous container and show the new one
	containers.each(function(container){
		if(container.getStyle('display') != 'none'){
			container.setStyle('display', 'none');
			container.fade('out');	
		}
		if(container.id == 'tab_container_'+name){
			container.setStyles({
				'opacity': 0,
				'display': 'block'
			});
			container.fade('in');
		}
	});
}

function handle_onlogin(){
	if(Cookie.read('favClicked')){
		location.href = "/listen?track_id="+Cookie.read('favClicked');
	}
	else if(Cookie.read('shareClicked')){
		location.href = "/listen?track_id="+Cookie.read('shareClicked');
	}
	else if(Cookie.read('emailClicked')){
		window.location.href = "/email/index/"+Cookie.read('emailClicked'); 
	}
	else if(Cookie.read('contestShareClicked')){
		var cookie = Cookie.read('contestShareClicked');
		var parts = cookie.split('|');
		window.location.href = "/leaders/index/"+parts[0];
	}
	else{
		if(referringPage)
			window.location.href = referringPage;
		else  
			location.reload();   
	}
}

function show_activate_popup(is_contest, url){
	new Popup({
		'type': 'confirm',
		'confirmBtnText': 'Log In',
		'cancelBtnText': 'Cancel',
		'heading': 'Log In Required',
		'message': 'In order to successfully activate your account for the contest you must log in.',
		'onConfirm': function(){
			FB.Connect.requireSession(function() { handle_onlogin(); });
		}
	}).show();
}

function show_feature_login_popup(is_contest, url){
	new Popup({
		'type': 'confirm',
		'confirmBtnText': 'Log In',
		'cancelBtnText': 'Cancel',
		'heading': 'Log In Features',
		'message': 'Logging in through Facebook allows you to add songs to your favourites, vote for your favourite DJ and many other things. Are you ready to log in now?',
		'onConfirm': function(){
			FB.Connect.requireSession(function() { handle_onlogin(); });
		}
	}).show();
}

function load_track_page(element, url, page, play){
	new Request.HTML({
		update: element,
		url: url,
		useSpinner: true,
		evalScripts: true,
		evalResponse: true,
		'onSuccess': function(){
			handle_page_change(page, play);
		}
	}).post({'play': play});
}

function show_terms(){
	new Popup({
		'type': 'ajax',
		'heading': 'Contest Terms &amp Conditions',
		'url': '/site/contest-rules/?popup=true',
		'width': 720
	}).show();
}

function set_cookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function get_cookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function delete_cookie(name) {
	set_cookie(name,"",-1);
}

String.implement({
	phone: function() {
		var newphone = this.replace(/[^\d]/g, "");
		var phonematches = newphone.match(/^(\d{0,3})(\d{0,3})(\d{0,4})/);
		if (phonematches[1].length > 0){
			newphone = "(" + phonematches[1];
		}
		if (phonematches[1].length == 3){
		  newphone += ") " + phonematches[2];
		  if (phonematches[2].length == 3){
		    newphone += "-" + phonematches[3];
		  }
		}
		return newphone;
	},
	numeric: function() {
		var numeric = this.replace(/[^\d]/g, "");
		return numeric;
	},
	alpha: function() {
		var alpha = this.replace(/[^0-9.,]/g, "");
		return alpha;
	},
	alphanumeric: function() {
		var alpha = this.replace(/\W/, "");
		return alpha;
	}
});