var webpath = "http://stagevu.com";
var userimgpath = "http://stagevu.com/img/userimg";

function toggle(id) {
	$("#" + id).toggle();
}

function slidetoggle(id) {
	$("#" + id).slideToggle("slow");
}

var advshown = false;
function togglesearch() {
	if (advshown) $("#advsearch").fadeOut(1000);
	else $("#advsearch").fadeIn(1000);
	
	advshown = !advshown;
}

var loadingshow = false;
function loading() {
	if (loadingshow == false) {
		$("#loading").fadeIn("normal");
		window.loadingshow = true;
	} else {
		$("#loading").fadeOut("normal");
		window.loadingshow = false;
	}
}

var noticeshow = false;
var noticetimeout = null;
function notice(message, color) {
	if (message != null) $("#noticetext").html(message);
	if (color != null) $("#notice").css("background-color", color);
	if (window.noticetimeout != null) {
		window.clearTimeout(window.noticetimeout);
		window.noticetimeout = window.setTimeout('window.noticetimeout = null; window.notice();', 5000);
	} else if (noticeshow == false) {
		$("#notice").fadeIn("slow");
		window.noticeshow = true;
		window.noticetimeout = window.setTimeout('window.noticetimeout = null; window.notice();', 5000);
	} else {
		$("#notice").fadeOut("slow");
		window.noticeshow = false;
	}
}

function localtime(elemid, utc) {
	function numtomonth(monthnum) {
		switch (monthnum) {
			case 0: return "January"; break;
			case 1: return "February"; break;
			case 2: return "March"; break;
			case 3: return "April"; break;
			case 4: return "May"; break;
			case 5: return "June"; break;
			case 6: return "July"; break;
			case 7: return "August"; break;
			case 8: return "September"; break;
			case 9: return "October"; break;
			case 10: return "November"; break;
			case 11: return "December"; break;
		}
	}
	
	function ampm(hour) {
		return (hour < 12 ? 'am' : 'pm');
	}
	
	function to12hr(hour) {
		var hr12 = hour % 12;
		if (hour == 0) hr12 = 12;
		return hr12;
	}
	
	d = new Date(utc);
	d += d.getTimezoneOffset() * 60 * 1000;
	$("#" + elemid).text(numtomonth(d.getMonth()) + ' ' + d.getDate() + ', ' + d.getFullYear + ' ' + two12hr(d.getHours) + ':' + d.getMinutes + ':' + d.getSeconds + ' ' + ampm(d.getHours));
}

function toggleads() {
	$("#hideads").slideToggle("slow");
	$(".ad").slideToggle("slow");
}

function logincheck(idpostfix) {
	if (typeof idpostfix == 'undefined') idpostfix = '';
	var loginmessage = new Array();
	if ($("#un" + idpostfix).val().length == 0) loginmessage.push('The username is required');
	if ($("#pw" + idpostfix).val().length == 0) loginmessage.push('The password is required');
	var logintext = loginmessage.join('<br />');
	if (logintext.length == 0) {
		loading();
		$("#loginform" + idpostfix + " input").attr("disabled", "disabled");
		return true;
	} else {
		$("#loginmessage" + idpostfix).html("<span style='color: #f84'>" + loginmessage + "</span>");
		return false;
	}
}

function logindone(data, idpostfix) {
	if (typeof idpostfix == 'undefined') idpostfix = '';

	loading();
	$("#loginform" + idpostfix + " input").removeAttr("disabled");
	$("#loginmessage" + idpostfix).html(data.message);

	if (data.success) {
		var pattern = new RegExp('login', 'i');
		if (location.href.match(pattern)) location.href = webpath;
		else location.reload(true);
	}
}

var userdisplay = false;
function toggleuser() {
	if (!userdisplay)
		$("#user").fadeIn("slow");
	else $("#user").fadeOut("slow");
	
	userdisplay = !userdisplay;
}

function toggleusermenu(action) {
	if (action == 'show') $("#usermenu").show();
	else if (action == 'hide') $("#usermenu").hide();
	else if (action == 'toggle') $("#usermenu").toggle();
}

function fadereplace(imageid, newimageurl) { //Replaces an image via fadeout/fadein
	var img = new Image();
	img.src = newimageurl + "?randomquerystring=" + Math.round(Math.random() * 1000000);
	$("#" + imageid).fadeOut("slow", function () {
		$("#" + imageid).after(img).next().css("display", "none").css("vertical-align", "middle").fadeIn("slow");
		$("#" + imageid).attr("id", "oldpicture").next().attr("id", imageid);
		$("#oldpicture").remove();
	});
}

function reloaddone(data, status) {
	if (data.success === true) {
		window.notice(data.message, '#090');
		location.reload(true);
	} else window.notice(data.message, '#900');
	window.loading();
}

function logout() {
	window.loading();
	$.post(window.webpath + "/ajax/logout.php", {}, reloaddone, "json");
}

function changecolour(theme) {
	window.loading();
	$.get(window.webpath + "/ajax/changetheme.php", {colour: theme}, reloaddone, "json");
}

function changelayout(theme) {
	window.loading();
	$.get(window.webpath + "/ajax/changetheme.php", {layout: theme}, reloaddone, "json");
}

function searchsubmit() {
	if ($("#dd").val() == 'Channels') $("#mainsearchform").attr('action', 'http://stagevu.com/chansearch');
	else $("#mainsearchform").attr('action', 'http://stagevu.com/search');
	return true;
}

function selectlink(id) { // Used for those embed/link text fields: click to select all
	$('#' + id).focus();
	document.getElementById(id).select();
}

function toggledescription() { // Toggles one of those "... More" descriptions
	$("#more, #less, #dots, #longdesc, #shortdesc").toggle();
}

function checklen(fieldid, maxlen) { // Checks the length of a field, and relays the message
	var len = $("#" + fieldid).val().length;
	if (len > maxlen) {
		$("#" + fieldid + "limit").text("It's " + (len - maxlen) + " character(s) too long!");
		return false;
	} else {
		$("#" + fieldid + "limit").text("You have " + (maxlen - len) + " character(s) left.");
		return true;
	}
}

function selectall(formid) { // Select all checkboxes on a form of "Formid"
	$('#' + formid + ' :checkbox').attr('checked', true);
}

function selectnone(formid) { // Same except unselect
	$('#' + formid + ' :checkbox').attr('checked', false);
}

function getos() {
	var ua = navigator.userAgent, os;
	if (ua.search(/win/i) != -1) os = 'Windows';
	else if (ua.search(/mac/i) != -1) os = 'Mac';
	else if (ua.search(/linux/i) != -1) os = 'Linux';
	else os = 'Unknown';
	return os;
}

function isie() {
	var ua = navigator.userAgent;
	if (ua.search(/msie/i) != -1) return true;
	else return false;
}

var ipchanges = -1;

function dynamicdns() {
	function done(data) {
		if (data != ip) ipchanges++;
		else if (ipchanges == -1) ipchanges = 0;
	}
	$.get(webpath + '/ajax/ip.php', {}, done, 'text');
}

function advsearch(type) {
	$('#advsearch div').hide();
	$('#' + type + 'adv').show();
	$('#advlinks a').attr('href', '#').removeClass('noa');
	$('#' + type + 'advlink').removeAttr('href').addClass('noa');
}

// Debugging
function dump(A,G){var F="";if(!G){G=0}var E="";for(var B=0;B<G+1;B++){E+="    "}if(typeof (A)=="object"){for(var C in A){var D=A[C];if(typeof (D)=="object"){F+=E+"'"+C+"' ...\n";F+=dump(D,G+1)}else{F+=E+"'"+C+"' => \""+D+'"\n'}}}else{F="===>"+A+"<===("+typeof (A)+")"}return F};

// Base64
function base64_url_encode(H){var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_,";var C,B,A,L,K,J,I,M,G=ac=0,F="",E=[];H=utf8_encode(H);do{C=H.charCodeAt(G++);B=H.charCodeAt(G++);A=H.charCodeAt(G++);M=C<<16|B<<8|A;L=M>>18&63;K=M>>12&63;J=M>>6&63;I=M&63;E[ac++]=D.charAt(L)+D.charAt(K)+D.charAt(J)+D.charAt(I)}while(G<H.length);F=E.join("");switch(H.length%3){case 1:F=F.slice(0,-2)+",,";break;case 2:F=F.slice(0,-1)+",";break}return F}

function utf8_encode(D){D=(D+"").replace(/\r\n/g,"\n").replace(/\r/g,"\n");var B="";var H,A;var F=0;H=A=0;F=D.length;for(var G=0;G<F;G++){var E=D.charCodeAt(G);var C=null;if(E<128){A++}else{if((E>127)&&(E<2048)){C=String.fromCharCode((E>>6)|192)+String.fromCharCode((E&63)|128)}else{C=String.fromCharCode((E>>12)|224)+String.fromCharCode(((E>>6)&63)|128)+String.fromCharCode((E&63)|128)}}if(C!=null){if(A>H){B+=D.substring(H,A)}B+=C;H=A=G+1}}if(A>H){B+=D.substring(H,D.length)}return B}

function base64_url_decode(H){var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_,";var C,B,A,L,K,J,I,M,G=ac=0,E="",F=[];H+="";do{L=D.indexOf(H.charAt(G++));K=D.indexOf(H.charAt(G++));J=D.indexOf(H.charAt(G++));I=D.indexOf(H.charAt(G++));M=L<<18|K<<12|J<<6|I;C=M>>16&255;B=M>>8&255;A=M&255;if(J==64){F[ac++]=String.fromCharCode(C)}else{if(I==64){F[ac++]=String.fromCharCode(C,B)}else{F[ac++]=String.fromCharCode(C,B,A)}}}while(G<H.length);E=F.join("");E=utf8_decode(E);return E}

function utf8_decode(A){var B=[],C=ac=c1=c2=c3=0;A+="";while(C<A.length){c1=A.charCodeAt(C);if(c1<128){B[ac++]=String.fromCharCode(c1);C++}else{if((c1>191)&&(c1<224)){c2=A.charCodeAt(C+1);B[ac++]=String.fromCharCode(((c1&31)<<6)|(c2&63));C+=2}else{c2=A.charCodeAt(C+1);c3=A.charCodeAt(C+2);B[ac++]=String.fromCharCode(((c1&15)<<12)|((c2&63)<<6)|(c3&63));C+=3}}}return B.join("")};

function roundStuff() {
	try {
		$('div.borderedbox, td.borderedbox, table.borderedbox, p.borderedbox').corner('round 10px');
		$('.rightbox, #advsearch, #topnav, #searchopts').corner('round 10px');
		$('.result1, .result2').corner('round 10px');
		$('#info, #actions, #tags, #share, #report, #channel, #addtag, .boxes1, .boxes2').corner('round 10px');
		$('.comment, .berror').corner('round 10px');
	} catch (err) { }
}

$(document).ready(function() {
	$('#loginform').ajaxForm({
		beforeSubmit: function() { return logincheck(''); },
		dataType: 'json',
		success: function(data) { logindone(data, ''); }
	});
	$('#loginform2').ajaxForm({
		beforeSubmit: function() { return logincheck('2'); },
		dataType: 'json',
		success: function(data) { logindone(data, '2'); }
	});
	roundStuff();
	
	//$("#usermenu, #user, #sitemessage").fadeTo(0, 0.9);
});
