//AJAX POST MESSAGE

function ajaxMsg() {
	
	if ($('contact_form')) {
		$('contact_form').addEvent('submit', function(e) {
			e = new Event(e).stop();
			this.set('send', {url: this.action, method: 'post',
				onRequest:function() {
					$('postStatus').addClass('ajax-loading');
				},				    
				onSuccess:function(responseText, responseXML) {
					$('postStatus').removeClass('ajax-loading');
					$('msgStatus').setStyle('color', '#ffffff');
					var msg = $('msgStatus').set('html', responseText);
					var msgFx = new Fx.Tween(msg, {duration:1500});
					
					if (responseText == "Thank you for your message. I will get back to you shortly.") {
						msgFx.start('color', '#28ab3b');		
					} else {
						msgFx.start('color', '#ff3333');		
					}
				},					
				onFailure: function(instance) {
					$('postStatus').removeClass('ajax-loading');
					$('msgStatus').setStyle('color', '#ffffff');
					var msg = $('msgStatus').set('html', 'A server error has occurred.');
					var msgFx = new Fx.Tween(msg, {duration:1500});		
					msgFx.start('color', '#ff3333');						
				}

			});
			
			this.send();
			
		});
		
	}
	
}

//AJAX LINKS

function ajaxLinks(id) {	
	$$(id).each(function(ele) {
		ele.addEvent('click', function(e) {
			e = new Event(e).stop();
			var alink = ele.getProperty('href');

			if (alink.indexOf('?') != -1 && alink.indexOf('ajax') != -1) {
				var url = alink;		
			} else {
				if (alink.indexOf('?') != -1) {
					var url = alink + '&ajax=y';	
				} else {
					var url = alink + '?ajax=y';	
				}
			}

			var ajaxLink = new Request.HTML({
				onRequest: function() {
					var coordinates = $('post').getCoordinates();
					var main_body = $(document.body).getCoordinates();
					var spin_x = coordinates.left + coordinates.width/2;
					var spin_y = coordinates.bottom - (main_body.height/2);
					$('ajaxSpinner').setStyles({
						'left': spin_x,
						'top': spin_y
					});
					$('ajaxSpinner').addClass('ajax-loading');							
					$('post').fade('out');					
				},																			 

				onSuccess: function() {		
					$('ajaxSpinner').removeClass('ajax-loading');
					$('ajaxSpinner').setStyles({
						'left': 0,
						'top': 0
					});					
					new Fx.Scroll(document.body).start(0, 0);
					$('post').fade('in');
					ajaxLinks('.page-navi a');
				}, 
				
				onFailure: function() {
					$('ajaxSpinner').removeClass('ajax-loading');
					$('post').fade('in');				
				},
				update: $('post')
			}).get(url);											
		});		    
	});
}

//AJAX COMMENTS

function ajaxComment() {

	if ($('commentform')) {
		$('commentform').addEvent('submit', function(e) {
			e = new Event(e).stop();
			 this.set('send', {url: this.action, method: 'post',
					onRequest:function() {
						$('postStatus').addClass('ajax-loading');
						$('commentStatus').setStyle('color', '#ffffff');
					},				    

				onSuccess:function(responseText, responseXML) {
					$('postStatus').removeClass('ajax-loading');					
					var temp = new Element('div').set('html', responseText);
					
					if ($('wrapper').getElement('.list')) {	
						var count = temp.getElement('.list').getFirst().get('html');				
						var changeCount = $('wrapper').getElement('.list').getFirst().set('text', count);				
						var changeCountFx = new Fx.Tween(changeCount).start('background-color', '#ffffff');									
					}

					if ($('wrapper').getElement('.commentlist')) {
						if (temp.getElement('.commentlist').getChildren().length == $('wrapper').getElement('.commentlist').getChildren().length) {
							var commentMod = $('commentStatus').set('html', 'Your comment is being held for moderation');
							var commentModfx = new Fx.Tween(commentMod, {duration:1500}).start('color', '#ff3333');
						} else {
							var commentMod = $('commentStatus').set('html', 'Thank you for your comment');
							var commentModfx = new Fx.Tween(commentMod, {duration:1500}).start('color', '#28ab3b');
						}						
						
						var addComment = temp.getElement('.commentlist').getLast().inject($('wrapper').getElement('.commentlist'));
						//var addCommentFx = new Fx.Tween(addComment, {duration:1500}).start('background-color', '#ffffff');

					} else /*First time posting*/ {
						if (temp.getElement('.comments').getFirst().getFirst().get('text') == 'No Comments So Far') {
							var commentMod = $('commentStatus').set('html', 'Your comment is being held for moderation');
							var commentModfx = new Fx.Tween(commentMod, {duration:1500}).start('color', '#ff3333');						     
						} else {
							var commentMod = $('commentStatus').set('html', 'Thank you for your comment');
							var commentModfx = new Fx.Tween(commentMod, {duration:1500}).start('color', '#28ab3b');
						}						
						
						var addComment = temp.getElement('.comments').getFirst().inject($('wrapper').getElement('.comments'),'top');	
						var addCommentFx = new Fx.Tween(addComment, {duration:1500}).start('background-color', '#ffffff');
					}
				},					

				onFailure: function(instance) {
					$('postStatus').removeClass('ajax-loading');
					var errTemp = new Element('div').set('html', instance.responseText);
					var errComment = $('commentStatus').set('html', errTemp.getElement('p').get('text'));
					var errCommentfx = new Fx.Tween(errComment, {duration:1500}).start('color', '#ff3333');
				}
			});
			this.send();
		});			
	}
}



//CLEAR SEARCH TXTBOX

function clear(){
	if ($('s').value == 'Start your search ...') {
		$('s').value = '';
	}	
}

	

//INPUT FADING	

function inputFade(id) {

	if ($(id)){
		$(id).addEvents({
			'focus': function(){			
				if (id == 's') {
					clear();		
				}
				var bgchange = new Fx.Tween(id, {duration: 300})
				bgchange.start('background-color', '#ffffff', '#fbfb9d')	
	
			},
			'blur': function(){
				var bgoriginal = new Fx.Tween(id, {duration: 300})
				bgoriginal.start('background-color', '#fbfb9d', '#ffffff')
			}
		});		
	}
}

window.addEvent('domready', function(dom){			 
						 
	ajaxComment();
	ajaxLinks('.page-navi a');
	//$$('.post-content').setStyle('display', 'block');

	//INPUT FADING
	inputFade('s');
	inputFade('author');
	inputFade('email');
	inputFade('url');	
	inputFade('comment');
	inputFade('cSubject');
	inputFade('cName');
	inputFade('cEmail');	
	inputFade('cMsg');
	ajaxMsg();	

}); //END DOM READY EVENT 
