/**
 * Actonjs Library v. 1.0
 * Author: Actonbit.gr < sales@actonbit.gr >
 * Copyrights: Actonbit.gr < sales@actonbit.gr >
 */

Actonjs.namespace("Actonjs.app");

Actonjs.app = function () {
	var server_name;
	var image_load_counter = 0;
	var images_array = new Array();
	var slideshowInterval = 10000, _slideshowTimer = false;
	var slide_divs = new Array();
	var current_slide = 0, next_slide = 0;

	function reset() {
		server_name  = window.location.protocol + '//' + window.location.hostname;
		slide_divs[0] = $('home_slide_01');
		slide_divs[1] = $('home_slide_02');
		slide_divs[2] = $('home_slide_03');
		
		images_array[0] = $('slide_01');
		images_array[1] = $('slide_02');
		images_array[2] = $('slide_03');
		
		if (images_array[0]) images_array[0].observe('load', registerLoadedImage);
		if (images_array[1]) images_array[1].observe('load', registerLoadedImage);
		if (images_array[2]) images_array[2].observe('load', registerLoadedImage);
		
		if (slide_divs[0] && slide_divs[1] && slide_divs[2]) slideshow();
	}
	
	function registerLoadedImage(evt) {
		image_load_counter ++;
		if (image_load_counter==3) {
			slideshow();
		}
	}
	
	function addComment() {
		var btn = Actonjs.get();
		btn.value = 'Περιμένετε ...';
		btn.disabled = true;
		var n_f = Actonjs.get('co_n');
		var n = Actonjs.trim(n_f.value);
		var e_f = Actonjs.get('co_e');
		var e = Actonjs.trim(e_f.value);
		var t_f = Actonjs.get('co_t');
		var t = Actonjs.trim(t_f.value);
		var c_f = Actonjs.get('co_c');
		var c = Actonjs.trim(c_f.value);
		var i = false;
		var email = false;
		if (Actonjs.validator.hasIllegalChars(n) || Actonjs.validator.hasIllegalChars(t) || Actonjs.validator.hasIllegalChars(c)) {
			i=true;
		}
		if (Actonjs.validator.isEmail(e) || e.length==0) {email=true;}
		
		if (n.length==0) {
			alert('Θα θέλαμε να μας δώσετε το όνομά σας για να επικοινωνήσουμε μαζί σας.');
			btn.value = 'Αποθήκευση';
			btn.disabled = false;
			return;
		}
		
		if (t.length==0) {
			alert('Θα θέλαμε να μας δώσετε το τηλέφωνό σας για να επικοινωνήσουμε μαζί σας.');
			btn.value = 'Αποθήκευση';
			btn.disabled = false;
			return;
		}
		
		if (c.length==0) {
			alert('Το σχόλιό σας πρέπει να περιέχει κάποιο κείμενο.');
			btn.value = 'Αποθήκευση';
			btn.disabled = false;
			return;
		}
		
		if (!email) {
			alert('Αυτή η διεύθυνση δεν είναι έγκυρη διεύθυνση ηλεκτρονικής αλληλογραφίας.');
			btn.value = 'Αποθήκευση';
			btn.disabled = false;
			return;
		}
		else if (i) {
			alert('Δεν επιτρέπεται η χρήση των χαρακτήρων [>|<|#].');
			btn.value = 'Αποθήκευση';
			btn.disabled = false;
			return;
		}
		else {
			var con = Actonjs.AJAX();
			if (con.init()) {
				var en_n = Actonjs.utf8encode(n);
				var en_e = Actonjs.utf8encode(e);
				var en_t = Actonjs.utf8encode(t);
				var en_c = Actonjs.utf8encode(c);
				con.request({
					url:'/contact/save/',
					params: 'en_n='+en_n+'&en_e='+en_e+'&en_t='+en_t+'&en_c='+en_c,
					method:'POST',
					success:function() {
						var response=con.getResponse();
						var success = response.s;
						if (success==1) {
							alert('Το σχόλιό σας αποθηκεύτηκε επιτυχώς, θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.');
							n_f.value = '';
							e_f.value = '';
							t_f.value = '';
							c_f.value = '';
							btn.value = 'Αποθήκευση';
							btn.disabled = false;
						}
						else {
							alert('Παρουσιάστηκε κάποιο σφάλμα κατά την αποθήκευση του σχολίου, παρακαλώ δοκιμάστε αργότερα.');
							btn.value = 'Αποθήκευση';
							btn.disabled = false;
						}
					},
					failure:function() {
						alert('Παρουσιάστηκε κάποιο σφάλμα κατά την αποθήκευση του σχολίου, παρακαλώ δοκιμάστε αργότερα.');
						btn.value = 'Αποθήκευση';
						btn.disabled = false;
					}
				});
			}
		}
	}
	
	function cancelComment() {
		var confirmation = confirm('Σίγουρα θέλετε να καθαρίσετε τη φόρμα;');
		if (confirmation == true) {
			var n_f = Actonjs.get('co_n');
			var e_f = Actonjs.get('co_e');
			var t_f = Actonjs.get('co_t');
			var c_f = Actonjs.get('co_c');
			n_f.value = '';
			e_f.value = '';
			t_f.value = '';
			c_f.value = '';
		}
	}
	
	function slideshow() {
		if (_slideshowTimer) clearTimeout(_slideshowTimer);
		if (current_slide < slide_divs.length-1) ++next_slide;
		else next_slide=0;
		slide_divs[current_slide].fade({duration:1.0,afterFinish:function(){slide_divs[next_slide].appear({duration:1.0});}});
		current_slide = next_slide;
		_slideshowTimer=setTimeout(function(){slideshow();},slideshowInterval);
	}
	
	function logout() {
		var con = Actonjs.AJAX();
		if (con.init()) {
			con.request({
				url:'/Login/Logout/',
				params: 'r=r',
				method:'POST',
				success:function() {
					var response=con.getResponse();
					var redirect = response.redirect;
					window.location = redirect;
				}
			});
		}
	}
	
	function login() {
		var uname = Actonjs.get('login_uname').value;
		var passwd = Actonjs.get('login_passwd').value;
		var redir = Actonjs.get('login_redir').value;
		var uname_label = Actonjs.get('uname_label');
		var passwd_label = Actonjs.get('passwd_label');
		var error_div = Actonjs.get('login_error_msg');
		var error_msg = '';
		
		error_div.style.display = 'none';
		uname_label.style.color = '#222233';
		passwd_label.style.color = '#222233';
		if (!Actonjs.validator.isEnglish(uname) || uname.length < 6 || uname.length > 12) {
			uname_label.style.color = '#FF0000';
			error_msg = 'Όνομα χρήστη: Λατινικοί χαρακτήρες (6 - 12).<br style="margin-bottom:10px;">';
		}
		if (!Actonjs.validator.isEnglish(passwd) || passwd.length < 6 || passwd.length > 12) {
			passwd_label.style.color = '#FF0000';
			error_msg += 'Κωδικός χρήστη: Λατινικοί χαρακτήρες (6 - 12).<br style="margin-bottom:10px;">';
		}
		if (error_msg != '') {
			error_div.innerHTML = error_msg;
			error_div.style.display = 'block';
		}
		else {
			var login_btn = Actonjs.get('login_btn');
			login_btn.disabled = true;
			login_btn.value = 'Περιμένετε ...';
			var con = Actonjs.AJAX();
			if (con.init()) {
				con.request({
					url:'/Login/Login/',
					params: 'u='+uname+'&p='+passwd+'&r='+redir,
					method:'POST',
					success:function() {
						var response=con.getResponse();
						var status = response.status;
						if (status==1) { // Ola epituxos
							login_btn.value = 'Σύνδεση';
							login_btn.disabled = false;
							window.location = response.redirect;
							//if (pending) eval(pending); // Edo kanoume oti exei meinei sto queue energeion na ginei
							//pending=false;
							//allagiHeader(1); // άχρηστο αφού γίνεται δρομολόγηση του χρήστη ούτος ή άλλως
							//setLang(response.user_data.lang);
							//clearPage();
						}
						else { // Egine sfalma
							login_btn.value = 'Σύνδεση';
							login_btn.disabled = false;
							error_msg = 'Δε βρέθηκε χρήστης εγγεγραμμένος στο σύστημα με αυτό το όνομα και κωδικό.';
							error_div.innerHTML = error_msg;
							error_div.style.display = 'block';
							var el = Actonjs.get('ac-mod-msgBox');
							if (el) {
								var html = '<span style="color:red;">';
								switch (l) {
									case 'en':html+='[EN] Unknown user';break;
									case 'de':html+='[DE] Unknown user';break;
									case 'se':html+='Ökänd användare';break;
									case 'nl':html+='[NL] Unknown user';break;
									default:html+='Άγνωστος χρήστης';break;
								}
								html += '</span>';
								el.innerHTML = html;
							}
						}
					},
					failure: function() {
						login_btn.value = 'Σύνδεση';
						login_btn.disabled = false;
						error_msg = 'Δεν είναι δυνατή η σύνδεσή σας στο σύστημα αυτή τη στιγμή, δοκιμάστε αργότερα.';
						error_div.innerHTML = error_msg;
						error_div.style.display = 'block';
					}
				});
			}
		}
	}
	
	return {
		init:	function() {
			reset();
		},
		login:			function() { login(); },
		logout:			function() { logout(); },
		addComment:		function() { addComment(); },
		cancelComment:	function() { cancelComment(); }
	}
}();

Actonjs.onReady(Actonjs.app.init);
