/**
 * @author ZaK
 * @date 09.03.2010
 */

const DEBUG = false; //set to true to see debug messages

function log(variable) {
	if(DEBUG) console.log(variable);
}

function time() {
	return Number(new Date().getTime());
}

var Feedback = {
	Config : {
		POPUP_DELAY: 300 //seconds
	},
	Core : {
		overlay_api: false,
		overlay_obj: false,
		timer: false,
		set_popup_handler: function() {
			log('Feedback.Core.set_popup_handler(); //sets timeout that will trigger ajax');
			Feedback.Core.timer = setTimeout(Feedback.Core.load_form_html,Feedback.Config.POPUP_DELAY*1000);
		},
		show_popup: function () {
			log('Feedback.Core.show_popup(); //shows overlay :)');
			Feedback.Core.overlay_api.load();
		},
		add_container: function () {
			log('Feedback.Core.add_container(); //add div#fbform to body context');
			var html = "<div id=\"fbform\">Loading feedback form...</div>";
			$('body').append(html);
			Feedback.Core.overlay_obj = $('div#fbform');
		},
		load_form_html: function () {
			log('Feedback.Core.load_form_html(); loading form via ajax....');
			$.get('/skins/fones/tpl/ajx_feedback_form.tpl',function(data){
				Feedback.Core.overlay_obj.html(data);
				log('ajax done, form loaded');
				Feedback.Form.add_handlers();
				Feedback.Core.show_popup();
			});
		},
		prepare_overlay: function () {
			log('Feedback.Core.prepare_overlay(); //creates overlay on a div#fbform element');
			Feedback.Core.overlay_api = Feedback.Core.overlay_obj.overlay({ 
			    top: 202, 
			    expose: { color: '#fff',loadSpeed: 200,opacity: 0.5 }, 
			    closeOnClick: false, 
			    api: true 
			});
		},
		close_handler: function (evt) {
			log('Feedback.Core.close_handler(); //closes overlay');
			Feedback.Core.overlay_api.close();
			Cookie.set('fbform_w','2j738s0a',1);
		},
		send_handler: function (evt) {
			log('Feedback.Core.send_handler(); //submits feedback form');
			Feedback.Core.overlay_obj.find('form').submit();
			Cookie.set('fbform_w','3jasjkks',30);
		}
	},
	Form : {
		add_handlers: function () {
			log('Feedback.Form.add_handlers(); //adds handlers on close/send buttons');
			Feedback.Core.overlay_obj.find('.close').click(Feedback.Core.close_handler);
			Feedback.Core.overlay_obj.find('.send').click(Feedback.Core.send_handler);
		}
	},
	main: function () {
		log('Feedback.main(); //start point');
		try{
			Cookie;
		} catch (e) {
			log(e);
			return;
		}
		
		if(!Cookie.exists('fbform_w')) {
			if(!Cookie.exists('fbform')) {
				log('No fbform cookie');
				Cookie.set('fbform',time()+5*60,1);
				var showForm = true;
			} else {
				log('fbform cookie exists, checking');
				var showForm = (Number(Cookie.get('fbform')) < time());
			}
			log('showForm: ' + showForm)
			if(!showForm) return;
		} else {
			log('fbform wait cookie exists');
			return;
		}
		
		
		
		log('Config:');
		log(this.Config);
		this.Core.add_container();
		this.Core.prepare_overlay();
		this.Core.set_popup_handler();
	},
	sent: function () {
		log('Feedback.sent(); //calls when send script is finished');
		Feedback.Core.overlay_obj.find('table:first').fadeOut(300,function () {
			Feedback.Core.overlay_obj.find('div:first').append('<span id="message">Your feedback was sent!</span>');
		});
	},
	force: function () {
		log('Feedback.force(); //forsing popup to show');
		clearTimeout(Feedback.Core.timer);
		log('timer cleared');
		Feedback.Core.load_form_html();
	}
}