/* ajax.Response */
function getResponse(oReq) {
	$("#samples #info").html(oReq);
	hideLoadingImg();
	Move('#info');
	
	$("#IDform").css("display", ($("#musicmaestro").attr("class").indexOf("noform") < 0 ? "block" : "none"));
}

/* ajax.Request */
function ajaxRequest(url,data,bigNr) {
	setBigNr(bigNr);
	showLoadingImg();
	
	$.get(url, data, getResponse, "html");
}



function submitID(url,track,mail,subject) {
	var data = "track=" + track + "&mail=" + mail + "&subject=" + subject;
	sendingEmail();
	
	$.get(url, data, getMailResponse, "html");
}

/* ajax.Response Mail*/
function getMailResponse(oReq) {
	if(oReq == 'success'){
		$('#submitButton').html('Sent, let\'s hope it\'s correct ;)');
		document.getElementsByName('track')[0].value = "";
		document.getElementsByName('email')[0].value = "";
	}
	else{
		$('#errorSubmit').html('Email not sent, try again please.');
		$('#submitButton').html('Resubmit');
	}
	$('#submitButton').css('cursor', 'pointer');
	$('#submitButton').css('background-color', '#ff0099');
	$('#submitButton').attr('disabled', 'enabled');
}

function getElementsByClassName(classname, node)  {
	if(!node) node = document.getElementsByTagName("body")[0];
	var a = [];
	var re = new RegExp('\\b' + classname + '\\b');
	var els = node.getElementsByTagName("*");
	for(var i=0,j=els.length; i<j; i++)
		if(re.test(els[i].className))a.push(els[i]);
	return a;
}

function hideLoadingImg(){
	var elements = getElementsByClassName("loading", document.getElementById("info"));
	
	for (var i = 0; i < elements.length; i++){ 
		elements[i].style.visibility = "hidden";
	}
}

function showLoadingImg(){
	var elements = getElementsByClassName("loading", document.getElementById("info"));
	
	for (var i = 0; i < elements.length; i++){ 
		elements[i].style.visibility = "visible";
	} 
}

function checkIDForm(){
	clearErrorMessages();
	
	var track = $('#trackInput')[0].value;
	var email = $('#mailInput')[0].value;
	var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
	
	//track check
	if(track.length < 10){
		$('#errorSong').html('Too small trackname');
		selectInputField($('#trackInput'));
		return;
	}
	
	//mail check
	if(email.length < 10){
		$('#errorMail').html('Too small email address');
		selectInputField($('#mailInput'));			
		return;
	}
	
	if(!emailPattern.test(email)){
		$('#errorMail').html('Incorrect email address');
		selectInputField(document.getElementById('mailInput'));
		return;
	}
	
	submitID('mailID.php', track, email, document.getElementById('big_nr_data').innerHTML);
}

function sendingEmail(){
	$('#submitButton').html('Sending');
	$('#submitButton').css('background-color', '#c50277');
	$('#submitButton').css('cursor', 'default');
	$('#submitButton').attr('disabled', 'disabled');
}

function clearErrorMessages(){
	$('#errorSong').html('&nbsp;');
	$('#errorMail').html('&nbsp;');
	$('#errorSubmit').html('&nbsp;');
}

function selectInputField(inputField){
	inputField.focus();
	inputField.select();
}

function setBigNr(number){	
	$('#big_nr').html("<img src = \"/assets/scripts/getIDImage.php?id=" + number + "\" alt = \"ID\">");
	$('#big_nr_data').html(number);
}

function FadeIn(id){
	$(id).show();
}

function FadeOut(id){
	$(id).hide();
}

function Move(id){
	$(id).slideDown();
}

function MoveUp(id){
	$(id).slideUp();
}


/* JQUERY STUFF FOR FILTERING */
var samples = Array;

$('document').ready(function() {
	initSampleFilters();
    $.getJSON('/sampleScanner.php?action=getjson', parseInfo); 
}); 

function parseInfo(data) {
    //$('#info').html(data.name +', '+ data.email); 
    samples = data;
}

function initSampleFilters() {
	$("select#filter-year").change(function() {
	  hideSamplesForYear($("select#filter-year option:selected").val());
	});

	$("select#filter-genre").change(function() {
	  hideSamplesForGenre($("select#filter-genre option:selected").val());
	});
}

function hideSamplesForYear(year) {
	$.each(samples, function(index, element) {
		if(element.year == year){
			$("#" + element.name).show("highlight", {"color": "#FF0099"}, 1000);
		} else {
			$("#" + element.name).hide();
		}
	});
}

function hideSamplesForGenre(genre) {
	$.each(samples, function(index, element) {
		if(element.genre == genre){
			$("#" + element.name).show("highlight", {"color": "#FF0099"}, 1000);
		} else {
			$("#" + element.name).hide();
		}
	});
}