/* Author: Fadzril M
 * 
 *
 */
var fm = window.fm || {};

fm.main = (function($) {

	fm.url = {
		school : 'school.malaysiakini.com/feed/',
		newmedia : '8020newmedia.com/feed/',
		getmeacustomer : 'getmeacustomer.com/site/feed/'
	}
	
	var setSelect = function() {
		var $select = $('#select'),
			$selectItem = $select.find('.select-item');
			
			$selectItem.each( function() {
				var $element = $(this);
				var $parent = $element.parent();
				var height = $element.height();
		
				$parent.hover(
					function(e) {
						$element.slideDown('fast');
					},
					function(e) {
						$element.slideUp('fast');
					}
				);
			});
		
	}
	
	var setNavigation = function() {
		var $menu = $('#nav ul'),
			$menuParent = $menu.children('li'),
			$menuArrow = $('<span/>', { class:'nav-arrow'});
			
			$menuParent.each(function() {
				var $menuChild = $(this).children('ul');
					$menuChild.parent().addClass('has-child').andSelf().parent().prepend($menuArrow);
				
				$(this).hover(
					function(e) {
						if ($menuChild.css('display') === 'none') {
							$(this).addClass('hover');
							$menuChild.slideDown('fast');
						} else {
							return;
						}
					},
					function(e) {
						if ($menuChild.css('display') === 'block') {
							$(this).removeClass('hover');
							$menuChild.slideUp('fast');
						} else {
							return;
						}
					}
				);
			});
			
	}
	
	var setBlogFeed = function() {
	
		var query = 'SELECT * FROM rss WHERE url="'+ fm.url.getmeacustomer +'" LIMIT 3';
		/*
		var query = 'USE "http://www.datatables.org/data/query.multi.xml" AS query.multi; '+
    				'SELECT * FROM query.multi WHERE queries="'+
    					'SELECT * FROM rss WHERE url=\''+ fm.url.school +'\' LIMIT 1;' +
    					'SELECT * FROM rss WHERE url=\''+ fm.url.newmedia +'\' LIMIT 1;' +
    					'SELECT * FROM rss WHERE url=\''+ fm.url.getmeacustomer +'\' LIMIT 1"';
    	*/
    					
		function sendRequest(query, callback) {
	        if (!query || !callback) {
	            throw new Error('$.YQL(): Parameters may be undefined');
	        }
	
	        var encodedQuery = encodeURIComponent(query.toLowerCase()),
	            url = 'http://query.yahooapis.com/v1/public/yql?q=' + encodedQuery + '&format=json&callback=?';
	
	        $.getJSON(url, callback);
    	};
    	
    	var requestHandler = function(data) {
    		try {
                var items = data.query.results.item;
                var container = $('#blog-post').find('ul');
                
                $.each(items, function(i, item) {
                    var published = item.pubDate.replace(',', '').split(' ');
                    var li = '<li>';

                    function filter(data) {
                        data = data.replace('#published', published[0] + ' ' + published[1] + ' ' + published[2]);
                        data = data.replace('#link', item.link);
                        data = data.replace('#title', item.title);
                        data = data.replace('#description', item.description.substring(0, 150) + '...');

                        return data;
                    }

                    var content = '';
                    	content += '<a href="#link"><h3 class="blog-title">#title</h3></a>';
                    	content += '<span class="blog-published">#published</span>';
                    	content += '<div class="blog-description"><p>#description</p>';
                    	content += '<a href="#link">read more &raquo;</a>'
                    	content += '</div>';

                    var trimmerContent = filter(content);
					
                    $(li).html(trimmerContent).andSelf().appendTo(container);

                });
            }
            catch (e) {
                var message = '<h3>' + e.message + '</h3>';
            }
    	}
		
		return sendRequest(query, requestHandler);
	}
	
	var setAttribution = function() {
	
		/* FM attribution */
        $('#attribution').each(function() {
            var element = $(this);
            var spanW = element.children('.fm').width();
            element.css('right', -spanW);
            element.children('#fm').toggle(
            	function(e) {
                	e.preventDefault();
                	element.animate({
                    	right: 0
                	}, 1000);
            	}, 
            	function(e) {
                	e.preventDefault();
                	element.animate({
                    	right: -spanW
                	}, 1000);
            	});
        });
        
        /* Promote JS */
        $('#promote-js').toggle( 
        	function (e) {
          		e.preventDefault();
	          	var container = $('<div/>', {'id':'promote-container'});
	          	var properties = {
	            	'position':'absolute',
	            	'left' : e.pageX - (80/2),
	            	'top' : e.pageY - 165
	          	};
          		var promote = {"alt":"JS API","href":"https://developer.mozilla.org/en/JavaScript","src":"http://static.jsconf.us/promotejsv.gif","height":"140","width":"80"};
          		var img = new Image();
              		img.src = promote.src;
              		img.height = promote.height;
              		img.width = promote.width;
          		var link = '<a href="'+promote.href+'" alt="'+promote.alt+'">SupportJS</a>';
          		
          		container.css(properties).appendTo('body');
          		$(link).html(img).appendTo(container);
        	}, 
        	function(e) {
          		if ( $('#promote-container').length ) {
            		$('#promote-container').remove();
            		return;
          		}
        });
		
	}

	return {
		init : function() {
			setNavigation();
			setBlogFeed();
			setSelect();
			setAttribution();
		}
	}
	
})(jQuery).init();

