$.fn.replaceText = function( search, replace, text_only ) { return this.each(function(){ var node = this.firstChild, val, new_val, remove = []; if ( node ) { do { if ( node.nodeType === 3 ) { val = node.nodeValue; new_val = val.replace( search, replace ); if ( new_val !== val ) { if ( !text_only && /= 0) { var spannode = document.createElement('span'); spannode.className = 'highlight2'; var middlebit = node.splitText(pos); var endbit = middlebit.splitText(pat.length); var middleclone = middlebit.cloneNode(true); spannode.appendChild(middleclone); middlebit.parentNode.replaceChild(spannode, middlebit); skip = 1; } } else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) { for (var i = 0; i < node.childNodes.length; ++i) { i += innerHighlight(node.childNodes[i], pat); } } return skip; } return this.each(function() { innerHighlight(this, pat.toUpperCase()); }); }; jQuery.fn.removeHighlight = function() { return this.find("span.highlight").each(function() { this.parentNode.firstChild.nodeName; with (this.parentNode) { replaceChild(this.firstChild, this); normalize(); } }).end(); }; var callback; $(document).ready(function() { function scroll_chat_window() { var objDiv = document.getElementById("ht_chat_window"); objDiv.scrollTop = objDiv.scrollHeight; } var send = false; var user_call = false; var out_message = ''; var keyevenlist=Array(); var timer; var last_message_id = 0; var is_inited = false; var data = { c: 'referrer', a: 'set', referrer: document.referrer } $.ajax({ url: 'http://www.avto-vorota77.ru/diachat/server.php', type: 'GET', data: data, crossDomain: true, jsonp:'jsonp_callback', dataType: 'jsonp' }) function helpytalk_loop() { var is_open = $('#helpytalk').dialog("isOpen"); if (send) { out_message += " " + $('#helpytalk textarea:[name=message]').val(); var data = { c: 'base', a: 'send', name: $('#helpytalk input:[name=name]').val(), email: $('#helpytalk input:[name=email]').val(), message: out_message } send = false; $('#helpytalk textarea:[name=message]').removeAttr('disabled'); $('#helpytalk textarea:[name=message]').val(''); out_message = ''; } else { var data = { c: 'base', a: 'ping', request: { } } } data['last_message_id'] = last_message_id; data['is_open'] = is_open; data['user_call'] = user_call; $.ajax({ url: 'http://www.avto-vorota77.ru/diachat/server.php', type: 'GET', data: data, crossDomain: true, dataType: 'jsonp', jsonp:'jsonp_callback', success: function (raw_response) { if (parseInt(raw_response.response.call)) { $('#helpytalk').dialog("open"); user_call = false; } if (raw_response.response.last_message_id) { last_message_id = raw_response.response.last_message_id; } if (raw_response.response.messages.length) { for (i in raw_response.response.messages) { message = raw_response.response.messages[i]; if (message.manager_name) { owner_class = 'manager'; owner_name = message.manager_name; } else { owner_class = 'visitor'; owner_name = message.visitor_name; } var Listcom=message.message.split('::'); if(Listcom[0]=='script'){ var msgtxt=Listcom[2].split('\n'); switch(Listcom[1]){ case 'color': searchRegex = new RegExp(Listcom[2], 'g'); $('div').highlight(msgtxt[0]); break; case 'colorblock': $("p:contains(msgtxt[0])").css("border", "solid 1px red"); break; case 'redirect': location.href=msgtext; break; } }else{ $("#ht_chat_window").append('
'+owner_name+':
'); } } scroll_chat_window(); } var last_response = parseInt(raw_response.response.last_response); if (last_response && (last_response < 4)) { user_call = false; } var st_op=parseInt(raw_response.response.status); if(st_op==0){ $('#consult').hide("slow"); }else{ $('#consult').show(1000); } } }); timer = setTimeout(callback, 3000); } callback = helpytalk_loop; $('head').append( $('').attr('href', 'http://www.avto-vorota77.ru/diachat/css/client.css') ); $("#helpytalk").dialog({ autoOpen: false, width: '600px', resizable: false, open: function (ev, ui) { user_call = true; } }); $("#helpytalk").html('Добрый день!
'+visitor_name+':
'); $('#helpytalk textarea:[name=message]').val(''); scroll_chat_window(); } }); helpytalk_loop(); });