/* frame buster */
if (parent && parent.frames && parent.frames.length>0)
{
	parent.location.href=self.document.location;
}

/* jQuery Pause v0.2 */
$.fn.pause = function(B, A) {
	B = B || 1000;
	A = A || "fx";
	return this.queue(A,
	function() {
		var C = this;
		setTimeout(function() {
			$(C).dequeue()
		},B);
	})
};
$.fn.clearQueue = $.fn.unpause = function(A) {
	return this.each(function() {
		A = A || "fx";
		if (this.queue && this.queue[A]) {
			this.queue[A].length = 0
		}
	})
};

/* jQuery Hold/Fade v0.1 (greg) */
$.fn.holdFade = function() {
	this.pause(3000);
	this.fadeOut("slow");
}

function addToFavorites(){
	if(window.sidebar){
		window.sidebar.addPanel(document.title,location.href,'');
	}
	else{
		window.external.AddFavorite(location.href,document.title);
	}
}

/* non-jQuery functions */
function ReadCookie(D) {
	var B = "" + document.cookie;
	var C = B.indexOf(D);
	if (C == -1 || D == "") {
		return ""
	}
	var A = B.indexOf(";", C);
	if (A == -1) {
		A = B.length
	}
	return unescape(B.substring(C + D.length + 1, A))
}
function SetCookie(E, D, C) {
	var B = new Date();
	var A = new Date();
	if (C == null || C == 0) {
		C = 1
	}
	A.setTime(B.getTime() + 3600000 * 24 * C);
	document.cookie = E + "=" + escape(D) + ";expires=" + A.toGMTString()
}

function moveDOM(move_id, to_id) {
	if(document.getElementById && document.getElementById(move_id) && document.getElementById(to_id)) {
		document.getElementById(to_id).appendChild( document.getElementById(move_id) );
		document.getElementById(move_id).style.display = 'block';
	}
}

function refreshCaptcha(bgcolor)
{
	$("#cpimage").attr('src','/?type=captcha&bg='+bgcolor+'&' + parseInt(new Date().getTime().toString().substring(0, 10)));
}
function playCaptcha()
{
	$("#sound_span").html('<embed src="/?type=captcha&audio" hidden="1" autostart="true" loop="false" style="width:0;height:0;margin:0;">');
}

var rec='';
rec += '<form type="hidden" name="Refer a friend" method="post" id="recommend-form">';
rec += '<div class="title"><span><a id="close-recommend-article" href="#" title="Close Form">Close</a></span><b>Recommend This Article</b></div>';
rec += '<div id="recommend_form_msg"></div>';
rec += '<div id="recommend_form_inner">';
rec += '	<table cellspacing="0" cellpadding="1">';
rec += '		<tr valign="bottom">';
rec += '			<td><b>From:</b></td>';
rec += '			<td>';
rec += '				<div id="recommended_by_name_msg" class="error_msg"></div>';
rec += '				<input type="text" id="recommended_by_name" name="recommended_by_name" size="22" value="Your name">';
rec += '			</td>';
rec += '			';
rec += '			<td>';
rec += '				<div id="recommended_by_email_msg" class="error_msg"></div>';
rec += '				<input type="text" id="recommended_by_email" name="recommended_by_email" size="22" value="Your email">';
rec += '			</td>';
rec += '		</tr>';
rec += '		<tr valign="bottom">';
rec += '		<td><b>To:</b></td>';
rec += '			<td>';
rec += '				<div id="recommended_to_name_msg" class="error_msg"></div>';
rec += '				<input type="text" id="recommended_to_name" name="recommended_to_name" size="22" value="Friend\'s name">';
rec += '			</td>';
rec += '			<td>';
rec += '				<div id="recommended_to_email_msg" class="error_msg"></div>';
rec += '				<input type="text" id="recommended_to_email" name="recommended_to_email" size="22" value="Friend\'s email">';
rec += '			</td>';
rec += '		</tr>';
rec += '	</table>';
rec += '	<table cellspacing="0" cellpadding="1">';
rec += '		<tr>';
rec += '			<td>';
rec += '				<div class="message">';
rec += '					<b>Message:</b><br />';
rec += '					<div id="personal_message_msg" class="error_msg"></div>';
rec += '					<textarea rows="2" id="personal_message" name="personal_message" cols="38" wrap="physical"></textarea>';
rec += '				</div>';
rec += '			</td>';
rec += '		</tr>';
rec += '		<tr>';
rec += '			<td>';
//rec += '			<!--';
rec += '				<a onclick="playCaptcha();" href="#" title="Read Captcha Phrase"><img src="/images/audio_icon.png" border="0" alt="Read Captcha Phrase"></a>&nbsp;';
rec += '				<a onclick="refreshCaptcha(\'f0f0f0\');" href="#" title="Refresh Captcha"><img src="/images/refresh.png" border="0" alt="Refresh Captcha"></a><br />';
rec += '				<img src="/captcha/secureimage.php?bg=f0f0f0" id="cpimage" border="0" alt="Please enter the captcha phrase you see here" align="center" style="width:99%">';
rec += '				<span id="sound_span"></span>';
rec += '				<p class="copyright"><b>Enter Above Phrase to the Box Below:</b></p>';
rec += '				<div id="userstring_msg" class="error_msg"></div>';
rec += '				<input maxlength="21" size="30" name="code" id="code" type="text" value="">';
//rec += '			-->';
rec += '			</td>';
rec += '		</tr>';
rec += '	</table>';
rec += '	<div style="text-align:right"><a id="recommend-send" class="recommend-send" href="#" title="Send Email">Send</a></div>';
rec += '</div>';
rec += '</div>';
rec += '</form>';

var sug='';
sug += '<a href="#1" title="Close This Form"><span id="close-suggest-form">Close</span></a>';
sug += '<div id="suggest_topic_inner">';
sug += '	<div id="suggestion_top" class="title" style="padding-bottom:5px;">';
sug += '		Suggest a topic or article headline<br /> you would like this author to write about.';
sug += '	</div>';
sug += '	<div id="info_div" style="display:none"></div>';
sug += '	<textarea id="suggestion_box" cols="40" rows="2" wrap="physical"></textarea>';
sug += '	<div id="len_counter" style="float:left; font-size:11px;"></div>';
sug += '	<div style="float:right;">';
sug += '		<a href="#2" title="Submit Suggestion">';
sug += '			<strong id="submit_suggestion">Submit</strong>';
sug += '		</a>';
sug += '	</div>';
sug += '</div>';

var rss='';
rss += '<div class="inner">';
rss += '	<a href="#" class="closeTooltip"><img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_close" style="position: absolute; top: 1px; right: -20px;"></a>';
rss += '		<div style="padding:0;">';
rss += '			<p align="center">';
rss += '				<img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_rsstitle" border="0" alt="RSS Feed">&nbsp;';
rss += '				<a href="{xml_path}">';
rss += '					<img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_xml" alt="XML RSS Feed" style="border:0">';
rss += '				</a>';
rss += '			</p>';
rss += '			<p align="center">';
rss += '				<a target="_new" href="http://ezinearticles.com/rss_what/">';
rss += '					<img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_rssinfo" border="0" alt="RSS feeds allow you to be notified whenever brand new articles are released by your favorite authors.">';
rss += '				</a>';
rss += '			</p>';

rss += '<table align="center">';
rss += '<tr><td align="center"><a target="_new" href="http://fusion.google.com/add?feedurl={xml_path}"><img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_google" alt="Google" border="0"></a></td></tr>';
rss += '<tr><td align="center"><a target="_new" href="http://add.my.yahoo.com/rss?url={xml_path}"><img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_yahoo" alt="Yahoo" border="0"></a></td></tr>';
rss += '<tr><td align="center"><a target="_new" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url={xml_path}"><img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_newsgator" alt="NewsGator" border="0"></a></td></tr>';
rss += '<tr><td align="center"><a target="_new" href="http://www.bloglines.com/sub/{xml_path}"><img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_bloglines" alt="Bloglines" border="0"></a></td></tr>';
rss += '<tr><td align="center"><a target="_new" href="http://my.msn.com/addtomymsn.armx?id=rss&amp;ut={xml_path}"><img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_msn" alt="MSN" border="0"></a></td></tr>';
rss += '<tr><td align="center"><a target="_new" href="http://feeds.my.aol.com/add.jsp?url={xml_path}"><img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite s_aol" alt="AOL" border="0"></a></td></tr>';
rss += '</table>';

rss += '		</div>';
rss += '	</div>';

/* jQuery Code specific to EA */
$(document).ready(function() {
	var s = "slow";
	var article_id = $('#art_id').attr('value');

	var base = "http://" + document.domain + "/";
	
	//$("#recommend-article-form").append(rec);
	$("#suggest-topic-form").append(sug);
	//$(".toolTip").append(rss);
	
	if(article_id)
	{
		$.getJSON( base + "rpc/article/rating/get.json", { article_id: article_id, ajax: 'true' }, function(json){
			$("#ratingDiv").append(Rating.insertRating(json));
			Rating.jQueryHandler(base);
		});		
	}
	
	$(".ea-category-title").click(function(){
		$("#"+new String($(this).html()).replace(/ /g, "_")).slideToggle();
	});
	$("#id_for_hide").click(function(){
		$(".ea-category-list").slideUp();
	});
	$("#id_for_show").click(function(){
		$(".ea-category-list").slideDown();
	});
	
	$("#togglebio").mouseover(function() {
		$("#extendbio").toggle();
	});
	$("#togglebio").mouseout(function() {
		$("#extendbio").toggle();
	});
	$("#left-login-link").click(function() {
		$("#left-login-form").slideToggle(s);
		return false;
	});
	$("#suggest-topic-link").click(function() {
		$("#suggest-topic-form").fadeIn();
		return false;
	});
	$("#recommend-article-link").click(function() {
		$("#recommend-article-form").fadeIn();
		if ($('#captcha')[0])
		{
			$.ajax({
				url:'/rpc/article/recommend/form',
				success: function(response)
				{
					$('#captcha').replaceWith(response);
				}
			});
		}
		return false;
	});
	$("#close-suggest-form").click(function() {
		$("#suggest-topic-form").fadeOut(s);
		return false;
	});
	$(".s_close").click(function() {
		$(this).parent().parent().parent().fadeOut(s);
		return false;
	});

	/* RSS Tooltip */
	$(".s_rssicon").mouseover(function() {
		var section = $(this).attr('id').replace(/rss-icon-link-/g,''),
			$tooltip = $("#rss-tooltip-" + section);

		if ($tooltip.is(':empty'))
		{
			$tooltip.html(rss.replace(/\{xml_path\}/g, $(this).parent().attr('href')));
		}
		$tooltip.css({
			left: $(this).position().left + 20,
			top: $(this).position().top
		}).fadeIn(s);

		return false;
	});
	
	$(".toolTip").mouseleave(function(){
		$(this).fadeOut(s);
	});
	
	$(".closeTooltip").live('click', (function(){
		$(".toolTip").fadeOut(s);
		return false;
	}));

	/* Link Tracker */
	$("#sig a").click(function() {
		$.ajax({
			url: base + "rpc/article/clickthrough/add.json",
			type: "GET",
			data: "article_id=" + article_id + "&zone=RESOURCE%20BOX&link=" + $(this).attr('href')
		});
	});

	$("#body a").click(function() {
		$.ajax({
			url: base + "rpc/article/clickthrough/add.json",
			type: "GET",
			data: "article_id=" + article_id + "&zone=BODY&link=" + $(this).attr('href')
		});
	});

	/* Recommend Article */
	var ids = "#recommended_by_name,#recommended_by_email,#recommended_to_name,#recommended_to_email,#personal_message";
	$("#close-recommend-article").click(function() {
		$("#recommend-article-form").fadeOut();
		return false;
	});
	$(ids).focus(function() {
		$(this).css('color', 'black');
	});
	$(ids).blur(function() {
		validateRecommendField(this);
	});
	
	$('#recommend-form input[type=text]').each(function(){
		var $field = $(this);
		if ($field.attr('title') != '') {
			$field.data('val', $field.attr('title'));
			$field.val($field.attr('title')).removeAttr('title');
			
			$field.focus(function(){
				if ($field.val() == $field.data('val')) {
					$field.val('');
				}
			}).blur(function(){
				if ($field.val() == '') {
					$field.val($field.data('val'));
				}
			})
		}
	}).live('keypress', (function(e){
		if (e.which == 13) {
			$('#recommend-send').click();
		}
	}));
	
	function validateRecommendForm() {
		var valid = true;
		$('#recommend-form').find('input, textarea').each(function(){
			if (!validateRecommendField(this)) valid = false;
		});
		
		return valid;
	}
	
	function validateRecommendField(el) {
		var valid = true;
		el = $(el);
		var v = el.val();
		var me = el.attr('id');
		var id = "#" + me + "_msg";
		
		if (me == "recommended_by_name" || me == "recommended_to_name")
		{
			if (v == "Your name" || v == "Friend's name" || !v)
			{
				$(id).html("Please enter a valid name").fadeIn(s);
				valid = false;
			}
			else
			{
				$(id).fadeOut(s);
			}
		}
		if (me == "recommended_by_email" || me == "recommended_to_email")
		{
			if (v.match("^.+@.+\\..+$") == null)
			{
				$(id).html("Please enter a valid email").fadeIn(s);
				valid = false;
			}
			else
			{
				$(id).fadeOut(s);
			}
		}
		
		return valid;
	}
	
	$("#recommend-send").click(function() {
		if (validateRecommendForm())
		{
			$.ajax({
				url: base + "rpc/article/recommend/send.json",
				type: "get",
				data: $("form#recommend-form").serialize() + "&article_id=" + article_id,
				success: function(msg)
				{
					if (msg.error) {
						$("#personal_message_msg").html(msg.error).fadeIn(s);
					}
					else {
						$('#recommend-form').get(0).reset();
						$('#refresh-captcha').click();
						$('#recommend-form input[type=text]').each(function(){
							var $field = $(this);
							if ($field.data('val')) {
								$field.val($field.data('val'));
							}
						});
						$("#personal_message_msg").html("Successful!").css("border-color", "green").fadeIn(s).holdFade();
						$("#recommend-article-form").holdFade();
					}
					
				},
				dataType: 'json'
			});
			
		}
	});

	/* Suggestion Form */
	$("#suggestion_box").keyup(function() {
		$("#len_counter").html( Suggest.lenCounter( $(this).val().length ) )
	});
	
	$("#submit_suggestion").click(function() {
		var msg = Suggest.checkLength( $("#suggestion_box").val().length );
		
		if(msg)
		{
			$("#info_div").html(msg).fadeIn(s).holdFade();
		}
		else
		{
			$.ajax({
				url: base + "rpc/author/suggestion/add.json",
				type: "get",
				data: "article_id=" + article_id + "&author_name=" + $('#a_author').attr('value') + "&suggestion=" + $("#suggestion_box").val(),
				dataType: 'json',
				success: function(response) {
					if (response.messages.err_msg)
					{
						$("#info_div").html(response.messages.err_msg.join('<br>')).show();
					}
					else
					{
						$("#info_div").html(response.messages.msg.join('<br>')).show();
						$('#suggestion_box').val('');
						$("#suggest-topic-form").holdFade();
					}
				}
			});
		}
		
		return false;
	});
	
	/* author alerts */
	$('#authoralert-subscribe').submit(function(){
		var $container = $('#author_subscribe_form'),
			$message = $('#authoralert-message');
		
		var showErrorMessage = function(msg)
		{
			$message.html(msg).css('color', 'red');
		}
		
		var showMessage = function(msg)
		{
			$message.html(msg).css('color', 'black');
		}
		
		showMessage('Loading...');
		
		$.ajax({
			url: '/rpc/author/alert/signup.json',
			type: 'get',
			data: $(this).closest('form').serialize(),
			success: function(response){
				if (response.messages.err_msg)
				{
					showErrorMessage(response.messages.err_msg.join('<br>'));
				}
				else
				{
					showMessage(response.messages.msg.join('<br>'));
				}
			},
			error: function()
			{
				showMessage('An error has ocurred. Please try again later.');
			},
			dataType: 'json'
		});
		
		
		return false;
	});
	
	$('#authoralert-subscribe-button').click(function()
	{
		$('#authoralert-subscribe').submit();
		return false;
	});
	
	/* login form populate */
	$('form .login-email').val(ReadCookie('ea_member_login'));

});

function viewArticle()
{
	$("#overlay").slideUp();
}

function leaveArticle()
{
	window.open("http://" + document.domain, "_self");
}

var Suggest = 
{
	checkLength: function(box)
	{
		if (box==0)			{ return "You must enter a suggestion."; }
		else if (box < 6)	{ return "Your suggestion is too short."; }
		else if (box > 100)	{ return "Your suggestion is too long."; }
		else				{ return false; }
	},
	lenCounter: function(num)
	{
		if (num > 100)		{ return "<b>Your suggestion is too long.</b>"; }
		else if (num == 0)	{ return false; }
		else				{ return num + "/100"; }
	}		
}

var Rating = 
{
	json: {},
	setJSON: function(json){ this.json = json; },
	insertHeader: function()
	{
		if(this.json.hasRated)
			return ' <b>Current Rating:</b> ';
		else
			return ' <span class="lgtitle">Please Rate This Article:</span> ';
	},
	insertStars: function()
	{
		var nums = [1,2,3,4,5];
		var stars = "";

		for(var x in nums)
		{
			if(this.json.average > x)
				stars += '<img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite star star_on" alt="' + nums[x] + '" />';
			else
				stars += '<img src="http://img.ezinearticles.com/spriting/trans.gif" class="sprite star" alt="' + nums[x] + '" />';
		}

		return stars;
	},
	insertText: function()
	{
		if(this.json.hasRated || this.json.users)
			return ' (<b>' + this.json.users + '</b> votes, average: <b>' + this.json.average + '</b> out of 5) ';
		else
			return ' (No Ratings Yet) ';
	},
	insertRating: function(json)
	{
		this.setJSON(json);
		return "<br><br>" + this.insertHeader() + this.insertStars() + this.insertText() + "<br><br>";
	},
	jQueryHandler: function(base)
	{
		if(this.json.hasRated==false)
		{
			$(".star").mouseover(function() {
				var val = $(this).attr('alt');
				$(".star").each(function() {
					$(this).removeClass('star_on');
					if (val >= $(this).attr('alt'))
					{
						$(this).addClass('star_hover');
					}
				});
			});

			$(".star").mouseout(function() {
				$(".star").removeClass('star_hover');
			});
			
			$(".star").click(function() {
				var val = $(this).attr('alt');
				$(".star").each(function() {
					if (val >= $(this).attr('alt'))
					{
						$(this).addClass('star_on');
					}
				});
	
				$.getJSON(
					base + "rpc/article/rating/add.json",
					{article_id: $('#art_id').attr('value'), rating: $(this).attr('alt'), ajax: 'true'},
					function(json){
						$("#ratingDiv").empty().append(Rating.insertRating(json)).fadeIn('slow');
						Rating.jQueryHandler(base);
					}
				);
			});
		}
		else
		{
			$(".star").css("pointer","arrow");
		}
	}
}