function swaplink(section)
{
	var active = ($F('active_section').length > 0 && $F('active_section') == 'nav_' + section)
	
	if (!active)
	{
		var section_class = $('nav_' + section).className;
		var cl = (section_class.indexOf('hi_') ==  -1) ? "hi_nav_" + section : 'nav_' + section;

		$('nav_' + section).className = cl;
	}

}

function showHeader()
{
	$('login_bar').style.display = 'none';
	$('header_info').style.display = 'block';
}

function showLogin()
{
	$('header_info').style.display = 'none';
	$("login_bar").style.display = 'block';
	new Ajax.Updater("login_bar", "/include/login.php", {asynchronous:true})
}

function checkLogin()
{
	var username = $F("username");
	var password = $F("password");
	
	if (username.length == 0 || password.length == 0)
	{
		alert("Please enter a username and password");
		return false;
	}
	else
		return true;
}

function doLogin()
{
	var username = $F("username");
	var password = $F("password");
	$('btn_login').disabled = true;
	$('btn_login').value = 'Loading...';
	$('btn_cancel').disabled = true;
	
	
	new Ajax.Request("/service/login.php?user=" + username + "&password=" + password, {method:'get',onSuccess:handleLogin, onFailure:handleLogin});
}

function handleLogin(t)
{
	if (t.status != 200)
	{
		alert("There was an error logging in. Please try again.");
		return;
	}
	
	$('btn_login').value = 'Login';
	$('btn_login').disabled = false;
	$('btn_cancel').disabled = false;
	
	var response = t.responseXML.documentElement;
	var code = response.getElementsByTagName("message")[0].getAttribute("code");
	var message = response.getElementsByTagName("message")[0].getAttribute("value");
	
	if (code == 1)
		alert(message);
	else if (code == 2)
		window.location.href = '/user/username.php';
	else
		window.location.href = window.location.href;
}

function changeCountry()
{
	var c = $("country_id").options[$("country_id").selectedIndex].value;
	
	if (c == "US" || c == "UM")
	{
		$("postal_code_row").style.display = 'block';
		$("state_row").style.display = 'block';
		$("state_id").focus();
	}
	else
	{
		$("postal_code_row").style.display = 'none';
		$("state_row").style.display = 'none';
		$("state_id").selectedIndex = 0;
		$("postal_code").value = '';
	}
}

function checkSignupForm(edit,image,address)
{
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
	var reg_birthday = /\d{4}-\d{2}-\d{2}/;
	var valid = true;

	var isNew = (!edit);
	
	if (isNew)
		var tos = $("tos").checked;
	else
		var tos = "";
	if (!edit)
		var username = $("username").value;

	if (isNew)
	{
		var password = $("password").value;
		var vpassword = $("verify_password").value;
	}
	else
	{
		password = "";
		vpassword = "";
	}
	var displayname = $("displayname").value;
	var fname = $("fname").value;
	var lname = $("lname").value;
	var city = $("city").value;
	var country_id = $("country_id").selectedIndex;
	var birthdate = $("birthday").value;
	var email = $("email").value;
	var birthday = $("birthday").value;
	var msg = "";

	if (!edit && username.length == 0)
		msg += "Username\n";
	if (isNew && password.length == 0)
		msg += "Password\n";
	if (displayname.length == 0)
		msg += "Display name\n";
	if (email.length == 0)
		msg += "Email address\n";
	if (fname.length == 0)
		msg += "First name\n";
	if (lname.length == 0)
		msg += "Last name\n";
	if (city.length == 0)
		msg += "City\n";
	if (birthday.length == 0 || birthday == "YYYY-MM-DD")
		msg += "Birthdate\n";
	if (country_id == 0)
		msg += "Country\n";

	if (msg.length > 0)
	{
		alert("Please fill in the following fields:\n\n" + msg);
		valid = false;
	}
	else if (reg1.test(email) || !reg2.test(email))
	{
		alert("Please provide a valid email address.");
		valid = false;
	}
	else if (!reg_birthday.test(birthdate) && (birthdate != "YYYY-MM-DD"))
	{
		alert("Please provide a birthdate in the format of YYYY-MM-DD");
		valid = false;
	}
	else if (isNew && (password != vpassword))
	{
		alert("Passwords do not match.");
		valid = false;
	}
	else if (isNew && !tos)
	{
		alert("Please agree to the Terms of Service and Privacy Policy.");
		valid = false;
	}
/*	else if(!image)
	{
		alert("Please enter the image code correctly.");
		valid = false; 
	}
	else if(!address)
	{
		alert("The email address you have entered is incorrect or doesn't exists.");
		valid = false;
	}
*/	
	return valid;
}

function checkEditForm()
{
	var valid = true;
	var title = $F('title');
	var description = $F('songdescription');
	var mood = $("mood").selectedIndex;
	var genre = $("genre").selectedIndex;
	var subgenre = $("subgenre").selectedIndex;
	var msg = "";
	
	if (title.length == 0)
		msg += "Title\n";
	if (description.length == 0)
		msg += "Description\n";
	if (mood == 0)
		msg += "Mood\n";
	if (genre == 0)
		msg += "Genre\n";
	if (subgenre == 0)
		msg += "Subgenre\n";
	
	if (msg.length > 0)
	{
		alert("Please fill in the following fields:\n\n" + msg);
		valid = false;
	}

	return valid;
}

function checkArtistform(edit)
{
	var valid = true;
	
	var stagename = $("stagename").value;
	if (!edit)
		var username = $("username").value;
	var fname = $('fname').value;
	var lname = $('lname').value;
	var email = $("email").value;
	var country_id = $('country_id').selectedIndex;

	if (!edit)
	{
		var tos = $("tos").checked;
		var password = $("password").value;
		var vpassword = $("verify_password").value;
	}
	var msg = "";
	
	if (stagename.length == 0)
		msg += "Artist / stage name\n";
	if (!edit && username.length == 0)
		msg += "Username\n";
	if (email.length == 0)
		msg += "Email address\n";
	if (fname.length == 0)
		msg += "First name\n";
	if (lname.length == 0)
		msg += "Last name\n";
	if (country_id == 0)
		msg += "Country\n";
	if (!edit && password.length == 0)
		msg += "Password\n";
 	if (!edit && vpassword.length == 0)
		msg += "Verify password\n";
	if (!edit && password != vpassword)
		msg = "Passwords do not match.\n";
	
	if (msg.length > 0)
	{
		alert("Please fill in the following fields:\n\n" + msg);
		valid = false;
	}
	else if (!edit && !tos)
	{
		alert("Please agree to the Terms of Service and Privacy Policy.");
		valid = false;
	}
	
	return valid;
}

function checkPhotoForm()
{
	var valid = true;
	
	if ($("photo").value == "")
	{
		alert("Please provide a photo.")
		valid = false;
	}
	
	return valid;
}

function checkEmailForm()
{
	var valid = true;
	var msg = "";
	var name = $F("name");
	var email = $F("email");
	var message = $F("message");
	
	if (name.length == 0)
		msg += "Name\n";
	if (email.length == 0)
		msg += "Email Address\n";
	if (message.length == 0)
		msg += "Message\n";
	
	if (msg.length > 0)
	{
		alert("Please provide the following:\n" + msg);
		valid = false;
	}
	
	return valid;
}

function sendMail(send_frm)
{
	var frm = $(send_frm);
	$("send_button").disabled = true;
	$("send_button").value = "Sending...";
	new Ajax.Request("/service/mail.php?" + Form.serialize(frm), {method:'get',onSuccess:handleMail, onFailure:handleMail});
}

function handleMail(t)
{
	$("send_button").disabled = false;
	$("send_button").value = "Send";

	if (t.status != 200)
	{
		alert("There was an error sending your mail. Maybe your have entered wrong image code or the email address you have provided doesn't exists.Please try again.");
		return;
	}
	else
		alert("Mail sent. Thank you for contacting us.");
	
}

function playsong(id)
{
	$("player").style.display = 'block';
	$("player").innerHTML = "Loading...";
	
	var URL = "/include/player.php?id=" + id;
	new Ajax.Updater("player", URL, {asynchronous:true})
}

function addDonation()
{
	var regex = /\d+/;
	var donation = $F("donation");

	if (donation.length > 0 && !regex.test(donation))
	{
		alert("Please enter a numeric amount.");
		$("donation").value = "";
	}
	else if (donation.length > 0)
	{
		var amount = parseInt($F("orig"));
		donation = parseInt(donation);

		$("amount").value = amount + donation;
		$("total").innerHTML = (amount + donation) + ".00";
	}
	else if (donation.length == 0)
	{
		$("amount").value = $F("orig");
		$("total").innerHTML = $F("orig");
	}
}

function buysong(id)
{
	new Ajax.Request("/service/music/cartadd.php?id=" + id, {method:'get', onSuccess: handleBuy, onFailure: handleBuy})
}

function handleBuy(t)
{
	if (t.status != 200)
	{
		alert("There was an error in your operation. Please try again.");
		return;
	}
	
	var xml = t.responseXML.documentElement;
	var message = $A(xml.getElementsByTagName('message'));
	
	var code = parseInt(message[0].getAttribute('code'));
	var val = message[0].getAttribute('value');

	if (code == 1)
	{
		alert(val);
		return;
	}
	
	alert('The song has been added to your cart.');
	
	var cart_size = 0;
	
	if (window.parent.document.getElementById("cart_size").innerHTML != "")
		cart_size = parseInt(window.parent.document.getElementById("cart_size").innerHTML);
	
	cart_size += 1;
		
	window.parent.document.getElementById("cart_size").innerHTML = cart_size;
	
	if (cart_size > 0)
		window.parent.document.getElementById("cart_info").style.display = 'inline';
}

function get_subgenre(select)
{
	var gid = $(select).options[$(select).selectedIndex].value;
	new Ajax.Request("/service/music/getsubgenre.php?q=" + gid, {method:'get',onSuccess:handleSubgenre, onFailure:handleSubgenre});
}

function handleSubgenre(t)
{
	if (t.status != 200)
	{
		alert("There was an error in your operation. Please try again.");
		return;
	}
	
	$("subgenre").options.length = 0;
	
	var xml = t.responseXML.documentElement;
	var genres = $A(xml.getElementsByTagName('genre'));

	$("subgenre").options.add(new Option('Choose one:', ''));
	
	genres.each(function(genre) {
		var id = genre.getAttribute('id');
		var name = genre.firstChild.nodeValue;
		
		op = new Option(name, id);
		$("subgenre").options.add(op);
	});
}
