/* 
 * OpenSMS javascript - jquery functions
 * (C) OpenIT, 2009
 *
*/

var amount = 0;

var openSMSAjaxCall = { 
	falsetext: 'false',
	method: 'post',
	args: '',
	position: 'right_wrapper',
	loader: 'right_loader',
	url : 'divs/sms.php',
	call: function () {
	
		$("#"+this.position).hide();
		var res = $.ajax({
			type: openSMSAjaxCall.method,
			url: openSMSAjaxCall.url,
			data: openSMSAjaxCall.args,
			dataType: 'html',
			success: function(data){
				if(data == openSMSAjaxCall.falsetext) {
					var text = {
							"el" : "Δεν επιτρέπεται η πρόσβαση στη σελίδα που ζητήσατε.<br/><a href=\"./?action=main\">Αρχική σελίδα</a>",
							"en" : "You are not allowed to view this page.<br/><a href=\"./?action=main\">Back to main page</a>"
					};
					$("#"+openSMSAjaxCall.position).html(text[lang]);
				} else {;
					$("#"+openSMSAjaxCall.position).html(data);
				}
				
				if($("#thetoid").length > 0) {
					var options = {
						script: "phpscripts/suggest.php",
						args: function (input) { 
							var ch1 = (document.smsform.searchcontacts.checked) ? '1' : '0';
							var ch2 = (document.smsform.searchgroups.checked) ? '1' : '0';
							return "input="+input+"&contacts="+ch1+"&groups="+ch2; 
						},
						json:true,
						varname:"input",
						cache:false
					};
					var as = new bsn.AutoSuggest('thetoid', options);
				}

				initializeDatepicker();
				initializeCalendar();
				initializeCalendarMoreLess();
			},
			complete : function () {
				if(openSMSAjaxCall.loader.length) {
					$("#"+openSMSAjaxCall.loader).fadeOut(400, function() { $("#"+openSMSAjaxCall.loader+"_txt").text(''); } );
				}
				$("#"+openSMSAjaxCall.position).fadeIn(600,allassign);
			},
			error : function (XMLHttpRequest, textStatus, errorThrown) {

				var text = {
					"el" : "Παρουσιάστηκε σφάλμα στη σελίδα. Λυπούμαστε για την αναστάτωση.1<br/>"+textStatus+	
										"<br/><a href=\"./?action=main\">Αρχική σελίδα</a>",
					"en" : "An error occured. Sorry for the inconvenience.<br/>"+textStatus+
									"<br/><a href=\"./?action=main\">Back to main page</a>"
				};
		
				$("#"+openSMSAjaxCall.position).html(text[lang]);
			}
		});
		
		this.args = '';
	}
 };

var openSMSTaskCall = function (url, args, succ, compl, err) {

	if(url == 'phpscripts/smssend.php')
		var fadeToDuration = 6000;
	else
		var fadeToDuration = 1000;

	var successFunc = (succ) ? succ : function (data) {
		$("#absnotice").html(data.msg);
		if( data.error == 'login') {
			document.location = './?action=main';
		} else if ( data.error!='1' && data.data == '1' && data.reloadUrl != ''){
			prepareAndCall( data.reloadUrl , "" );
		}
	};
	
	var completeFunc = (compl) ? compl : function () {
			setTimeout(function() {$.unblockUI();} ,500);
			setTimeout( function() {
				$("#absnotice").show().fadeTo(fadeToDuration, 0.80, function () { 
					setTimeout(function(){$("#absnotice").fadeOut()},1000);
				});
			}, 500);	
		};
	
	var errorFunc = (err) ? err : function (xhr, ajaxOptions, thrownError) {
			//alert(xhr.responseText);
			var text = {
					"el" : "Παρουσιάστηκε σφάλμα στη σελίδα. Λυπούμαστε για την αναστάτωση.2",
					"en" : "An error occured. Sorry for the inconvenience."
				};
		
			$("#absnotice").html(text[lang]);
		};

	$.ajax({
			type: 'post',
			url: url,
			data: args,
			dataType: 'json',
			success: successFunc,
			complete : completeFunc,
			error : errorFunc,
			contentType: "application/x-www-form-urlencoded; charset=utf-8",
		});
} 
  
var prepareAndCall = function (url, args) {

	var text = {
		"el" : "Φόρτωση σελίδας...",
		"en" : "Loading..."
	};
	
	$("#right_loader_txt").text(text[lang]);
	$("#right_loader").height($("#right_wrapper").height()).width($("#right_wrapper").width()).show();
	openSMSAjaxCall.url = url;
	openSMSAjaxCall.args = args;
	openSMSAjaxCall.position = 'right_wrapper';
	openSMSAjaxCall.loader = 'right_loader';
	openSMSAjaxCall.call();
}

var allassign = function() {
	
	$("#canceleditgroup").click( function() {
		prepareAndCall( "divs/viewgroups.php" , "" );
		return false;
	});
	
	$("#canceledit").click( function() {
		prepareAndCall( "divs/viewcontacts.php" , "" );
		return false;
	});
	
	$(".editgroup").click( function() {
		prepareAndCall( "divs/addgroup.php" , "gr_id="+$(this).attr('id').slice(5) );
		return false;
	});

	$(".editreminder").click( function() {
		prepareAndCall( "divs/editreminder.php" , "r_id="+$(this).attr('id').slice(5) );
		return false;
	});

	$(".viewreminder").click( function() {
		prepareAndCall( "divs/viewreminder.php" , "r_id="+$(this).attr('id').slice(5) );
		return false;
	});

	$(".canceleditreminder").click( function() {
		prepareAndCall("divs/calendar.php", "time="+$(this).attr('id').slice(5));
		return false;
	});

	$(".set_date").click( function() {
		prepareAndCall("divs/calendar.php", "time="+$(this).attr('id').slice(5));
		return false;
	});
}

var groupDetailsAssign = function (args) {
	
	openSMSAjaxCall.url = 'divs/groupdetails.php';
	openSMSAjaxCall.args = 'gr_id='+args;
	openSMSAjaxCall.loader= '';
	openSMSAjaxCall.position = 'groupdetails';
	openSMSAjaxCall.call();
	
	return false;
}

var contactDetailsAssign = function (args) {
	
	openSMSAjaxCall.url = 'divs/contactdetails.php';
	openSMSAjaxCall.args = 'c_id='+args;
	openSMSAjaxCall.loader= '';
	openSMSAjaxCall.position = 'contactdetails';
	openSMSAjaxCall.call();
	
	return false;
}

var contactsPerLetter = function(letter, page, first){

	if(page == -1)	// on select change
		page = $("#select_page option:selected").val();

	$.ajax({
		type: 'post',
		url: 'divs/letterdetails.php',
		data: 'letter=' + letter + '&page=' + page,
		dataType: 'html',
		success: function(data){
		
			if(data == 'false'){

				var text = {
					"el" : "Δεν επιτρέπεται η πρόσβαση στη σελίδα που ζητήσατε.<br/><a href=\"./?action=main\">Αρχική σελίδα</a>",
					"en" : "You are not allowed to view this page.<br/><a href=\"./?action=main\">Back to main page</a>"
				};

				$("#" + letter + "-contacts").html(text[lang]);
			}
			else{
				$("#" + letter + "-contacts").html(data);

				var url = String(document.location);

				if(url.search('addcontacts') != -1)
					document.location = './?page=addcontacts#' + letter;

				else if(url.search('addcontact') != -1)
					document.location = './?page=addcontact#' + letter;

				else
					document.location = './?page=viewcontacts#' + letter;

				if(first == 1){
					openSMSAjaxCall.url = 'divs/letterpages.php';
					openSMSAjaxCall.args = 'letter=' + letter;
					openSMSAjaxCall.loader = '';
					openSMSAjaxCall.position = 'letter_pages';
					openSMSAjaxCall.call();
				}
			}
		},
		complete: function(){

			//$("#right_loader").fadeOut(400, function() { $("#right_loader_txt").text(''); } );
			$("#" + letter + "-contacts").fadeIn(600, allassign);
		},
		error : function (XMLHttpRequest, textStatus, errorThrown) {

			var text = {
				"el" : "Παρουσιάστηκε σφάλμα στη σελίδα. Λυπούμαστε για την αναστάτωση.3<br/>"+textStatus+	
										"<br/><a href=\"./?action=main\">Αρχική σελίδα</a>",
				"en" : "An error occured. Sorry for the inconvenience.<br/>"+textStatus+
									"<br/><a href=\"./?action=main\">Back to main page</a>"
			};

			$("#" + letter + "-contacts").html(text[lang]);
		}
	});
}

var groupContactsPerLetter = function(group_id, letter, page, first){

	if(page == -1)	// on select change
		page = $("#select_page option:selected").val();

	$.ajax({
		type: 'post',
		url: 'divs/groupletterdetails.php',
		data: 'letter=' + letter + '&page=' + page + '&gr_id=' + group_id,
		dataType: 'html',
		success: function(data){
		
			if(data == 'false'){

				var text = {
					"el" : "Δεν επιτρέπεται η πρόσβαση στη σελίδα που ζητήσατε.<br/><a href=\"./?action=main\">Αρχική σελίδα</a>",
					"en" : "You are not allowed to view this page.<br/><a href=\"./?action=main\">Back to main page</a>"
				};

				$("#" + letter + "-contacts").html(text[lang]);
			}
			else{
				$("#" + letter + "-contacts").html(data);

				var url = String(document.location);

				if(url.search('addcontacts') != -1)
					document.location = './?page=addcontacts#' + letter;
				else
					document.location = './?page=viewgroups#' + letter;

				if(first == 1){
					openSMSAjaxCall.url = 'divs/groupletterpages.php';
					openSMSAjaxCall.args = 'letter=' + letter + '&gr_id=' + group_id;
					openSMSAjaxCall.loader = '';
					openSMSAjaxCall.position = 'letter_pages';
					openSMSAjaxCall.call();
				}
			}
		},
		complete: function(){

			//$("#right_loader").fadeOut(400, function() { $("#right_loader_txt").text(''); } );
			$("#" + letter + "-contacts").fadeIn(600, allassign);
		},
		error : function (XMLHttpRequest, textStatus, errorThrown) {

			var text = {
				"el" : "Παρουσιάστηκε σφάλμα στη σελίδα. Λυπούμαστε για την αναστάτωση.4<br/>"+textStatus+	
										"<br/><a href=\"./?action=main\">Αρχική σελίδα</a>",
				"en" : "An error occured. Sorry for the inconvenience.<br/>"+textStatus+
									"<br/><a href=\"./?action=main\">Back to main page</a>"
			};

			$("#" + letter + "-contacts").html(text[lang]);
		}
	});
}

var addGroupContactsPerLetter = function(group_id, letter, page, first, action){

	if(page == -1)	// on select change
		page = $("#select_page option:selected").val();

	$.ajax({
		type: 'post',
		url: 'divs/addgroupletterdetails.php',
		data: 'letter=' + letter + '&page=' + page + '&gr_id=' + group_id,
		dataType: 'html',
		success: function(data){
		
			if(data == 'false'){

				var text = {
					"el" : "Δεν επιτρέπεται η πρόσβαση στη σελίδα που ζητήσατε.<br/><a href=\"./?action=main\">Αρχική σελίδα</a>",
					"en" : "You are not allowed to view this page.<br/><a href=\"./?action=main\">Back to main page</a>"
				};

				$("#" + letter + "-contacts").html(text[lang]);
			}
			else{
				$("#" + letter + "-contacts").html(data);

				if(data != ''){
					$('#' + letter + '-remove_all').css({'display':'block'});
					$('#' + letter + '-add_all').css({'display':'block'});
				}

				if(action == 'new')
					document.location = './?page=addgroup#' + letter;
				else
					document.location = './?page=viewgroups#' + letter;

				if(first == 1){
					openSMSAjaxCall.url = 'divs/addgroupletterpages.php';
					openSMSAjaxCall.args = 'letter=' + letter + '&gr_id=' + group_id + '&action=' + action;
					openSMSAjaxCall.loader = '';
					openSMSAjaxCall.position = 'letter_pages';
					openSMSAjaxCall.call();
				}
			}
		},
		complete: function(){

			//$("#right_loader").fadeOut(400, function() { $("#right_loader_txt").text(''); } );
			$("#" + letter + "-contacts").fadeIn(600, allassign);
		},
		error : function (XMLHttpRequest, textStatus, errorThrown) {

			var text = {
				"el" : "Παρουσιάστηκε σφάλμα στη σελίδα. Λυπούμαστε για την αναστάτωση.5<br/>"+textStatus+	
										"<br/><a href=\"./?action=main\">Αρχική σελίδα</a>",
				"en" : "An error occured. Sorry for the inconvenience.<br/>"+textStatus+
									"<br/><a href=\"./?action=main\">Back to main page</a>"
			};

			$("#" + letter + "-contacts").html(text[lang]);
		}
	});
}

var messagesHistoryAssign = function (args) {

	var text = {
		"el" : "Φόρτωση σελίδας...",
		"en" : "Loading..."
	};
	
	$("#right_loader_txt").text(text[lang]);
	$("#right_loader").height($("#right_wrapper").height()).width($("#right_wrapper").width()).show();
		
	openSMSAjaxCall.url = 'divs/messages_history.php';
	openSMSAjaxCall.args = args;
	openSMSAjaxCall.loader= 'right_loader';
	openSMSAjaxCall.position = 'messages_history_header';
	openSMSAjaxCall.call();

	return false;
}

var messagesHistoryPages = function (day_from, month_from, year_from, hour_from, minute_from, day_to, month_to, year_to, hour_to, minute_to){

	var text = {
		"el" : "Φόρτωση σελίδας...",
		"en" : "Loading..."
	};
	
	$("#right_loader_txt").text(text[lang]);
	$("#right_loader").height($("#right_wrapper").height()).width($("#right_wrapper").width()).show();

	var page = $("#select_page option:selected").val();	
	var args = 'day_from=' + day_from + '&month_from=' + month_from + '&year_from=' + year_from +
				'&hour_from=' + hour_from + '&minute_from=' + minute_from +
				'&day_to=' + day_to + '&month_to=' + month_to + '&year_to=' + year_to +
				'&hour_to=' + hour_to + '&minute_to=' + minute_to + '&page=' + page;
		
	openSMSAjaxCall.url = 'divs/messages_history_pages.php';
	openSMSAjaxCall.args = args;
	openSMSAjaxCall.loader= 'right_loader';
	openSMSAjaxCall.position = 'messages_history_body';
	openSMSAjaxCall.call();

	return false;
}

var deleteThings = function (what, id, name) {

	var text = {
			"el" : { 
				"group" : "Είστε σίγουροι πως θέλετε να διαγράψετε το γκρουπ ",
				"label" : "Είστε σίγουροι πως θέλετε να διαγράψετε το ID αποστολέα ",
				"contact" : "Είστε σίγουροι πως θέλετε να διαγράψετε την επαφή ",
				"phone" : "Είστε σίγουροι πως θέλετε να διαγράψετε το τηλέφωνο ",
				"mail" : "Είστε σίγουροι πως θέλετε να διαγράψετε το e-mail ",
				"reminder" : "Είστε σίγουροι πως θέλετε να διαγράψετε την υπενθύμιση",
				"yes" : "Ναι",
				"no" : "Όχι"
			},
			"en" : { 
				"group" : "Are you sure you want to delete group ",
				"label" : "Are you sure you want to delete sender ID ",
				"contact" : "Are you sure you want to delete contact ",
				"phone" : "Are you sure you want to delete phone number ",
				"mail" : "Are you sure you want to delete email ",
				"reminder" : "Are you sure you want to delete reminder",
				"yes" : "Yes",
				"no" : "No"
			}	
	};

	switch (what) {
		case 'group':
			$.blockUI({ css : { width: '435px', cursor: 'default' } , message: '<div style="padding:10px"><b>' + text[lang][what] + name +
				';<br/><h3><a href="#Yes" onclick="openSMSActions.deleteGroup('+id+'); return false;">' +
				text[lang].yes + '</a> | <a href="#No" onclick="$.unblockUI(); return false;">' +
				text[lang].no + '</a></h2></div>' });
			break;
		case 'label':
			$.blockUI({ css : { width: '435px', cursor: 'default' } , message: '<div style="padding:10px"><b>' + text[lang][what] + name +
				';<br/><h3><a href="#Yes" onclick="openSMSActions.deleteLabel('+id+'); return false;">' + 
				text[lang].yes + '</a> | <a href="#No" onclick="$.unblockUI(); return false;">' +
				text[lang].no + '</a></h2></div>' });
				break;

		case 'contact':
			$.blockUI({ css : { width: '435px', cursor: 'default' } , message: '<div style="padding:10px"><b>' + text[lang][what] + name +
				';<br/><h3><a href="#Yes" onclick="openSMSActions.deleteContact('+id+'); return false;">' +
				text[lang].yes + '</a> | <a href="#No" onclick="$.unblockUI(); return false;">' +
				text[lang].no + '</a></h2></div>' });
			break;
		case 'phone':
			$.blockUI({ css : { width: '435px', cursor: 'default' } , message: '<div style="padding:10px"><b>' + text[lang][what] + name +
				';<br/><h3><a href="#Yes" onclick="openSMSActions.deletePhone('+id+'); return false;">' +
				text[lang].yes + '</a> | <a href="#No" onclick="$.unblockUI(); return false;">' +
				text[lang].no + '</a></h2></div>' });
			break;
		case 'mail':
			$.blockUI({ css : { width: '435px', cursor: 'default' } , message: '<div style="padding:10px"><b>' + text[lang][what] + name +
				';<br/><h3><a href="#Yes" onclick="openSMSActions.deleteMail('+id+'); return false;">' +
				text[lang].yes + '</a> | <a href="#No" onclick="$.unblockUI(); return false;">' +
				text[lang].no + '</a></h2></div>' });
			break;
		case 'reminder':
			$.blockUI({ css : { width: '435px', cursor: 'default' } , message: '<div style="padding:10px"><b>' + text[lang][what] +
				';<br/><h3><a href="#Yes" onclick="openSMSActions.deleteReminder('+id+','+name+'); return false;">' +
				text[lang].yes + '</a> | <a href="#No" onclick="$.unblockUI(); return false;">' +
				text[lang].no + '</a></h2></div>' });
			break;
		default:
			break;
	}
}

var openSMSHTMLActions  = {
	text : {
		"el" : { 
			"phone" : "Τηλ.:" ,
			"email" : "E-mail:",
			"type" : "Τύπος:",
			"mobile" : "Κινητό",
			"home" : "Σπίτι",
			"work" : "Εργασία",
			"fax" : "Fax",
			"main" : "Κύριο",
			"other" : "Άλλο",
			"alt_del_email" : "Διαγραφή e-mail",
			"alt_add_email" : "Προσθήκη e-mail",
			"alt_del_phone" : "Διαγραφή τηλεφώνου",
			"alt_add_phone" : "Προσθήκη τηλεφώνου"
		},
		"en" : {
			"phone" : "Number:",
			"email" : "E-mail:",
			"type" : "Type",
			"mobile" : "Mobile",
			"home" : "Home",
			"work" : "Work",
			"fax" : "Fax",
			"main" : "Main",
			"other" : "Other",
			"alt_del_email" : "Delete e-mail",
			"alt_add_email" : "Add e-mail",
			"alt_del_phone" : "Delete phone",
			"alt_add_phone" : "Add phone"
		}
	},
	setInput : function (cid, field, elid) {
		$('#'+elid+':not(:has(input))').html('<input id="updatecontactinput'+elid+'" name="updatecontactinput'+elid+'" type="text" value="'
			+$.trim($('#'+elid).text())+'" />').children("input").keypress(function (e) {
				if (e.which == 13) {
					openSMSActions.ContactUpdate(cid,field,elid);
				} 
			});
	},
	setInputPhone : function (pid, elid) {
		$('#'+elid+':not(:has(input))').html('<input id="updatecontactinput'+elid+'" name="updatecontactinput'+elid+'" type="text" value="'
			+$.trim($('#'+elid).text())+'" />').children("input").keypress(function (e) {
				if (e.which == 13) {
					openSMSActions.PhoneUpdate(pid,elid);
				} 
			});
	},
	setInputMail : function (mid, elid) {
		$('#'+elid+':not(:has(input))').html('<input id="updatecontactinput'+elid+'" name="updatecontactinput'+elid+'" type="text" value="'
			+$.trim($('#'+elid).text())+'" />').children("input").keypress(function (e) {
				if (e.which == 13) {
					openSMSActions.MailUpdate(mid,elid);
				} 
			});
	},
	hideNewPhone : function () {
		document.getElementById("newphoneinuser").style.display = 'none';
		document.getElementById("newphone").value = '';
		document.getElementById("newphonetype").value = '1';
		$("#add_new_phone_message").removeClass('colorerror').html('');
	},
	hideNewMail : function () {
		document.getElementById("newmailinuser").style.display = 'none';
		document.getElementById("newmail").value = '';
		document.getElementById("newmailtype").value = '1';
		$("#add_new_mail_message").removeClass('colorerror').html('');
	},
	phoneAdd : function () {
	
		var no = parseInt($('[name="phonesnos"]').val()) + 1;
		$('[name="phonesnos"]').val(no);
		
		var lc1 = '<div class="leftformcolumn" id="l'+no+'1">'+this.text[lang].phone+'</div>';
		var rc1 = '<div class="rightformcolumn" id"r'+no+'1"><input type="text" name="phone'+no+'" id="phone'+no+'" class="phoneinput" /></div>';
		var cl1 = '<div class="clear" id="clear'+no+'1"></div>';
		var lc2 = '<div class="leftformcolumn" id="l'+no+'2">'+this.text[lang].type+'</div>';
		var rc2 = '<div class="rightformcolumn" id"r'+no+'2"><select name="phonetype'+no+'" id="phonetype'+no+'"><option value="1">'
		+this.text[lang].mobile+'</option><option value="2">'+this.text[lang].home+'</option><option value="3">'+this.text[lang].work
		+'</option><option value="4">'+this.text[lang].main+'</option><option value="5">'+this.text[lang].fax
		+'</option><option value="6">'+this.text[lang].other+'</option></select></div>';
		
		var cl2 = '<div class="clear" id="clear'+no+'2"></div>';
		var thehtml = '<div class="air" style="display:none;" id="phoneset'+no+'">'+lc1+rc1+cl1+lc2+rc2+cl2+'</div>';
		
		$("#phones").append($(thehtml).slideDown("fast"));
		
		if (no == 2) {
			var iconhtml = '<a href="./RemovePhone#" onclick="openSMSHTMLActions.phoneDelete(); return false;"><img src="images/icon_mobile_phone_delete.png" alt="'
					+this.text[lang].alt_del_phone+'" title="'+this.text[lang].alt_del_phone
					+'"/></a> <a href="./AddPhone#" onclick="openSMSHTMLActions.phoneAdd(); return false;"><img src="images/icon_mobile_phone_add.png" alt="'
					+this.text[lang].alt_add_phone+'" title="'+this.text[lang].alt_add_phone+'"/></a>';
		
			$("#addphone").html(iconhtml);
		}
		
		return false;
	},
	phoneDelete : function () {
		var no = parseInt($('[name="phonesnos"]').val());
		var newval = no -1;
		
		$('[name="phonesnos"]').val(newval);
		
		$("#phoneset"+no).slideUp("normal", function () { $("#phoneset"+no).remove(); });
		
		if (newval == 1) {
			var iconhtml = '<a href="./AddPhone#" onclick="openSMSHTMLActions.phoneAdd(); return false;"><img src="images/icon_mobile_phone_add.png" alt="'
							+this.text[lang].alt_add_phone+'" title="'+this.text[lang].alt_add_phone+'"/></a>';

			$("#addphone").html(iconhtml);
		}
		
		return false;
	},
	emailAdd : function () {

		var no = parseInt($('[name="mailsnos"]').val()) + 1;
		$('[name="mailsnos"]').val(no);
		var lc1 = '<div class="leftformcolumn" id="ml'+no+'1">'+this.text[lang].email+'</div>';
		var rc1 = '<div class="rightformcolumn" id"mr'+no+'1"><input type="text" name="mail'+no+'" id="mail'+no+'" class="mailinput"/></div>';
		var cl1 = '<div class="clear" id="mclear'+no+'1"></div>';
		var lc2 = '<div class="leftformcolumn" id="ml'+no+'2">'+this.text[lang].type+'</div>';
		var rc2 = '<div class="rightformcolumn" id"mr'+no+'2"><select name="mailtype'+no+'" id="mailtype'+no+'"><option value="1">'
		+this.text[lang].home+'</option><option value="2">'+this.text[lang].work+'</option><option value="3">'
		+this.text[lang].other+'</option></select></div>';
		var cl2 = '<div class="clear" id="mclear'+no+'2"></div>';
		var thehtml = '<div class="air" style="display:none;" id="mailset'+no+'">'+lc1+rc1+cl1+lc2+rc2+cl2+'</div>';

		$("#mails").append($(thehtml).slideDown("fast"));

		if (no == 2) {
			var iconhtml = '<a href="./RemoveMail#" onclick="openSMSHTMLActions.emailDelete(); return false;"><img src="images/icon_mail_delete.png" alt="'
			+this.text[lang].alt_del_email+'" title="'+this.text[lang].alt_del_email
			+'"/></a> <a href="./AddMail#" onclick="openSMSHTMLActions.emailAdd(); return false;"><img src="images/icon_mail_add.png" alt="'
					+this.text[lang].alt_add_email+'" title="'+this.text[lang].alt_add_email+'"/></a>';

			$("#addmail").html(iconhtml);
		}

		return false;
	},
	emailDelete : function () {
		var no = parseInt($('[name="mailsnos"]').val());
		var newval = no -1;
		
		$('[name="mailsnos"]').val(newval);
		
		$("#mailset"+no).slideUp("normal", function () { $("#mailset"+no).remove(); });
		
		if (newval == 1) {
			var iconhtml = '<a href="./AddMail#" onclick="openSMSHTMLActions.emailAdd(); return false;"><img src="images/icon_mail_add.png" alt="'
							+this.text[lang].alt_add_email+'" title="'+this.text[lang].alt_add_email+'"/></a>';

			$("#addmail").html(iconhtml);
		}
		
		return false;
	},
	countMessage: function () {
		var message = $("textarea[name='message']").val();
		var length = message.length;
	
		if((matches = message.match(/€/g)) != null)
			length += matches.length;
		
		/*if((matches = message.match(/\^/g)) != null)
			length += matches.length;
		
		if((matches = message.match(/\{/g)) != null)
			length += matches.length;
		
		if((matches = message.match(/}/g)) != null)
			length += matches.length;
			
		if((matches = message.match(/\[/g)) != null)
			length += matches.length;
		
		if((matches = message.match(/]/g)) != null)
			length += matches.length;
		
		if((matches = message.match(/\\/g)) != null)
			length += matches.length;
		
		if((matches = message.match(/~/g)) != null)
			length += matches.length;
		
		if((matches = message.match(/\|/g)) != null)
			length += matches.length;*/

		$("#chars").text(length);
		var len = (length > 160) ? Math.ceil(length / 153) : 1;
		$("#smsno").text(len);
	}
}

var openSMSActions = {
	sendSMS: function () {
		$("#sms_message").removeClass('colorerror').hide();

		var text = {
			"el" : {
				"nolabel" : "Δεν έχετε καταχωρήσει ακόμα ID αποστολέα. Μπορείτε να προσθέσετε ένα ID αποστολέα χρησιμοποιώντας την αντίστοιχη επιλογή του μενού.",
				"namefield" : "Πρέπει να ορίσετε τουλάχιστον έναν παραλήπτη.",
				"length" : "Συμπληρώστε το κείμενο του μηνύματος.",
				"date" : "Πρέπει να ορίσετε την ημερομηνία/ώρα αποστολής.",
				"invalid_date" : "Η ημερομηνία αποστολής πρέπει να έπεται της τωρινής ημερομηνίας.",
				"ten_minutes" : "Η ημερομηνία αποστολής πρέπει να έπεται κατά 10 λεπτά της τωρινής ημερομηνίας.",
				"wait" : "Επεξεργασία...",
				"send" : "Αποστολή SMS...",
				"msgnr" : "Ο αριθμός μηνυμάτων δεν πρέπει να ξεπερνάει τα 3.",
				"send_later" : "Αποθήκευση SMS..."
			},
			"en" : {
				"nolabel" : "No sender ID found. You can add a new sender ID using the corresponding menu's option.",
				"namefield" : "You need to specify at least one recipient.",
				"length" : "Υou cannot send an empty message.",
				"date" : "Please specify the send date/time.",
				"invalid_date" : "The send date must be after the current date.",
				"ten_minutes" : "The send date must be 10 minutes after the current date.",
				"wait" : "Processing...",
				"send" : "Sending SMS...",
				"msgnr" : "The number of sms can not be greater than 3.",
				"send_later" : "Saving SMS..."
			}	
		};

		if (parseInt($("#smsno").text()) > 3) {
			$("#sms_message").addClass('colorerror').text(text[lang].msgnr).fadeIn(1000);
			return false;
		}

		if(!$("[name='from']").val()){
			if(lang == 'el')
				$('#sms_message').css({'height':'30px'});

			$("#sms_message").addClass('colorerror').text(text[lang].nolabel).fadeIn(1000);
			return false;
		}

		if ($.trim($("#thetoid").val()).length == 0) {
			$("#sms_message").addClass('colorerror').text(text[lang].namefield).fadeIn(1000);
			return false;
		}
		
		if ($.trim($("textarea[name='message']").val()).length == 0) {
			$("#sms_message").addClass('colorerror').text(text[lang].length).fadeIn(1000);
			return false;
		}

		var sms_date = $('[name="sms_date"]:checked').val();

		if(sms_date == 'later'){

			if($.trim($("#send_date").val()).length == 0){
				$("#sms_message").addClass('colorerror').text(text[lang].date).fadeIn(1000);
				return false;
			}

			var send_date = $.trim($("#send_date").val()).split(' ');
			var dmy = send_date[0].split('/');
			var hm = send_date[1].split(':');

			send_date = new Date(parseInt(dmy[2], 10), parseInt(dmy[1], 10) - 1, parseInt(dmy[0], 10), parseInt(hm[0], 10), parseInt(hm[1], 10), 0);
			var now = new Date();
			var ten_minutes_after = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes()+10, now.getSeconds(), 0);

			if(send_date <= now){
				$("#sms_message").addClass('colorerror').text(text[lang].invalid_date).fadeIn(1000);
				return false;
			}

			if(send_date < ten_minutes_after){
				$("#sms_message").addClass('colorerror').text(text[lang].ten_minutes).fadeIn(1000);
				return false;
			}
		}
		
		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });
		var tmess = $.trim($("textarea[name='message']").val());

		$.ajax({
			type: 'post',
			url: 'phpscripts/smspreprocess.php',
			data: { message : $.trim($("textarea[name='message']").val()), to: $.trim($("#thetoid").val()), label: $("[name='from']").val(), sms_date: $('[name="sms_date"]:checked').val(), send_date: $.trim($("#send_date").val())},
			dataType: 'json',
			contentType: "application/x-www-form-urlencoded; charset=utf-8",
			success: function (data) {
				if(data.error == '1') {
					$("#absnotice").html(data.msg);
					setTimeout(function() {$.unblockUI();} ,500);
						setTimeout( function() {
							$("#absnotice").show().fadeTo(1000,0.80, function () { 
							setTimeout(function(){$("#absnotice").fadeOut()},1000);
						});
					}, 500);	
				} else {
					$(".blockMsg").html(data.msg);
					
					//PROCEED WITH SMS
					$("#proceedsms").click( function () {

						if(sms_date == 'now')
							var block_msg = text[lang].send;
						else
							var block_msg = text[lang].send_later;
						
						$(".blockMsg").html('<h2 style="background-color: #ededed;">'+block_msg+'<br/><img src="images/loader_horizontal_green.gif" /></h2>');
						openSMSTaskCall('phpscripts/smssend.php', {message: tmess, label: data.from, to: data.to, sms_date: data.sms_date, send_date: data.send_date}, function (data) {
							$("#absnotice").html(data.msg);
							if( data.error == 'login') {
								document.location = './?action=main';
							} else if ( data.error!='1' && data.data == '1' && data.reloadUrl != ''){
								prepareAndCall( data.reloadUrl , "" );
								$("#coinsno").text(data.credits);
							}
						});
						return false;
					});
				}
			},
			error : function () {
				var text = {
					"el" : "Παρουσιάστηκε σφάλμα στη σελίδα. Λυπούμαστε για την αναστάτωση.6",
					"en" : "An error occured. Sorry for the inconvenience."
				};
						
				$("#absnotice").html(text[lang]);

				setTimeout(function() {$.unblockUI();} ,500);
				setTimeout( function() {
				$("#absnotice").show().fadeTo(1000,0.80, function () { 
						setTimeout(function(){$("#absnotice").fadeOut()},1000);
					});
				}, 500);	
			}
		});
		
	},
	PhoneUpdate : function (pid,elid) {
		var text = {
			"el" : { 
				"wait" : "Ανανέωση..."
			},
			"en" : { 
				"wait" : "Updating..."
			}	
		};
		var argsurl = 'p_id='+pid+'&value='+$.trim($("input[name='updatecontactinput"+elid+"']").val());
		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });
		openSMSTaskCall('phpscripts/phoneupdate.php' ,argsurl ,function (data) {
			$("#absnotice").html(data.msg);
			if( data.error == 'login') {
				document.location = './?action=main';
			} else if (data.error!='1') {
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			}
		});
	},
	MailUpdate : function (mid,elid) {
		var text = {
			"el" : { 
				"wait" : "Ανανέωση..."
			},
			"en" : { 
				"wait" : "Updating..."
			}	
		};
		var argsurl = 'm_id='+mid+'&value='+$.trim($("input[name='updatecontactinput"+elid+"']").val());
		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });
		openSMSTaskCall('phpscripts/mailupdate.php' ,argsurl ,function (data) {
			$("#absnotice").html(data.msg);
			if( data.error == 'login') {
				document.location = './?action=main';
			} else if (data.error!='1') {
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			}
		});
	},
	ContactUpdate : function (cid,field,elid) {
		var text = {
			"el" : { 
				"wait" : "Ανανέωση..."
			},
			"en" : { 
				"wait" : "Updating..."
			}	
		};
		var argsurl = 'c_id='+cid+'&field='+field+'&value='+$.trim($("input[name='updatecontactinput"+elid+"']").val());
		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });
		openSMSTaskCall('phpscripts/contactupdate.php' ,argsurl ,function (data) {
			$("#absnotice").html(data.msg);
			if( data.error == 'login') {
				document.location = './?action=main';
			} else if (data.error!='1') {
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			}
		});
	},
	MailAdd : function(cid) {
		$("#add_new_mail_message").removeClass('colorerror').hide();
				
		var text = {
			"el" : { 
				"namefield" : "Συμπληρώστε το e-mail.",
				"wait" : "Αποθήκευση...",
				"mailerror" : "Τo e-mail δεν είναι έγκυρo.",
			},
			"en" : { 
				"namefield" : "You must fill the email.",
				"wait" : "Saving...",
				"mailerror" : "The email is not valid."
			}	
		};
		
		if ($.trim($('[name="newmail"]').val()).length == 0 ) {
			$("#add_new_mail_message").addClass('colorerror').html(text[lang].namefield).fadeIn(1000);
			return false;
		} else if( !isMail( $.trim($('[name="newmail"]').val()) ) ) {
			$("#add_new_mail_message").addClass('colorerror').html(text[lang].mailerror).fadeIn(1000);
			return false;
		}
		
		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });

		var argsurl = 'cid='+cid+'&mail='+$.trim($('[name="newmail"]').val())+'&mailtype='+$.trim($('[name="newmailtype"]').val());

		openSMSTaskCall('phpscripts/mailadd.php' ,argsurl ,function (data) {
			var text = {
				"el" : {
					"add" : "To e-mail προστέθηκε επιτυχώς",
				},
				"en" : {
					"add" : "Email added successfully",
				}	
			};

			if( data.error == '') {
				$("#absnotice").html(data.msg);
				document.location = './?action=main';
			} else if( data.error == '1') {
				$("#absnotice").html(data.msg);
			} else {
				$("#absnotice").html(text[lang].add);
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			}
		});	
	},
	PhoneAdd : function(cid) {
		$("#add_new_phone_message").removeClass('colorerror').hide();
				
		var text = {
			"el" : { 
				"namefield" : "Συμπληρώστε το τηλέφωνο.",
				"wait" : "Αποθήκευση...",
				"phoneerror" : "Τo τηλέφωνo δεν είναι έγκυρo.",
			},
			"en" : { 
				"namefield" : "You must fill the number.",
				"wait" : "Saving...",
				"phoneerror" : "The number is not valid."
			}	
		};
		
		if ($.trim($('[name="newphone"]').val()).length == 0 ) {
			$("#add_new_phone_message").addClass('colorerror').html(text[lang].namefield).fadeIn(1000);
			return false;
		} else if( !isPhone( $.trim($('[name="newphone"]').val()) ) || !isGreekPhone( $.trim($('[name="newphone"]').val()) ) ) {
			$("#add_new_phone_message").addClass('colorerror').html(text[lang].phoneerror).fadeIn(1000);
			return false;
		}
		
		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });

		var argsurl = 'cid='+cid+'&phone='+$.trim($('[name="newphone"]').val())+'&phonetype='+$.trim($('[name="newphonetype"]').val());

		openSMSTaskCall('phpscripts/phoneadd.php' ,argsurl ,function (data) {
			var text = {
				"el" : {
					"add" : "To τηλέφωνο προστέθηκε επιτυχώς",
				},
				"en" : {
					"add" : "Phone added successfully",
				}	
			};

			if( data.error == '') {
				$("#absnotice").html(data.msg);
				document.location = './?action=main';
			} else if( data.error == '1') {
				$("#absnotice").html(data.msg);
			} else {
				$("#absnotice").html(text[lang].add);
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			}
		});
	},
	UploadExcel : function(has_groups) {
		$("#upload_excel_message").removeClass('colorerror').hide();

		var text = {
			"el" : { 
				"filename" : "Επιλέξτε ένα αρχείο.",
				"groups" : "Επιλέξτε ένα ήδη υπάρχον γκρουπ <b>ή</b> ένα νέο.",
				"invalid_group" : "Έχετε ήδη ένα γκρουπ με αυτό το όνομα.",
				"wait" : "Αποθήκευση...",
			},
			"en" : { 
				"filename" : "You must select a file.",
				"groups" : "Select an existing group <b>or</b> a new one.",
				"invalid_group" : "You already have a group with this name.",
				"wait" : "Saving...",
			}	
		};

		if($.trim($('[name="excel_filename"]').val()).length == 0){
			$("#upload_excel_message").addClass('colorerror').html(text[lang].filename).fadeIn(1000);
			return false;
		}

		if(has_groups == 1 && $.trim($('[name="new_gname"]').val()).length != 0 && $("#existing_group option:selected").val() != 0){
			$("#upload_excel_message").addClass('colorerror').html(text[lang].groups).fadeIn(1000);
			return false;
		}

		$.getJSON("phpscripts/checkgroupname.php", { gname:$('[name="new_gname"]').val(), rand:Math.random() } , function(data) {

			if(data.error == 'login'){
				$("#upload_excel_message").addClass('colorerror').text(data.msg).fadeIn(1000);
				document.location = './?action=main';
			}
			else if(data.error == '1'){
				$("#upload_excel_message").addClass('colorerror').text(data.msg).fadeIn(1000);
			}
			else if(data.data == '1'){
				$("#upload_excel_message").addClass('colorerror').text(text[lang].invalid_group).fadeIn(1000);
			}
			else{
				$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });
				document.forms['addcontactform'].submit();
			}
		});

		return false;
	},
	ContactAdd : function () {
		$("#contact_message_1").removeClass('colorerror').hide();
		$("#contact_message_2").removeClass('colorerror').hide();
		$("#contact_message_3").removeClass('colorerror').hide();
		
		var flag = true;
		var text = {
			"el" : { 
				"namefield" : "Πρέπει να συμπληρώσετε τουλάχιστον ένα από τα πεδία <i>Όνομα</i>, <i>Επίθετο</i> ή </i>Εταιρεία</i>.",
				"wait" : "Αποθήκευση...",
				"phoneerror" : "Τα τηλέφωνα που εισάγατε δεν είναι έγκυρα.",
				"mailerror" : "Τα e-mail που εισάγατε δεν είναι έγκυρα."
			},
			"en" : { 
				"namefield" : "You must fill at least one of the following fields: <i>First name</i>; <i>Last name</i>; <i>Company</i>.",
				"wait" : "Saving...",
				"phoneerror" : "The phones you specified are not valid.",
				"mailerror" : "The e-mails you specified are not valid."
			}	
		};
		
		if ($.trim($('[name="fname"]').val()).length == 0 && $.trim($('[name="lname"]').val()).length == 0
			&& $.trim($('[name="company"]').val()).length == 0) {
			$("#contact_message_1").addClass('colorerror').html(text[lang].namefield).fadeIn(1000);
			flag = false;
		}

		var phoneurl = '';
		$(".phoneinput").each(function (i) {
			if( $.trim($(this).val()).length && (!isPhone($.trim($(this).val())) || !isGreekPhone($.trim($(this).val()))) ) {
				flag = false;
				$("#contact_message_2").addClass('colorerror').html(text[lang].phoneerror).fadeIn(1000);
			} else if ($.trim($(this).val()).length) {
				var myi = i+1;
				phoneurl += '&phone['+i+']='+$(this).val()+'&phonetype['+i+']='+$('[name="phonetype'+myi+'"]').val();
			}
		});
		
		var mailurl = '';
		$(".mailinput").each(function (i) {
			if( $.trim($(this).val()).length && !isMail($.trim($(this).val()))) {
				$("#contact_message_3").addClass('colorerror').html(text[lang].mailerror).fadeIn(1000);
				flag = false;
			} else if ($.trim($(this).val()).length) {
				var myi = i+1;
				mailurl += '&email['+i+']='+$(this).val()+'&emailtype['+i+']='+$('[name="mailtype'+myi+'"]').val();
			}
		});

		if(!flag) return false;
		
		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });
		
		var birthday = ($.trim($('[name="year"]').val()) == 0 || $.trim($('[name="month"]').val()) == 0 || $.trim($('[name="day"]').val()) == 0 ) ? 
			'' : $.trim($('[name="year"]').val())+'-'+$.trim($('[name="month"]').val())+'-'+$.trim($('[name="day"]').val());
		var theurl = ($.trim($('[name="url"]').val()) == 'http://') ? '' : $.trim($('[name="url"]').val());
		var argsurl = 'fname='+$.trim($('[name="fname"]').val())+'&lname='+$.trim($('[name="lname"]').val())
		+'&company='+$.trim($('[name="company"]').val())+'&address='+$.trim($('[name="address"]').val())+'&url='+theurl
		+'&birthday='+birthday+'&city='+$.trim($('[name="city"]').val())+'&zip='+$.trim($('[name="zip"]').val())
		+'&country='+$.trim($('[name="country"]').val())+phoneurl+mailurl;

		openSMSTaskCall('phpscripts/contactadd.php' ,argsurl ,function (data) {
			var text = {
				"el" : {
					"add" : "Η επαφή προστέθηκε επιτυχώς",
				},
				"en" : {
					"add" : "Contact added successfully",
				}	
			};

			if( data.error == '') {
				$("#absnotice").html(data.msg);
				document.location = './?action=main';
			} else if( data.error == '1') {
				$("#absnotice").html(data.msg);
			} else {
				$("#absnotice").html(text[lang].add);
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			}
		});
		
		return false;
	},
	GroupAddOrUpdate : function (req, prev_name) {
	
		$("#gname_message").removeClass('colorerror').hide();

		var text = {
			"el" : { 
				"namefield" : "Το όνομα του γκρουπ είναι υποχρεωτικό.",
				"failure" : "Έχετε ήδη ένα γκρουπ με αυτό το όνομα.",
				"update" : "Προσθήκη/αφαίρεση επαφών",
				"wait" : "Αποθήκευση..."
			},
			"en" : { 
				"namefield" : "A group name is required. Please try again.",
				"failure" : "You already have a group with this name.",
				"update" : "Add/remove contacts",
				"wait" : "Saving..."
			}	
		};

		if($.trim($('[name="gname"]').val()).length == 0){
			$("#gname_message").addClass('colorerror').text(text[lang].namefield).fadeIn(1000);
			return false;
		}

		if(req != '' && prev_name == $.trim($('[name="gname"]').val())){
			$("#absnotice").html(text[lang].update);	// FIXME
			prepareAndCall("divs/add_edit_group_contacts.php", "gr_id=" + req + "&action=update");
		}
		else{
			$.getJSON("phpscripts/checkgroupname.php", { gname:$('[name="gname"]').val(), rand:Math.random() } , function(data) {

				if(data.error == 'login'){
					$("#gname_message").addClass('colorerror').text(data.msg).fadeIn(200);
					document.location = './?action=main';
				}
				else if(data.error == '1'){
					$("#gname_message").addClass('colorerror').text(data.msg).fadeIn(200);
				}
				else if(data.data == '1'){
					$("#gname_message").addClass('colorerror').text(text[lang].failure).fadeIn(200);
				}
				else{
					$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });
					var act = (req != '') ? 'update&grid=' + req : 'new';
					var argsurl = 'action=' + act + '&gname=' + $.trim($('[name="gname"]').val());

					openSMSTaskCall('phpscripts/groupaddupdate.php', argsurl, function (data){
				
						var text = {
							"el" : {
								"add" : "Προσθήκη επαφών στο γκρουπ",
								"update" : "Προσθήκη/αφαίρεση επαφών"
							},
							"en" : {
								"add" : "Add contacts to group",
								"update" : "Add/remove contacts"
							}	
						};

						if(data.error == ''){
							$("#absnotice").html(data.msg);
							document.location = './?action=main';
						}
						else if(data.error == '1'){
							$("#absnotice").html(data.msg);
						}
						else if(data.action == "update"){
							$("#absnotice").html(text[lang].update);
							prepareAndCall("divs/add_edit_group_contacts.php", "gr_id=" + data.data + "&action=" + data.action);
						}
						else{
							$("#absnotice").html(text[lang].add);
							prepareAndCall("divs/add_edit_group_contacts.php", "gr_id=" + data.data + "&action=" + data.action);
						}
					});
				}
			});
		}

		return false;
	},
	phoneToGroup : function (gr_id, p_id){
		
		if($('#phone_' + p_id).is(":checked"))
			action = 'add';
		else
			action = 'delete';

		$.ajax({
			type: 'post',
			url: 'phpscripts/add_remove_groupphone.php',
			data: {gr_id: gr_id, p_id: p_id, action: action},
			dataType: 'json',
			contentType: "application/x-www-form-urlencoded; charset=utf-8",
			success: function (data) {

				if(data.error == '1'){
					alert(data.msg);
				}
			},
			error : function () {

				var text = {
					"el" : "Παρουσιάστηκε σφάλμα στη σελίδα. Λυπούμαστε για την αναστάτωση.7",
					"en" : "An error occured. Sorry for the inconvenience."
				};

				alert(text[lang]);
			}
		});

		return false;
	},
	removeAllContacts : function (letter, gr_id){
	
		$(".check_" + letter).each(function (){
			
			var id = $(this).attr('id');

			if($('#' + id).is(":checked")){

				$('#' + id).attr('checked', false);
				p_id = id.split('_');
				p_id = p_id[1];
				action = 'delete';

				$.ajax({
					type: 'post',
					url: 'phpscripts/add_remove_groupphone.php',
					data: {gr_id: gr_id, p_id: p_id, action: action},
					dataType: 'json',
					contentType: "application/x-www-form-urlencoded; charset=utf-8",
					success: function (data) {

						if(data.error == '1'){
							alert(data.msg);
						}
					},
					error : function () {

						var text = {
							"el" : "Παρουσιάστηκε σφάλμα στη σελίδα. Λυπούμαστε για την αναστάτωση.8",
							"en" : "An error occured. Sorry for the inconvenience."
						};

						alert(text[lang]);
					}
				});
			}
		});

		return false;
	},
	addAllContacts : function (letter, gr_id){
	
		$(".check_" + letter).each(function (){
			
			var id = $(this).attr('id');

			if(!$('#' + id).is(":checked")){

				$('#' + id).attr('checked', true);
				p_id = id.split('_');
				p_id = p_id[1];
				action = 'add';

				$.ajax({
					type: 'post',
					url: 'phpscripts/add_remove_groupphone.php',
					data: {gr_id: gr_id, p_id: p_id, action: action},
					dataType: 'json',
					contentType: "application/x-www-form-urlencoded; charset=utf-8",
					success: function (data) {

						if(data.error == '1'){
							alert(data.msg);
						}
					},
					error : function () {

						var text = {
							"el" : "Παρουσιάστηκε σφάλμα στη σελίδα. Λυπούμαστε για την αναστάτωση.9",
							"en" : "An error occured. Sorry for the inconvenience."
						};

						alert(text[lang]);
					}
				});
			}
		});

		return false;
	},
	GroupCheckNameExists : function () {
		$("#gname_message").removeClass('colorerror').removeClass('colorsuccess').hide();
		
		if( $.trim($('[name="gname"]').val()).length == 0) return false;

		var text = {
			"el" : {
				"success" : "Το όνομα του γκρουπ είναι έγκυρο!",
				"failure" : "Έχετε ήδη ένα γκρουπ με αυτό το όνομα."
			},
			"en" : {
				"success" : "This group name is valid!",
				"failure" : "You already have a group with this name."
			}	
		};
		
		$.getJSON("phpscripts/checkgroupname.php", { gname:$('[name="gname"]').val(), rand:Math.random() } , function(data) {
			if( data.error == 'login') {
				$("#gname_message").addClass('colorerror').text(data.msg).fadeIn(200);
				document.location = './?action=main';
			} else if( data.error == '1') {
				$("#gname_message").addClass('colorerror').text(data.msg).fadeIn(200);
			}else if ( data.data == '1'){
				$("#gname_message").addClass('colorerror').text(text[lang].failure).fadeIn(200);
			} else {
				$("#gname_message").addClass('colorsuccess').text(text[lang].success).fadeIn(200);
			}
		});
		
		return false;
	},
	deletePhone : function (p_id) {
	
		var text = {
			"el" : "Διαγραφή...",
			"en" : "Deleting..."
		};

		$(".blockMsg").html('<h2 style="background-color: #ededed;">'+text[lang]+'<br/><img src="images/loader_horizontal_green.gif" /></h2>');
		var argsurl = 'p_id='+p_id;
		
		openSMSTaskCall('phpscripts/phonedelete.php', argsurl,function (data) {

			if( data.error == 'login') {
				$("#absnotice").html(data.msg);
				document.location = './?action=main';
			} else if( data.error == '1') {
				$("#absnotice").html(data.msg);
			} else if ( data.action == "update"){
				$("#absnotice").html(text[lang].update);
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			} else {
				$("#absnotice").html(data.msg);
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			}
		});

		return false;
	},
	deleteMail : function (m_id) {
	
		var text = {
			"el" : "Διαγραφή...",
			"en" : "Deleting..."
		};

		$(".blockMsg").html('<h2 style="background-color: #ededed;">'+text[lang]+'<br/><img src="images/loader_horizontal_green.gif" /></h2>');
		var argsurl = 'm_id='+m_id;
		
		openSMSTaskCall('phpscripts/maildelete.php', argsurl,function (data) {

			if( data.error == 'login') {
				$("#absnotice").html(data.msg);
				document.location = './?action=main';
			} else if( data.error == '1') {
				$("#absnotice").html(data.msg);
			} else if ( data.action == "update"){
				$("#absnotice").html(text[lang].update);
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			} else {
				$("#absnotice").html(data.msg);
				prepareAndCall( "divs/viewcontacts.php" , "c_id="+data.data );
			}
		});

		return false;
	},
	deleteGroup : function (gr_id) {
	
		var text = {
			"el" : {
				"del" : "Διαγραφή...",
				"contacts" : "Θέλετε να διαγράψετε και τις επαφές που ανήκουν στο γκρουπ;",
				"yes" : "Ναι",
				"no" : "Όχι"
			},
			"en" : { 
				"del" : "Deleting...",
				"contacts" : "Do you want to delete the contacts that belong to the group?",
				"yes" : "Yes",
				"no" : "No"
			}
		};

		$(".blockMsg").html('<div style="padding:10px"><b>' + text[lang].contacts +
					'<br/><h3><a href="#Yes" id="delete_contacts_yes">' +
					text[lang].yes + '</a> | <a href="#No" id="delete_contacts_no">' +
					text[lang].no + '</a></h3></div>');

		$("#delete_contacts_yes").click(function(){

			$(".blockMsg").html('<h2 style="background-color: #ededed;">'+text[lang].del+'<br/><img src="images/loader_horizontal_green.gif" /></h2>');
			argsurl = 'gr_id=' + gr_id + '&delete_contacts=1';
			openSMSTaskCall('phpscripts/groupdelete.php', argsurl);
			return false;
		});

		$("#delete_contacts_no").click(function(){

			$(".blockMsg").html('<h2 style="background-color: #ededed;">'+text[lang].del+'<br/><img src="images/loader_horizontal_green.gif" /></h2>');
			argsurl = 'gr_id=' + gr_id + '&delete_contacts=0';
			openSMSTaskCall('phpscripts/groupdelete.php', argsurl);
			return false;
		});
	},
	deleteContact : function (c_id) {
	
		var text = {
			"el" : "Διαγραφή...",
			"en" : "Deleting..."
		};

		$(".blockMsg").html('<h2 style="background-color: #ededed;">'+text[lang]+'<br/><img src="images/loader_horizontal_green.gif" /></h2>');
		argsurl = 'c_id='+c_id;
		openSMSTaskCall('phpscripts/contactdelete.php', argsurl);

		return false;
	},
	deleteLabel : function (l_id) {
	
		var text = {
			"el" : "Διαγραφή...",
			"en" : "Deleting..."
		};

		$(".blockMsg").html('<h2 style="background-color: #ededed;">'+text[lang]+'<br/><img src="images/loader_horizontal_green.gif" /></h2>');
		argsurl = 'l_id='+l_id;
		openSMSTaskCall('phpscripts/labeldelete.php', argsurl);

		return false;
	},
	deleteReminder : function (r_id, ctime){
	
		var text = {
			"el" : "Διαγραφή...",
			"en" : "Deleting..."
		};

		$(".blockMsg").html('<h2 style="background-color: #ededed;">'+text[lang]+'<br/><img src="images/loader_horizontal_green.gif" /></h2>');
		var argsurl = 'r_id=' + r_id;
		
		openSMSTaskCall('phpscripts/reminderdelete.php', argsurl, function(data){

			if(data.error == 'login'){
				$("#absnotice").html(data.msg);
				document.location = './?action=main';
			}
			else if(data.error == '1'){
				$("#absnotice").html(data.msg);
			}
			else{
				$("#absnotice").html(data.msg);
				prepareAndCall("divs/calendar.php", "time="+ctime);
			}
		});

		return false;
	},
	labelAdd : function () {
		$("#add_label_message").removeClass('colorerror').hide();

		var text = {
			"el" : { 
				"namefield" : "Το ID αποστολέα είναι υποχρεωτικό.",
				"length" : "Το όριο των 11 χαρακτήρων ξεπεράστηκε.",
				"invalid_characters" : "Οι επιτρεπτοί χαρακτήρες είναι: a-z A-Z 0-9 - .",
				"wait" : "Αποθήκευση..."
			},
			"en" : { 
				"namefield" : "Sender ID is required. Please try again.",
				"length" : "Sender ID must be 11 characters at most.",
				"invalid_characters" : "Valid characters are: a-z A-Z 0-9 - .",
				"wait" : "Saving..."
			}
		};

		if ($.trim($('[name="label"]').val()).length == 0) {
			$("#add_label_message").addClass('colorerror').text(text[lang].namefield).fadeIn(1000);
			return false;
		}
		
		if ($.trim($('[name="label"]').val()).length >= 12) {
			$("#add_label_message").addClass('colorerror').text(text[lang].length).fadeIn(1000);
			return false;
		}

		if (!isValidLabel($.trim($('[name="label"]').val()))) {
			$("#add_label_message").addClass('colorerror').text(text[lang].invalid_characters).fadeIn(1000);
			return false;
		}
		
		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });
		var argsurl = 'label=' + $.trim($('[name="label"]').val()) + '&usercomment=' + $.trim($('[name="usercomment"]').val());
		openSMSTaskCall('phpscripts/labeladd.php', argsurl);
		
		return false;
	},
	addUser : function () {
		$("#adduser_message").removeClass('colorerror').hide();

		var text = {
			"el" : { 
				"all_fields" : "Πρέπει να συμπληρώσετε όλα τα πεδία.",
				"mail_error" : "Η email διεύθυνση δεν είναι έγκυρη.",
				"captcha_error" : "Συμπληρώστε σωστά τα γράμματα που φαίνονται στην εικόνα.",
				"password_match" : "Οι κωδικοί πρόσβασης δεν ταιριάζουν.",
				"password_length" : "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 6 χαρακτήρες.",
				"phone_error" : "Ο αριθμός τηλεφώνoυ δεν είναι έγκυρoς.",
				"invalid_characters" : "Για το όνομα χρήστη οι επιτρεπτοί χαρακτήρες είναι οι: a-z A-Z 0-9 - _ .",
				"wait" : "Αποθήκευση...",
				"failure" : "Το όνομα χρήστη δεν είναι διαθέσιμο."
			},
			"en" : { 
				"all_fields" : "All fields are required.",
				"mail_error" : "The email address is not valid.",
				"captcha_error" : "Captcha code is not valid.",
				"password_match" : "Passwords do not match.",
				"password_length" : "Password must have at least 6 characters.",
				"phone_error" : "The cell phone number is not valid.",
				"invalid_characters" : "The valid characters for the username are: a-z A-Z 0-9 - _ .",
				"wait" : "Saving...",
				"failure" : "Username is not available."
			}
		};

		if($.trim($('[name="first_name"]').val()).length == 0 || $.trim($('[name="last_name"]').val()).length == 0
			|| $.trim($('[name="username"]').val()).length == 0 || $.trim($('[name="password"]').val()).length == 0
			|| $.trim($('[name="confirm_password"]').val()).length == 0 || $.trim($('[name="email"]').val()).length == 0
			|| $.trim($('[name="phone"]').val()).length == 0 || $.trim($('[name="city"]').val()).length == 0
			|| $.trim($('[name="address"]').val()).length == 0 || $.trim($('[name="zip_code"]').val()).length == 0
			|| $.trim($('[name="captcha_code"]').val()).length == 0){
			$("#adduser_message").addClass('colorerror').text(text[lang].all_fields).fadeIn(1000);
			return false;
		}
		else if(!isValidUsername($.trim($('[name="username"]').val()))){
			$("#adduser_message").addClass('colorerror').text(text[lang].invalid_characters).fadeIn(1000);
			return false;
		}
		else if($.trim($('[name="password"]').val()).length < 6){
			$("#adduser_message").addClass('colorerror').html(text[lang].password_length).fadeIn(1000);
			return false;
		}
		else if($.trim($('[name="password"]').val()) != $.trim($('[name="confirm_password"]').val())){
			$("#adduser_message").addClass('colorerror').html(text[lang].password_match).fadeIn(1000);
			return false;
		}
		else if(!isMail($.trim($('[name="email"]').val()))){
			$("#adduser_message").addClass('colorerror').html(text[lang].mail_error).fadeIn(1000);
			return false;
		}		
		else if(!isPhone($.trim($('[name="phone"]').val())) || !isGreekPhone($.trim($('[name="phone"]').val()))){
			$("#adduser_message").addClass('colorerror').html(text[lang].phone_error).fadeIn(1000);
			return false;
		}

		$.getJSON("phpscripts/checkusername.php", {username:$.trim($('[name="username"]').val()), language:lang, rand:Math.random()}, function(data){

			if(data.error == '1'){
				$("#adduser_message").addClass('colorerror').text(data.msg).fadeIn(1000);
				return false;
			}
			else if(data.data == '1'){
				$("#adduser_message").addClass('colorerror').text(text[lang].failure).fadeIn(1000);
				return false;
			}
			else{
				$.getJSON("phpscripts/mailcheck.php", {mail:$.trim($('[name="email"]').val()), language:lang}, function(data){

					if(data.error == '1'){
						$("#adduser_message").addClass('colorerror').text(data.msg).fadeIn(1000);
						return false;
					}
					else if(data.data == '1'){
						$("#adduser_message").addClass('colorerror').text(text[lang].mail_error).fadeIn(1000);
						return false;
					}
					else{
						$.getJSON("phpscripts/checkcaptchacode.php", {captcha_code:$.trim($('[name="captcha_code"]').val()), language:lang}, function(data){
							if(data.data == '1'){
								$("#adduser_message").addClass('colorerror').text(text[lang].captcha_error).fadeIn(1000);
								return false;
							}
							else{
								$.blockUI({message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>'});
								var argsurl = 'first_name='+$.trim($('[name="first_name"]').val()) + '&last_name='+$.trim($('[name="last_name"]').val())
										+ '&username='+$.trim($('[name="username"]').val()) + '&password='+$.trim($('[name="password"]').val()) 
										+ '&email='+$.trim($('[name="email"]').val()) + '&phone='+$.trim($('[name="phone"]').val())
										+ '&city='+$.trim($('[name="city"]').val()) + '&address='+$.trim($('[name="address"]').val())
										+ '&zip_code='+$.trim($('[name="zip_code"]').val()) + '&country='+$.trim($('[name="country"]').val())
										+ '&language='+lang;
								var coocoo = {"msg":"","data":"","error":"0"};
								openSMSTaskCall('phpscripts/useradd.php', argsurl, function (coocoo){
									var text = {
										"el" : {
											"add" : "Ο λογαριασμός σας δημιουργήθηκε επιτυχώς",
											"confirmation" : "Προκειμένου να ενεργοποιήσετε τον λογαριασμό σας, ακολουθήστε τις οδηγίες που σας έχουν σταλεί με email. Εάν δεν λάβετε το email σε λίγα λεπτά, παρακαλούμε ελέγξτε το φάκελο ομαδικής αλληλογραφίας ή το φάκελο spam ή το φάκελο ανεπιθύμητης αλληλογραφίας (φάκελος junk)."
										},
										"en" : {
											"add" : "Your account was successfully created",
											"confirmation" : "In order to activate your account, please follow the instructions that has been sent to your email account. if you do not receive the confirmation email, please check your spam or junk folder."
										}
									};

									if(data.error == '1'){
										$("#absnotice").html(data.msg);
									}
									else{
										$("#absnotice").html(text[lang].add);
										$("#adduser_smalltalk").removeClass('colorerror').hide();
										$("#adduser").removeClass('colorerror').hide();
										$("#adduser").css({'padding-top':'10px'});
										$("#adduser").addClass('addusersuccess').text(text[lang].confirmation).fadeIn(200);
									}
								});
							}
						});
					}
				});
			}
		});

		return false;
	},
	buySMS : function () {
		$("#buy_sms_message").removeClass('colorerror').hide();

		var text = {
			"el" : { 
				"empty" : "Συμπληρώστε τον αριθμό των μηνυμάτων που επιθυμείτε να αγοράσετε.",
				"contact_us" : "Επικοινωνήστε μαζί μας για τον καθορισμό του κόστους ανά SMS.",
				"limit" : "Η ελάχιστη ποσότητα αγοράς είναι ίση με 100 μηνύματα.",
				"process" : "Επεξεργασία..."
			},
			"en" : { 
				"empty" : "Fill in the number of SMS messages you wish to buy.",
				"contact_us" : "Please contact us in order to determine the cost per SMS.",
				"limit" : "You must buy at least 100 sms messages.",
				"process" : "Processing..."
			}
		};

		if($.trim($('[name="sms_nr"]').val()).length == 0 || $.trim($('[name="sms_nr"]').val()) == 0 || !isSmsNr($.trim($('[name="sms_nr"]').val()))){
			$("#buy_sms_message").addClass('colorerror').text(text[lang].empty).fadeIn(1000);
			return false;
		}

		if($.trim($('[name="sms_nr"]').val().replace(/\./g, '')) < 100){
			$("#buy_sms_message").addClass('colorerror').text(text[lang].limit).fadeIn(1000);
			return false;
		}

		if(amount == -1){
			$("#buy_sms_message").addClass('colorerror').text(text[lang].contact_us).fadeIn(1000);
			return false;
		}
		
		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].process+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });

		var argsurl = 'sms_nr=' + $.trim($('[name="sms_nr"]').val().replace(/\./g, '')) + '&amount='+amount;

		openSMSTaskCall('phpscripts/buysms.php', argsurl, function (data){

			var text = {
				"el" : {
					"payment_process" : "Πληρώστε την αγορά σας μέσω PayPal",
				},
				"en" : {
					"payment_process" : "Pay your order via PayPal",
				}
			};

			if(data.error == 'login'){
				$("#absnotice").html(data.msg);
				document.location = './?action=main';
			}
			else if(data.error == '1'){
				$("#absnotice").html(data.msg);
			}
			else if(data.data == '1'){
				$("#absnotice").html(text[lang].payment_process);
				$(location).attr('href', data.redirectUrl);
			}
		});

		return false;
	},
	messagesHistory: function () {
		$("#history_message").removeClass('colorerror').hide();

		var text = {
			"el" : {
				"empty" : "Επιλέξτε ένα χρονικό διάστημα.",
				"invalid_date" : "Η τελική ημερομηνία αναζήτησης (Μέχρι) πρέπει να έπεται της αρχικής ημερομηνίας (Από)."
			},
			"en" : {
				"empty" : "Select a time period.",
				"invalid_date" : "The end date (To) of the search must be after the first date (From)."
			}
		};

		if($.trim($('[name="date_from"]').val()).length == 0 || $.trim($('[name="date_to"]').val()).length == 0){
			$("#history_message").addClass('colorerror').text(text[lang].empty).fadeIn(1000);
			$("#messages_history").html('');
			return false;
		}

		var date_from = $.trim($('[name="date_from"]').val()).split(' ');
		var from1 = date_from[0].split('/');
		var from2 = date_from[1].split(':');

		var date_to = $.trim($('[name="date_to"]').val()).split(' ');
		var to1 = date_to[0].split('/');
		var to2 = date_to[1].split(':');

		date_from = new Date(parseInt(from1[2], 10), parseInt(from1[1], 10) - 1, parseInt(from1[0], 10), parseInt(from2[0], 10), parseInt(from2[1], 10), 0);
		date_to = new Date(parseInt(to1[2], 10), parseInt(to1[1], 10) - 1, parseInt(to1[0], 10), parseInt(to2[0], 10), parseInt(to2[1], 10), 0);

		if(date_to <= date_from){
			$("#history_message").addClass('colorerror').text(text[lang].invalid_date).fadeIn(1000);
			$("#messages_history").html('');
			return false;
		}

		var args = 'day_from=' + from1[0] + '&month_from=' + from1[1] + '&year_from=' + from1[2] +
				'&hour_from=' + from2[0] + '&minute_from=' + from2[1] +
				'&day_to=' + to1[0] + '&month_to=' + to1[1] + '&year_to=' + to1[2] +
				'&hour_to=' + to2[0] + '&minute_to=' + to2[1] + '&page=1';

		messagesHistoryAssign(args);
	},
	setReminder: function (r_id) {
		$("#reminder_message").removeClass('colorerror').hide();

		var text = {
			"el" : {
				"nolabel" : "Δεν έχετε καταχωρήσει ακόμα ID αποστολέα. Μπορείτε να προσθέσετε ένα ID αποστολέα χρησιμοποιώντας την αντίστοιχη επιλογή του μενού.",
				"namefield" : "Πρέπει να ορίσετε τουλάχιστον έναν παραλήπτη.",
				"date" : "Πρέπει να ορίσετε την ημερομηνία της υπενθύμισης.",
				"start_time" : "Πρέπει να ορίσετε την ώρα έναρξης.",
				"end_time" : "Πρέπει να ορίσετε την ώρα λήξης.",
				"invalid_end_time" : "Η ώρα λήξης πρέπει να έπεται της ώρας έναρξης.",
				"invalid_date" : "Η ημερομηνία υπενθύμισης πρέπει να έπεται της τωρινής ημερομηνίας.",
				"invalid_date2" : "Η ημερομηνία υπενθύμισης πρέπει να προηγείται της ώρας έναρξης.",
				"subject" : "Πρέπει να ορίσετε τον τίτλο του γεγονότος.",
				"length" : "Συμπληρώστε το κείμενο του μηνύματος υπενθύμισης.",
				"length_no_sms" : "Πρέπει να ορίσετε τις λεπτομέρειες του γεγονότος.",
				"msgnr" : "Ο αριθμός μηνυμάτων δεν πρέπει να ξεπερνάει τα 3.",
				"wait" : "Επεξεργασία...",
			},
			"en" : {
				"nolabel" : "No sender ID found. You can add a new sender ID using the corresponding menu's option.",
				"namefield" : "You need to specify at least one recipient.",
				"date" : "Please specify the date of the reminder.",
				"start_time" : "Please specify the start time.",
				"end_time" : "Please specify the end time.",
				"invalid_end_time" : "The end time must be after the start time.",
				"invalid_date" : "The date of the reminder must be after the current date.",
				"invalid_date2" : "The date of the reminder must be before the start time.",
				"subject" : "Please specify the title of the reminder.",
				"length" : "Υou cannot send an empty message.",
				"msgnr" : "The number of sms can not be greater than 3.",
				"wait" : "Processing...",
			}
		};

		var send_sms = $('[name="send_sms"]:checked').val();

		if(parseInt($("#smsno").text()) > 3 && send_sms == 'yes'){
			$("#reminder_message").addClass('colorerror').text(text[lang].msgnr).fadeIn(1000);
			return false;
		}

		if($.trim($("#reminder_subject").val()).length == 0){
			$("#reminder_message").addClass('colorerror').text(text[lang].subject).fadeIn(1000);
			return false;
		}

		if(!$("[name='from']").val() && send_sms == 'yes'){
			if(lang == 'el')
				$('#reminder_message').css({'height':'30px'});

			$("#reminder_message").addClass('colorerror').text(text[lang].nolabel).fadeIn(1000);
			return false;
		}

		if($.trim($("#thetoid").val()).length == 0 && send_sms == 'yes'){
			$("#reminder_message").addClass('colorerror').text(text[lang].namefield).fadeIn(1000);
			return false;
		}

		if($.trim($("#start_time").val()).length == 0){
			$("#reminder_message").addClass('colorerror').text(text[lang].start_time).fadeIn(1000);
			return false;
		}

		if($.trim($("#end_time").val()).length == 0){
			$("#reminder_message").addClass('colorerror').text(text[lang].end_time).fadeIn(1000);
			return false;
		}
		else{
			var end_time = $.trim($("#end_time").val()).split(' ');
			var dmy = end_time[0].split('/');
			var hm = end_time[1].split(':');
			end_time = new Date(parseInt(dmy[2], 10), parseInt(dmy[1], 10) - 1, parseInt(dmy[0], 10), parseInt(hm[0], 10), parseInt(hm[1], 10), 0);

			var start_time = $.trim($("#start_time").val()).split(' ');
			dmy = start_time[0].split('/');
			hm = start_time[1].split(':');
			start_time = new Date(parseInt(dmy[2], 10), parseInt(dmy[1], 10) - 1, parseInt(dmy[0], 10), parseInt(hm[0], 10), parseInt(hm[1], 10), 0);

			if(end_time <= start_time){
				$("#reminder_message").addClass('colorerror').text(text[lang].invalid_end_time).fadeIn(1000);
				return false;
			}
		}

		if($.trim($("#reminder_date").val()).length == 0 && send_sms == 'yes'){
			$("#reminder_message").addClass('colorerror').text(text[lang].date).fadeIn(1000);
			return false;
		}
		else if(send_sms == 'yes'){
			var reminder_date = $.trim($("#reminder_date").val()).split(' ');
			var dmy = reminder_date[0].split('/');
			var hm = reminder_date[1].split(':');

			reminder_date = new Date(parseInt(dmy[2], 10), parseInt(dmy[1], 10) - 1, parseInt(dmy[0], 10), parseInt(hm[0], 10), parseInt(hm[1], 10), 0);
			var now = new Date();

			if(reminder_date <= now){
				$("#reminder_message").addClass('colorerror').text(text[lang].invalid_date).fadeIn(1000);
				return false;
			}

			if(reminder_date >= start_time){
				$("#reminder_message").addClass('colorerror').text(text[lang].invalid_date2).fadeIn(1000);
				return false;
			}
		}
	
		if($.trim($("textarea[name='message']").val()).length == 0){

			if(send_sms == 'yes')
				$("#reminder_message").addClass('colorerror').text(text[lang].length).fadeIn(1000);
			else
				$("#reminder_message").addClass('colorerror').text(text[lang].length_no_sms).fadeIn(1000);

			return false;
		}

		$.blockUI({ message: '<h2 style="background-color: #ededed;">'+text[lang].wait+'<br/><img src="images/loader_horizontal_green.gif" /></h2>' });

		var action = (r_id) ? 'update&rid=' + r_id : 'new';

		var argsurl = 'action=' + action + '&message=' + $.trim($("textarea[name='message']").val()) + '&to=' + $.trim($("#thetoid").val()) +
				'&label=' + $("[name='from']").val() + '&date=' + $.trim($("#reminder_date").val()) +
				'&subject=' + $.trim($("#reminder_subject").val()) + '&send_sms=' + $('[name="send_sms"]:checked').val() +
				'&start_time=' + $.trim($("#start_time").val()) + '&end_time=' + $.trim($("#end_time").val())


		openSMSTaskCall('phpscripts/reminderadd.php', argsurl, function (data) {
				
			var text = {
				"el" : {
					"add" : "Η υπενθύμιση προστέθηκε επιτυχώς",
					"update" : "Η υπενθύμιση ανανεώθηκε επιτυχώς"
				},
				"en" : {
					"add" : "Reminder added successfully",
					"update" : "Reminder updated succesfully"
				}
			};

			if(data.error == 'login'){
				$("#absnotice").html(data.msg);
				document.location = './?action=main';
			}
			else if(data.error == '1'){
				$("#absnotice").html(data.msg);
			}
			else if(data.action == 'update'){
				$("#absnotice").html(text[lang].update);
				prepareAndCall("divs/calendar.php", "time="+data.data);
			}
			else{
				$("#absnotice").html(text[lang].add);
				prepareAndCall("divs/calendar.php", "time="+data.data);
			}
		});
		
		return false;
	},
	logOut : function() {
		$.post("phpscripts/logout.php", '', function(data) {
			document.location='.';
		}, "xml");
		return false;
	}
};

$("document").ready(function(){
	
	$("#addcontactform").submit( function() {
		return false;
	});
});

$("document").ready(function(){
	
	allassign();
	$("#absnotice").height("auto");	
	
	$("#loginform").submit( function() {

		var text = new Array();
		text['el'] = new Array();
		text['en'] = new Array();
		text['el']['validate'] = 'Γίνεται έλεγχος...';
		text['en']['validate'] = 'Validating...';
		text['el']['empty'] = 'Kαι τα δύο πεδία είναι υποχρεωτικά';
		text['en']['empty'] = 'Both username & password are required';

	        //remove all the class add the messagebox classes and start fading
        	$("#login_message").removeClass().addClass('messagebox').text(text[lang]['validate']).fadeIn(1000);
        
		if($('#uname').val().length == 0 || $('#passwd').val().length == 0 ) {
			$("#login_message").removeClass().addClass('messagebox2').text(text[lang]['empty']).fadeIn(1000);
			return false;
		}
		
		//check the username exists or not from ajax
	        $.post("phpscripts/login.php",{ uname:$('#uname').val(),passwd:$('#passwd').val(), rand:Math.random() } , function(data) {
			if( $(data).find("error").text() == '1') {
				$("#login_message").removeClass().addClass('messagebox2').text($(data).find("msg").text()).fadeIn(1000);
			} else {
				document.location='.';

			}
		}, "xml");
		
		return false;//not to post the  form physically
	});
	
	if($("#thetoid").length > 0) {
		var options = {
			script: "phpscripts/suggest.php",
			args: function (input) { 
				var ch1 = (document.smsform.searchcontacts.checked) ? '1' : '0';
				var ch2 = (document.smsform.searchgroups.checked) ? '1' : '0';
				return "input="+input+"&contacts="+ch1+"&groups="+ch2; 
			},
			json:true,
			varname:"input",
			cache:false
		};
		var as = new bsn.AutoSuggest('thetoid', options);
	}

});

$(document).ready(function(){
	
	$("#sms_nr").keyup(function(){

		$("#smsnr_message").removeClass('colorerror').removeClass('colorsuccess').hide();
		var error = false;
		
		var text = {
			"el" : {
				"owe_amount" : "Το κόστος της αγοράς είναι ",
				"paypal_amount" : "Περιλαμβάνεται κόστος συναλλαγής PayPal ",
				"contact_us" : "Επικοινωνήστε μαζί μας για τον καθορισμό του κόστους αγοράς."
			},
			"en" : {
				"owe_amount" : "The cost of your order is ",
				"paypal_amount" : "Includes PayPal transaction cost ",
				"contact_us" : "Please contact us in order to determine the cost."
			}
		};

		if($.trim($('[name="sms_nr"]').val()).length == 0 || $.trim($('[name="sms_nr"]').val().replace(/\./g, '')) < 100)
			return false;

		if(isSmsNr($.trim($('[name="sms_nr"]').val()))){
			
			var sms_nr = $.trim($('[name="sms_nr"]').val()).replace(/\./g, '');
			var amount_message;
			var paypal_amount;

			if(sms_nr >= 100 && sms_nr <= 9999){
				amount = sms_nr * 0.045;
				amount = amount * 1.23;
				paypal_amount = amount;
				amount = amount * 1.035;
				amount = amount + 0.35;
				paypal_amount = amount - paypal_amount;
				amount = amount.toFixed(2);
				paypal_amount = paypal_amount.toFixed(2);
				amount_message = text[lang].owe_amount + amount + ' \u20ac. ' + text[lang].paypal_amount + paypal_amount + ' \u20ac.';
			}
			else if(sms_nr >= 10000 && sms_nr <= 49999){
				amount = sms_nr * 0.044;
				amount = amount * 1.23;
				paypal_amount = amount;
				amount = amount * 1.035;
				amount = amount + 0.35;
				paypal_amount = amount - paypal_amount;
				amount = amount.toFixed(2);
				paypal_amount = paypal_amount.toFixed(2);
				amount_message = text[lang].owe_amount + amount + ' \u20ac. ' + text[lang].paypal_amount + paypal_amount + ' \u20ac.';
			}
			else if(sms_nr >= 50000 && sms_nr <= 99999){
				amount = sms_nr * 0.042;
				amount = amount * 1.23;
				paypal_amount = amount;
				amount = amount * 1.035;
				amount = amount + 0.35;
				paypal_amount = amount - paypal_amount;
				amount = amount.toFixed(2);
				paypal_amount = paypal_amount.toFixed(2);
				amount_message = text[lang].owe_amount + amount + ' \u20ac. ' + text[lang].paypal_amount + paypal_amount + ' \u20ac.';
			}
			else if(sms_nr >= 100000 && sms_nr <= 249999){
				amount = sms_nr * 0.039;
				amount = amount * 1.23;
				paypal_amount = amount;
				amount = amount * 1.035;
				amount = amount + 0.35;
				paypal_amount = amount - paypal_amount;
				amount = amount.toFixed(2);
				paypal_amount = paypal_amount.toFixed(2);
				amount_message = text[lang].owe_amount + amount + ' \u20ac. ' + text[lang].paypal_amount + paypal_amount + ' \u20ac.';
			}
			else{
				amount = -1;
				amount_message = text[lang].contact_us;
				error = true;
			}

			if(error)
				$("#smsnr_message").addClass('colorerror').text(amount_message).fadeIn(200);
			else
				$("#smsnr_message").addClass('colorsuccess').text(amount_message).fadeIn(200);
		}

		return false;
	});
});

$(document).ready(function(){

	var text = {
		"el" : {
			"now" : "Αποστολή SMS",
			"later" : "Αποθήκευση SMS"
		},
		"en" : {
			"now" : "Send SMS",
			"later" : "Save SMS"
		}	
	};
		
	$('[name="sms_date"]').live('click', function(){
		
		if($('[name="sms_date"]:checked').val() == 'now'){
			$('#send_date').val('');
			$('#send_date').attr('disabled', true);
			document.getElementById("send_sms").childNodes[0].nodeValue = text[lang].now;
		}
		else if($('[name="sms_date"]:checked').val() == 'later'){
			$('#send_date').attr('disabled', false);
			document.getElementById("send_sms").childNodes[0].nodeValue = text[lang].later;
		}
	});
});

$(document).ready(function(){

	var text = {
		"el" : {
			"yes" : "Μήνυμα υπενθύμισης:",
			"no" : "Λεπτομέρειες γεγονότος:"
		},
		"en" : {
			"yes" : "Reminder message:",
			"no" : "Reminder details"
		}	
	};
	
	$('[name="send_sms"]').live('click', function(){
		
		if($('[name="send_sms"]:checked').val() == 'yes'){
			$('#from_row').css({'display':'table-row'});
			$('#reminder_date_row').css({'display':'table-row'});
			$('#thetoid_row').css({'display':'table-row'});
			$('#chars_smsno_row').css({'display':'table-row'});
			document.getElementById("msg_label").childNodes[0].nodeValue = text[lang].yes;
		}
		else if($('[name="send_sms"]:checked').val() == 'no'){
			$('#from_row').css({'display':'none'});
			$('#reminder_date_row').css({'display':'none'});
			$('#thetoid_row').css({'display':'none'});
			$('#chars_smsno_row').css({'display':'none'});
			document.getElementById("msg_label").childNodes[0].nodeValue = text[lang].no;
		}
	});
});
 
var set_coins = function (coins){
	
	$("#coinsno").text(coins);
}

function isValidUsername(username){

	if(username.match(/^[a-zA-Z0-9\-\.\_]+$/g))
		return true;
	else
		return false;
}

function isValidLabel(label){

	if(label.match(/^[a-zA-Z0-9\-\.]+$/g))
		return true;
	else
		return false;
}

function isPhone(s) {
	if (s.match(/^((\+\d+)|\d+)?(\s*\(\d+\))?(\s*\d+(-\d+)?)+$/g) )
		return true;
	else
		return false;
}

function isGreekPhone(s) {
	if(s.match(/^3069([0-9]{8})$/) || s.match(/^69([0-9]{8})$/) || s.match(/^[+]3069([0-9]{8})$/))
		return true;
	else
		return false;
}

function isMail(s) {
	if (s.match(/^.+@.+\..+$/g) )
		return true;
	else
		return false;
}

function isDate(s) {
	
	if (s.match(/^([0-2][0-9]|3[0-1])(-|\/)(0[0-9]|1[0-2])(-|\/)\d{4}$/g) )
		return true;
	else
		return false;

}

function isReminderDate(reminder_date){

	var days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	var year, month, day, date_parts = null;
	var rtrn = false;

	var decisionTree = {
		'dd/mm/yyyy' : {
			're': /^(\d{2})[./-](\d{2})[./-](\d{4})$/,
			'month': 2, 'day': 1, year: 3
		}
	};

	var test = decisionTree['dd/mm/yyyy'];

	if(test){
		date_parts = reminder_date.match(test.re);
		
		if(date_parts){
			year = date_parts[test.year];
			month = date_parts[test.month];
			day = date_parts[test.day];

			if(month == 02)
				month = 2;

			test = (month == 2 && isLeapYear() && 29 || days[month] || 0);
			rtrn = 1 <= day && day <= test;
		}
	}
	
	function isLeapYear(){
		return (year % 4 != 0 ? false : ( year % 100 != 0? true: ( year % 1000 != 0? false : true)));
	}

	return rtrn;
}

function isReminderTime(reminder_time){

	re = /^(\d{2}):(\d{2})$/;

	if(regs = reminder_time.match(re)){

		if(regs[1] > 23)
			return false;

		if(regs[2] > 59)
			return false;
	}
	else
		return false;

	return true;
}

function isInteger(s) {
      var i;

      for (i = 0; i < s.length; i++) {
         var c = s.charAt(i);
         if (!((c >= "0") && (c <= "9"))) return false;
      }

      return true;
}

function isSmsNr(str) {
	
	return /^[1-9][0-9]{0,2}([\.]?[0-9]{3})*$/.test(str);
}

function menu_pic(nid, pic_url) {
	document.getElementById(nid).firstChild.src = pic_url;
	return true;
}

function setExcelFilename(name){

	ie = name.split('\\');

	if(ie.length > 1)
		document.getElementById('fileName').value = ie[ie.length - 1];
	else
		document.getElementById('fileName').value = name;
}

function UploadExcelCompleted(data, msg, error) {

	if(error == 'login'){
		$("#absnotice").text(msg);
		document.location = './?action=main';
	}
	else if(error == '1'){
		$("#absnotice").text(msg);
	}
	else if(error == '0'){
		$("#absnotice").text(msg);

		if(data == 'no_group')
			prepareAndCall("divs/viewcontacts.php", '');

		if(data.search('group_') != -1){
			var gr_id = data.split('_');
			gr_id = gr_id[1];
			prepareAndCall("divs/viewgroups.php", "gr_id="+gr_id);
		}
	}

	setTimeout(function() {$.unblockUI();} ,500);

	setTimeout( function() {
			$("#absnotice").show().fadeTo(1000,0.80, function () { 
				setTimeout(function(){$("#absnotice").fadeOut()},1000);
				});
			}, 500);
}

function initializeDatepicker(){

	var text = {
		"el" : {
			"closeText" : "Επιλογή",
			"currentText" : "Σήμερα",
			"prevText" : "Προηγούμενος μήνας",
			"nextText" : "Επόμενος μήνας",
			"dayNames" : ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"],
			"dayNamesMin" : ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"],
			"monthNamesShort" : ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"],
			"buttonText" : "Επιλέξτε ημερομηνία και ώρα"
		},
		"en" : {
			"closeText" : "Done",
			"currentText" : "Today",
			"prevText" : "Previous month",
			"nextText" : "Next month",
			"dayNames" : ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
			"dayNamesMin" : ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
			"monthNamesShort" : ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
			"buttonText" : "Select date and time"
		}	
	};
	
	$('.datepicker').datepicker({
		duration: '',
		showTime: true,
		changeMonth: true,
		changeYear: true,
		stepMinutes: 1,
		stepHours: 1,
		time24h: true,
		constrainInput: false,
		closeText: text[lang].closeText,
		currentText: text[lang].currentText,
		prevText: text[lang].prevText,
		nextText: text[lang].nextText,
		monthNamesShort: text[lang].monthNamesShort,
		dayNamesMin: text[lang].dayNamesMin,
		dayNames: text[lang].dayNames,
		buttonImage : 'images/calendar_icon.png',
		buttonText : text[lang].buttonText,
		showButtonPanel: true,
		buttonImageOnly: true,
		showOn: 'both',
		dateFormat: 'dd/mm/yy'
	});

	$('#send_date').datepicker({
		duration: '',
		showTime: true,
		changeMonth: true,
		changeYear: true,
		stepMinutes: 1,
		stepHours: 1,
		time24h: true,
		constrainInput: false,
		closeText: text[lang].closeText,
		currentText: text[lang].currentText,
		prevText: text[lang].prevText,
		nextText: text[lang].nextText,
		monthNamesShort: text[lang].monthNamesShort,
		dayNamesMin: text[lang].dayNamesMin,
		dayNames: text[lang].dayNames,
		dateFormat: 'dd/mm/yy'
	});
}	

function initializeCalendar(){

	$('.date_has_event').each(function () {
		var distance = 10;
		var time = 250;
		var hideDelay = 500;
		var hideDelayTimer = null;
		var beingShown = false;
		var shown = false;
		var trigger = $(this);
		var popup = $('.reminders ul', this).css('opacity', 0);

		// set the mouseover and mouseout on both element
		$([trigger.get(0), popup.get(0)]).mouseover(function () {
			// stops the hide event if we move from the trigger to the popup element
			if (hideDelayTimer) clearTimeout(hideDelayTimer);

			// don't trigger the animation again if we're being shown, or already visible
			if (beingShown || shown) {
				return;
			} else {
				beingShown = true;

				// reset position of popup box
				popup.css({
					top: 20,
					left: -76,
					height: popup.height(),
					display: 'block' // brings the popup back in to view
				})

				// (we're using chaining on the popup) now animate it's opacity and position
				.animate({
					bottom: '+=' + distance + 'px',
					opacity: 1
				}, time, 'swing', function() {
					// once the animation is complete, set the tracker variables
					beingShown = false;
					shown = true;
				});
			}
		}).mouseout(function () {
			// reset the timer if we get fired again - avoids double animations
			if (hideDelayTimer) clearTimeout(hideDelayTimer);

			// store the timer so that it can be cleared in the mouseover if required
			hideDelayTimer = setTimeout(function () {
				hideDelayTimer = null;
				popup.animate({
					bottom: '-=' + distance + 'px',
					opacity: 0
				}, time, 'swing', function () {
					// once the animate is complete, set the tracker variables
					shown = false;
					// hide the popup entirely after the effect (opacity alone doesn't do the job)
					popup.css('display', 'none');
				});
			}, hideDelay);
		});
	});
}

function initializeCalendarMoreLess(){

	var text = {
		"el" : {
			"more" : "περισσότερα",
			"less" : "λιγότερα"
		},
		"en" : {
			"more" : "more",
			"less" : "less"
		}	
	};

	$(".hidden").hide();
	$(".show").html("&nbsp;&nbsp;" + text[lang].more);
	
	$(".show").click(function() {
		
		if(this.className.indexOf('clicked') != -1){

			var cell_has_event = $(this).parent().parent().parent().parent().get(0);
			var popup = $('.reminders ul', cell_has_event);
			var new_height = (popup.height() - $(this).prev().height()) + 10;
			popup.height(new_height + 'px');

			$(this).prev().fadeOut(50);
			$(this).removeClass('clicked');
			$(this).html("&nbsp;&nbsp;" + text[lang].more);
		}
		else{
			var cell_has_event = $(this).parent().parent().parent().parent().get(0);
			var popup = $('.reminders ul', cell_has_event);
			var new_height = popup.height() + $(this).prev().height() + 10;
			popup.height(new_height + 'px');

			$(this).addClass('clicked');
			$(this).prev().fadeIn(50);
			$(this).html("&nbsp;&nbsp;" + text[lang].less);
		}
	});
}

$(document).ready(function(){
	initializeDatepicker();
	initializeCalendar();
	initializeCalendarMoreLess();
});

