/**
*@author  			The-Di-Lab
*@email   			thedilab@gmail.com
*@website 			www.the-di-lab.com
*@version           1.0
**/
(function($) {
	$.fn.jsider = function(custom) {
		var defaults = {
			url: "/data.xml"
		};
		var settings = $.extend( {}, defaults, custom);
		var jsider = this;
		$.ajax({
			url: settings.url,
			success: function(data) {
				var jsiderHtml= document.createElement('div');
				var buttons = Array();
				$(jsiderHtml).addClass('jsider-reset').css('display','none').attr('id','jsider-widget');
				$(data).find('data').find("item").each(
						function(key,val){
							//create wrap div and div							
							var contentType = $(this).children('type').eq(0).text();
							var contentClass ='support';
							switch (contentType) {
							case 'link':
								contentClass='link';
								break;
							case 'search':
								contentClass='search';
								break;
							default:
								break;
							}						
							var wrap = document.createElement('div');
							$(wrap)
								.attr('id','jsider-'+contentClass+'-wrap')
								.css('display','none')
								.css('top',((34*key)-1)+"px");
							var div = document.createElement('div');
							$(div).attr('id','jsider-'+contentClass);
							//create widget button 
							var button = document.createElement('a');
							$(button).addClass('widget-button '+$(this).attr('icon'));
							buttons.push(button);
							//links list
							if(contentType==='link' ){
								//content									
									//with sides
									if($(this).children('content').find('side').length>0){
										$(wrap).css('width','320px');
										$(div).css('width','318px');
										$(this).children('content').find('side').each(function(key,val) {
											var ulList  = document.createElement('ul');
											$(ulList).addClass(contentClass+"-list").css('width','158px');	
											if(key==0){
												$(ulList).css('margin-right','1px').css('border-right','1px solid #FEFEFE');	
											}
											$(val).find('link').each(function() {
												var html = '<li><a style="width:138px;" ref="nofollow" href="'+ $(this).find('url').text()+'">'+
												'<span class="widget-icon '+$(this).attr('icon')+'">&nbsp;</span>'+
												$(this).find('label').text()+'</a></li>';										
												$(ulList).append(html);											
											});
											$(div).append(ulList);
										});
									//without sides
									}else{
										var ulList  = document.createElement('ul');
										$(ulList).addClass(contentClass+"-list");	
										$(this).children('content').find('link').each(function() {
											var html = '<li><a ref="nofollow" href="'+ $(this).find('url').text()+'">'+
											'<span class="widget-icon '+$(this).attr('icon')+'">&nbsp;</span>'+
											$(this).find('label').text()+'</a></li>';										
											$(ulList).append(html);											
										});
										$(div).append(ulList);
									}
							}else if(contentType==='search' ){
								var action = $(this).children('content').find('link').eq(0).text();
								var form  = '<form method="post" action="'+action+'">'+
									'<input type="text"	class="ew-input" value="" name="search">'+
									'<input type="submit" class="ew-button" value="Submit"></form>';
								
								$(div).append(form);
							}							
							$(wrap).html(div);
							$(wrap).append('<span class="switcher-arrow"></span>');							
							$(jsiderHtml).append(wrap);
						}
				);	
				//widget buttons 
				$.each(buttons, function(key, val) {
					$(val).click(function(){
						var buttonList = $(this).parent('div').find('li');
						var index = $(this).index('.widget-button');
						var target = $(this).parent('div').children('div').eq(index);
						$(this).parent('div').children('div').not(target).css('display','none');
						$(target).toggle();
					});
					$(jsiderHtml).append(val);
				});
				//calculate buttons container height				
				$(jsiderHtml).css('height',(parseInt(buttons.length)*33)+'px');
				//append to document
				$(document.body).append(jsiderHtml);
			}				
		});
		// returns the jQuery object to allow for chainability.
		return this;
	}
})(jQuery);
