var restrictMsisdnFormatOnKeyDown = function (e) {
	if ($(this).val().length < 3 && e.keyCode === 0x08) {
		return false;
	}
	if (e.keyCode === 0x08 //bkspace
			|| e.keyCode === 0x09 //tab
			|| e.keyCode === 0x11 //ctrl
			|| (e.keyCode >= 0x60 && e.keyCode <= 0x69) //numpad digits 
			|| (e.keyCode >= 0x30 && e.keyCode <= 0x39) //keyboard digits
			|| e.keyCode === 0x25 || e.keyCode === 0x27 //arrows
			|| (e.keyCode === 0x56 && e.ctrlKey)) //ctrl+v 
	{
		return true;
	}
	return false;
};

var restrictMsisdnFormatOnKeyUp = function () {
	var value = $(this).val();
	if (!/\+77.*/.test(value)) {
		$(this).val('+77');
		return false;
	}
	value = value.replace(/[^0-9\+]+/, '');
	$(this).val(value);
};

var restrictMsisdnFormat = function (input) {
	input.keydown(restrictMsisdnFormatOnKeyDown);
	input.keyup(restrictMsisdnFormatOnKeyUp);
};


function show_buy(id, title, code, price, artist, path)
{
	$("#" + id).createDialog({addr: 'popup/buy.jsp', 
		                      data: {id: id, title: title, code: code, price: price, artist: artist, path: path}});
}

function show_send_password(id)
{
	$('#'+id).createDialog({addr: 'popup/send_password.jsp'});
}

function show_player(id, title, artist, path)
{
	$("#" + id).createDialog({addr: 'popup/player.jsp', 
		                      data: {id: id, title: title, artist: artist, path: path}});
}

function show_present(id, title, code, price, artist, path)
{
	$('#' + id).createDialog({addr: 'popup/present.jsp', 
        data: {title: title, code: code, price: price, artist: artist, path: path}});
}

function show_delete_confirmation(elem_prefix, id, artist, title)
{
	$('#'+elem_prefix).createDialog({
		addr: 'popup/confirm_delete_melody.jsp', 
		data: {
			id: id,
			artist: artist,
			title: title
		}
	});
}

function show_delete_rule(ruleId, type){
	$('#delete_rule_'+ruleId).createDialog({
		addr: 'popup/confirm_delete_rule.jsp',
		data: {
			id: ruleId,
			type: type
		}
	});
}

function show_delete_number(id, name, number){
	$('#'+id).createDialog({
		addr: 'popup/confirm_delete_subscriber.jsp',
		data: {
			id: id,
			name: name,
			number: number
		}
	});
}

function show_delete_group(id, name){
	$('#'+id).createDialog({
		addr: 'popup/confirm_delete_group.jsp',
		data: {
			id: id,
			name: name
		}
	});
}

function show_rules_add_number()
{
	$("#rules_add_number").createDialog({addr: 'popup/add_number.jsp'});
}

function show_rules_add_group()
{
	$("#rules_add_group").createDialog({addr: 'popup/add_group.jsp'});
}

function show_rules_add_rule(id, param, array)
{
	$("#"+id).createDialog({addr: 'popup/add_rule.jsp', data: {id: id, param: param, array: array}});
}

function show_add_group_number(groupid)
{
	$("#"+groupid).createDialog({addr: 'popup/add_group_number.jsp', data: {groupid: groupid}});
}

function show_login(){
	$('#reg-container').createDialog({addr: 'popup/login.jsp'});
}

function submit_field(myfield, e)
{
    var keycode;
    
    if (window.event)
        keycode = e.keyCode;
    else if (e.which)
        keycode = e.which;
    else
        return true;

    if (keycode == 13)
    {
    	$(myfield).submit();
        return false;
    }
    else
        return true;
}

function send_password()
{
	$("#jDialogProgressBar").show();
	$.ajax({
		type: 'POST',
		data: {number: $("#send_to_number").val(), action: "send"},
		url: 'Autent',
		dataType: 'json',
		success: function(data){

			$('#send_button').remove();
			$("#jDialogProgressBar").hide();
			$("#send_error").html(data.msg+"<br><br>");
		},
		error: function(data){
			ajax_error();
		}
	});
}

function buy(id)
{
	$("#jDialogProgressBar").show();
	$.ajax({
		type: 'POST',
		data: {id: id, action: "buy"},
		url: 'Melody',
		dataType: 'json',
		success: function(data){
			$("#jDialogProgressBar").hide();
			$("#buy_button").hide();
			$("#buy_error").html("<br><br>"+data.msg+"<br><br>");
		},
		error: function(data){
			ajax_error();
		}
	});
}

function set_melody_visibility(hiddenid)
{
	var visible = !$('#'+hiddenid).is('.LabelNotSelected');
	$.ajax({
		type: 'POST',
		data: {id: hiddenid, action: "set_visibility", visible: visible},
		url: 'Melody',
		dataType: 'json',
		success: function(data){
			if (!visible) {
				$("#"+hiddenid).addClass('LabelSelected').removeClass('LabelNotSelected');
			}
			else {
				$("#"+hiddenid).removeClass('LabelSelected').addClass('LabelNotSelected');
			}
		},
		error: function(data){
			ajax_error();
		}
	});
}

function set_melody_active(id)
{
	var active = $('#'+id).is('.LabelNotSelected');
	$.ajax({
		type: 'POST',
		data: {id: id, action: "set_active", active: active},
		url: 'Melody',
		dataType: 'json',
		success: function(data){
			if (active) {
				$("#"+id).addClass('LabelSelected').removeClass('LabelNotSelected');
			}
			else {
				$("#"+id).removeClass('LabelSelected').addClass('LabelNotSelected');
			}
		},
		error: function(data){
			ajax_error();
		}
	});
}

function delete_melody(id)
{
	$.ajax({
		type: 'POST',
		data: {id: id, action: "delete"},
		url: 'Melody',
		dataType: 'json',
		success: function(data){
			location.reload();
		},
		error: function(data){
			ajax_error();
		}
	});
}

function change_random_mode(successCallback)
{
	$.ajax({
		type: 'POST',
		data: {action: "change_random"},
		url: 'User',
		dataType: 'json',
		success: successCallback,
		error: function(data){
			ajax_error();
		}
	});
}

function change_playlist_mode(param)
{
	$.ajax({
		type: 'POST',
		data: {action: "change_playlist_mode", param: param},
		url: 'User',
		dataType: 'json',
		success: function(data){
			if(param == "on") {
				$("#melody_playlist_off").hide();
				$("#melody_playlist_on").show();
				$(".personal_table_header_music_playlist_playback_to_hide").show();
				$(".personal_table_body_to_hide").show();
				$(".horizontal_separator_to_hide").show();
			}
			else if(param == "off"){
				$("#melody_playlist_off").show();
				$("#melody_playlist_on").hide();
				$(".personal_table_header_music_playlist_playback_to_hide").hide();
				$(".personal_table_body_to_hide").hide();
				$(".horizontal_separator_to_hide").hide();
			}
			//location.reload(true);

		},
		error: function(data){
			ajax_error();
		}
	});
}

function add_number()
{
	$("#jDialogProgressBar").show();
	$.ajax({
		type: 'POST',
		data: {number: $("#user_number").val(), name: $("#user_name").val(), action: "add_number"},
		url: 'User',
		dataType: 'json',
		success: function(data){
			$("#jDialogProgressBar").hide();
			if(data.msg)
				$("#add_error").html(data.msg);
			else {
				$.closeDialog();
				location.reload();
			}
		},
		error: function(data){
			ajax_error();
		}
	});
}

function add_group_number(group)
{
	$("#jDialogProgressBar").show();
	$.ajax({
		type: 'POST',
		data: {group: group, number: $("#user_number").val(), action: "add_group_number"},
		url: 'User',
		dataType: 'json',
		success: function(data){
			$("#jDialogProgressBar").hide();
			if(data.msg)
				$("#add_error").html(data.msg+"<br><br>");
			else {
				$.closeDialog();
				location.reload();
			}
		},
		error: function(data){
			ajax_error();
		}
	});
}

function add_group()
{
	$("#jDialogProgressBar").show();
	$.ajax({
		type: 'POST',
		data: {name: $("#group_name").val(), action: "add_group"},
		url: 'User',
		dataType: 'json',
		success: function(data){
			$("#jDialogProgressBar").hide();
			if(data.msg)
				$("#add_error").html(data.msg+"<br><br>");
			else {
				$.closeDialog();
				location.reload();
			}
		},
		error: function(data){
			ajax_error();
		}
	});
}

function delete_number(id)
{
	$.ajax({
		type: 'POST',
		data: {id: id, action: "delete_number"},
		url: 'User',
		dataType: 'json',
		success: function(data){
			location.reload();
		},
		error: function(data){
			ajax_error();
		}
	});
}

function delete_group_number(id)
{
	$.ajax({
		type: 'POST',
		data: {id: id, action: "delete_group_number"},
		url: 'User',
		dataType: 'json',
		success: function(data){
			$("#parent_"+id).empty();
		},
		error: function(data){
			ajax_error();
		}
	});
}

function add_rule(groupId, param, array)
{
	$.ajax({
		type: 'POST',
		data: {groupId: groupId,
		       param: param,
		       array: array,
			   melId: $("#mel_id option:selected").val(),
			   ruleType: $("#rule_type_id option:selected").val(),
			   dayOfWeek: $("#day_of_week option:selected").val(),
			   timeStartHour: $("#time_start_hour option:selected").val(),
			   timeStartMin: $("#time_start_min option:selected").val(),
			   timeEndHour: $("#time_end_hour option:selected").val(),
			   timeEndMin: $("#time_end_min option:selected").val(),
			   action: "add_rule"},
		url: 'User',
		dataType: 'json',
		success: function(data){
			$("#jDialogProgressBar").hide();
			if(data.msg)
				$("#add_error").html(data.msg+"<br><br>");
			else {
				$.closeDialog();
				location.reload();
			}
		},
		error: function(data){
			ajax_error();
		}
	});
}

function delete_rule(ruleId, type)
{
	$.ajax({
		type: 'POST',
		data: {
			ruleId: ruleId,
			type: type,
			action: "delete_rule"
		},
		url: 'User',
		dataType: 'json',
		success: function(data){
		    location.reload();
		},
		error: function(data){
			ajax_error();
		}
	});
}

function ajax_error(){
	alert("Ошибка связи");
}
