Файл: js/core.js
Строк: 534
<?php
$(function() { // Запуск скриптов при полной загрузке
/*
$('a').click(function(){
$('#logo img').attr('src','/img/logoload.gif'); //прелоадер при клике на ссылку
setTimeout(function(){
$('#logo img').attr('src','/img/logo.jpg');
},500);//если ссылка пустая
});
//багнутая фигня
*/
OpenedTab = '';
OpenedTab = getCookie("OpenedTab");
if(OpenedTab!=''){
$('.nav-tabs li a[href="'+OpenedTab+'"]').tab('show');
if(OpenedTab=='#tab4') CoreJs.TabTasks();
}
$('.nav-tabs li a').click(function(event){
setCookie("OpenedTab", $(this).attr('href'), "Mon, 01-Jan-2134 00:00:00 GMT", "/");
});
$('#auth').submit(CoreJs.Auth); //авторизация
$('#reg').submit(CoreJs.Reg); //регистрация
$("#datepicker").birthdaypicker({ //дейтпикер
dateFormat: "littleEndian",
monthFormat: "long",
placeholder: false,
hiddenDate: false,
futureDates: true,
maxYear: 2000,
maxAge: 110,
defaultDate: "1-1-2000"
});//дейтпикер
$('#reg [type=submit]').attr("disabled", true); //отключить сабмит при реге
$('#addtask [type=submit]').attr("disabled", true); //отключить сабмит при добавлении
$("#rules").parent().click(function(){ //При клике на правила активировать
if($("#rules").attr("checked")=="checked"){
$('#reg [type=submit]').removeAttr("disabled");
$('#addtask [type=submit]').removeAttr("disabled");
} else {
$('#reg [type=submit]').attr("disabled", true);
$('#addtask [type=submit]').attr("disabled", true);
}
});//При клике на правила активировать
$('#edit').submit(CoreJs.Edit); //редактирование акка
$('#social').change(CoreJs.SocialChange); //динамическое изменение социалок при добавлении
$('#addtask').submit(CoreJs.AddTask); //добавить задание
$('#tabo4').click(CoreJs.TabTasks);
});//запуск офф
Noty = {};
Noty.PlaySound = function(){
audioId = GenRand();
Noty.audioElement = [];
Noty.audioElement[audioId] = document.createElement('audio');
Noty.audioElement[audioId].setAttribute('src', '/notify.mp3');
Noty.audioElement[audioId].play();
setTimeout(function(){
$(Noty.audioElement[audioId]).remove();
},1000);
}
Noty.Timeout = function(id){
Noty.Timeout[GenRand()] = setTimeout(function(){
Noty.Free(id);
},5000);
}
Noty.Show = function(color,text,type){
Noty.PlaySound();
clearTimeout(Noty.Timeout);
if(type==null) type = 'info';
Noty.Type = 'Уведомление';
if(type=='error') Noty.Type = 'Ошибка';
Noty.Id = 'Noty-'+GenRand();
Noty.Html = '<div class="noty noty'+color+'" id="'+Noty.Id+'" style="display:none;"><span>'+Noty.Type+'</span>'+text+'</div>';
$('.notyalert').append(Noty.Html);
$('#'+Noty.Id).fadeIn(600);
Noty.Timeout(Noty.Id);
$('#'+Noty.Id).click(function(event){
Noty.Free($(this).attr('id'));
});
}
Noty.Free = function(id){
if(id=='all'){
$('.noty').fadeOut(600,function(){
$('.noty').remove();
});
} else {
$('#'+id).fadeOut(600,function(){
$('#'+id).remove();
});
}
}
CoreJs = {};
CoreJs.addSetPrice = function(obj){
if(!obj){
Selected = 'like';
} else {
Selected = $(obj).find("option:selected").val();
}
$.post("/ajax/tasks/getprice", {'id': Selected}).done(function(data) {
$('#price').val(data);
});
}
CoreJs.Auth = function() {
showPreloader();
$.post("/ajax/profile/auth", $("#auth").serialize()).done(function(data) {
v = JSON.parse(data);
if(v=='ok'){
Noty.Show('green','Авторизация успешна');
setTimeout(function(){
window.location = '/';
},1000);
} else {
Noty.Show('red','Логин или пароль неправильный','error');
}
hidePreloader();
});
return false;
}
CoreJs.TabTasks = function(){
$.post("/ajax/userblock/tasks").done(function(data) {
v = JSON.parse(data);
$('#tab4').html('<ul class="home-menu" id="SmallTasksList"></ul>');
if(v.responce==null){
$('#SmallTasksList').append('<li><a href="/tasks/add"><i class="home-earn"></i>Добавить задание</a></li>');
} else {
$.each(v.responce, function() {
if(this.bal>0){
TaskType = '';
if(this.social=='vk' && this.type=='like') TaskType = '<i class="home-like"></i>Мне нравится';
if(this.social=='vk' && this.type=='repost') TaskType = '<i class="home-repost"></i>Репост записи';
if(this.social=='vk' && this.type=='group') TaskType = '<i class="home-group"></i>Сообщество';
if(this.social=='vk' && this.type=='friend') TaskType = '<i class="home-follow"></i>Подписка/Друзья';
if(this.social=='tw' && this.type=='follow') TaskType = '<i class="home-follow"></i>Фолловеры';
if(this.social=='tw' && this.type=='retweet') TaskType = '<i class="home-retwit"></i>Ретвиты';
if(this.social=='tw' && this.type=='favorite') TaskType = '<i class="home-fav"></i>Избранное';
if(this.social=='fb' && this.type=='like') TaskType = '<i class="home-fblike"></i>Мне нравится';
if(this.social=='fb' && this.type=='repost') TaskType = '<i class="home-repost"></i>Репост записи';
if(this.social=='fb' && this.type=='group') TaskType = '<i class="home-fbgr"></i>Сообщество';
Alll = this.count;
Informer = '<span id="informer" rel="tooltip" data-placement="top" data-original-title="'+this.done+' из '+Alll+'">'+this.done+' / '+Alll+'</span>';
} else {
Informer = '<span id="informerred" rel="tooltip" data-placement="top" data-original-title="'+this.done+' из '+Alll+'">Завершено!</span>';
}
$('#SmallTasksList').append('<li><a href="/task/'+this.id+'">'+TaskType+Informer+'</a></li>');
});
}
});
}
CoreJs.Reg = function() {
showPreloader();
$('#reg [type=submit]').attr("disabled", true);
$.post("/ajax/register", $("#reg").serialize()).done(function(data) {
//alert(data);
$('#reg input').parent().parent().removeClass('error');
v = JSON.parse(data);
if(v.responce=='ok'){
window.location = '/page/success';
LoadCaptcha();
} else {
LoadCaptcha();
$('#reg [type=submit]').removeAttr("disabled");
$('#reg #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Проверьте поля на правильность.</div>');
$.each(v.responce, function(key, value){
if(value=='fillin') $('#reg #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Заполните все поля.</div>');
if(value=='login2') $('#reg #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Логин должен быть от 5 до 15 символов.</div>');
if(value=='password2') $('#reg #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Пароли не совпадают.</div>');
if(value=='login') $('#reg input[name=login]').parent().parent().addClass('error');
if(value=='login2') $('#reg input[name=login]').parent().parent().addClass('error');
if(value=='password') $('#reg input[name=password]').parent().parent().addClass('error');
if(value=='password2') $('#reg input[name=password2]').parent().parent().addClass('error');
if(value=='email1') $('#reg input[name=email]').parent().parent().addClass('error');
if(value=='email2') $('#reg input[name=email]').parent().parent().addClass('error');
if(value=='name') $('#reg input[name=name]').parent().parent().addClass('error');
if(value=='lastname') $('#reg input[name=lastname]').parent().parent().addClass('error');
if(value=='captcha') $('#reg input[name=seckey]').parent().parent().addClass('error');
});
}
hidePreloader();
});
return false;
}
CoreJs.Edit = function() {
showPreloader();
$('#edit [type=submit]').attr("disabled", true);
$.post("/ajax/profile/edit", $("#edit").serialize()).done(function(data) {
//alert(data);
$('#edit input').parent().parent().removeClass('error')
v = JSON.parse(data);
if(v.responce=='ok'){
$('#edit #status').html('<div class="alert alert-success fade in"><strong>Готово!</strong> Информация успешно сохранена.</div>');
setTimeout(function(){
window.location.reload();
},1000);
} else {
$('#edit #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Проверьте поля на правильность.</div>');
$.each(v.responce, function(key, value){
if(value=='fillin') $('#edit #status').html('<strong>Ошибка!</strong> Заполните все поля.</div>');
if(value=='name') $('#edit input[name=name]').parent().parent().addClass('error');
if(value=='lastname') $('#edit input[name=lastname]').parent().parent().addClass('error');
if(value=='captcha') $('#edit input[name=seckey]').parent().parent().addClass('error');
});
}
hidePreloader();
$('#edit [type=submit]').removeAttr("disabled");
});
return false;
}
CoreJs.SocialChange = function() {
var options = '';
if($(this).val() == 'tw') {
options = '<option value="follow">Читать</option><option value="retweet">Ретвит</option><option value="favorite">Добавить в избранное</option>';
}
else if ($(this).val() == 'vk'){
options = '<option value="like">Поставить лайк</option><option value="repost">Репост записи</option><option value="friend">Добавить в друзья</option><option value="group">Вступить в сообщество</option>';
}
else if ($(this).val() == 'fb'){
options = '<option value="like">Поставить лайк</option><option value="repost">Репост записи</option><option value="group">Вступить в сообщество</option>';
}
$('#type').html(options);
}
CoreJs.ConfirmAdd = function(){
$('#AddModal').modal('hide');
$.post("/ajax/tasks/add", $("#addtask").serialize()).done(function(data) {
v = JSON.parse(data);
if(v.responce=='ok'){
window.location = '/tasks/';
} else {
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> НЛО прилетело, и оставило эту ошибку здесь.</div>');
}
});
return false;
}
CoreJs.ConfirmFastOrder = function(){
$('#AddModal').modal('hide');
$.post("/ajax/tasks/fastorder", $("#addtask").serialize()).done(function(data) {
v = JSON.parse(data);
if(v.responce=='err'){
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Невозможно инициализировать оплату.</div>');
} else {
window.location = v.responce;
}
});
return false;
}
CoreJs.AddTask = function() {
showPreloader();
$('#addtask [type=submit]').attr("disabled", true);
//$('#addtask #status').html('');
$.post("/ajax/tasks/check", $("#addtask").serialize()).done(function(data) {
$('#addtask input').parent().parent().removeClass('error');
v = JSON.parse(data);
if(v.responce=='ok' || v.responce[0]=='ok'){
if($.isNumeric(v.responce[1])){
$('#AddModal #ConfirmFastOrder').html(v.responce[1]);
} else {
steelballs = $('#addtask input[name=col]').val()*$('#addtask input[name=price]').val();
$('#AddModal #ConfirmCol').html(steelballs);
}
$('#AddModal').modal('show');
LoadCaptcha();
} else {
LoadCaptcha();
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Проверьте поля на правильность.</div>');
$.each(v.responce, function(key, value){
if(value=='fillin') $('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Заполните все поля.</div>');
if(value=='url') {
$('#addtask input[name=url]').parent().parent().addClass('error');
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Неправильный URL, или неправильно выбран тип задания.<br /><i>Если всё указано правильно, проверьте настройки приватности. Возможно, она не доступна для пользователей.</i></div>');
} else if(value=='bal') {
$('#addtask input[name=col]').parent().parent().addClass('error');
$('#addtask input[name=price]').parent().parent().addClass('error');
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Не хватает баллов.</div>');
} else if(value=='col') {
$('#addtask input[name=col]').parent().parent().addClass('error');
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Количество указано неправильно.</div>');
} else if(value=='col2') {
$('#addtask input[name=col]').parent().parent().addClass('error');
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Минимальный заказ - 10.</div>');
} else if(value=='price') {
$('#addtask input[name=price]').parent().parent().addClass('error');
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Цена указана неправильно. Минимальная цена - 2 балла, максимальная - 50 баллов.</div>');
} else if(value=='type') {
$('#addtask input[name=col]').parent().parent().addClass('error');
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> Тип задания указан неправильно..</div>');
} else if(value=='email') {
$('#addtask input[name=email]').parent().parent().addClass('error');
$('#addtask #status').html('<div class="alert fade in"><strong>Ошибка!</strong> E-mail указан неверно.</div>');
}
});
}
$('#addtask [type=submit]').removeAttr("disabled");
hidePreloader();
});
return false;
}
/*
ВЫПОЛНЕНИЕ ЗАДАНИЯ
*/
function CheckTask(){
clearInterval(newWinInt);
showPreloader();
$('#Check').attr('disabled',true);
$.post("/ajax/earn/checktask", {id:TaskId}).done(function(data) {
//alert(data);
var a = JSON.parse(data);
if(a.responce=='ok'){
$('#Check').attr('data-placement','top');
$('#Check').attr('data-original-title','Задание выполнено');
$('#Check').attr('disabled',true);
$('#Perform').attr('disabled',true);
$('#Check').removeClass('btn-danger');
$('#Check').addClass('btn-success');
$('#Check').html('Выполнено');
$('#Next').html('Далее');
Noty.Show('green','На Ваш счёт зачислено '+TaskPrice+' балл. за выполнение задания #'+TaskId);
} else {
$('#Check').attr('data-placement','top');
$('#Check').attr('data-original-title','Задание не выполнено');
$('#Check').removeAttr('disabled');
$('#Check').removeClass('btn-primary');
$('#Check').addClass('btn-danger');
$('#Check').html('Не выполнено');
$('#Next').attr('disabled',false);
if(a.responce=='done'){
Noty.Show('blue','Вы уже выполняли задание #'+TaskId,'error');
$('#Check').html('Выполнено');
} else {
Noty.Show('red','Вы не выполнили задание или произошла ошибка','error');
}
}
hidePreloader();
});
}
function SkipTask(){
$('#Next').attr('disabled',true);
$.post("/ajax/earn/skiptask", {id:TaskId}).done(function(data) {
LoadTask();
$('#Next').removeAttr('disabled');
});
}
function OpenUrl(){
newWin = window.open(TaskUrl,'Выполните задание','width=860,height=600,resizable=yes,scrollbars=yes,status=yes');
newWinInt = setInterval(function() {
if(newWin.closed) {
clearInterval(newWinInt);
CheckTask();
}
}, 100);
}
function LoadTask(){
showPreloader();
$.post("/ajax/earn/loadtask", {type:TaskType,social:TaskSocial}).done(function(data) {
//alert(data);
var a = JSON.parse(data);
if(a.id=='0'){
$('.cont').html('<div class="alert fade in">Заданий больше нет! Может быть Вы хотите <a href="/page/earn">выполнить другие задания</a>?</div>');
} else {
$('#djigit').show();
$('#Perform').removeAttr('disabled');
$('#Check').removeAttr('disabled');
$('#Check').removeAttr('data-original-title');
$('#Check').removeAttr('data-original-title');
$('#Check').removeClass('btn-danger');
$('#Check').removeClass('btn-success');
$('#Check').html('Проверить');
$('#Check').addClass('btn-primary');
$('#Next').html('Пропустить');
TaskId = a.id;
TaskPrice = a.pay;
TaskUrl = '/ajax/tasks/open?id='+TaskId;
$('#Date').html(a.date);
$('#Pay').html(TaskPrice);
$('#TaskId').html(TaskId);
$('#TaskLink').attr('href','/task/'+a.id);
$('#Col').html( Math.round(a.bal/a.pay) );
$('#CreatorName').html(a.uname);
$('#CreatorName').attr('href','/u'+a.uid);
$('#CreatorAvatar').attr('src',a.photo);
alll = parseInt(a.done)+parseInt(a.count);
$('.progress').attr('data-original-title','Выполнено '+a.done+' из '+alll+' заданий');
$('.progress .bar').css('width',Math.round( (a.done*100)/alll )+'%');
$('.progress .bar').html(Math.round( (a.done*100)/alll )+'%');
if(a.social=='vk' && a.type=='like') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", поставьте лайк, закройте окно, и нажмите "Проверить".</div>');
if(a.social=='vk' && a.type=='repost') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", сделайте репост, закройте окно, и нажмите "Проверить".</div>');
if(a.social=='vk' && a.type=='friend') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", добавьте пользователя в друзья, закройте окно, и нажмите "Проверить".</div>');
if(a.social=='vk' && a.type=='group') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", вступите в сообщество, закройте окно, и нажмите "Проверить".</div>');
if(a.social=='tw' && a.type=='follow') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", зафолловите пользователя, закройте окно, и нажмите "Проверить".</div>');
if(a.social=='tw' && a.type=='retweet') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", ретвитните твит, закройте окно, и нажмите "Проверить".</div>');
if(a.social=='tw' && a.type=='favourite') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", добавьте в избранное твит, закройте окно, и нажмите "Проверить".</div>');
if(a.social=='fb' && a.type=='like') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", поставьте лайк, закройте окно, и нажмите "Проверить".</div>');
if(a.social=='fb' && a.type=='repost') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", сделайте репост, закройте окно, и нажмите "Проверить".</div>');
if(a.social=='fb' && a.type=='friend') $('#Helper').html('<div class="alert alert-info fade in">Нажмите на кнопку "Выполнить", добавьте пользователя в друзья, закройте окно, и нажмите "Проверить".</div>');
}
hidePreloader();
});
}
/*
ФУНКЦИИ
*/
function showPreloader(){
$('#Ajax').fadeIn(200);
}
function hidePreloader(){
$('#Ajax').fadeOut(200);
}
function LoadCaptcha(){
$('#secure').attr('src','/secure.php?ssa='+GenRand());
}
function GenRand()
{
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < 10; i++ )
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
function setCookie (name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
function getCookie(name) {
var cookie = " " + document.cookie;
var search = " " + name + "=";
var setStr = null;
var offset = 0;
var end = 0;
var setStr = 0;
if (cookie.length > 0) {
offset = cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = cookie.indexOf(";", offset)
if (end == -1) {
end = cookie.length;
}
setStr = unescape(cookie.substring(offset, end));
}
}
return(setStr);
}
function recovery() {
var value = $('.recovery_val').val();
if(!value) {
Noty.Show('red','Пожалуйста, укажите Email.','error');
} else if(!value.match(/^[0-9a-z_-.]+@[0-9a-z-.]+.[a-z]{2,6}$/)) {
Noty.Show('red','Неверный формат Email адреса.','error');
} else {
$.post("/ajax/recovery/send", {'email':value}).done(function(data) {
if(data=='ok'){
Noty.Show('green','На ваш email отправлено письмо с подтверждением.');
} else {
Noty.Show('red','Ошибка. Возможно, вы уже восстанавливали пароль. Восстанавливать пароль можно раз в сутки.','error');
}
});
}
}
?>