/**
 * form validation
 */
var validateTorrentForm = function(form) {
	var formValues=new Array();
	for(var i=0; i<form.elements.length; i++) {
		formValues[form.elements[i].name]=form.elements[i].value;
	}
	if( !checkFilled(formValues) ) {
		return false;
	} else if( !checkSite(formValues) ) {
		return false;
	}
	return confirm('Are you absolutely sure this one isn\'t in the list already?');
}

/**
 * check if all form values are filled
 */
var checkFilled=function(formArray) {
	var key;
	for(key in formArray) {
		var value=formArray[key];
		if(value==undefined || value=="") {
			alert("please fill in '"+key+"'!");
			return false;
		}
		if(key=="description" && value=="city, state (or whatever is appropriate)") {
			alert("please fill in a proper description");
			return false;
		}
		if(key=="date" && value=="yyyy-mm-dd") {
			alert("please fill in a proper date ('various' is allowed for compilations)");
			return false;
		}
	}
	return true;
}

var siteRegExps = new Array();
siteRegExps['Dime-A-Dozen'] = "http://www.dimeadozen.org/torrents-details.php\\?id=";

/**
 * check if the link fits with the selected site
 */
var checkSite=function(formArray) {
	var site=formArray['site'];
	var link=formArray['link'];
	var regExpStr = siteRegExps[site];
	if(regExpStr==undefined || regExpStr=="") {
		return true;
	} else {
		if(link.match(new RegExp(regExpStr))) {
			return true;
		} else {
			alert("You have selected '"+site+"', but the link '"+link+"' is not a valid link for that site.");
			return false;
		}
	}
	return true;
}


/**
 * div-scroller functions
 */
spIntervalAr = new Array();
for(var i=0; i<25; i++) {
	spIntervalAr[i] = 10;
}

function spMove(divId){
	clearInterval(spIntervalAr[divId]);
	divObj = document.getElementById("itemDiv"+divId);
	if(divObj.scrollWidth - divObj.offsetWidth > 4){
		spIntervalAr[divId] = setInterval(function() { spScroll(divId);},20);
	}
}

function spMoveBack(divId){
	clearInterval(spIntervalAr[divId]);
	spIntervalAr[divId] = setInterval(function() { spScrollBack(divId);},20);
}

function spScrollBack(divId){
	divObj = document.getElementById("itemDiv"+divId);
	if(divObj.scrollLeft <= 0){
		clearInterval(spIntervalAr[divId]);
		spIntervalAr[divId] = null;
		divObj.scrollLeft = 0;
	}
	divObj.scrollLeft -=5;
}

function spScroll(divId){
	divObj = document.getElementById("itemDiv"+divId);
	if(divObj.scrollLeft >= divObj.scrollWidth - divObj.offsetWidth){
		clearInterval(spIntervalAr[divId]);
	}
	divObj.scrollLeft +=1;
}

function spReset(divId){
	spMoveBack(divId);
}


function loadStatus() {
	showLoading();
	$('#nowplaying').load('/status.php?mode=ajax&t='+(new Date()).getTime(),
		function(responseText, textStatus, XMLHttpRequest) {
			setTimeout(loadStatus, 30000);
			hideLoading();
		}
		);
	loadStatusImage();
}
function loadStatusImage() {
	$('#listenergraph').attr(
		{ src: 'images/listeners.png?'+(new Date()).getTime() }
	);
}
function showLoading() {
	var loaderContent = "<div class=\"ajaxloader\"><img src=\"/images/ajax-loader.gif\" alt=\"\"/></div>";
	$(loaderContent).prependTo("#onlinestatus");
}
function hideLoading() {
	$('div.ajaxloader').fadeOut(2000, function() {
		$(this).remove();
	});
}
