function ajaxLoader(obj,url,params) { var obj=$(obj); if (obj) { obj.html('
'); JsHttpRequest.query( DIR_WEB_ROOT+'/include/ajax/'+url+'.php', params, function(result, errors) { if (!result) { obj.html(''); } if (result.bStateError) { obj.html(''); } else { obj.html(result.sText); } }, true ); } } function ajaxLoadPage(obj,url,params,id) { obj=$(obj); if (obj) { obj.html('
'); if (url.indexOf('http://') == -1) { url = DIR_WEB_ROOT+url; } $.ajax({ type: "GET", url: url, data: params, cache: false, async: true, dataType: "html", success: function(html) { if (id) { replaceAtab(id); } // obj.attr('innerHTML', html); obj.html(html); } }); } } var oldatabid = null; var defatabid = null; function getAtabId() { var atabio = location.hash.indexOf('.'); var atabio2 = location.hash.indexOf('.', atabio+1)-atabio-1 if ((atabio > -1)&&(atabio2 > -1)) { return location.hash.substr(atabio+1, atabio2); } else { return false; } } function checkAtab() { atabid = getAtabId(); if (!atabid) { atabid = defatabid; if (!oldatabid) { oldatabid = defatabid; } } if (atabid && (atabid != oldatabid)) { atab = $('#'+atabid); if (atab) { atab.click(); oldatabid = atabid; } } } function replaceAtab(newatabid) { atabid = getAtabId(); if (atabid) { location.hash = location.hash.replace('.'+atabid+'.', '.'+newatabid+'.'); } else { location.hash += '.'+newatabid+'.'; } if (newatabid != oldatabid) { $('#'+oldatabid).removeClass('act'); } oldatabid = newatabid; } function ajaxJoinLeaveBlog(obj,idBlog) { obj=$(obj); JsHttpRequest.query( DIR_WEB_ROOT+'/include/ajax/joinLeaveBlog.php', { idBlog: idBlog }, function(result, errors) { if (!result) { show_program_mess('Ошибка:
Повторите попытку чуть позже'); } if (result.bStateError) { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); } else { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); if (obj) { if (result.bState) { obj.html(''+result.sLeaveBlog+''); } else { obj.html(''+result.sJoinBlog+''); } divCount=$('#blog_user_count_'+idBlog); if (divCount) { divCount.text(result.iCountUser); } } } }, true ); } function ajaxBlogInfo(idBlog) { $.modal.close(); $('
').modal({close:false}); JsHttpRequest.query( DIR_WEB_ROOT+'/include/ajax/blogInfo.php', { idBlog: idBlog }, function(result, errors) { $.modal.close(); if (!result) { show_program_mess('Ошибка:
Повторите попытку чуть позже'); } if (result.bStateError) { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); } else { if ($('#block_blog_info')) { $('#block_blog_info').html(result.sText); } if ($('#block_blog_rubrics')) { $('#block_blog_rubrics').html(result.sRubrics); $('.custom_select a').unbind('click'); $('.custom_select li').unbind('click'); customSelectInit(); CSBfleXcroll('div_rubrics_select'); if (result.cRubrics > 0) { $('#span_blog_rubrics').css('display', 'block'); } else { $('#span_blog_rubrics').css('display', 'none'); } } } }, true ); } function ajaxRubricsEdit(idBlog, mode) { if ($('form#form_rubrics')) { var frm = $('form#form_rubrics').serialize(); } else { var frm = ''; } $.modal.close(); $('
').modal({close:false}); JsHttpRequest.query( DIR_WEB_ROOT+'/include/ajax/rubricsEdit.php', { mode: mode, idBlog: idBlog, form: frm }, function(result, errors) { $.modal.close(); if (!result) { show_program_mess('Ошибка:
Повторите попытку чуть позже'); } if (result.bStateError) { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); } else { if ($('#rubrics')) { $('#rubrics').replaceWith(result.sText); } } }, true ); } function CommentReply(where, smth) { var replyform = jQuery('#add-comment'); if (tinyMCE.getInstanceById('comment_text')) { tinyMCE.execCommand('mceFocus', false, 'comment_text'); tinyMCE.execCommand('mceRemoveControl', false, 'comment_text'); } replyform.insertAfter(where); tinyMCE.execCommand('mceAddControl', false, 'comment_text'); // tinyInit(); where.style.display = 'none'; if (prev_to_show) prev_to_show.css('display', 'inline'); prev_to_show = $(where); if (!smth) jQuery('#comment_text').focus(); jQuery('#form_comment_reply').val(where.id); jQuery('#work_id').val(''); return false; } function CommentEdit(where, id) { var w = $(where); var htm = w.html(); // htm = htm.replace(/
/gi, ''); w.wrap('
' + '' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
'); $('#textarea'+id).focus(); tinyMCE.execCommand('mceAddControl', false, 'textarea'+id); tinyMCE.execCommand('mceFocus', false, 'textarea'+id); } function WorkEdit(title, where, cfiles, id) { var w = $(where); var htm = w.html(); // htm = htm.replace(/
/gi, ''); var titl = $(title).html(); var fils = $(cfiles).val(); w.wrap('
' + '' + '

' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + ' ' + ' ' + fils + '
' + ' ' + '

'+ '
'); $('#textarea'+id).focus(); tinyMCE.execCommand('mceAddControl', false, 'textarea'+id); tinyMCE.execCommand('mceFocus', false, 'textarea'+id); } function ajaxFavouriteToggle(type,id,obj) { typeFavourite = { comment: { url: DIR_WEB_ROOT+'/include/ajax/commentFavourite.php', targetName: 'idComment' }, topic: { url: DIR_WEB_ROOT+'/include/ajax/topicFavourite.php', targetName: 'idTopic' } }; if (!typeFavourite[type]) { return false; } obj = $(obj); if (obj) { var params = new Array(); params['type']=obj.hasClass('active') ? 0 : 1; params[typeFavourite[type].targetName]=id; JsHttpRequest.query( typeFavourite[type].url, params, function(result, errors) { if (!result) { show_program_mess('Ошибка:
Повторите попытку чуть позже'); } if (result.bStateError) { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); } else { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); obj.removeClass('active'); if (result.bState) { obj.addClass('active'); } } }, true ); } } function ajaxVote(type,id,value,obj) { typeVote = { topic_comment: { url: DIR_WEB_ROOT+'/include/ajax/voteComment.php', targetName: 'idComment' }, topic: { url: DIR_WEB_ROOT+'/include/ajax/voteTopic.php', targetName: 'idTopic' }, blog: { url: DIR_WEB_ROOT+'/include/ajax/voteBlog.php', targetName: 'idBlog' }, user: { url: DIR_WEB_ROOT+'/include/ajax/voteUser.php', targetName: 'idUser' } }; if (!typeVote[type]) { return false; } obj = $(obj); if (obj) { var params = new Array(); params['value']=value; params[typeVote[type].targetName]=id; JsHttpRequest.query( typeVote[type].url, params, function(result, errors) { if (!result) { show_program_mess('Ошибка:
Повторите попытку чуть позже'); } if (result.bStateError) { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); } else { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); var upvote = '#upvote_'+type+id; var downvote = '#downvote_'+type+id; if ($(upvote)) { $(upvote).attr('src', DIR_STATIC_SKIN+'/images/ico/ico-vote-up_gray.png'); $(upvote).parent().click(function() { return false; }); } if ($(downvote)) { $(downvote).attr('src', DIR_STATIC_SKIN+'/images/ico/ico-vote-down_gray.png'); $(downvote).parent().click(function() { return false; }); } result.iRating=parseFloat(result.iRating); if (result.iRating>0) { obj.text('+'+result.iRating); } if (result.iRating<0) { obj.text(result.iRating); } if (result.iRating==0) { obj.text('0'); } } }, true ); } } function ajaxQuestionVote(idTopic,idAnswer) { JsHttpRequest.query( DIR_WEB_ROOT+'/include/ajax/questionVote.php', { idTopic: idTopic, idAnswer: idAnswer }, function(result, errors) { if (!result) { show_program_mess('Ошибка:
Повторите попытку чуть позже'); } if (result.bStateError) { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); } else { show_program_mess(''+result.sMsgTitle+':
'+result.sMsg+''); if ($('#topic_question_area_'+idTopic)) { $('#topic_question_area_'+idTopic).html(result.sText); } } }, true ); } function addWorkFile(elem, cont) { var real = $(elem); if (!cont) { cont = '#work_files'; } var container = $(cont); var cloned = real.clone(true); real.hide(); cloned.insertAfter(real); real.attr('onchange', ''); real.attr('name', 'work_file[]'); real.css('display','none'); var row = $(' '+elem.value+'удалить
'); real.appendTo(row); row.appendTo(container); cloned.value = ''; } function deleteWorkFile(elem) { $(elem).parent().parent().remove(); } function tglSpan(elem1, elem2) { $(elem1).slideUp(); $(elem2).slideDown(); } // для тестов function getTestScalesCount() { return jQuery('tr.test_scale').length; } function getTestQuestionsCount() { return jQuery('tr.test_question').length; } function getTestAnswersCount(question_id) { return jQuery('#'+question_id).find('tr.test_answer').length; } function getNumericId(type, tid) { return parseInt(tid.replace(type, '')); } function getTestItemNextId(type) { max = 0; jQuery('tr.test_'+type).each(function() { id = getNumericId(type, this.id); if (max < id) { max = id; } }); ++max; id = type + max.toString(); return id; } function getTestItemByChild(btn) { tr = btn; while (tr.tagName != 'TR') tr = tr.parentNode; return tr; } function fixAnswer(newTr, passive_add) { if (passive_add) { newTr.id = getTestItemNextId('answer'); id = getNumericId('answer', newTr.id).toString(); } else { id = getNumericId('answer', newTr.id).toString(); } jQuery(newTr).find('input.answer_id').eq(0).val(id); tr = getTestItemByChild(jQuery(newTr).parent().get(0)); q_id = getNumericId('question', tr.id); jQuery(newTr).find('input.answer_id').eq(0).attr('name', 'answers['+q_id+'][id][]'); jQuery(newTr).find('input.answer_title').eq(0).attr('name', 'answers['+q_id+'][title]['+id+']'); jQuery(newTr).find('input.answer_is_right').eq(0).attr('name', 'answers['+q_id+'][is_right]['+id+']'); jQuery(newTr).find('textarea.answer_comment').eq(0).attr('name', 'answers['+q_id+'][comment]['+id+']'); jQuery(newTr).find('input.answer_mark').each(function() { jQuery(this).attr('name', 'marks['+id.toString()+']['+jQuery(this).attr('rel')+']'); }); } function addTestItem(type, btn){ editorDestroy(); tr = getTestItemByChild(btn); // Создаем новый объект var newTr = tr.parentNode.insertBefore(tr.cloneNode(true),tr.nextSibling); editorInit(); newTr.id = getTestItemNextId(type); if (type == 'scale') { jQuery(newTr).find('input.scale_id').eq(0).val(getNumericId('scale', newTr.id).toString()); jQuery(newTr).find('input.scale_title').eq(0).attr('name', 'scales[title]['+getNumericId('scale', newTr.id)+']'); jQuery(newTr).find('textarea.scale_text').eq(0).attr('name', 'scales[text]['+getNumericId('scale', newTr.id)+']'); drawAllScalesBoxes(); } else if (type == 'question') { jQuery(newTr).find('input.question_id').eq(0).val(getNumericId('question', newTr.id).toString()); jQuery(newTr).find('input.question_title').eq(0).attr('name', 'questions[title]['+getNumericId('question', newTr.id)+']'); jQuery(newTr).find('select.question_qty_answers').eq(0).attr('name', 'questions[qty_answers]['+getNumericId('question', newTr.id)+']'); jQuery(newTr).find('textarea.question_text').eq(0).attr('name', 'questions[text]['+getNumericId('question', newTr.id)+']'); jQuery(newTr).find('tr.test_answer').each(function() { fixAnswer(this, true); }); } else if (type == 'answer') { fixAnswer(newTr); } if (type == 'answer') { tr = getTestItemByChild(jQuery(newTr).parent().get(0)); checkForLast(type, tr.id); } else { checkForLast(type); } } function checkForLast(type, question_id){ if (type == 'answer') { anws = jQuery('#'+question_id).find('tr.test_answer'); anws.find('input[name=drop_'+type+']').each(function() { this.disabled = false; }); if (anws.length<=1) { anws.find('input[name=drop_'+type+']').get(0).disabled = true; } } else { btns = document.getElementsByName('drop_'+type); for (i = 0; i < btns.length; i++){ btns[i].disabled = false; } if (btns.length<=1) { btns[0].disabled = true; } } } function dropTestItem(type, btn){ tr = getTestItemByChild(btn); parnt = tr.parentNode; parnt.removeChild(tr); // Если удалил шкалу, то обновляем шкалы по всем ответам if (type == 'scale') { drawAllScalesBoxes(); } if (type == 'answer') { tr = getTestItemByChild(parnt); checkForLast(type, tr.id); } else { checkForLast(type); } } function moveUpTestItem(btn) { tr = getTestItemByChild(btn); prev = jQuery(tr).prev(); if (prev) { jQuery(tr).insertBefore(prev); } } function moveDownTestItem(btn) { tr = getTestItemByChild(btn); next = jQuery(tr).next(); if (next) { jQuery(tr).insertAfter(next); } } function drawScalesBox(tr) { var values = new Array(); jQuery(tr).find('.test_scalesbox').find('tr').each(function() { value = jQuery(this).find('input').get(0).value; values[jQuery(this).attr('rel')] = value; }); html = ''; answer_id = getNumericId('answer', tr.id); jQuery('input.scale_title').each(function(index) { scale = getTestItemByChild(this); scale_id = getNumericId('scale', scale.id); value = values[scale.id] ? values[scale.id] : 0; html += ''; }); html += '
' + this.value + '
'; jQuery(tr).find('.test_scalesbox').get(0).innerHTML = html; } function drawAllScalesBoxes() { jQuery('tr.test_answer').each(function() { drawScalesBox(this); }); }