game/scripts/psi.js

289 lines
12 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var psi = {
text:function(text) {
var r = '';
return r;
},
testForm:function() {
$.ajax({
type:"POST",
dataType: "json",
url:'register.php' ,
data:{
'ajax_reg':true,
'id':$('#reg_id').val(),
'login':$('#register_login' + $('#reg_id').val()).val(),
'pass':$('#register_pass' + $('#reg_id').val()).val(),
'pass2':$('#register_pass2' + $('#reg_id').val()).val(),
'sex':$('#psi_register_sex' + $('#reg_id').val()).val(),
'dd':$('#register_dd' + $('#reg_id').val()).val(),
'mm':$('#register_mm' + $('#reg_id').val()).val(),
'yy':$('#register_yyyy' + $('#reg_id').val()).val(),
'mail':$('#register_mail' + $('#reg_id').val()).val(),
'align':$('#register_align' + $('#reg_id').val()).val(),
'rules':$('#psi_register_rules' + $('#reg_id').val()).val(),
'keycode':$('#register_key' + $('#reg_id').val()).val(),
'refu':$('#refu' + $('#reg_id').val()).val(),
'klass':$('#psi_klass' + $('#reg_id').val()).val()
} ,
success:function(data) {
psi.testFormData(data);
}
});
},
testFormData:function(data) {
//login
if( data[0] == 0 ) {
$('#register_login' + $('#reg_id').val()).attr('class','psi_input1_none');
$('#login_error_text').html('');
$('#login_error').css({ 'display':'none' });
}else if( data[0] == 1 ) {
$('#register_login' + $('#reg_id').val()).attr('class','psi_input1_green');
$('#login_error_text').html('');
$('#login_error').css({ 'display':'none' });
}else{
$('#register_login' + $('#reg_id').val()).attr('class','psi_input1_red');
$('#login_error_text').html(data[0]);
$('#login_error').css({ 'display':'' });
}
//pass
if( data[1] == 0 ) {
$('#register_pass' + $('#reg_id').val()).attr('class','psi_input1_none');
$('#register_pass2' + $('#reg_id').val()).attr('class','psi_input1_none');
$('#pass_error_text').html('');
$('#pass_error').css({ 'display':'none' });
}else if( data[1] == 1 ) {
$('#register_pass' + $('#reg_id').val()).attr('class','psi_input1_green');
$('#register_pass2' + $('#reg_id').val()).attr('class','psi_input1_green');
$('#pass_error_text').html('');
$('#pass_error').css({ 'display':'none' });
}else{
$('#register_pass' + $('#reg_id').val()).attr('class','psi_input1_red');
$('#register_pass2' + $('#reg_id').val()).attr('class','psi_input1_red');
$('#pass_error_text').html(data[1]);
$('#pass_error').css({ 'display':'' });
}
//pass
if( data[2] == 0 ) {
$('#1register_dd' + $('#reg_id').val()).attr('class','psi_input1_none psi_list');
$('#1register_mm' + $('#reg_id').val()).attr('class','psi_input1_none psi_list');
$('#1register_yyyy' + $('#reg_id').val()).attr('class','psi_input1_none psi_list');
$('#bd_error_text').html('');
$('#bd_error').css({ 'display':'none' });
}else if( data[2] == 1 ) {
$('#1register_dd' + $('#reg_id').val()).attr('class','psi_input1_green psi_list');
$('#1register_mm' + $('#reg_id').val()).attr('class','psi_input1_green psi_list');
$('#1register_yyyy' + $('#reg_id').val()).attr('class','psi_input1_green psi_list');
$('#bd_error_text').html('');
$('#bd_error').css({ 'display':'none' });
}else{
$('#1register_dd' + $('#reg_id').val()).attr('class','psi_input1_red psi_list');
$('#1register_mm' + $('#reg_id').val()).attr('class','psi_input1_red psi_list');
$('#1register_yyyy' + $('#reg_id').val()).attr('class','psi_input1_red psi_list');
$('#bd_error_text').html(data[2]);
$('#bd_error').css({ 'display':'' });
}
//rules
if( data[3] == 0 ) {
//$('#register_login' + $('#reg_id').val()).attr('class','psi_input1_none');
$('#rules_error_text').html('');
$('#rules_error').css({ 'display':'none' });
}else if( data[3] == 1 ) {
//$('#register_login' + $('#reg_id').val()).attr('class','psi_input1_green');
$('#rules_error_text').html('');
$('#rules_error').css({ 'display':'none' });
}else{
//$('#register_login' + $('#reg_id').val()).attr('class','psi_input1_red');
$('#rules_error_text').html(data[3]);
$('#rules_error').css({ 'display':'' });
}
//mail
if( data[4] == 0 ) {
$('#register_mail' + $('#reg_id').val()).attr('class','psi_input1_none');
$('#mail_error_text').html('');
$('#mail_error').css({ 'display':'none' });
}else if( data[4] == 1 ) {
$('#register_mail' + $('#reg_id').val()).attr('class','psi_input1_green');
$('#mail_error_text').html('');
$('#mail_error').css({ 'display':'none' });
}else{
$('#register_mail' + $('#reg_id').val()).attr('class','psi_input1_red');
$('#mail_error_text').html(data[4]);
$('#mail_error').css({ 'display':'' });
}
//key
if( data[5] == 0 ) {
$('#register_key' + $('#reg_id').val()).attr('class','psi_input1_none');
$('#key_error_text').html('');
$('#key_error').css({ 'display':'none' });
}else if( data[5] == 1 ) {
$('#register_key' + $('#reg_id').val()).attr('class','psi_input1_green');
$('#key_error_text').html('');
$('#key_error').css({ 'display':'none' });
}else{
$('#register_key' + $('#reg_id').val()).attr('class','psi_input1_red');
$('#key_error_text').html(data[5]);
$('#key_error').css({ 'display':'' });
}
//Завершение регистрации
if( data[6] == 1 ) {
location.href = '/indexreg.php';
}
},
input:function( id , name , value , valueHide , type , className , styleData ) {
var r = '';
r += '<input';
if( id != null ) {
r += ' id="' + id + '"';
}
if( name != null ) {
r += ' name="' + name + '"';
}
if( value != null ) {
r += ' value="' + value + '"';
}
if( valueHide != null ) {
r += ' onfocus="if ( \'' + valueHide + '\' == value ) { value = \'\'; } " onblur="if ( \'\' == value ) { value = \'' + valueHide + '\'; } "';
}
if( type != null ) {
r += ' type="' + type + '"';
}else{
r += ' type="text"';
}
if( className != null ) {
r += ' class="' + className + '_none"';
}
if( styleData != null ) {
r += ' style="' + styleData + '"';
}
r += ' />';
return r;
},
inputPrint:function( id , name , value , valueHide , type , className , styleData ) {
document.write( this.input( id , name , value , valueHide , type , className , styleData ) );
},
startTestingData:function(beat,formID) {
},
check:function( id , name , block ) {
var r = '';
if( block != null ) {
$('#' + id + 'block').click(function(){
psi.checkPress(id);
});
r += '<input type="hidden" name="psi_' + id + '" id="psi_' + id + '" value="0"><img id="' + id + '" name="' + name + '" src="images/1x1.png" width="19" height="19" class="psi_check1">';
}else{
r += '<input type="hidden" name="psi_' + id + '" id="psi_' + id + '" value="0"><img onclick="psi.checkPress(\'' + id + '\');" id="' + id + '" src="images/1x1.png" width="19" height="19" class="psi_check1">';
}
return r;
},
checkPring:function( id , name , block ) {
document.write( this.check( id , name , block ) );
},
checkPress:function( id ) {
if( $('#' + id).attr('class') == 'psi_check1' ) {
$('#' + id).attr('class','psi_check1s');
$('#psi_' + id).attr('value',1);
}else{
$('#' + id).attr('class','psi_check1');
$('#psi_' + id).attr('value',0);
}
},
radioPress:function( id , obj , last ) {
//$(obj).attr('id')
var i = 1;
while( i <= this.radioNum[id] ) {
$('#' + id + '_' + i).attr('class','psi_radio1');
i++;
}
//if( $(obj).attr('class') == 'psi_radio1' ) {
$(obj).attr('class','psi_radio1s');
$('#psi_' + id).attr('value',$(obj).attr('valusitem'));
//}else{
//$(obj).attr('class','psi_radio1');
//}
},
radioNum:{ },
lastRadio:{ },
radio:function( id , name , block , last , title ) {
var r = '';
if( last != null ) {
this.lastRadio[id] = last;
r += '<input type="hidden" name="psi_' + id + '" id="psi_' + id + '" value="1">';
}
if( this.radioNum[id] == undefined ) {
this.radioNum[id] = 0;
}
this.radioNum[id]++;
r += '<span onclick="psi.radioPress(\'' + id + '\',this,' + last + ');" valusitem="' + this.radioNum[id] + '" id="' + id + '_' + this.radioNum[id] + '" class="psi_radio1"><img src="/images/1x1.png" width="1" height="14"> &nbsp; &nbsp; &nbsp; &nbsp; ' + title + '</span>';
return r;
},
radioPring:function( id , name , block , last , title ) {
document.write( this.radio( id , name , block , last , title ) );
}
};
/**
* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
* <https://cherne.net/brian/resources/jquery.hoverIntent.html>
*
* @param f onMouseOver function || An object with configuration options
* @param g onMouseOut function || Nothing (use configuration options object)
* @author Brian Cherne brian(at)cherne(dot)net
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=="mouseenter"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover)}})(jQuery);
$(function() {
$('a.linktip').wrap('<span class="tip" />'); //оборачиваем соответствующие элементы в контейнер
$('span.tip').each(function(){
myTip = $(this),
tipLink = myTip.children('a'),
tBlock = myTip.children('span').length, //подсчитываем дочерние SPAN элементы внутри контейнера
tTitle = tipLink.attr('title') != 0, //определяем наличие тега TITLE
tipText = tipLink.attr('title'); //берем текст из тега TITLE
tipLink.removeAttr("title"); //скрываем обычный TITLE
//условие - если внутри нет доч. SPAN и есть TITLE,
//добавляем соответствующий SPAN с текстом взятым из TITLE
if(tBlock === 0 && tTitle === true){myTip.append('<span class="answer">' + tipText + '</span>')};
var tip = myTip.find('span.answer , span.answer-left').hide(); //найдем и скроем блоки с подсказками
//при наличии у ссылки тега EM подсказка будет появляется по клику
//также сразу добавим и "крестик" закрытия
tipLink.has('em').click(showTip).siblings('span').append('<b class="close">X</b>');
//если тага EM нет, подсказка будет появляться при наведении курсора
tipLink.not($('em').parent()).hoverIntent(
showTip,
function(){
tip.fadeOut(200);}
);
//закрытие подсказки при клике на "крестик"
tip.on('click', '.close', function(){
tip.fadeOut(200);}
);
//функция вывода и появления подсказки на экран
//вне зависимости от размеров окна,
//наличия горизонтальной или вертикальной прокрутки
//подсказка всегда будет в видимой области
function showTip(e){
xM = e.pageX,
yM = e.pageY,
tipW = tip.width(),
tipH = tip.height(),
winW = $(window).width(),
winH = $(window).height(),
scrollwinH = $(window).scrollTop(),
scrollwinW = $(window).scrollLeft(),
curwinH = $(window).scrollTop() + $(window).height();
if ( xM > scrollwinW + tipW * 2 ) {tip.removeClass('answer').addClass('answer-left');}
else {tip.removeClass('answer-left').addClass('answer');}
if ( yM > scrollwinH + tipH && yM > curwinH / 2 ) {tip.addClass('a-top');}
else {tip.removeClass('a-top');}
tip.fadeIn(100).css('display','block');
e.preventDefault();
};
});
});/*конец*/