var id = 0;
var isAlt = 0;
var isAltToBtm = 1;
var selecting = 0;
var processing = 0;
var noEffect = 1;

$.easing.elasout = function(x, t, b, c, d) {
	var s=1.70158;var p=0;var a=c;
	if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
	if (a < Math.abs(c)) { a=c; var s=p/4; }
	else var s = p/(2*Math.PI) * Math.asin (c/a);
	return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
};

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}

function generateTag(top, id, date, name, msg, eml) {
	eml = (!eml || eml == null)?"":eml;
	
	if (top) {
		altVal = isAlt?"2":"";
	} else {
		altVal = isAltToBtm?"2":"";
	}

	if (eml.match('.*@.*')) {
		var tag = '<tr id="msgs-'+id+'"><td class="stxt'+altVal+'"><div class="dtxt'+altVal+'">'+date+'</div><b class="pn_std"><a href="mailto:'+eml+'">'+name+'</a></b>: '+msg+'</td></tr>';
	} else if (eml.match('http:\/\/.*')){
		var tag = '<tr id="msgs-'+id+'"><td class="stxt'+altVal+'"><div class="dtxt'+altVal+'">'+date+'</div><b class="pn_std"><a href="'+eml+'">'+name+'</a></b>: '+msg+'</td></tr>';
	} else {
		var tag = '<tr id="msgs-'+id+'"><td class="stxt'+altVal+'"><div class="dtxt'+altVal+'">'+date+'</div><b class="pn_std">'+name+'</b>: '+msg+'</td></tr>';
	}
	
	if (top) {
		isAlt = isAlt?0:1;
	} else {
		isAltToBtm = isAltToBtm?0:1;
	}
	
	return tag;
}

function addTag(rId, top, date, name, msg, eml) {
	rId = (!rId || rId == null)?id:rId;
	eml = (!eml || eml == null)?"":eml;
	
	offset = Math.max(offset, rId);
	bOffset = (!bOffset)?rId:Math.min(bOffset, rId);

	if (top==-1) {
		$("#msgsrowstart").after(generateTag(1, rId, date, name, msg, eml));
		if (autoScroll) {
			nTag = $("#msgsrowstart");
			$.scrollTo(nTag, 1000, { easing:'elasout' });
		}
	} else if (top==-2) {
		$("#moremsgs").before(generateTag(0, rId, date, name, msg, eml));
	} else {
		var target = $("#msgs-"+top);
		if (target.next().hasClass("replyto")) {
			target = target.next();
			while (target.hasClass("replyto")) {
				target = target.next();
			}
			target = target.prev();
		}
		target.after(generateTag(0, rId, date, name, msg, eml));
		//$("#msgs-"+rId+" td").removeClass();
		$("#msgs-"+rId+" td").attr("class", $("#msgs-"+top+" td").attr("class"));
		$("#msgs-"+rId+" td div").attr("class", $("#msgs-"+top+" td div").attr("class"));
		$("#msgs-"+rId+" td").attr("style", "padding-left: 30px;");
		$("#msgs-"+rId).addClass("replyto");
		$("#msgs-"+rId+" td").addClass("replyto");
		if (autoScroll) {
			pTag = $("#msgs-"+top);
			$.scrollTo(pTag, 1000, { easing:'elasout' });
		}
		$("tr[id^='msgs'] td").removeClass("clicked");
		$("#replyto").val("none");
		$("#replytoinput").val("none");
	}
	
	if (!noEffect) {
		$("#"+$("#msgs-"+rId).attr("id")+" td").hide();
		$("#"+$("#msgs-"+rId).attr("id")+" td").fadeIn(1000);
		//$("#"+$("#msgs-"+rId).attr("id")+" td").effect("highlight", {}, 2000); 
	}

	id++;
	
	return false;
}

/*
function tag(date, name, msg, eml) {
	var top = ($("#replyto").val() == "none")?-1:$("#replyto").val();
	eml = (!eml || eml == null)?"":eml;
	
	if (name=="" || msg=="") {
		if (name=="") {
			$("#nme").effect("shake", { times: 4 }, 60);
			$("#nme").effect("highlight", {color: 'red'}, 2000);
		}
		if (msg=="") {
			$("#msg").effect("shake", { times: 4 }, 60);
			$("#msg").effect("highlight", {color: 'red'}, 2000);
		}
		return false;
	}

	addTag(null, top, date, name, msg, eml);
}
*/

function setStatus(set, status) {
	if (set) {
		//altVal = isAlt?"2":"";
		status = (status=="" || status==null)?"posting...":status;
		
		//$("#status").remove();
		//$("#handleLeft").after('<div id="status">'+status+'</div>');
		//$("#statusicon").append('<span id="status">&nbsp;<img src="'+site_url+'img/ajax-loader.gif" width="16" height="16" /></span>');
		//$("#msgsrowstart").after('<tr id="status"><td class="stxt'+altVal+'"><div class="dtxt'+altVal+'"></div><center>'+status+'</center></td></tr>');
		$("#status").hide();
		$("#status").fadeIn(1000);
	}
	else {
		$("#status").fadeOut(1000, function(){/*$("#status").remove();*/});
	}
}

function showReplyForm() {
	$('#form').slideToggle('fast');
}

function bindMouseover() {
	$('#handle').unbind("mouseover");
	$('#content').unbind("mouseover");
	$('#handle').mouseover(function(){
		$('#hoverTooltip').fadeOut(600, function(){ $('#handlelink').fadeIn(1000); });
		$('#form').slideDown('medium');
	});
	/*$("#content").mouseover(function(){
		$('#form').slideUp('medium');
	});*/
}

function disableMouseover() {
	$('#content').unbind("mouseover");
	$('#handle').mouseover(function(){
		bindMouseover();
	});
	//setTimeout("bindMouseover();", 1000);
}

function toggleClickable() {
	if ($("tr[id^='msgs-'] td").hasClass("clickable")) {
		$("tr[id^='msgs-']").unbind('click');
		$("tr[id*='msgs-'] td").removeClass("clickable");
		$('#replytononebtn').fadeOut("1000");
		$("#replytobtn").val("Select");
	}
	else {
		$('#replytononebtn').fadeIn("1000");
		$("tr[id^='msgs-']").bind('click', function(){
			var thisID = $(this).attr("id");
			$("tr[id^='msgs-'] td").removeClass("clicked");
			$("tr[id^='msgs-'] td").removeClass("clickable");
			$("tr[id^='msgs-']").unbind('click');
			$("#"+thisID+" td").addClass("clicked");
			var name = $("#"+thisID+" td b").text();
			var date = $("#"+thisID+" td div[class^=dtxt]").text();
			$("#replytoinput").val(name+" ("+date+")");
			$('#form').slideDown('fast');
			disableMouseover();
			$("#"+thisID+" td").effect("highlight", {color: 'yellow'}, 2000);
			$("#replytorow td").effect("highlight", {color: 'yellow'}, 2000);
			$("#replytobtn").val("Select");
			$("#replyto").val(thisID.substring(5));
			$('#replytononebtn').fadeOut("1000");
			if (autoScroll) {
				sTag = $("#"+thisID);
				$.scrollTo(sTag, 1000, { easing:'elasout' });
			}
		});
		$("tr[id^='msgs-'] td").addClass("clickable");
		$("#replytobtn").val("Cancel");
		$("tr[id^='msgs-'] td").effect("highlight", {color: '#CCFF00'}, 2000);
	}
}

function refresh() {
	stopRefreshTimer();
	if (running) {
		setStatus(1, "refreshing...");
		$.getScript(site_url+"/tags/gettags/"+qube_id+"/25/"+offset, function(){setStatus(0);startRefreshTimer();});
	}
}

function showMore() {
	stopRefreshTimer();
	autoScroll = 0;
	setStatus(1, "fetching archive...");
	$.getScript(site_url+"/tags/gettags/"+qube_id+"/10/"+bOffset+"/1", function(){setStatus(0);autoScroll = 1;$.scrollTo( $('#history a'), 2000, { easing:'elasout' });});
	startRefreshTimer();
}

function changeTab(tab) {
	$("#messages").hide();
	$("#smilies").show();
}

function startRefreshTimer() {
	if (running) {
		$('#content').everyTime(10000, 'contentRefresh', function(){
			refresh();
		});
	}
}

function stopRefreshTimer() {
	$('#content').stopTime('contentRefresh');
}

function submitForm() {
	if ($('#msg_short input').val()) {
		$('#msg').val($('#msg_short input').val());
	}
	$('#qube').submit();
	return false;
}

function autochange_nme(dom) {
	$('#nme').val($(dom).val());
}

function autochange_msg(dom) {
	$('#msg').val($(dom).val());
}

function autochange() {
	//$('#nme_short input').val($('#nme').val());
	$('#msg_short input').val($('#msg').val());
}

function showForm() {
	$('#handlelink').fadeOut(600, function(){
		$('#handlelink').html('[v]');
		$('#handlelink').fadeIn(1000);
	});
	//$('#nme').val('')
	//$('#nme_short').fadeOut(1500, function(){
		//$('#hoverTooltip').remove();
	//});
	$('#msg_short').fadeOut(1500, function(){
		//$('#hoverTooltip').remove();
	});
	/*$('#sub_short').fadeOut(1500, function(){
		//$('#hoverTooltip').remove();
	});*/
	$('#content').css('margin-bottom', '123px');
}

function hideForm() {
	$('#handlelink').fadeOut(600, function(){
		//$('#hoverTooltip').remove();
		//$('#handleLeft').prepend('<form onsubmit="return submitForm();"><table id="hoverTooltip" width="100%" cellspacing="0" cellpadding="0" margin="0" padding="0"><tr><td width="20%"><input style="width:100%;" onchange="autochange_nme(this);"/></td><td width="75%"><input style="width:100%;" onchange="autochange_msg(this);"/></td><td style="padding-left: 5px;"><input type="submit" value="Go" class="frmbtn"></td></tr></table></form>');
		//$('#handleRight').prepend('<span id="hoverTooltip">hover here to show the form again...</span>');
		$('#handlelink').html('[∧]');
		$('#handlelink').fadeIn(1000);
	});
	//$('#nme_short').hide();
	$('#msg_short').hide();
	//$('#sub_short').hide();
	autochange();
	//$('#nme_short').fadeIn(1000, function(){
	//});
	$('#msg_short').fadeIn(1000, function(){
	});
	/*$('#sub_short').fadeIn(1000, function(){
	});*/
	$('#content').css('margin-bottom', '12px');
}

function toggleForm() {
	if ($('#form').css('display') == "none") {
		showForm();
	} else {
		hideForm();
	}
	showReplyForm();
}

$(document).ready(function(){
	$("#smileylink").click(function(){
		$("#smileys").slideToggle('fast');
	});
	
	$("#helplink").click(function(){
		$("#help").slideToggle('fast');
		$("#handle").slideToggle('fast');
		showReplyForm();
		//toggleForm();
	});
	
	$("#helpcloselink").click(function(){
		$("#help").slideToggle('fast');
		$("#handle").slideToggle('fast');
		showReplyForm();
		//toggleForm();
	});
	
	$('input').keydown(function(e){
	        if (e.keyCode == 13) {
	            submitForm();
	            return false;
	        }
	    });
	
	$('.msgshort').change(function(){autochange_msg(this);});
	
	//bindMouseover();
	$("#status").hide();
	$('#sub_short').hide();
	
	//$('#handlelink').hide();
	$('#handlelink').click(function(){
		toggleForm();
	});

	$("#nme").val(getCookie("name_"+$("#qube_id").val()));
	$("#eml").val(getCookie("email_"+$("#qube_id").val()));
	
	/*if ($("#eml").val() == "") {
		$("#emlrow").hide();
	}

	$("#replytorow").hide();
	$("#lessrow").hide();

	$("#morerow").click(function(){
		$("#emlrow").fadeIn(800);
		$("#replytorow").fadeIn(800);
		$(this).hide();
		$("#lessrow").show();
	});
	
	$("#lessrow").click(function(){
		$("#emlrow").fadeOut(800);
		$("#replytorow").fadeOut(800);
		$(this).hide();
		$("#morerow").show();
	});
	*/
	
	$('#replytobtn').click(function(){
		toggleClickable();
	});

	$('#replytononebtn').click(function(){
		$("tr[id^='msgs-']").unbind('click');
		$("#replytoinput").val("none");
		$("#replytorow td").effect("highlight", {color: 'yellow'}, 2000);
		$("#replytobtn").val("Select");
		$("#replyto").val("none");
		$("tr[id^='msgs-'] td").removeClass("clicked");
		$("tr[id*='msgs-'] td").removeClass("clickable");
		$(this).fadeOut(1000);
	});

	$('#replyto').val("none");
	$('#replytoinput').val("none");

	/*
	$('#qube').submit(function(){
		tag('NEW', $('#nme').val(), $('#msg').val(), $('#eml').val());
		return false;
	});
	*/

	$("#form").hide();

	$('#history a').click(function(){
		showMore();
		return false;
	});

	$("#footer").show();
	$("#content").show();

	$('#refreshlink').click(function(){refresh();});
	startRefreshTimer();
	
	$('#qube').submit(function(){
		if ($("#nme").val()=="" || $("#msg").val()=="") {
			if ($("#nme").val()=="") {
				showForm();
				$('#form').slideDown('fast', function(){
					$("#nme").effect("shake", { times: 4 }, 60);
					$("#nme").effect("highlight", {color: 'red'}, 2000);
				});
			}
			if ($("#msg").val()=="") {
				showForm();
				$('#form').slideDown('fast', function(){
					$("#msg").effect("shake", { times: 4 }, 60);
					$("#msg").effect("highlight", {color: 'red'}, 2000);
				});
			}
			return false;
		}
		
		stopRefreshTimer();
		setStatus(1);

		// http://be.twixt.us/jquery/formSubmission.php
		var params = {};
		$(this)
		 .find("input[@checked], input[@type='text'], input[@type='hidden'], input[@type='password'], input[@type='submit'], option[@selected], textarea")
		 .filter(":enabled")
		 .each(function() { params[ this.name || this.id || this.parentNode.name || this.parentNode.id ] = this.value; }); 
		$.post(site_url+"/tags/newtag", params, function(data){
			setStatus(0);
			if (data=="") {
				$('#form').slideUp('fast', function(){});
				hideForm();
				refresh();
				$("#msg").val("");
			} else {
				alert("Error: Cannot post your tag. Please try again later.");
				alert(data);
			}
			autochange();
		});

		return false;
	});
	
	/*$('#msg_short').tooltip({ 
	    track: true, 
	    delay: 0, 
	    showURL: false, 
	    showBody: " - ", 
	    fade: 250,
		top: 0,
		left: -50
	});
	
	$('#handlelink').tooltip({ 
	    track: true, 
	    delay: 0, 
	    showURL: false, 
	    showBody: " - ", 
	    fade: 250,
		positionLeft: true
	});*/

	$.getScript(site_url+"/tags/gettags/"+qube_id, function(){autoScroll = 1;noEffect=0;});
	autochange();
	$('#help').css('height', parent.document.getElementById("qubemain").height+"px");
	//alert(parent.document.getElementById("qubemain").height);
});
