(function(){
	var schedule = {
		queue: [],
		processing: false
	};
	schedule.load = function(e){
		var image = $('<img/>').addClass('show_loading').attr({
			'src': 'images/ajax-loader.gif'
		});
		$(e).append(image);
	};
	schedule.imageRemove = function(){
		$('.show_loading').remove();
	};
	schedule.show = function(options){
		if(options === false){
			schedule.run(options);
		}else
			if(schedule.processing == false){
				schedule.call(options);
			}else{
				schedule.add(options);
			}
	};
	schedule.element = function(element,data,errorOccured){
		if(errorOccured){
			if(window.console) console.log(data);
			$(element).append($('<li/>').text('An error has occured.'));
			return false;
		}
		var show = $('<li/>').addClass('whiteBackground');
			var m = $('<div/>').addClass('airtime').text(data.airtime);
			show.append(m);
			show.append($('<div/>').addClass('channel_name').text(data.channel));
			show.append($('<div/>').addClass('title').text(data.ser_title));
			//show.append($('<div/>').addClass('url').text(data.url));
			show.append($('<div/>').addClass('ep_title').text(data.ep_title));
			show.append($('<div/>').addClass('ep_desc').text(data.ep_desc));
			//show.append($('<div/>').addClass('enabled').text(data.enabled));
		$(element).append(show);
		return true;
	};
	schedule.add = function(options){
		schedule.queue[schedule.queue.length] = options;
	};
	schedule.run = function(){
		$.ajax({
			url: 'base/scheduleCall.php',
			type: 'post',
			beforeSend: function(){
				schedule.processing = true;
				schedule.load('#tvSchedule');
				schedule.load('#fmSchedule');
			},
			success: function(data){
				for (var n in data) {
					if (n < 4) {
						schedule.element('#tvSchedule', data[n]);
					}else{
						schedule.element('#fmSchedule', data[n]);
					}
				}
				schedule.imageRemove();
				schedule.processing = false;
			},
			error: function(data){
				if(window.console) console.log(data);
			},
			dataType: 'json'
		});
	};
	schedule.call = function(d){
		$.ajax({
			url: 'base/scheduleCall.php',
			type: 'post',
			data: d,
			beforeSend: function(){
				schedule.processing = true;
				schedule.load(d.element);
			},
			success: function(data){
				schedule.element(d.element,data);
				schedule.imageRemove();
				schedule.processing = false;
				schedule.show(false);
			},
			error: function(data){
				schedule.element(d.element,data,true);
				schedule.imageRemove();
				schedule.processing = false;
				schedule.show(false);
			},
			dataType: 'json'
		});
	}
	get_show = function(o){
		if(o === false){
			schedule.show(false);
		}else{
			schedule.show(o);
		}
		
	};
})()
